[OS X TeX] Tried comment environment in Memoir

David Arnold dwarnold45 at suddenlink.net
Mon Apr 6 07:03:29 CEST 2009


Ross,

This works!

Thanks. This is extremely helpful.

I would never have found the \excludecomment macro, which is really a  
treasure! I've never seen this one before.

However, It is very hard for me to understand why we don't write a  
closing \end{writeverbatim} (I've tried. It doesn't work.).

In memman.pdf, there always seems to be a closing \endwriteverbatim.

1 \newoutputstream{tryout}
2 \openoutputfile{\jobname.fig}{tryout}
3 \newcounter{pseudo}
4 \renewcommand{\thefigure}{\thepseudo.\arabic{figure}}
5 \newenvironment{writefigure}{%
6 \ifnum\value{chapter}=\value{pseudo}\else
7 \setcounter{pseudo}{\value{chapter}}
8 \addtostream{tryout}{\protect\stepcounter{chapter}}
9 \addtostream{tryout}{\protect\addtocounter{chapter}{-1}}
10 \addtostream{tryout}{%
11 \protect\setcounter{pseudo}{\thechapter}}
12 \fi
13 \addtostream{tryout}{\protect\begin{figure}}
14 \writeverbatim{tryout}}%
15 {\endwriteverbatim\finishwritefigure}
16 \newcommand{\finishwritefigure}{%
17 \addtostream{tryout}{\protect\end{figure}}}
18 \newcommand{\printfigures}{%
19 \closeoutputstream{tryout}%

So I am really puzzled.

But because of your reply, progress is being made at this end, which  
is nice, particularly after a long day of no progress.

Thanks.

D.


On Apr 5, 2009, at 9:08 PM, Ross Moore wrote:

> Hi David,
>
> On 06/04/2009, at 12:38 PM, David Arnold wrote:
>
>> OK. Tried the following, but no go. Getting this error:
>>
>> ! Argument of \verbatim at start has an extra }.
>> <inserted text>
>>                \par
>> l.47 \begin{backanswer}
>>
>> ?
>>
>> Note sure why this doesn't work:
>>
>> \newenvironment{backanswer}%
>> 	{\ifodd\theexercise{%
>> 		\addtostream{backansout}{\par\noindent\textbf{\theexercise.}}
>> 		\begin{writeverbatim}{backansout}}\else{\begin{comment}}\fi}
>> 	{\ifodd\theexercise{%
>> 		\end{writeverbatim}}\else{\end{comment}}\fi}
>
> This cannot work, as the first instance of
>   \begin{writeverbatim}
> will never finish.
>
> It never encounters the corresponding  \end{writeverbatim} ,
> as the first (and every subsequent) \end{backanswer}  does not
> expand --- since we are in verbatim-mode at that point.
>
>
>
>
>
>>
>> Here's the full code example:
>
> The coding that I attach works just fine.
>
> <arnoldAnswers.tex>
>
> The main tricks are:
>
>  1.  write all the answers into the back-answer file,
>      tagged as {evenanswer} or {oddanswer} environments;
>
>  2.  use \newenvironment{oddanswer}
>      and \newenvironment{evenanswer}
>      to layout the answers as you want, but ...
>
>  3.  use  \excludecomment{evenanswer}  to bypass these
>      when you read the answers back in.
>      If you choose to show all the answers, simply
>      comment-out this single line!
>
>  4.  organise your questions&solutions as follows:
>
>
>>>> \begin{exercise}
>>>> What is the sum of $-2$ and $-15$?
>>>> \begin{backanswer}
>>>> $-17$
>>>> \end{writeverbatim}
>>>> \end{backanswer}
>>>>
>>>> \end{exercise}
>
>
>
> The apparent extra \end{writeverbatim}  closes of
> the  \begin{writeverbatim}  in the expansion of
> \begin{backanswer} .
>
> viz.
>
> \newenvironment{backanswer}%
> 	{\ifodd\theexercise{%
> 		\addtostream{backansout}{\protect\begin{oddexercise}{\theexercise}}%
> 	 }\else{%
> 		\addtostream{backansout}{\protect\begin{evenexercise} 
> {\theexercise}}%
> 	}\fi
> 	\begin{writeverbatim}{backansout}}%
> %
> 	{\ifodd\theexercise{%
> 		\addtostream{backansout}{\protect\end{oddexercise}}%
> 	 }\else{%
> 		\addtostream{backansout}{\protect\end{evenexercise}}%
> 	}\fi}
> 	
> \newenvironment{oddexercise}[1]{\par\noindent\textbf{#1.}}{}
> \newenvironment{evenexercise}[1]{\par\noindent\textbf{#1.}}{}
>
> %\includecomment{oddexercise}
> \excludecomment{evenexercise}
>
>
>> \end{Exercises}
>>
>> \subsection{Answers}
>>
>> \input{\jobname.backans}
>>
>> \end{document}
>
>
> Hope this helps,
>
> 	Ross
>
> ------------------------------------------------------------------------
> Ross Moore                                       ross at maths.mq.edu.au
> Mathematics Department                           office: E7A-419
> Macquarie University                             tel: +61 (0)2 9850  
> 8955
> Sydney, Australia  2109                          fax: +61 (0)2 9850  
> 8114
> ------------------------------------------------------------------------
>
>
>
> ----------- Please Consult the Following Before Posting -----------
> TeX FAQ: http://www.tex.ac.uk/faq
> List Reminders and Etiquette: http://email.esm.psu.edu/mac-tex/
> List Archive: http://tug.org/pipermail/macostex-archives/
> TeX on Mac OS X Website: http://mactex-wiki.tug.org/
> List Info: http://email.esm.psu.edu/mailman/listinfo/macosx-tex
>




More information about the macostex-archives mailing list