将定义的函数与和对齐

将定义的函数与和对齐

我正在使用三角形及其角作为输入来定义一个新函数,它适用于普通线性方程,但当它变成上标或下标时,参数就会错位。有什么建议可以解决这个问题吗? 输出 代码:

\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\newcommand{\ca}[1]{\operatornamewithlimits{\mathpalette\cb{#1}}}
\newcommand{\cb}[2]{{%
  \vphantom{\triangle}%
  \ooalign{%
    $#1\triangle$\cr\hidewidth\cc{$#1#2$}\hidewidth\cr
  }%
}}
\newcommand{\cc}[1]{%
  \raisebox{.2\height}{\scalebox{0.5}{#1}}%
}
\newcommand{\hypop}[4]{{\ _{#2}\ca{#4}^#1} _#3}
\begin{document}
\[Intended~output~above~and~below~the~sum:\hypop{a}{b}{c}{n}\]
\[Actual~output:\sum^{\hypop{a}{b}{c}{n}}_{\hypop{a}{b}{c}{n}}\]
\end{document}

答案1

一种用于处理数学样式大小变化的stackengine方法。scalerel

修改后的答案

这可以很好地呈现在所有数学样式中,并纠正我的替代解决方案中的问题,即下标的下降不是统一的,而是取决于字母高度。对于此应用程序,这不是一个有用的功能。

\documentclass{article}
\usepackage{stackengine,scalerel}
\stackMath
\newcommand\hypop[4]{%
  \ThisStyle{\litlet{#2}\stackengine{.2\LMex}{%
   \stackengine{.2\LMex}{\SavedStyle\triangle}{\scalebox{.5}{$\SavedStyle#4$}}{O}{c}{F}{F}{L}%
  }{\SavedStyle\litlet{#1}}{O}{c}{F}{F}{S}\litlet{#3}}%
}
\newcommand\litlet[1]{\raisebox{-.4\LMex}{\scalebox{.7}{$\SavedStyle#1$}}}
\begin{document}
\[
\hypop{a}{b}{c}{n} ~
\scriptstyle\hypop{a}{b}{c}{n}~
\scriptscriptstyle\hypop{a}{b}{c}{n}
\]
\[\sum^{\hypop{a}{b}{c}{n}}_{\hypop{a}{b}{c}{n}} \]
\end{document}

在此处输入图片描述

原始答案

三角形始终出现在 中\displaystyle,而参数#4始终出现在 中。然而,当用作下标时\scriptscriptstyle,三角形的点字母(参数#1- #3)会变小。\hypop

\documentclass{article}
\usepackage{stackengine,scalerel}
\stackMath
\newcommand\hypop[4]{%
  \ThisStyle{{}_{#2} \stackengine{1pt}{%
   \stackengine{\dimexpr.72ex+.10\LMex}{\triangle}{_{_{\mkern2mu#4}}}{O}{c}{F}{F}{L}%
  }{\SavedStyle_{#1}}{O}{c}{F}{F}{S} {}_{#3}}%
}
\begin{document}
\[Intended~output~above~and~below~the~sum:\hypop{a}{b}{c}{n}\]
\[Actual~output:\sum^{\hypop{a}{b}{c}{n}}_{\hypop{a}{b}{c}{n}} \]
\end{document}

在此处输入图片描述

我们可以保持三角形大小固定,但如果更喜欢较小的尺寸,那么\scalebox可以使用,这里相对于上面的原始演示缩放了 80%:

\documentclass{article}
\usepackage{stackengine,scalerel}
\stackMath
\newcommand\hypop[4]{%
  \ThisStyle{%
  {}_{#2} \stackengine{1pt}{\scalebox{.8}{%
   $\stackengine{\the\dimexpr.72ex+.10\LMex}{\triangle}{_{_{\mkern2mu#4}}}{O}{c}{F}{F}{L}$}%
  }{\SavedStyle_{#1}}{O}{c}{F}{F}{S} {}_{#3}}%
}
\begin{document}
\[Intended~output~above~and~below~the~sum:\hypop{a}{b}{c}{n}\]
\[Actual~output:\sum^{\hypop{a}{b}{c}{n}}_{\hypop{a}{b}{c}{n}} \]
\end{document}

在此处输入图片描述

答案2

这是使用一些附加说明来放置字母“b”和“c”的\raisebox版本\scalebox

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\newcommand{\ca}[1]{\operatornamewithlimits{\mathpalette\cb{#1}}}
\newcommand{\cb}[2]{{%
  \vphantom{\triangle}%
  \ooalign{$#1\triangle$\cr\hidewidth\cc{$#1#2$}\hidewidth\cr
  }%
}}
\newcommand{\cc}[1]{%
  \raisebox{.35\height}{\scalebox{0.45}{#1}}%
}
\newcommand{\hypop}[4]{%
    \raisebox{-0.25ex}{\scalebox{0.5}{$#2$}}
    \mkern-2.5mu
    \ca{#4}\limits^{\mkern-0.5mu\scalebox{0.5}{$#1$}}
    \mkern-2.8mu
    \raisebox{-0.25ex}{\scalebox{0.5}{$#3$}}}
\begin{document}
Various math styles:
$ \hypop{a}{b}{c}{n} \quad
  \scriptstyle  \hypop{a}{b}{c}{n} \quad 
  \scriptscriptstyle \hypop{a}{b}{c}{n}$

With summation symbol: 
$\displaystyle \sum^{\hypop{a}{b}{c}{n}}_{\hypop{a}{b}{c}{n}}$
\end{document}

相关内容