注意事项

注意事项

我们都知道csquotes它提供了多种显示引号和相关内容的功能。我特别喜欢的一个功能是使用 的活动引号。这特别好,因为它可以将处理引号\MakeAutoQuote的功能与代码易读性相结合。csquotes

然而,选择活动角色的使用方式\MakeAutoQuote非常\MakeAutoQuote*棘手。很容易犯错,而且要从中获得良好的工作流程也并非易事。

例如,如果碰巧使用:

\MakeOuterQuote{"}

babel(在多种语言中) 或文件路径发生冲突的可能性非常大。

一个不太明显的陷阱是:

\MakeAutoQuote{“}{”}
\MakeAutoQuote*{‘}{’}

一旦有人写下以下内容,就会导致引文不平衡:

“我不知道自己在做什么。”

有关另一个,请参阅csquotes \MakeAutoQuote{>}{<} 和 graphicx 在 LuaTeX 下会产生问题

因此,我对以下内容感兴趣:

  • 什么字符一个不应该用于主动引号的目的csquotes

  • 哪些是适合该目的的候选者?这些候选者之间是否存在任何预期的冲突或权衡?

我知道这里的选择可能取决于文档的语言和手头的特定输入设置(包括正在使用的键盘和编辑器)。所以我很高兴听到特定的设置,以及它们背后的原因和最终的警告。但如果可能的话,我会特别关注有关此事的一些一般指导方针。

答案1

我希望听到关于这个问题的经验之谈,但我会尝试根据收到的评论(我很感激)、我在网站上找到的关于这个问题的信息、文档csquotes以及我的个人经验,提供一个合理的自我答案。

注意事项

你肯定不想LaTeX 保留字符一个csquotes活跃角色。因此,这排除了:

#,,,,,,,,,,$%^&_{}~\

文档csquotes将此列表扩展为:

一般而言,有效引号可以是类别代码为 12 或 13 的任何单个字符,也可以是代表单个字符的任何多字节 UTF-8 序列。但是,也有一些例外:数字、标点符号、撇号、连字符以及所有属于 LaTeX 语法的字符均会被拒绝。总之,本包将视以下字符为保留字符:A–Z a–z 0–9 . , ; : ! ? ' - # $ % & ^ _ ` ~ \ @ ∗ { } [ ]

ASCII:方便,但需要小心

对于大多数键盘来说,ASCII 范围可能是输入最方便的。但是,除了上面的列表之外,选项很少。不过,根据您的环境,可以在此处找到一些可用的设置。在检查网站上的相关问题时,我遇到了两种相对常见的用法:

  • 引号,常规的直引号。由于缺少一对",因此在本例中与 一起使用。\MakeOuterQuote{"}

  • 小于和大于符号<>

csquotes竭尽全力避免冲突。特别是在数学模式和逐字环境中:

所有引号命令均设计用于文本模式,在数学模式下会发出错误消息。请注意,所有活动引号在数学模式下都保留其原始功能。完全可以使用大于号之类的字符作为活动引号,而不会干扰数学模式。在逐字上下文中,活动引号通常会被禁用。

然而,仍然需要注意一些事情:

选择活动引号时仍需小心谨慎。请注意,通常不能在需要字符串的命令的参数中使用活动字符,例如\input\label\cite。有两个软件包试图解决这种情况:软件包babelunderscore软件包(使用 strings 选项加载时)。这两个软件包都重新定义了受此一般问题影响的几个标准命令。如果加载了其中任何一个软件包,csquotes 将自动利用所有改进。不幸的是,这两个软件包都修补了一组不同的命令,并且都没有涵盖所有可能存在漏洞的命令。

网站上有一些关于这些选择的缺陷的例子。但它们肯定是可以控制的。特别是,csquotes还提供\DisableQuotes\EnableQuotes管理本地有效报价。

这个讨论可能也很有趣,尽管与以下内容没有直接关系csquotes我该如何防止用 babel 将 "s 变成 ß?

热门候选:非 ASCII 引号字符

那些是:

  • 弯引号,单引号和双引号:, , ,
  • 引号,或称 guillemets,通常是双引号,但也有单引号:«»

据我所知,这里唯一需要注意的是单弯引号的使用。如果您选择它们​​作为csquotes' 活动引号字符,则在表示撇号时应注意使用直引号,否则最终会导致引号不平衡。

除此之外,唯一需要关心的就是如何方便地输入这些字符。

输入注意事项

这将挂在您的键盘和编辑器上。许多编辑器确实提供了某种即时替换直引号的功能,以替换弯曲引号,或最终替换其他引号(也称为“智能引号”)。有些编辑器将为您提供更大的灵活性来配置特定键的输入,或者允许您足够轻松地输入您选择的任何特定字符。

使用“智能引号”和相关功能时可能会出现一个缺点,即当您键入时引号会自动替换为弯曲的引号,当您出于某种原因(babel快捷方式、路径等)实际需要常规的直引号时,您可能会遇到不便。同样,这对您的影响取决于您的编辑器和设置。

根据您的系统,如果您愿意,也可以重新配置键盘。而且,您可能会很幸运,使用修饰键,键盘上默认可以使用其中一些字符。例如,美国国际键盘布局似乎有 和 可用的 guillemets。AltGr + [如果AltGr + ]您遵循egreg 的建议和“购买您喜欢的任何键盘,只要它是国际英语”,您就会在那里被分类。(我使用 pt_br 键盘,它们有和AltGr + zAltGr + x

尾声:内部引号也有效吗?

csquotes\enquote支持对和使用活动引号\enquote*,即外引号和内引号(当然还有更多),即:

\MakeOuterQuote{<character>}
\MakeInnerQuote{<character>}

\MakeAutoQuote{<character 1>}{<character 2>}
\MakeAutoQuote*{<character 1>}{<character 2>}

不过,您应该考虑一下,如果两者对您来说实际上同样方便。csquotes自动处理引号的嵌套并做正确的事™。因此,您很可能经常需要输入标准的外部引号,而很少需要在任何特定时刻强制使用内部引号。因此,为频繁的外部引号设置一个活动字符,并依赖于\enquote*最终的异常,可能是最有趣的设置。

网站上的示例:

  • 直引号\MakeOuterQuote

除了 `` + '' 之外,在 LaTeX 中还有其他方法可以使用双引号吗?

自动德语引号

LyX 下使用法语 guillemets 在 csquotes 中实现跨越多个段落的引文

如何暂时禁用 quiver 包的 \MakeOuterQuote?

  • 直引号和 babel 之间的一些(可修复)问题:

使用 \selectlanguage 和 csquotes

  • 直引号和带空格的路径之间的麻烦:

使 " 成为有效引号,同时包含路径中带有空格的子文件

  • 小于/大于符号的使用:

替换引号(或者:使用 << 和 >> 作为 csquote 类似自动引号)

如何更轻松地输入撇号?

根据版本,但使用相同的语言,我想要不同类型的引文

  • 使用小于/大于符号时遇到的一些麻烦:

csquotes 和 hyperref 颜色链接一起出现的问题

csquotes \MakeAutoQuote{>}{<} 和 graphicx 在 LuaTeX 下会产生问题

使用 \makeautoquote 和 \makeautoquote* 时,csquotes、hyperref 和 scrartcl 会产生多个错误

  • guillemets 用途:

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

csquotes:如果需要,使用自动引号创建块引号

如何使用 csquotes 正确引用?

LaTeX 将 <" a> 编译为 <ä>

biblatex:句子大小写和嵌套引号(这可能是 biblatex 文档设置的来源吗?)

  • 弯曲的双引号和单引号:

如何在 csquotes.cfg 中有条件地指定有效报价?

获取 Emacs 的电子报价模式以与​​ AUCTeX 和 BibTeX 模式配合使用

一致的字体(请注意撇号)

使用 T1 字体时使用活动字符“伪造”智能引号是否安全?

相关内容