Personalizzare i files di classe

  • Creatore
    Topic
  • #35497
    Up
    0
    Down
    ::


    Ciao a tutti, stavolta non sono qui per risolvere un problema, ma per aprire uno scambio di idee circa la personalizzazione dei files di classe con utenti più esperti di me (ma anche con gli altri).

    Alle prese con un lavoro di impaginazione che doveva seguire precise direttive sulla dimensione dei fogli, i margini, i caratteri, l’interlinea etc. mi sono a un certo punto trovato in difficoltà con la formattazione standard della numerazione delle pagine e ho ritenuto opportuno operare modifiche a book.cls, avrei inoltre potuto ottimizzare il lavoro e alleggerire il file.tex. Detto fatto ho creato una mia classe di documento con le specifiche di cui necessitavo (la numerazione delle pagine l’ho proprio eliminata per poterla inserire manualmente nelle pagine con \markboth, in effetti questa soluzione appesantisce un po’ il compilato, ma mi pare versatile), quasi tutte le specifiche che avevo nel preambolo sono finite nell’impaginazione che la classe usa di default, cosa che mi sarà utile anche in futuro dato che dovrò impaginare nello stesso modo altri documenti.
    Voi che dite? Usate sempre le documentclass così come sono o preferite rielaborarle e adattarle alle vostre esigenze?

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #35498
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        Ciao a tutti, stavolta non sono qui per risolvere un problema, ma per aprire uno scambio di idee circa la personalizzazione dei files di classe con utenti più esperti di me (ma anche con gli altri).

        Alle prese con un lavoro di impaginazione che doveva seguire precise direttive sulla dimensione dei fogli, i margini, i caratteri, l’interlinea etc. mi sono a un certo punto trovato in difficoltà con la formattazione standard della numerazione delle pagine e ho ritenuto opportuno operare modifiche a book.cls, avrei inoltre potuto ottimizzare il lavoro e alleggerire il file.tex. Detto fatto ho creato una mia classe di documento con le specifiche di cui necessitavo (la numerazione delle pagine l’ho proprio eliminata per poterla inserire manualmente nelle pagine con \markboth, in effetti questa soluzione appesantisce un po’ il compilato, ma mi pare versatile), quasi tutte le specifiche che avevo nel preambolo sono finite nell’impaginazione che la classe usa di default, cosa che mi sarà utile anche in futuro dato che dovrò impaginare nello stesso modo altri documenti.
        Voi che dite? Usate sempre le documentclass così come sono o preferite rielaborarle e adattarle alle vostre esigenze?

        Se i documenti da costruire sono tanti e dello stesso tipo conviene utilizzare una propria classe che sfrutta una classe base.
        Il sorgente risulta così molto più pulito ed è possibile progettare comandi ed opzioni apposite.
        Ho constatato che questo processo di miglioramento nel tempo richiede una certa attenzione, pertanto consiglio a mia volta di scrivere i propri comandi ed opzioni per gradi con le dovute sperimentazioni di collaudo.
        Ho creato un paio di classe specializzate per il lavoro che svolgo fino a raggiungere un ottimo risultato di base ma che dovrei procedere ad evolvere.
        Questa è la mia esperienza: soddisfatto si ma anche conscio della complessità di sviluppo di proprie classi LaTeX.
        Ciao

      • #35499
        Up
        0
        Down
        ::

        Ciao a tutti, stavolta non sono qui per risolvere un problema, ma per aprire uno scambio di idee circa la personalizzazione dei files di classe con utenti più esperti di me (ma anche con gli altri).

        Alle prese con un lavoro di impaginazione che doveva seguire precise direttive sulla dimensione dei fogli, i margini, i caratteri, l’interlinea etc. mi sono a un certo punto trovato in difficoltà con la formattazione standard della numerazione delle pagine e ho ritenuto opportuno operare modifiche a book.cls, avrei inoltre potuto ottimizzare il lavoro e alleggerire il file.tex. Detto fatto ho creato una mia classe di documento con le specifiche di cui necessitavo (la numerazione delle pagine l’ho proprio eliminata per poterla inserire manualmente nelle pagine con \markboth, in effetti questa soluzione appesantisce un po’ il compilato, ma mi pare versatile), quasi tutte le specifiche che avevo nel preambolo sono finite nell’impaginazione che la classe usa di default, cosa che mi sarà utile anche in futuro dato che dovrò impaginare nello stesso modo altri documenti.
        Voi che dite? Usate sempre le documentclass così come sono o preferite rielaborarle e adattarle alle vostre esigenze?

        In genere è molto sconsigliabile toccare le classi standard; ovviamente avrai lavorato su una copia rinominata, almeno spero.

        Puoi fare un esempio di ciò che hai modificato? Non tutto, almeno per il momento.

        Ciao
        Enrico

      • #35500
        Up
        0
        Down
        ::


        Ho fatto un duplicato rinominato, naturalmente.
        Le modifiche essenzialmente sono:
        `\DeclareOption{mypaper}
        {\setlength\paperheight {205mm}%
        \setlength\paperwidth {140mm}}`
        qui ho cambiato la misura della carta (al posto di a4 paper).
        `\renewcommand\footnoterule{%
        \kern-3\p@
        \hrule\@width.0\columnwidth
        \kern2.6\p@}`
        Qui ho eliminato la riga nera che separa le note dal testo.

        Poi ho cercato il comando /thepage e l’ho semplicemente cancellato da tutto il file (i margini li ho lasciati nel preambolo del .tex)

      • #35501
        Up
        0
        Down
        ::

        Ho fatto un duplicato rinominato, naturalmente.
        Le modifiche essenzialmente sono:
        `\DeclareOption{mypaper}
        {\setlength\paperheight {205mm}%
        \setlength\paperwidth {140mm}}`
        qui ho cambiato la misura della carta (al posto di a4 paper).
        `\renewcommand\footnoterule{%
        \kern-3\p@
        \hrule\@width.0\columnwidth
        \kern2.6\p@}`
        Qui ho eliminato la riga nera che separa le note dal testo.

        Poi ho cercato il comando /thepage e l’ho semplicemente cancellato da tutto il file (i margini li ho lasciati nel preambolo del .tex)

        Molto meglio non mettere l’opzione di scelta della carta nell’argomento di \documentclass e scrivere
        `\usepackage{geometry}
        \geometry{paperheight=205mm,paperwidth=140mm}`
        Per il filetto di separazione delle note puoi semplicemente scrivere nel tuo file
        `\renewcommand{\footnoterule}{}`
        Per eliminare \thepage (perché mai, poi), è sufficiente
        `\renewcommand{\thepage}{}`
        Come vedi, la modifica del file di classe non serve. Anzi, è dannosa: metti che ci si accorga di un grave buco della classe e che il team la modifichi. La tua rimarrà con il buco. Puoi definire una tua classe mybook.cls con il seguente codice:
        `\ProvidesClass{mybook}
        \LoadClass{book}
        \RequirePackage{geometry}
        \geometry{paperheight=205mm,paperwidth=140mm}
        \renewcommand{\footnoterule}{}
        \renewcommand{\thepage}{}`
        Mi pare un pochino più semplice, no?

        Ciao
        Enrico

      • #35502
        Up
        0
        Down
        ::


        Ammetto che il sistema è macchinoso, ma dovevo arrabattarmi un po’ come capitava.

        Sul perchè avevo bisogno di eliminare la numerazione delle pagine vedi qui: http://www.guit.sssup.it/phpBB2/viewtopic.php?t=6339

        Di fatto avevo usato lo usepackage Geometry (e lo uso ancora per i margini), ma dato che c’ero ho pensato di iniziare ad entrare nell’ottica di questo linguaggio (che per me è nuovo anche se mi diletto di programmazione, soprattutto il perl), tendenzialmente questo approccio empirico mi ha spesso aiutato a capire meglio il funzionamento interno dei codici.

      • #35503
        Up
        0
        Down
        ::

        Ammetto che il sistema è macchinoso, ma dovevo arrabattarmi un po’ come capitava.

        Sul perchè avevo bisogno di eliminare la numerazione delle pagine vedi qui: http://www.guit.sssup.it/phpBB2/viewtopic.php?t=6339

        Di fatto avevo usato lo usepackage Geometry (e lo uso ancora per i margini), ma dato che c’ero ho pensato di iniziare ad entrare nell’ottica di questo linguaggio (che per me è nuovo anche se mi diletto di programmazione, soprattutto il perl), tendenzialmente questo approccio empirico mi ha spesso aiutato a capire meglio il funzionamento interno dei codici.

        Be’, non è che ci avessi capito molto, non credi? 😉

        Vediamo \footnoterule: se guardi, vedi che comincia dando uno spazio verticale negativo di 3pt, poi compone il filetto che ha uno spessore di 0.4pt e quindi dà uno spazio verticale di 2.6pt; in totale lo spostamento verticale è nullo. Perciò per non avere nulla basta definirlo che non faccia nulla! Così per \thepage: un linguaggio come TeX, a espansione di macro, ha aspetti molto interessanti, anche se a volte costringe a notevoli contorsioni.

        Ciao
        Enrico

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

    Go to top