使用 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 与逻辑或运算相结合