该isomath
包可以通过\mathrm
和排版直立希腊字母\mathbf
。是否可以强制所有希腊字母都排版直立,除非另有规定,例如使其\(\Phi \Psi\)
提供与 相同的输出\(\mathrm{\Phi \Psi}\)
?理想的解决方案是加载isomath
一些选项,如果它可以选择区分大小写希腊字母。
\documentclass{article}
\usepackage{isomath}
\begin{document}
\(\Phi \Psi\)% These are typeset in italic
\(\mathrm{\Phi \Psi}\)% These are typeset upright
\end{document}
答案1
你不需要等积包裹:
\DeclareMathSymbol{\Gamma}{\mathalpha}{operators}{0}
\DeclareMathSymbol{\Delta}{\mathalpha}{operators}{1}
\DeclareMathSymbol{\Theta}{\mathalpha}{operators}{2}
\DeclareMathSymbol{\Lambda}{\mathalpha}{operators}{3}
\DeclareMathSymbol{\Xi}{\mathalpha}{operators}{4}
\DeclareMathSymbol{\Pi}{\mathalpha}{operators}{5}
\DeclareMathSymbol{\Sigma}{\mathalpha}{operators}{6}
\DeclareMathSymbol{\Upsilon}{\mathalpha}{operators}{7}
\DeclareMathSymbol{\Phi}{\mathalpha}{operators}{8}
\DeclareMathSymbol{\Psi}{\mathalpha}{operators}{9}
\DeclareMathSymbol{\Omega}{\mathalpha}{operators}{10}
要获得斜体 Gamma,请使用\mathnormal{\Gamma}
。尝试
$\Gamma\mathnormal{\Gamma}\mathbf{\Gamma}$
该命令\DeclareMathSymbol
用于在数学模式下为字符或命令分配含义。第二个参数包含符号的“种类”;\mathalpha
表示遵循字母选择命令的符号。第三个参数是默认使用的字母;第四个参数是字体中的插槽。所有标准声明都fontmath.ltx
在格式创建时加载。
请注意,如果文档的默认字体编码是 T1 而不是 OT1(指普通的罗马文档字体),这些声明将不起作用operators
。在这种情况下,应该定义一个新的数学字母表。
当文档编码为 T1 时该怎么做?必须定义一个新的符号字体:
\DeclareSymbolFont{otone}{OT1}{cmr}{m}{n}
\SetSymbolFont{bold}{otone}{OT1}{cmr}{m}{n}
\DeclareMathSymbol{\Gamma}{\mathalpha}{otone}{0}
\DeclareMathSymbol{\Delta}{\mathalpha}{otone}{1}
\DeclareMathSymbol{\Theta}{\mathalpha}{otone}{2}
\DeclareMathSymbol{\Lambda}{\mathalpha}{otone}{3}
\DeclareMathSymbol{\Xi}{\mathalpha}{otone}{4}
\DeclareMathSymbol{\Pi}{\mathalpha}{otone}{5}
\DeclareMathSymbol{\Sigma}{\mathalpha}{otone}{6}
\DeclareMathSymbol{\Upsilon}{\mathalpha}{otone}{7}
\DeclareMathSymbol{\Phi}{\mathalpha}{otone}{8}
\DeclareMathSymbol{\Psi}{\mathalpha}{otone}{9}
\DeclareMathSymbol{\Omega}{\mathalpha}{otone}{10}
当然cmr
可以更改为文档的主要字体系列名称,只要它的 OT1 版本包含希腊大写字母;但这只是为所选字体提供正确的插槽号的问题。
答案2
isomath
被编写用于将数学样式设置为“ISO 数学样式”,正如包的作者所说。本质上,这意味着可以将希腊字母(以及非希腊字母)排版为粗体斜体,以根据 ISO 标准表示向量和矩阵。也可以使用直立字母。需要
isomath
OML 字体编码。isomath
文档(2011-01-14)指出:
目前只有该
mathdesign
包提供 OML 编码的直立字体。
因此,还需要加载此包才能获得正确的字体。否则,LaTeX 可能会显示完全不同的字符。
基于包文档中的代码片段的示例可能是:
\documentclass[12pt,a4paper]{article}
\usepackage[utopia]{mathdesign}
\usepackage[OMLmathrm,OMLmathbf]{isomath} % options define which alphabets will be loaded, i.e. if bold face font is not necessary, `OMLmathbf` can be ommitted.
\begin{document}
$\Gamma$ $\mathrm{\Gamma}$ $\mathbf{\Gamma}$ $\mathbfit{\Gamma}$
$\pi$ $\mathrm{\pi}$ $\mathbf{\pi}$ $\mathbfit{\pi}$
\end{document}
输出将是:
似乎通过 定义新的数学字母isomath
会导致错误。要避免这种情况,请使用选项 加载包reuseMathAlphabets
。
已知不兼容性:fourier
软件包
答案3
一种较旧的带有直立希腊字母的字体是 AMS Euler。加载eulervm
或eulerpx
也会将拉丁字母设置为直立,但有些软件包有一个选项,例如eulergreek
只将希腊字母设置为 Euler。stix
和stix2
软件包支持 中的希腊字母。\mathrm
中也有一个直立希腊字体fourier
。这些都不兼容isomath
或未在其手册中列出,因为它们使用 OML 以外的编码。
该lucidamatx
软件包支持math-style=upright
。 该mathdesign
软件包支持greeklowercase=upright
。
和kpfonts
软件包mathdesign
支持命令\alphaup
– \Omegaup
。upgreek
软件包支持\upalpha
– \upOmega
。 两者newtxmath
和newpxmath
支持\upGamma
以及 等\Gammaup
。fourier
软件包支持\otheralpha
– \otherOmega
。
如果使用isomath
,您可以加载mathdesign
然后\usepackage[OMLmathrm]{isomath}
,或者获取数学设计字体,例如,\usepackage[OMLmathrm, rmdefault=mdput]{isomath}
Math Design Utopia,或者使用 加载直立 OML 数学字体\SetMathAlphabet
。请参阅手册中的表 3,isomath
了解 OML 中的直立系列。(如果您加载mathdesign
,我建议您加载erewhon
,garamondx
或者XCharter
之后修复其文本字体的一些错误。)
我建议你unicode-math
尽可能使用 LuaTeX,必要时使用传统数学字体。所有 OpenType 数学字体都包含你可以使用的直立希腊字母,例如,\symup{\pi}
或\muppi
。\uppi
你还可以为unicode-math
软件包提供为mathrm=sym
制作\mathrm{\pi}
别名的选项\symup{\pi}
。如果你这样做,你应该\setoperatorfont
并确保写\textnormal{iff}
,而不是\mathrm{iff}
。最后,你可以给出unicode-math
选项math-style=upright
。
答案4
一种可能性是加载mathdesign
后 isomath
因为默认为大写希腊字母mathdesign
(与许多其他包和类一样)。我注意到,小写希腊字母也可以使用greeklowercase=upright
选项默认变为大写mathdesign
。
\documentclass{article}
\usepackage{isomath}
\usepackage[utopia]{mathdesign}
\begin{document}
\[\Gamma\Delta\Theta\Phi\Psi
\quad
\mathit{\Gamma\Delta\Theta\Phi\Psi}
\quad
\Gammait\Deltait\Thetait\Phiit\Psiit\]