- Questo topic ha 5 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 6 anni, 9 mesi fa da
OldClaudio.
-
CreatoreTopic
-
2 Dicembre 2019 alle 14:47 #116851::
Ciao a tutti e GRAZIE per l’approvazione ad entrare nel forum,sto cominciando a scrivere la mia tesi in LaTeX e vorrei personalizzare la testatina ed il numero pagina in modo che:
– la testatina restituisca a sx “CAPITOLO X”, a dx “NOME CAPITOLO”, in tutte le pagine, mantenendo il carattere in maiuscolo di default;
– il numero pagina in basso al centro o ai lati esterni (ancora da decidere, vorrei prima vedere come viene in entrambi i casi).
Esiste una soluzione del genere?
Grazie mille in anticipo!
Enrico
-
CreatoreTopic
-
AutoreRisposte
-
-
2 Dicembre 2019 alle 17:36 #116852::
Benvenuto nel forumQuello che vuoi fare si ottiene facilmente usando le funzionalità del pacchetto fancyhdr; leggine con attenziona la documentazione perché le funzionalità sono molte e il neofita spesso combina pasticci e ulteriore aiuto.
Tuttavia quello che vuoi fare mi lascia perplesso, non tanto per il numero di pagina al piede, centrato o a lato, quanto per l’uso delle testatine; Queste infatti non sono una decorazione della pagina, ma servono al lettore per navigare nel testo; e se i capitoli sono strutturati, cioè divisi in paragrafi (section), sottoparagrafi (subsection) eccetera; il minimo necessario, che puoi sperimentare tu stesso sfogliando un tuo libro di testo vero, pubblicato da una casa editrice seria (non delle dispense fatte in modo casalingo con un qualsiasi Word Processor), si ottiene mettendo il numero e il titolo del capitolo nella testatina di sinistra e il numero e il titolo del paragrafo nella testatina di destra.
Naturalmente se i tuoi capitoli non sono strutturati potrebbe anche andare bene quello che vorresti fare, ma la tesi, di solito, è di tipo argomentativo, quindi è bene che i capitoli siano strutturati.
Se esplori s=la sezione Documentazione di questo forum trovi guide generali, guide tematiche e testi di vario genere e di varia levaura che ti pososno essere molto utili; esplora questa sezione del Forum e non è necessario che tu legga tutto e subito; ma tine presenti gli argomenti che vi sono trattati, così quando ti vengono delle idee particolari come questa, o altre che ti verranno in mente col procedere della scrittura della tesi,avrai di che soddisfare la tua curiosità, fromo restando il fatto che questo forum è sempre disponibile.
-
3 Dicembre 2019 alle 7:44 #116853::
Grazie per il feedback!La tesi è di tipo sperimentale, ci saranno una valanga di dati simulati e raccolti dalle prove pratiche, ovvero paragrafi con lo stesso titolo in capitoli diversi. Per questo eviterei di mettere il nome del paragrafo nella testatina. Si creerebbe confusione e si finirebbe per cercare il nome del capitolo, ho quindi pensato di ripeterlo direttamente.
Per il numero pagina in realtà non saprei, dici che sta male in basso? Sono aperto a suggerimenti.
Ho già consultato la documentazione relativa al pacchetto fancyhdr, ma non riesco a ridefinire \markboth e \markright. Finora ho scritto:
`
\fancyhf{}
\renewcommand{\headrulewidth}{0.4pt} %linea testata
\fancyfoot[CF]{\thepage} %num pagina
\pagestyle{fancy}
\renewcommand\chaptermark[1]{%
\markboth{\MakeUppercase{\chaptername\ \thechapter. #1}}{}} %pag dispari (dx)
\renewcommand\chaptermark[1]{%
\markright{\MakeUppercase{\chaptername\ \thechapter. #1}}{}} %pag pari (sx)
`
Come risultato ottengo il numero pagina in basso e in testatina una linea vuota.
-
3 Dicembre 2019 alle 10:52 #116854::
Si vede che hai letto la documentazione, ma non hai ben compreso il meccanismo che usa LaTeX per riempire le testatine; le due ridefinizioni di \chaptermark una con markboth e l’atra con \mark right ridefiniscono la stessa cosa, quindi l’ultima è quella che conta, invece tu vuoi ridefinire entrambe le testatine nello stesso modo.
Il comando \markboth definisce il contenuto di \leftmark, il marchio della pagina di sinistra e il contenuto di \rightmark, il marchio della pagina di destra; non è un caso che il comando \markboth richieda due argomenti.
Il comando \markright, invece, definisce il contenuto solo di \rightmark, e non è un caso che richeda un solo argomento (tu ne hai messi due, di cui il secondo vuoto; piccolo errore di sintassi.
Tipicamente \markboth è usato dal comando \chapter che aziona \chaptermark ,e \markright è usato dal comando \section che aziona \sectionmark.
Per aggiustare il tuo codice bisognerebbe dunque fare una cosa del genere:`\pagegestyle{fancy}\fancyhf{}
\renewcommand\headrulewidth{0.4pt}
\fancyfoot[C]{\thepage}
\renewcommand\chaptermark[1]{\gdef\ChaperTitle{#1}%
\markboth{\MakeUppercase{\chaptername\ \thechapter}}{\Makeuppercase{\ChapterTitle}}}
\renewcommand\sectionmark[1]{\Makeuppercase{\ChapterTitle}}}`Per quel che riguarda la tua spiegazione circa l’opportunità di indicare nelle testatine solo informazioni relative al capitolo, ho dei dubbi, ovviamente si tratta solo di una opinione del tutto personale. Se stampi solo fronte le cose come sono indicate sopra non funzionano bene, perché in tutte le testine apparirebbe solo il numero del capitolo senza il suo titolo (o viceversa). Stampando fronte-retro il numero del capitolo apparirebbe a sinistra, come hai indicato nel tuo primo messaggio e il titolo del capitolo solo a destra. I nome di paragrafi non comparirebbero mai. La navigazione sarebbe ottenuta solo con il nome del capitolo. Secondo me non va, anche se dentro ciascun capitolo tutti i paragrafi sono contenuti nello stesso ordine e con lo stesso titolo. La presenza, quindi del nome del paragrafo a destra sembrerebbe inutile. Se ci pensi ben non è inutile in un testo stampato fronte retro, perché a sinistra, di default appare nome e titolo del capitolo e a destra il titolo del paragrafo; Se il lettore cerca qualcosa corca il paragrafo Tizio che si trova nel capitolo Caio; quindi sfogli il libro guardando le testatine di sinistra per essere sicuro di essere dentoril capitolo Caio poi sfoglia solo le pagien di quel capitolo per trovare il paragrafo Tizio; La cosa è importante, specialmente se ogni paragrafo contiene diverse figure e tabelle, oltre a del testo, che occupano più di una pagina; quindi il titolo del paragrafo comparirebbe solo nella sua prima pagina e non comparirebbe mai nelle pagine succesive dello stesso paragrafo, nemmeno nelle testatine. Ecco perché penso che una intestazione dele pagine come l’hai specificata nel tuo primo messaggio è accettabile in un romanzo con i capitoli non strutturati, e non in na tesi come la tua con i capitoli strutturati.
Ovviamente la scelta finaleè tutta tua.
-
3 Dicembre 2019 alle 11:43 #116855::
Ok mi hai convinto, in effetti ha senso quello che dici.Ho trovato questi comandi sulla guida:
`
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\fancyhf{}
\fancyhead[LEH,ROH]{\small\bfseries\thepage} %numeri pagina m.est.
\fancyhead[REH]{\small\bfseries\nouppercase{\rightmark}} %capitoli m.int.sx
\fancyhead[LOH]{\small\bfseries\nouppercase{\leftmark}} %sezioni m.int.dx
\makeatletter
%ridefinizione \rightmark & \leftmark
\renewcommand{\chaptermark}[1]{\markboth{%
\ifnum\value{secnumdepth}>\m@ne%
\if@mainmatter\@chapapp\ \thechapter. \ \fi\fi #1}{}}
%ridefinizione \rightmark
\renewcommand{\sectionmark}[1]{\markright{%
\ifnum\value{secnumdepth}>\z@ \thesection.\ \fi#1}}
\makeatother`restituiscono bene i nomi dei capitoli e delle sezioni, nonché i numeri pagina, in questo caso in alto. Non mi è chiaro a cosa servano \makeatletter e \makeatother.
Per il resto ti ringrazio molto per i preziosi consigli.
Enrico
-
3 Dicembre 2019 alle 15:00 #116856::
Il carattere @, che in inglese si chiama “at sign”) non è una lettera (codice di categoria 11), ma un altro segno (codice di categoria 12); i nomi delle macro che l’utente può usare devono essere composti con stringhe di sole lettere, oppure da un solo segno “altro”.
All’interno del nucleo di LaTeX e della quasi totalità dei pacchetti, il segno @ ha il codice di categoria 11, cioè è trattato come se fosse una lettera dell’alfabeto; in questo modo, visto che per l’utente quel segno ha categoria 12, è quasi impossibile che le macro del nucleo di LaTeX possano essere ridefinite dall’utente. È una forma di protezione dei comandi interni di LaTeX.Però qualche volta un utente, che sappia quello che sta facendo, può ridefinire queste macro protette; basta che prima del codice di ridefinizione ci metta il comando \makeatletter (make at letter -> rendi il segno @ una lettera) che cambia il codice di categoria di @ da 12 a 11; e dopo la sua ridefinizione usi il comando \makeatother (make at other -> rendi il segno @ un segno “altro”) che rispristina il codice di categoria degli “altri” segni.
Tanto epr intenderci gli “altri segni” sono tutti i caratteri stampabili diversi dalle 52 lettere dell’alfabeto latino puro, maiuscolo e minuscolo; se si usa \l’input encoding UTF-8 e si usano font che contengono caratteri accentati, sono lettere anche tutte le lettere latine accentate, e con i font OpenType tutti i caratteri alfabetici di alfabeti diversi da quello latino.
Come hai visto sopra ho scritto in rosso che sappia quello che sta facendo per avvisarti che non è il caso di mettersi a giocare con questo tipo di ridefinizioni se non si sa quello che si sta facendo; si rischia di danneggiare il nucleo di \LaTeX e di ritrovarsi con una installazione non funzionante. Mi è capitato di dover mettere le mani su un PC di un’altra persona che aveva pasticciato con queste cose; è stato necessario disinstallare completamente il sistema TeX da quel PC e re-installare da capo e aggiornare i pacchetti dell’intero sistema TeX.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.