
나는 a를 정의하는 방법을 찾고 있습니다.맞춤형한계 및 합계 연산자. 현재 다음을 통해 정의된 강한/약한 제한이 있습니다.
\DeclareMathOperator*{\slim}{\mathfrak{s}-lim}
\DeclareMathOperator*{\wlim}{\mathfrak{w}-lim}
\DeclareMathOperator*{\wslim}{\mathfrak{w*}-lim}
$\lim[\mu]$
그러나 나는 적절한 제한을 가진 μ-lim으로 렌더링하고 합계에 대해서도 마찬가지( $\sum[\mu]$
μ-Σ로 렌더링) 와 같은 좀 더 자유를 원합니다 . 어떻게 이를 달성할 수 있나요?
답변1
.amsmath
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand*{\plim}[1][]{%
\if\relax\detokenize{#1}\relax
\def\next{\qopname\relax m{lim}}%
\else
\def\next{\qopname\newmcodes@ m{#1-lim}}%
\fi
\next
}
\newcommand*{\psum}[1][]{%
\DOTSB
\if\relax\detokenize{#1}\relax\else
\operatorname{#1-}\mkern-\thinmuskip
\fi
\sum@\slimits@
}
\makeatother
\begin{document}
\begin{gather*}
\plim_{x\to0} \quad \plim[s]_{x\to0} \quad \plim[\mu]_{x\to0} \\[2ex]
\psum_i a_i \quad \psum[\mu]_i a_i
\end{gather*}
\end{document}
나는 극한의 경우 전체 표현의 중심에 극한을 배치하는 것을 선택했지만 항상 합계 기호 아래에만 있습니다(앞에 무엇이 나오든 관계없이).
개인적으로 사용하는 것이 더 안전하다고 생각합니다새로운매크로 이름. 물론 위의 코드를 다음과 같이 변경하는 것을 누구도 막지 못합니다.
\renewcommand*{\lim}[1][]{%
\if\relax\detokenize{#1}\relax
\def\next{\qopname\relax m{lim}}%
\else
\def\next{\qopname\newmcodes@ m{#1-lim}}%
\fi
\next
}
\renewcommand*{\sum}[1][]{%
\DOTSB
\if\relax\detokenize{#1}\relax\else
\operatorname{#1-}\mkern-\thinmuskip
\fi
\sum@\slimits@
}
단점이 있을 수 있으니 주의하세요.
답변2
Campa의 매우 훌륭한 답변에서 아무것도 훔치지는 않지만 제안된 코드에는 개선의 여지가 있습니다.
일반적인 방법으로 명령의 접두사를 지정 \lim
하고 \sum
명령을 정의하려면 인터페이스가 xparse
더 쉽습니다.
나는 한도가 전체 "접두사 한도" 아래 중앙에 있어야 한다는 Campa의 의견에 동의합니다. 그러나 이는 유사한 경우 또는 대규모 운영자와 관련된 경우에만 적용됩니다 \sum
.
\documentclass{article}
\usepackage{amsmath}
%\usepackage{xparse} % not needed with LaTeX 2020-10-01 or later
\NewDocumentCommand{\prelim}{mm}{%
\operatorname*{#1-{#2}}%
}
\NewDocumentCommand{\preop}{mO{\thinmuskip}m}{%
\DOTSB\operatorname{#1-}\mspace{-#2}#3%
}
\newcommand{\mulim}{\prelim{\mu}{\lim}}
\newcommand{\xlimsup}{\prelim{x}{\limsup}}
\newcommand{\musum}{\preop{\mu}[6mu]{\sum}}
\newcommand{\mubigcup}{\preop{\mu}{\bigcup}}
\begin{document}
\begin{gather*}
\mulim_{x\to0} f(x) \\
\xlimsup_{x\to\infty} f(x) \\
\musum_{i=1}^{n} a_i \\
\mubigcup_{i\in I}A_i
\end{gather*}
\end{document}
나는 재정의를 \lim
피하고 \sum
. 가끔 사전 정의되지 않은 연산자의 경우 적절한 인수와 함께 \prelim
및를 사용할 수 있습니다. \preop
이 \preop
명령에는 접두사와 기호 사이의 커닝을 개선하는 데 사용되는 중간 선택적 인수가 있습니다. 이는 에서는 더 좋지만 \sum
에서는 그렇지 않습니다 \bigcup
.
답변3
기존 명령을 사용할 수도 있고 이를 재정의하여 접두사를 추가하는 선택적 인수를 추가할 수도 있습니다.
\documentclass{article}
\usepackage{amsmath}
\let\oldlim\lim
\let\oldsum\sum
\renewcommand*{\lim}[1][]{%
\def\temp{#1}%
\ifx\temp\empty
\oldlim%
\else
#1\text{--}\!\oldlim%
\fi%
}
\renewcommand*{\sum}[1][]{%
\def\temp{#1}%
\ifx\temp\empty
\oldsum%
\else
#1\text{--}\!\!\oldsum%
\fi%
}
\begin{document}
\(\lim_{x\to 0} f(x)\)
\(\lim[\mu]_{x\to 0} f(x)\)
\[
\lim_{x\to 0} f(x)
\qquad
\lim[\mu]_{x\to 0} f(x)
\]
\(\sum_{n=0}^\infty f(n)\)
\(\sum[\mu]_{n=0}^\infty f(n)\)
\[
\sum_{n=0}^\infty f(n)
\qquad
\sum[\mu]_{n=0}^\infty f(n)
\]
\end{document}
여기서는 보기 좋다고 생각되는 간격으로 조정했지만 \lim
및 의 재정의에서 쉽게 변경할 수 있습니다 \sum
.