Skip to content

Come posso definire un operatore big plus che funzioni come bigcup?

Vogliamo proporvi la migliore soluzione che abbiamo trovato online. Ci auguriamo che lo troviate molto utile e se volete comunicarci eventuali miglioramenti, sentitevi liberi di farlo.

Soluzione:

Una ripresa della mia risposta in Come vengono definiti gli operatori big? Vengono fornite due macro completamente separate (foo e barr), a seconda che si voglia utilizzare l'operatore displaystyle si voglia ingrandire o mantenere le stesse dimensioni di textstyle.

documentclass{article}
usepackage{amsmath}
DeclareMathOperator*{foo}{scalerel*{+}{sum}}
DeclareMathOperator*{barr}{scalerel*{+}{textstylesum}}
usepackage{scalerel}

begin{document}
[
foo_{i=3}^{6}(f^2(i))
]

This is inline: (foo_{i=3}^{6}(f^2(i)) )

[
barr_{i=3}^{6}(f^2(i))
]

This is inline: (barr_{i=3}^{6}(f^2(i)) )
end{document} 

Immettere la descrizione dell'immagine qui

Si può facilmente fare in modo che il "big plus" abbia le stesse dimensioni di sum:

documentclass{article}
usepackage{amsmath}
DeclareMathOperator*{foo}{scalerel*{+}{sum}}
DeclareMathOperator*{barr}{scalerel*{+}{textstylesum}}
usepackage{scalerel}

begin{document}
[
foo_{i=3}^{6}(f^2(i))
]

This is inline: (foo_{i=3}^{6}(f^2(i)) )

[
barr_{i=3}^{6}(f^2(i))
]

This is inline: (barr_{i=3}^{6}(f^2(i)) )
end{document} 

Immettere la descrizione dell'immagine qui

Non è possibile copiare il codice LaTeX3 nel proprio preambolo senza compiere le opportune azioni preliminari. Di seguito mostro come la stessa idea possa essere implementata attraverso il codice LaTeX2e. Questa soluzione supporta anche lo standard amsmath per quanto riguarda i punti e l'elemento [no]sumlimits :

% My standard header for TeX.SX answers:
documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

usepackage{amsmath}

makeatletter

newcommand*@bigplus[1]{vcenter{hbox{#1$[email protected] +$}}}
newcommand*bigplus{%
    DOTSB % omit this line if you are not using the amsmath package
    mathop{%
        mathchoice
            {@bigplus huge}%
            {@bigplus LARGE}%
            {@bigplus {}}%
            {@bigplus footnotesize}%
    }%
    [email protected] % omit this line if you are not using the amsmath package
}

makeatother

begin{document}

In-line: ( bigplus_{i=3}^{6} f^2(i) ).
Displayed: [ bigplus_{i=3}^{6} f^2(i) ]
Behavior with dots:
[
    bigplus_{i_{1}=0}^{n_{1}}dotsbigplus_{i_{k}=0}^{n_{k}}
        f(i_{1},dots,i_{k})
]

end{document}

Questo è l'output:

Output del codice


Aggiunta

Come ha fatto notare @egreg nel suo commento, la risposta di cui sopra - che, tuttavia, imita semplicemente ciò che il metodo mathtools fa per bigtimes-è difettosa. La soluzione corretta è usare il pacchetto mathabx che, contrariamente a quanto affermato nella domanda, fornisce il pacchetto bigplus "operatore grande". Questa soluzione utilizza caratteri tratti da font appositamente progettati e, quindi, non dipende dalle estensioni fornite dal pacchetto graphics/graphicx .graphics/graphicxpacchettoe; in particolare, funziona anche con l'uscita DVI (per quanto possa valere).

Se non vi piacciono le modifiche apportate dal pacchetto mathabx ai simboli matematici in generale, si possono sempre caricare i font appropriati e definire solo i comandi che interessano.
L'esempio seguente definisce bigplus così come bigtimes. Permettetemi alcune osservazioni:

  • il codice supporta le caratteristiche dell'opzione amsmath per quanto riguarda
    i punti e i "limiti", se quel pacchetto è loaded;

  • contrariamente a quanto previsto dal pacchetto mathabx stesso, il pacchetto mathx
    è definita in modo tale da sfruttare le dimensioni dei caratteri
    dimensioni dei caratteri più piccole installate nelle distribuzioni odierne.

Quest'ultimo espediente permette di migliorare l'output a dimensioni inferiori a 10 punti, rendendolo più gradevole di quanto non lo sia nelle soluzioni che usano graphics il ridimensionamento.

Ecco il codice:

% My standard header for TeX.SX answers:
documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

usepackage{amsmath}

makeatletter

newcommand*@bigplus[1]{vcenter{hbox{#1$[email protected] +$}}}
newcommand*bigplus{%
    DOTSB % omit this line if you are not using the amsmath package
    mathop{%
        mathchoice
            {@bigplus huge}%
            {@bigplus LARGE}%
            {@bigplus {}}%
            {@bigplus footnotesize}%
    }%
    [email protected] % omit this line if you are not using the amsmath package
}

makeatother

begin{document}

In-line: ( bigplus_{i=3}^{6} f^2(i) ).
Displayed: [ bigplus_{i=3}^{6} f^2(i) ]
Behavior with dots:
[
    bigplus_{i_{1}=0}^{n_{1}}dotsbigplus_{i_{k}=0}^{n_{k}}
        f(i_{1},dots,i_{k})
]

end{document}

Ed ecco l'output che ne deriva:

Output del secondo campione di codice

Sezione recensioni e valutazioni

Saremmo lieti se potessi diffondere questa cronaca se ti fosse utile.



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.