我目前在大学里工作,负责校对讲义。这意味着我阅读了大量的文本并纠正语言错误/对表格/图像的错误引用,但我也试图改进 LaTeX 源代码。
我看到文档采用了两种引用方式:
\grqq{}My Text\glqq{}
和
"`My Text"'
这两句引言的表达方式似乎完全相同。
我有两个问题:
1. 这两种引用方式有什么区别?
2. 我应该使用什么(最佳实践)来引用?
我目前认为定义一个新命令如下:
\newcommand{\quote}[1]{\glqq{#1}\grqq{}}
可能是一个好方法。这样我就可以 grep 源文件并替换其他引号的每个实例。这样,我可以确保每个引号都有一个“匹配的引号”。但我不确定这是否有任何负面影响。
(我按照 StackExchange 的建议添加了“quoting”和“csquotes”标签,但我不确定这是否合适。我以前没有听说过 csquotes,但我认为这可能是第二个问题的答案。)
答案1
您的思路是对的。最佳做法始终是在文本中使用语义标记,并在其他地方定义布局(前言、配置文件等)。
csquotes
是一个可以为您完成此操作的包。它甚至可以识别语言(如果由babel
或设置polyglossia
)。但请记住,有几个语义上不同的东西通常或偶尔会用引号输入(实际引号、反讽、新定义的术语等)。不要简单地替换所有出现的\grqq[…]\glqq
或
"`[…]"'
来自\enquote
包csquotes
。使用更高的标记,例如
\newcommand{\actualquote}[1]{\enquote{#1}}
\newcommand{\definedterm}[1]{\enquote{#1}}
\newcommand{\irony}[1]{\enquote{#1}}
这样,如果您只想更改一种布局,就可以轻松更改。
关于
\grqq vs. "`
前者不会破坏任何东西,但后者需要"
激活(babel
例如通过)。此激活可能会破坏其他(babel
未意识到或设计不良的)软件包。
PS:人们也可以有这样的观点,即csquotes
只涵盖实际的引文。这样,您不需要定义\actualquote
,而是定义\definedterm
而\irony
不是使用\enquote
。但这有以下缺点:如果实际引文中有新定义的术语该怎么办?这就是为什么我看到\enquote
更多处理引号而不是实际引文的方法。