我一直在使用以下\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