我希望在文本中使用带有小型大写字母和旧式数字的 Palatino,在数学中使用带有欧拉数字的 Euler。
如果我使用 \usepackage[sc,osf]{mathpazo}
无 eulervm我在文本模式下得到旧式图形,在数学模式下得到衬线图形,这正是我想要的。
如果我添加, \usepackage[euler-digits]{eulervm}
我会在文本模式下获得旧式数字、欧拉数字 \mathnormal
和 \mathbold
pazo古式人物对于 \mathrm
、 \mathit
和 \mathbf
,我并不想这样做。
\mathrm
eulervm 似乎将、 \mathit
和 的 字体“切换回”文本字体(带有旧式数字) \mathbf
。我希望它“切换回”衬线数字字型。
我怎样才能得到
- pazo 的文本模式旧式图形,
- 数学模式下的欧拉数字
\mathnormal
, - 帕佐衬线数字在数学模式下
\mathrm
,,\mathit
和\mathbf
?
我确实不想要数学模式中的旧式数字。
%%%% ECM mathpazo osf 和 eulervm
\documentclass{minimal}
\usepackage[utf8]{inputenc}
% mathpazo osf alone gives old-style figures in text mode
% and lining figures in math mode :-)
\usepackage[sc]{mathpazo}
% eulervm 'switch back' to pazo's old-style figres :-(
\usepackage[euler-digits]{eulervm}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\begin{document}
Mathpazo text: 1234567890 old-style figures OK.
Euler math with euler-digits:
\begin{align*}
1234567890 \qquad &\text{mathnormal: euler-digits OK} \\
\mathrm{1234567890} \qquad &\text{mathrm: pazo old-style figures KO} \\
\mathit{1234567890} \qquad &\text{mathit: pazo old-style figures italic KO} \\
\mathbf{1234567890} \qquad &\text{mathbf: pazo old-style figures bold KO} \\
\mathbold{1234567890} \qquad &\text{mathbold: euler-digits OK}
\end{align*}
\end{document}
%%%% ECM 结束
答案1
您必须对数学字母使用“衬线数字”字体:在之前添加以下几行\begin{document}
:
\DeclareSymbolFont{operators}{\encodingdefault}{ppl}{m}{n}
\DeclareMathAlphabet{\mathbf}{\encodingdefault}{ppl}{bx}{n}
\DeclareMathAlphabet{\mathit}{\encodingdefault}{ppl}{m}{it}
\mathrm
因此,\mathbf
和选择的字母\mathit
将使用系列ppl
而不是默认系列。
例子
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[sc,osf]{mathpazo}
\usepackage[euler-digits]{eulervm}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\DeclareSymbolFont{operators}{\encodingdefault}{ppl}{m}{n}
\DeclareMathAlphabet{\mathbf}{\encodingdefault}{ppl}{bx}{n}
\DeclareMathAlphabet{\mathit}{\encodingdefault}{ppl}{m}{it}
\begin{document}
Mathpazo text: 1234567890 old-style figures OK.
Euler math with euler-digits:
\begin{align*}
1234567890 \qquad &\text{mathnormal: euler-digits OK} \\
\mathrm{1234567890} \qquad &\text{mathrm: pazo old-style figures OK} \\
\mathit{1234567890} \qquad &\text{mathit: pazo old-style figures italic OK} \\
\mathbf{1234567890} \qquad &\text{mathbf: pazo old-style figures bold OK} \\
\mathbold{1234567890} \qquad &\text{mathbold: euler-digits OK}
\end{align*}$
\end{document}
答案2
也许一个更简单的解决方案是指示 latex 直接使用 palatino,而不是仅使用 mathpazo 提供的少量功能?
\renewcommand{\rmdefault}{pplj} %palatino with old style numbers in text
\linespread{1.05} % Palatino needs more leading (space between lines)
\usepackage[euler-digits]{eulervm} %keep nicer euler digits
\usepackage[T1]{fontenc} %set to newer output font encoding