|
|
This is actually an enhancement of Marco Daniel’s answer and slightly off-topic in regard to
the question. But I think, it still fits better here than elsewhere.
For a FAQ-list I needed an enumerated description list, where I could refer to the items, so I’ve added some things:
I’ve added more custom counters (I needed 4) and redefined them
\newcounter{enumdesci}
\newcounter{enumdescii}[enumdesci] % note the optional reset value
\newcounter{enumdesciii}[enumdescii]
\newcounter{enumdesciv}[enumdesciii]
%
\renewcommand*{\theenumdesci}{\Roman{enumdesci}} % the default is "\arabic{enumdesci}"
\renewcommand*{\theenumdescii}{\theenumdesci.\Alph{enumdescii}}
\renewcommand*{\theenumdesciii}{\theenumdescii.\arabic{enumdesciii}}
\renewcommand*{\theenumdesciv}{\theenumdesciii.\alph{enumdesciv}}
I use four different representations for the counters here just for illustration.
If you need a period also after the last counter, take care where to add it (and where to remove in comparison to the example above):
\renewcommand*{\theenumdesci}{\Roman{enumdesci}.}
\renewcommand*{\theenumdescii}{\theenumdesci\Alph{enumdescii}.}
\renewcommand*{\theenumdesciii}{\theenumdescii\arabic{enumdesciii}.}
\renewcommand*{\theenumdesciv}{\theenumdesciii\alph{enumdesciv}.}
Now the part more or less adapted from Marco’s answer – defining a new list (here enumdescript) and setting the levels. Remember, I said, I needed 4.
\newlist{enumdescript}{description}{4}
\setlist[enumdescript,1]{before={\setcounter{enumdesci}{0}},style=nextline,leftmargin=0pt,topsep=0.5\baselineskip,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdesci}\theenumdesci~}
\setlist[enumdescript,2]{style=nextline,leftmargin=0.75em,labelindent=0.75em,topsep=0.5\baselineskip,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdescii}\theenumdescii~}
\setlist[enumdescript,3]{style=nextline,leftmargin=1.5em,labelindent=1.5em,topsep=0.5\baselineskip,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdesciii}\theenumdesciii~}
\setlist[enumdescript,4]{style=nextline,leftmargin=2.25em,labelindent=2.25em,topsep=0.5\baselineskip,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdesciv}\theenumdesciv~}
Note the before={\setcounter{enumdesci}{0}} in the first level, which resets the counters, if you start a new list. I’ve also added some \phantomsections from the package “hyperref” and changed \stepcounters for the possibility of referencing to \refstepcounters. The margins and labelindents should be adjusted according to the wanted indentation and used font. The style nextline could be changed for shorter items, see the “enumitem” documentation for that.
For the internal “TOC” or overview (the FAQ is part of a bigger document) I defined an additional list with a new command:
\newlist{edtoclist}{itemize}{4}
\setlist[edtoclist,1]{label=\hspace*{1.25em},labelwidth=*,leftmargin=*}
\setlist[edtoclist,2]{label=\hspace*{1.3em},labelwidth=*,leftmargin=*}
\setlist[edtoclist,3]{label=\hspace*{2.1em},labelwidth=*,leftmargin=*}
\setlist[edtoclist,4]{label=\hspace*{3.0em},labelwidth=*,leftmargin=*}
\newcommand*{\edtitem}[2]{\item[\ref{#1}] \hyperref[#1]{#2}}
It must be 4 levels here also, of course. \hspace* needs manual adjustment depending on the font, your counter definition and the actual level depth. For the whole list one must take care of manually adjusting the levels according to the enumdescript levels. Also the items have to copied by hand.
All together (only 3 list levels here):
\documentclass{article}
\usepackage[ngerman,english]{babel} % needed for "blindtext",
% "english" is the active language
\usepackage [pangram,random]{blindtext} % for some filler text
\usepackage{lipsum,kantlipsum} % also for filler text
\usepackage{enumitem}
\usepackage[%
colorlinks=true,%
linkcolor=blue,%
]{hyperref}
%-----------------------%
% Further settings for "enumitem"
%-----------------------%
% Custom counters:
\newcounter{enumdesci}
\newcounter{enumdescii}[enumdesci]
\newcounter{enumdesciii}[enumdescii]
\newcounter{enumdesciv}[enumdesciii]
% Redefinition:
\renewcommand*{\theenumdesci}{\Roman{enumdesci}}
\renewcommand*{\theenumdescii}{\theenumdesci.\Alph{enumdescii}}
\renewcommand*{\theenumdesciii}{\theenumdescii.\arabic{enumdesciii}}
\renewcommand*{\theenumdesciv}{\theenumdesciii.\alph{enumdesciv}}
%
\newlist{enumdescript}{description}{4}
\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~}
\setlist[enumdescript,4]{style=nextline,leftmargin=2.25em,labelindent=2.25em,%
font=\phantomsection\normalfont\normalsize\bfseries\refstepcounter{enumdesciv}\theenumdesciv~}
%-----------------------%
% Definition of a new list for own "TOC":
\newlist{edtoclist}{itemize}{4}
\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=*}
\setlist[edtoclist,4]{label=\hspace*{2.94em},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}

|
|
|
answered
Jul 19 '12 at 0:03
|
|
item[]command, rather than defining a new command\litem{}as Mike did. Hence the enumitem package can still be used straightforwardly for formatting the list without having to ask yourself: What didlitem{}do again... – Ben Oct 1 '11 at 18:17