Risposte nei forum create
-
AutoreRisposte
-
::
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
::
L’autore del pacchetto toptesi non ha nulla da dire, perché quando in toptesi si specifica l’opzione pdfa, viene caricato il pacchetto pdfx.sty con l’opzione a-1b, che, appunto crea il file pdf conforme allo standard PDF/A-1b. Tutto il resto lo fa il pacchetto pdfx, che a sua volta carica hyperref cone certe ozioni e non ho la più vage idee di quali siano, o meglio, lo so, sono pdftx e pdfa, ma non so che cosa ciascuna faccia; pdfa dovrebbe rendere inattivi tutti gli ulr esterni, perché non fanno parte dello standard PDF/A (né 1a né 1b), ma per il resto non saprei.Direi di non specificare l’opzione pagebackref; se davvero è già caricata, funziona da sola, altrimenti vuol dire che non si può usare; ma non è colap di toptesi, è colpa della particolare implementazione dello standard PDF/A-1b reso con il pacchetto indicato.
Puoi provare, seguendo le indicazioni in toptesi-doc o toptesi-doc-xetex, non usare l”opzione pdfa per toptesi, ma compilandolo regolarmente, poi convertendolo in PDF/A-1b usando il metodo che ricorre a ghostscript. Non ti garantisco niente, ma puoi sempre provare.
::
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.
::
In realtà le orribili testatine e piedini composte su più righe si possono fare anche con ClassicThesis, I comandi che hai visto nella documentazione delle classi Koma-Script, che è alla base di ClassicThesis, si possono senz’altro usare ma come tutti i comandi di qualsiasi classe essi compongono il loro contenuto dentro una scatola orizzontale; questa può contenere solo una riga di testo e non vi si può andare a capo, ma c’è un “work around”, espressione anglosassone per dire “sporco trucco”: si tratta di mettere il testo su più righe composto dentro una tabella con allineamento alla riga superiore e con un sola colonna allineata a sinistra, se deve andare nella parte di sinistra della testatina o del piedino. dentro la tabella \\ indica di andare alla riga successiva. mente dentro una scatola orizzontale \\ non vuol dire niente.Attento ClassicThesi è bella purché la si prenda così com’è senza modifiche; se devi apportare modifiche importanti come piedini con testi su più righe, è meglio che tu scelga un’altra classe. Con il pacchetto geomentry puoi ottenere lo specchio di stampa che ti pare, con fancyhdr puoi creare le testaine e i piedini come ti pare; con tocloft configuri gl’indici come ti pare, con altri pacchetti gestisci i coandi di sezionamento come ti pare. Massima flessibilità; se poi vuoi usare memoir, la cosa non è più difficile rispetto a fare come detto nel periodo recedente, ma lo fa molto meglio.
::Doc” post=75698Osservazioni!
[tt]/usr/local/texlive/2012/texmf/web2c/updmap.cfg[/tt] è il file che, su consiglio di OldClaudio, avevamo modificato in seguito all’errore, per così dire, iniziale. Oggi ho avuto anche io l’errore (avevo installato i fonts ieri sera), ma ora posso dire che il file [tt]/usr/local/texlive/2012/texmf/web2c/updmap.cfg[/tt] risulta…. VUOTO!
Dunque, credo possa essere tolto senza problemi, come risulta nell’output del terminale! O mi sbaglio?
Inoltre [tt]tlmgr generate updmap[/tt], quando lanciato, viene dato come deprecato.
Non ho verificato la deprecabilità di tlmgr generate; però proprio questa sera ho fatto l’upgrade sul mio portatile dopo avere
letto il tuo messaggio, l’applicazione TeXLiveUtility.app non ha trovato nulla da ridire sulle impostazioni che avevo fatto un mesetto fa quando era sorto il problema del file di configurazione bacato con una variabile d’ambiente non sostituita. Il file che tu dici essere vuoto, non è vuoto e i miei font personali sono stati regolarmente caricati nonostante l’uso di un alias, che invece una settimana fa, sill’iMac aveva prodotto un warning registrato anche nel file .log.Non riesco a capire che cosa possa esserti successo; ora tutto gira perfettamente, almeno da me.; ripeto: si tratta di un upgrade con tlmgr (attraverso l’interfaccia grafica per Mac, che non dovrebbe avere nessun effetto particolare) eseguita circa un’ora fa. Il file
updmap.log riporta la data e l’ora Mon Jul 30 19:43:09 2012 e non contiene nessun warning.
Ciao
Claudio
::
Sì, è stata cambiata, ma io non ho trovato nessuna difficoltà a adattare le mie precedenti mappe personali e file di configurazione personali al nuovo modo di procedere, anzi lo trovo più semplice del precedente.
Ho scritto anche un messaggio sil filone TeX Live 2012 a questo proposito; ora con l’ultimo aggiornamento di qualche giorno fa ho scoperto che il trucco di usare un alias non funziona e che bisogna eliminare ogni file updmap-local.cfg o meglio, basta cambiargli il nome per davvero, non semplicemente crearne un nome fittizio che punta la nome vecchio.Per altro è tutto spiegato nella documentazione di tlmgr: texdoc tlmgr; be’, non proprio, ma dice nella pagina 14:
For managing your own fonts, please read the updmap −−help information and/or <http://tug.org/fonts/fontinstall.html>.
::
Non so come aiutarti; bisogna proprio mettere le mani sui file che ti ritrovi nelle cartelle della distribuzione.Se io fossi nei tuoi panni, cercherei diverse vie e comincerei a crearmi delle cpie di backup die vari updmap.cfg che hai sull’intero disco, segnandoti con precisione da quale cartella originale ciascuna è stata salvata. Poi userei tlmgr per ricreare le mappe; usa texdoc tlmgr per documentarti, ma occhio e croce con le prerogative di amministratore credo che dovresti fare qualcosa come tlmgr generate updmap da terminale, poi, sempre come amministratore dovresti eseguire updmap-sys, vai poi a cercare il fole pdftex.map, aprilo e vedi se sono elencati anche i tuoi font nofree. Se lo sono hai aggiustato il tutto; se non lo sono cerca le mappe di questi tuoi font e creati una updmap.cdf contenente solo queste mappe, e salva il file in
…/texlive/texmf-local/web2c/ ed esegui mktexlsr per aggiornare il database dei nomi dei file; poi riesegui updfmap-sys ricontrollando il suo log per vedere quali upfmap.cfg ha usato; se ha usato anche al tua updmap.cfg sei a posto, ma ricontrollare pdftex.map non guasta.Se qualche altro ha avuto problemi simili ai tuoi e li ha risolti, batta un colpo, che fra tutti forse riusciamo a dare una mano a @samiel.
::
Certo, ed è per questo che non bisognerebbe mai usare mescolati gli oggetti flottanti e gli oggetti fissi; infatti la soluzione da scegliere è la terza, la solita operazione che lascia flottare le tabelle e le figure, e permette di citarle con l’uso attento, ma semplicissimo di \label e \ref, \pageref e volendo, anche di \vref.
Gli oggetti fissi se ci sono devono essere relativamente piccoli e non avere nessuna didascalia; questo vale anche per le figure al margine (wrapfig), perché il loro flusso di uscita è distinto da quello delle tabelle e figure regolarmente flottanti.Però tutto questo filone parte da un presupposto sbagliato: il titolo: “Inserire didascalia in tabularx”. Comunuque si faccia non si inserisce nessuna didascalia in tabularx, cioè dentro all’ambiente tabularx. Invece si vuole assegnare una didascalia ad una tabella composta con tabularx. La risposta ovvia alla domanda giusta non può altro che essere di usare \caption dentro un ambiente per il quale abbia senso, oppure di usare una simulazione di \caption (\captionof) dentro ad un ambiente per il quale \caption non habbia senso. E tutti sanno che se si usa \caption fuori degli ambienti flottanti si ottiene un errore, proprio perché LaTeX stesso non dà nessun significato a una didascalia generata con \caption fuori di un ambiente flottante.
::
Ho provato a compilare il tuo esempio, ma siccome non è un esempio minimo compilabile, ho dovuto arrangiarmi un po’ nel crearne uno dove fossero presenti solo i pacchetti necessari.Il punto è la la definizione del \overarc da me va in loop infinito; da te evidentemente non entra in questa ricorsione senza terminazione.
Vorrei capire bene; da te la riga con overarc ha il segno dell’arco che si sovrappone in parte ai caratteri della riga precedente/ oppure la presenza del segno dell’arco spazia di più del normale le righe adiacenti?
Io mi sono risolto il problema con la seguente macro, ansi con il file minimo compilabile seguente, ma questo non sovrappone il segno dell’arco ai caratteri della riga precedente ma spazia le righe quanto basta per evitare sovrapposizioni:`% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
\documentclass[10pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{amsmath,amssymb}\makeatletter
\newcommand*\overarc[1]{{%
\setbox254\hbox{$#1$}%
\dimen@=\wd254\relax
\setbox254\hbox{(} %)
\dimen\tw@=\ht254\advance\dimen\tw@\dp254\relax
\edef\@tempA{\expandafter\strip@pt\dimexpr\dimen@*\p@/\dimen\tw@}
\setbox254\hbox{\scalebox{\@tempA}[1]{\rotatebox{-90}{$(\mkern-1mu$}}} %)
\vbox{\ialign{##\crcr
\box254\crcr
$\hfil\displaystyle #1\hfil$\crcr}}}}\usepackage{lipsum}
\begin{document}
Calcola le aree delle regioni finite di piano delimitate dall'arco $\overarc{AB}$ di $\gamma$ e dall'arco $\overarc{ABC}$ di $\Gamma$. \lipsum[1]\end{document}`
Il risultato non è sgradevole, ma certo non è perfetto.
Spiegazione; la macro fa ricoso a \ilaign che mette qualcosa sopra qualcos’altro mantenendo la linea di base invariata rispetto a ciò che sta di sotto.
quello che sta di sopra non è altro che una parentesi adgiata sul fianco e dialtata quanto basta per coprire l’argomento.
Per dire quanto basta dilatare, bisogna sapere quanto è largo l’argomento delle lettere che identificano l’arco e questa larghezza viene misurata e memorizzata in \dimen@ che è un registro dimensionale interno; poi viene fatta la spessa operazione sulla parentesi, ma qui bisogna sommare l’altezza e la profondità della parentesi, conservando questa somma nel registro dimensionale identificato con \dimen\tw@. Se ne fa il rapporto con le espressioni dimensionali facenti parte da diversi anni del programma pdf(la)tex, e si usa questo numero senza l’unità di misura (tirata via con il comando interno \strip@pt) come fattore di scala orizzontale da passare a \scalebox; come fattore di scala verticale si mantiene il valore unitario. Quindi l’argomento su cui \scalebox lavora è la scatola ottenuta ruotando verso destra di 90° la parentesi tonda, conservando il risultato nel registro scatola 254. Ecco quindi che \ialign può usare per il “sotto” le due o tre lettere che costituiscono l’argomento della macro, e per “sopra” la parentesi stiracchiata solo in orizzontale di quanto basta per coprirle tutte.
::
Io non ho palato di file, ho parlato di font, se hai installato i nonfree, avrai ben scrtto qualcosa per immetterli nelle mappe, probabilmente han manomesso updmap.cfg nella cartella di sistema, oppure vi hai messo al suo posto un tuo file che conservavi altrove, ecco quindi il file creato a mano.Ma questo lo puoi fare mettendo il tuo file nell’albero locale, verificando che sia scritto come si deve, con gli spazi gli hash sign dove ci vogliono e via di questo passo. Il programma updmap-sys (updmap-sys.exe su Windows) è molto suscettibile e si arrabbia facilmente.
::
Le soluzioni che ho proposto sono solo tre:
La prima è `
\begin{table}[h!] % oppure \begin{table}[H]
…
\caption{…}\label{…}
\end{table}`La seconda è `
\begin{center}
…
\captionof{table}{…}\label{…}
\end{center}`e la terza è `
\begin{table}
…
\caption{…}\label{…}
\end{table}`La terza lascia la tabella flottante e non importa dove LaTeX la mette, ma si è sicuri che se puoi rispettare i prametri impliciti nella classe, la mette nel posto migliore (salvo inghippi che non dipendono dalla soluzione, ma, per esempio dalla coda bloccata da un precedente table con parametri di posizionamento scelti male).
La seconda non ha problemi con le code perché non le sfrutta, se non ci sta nella pagina, LaTeX mette tullo l’ambiente nella pagina successiva e in quella dove si sperava che cadesse la tabella aumenta enormemente lo spazio fra i capoversi e quindi la pagina diventa brutta, ma relativamente facile da aggiustare, magari lasciandola mozza (di due o tre righe) oppure rimpolpando il testo, oppure ancora smagrendolo in modo da lasciare più spazio alla tabella.
La prima soluzione con [h!] non lascia a LaTeX nessuna possibilità: o ci sta lì dove vuoi, oppure la lascia in coda e blocca la cosa fino alla fine del capitolo o del documento. Con [H] l’ordine è perentorio: mettila qui e non discutere; quindi se ci sta, bene; se non ci sta, lo sposta alla pagina successiva lasciando la pagina mozza. Si può aggiustare la cosa nello stesso modo di quando si usa la seconda soluzione.
Come confrontare le soluzioni 1 e 2? la 1 con lo specificatore [H] richiede l’uso di un altro pacchetto (che io non credo di avere ami usato seriamente negli ultimi 30 anni; certo l’ho provato, ma le sue funzioni per creare nuovi oggetti flottanti possono essere usate, secondo me, solo per definire nuovi tipi di oggetti flottanti, cosa che a ben pensarci succede raramente; per gli algoritmi ci pensano i comandi interni di listings. Ricordo di essermi definito un nuovo tipo di oggetti flottanti quando nel 1991 ho scritto il libro per la Hoepli e il pacchetto float non esisteva ancora e non esisteva nemmeno LaTeX2e. Se non si vuole usare il pacchetto float, i comandi standard di LaTeX, come i parametri di posizionamento fra parentesi quadre, vanno usati intelligentemente senza costringere LaTeX in un vicolo senza uscita, perché allora diventa cattivo (blocca la coda e può far perdere degli oggetti mobili).
Ricordo che i parametri di posizionamento standard t, b, h e p richiedono degli spazi minimi o massimi espressi in termini di altezza dello specchio di stampa; se ben ricordo t non deve superare la frazione 0,7 dell’altezza, b non deve superare 0,5, h non deve superare 0,3, p deve essere almeno 0,5; posso sbagliarmi, ma questi limita danno la spiegazione del perché LaTeX dispone di code FIFO (First In First Out) per gli oggetti flottanti, dalle quali essi vengono estratti quando le loro dimensioni e i loro parametri di posizione lo consento in relazione al contenuto della pagina in costruzione. Se si specifica ! (punto esclamativo) quei limiti vengono un po’ rilasciati ma non del tutto, quindi [h!] non è equivalante a [H].La soluzione 2 non fa riferimento agli oggetti flottanti, ma richiede un qualche pacchetto, per esempio caption per avere la definizione di \captionof. Secondo me il pacchetto caption offre maggiori probabilità di essere usato anche per i suoi scopi “istituzionali”, cioè di personalizzare il modo di comporre le didascalie, sempre secondo me, molto più utile che non definire nuovi tipi di oggetti flottanti.
Poi ci sarebbe la 4.a soluzione, quella di definirsi dei comandi del tipo di \captionof, ma con parametri diversi, che possano essere usati anche dentro gli oggetti flottanti per dare un titolino corrente con un nome diverso da Tabella o da Figura e che possano essere usati anche quando c’è un contatore da incrementare e a cui riferirsi, un po come \newtheorem definisce degli enunciati che hanno un nome diverso ma sono numerati usando lo stesso contatore di un enunciato capostipite, per esempio theorem. Non conosco nessun pacchetto che definisca una cosa del genere e il cui comando permetta di usare l’asterisco per non numerare l’oggetto.
Ma questo è i cassetto dei sogni, se ne avessi davvero necessità, avrei già scritto le macro e magari anche pubblicato il pacchetto che le contiene. Ma benché disponga di più tempo di quando ero in servizio, non ho voglia di inventarmi cose nuove per il solo gusto di inventarle anche se non so che cosa farmene; insomma un Archimede Pitagorico basta ed avanza, ed è e resta un personaggio di Walt Disney. 🙂
Ciao
Claudio
::
Il rischio di usare l’opzione [h!] che se la tabella lì non ci sta per un motivo qualsiasi, nonostante il punto esclamativo, ti resta in coda e ti blocca tutta la coda delle tabelle fino alla fine del capitolo, questo è il motivo per il quale rarissimamente consigliamo di usare [h!].La buona tipografia richiede di lasciar flottare le figure (e le tabelle) e farvi riferimento con \label e \ref, oppure di correre il rischio di lasciale fisse, mettendole dentro ambienti non flottanti, come per esempio center, e usare \captionof definito dal pacchetto caption.
Se la tua soluzione ti soddisfa, contento tu, contenti tutti; ma non è buona tipografia.
-
AutoreRisposte