在下面的例子中,该行在\renewcommand\emshape
一台使用 Kile 的 Linux 计算机上运行良好,但在另一台也使用 Kile 的 Linux 计算机上必须被注释掉。
文件之间没有其他差异,也没有已知计算机之间的差异。
错误信息是Command \emshape undefined
。
\documentclass[a4paper,12pt]{letter}
\usepackage{fontspec}
\usepackage{graphicx}
\usepackage{wrapfig}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{UnifrakturMaguntia16}
\renewcommand\emshape{\addfontfeature{LetterSpace=20.0,Ligatures=Required,Ligatures=NoCommon}}
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\begin{document}
\begin{letter}{Fred,}
\address{The earth}
\opening{Hi,}
Lots of waffle
\end{letter}
\end{document}
答案1
的管理\emph
从 2018 年变为 2019 年。所以猜测是一台计算机有 TeX Live 2018(或更早版本),另一台计算机有 TeX Live 2019(或更高版本)。
您可以检查日志文件的第一行:您会看到类似的内容
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018)
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019)
This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020)
取决于您在机器上运行的发行版。
您可以使代码在两种环境中运行:
\documentclass[a4paper,12pt]{letter}
\usepackage{fontspec}
%\defaultfontfeatures{Ligatures=TeX} % not needed
\setmainfont[
Path=./UnifrakturMaguntia.2017-03-19/switched-on_features/,
Extension=.ttf,
]{UnifrakturMaguntia16}
\ifdefined\emshape
\renewcommand\emshape{%
\addfontfeature{LetterSpace=20.0,Ligatures={Required,NoCommon}}%
}
\else
\DeclareEmphSequence{%
\addfontfeature{LetterSpace=20.0,Ligatures=Required,Ligatures=NoCommon},
% possibly other levels
}
\fi
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\begin{document}
\begin{letter}{Fred,}
\address{The earth}
\opening{Hi,}
Lots of \emph{waffle}
\end{letter}
\end{document}
Path
和的设置Extension
是因为我没有 UnifrakturMaguntia 作为系统字体,请根据您的需要调整调用。
两台机器的输出相同。