- Questo topic ha 9 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 14 anni, 1 mese fa da
egreg9.
-
CreatoreTopic
-
30 Luglio 2012 alle 18:25 #76544::
Salve a tutti,Sto componendo la tesi con pdfLaTeX con la classe TOPtesi e, quando provo a usare il comando \micro all’interno del comando \unit (ad esempio: `150\unit{\micro s}`), ottengo il seguente messaggio:
`Extra \else.
\textormath #1#2->ifmmode \bbl@afterelse #2\else
\\bbl@afterfi #1\fi`Qualche idea?
Utilizzo TeX Live su Mac OS XGrazie in anticipo 🙂
Daniele
-
CreatoreTopic
-
AutoreRisposte
-
-
30 Luglio 2012 alle 19:12 #76545::
Benvenuto!`\documentclass{toptesi}
\begin{document}
tempo: 12\unit{\micro s}
\end{document}`a me funziona. Dovresti dirci qualcosa in più, anzi, come da netiquette, scriverci un esempio minimo compilabile che riproduca l’errore.
Magari Claudio sa darti una risposta anche così, ma noi altri che non abbiamo scritto toptesi…
Francesco
-
30 Luglio 2012 alle 19:34 #76546
-
31 Luglio 2012 alle 4:50 #76547
-
31 Luglio 2012 alle 8:54 #76548::
danieleg” post=75719Grazie!
Hai ragione, infatti se lo avessi fatto prima mi sarei accorto che il problema sembra essere relativo all’utilizzo della lingua inglese. Il seguente codice:`
\documentclass{toptesi}
\begin{document}
\english
prova 150\unit{\micro s}
\end{document}
`riproduce l’errore.
Daniele
Dando [tt]\english[/tt] la definizione di [tt]\unit[/tt] cambia. Ti suggerisco di usare il pacchetto siunitx; altrimenti, aggiungi
`\makeatletter
\addto\extrasenglish{\let\unit\bbl@unit}
\makeatother`
al tuo preambolo.Ciao
Enrico
-
31 Luglio 2012 alle 10:02 #76549::
Mi spiace che l’errore principale nonn è in toptesi, ma è nella definizione del pacchetto di descrizione della lingua italiana italian.ldf. In realtà il file di descrizione della lingua italiana funziona bene anche con \unit, e il suo patch per non interferire con la definizione dell’omonimo commento del vecchio pacchetto SIunits. Toptesi usa quel che c’è e la riparazione indicata da Enrico funziona perfettamente con l’inglese, ma se poi si volesse fare la tesi in francese, la cosa non funzionerebbe più. ora vedo di mettere un riparo a toptesi, ma mi civorrà un po’ di tempo.
e|E nel frattempo aggiungi quelle tre righe di Enrico se stati scrivendo al tesi in inglese; se la stati scrivendo in un’altra lingua, aggiungi altre tre righe sostituendo “english” senza virgolette con il nome che babel usa per invocare quell’altra lingua.
Io da parte mia spero di poter realizzare una correzione che vada bene per tutte le lingue. Non mi sembra complicato, ma mi sembra delicato.Scusami
Claudio[edit] La correzione è stata più semplice del previsto; il pacchetto, ora alla versione 5.60 è già stato caricato su CTAN, a giorni sarà disponibile nella distribuzione di TeX Live.
Nel frattempo copiati texcoman.sty nella cartella dove stai lavorando il documento della tua tesi; apriloe cerca la definizione di \textormath; dovrebbe essere alla riga 49. Ora sostituisci `\providecommand{\textormath}{\ifmmode\expandafter\@secondoftwo\else
\expandafter\@firstoftwo\fi`
con`
\providecommand\textormath{}
\renewcommand{\textormath}{\ifmmode\expandafter\@secondoftwo\else
\expandafter\@firstoftwo\fi}`È il \providecommand che non permette di ridefinire il comando \textormath se esiste già; e siccome esiste già, definito da babel, è chiaro che la definizione mia non può avere luogo. Invece usando prima un \providecommand che inserisce nell’elenco delle macro anche \textormath, nel caso che non ci fosse ancora, ma poi lo ridefinisce subito (che ci fosse già stato o che sia stato aggiunto or ora) nel modo corretto che non fa riferimento ai comandi di babel che sono fragili in certe circostanze.
Le tre righe di Enrico, benché efficaci per l’inglese, non sono più necessarie.
Poi apportare la modifica suddetta al file topcoman sul tuo disco, ma non cambiare quella che si trova nelle cartelle di sistema; al prossimo aggiornamento le cartelle di sistema verranno regolarmente aggiornate e potrai cancellare dalla tua cartella la copia che ti sei fatto.
-
31 Luglio 2012 alle 12:57 #76550::
Grazie mille!La modifica al file topcoman.sty risolve l’errore, ma ho notato che il carattere \micro non risulta in tondo ma in corsivo.
Confermate o problema mio? 🙂Segnalo per completezza che la soluzione proposta da Enrico funziona, ma l’errore si riproduce se \micro viene utilizzato tra i delimitatori per le formule $…$
EDIT: il carattere \micro e’ in corsivo solo se usato dopo \english, e’ correttamente in tondo se la lingua e’ italiana.
-
2 Agosto 2012 alle 11:29 #76551::
La cosa che tu lamenti dipende solo parzialmente da toptesi; dipende anche dai font che usi; forse dovrei modificare la definizione di \micro in topcoman.sty, ma sono indeciso; da una parte in modo testo, se si usa pdflatex, viene impiegato il segno fornito dal comando \textmicro del pacchetto textcomp, mentre in matematica si usa il \mu inclinato o il \muup matematico diritto a seconda che sia o non sia disponibile con i font usati; per esempio se invece dei font di default tu usassi i font forniti dal pacchetto txfonts, o quelli forniti dal pacchetto pxfonts, vedresti in modo matematico il μ diritto ma senza le grazie al piede, mentre in modo testo vedresti le grazie al piede; sono due segni μ diversi, come lo sono generalmente i font in matematica (specialmente i corsivi) rispetto a quelli del modo testo.
Può darsi che questo sia un errore, comunque a me pare che sia corretto così.Con xelatex, invece si usano altri font che presentano i segno μ sempre diritto e senza grazie sia in modo testo sia in modo matematico; la cosa sembra più coerente, ma dipende dai font a cui si può accedere con l’uno l’altro programma di composizione.
Se vuoi modificare il modo di comporre il segno della lettera μ quando componi con pdflatex e li vuoi entrambi con le grazie, allora cerca il file topcoman.sty e copialo nella tua cartella di lavoro della tua tesi; poi apri questa copia di topcoman.sty, cerca la definizione di \micro e scrivici dopo`\renewcommand\micro{\textormath{\textmu}{\ifxetex\mathup{μ}\else
\mathpalette{}{\mbox{\textmu}}\fi}}`.Questo dovrebbe risolvere il tuo problema. Io non so se modificherò toptesi con questa variante; se e quando aggiornando la tua versione di TeX Live troverai che fra i pacchetti aggiornati ci sarà di nuovo toptesi, allora, forse, vorrà dire che oltre ad altre modifiche io abbia introdotto anche questa. Se hai qualche argomento per convincermi subito, “parla subito o taci per sempre” 😉
Se hai delle altre proposte di modifiche o correzioni, sono sempre attento e ben lieto che ci siano delle critiche costruttive ai miei pacchetti. Ti ringrazio in anticipo.Ciao
Claudio
-
2 Agosto 2012 alle 12:23 #76552::
Perfetto, la soluzione proposta risolve il mio problema.
Grazie per l’aiuto e per l’ottimo lavoro svolto con TOPtesi 🙂Non saprei se consigliare la modifica del pacchetto o meno, perche’ non sono in grado di valutare eventuali conseguenze “indesiderate” che questa soluzione potrebbe comportare.
Un saluto,
Daniele
-
2 Agosto 2012 alle 15:21 #76553::
OldClaudio” post=75775Se vuoi modificare il modo di comporre il segno della lettera μ quando componi con pdflatex e li vuoi entrambi con le grazie, allora cerca il file topcoman.sty e copialo nella tua cartella di lavoro della tua tesi; poi apri questa copia di topcoman.sty, cerca la definizione di \micro e scrivici dopo`\renewcommand\micro{\textormath{\textmu}{\ifxetex\mathup{μ}\else
\mathpalette{}{\mbox{\textmu}}\fi}}`[tt]\mathpalette{}{\mbox{\textmu}}[/tt] è sbagliato: si espande a
`\mathchoice{\displaystyle\mbox{\textmu}}{\textstyle\mbox{\textmu}}{\scriptstyle\mbox{\textmu}}{\scriptscriptstyle\mbox{\textmu}}`
che non fa cambiare grandezza al carattere.Se carichi amsmath, basta [tt]\text{\textmu}[/tt].
Ciao
Enrico
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.