![如何实现在强大的命令中下标/上标随着字体大小缩放?](https://linux22.com/image/465645/%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E5%9C%A8%E5%BC%BA%E5%A4%A7%E7%9A%84%E5%91%BD%E4%BB%A4%E4%B8%AD%E4%B8%8B%E6%A0%87%2F%E4%B8%8A%E6%A0%87%E9%9A%8F%E7%9D%80%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F%E7%BC%A9%E6%94%BE%EF%BC%9F.png)
我想在用户定义的 LaTeX 命令中使用较小的字体作为下标和上标。您知道如何按比例缩小下标/上标吗?我的 MWE 如下:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{ifmtarg}
\newcommand{\defineSpecies}[2]{\csdef{spec@#1}{#2}}
\newrobustcmd{\spec}[1]{%
\ifcsname spec@#1\endcsname%
\csuse{spec@#1}%
\else
\GenericError{}{Undefined species `#1'}{}{}
\fi
}
\defineSpecies{hhe3+}{HHe$_3^+$}
\begin{document}
\fontsize{5}{6}\selectfont
\spec{hhe3+}
\end{document}
在这里,我希望下标3
和上标小得多+
。最好采用全局修改命令的解决方案\spec{}
,因为我有很多物种都是这样定义的。我不会切换到其他“化学”包,而是坚持使用此命令。
答案1
我假设你的问题是
我将文本字体大小更改为 5pt,但现在上标和下标看起来太大;我该如何更改它们以匹配?
由于您使用数学模式创建上标/下标,因此需要更改数学大小。这是\DeclareMathSizes{}{}{}{}
通过命令完成。在下面的例子中,我将脚本大小更改为 3pts,将脚本大小更改为 2pts。
(顺便说一句,由于你没有指定花哨的字体,我们使用 Computer Modern,它不允许任意缩放;为了解决这个问题,我们加载fix-cm
。
\RequirePackage{fix-cm}
\documentclass{article}
\usepackage{etoolbox}
\usepackage{ifmtarg}
\newcommand{\defineSpecies}[2]{\csdef{spec@#1}{#2}}
\newrobustcmd{\spec}[1]{%
\ifcsname spec@#1\endcsname%
\csuse{spec@#1}%
\else
\GenericError{}{Undefined species `#1'}{}{}
\fi
}
\defineSpecies{hhe3+}{HHe$_3^+$}
\DeclareMathSizes{5}{5}{3}{2}
\begin{document}
\fontsize{5}{6}\selectfont
\spec{hhe3+}
\end{document}