如何排版不可见的配对分隔符,最好使用 MathTools?

如何排版不可见的配对分隔符,最好使用 MathTools?

我正在尝试使用下面的符号来排版分数的简化/展开,但我希望分子位于中央,并且5\cdot 4)位于整个分数的左上方,并且分割线不会以任何方式被扭曲或拉伸。

在此处输入图片描述

我认为,如果我可以使用声明一组不可见的分隔符,那么\DeclarePairedDelimiter{<command>}{<left delimiter>}{<right delimiter>}任务就会很简单,因为我可以简单地将分数放在分隔符内,并将5\cdot 4)相对于整个块的分数放在其中,但我不确定这是否可行。使用\DeclarePairedDelimiter{\invis}{.}{.}不起作用。

我愿意接受其他解决方案,但如果有人能使用这种特殊方法解决问题,我的生活就会简单得多。

答案1

我希望分子位于中央,并且 5\cdot 4) 位于整个分数的左上方,并且分割线不会受到任何扭曲或拉伸。

方法 1

在这种方法中,上标将位于完整分数之前,而不仅仅是分子之前。它还将占据水平空间,而不是重叠的数量。

已编辑,允许使用可选参数进行[l]eft 或ight 定位。[r]

\documentclass{article}
\usepackage{stackengine}
\newcommand\simpex[3][l]{%
  \savestack\thefrac{$\displaystyle#3$}
  \ifx l#1\rule{0pt}{\ht\thefraccontent}^{#2)\!}\fi
  #3
  \ifx r#1\rule{0pt}{\ht\thefraccontent}^{\!(#2}\fi
}
\begin{document}
\[
\simpex{5\cdot 4}{\frac{1}{17}}
\textrm{ versus }
\simpex[r]{5\cdot 4}{\frac{1}{17}}
\]
\end{document}

在此处输入图片描述

方法 2

作为\mathllap,相邻材料之间可能会存在间距问题。但是,如果没有更多有关用例的信息,很难盲目地制定补救措施。

例如,它总是会排成一条直线吗?它总是会成为分数的一部分吗?如果是,它总是在分子中吗?等等。

\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\frac{\mathllap{^{5\cdot 4)}}1}{17}
\]
\end{document}

在此处输入图片描述

答案2

这是你想要的吗?他们使用stackengine

\documentclass{article}
\usepackage{mathtools}
\usepackage[usestackEOL]{stackengine}
\setstackgap{S}{1pt}
\begin{document}

\[ A = \stackMath\Shortstack{\mathllap{\scriptstyle 5\cdot 4)}\\\dfrac{1}{17}} \]%

\[ A = \stackMath
\setstackgap{S}{-1ex}\Shortstack{\mathllap{\scriptstyle 5\cdot 4)\:}\\\dfrac{1}{17}} \]%

\end{document} 

在此处输入图片描述

编辑:此代码仅使用mathtools

\[ A = \prescript{\mathllap{5\cdot 4)}\mkern-8mu}{}{\frac{1}{17}} \]%

在此处输入图片描述

答案3

这是一个仅使用 LaTeX 宏 的解决方案\raisebox。该宏\mysimp定义为接受三个参数,其中一个是可选的。可选参数设置第一个强制参数必须增加的垂直位​​移。垂直位移的默认值是3ex,如果最后一个参数包含显示样式的分数项,这似乎是正确的。

在此处输入图片描述

\scriptstyle如果左上标术语应以文本样式排版而不是以排版,则\scriptstyle删除该指令。

\documentclass{article}
\newcommand{\mysimp}[3][3ex]{\raisebox{#1}{$\scriptstyle #2$} \! #3}
\begin{document}
\[
\mysimp{5\cdot4)}{\frac{1}{17}} \qquad \mysimp[1.25ex]{uv}{abc}
\]
\end{document}

答案4

这是一个仅使用 LaTeX 宏(和\mathpalette)的解决方案。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\newcommand{\aboveleft}[2]{{\mathpalette\above@left{{#1}{#2}}}}
\newcommand{\above@left}[2]{\above@@left{#1}#2}
\newcommand{\above@@left}[3]{%
  \sbox\z@{$\m@th#1#3$}%
  \raisebox{0.7\ht\z@}{$\m@th\dem@te{#1}#2$}%
  \box\z@
}
\newcommand{\dem@te}[1]{%
  \ifx#1\displaystyle\scriptstyle\else\scriptscriptstyle\fi
}
\makeatother

\begin{document}

\[
\aboveleft{5\cdot4)}{\frac{1}{17}}
\]
In text it is also possible $\aboveleft{5\cdot4)}{\frac{1}{17}}$

\end{document}

在此处输入图片描述

相关内容