通过命令固定下标和上标的位置

通过命令固定下标和上标的位置

我一直在使用以下\subsup命令

\newcommand{\subsup}{
\makeatletter
\AtBeginDocument{
\check@mathfonts
\fontdimen16\textfont2=2.5pt
\fontdimen17\textfont2=2.5pt
\fontdimen14\textfont2=4.5pt
\fontdimen13\textfont2=4.5pt}
\makeatother}

以便在数学模式下更改下标和上标的默认位置。我\subsup在需要时使用了该命令,并且使用 MikTex 进行编译。

\documentclass{article}
\usepackage{amsmath}
\usepackage[lite]{mtpro2}

\newcommand{\subsup}{
\makeatletter
\AtBeginDocument{
\check@mathfonts
\fontdimen16\textfont2=2.5pt
\fontdimen17\textfont2=2.5pt
\fontdimen14\textfont2=4.5pt
\fontdimen13\textfont2=4.5pt}
\makeatother}

\subsup
\begin{document}
\[ x_A \]
\end{document}

当我切换到 TexLive 时出现以下错误

Package amsmath Error: \check allowed only in math mode. \begin{document} Font \nullfont has only 7 fontdimen parameters. \begin{document}

为了解决这个问题,我必须调用相同的代码,而不使用命令\subsup,只需将其放在前面即可\begin{document}

\documentclass{article}
\usepackage{amsmath}
\usepackage[lite]{mtpro2}

\makeatletter
\AtBeginDocument{
\check@mathfonts
\fontdimen16\textfont2=2.5pt
\fontdimen17\textfont2=2.5pt
\fontdimen14\textfont2=4.5pt
\fontdimen13\textfont2=4.5pt}
\makeatother
\begin{document}
\[ x_A \]
\end{document}

是否有另一种简单的方法通过命令使用此代码?

答案1

您在错误的地方更改了 catcode,\makeatletter这里没有任何效果

\newcommand{\subsup}{
\makeatletter
\AtBeginDocument{
\check@mathfonts
\fontdimen16\textfont2=2.5pt
\fontdimen17\textfont2=2.5pt
\fontdimen14\textfont2=4.5pt
\fontdimen13\textfont2=4.5pt}
\makeatother}

你要

\makeatletter
\newcommand{\subsup}{
\AtBeginDocument{
\check@mathfonts
\fontdimen16\textfont2=2.5pt
\fontdimen17\textfont2=2.5pt
\fontdimen14\textfont2=4.5pt
\fontdimen13\textfont2=4.5pt}
}
\makeatother

相关内容