
Wie kann ich mithilfe des Pakets den ersten Buchstaben JEDES Wortes in einem Glossar groß schreiben glossaries-extra
?
Ich bin aufdieser Threadaber es verwendet das glossaries
Paket.
Ich habe es auch versucht \glsentrytitlecase{<label>}{long}
, aber es hat nicht
- Machen Sie das Glossar zu einem Hyperlink
- Fügen Sie das Glossar in Klammern am Ende ein, z. B. (ESs) im MWE unten
Im Grunde genommen möchte ich etwas Ähnliches, \Gls
allerdings soll der erste Buchstabe JEDES Wortes groß geschrieben werden, statt nur das erste Wort.
MWE:
\documentclass[a4paper,12pt]{article}
\usepackage[acronym]{glossaries-extra}
\setabbreviationstyle[acronym]{long}
\newacronym
[
description={Evolutionary Strategies},
longplural={evolutionary strategies}
]
{es}{ES}{evolutionary strategy}
\makeglossaries
\begin{document}
\printglossary[type=acronym,title={List of Acronyms}]
\glsentrytitlecase{es}{long}.
\glspl{es}.
\Glspl{es}.
\glsentrytitlecase{es}{longpl}.
\end{document}
Aktualisieren:
\documentclass[a4paper,12pt]{article}
\usepackage[acronym,automake]{glossaries-extra}
\makeatletter
\newrobustcmd*{\myGls}{\@gls@hyp@opt\@myGls}
\newcommand*{\@myGls}[2][]{%
\new@ifnextchar[{\@myGls@{#1}{#2}}{\@myGls@{#1}{#2}[]}%
}
\def\@myGls@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper
\let\glsifplural\@secondoftwo
\let\glscapscase\@secondofthree
\def\glscustomtext{%
{%
\ecapitalisewords{\glsentrylong{#2}}#3\space%
\firstacronymfont(\glsentryshort{#2})}%
}
\def\glsinsert{#3}%
\def\@glo@text{\csname gls@\glstype @entryfmt\endcsname}%
\@gls@link[#1]{#2}{\@glo@text}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
\glspostlinkhook
}
\newrobustcmd*{\myGlspl}{\@gls@hyp@opt\@myGlspl}
\newcommand*{\@myGlspl}[2][]{%
\new@ifnextchar[{\@myGlspl@{#1}{#2}}{\@myGlspl@{#1}{#2}[]}%
}
\def\@myGlspl@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
\def\glscustomtext{%
{%
\ecapitalisewords{\glsentrylongpl{#2}}#3\space%
\firstacronymfont(\glsentryshortpl{#2})}%
}
\def\glsinsert{#3}%
\def\@glo@text{\csname gls@\glstype @entryfmt\endcsname}%
\@gls@link[#1]{#2}{\@glo@text}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
\glspostlinkhook
}
\makeatother
\setabbreviationstyle[acronym]{long}
\newacronym
[
description=Evolutionary Strategy,
longplural=evolutionary strategies
]
{es}{ES}{evolutionary strategy}
\makeglossaries
\begin{document}
\printglossary[type=acronym,title={List of Acronyms}]
textbf{Singular:}
blablbla \gls{es}.
blablbla \glsxtrfull{es}.
blablbla \Gls{es}.
blablbla \Glsxtrfull{es}.
blablbla \myGls{es}.
blablbla \glsentrytitlecase{es}{long}.
\vspace*{1cm}
\textbf{Plural:}
blablbla \glspl{es}.
blablbla \glsxtrfullpl{es}.
blablbla \Glspl{es}.
blablbla \Glsxtrfullpl{es}.
blablbla \myGlspl{es}.
blablbla \glsentrytitlecase{es}{longpl}.
\end{document}
Antwort1
Das ist die Lösung. Beachten Sie die Kommentare im Code. Wenn Sie die zweite Verwendung zur Anzeige der Kurzform wünschen, heben Sie die Kommentarzeichen aus diesen Kommentaren auf. Andernfalls wird immer die vollständige Form angezeigt. Fügen Sie hinzu, \myGlspl
um die Pluralform zu behandeln.
\documentclass[a4paper,12pt]{article}
\usepackage[hidelinks]{hyperref}
\usepackage[acronym,automake]{glossaries-extra}
\makeatletter
\newrobustcmd*{\myGls}{\@gls@hyp@opt\@myGls}
\newcommand*{\@myGls}[2][]{%
\new@ifnextchar[{\@myGls@{#1}{#2}}{\@myGls@{#1}{#2}[]}%
}
\def\@myGls@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper
\let\glsifplural\@secondoftwo
\let\glscapscase\@secondofthree
\def\glscustomtext{%
\ifglsused{#2}
{\acronymfont\glsentryshort{#2}#3}
{%
\ecapitalisewords{\glsentrylong{#2}}#3\space%
\firstacronymfont(\glsentryshort{#2})}%
}%
\def\glsinsert{#3}%
\def\@glo@text{\csname gls@\glstype @entryfmt\endcsname}%
\@gls@link[#1]{#2}{\@glo@text}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
\glspostlinkhook
}
\newrobustcmd*{\myGlspl}{\@gls@hyp@opt\@myGlspl}
\newcommand*{\@myGlspl}[2][]{%
\new@ifnextchar[{\@myGlspl@{#1}{#2}}{\@myGlspl@{#1}{#2}[]}%
}
\def\@myGlspl@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
\def\glscustomtext{%
\ifglsused{#2}%
{\acronymfont\glsentryshortpl{#2}#3}
{%
\ecapitalisewords{\glsentrylongpl{#2}}#3\space%
\firstacronymfont(\glsentryshortpl{#2})}%
}%
\def\glsinsert{#3}%
\def\@glo@text{\csname gls@\glstype @entryfmt\endcsname}%
\@gls@link[#1]{#2}{\@glo@text}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
\glspostlinkhook
}
\makeatother
\setabbreviationstyle[acronym]{long-short}
\newacronym{tla}{TLA}{three lettered acronym}
\makeglossaries
\begin{document}
\printglossary[type=acronym,title={List of Acronyms}]
\myGls{tla}
\myGlspl{tla}
\Gls{tla}
\end{document}