У меня есть глоссарий, отформатированный так, как указано в ответе @mafp, который идеально подходит для моих целей.
Однако, добавляя это решение в мой основной файл tex, который является тезисом, на странице, где печатается список, я всегда получаю ссылку на появление в списке. Есть ли способ удалить эту первую запись?
Та же проблема возникла в связанномвопрос@Max, но решения нет.
Рабочий пример, который дал @mafp, это
\documentclass[a4paper,10pt]{article}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=cyan,
}
\usepackage{glossaries}
\makeglossaries
\renewcommand{\glossarysection}[2][]{} % not to show word glossary
\newglossaryentry{A}{%
name={foo},%
description={bar},%
%user1={cm}%
}
\newglossaryentry{B}{%
name={AAPL},%
description={apples},%
%user1={box}%
}
\newglossaryentry{C}{%
name={BTR},%
description={books to read},%
%user1={LoC}%
}
\newglossaryentry{D}{%
name={BTRTIO},%
description={books to read that I own},%
%user1={shelf},%
%parent={C}
}
\newglossarystyle{aiaostyle}{%
% put the glossary in a longtable environment:
\renewenvironment{theglossary}%
{\begin{longtable}{lp{\glsdescwidth}cp{\glspagelistwidth}}}%
{\end{longtable}}%
% Set the table’s header: title row
\renewcommand*{\glossaryheader}{%
\bfseries Term & \bfseries Description &
\bfseries Units & \bfseries Page List
\\\endhead}%
% No table header:
%\renewcommand*{\glossaryheader}{}%
% No heading between groups:
\renewcommand*{\glsgroupheading}[1]{}%
% Main (level 0) entries displayed in a row optionally numbered:
\renewcommand*{\glossaryentryfield}[5]{%
\glstarget{##1}{##2}% Name
& ##3% Description
& \glsentryuseri{##1}% Units
& ##5% Page list
\\% end of row
}%
% Similarly for sub-entries (no sub-entry numbers):
\renewcommand*{\glossarysubentryfield}[6]{%
% ignoring first argument (sub-level)
\glstarget{##2}{##3}% Name
& ##4% Description
& \glsentryuseri{##2}% Units
& ##6% Page list
\\% end of row
}%
% Nothing between groups:
\renewcommand*{\glsgroupskip}{}%
}
\begin{document}
\null
\glsaddall
\glossarystyle{aiaostyle}
\setlength{\glsdescwidth}{0.5\textwidth}
\setlength{\glspagelistwidth}{0.1\textwidth}
\printglossaries
\newpage
test entry \gls{A}.
\end{document}
Извините, что пишу новый вопрос, но я не могу прокомментировать решение @mapf, так как это мое первое появление в TeX.SE
.
решение1
\glsadd{
этикетка}
— это команда индексации, которая автоматически добавляет местоположение в список номеров записи. \glsaddall
выполняет итерацию по всем определенным записям и использует \glsadd
для каждой записи. Она предназначена для использования в сочетании с nonumberlist
опцией автоматического включения всех записей в глоссарий, независимо от того, использовали ли вы их в документе (с командами типа \gls
). Если список номеров не подавлен, \glsaddall
приведет к тому, что все записи будут иметь дополнительное местоположение, соответствующее месту в документе, где \glsaddall
было использовано.
Если вам нужен список номеров и вы хотите включить в него все определенные записи, независимо от того, использовались ли они в документе, то вы можете указать\glsaddallunused
в конце документадля добавления любых оставшихся записей, которые не были использованы.