- Questo topic ha 19 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 10 mesi fa da
lorenzo.pantieri.
-
CreatoreTopic
-
4 Aprile 2007 alle 20:02 #13970
-
CreatoreTopic
-
AutoreRisposte
-
-
4 Aprile 2007 alle 20:40 #13971::
Ciao a tutti. Non riesco proprio a capire perché il seguente
`\documentclass{scrreprt}
\usepackage{loadpackages}
\usepackage[subfigure,eulermath]{classicthesis}
\begin{document}
\section{Spez\-zo}
\end{document}
`non funziona.Che significa? Direi che “Spezzo” su una riga intera ci sta e TeX non deve nemmeno pensare di spezzare. Forse non è questo che intendi, prova a spiegarti meglio.
Ciao
Enrico
-
4 Aprile 2007 alle 21:30 #13972
-
5 Aprile 2007 alle 5:46 #13973::
Prova a spiegarti meglio.
Scuami Enrico, ho esagerato col minimalismo!
`\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
cleardoubleempty,abstractoff,pointlessnumbers,
headinclude,footexclude,BCOR5mm,draft]{scrreprt}
\usepackage{loadpackages}
\usepackage[eulerchapternumbers,subfigure,eulermath]{classicthesis}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\section{La necessità di un'estensione del concetto di fun\-zione}
\lipsum[2]
\end{document}
`
Se si compila questo codice, LaTeX spezza la parola “funzione” come “funzio-ne”, e il risultato è un bruttissimo overfull hbox (messo in evidenza dall’opzione draft). Ho pensato di “aiutare” LaTeX suggerendogli di spezzare la parola in un punto diverso
`\section{La necessità di un'estensione del concetto di fun\-zione}`
ma il codice produce un errore di sintassi:
`Missing { inserted`
La cosa “strana” è che questo codice non produce alcun errore nelle classi article o book.Che poi questo sistema serva davvero ad evitare l’overfull hbox, è un altro paio di maniche, come lascia intendere Lapo. A me sono venute in mente altre due idee:
1. modificare leggermente il titolo;
2. allargare un po’ i margini;
ma non mi convincono molto.In generale, con Calssicthesis le situazioni di overfull hbox sono abbastanza comuni, nonostante babel e microtype siano caricati. Non capisco se dipende dai margini stretti o dai font usati o da che cos’altro.
Come ne posso uscire?
Ciao e grazie,
Lorenzo
-
5 Aprile 2007 alle 9:32 #13974::
Prova a spiegarti meglio.
Scuami Enrico, ho esagerato col minimalismo!
`\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
cleardoubleempty,abstractoff,pointlessnumbers,
headinclude,footexclude,BCOR5mm,draft]{scrreprt}
\usepackage{loadpackages}
\usepackage[eulerchapternumbers,subfigure,eulermath]{classicthesis}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\section{La necessità di un'estensione del concetto di fun\-zione}
\lipsum[2]
\end{document}
`
Se si compila questo codice, LaTeX spezza la parola “funzione” come “funzio-ne”, e il risultato è un bruttissimo overfull hbox (messo in evidenza dall’opzione draft). Ho pensato di “aiutare” LaTeX suggerendogli di spezzare la parola in un punto diverso
`\section{La necessità di un'estensione del concetto di fun\-zione}`
ma il codice produce un errore di sintassi:
`Missing { inserted`
La cosa “strana” è che questo codice non produce alcun errore nelle classi article o book.Che poi questo sistema serva davvero ad evitare l’overfull hbox, è un altro paio di maniche, come lascia intendere Lapo. A me sono venute in mente altre due idee:
1. modificare leggermente il titolo;
2. allargare un po’ i margini;
ma non mi convincono molto.In generale, con Calssicthesis le situazioni di overfull hbox sono abbastanza comuni, nonostante babel e microtype siano caricati. Non capisco se dipende dai margini stretti o dai font usati o da che cos’altro.
Come ne posso uscire?
Classicthesis usa il pacchetto soul per realizzare la crenatura nel maiuscoletto. Questo dà un bel po’ di problemi e il comando per la sillabazione non funziona. Come non si riesce ad andare a capo esplicitamente perché hyperref non gradisce \\. E, invece, se si usa \newline, il titolo va a capo, ma non c’è crenatura nella seconda riga. 🙁
L’uso di soul per la crenatura del maiuscoletto dovrebbe essere eliminato a favore del metodo con microtype che non soffre delle fragilità di soul. Questo infatti realizza la crenatura “carattere per carattere”, espandendo macro che non riescono a tenere conto di tutti i fattori; microtype, invece, agisce direttamente al livello del font.
Un’ultima cosa: se usi l’opzione globale draft, microtype viene disabilitato. Se vuoi che venga usato sempre, devi caricarlo con l’opzione “final”. Sinceramente, dando un’occhiata ai pacchetti che si caricano con loadpackages e con classicthesis, mi lascia un po’ dubbioso il fatto che si richieda hyperref prima di molti altri.
Ciao
Enrico
-
5 Aprile 2007 alle 10:00 #13975::
Classicthesis usa il pacchetto soul per realizzare la crenatura nel maiuscoletto. Questo dà un bel po’ di problemi e il comando per la sillabazione non funziona…
L’uso di soul per la crenatura del maiuscoletto dovrebbe essere eliminato a favore del metodo con microtype che non soffre delle fragilità di soul.
Ti ringrazio per la spiegazione, Enrico.
Ripensandoci, non credo che l’idea di suggerire a mano la sillabazione con \- funzionerebbe (visto che babel è correttamente caricato). Ho provato ad aumentare i margini, ma neppure così si risolve il problema.
😥 😥 😥
L’unica sarebbe intervenire sul codice di Classicthesis, eliminando il pacchetto soul e ridefinendo i comandi \spacedallcaps e simili. Purtroppo, non ne sono capace.
Ciao,
L.
-
5 Aprile 2007 alle 10:27 #13976::
Classicthesis usa il pacchetto soul per realizzare la crenatura nel maiuscoletto. Questo dà un bel po’ di problemi e il comando per la sillabazione non funziona…
L’uso di soul per la crenatura del maiuscoletto dovrebbe essere eliminato a favore del metodo con microtype che non soffre delle fragilità di soul.
Ti ringrazio per la spiegazione, Enrico.
Ripensandoci, non credo che l’idea di suggerire a mano la sillabazione con \- funzionerebbe (visto che babel è correttamente caricato). Ho provato ad aumentare i margini, ma neppure così si risolve il problema.
😥 😥 😥
L’unica sarebbe intervenire sul codice di Classicthesis, eliminando il pacchetto soul e ridefinendo i comandi \spacedallcaps e simili. Purtroppo, non ne sono capace.
`\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[150]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[75]{#1}}}`
I numeri 75 e 150 li ho determinati a occhio, fa’ tu qualche prova. Per i capitoli si usa \spacedallcaps, per le sezioni \spacedlowsmallcapsCiao
Enrico
-
5 Aprile 2007 alle 11:38 #13977::
`\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[150]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[75]{#1}}}`Innanzitutto grazie mille per l’aiuto, Enrico: mi dispiacerebbe proprio arrendermi così, sul più bello, e buttare via tutto il lavoro fatto!
Ho eliminato dal pacchetto classicthesis il codice relativo a soul e l’ho sostituito con il tuo, ma purtroppo ottengo un errore:
`! Undefined control sequence`
Che cosa si può fare?Ciao e ancora grazie,
Lorenzo
-
5 Aprile 2007 alle 12:20 #13978::
`\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[150]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[75]{#1}}}`Innanzitutto grazie mille per l’aiuto, Enrico: mi dispiacerebbe proprio arrendermi così, sul più bello, e buttare via tutto il lavoro fatto!
Ho eliminato dal pacchetto classicthesis il codice relativo a soul e l’ho sostituito con il tuo, ma purtroppo ottengo un errore:
`! Undefined control sequence`
Che cosa si può fare?Ciao e ancora grazie,
LorenzoNo, mettilo nel tuo preambolo. Forse hai eliminato anche la richiesta di textcase?
Sarebbe meglio anche menzionare il comando che fa scattare l’errore, non credi? 😈 😀
Ciao
Enrico
-
5 Aprile 2007 alle 14:44 #13979::
Dunque, nel file classicthesis.sty ho eliminato le seguenti righe:
`\RequirePackage{soul} % for letterspacing
\sodef\allcapsspacing{\upshape}{0.15em}{0.65em}{0.6em}
\sodef\lowsmallcapsspacing{\scshape}{0.075em}{0.5em}{0.6em}
%\DeclareRobustCommand{\spacedallcaps}[1]{%
% \protected@edef\@myXtemp{\MakeTextUppercase{\allcapsspacing{#1}}}\@myXtemp}
\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\allcapsspacing{#1}}}
%\DeclareRobustCommand{\spacedlowsmallcaps}[1]{%
% %\protected@edef\@myYtemp{\textsc{\lowsmallcapsspacing{\MakeTextLowercase{#1}}}}\@myYtemp}
% \protected@edef\@myYtemp{\MakeTextLowercase{\textsc{\lowsmallcapsspacing{#1}}}}\@myYtemp}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\textsc{\lowsmallcapsspacing{#1}}}}
`
A questo punto se provo a compilare il seguente documento di prova
`\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
cleardoubleempty,abstractoff,pointlessnumbers,
headinclude,footexclude,BCOR5mm]{scrreprt}
\usepackage{loadpackages}
\usepackage[eulerchapternumbers,subfigure,eulermath]{classicthesis}\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[150]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[75]{#1}}}\begin{document}
\section{Prova}
\end{document}
`
ottengo il seguente messaggio d’errore:
`! Undefined control sequence.
\scshape \textls
[75]{Prova}
l.13 \section{Prova}?
[2]
`
Se premo Invio e procedo con la compilazione, nel pdf c’è scritto
`0.1 [75]Prova`Ciao e grazie,
L.
-
5 Aprile 2007 alle 15:07 #13980::
Dunque, nel file classicthesis.sty ho eliminato le seguenti righe:
`\RequirePackage{soul} % for letterspacing
\sodef\allcapsspacing{\upshape}{0.15em}{0.65em}{0.6em}
\sodef\lowsmallcapsspacing{\scshape}{0.075em}{0.5em}{0.6em}
%\DeclareRobustCommand{\spacedallcaps}[1]{%
% \protected@edef\@myXtemp{\MakeTextUppercase{\allcapsspacing{#1}}}\@myXtemp}
\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\allcapsspacing{#1}}}
%\DeclareRobustCommand{\spacedlowsmallcaps}[1]{%
% %\protected@edef\@myYtemp{\textsc{\lowsmallcapsspacing{\MakeTextLowercase{#1}}}}\@myYtemp}
% \protected@edef\@myYtemp{\MakeTextLowercase{\textsc{\lowsmallcapsspacing{#1}}}}\@myYtemp}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\textsc{\lowsmallcapsspacing{#1}}}}
`
A questo punto se provo a compilare il seguente documento di prova
`\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
cleardoubleempty,abstractoff,pointlessnumbers,
headinclude,footexclude,BCOR5mm]{scrreprt}
\usepackage{loadpackages}
\usepackage[eulerchapternumbers,subfigure,eulermath]{classicthesis}\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[150]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[75]{#1}}}\begin{document}
\section{Prova}
\end{document}
`
ottengo il seguente messaggio d’errore:
`! Undefined control sequence.
\scshape \textls
[75]{Prova}
l.13 \section{Prova}?
[2]
`
Se premo Invio e procedo con la compilazione, nel pdf c’è scritto
`0.1 [75]Prova`Aggiorna microtype, occorre la versione 2.0 (2007/01/21).
Ciao
Enrico
-
5 Aprile 2007 alle 16:24 #13981::
Aggiorna microtype, occorre la versione 2.0 (2007/01/21).
Beh… che dire… grazie!! Adesso non ci sono più messaggi di overvull hbox!! 😀
Permettimi l’ultima curiosità. Immagino che i parametri 150 e 75 dei comandi che mi hai suggerito
`\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[150]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[75]{#1}}}
`
servano per definire la spaziatura del “maiuscoletto spaziato”. Ho fatto diversi esperimenti modificando i due parametri (il maiuscoletto spaziato originale di Classicthesis, quello ottenuto con soul, è “più spaziato” di quello ottenuto con i tuoi comandi), ma non ho notato alcun cambiamento… Dove sbaglio?Ciao e ancora grazie,
Lorenzo
-
5 Aprile 2007 alle 18:29 #13982::
Permettimi l’ultima curiosità. Immagino che i parametri 150 e 75 dei comandi che mi hai suggerito
`\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[150]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[75]{#1}}}
`
servano per definire la spaziatura del “maiuscoletto spaziato”. Ho fatto diversi esperimenti modificando i due parametri (il maiuscoletto spaziato originale di Classicthesis, quello ottenuto con soul, è “più spaziato” di quello ottenuto con i tuoi comandi), ma non ho notato alcun cambiamento… Dove sbaglio?La scala è molto fine. Se provi con 1500 invece di 150 la differenza la vedi eccome!
Ciao
Enrico
-
5 Aprile 2007 alle 19:19 #13983
-
10 Aprile 2007 alle 14:56 #13984::
Aiuto! Credevo di aver risolto, ma mi sbagliavo… 😳 Ci ho rimesso le mani a distanza di tempo, con un documento nuovo, e non funziona: evidentemente, avevo sbagliato qualcosa… 😥 Se compilo
`\documentclass[10pt,a4paper,twoside,openright,titlepage,fleqn,
cleardoubleempty,abstractoff,pointlessnumbers,
headinclude,footexclude,BCOR5mm]{scrreprt}
\usepackage{loadpackages}
\usepackage[eulerchapternumbers,subfigure,eulermath]{classicthesis}
\usepackage{lipsum}\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[1500]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[750]{#1}}}\begin{document}
\chapter{Prova}
\lipsum[1]
\section{Prova}
\lipsum[2]
\end{document}
`
la spaziatura tra le lettere della parola “prova” è indipendente dal parametro di \textls e si ottiene questo warning:
`Package microtype Warning: Letterspacing only works with pdftex version 1.40
(microtype) or newer. You might want to use the `soul' package
(microtype) instead on input line 12.
`
Eppure ho scaricato l’ultima versione di microtype e ho piazzato tutti i .sty ottenuti compilando microtype.ins nella solita cartella
`~ Lorenzo$ /Users/Lorenzo/Library/texmf/tex/latex/`
come ho sempre fatto. O è la mia distribuzione gwLaTeX ad essere “vecchia”?Grazie per l’aiuto (questo “incidente” mi ha demoralizzato assai…).
Ciao,
L.
-
10 Aprile 2007 alle 17:14 #13985::
Aiuto! Credevo di aver risolto, ma mi sbagliavo… 😳 Ci ho rimesso le mani a distanza di tempo, con un documento nuovo, e non funziona: evidentemente, avevo sbagliato qualcosa… 😥 Se compilo
…
si ottiene questo warning:
`Package microtype Warning: Letterspacing only works with pdftex version 1.40
(microtype) or newer. You might want to use the `soul' package
(microtype) instead on input line 12.
`
Eppure ho scaricato l’ultima versione di microtype e ho piazzato tutti i .sty ottenuti compilando microtype.ins nella solita cartella
`~ Lorenzo$ /Users/Lorenzo/Library/texmf/tex/latex/`
come ho sempre fatto. O è la mia distribuzione gwLaTeX ad essere “vecchia”?La seconda che hai detto. 🙂 Aggiorna.
Ciao
Enrico
-
12 Aprile 2007 alle 15:46 #13986::
Ciao a tutti. Dopo essere passato alla distribuzione TeXlive per Mac (che è ancora più facile da installare e completa della già ottima gwLaTeX), ho risolto! Dopo vari tentativi, ho usato il codice
`\DeclareRobustCommand{\spacedallcaps}[1]{\MakeTextUppercase{\textls[170]{#1}}}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\MakeTextLowercase{\scshape\textls[90]{#1}}}
`
che mi sembra dare un risultato più simile all’originale. Ora, non c’è più nessun problema di overfull hbox, per cui non c’è nemmeno più bisogno di allargare i margini del documento o di imporre sillabazioni ad hoc.Alè! 😀
Un enorme grazie ad Enrico,
Lorenzo
-
22 Ottobre 2007 alle 18:49 #13987::
Classicthesis usa il pacchetto soul per realizzare la crenatura nel maiuscoletto.
Ciao, ho bisogno di una chiarificazione terminologica. Da quello che ho capito, in tipografia la “crenatura” (o “kerning”) non è altro che un “ritocco di spaziatura” (che viene applicato tra certe coppie di lettere nei casi in cui la spaziatura automatica sarebbe insoddisfacente). In effetti, il pacchetto soul premette di realizzare tutta la spaziatura del maisucoletto (crenature comprese).
Quindi forse quella frase si potrebbe formulare in modo più preciso come
Classicthesis usa(va) il pacchetto soul per realizzare la spaziatura del maiuscoletto, e questo era la fonte dei problemi di overfull hbox lamentati in questo topic.
piuttosto che
Classicthesis usa(va) il pacchetto soul per realizzare la crenatura del maiuscoletto, e questo era la fonte dei problemi di overfull hbox lamentati in questo topic.
Giusto?
Grazie mille,
L.
-
22 Ottobre 2007 alle 20:09 #13988::
Classicthesis usa il pacchetto soul per realizzare la crenatura nel maiuscoletto.
Ciao, ho bisogno di una chiarificazione terminologica. Da quello che ho capito, in tipografia la “crenatura” (o “kerning”) non è altro che un “ritocco di spaziatura” (che viene applicato tra certe coppie di lettere nei casi in cui la spaziatura automatica sarebbe insoddisfacente). In effetti, il pacchetto soul premette di realizzare tutta la spaziatura del maisucoletto (crenature comprese).
Quindi forse quella frase si potrebbe formulare in modo più preciso come
Classicthesis usa(va) il pacchetto soul per realizzare la spaziatura del maiuscoletto, e questo era la fonte dei problemi di overfull hbox lamentati in questo topic.
piuttosto che
Classicthesis usa(va) il pacchetto soul per realizzare la crenatura del maiuscoletto, e questo era la fonte dei problemi di overfull hbox lamentati in questo topic.
Non direi. La crenatura è quell’aggiustamento che si esegue per avvicinare o allontanare due caratteri a seconda della loro forma. La spaziatura del maiuscoletto si realizza appunto inserendo uno spazio fisso (ma tenendo conto della crenatura positiva o negativa) fra tutti i caratteri.
La crenatura si fa sempre, la spaziatura a volte no.
Ciao
Enrico
-
23 Ottobre 2007 alle 16:13 #13989::
Non direi. La crenatura è quell’aggiustamento che si esegue per avvicinare o allontanare due caratteri a seconda della loro forma. La spaziatura del maiuscoletto si realizza appunto inserendo uno spazio fisso (ma tenendo conto della crenatura positiva o negativa) fra tutti i caratteri.
La crenatura si fa sempre, la spaziatura a volte no.
Ho riflettuto sulla tua risposta, Enrico, ma stavolta non ti seguo.
Innanzitutto, con il termine crenatura (kerning) si indica la riduzione dello spazio in eccesso fra coppie di caratteri, attuata al fine di eliminare spazi bianchi antiestetici e dare un aspetto più omogeneo al testo. Sono soggette a crenatura negativa (lo spazio della prima lettera deve entrare in quello della seconda), in un carattere disegnato e digitalizzato a regola d’arte, oltre 4.500 coppie di crenatura; le principali sono ad esempio:
AT AV AW …http://www.giofuga.com/lettering/lettcre.htm
Quindi, da quello che capisco, la crenatura si fa solo tra alcune coppie di lettere (magari anche tante, ma non tutte), quando serve: non si fa sempre. La spaziatura non si fa sempre, certo. Qui però stiamo parlando del maiuscoletto spaziato. La vedo così: la spaziatura tra i caratteri del maiuscoletto è formata da uno spazio fisso più una (eventuale) correzione (la crenatura, appunto).
Enrico, permettimi di sottoporti il paragafo della guida che sto scrivendo che mi dà problemi. Ogni tua correzione, è (naturalmente) la benvenuta!
Migliorare la spaziatura del maiuscoletto
In generale, LaTeX cerca di produrre sempre le migliori interruzioni di riga possibili; se non riesce a trovare il modo di spezzare le righe secondo i suoi severi criteri, lascia che la riga fuoriesca dal margine destro, avvertendo l’utente con un messaggio di “overfull hbox”.
Nelle versioni di classicthesis precedenti la 2.0, le situazioni di fuoriuscita di una riga dal margine destro nei titoli dei paragrafi e dei capitoli erano abbastanza comuni. Questi problemi erano dovuti al fatto che classicthesis usava il pacchetto soul per realizzare la spaziatura tra i caratteri del maiuscoletto: la spaziatura (formata da uno spazio fisso più un’eventuale correzione, la cosiddetta “crenatura”) era realizzata “carattere per carattere” e non riusciva a tenere conto di tutti i fattori necessari.
L’uso di soul per la spaziatura del maiuscoletto dovrebbe essere eliminato a favore del metodo adottato dal pacchetto microtype, che non soffre delle fragilità di soul e realizza la spaziatura agendo direttamente al livello del font. Perché ciò avvenga, è sufficiente caricare classicthesis con l’opzione pdfspacing.
Occorre una versione aggiornata di microtype (almeno la 2.0).
Ciao e grazie,
L.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.