我有一份文档,其中多个页面上有相同的小节标题。我想创建类似词汇表的东西,打印标题列表和标题所在页面的引用。我可以使用glossaries
包来做到这一点,但我必须\newglossaryentry
为每个标题定义空描述,我想避免这种情况(对于很多标题来说,这很烦人)。有没有更好的方法可以做到这一点?(它不必使用词汇表,我不在乎......)
这基本上满足了我对词汇表的要求,但对我来说似乎过于复杂:
\documentclass{article}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{heading1}
{
name=heading1,
description={},
}
\newglossaryentry{heading2}
{
name=heading2,
description={},
}
\begin{document}
\printglossaries
\clearpage
\section{sth}
\subsection{\Gls{heading1}}
...
\subsection{\Gls{heading2}}
\lipsum
\subsection{\Gls{heading2}}
\lipsum
\subsection{\Gls{heading1}}
...
\end{document}
答案1
如果您使用index
包选项,它将定义\newterm
您可以执行的命令\newterm{heading1}
,但这会将所有术语放入新index
词汇表中,而不是(默认)词汇表中。因此,您可以使用此选项并只更改词汇表标题,或者定义一个使用词汇表而不是词汇表main
的命令。\newterm
main
index
方法 1:
\documentclass{article}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage[index,nomain]{glossaries}
\makeglossaries
\newterm{heading1}
\newterm{heading2}
\begin{document}
\printindex[title={Glossary}]
\clearpage
\section{sth}
\subsection{\Gls{heading1}}
...
\subsection{\Gls{heading2}}
\lipsum
\subsection{\Gls{heading2}}
\lipsum
\subsection{\Gls{heading1}}
...
\end{document}
方法 2:
\documentclass{article}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries
\newcommand*{\newterm}[2][]{%
\newglossaryentry{#2}%
{name={#2},description={\nopostdesc},#1}}
\newterm{heading1}
\newterm{heading2}
\begin{document}
\printglossaries
\clearpage
\section{sth}
\subsection{\Gls{heading1}}
...
\subsection{\Gls{heading2}}
\lipsum
\subsection{\Gls{heading2}}
\lipsum
\subsection{\Gls{heading1}}
...
\end{document}
编辑:请注意与使用命令相关的问题\Gls
与使用命令(如章节标题)。
答案2
您可以使用该.aux
文件:
\documentclass{article}
\usepackage{lipsum}
\usepackage{glossaries}
\usepackage{hyperref}
\makeatletter
\newcommand{\glssubsection}[1]{%
\@ifundefined{@glssubsection\detokenize{#1}}
{\protected@write\@auxout{}{\string\newglossaryentry{#1}{name=#1,description={}}}%
\global\@namedef{@glssubsection\detokenize{#1}}{}}{}%
\ifglsentryexists{#1}
{\subsection{\texorpdfstring{\Gls{#1}}{#1}}}%
{\subsection{#1}}%
}
\makeatother
\makeglossaries
\begin{document}
\printglossaries
\clearpage
\section{sth}
\glssubsection{heading1}
\lipsum
\glssubsection{heading2}
\lipsum
\glssubsection{heading2}
\lipsum
\glssubsection{heading1}
\lipsum
\end{document}
我把词汇表的格式化留给你。