
Я хотел бы узнать, можно ли получить доступ к полям, которые настраиваются вручную при создании записей глоссария, вручную/намеренно в макросе или новой команде - возможно, в форме:
\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}