Diminuire temporaneamente il font nelle equazioni

  • Creatore
    Topic
  • #39096
    Up
    0
    Down
    ::


    Salve,
    avrei la necessità di ridurre il font con cui vengono visualizzate alcune equazioni o meglio alcune porzioni di esse. Per esempio quando ci sono grosse matrici e non c’è verso di spezzettarle sensatamente in più righe. Ho usato, con successo, il comando \footnotesize
    ma mi riporta un warning:
    `
    Command footnotesize invalid in mathmode.
    `

    Probabilmente esiste un modo migliore, avete qualche suggerimento?

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #39097
      Up
      0
      Down
      ::

      Salve,
      avrei la necessità di ridurre il font con cui vengono visualizzate alcune equazioni o meglio alcune porzioni di esse. Per esempio quando ci sono grosse matrici e non c’è verso di spezzettarle sensatamente in più righe. Ho usato, con successo, il comando \footnotesize
      ma mi riporta un warning:
      `
      Command footnotesize invalid in mathmode.
      `

      Probabilmente esiste un modo migliore, avete qualche suggerimento?

      Con successo non credo. 🙂 Potresti fare un esempio?

      Ciao
      Enrico

    • #39098
      Up
      0
      Down
      ::


      con successo nel senso che effettivamente una porzione della formula è stata scritta in un font più piccolo.

      `
      \begin{equation}\label{spc:trasfVD}
      \begin{split}
      \hat{ \mat{A}} &= {\footnotesize\begin{bmatrix}
      {\vet{x}} & {{\mat{A}}{\vet{x}}} & {{\mat{A}}^2 {\vet{x}}} & \bullet & {{\mat{A}}^{n – 1} {\vet{x}}} \\
      \Downarrow & \Downarrow & \Downarrow & \bullet & \Downarrow \\
      \end{bmatrix}^{ – 1} \cdot \begin{bmatrix}
      {{\mat{A}}{\vet{x}}} & {{\mat{A}}^2 {\vet{x}}} & {{\mat{A}}^3 {\vet{x}}} & \bullet & {\left( { – a_{n – 1} {\mat{A}}^{n – 1} {\vet{x}} – a_{n – 2} {\mat{A}}^{n – 2} {\vet{x}} – \dots -a_0 {\vet{x}}} \right)} \\
      \Downarrow & \Downarrow & \Downarrow & \bullet & \Downarrow \\
      \end{bmatrix}}\\
      &= \begin{bmatrix}
      0 & 0 & 0 & \bullet & 0 & { – a_0 } \\
      1 & 0 & 0 & \bullet & 0 & { – a_1 } \\
      0 & 1 & 0 & \bullet & 0 & { – a_2 } \\
      0 & 0 & 1 & \bullet & 0 & { – a_3 } \\
      \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
      0 & 0 & 0 & \bullet & 1 & { – a_{n – 1} } \\
      \end{bmatrix} = {\mat{A}}_{vd}\\
      \end{split}
      \end{equation}
      `

      output prodotto con e senza \footnotesize (il successo!)


    • #39099
      Up
      0
      Down
      ::

      con successo nel senso che effettivamente una porzione della formula è stata scritta in un font più piccolo.

      `
      \begin{equation}\label{spc:trasfVD}
      \begin{split}
      \hat{ \mat{A}} &= {\footnotesize\begin{bmatrix}
      {\vet{x}} & {{\mat{A}}{\vet{x}}} & {{\mat{A}}^2 {\vet{x}}} & \bullet & {{\mat{A}}^{n – 1} {\vet{x}}} \\
      \Downarrow & \Downarrow & \Downarrow & \bullet & \Downarrow \\
      \end{bmatrix}^{ – 1} \cdot \begin{bmatrix}
      {{\mat{A}}{\vet{x}}} & {{\mat{A}}^2 {\vet{x}}} & {{\mat{A}}^3 {\vet{x}}} & \bullet & {\left( { – a_{n – 1} {\mat{A}}^{n – 1} {\vet{x}} – a_{n – 2} {\mat{A}}^{n – 2} {\vet{x}} – \dots -a_0 {\vet{x}}} \right)} \\
      \Downarrow & \Downarrow & \Downarrow & \bullet & \Downarrow \\
      \end{bmatrix}}\\
      &= \begin{bmatrix}
      0 & 0 & 0 & \bullet & 0 & { – a_0 } \\
      1 & 0 & 0 & \bullet & 0 & { – a_1 } \\
      0 & 1 & 0 & \bullet & 0 & { – a_2 } \\
      0 & 0 & 1 & \bullet & 0 & { – a_3 } \\
      \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
      0 & 0 & 0 & \bullet & 1 & { – a_{n – 1} } \\
      \end{bmatrix} = {\mat{A}}_{vd}\\
      \end{split}
      \end{equation}
      `

      Questa è la mia proposta:
      `\begin{equation}\label{spc:trasfVD}
      \begin{split}
      \hat{\mat{A}} &=
      \left[\begin{smallmatrix}
      \vet{x} & \mat{A}\vet{x} & \mat{A}^{\!2} \vet{x} & \bullet & \mat{A}^{\!n-1}\vet{x} \\
      \Downarrow & \Downarrow & \Downarrow & \bullet & \Downarrow \\
      \end{smallmatrix}\right]^{-1}%\cdot
      \left[\begin{smallmatrix}
      \mat{A}\vet{x} & \mat{A}^{\!2} \vet{x} & \mat{A}^{\!3} \vet{x} & \bullet &
      (-a_{n-1}\mat{A}^{\!n-1}\vet{x} – a_{n-2} \mat{A}^{\!n-2} \vet{x} -\dots-a_0 \vet{x}) \\
      \Downarrow & \Downarrow & \Downarrow & \bullet & \Downarrow \\
      \end{smallmatrix}\right]\\
      &=
      \begin{bmatrix}
      0 & 0 & 0 & \bullet & 0 & -a_0 \\
      1 & 0 & 0 & \bullet & 0 & -a_1 \\
      0 & 1 & 0 & \bullet & 0 & -a_2 \\
      0 & 0 & 1 & \bullet & 0 & -a_3 \\
      \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
      0 & 0 & 0 & \bullet & 1 & -a_{n-1} \\
      \end{bmatrix} = \mat{A}_{vd}\\
      \end{split}
      \end{equation}`
      Ho eliminato una marea di graffe del tutto inutili (e. in certi casi, dannose) e spazi che messi come li metti tu rendono il tutto illeggibile.

      Nota l’uso di \! negli esponenti: se usi una A in nero è conveniente metterlo per avvicinare l’esponente.

      Modo alternativo:
      `\begin{equation}
      \begin{split}
      \hat{\mat{A}} &= ^{-1}\cdot\\
      &\qquad \\
      &= = \mat{A}_{vd}
      \end{split}
      \end{equation}`
      Ciao
      Enrico

    • #39100
      Up
      0
      Down
      ::


      ok per l’esempio specifico,
      ma in generale non c’è un equivalente di \footnotesize per l’ambiente matematico?

    • #39101
      Up
      0
      Down
      ::

      ok per l’esempio specifico,
      ma in generale non c’è un equivalente di \footnotesize per l’ambiente matematico?

      {\scriptstyle…} oppure {\scriptscriptstyle…}

      Ciao
      Enrico

    • #39102
      Up
      0
      Down
      ::


      Grazie per la risposta.
      Il comando \! mi ha colpito molto, non lo conoscevo.
      Nel miei documenti faccio un uso massiccio di matrici e vettori rappresentati in grassetto.
      A tale scopo ho definito i seguenti comandi:

      `
      \newcommand{\mat}[1]{\mathbf{#1}}
      \newcommand{\vet}[1]{\boldsymbol{#1}}
      `

      E’ possibile ridefinirli per avere l’effetto di \! in automatico?

      Grazie
      Pe

    • #39103
      Up
      0
      Down
      ::

      Grazie per la risposta.
      Il comando \! mi ha colpito molto, non lo conoscevo.
      Nel miei documenti faccio un uso massiccio di matrici e vettori rappresentati in grassetto.
      A tale scopo ho definito i seguenti comandi:

      `
      \newcommand{\mat}[1]{\mathbf{#1}}
      \newcommand{\vet}[1]{\boldsymbol{#1}}
      `

      E’ possibile ridefinirli per avere l’effetto di \! in automatico?

      Dipende dalla lettera che usi! Con la A ci va, con la B no, per esempio.

      Ciao
      Enrico

    • #39104
      Up
      0
      Down
      ::

      Ho eliminato una marea di graffe del tutto inutili (e. in certi casi, dannose) e spazi che messi come li metti tu rendono il tutto illeggibile.

      Inutili ok, ma quali erano dannose e perché?
      Te lo chiedo perché non vorrei aver commesso questo “danno” in qualche altra parte dei miei documenti.

      Grazie Pe

    • #39105
      Up
      0
      Down
      ::

      Ho eliminato una marea di graffe del tutto inutili (e. in certi casi, dannose) e spazi che messi come li metti tu rendono il tutto illeggibile.

      Inutili ok, ma quali erano dannose e perché?
      Te lo chiedo perché non vorrei aver commesso questo “danno” in qualche altra parte dei miei documenti.

      Esaminiamo una delle righe:
      `{{\mat{A}}{\vet{x}}} & {{\mat{A}}^2 {\vet{x}}} & {{\mat{A}}^3 {\vet{x}}} & \bullet
      & {\left( { – a_{n – 1} {\mat{A}}^{n – 1} {\vet{x}} – a_{n – 2} {\mat{A}}^{n – 2} {\vet{x}} – \dots -a_0 {\vet{x}}} \right)}`
      Scrivere {\mat{A}} rende il simbolo all’interno un tutt’uno che impedisce a TeX di sistemare un eventuale esponente in modo corretto. Vero che poi occorre comunque una correzione (per il fatto che l’esponente sarebbe troppo distante dalla A diritta), ma in altri casi la cosa è davvero sbagliata; confronta
      `{(a+b)}^2 \ne (a+b)^2`
      Le graffe attorno a un’espressione racchiusa a sua volta tra \left e \right hanno un duplice effetto: oltre a “rialzare” un eventuale esponente, la rendono un atomo “Ord” invece che “Inner” come è quasi sempre giusto che sia. Come prima, in questo caso la differenza non si nota, ma è importante non mettere graffe dove non vanno. Né \left e \right dove non sono necessari. La riga è scritta correttamente come
      `\mat{A} \vet{x} & \mat{A}^2 \vet{x} & \mat{A}^3 \vet{x} & \bullet &
      (-a_{n-1} \mat{A}^{n-1} \vet{x} – a_{n-2} \mat{A}^{n-2} \vet{x} – \dots – a_0 \vet{x})`
      Gli spazi in una formula sono ignorati, ma ritengo che scrivere ^{n – 1} in un esponente renda difficile riconoscerlo leggendo il .tex; poi ognuno fa come gli pare. Il “meno” che denota l’opposto va sempre attaccato al simbolo a cui si riferisce, sempre per l’idea di rendere più leggibile il codice TeX.

      Un’espressione ${a+b}$ nel corpo del testo non partecipa all’aggiustamento degli spazi per la giustificazione, per esempio.

      Ciao
      Enrico

    • #39106
      Up
      0
      Down
      ::


      Questa storia del \! mi sta dando parecchio da pensare.
      Poiché ho un documento molto grande e con molte \mat{A}^{xy} se volessi applicare il suggerimento di Enrico dovrei riguardarmelo e mettere i \!.

      La cosa migliore da fare (e più riusabile) sarebbe quella di implementare il comando \mat affinché faccia qualcosa del genere (semi-pseudocodice):
      `
      \newcommand{\mat}[1]{\ifA#1
      \mathbf{cambia_posizionamento_potenza{#1}}
      \else \mathbf{#1}\fi}
      `

      Credete che sia una cosa possibile? Dove potrei andare a guardare?

    • #39107
      Up
      0
      Down
      ::

      Questa storia del \! mi sta dando parecchio da pensare.
      Poiché ho un documento molto grande e con molte \mat{A}^{xy} se volessi applicare il suggerimento di Enrico dovrei riguardarmelo e mettere i \!.

      La cosa migliore da fare (e più riusabile) sarebbe quella di implementare il comando \mat affinché faccia qualcosa del genere (semi-pseudocodice):
      `
      \newcommand{\mat}[1]{\ifA#1
      \mathbf{cambia_posizionamento_potenza{#1}}
      \else \mathbf{#1}\fi}
      `

      Credete che sia una cosa possibile? Dove potrei andare a guardare?

      Io risolverei semplicemente con un “cerca e cambia”; oppure in modo più generale.
      `\makeatletter
      \def\matA{\@ifnextchar^{\matAexp}{\mathbf{A}}}
      \def\matAexp^#1{\mathbf{A}^{\!#1}}

      \newcommand*{\mat}[1]{%
      \ifcsname mat#1\endcsname
      \csname mat#1\expandafter\endcsname
      \else
      \mathbf{#1}
      \fi}
      \makeatother`
      Puoi così applicare eventuali correzioni anche ad altre lettere. Ma devi essere disciplinato e quindi non scrivere, per dire, $\mat{A}_{1}^{2}$: l’esponente deve andare sempre vicino.

      Tutto sommato meglio un “cerca e cambia”.

      Ciao
      Enrico

    • #39108
      Up
      0
      Down
      ::


      Per il momento credo che mi darò al cerca e sostituisci per \mat{A} e \mat{Lambda}.

      Alcuni comandi che hai usato non li conosco.
      Tu quali testi consigli per imparare LaTeX in maniera avanzata?

      Vedendo la cosa più alla larga, non trovi che LaTeX non aiuti la buona programmazione e che sia un guazzabuglio di pacchetti? Forse LaTeX dimostra i suoi anni. Non ci sono alternative?

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

Go to top