LaTeX 中上下文相关的长度“单位”

LaTeX 中上下文相关的长度“单位”

我想在某些宏中包含一个“上下文敏感”的分隔空间(在某种意义上,当调用宏时,例如在下标内,分隔空间会相应减少)。

是否有任何特定命令可以产生这样的行为?

否则,我很想使用命令\phantom来模拟它,比如说:

\newcommand{\contextseparate}[2]{#1 \phantom{M} #2} 

最后一种方法可以接受吗?(出于某种原因,我觉得它很糟糕)

答案1

\ThisStyle{}如果您从包中嵌入宏定义scalerel,它会识别\LMpt\LMex作为与 Local-Math 大小一起缩放的长度。

\LMpt更具体地说,和的缩放因子\LMex是预定义的(但可以重置)为

\def\scriptstyleScaleFactor{0.7}
\def\scriptscriptstyleScaleFactor{0.5}

\textstyle显然,对于和,比例因子为 1。MWE \displaystyle

\documentclass{article}
\usepackage{scalerel}
\newcommand{\contextseparate}[2]{\ThisStyle{#1\kern1.5\LMex#2}} 
\begin{document}
$\contextseparate{A}{B}$\par
$\scriptstyle\contextseparate{A}{B}$\par
$\scriptscriptstyle\contextseparate{A}{B}$
\end{document}

在此处输入图片描述

如果您需要在无法访问的地方(例如,在框内)调用当前的数学样式,您可以调用它\SavedStyle来恢复关联开始时处于活动状态的样式\ThisStyle

\documentclass{article}
\usepackage{scalerel}
\newcommand{\contextseparate}[2]{\ThisStyle{\fboxsep=0pt%
  #1\fbox{$\phantom{\SavedStyle m}$}#2}} 
\begin{document}
$\contextseparate{A}{B}$\par
$\scriptstyle\contextseparate{A}{B}$\par
$\scriptscriptstyle\contextseparate{A}{B}$
\end{document}

在此处输入图片描述

相关内容