Доступ к определенным полям глоссария без необходимости первого использования

Доступ к определенным полям глоссария без необходимости первого использования

Я хотел бы узнать, можно ли получить доступ к полям, которые настраиваются вручную при создании записей глоссария, вручную/намеренно в макросе или новой команде - возможно, в форме:

\newcommand{\expectedFirst}[1]{???}

где ??? будет определением, которое будет использовать метку gls, #1, для захвата предопределенного поля, такого как short, name, label, long, description, firstplural и т. д. Я бы создал новую команду для каждого поля, которое хотел бы извлечь, или, возможно, использовал бы

\newcommand{\expectedField}[2]{???}

где #1 — это строка метки, а #2 — поле, которое я хочу извлечь или сделать доступным.

Я просмотрел файл глоссария .dtx, но не нашел никаких определений макросов, которые выглядели бы как создание переменной, которую я мог бы дублировать внешне. Что действительно показалось интересным и потенциально полезным, так это наличие отслеживающего булевого значения для отслеживания того, был ли уже вызван термин или нет. Это булево значение было бы еще одной переменной, с которой мне было бы интересно сравнить в моих пользовательских макросах.

МВЭ:

\documentclass{article}
\usepackage[utf8]{inputenc}

\setlength\parindent{0pt}


%=========================================================================================================================================
% PACKAGES REQUIRED FOR GLOSSARIES
%=========================================================================================================================================

% Glossaries must be loaded before amsmath as per details in the following forum answer
% http://tex.stackexchange.com/questions/85696/what-causes-this-strange-interaction-between--and-amsmath
\usepackage[nogroupskip,toc,acronym]{glossaries} % must come after href   
\usepackage{scrwfile}%http://www.dickimaw-books.com/cgi-bin/faq.cgi?action=view&categorylabel=glossaries#glsnewwriteexceeded

\makeglossaries

\newglossaryentry{ICPMS}{ type={acronym}, sort={inductively coupled plasma mass spectrometry},  name={ICPMS}, short={ICPMS}, long={inductively coupled plasma mass spectrometry}, first={inductively coupled plasma mass spectrometry (ICPMS)}, description={inductively coupled plasma mass spectrometry} }

\begin{document}

    \begin{itemize}
        \item \gls{ICPMS}
        \item \gls{ICPMS}
            %\item \expectedFirst{ICPMS}
    \end{itemize}


\end{document} 

решение1

Благодаря более тщательному изучению документации и вдохновению, полученному из комментариев в исходном вопросе, я обнаружил, что пакет glossariesделает некоторые поля доступными с помощью команд, отформатированных аналогично \glsentryshort{}и \glsentrylong{}. Самое главное, что использование этих команд не приводит к искусственному запуску счетчика, который помешал бы правильной оценке первого использования.

МВЭ:

\documentclass{article}
\usepackage[utf8]{inputenc}

\setlength\parindent{0pt}

%=========================================================================================================================================
% PACKAGES REQUIRED FOR GLOSSARIES
%=========================================================================================================================================

% Glossaries must be loaded before amsmath as per details in the following forum answer
% http://tex.stackexchange.com/questions/85696/what-causes-this-strange-interaction-between--and-amsmath
\usepackage[nogroupskip,toc,acronym]{glossaries} % must come after href   
\usepackage{scrwfile}%http://www.dickimaw-books.com/cgi-bin/faq.cgi?action=view&categorylabel=glossaries#glsnewwriteexceeded

\makeglossaries

\newglossaryentry{ICPMS}{ type={acronym}, sort={inductively coupled plasma mass spectrometry},  name={ICPMS}, short={ICPMS}, long={inductively coupled plasma mass spectrometry}, first={inductively coupled plasma mass spectrometry (ICPMS)}, description={inductively coupled plasma mass spectrometry} }

\begin{document}

    \begin{itemize}
        \item \glsentrylong{ICPMS}
        \item \glsentryshort{ICPMS}
        \item \glsentryfull{ICPMS}
        \item \gls{ICPMS}
        \item \gls{ICPMS}
    \end{itemize}


\end{document} 

Связанный контент