
내 작업에 대한 기호 목록을 만들고 싶습니다. 여기서 기호는 종종 색인과 함께 제공됩니다. 이제 각 기호와 색인에 대해 새 항목을 만들고 싶지 않습니다. 호출의 다른 매개변수를 사용하여 \ gls {\label, {#1}} 인덱스(#1)를 원하는 위치에 넣는 것이 가능합니까? 내가 너무 비밀스럽게 표현했다면 최소한의 예가 도움이 될 수 있습니다.
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{BetragVektor1}{name=\ensuremath{|\overline{u_1}|},description={Länge des Vektors}}
\newglossaryentry{BetragVektor2}{name=\ensuremath{|\overline{u_2}|},description={Länge des Vektors}}
\newglossaryentry{BetragVektor}{name=\ensuremath{|\overline{u_2}|},description={Länge des Vektors}}
\begin{document}
target:\\
The vector $|\overline{u_1}|$ is longer than the vector $|\overline{u_2}|$.
option1:\\
The vector \gls{BetragVektor1} is longer than the vector \gls{BetragVektor2}.
option2(gloosarie-documentation) :\\
\gls{BetragVektor}{1}
This option writes the 1 at the end - not behind u.
\end{document}
모든 조언에 감사드리며 해결책이 있기를 바랍니다.
답변1
다음과 같은 명령의 최종 선택적 인수를 사용하는 가능한 솔루션 중 하나는 다음과 같습니다 \gls
.
\documentclass{scrreprt}
\usepackage{glossaries}
\makeglossaries
\glssetnoexpandfield{text}% don't expand text field when defining an entry
\newcommand{\symbolidx}{i}% default index
\newglossaryentry{BetragVektor}{
name=\ensuremath{|\overline{u_\symbolidx}|},
text=|\overline{u_\symbolidx}|,
description={}}
% modify the entry's format
\defglsentryfmt{%
\let\symbolidx\glsinsert
\def\glsinsert{}%
\glsgenentryfmt
}
\begin{document}
$\gls{BetragVektor}$
$\gls{BetragVektor}[1]$
$\gls{BetragVektor}[2]$
\printglossaries
\end{document}
이는 다음을 생성합니다.
그러나 다른 용어집 항목에는 이 선택적 인수를 사용할 수 없습니다.
편집하다:
죄송합니다. 키 확장도 방지해야 한다는 점을 잊어버렸습니다 first
. 다음을 사용하여 확장을 끈 업데이트된 버전은 다음과 같습니다 \glsnoexpandfields
.
\documentclass{scrreprt}
\usepackage{glossaries}
\makeglossaries
\glsnoexpandfields
\newcommand*{\glsarg}{i}
\newglossaryentry{BetragVektor}{
name=\ensuremath{|\overline{u_i}|},
text=|\overline{u_\glsarg}|,
description={}}
% modify the entry's format
\defglsentryfmt{%
\let\orgglsarg\glsarg
\ifdefempty\glsinsert
{}%
{%
\let\glsarg\glsinsert
\let\glsinsert\relax
}%
\glsgenentryfmt
\let\glsarg\orgglsarg
}
\begin{document}
$\gls{BetragVektor}[1]$
$\gls{BetragVektor}$
$\gls{BetragVektor}[1]$
$\gls{BetragVektor}[2]$
$\gls{BetragVektor}[]$
\printglossaries
\end{document}