我正在尝试将 Minion Pro 与 Tufte-LaTeX 类一起使用。基本上,我已经让它工作了,但我在调整运行页眉的小写字母间距时遇到了问题。它不是以小写字母显示(如果我使用 Tufte-LaTeX 默认 Palatino 则会出现这种情况),而是以常规小写字母显示。
这是一个简单的例子:
\documentclass[nols,nofonts]{tufte-book}
\usepackage[MnSymbol]{mathspec}
\setprimaryfont{Minion Pro}
\setmainfont[Mapping=tex-text]{Minion Pro}
\usepackage{lipsum}
\title{Lorem ipsum}
\begin{document}
\mainmatter
\chapter{The origins of Lorem Ipsum}
\lipsum
\end{document}
控制台中出现以下警告:“类 tufte-book 警告:输入行 16 上未设置小写字母的正确间距”,这已经足够清楚了,但我不知道如何修复它。Tufte-LaTeX 示例书指出“Tufte-LATEX 类尝试加载适当的字母间距包(pdfTEX 的 letterspace 包或 soul 包)。但是,如果您将 XeLaTeX 与 fontenc 一起使用,则应该配置自己的字母间距。”但(相当合理)没有提供更多详细信息。
我已经找到了如何使用 fontspec(在我的示例中由 mathspec 加载)来更改特定文本块的字母间距的示例,但我还无法弄清楚如何全局设置小型大写字母文本的字母间距。
任何帮助,将不胜感激。
答案1
Tufte-LaTeX 类定义了两个命令来设置\allcaps
和 的间距\smallcaps
。这些命令称为\allcapsspacing
和\smallcapsspacing
。(我承认,我并不是很有创造力。)
您可以定义这些命令以使用包提供的字母间距功能fontspec
。这是一个完整的示例。您可以随意调整间距以适合您的字体。
\documentclass{tufte-handout}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}% or Minion Pro or what have you
% Set up the spacing using fontspec features
\renewcommand\allcapsspacing[1]{{\addfontfeature{LetterSpace=15}#1}}
\renewcommand\smallcapsspacing[1]{{\addfontfeature{LetterSpace=10}#1}}
\begin{document}
NATIVE ALL CAPS WITHOUT SPACING
\allcaps{ALL CAPS WITH SPACING}
{\scshape Native small caps without spacing}
\smallcaps{Small caps with spacing}
\end{document}
答案2
也许您想默认启用间距:
\renewcommand{\allcapsspacing}[1]{{\addfontfeature{LetterSpace=20.0}#1}}
\renewcommand{\smallcapsspacing}[1]{{\addfontfeature{LetterSpace=5.0}#1}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}
\renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}
这样,所有小型大写字母都会自动留有空格。
答案3
我这里没有你的字体。但可以使用 SmallCapsFeatures(令人惊讶)设置小写字母的功能。
\documentclass{article}
\usepackage{fontspec}
\setmainfont[SmallCapsFeatures={LetterSpace=50}]{Linux Libertine O}
\begin{document}
abc \textsc{Abc}
\end{document}