我进行了两次调用,但似乎只有最后一个值\lRaise
进入了函数,因此两个框都提高了 -5pt:
\newlength{\lRaise}
\setlength{\lRaise}{-0.97pt}
\psfrag{low-order}[B][][0.8]{\raisebox{\lRaise}{молодший}}
\setlength{\lRaise}{-5pt}
\psfrag{high-order}[B][][0.8]{\raisebox{\lRaise}{старший}}
每个文档我都会有很多这样的调用。如何传递所有的值\lRaise
?
编辑:回答评论:
\newlength{\lOriginal}
\newlength{\lLocal}
\newlength{\lRaise}
\newcommand{\psfragtrans}[2]{
\settodepth{\lOriginal}{#1}
\settodepth{\lLocal}{#2}
\ifdim\lLocal>\lOriginal\setlength{\lRaise}{\dimexpr(\lOriginal-\lLocal)/2\relax}\else\setlength{\lRaise}{0pt}\fi
\psfrag{#1}[B][][0.8]{\raisebox{\lRaise}{#2}}
}
答案1
排版 PS 字符串有点奇怪,但无论如何
\newlength{\lOriginal}
\newlength{\lLocal}
\newlength{\lRaise}
\newcommand{\psfragtrans}[2]{%%%%
\settodepth{\lOriginal}{#1}%%%%
\settodepth{\lLocal}{#2}%%%%
\ifdim\lLocal>\lOriginal\setlength{\lRaise}{\dimexpr(\lOriginal-\lLocal)/2\relax}\else\setlength{\lRaise}{0pt}\fi
\def\tmp##1{\psfrag{#1}[B][][0.8]{\raisebox{##1}{#2}}}%%%%
\expandafter\tmp\expandafter{\the\lRaise}%%%%%
}