
パッケージを使用して用語集内の各単語の最初の文字を大文字にするにはどうすればよいでしょうかglossaries-extra
?
私は遭遇しましたこのスレッドただし、glossaries
パッケージを使用します。
私も試してみました\glsentrytitlecase{<label>}{long}
が、ダメでした
- 用語集をハイパーリンクにする
- 最後に括弧内に用語集を含めます。例: 以下のMWEでは(ESs)
基本的に、私が望んでいるのは、\Gls
最初の単語のみではなく、各単語の最初の文字を大文字にすることです。
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}
アップデート:
\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}
答え1
これが解決策です。コード内のコメントに注意してください。2 番目の使用法で短縮形を表示したい場合は、それらのコメントのコメントを解除します。そうしないと、常に完全な形式が表示されます。\myGlspl
複数形を処理するには追加します。
\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}