XeTeX 似乎破坏了 Tufte 讲义中的标题

XeTeX 似乎破坏了 Tufte 讲义中的标题

使用 Tufte-Handout 类(以及 XeTeX)时,我在第 2 页及之后的页面上看到以下混乱的连续页眉fontspec。页眉重复了标题,然后添加了一个黑框。

标头错误

出现了很多错误,首先是:

Latex Error: ./MinimalExample.tex:13 Argument of \MakeTextLowercase has an extra }.
Runaway argument?

以下是产生此错误的最简文档。感谢您的任何建议。

\documentclass[nofonts]{tufte-handout}
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setromanfont[Mapping=tex-text]{Adobe Caslon Pro}
\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{Helvetica}
\setmonofont[Scale=MatchLowercase]{Inconsolata}
\usepackage{lipsum}
\title{Problem Document Title}
\author{Author Name}
\date{\today}
\begin{document}
\maketitle
\lipsum[1-10]
\end{document}  

答案1

据说tufte-common.def,如果使用 XeLaTeX,将会使用它的字母间距功能,但作者忘记这样做了,因此soul使用了后备机制,但最终失败了。

修复定义:

\documentclass[nofonts]{tufte-handout}
\usepackage{fontspec}
\usepackage{ifxetex}
\setmainfont{Minion Pro}
\usepackage{lipsum}

\ifxetex
  \newcommand{\textls}[2][5]{%
    \begingroup\addfontfeatures{LetterSpace=#1}#2\endgroup
  }
  \renewcommand{\allcapsspacing}[1]{\textls[15]{#1}}
  \renewcommand{\smallcapsspacing}[1]{\textls[10]{#1}}
  \renewcommand{\allcaps}[1]{\textls[15]{\MakeTextUppercase{#1}}}
  \renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}
  \renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}
\fi


\title{Problem Document Title}
\author{Author Name}
\date{\today}
\begin{document}
\maketitle

\allcaps{Abcdef}\\
\smallcaps{Abcdef}\\
\textsc{Abcdef}

\lipsum[1-10]
\end{document}  

使用 LuaLaTeX 检查编译后的值。

在此处输入图片描述

在此处输入图片描述

如果您想使用 LuaLaTeX,可以使用\ifluatex(来自包)。如果您想要适用于两个引擎的代码,请参阅ifluatex将 \ifxetex 和 \ifluatex 与逻辑或运算相结合

相关内容