创建分组目录

创建分组目录

我正在写一本歌曲书,想要一个艺术家目录/索引,即从艺术家到歌曲书中出现该艺术家歌曲的页面的映射。

这是我想要实现的一个最小工作示例:

\documentclass[12pt]{article}

\begin{document}

\tableofcontents
\newpage

% this is what I want to automatically generate
Artist Directory

AC/DC  3,4,6

Deep Purple 5,6,7
\newpage

\section{Back in Black - AC/DC}
\label{AC/DC}
Test
\newpage

\section{Highway to Hell - AC/DC}
\label{AC/DC}
Test
\newpage

\section{Highway Star - Deep Purple}
\label{Deep Purple}
Test
\newpage

\section{Perfect Stranger - Deep Purple}
\label{Deep Purple}
Test
\newpage

\section{Smoke On the Water - Deep Purple}
\label{Deep Purple}
Test
\newpage

\section{The Honey Roll - AC/DC}
\label{AC/DC}
Test
\newpage

\end{document}

显然使用标签并不是解决问题的办法,因为标签必须是唯一的。

答案1

已经有排版歌曲的软件包,但是这里有一个使用词汇表获取信息的简便方法:

\newglossaryentry{bandnameabbrev}{type=rockgroups,name={Real Bandname},description={optionally empty}}* 

将在词汇表中定义一个带区,\gls*{ac/dc}将使用Real Bandname并留下该带区已在词汇表页面上使用的信息。

\documentclass[12pt]{article}

\usepackage[nomain,nopostdot]{glossaries}


\newglossary{rockgroups}{rki}{rko}{Artist Directory}

\makeglossaries

\newglossaryentry{ac/dc}{
  type=rockgroups,
  name={AC/DC},
  description={}}

\newglossaryentry{deeppurple}{
  type=rockgroups,
  name={Deep Purple},
  description={}
}

\newcommand{\songtext}[3]{\
  \section{#1 - \gls*{#2}}%

  #3%
  \clearpage
}

\usepackage{blindtext}
\begin{document}

\tableofcontents


\printglossaries

\clearpage

\songtext{Back in Black}{ac/dc}{\blindtext}


\songtext{Highway to Hell}{ac/dc}{\blindtext[2]}

\songtext{Highway Star}{deeppurple}{\blindtext[2]}

\songtext{Perfect Stranger}{deeppurple}{\blindtext[2]}

\songtext{Smoke on the Water}{deeppurple}{\blindtext[2]}

\songtext{The Honey Roll}{ac/dc}{\blindtext}


\end{document}

在此处输入图片描述

相关内容