引号配对

引号配对

如何强制 LaTeX 将三个右引号视为第一个单引号,后两个双引号?

当引言中的引言以如下方式结束时,这一点很重要:

``the cat 'sat on the mat'''.

渲染结果为:

'' '.

但我希望它呈现:

' ''.

梅威瑟:

\documentclass[11pt, a4paper]{book}
\begin{document}
``Testing `one, two, three'''.
\end{document}

答案1

我建议使用这个csquotes包。

\documentclass[11pt, a4paper]{book}

\usepackage{csquotes}

\begin{document}
\enquote{Testing \enquote{one, two, three}}.
\end{document}

此包可根据引用的样式进行配置。例如,比较版本 A

\documentclass[11pt, a4paper]{book}

\usepackage[english]{babel}
\usepackage[style=british]{csquotes}

\begin{document}
\enquote{Testing \enquote{one, two, three}}.
\end{document}

选项 style=british

版本 B

\documentclass[11pt, a4paper]{book}

\usepackage[english]{babel}
\usepackage[style=american]{csquotes}

\begin{document}
\enquote{Testing \enquote{one, two, three}}.
\end{document}

选项 style=american

大多数情况下,babel和的选择组合csquotes使用就可以了。autostyle=truecsquotes

答案2

由于后面两个单引号总是合并的,因此您可以在输入中使用空格。这样就能得到所需的输出。

\documentclass[11pt, a4paper]{book}
\begin{document}
``Testing `one, two, three' ''.
\end{document}

或者,如果你喜欢非常小的空间,你可以使用(不是在 LuaLaTeX 中,感谢 Harald Hanche-Olsen)

\documentclass[11pt, a4paper]{book}
\begin{document}
``Testing `one, two, three'{}''.
\end{document}

最后一种方法(由 Knuth 在 TeXbook 中以及 barbara beeton 在评论中建议):

\documentclass[11pt, a4paper]{book}
\begin{document}
``Testing `one, two, three'\,''.
\end{document}

答案3

我让 csquotes 处理这个问题:

\documentclass[11pt, a4paper]{book}
\usepackage[english]{babel}
\usepackage[autostyle]{csquotes}
\begin{document}
\enquote{Testing \enquote{one, two, three}}.
\end{document}

在此处输入图片描述

答案4

\documentclass{article}
\newcommand\mt{\kern 0.083335em}
\begin{document}

% A poor's man solution without packages
``Testing `one, two, three'\mt''.

% Or ...
\textquotedblleft
    Testing 
    \textquoteleft
        one, two, three%
    \textquoteright\mt
\textquotedblright.

\end{document}

相关内容