emshape 未定义

emshape 未定义

在下面的例子中,该行在\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 作为系统字体,请根据您的需要调整调用。

两台机器的输出相同。

在此处输入图片描述

相关内容