Seite 1 von 1

[todonote] Rechtsbündig

Verfasst: Sa 29. Dez 2012, 16:43
von MoonKid
Ich möchte meine todonote-Notizen Rechtsbündig gesetzt haben.

Dieser Code hier haut nicht hin
\documentclass{scrartcl}

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

\usepackage[shadow]{todonotes}

\newcommand{\senf}[1]{\todo[inline]{
    \begin{flushright}
        \small{#1}
    \end{flushright}
    }
}

\begin{document}
\senf{Mein Senf}
\end{document}
Die Ausgabe
Package pgf Warning: Your graphic driver pgfsys-xetex.def does not support fadi
ngs. This warning is given only once on input line 31.

)))) (./r.aux) (/usr/share/texmf/tex/latex/tipa/t3cmr.fd)
ABD: EveryShipout initializing macros
! Argument of \reserved@a has an extra }.
<inserted text> 
                \par 
l.18 \senf{Mein Senf}
                     
Runaway argument?
{\def \@currenvir {flushright}\edef \@currenvline {\on@line }\csuse {\ETC.
! Paragraph ended before \reserved@a was complete.
<to be read again> 
                   \par 
l.18 \senf{Mein Senf}
                     
[1] (./r.aux) )
(see the transcript file for additional information)
Output written on r.pdf (1 page).
Transcript written on r.log.
Merkwürdigerweise kommt dennoch ein PDF raus, in dem der relevante Text links steht.

Verfasst: Sa 29. Dez 2012, 17:04
von bloodworks
Du musst caption manuell setzten in diesem Fall:
Ansonnsten wird die Umgebung in die Liste mitaufgenommen, zerbricht und es wird ein Fehler ausgegeben.

Ich denke das steht auch in der todo Anleitung. (texdoc todonotes)
\documentclass{scrartcl} 


\usepackage[shadow]{todonotes} 

\newcommand{\senf}[1]{\todo[inline, caption=x]{%
\begin{flushright}
{ \small #1 }%
\end{flushright}
     }%
}%

\begin{document} 
\senf{Mein Senf} 
\end{document}

Verfasst: So 30. Dez 2012, 11:23
von MoonKid
So funktioniert es danke.

Trotzdem verstehe ich nicht, was die Überschrift (caption) mit dem rechtsbündigen setzen des Textes zu tun haben soll.

Verfasst: So 30. Dez 2012, 11:41
von bloodworks
Hat sie auch nichts. Die Angabe von caption sorgt nur dafür, dass die Umgebung nichts ins Inhaltsverzeichnis (bzw die todo-Liste) rutscht. Vergl.
texdoc todonotes
Die Umgebung die dann da drinn steht, ist egal. Das gilt genau so für eine Parbox oder minipage. Alternativ kannst du auch das Zerbrechen verhindern:
\documentclass{scrartcl} 

\usepackage{xcolor}
\usepackage[shadow]{todonotes} 

\newcommand{\senf}[1]{\todo[inline]{%
\colorbox{red}{#1}\protect\parbox{2cm}{#1} % kein Fehler
%\parbox{2cm}{#1}% Fehler
     }%
}%
% Im gegensatz zu parbox überlebt das robuste colorbox den write out. 

\begin{document} 
\senf{Mein Senf} 
\listoftodos
\end{document}
Eine kurz Erklärung ist, dass write ähnlich eded die Macros einmal expandiert. Das wollen wir aber verhindern und dafür sorgen, dass es in den .aux file geht, wie es ist.
Grundsätzlich lässt sich das im TeXbook nachlesen, eine recht gute praxis-orientierte Erkläsung findet sich aber hier:
http://tex.stackexchange.com/questions/ ... t-commands