我想在某些巨集中包含一個「上下文相關」的分隔空間(在某種意義上,當呼叫巨集時,例如在下標內部,分隔空間相應地減少)。
是否有任何特定命令產生這種行為?
否則,我很想使用命令\phantom
來模擬它,例如:
\newcommand{\contextseparate}[2]{#1 \phantom{M} #2}
最後一種方法可以接受嗎? (出於某種原因,它對我來說看起來很糟糕)
答案1
\ThisStyle{}
如果您從套件中嵌入巨集定義scalerel
,它會將\LMpt
和識別\LMex
為隨本地數學大小縮放的長度。
\LMpt
更具體地,和的縮放因子\LMex
被預先定義(但可以重置)為
\def\scriptstyleScaleFactor{0.7}
\def\scriptscriptstyleScaleFactor{0.5}
\textstyle
顯然,和 的比例因子為 1 \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}