![Palatino 带有文本图形,不处于数学模式或标题](https://linux22.com/image/246968/Palatino%20%E5%B8%A6%E6%9C%89%E6%96%87%E6%9C%AC%E5%9B%BE%E5%BD%A2%EF%BC%8C%E4%B8%8D%E5%A4%84%E4%BA%8E%E6%95%B0%E5%AD%A6%E6%A8%A1%E5%BC%8F%E6%88%96%E6%A0%87%E9%A2%98.png)
我正在处理一个包含大量数学内容的文档,但也包含数学模式之外的数字。我希望这些数字显示为旧式/文本图形。我还想要 Palatino 类型的字体( 或mathpazo
)tgpagella
。使用tgpagella
withtextcomp
会显示文本图形,但数学模式会以常规的 Computer Modern 字体显示。使用mathpazo
with[osf]
选项会让我在所有地方都看到文本图形——甚至在标题、标题和数学模式中,这些地方本不该出现。我似乎无法弄清楚如何将文本和衬线图形与 Palatino 类数学字体混合使用。
答案1
这是一个 XeLaTeX 解决方案:
\documentclass{article}
% Load mathpazo as a math font
\usepackage{mathpazo}
% Load Pagella as a text font by specifying no-math to fontspec
\usepackage[no-math]{fontspec}
\setmainfont[Numbers=OldStyle]{TeX Gyre Pagella}
\begin{document}
Some numbers outside math mode: 1 2 3 4 5
Some numbers in math mode: $1 2 3 4 5$
\end{document}
对于标题来说,它的作用是一样的(如果您不想要旧式数字,请使用数学模式)。
编辑:OSF 在页眉和标题中很好,除非你用全大写字母书写(与罗马字母、粗体、斜体和小写字母不同)。自动在那里放置内衬数字需要做相当多的工作(例如重新定义节标题),我认为这不太值得——尤其是因为结果会不是印刷正确。