Operador matemático siempre en estilo de texto

Operador matemático siempre en estilo de texto

Me gustaría definir una macro que se expanda al mismo símbolo \sumpero usando el estilo en línea ( \textstyle) incluso cuando se usa en un entorno mostrado.

Esto es lo que obtuve:

\newcommand{\Alt}{\@ifstar{\sum}{{\textstyle\sum}}}

la versión destacada me permite habilitar selectivamente el estilo de visualización en situaciones excepcionales. Sin embargo, este no es un requisito estricto.

Si no estuviera envolviendo esto en una macro, lo habría logrado haciendo

bla {\textstyle \sum_a^b bla} bla

Me siento un poco incómodo al incluir \sumun grupo en la definición de macro, solo para limitar el alcance de \textstyle.

Mi pregunta es: ¿hay situaciones en las que el grupo adicional alrededor puede romper el espaciado \sum?

Respuesta1

Basado en la discusión de comentarios, sugerí algo similar a la respuesta en¿Cómo se definen los grandes operadores?, en forma de \DeclareMathOperator*{\barr}{\textstyle\sum}. Sin embargo, ese enfoque todavía coloca límites de estilo de visualización por encima y por debajo de la suma (ej. 1). No obstante, sabemos que el espacio proporcionado por \barren estilo de texto (ej. 2) es el espacio adecuado que busca el OP.

Pude recrear ese espaciado y ubicación de subíndice/superíndice en ej. 3-5, utilizando diferentes enfoques. Ex. 3 engaña el resultado en el estilo de visualización usando a \mathorden lugar de a \mathop, pero, por supuesto, el espaciado previo y posterior deben ajustarse para que coincida con el espaciado adecuado (por ejemplo, 2).

Ex. 4 y 5 son variaciones del enfoque propuesto por el OP. En ej. 4, agrego material previo y posterior dentro de sus frenillos. Sin embargo, dependiendo de la naturaleza del material, es posible que este enfoque no esté disponible para su uso.

Ex. 5 es el enfoque del OP, excepto que se han agregado espacios delgados, ya que las llaves eliminan la capacidad de la suma \mathopde extender su alcance fuera de las llaves.

De hecho, esta respuesta es la pregunta del OP de "¿hay situaciones en las que el grupo adicional alrededor puede romper el espaciado \sum?", Porque sin los espacios delgados en el ej. 5, el espaciamiento del enfoque del OP no será correcto.

\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator*{\barr}{\textstyle\sum}
\begin{document}
\centering
\verb|\barr| in \verb|\displaystyle|:
\[
A\barr_{i=3}^{6}B
\]

\verb|\barr| in \verb|\textstyle|:

\medskip inline: \(A A\barr_{i=3}^{6}B B\)

\verb|\mathord| with thin spaces added
\[
A A\,\mathord{\textstyle\sum}_{i=3}^6\, B B
\]

OP's original approach \textit{if} pre- and post- content embraced
\[
A {A \textstyle \sum_{i=3}^6 B} B
\]

OP's original approach, with no embraced pre- and post- content, but thin spaces added

\[
A A {\,\textstyle \sum_{i=3}^6\,} B B
\]
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Es posible que desee tener un enfoque abstracto para esto; Podemos aprovechar el hecho de que amsmathcambia todos los nombres de operadores tomando límites de manera uniforme, agregando @al final del nombre el significado del símbolo.

\documentclass{article}
\usepackage{amsmath,etoolbox}
\makeatletter
\newtoggle{reducedop}
\newcommand{\reduceoperatorsize}[1]{%
  \csletcs{#1saved}{#1}%
  \csletcs{#1@saved}{#1@}%
  \@namedef{#1}{%
    \@ifstar
      {\togglefalse{reducedop}\@nameuse{#1saved}}%
      {\toggletrue{reducedop}\@nameuse{#1saved}}%
  }
  \@namedef{#1@}{%
    \iftoggle{reducedop}
      {\reduced@operator{#1}}
      {\@nameuse{#1@saved}}
  }%
}
\newcommand{\reduced@operator}[1]{%
  \mathop{\mathpalette\reduced@operator@i{#1}\relax}%
}
\newcommand\reduced@operator@i[2]{%
  \ifx#1\displaystyle\textstyle\else#1\fi
  \csname #2@saved\endcsname
}
\makeatother

\reduceoperatorsize{sum}

\begin{document}
$\sum*_{k=1}^n$\quad$\sum_{k=1}^n$\quad$\sum\limits_{k=1}^n$
\[
\sum*_{k=1}^n\quad\sum_{k=1}^{n} k^2=\frac{n(n+1)(2n+1)}{6}
\]
\end{document}

La primera línea pretende mostrar que se respeta el comportamiento habitual.

ingrese la descripción de la imagen aquí

El amsmathpaquete se redefine \sumcon

\let\sum@\sum
\def\sum{\DOTSB\sum@\slimits@}

y hace lo mismo para \coprod, \bigvee, \bigwedge, \biguplus, \bigcap, \bigcup, \prod, \bigotimes, \bigoplusy \bigodot. \bigsqcupEsto hace que los símbolos sean “conscientes de los puntos” y respeten la opción sumlimitso nosumlimitsdebido a

\DeclareOption{sumlimits}{\let\slimits@\displaylimits}
\DeclareOption{nosumlimits}{\let\slimits@\nolimits}

En base a esto, redefino \sumser

\togglefalse{reducedop}\sumsaved

si \sum*se encuentra y

\toggletrue{reducedop}\sumsaved

de lo contrario. Aquí \sumsavedes lo mismo que \sumse define en amsmath. Luego lo redefino \sum@para hacerlo \sum@savedsi el interruptor está configurado en falso, donde \sum@savedes el mismo que el original \sum@. Si el cambio se establece en verdadero, \mathop{\mathpalette\reduced@operator@i{sum}}se ejecuta. Dentro \mathpaletteverifico el estilo: si es así \displaystyle, lo uso \textstyle; de lo contrario, el estilo actual y la composición tipográfica \sum@saved. El entorno \mathopsigue \slimits@como antes.

Respuesta3

Sé que esta es una publicación antigua, pero la estaba leyendo hoy. Lo que uso es esto:

\newcommand{\sumt}[2][]{
    \ifthenelse{\isempty{#1}}
    {\textstyle \sum_{#2}      \displaystyle}
    {\textstyle \sum_{#2}^{#1} \displaystyle}
}

Tenga en cuenta que requiere \usepackage{xifthen}.

Luego, por ejemplo, llamo \sumt[n-1]{i=1} k_ipara obtener lo mismo que habría recibido de \sum_{i=1}^{n-1} k_i. Tenga en cuenta que esto obliga a que todo lo que sigue esté en modo de visualización, lo que puede resultar inútil o no. Una vez que haga algo similar con \inty \prod. Tenga en cuenta que esto está escrito al revés en comparación con lo habitual.

Lo ideal sería que ambos argumentos fueran opcionales y en el orden \sum[lower][upper]. (No estoy seguro de qué efecto ^{}tiene el espacio en blanco). ¡Sin embargo, alguien con mayor destreza en tex que yo necesitaría ser llamado para eso!


Por ejemplo, el código minimalista.

\begin{align*}
    a &+ \sumt[n-1]{i=1} i = 3\\
    a &+ \textstyle\sum_{i=1}^{n-1} i = 3
\end{align*}

produce la siguiente imagen.

ingrese la descripción de la imagen aquí

información relacionada