Introduzione alla “parte”

  • Creatore
    Topic
  • #106456
    Up
    0
    Down
    ::


    Salve,
    Scusate il titolo un po’ vago e forse impreciso, ma non sapevo come meglio riassumere il mio problema.
    Sto scrivendo un libro piuttosto lungo con LaTeX, tanto lungo da dover sfruttare tutte i sezionamenti messi a disposizione (da \subparagraph a \part).
    Il problema è che io vorrei inserire una breve introduzione riguardante genericamente una delle “parti” che ho inserito (non so come altrimenti tradurre \part) quindi un’introduzione posta subito dopo l’istruzione \part, non contenuta in alcun capitolo.
    Il problema è la brevità della introduzione che vorrei porre: meno di mezza pagina. L’effetto risultante è davvero brutto, infatti il sezionamento \part di default dedica un’intera pagina al titolo e una seconda pagina vuota. Se a queste due pagine segue una pagina semi-vuota ed una quarta del tutto vuota (in quanto ho impostato tutti i capitoli sulle pagine pari) il risultato è di una sensazione di eccessiva vuotezza, di spreco di carta (soprattutto se come nel mio caso si è deciso di impostare tutto su due colonne).
    Ecco un esempio (ovviamente l’originale non è così banale):
    `
    \part{Animali}
    %Introduzione
    Gli animali costituiscono uno dei cinque regni degli esseri viventi … si dividono in mammiferi, rettili, uccelli, pesci, anfibi … sono fondamentali per l'equilibrio della catena alimentare …
    \chapter{Mammiferi} …
    \chapter{Rettili} …
    \chapter{Uccelli} …
    %…
    `
    Siccome dopo quel poco di esperienza avuta con LaTeX (sono ancora un principiante) ho capito che se e una possibilità non è prevista o risulta troppo forzata (come in questo caso) probabilmente è perchè è tipograficamente errata, mi chiedevo: effettivamente è così?
    Ho provato anche ha dedicare un capitolo all’introduzione, ma era eccessivo (ovviamente) anche considerato il fatto che tutti gli altri capitoli hanno minimo 30 pagine.
    Inoltre ho anche provato a violare quello che era un perfetto annidamento di istruzioni che garantiva una buona struttura del testo, ponendo l’introduzione in una \section dedicata tra la \part ed il \chapter, ma non ha risolto nulla.
    La mia (seconda) domanda è: c’è un escamotage per inserire questa necessaria introduzione, senza ricorrere all’importazione di decine di pacchetti che probabilmente mi deformeranno irrimediabilmente l’impaginazione?
    Grazie per l’attenzione

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #106457
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Io farei così: ridefinirei il comando \part in modo che faccia tutto quello che fa ora, ma senza terminare con \cleradoublepage; in questo modo l’intestazione della parte rimane quella solita, ma il suo verso rimane disponibile per scriverci qualcosa, per esempio la tua breve introduzione; quando la tua introduzione è terminata, e dai il comando \chapter per comporre il primo capitolo di quella parte, esso incomincia come al solito con un \cleardoublepage, in modo da cominciare un capitolo su una pagina dispari (di destra; quelle pari sono a sinistra — attento a non scambbiare i concetti come sembrerebbe di capire dal tuo messaggio), in modo che non sprechi nessuna pagina vuota né quasi vuota.
        Naturalmente non è l’unica soluzione, ma questa mi pare la più semplice.

        Per modificare il comando \part o il suo subalterno \@part puoi copiare il codice dalla classe al tuo preambolo;poi puoi modificarlo a piacere; ovviamente devi stare attento a far precedere il tratto di codice da modificare dal comando \makeatletter, per poter gestire i comandi che contengono il segno @ come se fosse una lettera.

        Una alternativa sarebbe quella di usare il pacchetto xpatch, che ti permette di modificare localmente qualsiasi comando, purché tu sappia come esso è fatto dentro e tu sappia che cosa stai facendo; ecco perché personalmente preferisco copiare il codice nel miei preamboli (o in miei pacchetti personali) perché dovendo mettere le mani nel codice interno mi rendo conto perfettamente di quello che sto facendo.

      • #106458
        Up
        0
        Down
        ::


        Grazie per la risposta,
        Come prima cosa vorrei confermarti che effettivamente i capitoli iniziano alle pagine dispari (quelle a sinistra) e sono stato io a confondermi.
        Seconda cosa, volevo chiedere maggiori chiarimenti riguardo al modificare la classe \part, come ho già detto sono ancora principiante e l’unica cosa che so (nonostante abbia cercato qualcosa al riguardo su intenet) è come creare un comando personalizzato con \newcommand.
        Potresti postare un esmpio di codice esplicativo di quello che dovrei fare? Non è per “far lavorare” gli altri al posto mio, ma per capire esattamente quel che dovrei fare e poter riutilizzare il codice in situazioni analoghe.
        Inoltre è anche la prima volta che incappo in “@” posto tra “\” ed il nome del comando.
        Lo so che ci si potrebbe rendere conto della mia grande ignoranza in materia, ma ho scelto la filosofia del: “imparo l’indispensabile ed il resto quando servirà”, percui…
        Grazie per l’attenzione.

        P.S: Anch’io preferirei l’utilizzo della prima opzione rispetto all’utilizzo di un pacchetto che potrebbe portare a problemi, anche per motivi didattici

      • #106459
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Quando riesci a stare attento a quello che scrivi, allora si a buon punto; scusa, ma perché dici che ti sei sbagliato dicendo che “effettivamente i capitoli iniziano alle pagine dispari (quelle a sinistra)” quando appunto le pagine dispari sono a destra? Hai mai aperto un libro qualsiasi per vedere da che lato stanno le pagine dispari? Scusami se sono un po’ duro, ma la tua disattenzione deve essere curata, perché così non riesci ad imparare.
          il comando \part, è, appunto un comando, non una classe; vedi sopra; una classe è un file che contiene i comandi, le dichiarazioni e le impostazioni per comporre una categoria di documenti. Ripeto che mi scuso se sono un po’ duro, ma devi stare attento a come i=usi i termini tecnici, perché rischi di non farti capire.

          Allora copiare nel preambolo la definizione dei comandi che generano la pagine inziale di una parte, significa aprire il file di classe, per esempio book.cls, il file che carichi con alcune opzioni con il comando [tt]\documentclass[…]{book}[/tt]; penso e spero che tu sappia cercare un file nel tuo file system che è diverso da un sistema operativo ad un altro. Il comando \part è il seguente`\newcommand\part{%
          \if@openright
          \cleardoublepage
          \else
          \clearpage
          \fi
          \thispagestyle{plain}%
          \if@twocolumn
          \onecolumn
          \@tempswatrue
          \else
          \@tempswafalse
          \fi
          \null\vfil
          \secdef\@part\@spart}`Vedi che si prepara una pagina di destra, poi esegue alcune impostazioni a seconda che stia componendo su una o due colonne, poi esegue o l’uno o l’altro dei comandi [tt]\@part[/tt] o [tt]\@spart[/tt]. Il primo serve per comporre le parti numerate, il seocndo le parti non numerate come puoi capire leggendone i relativi codici; Supponiamo che tu stia numerando le parti (se non fosse così, dovresti modificare entrambi i comandi); quindi se scorri la definizione di [tt]\@part[/tt] vedi che termina con il comando [tt]\@endpart[/tt]; questo è il comando che chiude tutta la serie di operazioni necessarie per comporre la pagina iniziale della parte, e in dettaglio è questo:`\def\@endpart{\vfil\newpage
          \if@twoside
          \if@openright
          \null
          \thispagestyle{empty}%
          \newpage
          \fi
          \fi
          \if@tempswa
          \twocolumn
          \fi}`La parte che interessa te è la prte contenuta fra [tt]\if@openright[/tt] e il successivo [tt]\fi[/tt]Cancella tutta questa parte, lasiando solo quello che interessa te:`\makeatletter
          \def\@endpart{\vfil\newpage}
          \makeatother`Attento: ho cancellato anche il ripristino delle due colonne, quindi dopo aver scritto la tua breve introduzione alla parte, ricordati di dare a mano il comando [tt]\twocolumn[/tt].
          Complicato? Non molto, nel senso che hai dovuto cancellare solo poche righe di codice, ma la complicazione nasce dalla ricerca di quello che ti serve modificare. Nota che la parte che ho cancellato, oltre a non ripristinare \twocolumn, toglie quello che sostanzialmente è eseguito dal comando [tt]\cleardoublepage[/tt].

        • #106460
          Up
          0
          Down
          ::


          Davvero grazie mille, sei stato davvero chiarissimo e scusami per le mie distrazioni continue… Giuro che non lo faccio apposta.

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

      Go to top