- Questo topic ha 7 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 14 anni, 11 mesi fa da
Marco.
-
CreatoreTopic
-
29 Settembre 2011 alle 6:20 #64312::
Salve.
Sono un pò di giorni che sto sfogliando manuali pagine di internet ma non sono ancora riuscito a trovare una soluzione ad un nuovo problema e dunque torno a disturbarvi.
Semplicemente sono riuscito a rimuovere la parola Capitolo dall’intestazione di ogni capitolo, lasciando che esso comunque rimanga nell’indice. Ciò che però non sono ancora riuscito a fare è lasciare prima del nome del capitolo e di conseguenza anche nell’indice, il numero del capitolo seguito da un punto.
Dunque invece di avere il classico:Capitolo 1
Titolo capitolo…Sto cercando di ottenere:
1. Titolo capitolo…
Facendo si che la medesima numerazione si mantenga anche nell’indice.
Grazie ancora per la vostra disponibilità
Marco
-
CreatoreTopic
-
AutoreRisposte
-
-
29 Settembre 2011 alle 7:03 #64313::
La scelta tipografica è la tua, quindi non la discuto, anche se non la condivido (non condivido il numero in linea con il titolo).Se non vuoi la parola Capitolo nell’intestazione del capitolo non devi fare nulla di particolare, tipo impostare il contatore secnumdepth, o simili. Se usi la classe book, nella front matter i capitoli non sono numerati e non hanno nemmeno la parola Capitolo. Non vanno nemmeno nell’indice, e se li vuoi nell’indice devi aggiungere una riga apposta che glielo faccia fare.
Ma non è questo il tuo problema; tu vuoi che nella intestazione dei capitoli numerati compaia il numero senza la parola Capitolo, ma vuoi che il numero preceda il titolo del capitolo sulla stessa riga.
Togliere la parola Capitolo si fa semplicemente scrivendo questo piccolo codice Indicato da Leslie Lamport (il papà di LaTeX) nel suo manuale:
`
\makeatletter
\renewcommand\@chpapp{}
\makeatother
`
prima del primo capitolo; questo capitolo e tutti i capitoli successivi saranno senza la parola Capitolo; se poi dai il comando \appendix, le appendici, invece, oltre ad essere numerate con lettere maiuscole conterranno la parola Appendice; per simmetria devi eliminare anche quella parola quindi dopo il comando \appendix devi ripetere quella ridefinizione di \@chapapp.Questo ti produrrà una intestazione del tipo:
1
Titolo capitoloSe vuoi invece avere anche il numero, seguito da un punto, in linea con il titolo devi fare una di queste due cose:
1) usare il pacchetto tocloft leggendo accuratamente la documentazione, perché questo pacchetto può fare di tutto molto bene, ma anche molto male, se non lo usi bene;
2) devi ridefinire il comando \@makechapterhead in modo che ti stampi le cose come le vuoi tu.La seconda via non è particolarmente difficile, ma devi avere il coraggio di mettere le mani dentro le “interiora” di LaTeX e/o delle sue classi.
-
29 Settembre 2011 alle 7:28 #64314::
In realtà la scelta tipografica mi è imposta dalle direttive della mia facoltà. Se così non fosse, ti posso garantire che sarebbe ben diversa.
Finora per togliere la parola capitolo ho semplicemente messo l’asterisco all’introduzione di ogni capitolo:\chapter*{TITOLO}
e per mantenere il titolo nell’indice e la successiva numerazione ho introdotto:
\addcontentsline{toc}{chapter}{TITOLO}
\stepcounter{chapter}Il pacchetto tocloft lo sto già utilizzando per modificare l’indice. Al momento non sono riuscito a sfruttarlo al meglio ma ci sto lavorando. Non sono ancora in grado però di aggiungere il numero seguito dal punto prima del titolo di ogni capitolo e di conseguenza anche nell’indice.
Dunque l’unica soluzione sarebbe di tuffarmi tra le interiora di LaTeX e/o delle sue classi?
-
29 Settembre 2011 alle 7:54 #64315::
Non so che classe usi; con la classe book hai questi effetti:Nell’indice il titolo del capitolo numerato è preceduto dal numero; non è già quello che volevi? Nota che il numero è separato da una distanza fissa dal titolo del capitolo, cosicché i titoli dei capitoli restano incolonnati sullo stesso margine anche quando il numero del capitolo fosse di due cifre.
Non sarebbe in problema modificare la definizione di \l@chapter e/o di \numberline per far comparire il punto dopo il numero.Per avere il numero col punto che precede il titolo non è particolarmente difficile copiare della classe la definizione di \@makecpterhead, aggiungere il punto nel posto giusto e togliere l’ “a capo” (\\) dopo la scrittura del numero.
Provaci e vedrai che non ci vuole così tanto coraggio; l’importante è che tu non modifichi la classe, ma che ti copi e incolli i comando da modificare nel tuo preambolo o nel tuo file di macro personali, e su queste macro puoi farci quello che vuoi; se lasci la definizione con \def non devi preoccuparti di nulla; se c’è \newcommand lo devi cambiare in \renewcommand; ricordati che nel file .sty di macro personali non devi fare nessuna cosa particolare, ma nel preambolo devi rendere il codice di categoria del segno @ uguale a quello delle lettere,, cosa che ottieni con il comando \makeatletter.
-
29 Settembre 2011 alle 8:11 #64316::
Sto effettivamente già utilizzando la classe book ed infatti nell’indice il capitolo risultava essere preceduto dal numero, fintanto che non andavo a modificarlo per togliere la parola “capitolo” nel titolo di ogni capitolo.Ad ogni modo ho capito le tue indicazioni per ottenere le varie modifiche volute. Ora mi ci metto e spero di avere successo.
Grazie ancora.
Marco
-
30 Settembre 2011 alle 7:11 #64317::
Mi spiace disturbarvi nuovamente per una sciocchezza, ma sono quasi riuscito a sistemare tutto seguendo i vostri consigli.
Sono riuscito a modificare l’intestazione dei capitoli modificando la parte relativa nella classe book. Ciò che ancora non sono riuscito a modificare in modo corretto è la parte inerente alla costruzione dell’indice, relativamente alla definizione di \l@chapter e/o di \numberline per far comparire il punto dopo il numero del capitolo.
Non è che sareste così gentili da dirmi cosa concretamente modificare o aggiungere a questa parte della classe book per ottenere tale risultato? E tanto che ci siamo, se volessi ottenere lo stesso punto per la subsection e il paragraph?Grazie ancora
Marco
-
30 Settembre 2011 alle 11:31 #64318::
Il comando che scrive nell’indice è \numberline che viene poi usato dagli altri comandi per la costruzione del contenuto dell’indice, compreso \l@chapter, \l@section, eccetera.Allora la definizione originalle in latex.ltx, il file che contiene il sorgente del formato, è:
`
\def\numberline#1{\hb@xt@\@tempdima{#1\hfil}}
`Questo significa che nella riga dell’indice, il numero del capitolo o della sezione (il parametro #1} viene scritto appoggiato a sinastra dentro una scatola di larghezza \@tempdima; in sostanza la definizione di \numberline equivale alla specificazione in buon linguaggio LaTeX:
`
\makebox[\@tempdima][l]{#1}
`
ma scritto in quel modo con comandi quasi primitivi il motore di composizione è più veloce nello sviluppare le macro coinvolte.Ora prendi due piccioni con una fava se dopo #1 inserisci un punto:
`
\def\numberline#1{\hb@xt@\@tempdima{#1.\hfil}}
`
Se vuoi puoi usare \renewcommand, ma in questo caso non è necessario, perché il comando che vuoi ridefinire essite, è nel cuore di LaTeX, e non c’è bisogno di eseguire controlli sull’esistenza del comando da ridefinire.Ricordati di mettere questa ridefinizione dentro un file .sty personale o dopo un \makeatletter; come vedi i segni @ abbondano.
-
3 Ottobre 2011 alle 6:12 #64319::
Ottimo!
Grazie mille.
Immaginavo che la risposta fosse nella riga della numberline, ma cercando in rete per la classe book che sto usando, avevo trovato una definizione diversa, ovvero:\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}Questa era l’unica parte dove avevo “numberline”, ma ovviamente cercando di aggiungere un punto, non ottenevo assolutamente nulla di buono.
Vi chiedo un’ultimo suggerimento.
Con la modifica che mi avete suggerito, riesco ad ottenere questo punto alla destra del numero dei capitoli, sezioni, sottosezioni e così via. Qualora volessi (per richieste esterne ovviamente e non certo per mie scelte personali) che tale punto fosse presente solo per i capitoli e subsection e non invece nelle section e subsubsection?
Mi rendo conto che si tratti di una richiesta abbastanza strana, considerando che sia assurdo che si possa perdere del tempo a controllare la presenza di alcuni punti piuttosto che soffermarsi sul contenuto di una tesi. Pertanto mi spiace dovervi disturbare per simili domande.
Grazie ancora moltissimo del vostro prezioso supporto.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.