类似词汇表的子部分标题列表

类似词汇表的子部分标题列表

我有一份文档,其中多个页面上有相同的小节标题。我想创建类似词汇表的东西,打印标题列表和标题所在页面的引用。我可以使用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的命令。\newtermmainindex

方法 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}

我把词汇表的格式化留给你。

相关内容