Vettori nel testo

  • Creatore
    Topic
  • #85147
    Up
    0
    Down
    ::


    Ciao a tutti,

    nella scrittura della mia tesi mi è sorto un dubbio riguardo alla modalità di inserimento dei vettori nel testo. Supponiamo che voglia, lungo il testo, rappresentare un vettore colonna mediante la scrittura di un vettore riga trasposto. Qual è il modo più opportuno per farlo? Considerate questo codice:
    `\documentclass[a4paper,11pt]{memoir}

    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[italian]{babel}

    \usepackage{amsmath}

    \begin{document}

    \textbf{1 –} Parole di un testo casuale, ma non proprio, usate per esemplificare un caso inserimento di un vettore nel testo: $\begin{bmatrix}1 & 2 & 3\end{bmatrix}\ap{T}.$ Altro testo non del tutto casuale, usato stavolta per riempire l'\,“intorno'' del vettore con dell'altro testo.

    \textbf{2 –} Parole di un testo casuale, ma non proprio, usate per esemplificare un caso inserimento di un vettore nel testo: $[1,2,3]\ap{T}.$ Altro testo non del tutto casuale, usato stavolta per riempire l'\,“intorno'' del vettore con dell'altro testo.

    \textbf{3 –} Parole di un testo casuale, ma non proprio, usate per esemplificare un caso inserimento di un vettore nel testo: $[1\quad 2\quad 3]\ap{T}.$ Altro testo non del tutto casuale, usato stavolta per riempire l'\,“intorno'' del vettore con dell'altro testo.

    \end{document}`
    Per come viene reso il vettore in sé, mi piace molto la resa di [tt]bmatrix.[/tt] Tuttavia, come si può vedere, se a questo metto l’apice “T” di trasposizione, l’interlinea viene modificata e il risultato è pessimo. Nel secondo caso la resa del vettore non mi convince molto. Direi che la soluzione migliore, a mio avviso, è la terza. Però è ottenuta con un metodo che ritengo poco elegante. Che ne dite? Avete dei suggerimenti?

    Grazie mille e buona giornata,
    Marco.

Visualizzazione 14 filoni di risposte
  • Autore
    Risposte
    • #85148
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        I matematici usano altri simboli per trasporre matrici; gli ingegneri usano l’apice T in tondo. quindi \ap{T} va bene, ma le quadre di bmatrix sono grandicelle e in matematica l’apice sale troppo in alto.

        Secondo me hai due possibilità: o usi bmatrix ma schiacci l’apice con [tt]\ap{\smash{T}}, oppure usi la seondo forma ricordando di lasciare uno spazio dopo le virgole, perché l’opzione italian di babel usa la virgola intelligente in matematica, vale a dire che se la virgola è seguita da una cifra non lascia nessuno spazio interpretandola come virgola decimale, altrimenti mette uno spazio come quello che usa normalmente dopo gli altri simboli matematici.

        Puoi sempre usare la terza forma, ma non usare \quad, bensì uno
        degli altri spaziatori matematici come [tt]\;[/tt] oppure [tt]\:[/tt] che non mettono spazi così grandi come [tt]\quad[/tt].

      • #85149
        Up
        0
        Down
        ::


        Io non me ne intendo molto ma se vuoi un parere…Il primo e il terzo mi piacciono ma diminuirei lo spazio tra un numero e l’altro. Credo che il comando \quad sia eccessivo (gusto personale). Il secondo caso non è male, anche le virgole ci possono stare, io sceglierei forse questo. Se la virgola come separatore proprio non ti piace metterei uno spazio obbligato tra i numeri.

        Ciao

      • #85150
        Up
        0
        Down
        ::


        Ciao,

        grazie a tutti e due! 🙂

        In effetti non gradisco molto la soluzione con la virgola. Uno dei motivi è che le soluzioni senza mi sembrano più sobrie ed eleganti. Userò la terza soluzione e, come mi avete giustamente suggerito, userò degli spazi minori.

        Chiedo un’ultima cosa. Sarebbe possibile (e fattibile) crearsi un nuovo comando da usare in maniera simile a [tt]bmatrix[/tt] ma che usi la terza soluzione (con al posto di [tt]\quad[/tt] uno fra [tt]\;[/tt] e [tt]\:[/tt])?

        Grazie e ciao,
        Marco.

      • #85151
        alegenn
        Partecipante
          Up
          0
          Down
          ::

          Marco87″ post=84549Ciao a tutti,

          nella scrittura della mia tesi mi è sorto un dubbio riguardo alla modalità di inserimento dei vettori nel testo. Supponiamo che voglia, lungo il testo, rappresentare un vettore colonna mediante la scrittura di un vettore riga trasposto. Qual è il modo più opportuno per farlo? Considerate questo codice:
          `\documentclass[a4paper,11pt]{memoir}

          \usepackage[T1]{fontenc}
          \usepackage[utf8]{inputenc}
          \usepackage[italian]{babel}

          \usepackage{amsmath}

          \begin{document}

          \textbf{1 –} Parole di un testo casuale, ma non proprio, usate per esemplificare un caso inserimento di un vettore nel testo: $\begin{bmatrix}1 & 2 & 3\end{bmatrix}\ap{T}.$ Altro testo non del tutto casuale, usato stavolta per riempire l'\,“intorno'' del vettore con dell'altro testo.

          \textbf{2 –} Parole di un testo casuale, ma non proprio, usate per esemplificare un caso inserimento di un vettore nel testo: $[1,2,3]\ap{T}.$ Altro testo non del tutto casuale, usato stavolta per riempire l'\,“intorno'' del vettore con dell'altro testo.

          \textbf{3 –} Parole di un testo casuale, ma non proprio, usate per esemplificare un caso inserimento di un vettore nel testo: $[1\quad 2\quad 3]\ap{T}.$ Altro testo non del tutto casuale, usato stavolta per riempire l'\,“intorno'' del vettore con dell'altro testo.

          \end{document}`
          Per come viene reso il vettore in sé, mi piace molto la resa di [tt]bmatrix.[/tt] Tuttavia, come si può vedere, se a questo metto l’apice “T” di trasposizione, l’interlinea viene modificata e il risultato è pessimo. Nel secondo caso la resa del vettore non mi convince molto. Direi che la soluzione migliore, a mio avviso, è la terza. Però è ottenuta con un metodo che ritengo poco elegante. Che ne dite? Avete dei suggerimenti?

          Grazie mille e buona giornata,
          Marco.

          Ciao, ti consiglio il seguente articolo:
          http://www2.ing.unipi.it/didattica/GuiggianiMori2008_FormuleLib7.pdf

        • #85152
          Up
          0
          Down
          ::


          Ciao alegenn,

          grazie dell’indicazione! 🙂

          Avevo letto quell’articolo a suo tempo, ma a essere sincero, ne avevo perso la memoria. A pagina 5 si spiega che le due soluzione migliori sono proprio quelle che mi sono state consigliate. Ho deciso di adottare la prima (quella che usa la convenzione dei vettori fuori corpo). Ora il mio problema è: posso creare un nuovo comando il cui uso è simile a quello di [tt]bmatrix,[/tt] o che comunque mi consenta di facilitare l’inserimento dei vettori e di poter controllarne la forma modificando semplicemente un comando nel preambolo?

          Grazie ancora e ciao,
          Marco.

        • #85153
          Up
          0
          Down
          ::


          Anche se hai già preso una decisione ti segnalo questo file: Arstexnica 5.
          In questo articolo si parla anche di vettori (purtroppo non nel tuo caso specifico).

          Ciao

        • #85154
          Up
          0
          Down
          ::


          Ops! ho visto adesso che è lo stesso testo consigliato da alegen.
          Per l’inserimento di un nuovo comando non saprei aiutarti, Sorry.

          Ciao
          Marco

        • #85155
          Up
          0
          Down
          ::


          Nessuno dei tre.

          `\documentclass[a4paper,11pt]{memoir}

          \usepackage[T1]{fontenc}
          \usepackage[utf8]{inputenc}
          \usepackage[italian]{babel}

          \usepackage{amsmath}

          \makeatletter
          \newcommand{\rowvec}{%
          \@ifstar{\@tempswatrue\@rowvec}
          {\@tempswafalse\@rowvec}}
          \newcommand{\@rowvec}[2][]{%
          \begingroup
          \mathopen{#1[}
          \arraycolsep=.33333em
          \array{@{}*{\c@MaxMatrixCols}{c}@{}}\,#2\,\kern-\arraycolsep\endarray
          \mathclose{#1]}
          \endgroup
          \if@tempswa^\mathrm{T}\fi}
          \makeatother

          \begin{document}

          $\rowvec{1&2&3}\rowvec*{4&5&6}=32$

          $\rowvec[\big]{1^2&2^2&3^2}\ne\rowvec*[\big]{1^2&2^2&3^2}$

          Parole di un testo casuale, ma non proprio, usate per esemplificare un caso
          inserimento di un vettore nel testo: $\rowvec*{1 & 2 & 3}$. Altro
          testo non del tutto casuale, usato stavolta per riempire l'\,“intorno'' del vettore con
          dell'altro testo.

          \end{document}`

          Come vedi, la versione asterisco aggiunge il segno di trasposizione. Puoi usare anche l’argomento facoltativo per ingrandire il delimitatore quando sia necessario.

          Occhio che il punto va fuori dalla formula. Una parola tra virgolette preceduta dall’apostrofo è qualcosa che mi guarderei bene dallo scrivere, ma il testo è tuo. 🙂

          Ciao
          Enrico

        • #85156
          Up
          0
          Down
          ::


          Ciao Enrico,

          che dire? Grazie infinite! 🙂

          Per quanto riguarda il punto, ne correggerò la posizione. 😉 Per l’apostrofo e le virgolette, devo dire che mi pento della mia malsana scelta! 😀

          Grazie ancora e buona domenica!
          Marco.

        • #85157
          Up
          0
          Down
          ::


          Ciao Enrico,

          purtroppo mi sono accorto che usando il comando [tt]\rowvec*[/tt] viene modificata l’interlinea. 🙁 Ecco un esempio:
          `\documentclass[a4paper,11pt]{memoir}

          \usepackage[T1]{fontenc}
          \usepackage[utf8]{inputenc}
          \usepackage[italian]{babel}
          \usepackage{microtype}
          \usepackage{mathpazo}

          \usepackage{amsmath}

          \makeatletter
          \newcommand{\rowvec}{%
          \@ifstar{\@tempswatrue\@rowvec}
          {\@tempswafalse\@rowvec}}
          \newcommand{\@rowvec}[2][]{%
          \begingroup
          \mathopen{#1[}
          \arraycolsep=.33333em
          \array{@{}*{\c@MaxMatrixCols}{c}@{}}\,#2\,\kern-\arraycolsep\endarray
          \mathclose{#1]}
          \endgroup
          \if@tempswa^\mathrm{T}\fi}
          \makeatother

          \begin{document}

          Le variabili interne $q = \rowvec*{s & r & \mu}$ controllano l'evoluzione della \emph{failure surface.} Come si può vedere nella figura \dots, $q_0 = \rowvec*{s_0 & r_0 & \mu_0}$ denota le variabili interne per un'interfaccia intatta e $q\ped{r} = \rowvec*{0 & r\ped{r} & \mu\ped{r}}$ denota i valori residui che caratterizzano lo stato finale dell'interfaccia.

          \end{document}`
          C’è un modo per non far modificare l’interlinea? Magari abbassando di un poco l’apice, non saprei.

          Grazie mille e buon weekend,
          Marco.

        • #85158
          alegenn
          Partecipante
            Up
            0
            Down
            ::

            Marco87″ post=84925Ciao Enrico,

            purtroppo mi sono accorto che usando il comando [tt]\rowvec*[/tt] viene modificata l’interlinea. 🙁 Ecco un esempio:
            `\documentclass[a4paper,11pt]{memoir}

            \usepackage[T1]{fontenc}
            \usepackage[utf8]{inputenc}
            \usepackage[italian]{babel}
            \usepackage{microtype}
            \usepackage{mathpazo}

            \usepackage{amsmath}

            \makeatletter
            \newcommand{\rowvec}{%
            \@ifstar{\@tempswatrue\@rowvec}
            {\@tempswafalse\@rowvec}}
            \newcommand{\@rowvec}[2][]{%
            \begingroup
            \mathopen{#1[}
            \arraycolsep=.33333em
            \array{@{}*{\c@MaxMatrixCols}{c}@{}}\,#2\,\kern-\arraycolsep\endarray
            \mathclose{#1]}
            \endgroup
            \if@tempswa^\mathrm{T}\fi}
            \makeatother

            \begin{document}

            Le variabili interne $q = \rowvec*{s & r & \mu}$ controllano l'evoluzione della \emph{failure surface.} Come si può vedere nella figura \dots, $q_0 = \rowvec*{s_0 & r_0 & \mu_0}$ denota le variabili interne per un'interfaccia intatta e $q\ped{r} = \rowvec*{0 & r\ped{r} & \mu\ped{r}}$ denota i valori residui che caratterizzano lo stato finale dell'interfaccia.

            \end{document}`
            C’è un modo per non far modificare l’interlinea? Magari abbassando di un poco l’apice, non saprei.

            Grazie mille e buon weekend,
            Marco.

            Ciao,
            in attesa che i maghi ti dicano come fare ad abbassare l’apice, supposto che sia corretto farlo, hai provato ad impostare [tt]\linespread[1.1][/tt] ingrandendo di poco l’interlinea di tutto il testo si riduce al minimo l’effetto dell’ampliamento dell’interlinea nelle righe dove hai i vettori..

          • #85159
            Up
            0
            Down
            ::

            Marco87″ post=84925Ciao Enrico,

            purtroppo mi sono accorto che usando il comando [tt]\rowvec*[/tt] viene modificata l’interlinea. 🙁 Ecco un esempio:
            `\documentclass[a4paper,11pt]{memoir}

            \usepackage[T1]{fontenc}
            \usepackage[utf8]{inputenc}
            \usepackage[italian]{babel}
            \usepackage{microtype}
            \usepackage{mathpazo}

            \usepackage{amsmath}

            \makeatletter
            \newcommand{\rowvec}{%
            \@ifstar{\@tempswatrue\@rowvec}
            {\@tempswafalse\@rowvec}}
            \newcommand{\@rowvec}[2][]{%
            \begingroup
            \mathopen{#1[}
            \arraycolsep=.33333em
            \array{@{}*{\c@MaxMatrixCols}{c}@{}}\,#2\,\kern-\arraycolsep\endarray
            \mathclose{#1]}
            \endgroup
            \if@tempswa^\mathrm{T}\fi}
            \makeatother

            \begin{document}

            Le variabili interne $q = \rowvec*{s & r & \mu}$ controllano l'evoluzione della \emph{failure surface.} Come si può vedere nella figura \dots, $q_0 = \rowvec*{s_0 & r_0 & \mu_0}$ denota le variabili interne per un'interfaccia intatta e $q\ped{r} = \rowvec*{0 & r\ped{r} & \mu\ped{r}}$ denota i valori residui che caratterizzano lo stato finale dell'interfaccia.

            \end{document}`
            C’è un modo per non far modificare l’interlinea? Magari abbassando di un poco l’apice, non saprei.

            Grazie mille e buon weekend,
            Marco.

            Cambia il codice corrispondente in questo modo:
            `\makeatletter
            \newcommand{\rowvec}{%
            \@ifstar{\@tempswatrue\@rowvec}
            {\@tempswafalse\@rowvec}}
            \newcommand{\@rowvec}[2][]{%
            \begingroup
            \mathopen{#1[}
            \arraycolsep=.33333em
            \array{@{}*{\c@MaxMatrixCols}{c}@{}}\,#2\,\kern-\arraycolsep\endarray
            \mathclose{#1]}
            \endgroup
            \if@tempswa^{\raisebox{-.2ex}[0pt]{$\scriptstyle\mathrm{T}$}}\fi}
            \makeatother`

            Consiglio comunque di usare [tt]\linespread{1.05}[/tt] con Palatino come font principale perché è più alto e più largo del Computer Modern.

            Ciao
            Enrico

          • #85160
            Up
            0
            Down
            ::


            Ciao,


            @alegenn
            : ti ringrazio della risposta, ma non mi piace molto l’idea di aumentare l’interlinea di tutta la tesi solo per alcune (poche) righe.


            @Enrico
            : grazie mille! 🙂 Ora direi che va benissimo. In effetti, anche se non l’ho fatto nell’esempio che ho riportato qui, nella mia tesi uso [tt]\linespread{1.05}\selectfont.[/tt] In questo caso forse era meglio se lo riportavo anche nell’esempio. Comunque, non tutto il male vien per nuocere, e così ora il comando va bene anche se volessi [tt]\linespread{1}[/tt] (che ovviamente non scriverei, ma lascerei le cose così come stanno).

            Grazie ancora e buona giornata,
            Marco.

          • #85161
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              La soluzione \linespread potrebbe andare bene, ma poi il testo risulta o potrebbe risultare troppo aperto.

              se l’apice non è in corrispondenza di di un discendente di qualche carattere della riga precedente, un’altra soluzione, sneza usare \linspread, potrebbe essere quella di schiacciare l’esponente:`\if@tempswa^{\smash{\mathrm{T}}}\fi`
              Un’altra possibilità è quella di scrivere l’apice con lo stile più piccolo; trattandosi di un T maiuscola non dovrebbe essere un dramma:`\if@tempswa^{\scriptscriptstyle\mathrm{T}}\fi`

            • #85162
              Up
              0
              Down
              ::


              Ciao Claudio,

              grazie a te! 🙂

              Buona serata,
              Marco.

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

          Go to top