0

I have a problem with the solution in this post if I don't want bold text for the items.

I changed the code as described below. But the text of the item (e.g. Animal1:) is now in the left margin of the document (I would like to have it at the left boarder like the normal text of the document). I have no idea why this happens, because with the bold text it works fine. Would be nice if someone has an idea.

% arara: pdflatex 

\documentclass{scrbook}
\usepackage{calc}
\makeatletter
\newcommand{\DESCRIPTION@original@item}{}
\let\DESCRIPTION@original@item\item
\newcommand*{\DESCRIPTION@envir}{DESCRIPTION}
\newlength{\DESCRIPTION@totalleftmargin}
\newlength{\DESCRIPTION@linewidth}
\newcommand{\DESCRIPTION@makelabel}[1]{\llap{#1}}%
\newcommand{\DESCRIPTION@item}[1][]{%
  \setlength{\@totalleftmargin}%
   {\DESCRIPTION@totalleftmargin+\widthof{#1}-\leftmargin}%
  \setlength{\linewidth}
   {\DESCRIPTION@linewidth-\widthof{#1}+\leftmargin}%
  \par\parshape \@ne \@totalleftmargin \linewidth
  \DESCRIPTION@original@item[#1]%
}
\newenvironment{DESCRIPTION}
  {\list{}{\setlength{\labelwidth}{0cm}%
       \let\makelabel\DESCRIPTION@makelabel}%
   \setlength{\DESCRIPTION@totalleftmargin}{\@totalleftmargin}%
   \setlength{\DESCRIPTION@linewidth}{\linewidth}%
   \renewcommand{\item}{\ifx\@currenvir\DESCRIPTION@envir
                           \expandafter\DESCRIPTION@item
                        \else
                           \expandafter\DESCRIPTION@original@item
                        \fi}}
  {\endlist}
\makeatother
\usepackage{blindtext}

\begin{document}
\begin{DESCRIPTION}
    \blindtext
    \item[Animal1:] \textbf{Lion}\\
    A lion is ... \blindtext
    \item[Animal2:] \textbf{Elephant}\\
        An elephant is ...
\end{DESCRIPTION}
\end{document}
  • Are you aware of environment labeling provided by package scrbase? – Johannes_B Jun 19 '14 at 17:28
  • \documentclass{scrbook} \usepackage{blindtext} \usepackage{showframe} \setkomafont{labelinglabel}{\bfseries}%if you want it bold \newcommand{\animalname}[1]{\textbf{#1}} \begin{document} \begin{labeling}[:]{Animal112} \item[Animal1:] \animalname{Lion}\\ A lion is ... \blindtext \item[Animal2:] \animalname{Elephant}\\ An elephant is ... \blindtext \end{labeling} \end{document} You can find explanations in the KOMA-script documentation. – Johannes_B Jun 19 '14 at 17:40
  • It seems that I overlooked the labelling environment. That is really a nice and simple solution. Thank you! – user2653422 Jun 19 '14 at 18:14
1

The labeling environment can be helpful here.

% arara: pdflatex 

\documentclass{scrbook}
\usepackage{scrbase}
\usepackage{blindtext}
\usepackage{showframe}
\newcommand{\animalname}[1]{#1}
%\setkomafont{labelinglabel}{\bfseries}%if you want it bold
%\renewcommand{\animalname}{\textbf}
\begin{document}
\begin{labeling}[:]{longest animal}% the optional argument sets a separator
%   the obligatory argument takes the longest expression
    \item[long Animal1] \animalname{Wombat}\\
    A lion is ... \blindtext
    \item[Animal2] \animalname{Capybara}\\
        An elephant is ...
    \blindtext
    \item[long Animal2] \animalname{Nasenb\"ar}\\
        An elephant is ...
    \blindtext
\end{labeling}
\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.