用于数学和下标的不同字体的宏

用于数学和下标的不同字体的宏

是否可以定义一个宏(在数学模式下)以不同的字体排版正常数学和下标?

具体来说,我感兴趣的是将数学符号排版为罗马体,将下标排版为斜体,这样

$\mymacro{A_pB_r}$

会导致

enter image description here


针对一个答案,让我澄清一下,希望这对一般参数字符串同样有效(至少只要它只包含字符和字母数字下标),例如 $A_pB_r$、$ABC_s$、$A_xBC_y$ 等等。显然,这可以分解为带有 & 不带下标的单个字母,但这会使所涉及的表达式非常繁琐且冗长。

答案1

enter image description here

\documentclass{article}

\def\mymacro#1{\mbox{$\textfont1=\textfont0 #1$}}

\begin{document}

$\mymacro{A_pB_r}$

\end{document}

答案2

unicode-math包通过选项支持这一点\setmathfont[script-font = ...]。下面是一个将脚本字体设置为 XITS Math 的虚构示例:

\documentclass[varwidth, preview]{standalone}
\usepackage{unicode-math}

\setmathfont[Scale = MatchLowercase,
             script-font = XITS Math
            ]{Latin Modern Math}

\begin{document}
\( t_x + \beta_\rho = b_a
\)
\end{document}

Latin Modern Math, XITS scripts

为了进行比较,使用默认设置:

Latin Modern Math

根据unicode-math手册第 4.2 节,这旨在与 Minion Math 等字体一起使用。但是,一些文本字体系列将较小的尺寸打包为不同的字体,例如,使用 Aldus 作为 Palatino 的脚本大小。

如果您的字体具有光学尺寸但没有数学脚本尺寸,则您可以选择带有script-features和的字体sscript-features

预计到达时间

可以在文档中间更改数学字体或拥有多个数学版本。如果您只想设置特定字体中的几个下标,一种方法是_\text{...},然后在括号内使用文本模式字体选择命令。根据需要,可以选择将其包装在\mathord{}或中\mathop{}。如果您多次执行此操作,请在序言中将其设为命令。

答案3

也许吧?这肯定不是最好的答案,但(至少)是一个建议……

\documentclass{article}
\usepackage{amsmath,amssymb,amsfonts}
\newcommand{\mycom}[2]{\mathrm{#1}_{#2}}
\begin{document}
    \Huge
    \[
        \mycom{A}{p} \ \mycom{B}{r}
    \]
\end{document}

输出如下:

Screenshot

相关内容