Nuovo pacchetto “fontsize”

  • Creatore
    Topic
  • #117335
    Up
    0
    Down
    ::


    Da oggi è disponibile su TeX Live il nuovo pacchetto fontsize.
    La documentazione si può leggere, come sempre, da Terminale con texdoc fontsize
    oppure qui: http://mirrors.ctan.org/macros/latex/contrib/fontsize/fontsize.pdf

    Il pacchetto serve per modificare il corpo del font principale, potendo scegliere valori arbitrari.
    Per esempio con
    `\usepackage[fontsize=11.5pt]{fontsize}`
    il corpo normale viene impostato a 11.5pt e l’interlinea, così come tutte le altre dimensioni (\small, \footnotesize, \large, ecc.) vengono scalate coerentemente.

    Perché questo pacchetto? Perché usando certi font, in particolare con gabbie piccole, può capitare che 10pt sia troppo piccoli e 11pt sia troppo grande.
    In questo modo è “tutto” automatico. Tra virgolette…perché il valore di \parindent deve essere aggiustato in alcuni casi, visto che viene definito nel file .clo caricato dalla classe.
    Per questo motivo è buona norma impostare l’opzione di classe al valore più vicino a quello passato a fontsize. Per esempio, se fontsize=11.2pt, l’opzione della classe “deve” essere 11pt.
    In alternativa si può di volta in volta definire \parindet come si preferisce.

    Infine, con suftesi, il pacchetto è integrato, e non deve essere caricato. Basta passare l’opzione alla classe (il warning va ignorato):
    `\documentclass[pagelayout=supercompactaureo,version=screen,fontsize=10.5pt]{suftesi}
    \usepackage{lipsum}

    \begin{document}

    \lipsum

    \end{document}`

    Ecco un file per testare il pacchetto:
    `\documentclass[11pt]{book}
    \usepackage[fontsize=11]{fontsize}
    \usepackage{ltxdockit}
    \usepackage{kantlipsum}

    \newlength{\mylength}
    \setlength{\mylength}{1em}

    \makeatletter
    \newcommand{\mysize}[1]{%
    \bgroup
    \csname#1\endcsname
    \noindent The \cmd{#1} size is: \textbf{\csname#1\endcsname\f@size\,pt}.\\
    The \cmd{baselineskip} is \the\baselineskip.\par\vskip2mm\egroup}
    \newcommand{\mysizeex}[1]{%
    \subsection*{\csname #1\endcsname \cmd{#1}}
    \bgroup\raggedright\csname #1\endcsname\kant[1]\par\egroup}
    \makeatother

    \begin{document}

    \section*{A test file for \sty{fontsize} package}

    \verb!\usepackage[fontsize=10.5]{fontsize}!\bigskip

    \mysize{tiny}
    \mysize{scriptsize}
    \mysize{footnotesize}
    \mysize{small}
    \mysize{normalsize}
    \mysize{large}
    \mysize{Large}
    \mysize{LARGE}
    \mysize{huge}
    \mysize{Huge}

    \mysizeex{tiny}
    \mysizeex{scriptsize}
    \mysizeex{footnotesize}
    \mysizeex{small}
    \mysizeex{normalsize}
    \mysizeex{large}
    \mysizeex{Large}
    \mysizeex{LARGE}
    \mysizeex{huge}
    \mysizeex{Huge}

    \end{document}
    `

    Ciao
    Ivan

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #117336
      LuglioM26
      Partecipante
        Up
        0
        Down
        ::



        @ivan

        Ciao, solo a titolo informativo e se ho ben capito (anche perchè mi interessa ed è utile in certe situazioni), il tuo pacchetto, a differenza ad esempio di extarticle, extreport, extletter, …) permette di scalare i font a valori decimali rispettando le indicazioni e le modalità d’uso che consigli.

        Grazie!

        Stefano

      • #117337
        Up
        0
        Down
        ::

        LuglioM26″ post=117756 @ivan

        Ciao, solo a titolo informativo e se ho ben capito (anche perchè mi interessa ed è utile in certe situazioni), il tuo pacchetto, a differenza ad esempio di extarticle, extreport, extletter, …) permette di scalare i font a valori decimali rispettando le indicazioni e le modalità d’uso che consigli.

        Grazie!

        Stefano

        Esatto. Puoi scegliere, per esempio, anche 10.67pt. Questo significa che \normalsize sarà 10.67pt e le altre misure (\large, \small, \footnotesize, ecc) saranno adattate proporzionalmente. Stessa cosa per l’interlinea che sarà, per \normalsize 12.80, e per le altre misure proporzionale. Per gli alttri dati basta compilare l’esempio riportato nella doc.

        Naturalmente i valori dell’interlinea scelti dal pacchetto in base al valore scelto per fontsize non sono una legge di natura. Uno potrebbe volere il corpo normale a 10.67pt e l’interlinea 12 (cioè ridotta, rispetto alla “norma”). Attualmente la soluzone è usare \linespread e, per tentativi, cercare il valore dell’interlinea che ci interessa. Per quanto riguarda \normalsize, si potrebbe facilmente fare in modo che l’interlinea di default fosse esattamente due punti maggiore del corpo, ma ovviamente questa regola non va bene per corpi maggiori.
        Ho intenzione di implementare un’opzione per scegliere l’interlinea almeno per i corpi \normalsize, \small e \footnotesize, che sono quelli usato per il testo.

        Ciao
        Ivan

      • #117338
        Up
        0
        Down
        ::


        Disponibile da oggi la versione 0.2.
        Non ci sono novità sostanziali, se non la documentazione aggiornata.

        Facendo seguito all’ultimo messaggio di Stefano, preciso che è possibile impostare l’interlinea attraverso il comando
        `\generateclofile{}[]{}`
        che genera un file .clo, con i valori di interlinea corretti, a seconda del valore di .
        Da usare in questo modo:
        `
        \usepackage[fontsize=11.5,cloname=fs]{fontsize} % loads fs11.5.clo
        \generateclofile{fs}[13.5]{11.5}
        `

        Il comando
        `\printfontsize[]{}
        `
        è utile per farsi un’idea delle impostazioni impostate.

        Ciao
        Ivan

      • #117339
        Up
        0
        Down
        ::


        Scopro adesso questo pacchetto, molto interessante.

        Sinora ho fatto piccoli aggiustamenti usando etoolbox, per es. così

        `\patchcmd{\normalsize}{\@xipt}{{11.1pt}}{}{}
        \normalsize
        `

        impostando la classe (nel mio caso memoir) al valore 11pt. Se capisco bene, questo metodo si limita a scalare il font lasciando immutato tutto il resto. Per piccoli aggiustamenti l’effetto non è male.

        Ora ho fatto una prova con il pacchetto fontsize. Mi sono accorto, con un po’ di sorpresa, che lo scartamento risulta leggermente minore di quello ottenuto con l’altro metodo. Così mi è venuta la curiosità di chiedere il perché – tanto più che qui c’è l’autore del pacchetto in persona 🙂

        Dopodiché, immagino che sia l’occhio a dover decidere quale delle due rese è esteticamente preferibile. Dal punto di vista tecnico, possono esserci ragioni per preferire l’una o l’altra strada?

        Grazie!

      • #117340
        Up
        0
        Down
        ::


        Assumiamo di lavorare con
        `\documentclass[11pt]{memoir}`
        In questo caso viene caricato il file mem11.clo.
        Nella righe 31-32 di questo file trovi:
        `
        \renewcommand{\normalsize}{%
        \@setfontsize\normalsize\@xipt{13.6}%
        `
        che significa che \normalsize è impostato a 11pt su 13.6pt.
        Dando
        `\patchcmd{\normalsize}{\@xipt}{{11.1pt}}{}{}`
        non fai altro che cambiare la riga 32 in questa:
        ` \@setfontsize\normalsize{11.1pt}{13.6}%
        `
        che significa che \normalsize ora equivale a 11.1pt sempre su 13.6pt.
        Cioè non hai modificato lo scartamento, ma solo il valore del corpo normale.

        Se invece modifichi il valore di \normalsize con
        `\usepackage[fontsize=11.1pt]{fontsize}`
        succedono due cose. 1) di fatto il file mem11.clo viene sovrascritto…è “quasi” come non lo caricassi, almeno per la questione in oggetto; 2) l’opzione fontsize=11.1 modifica sia la dimensione del font normale sia lo scartamento, che di default è impostato a 1.2*.

        Quindi, ecco le due situazioni

        1) con fontsize.

        corpo normale = 11.1
        scartamento = 13,31996 (=11.1*1,2)

        2) con l’altro comando:

        corpo normale = 11.1
        scartamento = 13.6

        Per concludere, l’equivalente del primo approccio, usando fontsize sarebbe questo:
        `\patchcmd{\normalsize}{\@xipt{13.6}}{{11.1pt}{13.31996pt}}{}{}`

        Ciao
        Ivan

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

          ivan” post=117737Perché questo pacchetto? Perché usando certi font, in particolare con gabbie piccole, può capitare che 10pt sia troppo piccoli e 11pt sia troppo grande.

          Già. Nei librini di matematica che ho messo sul mio sito ho usato un formato di pagina 17×24: 11 punti erano troppi e molte formule non ci stavano, ma con 10 punti il risultato era poco leggibile. 10 punti e mezzo sono stati un ottimo compromesso. Ho usato il comando
          `\changefontsizes{10.5pt}`
          che se non sbaglio è definito dalle famigerate classi KOMA.

          Questo per dire che il problema sollevato da Ivan non è per nulla peregrino.

          Grazie anche per questo pacchetto. 🙂

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

      Go to top