与使用编辑器的“自动替换”功能相比,使用 csquotes 有什么优势?

与使用编辑器的“自动替换”功能相比,使用 csquotes 有什么优势?

许多编辑器(TeXnicCenter、Texmaker、TeXworks 等)都提供自动替换"所需形式的引号的功能,无论是``英语''"`"'德语的还是其他的。通常,我从一开始就知道我想在整个文档中使用哪些引号,而且我几乎从不嵌套引号。看到这一点csquotes至少有一个缺点(见csquotes 和 microtype 的凸出错误) 比嵌套引号更有可能出现,我想知道:

与使用这些“手动”引号相比,使用该包有什么好处csquotes?显然,我可以设置"通过的自动替换,这将导致类似的输入活动。\csquotes{cursor here}

答案1

优势

如果您将biblatex或 和 一起使用,babelpolyglossia可以从 的集成命令中受益csquotes。有一些命令可用于引用除主要语言之外的其他语言,以便引用的文本按照该语言的规则排版。还有一些命令可用于在主要语言和其他语言中进行正式引用,这些命令可从 和 获得正确的csquotes引号biblatex

如果您使用这些命令而不是手动设置引号,则可能更容易与引号和连字符保持一致。此外,它还可以帮助您与块引用保持一致,因为csquotes有命令可以将长度超过特定阈值的引号转换为块引用。

以下仅是一些可用命令的示例。您可以阅读其他命令手册

\documentclass{article}

\usepackage{biblatex}
\usepackage{csquotes}
\usepackage[UKenglish,USenglish]{babel}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{nnt,
   author   = {N.N.},
   title    = {Title},
   year     = {2011}
   }
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

\hyphenquote{UKenglish}{quote with UK English hyphenation}

\textcquote[1]{nnt}{formal quote}

\hyphentextcquote{UKenglish}[1]{nnt}{formal quote with UK English hyphenation}

\hyphenblockcquote{UKenglish}[1]{nnt}{A long formal quote with UK English hyphenation which happens to be longer than three lines and, thus, is typeset as a block quote. This text is just to make it long enough. This text is just to make it long enough. This text is just to make it long enough.}

\printbibliography

\end{document}

示例输出

更轻松地输入 csquotes 宏

如果你觉得编写宏很麻烦,csquotes你可以使用代码片段管理器来管理你经常使用的宏。例如,在我的设置中,我编写enq并按下Tab,这将扩展enqenquote{}并将光标放在括号之间。请参阅将 `$$ ... $$` 宏替换为 `\[ ... \]` 宏?——更喜欢 LaTeX 的布局方式,但 `$` 写起来更快了解片段管理器的更详细示例。

如果你使用 AUCTeX,它可以被配置通过将以下内容插入到 .emacs 中,可以"扩展为宏:csquotes

;; " expands into csquotes macros
(setq LaTeX-csquotes-close-quote "}"
      LaTeX-csquotes-open-quote "\\enquote{")

请注意,为了与 配合使用babelbabel必须加载 csquotes

答案2

好吧,即使我知道我想在文档中使用哪些引号:我也会发现很难记住在英语文本中使用哪些引号和键盘键,在德语文本中使用哪些引号和键盘键,以及法国人在法语文本中必须使用什么。实际上,当时csquotes我只是在考虑一个通用系统,这样我就不用费心去记住我必须在右引号和左引号中使用哪些该死的重音符号了。从此以后,我再也没有回头。我\MakeAutoQuote{«}{»}在所有文档中都使用它,我已经将编辑器设置为在需要引用时用快捷键将单词或选择内容括起来«...»,我认为这是最好的语义标记。

相关内容