Una classe per comporre un dizionario
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Una classe per comporre un dizionario
Claudio Beccari, Heinrich Fleck
Sommario della classe non sarebbe necessaria se non si fos-
sero voluti usare i font greci che con pdfLATEX
In questo articolo descriviamo la storia, lo sviluppo
sono gestiti attraverso il pacchetto teubner; que-
e le principali caratteristiche delle classi dictionary-
sto pacchetto però, non è ancora completamente
SCR e xdictionarySCR, che permettono di comporre,
compatibile con XELATEX. Per altro ora stiamo la-
rispettivamente con pdfLATEX e XELATEX, dizionari
vorando ad una unificazione delle due classi in una
tematici in una varietà di discipline.
sola, in modo che sappia gestirsi autonomamente
con entrambi i programmi di composizione.
Abstract Vale la pena di notare che le classi “inglesi” sono
In this article we describe the history, the devel- nate dalla originaria classe “italiana” e questo si
opment, and the most relevant characteristics of riflette nel fatto che tutti i comandi specifici delle
classes dictionarySCR and xdictionarySCR, that al- classi dictionarySCR e xdictionarySCR sono bilingui,
low to typeset, by means pdfLATEX and XELATEX come per esempio \vedilemma e \seeentry.
respectively, thematic dictionaries in a variety of Qui raccontiamo le nostre esperienze e mostria-
disciplines. mo alcune parti del codice. Lo scopo di questo
articolo è mostrare che cosa la classe sia capace di
fare. La classe non è ancora resa pubblica, perché
1 Premessa secondo noi è ancora al livello “alpha”, non ancora
Nel 2010 abbiamo presentato un articolo sui mark al livello “beta”. Può darsi che la classe e un “cam-
(Beccari e Fleck, 2010) (parola che non abbia- pione” del Dizionario compilato ma fornito assieme
mo voluto tradurre in italiano, perché ‘marca’ o al codice sorgente, vengano posti a disposizione
‘marchio’ non ci sembrano adeguati) che abbiamo dei soci del guIt, nella sezione dei “Template”, di
usato in diversi modi durante la creazione della cui si è parlato nei giorni in cui stavamo scrivendo
nostra classe dizionarioSCR, trovando poi finalmen- questo articolo.
te una soluzione quasi ottimale, secondo le nostre
necessità. 2 Specifiche richieste per la compi-
Nello stesso tempo il Dizionario di Astronomia 1 , lazione dizionario
per il quale la classe veniva preparata, ha comin-
ciato a circolare in bozza fra i cultori di questa Il nostro dizionario doveva essere composto su carta
scienza, ed è arrivato alle orecchie di un utente in formato A4, con una front matter composta a
che aveva bisogno di scrivere un dizionario sullo piena pagina, una main matter composta a due
scintoismo giapponese, settore disciplinare comple- colonne, e una back matter di nuovo composta a
tamente diverso dall’astronomia. Per adattare la piena pagina, in quanto avrebbe contenuto delle
classe alle sue esigenze, cioè di inserire nei lemmi grandi e lunghe tabelle contenenti degli estratti
in italiano anche delle brevi locuzioni in giappone- dai cataloghi di stelle. La bibliografia e l’indice
se, in cinese e in devanagari (sanscrito), abbiamo dei nomi degli astronomi e di vari altri personaggi
adattato la classe all’uso con XELATEX. Le classi storici, che avevano avuto importanza diretta o
in realtà erano due distinte per lavorare l’una con indiretta in astronomia, andavano messi nella parte
pdfLATEX e l’altra con XELATEX; il nome è cambia- finale del dizionario come ultimi elementi, entrambi
to in dictionarySCR, e finalmente è documentata (in composti di nuovo a due colonne.
inglese) con il file dictionarySCR.dtx. Per lavorare I lemmi del dizionario, ordinati alfabeticamente,
con XELATEX la classe si chiama xdictionary ed è sarebbero stati contenuti in apposite sezioni, al
documentata nel file xdictionary.dtx. Le due classi livello dei capitoli, il cui titolo consistesse nell’ini-
sono quasi identiche; le differenze riguardano solo il ziale corrispondente. Tale lettera sarebbe dovuta
diverso trattamento delle lingue, (con il pacchetto apparire anche in ogni pagina del “capitolo” come
babel con pdfLATEX e con polyglossia in XELATEX), /emphunghia2 posta nel margine esterno sia sulle
e il trattamento dei font (Type 1 con pdfLATEX pagine di destra sia su quelle di sinistra.
e OpenType con XELATEX). Questa duplicazione 2. In certi dizionari, in molte Bibbie, spessissimo in quel
tipo di libretto che chiamiamo “rubrica”, dove il materiale
1. Questo Dizionario di Astronomia non è ancora stato è separato secondo la lettera iniziale oppure secondo i nomi
pubblicato, anche perché non è ancora finito; Heinrich Fleck abbreviati convenzionali dei Libri Sacri, queste informazioni
lo ha cominciato nel 2009 e da allora vi sta lavorando vengono stampate nel margine esterno delle pagine di destra;
sopra più per sua passione che per il desiderio di vederlo spesso le pagine precedenti hanno un intaglio semicircolare
pubblicato. Chissà, forse in futuro. . . in modo che il simbolo della lettera o del Libro Sacro appaia
31Claudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
Siccome il dizionario avrebbe finito per esse- mostrate molte delle caratteristiche descritte in
re consultato prevalentemente come documento questo paragrafo.
PDF direttamente sullo schermo, abbiamo ritenu- In particolare si osserva la posizione dell’unghia,
to opportuno realizzare i riferimenti incrociati dei una figura a piena pagina e due figure in colonna
lemmi mediante collegamenti ipertestuali. Usare con la didascalia sopra o sotto a seconda della
il pacchetto hyperref implica assoggettarsi alle sue scelta del compositore; si vede un medaglione a due
idiosincrasie, perfettamente giustificate quando se colonne una delle quali è scritta in greco classico,
ne conosca il meccanismo interno, ma talvolta un mentre l’altra contiene la traduzione. Le testatine
poco fastidiose; fra queste idiosincrasie c’è quella contengono i nomi dei lemmi in vigore all’inizio
che tutto ciò che deve venire collegato in modo della colonna di sinistra e alla fine della colonna di
ipertestuale deve essere identificato in modo univo- destra, con il numero della pagina al centro. Questa
co, ovviamente, e hyperref risolve questo problema particolare coppia di pagine non contiene equazioni,
usando i numeri degli oggetti che il compilatore ha ma contiene una piccola tabella a sfondo colorato
assegnato loro anche se questo numero non com- alla fine della seconda colonna della seconda pagina;
pare nel documento finale; per esempio: la terza contiene riferimenti ipertestuali ad altri lemmi che,
equazione (numerata) che compare nel trecento- nella versione originale, hanno i testi cliccabili per
quindicesimo lemma (il cui numero non appare) spostare la visione sul lemma citato e sono colorati
della sezione ‘C ’ riceve dal programma di compi- di rosso; nella stampa in bianco e nero appaiono
lazione l’identificativo univoco ‘C.315.3’ e questa in grigio chiaro.
stringa, oltre ad altre informazioni, viene usata Invece nello spread della pagina 36 si possono
da hyperref per costruire l’ancora e il bersaglio osservare sia una tabella sporgente e con lo sfon-
(anchor e target) dei riferimenti ipertestuali. I co- do colorato, sia, nella voce “atlante”, dei titolini
mandi \label, \ref e \pageref (oltre a quelli marcati mediante un triangolo nero con la punta
definiti dal pacchetto varioref il cui funzionamen- a destra; all’inizio della voce “atlante” c’è anche il
to, però, non è affidabile come quello dei comandi mini indice relativo a questo lemma, ma siccome
originali di LATEX) vengono ridefiniti da hyperref la sua descrizione occupa diverse pagine affaccia-
in modo da contenere e interpretare anche le in- te, non lo si è riportato completamente per ovvi
formazioni accessorie necessarie per la costruzione motivi di economia di spazio.
corretta delle ancore e dei bersagli.
Le figure e certe tabelle possono avere delle dida- 3 Soluzioni trovate
scalie senza un numero visibile, ma debbono avere
un’ancora univoca legata al numero invisibile del Dopo diverse prove abbiamo trovato che la clas-
lemma a cui si riferiscono. Le didascalie delle figure se più adatta su cui costruire la classe dictionary-
sono collocate sopra o sotto la figura a seconda SCR era la classe scrbook della collezione Koma
della scelta del compositore; l’idea è che se una Script. Abbiamo provato anche la classe standard
figura o una tabella compare in testa ad una colon- book, che avrebbe però richiesto un lavoro maggio-
na, deve o dovrebbe avere la didascalia di sopra, re, e la classe memoir (Wilson, 2011), altamente
mentre se cade alla base della colonna la didascalia configurabile, ma con le sue rigidezze.3
dovrebbe apparire sotto l’oggetto. La collezione delle classi Koma Script (Kohm e
Abbiamo previsto anche che alcune tabelle, più Morawski, 2012) dispone di un comodo coman-
larghe di una colonna, ma non tanto larghe da ri- do \areaset con il quale è possibile stabilire o
chiedere uno spazio a piena pagina, possano esten- modificare la geometria dello specchio di stampa
dersi nel margine esterno; perciò abbiamo dovuto con facilità. Quindi non è stato difficile creare le
ideare un meccanismo per scoprire se la figura si geometrie per le pagine iniziali, intermedie e finali,
trova nel punto giusto e si estenda nel margine giu- che si è rivelata un’operazione di routine.
sto. Visto che il testo è a due colonne, nelle pagine
di sinistra la tabella in questione può estendersi 3.1 I titoli dei capitoli, i mark e le unghie
solo a sinistra e quindi essere nella colonna di sini- Più delicata è stata l’operazione di comporre l’un-
stra, mentre nelle pagine di destra deve succedere ghia con la lettera iniziale del gruppo di lemmi;
il contrario. questo ha richiesto la ridefinizione del comando
Le figure delle pagine 33 e 36 mostrano due esem- \@chapter con il quale viene effettivamente com-
pi di pagine affacciate del dizionario in cui vengono posto il titolo del capitolo, affinché non scriva il nu-
anche a libro chiuso. Evidentemente questo tipo di informa- 3. Tra le altre cose volevamo usare la procedura fornita
zioni serve per trovare l’inizio della sezione che interessa, dal pacchetto imakeidx (Beccari e Gregorio, 2012) per
senza bisogno di consultare un indice; la forma dell’intaglio comporre l’indice dei nomi sempre in modo sincrono con
ricorda quello di un’unghia e per traslato si chiama così la compilazione del dizionario, e a quel tempo la classe
non solo l’intaglio, ma anche il segno che l’intaglio lascia memoir e il pacchetto imakeidx erano ancora incompatibili;
apparire; il segno conserva il nome di unghia anche se l’in- ora imakeidx contiene il necessario per lavorare anche con
taglio manca. In inglese la parola thumbnail indica lo stesso memoir, ma ormai siamo troppo avanti per ricominciare
concetto, e addirittura fa riferimento all’unghia del pollice. daccapo ed adattare la nostra classe all’uso di memoir.
32A Archimede di Siracusa 48 Archimede di Siracusa Archimede di Siracusa 49 archipendolo A
Palinsesto di Archimede: a destra il palinsesto, a sinistra la parte di testo evidenziata nel rettangolo rosso sovrascritta dalle preghiere; Walters che nell’antichità dovette godere di notevole popolarità tanto che Archimetro
Art Museum di Baltimora
L L
se ne ha un’eco in Catullo ed Orazio (anche se quest’ultimo la
accredita ad Archita), è l’unica d’Archimede che tratti questioni
astronomiche.
Muovendo dalla concezione avanzata da Aristarco in cui questi,
in un’opera andata perduta, presentava come ipotesi un modello
eliocentrico, argomentando dalle teorie dell’astronomo di Samo,
Archimede comprende come un simile modello comporti un
ridefinizione della struttura e delle dimensioni dell’universo (la
sfera) come era allora conosciuto, e per conseguenza la necessità
di esprimersi in grandezze del tutto fuori dal comune.
L’astronomia è infatti solo uno spunto per svolgere il discorso
sui grandi numeri. Sotto questo aspetto l’Arenario assomiglia
un poco al Problema dei buoi che non ha a↵atto una finalità
ludica, ma fondamentalmente matematica, trattandosi anche in
questo caso di grandi numeri.
Archimede non contesta la validità o meno del modello di Ari-
ArsTEXnica Nº 14, Ottobre 2012
starco, contesta che questi nella sua ipotesi consideri la Terra
puntiforme (. . . il centro della sfera non ha alcuna dimensione e
non è possibile ritenere che esso abbia alcun rapporto rispetto
alla superficie della sfera), e il suo è più che altro un discorso diametro dell’universo ed il volume, rispettivamente, in 1014 ed
di formalismo matematico. in 1042 ; per cui la quantità di granelli sarebbe 1042 ⇥ 1021 e cioè
L’esigenza è in via prioritaria quella di concepire ed esprime- 1063 . Archimede non si ferma qui. Costruisce numeri sempre più
re grandi numeri utilizzando l’antico sistema di numerazione grandi che poi riduce ad unità di ordini superiori e poi gli ordini
greca che scriveva i numeri con lettere e non conosceva lo 0, li riunisce in periodi sino a raggiungere alla miriade di miriadi
circostanza questa che rende la lettura delle opere di Archimede di miriadi del miriadesimo ordine della miriade del miriadesimo
come di altri autori del periodo greco ed ellenistico particolar- periodo e cioè 1080.000.000.000.000.000 e cioè 100 000 000 ⇥ 1 seguito
mente ardua, giacché non solo i numeri, ma anche le frazioni e da 800 000 000 zeri.
le equazioni sono espresse in modo del tutto diverso da come
siamo abituati oggi a scriverle ed usarle: ⇡ astronomia greca. Archimedes, cratere Cratere lunare di notevole estensione
(83 km) situato al limite orientale del Mare Imbrium. A sud
La precisazione costituisce la chiave di volta di lettura dell’ope-
del cratere di estende la catena dei Montes Archimedes per
ra, perché ad ammettere la scrittura secondo il nostro sistema
circa 150 km. è privo del picco centrale.
numerico-decimale, il problema perderebbe gran parte della
33
sua rilevanza. Questa difficoltà si rinviene nelle prime righe
archimetro Strumento inventato e descritto da G. B. Aleotti,
dell’Arenario (vedi riquadro a fronte), ed il ricordato libro in-
architetto fra i più rilevanti a cavallo fra il Cinquecento e il
dirizzato a Zeusippo poteva anch’esso trattare forse anche dei
Seicento italiano. Era composto di una tavoletta triangolare con
O Ïntai tinËc, basile‹ GËlwn, to‹ yàmmon t‰n Çrijm‰n Vi sono alcuni, o re Gelone, che stimano il numero [dei gra- calcoli oltre che dei grandi numeri.
nelli] d’arena una quantità infinita, e non mi riferisco soltanto varie scale di misura. Montato su un supporto e fornito di una
äpeiron e⁄men tƒ pl†jei; lËgw d‡ oŒ mÏnon to‹ per» Sura- Fine di Archimede è rappresentare un numero che (per quanto
a quelli [dei granelli d’arena] che stanno attorno a Siracusa ⇡ diottra, permetteva di traguardare oggetti lontani.
ko‘sac te ka» tÄn ällan Sikel–an Õpàrqontoc, ÇllÄ ka» grande) sia tuttavia nelle possibilità d’intelligenza della mente
o nel resto della Sicilia, ma anche a quelli [dei granelli d’a-
to‹ katÄ pêsan q∏ran tàn te o khmËnan ka» tÄn Ço»khton. rena] che stanno in qualsiasi altro posto del mondo abitato umana (. . . con dimostrazioni geometriche che potrai seguire col
archipendolo Strumento per controllare la perfetta orizzon-
‚nt– tinec dË, oÀ aŒt‰n äpeiron m‡n e⁄men oŒq Õpolambànonti, o disabitato. Altri ancora ritengono che pur non essendo pensiero. . . ), dominare il mondo fisico tramite la matematica,
talità di un piano. Era composto di due regoli incernierati dal
mhdËna mËntoi taliko‹ton katwnomasmËnon Õpàrqein, Ìstic tale numero infinito, non se ne possa comunque dare uno dimostrare che è possibile immaginare e scrivere un numero più
cui centro pendeva il filo a piombo. Un arco graduato con lo O
Õperbàllei t‰ pl®joc aŒtoÃ. o… d‡ o’twc doxazÏntec d®lon maggiore. Se quelli che così pensano immaginassero un grande del numero dei granelli d’arena che potrebbero essere
al centro indicava i gradi eventuali di disallineamento.
±c e no†saien ‚k to‹ yàmmon taliko‹ton Ógkon sugke–me- globo d’arena eguale a quello della Terra, tale che anche le contenuti nell’universo: Archimede non confuta né abbraccia
non tÄ m‡n älla, Ål–koc Ê têc gêc Ógkoc, ÇnapeplhrwmË- caverne e gli abissi del mare di questa ne fossero riempiti, le proposizioni di Aristarco, considera soltanto le dimensioni
e che si estendesse sino alle cime delle più alte montagne,
nwn d‡ ‚n aŒtƒ t¿n te pelagËwn pàntwn ka» t¿n koilw- dell’universo adottando nuovi simboli per numeri più grandi.
ciò nonostante non si persuaderebbero ancora dell’esistenza
màtwn têc gêc e c “son ’yoc toÿc Õyhlotàtoic t¿n ÊrËwn, di un numero che superasse la grandezza di questi [granelli Dopo aver descritto il metodo di numerazione, Archimede dimo-
pollaplas–wc mò gnwsÏntai mhdËna ka ˚hj†men ÇrijmÏn d’arena]. Tuttavia, con dimostrazioni geometriche che potrai stra un teorema sulle proporzioni (che grosso modo esprime la
Õperbàllonta t‰ pl®joc aŒto‹. ‚g∞ d‡ peiraso‘mai toi seguire col pensiero, intendo mostrarti che fra i numeri da eguaglianza 10n ⇥ 10m = 10n+m che a molti ha fatto credere che
deikn‘ein di’ Çpodeix–wn geometrikên, aŸc parakolouj†seic, noi denominati nel libro indirizzato a Zeusippo, ve ne sono fosse ad un passo dall’ideazione dei logaritmi), e passa quindi
Ìti t¿n Õf’ Åm¿n katwnomasmËnwn Çrijm∞n ka» ‚ndedomË- alcuni che non solo eccedono il numero [dei granelli] d’arena al problema dei granelli di sabbia vero e proprio.
nwn ‚n toÿc pot» Ze‘xippon gegrammËnoic Õperbàllont– ti- di un volume eguale a quello della Terra quando questa ne
fosse colma, ma anche quello [dei granelli d’arena] contenuti Non riporto qui tutti i passaggi che svolge Archimede che ri-
nec oŒ mÏnon t‰n Çrijm‰n to‹ yàmmou to‹ mËgejoc Íqontoc in un globo della stessa grandezza del cosmo. chiederebbero una trattazione a parte, ricordo soltanto che la
“son tî gî peplhrwmËn¯, kajàper e“pamec, ÇllÄ ka» t‰n miriade di miriadi (108 ) è considerata l’unità del suo sistema di
to‹ mËgejoc “son Íqontoc tƒ kÏsm˙. YAMMITHS (ARENARIUS), [11][II, pagg. 242 - 244, 1 - 4] numerazione, e che chiama numeri primi (ma con significato
diverso dal nostro) quelli che vanno da 1 a 108 , numeri secondi
ne un metodo ideato per la misura del diametro apparente del quelli che vanno da 108 a 108 ⇥ 108 (1016 ), numeri terzi quelli
Sole,4 e forse anche questa tecnica confluì in un’opera. L’opera vertice del triangolo sull’occhio, trovò una misura angolare compresa che vanno da 1016 a 108 ⇥ 108 ⇥ 108 (1024 ), e prosegue così con
fra i corrispondenti 270 e 320 5600 , assai vicina all’attuale compresa fra numeri quarti, numeri quinti,. . . fino a che l’ordine non diventa
i 310 e i 320 . la miriade di miriadi.
4. Osservando l’astro al sorgere, Archimede pose su un’asta un cilindro Nell’opera è anche riportata la misura del rapporto fra le dimensioni del l f mld anni d h h/d
che poteva scorrere lungo questa, in modo che posto il cilindro fra l’oc- Sole e della Luna: 30 volte quello del satellite; ed anche se la misura
Archimede poi costruisce una sfera immaginaria con il dia-
metro uguale alla presunta distanza terra-Sole ed ipotizza una 4 W 27 7’ N 3,8 - 3,2 83 km 2,15 km 0,0259
chio e il Sole fosse possibile (avvicinandolo e allontanandolo) o vedere è errata, è tuttavia più vicina al vero di quella di Eudosso (9), di Fidia
solo una debole luce ai lati del solido o nascondere completamente il (12), di Aristarco (fra 18 e 20). A queste misure sono dedicate molte proporzione fra diametroTerra/diametroSfera e diametroSfe-
Sole. Misurati i due angoli sottesi dalle diverse posizioni del cilindro con pagine dell’opera. ra/diametroUniverso (la sfera delle stelle fisse), calcolando il K Dati del cratere Archimedes
Una classe per comporre un dizionarioClaudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
mero ma nello stesso tempo definisca il significato si è usato \put per collocare l’unghia nel punto
del comando \unghia: preciso della pagina in cui si desidera che appaia.
Naturalmente questa ridefinizione delle testatine
1 \newcommand*\unghia{} non serve solo per collocare l’unghia, ma anche
2 per mettere i mark giusti nella testatina; questa
3 \def\@chapter[#1]#2{% deve contenere un mark a sinistra, il numero della
4 \ifnum \c@secnumdepth >\m@ne pagina al centro e l’altro mark a destra: a sinistra
5 \if@mainmatter il titolo della prima voce della colonna di sinistra o
6 \refstepcounter{chapter}% della voce che è ancora in vigore all’inizio di quella
7 \typeout{\@chapapp\space colonna, mentre a destra il titolo della voce la cui
8 \thechapter.}% descrizione è in vigore alla fine della colonna di
9 \addcontentsline{toc}{chapter}{#1}% destra5 . È noto, però, che nella composizione a
10 \fi due colonne, la routine di uscita non gestisce bene
11 \fi i mark e, per ovviare, è necessario apportare una
12 \chaptermark{}% modifica ai comandi interni di LATEX, fornita dal
13 \if@twocolumn pacchetto fixltx2e. Nel caso del dizionario non basta;
14 \if@at@twocolumn mentre il \leftmark è risultato sempre corretto, il
15 \@makechapterhead{#2}% \rightmark non lo è stato sempre; per correggere
16 \else questo difetto abbiamo dovuto definire il comando
17 \@topnewpage[% \getcorrectrightmark come appare nel codice
18 \@makechapterhead{#2}]% che segue. Per questo la definizione dei comandi
19 \fi \getcorrectrightmark e \ps@dizionario6 , sono
20 \else stati definiti nel modo seguente:
21 \@makechapterhead{#2}%
22 \@afterheading 1 \newcommand*\getcorrectrightmark{%
23 \fi 2 \let\protect\noexpand
24 \label{chap:#1}% 3 \edef\@tempA
25 \def\unghia{#1}% 4 {\expandafter\@leftmark\topmark
26 } 5 \@empty\@empty}%
6 \edef\@tempB
Nel codice precedente la maggior parte delle ri- 7 {\expandafter\@leftmark\botmark
ghe sono repliche inalterate del comando interno 8 \@empty\@empty}%
della classe scrbook; le poche, ma essenziali mo- 9 \let\protect\relax
difiche riguardano la riga 12, dove il commando 10 \ifx\@tempA\@tempB\leftmark
\chaptermark, che serve normalmente per scrive- 11 \else\rightmark\fi}
re nella testatina di sinistra il titolo del capitolo, 12 %
non produce nessun testo per la testatina a cui 13 % nuovo stile di pagina «diziaonario»
penseranno i comandi per inserire i lemmi. Invece 14 %
le righe 24 e 25 sono state aggiunte; il comando 15 \def\ps@dizionario{%
\label serve per attribuire una etichetta di default 16 \let\@mkboth\@gobbletwo
ad ogni capitolo; l’etichetta è formata dalla stringa 17 \let\chaptermark\@gobble
chap: agglutinata alla lettera iniziale (maiuscola) 18 \let\sectionmark\@gobble
del lemmi di quel capitolo. Il successivo comando 19 \def\@oddhead{%
definisce il contenuto dell’unghia, di quella lettera 20 \underline{\makebox[\textwidth]{\strut
nel margine esterno che aiuta a vedere subito in 21 \bfseries\makebox[\z@][l]{%
quale sezione di lemmi ci si trovi4 . Tutti gli altri 22 \getcorrectrightmark}\hfill
comandi un po’ criptici non meritano una spiega- 23 \thepage\hfill\makebox[\z@][r]{%
zione che, per altro, si trova nei file .dtx di quasi 24 \leftmark}%
tutte le classi, nel nostro caso della classe scrbook. 25 \begin{picture}(0,0)%
Questo, però, non basta; bisogna anche definire 26 \put(20,-2){\makebox(0,0)[lb]{%
le testatine affinché usino correttamente l’infor- 27 \HUGE\sffamily\mdseries\unghia}}%
mazione contenuta in \unghia. A questo scopo 28 \end{picture}}}}%
abbiamo ridefinito il comando che definisce lo stile 29 \def\@evenhead{%
headings, cambiandogli anche il nome, per usare 5. Nel manuale della classe memoir, così come nelle docu-
la testatina come punto di riferimento fisso a cui mentazioni di altri pacchetti e classi, per il mark di sinistra
agganciare la posizione dell’unghia da collocare viene normalmente indicato di scrivere il nome del primo
per mezzo dei comandi dell’ambiente picture; si è lemma che cade nella pagina; secondo noi questo non è
corretto, specialmente in presenza di lemmi lunghi
usato un ambiente picture di dimensioni nulle e poi 6. Questo è lo stile di pagina, simile allo stile headings,
adattato alle necessità del dizionario; ne abbiamo creato
4. Si veda la nota 2. anche l’alias in inglese, dictionary.
34ArsTEXnica Nº 14, Ottobre 2012 Una classe per comporre un dizionario
30 \underline{\makebox[\textwidth]{% la parte finale bisogna provvedere ridefinendo i
31 \begin{picture}(0,0)% comandi \mainmatter e \backmatter:
32 \put(-20,-2){\makebox(0,0)[rb]{%
33 \HUGE\sffamily\mdseries\unghia}}% 1 \renewcommand*\mainmatter{%
34 \end{picture}% 2 \if@twoside\cleardoubleoddpage
35 \strut\bfseries\makebox[\z@][l]{% 3 \else\clearpage\fi
36 \getcorrectrightmark}\hfill\thepage 4 \@mainmattertrue\pagenumbering{arabic}%
37 \hfill\makebox[\z@][r]{\leftmark}}}}% 5 \pagestyle{dictionary}%
38 \def\@oddfoot{}% 6 \renewcommand*\chapterpagestyle
39 \def\@evenfoot{}% 7 {dictionary}%
40 }
8 \twocolumn
9 }
41 % Lo stile della pagina può essere
10 \renewcommand*\backmatter{%
42 % chiamato indifferentemente dictionary
43 % o dizionario
11 \if@openright\cleardoubleoddpage
44 \let\ps@dictionary\ps@dizionario
12 \else\clearpage\fi\@mainmatterfalse
13 \pagestyle{headings}
La definizione di \getcorrectrightmark recupera 14 \renewcommand*\chapterpagestyle{plain}
i contenuti di sinistra dei mark chiamati \topmark 15 }
e \botmark e li confronta; lavorare con i mark
è complesso, ma la spiegazione completa appare 3.2 I lemmi
nel nostro precedente articolo (Beccari e Fleck, I lemmi sono trattati come paragrafi da introdurre
2010) e vi si rinvia il lettore. Lo scopo di questo con l’equivalente di un comando \section e sono
confronto è appunto quello di usare per il mark di quindi numerati, anche se il numero corrispondente
sinistra il contenuto della voce in vigore all’inizio non sarà visibile.
della colonna di sinistra di ciascuna pagina, e non Particolare attenzione, inoltre, richiedono quei
quello della prima voce che compare nella colonna lemmi che, come spesso accade, contengono termini
di sinistra. con diacritici, o traslitterati nell’alfabeto latino da
Nella definizione dello stile di pagina (il cui no- altri alfabeti, o scritti direttamente con un alfabeto
me inglese page style giustifica il prefisso ps@ nel diverso da quello latino. Infatti, il pacchetto hyper-
nome della macro che definisce ogni stile di pagina) ref non permette di gestire agevolmente i caratteri
si noti che in entrambe le testatine (\@oddhead la speciali richiesti e quindi il compositore (l’uten-
testatina delle pagine dispari e \@evenhead per le te) deve provvedere un titolo alternativo privo di
pagine pari) i mark sono collocati dentro scatole diacritici e scritto con l’alfabeto latino. In altre
di larghezza nulla (righe 21, 23 e 35, 37 del codi- parole il titolo alternativo deve essere scritto con i
ce), affinché il numero della pagina resti sempre caratteri ASCII a 7 bit, indipendenti da qualsiasi
al centro della testatina e non si sposti a destra codifica di ingresso: tale titolo alternativo viene
o a sinistra a seconda della lunghezza del testo specificato nell’argomento opzionale del comando
dei mark. Probabilmente questo stesso risultato \lemma; per esempio il lemma relativo a Ångstrøm
si sarebbe ottenuto usando il pacchetto fancyhdr Anders Jonas, va introdotto con:
(van Oostrum, 2004), ma avevamo già risolto il
problema da soli. \lemma[Angstrom Anders Jonas]%
Nella parte di sinistra delle testatine delle pa- {Ångstrøm Anders Jonas}
gine pari e, viceversa, nella parte di destra delle
Inoltre per fare riferimento a un lemma, visto che
testatine delle pagine dispari, compare l’apertu-
non si può fare riferimento ad un numero, bisogna
ra e la chiusura dell’ambiente picure che definisce
definire un comando \vedilemma che eventualmen-
un disegno di dimensioni nulle; è vero che questo
te faccia riferimento al nome senza diacritici, e in
ambiente è poco alla moda, ma è l’ambiente grafi-
ogni caso produca un testo cliccabile che contenga
co nativo di LATEX che permette di fare in modo
il nome con diacritici. Perciò per i comandi \lemma
semplicissimo operazioni utili, come quella qui ese-
e \vedilemma sono necessarie diverse impostazioni
guita di mettere l’unghia fuori della testatina vera
e ridefinizioni dei comandi interni di scrbook:
e propria, nel margine esterno, in una posizione
fissa di 20 punti verso l’esterno e ribassata di 2 1 \newlength\abovesectionskip
punti rispetto alla linea di base della testatina; in 2 \abovesectionskip=3.5ex \@plus 1ex
sostanza la la lettera che costituisce l’unghia viene 3 \@minus .2ex
collocata dove si vuole senza che il disegno che la 4 \newlength\belowsectionskip
“contiene” che è di dimensioni nulle, occupi spazio 5 \belowsectionskip=2.3ex \@plus.2ex
nella testatina stessa. 6
Di conseguenza mentre lo stile delle pagine per 7 \renewcommand\section{%
la parte iniziale rimane quello definito dalla classe 8 \@startsection{section}{1}{\z@}%
di supporto scrbook, per la parte intermedia e per 9 {-\abovesectionskip}%
35A atlante 34 atlante atlante 35 ATT A
quindi rovesciate, mentre Flamsteed le raffigura correttamente
L Bootes nell’atlante di Hevelius (sinistra) ed in quello di Flamsteed (destra). Hevelius, disegnò le costellazione con la tecnica viste dall’esterno, L Compilatori dei principali atlanti dall’antichità al secolo XX e luogo di edizione
Autore Atlante Anno
Abd ar-Rahman as-Sufi Liber locis stellarum fixarum ?, 964
P. Apianus Astronomicum Caesareum Ingolstadt, 1540
A. Piccolomini De le stelle fisse Venezia, 1570
G. Gallucci Theatrum mundi et temporis Venezia, 1588
J. Bayer uranometria Augusta, 1603
A. Cellario Atlas coelestis seu Armonia macrocosmica Amsterdam, 1603
J. Schiller Coelum Stellarum Christianum Augusta, 1627
J. Hevelius Uranographia Danzica, 1690
J. G. Doppelmayr Atlas coelestis Norimberga, 1742
J. Flamsteed Atlas coelestis Londra, 1753
Diderot et d’Alembert recuil de planches de astronomie 1789 Parigi
J. E. Bode Vorstellung der gestirne Berlino, 1782
F. N. Konig Himmels Atlas Berna, 1826
F. W. A. Argelander Uranometria nova Berlino, 1843
J. J. von Littrow Atlas des gestirnten himmels Stoccarsa, 1854
K. Bruhns Atlas der Astronomie Lipsia, 1872
C. Dien, C. Flamamrion Atlas céleste Parigi, 1877
Claudio Beccari, Heinrich Fleck
E. Delporte Délimitation scientifique des constellations, cartes Londra, 1930
A. Bečvář Atlas Coeli Skalnaté Pleso Praga, 1956
Per quanto d’impostazione tolemaica, l’atlante è sorprendente- Trattando gli atlanti va inoltre ricordato che la cartografia celeste l’emisfero boreale, la → Palomar Sky Survey, in un tempo vera-
mente moderno. Ai bordi e al centro delle tavole Gallucci riporta non si è occupata soltantanto di costellazioni, ma ha riservato
L Stelle della costellazione di Auriga
mente breve: dal 1949 al 1951. La Palomar Survey è consultabi-
le coordinate di latitudine e longitudine tratte dal De Revolutio- una parte rilevante alla selenografia, ed anche questi atlanti le all’indirizzo http://stdatu.stsci.edu/cgi-bin/dss_
nibus di Copernico, cui sono riferite con precisione le posizioni hanno segnato un momento essenziale affinando la capacità di Nome AR δ mv ma ts al
form.
delle stelle suddivise in magnitudini. rappresentare particolari di un corpo relativamente vicino. L’atlante di tutto il cielo (boreale e australe) fu completato negli α Capella 05 17 +46 00 0,0039 0,0094 0,0088 0,0021
Le singole stelle sono ancora presenti in tabelle con indicate le Si precisa che molti degli atlanti qui trascurati risultano trattati β Menkalinan 06 00 +44 57 0,075 0,013 0,17
anni settanta grazie alla collaborazione fra l’osservatorio anglo- Θθη 0,031 0,31 0,0046 0,80 0,12 0,23
coordinate ed il numero progressivo dell’astro, la magnitudine ai singoli lemmi relativi ai vari cartografi e a quelli relativi allo australiano di Siding Spring e quello dell’ESO a La Silla, che Aql 82 0,01 0,02 0,18 0,03 0,40 0,15
e la natura astrologica, e sono anche presenti oggetti di natura studio di un corpo celeste. dettero vita all’ESO-SRC Sky Atlas. Dq Her 0,34 0,095 0,45 0,23 0,29 –
non stellare. L’invenzione del telescopio e la maggiore ricchezza di parti-
Gli ultimi atlanti redatti a mano sono stati l’Atlas coeli, compila-
Da qui in poi la produzione si farà continua e citare gli atlanti colari ed oggetti che lo strumento permetteva, rivoluzionò la
to negli anni cinquanta del secolo scorso da A. Bečvář, in 16(?) Gli atlanti oggi si producono in tempo reale dai data-base foto-
diverrebbe un compito arduo. Ci si limita a quelli che credo cartografia celeste.
carte con stelle sino alla magnitudine 7,5, e l’atlante in 43 carte grafici digitalizzati e dai cataloghi, per zone di cielo anche di
siano più significativi, ma le omissioni sono davvero numerose. Ormai si poteva guardare più lontano, ma si disponeva di tanti
compilato dello stesso periodo da G. B. Lacchini che riporta pochi secondi d’arco, personalizzandoli secondo necessità.
Nel 1687 J. Hevelius pubblica il Firmamentum Sobiescianum piccoli campi, quelli che l’obiettivo e la focale del telescopio
36
le stelle visibili, le doppie, le variabili le novae, gli ammassi,
sive Uranografia, un’opera in 56 tavole, nel 1753 J. Flamsteed consentivano, e cominciarono a nascere i nuovi cataloghi stellari In rete sono disponibili oltre a cartografie professionali come
le nebolose e gli spettri sino alla 5a magnitudine. Entrambe gli
l’Atlas coelestis, nel 1782 J. E. Bode il Vorstellung der gestirne, da cui poi estrarre gli atlanti di zone del cielo. la citata Palomar Survey o la Sloan Digital Sky Survey, anche
atlanti sono compilati con riferimento all’equinozio 1950.
un atlante a colori, e così via. cartografie di tutto rispetto redatte da non professionisti, come,
Negli anni sessanta lo Smithsonian Astrophysical Observatory
Da questa breve rassegna manca tuttavia un atlante dei primni di passare dagli atlanti redatti con stime e osservazioni visuali a ad esempio, il TRIATLAS, che ha raggiunto la seconda edizione
Cartografia fotografica. Quando le tecniche consentirono
ha estratto per la prima volta in via automatica dal database del
anni del secolo XVII cui si è inteso dedicare un posto privilegia- quelli basati sulla tecnica fotografica, il pioniere di questa nuova e raccoglie stelle sino alla 13a magnitudine.
SAO (→ catalogo astronomico) un atlante in 152 carte di grande
to, l’Uranometria: compilata nel 1603 da J. Bayer va considerata via fu D. Gill dell’osservario di Città del Capo, che colpito Da segnalare ancora l’atlante all’indirizzo www-wikisky.org.
formato accompagnato dal relativo omonimo catalogo.
il primo vero atlante stellare dell’era moderna. dal numero delle stelle fotografate durante il passaggio di una
cometa, decise di dare il via ad una cartografia fotografica per L’atlante comprende stelle sino alla magnitudine 9,5 ed ha una
Adottando una tecnica tuttora in uso, Bayer assegnò ad ogni Atlantidi . Antico nome con cui era conosciuta la costellazio-
l’emisfero australe. scala di 8,6 mm per grado.
stella secondo il proprio splendore apparente, una lettera dell’al- ne delle Pleiadi.
Nacque così la Cape Photographic Durchmusterung, un atlante Nel 1987 W. Trion, un appassionato d’astronomia che già ne-
fabeto greco: le stelle più brillanti erano individuate dalla lettera
in 613 carte con stelle sino alla decima magnitudine. gli anni cinquanta aveva realizzato lo Sky Atlas 2000, compilò
α , cui seguiva la β , la γ e così via dino alla ζ , Atlas Satellite di Saturno
Nel 1887 prese il via l’ambizioso progetto di redazione della l’Uranometria 2000,
Per quanto innovativo quest’atlante è comunque l’ultimo redatto
esclusivamente con le tecniche antiche, e segna anche la fine → Carte du Ciel, di cui D. Gill fu uno degli ispiratori principali, L’atlante comprende gli oggetti dei due emisferi, si estende
sino alle stelle di magnitudine 9,5 con una scala di 18 mm per Atlas (coeli), (eclipticalis), (boralis), (australis) Atlanti
dell’astronomia osservativa esclusivamente coi quadranti. Di lì e che procedette asai lentamente.
grado, e i corpi celesti sono evidenziati secondo le caratteristiche. pubblicati negli anni cinquanto dall’astronomo cecoslovacco
a pochi anni si diffonderà il cannocchiale, e nuove prospettive si E mentre assai lentamente si si attendeva alla Carte du Ciel,
ammassi, nebulose, radiosorgenti,. . . → A. Bečvář.
apriranno finalmente alla cartografie dall’epoca di Tolomeo. un atlante fotografico per i due emisferi, le → Frankin-Adams
In chiusura un cenno merita il Sarna Deep Sky Atlas, un atlante L’Atlas Coelestis contiene stelle sino alla magnitudine 7,5 sud-
Una rassegna di atlanti è riportata nella pagina successiva. Charts, fu redatto in un tempo relativamente breve (fra il 1903 e
in 102 carte costruito per gli oggetti del profondoc cielo. divise in 16 tavole in scala di 1◦ = 7,5 mm.
il 1912) da due osservatorii, uno in Inghilterra e l’altra a Città
del Capo. Con questa pubblicazione finisce l’era degli atlanti
redatti con i rifrattori. nautica ed i progressi dell’elettronica hanno orientato negli ul- Atomi per la Pace L’inconsueto nome attribuito all’oggetto
Cartografia digitale. le nuove frontiere aperte dall’astro-
I riflettori non furono mai impiegati perché a fronte di una mag- timi decenni verso una cartografia digitale diretta o a singoli NGC 7252, conosciuto anche come ARP 226, deriva allo stesso
giore profondità celeste mostravano un campo assai più piccolo, corpi (del sistema solare e al di fuori esso), o a singole regioni da una lontana somiglianza con un francobollo emesso dagli
e quindi venivano preferibilmente usati nella fotografia di ogget- del cielo fotografate a determinate lunghezze d’onda. Stati Uniti nel 1953 che recava la stessa dicitura.
ti di piccola (apparente) dimensione, e risultavano inservabili Cartografie planetarie sono state realizzate da varie sonde come NGC 7252 si trova nella costellazione dell’Acquario ed è visibile
per fotografare grandi estensioni del cielo. le −→ Mariner, Voyager, Galileo, Cassini, mentre satelliti dedi- nell’emisfero australe anche con strumenti di modesti dimen-
La cartografia celeste riprese vita con l’invenzione del telescopio cati o telescopi spaziali come −→ lo IUE, l’HST, lo Spitzer e sioni nei quali si presenta come il classico batuffolo d’ovatta
Schmidt, che ad una notevole luminosità univa un campo più tantissimi altri si sono occupati di fotografare oggetti lontani e sfocato.
ampio di quanto consentisse il miglior astrografo. il cielo in varie lunghezze d’onda, e altre sonde come Giotto o
Il telescopio Schmidt di monte Palomar, operativo dal 1948, rese Vega hanno fotografato e studiato la cometa Halley. ATFN Acronimo di Australia Telescope National Facility.
di fatto vana la continuazione della Carte du Ciel (a quell’epoca Nel tempo sono state digitalizzate le “vecchie” survey fotografi-
Theatrum mundi et temporis del Gallucci non ancora ancompletata), fornendo un atlante fotografico del- che e rese a disposizione tramite la rete. ATT → Anglo-Australian Observatory
K Le rappresentazioni grafiche delle magnitudini stellari riportate nel
ArsTEXnica Nº 14, Ottobre 2012ArsTEXnica Nº 14, Ottobre 2012 Una classe per comporre un dizionario
10 {\belowsectionskip}% diante i comandi primitivi di TEX e non si possono
11 {\ifnum \scr@compatibility> usare i comandi di LATEX.
12 \@nameuse{scr@v@2.96}\relax
13 \setlength{\parfillskip} 1 \newcommand*\equref[1]{\ifcsdef{r@#1}{%
14 {\z@ plus 1fil}\fi 2 \edef\lemmaref{\expandafter\LemmaEqu
15 \raggedsection\normalfont\sectfont 3 \csname r@#1\endcsname}%
4 \edef\argomentoperhyperref{%
16 \nobreak\size@section}%
17 } 5 [lm@\lemmaref]{\lemmaref}}%
6 \textbf{\autoref{#1}} \ofentry\
18
19 \newcommand\lemma[2][]{% 7 \textbf{\expandafter\hyperref
20 \ifx\currentlemma\empty 8 \argomentoperhyperref}%
9 }{eq.~??}}
21 \def\currentlemma{#2}\fi
10
22 \markboth{\currentlemma}{\currentlemma}%
23 \ifblank{#1}{%
11 \def\diz@thirdoffive#1#2#3#4#5{#3}
24 \label{lm@#2}\section{#2}}{% 12 \def\diz@secondoffive#1#2#3#4#5{#2}
13 \def\diz@firstoffive#1#2#3#4#5{#1}
25 \label{lm@#1}%
14 \def\LemmaEqu#1{%
26 \section{\texorpdfstring{#2}{#1}}}%
27 \markboth{#2}{#2}%
15 \expandafter\diz@thirdoffive#1}
28 \def\currentlemma{#2}\ignorespaces}
Complicato? Sì, ma funziona correttamente.
29 \let\paragraph\lemma\let\entry\lemma
30 3.3 Tabelle che fuoriescono nel margine
31 \newcommand*\vedilemma[2][]{% esterno
32 \ifblank{#1}{{\hyperref[lm@#2]{#2}}}{%
Sono stati creati sia un comando sia un ambiente
33 {\hyperref[lm@#1]{#2}}}} per collocare le tabelle leggermente più larghe si
34 \let\seeentry\vedilemma
una colonna in modo che fuoriescano nel margine
esterno. Ciascuno presenta vantaggi e svantaggi;
I riferimenti ai numeri delle equazioni, che rico- l’ambiente consente di mantenere la tabella mobile
minciano da 1 ad ogni lemma, devono avere un inserendola dentro un ambiente table e, almeno
testo cliccabile che faccia riferimento anche al tito- al secondo passaggio del compilatore, dovrebbe
lo del lemma. Bisogna sfoltire il riferimento interno lasciar sporgere la tabella dal lato giusto rispetto
generato dal comando \label che è stato pesan- alla parità del numero della pagina, non necessa-
temente modificato dal pacchetto hyperref; questo riamente rispetto alla colonna esterna che non si
riferimento interno contiene 5 campi o argomenti può conoscere prima dell’esecuzione della routine
racchiusi fra graffe e bisogna essere in grado di acce- d’uscita. Il comando, invece, non produce una ta-
dere agli argomenti giusti; ecco quindi che bisogna bella mobile, e l’utente deve scegliere la posizione
definire una macro, qui chiamata \lemmaref che nel file sorgente in modo che la tabella sporga dal
contenga solo al terzo argomento del comando inter- lato giusto.
no. Il compositore dovrebbe usare semplicemente Per risolvere il problema avremmo potuto ri-
\equref ed otterrebbe in lingua l’equivalente di correre al pacchetto wrapfig, ma quando abbiamo
“equazione 1 sub lemma Alpha Carinae”, con scritto questa classe questo pacchetto non era anco-
le parti in neretto cliccabili. Qui l’intera definizio- ra documentato convenientemente. Oggi potremmo
ne di \equref svolge questi compiti: nella riga 1, riscrivere questa parte della classe, ma siccome quel
tramite il comando speciale \ifcsdef, disponibile che abbiamo fatto funziona in modo soddisfacente,
mediante il pacchetto etoolbox (Lehman, 2011), si riteniamo che non sia il caso di modificare ciò che
verifica se al momento dell’esecuzione del comando funziona abbastanza bene. Ricordiamo inoltre che
interno l’etichetta a cui fare riferimento è associata le figure avvolte dal testo di wrapfig presentano
al riferimento interno con i cinque argomenti. Il non pochi inconvenienti descritti dall’autore del
risultato di questo test decide se eseguire i coman- pacchetto nella sua documentazione. Non dico che
di del primo gruppo (righe da 2 a 8) o quello del la nostra soluzione sia migliore di quella di Donald
secondo (riga 9). Se sono da eseguire i comandi del Arsenau (Arsenau, 2003), ma presenta difetti di-
primo gruppo definisce la macro \lemmaref con versi e, forse perché ci abbiamo fatto l’abitudine,
il contenuto del terzo argomento (vedi più sotto ci sembrano meno importanti di quelli di wrapfig.
nelle righe 14 e 15, la definizione di \LemmaRef) Qui ci limitiamo a descrivere l’ambiente, che
che contiene il titolo del lemma. Usa poi questa funziona pressappoco come tabular e deve essere
nuova macro per definire l’argomento da passare inserito dentro un ambiente table con il quale si
al comando \hyperref, il comando definito dal può inserire la didascalia al solito modo. L’uso di
pacchetto hyperref che crea il collegamento iperte- questo ambiente segue la sintassi seguente:
stuale. Si usano le definizioni ‘espanse’ per usare i
contenuti correnti delle varie macro; questa è una \begin{table}
delle forme di programmazione accessibile solo me- \caption[hdidascalia brevei]{hdidascaliai}
37Claudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
\label{hetichettai} quando la tabella è troppo larga si limita a emet-
\begin{Wtabular}{hspecifiche delle colonnei} tere un avviso; in questo caso basta togliere la W
hfiletti e righe della tabellai dal nome dell’ambiente nel file sorgente dove si era
\end{Wtabular} introdotto il codice per la tabella larga; si aggiunge
\end{table} anche un asterisco all’ambiente table circostante,
che diventa l’ambiente table*, e la tabella, troppo
Al posto della didascalia numerata, che si ottiene larga per una colonna e il suo margine, diventa
con il comando \caption, si possono usare, senza tranquillamente una tabella a piena pagina senza
argomento facoltativo, i comandi \scaptiona e bisogno di apportare correzioni importanti. Si noti
\scaptionb che consentono di comporre una dida- per altro che la tabella sporgente, grazie al suo am-
scalia senza numero e collocata sopra (above) o biente Wtabular può sporgere nel margine esterno
sotto (below) l’oggetto a cui si riferisce. anche se la tabella viene composta a piena pagina
Nel codice che realizza questo ambiente prima mediante l’ambiente table*.
bisogna aver definito alcuni registri dimensionali
Si noti ancora che l’etichetta interna generata
e un comando il cui contenuto è il numero della
con la costruzione sintattica delle righe 14-15 è
pagina corrente, se è la prima volta che l’ambiente
costituita dal prefisso dzt@ seguito dal numero che
viene usato; altrimenti è il secondo argomento della
l’ambiente ha creato aggiungendo l’unità (\@ne) al
lista interna di argomenti generati dal comando
contatore TEX \t@bella; è importante che questo
\label con la sua ridefinizione da parte di hyperref.
aumento di una unità sia globale, in modo che ogni
Dopo, l’ambiente Wtabular è definito in modo da
successiva tabella larga, dovunque si trovi lungo
farne l’uso corretto così da far sporgere la tabella
tutta la serie di file che costituiscono il dizionario,
dal lato giusto:
abbia il suo numero univoco, affinché l’etichetta sia
1 \newsavebox{\widebox} univoca; per questo è specificata la dichiarazione
2 \newcount\t@bella \t@bella=\z@ \global. Questo non sarebbe stato necessario se si
3 \newcount\p@gina fosse definito un contatore LATEX, diciamo t@bella,
4 \def\PaginaTabella#1{\ifx#1\relax perché con quello si sarebbe potuto specificare
5 \value{page}\else l’aumento di una unità mediante l’espressione:
6 \expandafter\diz@secondoffive#1\fi}
7
\stepcounter{t@bella}
8 \newenvironment{Wtabular}[2][c]{%
9 \widet@ble\linewidth che in LATEX produce l’incremento unitario in modo
10 \advance\widet@ble\columnsep globale. Il contatore LATEX avrebbe richiesto una
11 \advance\widet@ble\marginparwidth programmazione leggermente più complessa negli
12 \global\advance\t@bella\@ne altri punti della definizione dell’ambiente, ed è per
13 \edef\@tempB{dzt@\the\t@bella}% questo che abbiamo scelto un contatore TEX.
14 \expandafter\label
15 \expandafter{\@tempB}% 4 Altre considerazioni
16 \begin{lrbox}{\widebox}%
La classe dictionarySCR presenta molte altre carat-
17 \begin{tabular}{#2}%
teristiche; per ragioni di brevità qui ne abbiamo
18 }{%
esposte e descritte solo alcune, secondo noi le più
19 \end{tabular}\end{lrbox}%
importanti.
20 \p@gina=
21 \expandafter\PaginaTabella% Ma ci sono anche mezzi per “strutturare” lem-
22 \expandafter{ mi con descrizioni lunghe creando loro una specie
23 \csname r@\@tempB\endcsname}% di mini-indice iniziale e dei comandi per i titolini
24 \ifodd\p@gina relativi alle sezioni in cui è strutturato il lemma
25 \def\@tempA{l} in questione. Ci sono modi di inserire medaglioni
26 \else con sfondo colorato; per comporre i cataloghi delle
27 \def\@tempA{r} stelle in modo che le righe della tabella, piuttosto
28 \fi larghe perché hanno un decina di colonne, siano
29 \ifdim\wd\widebox>\widet@ble alternativamente su uno sfondo leggermente colo-
30 \ClassWarning{dictionarySCR}% rato oppure bianco, al fine di aiutare l’occhio a
31 {Table is too wide!}% restare sulla riga giusta; sullo schermo l’effetto è
32 \fi gradevole; stampato a colori su carta è altrettanto
33 \makebox[\linewidth][\@tempA]% gradevole, ma in tonalità di grigio le ombreggia-
34 {\box\widebox}% ture di sottofondo forse sono troppo chiare. Le
35 \ignorespaces} figure in colonna possono avere didascalie sopra o
sotto; ogni didascalia presenta una grossa punta
Come si vede nelle righe 29-34, l’ambiente com- di freccia diretta verso la figura a cui la didascalia
pone la tabella sporgente dal lato opportuno, ma si riferisce.
38ArsTEXnica Nº 14, Ottobre 2012 Una classe per comporre un dizionario
Si possono comporre di default testi e citazioni Ecco perché la classe è ancora al livello “alpha”.
in diverse lingue che includono oltre all’italiano, Anche durante la stesura di questo articolo abbia-
l’inglese, il francese, il tedesco, il latino e il gre- mo avuto necessità di fare qualche piccolo aggiusta-
co classico; la lingua principale è specificata nelle mento di “fine tuning” di alcune macro che presen-
opzioni di \documentclass. A seconda della lin- tavano ancora alcuni difettucci nati, per esempio,
gua specificata, il comando \ofentry che compare da aggiornamenti della distribuzione TEX Live alla
nella definizione di \equref verrà modificato auto- versione del 2012: un caso tipico è stato l’aggior-
maticamente in corrispondenza alla lingua scelta: namento di hyperref, che ha richiesto di modificare
“sub lemma”, “sub entry”, “sous l’article”, “unten qualche nostra macro. Anche se ormai la cosa suc-
das Stichwort”, e anche le traduzioni latina “sub cede molto raramente (e nel secondo dizionario
lemmate” e greca “ὑπὸ τὸν εἴσοδον”. Queste due ul- non è successo mai), talvolta i mark delle testatine
time traduzioni sono evidentemente delle forzature, non corrispondono a quello a cui dovrebbero cor-
visto che non immaginiamo che venga composto rispondere. Nonostante tutte le cure, è proprio il
un dizionario in latino o in greco classico, ma l’ab- concetto stesso di dizionario a due colonne che tal-
biamo fatto per simmetria e per coerenza; e poi volta mette in crisi il programma di composizione.
non si sa mai. . . Abbiamo messo in opera tutti i patch di cui siamo
stati capaci, ma in qualche raro caso nel Dizionario
Se si vogliono inserire citazioni in lingue scritte
di Astronomia presenta qualche problema dovuto
con ideogrammi bisogna compilare con XELATEX
all’algoritmo asincrono che usano i programmi di
usando la classe xdictionarySCR, avendo cura di spe-
composizione per spezzare il testo in colonne e
cificare nel preambolo i font giusti e in particolare
predisporre la pagine per il file di uscita.
l’associazione lingua-font; per esempio, una riga di
ideogrammi giapponesi può venire semplicemente Questo processo asincrono produce anche delle
scritta dentro un ambiente japanese (da definire nuove rigidezze nel sistemare le numerose figure e
da parte dello scrittore), cosicché il programma tabelle e abbiamo cercato di trovare il modo più
faccia tutto da solo. La difficoltà, caso mai, non è delicato possibile per convincere il programma a
tanto nel comporre, quanto nel conoscere la lingua non lasciare colonne mozze. Tutto sommato siamo
orientale da scrivere, il giapponese nell’esempio abbastanza soddisfatti e abbiamo anche la grati-
specifico; inoltre l’immissione di caratteri kataka- ficazione che il nostro lavoro abbia potuto essere
na, hiragana e kanji con una tastiera occidentale usato per comporre altri dizionari di cui uno in
non è la cosa più facile di questo mondo; il sistema una disciplina come lo scintoismo, che non ha nul-
operativo Mac OS X delle macchine Macintosh la a che vedere con il dizionario tematico da cui
consente di usare una tastiera virtuale e per il eravamo partiti.
giapponese offre un metodo particolare di scrittu- Elenchiamo molto succintamente alcuni degli
ra; l’editor emacs (forse anche l’editor Aquamacs) altri piccoli problemi che abbiamo incontrato: il
consente una modalità particolare di immissione problema della impostazione corretta dei comandi
degli ideogrammi orientali, ma il problema resta e per scrivere in greco, che inizialmente, senza voler
non può essere risolto con la classe. Certo si può attivare tutti i marchingegni di babel, avevamo
provare ad eseguire la tecnica del copia e incolla ridefinito completamente per poi ricorrere a solu-
da altri testi, ma è possibile che il metodo falli- zioni trovate sul Forum guIt (grazie a tutti coloro
sca se non c’è una perfetta corrispondenza fra gli che hanno usato il Forum sia per domandare sia
ideogrammi contenuti nel file da cui si copia con per rispondere); la colorazione di background delle
gli ideogrammi contenuti nel font usato per com- tabelle; le tabelle mobili poco sporgenti nel margi-
porre il documento dove si incolla. Questi, però, ne esterno, di cui abbiamo creato diversi comandi o
sono problemi che lasciamo volentieri a coloro che ambienti, non solo quello descritto qui; le didasca-
conoscono il giapponese e che desiderano scrivere lie da inserire sopra o sotto gli oggetti mobili a cui
un dizionario che contenga parti in questa lingua. si riferiscono, ma indipendentemente dal tipo di
Naturalmente non è una cosa straordinaria che oggetto; la gestione del font di default in modo da
ci siano stati dei problemi quando si affronta un poter usare un comando equivalente a \HUGE, che
progetto così complesso. In realtà non è molto com- non fa parte dei comandi predefiniti né nelle classi
plesso costruire e usare una classe per comporre standard, né nelle classi Koma Script; nonostante
un dizionario; è complesso comporre il Dizionario un certo numero di lingue fossero precaricate, la
di Astronomia a causa delle lingue, degli alfabe- loro corretta gestione in modo che fosse il compo-
ti, delle informazioni strutturate sotto forma di sitore a decidere quale fosse la lingua principale
equazioni, tabelle, e simili. Uno dei due autori ha senza dover editare la classe stessa. In un modo o
cominciato a scrivere un Dizionario di Termini nell’altro li abbiamo risolti tutti.
Marinareschi nel comporre il quale non incontra Attualmente stiamo lavorando all’unione del-
le difficoltà del primo dizionario, grazie al fatto le due classi, quella per pdfLATEX e quella per
che in questo secondo non è necessario ricorrere a XELATEX, in modo che sia quest’unica nuova classe
molta informazione fortemente strutturata. a decidere quali pacchetti caricare e quali macro
39Puoi anche leggere