Letterspacing、Minion Pro 和 Tufte-LaTeX(页眉问题)

Letterspacing、Minion Pro 和 Tufte-LaTeX(页眉问题)

我正在尝试将 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}

相关内容