Sovrascrivere \newfont, \ChapterNumber

  • Creatore
    Topic
  • #18721
    lorenzo.pantieri
    Partecipante
      Up
      0
      Down
      ::


      Ciao a tutti, come osservato in questo topic, ClassicThesis definisce \ChapterNumber in questo modo:
      `
      {\newfont{\chapterNumber}{eurb10 scaled 7000}}%
      {\newfont{\chapterNumber}{pplr9d scaled 7000}}
      `
      Sto scrivendo una “variazione” di ClassicThesis e vorrei, fra l’altro, ridurre la dimensione e portarla a 5000. Naturalmente, vorrei caricare un pacchetto ad hoc dopo aver chiamato ClassicThesis, evitando di cambiare il file originale classicthesis.sty.

      Se scrivo semplicemente
      `{\newfont{\chapterNumber}{eurb10 scaled 5000}}%
      {\newfont{\chapterNumber}{pplr9d scaled 5000}}
      `
      dopo aver caricato classicthesis ottengo un errore:
      `Command \chapterNumber already defined.
      `
      Come si può fare?

      Grazie,
      L.

    Visualizzazione 5 filoni di risposte
    • Autore
      Risposte
      • #18722
        Up
        0
        Down
        ::

        Ciao a tutti, come osservato in questo topic, ClassicThesis definisce \ChapterNumber in questo modo:
        `
        {\newfont{\chapterNumber}{eurb10 scaled 7000}}%
        {\newfont{\chapterNumber}{pplr9d scaled 7000}}
        `
        Sto scrivendo una “variazione” di ClassicThesis e vorrei, fra l’altro, ridurre la dimensione e portarla a 5000. Naturalmente, vorrei caricare un pacchetto ad hoc dopo aver chiamato ClassicThesis, evitando di cambiare il file originale classicthesis.sty.

        Se scrivo semplicemente
        `{\newfont{\chapterNumber}{eurb10 scaled 5000}}%
        {\newfont{\chapterNumber}{pplr9d scaled 5000}}
        `
        dopo aver caricato classicthesis ottengo un errore:
        `Command \chapterNumber already defined.
        `
        Come si può fare?

        `\let\chapterNumber\undefined
        \ifthenelse{\boolean{eulerchapternumbers}}% font for the chapter numbers
        {\newfont{\chapterNumber}{eurb10 scaled 5000}}%
        {\newfont{\chapterNumber}{pplr9d scaled 5000}}`
        \newfont controlla che il comando non sia già definito. Così lo “sdefinisci”.

        Ciao
        Enrico

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

          `\let\chapterNumber\undefined
          \ifthenelse{\boolean{eulerchapternumbers}}% font for the chapter numbers
          {\newfont{\chapterNumber}{eurb10 scaled 5000}}%
          {\newfont{\chapterNumber}{pplr9d scaled 5000}}`
          \newfont controlla che il comando non sia già definito. Così lo “sdefinisci”.

          Come sempre perfetto!

          Grazie mille,
          Lorenzo

        • #18724
          Up
          0
          Down
          ::


          Ciao ragazzi, mi riallaccio a questo post.

          Qualcuno sa dirmi se esiste un modo per scrivere una cosa del tipo:
          `\newfont{\miofont}{\fontcorrente scaled 7000}`

          Dove ovviamente \fontcorrente è il font attualmente in uso (quello di default)…

          Grazie, Daniele.

        • #18725
          Up
          0
          Down
          ::

          Ciao ragazzi, mi riallaccio a questo post.

          Qualcuno sa dirmi se esiste un modo per scrivere una cosa del tipo:
          `\newfont{\miofont}{\fontcorrente scaled 7000}`

          Dove ovviamente \fontcorrente è il font attualmente in uso (quello di default)…

          Non mi pare una buona idea, meglio usare i comandi di NFSS per scegliere i font. Per esercizio:
          `\newfont\miofont{\fontname\font\space scaled 7000}`
          Però devi fare una ricerchina e scoprire come funziona veramente.

          Ciao
          Enrico

        • #18726
          Up
          0
          Down
          ::

          Non mi pare una buona idea, meglio usare i comandi di NFSS per scegliere i font.

          Scusa l’ignoranza… a che comandi ti riferisci? Esiste un comando che permette di scalare i caratteri senza passare per \newfont? (A parte i vari \large, \Large, etc?)

          Però devi fare una ricerchina e scoprire come funziona veramente.

          Ok!!!

          Ciao, Daniele.

        • #18727
          Up
          0
          Down
          ::

          Non mi pare una buona idea, meglio usare i comandi di NFSS per scegliere i font.

          Scusa l’ignoranza… a che comandi ti riferisci? Esiste un comando che permette di scalare i caratteri senza passare per \newfont? (A parte i vari \large, \Large, etc?)[/code]

          Cerca fntguide.pdf sul tuo sistema, scoprirai i comandi \fontsize e \selectfont.

          Per darti una mano: il comando primitivo \fontname accetta come argomento (senza graffe, mi raccomando) un qualsiasi comando di selezione di font, però solo quelli di basso livello (non roba come \large o \bfseries, per intenderci).

          I comandi di selezione di font di LaTeX sono a vari livelli: al più alto ci sono \bfseries, \large e così via. I comandi di LaTeX che cominciano con \font… sono di medio livello e vanno seguiti sempre da \selectfont.

          I comandi di alto livello vengono tradotti in quelli di medio, per esempio \bfseries corrisponde, normalmente, a \fontseries{bx}\selectfont. Questi comandi di medio livello vengono a loro volta tradotti in comandi di basso livello. Per esempio, \fontseries{bx}\selectfont dato in un contesto in cui è in vigore il font normale a corpo 10 viene tradotto nella chiamata del comando \OT1/cmr/bx/n/10 (che non è scrivibile direttamente per via delle barre).

          Sono questi i comandi che vengono accettati da \fontname. Per esempio
          `\expandafter\fontname\csname OT1/cmr/bx/n/10\endcsname`
          (occorre \csname per scrivere quel comando) produce la lista di token “cmbx10”, cioè il nome del file .tfm corrispondente al font che viene scelto con quel comando.

          Tuttavia c’è un comando che si può usare sempre, nel contesto di \fontname, ed è \font; quando è argomento di \fontname si riferisce infatti al font corrente. Dunque se si scrive
          `\fontname\font`
          in un contesto dove è valido \bfseries, verrà prodotta la lista di token cmbx10 (ammettendo che siamo nelle impostazioni di default di LaTeX). Ecco spiegato l’arcano:
          `\newfont\miofont{\fontname\font\space scaled 7000}`
          definisce \miofont come un comando di scelta di font di basso livello che richiederà il font che ha lo stesso nome del tfm del font corrente, ma ingrandito sette volte. Occorre \space perché lo spazio dopo \font sarebbe mangiato in fase di lettura. Di fatto quella chiamata di \newfont si espande in
          `\font\miofont=\fontname\font\space scaled 7000\relax`
          e \fontname espande tutto ciò che segue finché trova qualcosa che non possa essere interpretato come richiesta di un font, nel caso specifico espande \font, poi \space e si ferma a \relax. Se il font corrente è cmbx10 (nome esterno), avremo che \miofont richiede
          `cmbx10 scaled 7000`
          Il primo comando \font in quella riga definisce il token simbolico che segue come comando di scelta di font.

          Ammetterai che non è roba per principianti, eh? 😀

          Ciao
          Enrico

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

      Go to top