- Questo topic ha 7 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 2 mesi fa da
letteracdp.
-
CreatoreTopic
-
28 Giugno 2016 alle 14:36 #106836::
Ciao a tutti, il seguente codice funziona perfettamente. Servono i pacchetti classicthesis, chngpage e calc.
`\cleardoublepage
\begin{titlepage}
\pdfbookmark{Frontespizio}{Frontespizio}
\renewcommand{\sfdefault}{iwona}
\changetext{}{}{}{((\paperwidth – \textwidth) / 2) – \oddsidemargin – \hoffset – 1in}{}
\begin{center}
\sffamily
\Large\hfill
\vfill
\spacedlowsmallcaps{Lorenzo Pantieri} \\ \bigskip
\color{Maroon}\spacedallcaps{Saggio sul cattolicesimo}
\vfill
\vspace*{1cm}
\includegraphics[width=3cm]{enso}
\vfill
\end{center}
\end{titlepage} `
Non ho capito bene a che servono i comandi \hfill (che mi risulta strano davvero: non basta center?) e \vfill. Anche la riga
`\changetext{}{}{}{((\paperwidth – \textwidth) / 2) – \oddsidemargin – \hoffset – 1in}{}`
che centra orizzontalmente il frontespizio mi risulta misteriosa…Chi volesse darmi qualche chiarimento TeXnico è il benvenuto.
Lorenzo
-
CreatoreTopic
-
AutoreRisposte
-
-
28 Giugno 2016 alle 18:21 #106837::
Il primo [tt]\vfill[/tt] deve essere [tt]\vspace*{\fill}[/tt], credo che la faccenda sia uscita sul forum molte volte.Nel tuo caso, [tt]\hfill[/tt] serve solo a mascherare l’errore, producendo un capoverso vuoto. Siccome è concettualmente sbagliato, va tolto.
Gli altri due [tt]\vfill[/tt] dicono di riempire la pagina, così avrai tre spazi bianchi di uguale dimensione e, in mezzo, le due parti testuali. Se non fosse per quel [tt]\vspace*{1cm}[/tt] il cui scopo mi è del tutto ignoto. Ma forse c’è una motivazione recondita.
Quanto a [tt]\changetext[/tt], un’occhiata alla documentazione potrebbe essere utile.
1. Non aggiungi nulla alla larghezza e altezza della gabbia (primi due argomenti vuoti)
2. Non fai nulla riguardo al margine sinistro delle pagine pari; del resto è inutile, visto che costruisci una singola pagina destra
3. Cambi il margine sinistro aggiungendo a [\tt]oddsidemargin[/tt] l’espressione data.
4. Il quinto argomento riguarda la separazione tra colonne, inutile qui visto che non stampi in doppia colonna.L’effetto finale è di impostare [tt]\oddsidemargin[/tt] alla metà della differenza fra la larghezza della pagina e della riga di testo, tolto [tt]\hoffset+1in[/tt] che LaTeX aggiunge poi per conto suo.
Più semplice, visto che vuoi una centratura, dire
`
\changetext{}{\paperwidth-\textwidth}{}{-\oddsidemargin-\hoffset-1in}{}
`
che imposta la larghezza della gabbia a quella della carta e annulla il margine sinistro.Molto più semplice con geometry
`
\documentclass{scrbook}
\usepackage{classicthesis}
\usepackage{graphicx}
\usepackage[pass]{geometry}\begin{document}
\newgeometry{margin=0pt}
\begin{titlepage}
\pdfbookmark{Frontespizio}{Frontespizio}
\begin{center}
\fontfamily{iwona}\selectfont
\Large\vspace*{\fill}
\spacedlowsmallcaps{Lorenzo Pantieri} \\ \bigskip
\color{Maroon}\spacedallcaps{Saggio sul cattolicesimo}
\vfill
\includegraphics[width=3cm]{enso}
\vfill
\end{center}
\end{titlepage}
\restoregeometry\end{document}
`Ciao
Enrico
-
29 Giugno 2016 alle 12:00 #106838::
egreg9″ post=106961Il primo [tt]\vfill[/tt] deve essere [tt]\vspace*{\fill}[/tt], credo che la faccenda sia uscita sul forum molte volte.
Che piacere sentirti, Enrico! Il tuo codice è elegantissimo. 😳 Non ho ben capito il significato di quel \vspace*{\fill}: me lo (ri)spiegjhi?
Grazie,
Lorenzo
-
29 Giugno 2016 alle 14:03 #106839
-
29 Giugno 2016 alle 15:11 #106840::
OldClaudio” post=106975Lorenzo, non voglio infierire, ma finché L’Arte di scrivere con LaTeX porta il tuo nome, non puoi permetterti di fare questo tipo di domande, altrimenti ti si risponde “guarda nella pagina 49 della tua stessa guida”
Scusami per la franchezza, ma certe cose non puoi permettetele.
ClaudioCaro Claudio, ti ringrazio per la franchezza. Il comando \fill nell’Arte non è descritto: grazie alla tua indicazione penso di averne capito il significato.
In generale, i nostri punti di vista attorno a LaTeX sono molto diversi: il mio è sempre stato quello di un utente finale. Sono a mio agio con codici “di alto livello” (\chapter, \cite, \index), ma mastico pochissimo il codice “di basso livello” (di cui tu ed Enrico siete guru assoluti). Una cosa come
`\changetext{}{}{}{((\paperwidth – \textwidth) / 2) – \oddsidemargin – \hoffset – 1in}{}`
che pure uso con successo per produrre alcuni dei miei frontespizi (un sicuro “regalo” tuo e/o di Enrico) mi resta indigesta.Confronta il codice precedente con questo (serve il pacchetto frontespizio, naturalmente):
`\begin{frontespizio}
\Universita{Bologna}
\Logo{Sigillo}
\Facolta{Scienze matematiche, fisiche e naturali}
\Corso[Laurea]{Matematica}
\Annoaccademico{1999–2000}
\Titolo{Lo sviluppo storico \\ del concetto di funzione \\ e le origini della teoria \\ delle distribuzioni}
\Candidato{Lorenzo Pantieri}
\Relatore{Prof.~Ermanno Lanconelli}
\end{frontespizio}`
Questo codice lo capisco a distanza di anni. L’incantesimo di cui sopra, no.Punti di vista, dicevo. Comunque capisco il tuo invito e lo accolgo: ne farò tesoro per il futuro!
Grazie ancora,
L.
-
29 Giugno 2016 alle 20:46 #106841::
lorenzo.pantieri” post=106977(…) Il comando \fill nell’Arte non è descritto: grazie alla tua indicazione penso di averne capito il significato.
In generale, i nostri punti di vista attorno a LaTeX sono molto diversi: il mio è sempre stato quello di un utente finale. Sono a mio agio con codici “di alto livello” (\chapter, \cite, \index), ma mastico pochissimo il codice “di basso livello” (…)
Chiedo scusa se mi intrometto, ma né [tt]\vspace[/tt] né [tt]\fill[/tt] mi sembrano qualificabili come «di basso livello». 🙂 Il primo è descritto nell’Arte, appunto a pag. 49, come ha già detto @OldClaudio, dove si spiega anche a cosa serve la sua forma asteriscata; del secondo, e della sua generalizzazione [tt]\stretch[/tt], si parla in molte guide, ma in effetti non sono riuscito a trovarne cenno nell’Arte, cosa che, debbo dire, mi ha un po’ sorpreso. (Per inciso, si noti che, mentre [tt]\stretch[/tt] è implementato come macro, [tt]\fill[/tt] è uno [tt]\skip[/tt] register.)
Un commento: quando viene usato in modo verticale, [tt]\vspace*{
}[/tt] si espande in `
\dimen@\prevdepth
\hrule \@height\z@
\nobreak
\vskip
\vskip\z@skip
\prevdepth\dimen@
`il che comporta che, sempre se usato in modo verticale, [tt]\vspace*{\fill}[/tt] è fondamentalmente (ma non esattamente 😉 ) equivalente a
`
\dimen@\prevdepth
\hrule \@height\z@
\nobreak
\vfill
\prevdepth\dimen@
`L’idea è che il filetto di altezza nulla impedisce alla colla di sparire quando il comando viene dato all’inizio di una pagina vuota. C’è però un errore, secondo me, in questo codice: non tiene conto del fatto che, se si è all’inizio di una pagina vuota, la [tt]\topskip[/tt] glue viene inserita anche prima di un filetto, cosicché uno si ritrova con uno spazio che in realtà è un dieci-dodici punti (a seconda del valore di [tt]\topskip[/tt]) maggiore di quanto richiesto. La cosa è ben evidente nel caso limite di [tt]\vspace*{0pt}[/tt]:
`
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.\usepackage{showframe}
\begin{document}
Some text on the very first line.
\newpage
\vspace*{0pt}
\begingroup
\showboxbreadth = 1000
\showboxdepth = 10
\tracingonline = 1
\showlists
\endgroupThis text actually starts on the second line, which, probably, is not what was
intended.\end{document}
`Naturalmente, volendolo fare, non sarebbe difficile correggere questo piccolo difetto; ma, come al solito, ciò cambierebbe il comportamento del LaTeX, cosa che ormai non si può più fare… 🙄
Ciao.
—
Gustavo
-
30 Giugno 2016 alle 11:22 #106842::
letteracdp” post=106978Chiedo scusa se mi intrometto, ma né [tt\vspace[/tt] né [tt]\fill[/tt] mi sembrano qualificabili come «di basso livello» […].
Tutto sta a intendersi: per me, un comando “di alto livello” riguarda solo il contenuto di quello che si scrive, astraendo dalla forma. Quindi, per me, \chapter, \section e \tableofcontents sono comandi di alto livello, perché permettono di introdurre capitoli e paragrafi e di comporre l’indice (i dettagli tipografici sono delegati a LaTeX). Un codice come
`\begin{frontespizio}
\Universita{Bologna}
\Logo{Sigillo}
\Facolta{Scienze matematiche, fisiche e naturali}
\Corso[Laurea]{Matematica}
\Annoaccademico{1999–2000}
\Titolo{Lo sviluppo storico \\ del concetto di funzione \\ e le origini della teoria \\ delle distribuzioni}
\Candidato{Lorenzo Pantieri}
\Relatore{Prof.~Ermanno Lanconelli}
\end{frontespizio}`
è formato da istruzioni di alto livello, perché permette all’utente di concentrarsi sul contenuto (“qual è la mia università?”, “qual è il titolo della mia tesi?”, “chi è il mio relatore?”), fregandosene di come queste informazioni verranno posizionate sulla pagina (ci penserà LaTeX a farlo).Comandi come \bigskip, \vspace, \stretch e \changetext, invece, riguardano la forma di quello che si scrive (“il logo della mia università lo voglio in alto a sinistra, il titolo della tesi lo voglio al centro in sans serif corpo 20, il nome del relatore allineato a destra, tre centimetri sotto il titolo”).
Idealmente e per quanto possibile, per me, l’utente di LaTeX non dovrebbe mai usare comandi di quest’ultimo tipo, ma solo del primo. In questo modo il codice LaTeX è più elegante, e più comprensibile anche a distanza di anni…
Ringrazio tutti coloro che sono intervenuti.
Lorenzo
-
30 Giugno 2016 alle 14:45 #106843::
lorenzo.pantieri” post=106986(…) Tutto sta a intendersi: per me, un comando “di alto livello” riguarda solo il contenuto di quello che si scrive, astraendo dalla forma. Quindi, per me, \chapter, \section e \tableofcontents sono comandi di alto livello, perché permettono di introdurre capitoli e paragrafi e di comporre l’indice (i dettagli tipografici sono delegati a LaTeX). (…)
Comandi come \bigskip, \vspace, \stretch e \changetext, invece, riguardano la forma di quello che si scrive (“il logo della mia università lo voglio in alto a sinistra, il titolo della tesi lo voglio al centro in sans serif corpo 20, il nome del relatore allineato a destra, tre centimetri sotto il titolo”).
Idealmente e per quanto possibile, per me, l’utente di LaTeX non dovrebbe mai usare comandi di quest’ultimo tipo, ma solo del primo. In questo modo il codice LaTeX è più elegante, e più comprensibile anche a distanza di anni (…)
Debbo convenire che, in linea di principio, hai ragione tu, e che io ho espresso un giudizio frettoloso e, sempre in linea di principio, sbagliato.
È anche vero, però, che il mondo non è ideale, e che quasi mai, nel vasto campo della scienza dei calcolatori, si riescono a rispettare perfettamente gli ideali di modularità, di separazione tra contenuto e forma, tra interfaccia e implementazione, e così via. Molto spesso, e più prima che poi, si è costretti a scendere a patti, e in questo senso ritengo che una conoscenza di base dei comandi di formattazione visuale non possa non far parte del bagaglio di chiunque intenda usare LaTeX in modo un minimo proficuo.
Purtroppo, per saper applicare questi comandi occorre anche avere una visione minima del modello «a scatole e colla» che TeX usa per comporre a stampa, dalla quale, secondo me, non si può prescindere nemmeno in una guida per principianti e nemmeno se diretta a insegnare un linguaggio di markup logico come è (o meglio, come si prefigge di essere) il LaTeX. È da notare che nel TeXbook i concetti di base relativi a scatole e colla sono esposti in capoversi “ordinari”, non in “curve pericolose”.
È per questo che ho ritenuto di suggerire che, forse, potrebbe essere opportuno perfezionare l’Arte in tal senso.
Ciao.
—
Gustavo
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.