
Estoy usando el glossaries
paquete en pdfLaTeX. estoy tratando de
Utilice las siglas escritas en versales en el cuerpo del texto.
y
para el índice, escriba en mayúscula la primera letra del nombre de cada entrada en el glosario.
Ya intenté mirar a mi alrededor pero no pude encontrar una solución.
Para obtener el glosario ejecuto el comando makeindex
definido de la siguiente manera:
"/usr/texbin/makeglossaries" %
Normalmente, cargo mis entradas desde 2 archivos externos, pero no creo que este sea el problema ya que también tengo el mismo problema después de ejecutar mi MWE. De todos modos, para mostrar los comandos que estoy usando los inserté como comentarios en el MWE.
Además, no estoy seguro de si esto es importante, pero uso MinionPro como fuente principal y KOMA-Script.
Mi MWE se basa en este hilo: http://www.latex-community.org/forum/viewtopic.php?f=5&t=9966
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}
% \input{./text/glossary}
% \loadglsentries{./text/symbols}
\makeglossaries
\newacronym{pcm} {PCM} {phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
name = {\null$\Delta H_{fus}$},
description={latent heat of fusion}}
\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.
\textsc{This is small caps. PCM pcm }
\renewcommand{\glsnamefont}[1]{\makefirstuc{#1}}
\printglossary[type=slg, style=long, nonumberlist=true]
\renewcommand{\glsnamefont}[1]{\MakeUppercase{#1}}
\printglossary[type=acronym, style=long]
\end{document}
Aquí está el resultado:
Lo único que se escribe con mayúscula es Fus del entorno matemático y realmente no entiendo cómo sucede esto. Todo lo demás (opción de versalitas y descripción en mayúsculas) simplemente no funciona.
¿Alguien puede explicarme qué estoy haciendo mal?
Respuesta1
Como se menciona en los comentarios, sus acrónimos no aparecen en versalitas porque los ha definido en mayúsculas. Dijiste que las mayúsculas de la descripción no han funcionado. Esto se debe a que no has realizado ningún cambio relacionado con la descripción. \glsnamefont
se aplica al nombre, no a la descripción. Es necesario definir un nuevo estilo que haga que la descripción comience con una letra mayúscula:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}
\makeglossaries
\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
name = {\null$\Delta H_{fus}$},
description={latent heat of fusion}}
\newglossarystyle{long-ucdesc}{%
\setglossarystyle{long}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\Glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
}%
}
\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.
\textsc{This is small caps. PCM pcm }
\printglossary[type=slg, style=long-ucdesc, nonumberlist=true]
\renewcommand{\glsnamefont}[1]{\MakeUppercase{#1}}
\printglossary[type=acronym, style=long]
\end{document}
Esto produce:
A continuación se define un estilo que hace que las letras iniciales de la descripción sean mayúsculas:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}
\makeglossaries
\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
name = {\null$\Delta H_{fus}$},
description={latent heat of fusion}}
\newglossarystyle{long-ucdesc}{%
\setglossarystyle{long}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\Glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
}%
}
\makeatletter
\newglossarystyle{long-initcapsdesc}{%
\setglossarystyle{long}%
\renewcommand{\glsnamefont}[1]{\MakeUppercase{##1}}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\protected@edef\thisdesc{\glsentrydesc{##1}}%
\xcapitalisewords{\thisdesc}\glspostdescription\space ##2\tabularnewline
}%
}
\makeatother
\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.
\textsc{This is small caps. PCM pcm }
\printglossary[type=slg, style=long-ucdesc, nonumberlist=true]
\printglossary[type=acronym, style=long-initcapsdesc]
\end{document}
Resultado:
Si tiene al menos la versión 4.22 de glossaries
, puede usar \glsentrytitlecase
en su lugar:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[toc=true,smallcaps,section,nonumberlist,acronym,nomain]{glossaries}
\newglossary{slg}{sym}{syb}{Nomenclature}
\makeglossaries
\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
name = {\null$\Delta H_{fus}$},
description={latent heat of fusion}}
\newglossarystyle{long-ucdesc}{%
\setglossarystyle{long}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\Glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
}%
}
\newglossarystyle{long-initcapsdesc}{%
\setglossarystyle{long}%
\renewcommand{\glsnamefont}[1]{\MakeUppercase{##1}}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glsentrytitlecase{##1}{desc}\glspostdescription\space ##2\tabularnewline
}%
}
\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.
\textsc{This is small caps. PCM pcm }
\printglossary[type=slg, style=long-ucdesc, nonumberlist=true]
\printglossary[type=acronym, style=long-initcapsdesc]
\end{document}
Conglossaries-extra
puedes hacer uso del glossdesc
atributo:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[section,nonumberlist,acronym,nomain]{glossaries-extra}
\newglossary{slg}{sym}{syb}{Nomenclature}
\makeglossaries
\setabbreviationstyle[acronym]{long-short-sc}
\newacronym{pcm}{pcm}{phase change material}
\newglossaryentry{sym:hfus}{type=slg,sort={pl:h},
name = {\null$\Delta H_{fus}$},
description={latent heat of fusion}}
\glssetcategoryattribute{acronym}{glossdesc}{title}
\glssetcategoryattribute{general}{glossdesc}{firstuc}
\begin{document}
Sample: \gls{sym:hfus}. \gls{sym:hfus}. \gls{pcm}. \gls{pcm}.
\textsc{This is small caps. PCM pcm }
\printglossary[type=slg, style=long, nonumberlist=true]
\printglossary[type=acronym, style=long]
\end{document}