Kuidas määratleda suurt plussoperaatorit, mis töötab nagu bigcup?

How Can I Define Big Plus Operator That Works Like Bigcup



Lahendus:

Katkend minu vastusest teemal Kuidas on määratletud suured operaatorid ?. Pakutakse kahte täiesti eraldi makrot ( foo ja barr), sõltuvalt sellest, kas soovite displaystyle versioon suuremaks kasvama või jääma samaks tekstistiil.

 documentclass {article}  usepackage {amsmath}  DeclareMathOperator*{ foo} { scalerel*{+} { sum}}  DeclareMathOperator*{ barr} { scalerel*{+} { texttyle  sum}}  usepackage {scalerel}  begin {document}  [ foo_ {i = 3}^{6} (f^2 (i)) ] See on inline:  ( foo_ {i = 3}^{6} (f^2 (i)) )  [ barr_ {i = 3}^{6} (f^2 (i)) ] See on inline:  ( barr_ {i = 3}^{6} (f^2 (i)) )  lõpp {dokument}

sisestage pildi kirjeldus siia




Suur pluss on hõlpsasti sama suur kui see summa:



 documentclass {article}  usepackage {amsmath}  usepackage {graphicx}  makeatletter  newcommand { bigplus} {%  DOTSB  mathop { mathpalette  [email protected]  relax}  [email protected]}  newcommand  [ email protected] [2] {%  vcenter { hbox {%  sbox  [email protected] {$#1  sum $}%  resizebox {!} {0,9  dimexpr  ht  [email protected] + dp  [email protected]} { raisebox { sügavus} {$  [email protected] #1+$}}%}}%  vphantom { sum}%}  makeatother  begin {document}  begin {center} % testpiirde kast  setlength { fboxsep} {0pt}  fbox {$  displaystyle  sum $}  fbox {$  displaystyle  bigplus $}  end {center}  [ sum_ {i = 1}^m  bigplus_ {j = 1}^n  dots  bigplus_ {k = 1}^p x_ {ijk} ]  begin {center}% tekstistiili testimiseks $  sum_ {i = 1}^m  bigplus_ {j = 1}^n  dots  bigplus_ {k = 1}^p x_ {ijk} $  end {center}  LARGE % suuruste test  [ sum_ {i = 1}^m  bigplus_ {j = 1}^ n  dots  bigplus_ {k = 1}^p x_ {ijk} ]  begin {center}%, et testida teksti stiili $  sum_ {i = 1}^m  bigplus_ {j = 1}^n  dots  bigplus_ {k = 1}^p x_ {ijk} $  end {keskus}  lõpp {dokument}

sisestage pildi kirjeldus siia




Te ei saa LaTeX3 koodi oma preambulisse kopeerida ilma asjakohaste eeltöödeta. Näitan allpool, kuidas sama ideed saaks rakendada LaTeX2e koodi kaudu. See lahendus toetab ka standardsetamsmath käitumine punktide ja [ei]sumlimits võimalus:

% Minu tavaline päis TeX.SX -le vastab:  documentclass [a4paper] {article} % Segaduste vältimiseks deklareerime % selgesõnaliselt paberivormingu.  usepackage [T1] {fontenc} % Mitte alati vajalik, kuid soovitatav. % Tavalise päise lõpp. Järgnev puudutab käsilolevat probleemi.  usepackage {amsmath}  makeatletter  newcommand*@bigplus [1] { vcenter { hbox {#1 $  [email protected] +$}}}  newcommand* bigplus { %  DOTSB % jätke see rida vahele, kui te ei kasuta amsmath paketti  mathop {%  mathchoice { @bigplus  huge}% { @bigplus  LARGE}% { @bigplus {}}% { @bigplus  footnotesize}%}%  [email kaitstud] % jätke see rida vahele, kui te ei kasuta paketti amsmath}  makeatother  begin {document} Reasisene:  ( bigplus_ {i = 3}^{6} f^2 (i) ). Kuvatud:  [ bigplus_ {i = 3}^{6} f^2 (i) ] Punktidega käitumine:  [ bigplus_ {i_ {1} = 0}^{n_ {1}}  dots  bigplus_ {i_ {k} = 0}^{n_ {k}} f (i_ {1},  punktid, i_ {k}) ]  lõpp {dokument}

See on väljund:

Koodi väljund




Lisamine

Nagu @egreg on oma kommentaaris märkinud, on ülaltoodud vastus - mis aga lihtsalt jäljendab seda, midamathtools pakett sobib bigtimes - on lollakas. Õige lahendus on kasutadamathabx pakett, mis pakub vastupidiselt küsimuses öeldule bigplus suur operaator. See lahendus kasutab tähemärke, mis on saadud spetsiaalselt selleks otstarbeks loodud fontidest, ja seetõttu ei sõltu see laiendi pakutavatest laienditestgraafika/graphicx pakett; eriti töötab see ka DVI -väljundiga (mille eest see on väärt).

Kui teile ei meeldi muudatused ,.mathabx pakett kehtib üldiselt matemaatiliste sümbolite kohta, saate alati ise sobivaid fonte laadida ja määrata ainult teile huvipakkuvad käsud. Järgmine näide määratleb bigplus samuti suured ajad. Lubage mul paar märkust:

  • kood toetabpunktide ja piirangutega seotud amsmath -pakett, kui see pakett on laaditud;

  • vastupidiselt sellele, midamathabx pakett ise teeb,mathxi fondiperekond on määratletud selliselt, et kasutada ära tänapäeva distributsioonidesse paigaldatud väiksemaid fondisuurusi.

Viimane väljamõeldis võimaldab parandada väljundit väiksemates kui 10 punkti suurustes, muutes selle paremaks kui see lahendustes, mis kasutavadgraafika skaleerimine.

Siin on kood:

% Minu tavaline päis TeX.SX -le vastab:  documentclass [a4paper] {article} % Segaduste vältimiseks deklareerime % selgesõnaliselt paberivormingu.  usepackage [T1] {fontenc} % Mitte alati vajalik, kuid soovitatav. % Tavalise päise lõpp. Järgnev puudutab käsilolevat probleemi.  usepackage {amsmath} % kommenteerib muudatuste nägemiseks  DeclareFontFamily {U} {mathx} { hyphenchar  font45}  DeclareFontShape {U} {mathx} {m} {n} {gen * mathx mathx10 mathx12} {}  DeclareFontSubstitution {U} {mathx} {m} {n}  DeclareSymbolFont {mathx} {U} {mathx} {m} {n}  DeclareMathSymbol { bigplus} { mathop} {mathx} {'90}  DeclareMathSymbol { bigtimes} { mathop} {mathx} {'91}  makeatletter  @ifpackageloaded {amsmath} {%  @ifundefined {[email protected]} {} { typeout {*** Rakendame amsmath -plaastreid, et  protect  bigplus  ruumi ja  kaitsta  bigtimes. ***}  global  let  [email protected]  bigplus  gdef  bigplus { DOTSB  [email protected]  [email protected]}  global  let  [email protected]  bigtimes  gdef  bigtimes { DOTSB  [email protected]  [email protected]}}} {}  makeatother  begin {document} In-line:  ( bigplus_ {i = 3}^{6} f^2 (i) ). Kuvatud:  [ bigplus_ {i = 3}^{6} f^2 (i) ] Punktidega käitumine:  [ bigplus_ {i_ {1} = 0}^{n_ {1}}  dots  bigplus_ {i_ {k} = 0}^{n_ {k}} f (i_ {1},  dots, i_ {k}) ] Reas:  ( bigtimes_ {i = 3}^{6} f ^2 (i) ). Kuvatud:  [ bigtimes_ {i = 3}^{6} f^2 (i) ] Punktidega käitumine:  [ bigtimes_ {i_ {1} = 0}^{n_ {1}}  dots  bigtimes_ {i_ {k} = 0}^{n_ {k}} f (i_ {1},  dots, i_ {k}) ] Nüüd töötab see ka joonealustes märkustes.  footnote {Nagu see näide näitab. Reas:  ( bigplus_ {i = 0}^{n} f (i) ),  ( bigtimes_ {i = 0}^{n} f (i) ). Kuvatud:  [ bigplus_ {i = 0}^{n} f (i)  ne  bigtimes_ {i = 0}^{n} f (i) ] See on hea!}  LARGE  tegusõna |  SUUR | teksti. Reas:  ( bigtimes_ {i = 3}^{6} f^2 (i) ). Kuvatud:  [ bigtimes_ {i = 3}^{6} f^2 (i) ] Punktidega käitumine:  [ bigtimes_ {i_ {1} = 0}^{n_ {1}}  dots  bigtimes_ {i_ {k} = 0}^{n_ {k}} f (i_ {1},  punktid, i_ {k}) ]  lõpp {dokument}

Ja siin on väljund, mida see annab:

Teise koodinäidise väljund