TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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}
share|improve this question
    
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

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}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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