具体是如何\MakeOuterQuote{"} \MakeInnerQuote{´}
工作的?
以及我怎样才能更改引号的 {"},{´}?
例如,如果我将 \MakeInnerQuote{´} 更改为任何其他引文,就会出现错误。
\documentclass[a4paper,12pt]{book}
\usepackage{csquotes}
\MakeOuterQuote{"}
\MakeInnerQuote{´}
\begin{document}
"single quotes, said the ´latex user´ to his friend"
\enquote{single quotes, said the \enquote{latex user} to his friend}
\end{document}
答案1
对于 LaTeX 中的大多数命令,有两个错误消息,一个简短版本和一个详细版本。当您在终端或命令行中以“错误停止模式”(默认)运行 LaTeX 时,尝试设置例如\MakeInnerQuote{9}
(即,将字符设置9
为内部引号字符)时会收到以下消息:
! Package csquotes Error: Invalid argument.
See the csquotes package documentation for explanation.
Type H <return> for immediate help.
现在,如果您输入H
,您将获得更多信息,如下所示:
Only single characters with category code 12 or 13 may be
allocated as active quotes. Numbers, punctuation marks, and
characters which are part of LaTeX's syntax or reserved
for a specific purpose are invalid.
这告诉您问题出在哪里:包9
不允许将该字符csquotes
用作引号字符。只能使用类别代码为 12 或 13 的字符,并且不能使用数字、标点符号和一些特殊字符。
有关类别代码的更多信息,请参见类别代码是什么?。基本原理是将字符分为几组,每组在 LaTeX 中都有特定的功能。9
示例中的数字的类别代码为 12,这是允许的,但它是一个数字,因此扩展错误消息中提到,它被排除在引号字符之外。
被排除的类别代码为 12 或 13 的字符的完整列表可以在该csquotes
包的源代码中找到:
[]*@~-`'.,;:!?0123456789
此外其他类别的字符也不能使用:
\{}$&#^_%[space][all letters]
所以剩下的不多了。除了您已经在代码中使用的两个字符之外,还有数学字符=+/()
可用:
\documentclass[a4paper,12pt]{book}
\usepackage{csquotes}
\MakeOuterQuote{=}
\MakeInnerQuote{(}
\begin{document}
=single quotes, said the (latex user( to his friend=
\enquote{single quotes, said the \enquote{latex user} to his friend}
\end{document}
请注意,当您使用像 TeXstudio 这样的编辑器时,我不知道如何访问扩展错误消息,但这可能也是可能的。