Risposte nei forum create
-
AutoreRisposte
-
::
Con il palatino, che è già abbastanza largo di per sé, i fatidici 66 caratteri in ogni riga (n media, s’intende) richiederebbero una giustezza di 370pt invece di 336pt. Però manderesti a catafascio l’estetica della pagina di ClassicThesis.
Il Palatino è circa del 12% più largo del Times, quindi potresti diminuire la larghezza a 355pt. riducendo il danno all’estetica, non eliminandolo, ma andando un poco incontro ai requisiti della tua Università, dove la specifica di 13pt la dice lunga sulla (in)competenza di chi ha prescritto quelle regole. 😉Se invece lasci 336pt, ottini una densità media di caratteri di Palatino in copro 12 pt di circa 60 caratteri che, secondo la regola di Bringhurst, che sta alla base dell’estetica della tesi composta con ClassicThesis, va ancora bene vito che la famosa regola dei 6 caratteri ha appunto una tolleranza del 10% in più o in meno.
Il consiglio di lasciare le cose così come stanno è da prendere in seria considerazione.
::
Questa è la prima volta che dici che la tabellina di 6 righe è da usare una sola volta nella tabellona.L’errore che hai eliminato togliendo il riferimento alla codifica T1 dipende dal fatto che disponi di una distribuzione di TeX “antica” oppure di una distribuzione più basic del normale. Certo eliminando quella riga risolvi il problema, ma è come scopare un pavimento e nascondere la spazzatura sotto il tappeto.
Abbiamo sempre detto in questo forum che bisogna sempre disporre di distribuzioni TeX aggiornate e complete.Se metti la tabellina dentro una sola delle celle, con gli aggiustamenti di @franen ce la fai a far stare tutto in una pagina, ma un foglio A4 ripeno fino ai bordi (bordi della carta, non bordi dello specchio di stampa) è una cosa improponibile; riduci ancora un poco la larghezza delle colonne p[ Magari mettendoci “solo” 60mm, invece di 70mm e recuperi abbastanza per non snaturare la tabellona, ma mantenendo dei margini di circa 15mm, non immensi, ma presentabili.
::
No, non ti sei spiegato bene per niente.Questo è quello che ho capito rileggendo i tuoi oscuri messaggi, fitti di eheh, ma scarni di informazioni utili.
Vorresti fare una tabella di 12 righe e 3 colonne; vuoi che la tabella sia larga 210 mm perché stia dentro la larghezza di un foglio A4; dici che la tua tabellona sta in un foglio A4 anche se è larga 212mm, ma non sai spiegare il perché.
Andiamo avanti: in ogni cella della tabella vuoi mettere una tabellina di sei righe con 17mm di spazio sotto alla riga formata dalle tre tabelline e poi un filettino che attraversi tutta la tabellona.
Perciò componendo in corpo 10pt, 6 righe occupano 72pt in verticale, cioè quasi un pollice, cioè 25mm; aggiungendo i 17mm e il filettino ogni riga della tabellona occupa quindi almeno 42 mm; di queste righe nella tabellona ce ne sono 12, che quindi occupano complessivamente 504 mm; giusto? come fanno a starci 12 di tali righe in un foglio A4 la cui altezza è di 297 mm?Io probabilmente sono duro di comprendonio, ma o ti spieghi meglio, magari ti fai un disegno su un foglio di carta A4, lo scandisci e lo alleghi al messaggio come immagine png, oppure con le tue scarne informazioni un po’ confuse io certamente non riesco a darti una mano, e suppongo che anche altri incontrino le difficoltà che ho incontrato io.
::
Come dice giustamente Enrico, TeX fa i conti con i numeri interi e internamente le lunghezze sono numeri interi di scaled points; ricorda che 1pt = 2^{16}sp; 2^{16} è quel numero magico che hai trovato anche tu: 65536.Quindi se dividi due lunghezze uguali come i tuoi 150pt dell’esempio il rapporto degli scaled points vale 1, ma se lo consideri lunghezza esso vale 2^{-16}ptn, a rigore 0.00001525878906, che TeX ti arrotonda a 0.00002pt come hai giustamente trovato; ma apri la documentazione con texdoc etex e vai nella pagina 8, §3.5 Expressions e alla fine del secondo capoverso del paragrafo trovi:
The arithmetic operations are performed individually, except for ‘scaling’ opera- tions (a multiplication immediately followed by a division) which are performed as one combined operation with a 64-bit product as intermediate value. The result of each operation is again checked to be in the allowed range. Finally the results of divisions and scalings are rounded, whereas TEX’s \divide truncates.
Questo significa che nell’operazione a*b/c, lo scalamento di a per il rapporto fra b e c, b e c possono essere entrambe lunghezze o entrambi numeri interi e l’operazione viene eseguita correttamente nei due casi; mentre se semplicemente dividi a/b, che non è uno scalamento, ma il calcolo di un rapporto, il risultato del quale è una lunghezza se a è una lunghezza e b un numero intero,. è un numero intero se a e b sono entrambe lunghezze , e viene zero se a è un intero inferiore a 2^{16} e b una lunghezza maggiore di 1pt, e viene un brutto risultato intero malamente approssimato se a è grande e b è piccolo è il solito discorso del rapporto fra interi, siano essi il numero intero di scaled point o numeri interi tout court.
i pacchetti calc, pgfmath e simili fanno molte soe, ma le operazioni fra numeri fratti le ottengono considerando quei numeri fratti come moltiplicatori di 1pt, eseguendo le operazioni giuste sulle grandezze in scaled points, e poi togliendo dal risultato la parte pt della grandezza. Tutto questo implica una mole di calcoli enorme a confronto con le semplici operazioni all’interno della cpu cablate nelle estensioni etex.Non volgio difendere queste estensioni più di tanto; infatti se devi anche solamente calcolare una distanza euclidea fra due punti nel piano, devi estrarre anche una radice quadrata che le estensioni di etex non possono fare direttamente. calc e pgfmath lo possono fare ma a spese di lunghi giri di macro; prova a caricare il pacchetto trace oltre al pacchetto pgfmath, e a racchiudere un’operazione semplice, tipo una distanza euclidea, e poi mettici a cavallo \traceon e \traceoff; fai andare l’esempio, e poi prova a leggere il file log; troverai qualcosa come il tracciamento di alcune migliaia di righe, il che ti dà l’idea della mole di operazioni necessarie. prova a implementare un semplice algoritmo di Newton per la radice quadrata da realizzare con le estensioni di etex e rifai al prova, troverai che il tracciamanto contiene un numero di righe assai inferiore e nessuna riga corrispondente alle \dimexpr che hai usato, perché sono tutti calcoli che “non interessano” TeX ma la cpu.
::
Dipende da quante diottrie hanno le lenti; io mi trovo meglio con 11pt; ma non conosco nessuna classe che abbia 11pt come corpo predefinto; persino memoir, che può lavorare virtualmente con qualunque corpo predefinito, scegliendo da corpi piccolissimi (mi pare 7pt) fio a corpi grandissimi, 60pt, ha di default 10pt.Il problema non è tanto il corpo, quanto il fatto che il lettore si stanca nella lettura se le righe sono troppo lunghe e anche se sono troppo corte; per lunghezza non si intendono il numero di millimetri ma il numero medio di caratteri; senza prendere la cosa troppo sul serio, sembra che la lunghezza ottimale della riga, o meglio, della larghezza della gabbia del testo, si una di 66±6 caratteri in media, quindi da 60 a 72 caratteri. Io ho provato con lunghezze cortine di 55 caratteri e con lunghezze lunghette di 80 caratteri e non ho notato nessun affaticamento nella lettura. però come succede sempre con gli “ottimi”, non solo l’ottimalità dipende dal disegno dei caratteri, a pari corpo, ma anche il funzionale, la metrica, con cui si misura l’affaticamento è una cosa difficile da stabilire, anche statisticamente. ammesso di aver definito una metrica che presenti un curva con un minimo (minimo affaticamento) se la curva è “regolare”, in prossimità del minimo presenta un andamento approssimabile con una parabola. OK, il minimo è lì, e il vertice della parabola è lì; ma quanto vale la concavità della parabola, se la concavità è bassa una tolleranza del 10% sull’affaticamento rispetto al minimo teorico implica una enorme tolleranza sul numero medio di caratteri, mentre se la concavità è alta quel 10% implica una tolleranza minima sul numero medio di caratteri.
Per quanto abbia studiato di tipografia e di book design non sono mai riuscito a trovare un disegno con un andamento non qualitativo dei una qualche misura dell’affaticamento; quindi la rigoa di Bringhurst (66±10 caratteri) la prendo come un buon consiglio non come un dogma. Ne segue che in pratica si può scegliere tranquillamente, a pari disegno della gabbia, un corpo predefinito di 10 o di 11 pt senza avere patemi d’animo. 🙂
::Uso Gedit perchè è TOTALMENTE e facilmente configurabile. Ad esempio TeXWorks e Scite non sono così elastici e potenti. Gedit 3 (insieme a evince) gestisce synctex
Di Scite non so nulla, ma di TeXworks sì; gestisce perfettamente synctex, anzi è il suo punto di forza per permettere la ricerca diretta e inversa con il suo ottimo visualizzatore PDF interno. Per me gedit è un giocattolo, fortemente personalizzabile e configurabile, ma non ha assolutamente la potenze e la completezza di TeXworks.
Poi come ti è stato detto, se sei incline ad un periodo di martirio iniziale, per poi avere soddisfazioni enormi, passa a emacs; ogni utente di Linux dovrebbe essere geneticamente incline ad usare emacs 🙂
::
Allora con i comandi primitivi di TeX tradizionale si ottengono cose strane, e il risultato è corretto ().00002) ma manca lo scalamnento fra punti e scaled points, cosa che ha scoperto da solo
con \dimexpr ti sei dimenticato di seguire le indicazioni che ti avevo dato, cioè di eseguire l’operazione a/c facendo a*b/c con b pari a un punto. Il codice
`\documentclass{article}\newdimen\numer
\newdimen\denom
\newdimen\quoz\newcount\Nnumer
\newcount\Ndenom
\newcount\Nquoz\makeatletter
\let\unpunto\p@\begin{document}
\numer=150pt
\denom=150pt\Nnumer=\numer \Ndenom\denom \Nquoz=\Nnumer
\divide\Nquoz by\Ndenom \quoz=\Nquoz\unpunto
\the \quoz\vspace{2\baselineskip}
\the\dimexpr\numer*\unpunto/\denom\relax% -> 0.00002pt invece di 1pt
\end{document}`
scritto volutamente in modo ridondante, mostra esattamente quello che succede; come vedi in entrambi i casi si moltiplica per \unpunto, ma nel caso di \dimexpr non si va in overflow, mentre se usi i vecchi comandi, devi stare attento ad eseguire la moltiplicazione sul risultato finale, perché potresti andare in overflow, non sul prodotto intermedio, e così facendo potresti perdere moltissima precisione.Ora il metodo di \dimexpr serve benissimo per scrivere macro in file .sty, dove non hai bisogno di eseguire l’equivalenza di \unpunto con \p@; l’operazione è velocissima perché viene eseguita dentro i registri della cpu; pdfmath risolve invece tutto quanto ricorrendo a macro, ai loro sviluppi e compagnia bella. I tempi di esecuzione di una operazione come questa potrebbero crescere a dismisura, ma anche moltiplicando per 1000 pochi nanosecondi, si ottengono pochi microsecondi, il che ai tempi nostri vuol dire tempi trascurabili; con macchine vecchiotte (io ho ancora un desktop che gira con un clock di 30MHz, non di 3GHz come le macchine moderne) la differenza si sente eccome!
Siccome tu usi macchine moderne, capisco che tu ti senta più a tuo agio con pgfmath, e l’aumento di cpu time per te sia trascurabile.
Ciao
Claudio
::
Spero che tu ti renda conto di quale tabella hai composto: Hai tre colonne di 67mm ciascuna che complessivamente, compreso lo spazio intercolonna ed esterno (complessivamente 3 volte 12pt, cioè circa 12mm) porta ad un totale di 212mm, più largo della carta UNI A4.Inoltre metti 11.97ex di spazio sotto ad ogni riga della cella e ci metti anche un filetto orizzontale, tipograficamante molto obbiettabile; ma quel che stupisce sono quei quasi 12ex di spazio fra una riga e la successiva; Primo: quanto vale un ex di spazio? dipende dla font, ma approssimativamente vale da 4.5pt a 5.5pt per font di copo normale; o se preferisci dal 45% al 55% del corpo del font in uso; dunque con il copro 10 e un font con un occhio mediano pun po’ più grande di quello dei font di default, diciamo 4.8pt, cioè 1.4mm, hai uno spazio fra le righe pari a circa 17mm, quasi due centimetri; sei sicuro? sicuro al 100% ?
Siccome hai 6 informazioni ti occorrerebbe una tabella di 6 colonne; hai pensato di usare l’ambiente tabulare tabularx e di definire le colonne con
`\begin{tabularx}{\textwidth}{*6X}`
in modo da mettere le sei informazioni sulla stessa riga?Puoi leggere la documentazione di tabularx dando nel terminale il comando in linea texdoc tabularx
::
Giusto per farmi un po’ di réclame, qui sopra nella sezione Documentazione c’è la sottosezione delle Guide tematiche; io ne ho scritta una sul disegno della pagina; visto che sei nuova, non leggere tutta la guida, ma leggi i primi pochi paragrafi dove si spiega perché e per come non si debbano in generale modificare i margini, in particolare non si debba aumentare o diminuire la lunghezza della riga di stampa rispetto alle tolleranze specificate dalle regole. Ci sono dei motivi seri dietro a queste cose; naturalmente conoscendoli, si può anche fare di testa propria, ma “violare” le regole va bene se lo si fa a ragion veduta per fare qualcosa di meglio (non di peggio) di quello che si potrebbe fare seguendo le regole.:smile:
::
Non è vero che \dimexpr divida solo per numeri interi, anzi esegue l’operazione a*b/c nell’ordine conservando il risultato parziale della moltiplicazione in un registro a 64 bit, per cui non ci sono pericoli di overflow, almeno nella moltiplicazione.Ma se devi calcolare il rapporto di due lunghezze a e c, metti usi per b la lungezza \p@ (che è una lunghezza di 1pt, e assegni il risultato di \dimexr a una dimensione. Credo di avere gia provato a metter \dimexpr come argomento di \the e mi pare di ricordare di non avere avuto bisogno di disturbare un registro temporaneo; mi pare di ricordare di aver eseguito cose del tipo [tt]\strip@pt\dimexpr a*b/c\relax[/tt] senza nessun problema. Il vantoggio è che tutte le operazioni eseguite da \dimexpr sono eseguite nei registri della cpu e non richiedono conversioni da e per cs di LaTeX.
Ricorda solo che \dimexpr arrotonda il risultato all’intero più vicino, mentre \divide semplicemente tronca, ma non è necessario ricorrere a \divide. Io lo facevo anni fa, quando le estensioni di eTeX non erano ancora incorporate dentro pdftex e xetex. luatex non ne ha bisogno perché sa fare i calcoli con lua. Avevo implementato con i comandi tradizionali di TeX la “long division” estraendo una cifra alla volta del quoziente, calcolando il resto, moltiplicando per 10 e ricominciando. Funzionava benissimo, ma ovviamente richiedeva di lavorare con gli scaled points e gestire il separatore decimale a parte. Tikz e pgfplots, con la loro libreria matematica non esistevano ancora…:wink:
::
Non essere così pessimista; io tra studente, assistente e professore ho passato 50 anni all’università; mi sono iscritto a ingegneria qualndo le uniche ingnerie disponibili erano civile e industriale. Sono passato attraverso 5 o 6 riforme e sono uscito con le prime riforme del nuovo ordinamento 3+2+3 del 1999, quando nel 2004 sono avvenuti i primi cambiamenti. L’università sopravviverà, eccome; sempre che non siano certi professori “leopardeschi (Il lepoardo di Tommasi di Lampedusa: “cambiare tutto per non cambiare niente”) che si oppongono a qualunque cosa e mettono i bastoni fra le ruote a tutti gli altri.Io sono ottimista, anche se mi rendo conto che alcuni cambiamenti potrebbero essere stati fatti diversamente o non fatti per niente; nella sostanza il 3+2+3 funziona benissimo dove lo si vuol far funzionare e le Scuole al posto delle Facoltà sono una realtà da decenni in quasi tutti gli altri paesi del mondo.
Comunque tutto ciò è chiaramente OT 🙂
::
Be’ se i punti interrogativi compaiono nel file sorgente, come pensi che pdfLaTeX possa indovinare che cosa ci sarebbe stato bene al posto del punto interrogativo.Purtroppo avendo fatto pasticci in precedenza, e non avendo salvato una copia di backup del file originale, ora ti tocca cercare un punto interrogativo alla volta e sostituirlo secondo il significato della parola, oppure di lascialo stare se era davvero un punto interrogatvo.
Peccato!
::
Penso che via via che la situazione degli statuti delle università italiani si adegua alla riforma approvata dal Parlamento quando la ministra sopra citata era in carica, Enrico dovrà adattare/modificare il pacchetto frontespizio alle future realtà, niente più facoltà, forse scuole, certamente dipartimenti, ma chi di noi ha conseguito la laurea decenni fa, oppure ha lavorato o sta lavorando nelle università dopo decenni di attività, farà fatica a rimettere a fuoco la situazione.Diciamo che oggi \Dipartimento è alternativo a \Facolta, domani forse bisognerà avere qualcosa come \Scuola.
::
\leavevmode vuol dire “leave vertical mode”, abbandona il modo di composizione verticale.Occhio e croce se \section funzionasse bene, non dovrebbe esserci nessun bisogno di \leavevmode; lo considererei un ottimo e semplice patch, ma …
L’importante è che ora la composizione è corretta le righe sono spaziate correttamente e numerate anche senza saltarne nessuna.
-
AutoreRisposte