使用 isomath 强制直立希腊字母

使用 isomath 强制直立希腊字母

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 标准表示向量和矩阵。也可以使用直立字母。需要 isomathOML 字体编码。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。加载eulervmeulerpx也会将拉丁字母设置为直立,但有些软件包有一个选项,例如eulergreek只将希腊字母设置为 Euler。stixstix2软件包支持 中的希腊字母。\mathrm中也有一个直立希腊字体fourier。这些都不兼容isomath或未在其手册中列出,因为它们使用 OML 以外的编码。

lucidamatx软件包支持math-style=upright。 该mathdesign软件包支持greeklowercase=upright

kpfonts软件包mathdesign支持命令\alphaup\Omegaupupgreek软件包支持\upalpha\upOmega。 两者newtxmathnewpxmath支持\upGamma以及 等\Gammaupfourier软件包支持\otheralpha\otherOmega

如果使用isomath,您可以加载mathdesign然后\usepackage[OMLmathrm]{isomath},或者获取数学设计字体,例如,\usepackage[OMLmathrm, rmdefault=mdput]{isomath}Math Design Utopia,或者使用 加载直立 OML 数学字体\SetMathAlphabet。请参阅手册中的表 3,isomath了解 OML 中的直立系列。(如果您加载mathdesign,我建议您加载erewhongaramondx或者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\]

直立的希腊字母

相关内容