我想在用户定义的 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}