Tell me more ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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}
share|improve this question
Closed at the request of @Speravir – Joseph Wright Aug 20 '12 at 8:36

closed as too localized by Speravir, percusse, Joseph Wright Aug 20 '12 at 8:36

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, see the FAQ.