추가 매개변수가 포함된 용어집 항목

추가 매개변수가 포함된 용어집 항목

내 작업에 대한 기호 목록을 만들고 싶습니다. 여기서 기호는 종종 색인과 함께 제공됩니다. 이제 각 기호와 색인에 대해 새 항목을 만들고 싶지 않습니다. 호출의 다른 매개변수를 사용하여 \ 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} 

문서 이미지

관련 정보