Detect begin… … end… mismatch, or ending what you did not beginWhat does this error mean?: begin document ended by end proofError with beginequation and endequationCompiler Error when Creating a Macro/EnvironmentProblem grouping environmentsAbridging begin … endcommand without ending at the end of the line?Putting custom environment (using environ package) start and ends in commandsAlias for an lstlisting environmentSorry, but pdflatex did not succeedbeginmyenv ended by enddocument
Accidentally leaked the solution to an assignment, what to do now? (I'm the prof)
Why is an old chain unsafe?
Why has Russell's definition of numbers using equivalence classes been finally abandoned? ( If it has actually been abandoned).
When blogging recipes, how can I support both readers who want the narrative/journey and ones who want the printer-friendly recipe?
Infinite past with a beginning?
Why Is Death Allowed In the Matrix?
Simulate Bitwise Cyclic Tag
What typically incentivizes a professor to change jobs to a lower ranking university?
Do airline pilots ever risk not hearing communication directed to them specifically, from traffic controllers?
What would happen to a modern skyscraper if it rains micro blackholes?
A Journey Through Space and Time
What do you call a Matrix-like slowdown and camera movement effect?
XeLaTeX and pdfLaTeX ignore hyphenation
"which" command doesn't work / path of Safari?
Why did the Germans forbid the possession of pet pigeons in Rostov-on-Don in 1941?
Circuitry of TV splitters
Chess with symmetric move-square
How can I fix this gap between bookcases I made?
Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?
I’m planning on buying a laser printer but concerned about the life cycle of toner in the machine
Why are 150k or 200k jobs considered good when there are 300k+ births a month?
Is there a familial term for apples and pears?
I probably found a bug with the sudo apt install function
Is there really no realistic way for a skeleton monster to move around without magic?
Detect begin… … end… mismatch, or ending what you did not begin
What does this error mean?: begin document ended by end proofError with beginequation and endequationCompiler Error when Creating a Macro/EnvironmentProblem grouping environmentsAbridging begin … endcommand without ending at the end of the line?Putting custom environment (using environ package) start and ends in commandsAlias for an lstlisting environmentSorry, but pdflatex did not succeedbeginmyenv ended by enddocument
While testing some of my new environments I made a mistake like this:
...
begindocument
...
beginA
...
endA
...
beginB
...
endA
...
enddocument
LaTeX complained that B
did not end when document
ended. And it talks about the line where enddocument
is, and the line where beginB
was, but it did not talk about the mismatching endA
(the location of the actual error).
Why can't LaTeX detect such? I know that newenvironment
actually defines two commands, one for beginning and one for ending, but isn't it possible to detect the case where something is to be ended that never had begun?
Update 1:
The example I had given was (to my best knowledge) the essence of the problem, and I contructed it in the head as the original file has thousands of lines and many figures, etc. (too much to present here, and also written by a TeX analphabet, so you will tear your hair out to see my struggles...). But people do not believe what I wrote. So I made a small test file from my big file, showing the problem:
Here's the essential part of the input:
begingfxTableCap[p]lrCaptionlabel2%
gfxCap0.4Platzhalter.pdfCaption 2A
&
gfxCap0.4Platzhalter.pdfCaption 2B
endgfxTableCapLab
Causing this output (truncated to the essence):
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) (preloaded format=pdflatex)
restricted write18 enabled.
entering extended mode
(./xxx.tex
LaTeX2e <2017-04-15>
[...]
<Platzhalter.pdf, id=1, 284.52756pt x 227.62204pt> <use Platzhalter.pdf>
<use Platzhalter.pdf> <use Platzhalter.pdf> <use Platzhalter.pdf>
! LaTeX Error: begingfxTableCap on input line 88 ended by enddocument.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
So it does not say "unexpected endgfxTableCapLab
.
In case it's special for the environments I had defined, here's the mess:
documentclass[a4paper,twoside]report
newcommandgtLab
newcommandgtCap
newenvironmentgfxTableCapLab[4][htbp]%
beginfigure[#1]%
begintabular#2%
endtabular%
gtCap%
endfigure%
newenvironmentgfxTableCap[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTableLab[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTable[2][htbp]%
begingfxTableCapLab#2%
%
endgfxTableCapLab
newcommandgLab
newcommandgCap
newcommandgfxCapLab[4]%
beginminipage[t]#1textwidth%
graphic%
gCap%
endminipage
newcommandgfxCap[3]gfxCapLab#1#2#3
begindocument
Some text...
begingfxTableCapLab[p]lrCaptionlabel1%
endgfxTableCapLab
%
Text
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
For all who do not have a nice placeholder PDF, here's the uuencoded version (I can't attach a PDF as image):
begin 644 Platzhalter.pdf
M)5!$1BTQ+C4*);7MKOL*-"`P(&]B:@H/"`O3&5N9W1H(#4@,"!2"B`@("]&
M:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IXG)5036L"00R]YU?DJ(>-
MDQ7]EHH!4&H[=S$PU*K4G8/6J'07V]VEQ9I*UC"9,)[Y.4EC,ZB8DLBB7+F
M%`5?.CB`&ZBG!YPU#G?OP!0X>_'X8=3<WANL4$A]2"%]%VOKV4#`!1Z0!X4Q
MFZ0H9<G8?UQCAQ(#:8Y?0&M`)`.1:Z4@J4>4?-`+8/]+Y1F7UWW<X.'GR'_K
M71K8ZE>;SSE<8=W!;PGHX>KCV5RI-'5/B-+I!!4.6'I8+:M7-6/*EM831[;
MYO2Y;]IIY2>GU^-T7>9P7V`)9VT07*(*96YD<W1R96%M"F5N9&]B:@HU(#`@
M;V)J"B`@(#(Q.0IE;F1O8FH*,R`P(&]B:@H/`H@("`O17AT1U-T871E(#P
M"B`@("`@("]A,"`/"`O0T$@,2`O8V$@,2`^/@H@("`^/@H@("`O1F]N="`
M/`H@("`@("`O9BTP+3`@-B`P(%(*("`@/CX*/CX*96YD;V)J"C(@,"!O8FH*
M/#P@+U1Y<&4@+U!A9V4@)2`Q"B`@("]087)E;G0@,2`P(%(*("`@+TUE9&EA
M0F]X(%L@,"`P(#(X,RXT-C0U-CD@,C(V+C<W,38U,B!="B`@("]#;VYT96YT
M<R`T(#`@4@H@("`O1W)O=7`@/#P*("`@("`@+U1Y<&4@+T=R;W5P"B`@("`@
M("]3("]4<F%N<W!A<F5N8WD*("`@("`@+TD@=')U90H@("`@("`O0U,@+T1E
M=FEC95)'0@H@("`^/@H@("`O4F5S;W5R8V5S(#,@,"!2"CX^"F5N9&]B:@HW
M(#`@;V)J"CP("],96YG=&@@."`P(%(*("`@+T9I;'1E<B`O1FQA=&5$96-O
M9&4*("`@+TQE;F=T:#$@-3@X.`H^/@IS=')E86T*>)S=.&UT$U=V[[V9T<B6
M;4E&,K:%/2,&V0ZR+2-AL,%8$TL:Y'4",K:"9&(L@PV&?-A&)AO(!V(A&Q`0
MDX3-R2Y)8%O2#0E91H0$D_V(VI[=9GO(ANXFI]W=M'C3M*<GC6N:7=)V$UN]
M;R032)OMG_SJD^;-_7KWW7O???<]"6&$4#Y*(`:)F^_I'_GUS+.C"/'_B1#I
MV7S?F.A[UO<A"'0#7K)E9.L]5]**D(%=X,,M_7N75M^7KT#1K.`'[;T&#_
M`#M]]G:$YHT!;=D0$(HZ=`6``QM&KIG['XQP"0!OTSQNX<W]_/_G#<"^.!
MM]S3?_(>R__-P#J`1='=@R.['YSXR>`U#[R*"_/`>X,)@+8_J4QBY6L[Q
MK'[*G=)Q[[6<8PB`*,50,D?)YWA=WF<MYS"E>QVL-NMON).+L(/ST[Q(7_
M)*??0MF(N@%A-@/N;VH",U'.^6NTP0_.1?-[UD(OE,.;.88;@":X&C@$$]
MLK$L(9=A^%KX'J0WZ64]H]?U"1:79:VES[+'PADM;ULR%H:WR'GFH,7"S^O+
M8_ABY/5.%3>[G!M[1Z>PJW?*W3M:;GJO?&I)`^JE#5N*B&0W2V:[NY+P2ZL`
MMKN7L1^NVO7:KME-;Y#.AUY_L#5]ZM3L(WC?\>97]UY8J=_YC?<WE7#S_9_
M]#,.T^`'QA!;'$K=PGB,RPO990TPI>!BDRH`5U%K!Y-<E<Y<H7#*I?FR`D.
MCW`)CA@Y@2-7.0QT;B*3EFT+'<&U',YDV6GN,C?)@0@&159P`X.UH[1T1U:
M<X%#.`+C]EC3I[G+OUA*8WG^LQ';)Q=@]SH5O1=V;UKU<%59%?!P0)":O(*
M@_E<.4><I1`>;H%U`7$X*A6Y/F^X:4_3>!/3Y$M85ENI'1;K@J#5ZETM,)AI
M*5]Y*0/^RA#K)2"]LZ:DN;.O+QR3Y%NRSC%F*Q&$/EIGI/")4@[Y3;.^5Q
M]8Z:(>93WBGL[!V%H'M<SBF(>J_;73[E=BUIZ'7V.B'W,*JQJ6MQ(L;E]83
M:6$1X:M;&8^[Q&JVE'C<RY9;B["TL)Y42T5,M;N5K,)$6.UE.#G_O14Y[X7
MUO]NP8KU*Y=VMU;I?IC?M/7XO9=^OGBEL;)HH:_*TUY?RN@J`G?NE.[8&U[
MD[:O]S3V6<X==?!-96$7>G;N,)FK/9YS/)=:YP_2,W6ASI99D2OMRWO7+:T
M>Z7XJ'?36&.4Q69W3WLD1M=7R%PEB[E:/`!>7U-$=Y6M*OH8!%34XBW%>XJ
M/%C('&(Q*T*([V8?9)]AS[`L8`7!X9(]):2DH+"$,2EY^G$.([$B9S,L3R7
M*,5&7:C`FX_SXSS0@P-GO>M7L^4&_?2Q?5XIN:[7;V0IY>"&/O:.^H@:C
MT2PU>I9[K!ZKE`L367Q+N.GO'MK?>/^;;WJY4LJ](;":^07^S[^>-],>(U7
MKT-:CBY!B'F-78'RL$%>RQYF9!#!$?)-D*>X/^$)V/?IXH_!W%IZIT6-&
M3Q[0859GT2W2G=*=U[VC^T#'SJ>,>"5>`-FK%<O3R(9;,EB`TT.6KN'`BF
M#?B`9TX&,&G##@,0..&7"W`<L&O-3@-PP8]AM835AL7Q<4#=ABP,B`O5G.
M*0/+&A9I8IK0*Y[6H"9<+%0')PV8((-H"!E&#"ROD0M-EJ".";%&S(?H!J&I
MY:PT?MZG<[1'1MANT#VS36GRPDLCR<;VKY12$*M>1JQO=%NQ7;K$O*MF2>9
MIIGMY`<'F:I#!S_[]2$M;H]!W/X-]K8=W7,1Z6'B1;PA:%#D4`$^49`I(`52
M`DEIZ;(T*;%I"1LEG)"PI'DY;WYP0:F2+L.HS%364#99=K6,TY>5HS*#%16'
M.)-FM,>+J5%3;FKM#KI-1FEY<F*Z%RJ)%6I3;GM0T&.&@L7C595*]T#KT".W
M5[QJ;H@HM;VFO/G"4,PLW?Y[>[Y38.'NV=<Y/N!H8!4WWU_QPWN$NS#]O;
MFJIY-%<G2J%.+$`.=)=<WR-META/Y?9*$F8&H9JWY^795LM"!3Y:@2NJ$PZT
M6C!C<T-UNOIR-5--79L'I4"OYU#(X>#$4(F)"Q5I"4QK[92YV86==-^[<]ZX
M7>!0+Z+5MI+0E)U?Q$@+B1DV/W6Q`E?78VW_8XO4OB.TTC9<^956[Y]]]5/
M;]NO#ARX,.QZW7CTT;K-W2M8_!_A:W-&X-U=1O:7;@2ES_]R_TK(=_L;LT
M^=*S%5_;LTE;LP/@Y`'P3T"M<HW)VF`E5JN]0*"%.5N5)Z$N<WI45C.O)%A6
M4&SBC5J-]7K><N96P^RAF]#8U_MJ62L'JTTS;=F+;6:'.$X!<QPV!VGG-%
MJ+FDQE#<4-FZ?GDYT[IP==N*^?-7MC9;6C>LK."9YSFN:?/!SIE+V9W(4"M0
M`6+)&GA7@D$,G(![4`9WX7Y/WX8/T%^2MX3J&<85XQKXPDZ'G,CJ)U^$8
M!_*><!O_DZ_L;ACG>P]_!S^#GX',R]_DI?-[$;_[1D5]-P_^G!)-[UJO
MRV'D!@EZ,V%OP+FOP*[_9XV[!%7J(;A-6=$NK;^I0>6WH*CE/F(8I_WL^N_
M6BOTV==Y]"-T%IVB74`/8RT.^L-[0WTE^@E#3J.COP1M1?1BSGH&/HV>O1+
MY;:C?:#G%,S_>8L!=1=Z&F:>0-^#=%R(/3#K73GN;]#/_G=5^+?X9^@)N*/>
M!?T%Z(]#2CY`/D9/D'7H7O*WS%[T#700?#R!MZ%QD(^A4W@#V@C4;-N(!M'P
M%Y0FT5'T/-H--__KC=N;^1TJ_.Q[8/E!T/,4VH9&;QCQ`OXO^F($L/W[Z%6-
MMG>.R0>9[>0U0F:>!.1QM!6>?OPKL/,(<ROR<V9&B$Y$(V$N[O6=8;6KKG]
MMHZOM0=7*P&_K^U6V=NZJF7EBN:FY<L:ES2XZNMJ:ZJK'(NDA7:AU&(V&8L*
M#?EY>E['L7"PH-J`I,1$M2JFLE52,%A'<:D?"/TW$&*J""3E9AE5C&EBXLV2
M,DAN^8*DG)64KTMBD]B"6NIJQ8`DJF_Y)7$"]W1&`#[BEZ*B.J7!MVLP6Z4A
MA8#8[3!"#)0.^445Q2`JMPWE`S$_*`O9<CW2;[!_+I:E,HW`&@`2*V11E*X
MIA5K`*D)K$@1I"^DTZJ,(]`_H(8Z(P&_S6Z/UM6VJT627V,AGZ92U?E47E,I
M;J.FHT-BJC:=/#QA0IMBSH(!::#_SHC*],/8)!-()A]5S4[U%LFOWK+[@U+P
M?%"ME?P!U4FU=JR[/D_'YU/"#P>'21*3UQ"X(TU]=#.E/T?1.4S7$`45"&R
MJ4BBDHPE^R<RB4V2:)*2J8*"Y$@`(HQ"$1@UD7G]D$U5#D=54VP(K@YJZSK
M4.=U;HBHQ*&(0_U`@:]7LC?9[.;HG$SHR]@(`@'A@)C:[=3Q0Q,RV@2(FNB,
M9'$1;;*=0[++&55)C'+2<QQKF'(2<YSKPV,2K&9'5R2ILH[V`2D`,3[4KR8V
M03YMITLAF=2B3VQV*5EL%IM=44U6!*O:![:)*E<%88%1-PZ`3*%#DB8-*?HD
M^YJRP015YF*Q60(U5$]`"L1RW_N&2D&!6%>K!IW9I>^.J+(?`+D_MT:!5(,+
M1O3'8(FV^;7E4UW2B&J1VJZO)S4KL*TKH@W)#5,M/A7%-N=&J:Z`GXL!I(Q
M?]8$JDOJC%Q$GLQD:JEH>6#EJ*HGPJ7^""OJ@+)R,`658C9!F"G;1$C-KLJ
M1V&!HU)D,$H3#2)TRR1,9]=F5(FO.]+1)75T]D2:<H9D&50=ZPA8T4L675
M0,JI>H=>C!`;$P5!$Q!$!0"IK05ZE7?HX3%!P#4J3=6V%C&";6A.&LQ0;Q$#
M@_Z<',5O4LK1=/(%Y[3I*`IZ?$&;/6K/MKI:`FPQ-S&,T-.@!N=8C`,J`=`(
MJ-%(-):E-.?%B#0H1:4A495#$>H;#86Y5PPM)CGUJK[)NR&8$&8D!W8<P@-
MIJHX;3<&5UVMX=?1X!?8[7-L,:F7.KJ25+F44XC`G85T126FPV;??3_2PI
M_;")84=K^SF9DF6ZEX?HMDU*[0-)J2O2HDE#!7G(MIO.58PZ<$=W6UTM%+.V
ME(0/=*9D?*"K)W+1!-?)`]V1<P037ZPMFEH$O,A%$<X*C4HHE1(I(E*$:EH'
MB%Z3MUV4$4IH7%8C:/CF";AX=U7`AI&FR=(EF::HQ&@L5F:K-%H@U4J'8(8
M0_T.B`-T?1Z,#B5C49KCJ`0B`E^L8JD5HB.UIC#1%:CYTF";:I#:*-U+Z=XL
M74?I/&0&+L%UM;N3IH!TK;1..]#I8_[7S8@YVV=LN8:$[%WE[=VG?S+WGHW-
M/*G?R@<1O<C,W3]A'-ZNP;Y].G9V.SO]5O_QXTVCWP$I^T=<%;_%4JR<;2>
M-",!KJM+`'Y,PU^DOTE0+9S^[^`$?I\3/Z%B3!_IFG*P^M0-SH,=UH"OP5<
MJ`=.^^>X--R*22I/_C'FZ36G"L_)C.#V#SY@-(/SUWZ*Q4_QM5"-+%2
M(_R[LEBXJCB%OND]TXO7:Z;WI^NPT9_BG#RJ%?WQ?$8SO8_E]I43X[:0B
MO#UY97)ZDI$G/<N42:54^/M55+_L(H)7%,^#TF(QC?%=XE6B?_=:E->?LO
M(_2+<*?AZJ$'_ZX1LA<Q*&)D8G$!$-_#68FBMV*<,%[8>V%X0M[+IRX</8"
M/W+NY#GU'&,AX^^BM57L?%5K#>^XGUE^A4FH1Y5B:JFU<LJXSKK/4M.OJR^
M3-(O7WZ9N,YXSY`3+^'TBY=?)&M/CYFKM/#I]XG3G-/G-D1`ZCH>?PF\
MA9]2*H1O'9LO[#DV?BQSC&EX7'Z<)!['(^.)<7)T'*?'+X^3M8?[#@?9KZI
M9(03C^#]^Y8(8W&O$`</AN]M$>Y5&H5R7!HNY2&>03UH'/,>#UP7.GLD38
MT!,4>N`]SUT<YB`FK)L)#S/8R'@9,MV9Z21R9V.3(G<Z:I2WY>X0;E=$(0@Z
M5-S5L%7E&F%)!1<XK:&S=@8-KF-8;A$A3'"@F#T&ON,>XRLT>@RKC4.&>-
M5XP9(^%VK21&48X48(Y/(&/IKJ[G,Z."3X#AS(?VJ#B`ZJCB_9R9X^J.Z"B
M<,^&2`KCQZ*/'#F"VBHZ5'=71(U51#O4`0!D"B0`,%6D2E!;="P^MM-)&X"
M:,SIC,<IA"GFS/(T"#OCP`:Q^%@<D+&=*.Z,C^%X?`S%QX`>QQL!CL<I.8YA
M!#QQ9U8]:`#%&T$!=&-9U?$XR,=A?+QT(Z3?P,9VEW["F5N9'-T<F5A;0IE
M;F1O8FH*."`P(&]B:@H@("`S.38S"F5N9&]B:@HY(#`@;V)J"CP("],96YG
M=&@@,3`@,"!2"B`@("]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IX
MG%V0OV[$(`S&=Y["XW4XD41-FR&*5%V7#/VCIGT``B9%:@`1,N3M:^!TE3J`
M?;?!]C,CZ/UD3@[')"2-H8U7`S>U!(LRX&,OJ!I219KE7:[",T[FZ=@B
MKJ/5CO4]`J;C$<<'I2;L8[!@#+2@,QBYP^KI,Y6C:O?_!%6V$B@T#*-1T
MW8OPKV)%X-E'A7533S.9/M3?!X>H<EY7;XDG<+-"XE!V`597U4#]%H/#*WZ
M5^N*8];R6P36MTE95118_R`S4R"N"]?$C_>9*1"+PB)INJ+I$K>%VZ1IBJ;)
M[U]?2C])([NU*/<0J+LU]Q6:LA8O(W>.Y]<>?T"8DM_WPIE;F1S=')E86T*
M96YD;V)J"C$P(#`@;V)J"B`@(#(V,`IE;F1O8FH*,3$@,"!O8FH*/#P@+U1Y
M<&4@+T9O;G1$97-C<FEP=&]R"B`@("]&;VYT3F%M92`O6%!*2U-2*TQI8F5R
M871I;VY386YS"B`@("]&;VYT1F%M:6QY("A,:6)E<F%T:6]N(%-A;G,I"B`@
M("]&;&%G<R`S,@H@("`O1F]N=$)";W@@6R`M,C`S("TS,#,@,3`U,"`Y,3`@
M70H@("`O271A;&EC06YG;&4@,`H@("`O07-C96YT(#DP-0H@("`O1&5S8V5N
M="`M,C$Q"B`@("]#87!(96EG:'0@.3$P"B`@("]3=&5M5B`X,`H@("`O4W1E
M;4@@.#`*("`@+T9O;G1&:6QE,B`W(#`@4@H^/@IE;F1O8FH*-B`P(&]B:@H
M/"`O5'EP92`O1F]N=`H@("`O4W5B='EP92`O5')U951Y<&4*("`@+T)A<V5&
M;VYT("]84$I+4U(K3&EB97)A=&EO;E-A;G,*("`@+T9I<G-T0VAA<B`S,@H@
M("`O3&%S=$-H87(@,3(R"B`@("]&;VYT1&5S8W)I<'1O<B`Q,2`P(%(*("`@
M+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<*("`@+U=I9'1H<R!;(#`@,"`P
M(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@
M,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P
M(#8V-B`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#4U-B`P(#`@
M,"`U-38@,"`P(#4U-B`P(#`@,"`R,C(@,"`P(#`@,"`P(#,S,R`P(#(W-R`P
M(#`@,"`P(#`@-3`P(%T*("`@("]4;U5N:6-O9&4@.2`P(%(*/CX*96YD;V)J
M"C$@,"!O8FH*/#P@+U1Y<&4@+U!A9V5S"B`@("]+:61S(%L@,B`P(%(@70H@
M("`O0V]U;G0@,0H^/@IE;F1O8FH*,3(@,"!O8FH*/#P@+U!R;V1U8V5R("AC
M86ER;R`Q+C$U+C$P("AH='1P.BO8V%I<F]G<F%P:&EC<RYO<F<I*0H@("`O
M0W)E871I;VY$871E("A$.C(P,3DP,S`U,#0Q,C$P*S`Q)S`P*0H^/@IE;F1O
M8FH*,3,@,"!O8FH*/#P@+U1Y<&4@+T-A=&%L;V<*("`@+U!A9V5S(#$@,"!2
M"CX^"F5N9&]B:@IX<F5F"C`@,30*,#`P,#`P,#`P,"`V-34S-2!F(`HP,#`P
M,#`U.#`V(#`P,#`P(&X@"C`P,#`P,#`T-#(@,#`P,#`@;B`*,#`P,#`P,#,S
M,R`P,#`P,"!N(`HP,#`P,#`P,#$U(#`P,#`P(&X@"C`P,#`P,#`S,3$@,#`P
M,#`@;B`*,#`P,#`P-3,Y,2`P,#`P,"!N(`HP,#`P,#`P-C<T(#`P,#`P(&X@
M"C`P,#`P,#0W,S$@,#`P,#`@;B`*,#`P,#`P-#<U-"`P,#`P,"!N(`HP,#`P
M,#`U,#DR(#`P,#`P(&X@"C`P,#`P,#4Q,34@,#`P,#`@;B`*,#`P,#`P-3@W
M,2`P,#`P,"!N(`HP,#`P,#`U.3@X(#`P,#`P(&X@"G1R86EL97(*/#P@+U-I
M>F4@,30*("`@+U)O;W0@,3,@,"!2"B`@("]);F9O(#$R(#`@4@H^/@IS=&%R
1='AR968*-C`T,0HE)45/1@H`
`
end
errors environments
|
show 3 more comments
While testing some of my new environments I made a mistake like this:
...
begindocument
...
beginA
...
endA
...
beginB
...
endA
...
enddocument
LaTeX complained that B
did not end when document
ended. And it talks about the line where enddocument
is, and the line where beginB
was, but it did not talk about the mismatching endA
(the location of the actual error).
Why can't LaTeX detect such? I know that newenvironment
actually defines two commands, one for beginning and one for ending, but isn't it possible to detect the case where something is to be ended that never had begun?
Update 1:
The example I had given was (to my best knowledge) the essence of the problem, and I contructed it in the head as the original file has thousands of lines and many figures, etc. (too much to present here, and also written by a TeX analphabet, so you will tear your hair out to see my struggles...). But people do not believe what I wrote. So I made a small test file from my big file, showing the problem:
Here's the essential part of the input:
begingfxTableCap[p]lrCaptionlabel2%
gfxCap0.4Platzhalter.pdfCaption 2A
&
gfxCap0.4Platzhalter.pdfCaption 2B
endgfxTableCapLab
Causing this output (truncated to the essence):
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) (preloaded format=pdflatex)
restricted write18 enabled.
entering extended mode
(./xxx.tex
LaTeX2e <2017-04-15>
[...]
<Platzhalter.pdf, id=1, 284.52756pt x 227.62204pt> <use Platzhalter.pdf>
<use Platzhalter.pdf> <use Platzhalter.pdf> <use Platzhalter.pdf>
! LaTeX Error: begingfxTableCap on input line 88 ended by enddocument.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
So it does not say "unexpected endgfxTableCapLab
.
In case it's special for the environments I had defined, here's the mess:
documentclass[a4paper,twoside]report
newcommandgtLab
newcommandgtCap
newenvironmentgfxTableCapLab[4][htbp]%
beginfigure[#1]%
begintabular#2%
endtabular%
gtCap%
endfigure%
newenvironmentgfxTableCap[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTableLab[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTable[2][htbp]%
begingfxTableCapLab#2%
%
endgfxTableCapLab
newcommandgLab
newcommandgCap
newcommandgfxCapLab[4]%
beginminipage[t]#1textwidth%
graphic%
gCap%
endminipage
newcommandgfxCap[3]gfxCapLab#1#2#3
begindocument
Some text...
begingfxTableCapLab[p]lrCaptionlabel1%
endgfxTableCapLab
%
Text
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
For all who do not have a nice placeholder PDF, here's the uuencoded version (I can't attach a PDF as image):
begin 644 Platzhalter.pdf
M)5!$1BTQ+C4*);7MKOL*-"`P(&]B:@H/"`O3&5N9W1H(#4@,"!2"B`@("]&
M:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IXG)5036L"00R]YU?DJ(>-
MDQ7]EHH!4&H[=S$PU*K4G8/6J'07V]VEQ9I*UC"9,)[Y.4EC,ZB8DLBB7+F
M%`5?.CB`&ZBG!YPU#G?OP!0X>_'X8=3<WANL4$A]2"%]%VOKV4#`!1Z0!X4Q
MFZ0H9<G8?UQCAQ(#:8Y?0&M`)`.1:Z4@J4>4?-`+8/]+Y1F7UWW<X.'GR'_K
M71K8ZE>;SSE<8=W!;PGHX>KCV5RI-'5/B-+I!!4.6'I8+:M7-6/*EM831[;
MYO2Y;]IIY2>GU^-T7>9P7V`)9VT07*(*96YD<W1R96%M"F5N9&]B:@HU(#`@
M;V)J"B`@(#(Q.0IE;F1O8FH*,R`P(&]B:@H/`H@("`O17AT1U-T871E(#P
M"B`@("`@("]A,"`/"`O0T$@,2`O8V$@,2`^/@H@("`^/@H@("`O1F]N="`
M/`H@("`@("`O9BTP+3`@-B`P(%(*("`@/CX*/CX*96YD;V)J"C(@,"!O8FH*
M/#P@+U1Y<&4@+U!A9V4@)2`Q"B`@("]087)E;G0@,2`P(%(*("`@+TUE9&EA
M0F]X(%L@,"`P(#(X,RXT-C0U-CD@,C(V+C<W,38U,B!="B`@("]#;VYT96YT
M<R`T(#`@4@H@("`O1W)O=7`@/#P*("`@("`@+U1Y<&4@+T=R;W5P"B`@("`@
M("]3("]4<F%N<W!A<F5N8WD*("`@("`@+TD@=')U90H@("`@("`O0U,@+T1E
M=FEC95)'0@H@("`^/@H@("`O4F5S;W5R8V5S(#,@,"!2"CX^"F5N9&]B:@HW
M(#`@;V)J"CP("],96YG=&@@."`P(%(*("`@+T9I;'1E<B`O1FQA=&5$96-O
M9&4*("`@+TQE;F=T:#$@-3@X.`H^/@IS=')E86T*>)S=.&UT$U=V[[V9T<B6
M;4E&,K:%/2,&V0ZR+2-AL,%8$TL:Y'4",K:"9&(L@PV&?-A&)AO(!V(A&Q`0
MDX3-R2Y)8%O2#0E91H0$D_V(VI[=9GO(ANXFI]W=M'C3M*<GC6N:7=)V$UN]
M;R032)OMG_SJD^;-_7KWW7O???<]"6&$4#Y*(`:)F^_I'_GUS+.C"/'_B1#I
MV7S?F.A[UO<A"'0#7K)E9.L]5]**D(%=X,,M_7N75M^7KT#1K.`'[;T&#_
M`#M]]G:$YHT!;=D0$(HZ=`6``QM&KIG['XQP"0!OTSQNX<W]_/_G#<"^.!
MM]S3?_(>R__-P#J`1='=@R.['YSXR>`U#[R*"_/`>X,)@+8_J4QBY6L[Q
MK'[*G=)Q[[6<8PB`*,50,D?)YWA=WF<MYS"E>QVL-NMON).+L(/ST[Q(7_
M)*??0MF(N@%A-@/N;VH",U'.^6NTP0_.1?-[UD(OE,.;.88;@":X&C@$$]
MLK$L(9=A^%KX'J0WZ64]H]?U"1:79:VES[+'PADM;ULR%H:WR'GFH,7"S^O+
M8_ABY/5.%3>[G!M[1Z>PJW?*W3M:;GJO?&I)`^JE#5N*B&0W2V:[NY+P2ZL`
MMKN7L1^NVO7:KME-;Y#.AUY_L#5]ZM3L(WC?\>97]UY8J=_YC?<WE7#S_9_
M]#,.T^`'QA!;'$K=PGB,RPO990TPI>!BDRH`5U%K!Y-<E<Y<H7#*I?FR`D.
MCW`)CA@Y@2-7.0QT;B*3EFT+'<&U',YDV6GN,C?)@0@&159P`X.UH[1T1U:
M<X%#.`+C]EC3I[G+OUA*8WG^LQ';)Q=@]SH5O1=V;UKU<%59%?!P0)":O(*
M@_E<.4><I1`>;H%U`7$X*A6Y/F^X:4_3>!/3Y$M85ENI'1;K@J#5ZETM,)AI
M*5]Y*0/^RA#K)2"]LZ:DN;.O+QR3Y%NRSC%F*Q&$/EIGI/")4@[Y3;.^5Q
M]8Z:(>93WBGL[!V%H'M<SBF(>J_;73[E=BUIZ'7V.B'W,*JQJ6MQ(L;E]83
M:6$1X:M;&8^[Q&JVE'C<RY9;B["TL)Y42T5,M;N5K,)$6.UE.#G_O14Y[X7
MUO]NP8KU*Y=VMU;I?IC?M/7XO9=^OGBEL;)HH:_*TUY?RN@J`G?NE.[8&U[
MD[:O]S3V6<X==?!-96$7>G;N,)FK/9YS/)=:YP_2,W6ASI99D2OMRWO7+:T
M>Z7XJ'?36&.4Q69W3WLD1M=7R%PEB[E:/`!>7U-$=Y6M*OH8!%34XBW%>XJ
M/%C('&(Q*T*([V8?9)]AS[`L8`7!X9(]):2DH+"$,2EY^G$.([$B9S,L3R7
M*,5&7:C`FX_SXSS0@P-GO>M7L^4&_?2Q?5XIN:[7;V0IY>"&/O:.^H@:C
MT2PU>I9[K!ZKE`L367Q+N.GO'MK?>/^;;WJY4LJ](;":^07^S[^>-],>(U7
MKT-:CBY!B'F-78'RL$%>RQYF9!#!$?)-D*>X/^$)V/?IXH_!W%IZIT6-&
M3Q[0859GT2W2G=*=U[VC^T#'SJ>,>"5>`-FK%<O3R(9;,EB`TT.6KN'`BF
M#?B`9TX&,&G##@,0..&7"W`<L&O-3@-PP8]AM835AL7Q<4#=ABP,B`O5G.
M*0/+&A9I8IK0*Y[6H"9<+%0')PV8((-H"!E&#"ROD0M-EJ".";%&S(?H!J&I
MY:PT?MZG<[1'1MANT#VS36GRPDLCR<;VKY12$*M>1JQO=%NQ7;K$O*MF2>9
MIIGMY`<'F:I#!S_[]2$M;H]!W/X-]K8=W7,1Z6'B1;PA:%#D4`$^49`I(`52
M`DEIZ;(T*;%I"1LEG)"PI'DY;WYP0:F2+L.HS%364#99=K6,TY>5HS*#%16'
M.)-FM,>+J5%3;FKM#KI-1FEY<F*Z%RJ)%6I3;GM0T&.&@L7C595*]T#KT".W
M5[QJ;H@HM;VFO/G"4,PLW?Y[>[Y38.'NV=<Y/N!H8!4WWU_QPWN$NS#]O;
MFJIY-%<G2J%.+$`.=)=<WR-META/Y?9*$F8&H9JWY^795LM"!3Y:@2NJ$PZT
M6C!C<T-UNOIR-5--79L'I4"OYU#(X>#$4(F)"Q5I"4QK[92YV86==-^[<]ZX
M7>!0+Z+5MI+0E)U?Q$@+B1DV/W6Q`E?78VW_8XO4OB.TTC9<^956[Y]]]5/
M;]NO#ARX,.QZW7CTT;K-W2M8_!_A:W-&X-U=1O:7;@2ES_]R_TK(=_L;LT
M^=*S%5_;LTE;LP/@Y`'P3T"M<HW)VF`E5JN]0*"%.5N5)Z$N<WI45C.O)%A6
M4&SBC5J-]7K><N96P^RAF]#8U_MJ62L'JTTS;=F+;6:'.$X!<QPV!VGG-%
MJ+FDQE#<4-FZ?GDYT[IP==N*^?-7MC9;6C>LK."9YSFN:?/!SIE+V9W(4"M0
M`6+)&GA7@D$,G(![4`9WX7Y/WX8/T%^2MX3J&<85XQKXPDZ'G,CJ)U^$8
M!_*><!O_DZ_L;ACG>P]_!S^#GX',R]_DI?-[$;_[1D5]-P_^G!)-[UJO
MRV'D!@EZ,V%OP+FOP*[_9XV[!%7J(;A-6=$NK;^I0>6WH*CE/F(8I_WL^N_
M6BOTV==Y]"-T%IVB74`/8RT.^L-[0WTE^@E#3J.COP1M1?1BSGH&/HV>O1+
MY;:C?:#G%,S_>8L!=1=Z&F:>0-^#=%R(/3#K73GN;]#/_G=5^+?X9^@)N*/>
M!?T%Z(]#2CY`/D9/D'7H7O*WS%[T#700?#R!MZ%QD(^A4W@#V@C4;-N(!M'P
M%Y0FT5'T/-H--__KC=N;^1TJ_.Q[8/E!T/,4VH9&;QCQ`OXO^F($L/W[Z%6-
MMG>.R0>9[>0U0F:>!.1QM!6>?OPKL/,(<ROR<V9&B$Y$(V$N[O6=8;6KKG]
MMHZOM0=7*P&_K^U6V=NZJF7EBN:FY<L:ES2XZNMJ:ZJK'(NDA7:AU&(V&8L*
M#?EY>E['L7"PH-J`I,1$M2JFLE52,%A'<:D?"/TW$&*J""3E9AE5C&EBXLV2
M,DAN^8*DG)64KTMBD]B"6NIJQ8`DJF_Y)7$"]W1&`#[BEZ*B.J7!MVLP6Z4A
MA8#8[3!"#)0.^445Q2`JMPWE`S$_*`O9<CW2;[!_+I:E,HW`&@`2*V11E*X
MIA5K`*D)K$@1I"^DTZJ,(]`_H(8Z(P&_S6Z/UM6VJT627V,AGZ92U?E47E,I
M;J.FHT-BJC:=/#QA0IMBSH(!::#_SHC*],/8)!-()A]5S4[U%LFOWK+[@U+P
M?%"ME?P!U4FU=JR[/D_'YU/"#P>'21*3UQ"X(TU]=#.E/T?1.4S7$`45"&R
MJ4BBDHPE^R<RB4V2:)*2J8*"Y$@`(HQ"$1@UD7G]D$U5#D=54VP(K@YJZSK
M4.=U;HBHQ*&(0_U`@:]7LC?9[.;HG$SHR]@(`@'A@)C:[=3Q0Q,RV@2(FNB,
M9'$1;;*=0[++&55)C'+2<QQKF'(2<YSKPV,2K&9'5R2ILH[V`2D`,3[4KR8V
M03YMITLAF=2B3VQV*5EL%IM=44U6!*O:![:)*E<%88%1-PZ`3*%#DB8-*?HD
M^YJRP015YF*Q60(U5$]`"L1RW_N&2D&!6%>K!IW9I>^.J+(?`+D_MT:!5(,+
M1O3'8(FV^;7E4UW2B&J1VJZO)S4KL*TKH@W)#5,M/A7%-N=&J:Z`GXL!I(Q
M?]8$JDOJC%Q$GLQD:JEH>6#EJ*HGPJ7^""OJ@+)R,`658C9!F"G;1$C-KLJ
M1V&!HU)D,$H3#2)TRR1,9]=F5(FO.]+1)75T]D2:<H9D&50=ZPA8T4L675
M0,JI>H=>C!`;$P5!$Q!$!0"IK05ZE7?HX3%!P#4J3=6V%C&";6A.&LQ0;Q$#
M@_Z<',5O4LK1=/(%Y[3I*`IZ?$&;/6K/MKI:`FPQ-S&,T-.@!N=8C`,J`=`(
MJ-%(-):E-.?%B#0H1:4A495#$>H;#86Y5PPM)CGUJK[)NR&8$&8D!W8<P@-
MIJHX;3<&5UVMX=?1X!?8[7-L,:F7.KJ25+F44XC`G85T126FPV;??3_2PI
M_;")84=K^SF9DF6ZEX?HMDU*[0-)J2O2HDE#!7G(MIO.58PZ<$=W6UTM%+.V
ME(0/=*9D?*"K)W+1!-?)`]V1<P037ZPMFEH$O,A%$<X*C4HHE1(I(E*$:EH'
MB%Z3MUV4$4IH7%8C:/CF";AX=U7`AI&FR=(EF::HQ&@L5F:K-%H@U4J'8(8
M0_T.B`-T?1Z,#B5C49KCJ`0B`E^L8JD5HB.UIC#1%:CYTF";:I#:*-U+Z=XL
M74?I/&0&+L%UM;N3IH!TK;1..]#I8_[7S8@YVV=LN8:$[%WE[=VG?S+WGHW-
M/*G?R@<1O<C,W3]A'-ZNP;Y].G9V.SO]5O_QXTVCWP$I^T=<%;_%4JR<;2>
M-",!KJM+`'Y,PU^DOTE0+9S^[^`$?I\3/Z%B3!_IFG*P^M0-SH,=UH"OP5<
MJ`=.^^>X--R*22I/_C'FZ36G"L_)C.#V#SY@-(/SUWZ*Q4_QM5"-+%2
M(_R[LEBXJCB%OND]TXO7:Z;WI^NPT9_BG#RJ%?WQ?$8SO8_E]I43X[:0B
MO#UY97)ZDI$G/<N42:54^/M55+_L(H)7%,^#TF(QC?%=XE6B?_=:E->?LO
M(_2+<*?AZJ$'_ZX1LA<Q*&)D8G$!$-_#68FBMV*<,%[8>V%X0M[+IRX</8"
M/W+NY#GU'&,AX^^BM57L?%5K#>^XGUE^A4FH1Y5B:JFU<LJXSKK/4M.OJR^
M3-(O7WZ9N,YXSY`3+^'TBY=?)&M/CYFKM/#I]XG3G-/G-D1`ZCH>?PF\
MA9]2*H1O'9LO[#DV?BQSC&EX7'Z<)!['(^.)<7)T'*?'+X^3M8?[#@?9KZI
M9(03C^#]^Y8(8W&O$`</AN]M$>Y5&H5R7!HNY2&>03UH'/,>#UP7.GLD38
MT!,4>N`]SUT<YB`FK)L)#S/8R'@9,MV9Z21R9V.3(G<Z:I2WY>X0;E=$(0@Z
M5-S5L%7E&F%)!1<XK:&S=@8-KF-8;A$A3'"@F#T&ON,>XRLT>@RKC4.&>-
M5XP9(^%VK21&48X48(Y/(&/IKJ[G,Z."3X#AS(?VJ#B`ZJCB_9R9X^J.Z"B
M<,^&2`KCQZ*/'#F"VBHZ5'=71(U51#O4`0!D"B0`,%6D2E!;="P^MM-)&X"
M:,SIC,<IA"GFS/(T"#OCP`:Q^%@<D+&=*.Z,C^%X?`S%QX`>QQL!CL<I.8YA
M!#QQ9U8]:`#%&T$!=&-9U?$XR,=A?+QT(Z3?P,9VEW["F5N9'-T<F5A;0IE
M;F1O8FH*."`P(&]B:@H@("`S.38S"F5N9&]B:@HY(#`@;V)J"CP("],96YG
M=&@@,3`@,"!2"B`@("]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IX
MG%V0OV[$(`S&=Y["XW4XD41-FR&*5%V7#/VCIGT``B9%:@`1,N3M:^!TE3J`
M?;?!]C,CZ/UD3@[')"2-H8U7`S>U!(LRX&,OJ!I219KE7:[",T[FZ=@B
MKJ/5CO4]`J;C$<<'I2;L8[!@#+2@,QBYP^KI,Y6C:O?_!%6V$B@T#*-1T
MW8OPKV)%X-E'A7533S.9/M3?!X>H<EY7;XDG<+-"XE!V`597U4#]%H/#*WZ
M5^N*8];R6P36MTE95118_R`S4R"N"]?$C_>9*1"+PB)INJ+I$K>%VZ1IBJ;)
M[U]?2C])([NU*/<0J+LU]Q6:LA8O(W>.Y]<>?T"8DM_WPIE;F1S=')E86T*
M96YD;V)J"C$P(#`@;V)J"B`@(#(V,`IE;F1O8FH*,3$@,"!O8FH*/#P@+U1Y
M<&4@+T9O;G1$97-C<FEP=&]R"B`@("]&;VYT3F%M92`O6%!*2U-2*TQI8F5R
M871I;VY386YS"B`@("]&;VYT1F%M:6QY("A,:6)E<F%T:6]N(%-A;G,I"B`@
M("]&;&%G<R`S,@H@("`O1F]N=$)";W@@6R`M,C`S("TS,#,@,3`U,"`Y,3`@
M70H@("`O271A;&EC06YG;&4@,`H@("`O07-C96YT(#DP-0H@("`O1&5S8V5N
M="`M,C$Q"B`@("]#87!(96EG:'0@.3$P"B`@("]3=&5M5B`X,`H@("`O4W1E
M;4@@.#`*("`@+T9O;G1&:6QE,B`W(#`@4@H^/@IE;F1O8FH*-B`P(&]B:@H
M/"`O5'EP92`O1F]N=`H@("`O4W5B='EP92`O5')U951Y<&4*("`@+T)A<V5&
M;VYT("]84$I+4U(K3&EB97)A=&EO;E-A;G,*("`@+T9I<G-T0VAA<B`S,@H@
M("`O3&%S=$-H87(@,3(R"B`@("]&;VYT1&5S8W)I<'1O<B`Q,2`P(%(*("`@
M+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<*("`@+U=I9'1H<R!;(#`@,"`P
M(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@
M,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P
M(#8V-B`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#4U-B`P(#`@
M,"`U-38@,"`P(#4U-B`P(#`@,"`R,C(@,"`P(#`@,"`P(#,S,R`P(#(W-R`P
M(#`@,"`P(#`@-3`P(%T*("`@("]4;U5N:6-O9&4@.2`P(%(*/CX*96YD;V)J
M"C$@,"!O8FH*/#P@+U1Y<&4@+U!A9V5S"B`@("]+:61S(%L@,B`P(%(@70H@
M("`O0V]U;G0@,0H^/@IE;F1O8FH*,3(@,"!O8FH*/#P@+U!R;V1U8V5R("AC
M86ER;R`Q+C$U+C$P("AH='1P.BO8V%I<F]G<F%P:&EC<RYO<F<I*0H@("`O
M0W)E871I;VY$871E("A$.C(P,3DP,S`U,#0Q,C$P*S`Q)S`P*0H^/@IE;F1O
M8FH*,3,@,"!O8FH*/#P@+U1Y<&4@+T-A=&%L;V<*("`@+U!A9V5S(#$@,"!2
M"CX^"F5N9&]B:@IX<F5F"C`@,30*,#`P,#`P,#`P,"`V-34S-2!F(`HP,#`P
M,#`U.#`V(#`P,#`P(&X@"C`P,#`P,#`T-#(@,#`P,#`@;B`*,#`P,#`P,#,S
M,R`P,#`P,"!N(`HP,#`P,#`P,#$U(#`P,#`P(&X@"C`P,#`P,#`S,3$@,#`P
M,#`@;B`*,#`P,#`P-3,Y,2`P,#`P,"!N(`HP,#`P,#`P-C<T(#`P,#`P(&X@
M"C`P,#`P,#0W,S$@,#`P,#`@;B`*,#`P,#`P-#<U-"`P,#`P,"!N(`HP,#`P
M,#`U,#DR(#`P,#`P(&X@"C`P,#`P,#4Q,34@,#`P,#`@;B`*,#`P,#`P-3@W
M,2`P,#`P,"!N(`HP,#`P,#`U.3@X(#`P,#`P(&X@"G1R86EL97(*/#P@+U-I
M>F4@,30*("`@+U)O;W0@,3,@,"!2"B`@("]);F9O(#$R(#`@4@H^/@IS=&%R
1='AR968*-C`T,0HE)45/1@H`
`
end
errors environments
1
LaTeX detects it. Exactly when the document ended andB
was never finished. How is it supposed to detect it earlier? It does not have a human brain.
– Johannes_B
Mar 28 at 7:30
1
It is not that people don't (want to) believe what you write. It's the fact that in some (many?) situations the issue you describe does not occur (as demonstrated in the answer), so your situation must be special and people need to see code that actually reproduces the problem to be able to help.
– moewe
Mar 29 at 4:53
1
Note for example that if I complete the code at the beginning of the question to a working example withdocumentclassarticle newenvironmentAAA newenvironmentBBB begindocument beginA endA beginB endA enddocument
TeX says! LaTeX Error: beginB on input line 11 ended by endA.
on l.13 and thus gives a good error message. But if I saynewenvironmentBbeginAendA
instead, I get! LaTeX Error: beginB on input line 11 ended by enddocument.
. This is what you have in your second example code.
– moewe
Mar 29 at 4:56
1
the new code produces a different error! Package pdftex.def Error: File
"""Platzhalter".pdf' not found: using draft setting` really the idea is you make a minimal example that produces the error that you are asking about, but I'll fix that this time.
– David Carlisle
Mar 29 at 7:41
1
@U.Windl I already fixed your example not to require a figure which was not necessary to demonstrate the error that you were asking about. If you have a question that does need a figure, you can useexample-image
which is in tex distributions for such tests but here I simply deleted theincludegraphics
– David Carlisle
Mar 30 at 23:02
|
show 3 more comments
While testing some of my new environments I made a mistake like this:
...
begindocument
...
beginA
...
endA
...
beginB
...
endA
...
enddocument
LaTeX complained that B
did not end when document
ended. And it talks about the line where enddocument
is, and the line where beginB
was, but it did not talk about the mismatching endA
(the location of the actual error).
Why can't LaTeX detect such? I know that newenvironment
actually defines two commands, one for beginning and one for ending, but isn't it possible to detect the case where something is to be ended that never had begun?
Update 1:
The example I had given was (to my best knowledge) the essence of the problem, and I contructed it in the head as the original file has thousands of lines and many figures, etc. (too much to present here, and also written by a TeX analphabet, so you will tear your hair out to see my struggles...). But people do not believe what I wrote. So I made a small test file from my big file, showing the problem:
Here's the essential part of the input:
begingfxTableCap[p]lrCaptionlabel2%
gfxCap0.4Platzhalter.pdfCaption 2A
&
gfxCap0.4Platzhalter.pdfCaption 2B
endgfxTableCapLab
Causing this output (truncated to the essence):
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) (preloaded format=pdflatex)
restricted write18 enabled.
entering extended mode
(./xxx.tex
LaTeX2e <2017-04-15>
[...]
<Platzhalter.pdf, id=1, 284.52756pt x 227.62204pt> <use Platzhalter.pdf>
<use Platzhalter.pdf> <use Platzhalter.pdf> <use Platzhalter.pdf>
! LaTeX Error: begingfxTableCap on input line 88 ended by enddocument.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
So it does not say "unexpected endgfxTableCapLab
.
In case it's special for the environments I had defined, here's the mess:
documentclass[a4paper,twoside]report
newcommandgtLab
newcommandgtCap
newenvironmentgfxTableCapLab[4][htbp]%
beginfigure[#1]%
begintabular#2%
endtabular%
gtCap%
endfigure%
newenvironmentgfxTableCap[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTableLab[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTable[2][htbp]%
begingfxTableCapLab#2%
%
endgfxTableCapLab
newcommandgLab
newcommandgCap
newcommandgfxCapLab[4]%
beginminipage[t]#1textwidth%
graphic%
gCap%
endminipage
newcommandgfxCap[3]gfxCapLab#1#2#3
begindocument
Some text...
begingfxTableCapLab[p]lrCaptionlabel1%
endgfxTableCapLab
%
Text
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
For all who do not have a nice placeholder PDF, here's the uuencoded version (I can't attach a PDF as image):
begin 644 Platzhalter.pdf
M)5!$1BTQ+C4*);7MKOL*-"`P(&]B:@H/"`O3&5N9W1H(#4@,"!2"B`@("]&
M:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IXG)5036L"00R]YU?DJ(>-
MDQ7]EHH!4&H[=S$PU*K4G8/6J'07V]VEQ9I*UC"9,)[Y.4EC,ZB8DLBB7+F
M%`5?.CB`&ZBG!YPU#G?OP!0X>_'X8=3<WANL4$A]2"%]%VOKV4#`!1Z0!X4Q
MFZ0H9<G8?UQCAQ(#:8Y?0&M`)`.1:Z4@J4>4?-`+8/]+Y1F7UWW<X.'GR'_K
M71K8ZE>;SSE<8=W!;PGHX>KCV5RI-'5/B-+I!!4.6'I8+:M7-6/*EM831[;
MYO2Y;]IIY2>GU^-T7>9P7V`)9VT07*(*96YD<W1R96%M"F5N9&]B:@HU(#`@
M;V)J"B`@(#(Q.0IE;F1O8FH*,R`P(&]B:@H/`H@("`O17AT1U-T871E(#P
M"B`@("`@("]A,"`/"`O0T$@,2`O8V$@,2`^/@H@("`^/@H@("`O1F]N="`
M/`H@("`@("`O9BTP+3`@-B`P(%(*("`@/CX*/CX*96YD;V)J"C(@,"!O8FH*
M/#P@+U1Y<&4@+U!A9V4@)2`Q"B`@("]087)E;G0@,2`P(%(*("`@+TUE9&EA
M0F]X(%L@,"`P(#(X,RXT-C0U-CD@,C(V+C<W,38U,B!="B`@("]#;VYT96YT
M<R`T(#`@4@H@("`O1W)O=7`@/#P*("`@("`@+U1Y<&4@+T=R;W5P"B`@("`@
M("]3("]4<F%N<W!A<F5N8WD*("`@("`@+TD@=')U90H@("`@("`O0U,@+T1E
M=FEC95)'0@H@("`^/@H@("`O4F5S;W5R8V5S(#,@,"!2"CX^"F5N9&]B:@HW
M(#`@;V)J"CP("],96YG=&@@."`P(%(*("`@+T9I;'1E<B`O1FQA=&5$96-O
M9&4*("`@+TQE;F=T:#$@-3@X.`H^/@IS=')E86T*>)S=.&UT$U=V[[V9T<B6
M;4E&,K:%/2,&V0ZR+2-AL,%8$TL:Y'4",K:"9&(L@PV&?-A&)AO(!V(A&Q`0
MDX3-R2Y)8%O2#0E91H0$D_V(VI[=9GO(ANXFI]W=M'C3M*<GC6N:7=)V$UN]
M;R032)OMG_SJD^;-_7KWW7O???<]"6&$4#Y*(`:)F^_I'_GUS+.C"/'_B1#I
MV7S?F.A[UO<A"'0#7K)E9.L]5]**D(%=X,,M_7N75M^7KT#1K.`'[;T&#_
M`#M]]G:$YHT!;=D0$(HZ=`6``QM&KIG['XQP"0!OTSQNX<W]_/_G#<"^.!
MM]S3?_(>R__-P#J`1='=@R.['YSXR>`U#[R*"_/`>X,)@+8_J4QBY6L[Q
MK'[*G=)Q[[6<8PB`*,50,D?)YWA=WF<MYS"E>QVL-NMON).+L(/ST[Q(7_
M)*??0MF(N@%A-@/N;VH",U'.^6NTP0_.1?-[UD(OE,.;.88;@":X&C@$$]
MLK$L(9=A^%KX'J0WZ64]H]?U"1:79:VES[+'PADM;ULR%H:WR'GFH,7"S^O+
M8_ABY/5.%3>[G!M[1Z>PJW?*W3M:;GJO?&I)`^JE#5N*B&0W2V:[NY+P2ZL`
MMKN7L1^NVO7:KME-;Y#.AUY_L#5]ZM3L(WC?\>97]UY8J=_YC?<WE7#S_9_
M]#,.T^`'QA!;'$K=PGB,RPO990TPI>!BDRH`5U%K!Y-<E<Y<H7#*I?FR`D.
MCW`)CA@Y@2-7.0QT;B*3EFT+'<&U',YDV6GN,C?)@0@&159P`X.UH[1T1U:
M<X%#.`+C]EC3I[G+OUA*8WG^LQ';)Q=@]SH5O1=V;UKU<%59%?!P0)":O(*
M@_E<.4><I1`>;H%U`7$X*A6Y/F^X:4_3>!/3Y$M85ENI'1;K@J#5ZETM,)AI
M*5]Y*0/^RA#K)2"]LZ:DN;.O+QR3Y%NRSC%F*Q&$/EIGI/")4@[Y3;.^5Q
M]8Z:(>93WBGL[!V%H'M<SBF(>J_;73[E=BUIZ'7V.B'W,*JQJ6MQ(L;E]83
M:6$1X:M;&8^[Q&JVE'C<RY9;B["TL)Y42T5,M;N5K,)$6.UE.#G_O14Y[X7
MUO]NP8KU*Y=VMU;I?IC?M/7XO9=^OGBEL;)HH:_*TUY?RN@J`G?NE.[8&U[
MD[:O]S3V6<X==?!-96$7>G;N,)FK/9YS/)=:YP_2,W6ASI99D2OMRWO7+:T
M>Z7XJ'?36&.4Q69W3WLD1M=7R%PEB[E:/`!>7U-$=Y6M*OH8!%34XBW%>XJ
M/%C('&(Q*T*([V8?9)]AS[`L8`7!X9(]):2DH+"$,2EY^G$.([$B9S,L3R7
M*,5&7:C`FX_SXSS0@P-GO>M7L^4&_?2Q?5XIN:[7;V0IY>"&/O:.^H@:C
MT2PU>I9[K!ZKE`L367Q+N.GO'MK?>/^;;WJY4LJ](;":^07^S[^>-],>(U7
MKT-:CBY!B'F-78'RL$%>RQYF9!#!$?)-D*>X/^$)V/?IXH_!W%IZIT6-&
M3Q[0859GT2W2G=*=U[VC^T#'SJ>,>"5>`-FK%<O3R(9;,EB`TT.6KN'`BF
M#?B`9TX&,&G##@,0..&7"W`<L&O-3@-PP8]AM835AL7Q<4#=ABP,B`O5G.
M*0/+&A9I8IK0*Y[6H"9<+%0')PV8((-H"!E&#"ROD0M-EJ".";%&S(?H!J&I
MY:PT?MZG<[1'1MANT#VS36GRPDLCR<;VKY12$*M>1JQO=%NQ7;K$O*MF2>9
MIIGMY`<'F:I#!S_[]2$M;H]!W/X-]K8=W7,1Z6'B1;PA:%#D4`$^49`I(`52
M`DEIZ;(T*;%I"1LEG)"PI'DY;WYP0:F2+L.HS%364#99=K6,TY>5HS*#%16'
M.)-FM,>+J5%3;FKM#KI-1FEY<F*Z%RJ)%6I3;GM0T&.&@L7C595*]T#KT".W
M5[QJ;H@HM;VFO/G"4,PLW?Y[>[Y38.'NV=<Y/N!H8!4WWU_QPWN$NS#]O;
MFJIY-%<G2J%.+$`.=)=<WR-META/Y?9*$F8&H9JWY^795LM"!3Y:@2NJ$PZT
M6C!C<T-UNOIR-5--79L'I4"OYU#(X>#$4(F)"Q5I"4QK[92YV86==-^[<]ZX
M7>!0+Z+5MI+0E)U?Q$@+B1DV/W6Q`E?78VW_8XO4OB.TTC9<^956[Y]]]5/
M;]NO#ARX,.QZW7CTT;K-W2M8_!_A:W-&X-U=1O:7;@2ES_]R_TK(=_L;LT
M^=*S%5_;LTE;LP/@Y`'P3T"M<HW)VF`E5JN]0*"%.5N5)Z$N<WI45C.O)%A6
M4&SBC5J-]7K><N96P^RAF]#8U_MJ62L'JTTS;=F+;6:'.$X!<QPV!VGG-%
MJ+FDQE#<4-FZ?GDYT[IP==N*^?-7MC9;6C>LK."9YSFN:?/!SIE+V9W(4"M0
M`6+)&GA7@D$,G(![4`9WX7Y/WX8/T%^2MX3J&<85XQKXPDZ'G,CJ)U^$8
M!_*><!O_DZ_L;ACG>P]_!S^#GX',R]_DI?-[$;_[1D5]-P_^G!)-[UJO
MRV'D!@EZ,V%OP+FOP*[_9XV[!%7J(;A-6=$NK;^I0>6WH*CE/F(8I_WL^N_
M6BOTV==Y]"-T%IVB74`/8RT.^L-[0WTE^@E#3J.COP1M1?1BSGH&/HV>O1+
MY;:C?:#G%,S_>8L!=1=Z&F:>0-^#=%R(/3#K73GN;]#/_G=5^+?X9^@)N*/>
M!?T%Z(]#2CY`/D9/D'7H7O*WS%[T#700?#R!MZ%QD(^A4W@#V@C4;-N(!M'P
M%Y0FT5'T/-H--__KC=N;^1TJ_.Q[8/E!T/,4VH9&;QCQ`OXO^F($L/W[Z%6-
MMG>.R0>9[>0U0F:>!.1QM!6>?OPKL/,(<ROR<V9&B$Y$(V$N[O6=8;6KKG]
MMHZOM0=7*P&_K^U6V=NZJF7EBN:FY<L:ES2XZNMJ:ZJK'(NDA7:AU&(V&8L*
M#?EY>E['L7"PH-J`I,1$M2JFLE52,%A'<:D?"/TW$&*J""3E9AE5C&EBXLV2
M,DAN^8*DG)64KTMBD]B"6NIJQ8`DJF_Y)7$"]W1&`#[BEZ*B.J7!MVLP6Z4A
MA8#8[3!"#)0.^445Q2`JMPWE`S$_*`O9<CW2;[!_+I:E,HW`&@`2*V11E*X
MIA5K`*D)K$@1I"^DTZJ,(]`_H(8Z(P&_S6Z/UM6VJT627V,AGZ92U?E47E,I
M;J.FHT-BJC:=/#QA0IMBSH(!::#_SHC*],/8)!-()A]5S4[U%LFOWK+[@U+P
M?%"ME?P!U4FU=JR[/D_'YU/"#P>'21*3UQ"X(TU]=#.E/T?1.4S7$`45"&R
MJ4BBDHPE^R<RB4V2:)*2J8*"Y$@`(HQ"$1@UD7G]D$U5#D=54VP(K@YJZSK
M4.=U;HBHQ*&(0_U`@:]7LC?9[.;HG$SHR]@(`@'A@)C:[=3Q0Q,RV@2(FNB,
M9'$1;;*=0[++&55)C'+2<QQKF'(2<YSKPV,2K&9'5R2ILH[V`2D`,3[4KR8V
M03YMITLAF=2B3VQV*5EL%IM=44U6!*O:![:)*E<%88%1-PZ`3*%#DB8-*?HD
M^YJRP015YF*Q60(U5$]`"L1RW_N&2D&!6%>K!IW9I>^.J+(?`+D_MT:!5(,+
M1O3'8(FV^;7E4UW2B&J1VJZO)S4KL*TKH@W)#5,M/A7%-N=&J:Z`GXL!I(Q
M?]8$JDOJC%Q$GLQD:JEH>6#EJ*HGPJ7^""OJ@+)R,`658C9!F"G;1$C-KLJ
M1V&!HU)D,$H3#2)TRR1,9]=F5(FO.]+1)75T]D2:<H9D&50=ZPA8T4L675
M0,JI>H=>C!`;$P5!$Q!$!0"IK05ZE7?HX3%!P#4J3=6V%C&";6A.&LQ0;Q$#
M@_Z<',5O4LK1=/(%Y[3I*`IZ?$&;/6K/MKI:`FPQ-S&,T-.@!N=8C`,J`=`(
MJ-%(-):E-.?%B#0H1:4A495#$>H;#86Y5PPM)CGUJK[)NR&8$&8D!W8<P@-
MIJHX;3<&5UVMX=?1X!?8[7-L,:F7.KJ25+F44XC`G85T126FPV;??3_2PI
M_;")84=K^SF9DF6ZEX?HMDU*[0-)J2O2HDE#!7G(MIO.58PZ<$=W6UTM%+.V
ME(0/=*9D?*"K)W+1!-?)`]V1<P037ZPMFEH$O,A%$<X*C4HHE1(I(E*$:EH'
MB%Z3MUV4$4IH7%8C:/CF";AX=U7`AI&FR=(EF::HQ&@L5F:K-%H@U4J'8(8
M0_T.B`-T?1Z,#B5C49KCJ`0B`E^L8JD5HB.UIC#1%:CYTF";:I#:*-U+Z=XL
M74?I/&0&+L%UM;N3IH!TK;1..]#I8_[7S8@YVV=LN8:$[%WE[=VG?S+WGHW-
M/*G?R@<1O<C,W3]A'-ZNP;Y].G9V.SO]5O_QXTVCWP$I^T=<%;_%4JR<;2>
M-",!KJM+`'Y,PU^DOTE0+9S^[^`$?I\3/Z%B3!_IFG*P^M0-SH,=UH"OP5<
MJ`=.^^>X--R*22I/_C'FZ36G"L_)C.#V#SY@-(/SUWZ*Q4_QM5"-+%2
M(_R[LEBXJCB%OND]TXO7:Z;WI^NPT9_BG#RJ%?WQ?$8SO8_E]I43X[:0B
MO#UY97)ZDI$G/<N42:54^/M55+_L(H)7%,^#TF(QC?%=XE6B?_=:E->?LO
M(_2+<*?AZJ$'_ZX1LA<Q*&)D8G$!$-_#68FBMV*<,%[8>V%X0M[+IRX</8"
M/W+NY#GU'&,AX^^BM57L?%5K#>^XGUE^A4FH1Y5B:JFU<LJXSKK/4M.OJR^
M3-(O7WZ9N,YXSY`3+^'TBY=?)&M/CYFKM/#I]XG3G-/G-D1`ZCH>?PF\
MA9]2*H1O'9LO[#DV?BQSC&EX7'Z<)!['(^.)<7)T'*?'+X^3M8?[#@?9KZI
M9(03C^#]^Y8(8W&O$`</AN]M$>Y5&H5R7!HNY2&>03UH'/,>#UP7.GLD38
MT!,4>N`]SUT<YB`FK)L)#S/8R'@9,MV9Z21R9V.3(G<Z:I2WY>X0;E=$(0@Z
M5-S5L%7E&F%)!1<XK:&S=@8-KF-8;A$A3'"@F#T&ON,>XRLT>@RKC4.&>-
M5XP9(^%VK21&48X48(Y/(&/IKJ[G,Z."3X#AS(?VJ#B`ZJCB_9R9X^J.Z"B
M<,^&2`KCQZ*/'#F"VBHZ5'=71(U51#O4`0!D"B0`,%6D2E!;="P^MM-)&X"
M:,SIC,<IA"GFS/(T"#OCP`:Q^%@<D+&=*.Z,C^%X?`S%QX`>QQL!CL<I.8YA
M!#QQ9U8]:`#%&T$!=&-9U?$XR,=A?+QT(Z3?P,9VEW["F5N9'-T<F5A;0IE
M;F1O8FH*."`P(&]B:@H@("`S.38S"F5N9&]B:@HY(#`@;V)J"CP("],96YG
M=&@@,3`@,"!2"B`@("]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IX
MG%V0OV[$(`S&=Y["XW4XD41-FR&*5%V7#/VCIGT``B9%:@`1,N3M:^!TE3J`
M?;?!]C,CZ/UD3@[')"2-H8U7`S>U!(LRX&,OJ!I219KE7:[",T[FZ=@B
MKJ/5CO4]`J;C$<<'I2;L8[!@#+2@,QBYP^KI,Y6C:O?_!%6V$B@T#*-1T
MW8OPKV)%X-E'A7533S.9/M3?!X>H<EY7;XDG<+-"XE!V`597U4#]%H/#*WZ
M5^N*8];R6P36MTE95118_R`S4R"N"]?$C_>9*1"+PB)INJ+I$K>%VZ1IBJ;)
M[U]?2C])([NU*/<0J+LU]Q6:LA8O(W>.Y]<>?T"8DM_WPIE;F1S=')E86T*
M96YD;V)J"C$P(#`@;V)J"B`@(#(V,`IE;F1O8FH*,3$@,"!O8FH*/#P@+U1Y
M<&4@+T9O;G1$97-C<FEP=&]R"B`@("]&;VYT3F%M92`O6%!*2U-2*TQI8F5R
M871I;VY386YS"B`@("]&;VYT1F%M:6QY("A,:6)E<F%T:6]N(%-A;G,I"B`@
M("]&;&%G<R`S,@H@("`O1F]N=$)";W@@6R`M,C`S("TS,#,@,3`U,"`Y,3`@
M70H@("`O271A;&EC06YG;&4@,`H@("`O07-C96YT(#DP-0H@("`O1&5S8V5N
M="`M,C$Q"B`@("]#87!(96EG:'0@.3$P"B`@("]3=&5M5B`X,`H@("`O4W1E
M;4@@.#`*("`@+T9O;G1&:6QE,B`W(#`@4@H^/@IE;F1O8FH*-B`P(&]B:@H
M/"`O5'EP92`O1F]N=`H@("`O4W5B='EP92`O5')U951Y<&4*("`@+T)A<V5&
M;VYT("]84$I+4U(K3&EB97)A=&EO;E-A;G,*("`@+T9I<G-T0VAA<B`S,@H@
M("`O3&%S=$-H87(@,3(R"B`@("]&;VYT1&5S8W)I<'1O<B`Q,2`P(%(*("`@
M+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<*("`@+U=I9'1H<R!;(#`@,"`P
M(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@
M,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P
M(#8V-B`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#4U-B`P(#`@
M,"`U-38@,"`P(#4U-B`P(#`@,"`R,C(@,"`P(#`@,"`P(#,S,R`P(#(W-R`P
M(#`@,"`P(#`@-3`P(%T*("`@("]4;U5N:6-O9&4@.2`P(%(*/CX*96YD;V)J
M"C$@,"!O8FH*/#P@+U1Y<&4@+U!A9V5S"B`@("]+:61S(%L@,B`P(%(@70H@
M("`O0V]U;G0@,0H^/@IE;F1O8FH*,3(@,"!O8FH*/#P@+U!R;V1U8V5R("AC
M86ER;R`Q+C$U+C$P("AH='1P.BO8V%I<F]G<F%P:&EC<RYO<F<I*0H@("`O
M0W)E871I;VY$871E("A$.C(P,3DP,S`U,#0Q,C$P*S`Q)S`P*0H^/@IE;F1O
M8FH*,3,@,"!O8FH*/#P@+U1Y<&4@+T-A=&%L;V<*("`@+U!A9V5S(#$@,"!2
M"CX^"F5N9&]B:@IX<F5F"C`@,30*,#`P,#`P,#`P,"`V-34S-2!F(`HP,#`P
M,#`U.#`V(#`P,#`P(&X@"C`P,#`P,#`T-#(@,#`P,#`@;B`*,#`P,#`P,#,S
M,R`P,#`P,"!N(`HP,#`P,#`P,#$U(#`P,#`P(&X@"C`P,#`P,#`S,3$@,#`P
M,#`@;B`*,#`P,#`P-3,Y,2`P,#`P,"!N(`HP,#`P,#`P-C<T(#`P,#`P(&X@
M"C`P,#`P,#0W,S$@,#`P,#`@;B`*,#`P,#`P-#<U-"`P,#`P,"!N(`HP,#`P
M,#`U,#DR(#`P,#`P(&X@"C`P,#`P,#4Q,34@,#`P,#`@;B`*,#`P,#`P-3@W
M,2`P,#`P,"!N(`HP,#`P,#`U.3@X(#`P,#`P(&X@"G1R86EL97(*/#P@+U-I
M>F4@,30*("`@+U)O;W0@,3,@,"!2"B`@("]);F9O(#$R(#`@4@H^/@IS=&%R
1='AR968*-C`T,0HE)45/1@H`
`
end
errors environments
While testing some of my new environments I made a mistake like this:
...
begindocument
...
beginA
...
endA
...
beginB
...
endA
...
enddocument
LaTeX complained that B
did not end when document
ended. And it talks about the line where enddocument
is, and the line where beginB
was, but it did not talk about the mismatching endA
(the location of the actual error).
Why can't LaTeX detect such? I know that newenvironment
actually defines two commands, one for beginning and one for ending, but isn't it possible to detect the case where something is to be ended that never had begun?
Update 1:
The example I had given was (to my best knowledge) the essence of the problem, and I contructed it in the head as the original file has thousands of lines and many figures, etc. (too much to present here, and also written by a TeX analphabet, so you will tear your hair out to see my struggles...). But people do not believe what I wrote. So I made a small test file from my big file, showing the problem:
Here's the essential part of the input:
begingfxTableCap[p]lrCaptionlabel2%
gfxCap0.4Platzhalter.pdfCaption 2A
&
gfxCap0.4Platzhalter.pdfCaption 2B
endgfxTableCapLab
Causing this output (truncated to the essence):
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) (preloaded format=pdflatex)
restricted write18 enabled.
entering extended mode
(./xxx.tex
LaTeX2e <2017-04-15>
[...]
<Platzhalter.pdf, id=1, 284.52756pt x 227.62204pt> <use Platzhalter.pdf>
<use Platzhalter.pdf> <use Platzhalter.pdf> <use Platzhalter.pdf>
! LaTeX Error: begingfxTableCap on input line 88 ended by enddocument.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
So it does not say "unexpected endgfxTableCapLab
.
In case it's special for the environments I had defined, here's the mess:
documentclass[a4paper,twoside]report
newcommandgtLab
newcommandgtCap
newenvironmentgfxTableCapLab[4][htbp]%
beginfigure[#1]%
begintabular#2%
endtabular%
gtCap%
endfigure%
newenvironmentgfxTableCap[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTableLab[3][htbp]%
begingfxTableCapLab#2#3%
%
endgfxTableCapLab
newenvironmentgfxTable[2][htbp]%
begingfxTableCapLab#2%
%
endgfxTableCapLab
newcommandgLab
newcommandgCap
newcommandgfxCapLab[4]%
beginminipage[t]#1textwidth%
graphic%
gCap%
endminipage
newcommandgfxCap[3]gfxCapLab#1#2#3
begindocument
Some text...
begingfxTableCapLab[p]lrCaptionlabel1%
endgfxTableCapLab
%
Text
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
For all who do not have a nice placeholder PDF, here's the uuencoded version (I can't attach a PDF as image):
begin 644 Platzhalter.pdf
M)5!$1BTQ+C4*);7MKOL*-"`P(&]B:@H/"`O3&5N9W1H(#4@,"!2"B`@("]&
M:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IXG)5036L"00R]YU?DJ(>-
MDQ7]EHH!4&H[=S$PU*K4G8/6J'07V]VEQ9I*UC"9,)[Y.4EC,ZB8DLBB7+F
M%`5?.CB`&ZBG!YPU#G?OP!0X>_'X8=3<WANL4$A]2"%]%VOKV4#`!1Z0!X4Q
MFZ0H9<G8?UQCAQ(#:8Y?0&M`)`.1:Z4@J4>4?-`+8/]+Y1F7UWW<X.'GR'_K
M71K8ZE>;SSE<8=W!;PGHX>KCV5RI-'5/B-+I!!4.6'I8+:M7-6/*EM831[;
MYO2Y;]IIY2>GU^-T7>9P7V`)9VT07*(*96YD<W1R96%M"F5N9&]B:@HU(#`@
M;V)J"B`@(#(Q.0IE;F1O8FH*,R`P(&]B:@H/`H@("`O17AT1U-T871E(#P
M"B`@("`@("]A,"`/"`O0T$@,2`O8V$@,2`^/@H@("`^/@H@("`O1F]N="`
M/`H@("`@("`O9BTP+3`@-B`P(%(*("`@/CX*/CX*96YD;V)J"C(@,"!O8FH*
M/#P@+U1Y<&4@+U!A9V4@)2`Q"B`@("]087)E;G0@,2`P(%(*("`@+TUE9&EA
M0F]X(%L@,"`P(#(X,RXT-C0U-CD@,C(V+C<W,38U,B!="B`@("]#;VYT96YT
M<R`T(#`@4@H@("`O1W)O=7`@/#P*("`@("`@+U1Y<&4@+T=R;W5P"B`@("`@
M("]3("]4<F%N<W!A<F5N8WD*("`@("`@+TD@=')U90H@("`@("`O0U,@+T1E
M=FEC95)'0@H@("`^/@H@("`O4F5S;W5R8V5S(#,@,"!2"CX^"F5N9&]B:@HW
M(#`@;V)J"CP("],96YG=&@@."`P(%(*("`@+T9I;'1E<B`O1FQA=&5$96-O
M9&4*("`@+TQE;F=T:#$@-3@X.`H^/@IS=')E86T*>)S=.&UT$U=V[[V9T<B6
M;4E&,K:%/2,&V0ZR+2-AL,%8$TL:Y'4",K:"9&(L@PV&?-A&)AO(!V(A&Q`0
MDX3-R2Y)8%O2#0E91H0$D_V(VI[=9GO(ANXFI]W=M'C3M*<GC6N:7=)V$UN]
M;R032)OMG_SJD^;-_7KWW7O???<]"6&$4#Y*(`:)F^_I'_GUS+.C"/'_B1#I
MV7S?F.A[UO<A"'0#7K)E9.L]5]**D(%=X,,M_7N75M^7KT#1K.`'[;T&#_
M`#M]]G:$YHT!;=D0$(HZ=`6``QM&KIG['XQP"0!OTSQNX<W]_/_G#<"^.!
MM]S3?_(>R__-P#J`1='=@R.['YSXR>`U#[R*"_/`>X,)@+8_J4QBY6L[Q
MK'[*G=)Q[[6<8PB`*,50,D?)YWA=WF<MYS"E>QVL-NMON).+L(/ST[Q(7_
M)*??0MF(N@%A-@/N;VH",U'.^6NTP0_.1?-[UD(OE,.;.88;@":X&C@$$]
MLK$L(9=A^%KX'J0WZ64]H]?U"1:79:VES[+'PADM;ULR%H:WR'GFH,7"S^O+
M8_ABY/5.%3>[G!M[1Z>PJW?*W3M:;GJO?&I)`^JE#5N*B&0W2V:[NY+P2ZL`
MMKN7L1^NVO7:KME-;Y#.AUY_L#5]ZM3L(WC?\>97]UY8J=_YC?<WE7#S_9_
M]#,.T^`'QA!;'$K=PGB,RPO990TPI>!BDRH`5U%K!Y-<E<Y<H7#*I?FR`D.
MCW`)CA@Y@2-7.0QT;B*3EFT+'<&U',YDV6GN,C?)@0@&159P`X.UH[1T1U:
M<X%#.`+C]EC3I[G+OUA*8WG^LQ';)Q=@]SH5O1=V;UKU<%59%?!P0)":O(*
M@_E<.4><I1`>;H%U`7$X*A6Y/F^X:4_3>!/3Y$M85ENI'1;K@J#5ZETM,)AI
M*5]Y*0/^RA#K)2"]LZ:DN;.O+QR3Y%NRSC%F*Q&$/EIGI/")4@[Y3;.^5Q
M]8Z:(>93WBGL[!V%H'M<SBF(>J_;73[E=BUIZ'7V.B'W,*JQJ6MQ(L;E]83
M:6$1X:M;&8^[Q&JVE'C<RY9;B["TL)Y42T5,M;N5K,)$6.UE.#G_O14Y[X7
MUO]NP8KU*Y=VMU;I?IC?M/7XO9=^OGBEL;)HH:_*TUY?RN@J`G?NE.[8&U[
MD[:O]S3V6<X==?!-96$7>G;N,)FK/9YS/)=:YP_2,W6ASI99D2OMRWO7+:T
M>Z7XJ'?36&.4Q69W3WLD1M=7R%PEB[E:/`!>7U-$=Y6M*OH8!%34XBW%>XJ
M/%C('&(Q*T*([V8?9)]AS[`L8`7!X9(]):2DH+"$,2EY^G$.([$B9S,L3R7
M*,5&7:C`FX_SXSS0@P-GO>M7L^4&_?2Q?5XIN:[7;V0IY>"&/O:.^H@:C
MT2PU>I9[K!ZKE`L367Q+N.GO'MK?>/^;;WJY4LJ](;":^07^S[^>-],>(U7
MKT-:CBY!B'F-78'RL$%>RQYF9!#!$?)-D*>X/^$)V/?IXH_!W%IZIT6-&
M3Q[0859GT2W2G=*=U[VC^T#'SJ>,>"5>`-FK%<O3R(9;,EB`TT.6KN'`BF
M#?B`9TX&,&G##@,0..&7"W`<L&O-3@-PP8]AM835AL7Q<4#=ABP,B`O5G.
M*0/+&A9I8IK0*Y[6H"9<+%0')PV8((-H"!E&#"ROD0M-EJ".";%&S(?H!J&I
MY:PT?MZG<[1'1MANT#VS36GRPDLCR<;VKY12$*M>1JQO=%NQ7;K$O*MF2>9
MIIGMY`<'F:I#!S_[]2$M;H]!W/X-]K8=W7,1Z6'B1;PA:%#D4`$^49`I(`52
M`DEIZ;(T*;%I"1LEG)"PI'DY;WYP0:F2+L.HS%364#99=K6,TY>5HS*#%16'
M.)-FM,>+J5%3;FKM#KI-1FEY<F*Z%RJ)%6I3;GM0T&.&@L7C595*]T#KT".W
M5[QJ;H@HM;VFO/G"4,PLW?Y[>[Y38.'NV=<Y/N!H8!4WWU_QPWN$NS#]O;
MFJIY-%<G2J%.+$`.=)=<WR-META/Y?9*$F8&H9JWY^795LM"!3Y:@2NJ$PZT
M6C!C<T-UNOIR-5--79L'I4"OYU#(X>#$4(F)"Q5I"4QK[92YV86==-^[<]ZX
M7>!0+Z+5MI+0E)U?Q$@+B1DV/W6Q`E?78VW_8XO4OB.TTC9<^956[Y]]]5/
M;]NO#ARX,.QZW7CTT;K-W2M8_!_A:W-&X-U=1O:7;@2ES_]R_TK(=_L;LT
M^=*S%5_;LTE;LP/@Y`'P3T"M<HW)VF`E5JN]0*"%.5N5)Z$N<WI45C.O)%A6
M4&SBC5J-]7K><N96P^RAF]#8U_MJ62L'JTTS;=F+;6:'.$X!<QPV!VGG-%
MJ+FDQE#<4-FZ?GDYT[IP==N*^?-7MC9;6C>LK."9YSFN:?/!SIE+V9W(4"M0
M`6+)&GA7@D$,G(![4`9WX7Y/WX8/T%^2MX3J&<85XQKXPDZ'G,CJ)U^$8
M!_*><!O_DZ_L;ACG>P]_!S^#GX',R]_DI?-[$;_[1D5]-P_^G!)-[UJO
MRV'D!@EZ,V%OP+FOP*[_9XV[!%7J(;A-6=$NK;^I0>6WH*CE/F(8I_WL^N_
M6BOTV==Y]"-T%IVB74`/8RT.^L-[0WTE^@E#3J.COP1M1?1BSGH&/HV>O1+
MY;:C?:#G%,S_>8L!=1=Z&F:>0-^#=%R(/3#K73GN;]#/_G=5^+?X9^@)N*/>
M!?T%Z(]#2CY`/D9/D'7H7O*WS%[T#700?#R!MZ%QD(^A4W@#V@C4;-N(!M'P
M%Y0FT5'T/-H--__KC=N;^1TJ_.Q[8/E!T/,4VH9&;QCQ`OXO^F($L/W[Z%6-
MMG>.R0>9[>0U0F:>!.1QM!6>?OPKL/,(<ROR<V9&B$Y$(V$N[O6=8;6KKG]
MMHZOM0=7*P&_K^U6V=NZJF7EBN:FY<L:ES2XZNMJ:ZJK'(NDA7:AU&(V&8L*
M#?EY>E['L7"PH-J`I,1$M2JFLE52,%A'<:D?"/TW$&*J""3E9AE5C&EBXLV2
M,DAN^8*DG)64KTMBD]B"6NIJQ8`DJF_Y)7$"]W1&`#[BEZ*B.J7!MVLP6Z4A
MA8#8[3!"#)0.^445Q2`JMPWE`S$_*`O9<CW2;[!_+I:E,HW`&@`2*V11E*X
MIA5K`*D)K$@1I"^DTZJ,(]`_H(8Z(P&_S6Z/UM6VJT627V,AGZ92U?E47E,I
M;J.FHT-BJC:=/#QA0IMBSH(!::#_SHC*],/8)!-()A]5S4[U%LFOWK+[@U+P
M?%"ME?P!U4FU=JR[/D_'YU/"#P>'21*3UQ"X(TU]=#.E/T?1.4S7$`45"&R
MJ4BBDHPE^R<RB4V2:)*2J8*"Y$@`(HQ"$1@UD7G]D$U5#D=54VP(K@YJZSK
M4.=U;HBHQ*&(0_U`@:]7LC?9[.;HG$SHR]@(`@'A@)C:[=3Q0Q,RV@2(FNB,
M9'$1;;*=0[++&55)C'+2<QQKF'(2<YSKPV,2K&9'5R2ILH[V`2D`,3[4KR8V
M03YMITLAF=2B3VQV*5EL%IM=44U6!*O:![:)*E<%88%1-PZ`3*%#DB8-*?HD
M^YJRP015YF*Q60(U5$]`"L1RW_N&2D&!6%>K!IW9I>^.J+(?`+D_MT:!5(,+
M1O3'8(FV^;7E4UW2B&J1VJZO)S4KL*TKH@W)#5,M/A7%-N=&J:Z`GXL!I(Q
M?]8$JDOJC%Q$GLQD:JEH>6#EJ*HGPJ7^""OJ@+)R,`658C9!F"G;1$C-KLJ
M1V&!HU)D,$H3#2)TRR1,9]=F5(FO.]+1)75T]D2:<H9D&50=ZPA8T4L675
M0,JI>H=>C!`;$P5!$Q!$!0"IK05ZE7?HX3%!P#4J3=6V%C&";6A.&LQ0;Q$#
M@_Z<',5O4LK1=/(%Y[3I*`IZ?$&;/6K/MKI:`FPQ-S&,T-.@!N=8C`,J`=`(
MJ-%(-):E-.?%B#0H1:4A495#$>H;#86Y5PPM)CGUJK[)NR&8$&8D!W8<P@-
MIJHX;3<&5UVMX=?1X!?8[7-L,:F7.KJ25+F44XC`G85T126FPV;??3_2PI
M_;")84=K^SF9DF6ZEX?HMDU*[0-)J2O2HDE#!7G(MIO.58PZ<$=W6UTM%+.V
ME(0/=*9D?*"K)W+1!-?)`]V1<P037ZPMFEH$O,A%$<X*C4HHE1(I(E*$:EH'
MB%Z3MUV4$4IH7%8C:/CF";AX=U7`AI&FR=(EF::HQ&@L5F:K-%H@U4J'8(8
M0_T.B`-T?1Z,#B5C49KCJ`0B`E^L8JD5HB.UIC#1%:CYTF";:I#:*-U+Z=XL
M74?I/&0&+L%UM;N3IH!TK;1..]#I8_[7S8@YVV=LN8:$[%WE[=VG?S+WGHW-
M/*G?R@<1O<C,W3]A'-ZNP;Y].G9V.SO]5O_QXTVCWP$I^T=<%;_%4JR<;2>
M-",!KJM+`'Y,PU^DOTE0+9S^[^`$?I\3/Z%B3!_IFG*P^M0-SH,=UH"OP5<
MJ`=.^^>X--R*22I/_C'FZ36G"L_)C.#V#SY@-(/SUWZ*Q4_QM5"-+%2
M(_R[LEBXJCB%OND]TXO7:Z;WI^NPT9_BG#RJ%?WQ?$8SO8_E]I43X[:0B
MO#UY97)ZDI$G/<N42:54^/M55+_L(H)7%,^#TF(QC?%=XE6B?_=:E->?LO
M(_2+<*?AZJ$'_ZX1LA<Q*&)D8G$!$-_#68FBMV*<,%[8>V%X0M[+IRX</8"
M/W+NY#GU'&,AX^^BM57L?%5K#>^XGUE^A4FH1Y5B:JFU<LJXSKK/4M.OJR^
M3-(O7WZ9N,YXSY`3+^'TBY=?)&M/CYFKM/#I]XG3G-/G-D1`ZCH>?PF\
MA9]2*H1O'9LO[#DV?BQSC&EX7'Z<)!['(^.)<7)T'*?'+X^3M8?[#@?9KZI
M9(03C^#]^Y8(8W&O$`</AN]M$>Y5&H5R7!HNY2&>03UH'/,>#UP7.GLD38
MT!,4>N`]SUT<YB`FK)L)#S/8R'@9,MV9Z21R9V.3(G<Z:I2WY>X0;E=$(0@Z
M5-S5L%7E&F%)!1<XK:&S=@8-KF-8;A$A3'"@F#T&ON,>XRLT>@RKC4.&>-
M5XP9(^%VK21&48X48(Y/(&/IKJ[G,Z."3X#AS(?VJ#B`ZJCB_9R9X^J.Z"B
M<,^&2`KCQZ*/'#F"VBHZ5'=71(U51#O4`0!D"B0`,%6D2E!;="P^MM-)&X"
M:,SIC,<IA"GFS/(T"#OCP`:Q^%@<D+&=*.Z,C^%X?`S%QX`>QQL!CL<I.8YA
M!#QQ9U8]:`#%&T$!=&-9U?$XR,=A?+QT(Z3?P,9VEW["F5N9'-T<F5A;0IE
M;F1O8FH*."`P(&]B:@H@("`S.38S"F5N9&]B:@HY(#`@;V)J"CP("],96YG
M=&@@,3`@,"!2"B`@("]&:6QT97(@+T9L871E1&5C;V1E"CX^"G-T<F5A;0IX
MG%V0OV[$(`S&=Y["XW4XD41-FR&*5%V7#/VCIGT``B9%:@`1,N3M:^!TE3J`
M?;?!]C,CZ/UD3@[')"2-H8U7`S>U!(LRX&,OJ!I219KE7:[",T[FZ=@B
MKJ/5CO4]`J;C$<<'I2;L8[!@#+2@,QBYP^KI,Y6C:O?_!%6V$B@T#*-1T
MW8OPKV)%X-E'A7533S.9/M3?!X>H<EY7;XDG<+-"XE!V`597U4#]%H/#*WZ
M5^N*8];R6P36MTE95118_R`S4R"N"]?$C_>9*1"+PB)INJ+I$K>%VZ1IBJ;)
M[U]?2C])([NU*/<0J+LU]Q6:LA8O(W>.Y]<>?T"8DM_WPIE;F1S=')E86T*
M96YD;V)J"C$P(#`@;V)J"B`@(#(V,`IE;F1O8FH*,3$@,"!O8FH*/#P@+U1Y
M<&4@+T9O;G1$97-C<FEP=&]R"B`@("]&;VYT3F%M92`O6%!*2U-2*TQI8F5R
M871I;VY386YS"B`@("]&;VYT1F%M:6QY("A,:6)E<F%T:6]N(%-A;G,I"B`@
M("]&;&%G<R`S,@H@("`O1F]N=$)";W@@6R`M,C`S("TS,#,@,3`U,"`Y,3`@
M70H@("`O271A;&EC06YG;&4@,`H@("`O07-C96YT(#DP-0H@("`O1&5S8V5N
M="`M,C$Q"B`@("]#87!(96EG:'0@.3$P"B`@("]3=&5M5B`X,`H@("`O4W1E
M;4@@.#`*("`@+T9O;G1&:6QE,B`W(#`@4@H^/@IE;F1O8FH*-B`P(&]B:@H
M/"`O5'EP92`O1F]N=`H@("`O4W5B='EP92`O5')U951Y<&4*("`@+T)A<V5&
M;VYT("]84$I+4U(K3&EB97)A=&EO;E-A;G,*("`@+T9I<G-T0VAA<B`S,@H@
M("`O3&%S=$-H87(@,3(R"B`@("]&;VYT1&5S8W)I<'1O<B`Q,2`P(%(*("`@
M+T5N8V]D:6YG("]7:6Y!;G-I16YC;V1I;F<*("`@+U=I9'1H<R!;(#`@,"`P
M(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@
M,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P
M(#8V-B`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#`@,"`P(#4U-B`P(#`@
M,"`U-38@,"`P(#4U-B`P(#`@,"`R,C(@,"`P(#`@,"`P(#,S,R`P(#(W-R`P
M(#`@,"`P(#`@-3`P(%T*("`@("]4;U5N:6-O9&4@.2`P(%(*/CX*96YD;V)J
M"C$@,"!O8FH*/#P@+U1Y<&4@+U!A9V5S"B`@("]+:61S(%L@,B`P(%(@70H@
M("`O0V]U;G0@,0H^/@IE;F1O8FH*,3(@,"!O8FH*/#P@+U!R;V1U8V5R("AC
M86ER;R`Q+C$U+C$P("AH='1P.BO8V%I<F]G<F%P:&EC<RYO<F<I*0H@("`O
M0W)E871I;VY$871E("A$.C(P,3DP,S`U,#0Q,C$P*S`Q)S`P*0H^/@IE;F1O
M8FH*,3,@,"!O8FH*/#P@+U1Y<&4@+T-A=&%L;V<*("`@+U!A9V5S(#$@,"!2
M"CX^"F5N9&]B:@IX<F5F"C`@,30*,#`P,#`P,#`P,"`V-34S-2!F(`HP,#`P
M,#`U.#`V(#`P,#`P(&X@"C`P,#`P,#`T-#(@,#`P,#`@;B`*,#`P,#`P,#,S
M,R`P,#`P,"!N(`HP,#`P,#`P,#$U(#`P,#`P(&X@"C`P,#`P,#`S,3$@,#`P
M,#`@;B`*,#`P,#`P-3,Y,2`P,#`P,"!N(`HP,#`P,#`P-C<T(#`P,#`P(&X@
M"C`P,#`P,#0W,S$@,#`P,#`@;B`*,#`P,#`P-#<U-"`P,#`P,"!N(`HP,#`P
M,#`U,#DR(#`P,#`P(&X@"C`P,#`P,#4Q,34@,#`P,#`@;B`*,#`P,#`P-3@W
M,2`P,#`P,"!N(`HP,#`P,#`U.3@X(#`P,#`P(&X@"G1R86EL97(*/#P@+U-I
M>F4@,30*("`@+U)O;W0@,3,@,"!2"B`@("]);F9O(#$R(#`@4@H^/@IS=&%R
1='AR968*-C`T,0HE)45/1@H`
`
end
errors environments
errors environments
edited Mar 30 at 23:06
U. Windl
asked Mar 28 at 7:13
U. WindlU. Windl
1698
1698
1
LaTeX detects it. Exactly when the document ended andB
was never finished. How is it supposed to detect it earlier? It does not have a human brain.
– Johannes_B
Mar 28 at 7:30
1
It is not that people don't (want to) believe what you write. It's the fact that in some (many?) situations the issue you describe does not occur (as demonstrated in the answer), so your situation must be special and people need to see code that actually reproduces the problem to be able to help.
– moewe
Mar 29 at 4:53
1
Note for example that if I complete the code at the beginning of the question to a working example withdocumentclassarticle newenvironmentAAA newenvironmentBBB begindocument beginA endA beginB endA enddocument
TeX says! LaTeX Error: beginB on input line 11 ended by endA.
on l.13 and thus gives a good error message. But if I saynewenvironmentBbeginAendA
instead, I get! LaTeX Error: beginB on input line 11 ended by enddocument.
. This is what you have in your second example code.
– moewe
Mar 29 at 4:56
1
the new code produces a different error! Package pdftex.def Error: File
"""Platzhalter".pdf' not found: using draft setting` really the idea is you make a minimal example that produces the error that you are asking about, but I'll fix that this time.
– David Carlisle
Mar 29 at 7:41
1
@U.Windl I already fixed your example not to require a figure which was not necessary to demonstrate the error that you were asking about. If you have a question that does need a figure, you can useexample-image
which is in tex distributions for such tests but here I simply deleted theincludegraphics
– David Carlisle
Mar 30 at 23:02
|
show 3 more comments
1
LaTeX detects it. Exactly when the document ended andB
was never finished. How is it supposed to detect it earlier? It does not have a human brain.
– Johannes_B
Mar 28 at 7:30
1
It is not that people don't (want to) believe what you write. It's the fact that in some (many?) situations the issue you describe does not occur (as demonstrated in the answer), so your situation must be special and people need to see code that actually reproduces the problem to be able to help.
– moewe
Mar 29 at 4:53
1
Note for example that if I complete the code at the beginning of the question to a working example withdocumentclassarticle newenvironmentAAA newenvironmentBBB begindocument beginA endA beginB endA enddocument
TeX says! LaTeX Error: beginB on input line 11 ended by endA.
on l.13 and thus gives a good error message. But if I saynewenvironmentBbeginAendA
instead, I get! LaTeX Error: beginB on input line 11 ended by enddocument.
. This is what you have in your second example code.
– moewe
Mar 29 at 4:56
1
the new code produces a different error! Package pdftex.def Error: File
"""Platzhalter".pdf' not found: using draft setting` really the idea is you make a minimal example that produces the error that you are asking about, but I'll fix that this time.
– David Carlisle
Mar 29 at 7:41
1
@U.Windl I already fixed your example not to require a figure which was not necessary to demonstrate the error that you were asking about. If you have a question that does need a figure, you can useexample-image
which is in tex distributions for such tests but here I simply deleted theincludegraphics
– David Carlisle
Mar 30 at 23:02
1
1
LaTeX detects it. Exactly when the document ended and
B
was never finished. How is it supposed to detect it earlier? It does not have a human brain.– Johannes_B
Mar 28 at 7:30
LaTeX detects it. Exactly when the document ended and
B
was never finished. How is it supposed to detect it earlier? It does not have a human brain.– Johannes_B
Mar 28 at 7:30
1
1
It is not that people don't (want to) believe what you write. It's the fact that in some (many?) situations the issue you describe does not occur (as demonstrated in the answer), so your situation must be special and people need to see code that actually reproduces the problem to be able to help.
– moewe
Mar 29 at 4:53
It is not that people don't (want to) believe what you write. It's the fact that in some (many?) situations the issue you describe does not occur (as demonstrated in the answer), so your situation must be special and people need to see code that actually reproduces the problem to be able to help.
– moewe
Mar 29 at 4:53
1
1
Note for example that if I complete the code at the beginning of the question to a working example with
documentclassarticle newenvironmentAAA newenvironmentBBB begindocument beginA endA beginB endA enddocument
TeX says ! LaTeX Error: beginB on input line 11 ended by endA.
on l.13 and thus gives a good error message. But if I say newenvironmentBbeginAendA
instead, I get ! LaTeX Error: beginB on input line 11 ended by enddocument.
. This is what you have in your second example code.– moewe
Mar 29 at 4:56
Note for example that if I complete the code at the beginning of the question to a working example with
documentclassarticle newenvironmentAAA newenvironmentBBB begindocument beginA endA beginB endA enddocument
TeX says ! LaTeX Error: beginB on input line 11 ended by endA.
on l.13 and thus gives a good error message. But if I say newenvironmentBbeginAendA
instead, I get ! LaTeX Error: beginB on input line 11 ended by enddocument.
. This is what you have in your second example code.– moewe
Mar 29 at 4:56
1
1
the new code produces a different error
! Package pdftex.def Error: File
"""Platzhalter".pdf' not found: using draft setting` really the idea is you make a minimal example that produces the error that you are asking about, but I'll fix that this time.– David Carlisle
Mar 29 at 7:41
the new code produces a different error
! Package pdftex.def Error: File
"""Platzhalter".pdf' not found: using draft setting` really the idea is you make a minimal example that produces the error that you are asking about, but I'll fix that this time.– David Carlisle
Mar 29 at 7:41
1
1
@U.Windl I already fixed your example not to require a figure which was not necessary to demonstrate the error that you were asking about. If you have a question that does need a figure, you can use
example-image
which is in tex distributions for such tests but here I simply deleted the includegraphics
– David Carlisle
Mar 30 at 23:02
@U.Windl I already fixed your example not to require a figure which was not necessary to demonstrate the error that you were asking about. If you have a question that does need a figure, you can use
example-image
which is in tex distributions for such tests but here I simply deleted the includegraphics
– David Carlisle
Mar 30 at 23:02
|
show 3 more comments
1 Answer
1
active
oldest
votes
Please always post actual test documents not untestable fragments. In general latex would detect that error at the
endA
but there are cases when it can not, for example if B
was verbatim
then by definition all processing is disabled until endB
is seen, in which case that error would only be detected at end of file.
so
documentclassarticle
begindocument
beginempty
endempty
beginquad
endempty
enddocument
produces an error message on line 11
! LaTeX Error: beginquad on input line 9 ended by endempty.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.11 endempty
but
documentclassarticle
begindocument
beginempty
endempty
beginverbatim
endempty
enddocument
Produces an error at end of file
Runaway argument?
^^M^^Mendempty^^M^^M^^Menddocument^^M
! File ended while scanning use of @xverbatim.
<inserted text>
par
<*> bb469
?
looking at the specific example provided, note that tex is a macro expansion system not a compiler it never parses the full document in advance.
so starting from
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
after the first few expansions of gfxTableCap
you have
begingfxTableCapLabplrCaption%
endgfxTableCapLab
enddocument
so the explicit endgfxTableCapLab
in your document closed the inner environment, but the outer gfxTableCap
is never closed and that can not be detected until the closing of a containing group which is enddocument
here.
Probably more a comment than an answer. As for the test document: I typed it from memory as I don't have the document here, and the document actually is way to large to present here. I'm trying to extract a test case (hopefully) to demonstrate the problem. What I can say for now is that my environment messes with floats.
– U. Windl
Mar 28 at 7:58
3
@U.Windl I think this is the full answer in the generality that you asked the question. If you ask about the end parsing for a specific environment that would be a different question and of course need a slightly different answer.
– David Carlisle
Mar 28 at 8:05
OK, I will add my environments, but I wanted to avoid showing you this ugly code.
– U. Windl
Mar 29 at 1:54
@U.Windl I extended the answer to cover the code you posted.
– David Carlisle
Mar 29 at 7:56
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "85"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481844%2fdetect-begin-end-mismatch-or-ending-what-you-did-not-begin%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Please always post actual test documents not untestable fragments. In general latex would detect that error at the
endA
but there are cases when it can not, for example if B
was verbatim
then by definition all processing is disabled until endB
is seen, in which case that error would only be detected at end of file.
so
documentclassarticle
begindocument
beginempty
endempty
beginquad
endempty
enddocument
produces an error message on line 11
! LaTeX Error: beginquad on input line 9 ended by endempty.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.11 endempty
but
documentclassarticle
begindocument
beginempty
endempty
beginverbatim
endempty
enddocument
Produces an error at end of file
Runaway argument?
^^M^^Mendempty^^M^^M^^Menddocument^^M
! File ended while scanning use of @xverbatim.
<inserted text>
par
<*> bb469
?
looking at the specific example provided, note that tex is a macro expansion system not a compiler it never parses the full document in advance.
so starting from
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
after the first few expansions of gfxTableCap
you have
begingfxTableCapLabplrCaption%
endgfxTableCapLab
enddocument
so the explicit endgfxTableCapLab
in your document closed the inner environment, but the outer gfxTableCap
is never closed and that can not be detected until the closing of a containing group which is enddocument
here.
Probably more a comment than an answer. As for the test document: I typed it from memory as I don't have the document here, and the document actually is way to large to present here. I'm trying to extract a test case (hopefully) to demonstrate the problem. What I can say for now is that my environment messes with floats.
– U. Windl
Mar 28 at 7:58
3
@U.Windl I think this is the full answer in the generality that you asked the question. If you ask about the end parsing for a specific environment that would be a different question and of course need a slightly different answer.
– David Carlisle
Mar 28 at 8:05
OK, I will add my environments, but I wanted to avoid showing you this ugly code.
– U. Windl
Mar 29 at 1:54
@U.Windl I extended the answer to cover the code you posted.
– David Carlisle
Mar 29 at 7:56
add a comment |
Please always post actual test documents not untestable fragments. In general latex would detect that error at the
endA
but there are cases when it can not, for example if B
was verbatim
then by definition all processing is disabled until endB
is seen, in which case that error would only be detected at end of file.
so
documentclassarticle
begindocument
beginempty
endempty
beginquad
endempty
enddocument
produces an error message on line 11
! LaTeX Error: beginquad on input line 9 ended by endempty.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.11 endempty
but
documentclassarticle
begindocument
beginempty
endempty
beginverbatim
endempty
enddocument
Produces an error at end of file
Runaway argument?
^^M^^Mendempty^^M^^M^^Menddocument^^M
! File ended while scanning use of @xverbatim.
<inserted text>
par
<*> bb469
?
looking at the specific example provided, note that tex is a macro expansion system not a compiler it never parses the full document in advance.
so starting from
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
after the first few expansions of gfxTableCap
you have
begingfxTableCapLabplrCaption%
endgfxTableCapLab
enddocument
so the explicit endgfxTableCapLab
in your document closed the inner environment, but the outer gfxTableCap
is never closed and that can not be detected until the closing of a containing group which is enddocument
here.
Probably more a comment than an answer. As for the test document: I typed it from memory as I don't have the document here, and the document actually is way to large to present here. I'm trying to extract a test case (hopefully) to demonstrate the problem. What I can say for now is that my environment messes with floats.
– U. Windl
Mar 28 at 7:58
3
@U.Windl I think this is the full answer in the generality that you asked the question. If you ask about the end parsing for a specific environment that would be a different question and of course need a slightly different answer.
– David Carlisle
Mar 28 at 8:05
OK, I will add my environments, but I wanted to avoid showing you this ugly code.
– U. Windl
Mar 29 at 1:54
@U.Windl I extended the answer to cover the code you posted.
– David Carlisle
Mar 29 at 7:56
add a comment |
Please always post actual test documents not untestable fragments. In general latex would detect that error at the
endA
but there are cases when it can not, for example if B
was verbatim
then by definition all processing is disabled until endB
is seen, in which case that error would only be detected at end of file.
so
documentclassarticle
begindocument
beginempty
endempty
beginquad
endempty
enddocument
produces an error message on line 11
! LaTeX Error: beginquad on input line 9 ended by endempty.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.11 endempty
but
documentclassarticle
begindocument
beginempty
endempty
beginverbatim
endempty
enddocument
Produces an error at end of file
Runaway argument?
^^M^^Mendempty^^M^^M^^Menddocument^^M
! File ended while scanning use of @xverbatim.
<inserted text>
par
<*> bb469
?
looking at the specific example provided, note that tex is a macro expansion system not a compiler it never parses the full document in advance.
so starting from
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
after the first few expansions of gfxTableCap
you have
begingfxTableCapLabplrCaption%
endgfxTableCapLab
enddocument
so the explicit endgfxTableCapLab
in your document closed the inner environment, but the outer gfxTableCap
is never closed and that can not be detected until the closing of a containing group which is enddocument
here.
Please always post actual test documents not untestable fragments. In general latex would detect that error at the
endA
but there are cases when it can not, for example if B
was verbatim
then by definition all processing is disabled until endB
is seen, in which case that error would only be detected at end of file.
so
documentclassarticle
begindocument
beginempty
endempty
beginquad
endempty
enddocument
produces an error message on line 11
! LaTeX Error: beginquad on input line 9 ended by endempty.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.11 endempty
but
documentclassarticle
begindocument
beginempty
endempty
beginverbatim
endempty
enddocument
Produces an error at end of file
Runaway argument?
^^M^^Mendempty^^M^^M^^Menddocument^^M
! File ended while scanning use of @xverbatim.
<inserted text>
par
<*> bb469
?
looking at the specific example provided, note that tex is a macro expansion system not a compiler it never parses the full document in advance.
so starting from
begingfxTableCap[p]lrCaptionlabel2%
endgfxTableCapLab
enddocument
after the first few expansions of gfxTableCap
you have
begingfxTableCapLabplrCaption%
endgfxTableCapLab
enddocument
so the explicit endgfxTableCapLab
in your document closed the inner environment, but the outer gfxTableCap
is never closed and that can not be detected until the closing of a containing group which is enddocument
here.
edited Mar 29 at 7:55
answered Mar 28 at 7:50
David CarlisleDavid Carlisle
498k4111441893
498k4111441893
Probably more a comment than an answer. As for the test document: I typed it from memory as I don't have the document here, and the document actually is way to large to present here. I'm trying to extract a test case (hopefully) to demonstrate the problem. What I can say for now is that my environment messes with floats.
– U. Windl
Mar 28 at 7:58
3
@U.Windl I think this is the full answer in the generality that you asked the question. If you ask about the end parsing for a specific environment that would be a different question and of course need a slightly different answer.
– David Carlisle
Mar 28 at 8:05
OK, I will add my environments, but I wanted to avoid showing you this ugly code.
– U. Windl
Mar 29 at 1:54
@U.Windl I extended the answer to cover the code you posted.
– David Carlisle
Mar 29 at 7:56
add a comment |
Probably more a comment than an answer. As for the test document: I typed it from memory as I don't have the document here, and the document actually is way to large to present here. I'm trying to extract a test case (hopefully) to demonstrate the problem. What I can say for now is that my environment messes with floats.
– U. Windl
Mar 28 at 7:58
3
@U.Windl I think this is the full answer in the generality that you asked the question. If you ask about the end parsing for a specific environment that would be a different question and of course need a slightly different answer.
– David Carlisle
Mar 28 at 8:05
OK, I will add my environments, but I wanted to avoid showing you this ugly code.
– U. Windl
Mar 29 at 1:54
@U.Windl I extended the answer to cover the code you posted.
– David Carlisle
Mar 29 at 7:56
Probably more a comment than an answer. As for the test document: I typed it from memory as I don't have the document here, and the document actually is way to large to present here. I'm trying to extract a test case (hopefully) to demonstrate the problem. What I can say for now is that my environment messes with floats.
– U. Windl
Mar 28 at 7:58
Probably more a comment than an answer. As for the test document: I typed it from memory as I don't have the document here, and the document actually is way to large to present here. I'm trying to extract a test case (hopefully) to demonstrate the problem. What I can say for now is that my environment messes with floats.
– U. Windl
Mar 28 at 7:58
3
3
@U.Windl I think this is the full answer in the generality that you asked the question. If you ask about the end parsing for a specific environment that would be a different question and of course need a slightly different answer.
– David Carlisle
Mar 28 at 8:05
@U.Windl I think this is the full answer in the generality that you asked the question. If you ask about the end parsing for a specific environment that would be a different question and of course need a slightly different answer.
– David Carlisle
Mar 28 at 8:05
OK, I will add my environments, but I wanted to avoid showing you this ugly code.
– U. Windl
Mar 29 at 1:54
OK, I will add my environments, but I wanted to avoid showing you this ugly code.
– U. Windl
Mar 29 at 1:54
@U.Windl I extended the answer to cover the code you posted.
– David Carlisle
Mar 29 at 7:56
@U.Windl I extended the answer to cover the code you posted.
– David Carlisle
Mar 29 at 7:56
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f481844%2fdetect-begin-end-mismatch-or-ending-what-you-did-not-begin%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
LaTeX detects it. Exactly when the document ended and
B
was never finished. How is it supposed to detect it earlier? It does not have a human brain.– Johannes_B
Mar 28 at 7:30
1
It is not that people don't (want to) believe what you write. It's the fact that in some (many?) situations the issue you describe does not occur (as demonstrated in the answer), so your situation must be special and people need to see code that actually reproduces the problem to be able to help.
– moewe
Mar 29 at 4:53
1
Note for example that if I complete the code at the beginning of the question to a working example with
documentclassarticle newenvironmentAAA newenvironmentBBB begindocument beginA endA beginB endA enddocument
TeX says! LaTeX Error: beginB on input line 11 ended by endA.
on l.13 and thus gives a good error message. But if I saynewenvironmentBbeginAendA
instead, I get! LaTeX Error: beginB on input line 11 ended by enddocument.
. This is what you have in your second example code.– moewe
Mar 29 at 4:56
1
the new code produces a different error
! Package pdftex.def Error: File
"""Platzhalter".pdf' not found: using draft setting` really the idea is you make a minimal example that produces the error that you are asking about, but I'll fix that this time.– David Carlisle
Mar 29 at 7:41
1
@U.Windl I already fixed your example not to require a figure which was not necessary to demonstrate the error that you were asking about. If you have a question that does need a figure, you can use
example-image
which is in tex distributions for such tests but here I simply deleted theincludegraphics
– David Carlisle
Mar 30 at 23:02