~ubuntu-branches/debian/sid/tex4ht/sid

« back to all changes in this revision

Viewing changes to lit/tex4ht-sty.tex

  • Committer: Bazaar Package Importer
  • Author(s): Kapil Hari Paranjape
  • Date: 2008-09-12 10:32:36 UTC
  • mfrom: (1.3.2 upstream) (3.1.9 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080912103236-tgw2q5g6f5hp2pnm
Tags: 20080701-2
* debian/patches/add_manpage.diff: Modified the man page
  to recommend that "mk4ht" be used for conversions other than
  from TeX/LaTeX to HTML. This is in response to #495768.
* debian/control: Replaced "sun-java5-jre" with "openjdk-6-jre-headless"
  in the "Suggests" field for "tex4ht-common". The latter java runtime
  seems to work with "xtpipes.jar" and the former is non-free.
  (Closes: #486482)

Show diffs side-by-side

added added

removed removed

Lines of Context:
223
223
       |<temp := auto load Preamble|>
224
224
    \fi    
225
225
    \let\:tempc|=\:temp
 
226
    |<def early latex ifOption|>
226
227
    \pend:def\:tempc{\:RestoreCatcodes }    
227
228
    \append:def\:tempc{\endinput}
228
229
    \let\:temp|=\:tempc     
422
423
>>>
423
424
 
424
425
 
 
426
 
 
427
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
425
428
\SubSection{Start Preamble}
 
429
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
426
430
 
427
431
 
428
432
\<define /Preamble\><<<
562
566
>>>
563
567
 
564
568
 
 
569
 
 
570
The following code defines \`'\ifOption' just for flags defined in the
 
571
comamnd line (that is, flags known the first time tex4ht.sty is
 
572
loaded).  It doesn't yet see those options introduced by \`'\Preamble'
 
573
and the *.4ht files.
 
574
 
 
575
 
 
576
\<def early latex ifOption\><<<
 
577
\ifx \config:opt\:UnDef \else
 
578
   \ifx\tmp:toks\:UnDeF    \csname newtoks\endcsname\tmp:toks\fi
 
579
   \def\:temp{\def\ifOption##1}
 
580
   \expandafter\expandafter\expandafter\:temp
 
581
        \expandafter{\config:opt,,//\if:Option
 
582
   |<ifOption true|>\else |<ifOption false|>\fi  \tmp:toks=}
 
583
   \pend:defI\ifOption{\def\:temp{##1}\:Optionfalse\:ScanOptions}
 
584
\fi
 
585
>>>
 
586
 
 
587
 
565
588
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
566
589
\Section{LaTeX at First Pass}
567
590
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1732
1755
 
1733
1756
 
1734
1757
\<first pass\><<<
1735
 
\NewConfigure{html}[1]{\edef\:html{#1}}
1736
 
\Configure{html}{html}
 
1758
\NewConfigure{ext}[1]{%
 
1759
   \def\:temp##1ext=##2,##3|<par del|>{%
 
1760
      \if !##2!\edef\:html{#1}%
 
1761
      \else \edef\:html{##2}\fi}%
 
1762
   \expandafter\:temp\Preamble ,ext=,|<par del|>
 
1763
}
 
1764
\Configure{ext}{html}
1737
1765
>>>
1738
1766
 
1739
1767
\<base 2 names for htm\><<<
2014
2042
 
2015
2043
\<general utilities\><<<
2016
2044
\def\SaveEverypar{%
2017
 
   \expand:after{\expandafter\gdef\csname \n:list L\endcsname }%
 
2045
   \expandafter\ifx\csname ht:everypar\endcsname\relax
 
2046
      \expand:after{\expandafter\gdef\csname \n:list L\endcsname }%
 
2047
           \expandafter{\expandafter\everypar
 
2048
                        \expandafter{\the\everypar}}%
 
2049
   \else
 
2050
      \expand:after{\expandafter\gdef\csname \n:list L\endcsname }%
2018
2051
           \expandafter{\expandafter\ht:everypar
2019
2052
                        \expandafter{\the\ht:everypar}}%
 
2053
   \fi
2020
2054
   \expandafter\xdef\csname \n:list X\endcsname{%
2021
2055
      \if:removeindent  \global\noexpand\:removeindenttrue
2022
2056
      \else             \global\noexpand\:removeindentfalse \fi
2174
2208
\edef\re:call{\catcode`\noexpand\:|=\the\catcode`\: }%
2175
2209
\catcode`\:|=11
2176
2210
\let\sv:crs|=\:CrossWord
2177
 
\def\:CrossWord{\bgroup  \catcode`\:|=12  \catcode`\@|=11 
 
2211
\def\:CrossWord{\bgroup
 
2212
   \no:catcodes{128}{255}{12}%
 
2213
   \catcode`\:|=12  \catcode`\@|=11 
2178
2214
   \catcode`\^^M|=11    \:CrsWrd}%
2179
2215
\def\:CrsWrd##1##2##3{\egroup \sv:crs{##1}{##2}{##3}}%
2180
2216
>>>
3847
3883
      |<front/tail button|>%
3848
3884
      \def\:temp{#8}\ifx \:temp\empty \else 
3849
3885
         \ifx \cond:bt\:gobbleIII 
3850
 
         \else \def\CLB:up{#1\ExitHPage{#8}#2}\fi\fi
 
3886
         \else \def\CLB:up{\def\:temp{#8}#1\ExitHPage{#8}#2}\fi\fi
3851
3887
      |<insert cross link buttons|>%
3852
3888
      |<restore cond buttons|>%
3853
3889
      \def\:temp{##1}\ifx \:temp\empty \aa:crsbt\else \bb:crsbt\fi
3983
4019
\ifx \:temp\empty
3984
4020
   \def\:temp{#6}%
3985
4021
   \ifx \:temp\empty \else
3986
 
       \def\CLB:tail{#1\Link[\RefFileNumber\file:id]{}{}#6\EndLink #2}\fi
 
4022
       \def\CLB:tail{\def\:temp{#6}#1\Link[\RefFileNumber\file:id]{}{}#6\EndLink #2}\fi
3987
4023
\else
3988
4024
   \def\:temp{#7}%
3989
4025
   \ifx \:temp\empty \else
3990
 
       \def\CLB:front{#1\Link{##2\RefFileNumber\file:id}{}#7\EndLink #2}\fi
3991
 
\fi
3992
 
>>>
3993
 
 
3994
 
\<\><<<
3995
 
\def\:temp{##1}\def\:te:mp{##2}%
3996
 
\edef\:temp{%
3997
 
   \noexpand\Link
3998
 
   \ifx \:te:mp\empty [\RefFileNumber\file:id]\fi
3999
 
   {\ifx \:te:mp\empty \else ##2\RefFileNumber\file:id\fi}{}}%
4000
 
\ifx \:te:mp\empty
4001
 
   \def\:te:mp{#6}%
4002
 
   \ifx \:te:mp\empty \else 
4003
 
       \def\CLB:tail{#1\expandafter\:temp \:te:mp \EndLink #2}\fi
4004
 
\else
4005
 
   \def\:te:mp{#7}%
4006
 
   \ifx \:te:mp\empty \else 
4007
 
       \def\CLB:front{#1\expandafter\:temp \:te:mp \EndLink #2}\fi
 
4026
       \def\CLB:front{\def\:temp{#7}#1\Link{##2\RefFileNumber\file:id}{}#7\EndLink #2}\fi
4008
4027
\fi
4009
4028
>>>
4010
4029
 
4141
4160
      \Recall:HPageTag\HP:file  \Save:HPageTag\HP:file
4142
4161
      \def\:temp{#4}\ifx \:temp\empty \else 
4143
4162
         \def\CLB:prevup{%
4144
 
            #1\Link[\RefFile{|<fr bt fl|>\HP:file}]{}{}#4\EndLink #2}%
 
4163
            \def\:temp{#4}#1\Link[\RefFile{|<fr bt fl|>\HP:file}]{}{}#4\EndLink #2}%
4145
4164
      \fi
4146
4165
      \def\:temp{#5}\ifx \:temp\empty \else 
4147
4166
         \def\CLB:prevtailup{%
4148
 
               #1\Link[\RefFile{|<fr bt fl|>\HP:file}]{tail\Jobname
 
4167
               \def\:temp{#5}#1\Link[\RefFile{|<fr bt fl|>\HP:file}]{tail\Jobname
4149
4168
                                                }{}#5\EndLink #2}%
4150
4169
      \fi
4151
4170
      |<next button in root of `next' option|>%
4162
4181
      \def\:temp{#3}\ifx \:temp\empty
4163
4182
         \Link{}{tail\Jobname}\EndLink
4164
4183
      \else    
4165
 
         \expandafter\ifx \csname a:next\endcsname\relax #1\else
4166
 
         \a:next \fi \Link[####1]{}{tail\Jobname}#3\EndLink
4167
 
         \expandafter\ifx \csname b:next\endcsname\relax #2\else
4168
 
         \b:next \fi 
 
4184
         \expandafter\ifx \csname a:next+\endcsname\relax #1\else
 
4185
            \csname a:next+\endcsname \fi 
 
4186
         \expandafter\ifx \csname a:next\endcsname\relax
 
4187
                \def\:next{#3}%
 
4188
         \else  \let\:next\a:next \fi
 
4189
         \ifx \:next\empty
 
4190
            \Link{}{tail\Jobname}\EndLink
 
4191
         \else
 
4192
            \Link[####1]{}{tail\Jobname}\:next\EndLink
 
4193
         \fi
 
4194
         \expandafter\ifx \csname b:next+\endcsname\relax #2\else
 
4195
         \csname b:next+\endcsname \fi 
4169
4196
   \fi \fi}}%
4170
4197
\edef\:temp{\noexpand\:tempb
4171
4198
   {\RefFileNumber\file:id}{\RefFile{|<fr bt fl|>\HP:file}}}%
4178
4205
 
4179
4206
 
4180
4207
\<html config util\><<<
4181
 
\NewConfigure{next}[2]{\def\a:next{#1}\def\b:next{#2}}
 
4208
\NewConfigure{next}[1]{\def\a:next{#1}}
 
4209
\NewConfigure{next+}[2]{%
 
4210
    \expandafter\def\csname a:next+\endcsname{#1}%
 
4211
    \expandafter\def\csname b:next+\endcsname{#2}}
4182
4212
>>>
4183
4213
 
4184
4214
 
4476
4506
   \if:notempty{#3}{\exprt:tag{#1}#3,|<par del|>}}
4477
4507
>>>
4478
4508
 
4479
 
 
 
4509
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4480
4510
\SubSection{Overide Previous Files}
 
4511
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4481
4512
 
4482
4513
 
4483
4514
The \''\:clearpage' is needed below to clear the old tags and xref
5150
5181
        \expandafter\let\csname IF:#2toc\expandafter\endcsname
5151
5182
             \csname if:#2toc\endcsname
5152
5183
        \expandafter\let\csname if:#2toc\endcsname\:gobble
5153
 
   \else \edef\:temp{@}\edef\:tempa{#1}%
 
5184
   \else \edef\:temp{\string @}\edef\:tempa{\string#1}%
5154
5185
   \ifx \:temp\:tempa
5155
5186
         \expandafter\let\csname if:#2toc\endcsname\empty
5156
 
   \else \edef\:temp{?}%
 
5187
   \else \edef\:temp{\string ?}%
5157
5188
   \ifx \:temp\:tempa
5158
5189
        \expandafter\let\csname if:#2toc\expandafter\endcsname
5159
5190
             \csname IF:#2toc\endcsname
5653
5684
\<def Configure\><<<
5654
5685
\long\def\ConfigureToc#1#2#3#4#5{%
5655
5686
   \expandafter\def\csname toc#1\endcsname##1##2##3{#5}%
5656
 
   |<cond toc config|>
 
5687
   |<cond toc config|>%
5657
5688
}
5658
5689
>>>
5659
5690
 
5666
5697
        {\a:trc Toc(#1)1\b:trc}####1\hbox{\a:trc Toc(#1)2\b:trc}####2\hbox
5667
5698
        {\a:trc Toc(#1)3\b:trc}####3\hbox{\a:trc Toc(#1)4\b:trc}}%
5668
5699
   \else
5669
 
     |<cond toc config|>
 
5700
     |<cond toc config|>%
5670
5701
   \fi
5671
5702
}
5672
5703
>>>
6007
6038
\''\b:halign', \''\c:halign', and \`'d:halign'. The \`'#' in the
6008
6039
pattern can be any character of category code 13. The \`'&' charaters
6009
6040
shouldn't be within braces. The \''\RecallTeXcr' should appear 
6010
 
before \''\MkHalign'; if it appears within the patter, we loose
 
6041
before \''\MkHalign'; if it appears within the pattern, we loose
6011
6042
the row breaks.
6012
6043
 
6013
6044
 
6172
6203
 
6173
6204
\<html config util\><<<
6174
6205
\def\halignTD{\ifx \:mALIGN\empty \hT:D \else \:mALIGN \fi}
6175
 
\def\halignTB#1{\global\expandafter\let\expandafter\:MkHalign:
6176
 
   \csname :#1:\endcsname \a:halignTB \expandafter\expandafter
6177
 
   \expandafter\halign:TB \csname :#1:\endcsname|<par del|>\b:halignTB}
 
6206
\def\halignTB#1{
 
6207
   \expandafter\ifx \csname :#1:\endcsname\relax
 
6208
      \:warning{Missing \string\Configure{halignTB<>}{#1}}%
 
6209
   \else
 
6210
      \global\expandafter\let\expandafter\:MkHalign:
 
6211
      \csname :#1:\endcsname \a:halignTB \expandafter\expandafter
 
6212
      \expandafter\halign:TB \csname :#1:\endcsname|<par del|>\b:halignTB
 
6213
   \fi }
6178
6214
\NewConfigure{halignTB}{2}  
6179
6215
\NewConfigure{halignTB<>}[2]{%
6180
6216
   \expandafter\def\csname :#1:\endcsname{#2}}  
6968
7004
 
6969
7005
% [[gif\r:brk]
6970
7006
 
 
7007
%%%%%%%%%%%%%%%%%%%%%%%
6971
7008
\SubSection{noalign}
 
7009
%%%%%%%%%%%%%%%%%%%%%%%%%
6972
7010
 
6973
7011
In TeX4ht \`'\everycr\noalign' causes a loop because the definition of
6974
7012
\''\halign' includes \''\cr'.  We declare a loop when 100 cycles are
7324
7362
\def\DefScript:#1#2#3#4#5{\def#1{\call:script{#2}{#3}{#4}{#5}}}
7325
7363
\def\call:script#1#2#3#4{\begingroup \vrb:tt   
7326
7364
   \leftskip|=\z@  \parindent|=\z@
7327
 
   \Configure{HVerbatim}{\empty}{\empty}{\empty}{\empty}%
 
7365
   \Configure{HVerbatim}{\empty}{\empty}%
 
7366
                        {\special{t4ht=}\empty}{\empty}%
7328
7367
   \Configure{HVerbatim+}{\z@}{\hbox{ }}%
7329
7368
   #3\ht:special{t4ht@@}%
7330
7369
   \let\Verb:atim|=#1\let\Ver:batim|=#2%
7338
7377
 
7339
7378
 
7340
7379
A \`'\Configure{HVerbatim}{}{}{}{}' above will be problematic for 
7341
 
the \`'hooks' option.
7342
 
 
 
7380
the \`'hooks' option. The \`'\special{t4ht=}'is to ensure
 
7381
pseudo code at empty lines.
 
7382
 
 
7383
 
 
7384
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7343
7385
\Section{Cascade Style Sheets}
 
7386
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7344
7387
 
7345
7388
 
7346
7389
 
7654
7697
   \a:IMG\ht:special{t4ht=\PictureFile}\b:IMG}
7655
7698
>>>
7656
7699
 
 
7700
 
 
7701
 
 
7702
 
 
7703
 
 
7704
 
 
7705
 
 
7706
 
7657
7707
\<shared config\><<<
7658
7708
\NewConfigure{PictureAlt*+}{2}
7659
7709
\NewConfigure{PictureAttr*+}[1]{%
7662
7712
\Configure{PictureAttr*+}{\ht:special{t4ht=#1}}
7663
7713
>>>
7664
7714
 
 
7715
 
 
7716
 
 
7717
 
 
7718
 
 
7719
 
7665
7720
\Verbatim
7666
7721
flag ){ `<make a special for dvi driver`> }
7667
7722
  else switch( get_char() ){
7894
7949
\let\tex:special|=\ht:special 
7895
7950
>>>
7896
7951
 
 
7952
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7897
7953
\SubSection{With Given Text and Inline Text}
 
7954
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7898
7955
 
7899
7956
 
7900
7957
 
8320
8377
 
8321
8378
 
8322
8379
 
8323
 
 
 
8380
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8324
8381
\Section{Math into Pictures}
 
8382
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8325
8383
 
8326
8384
 
8327
8385
\<config math end-points\><<<
8375
8433
 
8376
8434
\<same page\><<<
8377
8435
\ht:special{t4ht@(}\vbox
8378
 
   \bgroup{\ht:everypar{}\leavevmode\ht:special{t4ht@)}}%
 
8436
   \bgroup{\expandafter\ifx\csname ht:everypar\endcsname\relax
 
8437
                \expandafter\everypar
 
8438
           \else \expandafter\ht:everypar\fi{}\leavevmode\ht:special{t4ht@)}}%
8379
8439
>>>
8380
8440
 
8381
8441
\<end same page\><<<
8957
9017
   \fi  \fi  \:next }
8958
9018
|<cats early latex subs/sups|>
8959
9019
\let\:CheckOption|=\:UnDef
8960
 
\let\:ScanOptions|=\:UnDef
8961
9020
>>>
8962
9021
 
8963
9022
 
 
9023
 
8964
9024
\<cats early latex subs/sups\><<<
8965
9025
\let\early:sub=\empty
8966
9026
\:CheckOption{early_} \if:Option
9140
9200
 
9141
9201
\def\::limits{\expandafter\ifx \blank:spc\:temp
9142
9202
     \afterassignment\:l:mits \tmp:cnt0%
9143
 
  \else\expandafter\:limits \fi}
 
9203
  \else
 
9204
     \ifx \limits\:temp\else 
 
9205
        \expandafter\expandafter\expandafter\:limits 
 
9206
     \fi
 
9207
  \fi}
9144
9208
\def\:l:mits{\futurelet\:temp\::limits}
9145
9209
\catcode`\ =13\relax\def\blank:spc{\let\blank:spc= }\blank:spc%
9146
9210
\catcode`\ =10\relax
9147
9211
>>>
9148
9212
 
 
9213
 
 
9214
Test case to check: \Verb=\[\sum\nolimits\limits_a^b  u_s^2 \]=
 
9215
 
 
9216
 
9149
9217
The assignment \`'\tmp:cnt0%' also consumes the space that follows.
9150
9218
 
9151
9219
 
9154
9222
\<math classes\><<<
9155
9223
\NewConfigure{displaylimits}[1]{\def\:temp{#1}\ifx \:temp\empty
9156
9224
   \let\displaylimits|=\o:displaylimits: \else
9157
 
   \def\:displaylimits{\ifx \:temp\nolimits \else#1\fi}%
 
9225
   \def\:displaylimits{\ifx \:temp\nolimits \else
 
9226
           \ifx \:temp\limits \else  #1\fi\fi}%
9158
9227
   \def\:temp{\o:displaylimits:\display:l:mits}%
9159
9228
   \HLet\displaylimits|=\:temp \fi}
9160
9229
\let\o:displaylimits:|=\displaylimits
9279
9348
 
9280
9349
 
9281
9350
 
9282
 
 
 
9351
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9283
9352
\Section{Renewed Commands}
 
9353
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9284
9354
 
 
9355
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9285
9356
\SubSection{Math Symbols from Macros}
 
9357
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9286
9358
 
9287
 
The \`'\MathSymbol' works on empty when the symbol come sfrom a font. 
9288
 
That is, when the macro is defined as \`'\mathchar"xxxx'.
 
9359
The \`'\MathSymbol' works on empty when the symbol comes from a font.
 
9360
That is, when the macro is defined as \`'\mathchar"xxxx'.  A
 
9361
\`'\MathSymbol+' variant may be applied to force definitions.  Warning
 
9362
messages are not helpful as the symbols may have nultiple definitions
 
9363
dependent on the style files being loaded.
9289
9364
 
9290
9365
\<built-in tex math ops\><<<
9291
 
\def\MathSymbol#1#2{%
 
9366
\def\MathSymbol{\futurelet\:temp\:::MathSymbol}
 
9367
\def\:::MathSymbol{\if +\:temp
 
9368
   \expandafter\:MathSymbol \else
 
9369
   \expandafter\::MathSymbol \fi
 
9370
}
 
9371
\def\::MathSymbol#1#2{%
9292
9372
   \def\:tempb##1"##2///{##1}%
9293
9373
   \edef\:tempa{\expandafter\expandafter\expandafter\:tempb
9294
9374
       \expandafter\meaning\csname#2\endcsname"///}%
9295
9375
   \edef\:tempc{\string\mathchar}%
9296
 
   \ifx \:tempa\:tempc \else 
9297
 
      \def\:temp{{\math:sym#1{#2}}}%
9298
 
      \expandafter\HLet\csname #2\endcsname|=\:temp
 
9376
   \ifx \:tempa\:tempc 
 
9377
      \NewConfigure{#2}{1}\Configure{#2}{\csname o:#2:\endcsname}%
 
9378
   \else
 
9379
      \:MathSymbol{}{#1}{#2}%
9299
9380
   \fi
9300
 
   \NewConfigure{#2}{1}\Configure{#2}{\csname o:#2:\endcsname}}
 
9381
}
 
9382
\def\:MathSymbol#1#2#3{%
 
9383
   \def\:temp{{\math:sym#2{#3}}}%
 
9384
   \expandafter\HLet\csname #3\endcsname\:temp
 
9385
   \NewConfigure{#3}{1}\Configure{#3}{\csname o:#3:\endcsname}%
 
9386
}
9301
9387
\def\math:sym#1#2{{\relax\ifmmode \expandafter#1\fi
9302
9388
   {\csname a:#2\endcsname}}}
9303
9389
>>>
9304
9390
 
 
9391
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9305
9392
\SubSection{/left and /right}
 
9393
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9306
9394
 
9307
9395
Again, we don't want line breaks from \''<PRE>'s  within
9308
9396
formulas in visual browsers.
10017
10105
>>>
10018
10106
 
10019
10107
 
10020
 
 
 
10108
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10021
10109
\Section{Symbols}
 
10110
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10022
10111
 
10023
10112
Check that all the symbols belong to TeX and LaTeX
10024
10113
 
10025
10114
 
10026
10115
\<shared config\><<<
10027
 
\def\HChar#1{{\leavevmode\ht:special{t4ht@#1}\ifnum #1>-1 \a:HChar\fi}}
 
10116
\def\HChar#1{{\leavevmode |%\ifmmode\else\expandafter\immediate\fi|%
 
10117
\ht:special{t4ht@#1}\ifnum #1>-1 \a:HChar\fi}}
10028
10118
\NewConfigure{HChar}{1} 
10029
10119
\Configure{HChar}{x}
10030
10120
>>>
10031
10121
 
10032
10122
 
 
10123
 
10033
10124
There is a boundary case of \''\HChar{0}' we didn't
10034
10125
handle above. Do we want to take care of it?
10035
10126
 
10044
10135
presence of regular and pictorial symbols, we should be careful 
10045
10136
not to get here into a mess.
10046
10137
 
10047
 
 
10048
 
 
 
10138
Without checking for the math mode the immediate becomes problematic in math mode (why?).
 
10139
 
 
10140
\Verbatim
 
10141
\documentclass{article}  
 
10142
\begin{document}  
 
10143
$\_$ vs \_
 
10144
\end{document}
 
10145
\EndVerbatim
 
10146
 
 
10147
 
 
10148
Same problem for tables (why?)
 
10149
 
 
10150
\Verbatim
 
10151
\documentclass{article} 
 
10152
\begin{document} 
 
10153
\begin{tabular}{l} \_ \end{tabular} 
 
10154
\end{document} 
 
10155
\EndVerbatim
 
10156
 
 
10157
 
 
10158
 
 
10159
%%%%%%%%%%%%%%%%%%%%%%%%%
10049
10160
\SubSection{Symbols}
 
10161
%%%%%%%%%%%%%%%%%%%%%%%%%%
10050
10162
 
10051
10163
% After |<dvi-based hooks|>
10052
10164
 
10640
10752
   \expandafter\expandafter\expandafter\expandafter
10641
10753
       \expandafter\expandafter\expandafter\:tempa
10642
10754
   \expandafter\expandafter\expandafter{\expandafter\:temp #1}}
 
10755
\long\def\pend:defI#1#2{%
 
10756
   \def\:tempa{\def#1####1}%
 
10757
   \ex:pend{#2}{\expandafter\:temp #1{##1}}}
 
10758
\long\def\ex:pend#1{\def\:temp{#1}%
 
10759
  \expandafter\expandafter\expandafter\expandafter
 
10760
       \expandafter\expandafter\expandafter\:tempa
 
10761
   \expandafter\expandafter\expandafter}
10643
10762
>>>
10644
10763
 
10645
10764
\<utilities\><<<
10646
10765
\long\def\append:defI#1#2{%
10647
10766
   \def\:temp{\def#1####1}%
10648
10767
   \expandafter\expandafter\expandafter\:temp\expandafter{#1{##1}#2}}   
10649
 
\long\def\pend:defI#1#2{%
10650
 
   \def\:tempa{\def#1####1}%
10651
 
   \ex:pend{#2}{\expandafter\:temp #1{##1}}}
10652
10768
\long\def\pend:defII#1#2{%
10653
10769
   \def\:tempa{\def#1####1####2}%
10654
10770
   \ex:pend{#2}{\expandafter\:temp #1{##1}{##2}}}
10658
10774
\long\def\pend:defIII#1#2{%
10659
10775
   \def\:tempa{\def#1####1####2####3}%
10660
10776
   \ex:pend{#2}{\expandafter\:temp #1{##1}{##2}{##3}}}
10661
 
\long\def\ex:pend#1{\def\:temp{#1}%
10662
 
  \expandafter\expandafter\expandafter\expandafter
10663
 
       \expandafter\expandafter\expandafter\:tempa
10664
 
   \expandafter\expandafter\expandafter}
10665
10777
\long\def\append:defIII#1#2{%
10666
10778
   \def\:temp{\def#1####1####2####3}%
10667
10779
   \expandafter\expandafter\expandafter
10751
10863
   \expandafter\edef\csname
10752
10864
           End\expandafter\:gobble\string #9\endcsname{%
10753
10865
      \ifx\:tempd\empty \noexpand\HCode
10754
 
         {</\ifx\:tempa\empty \tag:A\else#2\fi>}\fi }%
 
10866
         {\Hbrakets</\ifx\:tempa\empty \tag:A\else#2\fi>}\fi }%
10755
10867
   \edef\:temp{%
10756
10868
      \noexpand\Odef\noexpand#1[####1]####2####3{{%
10757
10869
         \def\noexpand\tag:A{\ifx\:tempa\empty\tag:A\else#2\fi}%