Quieres una lista de abreviaturas y términos, o una tabla de símbolos, al final del documento, con solo los términos que aparecen realmente en el texto y ordenados automáticamente. Si haces esa tabla a mano, cada término nuevo obliga a reordenar y ajustar numeración. LaTeX tiene dos herramientas dedicadas. El paquete glossaries y su sucesor moderno glossaries-extra construyen un glosario de términos y abreviaturas; el paquete nomencl está hecho para una nomenclatura, una lista de símbolos matemáticos. Como el índice y las referencias cruzadas, ambos funcionan marcando entradas en el cuerpo, ordenándolas con un programa externo y leyéndolas en una compilación adicional.
Glosarios — fundamentos
glossaries permite definir cada término, notación o abreviatura una vez en el preámbulo y luego llamarlo con un comando breve en el cuerpo. Primero carga el paquete y escribe \makeglossaries. Esa línea declara la apertura de los archivos del glosario; si la omites, no se produce ningún glosario. Una advertencia: si usas hyperref, carga glossaries después de hyperref, una excepción a la regla habitual de cargar hyperref al final.
Un término se define con \newglossaryentry{key}{name=..., description=...}. El primer argumento, key, es la etiqueta de referencia, una cadena arbitraria; el segundo es una lista de ajustes key=value, sobre todo name, el nombre mostrado, y description, la definición. Para usar el término en el cuerpo, escribe \gls{key}: inserta name y, a la vez, registra que el término debe aparecer en el glosario.
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{set}{%
name={set},
description={a collection of distinct objects}%
}
\newglossaryentry{matrix}{%
name={matrix},
plural={matrices},% 不規則な複数形を明示 / irregular plural
description={a rectangular array of numbers}%
}
\begin{document}
本文で \gls{set} と \glspl{matrix} に言及する。
\printglossary
\end{document}\gls tiene variantes para mayúscula inicial y plural; se cambia entre ellas modificando las letras iniciales. El plural generado automáticamente desde name solo añade “s”, así que una forma irregular como matrices debe indicarse explícitamente con la clave plural. Cuando la forma de referencia deba diferir del nombre mostrado, usa text; un símbolo asociado va en la clave symbol.
| Comando | Salida | Uso |
|---|---|---|
\gls{set} | set | Referencia ordinaria en minúscula |
\Gls{set} | Set | Mayúscula inicial, por ejemplo al inicio de frase |
\glspl{matrix} | matrices | Forma plural |
\Glspl{matrix} | Matrices | Plural con inicial mayúscula |
\glsdesc{set} | a collection of distinct objects | Inserta el campo description |
Acrónimos — expandir en el primer uso
Las abreviaturas tienen un comando dedicado, \newacronym{key}{short}{long}: short es la abreviatura, por ejemplo SVM, y long la forma completa, por ejemplo support vector machine. Al llamarlo con \gls{key}, cambia automáticamente: el primer uso muestra “forma larga (forma corta)” y los siguientes solo la forma corta. Así se aplica automáticamente la convención de escribir una abreviatura completa la primera vez que aparece. Para reunir acrónimos en una lista separada, carga el paquete como \usepackage[acronym]{glossaries}.
\usepackage[acronym]{glossaries}
\makeglossaries
\newacronym{svm}{SVM}{support vector machine}
\begin{document}
\gls{svm} は強力だ。% 初出: support vector machine (SVM)
その後も \gls{svm} を使う。% 2回目以降: SVM
\end{document}La marca de primer uso se sigue entrada por entrada en todo el documento. Para forzar que un término vuelva a escribirse completo desde cierto punto, usa \glsreset{key}; para reiniciar todas las entradas a la vez, \glsresetall. Si una descripción es tan larga que abarca párrafos, usa \longnewglossaryentry en lugar de \newglossaryentry.
Compilación — necesitas makeglossaries
Como con el índice, un glosario no aparece con una sola compilación. LaTeX solo escribe los términos registrados por \gls y similares en archivos auxiliares; no los ordena ni formatea. Para eso se ejecuta el programa externo makeglossaries, un script Perl que inspecciona la configuración del documento e invoca internamente makeindex o xindy según corresponda, produciendo un glosario ordenado. El procedimiento tiene tres pasos.
pdflatex mydoc # 用語をファイルへ書き出す / write the recorded terms
makeglossaries mydoc # 整列・整形(拡張子なし)/ sort & format (no extension)
pdflatex mydoc # 用語集を本文へ流し込む / pull the glossary into the documentDonde Perl no esté disponible, por ejemplo en Windows, makeglossaries-lite, escrito en Lua, hace el mismo trabajo. Si omites makeglossaries y solo vuelves a ejecutar pdflatex, el glosario queda en blanco, exactamente la misma trampa que olvidar makeindex para un índice. En Overleaf los pasos necesarios se ejecutan automáticamente en segundo plano, así que rara vez tienes que pensar en esta secuencia.
La forma moderna — glossaries-extra y bib2gls
Del mismo autor, Nicola Talbot, glossaries-extra es un paquete de nivel superior que extiende glossaries y es la configuración recomendada actualmente. El método de compilación moderno para combinarlo es bib2gls. La idea se parece a biber para bibliografías: reúnes los términos en un archivo .bib, y bib2gls selecciona solo los usados realmente en el cuerpo, los ordena y los incorpora. Un solo programa asume las funciones de makeindex/xindy: selección y ordenación.
Para usarlo, carga el paquete con la opción record: \usepackage[record]{glossaries-extra}. Esta es la clave de la integración con bib2gls: desactiva la indexación con makeindex/xindy y en su lugar escribe registros en el archivo .aux. Cada entrada del .bib usa un tipo como @entry para un término, @abbreviation para una abreviatura o @symbol para un símbolo.
@entry{set,
name = {set},
description = {a collection of distinct objects}
}
@abbreviation{svm,
short = {SVM},
long = {support vector machine}
}En el documento, en lugar de \input, cargas el .bib con \GlsXtrLoadResources[src={terms}]; src es el nombre de archivo sin extensión. Sigues usando un término con \gls{set}, pero como las entradas ya están ordenadas imprimes con \printunsrtglossary. unsrt significa unsorted: bib2gls ya las ordenó, así que se emiten tal cual.
\usepackage[record]{glossaries-extra}
\GlsXtrLoadResources[src={terms}]% terms.bib を読む / load terms.bib
\begin{document}
\gls{set} と \gls{svm} を本文で使う。
\printunsrtglossary
\end{document}Para compilar llamas a bib2gls en lugar de makeglossaries. La opción --group divide las entradas en encabezados por grupos de letras; puedes sustituir pdflatex por xelatex o lualatex.
pdflatex mydoc
bib2gls --group mydoc # .aux を読み .glstex を書き出す / read .aux, write .glstex
pdflatex mydocNomenclatura — el paquete nomencl
Cuando quieres una lista de símbolos al comienzo de un artículo, puedes hacerlo con glossaries, pero para símbolos solamente el paquete ligero nomencl es cómodo. Pon \usepackage{nomencl} y \makenomenclature en el preámbulo, marca cada símbolo donde aparece por primera vez con \nomenclature{symbol}{description}, y escribe \printnomenclature donde quieras la lista. Los símbolos son matemáticos, así que envuélvelos en $...$.
\documentclass{article}
\usepackage{nomencl}
\makenomenclature
\begin{document}
重力加速度を $g$ とする。%
\nomenclature{$g$}{gravitational acceleration}%
質量 $m$ の物体には $F = mg$ が働く。%
\nomenclature{$m$}{mass of the object}%
\nomenclature{$F$}{force}%
\printnomenclature
\end{document}Es habitual terminar la línea justo antes de \nomenclature con % para que no entre ningún espacio o salto de línea sobrante; un espacio alrededor del símbolo altera la ordenación. Para controlar el orden con precisión, puedes dar una clave de ordenación como argumento opcional: en \nomenclature[<prefix>]{symbol}{description}, <prefix> es lo que se ordena. Por ejemplo, una letra griega \sigma se ordenaría demasiado pronto por la barra inversa inicial, así que ajustas su posición con un prefijo: \nomenclature[g-sigma]{$\sigma$}{...}.
Compilar y ajustar nomencl
nomencl usa makeindex internamente. Con \makenomenclature, LaTeX escribe la información de símbolos en un archivo .nlo. El siguiente comando lo ordena usando el estilo nomencl.ist incluido con nomencl y produce la salida .nls. Compila una vez más y se lee .nls, con lo que aparece la nomenclatura.
pdflatex mydoc
makeindex mydoc.nlo -s nomencl.ist -o mydoc.nls
pdflatex mydocEl encabezado por defecto es el inglés “Nomenclature”. Puedes cambiarlo, por ejemplo con \renewcommand{\nomname}{List of Symbols}. Para incluirlo en la tabla de contenidos, carga el paquete como \usepackage[intoc]{nomencl}. También hay opciones que anotan cada entrada automáticamente: refpage añade “, page n” y refeq añade “, see equation (n)”. Para dividir símbolos en grupos, constantes físicas, variables, etc., puedes usar el prefijo de ordenación junto con una redefinición de \nomgroup para producir subgrupos con sus propios encabezados.
- Para un glosario de términos y abreviaturas, usa
glossaries/glossaries-extra. Expansión en el primer uso, plurales y capitalización son automáticos. - ¿Empiezas de cero? Usa
glossaries-extra+bib2gls. Escribe las entradas en un.bib, y\printunsrtglossaryemite solo los términos usados, ya ordenados. - Para una lista solo de símbolos matemáticos, usa
nomencl. Es ligero: marca con\nomenclaturey ejecutamakeindexuna vez. - Todos necesitan una compilación adicional. Inserta el programa externo (
makeglossaries/bib2gls/makeindex) y vuelve a ejecutar LaTeX.