Risposte nei forum create
-
AutoreRisposte
-
::
Molto strano, indubbiamente, ma bisognerebbe vedere l’esempio. Meglio ancora se tu potessi inserire il comando`\tracingpages=1`in un punto che, grosso modo, cade nella pagina precedente a quella in cui si verifica il problema, il comando`\tracingpages=0` subito dopo il \pagebreak, e mandassi il file .log risultante.Ciao.
—
Gustavo
17 Febbraio 2011 alle 14:15 in risposta a: compilazione dello stesso file su ambiente Win e MAC #56047::
Certo, usare inputenc consente di avere sorgenti più leggibili, ma, purtroppo, sembra che procuri anche molte seccature, se si deve giudicare dai numerosi messaggi che arrivano al forum relativi a problemi con la codifica in ingresso — che poi sono sempre lo stesso, unico problema: l’utilizzo di un editor impostato per una codifica diversa da quella specificata a inputenc. Si potrebbe dire che tutto succede perché viviamo in un mondo strano: in un mondo ideale, come si è riusciti a suo tempo ad accordarsi sul codice ASCII a 7 bit, ci si metterebbe anche d’accordo per usare, poniamo, utf-8 nei paesi europei e americani (con alcune eccezioni); ma, del resto, l’Idiozia Umana (intesa come concetto astratto) è riuscita a inventare incompatibilità persino nella codifica ASCII (vedi LF/CR/CRLF)…Comunque, quel che volevo dire è che la continua reiterazione di messaggi su un problema alla fin fine banale potrebbe (e sottolineo il condizionale) far pensare alla necessità di chiarire meglio l’argomento nelle guide.
Ciao.
—
Gustavo
17 Febbraio 2011 alle 12:59 in risposta a: compilazione dello stesso file su ambiente Win e MAC #56045::Scusa Gustavo,
ma se nel sorgente c’e` scritto che il font encoding e` utf8, anche se l’editor di windows utilizzasse di default un encoding differente, il documento compilato deve essere corretto, o sbaglio?ovviamente la visualizzazione del sorgente e` dipendente dall’encoding utilizzato dall’editor, ma il documento compilato (il pdf), essendo l’inputenc specificato, deve essere corretto.
Si infatti il file è in UTF8 però se il tuo editor utilizza un altro encoding quando lo apri le lettere accentate e altri caratteri che non corrispondono vengono sostituiti dall’editor stesso (in quanto pensa che l’encoding sia un altro) e quindi ti ritrovi il file modificato e al momento della compilazione verranno processati i nuovi caratteri.
Ciao
FraAppunto. Quello che dice Nucleo sarebbe corretto se il file sorgente preparato su Mac venisse copiato pari pari su un sistema diverso e sottoposto direttamente a ((pdf)La)TeX, senza aprirlo con un editor diverso.
(Aggiungo una cosa per Alberto/katsumoto, ma piano piano che non ci senta nessuno, sennò qui mi linciano: io non disdegno la vecchia, cara codifica ASCII a 7 bit; uso ancora il glorioso editor Alpha, dal quale non riesco a separarmi, che si può configurare per far sì che, quando si premono, per esempio, i tasti per produrre una “è”, nel sorgente venga scritto “\`{e}”; non uso inputenc… Ma zitto, per carità, che non ci sentano… 😉 )
Ciao.
—
GustavoP.S.: Oh, ovviamente fontenc va usato, invece.
16 Febbraio 2011 alle 21:44 in risposta a: compilazione dello stesso file su ambiente Win e MAC #56041::[…]
Ti dico qual’era il problema: praticamente..il “nome” della prima equazione del capitolo era eqn:energia1…e quell’uno nel nome si vede che faceva casino..perchè cambiando il nome in eqn:energiaprimo tutti i riferimenti sono corretti!!! 😉 […]Mi sembra strano che il problema potesse essere questo, perché “eqn:energia1” (senza le virgolette) mi pare un’etichetta perfettamente lecita.
“Qual era” si scrive senza apostrofo, mi raccomando! 🙂
Ciao.
—
Gustavo
::
Mi stavo rileggendo tutto il filone, e mi è venuta in mente un’altra cosa.[In quelle righe per caso hai usato qualche “\\” di troppo? Cioè sei andato a capo con \\?
Ho letto (non ricordo dove) che le “\\” producono questo warning, innocuo si, ma sembra che rallenti la compilazione.
Per i dettagli aspetta gli esperti.Ciao,
ansys.È esattamente così, e il nostro esempio lo illustra alla perfezione; riprendiamo infatti in mano il tracciato:
`
@firstpass
[]\T1/cmr/m/sc/10 Nominativo 1: \T1/cmr/m/n/10 nome cognome \T1/cmr/m/sc/10 No
minativo 2: \T1/cmr/m/n/10 nome
@ via @@0 b=4 p=0 d=196
@@1: line 1.2 t=196 -> @@0
cognome
@\penalty via @@1 b=0 p=-10000 d=100
@@2: line 2.2 t=296 -> @@1
\T1/cmr/m/sc/10 Nominativo 3: \T1/cmr/m/n/10 nome cognome
@\penalty via @@2 b=0 p=-10000 d=100
@@3: line 3.2 t=396 -> @@2
`
@@3 è la cesura all’ultimo \\ (3a linea, decente); a questo punto TeX si accorge che la cesura successiva (obbligatoria, è la fine del capovero) produrrebbe una scatola la cui bruttezza eccede \pretolerance (è 10000), e quindi abbandona il primo passo e sottopone l’intero capoverso a sillabazione, processo oneroso in termini di tempo. Oltretutto, lo fa del tutto inutilmente, perché il capoverso alla fine viene spezzato in righe senza sfruttare alcuna delle cesure addizionali trovate con la sillabazione, e dunque il primo passo sarebbe stato sufficiente, se non ci fosse stato quel \\ .
`
@secondpass
[]\T1/cmr/m/sc/10 Nominativo 1: \T1/cmr/m/n/10 no-me co-gno-me \T1/cmr/m/sc/10
No-mi-na-ti-vo 2: \T1/cmr/m/n/10 no-
@\discretionary via @@0 b=114 p=50 d=27876
@@1: line 1.0- t=27876 -> @@0
me
@ via @@0 b=4 p=0 d=196
@@2: line 1.2 t=196 -> @@0
co-gno-me
@\penalty via @@1 b=0 p=-10000 d=10100
@\penalty via @@2 b=0 p=-10000 d=100
@@3: line 2.2 t=296 -> @@2
\T1/cmr/m/sc/10 Nominativo 3: \T1/cmr/m/n/10 no-me co-gno-me
@\penalty via @@3 b=0 p=-10000 d=*
@@4: line 3.2 t=296 -> @@3@\par via @@4 b=10000 p=-10000 d=*
@@5: line 4.0- t=296 -> @@4
`
(In rosso i punti di cesura che entrano a far parte della sequenza di punti scelta alla fine, in blu un ulteriore punto, ricavato dalla sillabazione, che però non viene utilizzato.)Conclusione: abbiamo riempito un’intera pagina di messaggi solo per accorgerci, alla fine, che ansys aveva già detto tutto quel che c’era da dire!
Ciao.
—
Gustavo
::
Mi sento in dovere di intervenire per sottolineare che sono rimasto anch’io molto sgradevolmente colpito, e devo dire perfino allibito, dall’inqualificabile risposta di fumetti. Trovo che siete stati molto generosi a risponderle ancora, io le avrei semplicemente suggerito di rivolgersi a un consulente a pagamento.Mi sono preso la briga di scrivere questo messaggio perché ritengo sia giusto non transigere su comportamenti del genere: capisco lo stress da tesi, ma il tono del messaggio di fumetti era davvero al di là di ogni possibile scusante.
—
Gustavo
::OK! Le due righe incriminate sono queste:
`\vspace{3cm} \textsc{Nominativo 1:} nome cognome \hspace{3.0cm}\textsc{Nominativo 2:} nome cognome\\
\textsc{Nominativo 3:} nome cognome\\`
Togliendo l’ultimo “\\”, ovvero lasciando le righe in questo modo:
`\vspace{3cm} \textsc{Nominativo 1:} nome cognome \hspace{3.0cm}\textsc{Nominativo 2:} nome cognome\\
\textsc{Nominativo 3:} nome cognome`
Il warning sparisce.Eh, be’, certo: non devi concludere un capoverso con \\ ! Se lo fai, LaTeX va a capo quando trova il \\, e il capoverso finisce con una riga vuota che deve essere stirata fino a occupare la normale larghezza di riga: ecco qui la tua underfull hbox. Poiché ti avevo promesso di indicare il punto esatto nel quale si verifica il problema, accludo le prove (peraltro del tutto superflue, in un caso di palmare evidenza come questo), cioè il listato prodotto da \tracingparagraphs=1:
`
@firstpass
[]\T1/cmr/m/sc/10 Nominativo 1: \T1/cmr/m/n/10 nome cognome \T1/cmr/m/sc/10 No
minativo 2: \T1/cmr/m/n/10 nome
@ via @@0 b=4 p=0 d=196
@@1: line 1.2 t=196 -> @@0
cognome
@\penalty via @@1 b=0 p=-10000 d=100
@@2: line 2.2 t=296 -> @@1
\T1/cmr/m/sc/10 Nominativo 3: \T1/cmr/m/n/10 nome cognome
@\penalty via @@2 b=0 p=-10000 d=100
@@3: line 3.2 t=396 -> @@2
@secondpass
[]\T1/cmr/m/sc/10 Nominativo 1: \T1/cmr/m/n/10 no-me co-gno-me \T1/cmr/m/sc/10
No-mi-na-ti-vo 2: \T1/cmr/m/n/10 no-
@\discretionary via @@0 b=114 p=50 d=27876
@@1: line 1.0- t=27876 -> @@0
me
@ via @@0 b=4 p=0 d=196
@@2: line 1.2 t=196 -> @@0
co-gno-me
@\penalty via @@1 b=0 p=-10000 d=10100
@\penalty via @@2 b=0 p=-10000 d=100
@@3: line 2.2 t=296 -> @@2
\T1/cmr/m/sc/10 Nominativo 3: \T1/cmr/m/n/10 no-me co-gno-me
@\penalty via @@3 b=0 p=-10000 d=*
@@4: line 3.2 t=296 -> @@3@\par via @@4 b=10000 p=-10000 d=*
@@5: line 4.0- t=296 -> @@4
`
In rosso, come sempre, il punto cruciale. Le cesure precedenti, e cioè @@4, @@3 e @@2 hanno, come puoi vedere, costi molto modesti.Forse ti chiederai che fine ha fatto la colla \parfillskip che conclude il capoverso, e che normalmente consente di stirarne l’ultima riga a costo zero; ma, ovviamente, essa è stata scaricata in quanto segue immediatamente un punto di cesura. (Aggiunta a messaggio già inviato: e non è essa stessa un punto di cesura.)
Penso di aver mantenuto la promessa di spiegare esattamente il dove e il perché. Ricorda: mai terminare un capoverso con \\ : il capoverso si termina da sé!
Ciao.
—
Gustavo
::
Caro fbcyborg,forse riusciremmo a spiegarci meglio se tu inviassi un esempio concreto in cui ti si produce una scatola sottoriempita: ti faremmo vedere esattamente dove e perché, nel tuo esempio, essa si produce. Avevi parlato di una
`Underfull \hbox (badness 10000) in paragraph at lines 67–70`
ma precisando che era solo un esempio fra tanti; be’, non riesci a ricuperarlo? Sicuramente non ti limiti a scrivere un capoverso, perché la normale attività di composizione dei capoversi non produce — in caso di impossibilità a rispettare i rigidi criteri di \tolerance prescritti da LaTeX — scatole sottoriempite, bensì sovrariempite.
Ciao.
—
Gustavo
::[…]
\vfuzz e \hfuzz sono delle misure di fuoriuscita da bordi sotto ai quali il compositore chiede di non essere informato.
Nell’interesse della chiarezza, mi sia consentito aggiungere che esse riguardano esclusivamente la formazione di “scatole sovrariempite” (overfull boxes); in generale un problema concernente una “scatola sottoriempita” (underfull box) non viene influenzato da tali parametri.
Mettere \hfuzz=3pt (circa un millimetro) vuol dire essere molto di bocca buona; 1pt 1.5pt mi parrebbero il massimo accettabile.
per \vfuzz sarei più tollerante, visto che due pagine affacciate non hanno le griglie di stampa adiacenti come le righe di un capoverso; quindi 3pt o 4pt non li vede nessuno a meno che non metta un righello sotto al blocco di stampa di due pagine affacciate.
A titolo di paragone, il valore di default impostato da Plain TeX e da LaTeX è 0,1 punti (circa 0.03 mm).
Perdonate la pignoleria. Ciao.
—
Gustavo
::`Underfull \vbox (badness 3158) has occurred while \output is active
Underfull \vbox (badness 1097) has occurred while \output is active`quando compilo mi da questi 2 avvisi che però non credo vadano a inficiare il risultato finale, però se qualcuno lo sa può dirmi come eliminarli??
[…].
Ti da fastidio vedere queste informazioni? Metti nel preambolo il comando
`\vfuzz4000`[…] Se la badness valesse 10000 (nel gergo di TeX 10000 vuol dire “infinito”) allora dovremmo preoccuparci, altrimenti impostare \hfuzz e \vfuzz a valori di poche migliaia ci permette di non essere disturbati da informazioni spesso del tutto trascurabili; […]
Mi permetto di correggere una piccola, ma potenzialmente fuorviante distrazione di OldClaudio: quando nomina \hfuzz e \vfuzz, intende evidentemente rfierirsi, invece, a \hbadness e \vbadness.
`
\vbadness = 4000
`
(ll’uguale è facoltativo). Il codice
`
\vfuzz = 4000
`
(o
`
\vfuzz4000
`
che dir si voglia) produce ovviamente un errore causato dalla mancanza di un’unità di misura (pt inseriti). E, naturalmente, \vfuzz è un’altra cosa: 4000 (pt inseriti) di fuzzyness sono veramente tanti!Ciao.
—
Gustavo
::
La soluzione più ovvia è usare argomenti delimitati, cosa che però richiede il linguaggio TeX di base:
`
\makeatletter
\def\threelines#1\\#2\\#3\\{%
\ifx\@empty#1\@empty % if #1 is empty
\else
{\bfseries #1}\\%
{\itshape #2}\\%
#3\\%
\expandafter\threelines
\fi
}
\makeatother
`
Usando una macro del genere, però, è facile andare “fuori sincrono”: sarebbe meglio marcare la fine di ogni gruppo di tre linee con una sequenza di controllo differente. Per esempio:
`
\makeatletter
\def\threelines#1\\#2\\#3\/{%
\ifx\@empty#1\@empty % if #1 is empty
\else
{\bfseries #1}\\%
{\itshape #2}\\%
#3\\%
\expandafter\threelines
\fi
}
\makeatother
`
da usarsi così:
`
\threelines
Linea 1\\
Linea 2\\
Linea 3\/
Linea 4\\
Linea 5\\
Linea 6\/
`
eccetera. Naturalmente questa è solo l’idea generale, poi i dettagli andrebbero raffinati. Per esempio, cosa fare se lo schema con cui si devono susseguire le linee non è rispettato, e cose del genere.Ciao.
—
Gustavo
31 Gennaio 2011 alle 20:23 in risposta a: come eliminare numeri tra parentesi quadrealla bibliografia #55425::si, ma non mi piace che venga fuori l’etichetta tra parentesi quadre, sia essa un numero se non si specifica niente o una parola se si scrive all’interno. Vorrei semplicemente che uscisse senza quella quadra davanti ai nomi degli autori.
SabrinaDovresti ridefinire, per esempio nel preambolo (o in un tuo pacchetto), il comando \@biblabel:
`
\makeatletter
\def\@biblabel#1{#1}
\makeatother
`
(confronta con la definizione originale in latex.ltx
`
\def\@biblabel#1{[#1]}
`
che mette, come si vede, le parentesi quadre).Comunque, permettimi di aggiungere che non condivido affatto questa tua idea di eliminare le parentesi quadre. (Messaggio fuso col seguente dopo il suo primo invio.)
—
Gustavo
31 Gennaio 2011 alle 19:06 in risposta a: come eliminare numeri tra parentesi quadrealla bibliografia #55422::
Forse quel che intende sabrina è semplicemente qualcosa del tipo
`
\begin{thebibliography}{LrgstLab}
\bibitem[Drof83]{Drofnats1983}
R.~J.~Drofnats, \emph{Farm Ecology and Isolated Analgesics}, …
\end{thebibliography}
`
In altre parole, mi sembra di capire che si vuole confezionare la bibliografia “a mano” (senza BibTeX), e che il problema sia solo quello di personalizzare l’etichetta: per questo è previsto l’argomento opzionale del comando \bibitem.—
Gustavo
-
AutoreRisposte