Símbolos de límite y suma personalizables

Símbolos de límite y suma personalizables

Estoy buscando una manera de definir unpersonalizableOperador de límite y suma. Actualmente tengo límites fuertes/débiles definidos a través de

\DeclareMathOperator*{\slim}{\mathfrak{s}-lim}
\DeclareMathOperator*{\wlim}{\mathfrak{w}-lim}
\DeclareMathOperator*{\wslim}{\mathfrak{w*}-lim}

pero me gustaría algo más de libertad, algo así como $\lim[\mu]$representar como μ-lim con límites apropiados, y lo mismo para las sumas ( $\sum[\mu]$representar como μ-Σ). ¿Cómo puedo conseguir esto?

Respuesta1

Aquí una posible realización, suponiendo que estés cargando 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}

ingrese la descripción de la imagen aquí

He elegido la ubicación de los límites de manera que estén centrados en toda la expresión en el caso del límite, pero siempre solo debajo del símbolo de suma (sin importar lo que venga antes).

Personalmente creo que es más seguro de usar.nuevonombres de macros. Por supuesto, nadie le impide cambiar el código anterior a

\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@
}

Tenga en cuenta que puede haber inconvenientes.

Respuesta2

No quiero robar nada de la excelente respuesta de Campa, pero hay margen de mejora en el código propuesto.

Si desea una forma genérica de prefijar \limy \sumdefinir comandos en términos de genéricos, una interfaz xparsees más fácil.

Estoy de acuerdo con Campa en que los límites deberían centrarse por debajo de todo el “límite prefijado”, pero sólo respecto al gran operador en caso de \sumo similares.

\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}

Evitaría redefinir \limy \sum. Para el operador ocasional no predefinido, puede utilizar \prelimy \preopcon los argumentos adecuados. El \preopcomando tiene un argumento opcional en el medio que se usa para mejorar el interletraje entre el prefijo y el símbolo, que es mejor con \sum, pero no con \bigcup.

ingrese la descripción de la imagen aquí

Respuesta3

También puede usar los comandos existentes y simplemente redefinirlos para agregar un argumento opcional que agregue un prefijo.

\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}

Ajusté el espaciado a algo que pensé que se veía bien aquí, pero se puede cambiar fácilmente en las redefiniciones de \limy \sum.

información relacionada