Simboli con pedice rapidi

  • Creatore
    Topic
  • #70294
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Ciao,
      inserendo molte formule con simboli quasi sempre dotati di pedice, in modalità matematica scrivo:
      `S_\mathrm{pedice}`
      non creo volentieri nuovi comandi per queste situazioni preferendo essere la maggior parte delle volte “plain”, tuttavia il numero di questi simboli è notevole, dunque ho pensato ad un comando specifico con argomenti delimitati, molto semplice:
      `\def\sym#1_#2;{#1_\mathrm{#2}}`
      da usare così per esempio:
      `\( \sym V_S,30; \)`

      Si deve solo premettere la command sequence \sym e terminare con ; il simbolo, naturalmente in ambiente matematico.

      Cosa ne pensate?
      Esiste una soluzione ancora più essenziale e minimale?
      Grazie.

    Visualizzazione 12 filoni di risposte
    • Autore
      Risposte
      • #70295
        Up
        0
        Down
        ::


        Tempo fa avevo chiesto una cosa simile. Chiedevo se fosse possibile fare
        in modo che con il normale underscore avessi un pedice in corsivo, mentre
        con un doppio underscore avessi un pedice in tondo.
        Mi rispose Enrico ma ora non riesco a trovare la conversazione, in ogni caso
        c’erano degli effetti collaterali, la cosa non era così semplice.

        Io ho definito due comandi da usarsi così:
        `S\rb{V} S\rp{V}`
        dove \rb{…} sta per roman subscript e \rp{…} per roman superscript.

        La definizione è (l’ho copiata da sapthesis, magari sostituisci i providecommand con dei def o simili)
        `% roman subscript
        \providecommand*{\rb}[1]{\ensuremath{_\mathrm{#1}}}
        % roman superscript
        \providecommand*{\rp}[1]{\ensuremath{^\mathrm{#1}}}
        `
        Ciao ciao.
        Fra

      • #70296
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Uhm,
          in pratica per me il pedice in roman è una costante.
          Il tuo approccio è semplice e valuterò come definire la sintassi in via definitiva per i prossimi documenti.
          Grazie per la risposta.
          R.

        • #70297
          Up
          0
          Down
          ::


          Ciao a tutti,

          io uso i comandi \ap e \ped, che funzionano sia nel testo che in ambiente matematico (dove viene usato il carattere tondo come in sin, cos, …, se non sbaglio).

          Ciao,
          Marco.

        • #70298
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            \ap e \ped funzionano solo se stai componendo in italiano; se stai componendo in inglese o i qualche altra lingua, non sono disponibili, ma se ne copi le definizioni dalla descrizione dell’italiano per babel (italian.ldf) aggiustando un po’ le cose li puoi avere sempre disponibili per tutti i tuoi documenti, copiandone semplicemente il codice da un documento all’altro.

          • #70299
            Up
            0
            Down
            ::

            francesco.biccari” post=69519[…] Mi rispose Enrico ma ora non riesco a trovare la conversazione […]

            Credo fosse questa.

            PS: forse qualcuno storcerà il naso, ma qualche volta ho pensato di usare una notazione di questo tipo:
            `x^{i} % apice corsivo
            x^ % apice dritto
            x_{i} % pedice corsivo
            x_ % pedice dritto`

            Intuitivamente, le parentesi quadre sono “più dritte” di quelle graffe. Perdonate l’analogia… 🙂

            In ogni caso non credo che possano sorgere problemi di ambiguità. Per come stanno le cose di norma, [tt]x_[/tt] metterebbe a pedice solo la parentesi: del tutto senza senso (direi). Inoltre, con la ridefinizione che ho proposto, anche [tt]x_{}[/tt] continuerebbe a fare il suo lavoro.

            Ciao,
            Antonio

          • #70300
            Up
            0
            Down
            ::


            Mi piace molto questa idea delle parentesi quadre e graffe!

            Hai già scritto del codice?

            Ciao ciao.
            Fra

          • #70301
            Up
            0
            Down
            ::

            francesco.biccari” post=69542Mi piace molto questa idea delle parentesi quadre e graffe!

            Hai già scritto del codice?

            `\makeatletter
            \mathcode`_=\string”8000
            \catcode`_=\active
            \def_{\@ifnextchar[\ItOrUp@mathrm\sb}
            \def\ItOrUp@mathrm[#1]{\sb\mathrm{#1}}
            \@makeother\_
            \makeatother

            $a_{x}a_[ciao]$`
            Ciao
            Enrico

          • #70302
            Up
            0
            Down
            ::


            Fantastico Enrico! 🙂

            Volendo anche gli apici posso modificare così?
            `\makeatletter
            \mathcode`_=\string”8000
            \catcode`_=\active
            \def_{\@ifnextchar[\ItOrUp@sb@mathrm\sb}
            \def\ItOrUp@sb@mathrm[#1]{\sb\mathrm{#1}}
            \@makeother\_

            \mathcode`^=\string”8000
            \catcode`^=\active
            \def^{\@ifnextchar[\ItOrUp@sp@mathrm\sp}
            \def\ItOrUp@sp@mathrm[#1]{\sp\mathrm{#1}}
            \@makeother\^
            \makeatother`

            Sono andato a braccio, ma sembra funzionare.

            Grazie!

          • #70303
            Up
            0
            Down
            ::

            antonio.macrì” post=69559Fantastico Enrico! 🙂

            Volendo anche gli apici posso modificare così?
            `\makeatletter
            \mathcode`_=\string”8000
            \catcode`_=\active
            \def_{\@ifnextchar[\ItOrUp@sb@mathrm\sb}
            \def\ItOrUp@sb@mathrm[#1]{\sb\mathrm{#1}}
            \@makeother\_

            \mathcode`^=\string”8000
            \catcode`^=\active
            \def^{\@ifnextchar[\ItOrUp@sp@mathrm\sp}
            \def\ItOrUp@sp@mathrm[#1]{\sp\mathrm{#1}}
            \@makeother\^
            \makeatother`

            Sono andato a braccio, ma sembra funzionare.

            Grazie!

            È identico, quindi funziona. Sconsiglio vivamente entrambi. 🙂

            Ciao
            Enrico

          • #70304
            Up
            0
            Down
            ::


            Io per i pedici ho sempre usato cose lunghissime, usando {\mbox{\scriptsize }}, a volte persino \tiny. Ovviamente trucchetti come quelli che ho letto qui sopra fanno sempre piacere.

          • #70305
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Non ho verificato nel kernel di LaTeX, ma una volta scrivere il nome di un file che contenesse un underscore provocava errori a causa del suo codice di categoria; ora non sembra succedere più, ma certamente, l’underscore cambia categoria in diversi punti dell’esecuzione di varie macro.

              Io allora cercherei di rendere locale il cambio di categoria e scriverei:
              `
              \AtBeginDocument{\mathcode`_=\string”8000}
              {\catcode`_=\active
              \gdef_{\@ifnextchar[\ItOrUp@sb@mathrm\sb}}
              \def\ItOrUp@sb@mathrm[#1]{\sb\mathrm{#1}}
              `
              e analogamente per gli apici; eviterei \@makeatother\_ perché il lavoro l’ha già fatto il gruppo; la definizione \gdef è come \def, ma è globale e trascende il gruppo; ovviamente funziona solo quando _ è un carattere attivo, quindi solo in matematica.

            • #70306
              Up
              0
              Down
              ::

              OldClaudio” post=69576Non ho verificato nel kernel di LaTeX, ma una volta scrivere il nome di un file che contenesse un underscore provocava errori a causa del suo codice di categoria; ora non sembra succedere più, ma certamente, l’underscore cambia categoria in diversi punti dell’esecuzione di varie macro.

              Io allora cercherei di rendere locale il cambio di categoria e scriverei:
              `
              \AtBeginDocument{\mathcode`_=\string”8000}
              {\catcode`_=\active
              \gdef_{\@ifnextchar[\ItOrUp@sb@mathrm\sb}}
              \def\ItOrUp@sb@mathrm[#1]{\sb\mathrm{#1}}
              `
              e analogamente per gli apici; eviterei \@makeatother\_ perché il lavoro l’ha già fatto il gruppo; la definizione \gdef è come \def, ma è globale e trascende il gruppo; ovviamente funziona solo quando _ è un carattere attivo, quindi solo in matematica.

              Il problema dell’underscore non legale nei nomi dei file si presenta quando è attivo. Con le mie macro non lo è. Il nucleo di LaTeX non cambia mai il codice di categoria di _, che io sappia, eccetto per definirne l’azione nel caso sia “math active”, cioè abbia mathcode “8000, definendolo come [tt]\_[/tt]; ma la mia definizione annulla questa.

              Naturalmente il codice di categoria cambia in un ambiente verbatim, ma è un’altra faccenda.

              In ogni caso, affinché la faccenda funzioni l’underscore deve avere codice di categoria 12 (oppure 11, ma questo è proprio meglio di no). Se gli lasci codice di categoria 8, il suo significato come “math active” non viene mai usato.

              Ciao
              Enrico

            • #70307
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::

                In ogni caso, affinché la faccenda funzioni l’underscore deve avere codice di categoria 12 (oppure 11, ma questo è proprio meglio di no). Se gli lasci codice di categoria 8, il suo significato come “math active” non viene mai usato.

                Questo fatto proprio mi sfuggiva; e il fatto che abbia proposto il mio codice segnal che l’ho scritto ma non l’ho collaudato; se l’avessi fatto, mi sarei reso conto da solo che c’era qualcosa sotto che mi sfuggiva; grazie Enrico, come sempre.

                Ciao
                Claudio

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

            Go to top