Ich möchte falsche Kapitälchen verwenden, wenn ich mit dem glossaries
Paket eine Liste von Abkürzungen erstelle. Ich verwende eine andere Schriftart, aber aus Gründen der Reproduzierbarkeit habe ich in diesem Beispiel verwendet Linux Libertine O
. Um die Dinge klarer zu machen, habe ich in diesem Beispiel auch den Skalierungsfaktor übertrieben. Aus irgendeinem Grund scheint mein \smallCaps
Befehl manchmal einwandfrei zu funktionieren, aber in diesem Fall funktioniert er nicht mehr. Was mache ich falsch?
\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}
Antwort1
Sie sollten es niemals \fontspec
innerhalb des Dokuments verwenden. Es handelt sich um einen allgemeinen Befehl, der von Befehlen auf Benutzerebene und ähnlichem verwendet wird \setmainfont
. \newfontfamily
Sollte außerdem \setmainfont
nur in der Präambel verwendet werden.
Ich habe die \setmainfont
Deklaration nur entfernt, um zu zeigen, wie die Schriftart unabhängig von der Hauptschriftart ausgewählt wird. Der Schlüssel besteht darin, den short
Schlüssel in zu verwenden \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}
Eine bessere Strategie (vorausgesetzt, Sie haben keine andere Möglichkeit, Kapitälchen zu erzeugen) besteht dagegen darin, sie in der Schriftdefinition hinzuzufügen:
\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}
Und schließlich: Wenn Sie keine echten Small Caps haben, ist die beste Strategie, sie ganz zu vermeiden.