Glossare und falsche Kapitälchen mit Fontspec

Glossare und falsche Kapitälchen mit Fontspec

Ich möchte falsche Kapitälchen verwenden, wenn ich mit dem glossariesPaket 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 \smallCapsBefehl 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}

Bildbeschreibung hier eingeben

Antwort1

Sie sollten es niemals \fontspecinnerhalb des Dokuments verwenden. Es handelt sich um einen allgemeinen Befehl, der von Befehlen auf Benutzerebene und ähnlichem verwendet wird \setmainfont. \newfontfamilySollte außerdem \setmainfontnur in der Präambel verwendet werden.

Ich habe die \setmainfontDeklaration nur entfernt, um zu zeigen, wie die Schriftart unabhängig von der Hauptschriftart ausgewählt wird. Der Schlüssel besteht darin, den shortSchlü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}

Bildbeschreibung hier eingeben

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.

verwandte Informationen