[tex-live] File issue with TL2012 on Windows
Joseph Wright
joseph.wright at morningstar2.co.uk
Sun Aug 5 18:33:01 CEST 2012
Hello all,
A question came up on TeX-sx which I've been able to cut down to the
following example
\documentclass{article}
\usepackage{comment}
\includecomment{foo}
\includecomment{fuu}
\includecomment{figurer}
\begin{document}
\begingroup
\tracingall
\begin{foo}
\begin{fuu}
\begin{figurer}
A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
B%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
D%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
E%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
H%%%%%
\end{figurer}
\end{fuu}
\end{foo}
\endgroup
\end{document}
This compiles fine on Unix, or on Windows with MiKTeX 2.9, but fails
with an up-to-date TL2012 (or indeed with TL2011): see the attached log
file. The key in seeing what might be up seems to be line 1144 in the
log, where you'll see
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment
Test}\test \edef \next {\noexpand \EndOfComment {\CurrentComment
}}\else \ThisComment {#1}\let \next \ProcessCommentLine \fi \next
#1<-\end{fuu
{\def}
Notice the missing closing brace. Crucial to seeing the issue is the
number of tokens read: if you add another one to for example line 'H'
you loose other token during the read.
To see the issue, you seem to need both the multiple read/write steps
used by comment and an appropriate number of tokens in the comments, and
as I say this only shows up on Windows. You can move the tokens around
within the processed material, and it does not matter what they are: the
letters are there so the lines can be picked out in the log.
Anyone got any idea what is up?
--
Joseph Wright
-------------- next part --------------
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (Web2C 2011) (format=pdflatex 2012.4.30) 5 AUG 2012 17:06
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**test
(./test.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabi
c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h
ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma
rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian,
kurmanji, lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nyn
orsk, polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbia
nc, slovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorb
ian, welsh, loaded.
(c:/texlive/2011/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(c:/texlive/2011/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
)
\c at part=\count79
\c at section=\count80
\c at subsection=\count81
\c at subsubsection=\count82
\c at paragraph=\count83
\c at subparagraph=\count84
\c at figure=\count85
\c at table=\count86
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
(c:/texlive/2011/texmf-dist/tex/latex/comment/comment.sty
\CommentStream=\write3
Excluding comment 'comment') Include comment 'foo' Include comment 'fuu'
Include comment 'figurer' (./test.aux)
\openout1 = `test.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 6.
LaTeX Font Info: ... okay on input line 6.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 6.
LaTeX Font Info: ... okay on input line 6.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 6.
LaTeX Font Info: ... okay on input line 6.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 6.
LaTeX Font Info: ... okay on input line 6.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 6.
LaTeX Font Info: ... okay on input line 6.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 6.
LaTeX Font Info: ... okay on input line 6.
{vertical mode: \tracingstats}
{\tracingpages}
{\tracinglostchars}
{\tracingmacros}
{\tracingparagraphs}
{\tracingrestores}
{\errorcontextlines}
\loggingoutput ->\tracingoutput \@ne \showboxbreadth \maxdimen \showboxdepth \m
axdimen \errorstopmode
{\tracingoutput}
{\showboxbreadth}
{\showboxdepth}
{\errorstopmode}
\showoverfull ->\tracingonline \@ne
{\tracingonline}
\begin #1->\@ifundefined {#1}{\def \reserved at a {\@latex at error {Environment #1 u
ndefined}\@eha }}{\def \reserved at a {\def \@currenvir {#1}\edef \@currenvline {\
on at line }\csname #1\endcsname }}\@ignorefalse \begingroup \@endpefalse \reserve
d at a
#1<-foo
\@ifundefined #1->\expandafter \ifx \csname #1\endcsname \relax \expandafter \@
firstoftwo \else \expandafter \@secondoftwo \fi
#1<-foo
{\expandafter}
{\csname}
{\ifx}
{false}
{\expandafter}
{\fi}
\@secondoftwo #1#2->#2
#1<-\def \reserved at a {\@latex at error {Environment foo undefined}\@eha }
#2<-\def \reserved at a {\def \@currenvir {foo}\edef \@currenvline {\on at line }\csn
ame foo\endcsname }
{\def}
\@ignorefalse ->\global \let \if at ignore \iffalse
{\global}
{\begingroup}
\@endpefalse ->\let \if at endpe \iffalse
{\let}
\reserved at a ->\def \@currenvir {foo}\edef \@currenvline {\on at line }\csname foo\
endcsname
{\def}
{\edef}
\on at line -> on input line \the \inputlineno
{\csname}
\foo ->\BeforeIncludedComment \ProcessComment {foo}
\BeforeIncludedComment ->\immediate \openout \CommentStream =\CommentCutFile \l
et \ThisComment \WriteCommentLine
{\immediate}
\CommentCutFile ->comment.cut
\openout3 = `comment.cut'.
{\let}
\ProcessComment #1->\begingroup \def \CurrentComment {#1}\let \do \makeinnocent
\dospecials \makeinnocent \^^L\endlinechar `\^^M \catcode `\^^M=12 \xComment
#1<-foo
{\begingroup}
{\def}
{\let}
\dospecials ->\do \ \do \\\do \{\do \}\do \$\do \&\do \#\do \^\do \_\do \%\do \
~
\do #1->\catcode `#1=12
#1<-\
{\catcode}
\do #1->\catcode `#1=12
#1<-\\
{\catcode}
\do #1->\catcode `#1=12
#1<-\{
{\catcode}
\do #1->\catcode `#1=12
#1<-\}
{\catcode}
\do #1->\catcode `#1=12
#1<-\$
{\catcode}
\do #1->\catcode `#1=12
#1<-\&
{\catcode}
\do #1->\catcode `#1=12
#1<-\#
{\catcode}
\do #1->\catcode `#1=12
#1<-\^
{\catcode}
\do #1->\catcode `#1=12
#1<-\_
{\catcode}
\do #1->\catcode `#1=12
#1<-\%
{\catcode}
\do #1->\catcode `#1=12
#1<-\~
{\catcode}
\makeinnocent #1->\catcode `#1=12
#1<-\^^L
{\catcode}
{\endlinechar}
{\catcode}
\xComment #1^^M->\expandafter \ProcessCommentLine
#1<-
{\expandafter}
\ProcessCommentLine #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}
\test \edef \next {\noexpand \EndOfComment {\CurrentComment }}\else \ThisCommen
t {#1}\let \next \ProcessCommentLine \fi \next
#1<-\begin{fuu}
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-\begin{fuu}
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-\begin{figurer}
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-\begin{figurer}
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-B%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-B%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-D%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-D%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-E%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-E%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-H%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-H%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-\end{figurer}
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-\end{figurer}
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-\end{fuu}
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-\end{fuu}
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-\end{foo}
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->foo
{\ifx}
{true}
{\edef}
{\noexpand}
\CurrentComment ->foo
{\else}
\next ->\EndOfComment {foo}
\EndOfComment #1->\endgroup \end {#1}\csname After#1Comment\endcsname
#1<-foo
{\endgroup}
{restoring \next=undefined}
{restoring \CStmp=undefined}
{restoring \test=undefined}
{restoring \catcode13=5}
{restoring \catcode12=13}
{restoring \catcode126=13}
{restoring \catcode37=14}
{restoring \catcode95=8}
{restoring \catcode94=7}
{restoring \catcode35=6}
{restoring \catcode38=4}
{restoring \catcode36=3}
{restoring \catcode125=2}
{restoring \catcode123=1}
{restoring \catcode92=0}
{restoring \catcode32=10}
{restoring \do=\noexpand}
{restoring \CurrentComment=undefined}
\end #1->\csname end#1\endcsname \@checkend {#1}\expandafter \endgroup \if at endp
e \@doendpe \fi \if at ignore \@ignorefalse \ignorespaces \fi
#1<-foo
{\csname}
{\relax}
\@checkend #1->\def \reserved at a {#1}\ifx \reserved at a \@currenvir \else \@badend
{#1}\fi
#1<-foo
{\def}
{\ifx}
{true}
{\else}
{\expandafter}
{\iffalse}
{false}
{\endgroup}
{restoring \reserved at a=macro:->\def \@currenvir {foo}\edef \@currenvline \ETC.}
{restoring \endfoo=undefined}
{restoring \ThisComment=undefined}
{restoring \@currenvline=macro:->}
{restoring \@currenvir=macro:->document}
{\iffalse}
{false}
{\csname}
\AfterfooComment ->\immediate \closeout \CommentStream \input {\CommentCutFile
}\relax
{\immediate}
\input ->\@ifnextchar \bgroup \@iinput \@@input
\@ifnextchar #1#2#3->\let \reserved at d =#1\def \reserved at a {#2}\def \reserved at b
{#3}\futurelet \@let at token \@ifnch
#1<-\bgroup
#2<-\@iinput
#3<-\@@input
{\let}
{\def}
{\def}
{\futurelet}
\@ifnch ->\ifx \@let at token \@sptoken \let \reserved at c \@xifnch \else \ifx \@let
@token \reserved at d \let \reserved at c \reserved at a \else \let \reserved at c \reserve
d at b \fi \fi \reserved at c
{\ifx}
{false}
{\ifx}
{true}
{\let}
{\else}
{\fi}
\reserved at c ->\@iinput
\@iinput #1->\InputIfFileExists {#1}{}{\filename at parse {#1}\edef \reserved at a {\
noexpand \@missingfileerror {\filename at area \filename at base }{\ifx \filename at ext
\relax tex\else \filename at ext \fi }}\reserved at a }
#1<-\CommentCutFile
\InputIfFileExists #1#2->\IfFileExists {#1}{#2\@addtofilelist {#1}\@@input \@fi
lef at und }
#1<-\CommentCutFile
#2<-
\IfFileExists #1#2#3->\openin \@inputcheck #1 \ifeof \@inputcheck \ifx \input at p
ath \@undefined \def \reserved at a {#3}\else \def \reserved at a {\@iffileonpath {#1
}{#2}{#3}}\fi \else \closein \@inputcheck \edef \@filef at und {#1 }\def \reserved
@a {#2}\fi \reserved at a
#1<-\CommentCutFile
#2<-\@addtofilelist {\CommentCutFile }\@@input \@filef at und
#3<-\filename at parse {\CommentCutFile }\edef \reserved at a {\noexpand \@missingfil
eerror {\filename at area \filename at base }{\ifx \filename at ext \relax tex\else \fil
ename at ext \fi }}\reserved at a
{\openin}
\CommentCutFile ->comment.cut
{\ifeof}
{false}
{\closein}
{\edef}
\CommentCutFile ->comment.cut
{\def}
{\fi}
\reserved at a ->\@addtofilelist {\CommentCutFile }\@@input \@filef at und
\@addtofilelist #1->
#1<-\CommentCutFile
{\input}
\@filef at und ->comment.cut
(./comment.cut
\begin #1->\@ifundefined {#1}{\def \reserved at a {\@latex at error {Environment #1 u
ndefined}\@eha }}{\def \reserved at a {\def \@currenvir {#1}\edef \@currenvline {\
on at line }\csname #1\endcsname }}\@ignorefalse \begingroup \@endpefalse \reserve
d at a
#1<-fuu
\@ifundefined #1->\expandafter \ifx \csname #1\endcsname \relax \expandafter \@
firstoftwo \else \expandafter \@secondoftwo \fi
#1<-fuu
{\expandafter}
{\csname}
{\ifx}
{false}
{\expandafter}
{\fi}
\@secondoftwo #1#2->#2
#1<-\def \reserved at a {\@latex at error {Environment fuu undefined}\@eha }
#2<-\def \reserved at a {\def \@currenvir {fuu}\edef \@currenvline {\on at line }\csn
ame fuu\endcsname }
{\def}
\@ignorefalse ->\global \let \if at ignore \iffalse
{\global}
{\begingroup}
\@endpefalse ->\let \if at endpe \iffalse
{\let}
\reserved at a ->\def \@currenvir {fuu}\edef \@currenvline {\on at line }\csname fuu\
endcsname
{\def}
{\edef}
\on at line -> on input line \the \inputlineno
{\csname}
\fuu ->\BeforeIncludedComment \ProcessComment {fuu}
\BeforeIncludedComment ->\immediate \openout \CommentStream =\CommentCutFile \l
et \ThisComment \WriteCommentLine
{\immediate}
\CommentCutFile ->comment.cut
\openout3 = `comment.cut'.
{\let}
\ProcessComment #1->\begingroup \def \CurrentComment {#1}\let \do \makeinnocent
\dospecials \makeinnocent \^^L\endlinechar `\^^M \catcode `\^^M=12 \xComment
#1<-fuu
{\begingroup}
{\def}
{\let}
\dospecials ->\do \ \do \\\do \{\do \}\do \$\do \&\do \#\do \^\do \_\do \%\do \
~
\do #1->\catcode `#1=12
#1<-\
{\catcode}
\do #1->\catcode `#1=12
#1<-\\
{\catcode}
\do #1->\catcode `#1=12
#1<-\{
{\catcode}
\do #1->\catcode `#1=12
#1<-\}
{\catcode}
\do #1->\catcode `#1=12
#1<-\$
{\catcode}
\do #1->\catcode `#1=12
#1<-\&
{\catcode}
\do #1->\catcode `#1=12
#1<-\#
{\catcode}
\do #1->\catcode `#1=12
#1<-\^
{\catcode}
\do #1->\catcode `#1=12
#1<-\_
{\catcode}
\do #1->\catcode `#1=12
#1<-\%
{\catcode}
\do #1->\catcode `#1=12
#1<-\~
{\catcode}
\makeinnocent #1->\catcode `#1=12
#1<-\^^L
{\catcode}
{\endlinechar}
{\catcode}
\xComment #1^^M->\expandafter \ProcessCommentLine
#1<-
{\expandafter}
\ProcessCommentLine #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}
\test \edef \next {\noexpand \EndOfComment {\CurrentComment }}\else \ThisCommen
t {#1}\let \next \ProcessCommentLine \fi \next
#1<-\begin{figurer}
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-\begin{figurer}
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-B%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-B%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-C%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-D%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-D%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-E%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-E%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-F%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-H%%%%%
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-H%%%%%
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-\end{figurer}
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-\end{figurer}
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
#1<-\end{fuu
{\def}
\csarg #1#2->\expandafter #1\csname #2\endcsname
#1<-\ifx
#2<-End\CurrentComment Test
{\expandafter}
{\csname}
\CurrentComment ->fuu
{\ifx}
{false}
\ThisComment #1->\def \CStmp {#1}\immediate \write \CommentStream {\CSstringmea
ning \CStmp }
#1<-\end{fuu
{\def}
{\immediate}
\write->\CSstringmeaning \CStmp
\CSstringmeaning #1->\expandafter \CSgobblearrow \meaning #1
#1<-\CStmp
{no mode: \expandafter}
{\meaning}
\CSgobblearrow macro:->->
{vertical mode: \let}
{\fi}
\next #1^^M->\def \test {#1}\csarg \ifx {End\CurrentComment Test}\test \edef \n
ext {\noexpand \EndOfComment {\CurrentComment }}\else \ThisComment {#1}\let \ne
xt \ProcessCommentLine \fi \next
)
Runaway argument?
! File ended while scanning use of \next.
<inserted text>
\par
\@filef at und ->comment.cut
\AfterfooComment ...ream \input {\CommentCutFile }
\relax
l.22 \end{foo}
?
{\relax}
{the character \}
{horizontal mode: the character \}
)
*
(Please type a command or say `\end')
*
(Please type a command or say `\end')
*
! Emergency stop.
<*>
End of file on the terminal!
Here is how much of TeX's memory you used:
253 strings out of 493610
2858 string characters out of 3145852
49291 words of memory out of 3000000
3644 multiletter control sequences out of 15000+200000
3640 words of font info for 14 fonts, out of 3000000 for 9000
831 hyphenation exceptions out of 8191
23i,0n,17p,151b,82s stack positions out of 5000i,500n,10000p,200000b,50000s
! ==> Fatal error occurred, no output PDF file produced!
More information about the tex-live
mailing list