Pàgines

Es mostren els missatges amb l'etiqueta de comentaris makeindex. Mostrar tots els missatges
Es mostren els missatges amb l'etiqueta de comentaris makeindex. Mostrar tots els missatges

dimarts, 6 d’agost del 2013

Glossaris amb el paquet glossaries

Usant makeindex per crear glossaris

En l’article Glossaris amb BibTeX ja vàrem veure com crear glossaris senzills amb l’ajut del paquet gloss i BibTeX   En aquesta ocasió veurem com fer-los amb el paquet glossaries, un paquet molt potent que utilitza la feina que fa en segon terme el paquet makeindex (o xindy) per crear glossaris amb enllaços a les pàgines d’ocurrència.

El paquet es crida al final del preàmbul del document després d’hyperref amb diferents opcions, per exemple:
\usepackage[style=treehypergroup,nolong,nosuper,%
%style=nolong,%
%style=nosuper,%
%style=long,%
%style=list,%
%style=super,%
toc,% % surt a la TaulaDeContinguts
translate=false,% % perquè aparegui la traducció catalana
%numberline, % a la TdC alinea al text i no als números
%acronym,% % per l'ús d'acrònims
numberedsection,% % numera (capítol o secció) el Glossari a la TdC
%description,% % permet el camp 'descripció' de les entrades
%footnote,% % posa els textos en notes al peu
%smallcaps,% % escriu els termes en versaletes
]{glossaries}
Ara cal crear les entrades del glossari amb el comandament
\newglossaryentry{etiqueta}{opcions}
per exemple:
\newglossaryentry{etiqueta}{%
name={Nom de l'entrada tal com apareixerà al document},%
description={Breu descripció. Per deixar-ho en blanc escriure description=\nopostdesc. Per fer paràgrafs: \glspar},%
descriptionplural={Plural de la descripció},%
first={Com es veurà l'entrada quan s'utilitzi per primer cop. Si està en blanc s'usa name},%
plural={Com es veu l'entrada quan s'usa \glspl. Si no es diu res s'afegirà al name una s final},%
firstplural={Com es veu l'entrada quan s'usa per primera vegada \glspl},%
symbol={Per associar un símbol a l'entrada, si es deixa en blanc s'associa \relax},%
symbolplural={Per posar el plural del símbol},%
sort={Per indicar com s'ha de classificar alfabèticament},%
type={Etiqueta del glossari al que pertany l'entrada, si no es diu res és el glossari per defecte.},%
see=[vegeu també]{Etiqueta d'una altra entrada per enllaçar-la},%
parent={etiqueta de l'entrada de la que penja pels glossaris en arbre}%
}
A l’exemple següent hem aprofitat el camp symbol per escriure en cursiva el nom científic de l’espècie, hem creat una referència creuada a una altra entrada al camp see i la fem penjar d’una entrada "pare" que recull les entrades d’espècies de rèptils:
\newglossaryentry{tortugaestany}{%
name={tortuga d'estany},%
description={és la tortuga d'aigua autòctona dels Països Catalans i es troba en un estat de conservació de perill d'extinció per culpa de la degradació del seu hàbitat i de la competència d'espècies introduïdes per l'home com la tortuga d'orelles vermelles o la tortuga d'orelles grogues},%
plural={tortugues d'estany},%
symbol={\textit{Emys orbicularis}},%
see=[vegeu també]{tortugarierol},%
parent={reptil}
}
Les entrades es poden posar al preàmbul del propi document, o millor encara, en un document a part que es crida amb el comandament
\loadglsentries{NomFitxerAmbEntradesSenseExtensió}
Finalment activem la creació del glossari amb \makeglossaries, similar al clàssic \makeindex.

Al lloc del document on volem que aparegui el glossari hi posem \printglossary[title=Títol].

El paquet no té traducció catalana per la qual cosa al preàmbul cal fer-ne la traducció dels termes:
\usepackage[catalan]{babel}
\usepackage[catalan]{translator}
\addto\captionscatalan{%
\renewcommand*{\glossaryname}{Glossari}%
\renewcommand*{\acronymname}{Relació d'entrades}%
\renewcommand*{\entryname}{Notació}%
\renewcommand*{\descriptionname}{Descripció}%
\renewcommand*{\symbolname}{Símbol}%
\renewcommand*{\pagelistname}{Pàgina}%
\renewcommand*{\glssymbolsgroupname}{Símbols}%
\renewcommand*{\glsnumbersgroupname}{Nombres}%
}%
Ara ja estem en disposició d’utilitzar els termes del glossari al document. Quan en el nostre text n’apareix un el podem inserir amb algun d’aquests comandaments:

  • \gls{etiqueta} escriurà el contingut del camp name tal com està definit. 
  • \Gls{etiqueta} escriurà el contingut del camp name amb la inicial majúscula. 
  • \glspl{etiqueta} escriurà el contingut del camp plural tal com està definit. 
  • \Glspl{etiqueta} escriurà el contingut del camp plural amb la inicial majúscula. 

Un cop tenim escrit el document hem de seguir aquestes passes per passar-lo a PDF:

1: Processem el document amb
pdflatex NomDelDocument
un parell de cops per crear totes les referències creuades i la TdC.

2: Creem el glossari amb el comandament
makeglossaries NomDelDocument
3: Finalment tornem a processar amb
pdflatex NomDelDocument
Podeu veure el resultat de l’ús del glossari amb l’estil d’arbre (entrades "pare" de la que pengen subentrades) al fitxer PDF adjunt. També trobareu adjunts el document tex font per estudiar-ne el codi o usar-lo de plantilla i el document amb les entrades del glossari.

Publicat per primera vegada el divendres 27 de juliol de 2012.

dijous, 25 de juliol del 2013

Índexs alfabètics amb LaTeX —i III— Diversos índexs en un document

Amb el paquet index podem tenir un índex d’espècies, un altre de llocs, un tercer de noms, etc.

Si amb el paquet makeindex aconseguim uns índexs impecables, ara treballant juntament amb el paquet index podem obtenir-ne més d’un. Només cal definir-los al principi del document, al preàmbul, i després de cridar al paquet.

Mireu aquest exemple:
\usepackage{makeidx}
\usepackage{index}
\newindex{vegetals}{vdx}{vnd}{Índex de plantes}
\newindex{animals}{adx}{and}{Índex d'animals}
\makeindex 
Hem definit 2 índexs: un per a noms de vegetals i un altre per a noms d’animals. El comandament \newindex té 4 arguments
\newindex{nomindex}{idx}{idn}{Títol de l'índex}

  1. nomindex el nom del nou índex, 
  2. idx l’extensió del fitxer d’índex que crea LaTeX, 
  3. idn l’extensió del fitxer d’índex que crea MakeIndex,
  4. Títol de l'índex el títol del nou índex. 

 Així, seguint amb l’exemple:
\newindex{vegetals}{vdx}{vnd}{Índex de plantes}

  1. vegetals és el nom intern de l’índex
  2. vdx és l’extensió del fitxer on LaTeX desarà les entrades de l’índex de vegetals
  3. vnd és l’extensió del fitxer que crearà MakeIndex amb les entrades ordenades
  4. Índex de plantes és el títol que s’imprimirà a l’inici d’aquest índex.

Al cos del document ara haurem de dir cada entrada a quin índex pertany:
\index[nomindex]{entrada},
per exemple:
\index[vegetals]{arbres!Roure} 
o \index[animals]{Zebra}.

Al punt del document on vulguem que s’imprimeixi l’índex haurem d’escriure:
\printindex[vegetals]
\printindex[animals] 
Per obtenir el document correctament indexat haurem de seguir aquests tres passos:

1er pas: fer una primera compilació del document tex per a què LaTeX creï els fitxers amb les entrades d’índex, adx i vdx en el nostre cas.

2on pas: apliquem el programa MakeIndex per generar els fitxers amb extensió *nd amb les entrades ordenades i formatades:
 — per l’índex d’animals makeindex -o nomdoc.and -s estilindex.ist nomdoc.adx
 — per l’índex de plantes makeindex -o nomdoc.vnd -s estilindex.ist nomdoc.vdx

3er pas: tornem a compilar dos cops amb Pdflatex per obtenir el document resultat: pdflatex nomdoc.tex 

És molt possible que si estem utilitzant un entorn integrat per generar els documents PDF, com ara TeXNicCenter sota Windows o Kile sota Linux, haguem de recórrer a realitzar el segon pas des de la línia d’ordres perquè la pròpia configuració del programa no ens ho permetria.

Observeu en el document PDF adjunt el resultat obtingut al crear aquests dos índexs del document. També trobareu el fitxer tex font des d’on s’ha generat el resultat per poder-ne estudiar el codi.

Publicat per primer cop el divendres 24 de novembre de 2006

dimecres, 24 de juliol del 2013

Índexs alfabètics amb LaTeX —II— Donar-los format

El programa makeindex permet donar format a l’índex d’un document

Vam veure en l’article Índexs alfabètics amb LaTeX com crear l’índex d’un document amb el paquet i el programa makeindex. En aquest veurem com crear un fitxer d’estil d’índex per tal d’associar-li un format que, al processar-lo, quedarà reflectit en el resultat final del nostre document. Primer veiem com treballa el programa makeindex:

  1. Partim d’un document nomdoc.tex on hem inclòs l’ús del paquet makeindex, hem introduït els comandaments \makeindex i \printindex i hem marcat les entrades que volem reflectir a l’índex \index{entrada}
  2. Quan processem aquest document, LaTeX crea un fitxer amb extensió nomdoc.idx on queden anotades totes les entrades que hi ha trobat. 
  3. Aleshores entra en acció MakeIndex. El programa agafa les entrades “en brut” del fitxer nomdoc.idx, les ordena alfabèticament i les escriu en un fitxer amb extensió nomdoc.ind
  4. El pas final és una segona compilació del document, on LaTeX agafa el contingut del fitxer nomdoc.ind i el transcriu i l'inclou al nostre document PDF. 

Si en el tercer pas apliquem un fitxer d’estil d’índex amb extensió ist, el que tindrem serà el fitxer nomdoc.ind no solament perfectament ordenat, sinó amb el format assignat. Això s’aconsegueix amb l’odre:
makeindex -o nomdoc.ind -s estilindex.ist nomdoc.idx 
on nomdoc és el nom del nostre document. És molt possible que si estem utilitzant un entorn integrat per generar els documents PDF, com ara TeXNicCenter sota Windows o Kile sota Linux, haguem de recórrer a realitzar el segon pas des de la línia d’ordres perquè la pròpia configuració del programa no ens ho permetria.

Quin format es pot associar a l’índex?

  • podem triar entre que hi apareguin com a títol, les lletres inicials de les entrades (A,B,C,..) o no. I si hi apareixen com, amb majúscules o amb minúscules i amb quin format (negreta, cursiva, família de lletra, etc). 
  • podem triar el separador entre l’entrada i el número de pàgina on es troba. Per defecte és una coma, però hi podem posar, per exemple, una línia de punts (\dotfill) o qualsevol altre caràcter. 
  • podem fer aparèixer algun caràcter abans d’una subentrada, com ara un guionet o un asterisc. 
  • també podem fer que les entrades que ocupen més d’una línia tinguin un sagnat més o menys gran.

Totes aquestes variables són les que s’escriuen al fitxer d’estil d’índex estilindex.ist i podem aplicar aquest estil tantes vegades com vulguem a documents diferents únicament cridant-lo a l’hora de crear l’índex.
Vet aquí un exemple del contingut del fitxer estilindex.ist:
 %% fitxer d'estil de l'índex
preamble "\n \\begin{theindex} \n"
postamble"\n\n \\end{theindex} \n"
delim_0 "\\dotfill " %delimitador entre l'entrada de nivell 0 i el número de pàgina. Per defecte la coma, aquí punts.
delim_1 "\\dotfill " %delimitador entre l'entrada de nivell 1 i el número de pàgina. Per defecte la coma, aquí punts.
item_0 "\n \\item " %comandament a introduir entre dues entrades de nivell 0. Aquí cap.
item_1 "\n \\subitem --- " %comandament a introduir entre dues entrades de nivell 1. Aquí un guió llarg.
item_01 "\n \\subitem --- " %comandament a introduir entre dues entrades una de nivell 0 i l'altra de nivell 1. Aquí un guió llarg.
item_x1 "\n \\subitem --- " %comandament a introduir entre dues entrades una de nivell 0 i l'altra de nivell 1 quan a la primera
 %no hi ha número de pàgina associat. Aquí un asterisc.
headings_flag 1 %Fa aparèixer el rètol de la lletra. Per defecte 0, sense rètol. Valors positius lletra majúscula. Negatius minúscula.
heading_prefix "\\centerline{\\bfseries\\sffamily " %Text a escriure abans de començar la lletra. Per defecte res. Aquí s'escriurà la lletra en negreta i SansSerif.
heading_suffix "}\\nopagebreak\n" %Text a escriure després de començar la lletra. Aquí res.
indent_length 64 %espai del sagnat d'una segona línia en una entrada.
suffix_mp " i seg\\¨\\u ents" %afegitó després del número de pàgina cas que hi hagi més d'una citació a l'entrada.
%% 
Vegeu en els documents adjunts el resultat obtingut en el fitxer PDF, i en el fitxer comprimit el document font tex d’on s’ha partit i el fitxer d’estil d’índex estilindex.ist emprat.

Publicat per primera vegada el diumenge 12 de novembre de 2006.

Índexs alfabètics amb LaTeX —I—

L’índex terminològic alfabètic ajuda al lector a trobar fàcilment allò que busca

Ja sabem que amb LaTeX és ben fàcil crear una Taula de continguts o Índex dels capítols, seccions i subseccions d’un document. En aquest article, però, veurem que també és molt fàcil crear un índex terminològic, normalment al final del document, on quedin reflectits i ordenats alfabèticament els termes més importants del document, així com la pàgina, o pàgines, on es troben.

Per crear un índex hem de fer ús del paquet i programa makeindex que ens ajuda a crear-lo, ordenar el termes alfabèticament i, si convé, donar-li format. La sintaxi és ben senzilla: al preàmbul del document cridem el paquet i, a continuació arrenquem el comandament makeindex:
\usepackage{makeidx}
\makeindex 
Al cos del document hem d’anar marcant les entrades que volem que apareguin a l’índex amb el comandament:
\index{entrada} 
i al lloc on vulguem que s’imprimeixi l’índex terminològic, normalment al final del document, posarem
\printindex
Les entrades poden ser simples, del tipus \index{entrada}, o bé ser subentrades dins d’una altra entrada, cosa que aconseguim escrivint:
\index{entrada!subentrada}

Per exemple, podem fer aparèixer Alzina a l’índex amb \index{Alzina}, però podem fer que aparegui com a subentrada d’arbres amb \index{arbres!Alzina} o, fins i tot, com a subsubentrada d’arbres/de fulla caduca/Alzina amb: \index{arbres!de fulla caduca!Alzina}.

Com es genera l’índex? Quan compilem per primera vegada el document font tex, LaTeX anirà copiant totes les entrades d’índex que hi trobi a un fitxer amb extensió idx sobre el que, després, actuarà MakeIndex. Aquest programa el que fa és ordenar alfabèticament totes les entrades, associar-les al seu número o números de pàgina i crear una estructura d’entorn amb ítems i subítems que desa en un fitxer d’extensió ind i que, després, incorporarà al document compilat. Si utilitzem, alhora, el paquet hyperref, veurem que els números de pàgina queden enllaçats de forma que fent-hi clic a sobre tornem a la pàgina on es troba el terme.

Al fitxer PDF adjunt es pot veure el resultat de l’aplicació del paquet makeidx en un document tex font.

Publicat per primera vegada el diumenge 24 de setembre de 2006, dia del 50è aniversari de l'autor.