Spaziatura espressioni matematiche

  • Creatore
    Topic
  • #31554
    Up
    0
    Down
    ::


    Per il mio lavoro di tesi ho necessità di scrivere le espressioni logiche che utilizzava Peano nei suoi scritti.
    Facendo qualche tentativo mi sono scontrato fin da subito con un problema riguardante la spaziatura tra i vari simboli. Ovvero, se scrivo la sequenza logica di simboli che devo riprodurre la spaziatura introdotta automaticamente da Latex non è soddisfacente perché i simboli sono troppo appiccicati l’uno all’altro.

    Ho invece osservato che un buon effetto si ottiene interponendo dopo ogni simbolo il comando di spaziatura
    `\,`

    Mi chiedevo a questo proposito se fosse possibile ottenere un risultato simile senza dover inserire tale comando dopo ogni carattere.

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #31555
      Up
      0
      Down
      ::


      Se si tratta di pochi simboli puoi definirti dei nuovi comandi che contengano lo spazio aggiuntivo. Altrimenti si potrebbero dichiarare i valori di \thinmuskip, \medmuskip, \thickmuskip, a seconda della classe a cui appartiene il simbolo.

      Potresti fare un esempio, così capiamo meglio qual è il problema e che risultato vorresti ottenere?

      Ciao
      Ivan

    • #31556
      Up
      0
      Down
      ::


      Certo, ecco l’esempio che ho provato io.
      Questo è il codice senza spaziature
      `
      \[
      a,b \eps K.\rotatebox[origin=c]{180}{$\mathrm{C}$} \therefore \alpha \eps a \vert b . = : x \eps a.
      \rotatebox[origin=c]{180}{$\mathrm{C}$}_x.x \alpha \eps b.
      \]
      `
      e questo è il codice con gli spazi
      `
      \[
      a, \, b \, \eps \, K \, . \,
      \rotatebox[origin=c]{180}{$\mathrm{C}$} \, \therefore \, \alpha \, \eps \, a \, \vert \,
      b \spa . \spa = \spa : \spa x \spa \eps \spa a \spa . \spa
      \rotatebox[origin=c]{180}{$\mathrm{C}$}_x \, . \, x \, \alpha \, \eps \, b.
      \]
      `
      In entrambi mi sono ridefinito alcune lettere greche come suggerito nell’Arte di scrivere con LaTex
      `
      \newcommand{\eps}{\varepsilon}
      \newcommand{\thet}{\vartheta}
      \newcommand{\rh}{\varrho}
      \newcommand{\ph}{\varphi}
      `
      Credo che tu stesso converrai che la prima stringa è francamente illeggibile e inelegante. Nello stesso tempo però mi sembra davvero oneroso dover scrivere tutte le formule interponendo uno spazio dopo ogni carattere.

      EDIT: eliminata domanda sbagliata.

    • #31557
      lorenzo.pantieri
      Partecipante
        Up
        0
        Down
        ::

        In entrambi mi sono ridefinito alcune lettere greche come suggerito nell’Arte di scrivere con LaTex
        `\newcommand{\eps}{\varepsilon}
        \newcommand{\thet}{\vartheta}
        \newcommand{\rh}{\varrho}
        \newcommand{\ph}{\varphi} `

        No, questo non l’ho suggerito io. Leggi meglio quel passo.

        Credo che tu stesso converrai che la prima stringa è francamente illeggibile e inelegante. Nello stesso tempo però mi sembra davvero oneroso dover scrivere tutte le formule interponendo uno spazio dopo ogni carattere.

        Ci vorrebbe un pacchetto ad hoc. Una rapida ricerca su CTAN si è rivelata non molto fruttosa:
        http://tug.ctan.org/tex-archive/macros/latex/contrib/gene/logic/gn-logic14.pdf

        Vediamo se qualcuno è in grado di darti qualche suggerimento più adeguato…

        Ciao,
        L.

      • #31558
        Up
        0
        Down
        ::

        Certo, ecco l’esempio che ho provato io.
        Questo è il codice senza spaziature
        `
        \[
        a,b \eps K.\rotatebox[origin=c]{180}{$\mathrm{C}$} \therefore \alpha \eps a \vert b . = : x \eps a.
        \rotatebox[origin=c]{180}{$\mathrm{C}$}_x.x \alpha \eps b.
        \]
        `
        e questo è il codice con gli spazi
        `
        \[
        a, \, b \, \eps \, K \, . \,
        \rotatebox[origin=c]{180}{$\mathrm{C}$} \, \therefore \, \alpha \, \eps \, a \, \vert \,
        b \spa . \spa = \spa : \spa x \spa \eps \spa a \spa . \spa
        \rotatebox[origin=c]{180}{$\mathrm{C}$}_x \, . \, x \, \alpha \, \eps \, b.
        \]
        `
        In entrambi mi sono ridefinito alcune lettere greche come suggerito nell’Arte di scrivere con LaTex
        `
        \newcommand{\eps}{\varepsilon}
        \newcommand{\thet}{\vartheta}
        \newcommand{\rh}{\varrho}
        \newcommand{\ph}{\varphi}
        `
        Credo che tu stesso converrai che la prima stringa è francamente illeggibile e inelegante. Nello stesso tempo però mi sembra davvero oneroso dover scrivere tutte le formule interponendo uno spazio dopo ogni carattere.

        EDIT: eliminata domanda sbagliata.

        Occorrerebbe una fonte dalla quale verificare la spaziatura originale per poter rispondere. Che fanno i comandi \therefore e \spa?

        Io sarei più drastico sui nomi delle lettere greche: o usi la variante oppure no; quindi
        `\newcommand{\eps}{\varepsilon} % \epsilon è troppo lungo
        \renewcommand{\theta}{\vartheta}
        \renewcommand{\rho}{\varrho}
        \renewcommand{\phi}{\varphi}`
        Ciao
        Enrico

      • #31559
        Up
        0
        Down
        ::

        Certo, ecco l’esempio che ho provato io.
        Questo è il codice senza spaziature
        `
        \[
        a,b \eps K.\rotatebox[origin=c]{180}{$\mathrm{C}$} \therefore \alpha \eps a \vert b . = : x \eps a.
        \rotatebox[origin=c]{180}{$\mathrm{C}$}_x.x \alpha \eps b.
        \]
        `
        e questo è il codice con gli spazi
        `
        \[
        a, \, b \, \eps \, K \, . \,
        \rotatebox[origin=c]{180}{$\mathrm{C}$} \, \therefore \, \alpha \, \eps \, a \, \vert \,
        b \spa . \spa = \spa : \spa x \spa \eps \spa a \spa . \spa
        \rotatebox[origin=c]{180}{$\mathrm{C}$}_x \, . \, x \, \alpha \, \eps \, b.
        \]
        `
        In entrambi mi sono ridefinito alcune lettere greche come suggerito nell’Arte di scrivere con LaTex
        `
        \newcommand{\eps}{\varepsilon}
        \newcommand{\thet}{\vartheta}
        \newcommand{\rh}{\varrho}
        \newcommand{\ph}{\varphi}
        `
        Credo che tu stesso converrai che la prima stringa è francamente illeggibile e inelegante. Nello stesso tempo però mi sembra davvero oneroso dover scrivere tutte le formule interponendo uno spazio dopo ogni carattere.

        EDIT: eliminata domanda sbagliata.

        Occorrerebbe una fonte dalla quale verificare la spaziatura originale per poter rispondere. Che fanno i comandi \therefore e \spa?

        Io sarei più drastico sui nomi delle lettere greche: o usi la variante oppure no; quindi
        `\newcommand{\eps}{\varepsilon} % \epsilon è troppo lungo
        \renewcommand{\theta}{\vartheta}
        \renewcommand{\rho}{\varrho}
        \renewcommand{\phi}{\varphi}`
        Ciao
        Enrico

        Potresti fare così:
        `\newcommand{\pin}{\mathrel{\eps}}
        \newcommand{\pdot}{\mathrel{.}}
        \newcommand{\pimpl}{\raisebox{-.3ex}{\rotatebox[origin=c]{180}{\normalfont C}}}

        \[
        a,b\pin K \pdot \pimpl \therefore \alpha \pin a \mid b \pdot =: x \pin a
        \pdot \pimpl_x \pdot x \alpha \pin b.
        \]`
        Poiché la notazione di Peano non rispetta le spaziature tradizionali (ed è terribilmente brutta, oltre che incomprensibile), è possibile che qualche volta ti serva una spaziatura manuale: \; è quello che fa per te.

        Ciao
        Enrico

      • #31560
        Up
        0
        Down
        ::

        In entrambi mi sono ridefinito alcune lettere greche come suggerito nell’Arte di scrivere con LaTex
        `\newcommand{\eps}{\varepsilon}
        \newcommand{\thet}{\vartheta}
        \newcommand{\rh}{\varrho}
        \newcommand{\ph}{\varphi} `

        No, questo non l’ho suggerito io. Leggi meglio quel passo.

        Vero. Scusa Lorenzo.
        Ho letto quella parte dopo l’una di notte e nonero freschissimo…ho confuso \newcommand con \renewcommand… 🙄

        Grazie per le indicazioni.

      • #31561
        Up
        0
        Down
        ::

        Occorrerebbe una fonte dalla quale verificare la spaziatura originale per poter rispondere.

        Vero. Io le fonti le sto studiando da qualche mese e ti garantisco che l’originale è di gran lunga più simile alla seconda stringa che non alla prima che, secondo me, è veramente illeggibile.

        Che fanno i comandi \therefore e \spa?

        \therefore genera il simbolo di tre punti disposti a triangolo, \spa è una mia ridefinizione del carattere di spaziatura \,.

        Io sarei più drastico sui nomi delle lettere greche: o usi la variante oppure no

        Hai perfettamente ragione. Come ho risposto a Lorenzo, ho confuso i due comandi.

        Potresti fare così:
        `\newcommand{\pin}{\mathrel{\eps}}
        \newcommand{\pdot}{\mathrel{.}}
        \newcommand{\pimpl}{\raisebox{-.3ex}{\rotatebox[origin=c]{180}{\normalfont C}}}

        \[
        a,b\pin K \pdot \pimpl \therefore \alpha \pin a \mid b \pdot =: x \pin a
        \pdot \pimpl_x \pdot x \alpha \pin b.
        \]`
        Poiché la notazione di Peano non rispetta le spaziature tradizionali (ed è terribilmente brutta, oltre che incomprensibile), è possibile che qualche volta ti serva una spaziatura manuale: \; è quello che fa per te.

        Vedrò come procedere, grazie del suggerimento, comunque. 🙂

        Per quel che riguarda leggibilità della notazione di Peano credo che sia solo una questione di abitudine. Noi non siamo abituati ai punti separatori ma è anche vero che se si riscrivono le sue stringhe usando le parentesi come si fa abitualmente allora sì che diventano veramente incomprensibili.

        Sulla sua bellezza si potrebbe discutere più a lungo d iquanto si potrebbe pensare così ad una prima occhiata. Sarà che mi ci sono abituato ma a me piacciono, hanno una loro eleganza e sono decisamente più moderne delle coeve notazioni di Frege o Schroder, ad esempio.
        Certo se Peano avesse potuto comporre i suoi lavori col Latex sarebbe stata tutta un’altra storia! 😉

        Grazie ancora e a presto.

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

    Go to top