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}
3
  • Are you aware of environment labeling provided by package scrbase?
    – Johannes_B
    Jun 19, 2014 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, 2014 at 17:40
  • It seems that I overlooked the labelling environment. That is really a nice and simple solution. Thank you! Jun 19, 2014 at 18:14

1 Answer 1

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}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .