如何强制 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}
版本 B
\documentclass[11pt, a4paper]{book}
\usepackage[english]{babel}
\usepackage[style=american]{csquotes}
\begin{document}
\enquote{Testing \enquote{one, two, three}}.
\end{document}
大多数情况下,babel
和的选择组合csquotes
使用就可以了。autostyle=true
csquotes
答案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
答案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}