Ampiezza validità comando (dentro e fuori gruppo)

  • Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 9 anni fa da samiel.
  • Creatore
    Topic
  • #111222
    samiel
    Partecipante
      Up
      0
      Down
      ::


      Mi sfugge qualcosa, o forse il comando usato ha qualcosa che non va.
      Considerate il codice seguente:
      `\documentclass{article}
      \usepackage{fontspec}
      \defaultfontfeatures{RawFeature=-clig,Ligatures=TeX,Numbers=OldStyle,Contextuals=NoAlternate}
      \setmainfont{EB Garamond}
      \usepackage{polyglossia}
      \setmainlanguage[babelshorthands=true]{italian}
      \PolyglossiaSetup{italian}{indentfirst=false}
      \usepackage{microtype}
      \newrobustcmd\lining{\addfontfeatures{Numbers={Lining}}}

      \begin{document}
      12345

      \begingroup
      \lining{12345}
      \endgroup

      12345
      \bigskip

      12345

      \lining{12345}

      12345
      \end{document}`
      Perché se uso il comando \lining fuori dal gruppo,
      in seguito i numeri continuano a essere maiuscoli?
      Qual `\lining` non dovrebbe valere solo entro graffe?

      grazie
      m

    Visualizzazione 1 filone di risposte
    • Autore
      Risposte
      • #111223
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          No, sbagli ad usare le graffe; se scrivi `{\lining 12345}`funziona come previsto;
          \lining è una specie di dichiarazione: “di qui in avanti usa le cifre maiuscole”. Siccome non è globale resta in vigore o dentro al gruppo \begingroup … \endgroup, (esplicito come nel tuo esempio, o implicito come quando lo usi all’interno di un ambiente) oppure dentro ad un gruppo formato da una coppia di graffe esplicite o implicite: esplicite {…}, implicite \bgroup … \egroup.

          Se tu avessi definito \lining con `\newrobustcommand\lining{\global\addfontfeatures{Numbers=Lining}}` non ci sarebbe stato nessun gruppo o coppia di parentesi graffe espliciti o impliciti che ne avesse potuto rendere locale l’effetto.

          Diverso sarebbe stato se avessi definito il tuo comando con un argomento`\newrobustcommand\Lining[1]{{\addfontfeatures{Numbers=Lining}#1}}` che compone il suo argomento `\Lining{12345}` già racchiuso nel gruppo (le doppie parentesi graffe: quelle più esterne racchiudono la definizione del comando, quelle immediatamente più interne delimitano lo scopo della dichiarazione).

        • #111224
          samiel
          Partecipante
            Up
            0
            Down
            ::


            chiaro grazie!

            m

        Visualizzazione 1 filone di risposte
        • Devi essere connesso per rispondere a questo topic.

        Go to top