Pàgines

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

divendres, 26 de juliol del 2013

Un primer cop d’ull a l’índex

El paquet shorttoc crea un primer índex menys detallat

A vegades la Taula de continguts és massa detallada i no ens permet apreciar l’organització general del document. El paquet shorttoc crea un índex menys detallat, i sota una altre nom si volem, abans de l’Índex o Taula de continguts del document, tant detallat com vulguem.

 El paquet shorttoc és molt senzill d’utilitzar. Primer el cridem al preàmbul del document amb \usepackage{shorttoc} i, just abans de l’índex del document (que creem amb l’usual \tableofcontents, inserim el comandament:
\shorttoc{títol}{profunditat}
Així, al document PDF adjunt, s’ha definit d’aquesta manera:
\shorttoc{Un cop d'ull}{0} 
i com que es tracta d’un informe (\documentclass{report}) posa en pàgines diferents el títol del document, aquest primer índex (sota el títol Un cop d’ull) i el segon índex (sota l’habitual títol d’Index).

La profunditat 0 permet que hi quedin representats només els capítols, amb 1, apareixerien capítols i seccions, etc.

El paquet té un altre comandament, \anothertoc que permet inserir al document actual la Taula de continguts, de Quadres o Figures d’un altre document.



Publicat per primer cop el dissabte 26 de maig de 2007.

dijous, 25 de juliol del 2013

Petites taules de contingut —I—

El paquet minitoc permet fer una taula de contingut de cada unitat del document.

La Taula de contingut d’un document és una part important perquè permet veure’n, de forma esquemàtica i ràpida, quina és la estructura i el contingut. Amb LaTeX crear-la és senzillíssim, només cal indicar-ho amb el comandament \tableofcontents i al processar el document ens la crearà al lloc desitjat.

Però a vegades, especialment quan es tracta d’un document llarg, pot ser interessant tenir una petita Taula de continguts d’una part, d’un capítol o d’una secció, a més de la taula general. Aquí és on ens pot ajudar el paquet minitoc.

minitoc és un paquet senzill de cridar, només cal indicar al preàmbul que el volem utilitzar escrivint \usepackage{minitoc} i un cop començat el document els comandaments:

  •  \dominitoc que crea les taules 
  •  \minitoc just després de la unitat sobre la que volem crear la petita taula de contingut. 

Per exemple, un informe amb taula de continguts per capítols tindria aquesta estructura:
\documentclass{report}
\usepackage{minitoc}
...
\begin{document}
\dominitoc
\chapter{Primer}
\minitoc
\section{Primera}
...
\section{Segona}
...
\chapter{Segon}
\minitoc
\section{Tercera}
...
\section{Quarta}
...
\end{document}
És un paquet molt flexible que permet molts nivells de personalització. Comencem per les opcions del paquet.

Per tal que aparegui la paraula Índex en català davant de la petita taula hem d’indicar-ho com opció del paquet.

També podem indicar si volem més o menys espai entre les línies del contingut de la taula amb loose (més espaiades) o tight, menys espaiades. Així es pot escriure:
\usepackage[loose,catalan]{minitoc} 
per obtenir l’idioma català i un espaiat gran a la taula de continguts.

Una altra opció és la profunditat de la petita taula de continguts. Aquesta variable la controlem variant el valor del comptador {minitocdepth} que per defecte pren el valor 2 però que podem incrementar amb \setcounter{minitocdepth}{3}.

La posició de la paraula Índex sobre cada petita taula la controlem variant l’opció del comandament \dominitoc, així pot apareìxer a l’esquerra (per defecte) al centre \dominitoc[c] o a la dreta \dominitoc[r].

 En el proper article de la sèrie veure com controlar el format de les petites taules: l’aparicó de les línies abans i després, el tipus de lletra, el sagnat, etc.

+info: documentació del paquet minitoc.

Exemples:



Publicat per primera vegada el dissabte 16 de desembre de 2006.

Í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.

dissabte, 20 de juliol del 2013

Modificar manualment l’índex

A l’índex podem fer aparèixer algun element sense entitat a l’estructura del document.

A vegades al nostre document hi pot haver algun punt que trobem tant interessant que ens agradaria que aparegués a l’índex. Però si no pertany a l’estructura del document, és a dir, si no és cap secció ni subsecció, LaTeX no el reflectirà de forma automàtica quan li ordenem fer l’índex amb \tableofcontents.

Per solucionar-ho, però, tenim el comandament \addcontentsline que afegeix un determinat text del cos del document a l’índex. La seva sintaxi és: 
\addcontentsline{ext}{UnitatEstructura}{Text} 
on ext és l’extensió del fitxer auxiliar on es desa la informació de l’índex de què es tracti:


índex extensió del fitxer
taula de contingut toc
llista de figures lof
llista de taules lot

A UnitatEstructura, que pot prendre els valors chapter (capítol), section (secció), subsection (subsecció), etc. indiquem a quin nivell volem que aparegui el Text a l’índex.

Fixeu-vos en aquest exemple: quan al cos del nostre document escrivim
 \addcontentsline{toc}{subsection}{A destacar} 
en acabat de compilar el fitxer de sortida veurem que a l’índex general del document (toc) apareixerà el text A destacar amb el número de la pàgina on es troba i sagnat al nivell de les altres subseccions. Això sí, no apareix numerat.

Hi ha un altre comandament relacionat que és \addtocontents. Aquest el que fa és que aparegui a l’índex corresponent un determinat text que pot ocupar vàries línies. Però en aquest cas no hi ha ni el número de la pàgina on es troba ni queda sagnat a cap nivell. Pot servir-nos, tanmateix, per posar “etiquetes” en un índex si les trobem necessàries. La sintaxi és:
\addtocontents{toc}{línia 1\\línia 2}
on toc és l’extensió del fitxer auxiliar i línia 1\\línia 2 és el text que apareixerà en aquestes dues línies consecutives.

Estudieu el resultat en el document PDF i, en acabat, podeu trobar l’explicació en el document text font. 

Publicat per primer cop el dimarts 20 de setembre de 2005

Índex o Taula de continguts?

Amb el paquet babel podem personalitzar els avant-títols dels nostres documents

El paquet babel és el que permet traduir els avant-títols de les diferents unitats de l’estructura d’un document de l’anglès a l’idioma que indiquem a l’opció. Així, si al preàmbul del document escrivim
\usepackage[catalan]{babel} 
farem que LaTeX, entre altres accions, escrigui Resum on nosaltres indiquem \abstract o Índex quan inserim el comandament \tableofcontents.

Però què passa si volem que aparegui Taula de continguts en lloc d’Índex? Com podem canviar-ho?

El paquet babel permet fer això en un document amb l’ordre \addto\captionscatalan{\renewcommand*{\comandament}{NomNou}}.

Seguint amb l’exemple del canvi Taula de continguts en lloc d’Índex hauríem de fer: \addto\captionscatalan{\renewcommand*{\contentsname}{Taula de continguts}}

Observeu que l’acció consisteix en afegir (addto) als avant-títols (captions) de l’idioma català (catalan) una redefinició del comandament (renewcommand) que és \contentsname (el nom dels continguts) amb l’atribut Taula de continguts. Fàcil, oi?

La pregunta següent és, ¿i quin és el nom de la resta d’avant-títols (Resum, Capítol, etc)? Vegem-ne alguns en aquesta llista:

comandament traducció catalana
\partname Part
\chaptername Capítol
\appendixname Apèndix
\abstractname Resum
\contentsname Índex
\bibname Bibliografia
\refname Referències
\indexname Índex alfabètic
\figurename Figura
\tablename Taula
\pagename Pàgina

Per acabar un altre exemple pràctic. Suposem que en un determinat treball adreçat a estudiants, fet amb la classe de document llibre (\documentclass{book}), volem substituir l’avant-títol Part per Tema i l’avant-títol Capítol per Unitat de manera que finalment el llibre tingui, posem per cas, tres Temes i cada Tema inclogui 4 Unitats. I tot això numerat segons l’estil llibre i on puguem trobar, per exemple, un Tema II Unitat 3.

Necessitem redefinir \partname i \chaptername i ho fem així: Escrivim al preàmbul:
 \addto\captionscatalan{\renewcommand*{\partname}{Tema} % 
 \renewcommand*{\chaptername}{Unitat}} 

Ara, quan inserim el comandament \part{Els nombres primers}, obtindrem com a resultat: Tema II Els nombres primers. I quan escrivim \chapter{Descomposició en factors primers} podem obtenir, per exemple, Unitat 3 Descomposició en factors primers.

 Mireu ara el fitxer tex de mostra i el resultat PDF obtingut per acabar-ne de veure el funcionament. 

+info sobre el paquet babel

Publicat per primera vegada el dissabte 3 de setembre de 2005