为什么 LaTeX 不能智能匹配双引号?

为什么 LaTeX 不能智能匹配双引号?

在许多文字处理器中,当你输入"两次时,它会按顺序给你一个左和右双引号,它们是智能匹配的。为什么 latex 最终使用,

``Blahblahblah...''

做双引号?

问:这个设计背后有什么哲学吗?

补充一点:当您尝试复制带有大量"双引号的文本文件时,这非常烦人。而且您不能简单地将它们全部替换,您必须手动执行!

答案1

插入智能引号代替愚蠢引号的标准逻辑如下:

  1. 如果引号前有空格,则为开头引号;
  2. 否则,它就是结束语。

然而,在撇号的情况下,这是有问题的。考虑一下“hello”中省略的“h”的(英语)音标,这通常被归因于伦敦口音:

'埃洛

根据上述规则,这将被排版为开头的单引号,而不是撇号(相当于结尾的单引号)。

虽然我不熟悉该语言,但我知道法语中也有很多这样的例子。

没有算法可以确定何时应该使用这样的撇号而不是开头的引号,因此加入此功能需要例外列表,就像连字一样。但是,由于在方言中(至少在英语中)使用撇号表示省略(如上例所示)的情况显著增加,因此例外列表并不是解决此问题的合适方法。

因此,编译器尝试将愚蠢的单引号转换为智能单引号是不合适的。虽然您的问题涉及双引号,但单引号和双引号实际上应该以相同的方式工作,因为它们非常密切相关。

答案2

简短回答: 你说的: ”打字时“。LaTeX 代码可以用任何文本编辑器甚至任何文字处理器输入,所以这是编辑器的问题,而不是 LaTeX 代码的问题,它必须是明确的。使用具有此功能的编辑器,如TeXWorks

长答案:由于pdflatexxetex等使用已输入的代码,因此 LaTeX 解决方案需要后验您所输入的思想的解释,在我看来是不必要的复杂化。例如,如何处理这个简单的代码?:

\documentclass{article}
\begin{document}
2", 5" and 7"
\end{document}

可能是您想要的2``, 5'' and 7",也可能是 2", 5`` and 7''或只是2", 5" and 7"与您输入的完全一样?如果这种解释是错误的,该怎么办?如果您需要重新编辑以更具体地说明您真正想要的内容,那将是一件痛苦的事情。

相反,如果您的想法是由编辑器解释的,误解就不会那么痛苦。按照这个例子,如果您在 TeXWorks 中输入, 2", 5" and 7" and "more"就会被输入 2'' and 5'' and 7'' and ``more''(请注意,每个"现在是两个字符),这可能是您想要的,但在其他情况下,您可以在一秒钟内轻松更改。

"无论如何,此功能并非无痛,因为必须使用 (单个字符) Ctrl+Shift+2而不是通常的 来获得这种力量Shift+2

答案3

我很难理解你想问什么。我认识到这里有 3 个不同点:

(1)为什么 Latex 不会自动将"+更改"为智能引号+

(2)为什么 LaTeX 使用 `` + '' 来引用?

(3)当您将带有愚蠢引号的文本复制并粘贴到文本编辑器中时,无法自动将 LaTeX 中的愚蠢引号"+替换"为智能引号+,这很烦人。

(1) 的答案是 LaTeX 使用 (2)。我看不出这比使用"+有什么好处或坏处"。不过,至少有些文本编辑器(例如 Texworks)会自动将"+替换"为常规的 LaTeX 序列“ + ”。

对于 (3),我想这很烦人,但我不知道有其他文字处理器会在您复制带有愚蠢引号的文本时自动用智能引号"+替换+ 。MS Word 肯定不会。"

答案4

在编辑器中,您可以随时撤消更改。当 LaTeX 处理它时,您没有这样的选项,因为处理通常不是交互式的(除了一些错误)。因此,如果有自动替换,我们还需要一个“不替换”版本,这将是一个不必要的复杂化。

除此之外,那些试图超越用户的软件系统通常最终会变得无法正常使用,结果往往不尽人意。

同样,如果您使用\begin{equation}...\end{equation},即使您没有使用\label{...},LaTeX 也会添加一个标签,因此不会引用该方程式。您选择使用带标签的方程式,而 LaTeX 不会试图超越您。引号也是一样:您选择,LaTeX 会尊重您的选择,从而减少不良结果的数量。

相关内容