In my answer to Enumerated description list you can see, that I've created a special list edtoclist and a list command edtocitem for an internal “table of contents” or in other words an overview, that I used for a FAQ-list in a bigger document. It works fine, but still needs a lot of manual work: The items of the second list (here: “enumdescript”) must be manually added to the “TOC” list (the “edtoclist”). Hence my question: Do you have an idea, how this could be more automated?
Oh, I know: The real answer would be “Yes.” or “No.”, but I’m interested in more elaborated answers. grin
I must say, one big advantage of my manual approach is, that I could choose a different letterspacing for the same entry in the edtoclist and enumdescript. If that still would be possible, it would be great!
The code is:
\documentclass{article}
\usepackage[ngerman,english]{babel} % needed for "blindtext",
% "english" is the active language
\usepackage [pangram,random]{blindtext}
\usepackage{lipsum,kantlipsum}
\usepackage{enumitem}
\usepackage[%
colorlinks=true,%
linkcolor=blue,%
]{hyperref}
%-----------------------%
% Further settings for "enumitem"
%-----------------------%
% Custom counters:
\newcounter{enumdesci}
\newcounter{enumdescii}[enumdesci]
\newcounter{enumdesciii}[enumdescii]
% Redefinition:
\renewcommand*{\theenumdesci}{\Roman{enumdesci}} % the default would be "\arabic{enumdesci}"
\renewcommand*{\theenumdescii}{\theenumdesci.\arabic{enumdescii}}
\renewcommand*{\theenumdesciii}{\theenumdescii.\alph{enumdesciii}}
%
\newlist{enumdescript}{description}{3}
\setlist[enumdescript,1]{before={\setcounter{enumdesci}{0}},style=nextline,leftmargin=0pt,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdesci}\theenumdesci~}
\setlist[enumdescript,2]{style=nextline,leftmargin=0.75em,labelindent=0.75em,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdescii}\theenumdescii~}
\setlist[enumdescript,3]{style=nextline,leftmargin=1.5em,labelindent=1.5em,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdesciii}\theenumdesciii~}
%-----------------------%
% Definition of a new list for own "TOC":
\newlist{edtoclist}{itemize}{3}
\setlist[edtoclist,1]{label=\hspace*{1.1em},labelwidth=*,leftmargin=*}
\setlist[edtoclist,2]{label=\hspace*{1.37em},labelwidth=*,leftmargin=*}
\setlist[edtoclist,3]{label=\hspace*{2.16em},labelwidth=*,leftmargin=*}
\newcommand*{\edtitem}[2]{\item[\ref{#1}] \hyperref[#1]{#2}}
%-----------------------%
\begin{document}
\section*{Overview}
% first level
\begin{edtoclist}
\edtitem{bltxt-xmpl}{``blindtext'' examples}
% second level
\begin{edtoclist}
\edtitem{bltxt-xmplen}{English}
% third level
\begin{edtoclist}
\edtitem{bltxt-xmplen1}{Example~1}
\edtitem{bltxt-xmplen2}{Example~2}
\end{edtoclist}
% second level
\edtitem{bltxt-xmplde}{German}
% third level
\begin{edtoclist}
\edtitem{bltxt-xmplde1}{Beispiel~1}
\edtitem{bltxt-xmplde2}{Beispiel~2}
\end{edtoclist}
\end{edtoclist}
% first level
\edtitem{lkl-xmpl}{``lipsum'' and derived ``kantlipsum''}
% second level
\begin{edtoclist}
\edtitem{lips-xmpl}{``lipsum'' examples}
% third level
\begin{edtoclist}
\edtitem{lips-xmpl10}{Tenth section}
\edtitem{lips-xmpl20}{Twentieth section}
\end{edtoclist}
% second level
\edtitem{klips-xmpl}{``kantlipsum'' examples}
% third level
\begin{edtoclist}
\edtitem{klips-xmpl15}{Fifteenth section}
\edtitem{klips-xmpl30}{Thirtieth section}
\end{edtoclist}
\end{edtoclist}
\end{edtoclist}
%\newpage
\section*{Examples}
% first level
\begin{enumdescript}
\item[``blindtext'' examples\label{bltxt-xmpl}]
~\\[-2\baselineskip]
% second level
\begin{enumdescript}
\item[English\label{bltxt-xmplen}]
~\\[-2\baselineskip]
% third level
\begin{enumdescript}
\item[Example~1:\label{bltxt-xmplen1}]
\blindtext[1]
\item[Example~2:\label{bltxt-xmplen2}]
\blindtext[1]
\end{enumdescript}
% second level
\item[German\label{bltxt-xmplde}]
~\selectlanguage{ngerman}\\[-2\baselineskip]
% third level
\begin{enumdescript}
\item[Beispiel~1:\label{bltxt-xmplde1}]
\blindtext[1]
\item[Beispiel~2:\label{bltxt-xmplde2}]
\blindtext[1]
\end{enumdescript}
\selectlanguage{english}
\end{enumdescript}
% first level
\item[``lipsum'' and derived ``kantlipsum''\label{lkl-xmpl}]
~\\[-2\baselineskip]
% second level
\begin{enumdescript}
\item[``lipsum'' examples\label{lips-xmpl}]
~\\[-2\baselineskip]
% third level
\begin{enumdescript}
\item[Tenth section\label{lips-xmpl10}]
\lipsum[10]
\item[Twentieth section\label{lips-xmpl20}]
\lipsum[20]
\end{enumdescript}
% second level
\item[``kantlipsum'' examples\label{klips-xmpl}]
~\\[-2\baselineskip]
% third level
\begin{enumdescript}
\item[Fifteenth section\label{klips-xmpl15}]
\kant[15]
\item[Thirtieth section\label{klips-xmpl30}]
\kant[30]
\end{enumdescript}
\end{enumdescript}
\end{enumdescript}
\end{document}
