Ingrandimento simbolo

  • Creatore
    Topic
  • #23458
    Up
    0
    Down
    ::


    Nonostante latex determini in maniera automatica la grandezza di un simbolo matematico (ad esempio quello di sommatoria) ho la necessità di ingrandirlo. Ho provato con un comando del tipo (nel preambolo utilizzo il pacchetto \usepackage{mathptmx})

    \begin{align}
    f(x)={\huge\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
    \end{align}

    ma se ho capito bene questo tipo di comando dovrebbe funzionare solo su font non matematici. Potreste aiutarmi?

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #23459
      Up
      0
      Down
      ::

      Nonostante latex determini in maniera automatica la grandezza di un simbolo matematico (ad esempio quello di sommatoria) ho la necessità di ingrandirlo. Ho provato con un comando del tipo (nel preambolo utilizzo il pacchetto \usepackage{mathptmx})

      \begin{align}
      f(x)={\huge\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
      \end{align}

      ma se ho capito bene questo tipo di comando dovrebbe funzionare solo su font non matematici. Potreste aiutarmi?

      Non vedo perché ingrandirlo, sinceramente. Se proprio insisti prova con questo codice nel preambolo
      `\makeatletter
      \edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum$}}}
      \def\sum{\mathop{
      \mathchoice{\@sum\LARGE}{\@sum\Large}
      {\@sum\large}{\@sum\normalsize}}}
      \makeatother`
      Prova anche con \LARGE al posto di \huge.

      Esercizio: scoprire come funziona la macro. 🙂

      Ciao
      Enrico

    • #23460
      DMW
        Up
        0
        Down
        ::


        Prof,
        C’è un errore. O scrivi
        `\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum@$}}}`

        o
        `\edef\@sum#1{\vcenter{\hbox{#1$\mathchar”1350$}}}`

        Ora vediamo di capirci qualcosa. Con questa dichiarazione definisci e espandi (\edef) \@sum il quale crea una scatola centrata verticalmente con \vcenter con al suo interno una scatola orizzontale. Dentro questa c’è l’argomento della dimensione (#1) e poi il simbolo di sommatoria.
        Con la seconda definizione dichiari (o meglio ridefinisci) il comando \sum; specifichi che vuoi un operatore matematico (\mathop) e poi con \mathchoiche fai le varie scelte a seconda dello stile. Se si dà \sum dentro un ambiente matematico \scriptscriptstyle il comando \sum chiama \@sum\normalsize, se è \scriptstyle chiama \@sum\large, sa è \textstyle chiama \@sum\Large e se è \displaystyle chiama \@sum\LARGE.

        Ci ho preso?

        Ciao

        Andrea

      • #23461
        Up
        0
        Down
        ::

        \begin{align}
        f(x)={\huge\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
        \end{align}
        Potreste aiutarmi?

        Io in queste situazioni uso il pacchetto relsize di Donald Arseneau:
        `
        % preambolo
        \usepackage{relsize}
        %
        % … dopo \begin{document}

        $$
        f(x)=\mathlarger{\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
        $$`
        oppure, per un ingrandimento ancora maggiore:
        `$$
        f(x)=\mathlarger{\mathlarger{\sum}}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
        $$
        `

        Ciao,
        Agostino

      • #23462
        Up
        0
        Down
        ::

        \begin{align}
        f(x)={\huge\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
        \end{align}
        Potreste aiutarmi?

        Io in queste situazioni uso il pacchetto relsize di Donald Arseneau:
        `
        % preambolo
        \usepackage{relsize}
        %
        % … dopo \begin{document}

        $$
        f(x)=\mathlarger{\sum}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
        $$`
        oppure, per un ingrandimento ancora maggiore:
        `$$
        f(x)=\mathlarger{\mathlarger{\sum}}^{M}_{n=-M}a_{n}\,e^{jn\omega_{0}x}
        $$
        `

        Certo, ma vuoi mettere con un po’ di codice criptico ed esoterico? C’è perfino \edef:!:

        Una tiratina d’orecchie: mai usare $$ in LaTeX. 🙂

        Ciao
        Enrico

      • #23463
        Up
        0
        Down
        ::


        Grazie, funzionano entrambi. Forse la soluzione di egreg9 è più performante di quella di agodemar in quanto si applica automaticamente a tutti i simboli del testo e non modifica la dimensione degli indici. Comunque grazie ad entrambi, sempre meglio avere più di una soluzione.

      • #23464
        Up
        0
        Down
        ::

        Prof,
        C’è un errore. O scrivi
        `\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum@$}}}`
        o
        `\edef\@sum#1{\vcenter{\hbox{#1$\mathchar”1350$}}}`

        Nessuna delle due, perché mai? Quella che ho scritto funziona benissimo. 🙂

        Ora vediamo di capirci qualcosa. Con questa dichiarazione definisci e espandi (\edef) \@sum il quale crea una scatola centrata verticalmente con \vcenter con al suo interno una scatola orizzontale. Dentro questa c’è l’argomento della dimensione (#1) e poi il simbolo di sommatoria.
        Con la seconda definizione dichiari (o meglio ridefinisci) il comando \sum; specifichi che vuoi un operatore matematico (\mathop) e poi con \mathchoiche fai le varie scelte a seconda dello stile. Se si dà \sum dentro un ambiente matematico \scriptscriptstyle il comando \sum chiama \@sum\normalsize, se è \scriptstyle chiama \@sum\large, sa è \textstyle chiama \@sum\Large e se è \displaystyle chiama \@sum\LARGE.

        Ci ho preso?

        Tutto tranne il commento a \edef. L’originale è
        `\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum$}}}`
        senza altri @ che nel nome del comando. Funziona perché l’unico comando espandibile dentro al testo della definizione è \number. Siccome \sum è definito tramite \mathchardef, si può usare \number\sum per ottenere il codice usato (in forma decimale, ma a \mathchar va benissimo lo stesso). Così anche senza sapere che codice è stato assegnato a \sum, posso usarlo e, cosa più importante, nel testo di sostituzione di \@sum non compare il comando \sum.

        Con LaTeX senza alcun pacchetto aggiuntivo, \meaning\@sum restituisce
        `macro:#1->\vcenter {\hbox {#1$\mathchar 4944$}}`
        che è esattamente ciò che volevo (e in effetti 4944 è “1350, cioè esadecimale in TeXspeak). Con \edef si definisce un comando espandendo tutto ciò che è espandibile nel testo di sostituzione. Non lo sono i caratteri (ovviamente), \vcenter, \hbox e \sum. Ma \number sì e l’espansione di \number comincia cercando un numero: \sum va bene come numero, in questo contesto, come ogni cosa definita tramite \chardef o \mathchardef. Per esempio la costante \@ne che si usa spesso è definita con
        `\chardef\@ne=1`
        In questo caso è un bieco trucco per evitare di andare a guardare la definizione di \sum con \mathchardef. Ma più generale, in fin dei conti. Certo, se \sum fosse definito in altro modo andremmo nei pasticci. Non farei lo stesso con \notin, per esempio.

        Ciao
        Enrico

      • #23465
        DMW
          Up
          0
          Down
          ::


          Sì, pero se usi amsmath, o metti la definizione prima di caricare il pacchetto, oppure, se la definizione la si vuole dopo per comodità, devi scrivere per forza
          `\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum@$}}}`

          perché con il semplice \number\sum non va.

          Ciao

          Andrea

        • #23466
          Up
          0
          Down
          ::

          Sì, pero se usi amsmath, o metti la definizione prima di caricare il pacchetto, oppure, se la definizione la si vuole dopo per comodità, devi scrivere per forza
          `\edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\sum@$}}}`

          perché con il semplice \number\sum non va.

          Già. Infatti \sum con amsmath è una macro definita in termini di \sum@; uffa.
          `\makeatletter
          \def\@addtosum{}
          \@ifundefined{sum@}{\let\@@sum\sum}{\let\@@sum\sum@\def\@addtosum{@}}
          \edef\@sum#1{\vcenter{\hbox{#1$\mathchar\number\@@sum$}}}
          \@namedef{sum\@addtosum}{
          \mathop{\mathchoice{\@sum\LARGE}{\@sum\Large}
          {\@sum\large}{\@sum\normalsize}}}
          \makeatother`
          Se \sum@ è definito siamo con amsmath; perciò usiamo il comando giusto per estrarre il valore e ridefiniamo \sum oppure \sum@ secondo i casi.

          Ciao
          Enrico

      Visualizzazione 7 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top