pdftex 忽略的引号

pdftex 忽略的引号

我正在阅读 Donald Knuth 的 TeXBook,练习 2.1。我有以下输入:

Alice said, ‘‘I always use an en-dash instead of a hyphen when specifying page numbers like ‘480--491’ in a bibliog
raphy.’’
\bye

使用编译pdftex sample.tex将产生以下输出。短划线可以正常工作,但是引号去哪儿了?

在此处输入图片描述

答案1

不要使用‘‘花括号

``I always use an en-dash instead of a hyphen when specifying page numbers
like `480--491' in a.''
\bye

在此处输入图片描述

答案2

如果你看一下 TeXbook 的源代码,它可在 CTAN 上获取, 你看

\exercise Explain how to type the following sentence to \TeX: Alice said,
``I always use an en-dash instead of a hyphen when specifying page numbers
like `480--491' in a ^{bibliography}.''
\answer |Alice said, ``I always use an en-dash instead of a hyphen when|\break
|specifying page numbers like `480--491' in a bibliography.''| \
(The wrong answer to this question ends with |'480-49l' in a bibliography."|)

如果你用pdftex代码编译

Alice said, ``I always use an en-dash instead of a hyphen when specifying
page numbers like `480--491' in a bibliography.''
\bye

然后从 PDF 复制粘贴,你得到

Alice 说:“在参考书目中指定页码(如‘480–491’)时,我总是使用短破折号而不是连字符。”

因为 PDF 阅读器足够智能。

但是,你不应该使用‘‘’’,因为 TeXbook 中的代码片段中的字符实际上代表

`` ''

请记住,TeX 仅使用七位 ASCII 字符,而在任何编码中都不在该范围内。

答案3

当 TeX 和TeXbook编写时,计算机和软件与现在有两点不同:

  1. 每台计算机/操作系统的字符数(通常最多 256 个)都比目前可用的 Unicode 全系列字符数要少;特别是你输入的花括号,即 '(U+‎2018 左单引号)和 '(‎U+2019 右单引号)不在他们的字符集中,

  2. 相反,包括 Knuth 所熟悉的系统在内的一些系统,使用 ` (U+0060 GRAVE ACCENT) 和 ' (U+0027 APOSTROPHE) 当前占据的位置来表示过去在视觉上对称且具有相同用途的字符。此历史在页面中有很好的解释ASCII 和 Unicode 引号作者:Markus Kuhn(向下滚动到“问题”),以及upquote 包

相应的结果是:

  1. 如果你在 TeX 中输入非 ASCII 字符,TeX 会误解这些字符,而且(在我看来这是一个严重的设计缺陷)甚至不会大声抱怨:你必须查看文件.log。为了避免意外发生这种情况,

    • 放在\tracinglostchars=2所有文件的顶部(并使用 eTeX 衍生引擎;你pdftex使用的就可以),和/或

    • .log每当 TeX 说“(查看转录文件获取更多信息)”时,总是查看文件

  2. 当你看到TeXbook,您应该将其理解为(并将其输入为)“ and ”,尽管根据 Unicode 和现代字体这显然是错误的——将其视为这些字体的怪癖。

额外提示:如果您只想使用 Unicode 字符,而不想使用旧的 hack 来实现双引号和使用 ASCII 字符连字符的破折号等功能,则可以使用 Unicode 引擎,例如 XeTeX 或 LuaTeX。这里有一个适用于此处示例的文件;使用xetex或进行编译luatex

\tracinglostchars=2
% \input luaotfload.sty % Uncomment this line if using LuaTeX
\font\tenrm="[lmroman10-regular]" at 10pt
\rm
Alice said, “I always use an en-dash instead of a hyphen when specifying 
page numbers like ‘480–491’ in a bibliography.”
\bye

(当然,您必须记住使用短划线而不是连字符,并且在编辑输入文件时使用可以轻松分辨出差异的字体。)

相关内容