mathpazo 旧式图形和 eulervm:我想要数学中的衬线图形

mathpazo 旧式图形和 eulervm:我想要数学中的衬线图形

我希望在文本中使用带有小型大写字母和旧式数字的 Palatino,在数学中使用带有欧拉数字的 Euler。

如果我使用 \usepackage[sc,osf]{mathpazo} 无 eulervm我在文本模式下得到旧式图形,在数学模式下得到衬线图形,这正是我想要的。

如果我添加, \usepackage[euler-digits]{eulervm} 我会在文本模式下获得旧式数字、欧拉数字 \mathnormal\mathbold pazo古式人物对于 \mathrm\mathit\mathbf,我并不想这样做。

\mathrmeulervm 似乎将、 \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

相关内容