我正在尝试使用下面的符号来排版分数的简化/展开,但我希望分子位于中央,并且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}