基于宏观论证的条件间距

基于宏观论证的条件间距

考虑下面的宏:

\newcommand{\interpretation}[1]{\left[ #1 \right]_{\mathcal{N}}}

这给出了参数的以下输出a

示例 1

到目前为止,一切都很好。

现在,假设我传递一个包含各种内容的长参数,例如[(\phi \land \psi)]_A \lor [(\neg \chi \rightarrow \zeta)]_C

示例 2

(请注意,这一切都不具有任何数学意义 - 仅作为示例的随机符号。)

很难看出哪组括号与哪组括号匹配,等等。我希望宏在参数看起来较宽时有条件地在最外层括号周围添加空格。例如,像这样:

示例 3

如果我无条件地添加空格,它会对所有参数都这样做,甚至是我们a之前的简单参数:

示例 4

我想避免这种情况。宏是否有办法“呈现”其参数并根据其宽度有条件地添加空格?我对任何包等都持开放态度。

答案1

您可以根据口味调整 0.05 的系数

在此处输入图片描述

\documentclass{article}

\newcommand{\interpretation}[1]{%
  % avoid automatic left-right https://tex.stackexchange.com/a/173740/1090
  \left[%
    \sbox0{$#1$}%
    \hspace{.05\wd0}{#1}\hspace{.05\wd0}%
  \right]_{\mathcal{N}}}
\begin{document}

$\interpretation{a}$

$\interpretation{a+b}$

$\interpretation{a+b+c+d}$

$\interpretation{a+b+c+d+xyz}$


\end{document}

相关内容