Allineamento termini dell’ambiente cases

  • Creatore
    Topic
  • #112675
    Andrea
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno a tutti!

      [attachment=2042]Coeff_binom.png[/attachment]

      Componendo la formula allegata, vorrei che lo “0” del secondo caso fosse allineato al centro della formula sopra e non attaccato al bordo interno della parentesi; in altre parole, lo vorrei equidistante dal bordo interno della parentesi graffa ed il “se”.

      Questo è il mio sorgente:
      `
      \documentclass[a4paper,12pt]{article}
      \usepackage[T1]{fontenc}
      \usepackage[utf8]{inputenc}
      \usepackage[italian]{babel}

      \usepackage{amsmath}
      \usepackage{amsfonts}
      \usepackage{amssymb}

      \begin{document}

      \[
      \binom{n}{k} =
      \begin{cases}
      \frac{n!}{k!(n-k)!} & \text{se} \quad 0 \le k \le n \\
      0 & \text{se} \quad 0 \le n < k \end{cases} \] \end{document} ` Grazie in anticipo!

      Attachments:
      You must be logged in to view attached files.
    Visualizzazione 5 filoni di risposte
    • Autore
      Risposte
      • #112676
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          `\[
          \binom{n}{k} =
          \begin{cases}
          \frac{n!}{k!(n-k)!} & \text{se} \quad 0 \le k \le n \\
          \muskip 24mu 0 & \text{se} \quad 0 \le n < k \end{cases} \]`Aggiusta il valore 24mu con un altro valore che dipende dai font che usi, dal loro corpo e da altre cose (l'occhio del compositore e il suo gusto personale)

        • #112677
          Andrea
          Partecipante
            Up
            0
            Down
            ::

            OldClaudio” post=113002`\[
            \binom{n}{k} =
            \begin{cases}
            \frac{n!}{k!(n-k)!} & \text{se} \quad 0 \le k \le n \\
            \muskip 24mu 0 & \text{se} \quad 0 \le n < k \end{cases} \]`Aggiusta il valore 24mu con un altro valore che dipende dai font che usi, dal loro corpo e da altre cose (l'occhio del compositore e il suo gusto personale)

            Ho provato ad aggiungere “\muskip 24mu”, cambiando il numero e provando anche a sostituire “mu” con “em” o altre unità di misura, ma non funziona… Mi da come errore “Missing number, treated as zero. \muskip 24m”.
            Saprebbe aiutarmi ancora, se possibile?

            Grazie,
            Andrea

            P.S. non avevo mai sentito parlare né del comando \muskip né dell’unità di misura “mu”… Saprebbe dirmi cosa rappresentano/fanno?

          • #112678
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Mi è scappata una “u” di troppo; il comando è \mskip in alternativa c’è \mkern. Il primo inserisce spaziatura matematica elastica il seondo spaziatura rigida.

              Vedi la pagina 61 in basso nella guida tematica Il LaTeX Reference Manual commentato, liberamante scaricabile dalla sezione documentazione di questo forum.

            • #112679
              Andrea
              Partecipante
                Up
                0
                Down
                ::


                Ora funziona! Grazie dell’aiuto

                Buona contunuazione!

              • #112680
                Up
                0
                Down
                ::


                Diciamocelo francamente: inserire uno spazio calcolato «a mano» o aggiustato per tentativi ed errori non può essere considerata una soluzione ottimale (vedi anche l’«Aggiunta», in fondo). Si può fare molto di meglio caricando il pacchetto mathtools (che carica automaticamente anche amsmath) e quindi usando il suo comando [tt]\newcases[/tt], il quale permette di definire nuovi ambienti «di tipo [tt]cases[/tt]», per definire, appunto, una variante che centri la prima colonna. Il codice mostrato sotto ne definisce quattro, leggermente diverse fra loro.

                Sfortunatamente, il comando [tt]\newcases[/tt] è inteso per utenti relativamente esperti negli aspetti di basso livello del TeX; ancor più sfortunatamente, questa sera non sono in vena di dilungarmi in spiegazioni. Spero che siano sufficienti i commenti che ho incluso nel 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[italian]{babel}
                \usepackage{mathtools} % automatically loads “amsmath” too

                \makeatletter

                % Arguments for the “\newcases” command (from “mathtools.sty”, amended):
                % #1 <- name of the new environment; % #2 <- separation between columns; % #3 <- alignment preamble (see "The TeXbook", Ch. 22), left column; % #4 <- alignment preamble, right column; % #5 <- left delimiter (e.g., "\lbrace" for the standard "cases"); % #6 <- right delimiter (e.g., "." for the standard "cases"); % We'll now define four new "cases-like" environments: in all of them, the left % column is centered, while the right column is left-aligned; the four % environments differ in the context their contents are typeset in. % Left column is math, right column is math: \newcases{centercases} {\quad} {\hfil$\m@th{##}$\hfil} {$\m@th{##}$\hfil} {\lbrace} {.} % Left column is math, right column is text: \newcases{centercases*} {\quad} {\hfil$\m@th{##}$\hfil} {{##}\hfil} {\lbrace} {.} % Left column is display-style math, right column is display-style math: \newcases{dcentercases} {\quad} {\hfil$\m@th\displaystyle{##}$\hfil} {$\m@th\displaystyle{##}$\hfil} {\lbrace} {.} % Left column is display-style math, right column is text: \newcases{dcentercases*} {\quad} {\hfil$\m@th\displaystyle{##}$\hfil} {{##}\hfil} {\lbrace} {.} \makeatother \begin{document} Quello che serve a te \`{e} \texttt{centercases*}: \[ \binom{n}{k} = \begin{centercases*} \frac{n!}{k!(n-k)!} & se \( 0 \le k \le n \), \\ 0 & se \( k < 0 \) o \(k > n \).
                \end{centercases*}
                \]
                Giudica tu se preferire \texttt{dcentercases*}:
                \[
                \binom{n}{k} =
                \begin{dcentercases*}
                \frac{n!}{k!(n-k)!} & se \( 0 \le k \le n \), \\
                0 & altrimenti.
                \end{dcentercases*}
                \]
                (A me sembra meglio il secondo.)

                \end{document}
                `

                Notare che esiste anche [tt]\renewcases[/tt], per ridefinire un ambiente esistente; gli argomenti sono gli stessi.

                Aggiunta: Si noti infine che, però, con la versione originale dell’ambiente [tt]cases[/tt] (che mathtools non ridefinisce!), il trucco banale di inserire [tt]\hfil[/tt] prima di [tt]0[/tt] (che è comunque molto meglio di [tt]\mskip …[/tt] / [tt]\mkern …[/tt]) funziona! Esso, tuttavia, non funziona con le varianti ([tt]cases*[/tt], [tt]dcases[/tt], [tt]dcases*[/tt], …) definite da mathtools stesso, perché sono definite tramite [tt]\newcases[/tt] per mezzo di codice molto simile a quello mostrato sopra, e guardando quest’ultimo attentamente si capisce perché. Si potrebbero apportare, usando [tt]\renewcases[/tt], delle ovvie modifiche alle definizioni di mathtools per far sì che il trucco torni a funzionare, ma non sono sicuro di tutte le implicazioni (perché l’autore di mathtools usa [tt]{##}[/tt] nei preamboli, invece del semplice [tt]##[/tt]?), per cui, per il momento, preferisco lasciare la cosa in sospeso.

                Ciao.


                Gustavo

              • #112681
                Andrea
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Grazie! Proverò a vedere come mi trovo con questi comandi 🙂

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

              Go to top