如果主要用英语撰写文档,使用 XeTeX 或 LuaTeX 有什么好处吗?

如果主要用英语撰写文档,使用 XeTeX 或 LuaTeX 有什么好处吗?

我第一次接触 LaTeX 是在 2014 年本教程我决定研究pdfTeX引擎,因为这是我唯一了解的东西,而我完全是个新手。
最近,我开始阅读 Tobias Oetiker 的LaTeX 的简单介绍来自 CTAN 并意识到我一直不知道很多东西的存在,例如包polyglossia以及XeTeXLuaTeX

我对这两个新引擎非常好奇,并开始浏览这个网站以了解更多信息。据我所知,这两个引擎原生支持 UTF-8 编码,但我通常用英语和马达加斯加语排版文档。因此,ASCII 字符对我的日常使用来说已经足够了。除了日常使用外,我还计划使用 LaTeX 排版我最后一年的论文(英文)。

综上所述,我很好奇,想知道我是否应该有理由开始使用这两个引擎中的任何一个,或者它们是否pdfTeX足以满足我的预期用途,以及我是否应该坚持使用它。

答案1

其优点包括:

  • 能够使用unicode-math、复制、粘贴和搜索数学符号
  • 不局限于十六个数学字母
  • 无需处理 8 位甚至 7 位文本编码
  • 能够在源代码中输入符号并让它们工作,而无需进行大量设置来声明它们处于活动状态
  • 您可以在机器上使用任何字体,无需复杂地转换为 Type 1 格式
  • 某些 LaTeX3 接口仅在引擎原生支持 Unicode 时才能正常运行
  • 即使在英语中,您也经常会使用非 ASCII 字符,例如左引号和卷曲引号、破折号、连字符和偶尔出现的重音符号。理论上,您可以使用 or 包使这些字符在 PDFLaTeX 中可复制和可搜索mmapcmap但我从未见过有人这样做,而且我经常看到论文中出现“di cult”之类的拼写错误,因为有人使用了没有 ffi 连字符的字体。
  • 您可以使用引擎的扩展,例如 XDV 输出(用于文档转换)和 Lua 脚本。

其主要应用是可访问性。如果读者可以识别某个符号,那么他就可以向有视力障碍的用户朗读该符号,还可以将其转换为其他格式。

答案2

回答如何使用以下方法摆脱 U+200B 字符pdflatex

顾名思义,“零宽度空格”(U+200B)是一个没有空格的空格,但您可以注意到该字符在那里,因为您需要按两次光标键才能转到下一个/上一个字符。

这会导致问题,因为与和pdflatex 不同,不知道如何处理它。xelatexlualatex

要清除它,您可以使用任何能够搜索和替换此字符的文本工具。仅作为示例,Linux 中的 Texworks 或 Gummi 允许使用以下命令输入该字符:

Ctrl+ Shift+u200BEnter

然后,您可以在搜索工具中复制并粘贴,并用其他字符替换,以查看它的位置。如果您遇到此问题,其他解决方案是告诉您该pdflatex怎么做。请考虑以下示例:

\documentclass{article}
\usepackage{xcolor}
\DeclareUnicodeCharacter{200B}{ \colorbox{yellow}{\sffamily\bfseries u+200B}
\typeout{}\typeout{WARNING: Bad character U+200B in the line \the\inputlineno}\typeout{}}
\begin{document}
a​b

cd

e​f

asasa
\end{document}

这将在日志文件中显示这些警告:

WARNING: Bad character U+200B in the line 6

WARNING: Bad character U+200B in the line 10

PDF 还会显示它们的位置:

姆韦

但也许更好的办法是保持现状,忘掉它:

\DeclareUnicodeCharacter{200B}{\hspace{0pt}} 

答案3

这是一个已经关闭的话题,但我想添加一个实际的例子。几年前,我想使用 LaTeX 通过 modercv 类编写简历。但通过那些申请人跟踪系统软件添加了一些 hck 来提高文档的机器可读性,这些软件会删除所有格式并保留文本。LaTeX 的连字符有时会破坏这种转换。而且我在简历上使用的一些图标也产生了问题。从 pdflatex 切换到 lualatex 解决了许多这些问题。大部分内容都记录在这篇旧帖子中 如何使用 moderncv 提高 LaTeX 创建的简历的机器可读性?

相关内容