Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen
 
			
		
		
			
				
																			
								MoonKid 							 
						Forum-Meister 			
		Beiträge:  690  		Registriert:  Sa 30. Jun 2012, 11:56 		
		
						
						
		 
		
						
						
													
							
						
									
						Beitrag 
					 
								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]
 
			
			
									
									XeLaTeX, TeX Live, vim-latexsuite
						 
		 
				
		
		 
	 
	 
				
		
		
			
				
								Johannes_B 							 
						Moderator 			
		Beiträge:  5079  		Registriert:  Do 1. Nov 2012, 14:55 		
		
											
							
				Kontaktdaten: 
				
			 
				
		 
		
						
						 
													
							
						
									
						Beitrag 
					 
								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}
  
			
			
									
									TeXwelt - Fragen und Antworten  Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen ?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
 
						 
		 
				
		
		 
	 
	 
				
		
		
			
				
																			
								MoonKid 							 
						Forum-Meister 			
		Beiträge:  690  		Registriert:  Sa 30. Jun 2012, 11:56 		
		
						
						
		 
		
						
						 
													
							
						
									
						Beitrag 
					 
								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?
 
			
			
									
									XeLaTeX, TeX Live, vim-latexsuite
						 
		 
				
		
		 
	 
	 
				
		
		
			
				
																			
								Gast  							 
									
						
		
						
						
		 
		
						
						 
													
							
						
									
						Beitrag 
					 
								von Gast   »  Fr 14. Apr 2017, 11:11 
			
			
			
			
			Der Fehler tritt typischerweise bei Verwendung von zerbrechlichen Befehlen in beweglichen Argumenten auf.
			
			
									
									
						 
		 
				
		
		 
	 
	 
				
		
		
			
				
																			
								Gast  							 
									
						
		
						
						
		 
		
						
						 
													
							
						
									
						Beitrag 
					 
								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.
 
			
			
									
									
						 
		 
				
		
		 
	 
	 
				
		
		
			
				
																			
								Gast  							 
									
						
		
						
						
		 
		
						
						 
													
							
						
									
						Beitrag 
					 
								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.
 
			
			
									
									
						 
		 
				
		
		 
	 
	 
				
		
		
			
				
																			
								MoonKid 							 
						Forum-Meister 			
		Beiträge:  690  		Registriert:  Sa 30. Jun 2012, 11:56 		
		
						
						
		 
		
						
						 
													
							
						
									
						Beitrag 
					 
								von MoonKid   »  Fr 14. Apr 2017, 14:24 
			
			
			
			
			Ich verstehe. (Bin selber überrascht!  
 )
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!
 
			
			
									
									XeLaTeX, TeX Live, vim-latexsuite