unaclassepercomporreundizionario - guitex.org · potrai che geometriche dimostrazioni con via, utta...
TRANSCRIPT
Una classe per comporre un dizionario
Claudio Beccari, Heinrich Fleck
SommarioIn questo articolo descriviamo la storia, lo sviluppoe le principali caratteristiche delle classi dictionary-SCR e xdictionarySCR, che permettono di comporre,rispettivamente con pdfLATEX e X ELATEX, dizionaritematici in una varietà di discipline.
AbstractIn this article we describe the history, the devel-opment, and the most relevant characteristics ofclasses dictionarySCR and xdictionarySCR, that al-low to typeset, by means pdfLATEX and X ELATEXrespectively, thematic dictionaries in a variety ofdisciplines.
1 PremessaNel 2010 abbiamo presentato un articolo sui mark(Beccari e Fleck, 2010) (parola che non abbia-mo voluto tradurre in italiano, perché ‘marca’ o‘marchio’ non ci sembrano adeguati) che abbiamousato in diversi modi durante la creazione dellanostra classe dizionarioSCR, trovando poi finalmen-te una soluzione quasi ottimale, secondo le nostrenecessità.
Nello stesso tempo il Dizionario di Astronomia1,per il quale la classe veniva preparata, ha comin-ciato a circolare in bozza fra i cultori di questascienza, ed è arrivato alle orecchie di un utenteche aveva bisogno di scrivere un dizionario sulloscintoismo giapponese, settore disciplinare comple-tamente diverso dall’astronomia. Per adattare laclasse alle sue esigenze, cioè di inserire nei lemmiin italiano anche delle brevi locuzioni in giappone-se, in cinese e in devanagari (sanscrito), abbiamoadattato la classe all’uso con X ELATEX. Le classiin realtà erano due distinte per lavorare l’una conpdfLATEX e l’altra con X ELATEX; il nome è cambia-to in dictionarySCR, e finalmente è documentata (ininglese) con il file dictionarySCR.dtx. Per lavorarecon X ELATEX la classe si chiama xdictionary ed èdocumentata nel file xdictionary.dtx. Le due classisono quasi identiche; le differenze riguardano solo ildiverso trattamento delle lingue, (con il pacchettobabel con pdfLATEX e con polyglossia in X ELATEX),e il trattamento dei font (Type 1 con pdfLATEXe OpenType con X ELATEX). Questa duplicazione
1. Questo Dizionario di Astronomia non è ancora statopubblicato, anche perché non è ancora finito; Heinrich Flecklo ha cominciato nel 2009 e da allora vi sta lavorandosopra più per sua passione che per il desiderio di vederlopubblicato. Chissà, forse in futuro. . .
della classe non sarebbe necessaria se non si fos-sero voluti usare i font greci che con pdfLATEXsono gestiti attraverso il pacchetto teubner; que-sto pacchetto però, non è ancora completamentecompatibile con X ELATEX. Per altro ora stiamo la-vorando ad una unificazione delle due classi in unasola, in modo che sappia gestirsi autonomamentecon entrambi i programmi di composizione.
Vale la pena di notare che le classi “inglesi” sononate dalla originaria classe “italiana” e questo siriflette nel fatto che tutti i comandi specifici delleclassi dictionarySCR e xdictionarySCR sono bilingui,come per esempio \vedilemma e \seeentry.
Qui raccontiamo le nostre esperienze e mostria-mo alcune parti del codice. Lo scopo di questoarticolo è mostrare che cosa la classe sia capace difare. La classe non è ancora resa pubblica, perchésecondo noi è ancora al livello “alpha”, non ancoraal livello “beta”. Può darsi che la classe e un “cam-pione” del Dizionario compilato ma fornito assiemeal codice sorgente, vengano posti a disposizionedei soci del guIt, nella sezione dei “Template”, dicui si è parlato nei giorni in cui stavamo scrivendoquesto articolo.
2 Specifiche richieste per la compi-lazione dizionario
Il nostro dizionario doveva essere composto su cartain formato A4, con una front matter composta apiena pagina, una main matter composta a duecolonne, e una back matter di nuovo composta apiena pagina, in quanto avrebbe contenuto dellegrandi e lunghe tabelle contenenti degli estrattidai cataloghi di stelle. La bibliografia e l’indicedei nomi degli astronomi e di vari altri personaggistorici, che avevano avuto importanza diretta oindiretta in astronomia, andavano messi nella partefinale del dizionario come ultimi elementi, entrambicomposti di nuovo a due colonne.
I lemmi del dizionario, ordinati alfabeticamente,sarebbero stati contenuti in apposite sezioni, allivello dei capitoli, il cui titolo consistesse nell’ini-ziale corrispondente. Tale lettera sarebbe dovutaapparire anche in ogni pagina del “capitolo” come/emphunghia2 posta nel margine esterno sia sullepagine di destra sia su quelle di sinistra.
2. In certi dizionari, in molte Bibbie, spessissimo in queltipo di libretto che chiamiamo “rubrica”, dove il materialeè separato secondo la lettera iniziale oppure secondo i nomiabbreviati convenzionali dei Libri Sacri, queste informazionivengono stampate nel margine esterno delle pagine di destra;spesso le pagine precedenti hanno un intaglio semicircolarein modo che il simbolo della lettera o del Libro Sacro appaia
31
Claudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
Siccome il dizionario avrebbe finito per esse-re consultato prevalentemente come documentoPDF direttamente sullo schermo, abbiamo ritenu-to opportuno realizzare i riferimenti incrociati deilemmi mediante collegamenti ipertestuali. Usareil pacchetto hyperref implica assoggettarsi alle sueidiosincrasie, perfettamente giustificate quando sene conosca il meccanismo interno, ma talvolta unpoco fastidiose; fra queste idiosincrasie c’è quellache tutto ciò che deve venire collegato in modoipertestuale deve essere identificato in modo univo-co, ovviamente, e hyperref risolve questo problemausando i numeri degli oggetti che il compilatore haassegnato loro anche se questo numero non com-pare nel documento finale; per esempio: la terzaequazione (numerata) che compare nel trecento-quindicesimo lemma (il cui numero non appare)della sezione ‘C ’ riceve dal programma di compi-lazione l’identificativo univoco ‘C.315.3’ e questastringa, oltre ad altre informazioni, viene usatada hyperref per costruire l’ancora e il bersaglio(anchor e target) dei riferimenti ipertestuali. I co-mandi \label, \ref e \pageref (oltre a quellidefiniti dal pacchetto varioref il cui funzionamen-to, però, non è affidabile come quello dei comandioriginali di LATEX) vengono ridefiniti da hyperrefin modo da contenere e interpretare anche le in-formazioni accessorie necessarie per la costruzionecorretta delle ancore e dei bersagli.
Le figure e certe tabelle possono avere delle dida-scalie senza un numero visibile, ma debbono avereun’ancora univoca legata al numero invisibile dellemma a cui si riferiscono. Le didascalie delle figuresono collocate sopra o sotto la figura a secondadella scelta del compositore; l’idea è che se unafigura o una tabella compare in testa ad una colon-na, deve o dovrebbe avere la didascalia di sopra,mentre se cade alla base della colonna la didascaliadovrebbe apparire sotto l’oggetto.
Abbiamo previsto anche che alcune tabelle, piùlarghe di una colonna, ma non tanto larghe da ri-chiedere uno spazio a piena pagina, possano esten-dersi nel margine esterno; perciò abbiamo dovutoideare un meccanismo per scoprire se la figura sitrova nel punto giusto e si estenda nel margine giu-sto. Visto che il testo è a due colonne, nelle paginedi sinistra la tabella in questione può estendersisolo a sinistra e quindi essere nella colonna di sini-stra, mentre nelle pagine di destra deve succedereil contrario.
Le figure delle pagine 33 e 36 mostrano due esem-pi di pagine affacciate del dizionario in cui vengono
anche a libro chiuso. Evidentemente questo tipo di informa-zioni serve per trovare l’inizio della sezione che interessa,senza bisogno di consultare un indice; la forma dell’intaglioricorda quello di un’unghia e per traslato si chiama cosìnon solo l’intaglio, ma anche il segno che l’intaglio lasciaapparire; il segno conserva il nome di unghia anche se l’in-taglio manca. In inglese la parola thumbnail indica lo stessoconcetto, e addirittura fa riferimento all’unghia del pollice.
mostrate molte delle caratteristiche descritte inquesto paragrafo.
In particolare si osserva la posizione dell’unghia,una figura a piena pagina e due figure in colonnacon la didascalia sopra o sotto a seconda dellascelta del compositore; si vede un medaglione a duecolonne una delle quali è scritta in greco classico,mentre l’altra contiene la traduzione. Le testatinecontengono i nomi dei lemmi in vigore all’iniziodella colonna di sinistra e alla fine della colonna didestra, con il numero della pagina al centro. Questaparticolare coppia di pagine non contiene equazioni,ma contiene una piccola tabella a sfondo coloratoalla fine della seconda colonna della seconda pagina;contiene riferimenti ipertestuali ad altri lemmi che,nella versione originale, hanno i testi cliccabili perspostare la visione sul lemma citato e sono coloratidi rosso; nella stampa in bianco e nero appaionoin grigio chiaro.Invece nello spread della pagina 36 si possono
osservare sia una tabella sporgente e con lo sfon-do colorato, sia, nella voce “atlante”, dei titolinimarcati mediante un triangolo nero con la puntaa destra; all’inizio della voce “atlante” c’è anche ilmini indice relativo a questo lemma, ma siccomela sua descrizione occupa diverse pagine affaccia-te, non lo si è riportato completamente per ovvimotivi di economia di spazio.
3 Soluzioni trovateDopo diverse prove abbiamo trovato che la clas-se più adatta su cui costruire la classe dictionary-SCR era la classe scrbook della collezione KomaScript. Abbiamo provato anche la classe standardbook, che avrebbe però richiesto un lavoro maggio-re, e la classe memoir (Wilson, 2011), altamenteconfigurabile, ma con le sue rigidezze.3
La collezione delle classi Koma Script (Kohm eMorawski, 2012) dispone di un comodo coman-do \areaset con il quale è possibile stabilire omodificare la geometria dello specchio di stampacon facilità. Quindi non è stato difficile creare legeometrie per le pagine iniziali, intermedie e finali,che si è rivelata un’operazione di routine.
3.1 I titoli dei capitoli, i mark e le unghie
Più delicata è stata l’operazione di comporre l’un-ghia con la lettera iniziale del gruppo di lemmi;questo ha richiesto la ridefinizione del comando\@chapter con il quale viene effettivamente com-posto il titolo del capitolo, affinché non scriva il nu-
3. Tra le altre cose volevamo usare la procedura fornitadal pacchetto imakeidx (Beccari e Gregorio, 2012) percomporre l’indice dei nomi sempre in modo sincrono conla compilazione del dizionario, e a quel tempo la classememoir e il pacchetto imakeidx erano ancora incompatibili;ora imakeidx contiene il necessario per lavorare anche conmemoir, ma ormai siamo troppo avanti per ricominciaredaccapo ed adattare la nostra classe all’uso di memoir.
32
ArsTEXnica Nº 14, Ottobre 2012 Una classe per comporre un dizionario
AA
rchi
med
edi
Sira
cusa
48A
rchi
med
edi
Sira
cusa
LPa
linse
sto
diA
rchi
med
e:a
dest
rail
palin
sest
o,a
sini
stra
lapa
rte
dite
sto
evid
enzi
ata
nelr
etta
ngol
oro
sso
sovr
ascr
itta
dalle
preg
hier
e;W
alte
rsA
rtM
useu
mdi
Bal
timor
a
O ÏntaitinËc,basile‹GËlwn,to‹yàmmont‰nÇrijm‰n
äpeirone⁄mentƒpl†jei;lËgwd‡oŒmÏnonto‹per»Sura-
ko‘sacteka»tÄnällanSikel–anÕpàrqontoc,ÇllÄka»
to‹katÄpêsanq∏rantànteo khmËnanka»tÄnÇo»khton.
‚nt–tinecdË,oÀaŒt‰näpeironm‡ne⁄menoŒqÕpolambànonti,
mhdËnamËntoitaliko‹tonkatwnomasmËnonÕpàrqein,Ìstic
Õperbàlleit‰pl®jocaŒtoÃ.o…d‡o’twcdoxazÏntecd®lon
±ce no†saien‚kto‹yàmmontaliko‹tonÓgkonsugke–me-
nontÄm‡nälla,Ål–kocÊtêcgêcÓgkoc,ÇnapeplhrwmË-
nwnd‡‚naŒtƒt¿ntepelagËwnpàntwnka»t¿nkoilw-
màtwntêcgêce c“son’yoctoÿcÕyhlotàtoict¿nÊrËwn,
pollaplas–wcmògnwsÏntaimhdËnaka˚hj†menÇrijmÏn
Õperbàllontat‰pl®jocaŒto‹.‚g∞d‡peiraso‘maitoi
deikn‘eindi’Çpodeix–wngeometrikên,aŸcparakolouj†seic,
Ìtit¿nÕf’Åm¿nkatwnomasmËnwnÇrijm∞nka»‚ndedomË-
nwn‚ntoÿcpot»Ze‘xippongegrammËnoicÕperbàllont–ti-
necoŒmÏnont‰nÇrijm‰nto‹yàmmouto‹mËgejocÍqontoc
“sontîgîpeplhrwmËn¯,kajàpere“pamec,ÇllÄka»t‰n
to‹mËgejoc“sonÍqontoctƒkÏsm˙.
Vis
ono
alcu
ni,o
reG
elon
e,ch
est
iman
oil
num
ero
[dei
gra-
nelli
]d’a
rena
una
quan
tità
infin
ita,e
non
mir
iferis
coso
ltant
oa
quel
li[d
eigr
anel
lid’
aren
a]ch
est
anno
atto
rno
aSi
racu
sao
nelr
esto
della
Sici
lia,m
aan
che
aqu
elli
[dei
gran
elli
d’a-
rena
]ch
est
anno
inqu
alsi
asia
ltro
post
ode
lmon
doab
itato
odi
sabi
tato
.A
ltri
anco
rari
teng
ono
che
pur
non
esse
ndo
tale
num
ero
infin
ito,n
onse
nepo
ssa
com
unqu
eda
reun
om
aggi
ore.
Sequ
elli
che
così
pens
ano
imm
agin
asse
roun
glob
od’
aren
aeg
uale
aqu
ello
della
Terr
a,ta
lech
ean
che
leca
vern
ee
glia
biss
idel
mar
edi
ques
tane
foss
ero
riem
piti,
ech
esi
este
ndes
sesi
noal
leci
me
delle
più
alte
mon
tagn
e,ci
òno
nost
ante
non
sipe
rsua
dere
bber
oan
cora
dell’
esis
tenz
adi
unnu
mer
och
esu
pera
sse
lagr
ande
zza
diqu
esti
[gra
nelli
d’ar
ena]
.Tut
tavi
a,co
ndi
mos
trazi
onig
eom
etric
hech
epo
trai
segu
ire
colp
ensi
ero,
inte
ndo
mos
trar
tich
efr
ain
umer
ida
noid
enom
inat
inel
libro
indi
rizz
ato
aZ
eusi
ppo,
vene
sono
alcu
nich
eno
nso
loec
cedo
noil
num
ero
[dei
gran
elli]
d’ar
ena
diun
volu
me
egua
lea
quel
lode
llaTe
rra
quan
doqu
esta
nefo
sse
colm
a,m
aan
che
quel
lo[d
eigr
anel
lid’
aren
a]co
nten
uti
inun
glob
ode
llast
essa
gran
dezz
ade
lcos
mo.
YAMMITHS
(AR
EN
AR
IUS)
,[11
][II
,pag
g.24
2-2
44,1
-4]
neun
met
odo
idea
tope
rla
mis
ura
deld
iam
etro
appa
rent
ede
lSo
le,4
efo
rse
anch
equ
esta
tecn
ica
confl
uìin
un’o
pera
.L’o
pera
4.O
sser
vand
ol’
astr
oal
sorg
ere,
Arc
him
ede
pose
suun
’ast
aun
cilin
dro
che
pote
vasc
orre
relu
ngo
ques
ta,i
nm
odo
che
post
oil
cilin
dro
fra
l’oc
-ch
ioe
ilSo
lefo
sse
poss
ibile
(avv
icin
ando
loe
allo
ntan
ando
lo)o
vede
reso
loun
ade
bole
luce
aila
tide
lsol
ido
ona
scon
dere
com
plet
amen
teil
Sole
.Mis
urat
iidu
ean
goli
sotte
sida
lledi
vers
epo
sizi
onid
elci
lindr
oco
n
vert
ice
delt
rian
golo
sull’
occh
io,t
rovò
una
mis
ura
ango
lare
com
pres
afr
aic
orri
spon
dent
i270
e320 5
600 ,
assa
ivic
ina
all’
attu
ale
com
pres
afr
ai3
10e
i320
.N
ell’o
pera
èan
che
ripor
tata
lam
isur
ade
lrap
porto
fra
ledi
men
sion
idel
Sole
ede
llaL
una:
30vo
ltequ
ello
dels
atel
lite;
edan
che
sela
mis
ura
èer
rata
,ètu
ttavi
api
ùvi
cina
alve
rodi
quel
ladi
Eud
osso
(9),
diFi
dia
(12)
,diA
rist
arco
(fra
18e
20).
Aqu
este
mis
ure
sono
dedi
cate
mol
tepa
gine
dell’
oper
a.
Arc
him
ede
diSi
racu
sa49
arch
ipen
dolo
Ach
ene
ll’an
tichi
tàdo
vette
gode
redi
note
vole
popo
larit
àta
nto
che
sene
haun
’eco
inC
atul
loed
Ora
zio
(anc
hese
ques
t’ul
timo
laac
cred
itaad
Arc
hita
),è
l’uni
cad’
Arc
him
ede
che
tratti
ques
tioni
astr
onom
iche
.M
uove
ndo
dalla
conc
ezio
neav
anza
tada
Ari
star
coin
cuiq
uest
i,in
un’o
pera
anda
tape
rdut
a,pr
esen
tava
com
eip
otes
iun
mod
ello
elio
cent
rico,
argo
men
tand
oda
llete
orie
dell’
astro
nom
odi
Sam
o,A
rchi
med
eco
mpr
ende
com
eun
sim
ilem
odel
loco
mpo
rti
unri
defin
izio
nede
llast
ruttu
rae
delle
dim
ensi
onid
ell’
univ
erso
(la
sfer
a)co
me
era
allo
raco
nosc
iuto
,epe
rcon
segu
enza
lane
cess
itàdi
espr
imer
siin
gran
dezz
ede
ltut
tofu
orid
alco
mun
e.L’
astr
onom
iaè
infa
ttiso
loun
osp
unto
pers
volg
ere
ildi
scor
sosu
igra
ndin
umer
i.So
ttoqu
esto
aspe
ttol’
Are
nari
oas
som
iglia
unpo
coal
Pro
blem
ade
ibu
oich
eno
nha
a↵at
toun
afin
alità
ludi
ca,m
afo
ndam
enta
lmen
tem
atem
atic
a,tr
atta
ndos
ianc
hein
ques
toca
sodi
gran
dinu
mer
i.A
rchi
med
eno
nco
ntes
tala
valid
itào
men
ode
lmod
ello
diA
ri-
star
co,c
onte
sta
che
ques
tine
llasu
aip
otes
icon
side
rila
Terr
apu
ntifo
rme
(...
ilce
ntro
della
sfer
ano
nha
alcu
nadi
men
sion
ee
non
èpo
ssib
ileri
tene
rech
ees
soab
bia
alcu
nra
ppor
tori
spet
toal
lasu
perfi
cie
della
sfer
a),e
ilsu
oè
più
che
altr
oun
disc
orso
difo
rmal
ism
om
atem
atic
o.L’
esig
enza
èin
via
prio
rita
ria
quel
ladi
conc
epir
eed
espr
ime-
regr
andi
num
eriu
tiliz
zand
ol’
antic
osi
stem
adi
num
eraz
ione
grec
ach
esc
rivev
ain
umer
icon
lette
ree
non
cono
scev
alo
0,ci
rcos
tanz
aqu
esta
che
rend
ela
lettu
rade
lleop
ere
diA
rchi
med
eco
me
dial
tria
utor
idel
peri
odo
grec
oed
elle
nist
ico
part
icol
ar-
men
tear
dua,
giac
ché
non
solo
inum
eri,
ma
anch
ele
fraz
ioni
ele
equa
zion
ison
oes
pres
sein
mod
ode
ltut
todi
vers
oda
com
esi
amo
abitu
atio
ggia
scriv
erle
edus
arle
:⇡as
tron
omia
grec
a.L
apr
ecis
azio
neco
stitu
isce
lach
iave
divo
ltadi
lettu
rade
ll’op
e-ra
,per
ché
adam
met
tere
lasc
rittu
rase
cond
oil
nost
rosi
stem
anu
mer
ico-
deci
mal
e,il
prob
lem
ape
rder
ebbe
gran
part
ede
llasu
ari
leva
nza.
Que
sta
di�
coltà
siri
nvie
nene
llepr
ime
righ
ede
ll’A
rena
rio
(ved
iriq
uadr
oa
fron
te),
edil
rico
rdat
olib
roin
-di
rizz
ato
aZ
eusi
ppo
pote
vaan
ch’e
sso
trat
tare
fors
ean
che
dei
calc
olio
ltre
che
deig
rand
inum
eri.
Fine
diA
rchi
med
eè
rapp
rese
ntar
eun
num
ero
che
(per
quan
togr
ande
)sia
tutta
via
nelle
poss
ibili
tàd’
inte
llige
nza
della
men
teum
ana
(...
con
dim
ostr
azio
nige
omet
rich
ech
epo
trai
segu
ire
col
pens
iero
...)
,dom
inar
eil
mon
dofis
ico
tram
itela
mat
emat
ica,
dim
ostra
rech
eè
poss
ibile
imm
agin
are
esc
river
eun
num
ero
più
gran
dede
lnum
ero
deig
rane
llid’
aren
ach
epo
treb
bero
esse
reco
nten
utin
ell’
univ
erso
:A
rchi
med
eno
nco
nfut
ané
abbr
acci
ale
prop
osiz
ioni
diA
rist
arco
,con
side
raso
ltant
ole
dim
ensi
oni
dell’
univ
erso
adot
tand
onu
ovis
imbo
lipe
rnum
erip
iùgr
andi
.D
opo
aver
desc
ritto
ilm
etod
odi
num
eraz
ione
,Arc
him
ede
dim
o-st
raun
teor
ema
sulle
prop
orzi
oni(
che
gros
som
odo
espr
ime
laeg
uagl
ianz
a10
n⇥1
0m=
10n+
mch
ea
mol
tiha
fatto
cred
ere
che
foss
ead
unpa
sso
dall’
idea
zion
ede
ilog
aritm
i),e
pass
aqu
indi
alpr
oble
ma
deig
rane
llidi
sabb
iave
roe
prop
rio.
Non
ripo
rto
quit
utti
ipas
sagg
iche
svol
geA
rchi
med
ech
eri
-ch
iede
rebb
ero
una
trat
tazi
one
apa
rte,
rico
rdo
solta
nto
che
lam
iria
dedi
mir
iadi
(108 )è
cons
ider
ata
l’un
itàde
lsuo
sist
ema
dinu
mer
azio
ne,e
che
chia
ma
num
erip
rim
i(m
aco
nsi
gnifi
cato
dive
rso
daln
ostr
o)qu
elli
che
vann
oda
1a
108 ,n
umer
isec
ondi
quel
lich
eva
nno
da10
8a
108⇥1
08(1
016),
num
erit
erzi
quel
lich
eva
nno
da10
16a
108⇥1
08⇥1
08(1
024),
epr
oseg
ueco
sìco
nnu
mer
iqua
rti,
num
eriq
uint
i,...
fino
ach
el’
ordi
neno
ndi
vent
ala
mir
iade
dim
iria
di.
Arc
him
ede
poi
cost
ruis
ceun
asf
era
imm
agin
aria
con
ildi
a-m
etro
ugua
leal
lapr
esun
tadi
stan
zate
rra-
Sole
edip
otiz
zaun
apr
opor
zion
efr
adi
amet
roTe
rra/
diam
etro
Sfer
ae
diam
etro
Sfe-
ra/d
iam
etro
Uni
vers
o(l
asf
era
delle
stel
lefis
se),
calc
olan
doil
LA
rchi
met
ro
diam
etro
dell’
univ
erso
edil
volu
me,
risp
ettiv
amen
te,i
n10
14ed
in10
42;p
ercu
ila
quan
tità
digr
anel
lisa
rebb
e10
42⇥1
021e
cioè
1063
.Arc
him
ede
non
sife
rma
qui.
Cos
truis
cenu
mer
isem
pre
più
gran
dich
epo
irid
uce
adun
itàdi
ordi
nisu
perio
rie
poig
lior
dini
liri
unis
cein
peri
odis
ino
ara
ggiu
nger
eal
lam
iria
dedi
mir
iadi
dim
iriad
idel
miri
ades
imo
ordi
nede
llam
iriad
ede
lmiri
ades
imo
perio
doe
cioè
1080.0
00.0
00.0
00.0
00.0
00e
cioè
100
000
000⇥1
segu
itoda
800
000
000
zeri
.
Arc
him
edes
,cra
tere
Cra
tere
luna
redi
note
vole
este
nsio
ne(8
3km
)si
tuat
oal
limite
orie
ntal
ede
lMar
eIm
briu
m.
Asu
dde
lcr
ater
edi
este
nde
laca
tena
dei
Mon
tes
Arc
him
edes
per
circ
a15
0km
.èpr
ivo
delp
icco
cent
rale
.
arch
imet
roSt
rum
ento
inve
ntat
oe
desc
ritto
daG
.B.A
leot
ti,ar
chite
ttofr
ai
più
rile
vant
ia
cava
llofr
ail
Cin
quec
ento
eil
Seic
ento
italia
no.E
raco
mpo
sto
diun
ata
vole
ttatr
iang
olar
eco
nva
rie
scal
edi
mis
ura.
Mon
tato
suun
supp
orto
efo
rnito
diun
a⇡
diot
tra,
perm
ette
vadi
trag
uard
are
ogge
ttilo
ntan
i.
arch
ipen
dolo
Stru
men
tope
rcon
trol
lare
lape
rfet
taor
izzo
n-ta
lità
diun
pian
o.E
raco
mpo
sto
didu
ere
goli
ince
rnie
rati
dal
cuic
entr
ope
ndev
ail
filo
api
ombo
.Un
arco
grad
uato
con
loO
alce
ntro
indi
cava
igra
diev
entu
alid
idis
allin
eam
ento
.
lf
mld
anni
dh
h/d
4�W
27� 7
’N3,
8-3
,283
km2,
15km
0,02
59
KD
atid
elcr
ater
eA
rchi
med
es
33
Claudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
mero ma nello stesso tempo definisca il significatodel comando \unghia:
1 \newcommand*\unghia{}2
3 \def\@chapter[#1]#2{%4 \ifnum \c@secnumdepth >\m@ne5 \if@mainmatter6 \refstepcounter{chapter}%7 \typeout{\@chapapp\space8 \thechapter.}%9 \addcontentsline{toc}{chapter}{#1}%
10 \fi11 \fi12 \chaptermark{}%13 \if@twocolumn14 \if@at@twocolumn15 \@makechapterhead{#2}%16 \else17 \@topnewpage[%18 \@makechapterhead{#2}]%19 \fi20 \else21 \@makechapterhead{#2}%22 \@afterheading23 \fi24 \label{chap:#1}%25 \def\unghia{#1}%26 }
Nel codice precedente la maggior parte delle ri-ghe sono repliche inalterate del comando internodella classe scrbook; le poche, ma essenziali mo-difiche riguardano la riga 12, dove il commando\chaptermark, che serve normalmente per scrive-re nella testatina di sinistra il titolo del capitolo,non produce nessun testo per la testatina a cuipenseranno i comandi per inserire i lemmi. Invecele righe 24 e 25 sono state aggiunte; il comando\label serve per attribuire una etichetta di defaultad ogni capitolo; l’etichetta è formata dalla stringachap: agglutinata alla lettera iniziale (maiuscola)del lemmi di quel capitolo. Il successivo comandodefinisce il contenuto dell’unghia, di quella letteranel margine esterno che aiuta a vedere subito inquale sezione di lemmi ci si trovi4. Tutti gli altricomandi un po’ criptici non meritano una spiega-zione che, per altro, si trova nei file .dtx di quasitutte le classi, nel nostro caso della classe scrbook.
Questo, però, non basta; bisogna anche definirele testatine affinché usino correttamente l’infor-mazione contenuta in \unghia. A questo scopoabbiamo ridefinito il comando che definisce lo stileheadings, cambiandogli anche il nome, per usarela testatina come punto di riferimento fisso a cuiagganciare la posizione dell’unghia da collocareper mezzo dei comandi dell’ambiente picture; si èusato un ambiente picture di dimensioni nulle e poi
4. Si veda la nota 2.
si è usato \put per collocare l’unghia nel puntopreciso della pagina in cui si desidera che appaia.
Naturalmente questa ridefinizione delle testatinenon serve solo per collocare l’unghia, ma ancheper mettere i mark giusti nella testatina; questadeve contenere un mark a sinistra, il numero dellapagina al centro e l’altro mark a destra: a sinistrail titolo della prima voce della colonna di sinistra odella voce che è ancora in vigore all’inizio di quellacolonna, mentre a destra il titolo della voce la cuidescrizione è in vigore alla fine della colonna didestra5. È noto, però, che nella composizione adue colonne, la routine di uscita non gestisce benei mark e, per ovviare, è necessario apportare unamodifica ai comandi interni di LATEX, fornita dalpacchetto fixltx2e. Nel caso del dizionario non basta;mentre il \leftmark è risultato sempre corretto, il\rightmark non lo è stato sempre; per correggerequesto difetto abbiamo dovuto definire il comando\getcorrectrightmark come appare nel codiceche segue. Per questo la definizione dei comandi\getcorrectrightmark e \ps@dizionario6, sonostati definiti nel modo seguente:
1 \newcommand*\getcorrectrightmark{%2 \let\protect\noexpand3 \edef\@tempA4 {\expandafter\@leftmark\topmark5 \@empty\@empty}%6 \edef\@tempB7 {\expandafter\@leftmark\botmark8 \@empty\@empty}%9 \let\protect\relax
10 \ifx\@tempA\@tempB\leftmark11 \else\rightmark\fi}12 %13 % nuovo stile di pagina «diziaonario»14 %15 \def\ps@dizionario{%16 \let\@mkboth\@gobbletwo17 \let\chaptermark\@gobble18 \let\sectionmark\@gobble19 \def\@oddhead{%20 \underline{\makebox[\textwidth]{\strut21 \bfseries\makebox[\z@][l]{%22 \getcorrectrightmark}\hfill23 \thepage\hfill\makebox[\z@][r]{%24 \leftmark}%25 \begin{picture}(0,0)%26 \put(20,-2){\makebox(0,0)[lb]{%27 \HUGE\sffamily\mdseries\unghia}}%28 \end{picture}}}}%29 \def\@evenhead{%
5. Nel manuale della classe memoir, così come nelle docu-mentazioni di altri pacchetti e classi, per il mark di sinistraviene normalmente indicato di scrivere il nome del primolemma che cade nella pagina; secondo noi questo non ècorretto, specialmente in presenza di lemmi lunghi6. Questo è lo stile di pagina, simile allo stile headings,
adattato alle necessità del dizionario; ne abbiamo creatoanche l’alias in inglese, dictionary.
34
ArsTEXnica Nº 14, Ottobre 2012 Una classe per comporre un dizionario
30 \underline{\makebox[\textwidth]{%31 \begin{picture}(0,0)%32 \put(-20,-2){\makebox(0,0)[rb]{%33 \HUGE\sffamily\mdseries\unghia}}%34 \end{picture}%35 \strut\bfseries\makebox[\z@][l]{%36 \getcorrectrightmark}\hfill\thepage37 \hfill\makebox[\z@][r]{\leftmark}}}}%38 \def\@oddfoot{}%39 \def\@evenfoot{}%40 }41 % Lo stile della pagina può essere42 % chiamato indifferentemente dictionary43 % o dizionario44 \let\ps@dictionary\ps@dizionario
La definizione di \getcorrectrightmark recuperai contenuti di sinistra dei mark chiamati \topmarke \botmark e li confronta; lavorare con i markè complesso, ma la spiegazione completa apparenel nostro precedente articolo (Beccari e Fleck,2010) e vi si rinvia il lettore. Lo scopo di questoconfronto è appunto quello di usare per il mark disinistra il contenuto della voce in vigore all’iniziodella colonna di sinistra di ciascuna pagina, e nonquello della prima voce che compare nella colonnadi sinistra.Nella definizione dello stile di pagina (il cui no-
me inglese page style giustifica il prefisso ps@ nelnome della macro che definisce ogni stile di pagina)si noti che in entrambe le testatine (\@oddhead latestatina delle pagine dispari e \@evenhead per lepagine pari) i mark sono collocati dentro scatoledi larghezza nulla (righe 21, 23 e 35, 37 del codi-ce), affinché il numero della pagina resti sempreal centro della testatina e non si sposti a destrao a sinistra a seconda della lunghezza del testodei mark. Probabilmente questo stesso risultatosi sarebbe ottenuto usando il pacchetto fancyhdr(van Oostrum, 2004), ma avevamo già risolto ilproblema da soli.Nella parte di sinistra delle testatine delle pa-
gine pari e, viceversa, nella parte di destra delletestatine delle pagine dispari, compare l’apertu-ra e la chiusura dell’ambiente picure che definisceun disegno di dimensioni nulle; è vero che questoambiente è poco alla moda, ma è l’ambiente grafi-co nativo di LATEX che permette di fare in modosemplicissimo operazioni utili, come quella qui ese-guita di mettere l’unghia fuori della testatina verae propria, nel margine esterno, in una posizionefissa di 20 punti verso l’esterno e ribassata di 2punti rispetto alla linea di base della testatina; insostanza la la lettera che costituisce l’unghia vienecollocata dove si vuole senza che il disegno che la“contiene” che è di dimensioni nulle, occupi spazionella testatina stessa.Di conseguenza mentre lo stile delle pagine per
la parte iniziale rimane quello definito dalla classedi supporto scrbook, per la parte intermedia e per
la parte finale bisogna provvedere ridefinendo icomandi \mainmatter e \backmatter:
1 \renewcommand*\mainmatter{%2 \if@twoside\cleardoubleoddpage3 \else\clearpage\fi4 \@mainmattertrue\pagenumbering{arabic}%5 \pagestyle{dictionary}%6 \renewcommand*\chapterpagestyle7 {dictionary}%8 \twocolumn9 }
10 \renewcommand*\backmatter{%11 \if@openright\cleardoubleoddpage12 \else\clearpage\fi\@mainmatterfalse13 \pagestyle{headings}14 \renewcommand*\chapterpagestyle{plain}15 }
3.2 I lemmiI lemmi sono trattati come paragrafi da introdurrecon l’equivalente di un comando \section e sonoquindi numerati, anche se il numero corrispondentenon sarà visibile.Particolare attenzione, inoltre, richiedono quei
lemmi che, come spesso accade, contengono terminicon diacritici, o traslitterati nell’alfabeto latino daaltri alfabeti, o scritti direttamente con un alfabetodiverso da quello latino. Infatti, il pacchetto hyper-ref non permette di gestire agevolmente i caratterispeciali richiesti e quindi il compositore (l’uten-te) deve provvedere un titolo alternativo privo didiacritici e scritto con l’alfabeto latino. In altreparole il titolo alternativo deve essere scritto con icaratteri ASCII a 7 bit, indipendenti da qualsiasicodifica di ingresso: tale titolo alternativo vienespecificato nell’argomento opzionale del comando\lemma; per esempio il lemma relativo a ÅngstrømAnders Jonas, va introdotto con:
\lemma[Angstrom Anders Jonas]%{Ångstrøm Anders Jonas}
Inoltre per fare riferimento a un lemma, visto chenon si può fare riferimento ad un numero, bisognadefinire un comando \vedilemma che eventualmen-te faccia riferimento al nome senza diacritici, e inogni caso produca un testo cliccabile che contengail nome con diacritici. Perciò per i comandi \lemmae \vedilemma sono necessarie diverse impostazionie ridefinizioni dei comandi interni di scrbook:
1 \newlength\abovesectionskip2 \abovesectionskip=3.5ex \@plus 1ex3 \@minus .2ex4 \newlength\belowsectionskip5 \belowsectionskip=2.3ex \@plus.2ex6
7 \renewcommand\section{%8 \@startsection{section}{1}{\z@}%9 {-\abovesectionskip}%
35
Claudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
Aat
lant
e34
atla
nte
LB
oote
sne
ll’at
lant
edi
Hev
eliu
s(s
inis
tra)
edin
quel
lodi
Flam
stee
d(d
estr
a).H
evel
ius,
dise
gnò
leco
stel
lazi
one
con
late
cnic
avi
ste
dall’
este
rno,
quin
diro
vesc
iate
,men
tre
Flam
stee
dle
raffi
gura
corr
etta
men
te
Perq
uant
od’
impo
staz
ione
tole
mai
ca,l
’atla
nte
èso
rpre
nden
te-
men
tem
oder
no.A
ibor
die
alce
ntro
delle
tavo
leG
allu
ccir
ipor
tale
coor
dina
tedi
latit
udin
ee
long
itudi
netr
atte
dalD
eR
evol
utio
-ni
bus
diC
oper
nico
,cui
sono
rife
rite
con
prec
isio
nele
posi
zion
ide
llest
elle
sudd
ivis
ein
mag
nitu
dini
.L
esi
ngol
est
elle
sono
anco
rapr
esen
tiin
tabe
lleco
nin
dica
tele
coor
dina
teed
ilnu
mer
opr
ogre
ssiv
ode
ll’as
tro,
lam
agni
tudi
nee
lana
tura
astr
olog
ica,
eso
noan
che
pres
enti
ogge
ttidi
natu
rano
nst
ella
re.
Da
quii
npo
ila
prod
uzio
nesi
farà
cont
inua
eci
tare
glia
tlant
idi
verr
ebbe
unco
mpi
toar
duo.
Ci
silim
itaa
quel
lich
ecr
edo
sian
opi
ùsi
gnifi
cativ
i,m
ale
omis
sion
ison
oda
vver
onu
mer
ose.
Nel
1687
J.H
evel
ius
pubb
lica
ilFi
rmam
entu
mSo
bies
cian
umsi
veU
rano
grafi
a,un
’ope
rain
56ta
vole
,nel
1753
J.Fl
amst
eed
l’Atla
sco
eles
tis,n
el17
82J.
E.B
ode
ilVo
rste
llung
der
gest
irne
,un
atla
nte
aco
lori
,eco
sìvi
a.D
aqu
esta
brev
era
sseg
nam
anca
tutta
via
unat
lant
ede
ipri
mni
anni
dels
ecol
oX
VII
cuis
ièin
teso
dedi
care
unpo
sto
priv
ilegi
a-to
,l’U
rano
met
ria:c
ompi
lata
nel1
603
daJ.
Bay
erva
cons
ider
ata
ilpr
imo
vero
atla
nte
stel
lare
dell’
era
mod
erna
.A
dotta
ndo
una
tecn
ica
tutto
rain
uso,
Bay
eras
segn
òad
ogni
stel
lase
cond
oil
prop
riosp
lend
ore
appa
rent
e,un
ale
ttera
dell’
al-
fabe
togr
eco:
lest
elle
più
brill
anti
eran
oin
divi
duat
eda
llale
ttera
α,c
uise
guiv
alaβ
,laγ
eco
sìvi
adi
noal
laζ
,Pe
rqua
nto
inno
vativ
oqu
est’a
tlant
eè
com
unqu
el’u
ltim
ore
datto
escl
usiv
amen
teco
nle
tecn
iche
antic
he,e
segn
aan
che
lafin
ede
ll’as
tron
omia
osse
rvat
iva
escl
usiv
amen
teco
iqua
dran
ti.D
ilì
apo
chia
nnis
idiff
onde
ràil
cann
occh
iale
,enu
ove
pros
petti
vesi
apri
rann
ofin
alm
ente
alla
cart
ogra
fieda
ll’ep
oca
diTo
lom
eo.
Una
rass
egna
diat
lant
ièri
port
ata
nella
pagi
nasu
cces
siva
.
KL
era
ppre
sent
azio
nigr
afich
ede
llem
agni
tudi
nist
ella
riri
port
ate
nel
Thea
trum
mun
diet
tem
pori
sde
lGal
lucc
i
Trat
tand
ogl
iatla
ntiv
ain
oltre
ricor
dato
che
laca
rtogr
afia
cele
ste
non
siè
occu
pata
solta
ntan
todi
cost
ella
zion
i,m
aha
rise
rvat
oun
apa
rte
rile
vant
eal
lase
leno
grafi
a,ed
anch
equ
esti
atla
nti
hann
ose
gnat
oun
mom
ento
esse
nzia
leaffi
nand
ola
capa
cità
dira
ppre
sent
are
part
icol
arid
iun
corp
ore
lativ
amen
tevi
cino
.Si
prec
isa
che
mol
tide
glia
tlant
iqui
tras
cura
tiri
sulta
notr
atta
tiai
sing
olil
emm
irel
ativ
iaiv
aric
arto
grafi
ea
quel
lire
lativ
iallo
stud
iodi
unco
rpo
cele
ste.
L’in
venz
ione
del
tele
scop
ioe
lam
aggi
ore
ricc
hezz
adi
part
i-co
lari
edog
getti
che
lost
rum
ento
perm
ette
va,r
ivol
uzio
nòla
cart
ogra
fiace
lest
e.O
rmai
sipo
teva
guar
dare
più
lont
ano,
ma
sidi
spon
eva
dita
nti
picc
olic
ampi
,que
llich
el’
obie
ttivo
ela
foca
lede
ltel
esco
pio
cons
entiv
ano,
eco
min
ciar
ono
ana
scer
ein
uovi
cata
logh
iste
llari
dacu
ipoi
estr
arre
glia
tlant
idiz
one
delc
ielo
.�
Car
togr
afia
foto
grafi
ca.Q
uand
ole
tecn
iche
cons
entir
ono
dipa
ssar
eda
glia
tlant
ired
atti
con
stim
ee
osse
rvaz
ioni
visu
alia
quel
liba
sati
sulla
tecn
ica
foto
grafi
ca,i
lpio
nier
edi
ques
tanu
ova
via
fuD
.G
illde
ll’os
serv
ario
diC
ittà
del
Cap
o,ch
eco
lpito
daln
umer
ode
llest
elle
foto
graf
ate
dura
nte
ilpa
ssag
gio
diun
aco
met
a,de
cise
dida
reil
via
adun
aca
rtog
rafia
foto
grafi
cape
rl’
emis
fero
aust
rale
.N
acqu
eco
sìla
Cap
ePh
otog
raph
icD
urch
mus
teru
ng,u
nat
lant
ein
613
cart
eco
nst
elle
sino
alla
deci
ma
mag
nitu
dine
.N
el18
87pr
ese
ilvi
al’
ambi
zios
opr
oget
todi
reda
zion
ede
lla→
Car
tedu
Cie
l,di
cuiD
.Gill
fuun
ode
glii
spira
tori
prin
cipa
li,e
che
proc
edet
teas
aile
ntam
ente
.E
men
tre
assa
ile
ntam
ente
sisi
atte
ndev
aal
laC
arte
duC
iel,
unat
lant
efo
togr
afico
peri
due
emis
feri
,le→
Fran
kin-
Ada
ms
Cha
rts,f
ure
datto
inun
tem
pore
lativ
amen
tebr
eve
(fra
il19
03e
il19
12)d
adu
eos
serv
ator
ii,un
oin
Ingh
ilter
rae
l’al
tra
aC
ittà
delC
apo.
Con
ques
tapu
bblic
azio
nefin
isce
l’er
ade
glia
tlant
ire
datti
con
irif
ratto
ri.
Irifl
etto
rino
nfu
rono
mai
impi
egat
iper
ché
afr
onte
diun
am
ag-
gior
epr
ofon
dità
cele
ste
mos
trava
noun
cam
poas
saip
iùpi
ccol
o,e
quin
dive
niva
nopr
efer
ibilm
ente
usat
inel
lafo
togr
afia
diog
get-
tidi
picc
ola
(app
aren
te)
dim
ensi
one,
eri
sulta
vano
inse
rvab
ilipe
rfot
ogra
fare
gran
dies
tens
ioni
delc
ielo
.La
carto
grafi
ace
lest
erip
rese
vita
con
l’inv
enzi
one
delt
eles
copi
oSc
hmid
t,ch
ead
una
note
vole
lum
inos
itàun
iva
unca
mpo
più
ampi
odi
quan
toco
nsen
tisse
ilm
iglio
rast
rogr
afo.
Ilte
lesc
opio
Schm
idtd
imon
tePa
lom
ar,o
pera
tivo
dal1
948,
rese
difa
ttova
nala
cont
inua
zion
ede
llaC
arte
duC
iel(
aqu
ell’e
poca
non
anco
raan
com
plet
ata)
,for
nend
oun
atla
nte
foto
grafi
code
l-
atla
nte
35AT
TA
LC
ompi
lato
ride
ipri
ncip
alia
tlant
idal
l’an
tichi
tàal
seco
loX
Xe
luog
odi
ediz
ione
Aut
ore
Atla
nte
Ann
o
Abd
ar-R
ahm
anas
-Sufi
Lib
erlo
cis
stel
laru
mfix
arum
?,96
4P.
Api
anus
Ast
rono
mic
umC
aesa
reum
Ingo
lsta
dt,1
540
A.P
icco
lom
ini
De
lest
elle
fisse
Ven
ezia
,157
0G
.Gal
lucc
iT
heat
rum
mun
diet
tem
pori
sV
enez
ia,1
588
J.B
ayer
uran
omet
ria
Aug
usta
,160
3A
.Cel
lari
oA
tlas
coel
estis
seu
Arm
onia
mac
roco
smic
aA
mst
erda
m,1
603
J.Sc
hille
rC
oelu
mSt
ella
rum
Chr
istia
num
Aug
usta
,162
7J.
Hev
eliu
sU
rano
grap
hia
Dan
zica
,169
0J.
G.D
oppe
lmay
rA
tlas
coel
estis
Nor
imbe
rga,
1742
J.Fl
amst
eed
Atla
sco
eles
tisL
ondr
a,17
53D
ider
otet
d’A
lem
bert
recu
ilde
plan
ches
deas
tron
omie
1789
Pari
giJ.
E.B
ode
Vors
tellu
ngde
rges
tirne
Ber
lino,
1782
F.N
.Kon
igH
imm
els
Atla
sB
erna
,182
6F.
W.A
.Arg
elan
der
Ura
nom
etri
ano
vaB
erlin
o,18
43J.
J.vo
nL
ittro
wA
tlas
des
gest
irnt
enhi
mm
els
Stoc
cars
a,18
54K
.Bru
hns
Atla
sde
rAst
rono
mie
Lip
sia,
1872
C.D
ien,
C.F
lam
amri
onA
tlas
céle
ste
Pari
gi,1
877
E.D
elpo
rte
Dél
imita
tion
scie
ntifi
que
des
cons
tella
tions
,car
tes
Lon
dra,
1930
A.B
ecvá
rA
tlas
Coe
liSk
alna
téPl
eso
Prag
a,19
56
l’em
isfe
robo
real
e,la→
Palo
mar
Sky
Surv
ey,i
nun
tem
pove
ra-
men
tebr
eve:
dal1
949
al19
51.L
aPa
lom
arSu
rvey
èco
nsul
tabi
-le
all’
indi
rizz
ohttp://stdatu.stsci.edu/cgi-bin/dss_
form
.L’
atla
nte
ditu
ttoil
ciel
o(b
orea
lee
aust
rale
)fu
com
plet
ato
negl
ian
nise
ttant
agr
azie
alla
colla
bora
zion
efr
al’
osse
rvat
orio
angl
o-au
stra
liano
diSi
ding
Spri
nge
quel
lode
ll’E
SOa
La
Silla
,che
dette
rovi
taal
l’E
SO-S
RC
Sky
Atla
s.G
liul
timia
tlant
ired
atti
am
ano
sono
stat
il’A
tlas
coel
i,co
mpi
la-
tone
glia
nnic
inqu
anta
dels
ecol
osc
orso
daA
.Bec
vár,
in16
(?)
cart
eco
nst
elle
sino
alla
mag
nitu
dine
7,5,
el’
atla
nte
in43
cart
eco
mpi
lato
dello
stes
sope
riod
oda
G.B
.Lac
chin
iche
ripo
rta
lest
elle
visi
bili,
ledo
ppie
,le
vari
abili
leno
vae,
glia
mm
assi
,le
nebo
lose
egl
ispe
ttris
ino
alla
5am
agni
tudi
ne.E
ntra
mbe
gli
atla
ntis
ono
com
pila
tico
nri
feri
men
toal
l’eq
uino
zio
1950
.N
egli
anni
sess
anta
loSm
ithso
nian
Ast
roph
ysic
alO
bser
vato
ryha
estr
atto
perl
apr
ima
volta
invi
aau
tom
atic
ada
ldat
abas
ede
lSA
O(→
cata
logo
astro
nom
ico)
unat
lant
ein
152
carte
digr
ande
form
ato
acco
mpa
gnat
oda
lrel
ativ
oom
onim
oca
talo
go.
L’at
lant
eco
mpr
ende
stel
lesi
noal
lam
agni
tudi
ne9,
5ed
haun
asc
ala
di8,
6m
mpe
rgra
do.
Nel
1987
W.T
rion
,un
appa
ssio
nato
d’as
tron
omia
che
già
ne-
glia
nnic
inqu
anta
avev
are
aliz
zato
loSk
yA
tlas
2000
,com
pilò
l’U
rano
met
ria
2000
,L’
atla
nte
com
pren
degl
iog
getti
dei
due
emis
feri
,si
este
nde
sino
alle
stel
ledi
mag
nitu
dine
9,5
con
una
scal
adi
18m
mpe
rgr
ado,
eic
orpi
cele
stis
ono
evid
enzi
atis
econ
dole
cara
tteris
tiche
.am
mas
si,n
ebul
ose,
radi
osor
gent
i,...
Inch
iusu
raun
cenn
om
erita
ilSa
rna
Dee
pSk
yA
tlas,
unat
lant
ein
102
cart
eco
stru
itope
rgli
ogge
ttide
lpro
fond
occi
elo.
�C
arto
grafi
adi
gita
le.l
enu
ove
fron
tiere
aper
teda
ll’as
tro-
naut
ica
edip
rogr
essi
dell’
elet
tron
ica
hann
oor
ient
ato
negl
iul-
timi
dece
nni
vers
oun
aca
rtog
rafia
digi
tale
dire
ttao
asi
ngol
ico
rpi(
dels
iste
ma
sola
ree
aldi
fuor
iess
o),o
asi
ngol
ere
gion
ide
lcie
lofo
togr
afat
ea
dete
rmin
ate
lung
hezz
ed’
onda
.C
arto
grafi
epl
anet
arie
sono
stat
ere
aliz
zate
dava
rie
sond
eco
me
le−→
Mar
iner
,Voy
ager
,Gal
ileo,
Cas
sini
,men
tre
sate
lliti
dedi
-ca
tio
tele
scop
ispa
zial
icom
e−→
loIU
E,l
’HST
,lo
Spitz
ere
tant
issi
mia
ltris
ison
ooc
cupa
tidi
foto
graf
are
ogge
ttilo
ntan
ieil
ciel
oin
vari
elu
nghe
zze
d’on
da,e
altr
eso
nde
com
eG
iotto
oV
ega
hann
ofo
togr
afat
oe
stud
iato
laco
met
aH
alle
y.N
elte
mpo
sono
stat
edi
gita
lizza
tele
“vec
chie
”su
rvey
foto
grafi
-ch
ee
rese
adi
spos
izio
netr
amite
lare
te.
LSt
elle
della
cost
ella
zion
edi
Aur
iga
Nom
eA
Rδ
mv
ma
tsal
αC
apel
la05
17+
4600
0,00
390,
0094
0,00
880,
0021
βM
enka
linan
0600
+44
570,
075
0,01
30,
17Θθη
0,03
10,
310,
0046
0,80
0,12
0,23
Aql
820,
010,
020,
180,
030,
400,
15D
qH
er0,
340,
095
0,45
0,23
0,29
–
Gli
atla
ntio
ggis
ipro
duco
noin
tem
pore
ale
daid
ata-
base
foto
-gr
afici
digi
taliz
zati
eda
icat
alog
hi,p
erzo
nedi
ciel
oan
che
dipo
chis
econ
did’
arco
,per
sona
lizza
ndol
isec
ondo
nece
ssità
.In
rete
sono
disp
onib
iliol
tre
aca
rtog
rafie
prof
essi
onal
icom
ela
cita
taPa
lom
arSu
rvey
ola
Sloa
nD
igita
lSky
Surv
ey,a
nche
cart
ogra
fiedi
tutto
risp
etto
reda
tteda
non
prof
essi
onis
ti,co
me,
ades
empi
o,il
TRIA
TLA
S,ch
eha
ragg
iunt
ola
seco
nda
ediz
ione
era
ccog
liest
elle
sino
alla
13a
mag
nitu
dine
.D
ase
gnal
are
anco
ral’a
tlant
eal
l’ind
irizz
owww-wikisky.org
.
Atla
ntid
i.A
ntic
ono
me
con
cuie
raco
nosc
iuta
laco
stel
lazi
o-ne
delle
Plei
adi.
Atla
sSa
telli
tedi
Satu
rno
Atla
s(c
oeli)
,(e
clip
tical
is),
(bor
alis
),(a
ustr
alis
)A
tlant
ipu
bblic
ati
negl
ian
nici
nqua
nto
dall’
astr
onom
oce
cosl
ovac
co→
A.B
ecvá
r.L’
Atla
sC
oele
stis
cont
iene
stel
lesi
noal
lam
agni
tudi
ne7,
5su
d-di
vise
in16
tavo
lein
scal
adi
1◦=
7,5
mm
.
Ato
mip
erla
Pac
eL’
inco
nsue
tono
me
attr
ibui
toal
l’og
getto
NG
C72
52,c
onos
ciut
oan
che
com
eA
RP
226,
deriv
aal
lost
esso
daun
alo
ntan
aso
mig
lianz
aco
nun
fran
cobo
lloem
esso
dagl
iSt
atiU
niti
nel1
953
che
reca
vala
stes
sadi
citu
ra.
NG
C72
52si
trova
nella
cost
ella
zion
ede
ll’A
cqua
rioed
èvi
sibi
lene
ll’em
isfe
roau
stra
lean
che
con
stru
men
tidi
mod
esti
dim
en-
sion
inei
qual
isip
rese
nta
com
eil
clas
sico
batu
ffol
od’
ovat
tasf
ocat
o.
ATF
NA
cron
imo
diAu
stra
liaTe
lesc
ope
Nat
iona
lFac
ility
.
ATT
→A
nglo
-Aus
tral
ian
Obs
erva
tory
36
ArsTEXnica Nº 14, Ottobre 2012 Una classe per comporre un dizionario
10 {\belowsectionskip}%11 {\ifnum \scr@compatibility>12 \@nameuse{scr@[email protected]}\relax13 \setlength{\parfillskip}14 {\z@ plus 1fil}\fi15 \raggedsection\normalfont\sectfont16 \nobreak\size@section}%17 }18
19 \newcommand\lemma[2][]{%20 \ifx\currentlemma\empty21 \def\currentlemma{#2}\fi22 \markboth{\currentlemma}{\currentlemma}%23 \ifblank{#1}{%24 \label{lm@#2}\section{#2}}{%25 \label{lm@#1}%26 \section{\texorpdfstring{#2}{#1}}}%27 \markboth{#2}{#2}%28 \def\currentlemma{#2}\ignorespaces}29 \let\paragraph\lemma\let\entry\lemma30
31 \newcommand*\vedilemma[2][]{%32 \ifblank{#1}{{\hyperref[lm@#2]{#2}}}{%33 {\hyperref[lm@#1]{#2}}}}34 \let\seeentry\vedilemma
I riferimenti ai numeri delle equazioni, che rico-minciano da 1 ad ogni lemma, devono avere untesto cliccabile che faccia riferimento anche al tito-lo del lemma. Bisogna sfoltire il riferimento internogenerato dal comando \label che è stato pesan-temente modificato dal pacchetto hyperref; questoriferimento interno contiene 5 campi o argomentiracchiusi fra graffe e bisogna essere in grado di acce-dere agli argomenti giusti; ecco quindi che bisognadefinire una macro, qui chiamata \lemmaref checontenga solo al terzo argomento del comando inter-no. Il compositore dovrebbe usare semplicemente\equref ed otterrebbe in lingua l’equivalente di“equazione 1 sub lemma Alpha Carinae”, conle parti in neretto cliccabili. Qui l’intera definizio-ne di \equref svolge questi compiti: nella riga 1,tramite il comando speciale \ifcsdef, disponibilemediante il pacchetto etoolbox (Lehman, 2011), siverifica se al momento dell’esecuzione del comandointerno l’etichetta a cui fare riferimento è associataal riferimento interno con i cinque argomenti. Ilrisultato di questo test decide se eseguire i coman-di del primo gruppo (righe da 2 a 8) o quello delsecondo (riga 9). Se sono da eseguire i comandi delprimo gruppo definisce la macro \lemmaref conil contenuto del terzo argomento (vedi più sottonelle righe 14 e 15, la definizione di \LemmaRef)che contiene il titolo del lemma. Usa poi questanuova macro per definire l’argomento da passareal comando \hyperref, il comando definito dalpacchetto hyperref che crea il collegamento iperte-stuale. Si usano le definizioni ‘espanse’ per usare icontenuti correnti delle varie macro; questa è unadelle forme di programmazione accessibile solo me-
diante i comandi primitivi di TEX e non si possonousare i comandi di LATEX.
1 \newcommand*\equref[1]{\ifcsdef{r@#1}{%2 \edef\lemmaref{\expandafter\LemmaEqu3 \csname r@#1\endcsname}%4 \edef\argomentoperhyperref{%5 [lm@\lemmaref]{\lemmaref}}%6 \textbf{\autoref{#1}} \ofentry\7 \textbf{\expandafter\hyperref8 \argomentoperhyperref}%9 }{eq.~??}}
10
11 \def\diz@thirdoffive#1#2#3#4#5{#3}12 \def\diz@secondoffive#1#2#3#4#5{#2}13 \def\diz@firstoffive#1#2#3#4#5{#1}14 \def\LemmaEqu#1{%15 \expandafter\diz@thirdoffive#1}
Complicato? Sì, ma funziona correttamente.
3.3 Tabelle che fuoriescono nel margineesterno
Sono stati creati sia un comando sia un ambienteper collocare le tabelle leggermente più larghe siuna colonna in modo che fuoriescano nel margineesterno. Ciascuno presenta vantaggi e svantaggi;l’ambiente consente di mantenere la tabella mobileinserendola dentro un ambiente table e, almenoal secondo passaggio del compilatore, dovrebbelasciar sporgere la tabella dal lato giusto rispettoalla parità del numero della pagina, non necessa-riamente rispetto alla colonna esterna che non sipuò conoscere prima dell’esecuzione della routined’uscita. Il comando, invece, non produce una ta-bella mobile, e l’utente deve scegliere la posizionenel file sorgente in modo che la tabella sporga dallato giusto.Per risolvere il problema avremmo potuto ri-
correre al pacchetto wrapfig, ma quando abbiamoscritto questa classe questo pacchetto non era anco-ra documentato convenientemente. Oggi potremmoriscrivere questa parte della classe, ma siccome quelche abbiamo fatto funziona in modo soddisfacente,riteniamo che non sia il caso di modificare ciò chefunziona abbastanza bene. Ricordiamo inoltre chele figure avvolte dal testo di wrapfig presentanonon pochi inconvenienti descritti dall’autore delpacchetto nella sua documentazione. Non dico chela nostra soluzione sia migliore di quella di DonaldArsenau (Arsenau, 2003), ma presenta difetti di-versi e, forse perché ci abbiamo fatto l’abitudine,ci sembrano meno importanti di quelli di wrapfig.Qui ci limitiamo a descrivere l’ambiente, che
funziona pressappoco come tabular e deve essereinserito dentro un ambiente table con il quale sipuò inserire la didascalia al solito modo. L’uso diquesto ambiente segue la sintassi seguente:
\begin{table}\caption[〈didascalia breve〉]{〈didascalia〉}
37
Claudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
\label{〈etichetta〉}\begin{Wtabular}{〈specifiche delle colonne〉}〈filetti e righe della tabella〉\end{Wtabular}\end{table}
Al posto della didascalia numerata, che si ottienecon il comando \caption, si possono usare, senzaargomento facoltativo, i comandi \scaptiona e\scaptionb che consentono di comporre una dida-scalia senza numero e collocata sopra (above) osotto (below) l’oggetto a cui si riferisce.Nel codice che realizza questo ambiente prima
bisogna aver definito alcuni registri dimensionalie un comando il cui contenuto è il numero dellapagina corrente, se è la prima volta che l’ambienteviene usato; altrimenti è il secondo argomento dellalista interna di argomenti generati dal comando\label con la sua ridefinizione da parte di hyperref.Dopo, l’ambiente Wtabular è definito in modo dafarne l’uso corretto così da far sporgere la tabelladal lato giusto:
1 \newsavebox{\widebox}2 \newcount\t@bella \t@bella=\z@3 \newcount\p@gina4 \def\PaginaTabella#1{\ifx#1\relax5 \value{page}\else6 \expandafter\diz@secondoffive#1\fi}7
8 \newenvironment{Wtabular}[2][c]{%9 \widet@ble\linewidth
10 \advance\widet@ble\columnsep11 \advance\widet@ble\marginparwidth12 \global\advance\t@bella\@ne13 \edef\@tempB{dzt@\the\t@bella}%14 \expandafter\label15 \expandafter{\@tempB}%16 \begin{lrbox}{\widebox}%17 \begin{tabular}{#2}%18 }{%19 \end{tabular}\end{lrbox}%20 \p@gina=21 \expandafter\PaginaTabella%22 \expandafter{23 \csname r@\@tempB\endcsname}%24 \ifodd\p@gina25 \def\@tempA{l}26 \else27 \def\@tempA{r}28 \fi29 \ifdim\wd\widebox>\widet@ble30 \ClassWarning{dictionarySCR}%31 {Table is too wide!}%32 \fi33 \makebox[\linewidth][\@tempA]%34 {\box\widebox}%35 \ignorespaces}
Come si vede nelle righe 29-34, l’ambiente com-pone la tabella sporgente dal lato opportuno, ma
quando la tabella è troppo larga si limita a emet-tere un avviso; in questo caso basta togliere la Wdal nome dell’ambiente nel file sorgente dove si eraintrodotto il codice per la tabella larga; si aggiungeanche un asterisco all’ambiente table circostante,che diventa l’ambiente table*, e la tabella, troppolarga per una colonna e il suo margine, diventatranquillamente una tabella a piena pagina senzabisogno di apportare correzioni importanti. Si notiper altro che la tabella sporgente, grazie al suo am-biente Wtabular può sporgere nel margine esternoanche se la tabella viene composta a piena paginamediante l’ambiente table*.Si noti ancora che l’etichetta interna generata
con la costruzione sintattica delle righe 14-15 ècostituita dal prefisso dzt@ seguito dal numero chel’ambiente ha creato aggiungendo l’unità (\@ne) alcontatore TEX \t@bella; è importante che questoaumento di una unità sia globale, in modo che ognisuccessiva tabella larga, dovunque si trovi lungotutta la serie di file che costituiscono il dizionario,abbia il suo numero univoco, affinché l’etichetta siaunivoca; per questo è specificata la dichiarazione\global. Questo non sarebbe stato necessario se sifosse definito un contatore LATEX, diciamo t@bella,perché con quello si sarebbe potuto specificarel’aumento di una unità mediante l’espressione:
\stepcounter{t@bella}
che in LATEX produce l’incremento unitario in modoglobale. Il contatore LATEX avrebbe richiesto unaprogrammazione leggermente più complessa neglialtri punti della definizione dell’ambiente, ed è perquesto che abbiamo scelto un contatore TEX.
4 Altre considerazioniLa classe dictionarySCR presenta molte altre carat-teristiche; per ragioni di brevità qui ne abbiamoesposte e descritte solo alcune, secondo noi le piùimportanti.Ma ci sono anche mezzi per “strutturare” lem-
mi con descrizioni lunghe creando loro una speciedi mini-indice iniziale e dei comandi per i titolinirelativi alle sezioni in cui è strutturato il lemmain questione. Ci sono modi di inserire medaglionicon sfondo colorato; per comporre i cataloghi dellestelle in modo che le righe della tabella, piuttostolarghe perché hanno un decina di colonne, sianoalternativamente su uno sfondo leggermente colo-rato oppure bianco, al fine di aiutare l’occhio arestare sulla riga giusta; sullo schermo l’effetto ègradevole; stampato a colori su carta è altrettantogradevole, ma in tonalità di grigio le ombreggia-ture di sottofondo forse sono troppo chiare. Lefigure in colonna possono avere didascalie sopra osotto; ogni didascalia presenta una grossa puntadi freccia diretta verso la figura a cui la didascaliasi riferisce.
38
ArsTEXnica Nº 14, Ottobre 2012 Una classe per comporre un dizionario
Si possono comporre di default testi e citazioniin diverse lingue che includono oltre all’italiano,l’inglese, il francese, il tedesco, il latino e il gre-co classico; la lingua principale è specificata nelleopzioni di \documentclass. A seconda della lin-gua specificata, il comando \ofentry che comparenella definizione di \equref verrà modificato auto-maticamente in corrispondenza alla lingua scelta:“sub lemma”, “sub entry”, “sous l’article”, “untendas Stichwort”, e anche le traduzioni latina “sublemmate” e greca “ὑπὸ τὸν εἴσοδον”. Queste due ul-time traduzioni sono evidentemente delle forzature,visto che non immaginiamo che venga compostoun dizionario in latino o in greco classico, ma l’ab-biamo fatto per simmetria e per coerenza; e poinon si sa mai. . .
Se si vogliono inserire citazioni in lingue scrittecon ideogrammi bisogna compilare con X ELATEXusando la classe xdictionarySCR, avendo cura di spe-cificare nel preambolo i font giusti e in particolarel’associazione lingua-font; per esempio, una riga diideogrammi giapponesi può venire semplicementescritta dentro un ambiente japanese (da definireda parte dello scrittore), cosicché il programmafaccia tutto da solo. La difficoltà, caso mai, non ètanto nel comporre, quanto nel conoscere la linguaorientale da scrivere, il giapponese nell’esempiospecifico; inoltre l’immissione di caratteri kataka-na, hiragana e kanji con una tastiera occidentalenon è la cosa più facile di questo mondo; il sistemaoperativo Mac OS X delle macchine Macintoshconsente di usare una tastiera virtuale e per ilgiapponese offre un metodo particolare di scrittu-ra; l’editor emacs (forse anche l’editor Aquamacs)consente una modalità particolare di immissionedegli ideogrammi orientali, ma il problema resta enon può essere risolto con la classe. Certo si puòprovare ad eseguire la tecnica del copia e incollada altri testi, ma è possibile che il metodo falli-sca se non c’è una perfetta corrispondenza fra gliideogrammi contenuti nel file da cui si copia congli ideogrammi contenuti nel font usato per com-porre il documento dove si incolla. Questi, però,sono problemi che lasciamo volentieri a coloro checonoscono il giapponese e che desiderano scrivereun dizionario che contenga parti in questa lingua.
Naturalmente non è una cosa straordinaria checi siano stati dei problemi quando si affronta unprogetto così complesso. In realtà non è molto com-plesso costruire e usare una classe per comporreun dizionario; è complesso comporre il Dizionariodi Astronomia a causa delle lingue, degli alfabe-ti, delle informazioni strutturate sotto forma diequazioni, tabelle, e simili. Uno dei due autori hacominciato a scrivere un Dizionario di TerminiMarinareschi nel comporre il quale non incontrale difficoltà del primo dizionario, grazie al fattoche in questo secondo non è necessario ricorrere amolta informazione fortemente strutturata.
Ecco perché la classe è ancora al livello “alpha”.Anche durante la stesura di questo articolo abbia-mo avuto necessità di fare qualche piccolo aggiusta-mento di “fine tuning” di alcune macro che presen-tavano ancora alcuni difettucci nati, per esempio,da aggiornamenti della distribuzione TEX Live allaversione del 2012: un caso tipico è stato l’aggior-namento di hyperref, che ha richiesto di modificarequalche nostra macro. Anche se ormai la cosa suc-cede molto raramente (e nel secondo dizionarionon è successo mai), talvolta i mark delle testatinenon corrispondono a quello a cui dovrebbero cor-rispondere. Nonostante tutte le cure, è proprio ilconcetto stesso di dizionario a due colonne che tal-volta mette in crisi il programma di composizione.Abbiamo messo in opera tutti i patch di cui siamostati capaci, ma in qualche raro caso nel Dizionariodi Astronomia presenta qualche problema dovutoall’algoritmo asincrono che usano i programmi dicomposizione per spezzare il testo in colonne epredisporre la pagine per il file di uscita.Questo processo asincrono produce anche delle
nuove rigidezze nel sistemare le numerose figure etabelle e abbiamo cercato di trovare il modo piùdelicato possibile per convincere il programma anon lasciare colonne mozze. Tutto sommato siamoabbastanza soddisfatti e abbiamo anche la grati-ficazione che il nostro lavoro abbia potuto essereusato per comporre altri dizionari di cui uno inuna disciplina come lo scintoismo, che non ha nul-la a che vedere con il dizionario tematico da cuieravamo partiti.Elenchiamo molto succintamente alcuni degli
altri piccoli problemi che abbiamo incontrato: ilproblema della impostazione corretta dei comandiper scrivere in greco, che inizialmente, senza volerattivare tutti i marchingegni di babel, avevamoridefinito completamente per poi ricorrere a solu-zioni trovate sul Forum guIt (grazie a tutti coloroche hanno usato il Forum sia per domandare siaper rispondere); la colorazione di background delletabelle; le tabelle mobili poco sporgenti nel margi-ne esterno, di cui abbiamo creato diversi comandi oambienti, non solo quello descritto qui; le didasca-lie da inserire sopra o sotto gli oggetti mobili a cuisi riferiscono, ma indipendentemente dal tipo dioggetto; la gestione del font di default in modo dapoter usare un comando equivalente a \HUGE, chenon fa parte dei comandi predefiniti né nelle classistandard, né nelle classi Koma Script; nonostanteun certo numero di lingue fossero precaricate, laloro corretta gestione in modo che fosse il compo-sitore a decidere quale fosse la lingua principalesenza dover editare la classe stessa. In un modo onell’altro li abbiamo risolti tutti.Attualmente stiamo lavorando all’unione del-
le due classi, quella per pdfLATEX e quella perX ELATEX, in modo che sia quest’unica nuova classea decidere quali pacchetti caricare e quali macro
39
Claudio Beccari, Heinrich Fleck ArsTEXnica Nº 14, Ottobre 2012
usare a seconda del motore di composizione; lalingua greca in questo caso è il problema maggiore;con pdfLATEX si possono usare facilmente moltedelle strutture già usate in precedenza, ma bisognaaggiungere la possibilità di usare la codifica utf8per poter eventualmente introdurre il testo diretta-mente in greco; con X ELATEXnon ci sono problemi aintrodurre direttamente il testo greco, ma bisognaanche adattare al dizionario la stessa traslittera-zione in lettere latine corrispondente alla codificaLGR; oggi si dispone di pacchetti adatti a questoscopo, ma bisogna eseguire degli adattamenti peril (nostro) dizionario e la nostra classe.
Riferimenti bibliograficiIn questa lista di riferimenti bibliografici $TEXMFindica la cartella radice sul proprio hard diskdell’albero della distribuzione del sistema TEX.
Arsenau, D. (2003). «The wrapfig pac-kage». URL $TEXMF/doc/latex/wrapfig/wrapfig-doc.pdf.
Beccari, C. e Fleck, H. (2010). «I mark, questisconosciuti». ArsTEXnica, (9).
Beccari, C. e Gregorio, E. (2012). «The
Package imakeidx». URL $TEXMF/doc/latex/imakeidx/imakeidx.pdf.
Kohm, M. e Morawski, J.-U. (2012). «KomaScript – The Guide». URL $TEXMF/doc/latex/koma-script/scrguien.pdf.
Lehman, P. (2011). «The etoolbox package». URL$TEXMF/doc/latex/etoolbox/etoolbox.pdf.
van Oostrum, P. (2004). «Page layout in LATEX».URL $TEXMF/doc/latex/fancyhdr/fancyhdr.pdf.
Wilson, P. (2011). «The Memoir Classfor Configurable Typesetting – User Guide».URL $TEXMF/doc/latex/memoir/memman.pdf.Documentazione aggiornata da Lars Madsen.
. Claudio BeccariVillarbasse (TO)claudio dot beccari at gmaildot com
. Heinrich FleckTodi (PG)heinrich dot fleck at yahoodot it
40