PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit LaTeX Hack aus "LaTeX Hacks" (Buch)



vci
02-01-2009, 12:57
1234567890

sommerfee
02-01-2009, 13:00
Alles, wo @ in einem Befehlsnamen etc. vorkommt, muß mit \makeatletter ... \makeatother geklammert werden, oder aber in eine .sty-Datei verfrachtet werden.

Probiere also mal:



\makeatletter

% Datei zum Schreiben oeffnen:
\newwrite\ex@file
\immediate\openout\ex@file=\jobname.sol

% Wird bei \begin{solution} ausgefuehrt:
\newcommand*{\solution}{\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\ex@file{\the\verbatim@line}}%
\immediate\write\ex@file{%
\string\begin{ex@solution}{\theexercise}}%
\verbatim@start}

% Wird bei \end{solution} ausgefuehrt:
\def\endsolution{%
\immediate\write\ex@file{%
\string\end{ex@solution}}\@esphack}

\makeatother


Liebe Grüße,
Axel

vci
02-01-2009, 13:25
Danke fuer die Hilfe, leider funktionieren beide Ideen (Klammerung mit \makeatletter bzw. \makeatother oder Auslagerung in eine .sty Datei) nicht.

Er erkennt dann noch nicht einmal mehr die Umgebung:


! Undefined control sequence.
<write> \string \begin {ex@solution}{\theexercise
}
l.43 \begin{solution}

voss
02-01-2009, 14:07
Danke fuer die Hilfe, leider funktionieren beide Ideen (Klammerung mit \makeatletter bzw. \makeatother oder Auslagerung in eine .sty Datei) nicht.

Er erkennt dann noch nicht einmal mehr die Umgebung:


! Undefined control sequence.
<write> \string \begin {ex@solution}{\theexercise
}
l.43 \begin{solution}



\newcounter{exercise} fehlt noch

Herbert

vci
02-01-2009, 16:29
Vielen Dank Herbert! Daran hat es gelegen ;-)