我长期使用 LaTeX,并且已经建立了一个非常高效的工作流程来编写 LaTeX 文档,但是我几乎错过了整个“替代”和“增强”的 LaTeX 替代品浪潮,如 LuaTeX 和 XeTeX。我一直想尝试一种新的排版引擎,但我只想切换到我可以长期使用的引擎。
对于为科学写作的人来说,从 LaTeX 转换过来的有效途径是什么,从而将生产力的下降降到最低?特别是,现有的 LaTeX 软件包(最令人感兴趣的 - 出版商特定的软件包,如revtex
)与 LaTeX 替代品的接口有多好?为科学出版物或工程文档写作的人会发现其他 *TeX 有什么明显的优势吗?
答案1
xelatex
使用或lualatex
(我个人最喜欢的)代替的主要优点pdflatex
是:
- 你获得了原生的 utf8 兼容性,
- 您可以使用任何 OpenType 和 TrueType 字体,即基本上任何字体,
- 您可以使用高级字体功能,例如特殊连字、替代字形等,并且
- 你可以轻松地在 TeX 文件中添加代码脚本,这些脚本甚至可以访问 TeX 内部代码(
lualatex
仅限勇敢者 :)), - 你切换到现代 TeX 引擎,无论如何有一天你必须这样做(据我所知
lualatex
,它是 TeX 的官方继任者pdflatex
)。
至于缺点/不兼容性,在我看来,没有真正的技术障碍可以阻止人们进行切换:
pstricks
不起作用,但pgf/tikz
无论如何都更好,- 的大多数功能
microtype
现已可用(在 下lualatex
,只有字符凸出在 下可用xelatex
),其余一些功能正在开发中, polyglossia
目前还不是完美的替代品,babel
但在我看来,它也不是最出色的替代品,- 上次我检查时,
xe
“-/” 的lualatex
替换CJK
尚未达到其标准,但对于大多数西方用户来说,这并不重要(我认为你也是)。
所以我认为最大的问题不是某物阻止您迁移,但是某人:大多数期刊只接受pdflatex
兼容的输入,并且可能是最后一个做出改变的,你的论文导师太老了,学不到新东西,你的同事太懒了,... :(
有关从pdflatex
到xe
- 或 的切换的详细列表lualatex
,请检查以下问题:
答案2
您必须在文档中更改一些内容,例如fontenc
软件包。此外,还有一些软件包无法使用或功能有限(至少目前如此),例如 microtype。与 pdflatex 相比,LuaLaTex 的编译需要很长时间(至少根据我的经验)。
另一方面,您可以使用系统上安装的任何字体,并且有一些软件包仅适用于 LuaLaTex。当然,您可以将 lua 与 LuaLaTex 一起使用,与使用 (La)TeX 编程相比,这确实很容易。
答案3
这不是一个两者任一因为这是特定功能的需求,正如 Xavier 所总结的那样。没有太大区别。例如,使用 XeLaTeX/LuaLaTeX,您可以更轻松地选择系统字体,但使用 XeLaTeX 时您会缺少一些microtype
功能(这是它最大的缺点)。在我的系统上,XeLaTeX 和 LuaLaTeX 在处理大型文档时速度都明显较慢。所以有时我在起草时使用 pdfLaTex,并在最后切换到 XeLaTeX。
制作可以与不同 TeX 风格一起使用的文档非常容易,例如使用包iftex
。
这是有关引擎的各种文档的示例。
\documentclass[paper=a6]{scrartcl}
\usepackage[english]{babel}
\usepackage{iftex}
\ifPDFTeX% when compiling with pdflatex
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[largesmallcaps, fulloldstylenums, widermath]{kpfonts}
\else% when compiling with xe- or lualatex
\usepackage[math-style=ISO]{unicode-math}
\usepackage{fontspec}
\defaultfontfeatures{Numbers=OldStyle}
\setmathfont[Scale=MatchLowercase]{TeX Gyre Pagella Math}
\fi
\addtokomafont{section}{\rmfamily\ifPDFTeX\else\addfontfeatures{Numbers={Lining}}\fi}
\begin{document}
\section{Hello World}
This is \ifPDFTeX Kpfonts \else Linux Libertine and \TeX{} Gyre
Pagella Math \fi
\(y=x^2+\epsilon\)
\end{document}