Quiero usar versalitas falsas al hacer una lista de abreviaturas usando el glossaries
paquete. Estoy usando otra fuente, pero para fines de reproducibilidad en este ejemplo he usado Linux Libertine O
. Para aclarar las cosas, también he exagerado el factor de escala en este ejemplo. Por alguna razón, a veces parece que mi \smallCaps
comando funciona bien, pero en este caso no vuelve atrás. ¿Qué estoy haciendo mal?
\documentclass{memoir}
\usepackage{glossaries}
\usepackage{fontspec}
\newcommand{\smallCaps}[1]{%
{\fontspec[Scale=0.5]{Linux Libertine O} #1}%
}
\setacronymstyle{long-short}
\begin{document}
%ABBREVIATIONS
\newacronym{ADR}{\smallCaps{ADR}}{adverse drug reaction}
\setmainfont{Linux Libertine O}
Works \smallCaps{FOO} does not work: \gls{ADR}). A more specific definition
for the term \gls{ADR} is
\end{document}
Respuesta1
Nunca debes usarlo \fontspec
dentro del documento; Es un comando genérico utilizado por los comandos de nivel de usuario \setmainfont
y \newfontfamily
similares. Además, \setmainfont
sólo debe utilizarse en el preámbulo.
Eliminé la \setmainfont
declaración sólo para mostrar cómo se elige la fuente independientemente de la fuente principal. La clave es utilizar la short
clave en \newacronym
.
\documentclass{memoir}
\usepackage{glossaries}
\usepackage{fontspec}
\newcommand{\smallCaps}[1]{%
{\fontspec[Scale=0.5]{Linux Libertine O} #1}%
}
\setacronymstyle{long-short}
\begin{document}
%ABBREVIATIONS
\newacronym{ADR}{\smallCaps{ADR}}{adverse drug reaction}
\setmainfont{Linux Libertine O}
Works \smallCaps{FOO} does not work: \gls{ADR}). A more specific definition
for the term \gls{ADR} is
\end{document}
Por otro lado, una mejor estrategia (suponiendo que no tenga otra forma de producir versalitas) es agregarlo en la definición de fuente:
\documentclass{memoir}
\usepackage{fontspec}
\usepackage{glossaries}
\makeglossaries
\setmainfont{Latin Modern Roman}[
SmallCapsFont={Linux Libertine O},
SmallCapsFeatures={Scale=0.5},
]
\setacronymstyle{long-short}
\begin{document}
%ABBREVIATIONS
\newacronym[
short=\textsc{ADR}
]{ADR}{ADR}{adverse drug reaction}
Works \textsc{FOO} does not work: \gls{ADR}). A more specific definition
for the term \gls{ADR} is
\printglossaries
\end{document}
Finalmente, la mejor estrategia si no tienes pequeñas capitalizaciones reales es evitarlas por completo.