如何使用 \MakeOuterQuote \MakeInnerQuote?

如何使用 \MakeOuterQuote \MakeInnerQuote?

具体是如何\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 这样的编辑器时,我不知道如何访问扩展错误消息,但这可能也是可能的。

相关内容