Seite 1 von 1

[todonotes] beginnende Leerzeile

Verfasst: So 30. Dez 2012, 11:22
von MoonKid
Ich meinen todonotes taucht zu Beginn immer eine führende Leerzeile auf. Das sieht natürlich nicht schön aus. Wie liese sich das beheben?
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Notizen
\usepackage[shadow]{todonotes}
\newcommand{\senf}[1]{\todo[inline,caption=x,color=blue!30,bordercolor=white]{
    \begin{flushright}
        \texttt{\small{#1}}
    \end{flushright}
    }
}

\begin{document}
\senf{test}
\end{document}
Dateianhänge nimmt das Forum gerade nicht an. Sonst könnte ich es zeigen.

Verfasst: So 30. Dez 2012, 11:42
von cgnieder
Das liegt an der flushright umgebung. Sie fügt eine neue Zeile ein. da sie intern eine Listenumgebung ist, kann man da auch nicht viel machen.

man könnte statt dessen eine \parbox mit \raggedleft kombinieren:


\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Notizen
\usepackage[shadow]{todonotes}
\newcommand{\senf}[1]{%
  \todo[inline,caption=x,color=blue!30,bordercolor=white]{%
    \parbox{\linewidth}{\raggedleft\texttt{\small{#1}}}%
  }%
}

\begin{document}
\senf{test}
\end{document}
Grüße

Verfasst: So 30. Dez 2012, 12:49
von MoonKid
Ich dachte \parbox macht ne Box/Kasten/Rechteck aufs "Blatt".

Es funktioniert, ohne Kasten auf dem Blatt, aber ich verstehe nicht wieso. ;)

Verfasst: So 30. Dez 2012, 12:58
von cgnieder
Wenn LaTeX eine Datei verarbeitet läuft letztlich alles darauf hinaus, Boxen aneinander zu kleben. Es gibt zwei Sorten: horizontale Boxen, die innerhalb eines Absatzes aneinander gebaut werden und vertikale Boxen, die zu einer Seite aneinander geklebt werden. Wenn Du ein Wort wie „Hallo“ schreibst, werden letztlich fünf Boxen aneinander gesetzt.

Eine parbox ist nun eine horizontale Box, die ein oder mehrere Absätze enthalten kann und für die man eine bestimmte Breite festlegen kann. Sie wird von LaTeX genauso behandelt wie ein Buchstabe.

Wenn man einen Rahmen um so eine Box setzen möchte, kann man z.B. \fbox darum setzen.
\documentclass{article}
\usepackage{lipsum}% für Dummy-Text
\begin{document}    

Hallo \parbox{4cm}{\raggedright\lipsum[4]} Hallo

Hallo \fbox{\parbox{4cm}{\raggedright\lipsum[4]}} Hallo

\end{document}
Grüße

Verfasst: So 30. Dez 2012, 14:27
von MoonKid
So langsam verstehe ich meine Denkfehler. :D

Danke für die Erklärung. Das hilft sehr.