Contenuto del file fontspec.cfg

  • Creatore
    Topic
  • #114268
    MatteoF
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno a tutti,

      ho la necessità di personalizzare il file [tt]fontspec.cfg[/tt]. La documentazione del pacchetto dedica poche righe all’argomento (§ 3.3 Configuration).

      Finché nel file inserisco le caratteristiche dei font (ad es. attraverso il comando [tt]\defaultfontfeatures[/tt]) tutto bene, come nell’esempio seguente:
      `
      % !TEX TS-program = lualatex

      \documentclass{minimal}

      \usepackage{filecontents}
      \begin{filecontents*}{fontspec.cfg}
      \defaultfontfeatures{Color=cd1076}
      \end{filecontents*}

      \usepackage{fontspec}
      \setmainfont{EB Garamond}

      \begin{document}
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      \end{document}
      `
      I problemi (e gli errori) nascono quando nel file voglio definire non tanto le caratteristiche dei font, ma i font stessi (tramite i comandi [tt]\setmainfont[/tt], [tt]\setsansfont[/tt], etc.), come nell’esempio seguente:
      `
      % !TEX TS-program = lualatex

      \documentclass{minimal}

      \usepackage{filecontents}
      \begin{filecontents*}{fontspec.cfg}
      \defaultfontfeatures{Color=cd1076}
      \setmainfont{EB Garamond}
      \end{filecontents*}

      \usepackage{fontspec}

      \begin{document}
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
      \end{document}
      `
      In quest’ultimo caso, [tt]luaLaTeX[/tt] dà l’errore:
      `
      ! Undefined control sequence.
      \__fontspec_shape_merge:nn
      {n}{\scdefault }
      l.3608 \providecommand
      *\itscdefault{\itdefault\scdefault}
      ?
      `
      Ho forse inteso male io l’utilizzo del file [tt]fontspec.cfg[/tt]?

      Matteo

      PS: l’utilizzo del pacchetto [tt]filecontents[/tt] negli emc si è reso necessario, poiché l’ambiente standard non permette la riscrittura di file esistenti.

    Visualizzazione 5 filoni di risposte
    • Autore
      Risposte
      • #114269
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Perché, così non funziona?
          `% !TEX TS-program = lualatex

          \documentclass{minimal}

          \usepackage{fontspec}
          \defaultfontfeatures{Color=cd1076}
          \setmainfont{EB Garamond}

          \begin{document}
          Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
          \end{document}`

          Se invece vuoi modificare permanentemente il file fonspec.cfg, dovresti scrivere il file nella stessa cartella del file originale, ma nell’albero radicato in texmf-local (usabile da tutti gli utenti della tua macchina, o nel tuo albero personale texmf radica to nela tua Home.

          Io preferirei creare un file .sty contenente sia il caricamento di fontspec, sia le impostazioni che voglio dargli sia il font che voglio usare, in modo che solo per i documenti da comporre con quelle caratteristiche caricherei un solo pacchetto, senza preoccuparmi di configurazioni che influiscano su qualunque documento.

        • #114270
          MatteoF
          Partecipante
            Up
            0
            Down
            ::


            Ovviamente le impostazioni di [tt]fontspec[/tt] all’interno del file [tt].tex[/tt] funzionano, come funzionerebbero se inserite in un file di classe (o di stile).

            Poichè [tt]fontspec[/tt] permette di definire le impostazioni non solo direttamente nel file da compilare o in un pacchetto/classe, ma anche personalizzando il file [tt]fontspec.cfg[/tt], avevo interesse ad approfondire questo aspetto, tutto qui 🙂

            Evidentemente questo file di configurazione non permette la definizione del font, ma solo le sue specifiche (font features). Se è così, però, ammetto di non capirne l’utilità. E allora torno alla mia domanda finale: ho forse inteso male io l’utilizzo del file [tt]fontspec.cfg[/tt]?

          • #114271
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Ti confesso che non ho mai usato il file di configurazione.

              Però come ti ho spiegato, se imposti un tuo file fontspec.cfg, qualunque cosa ci scrivi dentro diventa globale non solo per un dato documento, ma per tutti i documenti, specialmente se salvi questo file di configurazione in una cartella accessibile o a tutti gli utenti della tua macchina, o a te stesso se lo metti nell’albero personale, ma, ripeto, vale per tutti i documenti che componi.

              D’altra parte il file fontspec.cfg predefinito ha questo contenuto`

              %%% FONTSPEC.CFG %%%
              %
              % This configuration file sets up TeX Ligatures by default for all fonts loaded
              % with `\setmainfont` and `\setsansfont`.
              %
              % In addition, `\setmonofont` has default features to enforce “monospace”
              % settings with regard to space stretchability and shrinkability.
              %
              % Make a copy of this file in your own home TEXMF directory to set up your own
              % defaults.

              \defaultfontfeatures
              [\rmfamily,\sffamily]
              {Ligatures=TeX}

              \defaultfontfeatures
              [\ttfamily]
              {WordSpace={1,0,0},
              HyphenChar=None,
              PunctuationSpace=WordSpace}`Da quel che vedo, sembra che non ci sia nessuna descrizione nella documentazione di texlive che parli di fontspec.cfg, nè vi appare nulla nella documentazione di tlmgr. Viceversa nella documentazione stessa di fontspec leggo:

              To customise fontspec to your liking, use the standard .cfg file as a starting point or write your own from scratch, then either place it in the same folder as the main document for isolated cases, or in a location that X TE EX or LuaTEX searches by default; e.g. in MacTEX: ~/Library/texmf/tex/latex/.

              Nell’esempio fa riferimento a dove metterlo in un albero personale sun un Mac.

            • #114272
              MatteoF
              Partecipante
                Up
                0
                Down
                ::


                Grazie Claudio per le tue osservazioni.

                Riguardo il “raggio di azione” di [tt]fontspec.cfg[/tt], il file si comporta come previsto (e come scritto nella documentazione), ovvero: se duplicato nell’albero personale ha valenza globale su tutti i documenti dell’utente, se duplicato nella cartella del singolo documento agisce solamente sul documento medesimo.

                Ma la mia domanda iniziale (oggetto della discussione) riguardava il contenuto di [tt]fontspec.cfg[/tt], e del perché non sia possibile configurare i font (tramite i comandi \setmainfont, \setsansfont, etc.), ma solamente le font features.

                Ma tant’è: me ne faccio una ragione, continuerò a configurare [tt]fontspec[/tt] come sempre (e come, penso, abbiano sempre fatto tutti :D)

              • #114273
                OldClaudio
                Partecipante
                  Up
                  0
                  Down
                  ::


                  In realtà fontspec.cfg è letto da fontspec.sty prima di caricare i font, i quali verranno poi caricati dall’utente nel proprio preambolo. è una questione di tempi; fontspec.cfg viene letto da fontspec prima di quando definisce i comandi di caricamento.

                • #114274
                  MatteoF
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Ora so il perché del messaggio di errore. Grazie per la spiegazione TeXnica.

                    Matteo

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

                Go to top