Space und ToDoNotes: \reserved@a has an extra }

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Space und ToDoNotes: \reserved@a has an extra }

von MoonKid » Fr 14. Apr 2017, 14:24

Ich verstehe. (Bin selber überrascht! :D )

Aber an sowas hätte ich nie gedacht. So weit um die Ecke oder mit dem Kopf in der Maschine denk ich als User einfach nie.

Vielen Dank für die Erläuterung!

von Gast » Fr 14. Apr 2017, 11:31

Das Problem im konkreten Fall ist, dass \todo ohne caption den Inhalt als Eintrag selbst ins tdo-Verzeichnis schreiben will. Dabei zerbricht dann \begin{spacing}. Ein ähnliches Problem ist in der [d]todonotes[/d]-Anleitung in Abschnitt 1.8.7 am Beispiel einer minipage erklärt. Eine weitere Lösungsmöglichkeit wäre also beispielsweise caption immer explizit ohne spacing-Umgebung zu setzen:
\newcommand{\osenf}[1] {%
    \todo[size=\scriptsize,caption={#1}]
        { %
            \begin{spacing}{1} % Zeile bitte auskommentieren
                \sffamily #1
            \end{spacing}  % Zeile bitte auskommentieren
        } %
}
Letztlich ist das auch das, was in Abschnitt 1.8.6 der Anleitung gezeigt wird. Dort ist der neue Befehl lediglich noch um die Möglichkeit erweitert, weitere optionale Argumente für \todo zu setzen.

von Gast » Fr 14. Apr 2017, 11:16

MoonKid hat geschrieben:Was hab ich falsch gemacht?
Du hast »1.8.6 Altering the line spacing of todonotes« in der [d]todonotes[/d]-Anleitung nicht beachtet.

von Gast » Fr 14. Apr 2017, 11:11

Der Fehler tritt typischerweise bei Verwendung von zerbrechlichen Befehlen in beweglichen Argumenten auf.

von MoonKid » Fr 14. Apr 2017, 10:49

Johannes_B hat geschrieben:
	\todo[size=\small\setstretch{1}]
Das funktioniert. Danke sehr.

Aber es bleibt die Frage, was der Fehler überhaupt bedeutet. Was hab ich falsch gemacht?

von Johannes_B » Fr 14. Apr 2017, 10:05

\documentclass{scrartcl}


\usepackage{setspace}
\setstretch{1,5} % (typografisch inkorrekt) Word-ig
\recalctypearea

% Notizen\Kommentare
\usepackage[shadow]{todonotes}
\newcommand{\osenf}[1] {%
	\todo[size=\small\setstretch{1}]
	{%
			\sffamily #1
	} %
}

\usepackage{blindtext}

\begin{document}
\blindtext[1] \osenf{Mehrzeiliger Kommentar mit einfachem Zeilenabstand}
\end{document}

Space und ToDoNotes: \reserved@a has an extra }

von MoonKid » Fr 14. Apr 2017, 09:57

Ich nutze setspace Zeilenabstände entsprechend (bzw. annährend) meiner formalen Vorgaben umzusetzen.
Für Notizen nutze ich todonotes

Im Minimalbeispiel ist global ein Zeilenabstand von 1.5 gesetzt. In den Notes soll der aber nur 1 sein.

Bei meiner Lösung bekomme ich aber diesen Fehler und verstehe ihn auch mal wieder nicht.
! Argument of \reserved@a has an extra }.
<inserted text> 
                \par 
l.25 ...ger Kommentar mit einfachem Zeilenabstand}
Das Minimalbeispiel.
\documentclass{scrartcl}
\usepackage{fontspec}

%% Sprache
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

%% Zeilenabstand
\usepackage{setspace}
\setstretch{1,5} % (typografisch inkorrekt) Word-ig
\recalctypearea

% Notizen\Kommentare
\usepackage[shadow]{todonotes}
\newcommand{\osenf}[1] {%
    \todo[size=\scriptsize]
        { %
            \begin{spacing}{1} % Zeile bitte auskommentieren
                \sffamily #1
            \end{spacing}  % Zeile bitte auskommentieren
        } %
}

\usepackage{blindtext}

\begin{document}
\blindtext[1] \osenf{Mehrzeiliger Kommentar mit einfachem Zeilenabstand}
\end{document}
[/p]

Nach oben