我正在创建一个如下所示的运算符:
我想明确说明的是,我需要多次更改文档中的参数,因为我正在展示操作之间的关系属性。理想的情况是它可以作为 LaTeX 中的 $\sum$ 运算符。
由于我需要上面和下面的参数,因此我尝试使用以下函数在 latex 中创建一个运算符:
\DeclareMathOperator*{\OperOmega}{\Omega}
到目前为止,我工作得很好...但是,我遇到了以下问题。我希望有人能帮忙...
- 我创建运算符的地方出现错误,要求将运算符置于数学模式。但是,当我这样做时,我的文档被彻底破坏了。
- 我需要在其中一个操作中放入符号 <,但编译器出现错误。它说我缺少该项目。
- 我需要在其中一个子索引中放置一个 $\star$,但似乎仍然存在问题。
- 如果可能的话,我希望所有内容都严格显示在上方和下方。如果不包含命令,可以吗
\displaystyle
?
这是一个最简单的代码:
\documentclass{standalone}
\usepackage{amsmath}
\usepackage{enumitem}
\DeclareMathOperator*{\OperOmega}{\Omega}
\begin{document}
\begin{enumerate}[label = $\star$]
\item $\displaystyle\OperOmega_{<}^{\lambda}[P(x)]$ es BLA.
\item $\displaystyle\OperOmega_{\star}^{\lambda}[P(x)]$ es BLA.
\item $\displaystyle\OperOmega_{\leq}^{\lambda_{1}}[P(x)]$ es BLA.
\end{enumerate}
\end{document}
答案1
这是实现此目的的一种方法。
一旦您可以忽略书写中变化的种类和数量,您就可以使用 将它们概括为一个或多个宏\newcommand
。我的只是您发布的代码中的一个例子:
- 如果参数始终是 P(x),那么它也应该被吸收,即不再是传递的变量
- 你不能对宏进行编号
\OS1{}{}
,例如\OS2{}{}
,,所以我使用了其他方法
好处:
- 您的文字变得更加清晰
- 只需在一个地方进行更改,就可以使所有地方都正确(希望如此 ;-)
%\documentclass{standalone} % see clara https://tex.stackexchange.com/questions/710046/creating-operator-with-arguments-above-and-below#comment1766031_710046
\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{enumitem}
% ~~~ shortcuts ~~~~~~~~~~~~~~~~~~~
\DeclareMathOperator*{\OperOmega}{\Omega}
\newcommand\OS[2]{$\displaystyle\OperOmega_{#1}^{\lambda}[#2]$}% OperatorSymbol
\newcommand\OSS[2]{$\displaystyle\OperOmega_{#1}^{\lambda_{1}}[#2]$}% OperatorSymbol
% ~~~~~~~~~~~~~~~~~~~~~~~~~
\begin{document}
\begin{enumerate}[label = $\star$]
\item $\displaystyle\OperOmega_{<}^{\lambda}[P(x)]$ es BLA.
\item $\displaystyle\OperOmega_{\star}^{\lambda}[P(x)]$ es BLA.
\item $\displaystyle\OperOmega_{\leq}^{\lambda_{1}}[P(x)]$ es BLA.
\end{enumerate}
\hrule
\begin{enumerate}[label = $\star$]
\item \OS{<}{P(x)} es BLA.
\item \OS{\star}{P(x)} es BLA.
\item \OSS{\leq}{P(x)} es BLA.
\end{enumerate}
\end{document}