von hezo » Mi 16. Okt 2013, 11:24
Hallo,
ich versuche einen Befehl zu schreiben, der im Wesentlichen nur den todo Befehl aus dem Paket todonotes mit unterschiedlichen Parametern aufruft. Zur Steuerung möchte ich einen optionalen Parameter benutzen, und in Abhängigkeit von diesem den optionalen Parameter für den todo Befehl setzen. Mein Befehl soll wie folgt funktionieren:
\mytodo{irgendwas} erzeugt normalen \todo{irgendwas}
\mytodo[done]{irgendwas} soll (z.B.) \todo[color=green!10, nolist]{irgendwas} erzeugen
Ich verstehe nicht warum der erste Block im folgenden Code funktioniert, und die beiden auskommentierten nicht. Mir geht es bei diesem Post nicht darum die gewünschte Funktion mit einer ganz anderen Herangehensweise hinzubekommen, sondern darum zu verstehen warum mein Ansatz nicht funktioniert, um für die Zukunft dazuzulernen.
Vielen Dank schonmal für jede Hilfe.
\documentclass{article}
\usepackage{todonotes}
\usepackage{ifthen}
\newcommand{\mytodo}[2][]% works fine
{\ifthenelse%
{\equal{#1}{done}}%
{\def\color{green!10}}%
{\def\color{green!70}}%
\todo[color=\color]{#2}%
}
%\newcommand{\mytodo}[2][]% does not work
% {\ifthenelse%
% {\equal{#1}{done}}%
% {\def\color{green!10}\def\in_list{, nolist}}%
% {\def\color{green!70}\def\in_list{ }}%
% \todo[color=\color \in_list]{#2}%
% }
%\newcommand{\mytodo}[2][]% does not work
% {\ifthenelse%
% {\equal{#1}{done}}%
% {\def\set_color{color=green!10}}%
% {\def\set_color{color=green!70}}%
% \todo[\set_color]{#2}%
% }
\begin{document}
Just some useless \todo[color=green!70]{this is in todolist} text,\newline and some more \todo[color=green!10, nolist]{this is not in todolist} text.
Just some useless \mytodo{this is in todolist} text,\newline and some more \mytodo[done]{should not be in todolist} text.
\listoftodos
\end{document}
Hallo,
ich versuche einen Befehl zu schreiben, der im Wesentlichen nur den todo Befehl aus dem Paket todonotes mit unterschiedlichen Parametern aufruft. Zur Steuerung möchte ich einen optionalen Parameter benutzen, und in Abhängigkeit von diesem den optionalen Parameter für den todo Befehl setzen. Mein Befehl soll wie folgt funktionieren:
\mytodo{irgendwas} erzeugt normalen \todo{irgendwas}
\mytodo[done]{irgendwas} soll (z.B.) \todo[color=green!10, nolist]{irgendwas} erzeugen
Ich verstehe nicht warum der erste Block im folgenden Code funktioniert, und die beiden auskommentierten nicht. Mir geht es bei diesem Post nicht darum die gewünschte Funktion mit einer ganz anderen Herangehensweise hinzubekommen, sondern darum zu verstehen warum mein Ansatz nicht funktioniert, um für die Zukunft dazuzulernen.
Vielen Dank schonmal für jede Hilfe.
[code]
\documentclass{article}
\usepackage{todonotes}
\usepackage{ifthen}
\newcommand{\mytodo}[2][]% works fine
{\ifthenelse%
{\equal{#1}{done}}%
{\def\color{green!10}}%
{\def\color{green!70}}%
\todo[color=\color]{#2}%
}
%\newcommand{\mytodo}[2][]% does not work
% {\ifthenelse%
% {\equal{#1}{done}}%
% {\def\color{green!10}\def\in_list{, nolist}}%
% {\def\color{green!70}\def\in_list{ }}%
% \todo[color=\color \in_list]{#2}%
% }
%\newcommand{\mytodo}[2][]% does not work
% {\ifthenelse%
% {\equal{#1}{done}}%
% {\def\set_color{color=green!10}}%
% {\def\set_color{color=green!70}}%
% \todo[\set_color]{#2}%
% }
\begin{document}
Just some useless \todo[color=green!70]{this is in todolist} text,\newline and some more \todo[color=green!10, nolist]{this is not in todolist} text.
Just some useless \mytodo{this is in todolist} text,\newline and some more \mytodo[done]{should not be in todolist} text.
\listoftodos
\end{document}
[/code]