From bcdf6c829c6761de02484473ebe43fa3760adcaa Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 12 May 2021 03:01:15 +0000 Subject: CTAN sync 202105120301 --- FILES.byname | 850 +- FILES.byname.gz | Bin 2309072 -> 2310627 bytes FILES.last07days | 1102 +- macros/latex/contrib/l3kernel/CHANGELOG.md | 17 +- macros/latex/contrib/l3kernel/README.md | 2 +- macros/latex/contrib/l3kernel/expl3.dtx | 8 +- macros/latex/contrib/l3kernel/expl3.pdf | Bin 623531 -> 623415 bytes macros/latex/contrib/l3kernel/interface3.pdf | Bin 1704394 -> 1707327 bytes macros/latex/contrib/l3kernel/interface3.tex | 2 +- macros/latex/contrib/l3kernel/l3basics.dtx | 2 +- macros/latex/contrib/l3kernel/l3bootstrap.dtx | 2 +- macros/latex/contrib/l3kernel/l3box.dtx | 2 +- macros/latex/contrib/l3kernel/l3candidates.dtx | 2 +- macros/latex/contrib/l3kernel/l3cctab.dtx | 41 +- macros/latex/contrib/l3kernel/l3clist.dtx | 74 +- macros/latex/contrib/l3kernel/l3coffins.dtx | 2 +- macros/latex/contrib/l3kernel/l3color.dtx | 6 +- macros/latex/contrib/l3kernel/l3debug.dtx | 2 +- macros/latex/contrib/l3kernel/l3deprecation.dtx | 2 +- macros/latex/contrib/l3kernel/l3doc.dtx | 2 +- macros/latex/contrib/l3kernel/l3docstrip.dtx | 2 +- macros/latex/contrib/l3kernel/l3docstrip.pdf | Bin 151853 -> 151697 bytes macros/latex/contrib/l3kernel/l3expan.dtx | 2 +- macros/latex/contrib/l3kernel/l3file.dtx | 2 +- macros/latex/contrib/l3kernel/l3flag.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-assign.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-aux.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-basics.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-expo.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-extended.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-logic.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-parse.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-random.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-round.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-traps.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp-trig.dtx | 2 +- macros/latex/contrib/l3kernel/l3fp.dtx | 2 +- macros/latex/contrib/l3kernel/l3fparray.dtx | 2 +- macros/latex/contrib/l3kernel/l3int.dtx | 2 +- macros/latex/contrib/l3kernel/l3intarray.dtx | 2 +- .../latex/contrib/l3kernel/l3kernel-functions.dtx | 2 +- macros/latex/contrib/l3kernel/l3keys.dtx | 20 +- macros/latex/contrib/l3kernel/l3legacy.dtx | 2 +- macros/latex/contrib/l3kernel/l3luatex.dtx | 2 +- macros/latex/contrib/l3kernel/l3msg.dtx | 72 +- macros/latex/contrib/l3kernel/l3names.dtx | 2 +- macros/latex/contrib/l3kernel/l3news.pdf | Bin 395934 -> 395934 bytes macros/latex/contrib/l3kernel/l3news01.pdf | Bin 122713 -> 122713 bytes macros/latex/contrib/l3kernel/l3news02.pdf | Bin 150672 -> 150672 bytes macros/latex/contrib/l3kernel/l3news03.pdf | Bin 148707 -> 148707 bytes macros/latex/contrib/l3kernel/l3news04.pdf | Bin 114588 -> 114588 bytes macros/latex/contrib/l3kernel/l3news05.pdf | Bin 112485 -> 112485 bytes macros/latex/contrib/l3kernel/l3news06.pdf | Bin 151572 -> 151572 bytes macros/latex/contrib/l3kernel/l3news07.pdf | Bin 128312 -> 128312 bytes macros/latex/contrib/l3kernel/l3news08.pdf | Bin 163405 -> 163405 bytes macros/latex/contrib/l3kernel/l3news09.pdf | Bin 250134 -> 250134 bytes macros/latex/contrib/l3kernel/l3news10.pdf | Bin 150289 -> 150289 bytes macros/latex/contrib/l3kernel/l3news11.pdf | Bin 170069 -> 170069 bytes macros/latex/contrib/l3kernel/l3news12.pdf | Bin 204992 -> 204992 bytes macros/latex/contrib/l3kernel/l3pdf.dtx | 2 +- macros/latex/contrib/l3kernel/l3prefixes.pdf | Bin 79776 -> 79776 bytes macros/latex/contrib/l3kernel/l3prg.dtx | 15 +- macros/latex/contrib/l3kernel/l3prop.dtx | 2 +- macros/latex/contrib/l3kernel/l3quark.dtx | 2 +- macros/latex/contrib/l3kernel/l3regex.dtx | 34 +- macros/latex/contrib/l3kernel/l3seq.dtx | 2 +- macros/latex/contrib/l3kernel/l3skip.dtx | 2 +- macros/latex/contrib/l3kernel/l3sort.dtx | 2 +- macros/latex/contrib/l3kernel/l3str-convert.dtx | 2 +- macros/latex/contrib/l3kernel/l3str.dtx | 2 +- macros/latex/contrib/l3kernel/l3styleguide.pdf | Bin 296251 -> 296129 bytes macros/latex/contrib/l3kernel/l3styleguide.tex | 2 +- macros/latex/contrib/l3kernel/l3syntax-changes.pdf | Bin 242931 -> 242807 bytes macros/latex/contrib/l3kernel/l3syntax-changes.tex | 2 +- macros/latex/contrib/l3kernel/l3sys.dtx | 2 +- macros/latex/contrib/l3kernel/l3term-glossary.pdf | Bin 231313 -> 231193 bytes macros/latex/contrib/l3kernel/l3term-glossary.tex | 2 +- macros/latex/contrib/l3kernel/l3text-case.dtx | 2 +- macros/latex/contrib/l3kernel/l3text-purify.dtx | 2 +- macros/latex/contrib/l3kernel/l3text.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl-analysis.dtx | 2 +- macros/latex/contrib/l3kernel/l3tl.dtx | 2 +- macros/latex/contrib/l3kernel/l3token.dtx | 11 +- macros/latex/contrib/l3kernel/l3unicode.dtx | 2 +- macros/latex/contrib/l3kernel/source3.pdf | Bin 6766562 -> 6780088 bytes macros/latex/contrib/l3kernel/source3.tex | 2 +- support/TeX4ht/README | 13 +- support/TeX4ht/doc/Makefile | 35 + support/TeX4ht/doc/README | 15 + support/TeX4ht/doc/TeX4ht-doc.tex | 11094 ++ support/TeX4ht/doc/bugfixes.html | 27 + support/TeX4ht/doc/index.html | 1 + support/TeX4ht/doc/jhsample.tex | 118 + support/TeX4ht/doc/mml-issues.html | 386 + support/TeX4ht/doc/mml.html | 79 + support/TeX4ht/doc/mn-bug.html | 44 + support/TeX4ht/doc/mn-commands.html | 796 + support/TeX4ht/doc/mn-htf.html | 127 + support/TeX4ht/doc/mn-index.html | 595 + support/TeX4ht/doc/mn-mswin.html | 148 + support/TeX4ht/doc/mn-port.html | 41 + support/TeX4ht/doc/mn-upgrade.html | 185 + support/TeX4ht/doc/mn.css | 79 + support/TeX4ht/doc/mn.html | 431 + support/TeX4ht/doc/mn0x.png | Bin 0 -> 889 bytes support/TeX4ht/doc/mn10.html | 48 + support/TeX4ht/doc/mn11.html | 829 + support/TeX4ht/doc/mn12.html | 147 + support/TeX4ht/doc/mn13.html | 46 + support/TeX4ht/doc/mn14.html | 419 + support/TeX4ht/doc/mn15.html | 155 + support/TeX4ht/doc/mn16.html | 139 + support/TeX4ht/doc/mn17.html | 91 + support/TeX4ht/doc/mn18.html | 33 + support/TeX4ht/doc/mn19.html | 134 + support/TeX4ht/doc/mn1x.png | Bin 0 -> 336 bytes support/TeX4ht/doc/mn2.html | 142 + support/TeX4ht/doc/mn20.html | 140 + support/TeX4ht/doc/mn21.html | 119 + support/TeX4ht/doc/mn22.html | 168 + support/TeX4ht/doc/mn24.html | 39 + support/TeX4ht/doc/mn25.html | 46 + support/TeX4ht/doc/mn27.html | 29 + support/TeX4ht/doc/mn29.html | 32 + support/TeX4ht/doc/mn2x.png | Bin 0 -> 487 bytes support/TeX4ht/doc/mn3.html | 671 + support/TeX4ht/doc/mn30.html | 25 + support/TeX4ht/doc/mn32.html | 76 + support/TeX4ht/doc/mn33.html | 24 + support/TeX4ht/doc/mn34.html | 142 + support/TeX4ht/doc/mn35.html | 53 + support/TeX4ht/doc/mn36.html | 63 + support/TeX4ht/doc/mn37.html | 80 + support/TeX4ht/doc/mn38.html | 80 + support/TeX4ht/doc/mn39.html | 131 + support/TeX4ht/doc/mn3x.png | Bin 0 -> 278 bytes support/TeX4ht/doc/mn4.html | 31 + support/TeX4ht/doc/mn40.html | 60 + support/TeX4ht/doc/mn41.html | 36 + support/TeX4ht/doc/mn42.html | 25 + support/TeX4ht/doc/mn44.html | 60 + support/TeX4ht/doc/mn45.html | 34 + support/TeX4ht/doc/mn46.html | 42 + support/TeX4ht/doc/mn47.html | 47 + support/TeX4ht/doc/mn48.html | 30 + support/TeX4ht/doc/mn49.html | 34 + support/TeX4ht/doc/mn4x.png | Bin 0 -> 3866 bytes support/TeX4ht/doc/mn5.html | 706 + support/TeX4ht/doc/mn50.html | 30 + support/TeX4ht/doc/mn51.html | 40 + support/TeX4ht/doc/mn52.html | 31 + support/TeX4ht/doc/mn53.html | 176 + support/TeX4ht/doc/mn54.html | 74 + support/TeX4ht/doc/mn55.html | 61 + support/TeX4ht/doc/mn56.html | 20 + support/TeX4ht/doc/mn5x.png | Bin 0 -> 271 bytes support/TeX4ht/doc/mn6x.png | Bin 0 -> 227 bytes support/TeX4ht/source/ChangeLog | 4216 + support/TeX4ht/source/Makefile | 834 + support/TeX4ht/source/README | 23 + support/TeX4ht/source/checklog.lua | 50 + support/TeX4ht/source/common-code.tex | 32 + support/TeX4ht/source/common-info.tex | 68 + support/TeX4ht/source/common.tex | 43 + support/TeX4ht/source/extra-bin/vcss | 2 + support/TeX4ht/source/extra-bin/xmllint | 2 + support/TeX4ht/source/mktex4ht-cnf.tex | 361 + support/TeX4ht/source/t1fontmake.lua | 48 + support/TeX4ht/source/t1fontsample.tex | 21 + support/TeX4ht/source/tex4ht-4ht.tex | 39187 +++++++ support/TeX4ht/source/tex4ht-auto-script.tex | 252 + support/TeX4ht/source/tex4ht-bibtex2.tex | 75 + support/TeX4ht/source/tex4ht-c.tex | 17542 +++ support/TeX4ht/source/tex4ht-cond4ht.tex | 779 + support/TeX4ht/source/tex4ht-cpright.tex | 25 + support/TeX4ht/source/tex4ht-dir.m4 | 12 + support/TeX4ht/source/tex4ht-docbook-xtpipes.tex | 537 + support/TeX4ht/source/tex4ht-docbook.tex | 3994 + support/TeX4ht/source/tex4ht-env.tex | 1729 + support/TeX4ht/source/tex4ht-fonts-4hf.tex | 101665 ++++++++++++++++++ support/TeX4ht/source/tex4ht-fonts-cjk-utf8.tex | 66851 ++++++++++++ support/TeX4ht/source/tex4ht-fonts-cjk.tex | 39457 +++++++ support/TeX4ht/source/tex4ht-fonts-ebgaramond.tex | 8187 ++ support/TeX4ht/source/tex4ht-fonts-fourier.tex | 4650 + support/TeX4ht/source/tex4ht-fonts-libertine.tex | 20132 ++++ support/TeX4ht/source/tex4ht-fonts-modern.tex | 26209 +++++ support/TeX4ht/source/tex4ht-fonts-newtx.tex | 13503 +++ support/TeX4ht/source/tex4ht-fonts-noncjk.tex | 62031 +++++++++++ support/TeX4ht/source/tex4ht-fonts-spectral.tex | 5748 + support/TeX4ht/source/tex4ht-htcmd.tex | 803 + .../TeX4ht/source/tex4ht-html-speech-xtpipes.tex | 2440 + support/TeX4ht/source/tex4ht-html-speech.tex | 25036 +++++ support/TeX4ht/source/tex4ht-html0.tex | 3863 + support/TeX4ht/source/tex4ht-html32.tex | 7429 ++ support/TeX4ht/source/tex4ht-html4.tex | 22317 ++++ support/TeX4ht/source/tex4ht-html5.tex | 376 + support/TeX4ht/source/tex4ht-info-html4.tex | 299 + support/TeX4ht/source/tex4ht-info-javahelp.tex | 123 + support/TeX4ht/source/tex4ht-info-mml.tex | 144 + support/TeX4ht/source/tex4ht-info-ooffice.tex | 93 + support/TeX4ht/source/tex4ht-info-svg.tex | 159 + support/TeX4ht/source/tex4ht-info.tex | 4190 + support/TeX4ht/source/tex4ht-jats.tex | 111 + support/TeX4ht/source/tex4ht-javahelp-xtpipes.tex | 641 + support/TeX4ht/source/tex4ht-javahelp.tex | 1737 + support/TeX4ht/source/tex4ht-jsmath.tex | 899 + support/TeX4ht/source/tex4ht-jsml-xtpipes.tex | 3902 + support/TeX4ht/source/tex4ht-jsml.tex | 4509 + support/TeX4ht/source/tex4ht-mathjax.tex | 190 + support/TeX4ht/source/tex4ht-mathltx.tex | 4149 + support/TeX4ht/source/tex4ht-mathml.tex | 5422 + support/TeX4ht/source/tex4ht-mathplayer.tex | 306 + support/TeX4ht/source/tex4ht-mkht.tex | 1929 + support/TeX4ht/source/tex4ht-moz.tex | 1071 + support/TeX4ht/source/tex4ht-oo-xtpipes.tex | 1981 + support/TeX4ht/source/tex4ht-ooffice.tex | 12270 +++ support/TeX4ht/source/tex4ht-ooimpress.tex | 436 + support/TeX4ht/source/tex4ht-options.tex | 493 + support/TeX4ht/source/tex4ht-sty.tex | 11285 ++ support/TeX4ht/source/tex4ht-svg.tex | 309 + support/TeX4ht/source/tex4ht-t4ht.tex | 4521 + support/TeX4ht/source/tex4ht-tei.tex | 1716 + support/TeX4ht/source/tex4ht-unicode.tex | 1258 + support/TeX4ht/source/tex4ht-word.tex | 549 + support/TeX4ht/source/tex4ht-xhtml-xtpipes.tex | 659 + support/TeX4ht/source/tex4ht-xhtmml-xtpipes.tex | 751 + support/TeX4ht/source/wripro.tex | 518 + support/TeX4ht/source/xtpipes.tex | 4518 + .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 2 + systems/texlive/tlnet/tlpkg/texlive.tlpdb | 46 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2303136 -> 2303924 bytes systems/win32/miktex/tm/packages/next/pr.ini | 8 +- systems/win32/miktex/tm/packages/pr.ini | 8 +- systems/win32/w32tex/ChangeLog | 42 + timestamp | 2 +- usergrps/usergrps/bg.html | 2 +- usergrps/usergrps/br.html | 2 +- usergrps/usergrps/ca.html | 2 +- usergrps/usergrps/cn.html | 2 +- usergrps/usergrps/cz.html | 2 +- usergrps/usergrps/de.html | 2 +- usergrps/usergrps/dk.html | 2 +- usergrps/usergrps/ee.html | 2 +- usergrps/usergrps/es.html | 2 +- usergrps/usergrps/esc.html | 2 +- usergrps/usergrps/fr.html | 2 +- usergrps/usergrps/gb.html | 2 +- usergrps/usergrps/gr.html | 2 +- usergrps/usergrps/hu.html | 2 +- usergrps/usergrps/ie.html | 2 +- usergrps/usergrps/index.html | 2 +- usergrps/usergrps/is.html | 2 +- usergrps/usergrps/it.html | 2 +- usergrps/usergrps/kh.html | 2 +- usergrps/usergrps/kr.html | 2 +- usergrps/usergrps/lt.html | 2 +- usergrps/usergrps/lugs.html | 2 +- usergrps/usergrps/mx.html | 2 +- usergrps/usergrps/nl.html | 2 +- usergrps/usergrps/no.html | 2 +- usergrps/usergrps/pl.html | 2 +- usergrps/usergrps/pt.html | 2 +- usergrps/usergrps/us.html | 2 +- usergrps/usergrps/uy.html | 2 +- usergrps/usergrps/vn.html | 2 +- usergrps/usergrps/za.html | 2 +- 270 files changed, 572758 insertions(+), 1305 deletions(-) create mode 100644 support/TeX4ht/doc/Makefile create mode 100644 support/TeX4ht/doc/README create mode 100644 support/TeX4ht/doc/TeX4ht-doc.tex create mode 100644 support/TeX4ht/doc/bugfixes.html create mode 100644 support/TeX4ht/doc/index.html create mode 100644 support/TeX4ht/doc/jhsample.tex create mode 100644 support/TeX4ht/doc/mml-issues.html create mode 100644 support/TeX4ht/doc/mml.html create mode 100644 support/TeX4ht/doc/mn-bug.html create mode 100644 support/TeX4ht/doc/mn-commands.html create mode 100644 support/TeX4ht/doc/mn-htf.html create mode 100644 support/TeX4ht/doc/mn-index.html create mode 100644 support/TeX4ht/doc/mn-mswin.html create mode 100644 support/TeX4ht/doc/mn-port.html create mode 100644 support/TeX4ht/doc/mn-upgrade.html create mode 100644 support/TeX4ht/doc/mn.css create mode 100644 support/TeX4ht/doc/mn.html create mode 100644 support/TeX4ht/doc/mn0x.png create mode 100644 support/TeX4ht/doc/mn10.html create mode 100644 support/TeX4ht/doc/mn11.html create mode 100644 support/TeX4ht/doc/mn12.html create mode 100644 support/TeX4ht/doc/mn13.html create mode 100644 support/TeX4ht/doc/mn14.html create mode 100644 support/TeX4ht/doc/mn15.html create mode 100644 support/TeX4ht/doc/mn16.html create mode 100644 support/TeX4ht/doc/mn17.html create mode 100644 support/TeX4ht/doc/mn18.html create mode 100644 support/TeX4ht/doc/mn19.html create mode 100644 support/TeX4ht/doc/mn1x.png create mode 100644 support/TeX4ht/doc/mn2.html create mode 100644 support/TeX4ht/doc/mn20.html create mode 100644 support/TeX4ht/doc/mn21.html create mode 100644 support/TeX4ht/doc/mn22.html create mode 100644 support/TeX4ht/doc/mn24.html create mode 100644 support/TeX4ht/doc/mn25.html create mode 100644 support/TeX4ht/doc/mn27.html create mode 100644 support/TeX4ht/doc/mn29.html create mode 100644 support/TeX4ht/doc/mn2x.png create mode 100644 support/TeX4ht/doc/mn3.html create mode 100644 support/TeX4ht/doc/mn30.html create mode 100644 support/TeX4ht/doc/mn32.html create mode 100644 support/TeX4ht/doc/mn33.html create mode 100644 support/TeX4ht/doc/mn34.html create mode 100644 support/TeX4ht/doc/mn35.html create mode 100644 support/TeX4ht/doc/mn36.html create mode 100644 support/TeX4ht/doc/mn37.html create mode 100644 support/TeX4ht/doc/mn38.html create mode 100644 support/TeX4ht/doc/mn39.html create mode 100644 support/TeX4ht/doc/mn3x.png create mode 100644 support/TeX4ht/doc/mn4.html create mode 100644 support/TeX4ht/doc/mn40.html create mode 100644 support/TeX4ht/doc/mn41.html create mode 100644 support/TeX4ht/doc/mn42.html create mode 100644 support/TeX4ht/doc/mn44.html create mode 100644 support/TeX4ht/doc/mn45.html create mode 100644 support/TeX4ht/doc/mn46.html create mode 100644 support/TeX4ht/doc/mn47.html create mode 100644 support/TeX4ht/doc/mn48.html create mode 100644 support/TeX4ht/doc/mn49.html create mode 100644 support/TeX4ht/doc/mn4x.png create mode 100644 support/TeX4ht/doc/mn5.html create mode 100644 support/TeX4ht/doc/mn50.html create mode 100644 support/TeX4ht/doc/mn51.html create mode 100644 support/TeX4ht/doc/mn52.html create mode 100644 support/TeX4ht/doc/mn53.html create mode 100644 support/TeX4ht/doc/mn54.html create mode 100644 support/TeX4ht/doc/mn55.html create mode 100644 support/TeX4ht/doc/mn56.html create mode 100644 support/TeX4ht/doc/mn5x.png create mode 100644 support/TeX4ht/doc/mn6x.png create mode 100644 support/TeX4ht/source/ChangeLog create mode 100644 support/TeX4ht/source/Makefile create mode 100644 support/TeX4ht/source/README create mode 100644 support/TeX4ht/source/checklog.lua create mode 100644 support/TeX4ht/source/common-code.tex create mode 100644 support/TeX4ht/source/common-info.tex create mode 100644 support/TeX4ht/source/common.tex create mode 100644 support/TeX4ht/source/extra-bin/vcss create mode 100644 support/TeX4ht/source/extra-bin/xmllint create mode 100644 support/TeX4ht/source/mktex4ht-cnf.tex create mode 100644 support/TeX4ht/source/t1fontmake.lua create mode 100644 support/TeX4ht/source/t1fontsample.tex create mode 100644 support/TeX4ht/source/tex4ht-4ht.tex create mode 100644 support/TeX4ht/source/tex4ht-auto-script.tex create mode 100644 support/TeX4ht/source/tex4ht-bibtex2.tex create mode 100644 support/TeX4ht/source/tex4ht-c.tex create mode 100644 support/TeX4ht/source/tex4ht-cond4ht.tex create mode 100644 support/TeX4ht/source/tex4ht-cpright.tex create mode 100644 support/TeX4ht/source/tex4ht-dir.m4 create mode 100644 support/TeX4ht/source/tex4ht-docbook-xtpipes.tex create mode 100644 support/TeX4ht/source/tex4ht-docbook.tex create mode 100644 support/TeX4ht/source/tex4ht-env.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-4hf.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-cjk-utf8.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-cjk.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-ebgaramond.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-fourier.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-libertine.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-modern.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-newtx.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-noncjk.tex create mode 100644 support/TeX4ht/source/tex4ht-fonts-spectral.tex create mode 100644 support/TeX4ht/source/tex4ht-htcmd.tex create mode 100644 support/TeX4ht/source/tex4ht-html-speech-xtpipes.tex create mode 100644 support/TeX4ht/source/tex4ht-html-speech.tex create mode 100644 support/TeX4ht/source/tex4ht-html0.tex create mode 100644 support/TeX4ht/source/tex4ht-html32.tex create mode 100644 support/TeX4ht/source/tex4ht-html4.tex create mode 100644 support/TeX4ht/source/tex4ht-html5.tex create mode 100644 support/TeX4ht/source/tex4ht-info-html4.tex create mode 100644 support/TeX4ht/source/tex4ht-info-javahelp.tex create mode 100644 support/TeX4ht/source/tex4ht-info-mml.tex create mode 100644 support/TeX4ht/source/tex4ht-info-ooffice.tex create mode 100644 support/TeX4ht/source/tex4ht-info-svg.tex create mode 100644 support/TeX4ht/source/tex4ht-info.tex create mode 100644 support/TeX4ht/source/tex4ht-jats.tex create mode 100644 support/TeX4ht/source/tex4ht-javahelp-xtpipes.tex create mode 100644 support/TeX4ht/source/tex4ht-javahelp.tex create mode 100644 support/TeX4ht/source/tex4ht-jsmath.tex create mode 100644 support/TeX4ht/source/tex4ht-jsml-xtpipes.tex create mode 100644 support/TeX4ht/source/tex4ht-jsml.tex create mode 100644 support/TeX4ht/source/tex4ht-mathjax.tex create mode 100644 support/TeX4ht/source/tex4ht-mathltx.tex create mode 100644 support/TeX4ht/source/tex4ht-mathml.tex create mode 100644 support/TeX4ht/source/tex4ht-mathplayer.tex create mode 100644 support/TeX4ht/source/tex4ht-mkht.tex create mode 100644 support/TeX4ht/source/tex4ht-moz.tex create mode 100644 support/TeX4ht/source/tex4ht-oo-xtpipes.tex create mode 100644 support/TeX4ht/source/tex4ht-ooffice.tex create mode 100644 support/TeX4ht/source/tex4ht-ooimpress.tex create mode 100644 support/TeX4ht/source/tex4ht-options.tex create mode 100644 support/TeX4ht/source/tex4ht-sty.tex create mode 100644 support/TeX4ht/source/tex4ht-svg.tex create mode 100644 support/TeX4ht/source/tex4ht-t4ht.tex create mode 100644 support/TeX4ht/source/tex4ht-tei.tex create mode 100644 support/TeX4ht/source/tex4ht-unicode.tex create mode 100644 support/TeX4ht/source/tex4ht-word.tex create mode 100644 support/TeX4ht/source/tex4ht-xhtml-xtpipes.tex create mode 100644 support/TeX4ht/source/tex4ht-xhtmml-xtpipes.tex create mode 100644 support/TeX4ht/source/wripro.tex create mode 100644 support/TeX4ht/source/xtpipes.tex diff --git a/FILES.byname b/FILES.byname index 82b9360328..c1f65772f6 100644 --- a/FILES.byname +++ b/FILES.byname @@ -5087,7 +5087,7 @@ 1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp 1990/10/02 | 812 | dviware/vutex/vaxvms.ins 1990/10/02 | 127576 | dviware/vutex/vutex.web -2021/05/10 | 133813 | FILES.last07days +2021/05/11 | 135468 | FILES.last07days 2020/08/14 | 104065 | fonts/academicons/academicons.pdf 2020/08/14 | 17247 | fonts/academicons/academicons.sty 2020/08/14 | 6546 | fonts/academicons/academicons.tex @@ -172808,7 +172808,7 @@ 2021/05/07 | 921106 | install/macros/latex/contrib/l3backend.tds.zip 2021/05/06 | 793716 | install/macros/latex/contrib/l3build.tds.zip 2021/02/18 | 3978954 | install/macros/latex/contrib/l3experimental.tds.zip -2021/05/07 | 12869265 | install/macros/latex/contrib/l3kernel.tds.zip +2021/05/11 | 12883186 | install/macros/latex/contrib/l3kernel.tds.zip 2021/05/07 | 2204045 | install/macros/latex/contrib/l3packages.tds.zip 2015/03/29 | 573323 | install/macros/latex/contrib/lastpage.tds.zip 2009/09/02 | 556672 | install/macros/latex/contrib/layouts.tds.zip @@ -203589,108 +203589,108 @@ 2021/02/18 | 1628 | macros/latex/contrib/l3experimental/xgalley.ins 2021/02/18 | 285883 | macros/latex/contrib/l3experimental/xgalley.pdf 2021/02/18 | 3941588 | macros/latex/contrib/l3experimental.zip -2021/05/07 | 28625 | macros/latex/contrib/l3kernel/CHANGELOG.md -2021/05/07 | 70911 | macros/latex/contrib/l3kernel/expl3.dtx -2021/05/07 | 623531 | macros/latex/contrib/l3kernel/expl3.pdf -2021/05/07 | 1704394 | macros/latex/contrib/l3kernel/interface3.pdf -2021/05/07 | 1908 | macros/latex/contrib/l3kernel/interface3.tex -2021/05/07 | 127625 | macros/latex/contrib/l3kernel/l3basics.dtx -2021/05/07 | 15138 | macros/latex/contrib/l3kernel/l3bootstrap.dtx -2021/05/07 | 78772 | macros/latex/contrib/l3kernel/l3box.dtx -2021/05/07 | 69576 | macros/latex/contrib/l3kernel/l3candidates.dtx -2021/05/07 | 31068 | macros/latex/contrib/l3kernel/l3cctab.dtx -2021/05/07 | 77963 | macros/latex/contrib/l3kernel/l3clist.dtx -2021/05/07 | 85364 | macros/latex/contrib/l3kernel/l3coffins.dtx -2021/05/07 | 92548 | macros/latex/contrib/l3kernel/l3color.dtx -2021/05/07 | 43322 | macros/latex/contrib/l3kernel/l3debug.dtx -2021/05/07 | 30385 | macros/latex/contrib/l3kernel/l3deprecation.dtx -2021/05/07 | 155524 | macros/latex/contrib/l3kernel/l3doc.dtx -2021/05/07 | 2390 | macros/latex/contrib/l3kernel/l3docstrip.dtx -2021/05/07 | 151853 | macros/latex/contrib/l3kernel/l3docstrip.pdf -2021/05/07 | 107921 | macros/latex/contrib/l3kernel/l3expan.dtx -2021/05/07 | 134375 | macros/latex/contrib/l3kernel/l3file.dtx -2021/05/07 | 9436 | macros/latex/contrib/l3kernel/l3flag.dtx -2021/05/07 | 11808 | macros/latex/contrib/l3kernel/l3fparray.dtx -2021/05/07 | 7454 | macros/latex/contrib/l3kernel/l3fp-assign.dtx -2021/05/07 | 47131 | macros/latex/contrib/l3kernel/l3fp-aux.dtx -2021/05/07 | 84816 | macros/latex/contrib/l3kernel/l3fp-basics.dtx -2021/05/07 | 19644 | macros/latex/contrib/l3kernel/l3fp-convert.dtx -2021/05/07 | 70578 | macros/latex/contrib/l3kernel/l3fp.dtx -2021/05/07 | 49386 | macros/latex/contrib/l3kernel/l3fp-expo.dtx -2021/05/07 | 51059 | macros/latex/contrib/l3kernel/l3fp-extended.dtx -2021/05/07 | 23070 | macros/latex/contrib/l3kernel/l3fp-logic.dtx -2021/05/07 | 105522 | macros/latex/contrib/l3kernel/l3fp-parse.dtx -2021/05/07 | 25732 | macros/latex/contrib/l3kernel/l3fp-random.dtx -2021/05/07 | 18579 | macros/latex/contrib/l3kernel/l3fp-round.dtx -2021/05/07 | 12891 | macros/latex/contrib/l3kernel/l3fp-traps.dtx -2021/05/07 | 73845 | macros/latex/contrib/l3kernel/l3fp-trig.dtx -2021/05/07 | 6227 | macros/latex/contrib/l3kernel/l3.ins -2021/05/07 | 21010 | macros/latex/contrib/l3kernel/l3intarray.dtx -2021/05/07 | 89403 | macros/latex/contrib/l3kernel/l3int.dtx -2021/05/07 | 30555 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx -2021/05/07 | 115061 | macros/latex/contrib/l3kernel/l3keys.dtx -2021/05/07 | 2484 | macros/latex/contrib/l3kernel/l3legacy.dtx -2021/05/07 | 21168 | macros/latex/contrib/l3kernel/l3luatex.dtx -2021/05/07 | 79632 | macros/latex/contrib/l3kernel/l3msg.dtx -2021/05/07 | 79798 | macros/latex/contrib/l3kernel/l3names.dtx -2021/05/07 | 122713 | macros/latex/contrib/l3kernel/l3news01.pdf -2021/05/07 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex -2021/05/07 | 150672 | macros/latex/contrib/l3kernel/l3news02.pdf -2021/05/07 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex -2021/05/07 | 148707 | macros/latex/contrib/l3kernel/l3news03.pdf -2021/05/07 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex -2021/05/07 | 114588 | macros/latex/contrib/l3kernel/l3news04.pdf -2021/05/07 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex -2021/05/07 | 112485 | macros/latex/contrib/l3kernel/l3news05.pdf -2021/05/07 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex -2021/05/07 | 151572 | macros/latex/contrib/l3kernel/l3news06.pdf -2021/05/07 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex -2021/05/07 | 128312 | macros/latex/contrib/l3kernel/l3news07.pdf -2021/05/07 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex -2021/05/07 | 163405 | macros/latex/contrib/l3kernel/l3news08.pdf -2021/05/07 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex -2021/05/07 | 250134 | macros/latex/contrib/l3kernel/l3news09.pdf -2021/05/07 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex -2021/05/07 | 150289 | macros/latex/contrib/l3kernel/l3news10.pdf -2021/05/07 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex -2021/05/07 | 170069 | macros/latex/contrib/l3kernel/l3news11.pdf -2021/05/07 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex -2021/05/07 | 204992 | macros/latex/contrib/l3kernel/l3news12.pdf -2021/05/07 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex -2021/05/07 | 395934 | macros/latex/contrib/l3kernel/l3news.pdf -2021/05/07 | 4890 | macros/latex/contrib/l3kernel/l3news.tex -2021/05/07 | 14882 | macros/latex/contrib/l3kernel/l3pdf.dtx -2021/05/07 | 39757 | macros/latex/contrib/l3kernel/l3prefixes.csv -2021/05/07 | 79776 | macros/latex/contrib/l3kernel/l3prefixes.pdf -2021/05/07 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex -2021/05/07 | 65286 | macros/latex/contrib/l3kernel/l3prg.dtx -2021/05/07 | 51514 | macros/latex/contrib/l3kernel/l3prop.dtx -2021/05/07 | 35775 | macros/latex/contrib/l3kernel/l3quark.dtx -2021/05/07 | 281754 | macros/latex/contrib/l3kernel/l3regex.dtx -2021/05/07 | 90051 | macros/latex/contrib/l3kernel/l3seq.dtx -2021/05/07 | 76404 | macros/latex/contrib/l3kernel/l3skip.dtx -2021/05/07 | 40666 | macros/latex/contrib/l3kernel/l3sort.dtx -2021/05/07 | 114418 | macros/latex/contrib/l3kernel/l3str-convert.dtx -2021/05/07 | 73411 | macros/latex/contrib/l3kernel/l3str.dtx -2021/05/07 | 296251 | macros/latex/contrib/l3kernel/l3styleguide.pdf -2021/05/07 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex -2021/05/07 | 242931 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf -2021/05/07 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex -2021/05/07 | 31475 | macros/latex/contrib/l3kernel/l3sys.dtx -2021/05/07 | 231313 | macros/latex/contrib/l3kernel/l3term-glossary.pdf -2021/05/07 | 6450 | macros/latex/contrib/l3kernel/l3term-glossary.tex -2021/05/07 | 68545 | macros/latex/contrib/l3kernel/l3text-case.dtx -2021/05/07 | 36621 | macros/latex/contrib/l3kernel/l3text.dtx -2021/05/07 | 21643 | macros/latex/contrib/l3kernel/l3text-purify.dtx -2021/05/07 | 56489 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx -2021/05/07 | 142047 | macros/latex/contrib/l3kernel/l3tl.dtx -2021/05/07 | 124831 | macros/latex/contrib/l3kernel/l3token.dtx -2021/05/07 | 9216 | macros/latex/contrib/l3kernel/l3unicode.dtx -2021/05/07 | 2994 | macros/latex/contrib/l3kernel/README.md -2021/05/07 | 24213 | macros/latex/contrib/l3kernel/source3body.tex -2021/05/07 | 6766562 | macros/latex/contrib/l3kernel/source3.pdf -2021/05/07 | 2229 | macros/latex/contrib/l3kernel/source3.tex -2021/05/07 | 12630403 | macros/latex/contrib/l3kernel.zip +2021/05/11 | 29072 | macros/latex/contrib/l3kernel/CHANGELOG.md +2021/05/11 | 71065 | macros/latex/contrib/l3kernel/expl3.dtx +2021/05/11 | 623415 | macros/latex/contrib/l3kernel/expl3.pdf +2021/05/11 | 1707327 | macros/latex/contrib/l3kernel/interface3.pdf +2021/05/11 | 1908 | macros/latex/contrib/l3kernel/interface3.tex +2021/05/11 | 127625 | macros/latex/contrib/l3kernel/l3basics.dtx +2021/05/11 | 15138 | macros/latex/contrib/l3kernel/l3bootstrap.dtx +2021/05/11 | 78772 | macros/latex/contrib/l3kernel/l3box.dtx +2021/05/11 | 69576 | macros/latex/contrib/l3kernel/l3candidates.dtx +2021/05/11 | 32402 | macros/latex/contrib/l3kernel/l3cctab.dtx +2021/05/11 | 80940 | macros/latex/contrib/l3kernel/l3clist.dtx +2021/05/11 | 85364 | macros/latex/contrib/l3kernel/l3coffins.dtx +2021/05/11 | 92570 | macros/latex/contrib/l3kernel/l3color.dtx +2021/05/11 | 43322 | macros/latex/contrib/l3kernel/l3debug.dtx +2021/05/11 | 30385 | macros/latex/contrib/l3kernel/l3deprecation.dtx +2021/05/11 | 155524 | macros/latex/contrib/l3kernel/l3doc.dtx +2021/05/11 | 2390 | macros/latex/contrib/l3kernel/l3docstrip.dtx +2021/05/11 | 151697 | macros/latex/contrib/l3kernel/l3docstrip.pdf +2021/05/11 | 107921 | macros/latex/contrib/l3kernel/l3expan.dtx +2021/05/11 | 134375 | macros/latex/contrib/l3kernel/l3file.dtx +2021/05/11 | 9436 | macros/latex/contrib/l3kernel/l3flag.dtx +2021/05/11 | 11808 | macros/latex/contrib/l3kernel/l3fparray.dtx +2021/05/11 | 7454 | macros/latex/contrib/l3kernel/l3fp-assign.dtx +2021/05/11 | 47131 | macros/latex/contrib/l3kernel/l3fp-aux.dtx +2021/05/11 | 84816 | macros/latex/contrib/l3kernel/l3fp-basics.dtx +2021/05/11 | 19644 | macros/latex/contrib/l3kernel/l3fp-convert.dtx +2021/05/11 | 70578 | macros/latex/contrib/l3kernel/l3fp.dtx +2021/05/11 | 49386 | macros/latex/contrib/l3kernel/l3fp-expo.dtx +2021/05/11 | 51059 | macros/latex/contrib/l3kernel/l3fp-extended.dtx +2021/05/11 | 23070 | macros/latex/contrib/l3kernel/l3fp-logic.dtx +2021/05/11 | 105522 | macros/latex/contrib/l3kernel/l3fp-parse.dtx +2021/05/11 | 25732 | macros/latex/contrib/l3kernel/l3fp-random.dtx +2021/05/11 | 18579 | macros/latex/contrib/l3kernel/l3fp-round.dtx +2021/05/11 | 12891 | macros/latex/contrib/l3kernel/l3fp-traps.dtx +2021/05/11 | 73845 | macros/latex/contrib/l3kernel/l3fp-trig.dtx +2021/05/11 | 6227 | macros/latex/contrib/l3kernel/l3.ins +2021/05/11 | 21010 | macros/latex/contrib/l3kernel/l3intarray.dtx +2021/05/11 | 89403 | macros/latex/contrib/l3kernel/l3int.dtx +2021/05/11 | 30555 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx +2021/05/11 | 115297 | macros/latex/contrib/l3kernel/l3keys.dtx +2021/05/11 | 2484 | macros/latex/contrib/l3kernel/l3legacy.dtx +2021/05/11 | 21168 | macros/latex/contrib/l3kernel/l3luatex.dtx +2021/05/11 | 79672 | macros/latex/contrib/l3kernel/l3msg.dtx +2021/05/11 | 79798 | macros/latex/contrib/l3kernel/l3names.dtx +2021/05/11 | 122713 | macros/latex/contrib/l3kernel/l3news01.pdf +2021/05/11 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex +2021/05/11 | 150672 | macros/latex/contrib/l3kernel/l3news02.pdf +2021/05/11 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex +2021/05/11 | 148707 | macros/latex/contrib/l3kernel/l3news03.pdf +2021/05/11 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex +2021/05/11 | 114588 | macros/latex/contrib/l3kernel/l3news04.pdf +2021/05/11 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex +2021/05/11 | 112485 | macros/latex/contrib/l3kernel/l3news05.pdf +2021/05/11 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex +2021/05/11 | 151572 | macros/latex/contrib/l3kernel/l3news06.pdf +2021/05/11 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex +2021/05/11 | 128312 | macros/latex/contrib/l3kernel/l3news07.pdf +2021/05/11 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex +2021/05/11 | 163405 | macros/latex/contrib/l3kernel/l3news08.pdf +2021/05/11 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex +2021/05/11 | 250134 | macros/latex/contrib/l3kernel/l3news09.pdf +2021/05/11 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex +2021/05/11 | 150289 | macros/latex/contrib/l3kernel/l3news10.pdf +2021/05/11 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex +2021/05/11 | 170069 | macros/latex/contrib/l3kernel/l3news11.pdf +2021/05/11 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex +2021/05/11 | 204992 | macros/latex/contrib/l3kernel/l3news12.pdf +2021/05/11 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex +2021/05/11 | 395934 | macros/latex/contrib/l3kernel/l3news.pdf +2021/05/11 | 4890 | macros/latex/contrib/l3kernel/l3news.tex +2021/05/11 | 14882 | macros/latex/contrib/l3kernel/l3pdf.dtx +2021/05/11 | 39757 | macros/latex/contrib/l3kernel/l3prefixes.csv +2021/05/11 | 79776 | macros/latex/contrib/l3kernel/l3prefixes.pdf +2021/05/11 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex +2021/05/11 | 65589 | macros/latex/contrib/l3kernel/l3prg.dtx +2021/05/11 | 51514 | macros/latex/contrib/l3kernel/l3prop.dtx +2021/05/11 | 35775 | macros/latex/contrib/l3kernel/l3quark.dtx +2021/05/11 | 282200 | macros/latex/contrib/l3kernel/l3regex.dtx +2021/05/11 | 90051 | macros/latex/contrib/l3kernel/l3seq.dtx +2021/05/11 | 76404 | macros/latex/contrib/l3kernel/l3skip.dtx +2021/05/11 | 40666 | macros/latex/contrib/l3kernel/l3sort.dtx +2021/05/11 | 114418 | macros/latex/contrib/l3kernel/l3str-convert.dtx +2021/05/11 | 73411 | macros/latex/contrib/l3kernel/l3str.dtx +2021/05/11 | 296129 | macros/latex/contrib/l3kernel/l3styleguide.pdf +2021/05/11 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex +2021/05/11 | 242807 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf +2021/05/11 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex +2021/05/11 | 31475 | macros/latex/contrib/l3kernel/l3sys.dtx +2021/05/11 | 231193 | macros/latex/contrib/l3kernel/l3term-glossary.pdf +2021/05/11 | 6450 | macros/latex/contrib/l3kernel/l3term-glossary.tex +2021/05/11 | 68545 | macros/latex/contrib/l3kernel/l3text-case.dtx +2021/05/11 | 36621 | macros/latex/contrib/l3kernel/l3text.dtx +2021/05/11 | 21643 | macros/latex/contrib/l3kernel/l3text-purify.dtx +2021/05/11 | 56489 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx +2021/05/11 | 142047 | macros/latex/contrib/l3kernel/l3tl.dtx +2021/05/11 | 125357 | macros/latex/contrib/l3kernel/l3token.dtx +2021/05/11 | 9216 | macros/latex/contrib/l3kernel/l3unicode.dtx +2021/05/11 | 2994 | macros/latex/contrib/l3kernel/README.md +2021/05/11 | 24213 | macros/latex/contrib/l3kernel/source3body.tex +2021/05/11 | 6780088 | macros/latex/contrib/l3kernel/source3.pdf +2021/05/11 | 2229 | macros/latex/contrib/l3kernel/source3.tex +2021/05/11 | 12643939 | macros/latex/contrib/l3kernel.zip 2021/05/07 | 4435 | macros/latex/contrib/l3packages/CHANGELOG.md 2021/05/07 | 1444 | macros/latex/contrib/l3packages/l3keys2e-demo.tex 2021/05/07 | 11613 | macros/latex/contrib/l3packages/l3keys2e.dtx @@ -261447,8 +261447,148 @@ 2020/11/06 | 4426 | support/tex4ebook/tex4ebook.sty 2020/11/06 | 2677 | support/tex4ebook/tex4ebook-tidyconf.conf 2020/11/06 | 113078 | support/tex4ebook.zip -2017/04/17 | 463 | support/TeX4ht/README -2008/06/16 | 13958556 | support/TeX4ht/tex4ht-all.zip +2020/08/24 | 1270 | support/TeX4ht/doc/bugfixes.html +2020/05/31 | 53 | support/TeX4ht/doc/index.html +2020/05/31 | 2660 | support/TeX4ht/doc/jhsample.tex +2020/08/24 | 1166 | support/TeX4ht/doc/Makefile +2020/08/24 | 4212 | support/TeX4ht/doc/mml.html +2020/08/24 | 14336 | support/TeX4ht/doc/mml-issues.html +2020/05/31 | 889 | support/TeX4ht/doc/mn0x.png +2020/08/24 | 1951 | support/TeX4ht/doc/mn10.html +2020/08/24 | 49463 | support/TeX4ht/doc/mn11.html +2020/08/24 | 6356 | support/TeX4ht/doc/mn12.html +2020/08/24 | 1880 | support/TeX4ht/doc/mn13.html +2020/08/24 | 17639 | support/TeX4ht/doc/mn14.html +2020/08/24 | 5924 | support/TeX4ht/doc/mn15.html +2020/08/24 | 6387 | support/TeX4ht/doc/mn16.html +2020/08/24 | 3820 | support/TeX4ht/doc/mn17.html +2020/08/24 | 1343 | support/TeX4ht/doc/mn18.html +2021/05/02 | 5542 | support/TeX4ht/doc/mn19.html +2020/05/31 | 336 | support/TeX4ht/doc/mn1x.png +2020/08/24 | 5357 | support/TeX4ht/doc/mn20.html +2020/08/24 | 5304 | support/TeX4ht/doc/mn21.html +2020/08/24 | 9417 | support/TeX4ht/doc/mn22.html +2020/08/24 | 2791 | support/TeX4ht/doc/mn24.html +2020/08/24 | 2761 | support/TeX4ht/doc/mn25.html +2020/08/24 | 2270 | support/TeX4ht/doc/mn27.html +2020/08/24 | 3018 | support/TeX4ht/doc/mn29.html +2020/08/24 | 8448 | support/TeX4ht/doc/mn2.html +2020/05/31 | 487 | support/TeX4ht/doc/mn2x.png +2020/08/24 | 1990 | support/TeX4ht/doc/mn30.html +2020/08/24 | 5060 | support/TeX4ht/doc/mn32.html +2020/08/24 | 1262 | support/TeX4ht/doc/mn33.html +2020/08/24 | 9956 | support/TeX4ht/doc/mn34.html +2020/08/24 | 3716 | support/TeX4ht/doc/mn35.html +2020/08/24 | 4338 | support/TeX4ht/doc/mn36.html +2020/08/24 | 11947 | support/TeX4ht/doc/mn37.html +2020/08/24 | 5800 | support/TeX4ht/doc/mn38.html +2020/08/24 | 19564 | support/TeX4ht/doc/mn39.html +2020/08/24 | 29851 | support/TeX4ht/doc/mn3.html +2020/05/31 | 278 | support/TeX4ht/doc/mn3x.png +2020/08/24 | 3837 | support/TeX4ht/doc/mn40.html +2020/08/24 | 1741 | support/TeX4ht/doc/mn41.html +2020/08/24 | 1402 | support/TeX4ht/doc/mn42.html +2020/08/24 | 3278 | support/TeX4ht/doc/mn44.html +2020/08/24 | 1577 | support/TeX4ht/doc/mn45.html +2020/08/24 | 2159 | support/TeX4ht/doc/mn46.html +2020/08/24 | 2270 | support/TeX4ht/doc/mn47.html +2020/08/24 | 1382 | support/TeX4ht/doc/mn48.html +2020/08/24 | 1495 | support/TeX4ht/doc/mn49.html +2020/08/24 | 1284 | support/TeX4ht/doc/mn4.html +2020/05/31 | 3866 | support/TeX4ht/doc/mn4x.png +2020/08/24 | 1239 | support/TeX4ht/doc/mn50.html +2020/08/24 | 1905 | support/TeX4ht/doc/mn51.html +2020/08/24 | 1251 | support/TeX4ht/doc/mn52.html +2020/08/24 | 14380 | support/TeX4ht/doc/mn53.html +2020/08/24 | 5187 | support/TeX4ht/doc/mn54.html +2020/08/24 | 3931 | support/TeX4ht/doc/mn55.html +2020/08/24 | 889 | support/TeX4ht/doc/mn56.html +2020/08/24 | 29782 | support/TeX4ht/doc/mn5.html +2020/05/31 | 271 | support/TeX4ht/doc/mn5x.png +2020/05/31 | 227 | support/TeX4ht/doc/mn6x.png +2020/08/24 | 2956 | support/TeX4ht/doc/mn-bug.html +2020/08/24 | 36484 | support/TeX4ht/doc/mn-commands.html +2021/05/02 | 3565 | support/TeX4ht/doc/mn.css +2020/08/24 | 28437 | support/TeX4ht/doc/mn-htf.html +2020/08/24 | 24176 | support/TeX4ht/doc/mn.html +2020/08/24 | 81037 | support/TeX4ht/doc/mn-index.html +2020/08/24 | 13964 | support/TeX4ht/doc/mn-mswin.html +2020/08/24 | 2524 | support/TeX4ht/doc/mn-port.html +2020/08/24 | 16342 | support/TeX4ht/doc/mn-upgrade.html +2021/05/03 | 629 | support/TeX4ht/doc/README +2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex +2021/05/11 | 262 | support/TeX4ht/README +2021/05/03 | 154079 | support/TeX4ht/source/ChangeLog +2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua +2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex +2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex +2021/05/03 | 1569 | support/TeX4ht/source/common.tex +2021/05/06 | 15 | support/TeX4ht/source/extra-bin/vcss +2021/05/06 | 15 | support/TeX4ht/source/extra-bin/xmllint +2021/05/03 | 26697 | support/TeX4ht/source/Makefile +2021/05/03 | 7704 | support/TeX4ht/source/mktex4ht-cnf.tex +2021/05/03 | 1121 | support/TeX4ht/source/README +2021/05/03 | 1744 | support/TeX4ht/source/t1fontmake.lua +2021/05/03 | 297 | support/TeX4ht/source/t1fontsample.tex +2021/05/09 | 1091448 | support/TeX4ht/source/tex4ht-4ht.tex +2021/05/03 | 7127 | support/TeX4ht/source/tex4ht-auto-script.tex +2021/05/03 | 1554 | support/TeX4ht/source/tex4ht-bibtex2.tex +2021/05/03 | 21247 | support/TeX4ht/source/tex4ht-cond4ht.tex +2021/05/03 | 807 | support/TeX4ht/source/tex4ht-cpright.tex +2021/05/03 | 418880 | support/TeX4ht/source/tex4ht-c.tex +2021/05/03 | 420 | support/TeX4ht/source/tex4ht-dir.m4 +2021/05/03 | 100475 | support/TeX4ht/source/tex4ht-docbook.tex +2021/05/03 | 12368 | support/TeX4ht/source/tex4ht-docbook-xtpipes.tex +2021/05/03 | 47591 | support/TeX4ht/source/tex4ht-env.tex +2021/05/03 | 3704153 | support/TeX4ht/source/tex4ht-fonts-4hf.tex +2021/05/03 | 788279 | support/TeX4ht/source/tex4ht-fonts-cjk.tex +2021/05/03 | 1319250 | support/TeX4ht/source/tex4ht-fonts-cjk-utf8.tex +2021/05/03 | 275687 | support/TeX4ht/source/tex4ht-fonts-ebgaramond.tex +2021/05/03 | 104485 | support/TeX4ht/source/tex4ht-fonts-fourier.tex +2021/05/03 | 493710 | support/TeX4ht/source/tex4ht-fonts-libertine.tex +2021/05/03 | 696568 | support/TeX4ht/source/tex4ht-fonts-modern.tex +2021/05/03 | 297720 | support/TeX4ht/source/tex4ht-fonts-newtx.tex +2021/05/03 | 1528997 | support/TeX4ht/source/tex4ht-fonts-noncjk.tex +2021/05/03 | 207424 | support/TeX4ht/source/tex4ht-fonts-spectral.tex +2021/05/03 | 14218 | support/TeX4ht/source/tex4ht-htcmd.tex +2021/05/03 | 70683 | support/TeX4ht/source/tex4ht-html0.tex +2021/05/03 | 164748 | support/TeX4ht/source/tex4ht-html32.tex +2021/05/06 | 607413 | support/TeX4ht/source/tex4ht-html4.tex +2021/05/03 | 10941 | support/TeX4ht/source/tex4ht-html5.tex +2021/05/03 | 648237 | support/TeX4ht/source/tex4ht-html-speech.tex +2021/05/03 | 59483 | support/TeX4ht/source/tex4ht-html-speech-xtpipes.tex +2021/05/03 | 8028 | support/TeX4ht/source/tex4ht-info-html4.tex +2021/05/03 | 3657 | support/TeX4ht/source/tex4ht-info-javahelp.tex +2021/05/03 | 3741 | support/TeX4ht/source/tex4ht-info-mml.tex +2021/05/03 | 2526 | support/TeX4ht/source/tex4ht-info-ooffice.tex +2021/05/03 | 4137 | support/TeX4ht/source/tex4ht-info-svg.tex +2021/05/03 | 104934 | support/TeX4ht/source/tex4ht-info.tex +2021/05/03 | 3414 | support/TeX4ht/source/tex4ht-jats.tex +2021/05/03 | 42210 | support/TeX4ht/source/tex4ht-javahelp.tex +2021/05/03 | 15087 | support/TeX4ht/source/tex4ht-javahelp-xtpipes.tex +2021/05/03 | 22748 | support/TeX4ht/source/tex4ht-jsmath.tex +2021/05/03 | 104631 | support/TeX4ht/source/tex4ht-jsml.tex +2021/05/03 | 90707 | support/TeX4ht/source/tex4ht-jsml-xtpipes.tex +2021/05/03 | 4796 | support/TeX4ht/source/tex4ht-mathjax.tex +2021/05/03 | 102444 | support/TeX4ht/source/tex4ht-mathltx.tex +2021/05/03 | 141707 | support/TeX4ht/source/tex4ht-mathml.tex +2021/05/03 | 8860 | support/TeX4ht/source/tex4ht-mathplayer.tex +2021/05/03 | 48971 | support/TeX4ht/source/tex4ht-mkht.tex +2021/05/03 | 26652 | support/TeX4ht/source/tex4ht-moz.tex +2021/05/03 | 329369 | support/TeX4ht/source/tex4ht-ooffice.tex +2021/05/03 | 11161 | support/TeX4ht/source/tex4ht-ooimpress.tex +2021/05/03 | 45918 | support/TeX4ht/source/tex4ht-oo-xtpipes.tex +2021/05/03 | 13590 | support/TeX4ht/source/tex4ht-options.tex +2021/05/03 | 289315 | support/TeX4ht/source/tex4ht-sty.tex +2021/05/03 | 7226 | support/TeX4ht/source/tex4ht-svg.tex +2021/05/03 | 106563 | support/TeX4ht/source/tex4ht-t4ht.tex +2021/05/03 | 44160 | support/TeX4ht/source/tex4ht-tei.tex +2021/05/03 | 30421 | support/TeX4ht/source/tex4ht-unicode.tex +2021/05/03 | 14570 | support/TeX4ht/source/tex4ht-word.tex +2021/05/03 | 15265 | support/TeX4ht/source/tex4ht-xhtml-xtpipes.tex +2021/05/03 | 16354 | support/TeX4ht/source/tex4ht-xhtmml-xtpipes.tex +2021/05/03 | 13340 | support/TeX4ht/source/wripro.tex +2021/05/03 | 109102 | support/TeX4ht/source/xtpipes.tex 1988/10/16 | 7680 | support/texcalc/TEXCALC.INS 1988/10/19 | 3060 | support/texcalc/TEXCALC.MSG 1988/10/16 | 3153 | support/texcalc/TEXCALC.SPS @@ -266858,7 +266998,7 @@ 2020/09/08 | 270912 | systems/texlive/tlnet/archive/collectbox.doc.r56291.tar.xz 2020/09/08 | 2876 | systems/texlive/tlnet/archive/collectbox.r56291.tar.xz 2020/09/08 | 8064 | systems/texlive/tlnet/archive/collectbox.source.r56291.tar.xz -2020/10/06 | 632 | systems/texlive/tlnet/archive/collection-basic.r56569.tar.xz +2021/05/11 | 624 | systems/texlive/tlnet/archive/collection-basic.r59159.tar.xz 2021/03/17 | 1228 | systems/texlive/tlnet/archive/collection-bibtexextra.r58437.tar.xz 2020/09/16 | 944 | systems/texlive/tlnet/archive/collection-binextra.r56352.tar.xz 2020/03/04 | 596 | systems/texlive/tlnet/archive/collection-context.r54074.tar.xz @@ -268685,8 +268825,8 @@ 2019/02/28 | 200188 | systems/texlive/tlnet/archive/euro.doc.r22191.tar.xz 2020/11/02 | 452684 | systems/texlive/tlnet/archive/europasscv.doc.r56829.tar.xz 2020/11/02 | 30320 | systems/texlive/tlnet/archive/europasscv.r56829.tar.xz -2021/02/07 | 985760 | systems/texlive/tlnet/archive/europecv.doc.r57641.tar.xz -2021/02/07 | 38444 | systems/texlive/tlnet/archive/europecv.r57641.tar.xz +2021/05/11 | 993116 | systems/texlive/tlnet/archive/europecv.doc.r59162.tar.xz +2021/05/11 | 38472 | systems/texlive/tlnet/archive/europecv.r59162.tar.xz 2019/02/28 | 2564 | systems/texlive/tlnet/archive/euro.r22191.tar.xz 2019/02/28 | 14508 | systems/texlive/tlnet/archive/euro.source.r22191.tar.xz 2019/02/28 | 277732 | systems/texlive/tlnet/archive/eurosym.doc.r17265.tar.xz @@ -275745,8 +275885,6 @@ 2020/03/24 | 280 | systems/texlive/tlnet/archive/texlive-cz.r54496.tar.xz 2021/03/23 | 1554012 | systems/texlive/tlnet/archive/texlive-de.doc.r58648.tar.xz 2021/03/23 | 272 | systems/texlive/tlnet/archive/texlive-de.r58648.tar.xz -2021/05/10 | 174948 | systems/texlive/tlnet/archive/texlive-docindex.doc.r59142.tar.xz -2021/05/10 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r59142.tar.xz 2021/05/08 | 1939680 | systems/texlive/tlnet/archive/texlive-en.doc.r59113.tar.xz 2021/05/08 | 276 | systems/texlive/tlnet/archive/texlive-en.r59113.tar.xz 2021/03/09 | 3667820 | systems/texlive/tlnet/archive/texlive-es.doc.r58221.tar.xz @@ -275757,13 +275895,13 @@ 2021/03/07 | 342980 | systems/texlive/tlnet/archive/texlive.infra.amd64-freebsd.r58165.tar.xz 2021/05/08 | 765996 | systems/texlive/tlnet/archive/texlive.infra.amd64-netbsd.r58981.tar.xz 2021/02/28 | 159560 | systems/texlive/tlnet/archive/texlive.infra.armhf-linux.r57956.tar.xz -2021/05/08 | 207764 | systems/texlive/tlnet/archive/texlive.infra.doc.r59127.tar.xz +2021/05/11 | 207844 | systems/texlive/tlnet/archive/texlive.infra.doc.r59154.tar.xz 2021/02/28 | 169248 | systems/texlive/tlnet/archive/texlive.infra.i386-cygwin.r57940.tar.xz 2021/03/07 | 310740 | systems/texlive/tlnet/archive/texlive.infra.i386-freebsd.r58166.tar.xz 2021/02/26 | 155748 | systems/texlive/tlnet/archive/texlive.infra.i386-linux.r57933.tar.xz 2021/05/08 | 734672 | systems/texlive/tlnet/archive/texlive.infra.i386-netbsd.r58981.tar.xz 2021/03/08 | 306488 | systems/texlive/tlnet/archive/texlive.infra.i386-solaris.r58212.tar.xz -2021/05/08 | 228784 | systems/texlive/tlnet/archive/texlive.infra.r59127.tar.xz +2021/05/11 | 229520 | systems/texlive/tlnet/archive/texlive.infra.r59154.tar.xz 2021/05/08 | 308096 | systems/texlive/tlnet/archive/texlive.infra.universal-darwin.r58978.tar.xz 2021/05/08 | 2759116 | systems/texlive/tlnet/archive/texlive.infra.win32.r59060.tar.xz 2021/02/28 | 180056 | systems/texlive/tlnet/archive/texlive.infra.x86_64-cygwin.r57940.tar.xz @@ -275802,7 +275940,7 @@ 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz -2021/05/10 | 223052 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59153.tar.xz +2021/05/11 | 396936 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59159.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz 2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz @@ -275826,7 +275964,7 @@ 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz -2021/05/10 | 107972 | systems/texlive/tlnet/archive/texlive-scripts.r59153.tar.xz +2021/05/11 | 107976 | systems/texlive/tlnet/archive/texlive-scripts.r59159.tar.xz 2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz 2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz @@ -276295,7 +276433,7 @@ 2019/02/28 | 348 | systems/texlive/tlnet/archive/tlcockpit.x86_64-linuxmusl.r47036.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tlcockpit.x86_64-linux.r46798.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/tlcockpit.x86_64-solaris.r46798.tar.xz -2021/04/23 | 8007124 | systems/texlive/tlnet/archive/tlgs.win32.r58969.tar.xz +2021/05/11 | 7999236 | systems/texlive/tlnet/archive/tlgs.win32.r59157.tar.xz 2021/05/09 | 151392 | systems/texlive/tlnet/archive/tlmgrbasics.doc.r59134.tar.xz 2021/05/09 | 424 | systems/texlive/tlnet/archive/tlmgrbasics.r59134.tar.xz 2021/05/07 | 444724 | systems/texlive/tlnet/archive/tlmgr-intro-zh-cn.doc.r59100.tar.xz @@ -277281,11 +277419,11 @@ 2021/03/16 | 1970544 | systems/texlive/tlnet/archive/xindy.x86_64-cygwin.r58387.tar.xz 2019/02/28 | 1845252 | systems/texlive/tlnet/archive/xindy.x86_64-darwinlegacy.r43952.tar.xz 2021/03/11 | 2248804 | systems/texlive/tlnet/archive/xindy.x86_64-linux.r58249.tar.xz -2021/05/06 | 2108880 | systems/texlive/tlnet/archive/xint.doc.r59089.tar.xz -2021/05/06 | 79376 | systems/texlive/tlnet/archive/xint.r59089.tar.xz +2021/05/11 | 2115492 | systems/texlive/tlnet/archive/xint.doc.r59161.tar.xz +2021/05/11 | 79036 | systems/texlive/tlnet/archive/xint.r59161.tar.xz 2021/05/08 | 1732 | systems/texlive/tlnet/archive/xintsession.doc.r59120.tar.xz 2021/05/08 | 5108 | systems/texlive/tlnet/archive/xintsession.r59120.tar.xz -2021/05/06 | 370820 | systems/texlive/tlnet/archive/xint.source.r59089.tar.xz +2021/05/11 | 374544 | systems/texlive/tlnet/archive/xint.source.r59161.tar.xz 2020/07/03 | 6060 | systems/texlive/tlnet/archive/xits.doc.r55730.tar.xz 2020/07/03 | 541240 | systems/texlive/tlnet/archive/xits.r55730.tar.xz 2020/03/24 | 218124 | systems/texlive/tlnet/archive/xkcdcolors.doc.r54512.tar.xz @@ -277526,16 +277664,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2021/05/02 | 105152 | systems/texlive/tlnet/install-tl -2021/05/10 | 6811003 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/05/10 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/05/10 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/05/11 | 6811296 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/05/11 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/05/11 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2021/05/10 | 20809742 | systems/texlive/tlnet/install-tl-windows.exe -2021/05/10 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/05/10 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/05/10 | 25582695 | systems/texlive/tlnet/install-tl.zip -2021/05/10 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/05/10 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/05/11 | 20808767 | systems/texlive/tlnet/install-tl-windows.exe +2021/05/11 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/05/11 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/05/11 | 25582713 | systems/texlive/tlnet/install-tl.zip +2021/05/11 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/05/11 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2021/04/01 | 1229 | systems/texlive/tlnet/README.md 2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021 2021/03/15 | 6571 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -277545,7 +277683,7 @@ 2021/03/15 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2021/05/07 | 49598 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2021/05/09 | 6723 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2021/05/10 | 6798 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -277587,12 +277725,12 @@ 2021/05/02 | 20361 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/02/20 | 5400 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2020/09/22 | 27563 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2021/05/10 | 17221527 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2021/05/10 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/05/11 | 17221192 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/05/11 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/05/06 | 86490 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2021/05/10 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/05/10 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/05/10 | 2303740 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/05/11 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/05/11 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/05/11 | 2303136 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/05/06 | 58771 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2021/03/17 | 42077 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2020/05/11 | 15010 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -280311,12 +280449,12 @@ 2021/05/01 | 89718 | systems/texlive/tlnet/tlpkg/translations/vi.po 2021/05/01 | 62686 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po 2021/05/01 | 52617 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po -2021/05/08 | 4035368 | systems/texlive/tlnet/update-tlmgr-r59127.exe -2021/05/08 | 154 | systems/texlive/tlnet/update-tlmgr-r59127.exe.sha512 -2021/05/08 | 455 | systems/texlive/tlnet/update-tlmgr-r59127.exe.sha512.asc -2021/05/08 | 10024078 | systems/texlive/tlnet/update-tlmgr-r59127.sh -2021/05/08 | 153 | systems/texlive/tlnet/update-tlmgr-r59127.sh.sha512 -2021/05/08 | 455 | systems/texlive/tlnet/update-tlmgr-r59127.sh.sha512.asc +2021/05/11 | 4036304 | systems/texlive/tlnet/update-tlmgr-r59154.exe +2021/05/11 | 154 | systems/texlive/tlnet/update-tlmgr-r59154.exe.sha512 +2021/05/11 | 455 | systems/texlive/tlnet/update-tlmgr-r59154.exe.sha512.asc +2021/05/11 | 10023678 | systems/texlive/tlnet/update-tlmgr-r59154.sh +2021/05/11 | 153 | systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512 +2021/05/11 | 455 | systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512.asc 2020/11/23 | 215 | systems/unix/tex-fpc/ch.ch/mkchatty 2020/11/17 | 215 | systems/unix/tex-fpc/ch.ch/mkdebug 2020/11/17 | 206 | systems/unix/tex-fpc/ch.ch/mkini @@ -282280,7 +282418,7 @@ 2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma 2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma 2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma -2021/05/10 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/05/11 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma 2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma 2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma 2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma @@ -283481,9 +283619,9 @@ 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma 2021/03/15 | 39247 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma 2021/03/15 | 43386 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2021/05/10 | 209345 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/05/10 | 1270662 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/05/10 | 1185783 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/05/11 | 209357 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/05/11 | 1268927 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/05/11 | 1186057 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2021/03/15 | 13447 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma 2021/03/15 | 14320 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma 2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma @@ -283644,190 +283782,190 @@ 2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma 2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma 2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma -2021/05/10 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/05/10 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/05/10 | 56458 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/05/10 | 968695 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/05/10 | 1078876 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/05/10 | 29054 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/05/10 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/05/10 | 29869 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/05/10 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/05/10 | 49973 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2021/05/10 | 57599 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/05/10 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/05/10 | 94738 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/05/10 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/05/10 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/05/10 | 27181 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/05/10 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/05/10 | 330234 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/05/10 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/05/10 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/05/10 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/05/10 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/05/10 | 56719 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/05/10 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma -2021/05/10 | 239478 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/05/10 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/05/10 | 179378 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/05/10 | 195665 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/05/10 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/05/10 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/05/10 | 21129 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/05/10 | 23291 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/05/10 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/05/10 | 45650 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/05/10 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/05/10 | 282106 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/05/10 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/05/10 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2021/05/10 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/05/10 | 116929 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/05/10 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/05/10 | 1281102 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/05/10 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/05/10 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2021/05/10 | 99606 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/05/10 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/05/10 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/05/10 | 25156 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/05/10 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/05/10 | 55823 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/05/10 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/05/10 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/05/10 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/05/10 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/05/10 | 77857 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/05/10 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/05/10 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/05/10 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/05/10 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/05/10 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2021/05/10 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/05/10 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/05/10 | 112250 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/05/10 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/05/10 | 72859 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/05/10 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/05/10 | 115468 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/05/10 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/05/10 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/05/10 | 484054 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/05/10 | 567629 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/05/10 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/05/10 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2021/05/10 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/05/10 | 109274 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/05/10 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/05/10 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/05/10 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/05/10 | 30038 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/05/10 | 625283 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/05/10 | 680050 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/05/10 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/05/10 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/05/10 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/05/10 | 511635 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/05/10 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2021/05/10 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/05/10 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/05/10 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/05/10 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/05/10 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/05/10 | 27363 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/05/10 | 31594 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/05/10 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/05/10 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/05/10 | 195567 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/05/10 | 214103 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/05/10 | 250213 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/05/10 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/05/10 | 97134 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/05/10 | 101765 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/05/10 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/05/10 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/05/10 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2021/05/10 | 136426 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/05/10 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/05/10 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/05/10 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/05/10 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/05/10 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/05/10 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/05/10 | 31191 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/05/10 | 35063 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/05/10 | 38063 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/05/10 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/05/10 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/05/10 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/05/10 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/05/10 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/05/10 | 193716 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2021/05/10 | 211053 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/05/10 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/05/10 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/05/10 | 748363 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/05/10 | 816071 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/05/10 | 198132 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/05/10 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/05/10 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/05/10 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/05/10 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/05/10 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/05/10 | 1171732 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/05/10 | 1307722 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/05/10 | 20122 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/05/10 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/05/10 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/05/10 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/05/10 | 64018 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/05/10 | 72150 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/05/10 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/05/10 | 51979 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/05/10 | 1295415 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/05/10 | 1424810 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/05/10 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/05/10 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/05/10 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/05/10 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/05/10 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/05/10 | 27275 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/05/10 | 16111 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/05/10 | 18098 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/05/10 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/05/10 | 70111 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2021/05/10 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/05/10 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/05/10 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/05/10 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/05/10 | 98519 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/05/10 | 104624 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2021/05/10 | 2499402 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/05/10 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/05/10 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/05/10 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/05/10 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/05/10 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/05/10 | 27198 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/05/10 | 33153 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/05/10 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/05/10 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/05/10 | 311192 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/05/10 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/05/10 | 55564 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/05/10 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/05/10 | 583629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/05/10 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/05/10 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/05/10 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/05/10 | 209338 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/05/10 | 1269821 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/05/10 | 1186433 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/05/10 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/05/10 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/05/11 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/05/11 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/05/11 | 56456 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/05/11 | 968698 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/05/11 | 1078877 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/05/11 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/05/11 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/05/11 | 29869 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/05/11 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/05/11 | 49972 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/05/11 | 57599 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/05/11 | 84772 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/05/11 | 94736 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/05/11 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/05/11 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/05/11 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/05/11 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/05/11 | 330233 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/05/11 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/05/11 | 32743 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/05/11 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/05/11 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/05/11 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/05/11 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma +2021/05/11 | 239479 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/05/11 | 261961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/05/11 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/05/11 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/05/11 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/05/11 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/05/11 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/05/11 | 23289 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/05/11 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/05/11 | 45649 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/05/11 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/05/11 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/05/11 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/05/11 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/05/11 | 45277 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/05/11 | 116929 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/05/11 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/05/11 | 1281104 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/05/11 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/05/11 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/05/11 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/05/11 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/05/11 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/05/11 | 25154 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/05/11 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/05/11 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/05/11 | 62801 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/05/11 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/05/11 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/05/11 | 73180 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/05/11 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/05/11 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/05/11 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/05/11 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/05/11 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/05/11 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/05/11 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/05/11 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/05/11 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/05/11 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/05/11 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/05/11 | 96148 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/05/11 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/05/11 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/05/11 | 42628 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/05/11 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/05/11 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/05/11 | 147139 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/05/11 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/05/11 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/05/11 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/05/11 | 16328 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/05/11 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/05/11 | 28120 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/05/11 | 30036 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/05/11 | 625281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/05/11 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/05/11 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/05/11 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/05/11 | 475936 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/05/11 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/05/11 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/05/11 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/05/11 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/05/11 | 2009491 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/05/11 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/05/11 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/05/11 | 27361 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/05/11 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/05/11 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/05/11 | 8775 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/05/11 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/05/11 | 214104 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/05/11 | 250210 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/05/11 | 283977 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/05/11 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/05/11 | 101762 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/05/11 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/05/11 | 67929 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/05/11 | 124971 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/05/11 | 136428 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/05/11 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/05/11 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/05/11 | 199701 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/05/11 | 180048 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/05/11 | 67450 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/05/11 | 77486 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/05/11 | 31191 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/05/11 | 35063 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/05/11 | 38064 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/05/11 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/05/11 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/05/11 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/05/11 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/05/11 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/05/11 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/05/11 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/05/11 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/05/11 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/05/11 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/05/11 | 816072 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/05/11 | 198131 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/05/11 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/05/11 | 208182 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/05/11 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/05/11 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/05/11 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/05/11 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/05/11 | 1307720 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/05/11 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/05/11 | 23880 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/05/11 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/05/11 | 37241 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/05/11 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/05/11 | 72151 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/05/11 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/05/11 | 51979 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/05/11 | 1295415 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/05/11 | 1424812 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/05/11 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/05/11 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/05/11 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/05/11 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/05/11 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/05/11 | 27275 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/05/11 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/05/11 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/05/11 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/05/11 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/05/11 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/05/11 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/05/11 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/05/11 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/05/11 | 98516 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/05/11 | 104624 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/05/11 | 2499399 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/05/11 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/05/11 | 55220 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/05/11 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/05/11 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/05/11 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/05/11 | 27198 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/05/11 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/05/11 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/05/11 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/05/11 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/05/11 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/05/11 | 55561 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/05/11 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/05/11 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/05/11 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/05/11 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/05/11 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/05/11 | 209352 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/05/11 | 1269060 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/05/11 | 1186236 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/05/11 | 13471 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/05/11 | 14354 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma -2021/05/10 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/05/11 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini 2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma 2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma 2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma @@ -284161,7 +284299,7 @@ 2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma 2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma 2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma -2021/05/10 | 850 | systems/win32/miktex/tm/packages/pr.ini +2021/05/11 | 850 | systems/win32/miktex/tm/packages/pr.ini 2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma 2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma 2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma @@ -285348,7 +285486,7 @@ 2021/05/08 | 5531876 | systems/win32/w32tex/aleph-w32.tar.xz 2021/05/09 | 63720288 | systems/win32/w32tex/biblatex-biber.tar.xz 2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz -2021/05/09 | 827778 | systems/win32/w32tex/ChangeLog +2021/05/10 | 829556 | systems/win32/w32tex/ChangeLog 2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0 2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1 2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2 @@ -285356,7 +285494,7 @@ 2017/06/24 | 644754 | systems/win32/w32tex/ChangeLog.4 2021/05/08 | 23484712 | systems/win32/w32tex/cjkzr.tar.xz 2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz -2021/05/08 | 144772276 | systems/win32/w32tex/context.tar.xz +2021/05/10 | 144766492 | systems/win32/w32tex/context.tar.xz 2021/05/04 | 914852 | systems/win32/w32tex/cweb-w32.tar.xz 2021/03/22 | 6433932 | systems/win32/w32tex/datetime2.tar.xz 2021/04/07 | 846020 | systems/win32/w32tex/dvi2ps-w32.tar.xz @@ -285368,20 +285506,20 @@ 2021/04/07 | 17377260 | systems/win32/w32tex/gregorio-w32.tar.xz 2009/08/03 | 1072620 | systems/win32/w32tex/gtftex.zip 2021/04/27 | 1862028 | systems/win32/w32tex/jtex-w32.tar.xz -2021/05/08 | 52801796 | systems/win32/w32tex/latex-dev.tar.xz +2021/05/10 | 52805236 | systems/win32/w32tex/latex-dev.tar.xz 2021/03/21 | 34776716 | systems/win32/w32tex/latex.tar.xz 2021/04/07 | 1007424 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz 2021/03/30 | 421014648 | systems/win32/w32tex/ltxpkgdocs.tar.xz -2021/05/09 | 35248816 | systems/win32/w32tex/ltxpkgs.tar.xz -2021/05/09 | 3843400 | systems/win32/w32tex/luajittex-dev-w32.tar.xz -2021/05/09 | 3827132 | systems/win32/w32tex/luajittex-exp-w32.tar.xz -2021/05/09 | 3868436 | systems/win32/w32tex/luajittex-w32.tar.xz +2021/05/10 | 35246464 | systems/win32/w32tex/ltxpkgs.tar.xz +2021/05/10 | 3844984 | systems/win32/w32tex/luajittex-dev-w32.tar.xz +2021/05/10 | 3826196 | systems/win32/w32tex/luajittex-exp-w32.tar.xz +2021/05/10 | 3829812 | systems/win32/w32tex/luajittex-w32.tar.xz 2021/03/26 | 838276 | systems/win32/w32tex/luasec-w32.tar.xz -2021/05/09 | 18921652 | systems/win32/w32tex/luatex-dev-w32.tar.xz -2021/05/09 | 18922120 | systems/win32/w32tex/luatex-exp-w32.tar.xz +2021/05/10 | 18925636 | systems/win32/w32tex/luatex-dev-w32.tar.xz +2021/05/10 | 18896880 | systems/win32/w32tex/luatex-exp-w32.tar.xz 2021/04/12 | 68821016 | systems/win32/w32tex/luatexja.tar.xz -2021/05/09 | 18924336 | systems/win32/w32tex/luatex-w32.tar.xz -2021/04/11 | 1612944 | systems/win32/w32tex/makeindex-w32.tar.xz +2021/05/10 | 18877784 | systems/win32/w32tex/luatex-w32.tar.xz +2021/05/10 | 1613572 | systems/win32/w32tex/makeindex-w32.tar.xz 2021/03/28 | 5371984 | systems/win32/w32tex/manual.tar.xz 2021/04/07 | 439524 | systems/win32/w32tex/mftools.tar.xz 2021/04/07 | 525008 | systems/win32/w32tex/mftrace-w32.tar.xz @@ -285391,7 +285529,7 @@ 2021/04/07 | 1246480 | systems/win32/w32tex/omegaj-w32.tar.xz 2020/11/16 | 324540 | systems/win32/w32tex/otfbeta.tar.xz 2021/05/08 | 22156260 | systems/win32/w32tex/pdftex-w32.tar.xz -2021/05/09 | 98150128 | systems/win32/w32tex/pgfcontrib.tar.xz +2021/05/10 | 98152500 | systems/win32/w32tex/pgfcontrib.tar.xz 2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz 2021/02/14 | 2826912 | systems/win32/w32tex/platex.tar.xz 2021/04/07 | 1726052 | systems/win32/w32tex/pmx.tar.xz @@ -285399,11 +285537,11 @@ 2021/04/29 | 274303836 | systems/win32/w32tex/pstricks.tar.xz 2021/04/07 | 518092 | systems/win32/w32tex/psutils-w32.tar.xz 2021/05/08 | 6774728 | systems/win32/w32tex/ptex-ng-w32.tar.xz -2021/05/08 | 10703832 | systems/win32/w32tex/ptex-w32.tar.xz +2021/05/10 | 10715964 | systems/win32/w32tex/ptex-w32.tar.xz 2019/04/15 | 499188 | systems/win32/w32tex/sam2p-w32.tar.xz 2021/03/23 | 87955068 | systems/win32/w32tex/t1fonts.tar.xz 2020/10/31 | 142032 | systems/win32/w32tex/t1utils-w32.tar.xz -2021/05/07 | 3424124 | systems/win32/w32tex/tex4htk-w32.tar.xz +2021/05/10 | 3436468 | systems/win32/w32tex/tex4htk-w32.tar.xz 2018/06/20 | 15940044 | systems/win32/w32tex/tex-gyre.tar.xz 2021/04/07 | 4485428 | systems/win32/w32tex/texinfo-w32.tar.xz 2021/01/03 | 2050496 | systems/win32/w32tex/texinstwin.zip @@ -285423,15 +285561,15 @@ 2020/01/19 | 5856 | systems/win32/w32tex/txtutil.tar.xz 2013/04/08 | 71588 | systems/win32/w32tex/ums.tar.xz 2012/05/28 | 233472 | systems/win32/w32tex/unzip.exe -2021/05/08 | 8633640 | systems/win32/w32tex/uptex-w32.tar.xz +2021/05/10 | 8634060 | systems/win32/w32tex/uptex-w32.tar.xz 2013/04/08 | 722652 | systems/win32/w32tex/utf.tar.xz 2013/04/08 | 13748 | systems/win32/w32tex/vf-n2bk.tar.xz 2021/03/24 | 53260516 | systems/win32/w32tex/w32tex-src.tar.xz 2021/04/27 | 130696912 | systems/win32/w32tex/web2c-lib.tar.xz -2021/05/08 | 45571636 | systems/win32/w32tex/web2c-w32.tar.xz +2021/05/10 | 45561388 | systems/win32/w32tex/web2c-w32.tar.xz 2021/05/08 | 811412 | systems/win32/w32tex/win64/aleph-w64.tar.xz 2020/08/20 | 22351540 | systems/win32/w32tex/win64/biblatex-biber-w64.tar.xz -2021/05/08 | 2227952 | systems/win32/w32tex/win64/context-w64.tar.xz +2021/05/10 | 2227976 | systems/win32/w32tex/win64/context-w64.tar.xz 2021/05/04 | 441456 | systems/win32/w32tex/win64/cweb-w64.tar.xz 2021/04/07 | 758972 | systems/win32/w32tex/win64/dvi2ps-w64.tar.xz 2021/04/07 | 448472 | systems/win32/w32tex/win64/dvi2tty-w64.tar.xz @@ -285443,14 +285581,14 @@ 2021/04/07 | 588136 | systems/win32/w32tex/win64/jtex-w64.tar.xz 2019/11/11 | 2568 | systems/win32/w32tex/win64/latex-dev-w64.tar.xz 2021/04/07 | 800472 | systems/win32/w32tex/win64/lcdf-typetools-w64.tar.xz -2021/05/09 | 3457392 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz -2021/05/09 | 3463920 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz -2021/05/09 | 3465136 | systems/win32/w32tex/win64/luajittex-w64.tar.xz +2021/05/10 | 3463100 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz +2021/05/10 | 3464508 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz +2021/05/10 | 3472556 | systems/win32/w32tex/win64/luajittex-w64.tar.xz 2021/03/26 | 936184 | systems/win32/w32tex/win64/luasec-w64.tar.xz -2021/05/09 | 3130560 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz -2021/05/09 | 3116692 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz -2021/05/09 | 3137480 | systems/win32/w32tex/win64/luatex-w64.tar.xz -2021/04/11 | 1083276 | systems/win32/w32tex/win64/makeindex-w64.tar.xz +2021/05/10 | 3125036 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz +2021/05/10 | 3124468 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz +2021/05/10 | 3125656 | systems/win32/w32tex/win64/luatex-w64.tar.xz +2021/05/10 | 1082700 | systems/win32/w32tex/win64/makeindex-w64.tar.xz 2021/04/07 | 431500 | systems/win32/w32tex/win64/mftools-w64.tar.xz 2021/04/07 | 377008 | systems/win32/w32tex/win64/mftrace-w64.tar.xz 2020/01/18 | 362540 | systems/win32/w32tex/win64/m-tx-w64.tar.xz @@ -285461,7 +285599,7 @@ 2021/04/07 | 791152 | systems/win32/w32tex/win64/pstoedit-w64.tar.xz 2021/04/07 | 386496 | systems/win32/w32tex/win64/psutils-w64.tar.xz 2021/05/05 | 1690720 | systems/win32/w32tex/win64/ptex-ng-w64.tar.xz -2021/05/08 | 1873268 | systems/win32/w32tex/win64/ptex-w64.tar.xz +2021/05/10 | 1873032 | systems/win32/w32tex/win64/ptex-w64.tar.xz 2021/01/03 | 329592 | systems/win32/w32tex/win64/sam2p-w64.tar.xz 2020/10/31 | 40588 | systems/win32/w32tex/win64/t1utils-w64.tar.xz 2021/04/07 | 420176 | systems/win32/w32tex/win64/tex4htk-w64.tar.xz @@ -285469,8 +285607,8 @@ 2021/04/07 | 734912 | systems/win32/w32tex/win64/ttf2pk-w64.tar.xz 2021/04/07 | 696196 | systems/win32/w32tex/win64/ttf2pt1-w64.tar.xz 2020/01/18 | 42768 | systems/win32/w32tex/win64/txtutil-w64.tar.xz -2021/05/08 | 1806104 | systems/win32/w32tex/win64/uptex-w64.tar.xz -2021/05/08 | 3755996 | systems/win32/w32tex/win64/web2c-w64.tar.xz +2021/05/10 | 1806604 | systems/win32/w32tex/win64/uptex-w64.tar.xz +2021/05/10 | 3756556 | systems/win32/w32tex/win64/web2c-w64.tar.xz 2021/05/08 | 11122468 | systems/win32/w32tex/win64/xetex-w64.tar.xz 2021/05/08 | 49476568 | systems/win32/w32tex/xetex-w32.tar.xz 2021/04/28 | 2934168 | systems/win32/w32tex/xindy-w32.tar.xz @@ -285569,7 +285707,7 @@ 2004/06/04 | 404 | tds/tds.sed 2004/06/23 | 65418 | tds/tds.tex 2019/05/29 | 304264 | tds.zip -2021/05/11 | 186 | timestamp +2021/05/12 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index 807eed106f..f9f3912473 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index 85d816ba9c..dd3c14b1a5 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,215 +1,412 @@ +2021/05/11 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex +2021/05/11 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/05/11 | 993116 | systems/texlive/tlnet/archive/europecv.doc.r59162.tar.xz +2021/05/11 | 98516 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/05/11 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/05/11 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/05/11 | 968698 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/05/11 | 96148 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/05/11 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/05/11 | 94736 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/05/11 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex +2021/05/11 | 9436 | macros/latex/contrib/l3kernel/l3flag.dtx +2021/05/11 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/05/11 | 92570 | macros/latex/contrib/l3kernel/l3color.dtx +2021/05/11 | 9216 | macros/latex/contrib/l3kernel/l3unicode.dtx +2021/05/11 | 90051 | macros/latex/contrib/l3kernel/l3seq.dtx +2021/05/11 | 89403 | macros/latex/contrib/l3kernel/l3int.dtx +2021/05/11 | 8775 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/05/11 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/05/11 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/05/11 | 85364 | macros/latex/contrib/l3kernel/l3coffins.dtx +2021/05/11 | 850 | systems/win32/miktex/tm/packages/pr.ini +2021/05/11 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex +2021/05/11 | 84816 | macros/latex/contrib/l3kernel/l3fp-basics.dtx +2021/05/11 | 84772 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/05/11 | 816072 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/05/11 | 80940 | macros/latex/contrib/l3kernel/l3clist.dtx +2021/05/11 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/05/11 | 7999236 | systems/texlive/tlnet/archive/tlgs.win32.r59157.tar.xz +2021/05/11 | 79798 | macros/latex/contrib/l3kernel/l3names.dtx +2021/05/11 | 79776 | macros/latex/contrib/l3kernel/l3prefixes.pdf +2021/05/11 | 79672 | macros/latex/contrib/l3kernel/l3msg.dtx +2021/05/11 | 79036 | systems/texlive/tlnet/archive/xint.r59161.tar.xz +2021/05/11 | 78772 | macros/latex/contrib/l3kernel/l3box.dtx +2021/05/11 | 78745 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/05/11 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/05/11 | 77486 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/05/11 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/05/11 | 76404 | macros/latex/contrib/l3kernel/l3skip.dtx +2021/05/11 | 75418 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/05/11 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/05/11 | 7454 | macros/latex/contrib/l3kernel/l3fp-assign.dtx +2021/05/11 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/05/11 | 73845 | macros/latex/contrib/l3kernel/l3fp-trig.dtx +2021/05/11 | 73411 | macros/latex/contrib/l3kernel/l3str.dtx +2021/05/11 | 73180 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/05/11 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/05/11 | 72151 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/05/11 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/05/11 | 71065 | macros/latex/contrib/l3kernel/expl3.dtx +2021/05/11 | 70578 | macros/latex/contrib/l3kernel/l3fp.dtx +2021/05/11 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/05/11 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/05/11 | 69576 | macros/latex/contrib/l3kernel/l3candidates.dtx +2021/05/11 | 68545 | macros/latex/contrib/l3kernel/l3text-case.dtx +2021/05/11 | 6811296 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/05/11 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/05/11 | 67929 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/05/11 | 6780088 | macros/latex/contrib/l3kernel/source3.pdf +2021/05/11 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/05/11 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/05/11 | 67450 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/05/11 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex +2021/05/11 | 65731 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/05/11 | 65589 | macros/latex/contrib/l3kernel/l3prg.dtx +2021/05/11 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/05/11 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex +2021/05/11 | 6450 | macros/latex/contrib/l3kernel/l3term-glossary.tex +2021/05/11 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex +2021/05/11 | 64017 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/05/11 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/05/11 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/05/11 | 62801 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/05/11 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex +2021/05/11 | 625281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/05/11 | 624 | systems/texlive/tlnet/archive/collection-basic.r59159.tar.xz +2021/05/11 | 623415 | macros/latex/contrib/l3kernel/expl3.pdf +2021/05/11 | 6227 | macros/latex/contrib/l3kernel/l3.ins +2021/05/11 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/05/11 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/05/11 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/05/11 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/05/11 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/05/11 | 59144 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/05/11 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/05/11 | 57599 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/05/11 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/05/11 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/05/11 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/05/11 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/05/11 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/05/11 | 56718 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/05/11 | 56489 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx +2021/05/11 | 56456 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/05/11 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/05/11 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/05/11 | 55561 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/05/11 | 55220 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/05/11 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex 2021/05/11 | 5412 | language/japanese/pxjahyper/README-ja.md +2021/05/11 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/05/11 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/05/11 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/05/11 | 51979 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/05/11 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/05/11 | 51514 | macros/latex/contrib/l3kernel/l3prop.dtx +2021/05/11 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/05/11 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/05/11 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/05/11 | 51059 | macros/latex/contrib/l3kernel/l3fp-extended.dtx +2021/05/11 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/05/11 | 49972 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/05/11 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex +2021/05/11 | 49386 | macros/latex/contrib/l3kernel/l3fp-expo.dtx +2021/05/11 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex +2021/05/11 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/05/11 | 4890 | macros/latex/contrib/l3kernel/l3news.tex +2021/05/11 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/05/11 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/05/11 | 475936 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/05/11 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex +2021/05/11 | 47131 | macros/latex/contrib/l3kernel/l3fp-aux.dtx +2021/05/11 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma +2021/05/11 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/05/11 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/05/11 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma 2021/05/11 | 45798 | language/japanese/pxjahyper/pxjahyper.sty +2021/05/11 | 45649 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/05/11 | 455 | systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512.asc +2021/05/11 | 455 | systems/texlive/tlnet/update-tlmgr-r59154.exe.sha512.asc +2021/05/11 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/05/11 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/05/11 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/05/11 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/05/11 | 45277 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/05/11 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/05/11 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/05/11 | 43322 | macros/latex/contrib/l3kernel/l3debug.dtx +2021/05/11 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/05/11 | 42924 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/05/11 | 42628 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/05/11 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/05/11 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/05/11 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/05/11 | 40666 | macros/latex/contrib/l3kernel/l3sort.dtx +2021/05/11 | 4036304 | systems/texlive/tlnet/update-tlmgr-r59154.exe +2021/05/11 | 39757 | macros/latex/contrib/l3kernel/l3prefixes.csv +2021/05/11 | 396936 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59159.tar.xz +2021/05/11 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/05/11 | 395934 | macros/latex/contrib/l3kernel/l3news.pdf +2021/05/11 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/05/11 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/05/11 | 38472 | systems/texlive/tlnet/archive/europecv.r59162.tar.xz +2021/05/11 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/05/11 | 38064 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/05/11 | 374544 | systems/texlive/tlnet/archive/xint.source.r59161.tar.xz +2021/05/11 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/05/11 | 37241 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/05/11 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/05/11 | 36621 | macros/latex/contrib/l3kernel/l3text.dtx +2021/05/11 | 35775 | macros/latex/contrib/l3kernel/l3quark.dtx +2021/05/11 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/05/11 | 35063 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/05/11 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/05/11 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/05/11 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/05/11 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma 2021/05/11 | 3307 | language/japanese/pxjahyper/pxjahyper-enc.sty +2021/05/11 | 330233 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/05/11 | 32743 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/05/11 | 32402 | macros/latex/contrib/l3kernel/l3cctab.dtx +2021/05/11 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/05/11 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/05/11 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/05/11 | 31475 | macros/latex/contrib/l3kernel/l3sys.dtx +2021/05/11 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/05/11 | 31191 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/05/11 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/05/11 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/05/11 | 30555 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx +2021/05/11 | 30385 | macros/latex/contrib/l3kernel/l3deprecation.dtx +2021/05/11 | 30036 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/05/11 | 2994 | macros/latex/contrib/l3kernel/README.md +2021/05/11 | 29869 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/05/11 | 296129 | macros/latex/contrib/l3kernel/l3styleguide.pdf +2021/05/11 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/05/11 | 29072 | macros/latex/contrib/l3kernel/CHANGELOG.md +2021/05/11 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/05/11 | 283977 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/05/11 | 282200 | macros/latex/contrib/l3kernel/l3regex.dtx +2021/05/11 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex +2021/05/11 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/05/11 | 28120 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/05/11 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/05/11 | 27361 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/05/11 | 27275 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/05/11 | 27198 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/05/11 | 27182 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/05/11 | 262 | support/TeX4ht/README +2021/05/11 | 261961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/05/11 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/05/11 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/05/11 | 25732 | macros/latex/contrib/l3kernel/l3fp-random.dtx +2021/05/11 | 25582713 | systems/texlive/tlnet/install-tl.zip +2021/05/11 | 25340 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/05/11 | 25154 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/05/11 | 250210 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/05/11 | 250134 | macros/latex/contrib/l3kernel/l3news09.pdf +2021/05/11 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/05/11 | 2499399 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/05/11 | 2484 | macros/latex/contrib/l3kernel/l3legacy.dtx +2021/05/11 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/05/11 | 242807 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf +2021/05/11 | 24213 | macros/latex/contrib/l3kernel/source3body.tex +2021/05/11 | 239479 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/05/11 | 2390 | macros/latex/contrib/l3kernel/l3docstrip.dtx +2021/05/11 | 23880 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma 2021/05/11 | 23852 | language/japanese/pxjahyper/pxjahyper-ajm.def +2021/05/11 | 23289 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/05/11 | 231193 | macros/latex/contrib/l3kernel/l3term-glossary.pdf +2021/05/11 | 23070 | macros/latex/contrib/l3kernel/l3fp-logic.dtx +2021/05/11 | 2303136 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/05/11 | 229520 | systems/texlive/tlnet/archive/texlive.infra.r59154.tar.xz +2021/05/11 | 2229 | macros/latex/contrib/l3kernel/source3.tex +2021/05/11 | 22040 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/05/11 | 21643 | macros/latex/contrib/l3kernel/l3text-purify.dtx +2021/05/11 | 214104 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/05/11 | 21168 | macros/latex/contrib/l3kernel/l3luatex.dtx +2021/05/11 | 2115492 | systems/texlive/tlnet/archive/xint.doc.r59161.tar.xz +2021/05/11 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/05/11 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/05/11 | 21010 | macros/latex/contrib/l3kernel/l3intarray.dtx +2021/05/11 | 209357 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/05/11 | 209352 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/05/11 | 208182 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/05/11 | 20808767 | systems/texlive/tlnet/install-tl-windows.exe +2021/05/11 | 207844 | systems/texlive/tlnet/archive/texlive.infra.doc.r59154.tar.xz 2021/05/11 | 2076 | language/japanese/pxjahyper/README.md +2021/05/11 | 204992 | macros/latex/contrib/l3kernel/l3news12.pdf +2021/05/11 | 202558 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/05/11 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/05/11 | 2009491 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/05/11 | 199701 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/05/11 | 198131 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/05/11 | 19644 | macros/latex/contrib/l3kernel/l3fp-convert.dtx +2021/05/11 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/05/11 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/05/11 | 193715 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/05/11 | 1908 | macros/latex/contrib/l3kernel/interface3.tex +2021/05/11 | 18579 | macros/latex/contrib/l3kernel/l3fp-round.dtx +2021/05/11 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/05/11 | 180048 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/05/11 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/05/11 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/05/11 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/05/11 | 17221192 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/05/11 | 1707327 | macros/latex/contrib/l3kernel/interface3.pdf +2021/05/11 | 170069 | macros/latex/contrib/l3kernel/l3news11.pdf +2021/05/11 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/05/11 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/05/11 | 163405 | macros/latex/contrib/l3kernel/l3news08.pdf +2021/05/11 | 16328 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/05/11 | 16110 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/05/11 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/05/11 | 155524 | macros/latex/contrib/l3kernel/l3doc.dtx +2021/05/11 | 154 | systems/texlive/tlnet/update-tlmgr-r59154.exe.sha512 +2021/05/11 | 153 | systems/texlive/tlnet/update-tlmgr-r59154.sh.sha512 +2021/05/11 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/05/11 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/05/11 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/05/11 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/05/11 | 151697 | macros/latex/contrib/l3kernel/l3docstrip.pdf +2021/05/11 | 151572 | macros/latex/contrib/l3kernel/l3news06.pdf +2021/05/11 | 15138 | macros/latex/contrib/l3kernel/l3bootstrap.dtx +2021/05/11 | 150672 | macros/latex/contrib/l3kernel/l3news02.pdf +2021/05/11 | 150289 | macros/latex/contrib/l3kernel/l3news10.pdf +2021/05/11 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex +2021/05/11 | 14882 | macros/latex/contrib/l3kernel/l3pdf.dtx +2021/05/11 | 148707 | macros/latex/contrib/l3kernel/l3news03.pdf +2021/05/11 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/05/11 | 147139 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/05/11 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/05/11 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/05/11 | 14354 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/05/11 | 1425980 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/05/11 | 1424812 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/05/11 | 142047 | macros/latex/contrib/l3kernel/l3tl.dtx 2021/05/11 | 13760 | language/japanese/pxjahyper/pxjahyper.tex +2021/05/11 | 136428 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/05/11 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/05/11 | 13471 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/05/11 | 134375 | macros/latex/contrib/l3kernel/l3file.dtx +2021/05/11 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/05/11 | 1307720 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/05/11 | 1295415 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/05/11 | 12891 | macros/latex/contrib/l3kernel/l3fp-traps.dtx +2021/05/11 | 12883186 | install/macros/latex/contrib/l3kernel.tds.zip +2021/05/11 | 128312 | macros/latex/contrib/l3kernel/l3news07.pdf +2021/05/11 | 1281104 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/05/11 | 127625 | macros/latex/contrib/l3kernel/l3basics.dtx 2021/05/11 | 127012 | language/japanese/pxjahyper/pxjahyper.pdf -2021/05/10 | 99606 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/05/10 | 98519 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/05/10 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/05/10 | 97134 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/05/10 | 968695 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/05/10 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/05/11 | 1269060 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/05/11 | 1268927 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/05/11 | 12643939 | macros/latex/contrib/l3kernel.zip +2021/05/11 | 125357 | macros/latex/contrib/l3kernel/l3token.dtx +2021/05/11 | 124971 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/05/11 | 122713 | macros/latex/contrib/l3kernel/l3news01.pdf +2021/05/11 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex +2021/05/11 | 1186236 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/05/11 | 1186057 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/05/11 | 11808 | macros/latex/contrib/l3kernel/l3fparray.dtx +2021/05/11 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/05/11 | 116929 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/05/11 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/05/11 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/05/11 | 115297 | macros/latex/contrib/l3kernel/l3keys.dtx +2021/05/11 | 114588 | macros/latex/contrib/l3kernel/l3news04.pdf +2021/05/11 | 114418 | macros/latex/contrib/l3kernel/l3str-convert.dtx +2021/05/11 | 112485 | macros/latex/contrib/l3kernel/l3news05.pdf +2021/05/11 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/05/11 | 109275 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/05/11 | 107976 | systems/texlive/tlnet/archive/texlive-scripts.r59159.tar.xz +2021/05/11 | 107921 | macros/latex/contrib/l3kernel/l3expan.dtx +2021/05/11 | 1078877 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/05/11 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex +2021/05/11 | 105522 | macros/latex/contrib/l3kernel/l3fp-parse.dtx +2021/05/11 | 104624 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/05/11 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/05/11 | 101762 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/05/11 | 10023678 | systems/texlive/tlnet/update-tlmgr-r59154.sh +2021/05/10 | 98152500 | systems/win32/w32tex/pgfcontrib.tar.xz 2021/05/10 | 953 | macros/latex/contrib/europecv/templates/europecv_biber.tex -2021/05/10 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/05/10 | 94738 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/05/10 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma 2021/05/10 | 934 | macros/latex/contrib/europecv/examples/greek-utf8.tex 2021/05/10 | 916 | macros/latex/contrib/europecv/examples/maltese-maltese.tex 2021/05/10 | 901984 | systems/texlive/tlnet/archive/tex4ht.r59145.tar.xz 2021/05/10 | 8944 | systems/texlive/tlnet/archive/msu-thesis.r59146.tar.xz 2021/05/10 | 88195 | macros/latex/contrib/qrbill.zip 2021/05/10 | 8800 | macros/latex/contrib/europecv/templates/cv_template_academic_en.tex -2021/05/10 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/05/10 | 87704 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/05/10 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma 2021/05/10 | 86999 | macros/latex/contrib/europecv/examples/greek-utf8.pdf 2021/05/10 | 863 | macros/latex/contrib/europecv/examples/maltese-utf8.tex -2021/05/10 | 850 | systems/win32/miktex/tm/packages/pr.ini -2021/05/10 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/05/10 | 816071 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/05/10 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/05/10 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/05/10 | 77857 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/05/10 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/05/10 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/05/10 | 8634060 | systems/win32/w32tex/uptex-w32.tar.xz +2021/05/10 | 829556 | systems/win32/w32tex/ChangeLog 2021/05/10 | 765 | macros/latex/contrib/europecv/examples/bulgarian-koi8-r.tex 2021/05/10 | 75678 | macros/latex/contrib/qrbill/qrbill.pdf -2021/05/10 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/05/10 | 748363 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/05/10 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/05/10 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/05/10 | 72859 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/05/10 | 72150 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/05/10 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/05/10 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/05/10 | 70111 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma 2021/05/10 | 6975 | macros/latex/contrib/europecv/examples/at.pdf -2021/05/10 | 6811003 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/05/10 | 680050 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/05/10 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/05/10 | 67680 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/05/10 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/05/10 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/05/10 | 6798 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/05/10 | 673 | macros/latex/contrib/easybook/easybook.ins 2021/05/10 | 664 | macros/latex/contrib/europecv/templates/europecv_biber.conf 2021/05/10 | 661821 | macros/latex/contrib/europecv/europecv.pdf 2021/05/10 | 6593 | macros/latex/contrib/europecv/templates/europecv_photo.jpg -2021/05/10 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma 2021/05/10 | 6567 | usergrps/usergrps/index.html -2021/05/10 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/05/10 | 64018 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/05/10 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/05/10 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/05/10 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/05/10 | 625283 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/05/10 | 62227 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/05/10 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/05/10 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/05/10 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/05/10 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/05/10 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/05/10 | 583629 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/05/10 | 57599 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/05/10 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/05/10 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma -2021/05/10 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/05/10 | 56909 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/05/10 | 567629 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/05/10 | 56719 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/05/10 | 56458 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/05/10 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/05/10 | 55823 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/05/10 | 55564 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/05/10 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma 2021/05/10 | 54458 | macros/latex/contrib/europecv/europecv.tex -2021/05/10 | 532038 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/05/10 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/05/10 | 52454 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/05/10 | 51979 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/05/10 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/05/10 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/05/10 | 511635 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/05/10 | 51159 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/05/10 | 52805236 | systems/win32/w32tex/latex-dev.tar.xz 2021/05/10 | 510 | macros/latex/contrib/europecv/templates/europecv_thesis.bib -2021/05/10 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/05/10 | 49973 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma 2021/05/10 | 49845 | usergrps/usergrps/lugs.pdf -2021/05/10 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/05/10 | 487972 | systems/texlive/tlnet/archive/msu-thesis.doc.r59146.tar.xz -2021/05/10 | 484054 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/05/10 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma 2021/05/10 | 4778 | macros/latex/contrib/europecv/templates/cv_template_en.tex -2021/05/10 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma 2021/05/10 | 47274 | macros/latex/contrib/europecv/examples/Pythagoras.jpg -2021/05/10 | 4707 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma -2021/05/10 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma 2021/05/10 | 4646 | macros/latex/contrib/europecv/examples/EuropeFlagCMYK.eps 2021/05/10 | 4646 | macros/latex/contrib/europecv/EuropeFlagCMYK.eps 2021/05/10 | 4631 | macros/latex/contrib/europecv/EuropeFlagBW.eps -2021/05/10 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma 2021/05/10 | 4595 | macros/latex/contrib/europecv/EuropeFlagBlueCMYK.eps -2021/05/10 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma 2021/05/10 | 4588 | macros/latex/contrib/europecv/EuropeFlagWB.eps -2021/05/10 | 45650 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/05/10 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/05/10 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2021/05/10 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/05/10 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc -2021/05/10 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/05/10 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/05/10 | 43392 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/05/10 | 43058 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/05/10 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/05/10 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/05/10 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/05/10 | 45561388 | systems/win32/w32tex/web2c-w32.tar.xz 2021/05/10 | 423 | macros/latex/contrib/europecv/templates/europecv_pub.bib -2021/05/10 | 42388 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma 2021/05/10 | 4207 | macros/latex/contrib/europecv/CONTRIBUTING.md 2021/05/10 | 41841 | macros/latex/contrib/qrbill/qrbill.dtx -2021/05/10 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2021/05/10 | 39690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/05/10 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/05/10 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/05/10 | 388 | systems/texlive/tlnet/archive/texlive-docindex.r59142.tar.xz 2021/05/10 | 385592 | systems/texlive/tlnet/archive/arabtex.doc.r59150.tar.xz +2021/05/10 | 3844984 | systems/win32/w32tex/luajittex-dev-w32.tar.xz +2021/05/10 | 3829812 | systems/win32/w32tex/luajittex-w32.tar.xz +2021/05/10 | 3826196 | systems/win32/w32tex/luajittex-exp-w32.tar.xz 2021/05/10 | 38142 | macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf -2021/05/10 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/05/10 | 38063 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma 2021/05/10 | 3793 | macros/generic/xint/README.md 2021/05/10 | 37766 | macros/latex/contrib/europecv/examples/europasslogo.eps 2021/05/10 | 37766 | macros/latex/contrib/europecv/europasslogo.eps 2021/05/10 | 37637 | usergrps/usergrps/lugs.html -2021/05/10 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/05/10 | 3756556 | systems/win32/w32tex/win64/web2c-w64.tar.xz 2021/05/10 | 37248 | macros/latex/contrib/europecv/examples/minimal.pdf -2021/05/10 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/05/10 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/05/10 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/05/10 | 35063 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/05/10 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/05/10 | 345367 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/05/10 | 35246464 | systems/win32/w32tex/ltxpkgs.tar.xz +2021/05/10 | 3472556 | systems/win32/w32tex/win64/luajittex-w64.tar.xz +2021/05/10 | 3464508 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz +2021/05/10 | 3463100 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz 2021/05/10 | 3438 | macros/latex/contrib/europecv/ecvgr.def +2021/05/10 | 3436468 | systems/win32/w32tex/tex4htk-w32.tar.xz 2021/05/10 | 34265 | macros/latex/contrib/europecv/europasslogo.pdf 2021/05/10 | 3356 | macros/latex/contrib/europecv/examples/EuropeFlagCMYK-eps-converted-to.pdf 2021/05/10 | 335257 | macros/latex/contrib/easybook.zip -2021/05/10 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/05/10 | 33153 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/05/10 | 330234 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/05/10 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/05/10 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma 2021/05/10 | 3203 | macros/latex/contrib/europecv/CHANGELOG.rst -2021/05/10 | 31594 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/05/10 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/05/10 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma 2021/05/10 | 31276 | macros/latex/contrib/europecv/templates/cv_template_en.pdf -2021/05/10 | 31191 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/05/10 | 311192 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/05/10 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/05/10 | 3125656 | systems/win32/w32tex/win64/luatex-w64.tar.xz +2021/05/10 | 3125036 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz +2021/05/10 | 3124468 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz 2021/05/10 | 305649 | macros/latex/contrib/easybook/easybook.pdf 2021/05/10 | 304988 | systems/texlive/tlnet/archive/easybook.doc.r59148.tar.xz -2021/05/10 | 30038 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/05/10 | 29869 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/05/10 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/05/10 | 29054 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma 2021/05/10 | 28508 | systems/texlive/tlnet/archive/easybook.source.r59148.tar.xz -2021/05/10 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/05/10 | 282106 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/05/10 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/05/10 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/05/10 | 27363 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/05/10 | 27275 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/05/10 | 27198 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/05/10 | 27181 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma 2021/05/10 | 2705365 | install/macros/generic/xint.tds.zip 2021/05/10 | 2690 | macros/latex/contrib/europecv/examples/europass-cv.tex -2021/05/10 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/05/10 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma 2021/05/10 | 2594834 | macros/generic/xint.zip -2021/05/10 | 258664 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/05/10 | 25582695 | systems/texlive/tlnet/install-tl.zip -2021/05/10 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/05/10 | 25156 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/05/10 | 250213 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/05/10 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/05/10 | 2499402 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma 2021/05/10 | 2498 | macros/latex/contrib/europecv/ecvbg.def -2021/05/10 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma 2021/05/10 | 2408 | macros/latex/contrib/europecv/README.md -2021/05/10 | 239478 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/05/10 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma 2021/05/10 | 23619 | macros/latex/contrib/europecv/europecv.cls 2021/05/10 | 235709 | macros/latex/contrib/europecv/examples/europass-cv.pdf 2021/05/10 | 2340 | macros/latex/contrib/europecv/EuropeFlagBW.pdf -2021/05/10 | 23291 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/05/10 | 2303740 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/05/10 | 2272 | macros/latex/contrib/europecv/EuropeFlagWB.pdf 2021/05/10 | 2259 | macros/latex/contrib/europecv/EuropeFlagCMYK.pdf 2021/05/10 | 2249 | macros/latex/contrib/europecv/EuropeFlagBlueCMYK.pdf -2021/05/10 | 223052 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59153.tar.xz +2021/05/10 | 2227976 | systems/win32/w32tex/win64/context-w64.tar.xz 2021/05/10 | 222028 | systems/texlive/tlnet/archive/arabtex.r59150.tar.xz 2021/05/10 | 2213 | macros/latex/contrib/europecv/ecvfr.def -2021/05/10 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma 2021/05/10 | 2199 | macros/latex/contrib/europecv/ecvlt.def 2021/05/10 | 2194 | macros/latex/contrib/europecv/ecvsk.def 2021/05/10 | 2182 | macros/latex/contrib/europecv/ecvcs.def @@ -217,100 +414,51 @@ 2021/05/10 | 2169 | macros/latex/contrib/europecv/ecves.def 2021/05/10 | 2166 | macros/latex/contrib/europecv/ecvfi.def 2021/05/10 | 2145 | macros/latex/contrib/europecv/ecvpt.def -2021/05/10 | 214103 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma 2021/05/10 | 2129 | macros/latex/contrib/europecv/ecvgl.def -2021/05/10 | 21129 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/05/10 | 211053 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/05/10 | 209345 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/05/10 | 209338 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma 2021/05/10 | 2090 | macros/latex/contrib/europecv/ecvis.def 2021/05/10 | 2084 | macros/latex/contrib/europecv/ecvhu.def 2021/05/10 | 2082 | macros/latex/contrib/europecv/ecvde.def -2021/05/10 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/05/10 | 20809742 | systems/texlive/tlnet/install-tl-windows.exe 2021/05/10 | 2062 | macros/latex/contrib/europecv/ecvit.def 2021/05/10 | 2061 | macros/latex/contrib/europecv/ecvda.def 2021/05/10 | 2055 | macros/latex/contrib/europecv/ecven.def 2021/05/10 | 2044 | macros/latex/contrib/europecv/ecvro.def 2021/05/10 | 2043 | macros/latex/contrib/europecv/ecvsl.def 2021/05/10 | 2034 | macros/latex/contrib/europecv/ecvet.def -2021/05/10 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma 2021/05/10 | 2018 | macros/latex/contrib/europecv/ecvsr.def -2021/05/10 | 20122 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/05/10 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/05/10 | 199700 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/05/10 | 198132 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/05/10 | 195665 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/05/10 | 195567 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/05/10 | 193716 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma 2021/05/10 | 19106 | macros/latex/contrib/europecv/LICENSE +2021/05/10 | 18925636 | systems/win32/w32tex/luatex-dev-w32.tar.xz +2021/05/10 | 18896880 | systems/win32/w32tex/luatex-exp-w32.tar.xz +2021/05/10 | 18877784 | systems/win32/w32tex/luatex-w32.tar.xz +2021/05/10 | 1873032 | systems/win32/w32tex/win64/ptex-w64.tar.xz 2021/05/10 | 1810 | macros/latex/contrib/europecv/ecvlv.def -2021/05/10 | 18098 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/05/10 | 180047 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/05/10 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/05/10 | 1806604 | systems/win32/w32tex/win64/uptex-w64.tar.xz 2021/05/10 | 179505 | install/macros/latex/contrib/qrbill.tds.zip -2021/05/10 | 179378 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma 2021/05/10 | 1790 | macros/latex/contrib/europecv/ecvmt.def 2021/05/10 | 1783333 | macros/generic/xint/xint.dtx 2021/05/10 | 1755 | macros/latex/contrib/europecv/ecvpl.def -2021/05/10 | 174948 | systems/texlive/tlnet/archive/texlive-docindex.doc.r59142.tar.xz 2021/05/10 | 1735 | macros/latex/contrib/europecv/ecvca.def -2021/05/10 | 1725548 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/05/10 | 17221527 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2021/05/10 | 1720 | macros/latex/contrib/europecv/ecvno.def 2021/05/10 | 1713 | macros/latex/contrib/europecv/ecvnl.def -2021/05/10 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma 2021/05/10 | 163 | macros/latex/contrib/europecv/examples/minimal.tex -2021/05/10 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/05/10 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/05/10 | 16111 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/05/10 | 1613572 | systems/win32/w32tex/makeindex-w32.tar.xz 2021/05/10 | 1599 | macros/latex/contrib/qrbill/README.md -2021/05/10 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma 2021/05/10 | 1546 | macros/latex/contrib/qrbill/qrbill.ins -2021/05/10 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/05/10 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/05/10 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 2021/05/10 | 152797 | language/japanese/pxjahyper.zip -2021/05/10 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma 2021/05/10 | 148752 | systems/texlive/tlnet/archive/circuitikz.r59147.tar.xz 2021/05/10 | 1487516 | systems/texlive/tlnet/archive/circuitikz.doc.r59147.tar.xz -2021/05/10 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/05/10 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/05/10 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/05/10 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 2021/05/10 | 14480 | macros/latex/contrib/europecv/examples/europasslogo-eps-converted-to.pdf -2021/05/10 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma -2021/05/10 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/05/10 | 1424810 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/05/10 | 136426 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/05/10 | 144766492 | systems/win32/w32tex/context.tar.xz 2021/05/10 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r59145.tar.xz -2021/05/10 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/05/10 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/05/10 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/05/10 | 1307722 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/05/10 | 1295415 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma 2021/05/10 | 12928 | systems/texlive/tlnet/archive/easybook.r59148.tar.xz -2021/05/10 | 1281102 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/05/10 | 1270662 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/05/10 | 1269821 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/05/10 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma 2021/05/10 | 124450 | macros/generic/xint/CHANGES.html 2021/05/10 | 1210160 | systems/texlive/tlnet/archive/tex4ht.source.r59145.tar.xz 2021/05/10 | 1187341 | macros/latex/contrib/europecv.zip -2021/05/10 | 1186433 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/05/10 | 1185783 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/05/10 | 1171732 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/05/10 | 116929 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma 2021/05/10 | 116856 | macros/latex/contrib/easybook/easybook.dtx -2021/05/10 | 115468 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/05/10 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini 2021/05/10 | 1153 | macros/latex/contrib/qrbill/qrbill_swiss-cross.pdf 2021/05/10 | 1128625 | macros/generic/xint/sourcexint.pdf -2021/05/10 | 112250 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma 2021/05/10 | 1107 | macros/latex/contrib/qrbill/qrbill-vocab.csv -2021/05/10 | 109274 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/05/10 | 107972 | systems/texlive/tlnet/archive/texlive-scripts.r59153.tar.xz -2021/05/10 | 1078876 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/05/10 | 1082700 | systems/win32/w32tex/win64/makeindex-w64.tar.xz +2021/05/10 | 10715964 | systems/win32/w32tex/ptex-w32.tar.xz 2021/05/10 | 10700 | usergrps/usergrps/de.html 2021/05/10 | 10655 | usergrps/usergrps/pl.html 2021/05/10 | 10650 | usergrps/usergrps/hu.html @@ -320,12 +468,10 @@ 2021/05/10 | 10490 | usergrps/usergrps/kr.html 2021/05/10 | 10467 | usergrps/usergrps/bg.html 2021/05/10 | 10466 | usergrps/usergrps/nl.html -2021/05/10 | 104624 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma 2021/05/10 | 10429 | usergrps/usergrps/cn.html 2021/05/10 | 10373 | usergrps/usergrps/it.html 2021/05/10 | 10370 | usergrps/usergrps/es.html 2021/05/10 | 10353 | usergrps/usergrps/gb.html -2021/05/10 | 103324 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma 2021/05/10 | 1032000 | macros/generic/xint/xint.pdf 2021/05/10 | 10261 | usergrps/usergrps/us.html 2021/05/10 | 10246 | usergrps/usergrps/gr.html @@ -334,7 +480,6 @@ 2021/05/10 | 10219 | usergrps/usergrps/pt.html 2021/05/10 | 10201 | usergrps/usergrps/vn.html 2021/05/10 | 10191 | usergrps/usergrps/no.html -2021/05/10 | 101765 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma 2021/05/10 | 10164 | usergrps/usergrps/br.html 2021/05/10 | 10150 | usergrps/usergrps/ca.html 2021/05/10 | 10146 | usergrps/usergrps/ie.html @@ -350,7 +495,6 @@ 2021/05/09 | 999720 | systems/texlive/tlnet/archive/biblatex-gost.doc.r59135.tar.xz 2021/05/09 | 99663 | macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf 2021/05/09 | 98926 | macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf -2021/05/09 | 98150128 | systems/win32/w32tex/pgfcontrib.tar.xz 2021/05/09 | 97975 | macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf 2021/05/09 | 97786 | macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf 2021/05/09 | 96 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_ex.tex @@ -401,7 +545,6 @@ 2021/05/09 | 82935 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf 2021/05/09 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf 2021/05/09 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf -2021/05/09 | 827778 | systems/win32/w32tex/ChangeLog 2021/05/09 | 82746 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf 2021/05/09 | 82590 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf 2021/05/09 | 82553 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf @@ -447,7 +590,6 @@ 2021/05/09 | 690730 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty 2021/05/09 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex 2021/05/09 | 68141 | macros/latex/contrib/changes/examples/changes.example.final.pdf -2021/05/09 | 6723 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/05/09 | 66 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_in.tex 2021/05/09 | 65765323 | systems/win32/miktex/tm/packages/rmannot.tar.lzma 2021/05/09 | 6545 | systems/win32/miktex/tm/packages/xintsession.tar.lzma @@ -510,10 +652,7 @@ 2021/05/09 | 393856 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty 2021/05/09 | 38 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_in.tex 2021/05/09 | 38 | macros/latex/contrib/changes/userdoc/path_doc_examples_in.tex -2021/05/09 | 3868436 | systems/win32/w32tex/luajittex-w32.tar.xz -2021/05/09 | 3843400 | systems/win32/w32tex/luajittex-dev-w32.tar.xz 2021/05/09 | 38432 | macros/latex/contrib/changes/userdoc/changes.en.tex -2021/05/09 | 3827132 | systems/win32/w32tex/luajittex-exp-w32.tar.xz 2021/05/09 | 37 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_in.tex 2021/05/09 | 376311 | macros/latex/contrib/changes/changes.ngerman.pdf 2021/05/09 | 3758 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex @@ -522,14 +661,10 @@ 2021/05/09 | 364086 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty 2021/05/09 | 359576 | systems/texlive/tlnet/archive/lua-physical.r59138.tar.xz 2021/05/09 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex -2021/05/09 | 35248816 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/05/09 | 34 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_in.tex 2021/05/09 | 34956 | graphics/pgf/contrib/circuitikz/doc/changelog.tex 2021/05/09 | 34875 | systems/win32/miktex/tm/packages/ninecolors.tar.lzma 2021/05/09 | 34691 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex -2021/05/09 | 3465136 | systems/win32/w32tex/win64/luajittex-w64.tar.xz -2021/05/09 | 3463920 | systems/win32/w32tex/win64/luajittex-exp-w64.tar.xz -2021/05/09 | 3457392 | systems/win32/w32tex/win64/luajittex-dev-w64.tar.xz 2021/05/09 | 344 | systems/texlive/tlnet/archive/asymptote.amd64-netbsd.r59140.tar.xz 2021/05/09 | 3447864 | dviware/dviout/dviout3190-inst.zip 2021/05/09 | 3387625 | systems/win32/miktex/tm/packages/worldflags.tar.lzma @@ -541,11 +676,8 @@ 2021/05/09 | 3277 | graphics/pgf/contrib/circuitikz/README.md 2021/05/09 | 321763 | systems/win32/miktex/tm/packages/mparhack.tar.lzma 2021/05/09 | 31 | macros/latex/contrib/changes/userdoc/setauthormarkup_in.tex -2021/05/09 | 3137480 | systems/win32/w32tex/win64/luatex-w64.tar.xz 2021/05/09 | 3130 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex -2021/05/09 | 3130560 | systems/win32/w32tex/win64/luatex-dev-w64.tar.xz 2021/05/09 | 3121341 | dviware/dviout/dviout3190-source.zip -2021/05/09 | 3116692 | systems/win32/w32tex/win64/luatex-exp-w64.tar.xz 2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setsocextension_in.tex 2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setlocextension_in.tex 2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setaddedmarkup_in.tex @@ -581,9 +713,6 @@ 2021/05/09 | 199924 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf 2021/05/09 | 196 | macros/latex/contrib/changes/userdoc/setcommentmarkup_ex.tex 2021/05/09 | 1930 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex -2021/05/09 | 18924336 | systems/win32/w32tex/luatex-w32.tar.xz -2021/05/09 | 18922120 | systems/win32/w32tex/luatex-exp-w32.tar.xz -2021/05/09 | 18921652 | systems/win32/w32tex/luatex-dev-w32.tar.xz 2021/05/09 | 1880 | systems/texlive/tlnet/archive/mindflow.r59137.tar.xz 2021/05/09 | 186516 | systems/texlive/tlnet/archive/mindflow.doc.r59137.tar.xz 2021/05/09 | 182 | macros/latex/contrib/changes/userdoc/added_ex.tex @@ -619,6 +748,7 @@ 2021/05/09 | 110514 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf 2021/05/09 | 11043 | macros/latex/contrib/changes/pyMergeChanges.py 2021/05/09 | 109 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_ex.tex +2021/05/09 | 1091448 | support/TeX4ht/source/tex4ht-4ht.tex 2021/05/09 | 106 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_ex.tex 2021/05/09 | 106148 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex 2021/05/09 | 104 | macros/latex/contrib/changes/userdoc/setsummarytowidth_ex.tex @@ -641,7 +771,6 @@ 2021/05/08 | 8766 | graphics/pgf/contrib/pgfplots/tex/meshplothandler.lua 2021/05/08 | 8697 | graphics/pgf/contrib/pgfplots/scripts/matlab2pgfplots.m 2021/05/08 | 86724 | systems/texlive/tlnet/archive/coffeestains.r59115.tar.xz -2021/05/08 | 8633640 | systems/win32/w32tex/uptex-w32.tar.xz 2021/05/08 | 8612 | graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_leq.code.tex 2021/05/08 | 855296 | macros/luatex/latex/lua-physical.zip 2021/05/08 | 8521 | graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.dateplot.code.tex @@ -681,7 +810,6 @@ 2021/05/08 | 5551902 | systems/win32/miktex/tm/packages/latex-tools-dev.tar.lzma 2021/05/08 | 5531876 | systems/win32/w32tex/aleph-w32.tar.xz 2021/05/08 | 5492 | macros/luatex/latex/lua-physical/src/physical-astronomical.lua -2021/05/08 | 52801796 | systems/win32/w32tex/latex-dev.tar.xz 2021/05/08 | 52565 | macros/luatex/latex/lua-physical/lua-physical_example.pdf 2021/05/08 | 524781 | systems/win32/miktex/tm/packages/easybook.tar.lzma 2021/05/08 | 5225 | macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.tex @@ -697,9 +825,6 @@ 2021/05/08 | 4782 | macros/luatex/latex/lua-physical/src/physical-dimension.lua 2021/05/08 | 46361 | graphics/pgf/contrib/pgfplots/tex/pgflibraryfillbetween.code.tex 2021/05/08 | 462576 | systems/win32/miktex/tm/packages/fontsetup.tar.lzma -2021/05/08 | 455 | systems/texlive/tlnet/update-tlmgr-r59127.sh.sha512.asc -2021/05/08 | 455 | systems/texlive/tlnet/update-tlmgr-r59127.exe.sha512.asc -2021/05/08 | 45571636 | systems/win32/w32tex/web2c-w32.tar.xz 2021/05/08 | 4493 | macros/luatex/latex/lua-physical/src/physical-unit.lua 2021/05/08 | 447 | info/tlmgrbasics/README 2021/05/08 | 44756 | systems/texlive/tlnet/archive/l3packages.source.r59118.tar.xz @@ -709,12 +834,10 @@ 2021/05/08 | 4288 | graphics/pgf/contrib/pgfplots/tex/pgfplotsdeque.code.tex 2021/05/08 | 42715 | graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.statistics.code.tex 2021/05/08 | 4269 | graphics/pgf/contrib/pgfplots/tex/colormap.lua -2021/05/08 | 4035368 | systems/texlive/tlnet/update-tlmgr-r59127.exe 2021/05/08 | 395952 | graphics/pgf/contrib/pgfplots/doc/pgfplotstodo.pdf 2021/05/08 | 39101 | graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryintersections.code.tex 2021/05/08 | 3893 | macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/ltxdockit.cls 2021/05/08 | 375690 | graphics/pgf/contrib/pgfplots/doc/TeX-programming-notes.pdf -2021/05/08 | 3755996 | systems/win32/w32tex/win64/web2c-w64.tar.xz 2021/05/08 | 374887 | systems/win32/miktex/tm/packages/latexmk.tar.lzma 2021/05/08 | 3700 | graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfmanual.code.tex 2021/05/08 | 368 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx @@ -792,20 +915,17 @@ 2021/05/08 | 23050 | graphics/pgf/contrib/pgfplots/tex/pgfplotsbinary.code.tex 2021/05/08 | 22979 | graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgflibraryluamath.code.tex 2021/05/08 | 22890 | macros/luatex/latex/lua-physical/README.md -2021/05/08 | 228784 | systems/texlive/tlnet/archive/texlive.infra.r59127.tar.xz 2021/05/08 | 22701 | graphics/pgf/contrib/pgfplots/tex/pgflibrarypgfplots.surfshading.code.tex 2021/05/08 | 226 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx 2021/05/08 | 226 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx 2021/05/08 | 22428 | graphics/pgf/contrib/pgfplots/tex/pgfplots.errorbars.code.tex 2021/05/08 | 22358 | info/tlmgrbasics/doc/tlmgr.tex -2021/05/08 | 2227952 | systems/win32/w32tex/win64/context-w64.tar.xz 2021/05/08 | 22156260 | systems/win32/w32tex/pdftex-w32.tar.xz 2021/05/08 | 21935 | graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.groupplots.code.tex 2021/05/08 | 21532 | systems/texlive/tlnet/archive/l3packages.r59118.tar.xz 2021/05/08 | 2120 | systems/texlive/tlnet/archive/ninecolors.r59119.tar.xz 2021/05/08 | 2097438 | systems/win32/miktex/tm/packages/elegantbook.tar.lzma 2021/05/08 | 2095910 | systems/win32/miktex/tm/packages/latex-graphics-dev.tar.lzma -2021/05/08 | 207764 | systems/texlive/tlnet/archive/texlive.infra.doc.r59127.tar.xz 2021/05/08 | 20700 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx 2021/05/08 | 20641 | graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfcoreexternal.code.tex 2021/05/08 | 2048620 | graphics/pgf/contrib/pgfplots/doc/pgfplots.doc.src.tar.bz2 @@ -817,7 +937,6 @@ 2021/05/08 | 18861 | graphics/pgf/contrib/pgfplots/tex/pgfplotsmatrix.code.tex 2021/05/08 | 18861341 | systems/win32/miktex/tm/packages/hvfloat.tar.lzma 2021/05/08 | 1875380 | systems/win32/miktex/tm/packages/l3packages.tar.lzma -2021/05/08 | 1873268 | systems/win32/w32tex/win64/ptex-w64.tar.xz 2021/05/08 | 1869 | graphics/pgf/contrib/pgfplots/tex/pgfplots.lua 2021/05/08 | 185056 | systems/texlive/tlnet/archive/coffeestains.doc.r59115.tar.xz 2021/05/08 | 18491 | graphics/pgf/contrib/pgfplots/tex/tikzlibraryfillbetween.code.tex @@ -826,7 +945,6 @@ 2021/05/08 | 180 | graphics/pgf/contrib/pgfplots/INSTALL 2021/05/08 | 18092 | graphics/pgf/contrib/pgfplots/doc/COPYING 2021/05/08 | 1808212 | systems/texlive/tlnet/archive/l3packages.doc.r59118.tar.xz -2021/05/08 | 1806104 | systems/win32/w32tex/win64/uptex-w64.tar.xz 2021/05/08 | 17756 | graphics/pgf/contrib/pgfplots/tex/parser.lua 2021/05/08 | 17662 | graphics/pgf/contrib/pgfplots/tex/pgfplotstexio.lua 2021/05/08 | 17580294 | install/graphics/pgf/contrib/pgfplots.tds.zip @@ -857,8 +975,6 @@ 2021/05/08 | 16090 | graphics/pgf/contrib/pgfplots/tex/tikzlibrarydecorations.softclip.code.tex 2021/05/08 | 1607 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx 2021/05/08 | 1587 | macros/luatex/latex/lua-physical/src/physical.lua -2021/05/08 | 154 | systems/texlive/tlnet/update-tlmgr-r59127.exe.sha512 -2021/05/08 | 153 | systems/texlive/tlnet/update-tlmgr-r59127.sh.sha512 2021/05/08 | 15144 | systems/texlive/tlnet/archive/pxjahyper.r59116.tar.xz 2021/05/08 | 151039 | info/tlmgrbasics.zip 2021/05/08 | 15093 | macros/luatex/latex/lua-physical/src/physical-number.lua @@ -868,7 +984,6 @@ 2021/05/08 | 1456 | systems/texlive/tlnet/archive/collection-pictures.r59115.tar.xz 2021/05/08 | 144 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx 2021/05/08 | 144813 | info/tlmgrbasics/doc/tlmgr.pdf -2021/05/08 | 144772276 | systems/win32/w32tex/context.tar.xz 2021/05/08 | 1440 | graphics/pgf/contrib/pgfplots/tex/pgfplotstable.sty 2021/05/08 | 14400 | systems/texlive/tlnet/archive/l3backend.r59118.tar.xz 2021/05/08 | 14358 | graphics/pgf/contrib/pgfplots/tex/pgfsys-luatexpatch.def @@ -908,7 +1023,6 @@ 2021/05/08 | 1098 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx 2021/05/08 | 1097 | graphics/pgf/contrib/pgfplots/tex/t-pgfplotstable.tex 2021/05/08 | 10894716 | systems/texlive/tlnet/archive/l3kernel.doc.r59118.tar.xz -2021/05/08 | 10703832 | systems/win32/w32tex/ptex-w32.tar.xz 2021/05/08 | 1069 | macros/luatex/latex/lua-physical/LICENSE 2021/05/08 | 1061216 | macros/latex/contrib/biblatex-contrib/biblatex-gost.zip 2021/05/08 | 1051 | graphics/pgf/contrib/pgfplots/tex/pgflibrarypgfplots.surfshading.pgfsys-xetex.def @@ -916,66 +1030,33 @@ 2021/05/08 | 1045028 | systems/win32/miktex/tm/packages/latexindent.tar.lzma 2021/05/08 | 1040165 | graphics/pgf/contrib/pgfplots/source/pgfplotstests.tar.bz2 2021/05/08 | 1021496 | systems/texlive/tlnet/archive/asymptote.aarch64-linux.r59123.tar.xz -2021/05/08 | 10024078 | systems/texlive/tlnet/update-tlmgr-r59127.sh -2021/05/07 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex 2021/05/07 | 99100 | systems/texlive/tlnet/archive/nicematrix.source.r59105.tar.xz 2021/05/07 | 9602 | support/latexindent/LatexIndent/HiddenChildren.pm 2021/05/07 | 9559 | support/latexindent/LatexIndent/IfElseFi.pm -2021/05/07 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex -2021/05/07 | 9436 | macros/latex/contrib/l3kernel/l3flag.dtx 2021/05/07 | 9353 | support/latexindent/documentation/subsec-conflicting-poly-switches.tex 2021/05/07 | 9258 | support/latexindent/documentation/sec-fine-tuning.tex -2021/05/07 | 92548 | macros/latex/contrib/l3kernel/l3color.dtx -2021/05/07 | 9216 | macros/latex/contrib/l3kernel/l3unicode.dtx 2021/05/07 | 921106 | install/macros/latex/contrib/l3backend.tds.zip -2021/05/07 | 90051 | macros/latex/contrib/l3kernel/l3seq.dtx 2021/05/07 | 898994 | support/latexindent/documentation/latexindent.pdf -2021/05/07 | 89403 | macros/latex/contrib/l3kernel/l3int.dtx 2021/05/07 | 885873 | macros/latex/contrib/l3backend.zip 2021/05/07 | 884350 | macros/latex/contrib/l3backend/l3backend-code.pdf 2021/05/07 | 8548 | systems/texlive/tlnet/archive/hvfloat.r59104.tar.xz -2021/05/07 | 85364 | macros/latex/contrib/l3kernel/l3coffins.dtx 2021/05/07 | 8498 | macros/latex/contrib/l3backend/l3backend-opacity.dtx -2021/05/07 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex -2021/05/07 | 84816 | macros/latex/contrib/l3kernel/l3fp-basics.dtx 2021/05/07 | 84537 | macros/latex/contrib/l3packages/xparse-2018-04-12.sty 2021/05/07 | 834 | support/latexindent/LatexIndent/Version.pm 2021/05/07 | 80141 | macros/latex/contrib/l3packages/xparse-generic.tex -2021/05/07 | 79798 | macros/latex/contrib/l3kernel/l3names.dtx -2021/05/07 | 79776 | macros/latex/contrib/l3kernel/l3prefixes.pdf 2021/05/07 | 7970 | support/latexindent/documentation/sec-introduction.tex -2021/05/07 | 79632 | macros/latex/contrib/l3kernel/l3msg.dtx 2021/05/07 | 7945 | support/latexindent/LatexIndent/LogFile.pm 2021/05/07 | 789674 | macros/latex/contrib/l3build.zip -2021/05/07 | 78772 | macros/latex/contrib/l3kernel/l3box.dtx -2021/05/07 | 77963 | macros/latex/contrib/l3kernel/l3clist.dtx -2021/05/07 | 76404 | macros/latex/contrib/l3kernel/l3skip.dtx -2021/05/07 | 7454 | macros/latex/contrib/l3kernel/l3fp-assign.dtx -2021/05/07 | 73845 | macros/latex/contrib/l3kernel/l3fp-trig.dtx -2021/05/07 | 73411 | macros/latex/contrib/l3kernel/l3str.dtx 2021/05/07 | 7223 | support/latexindent/documentation/subsubsec-no-add-remaining-code-blocks.tex 2021/05/07 | 7161 | support/latexindent/documentation/figure-schematic.png -2021/05/07 | 70911 | macros/latex/contrib/l3kernel/expl3.dtx -2021/05/07 | 70578 | macros/latex/contrib/l3kernel/l3fp.dtx -2021/05/07 | 69576 | macros/latex/contrib/l3kernel/l3candidates.dtx 2021/05/07 | 6956 | macros/latex/contrib/l3packages/xfp.dtx -2021/05/07 | 68545 | macros/latex/contrib/l3kernel/l3text-case.dtx 2021/05/07 | 6793 | support/latexindent/LatexIndent/MandatoryArgument.pm -2021/05/07 | 6766562 | macros/latex/contrib/l3kernel/source3.pdf -2021/05/07 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex 2021/05/07 | 6589 | support/latexindent/LatexIndent/FileExtension.pm 2021/05/07 | 65564 | systems/texlive/tlnet/archive/froufrou.doc.r59103.tar.xz 2021/05/07 | 6528 | systems/texlive/tlnet/archive/froufrou.source.r59103.tar.xz -2021/05/07 | 65286 | macros/latex/contrib/l3kernel/l3prg.dtx -2021/05/07 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex -2021/05/07 | 6450 | macros/latex/contrib/l3kernel/l3term-glossary.tex -2021/05/07 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex 2021/05/07 | 6408 | support/latexindent/LatexIndent/Item.pm 2021/05/07 | 6371487 | support/latexindent/latexindent.exe 2021/05/07 | 6353 | support/latexindent/LatexIndent/Environment.pm -2021/05/07 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex -2021/05/07 | 623531 | macros/latex/contrib/l3kernel/expl3.pdf -2021/05/07 | 6227 | macros/latex/contrib/l3kernel/l3.ins 2021/05/07 | 6195 | macros/latex/contrib/l3packages/xparse-2020-10-01.sty 2021/05/07 | 61440 | support/latexindent/documentation/sec-default-user-local.tex 2021/05/07 | 6062 | support/latexindent/LatexIndent/OptionalArgument.pm @@ -986,34 +1067,24 @@ 2021/05/07 | 5926 | graphics/pgf/contrib/coffeestains/coffeestains.tex 2021/05/07 | 5900 | systems/texlive/tlnet/archive/pbalance.r59106.tar.xz 2021/05/07 | 5777 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm -2021/05/07 | 56489 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx 2021/05/07 | 5606 | macros/latex/contrib/l3backend/CHANGELOG.md 2021/05/07 | 549 | macros/latex/contrib/l3backend/README.md 2021/05/07 | 5435 | support/latexindent/LatexIndent/BlankLines.pm -2021/05/07 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex 2021/05/07 | 53790 | macros/latex/contrib/l3packages/xparse.dtx 2021/05/07 | 534372 | macros/latex/contrib/l3packages/xparse.pdf 2021/05/07 | 5330 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm 2021/05/07 | 5284 | support/latexindent/documentation/subsubsec-headings.tex 2021/05/07 | 52219 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm -2021/05/07 | 51514 | macros/latex/contrib/l3kernel/l3prop.dtx -2021/05/07 | 51059 | macros/latex/contrib/l3kernel/l3fp-extended.dtx 2021/05/07 | 500 | systems/texlive/tlnet/archive/comprehensive.r59099.tar.xz -2021/05/07 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex 2021/05/07 | 49598 | systems/texlive/tlnet/tlpkg/installer/config.guess -2021/05/07 | 49386 | macros/latex/contrib/l3kernel/l3fp-expo.dtx -2021/05/07 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex 2021/05/07 | 492 | systems/texlive/tlnet/archive/tlmgr-intro-zh-cn.r59100.tar.xz 2021/05/07 | 492 | support/latexindent/documentation/cmhlistings.tex 2021/05/07 | 4921 | macros/latex/contrib/ninecolors/ninecolors.tex -2021/05/07 | 4890 | macros/latex/contrib/l3kernel/l3news.tex 2021/05/07 | 4869 | support/latexindent/documentation/subsubsec-ifelsefi.tex 2021/05/07 | 48642 | macros/latex/contrib/l3backend/l3backend-pdf.dtx 2021/05/07 | 484972 | macros/latex/contrib/l3packages/xfrac.pdf 2021/05/07 | 479793 | graphics/pgf/contrib/coffeestains/coffeestains.sty 2021/05/07 | 472 | graphics/pgf/contrib/coffeestains/README.md -2021/05/07 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex -2021/05/07 | 47131 | macros/latex/contrib/l3kernel/l3fp-aux.dtx 2021/05/07 | 46755 | support/latexindent/LatexIndent/GetYamlSettings.pm 2021/05/07 | 4602409 | support/latexindent.zip 2021/05/07 | 444724 | systems/texlive/tlnet/archive/tlmgr-intro-zh-cn.doc.r59100.tar.xz @@ -1021,146 +1092,84 @@ 2021/05/07 | 44096 | support/latexindent/documentation/logo.png 2021/05/07 | 440188 | macros/latex/contrib/l3packages/xtemplate.pdf 2021/05/07 | 4355 | support/latexindent/LatexIndent/RoundBrackets.pm -2021/05/07 | 43322 | macros/latex/contrib/l3kernel/l3debug.dtx 2021/05/07 | 4284 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm 2021/05/07 | 4265 | macros/latex/contrib/l3backend/l3backend.ins 2021/05/07 | 4068 | systems/texlive/tlnet/archive/froufrou.r59103.tar.xz -2021/05/07 | 40666 | macros/latex/contrib/l3kernel/l3sort.dtx 2021/05/07 | 40548 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r59101.tar.xz -2021/05/07 | 39757 | macros/latex/contrib/l3kernel/l3prefixes.csv -2021/05/07 | 395934 | macros/latex/contrib/l3kernel/l3news.pdf 2021/05/07 | 39205 | macros/latex/contrib/l3packages/xfrac.dtx 2021/05/07 | 39195 | macros/latex/contrib/l3backend/l3backend-color.dtx 2021/05/07 | 3847 | support/latexindent/documentation/subsubsec-special.tex 2021/05/07 | 369414 | macros/latex/contrib/l3packages/l3keys2e.pdf 2021/05/07 | 3673 | macros/latex/contrib/l3packages/README.md -2021/05/07 | 36621 | macros/latex/contrib/l3kernel/l3text.dtx 2021/05/07 | 3636 | support/latexindent/LatexIndent/Replacement.pm -2021/05/07 | 35775 | macros/latex/contrib/l3kernel/l3quark.dtx 2021/05/07 | 35599 | macros/latex/contrib/ninecolors.zip 2021/05/07 | 3463 | support/latexindent/LatexIndent/Preamble.pm 2021/05/07 | 3451 | support/latexindent/documentation/subsubsec-environments-with-items.tex -2021/05/07 | 3424124 | systems/win32/w32tex/tex4htk-w32.tar.xz 2021/05/07 | 3394 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm 2021/05/07 | 33848 | macros/latex/contrib/l3backend/l3backend-draw.dtx 2021/05/07 | 331827 | macros/latex/contrib/l3packages/xfp.pdf 2021/05/07 | 3273 | support/latexindent/LatexIndent/Tokens.pm 2021/05/07 | 32345 | macros/latex/contrib/ninecolors/ninecolors.pdf -2021/05/07 | 31475 | macros/latex/contrib/l3kernel/l3sys.dtx 2021/05/07 | 310913 | graphics/pgf/contrib/coffeestains.zip -2021/05/07 | 31068 | macros/latex/contrib/l3kernel/l3cctab.dtx -2021/05/07 | 30555 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx -2021/05/07 | 30385 | macros/latex/contrib/l3kernel/l3deprecation.dtx -2021/05/07 | 2994 | macros/latex/contrib/l3kernel/README.md 2021/05/07 | 29910680 | systems/texlive/tlnet/archive/comprehensive.doc.r59099.tar.xz -2021/05/07 | 296251 | macros/latex/contrib/l3kernel/l3styleguide.pdf 2021/05/07 | 29296 | systems/texlive/tlnet/archive/nicematrix.r59105.tar.xz 2021/05/07 | 2902 | support/latexindent/documentation/subsec-partnering-poly-switches.tex -2021/05/07 | 28625 | macros/latex/contrib/l3kernel/CHANGELOG.md -2021/05/07 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex -2021/05/07 | 281754 | macros/latex/contrib/l3kernel/l3regex.dtx 2021/05/07 | 2646 | support/latexindent/latexindent.pl -2021/05/07 | 25732 | macros/latex/contrib/l3kernel/l3fp-random.dtx 2021/05/07 | 2539 | support/latexindent/documentation/sec-conclusions-know-limitations.tex -2021/05/07 | 250134 | macros/latex/contrib/l3kernel/l3news09.pdf -2021/05/07 | 2484 | macros/latex/contrib/l3kernel/l3legacy.dtx 2021/05/07 | 246 | support/latexindent/documentation/references.tex 2021/05/07 | 244384 | systems/texlive/tlnet/archive/pbalance.doc.r59106.tar.xz -2021/05/07 | 242931 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf -2021/05/07 | 24213 | macros/latex/contrib/l3kernel/source3body.tex -2021/05/07 | 2390 | macros/latex/contrib/l3kernel/l3docstrip.dtx 2021/05/07 | 23600 | support/latexindent/LatexIndent/Arguments.pm 2021/05/07 | 23253 | support/latexindent/documentation/latexindent.tex -2021/05/07 | 231313 | macros/latex/contrib/l3kernel/l3term-glossary.pdf -2021/05/07 | 23070 | macros/latex/contrib/l3kernel/l3fp-logic.dtx -2021/05/07 | 2229 | macros/latex/contrib/l3kernel/source3.tex 2021/05/07 | 2212 | support/latexindent/LatexIndent/Logger.pm 2021/05/07 | 2204045 | install/macros/latex/contrib/l3packages.tds.zip 2021/05/07 | 2184804 | macros/latex/contrib/l3packages.zip 2021/05/07 | 21671 | support/latexindent/documentation/sec-replacements.tex -2021/05/07 | 21643 | macros/latex/contrib/l3kernel/l3text-purify.dtx 2021/05/07 | 2118 | support/latexindent/documentation/sec-demonstration.tex -2021/05/07 | 21168 | macros/latex/contrib/l3kernel/l3luatex.dtx 2021/05/07 | 21098 | support/latexindent/LatexIndent/Verbatim.pm -2021/05/07 | 21010 | macros/latex/contrib/l3kernel/l3intarray.dtx 2021/05/07 | 20960 | macros/latex/contrib/l3backend/l3backend-graphics.dtx 2021/05/07 | 20764 | support/latexindent/LatexIndent/ModifyLineBreaks.pm 2021/05/07 | 20505 | support/latexindent/LatexIndent/Indent.pm -2021/05/07 | 204992 | macros/latex/contrib/l3kernel/l3news12.pdf 2021/05/07 | 1990 | support/latexindent/LatexIndent/Switches.pm 2021/05/07 | 19864 | support/latexindent/LatexIndent/Sentence.pm -2021/05/07 | 19644 | macros/latex/contrib/l3kernel/l3fp-convert.dtx 2021/05/07 | 19151668 | systems/texlive/tlnet/archive/hvfloat.doc.r59104.tar.xz -2021/05/07 | 1908 | macros/latex/contrib/l3kernel/interface3.tex 2021/05/07 | 1896 | support/latexindent/documentation/figure-schematic.tex 2021/05/07 | 18928 | support/latexindent/documentation/sec-how-to-use.tex 2021/05/07 | 1891 | support/latexindent/documentation/subsec-noAdditionalIndent-indentRules.tex 2021/05/07 | 1875 | support/latexindent/README 2021/05/07 | 18727 | support/latexindent/LatexIndent/Document.pm -2021/05/07 | 18579 | macros/latex/contrib/l3kernel/l3fp-round.dtx 2021/05/07 | 182030 | graphics/pgf/contrib/coffeestains/coffeestains.pdf 2021/05/07 | 18153 | support/latexindent/defaultSettings.yaml 2021/05/07 | 179867 | macros/latex/contrib/mindflow/mindflow.pdf -2021/05/07 | 1704394 | macros/latex/contrib/l3kernel/interface3.pdf -2021/05/07 | 170069 | macros/latex/contrib/l3kernel/l3news11.pdf 2021/05/07 | 1680940 | systems/texlive/tlnet/archive/nicematrix.doc.r59105.tar.xz 2021/05/07 | 16693 | support/latexindent/documentation/subsubsec-environments-and-their-arguments.tex 2021/05/07 | 16611 | macros/latex/contrib/l3backend/l3backend-basics.dtx 2021/05/07 | 16523 | macros/latex/contrib/ninecolors/ninecolors.sty -2021/05/07 | 163405 | macros/latex/contrib/l3kernel/l3news08.pdf 2021/05/07 | 1616860 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r59101.tar.xz 2021/05/07 | 1595 | support/latexindent/documentation/logo.tex 2021/05/07 | 1561 | macros/latex/contrib/l3packages/xtemplate.ins 2021/05/07 | 1558 | support/latexindent/latexindent-module-installer.pl -2021/05/07 | 155524 | macros/latex/contrib/l3kernel/l3doc.dtx -2021/05/07 | 151853 | macros/latex/contrib/l3kernel/l3docstrip.pdf -2021/05/07 | 151572 | macros/latex/contrib/l3kernel/l3news06.pdf -2021/05/07 | 15138 | macros/latex/contrib/l3kernel/l3bootstrap.dtx -2021/05/07 | 150672 | macros/latex/contrib/l3kernel/l3news02.pdf -2021/05/07 | 150289 | macros/latex/contrib/l3kernel/l3news10.pdf -2021/05/07 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex -2021/05/07 | 14882 | macros/latex/contrib/l3kernel/l3pdf.dtx -2021/05/07 | 148707 | macros/latex/contrib/l3kernel/l3news03.pdf 2021/05/07 | 1483 | support/latexindent/LatexIndent/DoubleBackSlash.pm 2021/05/07 | 1478 | support/latexindent/documentation/title.tex 2021/05/07 | 14669 | macros/latex/contrib/l3backend/l3backend-header.dtx 2021/05/07 | 146440 | systems/texlive/tlnet/archive/texlive-msg-translations.r59096.tar.xz 2021/05/07 | 1444 | macros/latex/contrib/l3packages/l3keys2e-demo.tex 2021/05/07 | 14406 | macros/latex/contrib/l3backend/l3backend-box.dtx -2021/05/07 | 142047 | macros/latex/contrib/l3kernel/l3tl.dtx 2021/05/07 | 14049 | support/latexindent/documentation/subsec-commands-and-their-options.tex -2021/05/07 | 134375 | macros/latex/contrib/l3kernel/l3file.dtx 2021/05/07 | 1331 | macros/latex/contrib/l3backend/l3backend-code.tex 2021/05/07 | 13154 | support/latexindent/LatexIndent/Special.pm 2021/05/07 | 1306 | macros/latex/contrib/l3packages/xfrac.ins -2021/05/07 | 12891 | macros/latex/contrib/l3kernel/l3fp-traps.dtx -2021/05/07 | 12869265 | install/macros/latex/contrib/l3kernel.tds.zip -2021/05/07 | 128312 | macros/latex/contrib/l3kernel/l3news07.pdf -2021/05/07 | 127625 | macros/latex/contrib/l3kernel/l3basics.dtx 2021/05/07 | 1272 | macros/latex/contrib/l3packages/xparse.ins 2021/05/07 | 12661 | support/latexindent/LatexIndent/Braces.pm -2021/05/07 | 12630403 | macros/latex/contrib/l3kernel.zip -2021/05/07 | 124831 | macros/latex/contrib/l3kernel/l3token.dtx 2021/05/07 | 1228 | macros/latex/contrib/l3packages/l3keys2e.ins -2021/05/07 | 122713 | macros/latex/contrib/l3kernel/l3news01.pdf 2021/05/07 | 1191 | macros/latex/contrib/l3packages/xfp.ins -2021/05/07 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex 2021/05/07 | 11864 | systems/texlive/tlnet/archive/pbalance.source.r59106.tar.xz 2021/05/07 | 11862 | support/latexindent/LatexIndent/FileContents.pm -2021/05/07 | 11808 | macros/latex/contrib/l3kernel/l3fparray.dtx 2021/05/07 | 11785 | support/latexindent/documentation/appendices.tex 2021/05/07 | 11613 | macros/latex/contrib/l3packages/l3keys2e.dtx 2021/05/07 | 11577 | systems/texlive/tlnet/tlpkg/TeXLive/TLConfig.pm -2021/05/07 | 115061 | macros/latex/contrib/l3kernel/l3keys.dtx 2021/05/07 | 11474 | macros/latex/contrib/mindflow/mindflow.dtx -2021/05/07 | 114588 | macros/latex/contrib/l3kernel/l3news04.pdf -2021/05/07 | 114418 | macros/latex/contrib/l3kernel/l3str-convert.dtx -2021/05/07 | 112485 | macros/latex/contrib/l3kernel/l3news05.pdf 2021/05/07 | 110282 | support/latexindent/documentation/sec-the-m-switch.tex 2021/05/07 | 10824 | support/latexindent/LatexIndent/Heading.pm -2021/05/07 | 107921 | macros/latex/contrib/l3kernel/l3expan.dtx -2021/05/07 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex -2021/05/07 | 105522 | macros/latex/contrib/l3kernel/l3fp-parse.dtx 2021/05/07 | 10361 | support/latexindent/LatexIndent/Command.pm 2021/05/07 | 10135 | support/latexindent/documentation/sec-indent-config-and-settings.tex 2021/05/07 | 100247 | macros/latex/contrib/l3packages/xtemplate.dtx @@ -1175,7 +1184,6 @@ 2021/05/06 | 824 | info/tlmgr-intro-zh-cn/latexmkrc 2021/05/06 | 810 | info/symbols/comprehensive/source/makefakestarfont 2021/05/06 | 8061 | info/symbols/comprehensive/source/makefakeMnSymbol -2021/05/06 | 79376 | systems/texlive/tlnet/archive/xint.r59089.tar.xz 2021/05/06 | 793716 | install/macros/latex/contrib/l3build.tds.zip 2021/05/06 | 77925 | macros/latex/contrib/hvfloat/doc/examples/capPos.pdf 2021/05/06 | 7629 | macros/latex/contrib/l3build/l3build-arguments.lua @@ -1190,6 +1198,7 @@ 2021/05/06 | 651 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex 2021/05/06 | 6479 | macros/plain/contrib/xintsession.zip 2021/05/06 | 609715 | macros/latex/contrib/nicematrix/nicematrix.dtx +2021/05/06 | 607413 | support/TeX4ht/source/tex4ht-html4.tex 2021/05/06 | 60024353 | info/symbols/comprehensive.zip 2021/05/06 | 5946 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx 2021/05/06 | 58771 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm @@ -1211,7 +1220,6 @@ 2021/05/06 | 41 | info/symbols/comprehensive/source/lightbulb.map 2021/05/06 | 4107 | info/symbols/comprehensive/source/teubner-subset.sty 2021/05/06 | 376582 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf -2021/05/06 | 370820 | systems/texlive/tlnet/archive/xint.source.r59089.tar.xz 2021/05/06 | 3673 | info/symbols/comprehensive/source/lightbulb.eps 2021/05/06 | 34564 | macros/latex/contrib/l3build/l3build-check.lua 2021/05/06 | 332376 | systems/texlive/tlnet/archive/dvipdfmx.win32.r59085.tar.xz @@ -1235,7 +1243,6 @@ 2021/05/06 | 2158 | info/symbols/comprehensive/source/makefakeworldflags 2021/05/06 | 2145 | macros/latex/contrib/l3build/l3build-clean.lua 2021/05/06 | 213015 | info/symbols/comprehensive/SYMLIST -2021/05/06 | 2108880 | systems/texlive/tlnet/archive/xint.doc.r59089.tar.xz 2021/05/06 | 2071 | macros/latex/contrib/froufrou/froufrou.ins 2021/05/06 | 1928549 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip 2021/05/06 | 1915138 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf @@ -1251,6 +1258,8 @@ 2021/05/06 | 166269 | macros/latex/contrib/nicematrix/nicematrix-french.tex 2021/05/06 | 164525 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx 2021/05/06 | 1642 | info/symbols/comprehensive/source/makefakecmupint +2021/05/06 | 15 | support/TeX4ht/source/extra-bin/xmllint +2021/05/06 | 15 | support/TeX4ht/source/extra-bin/vcss 2021/05/06 | 15555 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx 2021/05/06 | 15514 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx 2021/05/06 | 15506 | macros/latex/contrib/froufrou/froufrou.dtx @@ -1327,404 +1336,3 @@ 2021/05/05 | 117040 | systems/texlive/tlnet/archive/ut-thesis.doc.r59078.tar.xz 2021/05/05 | 103789 | graphics/mcf2graph/mcf2graph.mf 2021/05/05 | 1030 | info/tlmgr-intro-zh-cn/body/examples.tex -2021/05/04 | 99 | macros/latex-dev/base/ltpara-code.tex -2021/05/04 | 9809 | macros/latex-dev/base/ltnews21.tex -2021/05/04 | 9583 | macros/latex-dev/base/format.ins -2021/05/04 | 9562 | macros/latex-dev/base/ltcntrl.dtx -2021/05/04 | 9493 | macros/latex-dev/required/tools/shellesc.dtx -2021/05/04 | 9400 | macros/latex-dev/base/syntonly.dtx -2021/05/04 | 9373 | macros/latex-dev/base/preload.dtx -2021/05/04 | 90917 | macros/latex-dev/base/fntguide.tex -2021/05/04 | 9068 | macros/latex-dev/base/lppl-1-0.txt -2021/05/04 | 90126 | macros/latex-dev/base/lttextcomp.dtx -2021/05/04 | 89927 | macros/latex-dev/base/utf8ienc.dtx -2021/05/04 | 8981 | macros/latex-dev/required/tools/rawfonts.dtx -2021/05/04 | 89718 | macros/latex-dev/base/slides.dtx -2021/05/04 | 8863 | macros/latex-dev/base/ltnews17.tex -2021/05/04 | 8736 | macros/latex-dev/base/ltthm.dtx -2021/05/04 | 8631 | macros/latex-dev/base/oldlfont.dtx -2021/05/04 | 85817 | macros/latex-dev/base/ltdefns.dtx -2021/05/04 | 8531 | macros/latex-dev/base/source2edoc.cls -2021/05/04 | 8496 | macros/latex-dev/base/texpert.txt -2021/05/04 | 8259 | macros/latex-dev/base/ltnews.tex -2021/05/04 | 811021 | macros/latex-dev/base/ltshipout-code.pdf -2021/05/04 | 80670 | macros/latex-dev/base/ltfssbas.dtx -2021/05/04 | 784738 | macros/latex-dev/base/ltfilehook-code.pdf -2021/05/04 | 78305 | macros/latex-dev/base/ltshipout.dtx -2021/05/04 | 76725 | macros/latex-dev/base/ltfssini.dtx -2021/05/04 | 76003 | macros/latex-dev/required/tools/longtable.dtx -2021/05/04 | 7524 | macros/latex-dev/base/ltxguide.cls -2021/05/04 | 73674 | macros/latex-dev/required/tools/tools-overview.pdf -2021/05/04 | 7347977 | install/macros/latex-dev/required/latex-tools-dev.tds.zip -2021/05/04 | 7325 | macros/latex-dev/base/ltnews20.tex -2021/05/04 | 7265798 | macros/latex-dev/required/tools.zip -2021/05/04 | 72479 | macros/latex-dev/base/ltfsstrc.dtx -2021/05/04 | 7221 | macros/latex-dev/base/exscale.dtx -2021/05/04 | 72141 | macros/latex-dev/required/tools/verbatim.dtx -2021/05/04 | 7200 | macros/latex-dev/base/sample2e.tex -2021/05/04 | 7109 | macros/latex-dev/base/alltt.dtx -2021/05/04 | 70176 | macros/latex-dev/required/graphics/graphics.dtx -2021/05/04 | 69050 | macros/latex-dev/base/clsguide.tex -2021/05/04 | 69007 | macros/latex-dev/base/ltpictur.dtx -2021/05/04 | 6871 | macros/latex-dev/base/ltnews13.tex -2021/05/04 | 686990 | macros/latex-dev/base/ltcmdhooks-code.pdf -2021/05/04 | 68435 | macros/latex-dev/base/usrguide.tex -2021/05/04 | 6794 | macros/latex-dev/required/tools/delarray.dtx -2021/05/04 | 676691 | macros/latex-dev/base/lthooks-doc.pdf -2021/05/04 | 676545 | macros/latex-dev/base/doc.pdf -2021/05/04 | 6760 | macros/latex-dev/base/slides.ins -2021/05/04 | 6714 | macros/latex-dev/base/latexsym.dtx -2021/05/04 | 655726 | macros/latex-dev/base/ltpara-code.pdf -2021/05/04 | 64748 | macros/latex-dev/base/ltluatex.dtx -2021/05/04 | 639157 | macros/latex/contrib/pm-isomath.zip -2021/05/04 | 6362 | macros/latex-dev/base/newlfont.dtx -2021/05/04 | 63283 | macros/latex-dev/base/letter.dtx -2021/05/04 | 63179 | macros/latex-dev/base/ltfilehook.dtx -2021/05/04 | 6273 | macros/latex-dev/base/ltnews14.tex -2021/05/04 | 624109 | macros/latex/contrib/pm-isomath/pm-isomath.pdf -2021/05/04 | 6223 | macros/latex-dev/required/tools/xr.dtx -2021/05/04 | 6160 | macros/latex-dev/base/ltpar.dtx -2021/05/04 | 61460 | macros/latex-dev/required/tools/bm.dtx -2021/05/04 | 61425 | macros/latex-dev/base/ltfssdcl.dtx -2021/05/04 | 60326 | macros/latex-dev/base/fontdef.dtx -2021/05/04 | 59683 | macros/latex-dev/required/tools/changes.txt -2021/05/04 | 5917 | macros/latex-dev/base/latexrelease.ins -2021/05/04 | 58 | systems/mac/mactex/MacTeXtras-20210504.zip.md5 -2021/05/04 | 58703 | macros/latex-dev/base/ltmiscen.dtx -2021/05/04 | 5864 | macros/latex-dev/base/ltidxglo.dtx -2021/05/04 | 58556 | macros/latex-dev/base/ltfssaxes.dtx -2021/05/04 | 5839 | macros/latex-dev/base/ltnews15.tex -2021/05/04 | 5796 | macros/latex-dev/required/tools/somedefs.dtx -2021/05/04 | 5776 | macros/latex-dev/base/ltnews16.tex -2021/05/04 | 5714 | macros/latex-dev/base/inputenc.ins -2021/05/04 | 5695 | macros/latex-dev/base/ltnews08.tex -2021/05/04 | 5680 | macros/latex-dev/required/tools/tools.ins -2021/05/04 | 5659 | macros/latex-dev/base/ltnews10.tex -2021/05/04 | 562571 | macros/latex-dev/base/ltshipout-doc.pdf -2021/05/04 | 5608 | macros/latex-dev/base/ltnews05.tex -2021/05/04 | 557225 | macros/latex-dev/base/ltpara-doc.pdf -2021/05/04 | 5529 | macros/latex-dev/base/ltnews11.tex -2021/05/04 | 5514 | macros/latex-dev/base/graphpap.dtx -2021/05/04 | 55087 | macros/latex-dev/base/ltfiles.dtx -2021/05/04 | 5506 | macros/latex-dev/base/ltnews27.tex -2021/05/04 | 5506 | macros/latex-dev/base/ltnews04.tex -2021/05/04 | 550002 | macros/latex-dev/base/classes.pdf -2021/05/04 | 5473 | macros/latex-dev/base/ltnews25.tex -2021/05/04 | 54680 | macros/latex-dev/base/ltfloat.dtx -2021/05/04 | 546162 | macros/latex-dev/base/ltnews32.pdf -2021/05/04 | 543890 | macros/latex-dev/base/ltfilehook-doc.pdf -2021/05/04 | 5425 | macros/latex-dev/base/ltnews07.tex -2021/05/04 | 5400 | macros/latex-dev/base/ltnews12.tex -2021/05/04 | 539851 | macros/latex-dev/base/ltnews33.pdf -2021/05/04 | 5390 | macros/latex-dev/base/ltnews06.tex -2021/05/04 | 53579 | macros/latex/contrib/pm-isomath/pm-isomath.dtx -2021/05/04 | 53199 | macros/latex-dev/base/ltplain.dtx -2021/05/04 | 53172 | macros/latex-dev/required/tools/calc.dtx -2021/05/04 | 5293 | macros/latex-dev/base/ltnews09.tex -2021/05/04 | 5283 | macros/latex-dev/base/ltnews02.tex -2021/05/04 | 52813 | macros/latex-dev/base/encguide.tex -2021/05/04 | 5273 | macros/latex-dev/base/cmextra.ins -2021/05/04 | 526312 | macros/latex-dev/base/ltnews31.pdf -2021/05/04 | 52578 | macros/latex-dev/base/lb2.err -2021/05/04 | 5246 | macros/latex-dev/base/ltnews01.tex -2021/05/04 | 5211 | macros/latex-dev/required/tools/tools-overview.tex -2021/05/04 | 5200 | macros/latex-dev/base/ltnews03.tex -2021/05/04 | 516484 | macros/latex-dev/required/tools/array.pdf -2021/05/04 | 516282 | macros/latex-dev/required/tools/multicol.pdf -2021/05/04 | 511855 | macros/latex-dev/base/ltnews30.pdf -2021/05/04 | 510108 | systems/texlive/tlnet/archive/windycity.doc.r59067.tar.xz -2021/05/04 | 50810 | macros/latex-dev/required/graphics/drivers.dtx -2021/05/04 | 5041 | macros/latex-dev/base/latexsym.ins -2021/05/04 | 503349 | macros/latex-dev/base/docstrip.pdf -2021/05/04 | 4964 | macros/latex-dev/required/tools/fileerr.dtx -2021/05/04 | 4959329 | macros/latex-dev/base/source2e.pdf -2021/05/04 | 4950 | macros/latex-dev/base/lthyphen.dtx -2021/05/04 | 493957 | macros/latex-dev/base/fntguide.pdf -2021/05/04 | 48576 | macros/latex-dev/base/ltpara.dtx -2021/05/04 | 47901 | macros/latex-dev/base/lttab.dtx -2021/05/04 | 477922 | macros/latex-dev/base/ltcmdhooks-doc.pdf -2021/05/04 | 4762 | macros/latex-dev/base/ltlength.dtx -2021/05/04 | 468043 | macros/latex-dev/base/latexchanges.pdf -2021/05/04 | 458655 | support/latexmk.zip -2021/05/04 | 454808 | macros/latex-dev/base/ltnews29.pdf -2021/05/04 | 45245 | macros/latex-dev/base/ltspace.dtx -2021/05/04 | 44724 | macros/latex-dev/base/ltfinal.dtx -2021/05/04 | 44409 | macros/latex-dev/base/latexrelease.dtx -2021/05/04 | 4390 | macros/latex-dev/base/ec.ins -2021/05/04 | 43867 | macros/latex-dev/base/ltboxes.dtx -2021/05/04 | 43636 | macros/latex-dev/base/cmfonts.fdd -2021/05/04 | 43453 | macros/latex-dev/required/tools/theorem.dtx -2021/05/04 | 4324 | macros/latex-dev/base/cmfonts.ins -2021/05/04 | 430996 | macros/latex-dev/base/usrguide.pdf -2021/05/04 | 4303 | macros/latex-dev/base/ltalloc.dtx -2021/05/04 | 42708 | macros/latex-dev/base/changes.old.txt -2021/05/04 | 4254 | macros/latex-dev/base/newdc.ins -2021/05/04 | 4221 | macros/latex-dev/base/docstrip.ins -2021/05/04 | 4219 | macros/latex-dev/base/latex209.ins -2021/05/04 | 41831 | macros/latex-dev/base/doc-v3beta.sty -2021/05/04 | 4170 | macros/latex-dev/base/ltnews19.tex -2021/05/04 | 416544875 | systems/mac/mactex/MacTeXtras-20210504.zip -2021/05/04 | 413242 | support/latexmk/latexmk.pl -2021/05/04 | 4113 | macros/latex-dev/required/graphics/epsfig.dtx -2021/05/04 | 40979 | macros/latex-dev/base/ltcmdhooks.dtx -2021/05/04 | 4087 | macros/latex-dev/base/classes.ins -2021/05/04 | 407 | macros/latex/contrib/pm-isomath/README.txt -2021/05/04 | 4079 | macros/latex-dev/base/lablst.tex -2021/05/04 | 40795 | macros/latex-dev/base/latexchanges.tex -2021/05/04 | 402779 | macros/latex-dev/base/clsguide.pdf -2021/05/04 | 39701 | macros/latex-dev/required/tools/ftnright.dtx -2021/05/04 | 3960 | macros/latex-dev/base/olddc.ins -2021/05/04 | 39431 | macros/latex-dev/base/ltmath.dtx -2021/05/04 | 3937 | macros/latex-dev/required/graphics/lscape.dtx -2021/05/04 | 387987 | macros/latex-dev/base/ltnews28.pdf -2021/05/04 | 38735 | macros/latex-dev/base/latex209.dtx -2021/05/04 | 383483 | macros/latex-dev/required/tools/varioref.pdf -2021/05/04 | 382012 | macros/latex-dev/required/tools/longtable.pdf -2021/05/04 | 38111 | systems/mac/mactex/ExtrasFolder.pdf -2021/05/04 | 38031 | macros/latex-dev/base/ltnews18.pdf -2021/05/04 | 379735 | macros/latex-dev/base/ltnews26.pdf -2021/05/04 | 3781 | macros/latex-dev/base/tulm.ins -2021/05/04 | 375158 | macros/latex-dev/base/changes.txt -2021/05/04 | 374051 | macros/latex-dev/base/slides.pdf -2021/05/04 | 3730 | macros/latex-dev/base/ltlogos.dtx -2021/05/04 | 37089 | macros/latex-dev/required/graphics/grfguide.tex -2021/05/04 | 370414 | macros/latex-dev/required/tools/calc.pdf -2021/05/04 | 369809 | macros/latex-dev/required/tools/ftnright.pdf -2021/05/04 | 36157 | macros/latex-dev/base/ltlists.dtx -2021/05/04 | 361356 | macros/latex-dev/base/utf8ienc.pdf -2021/05/04 | 36113 | support/latexmk/CHANGES -2021/05/04 | 35880 | macros/latex-dev/required/tools/tabularx.dtx -2021/05/04 | 35302 | macros/latex-dev/base/ltdirchk.dtx -2021/05/04 | 3514 | macros/latex-dev/base/README.md -2021/05/04 | 351310 | macros/latex-dev/required/tools/theorem.pdf -2021/05/04 | 3434 | macros/latex-dev/base/makeindx.ins -2021/05/04 | 34063495 | install/macros/latex-dev/latex-base-dev.tds.zip -2021/05/04 | 3401 | macros/latex-dev/base/proc.ins -2021/05/04 | 33863 | macros/latex-dev/required/tools/varioref-2016-02-16.sty -2021/05/04 | 33842 | macros/latex-dev/required/graphics/changes.txt -2021/05/04 | 3372 | macros/latex-dev/base/letter.ins -2021/05/04 | 3367 | macros/latex-dev/base/ltoutenc.ins -2021/05/04 | 33572905 | macros/latex-dev/base.zip -2021/05/04 | 3338 | macros/latex-dev/base/exscale.ins -2021/05/04 | 33256 | macros/latex-dev/base/ltnews32.tex -2021/05/04 | 331424 | macros/latex-dev/required/tools/bm.pdf -2021/05/04 | 330815 | macros/latex-dev/required/tools/verbatim.pdf -2021/05/04 | 330071 | macros/latex-dev/required/graphics/grfguide.pdf -2021/05/04 | 328853 | macros/latex-dev/base/letter.pdf -2021/05/04 | 3284 | macros/latex-dev/required/tools/manifest.txt -2021/05/04 | 3282 | macros/latex-dev/base/bugs.txt -2021/05/04 | 32648 | macros/latex-dev/base/ltsect.dtx -2021/05/04 | 325299 | macros/latex-dev/base/usrguide3.pdf -2021/05/04 | 325289 | macros/latex-dev/base/ltluatex.pdf -2021/05/04 | 32034 | macros/latex-dev/required/tools/layout.dtx -2021/05/04 | 318399 | macros/latex-dev/base/ltnews22.pdf -2021/05/04 | 3181 | macros/latex-dev/base/unpack.ins -2021/05/04 | 318168 | macros/latex-dev/base/inputenc.pdf -2021/05/04 | 31659 | macros/latex-dev/required/graphics/color.dtx -2021/05/04 | 310676 | macros/latex-dev/required/graphics/graphics.pdf -2021/05/04 | 308392 | systems/texlive/tlnet/archive/mparhack.doc.r59066.tar.xz -2021/05/04 | 30456 | macros/latex-dev/base/ltnews31.tex -2021/05/04 | 30185 | macros/latex-dev/required/graphics/graphicx.dtx -2021/05/04 | 2994 | macros/latex-dev/required/graphics/graphics-drivers.ins -2021/05/04 | 29923 | macros/latex-dev/base/usrguide3.tex -2021/05/04 | 29712 | macros/latex-dev/required/tools/multicol-2017-04-11.sty -2021/05/04 | 297070 | macros/latex-dev/base/ltnews20.pdf -2021/05/04 | 29569 | macros/latex-dev/required/tools/showkeys.dtx -2021/05/04 | 292317 | macros/latex-dev/base/cmfonts.pdf -2021/05/04 | 29191 | macros/latex-dev/base/ltfntcmd.dtx -2021/05/04 | 290495 | macros/latex-dev/base/latexrelease.pdf -2021/05/04 | 2896 | macros/latex-dev/base/syntonly.ins -2021/05/04 | 2893 | macros/latex-dev/base/nfssfont.ins -2021/05/04 | 2892 | macros/latex-dev/base/graphpap.ins -2021/05/04 | 2892 | macros/latex-dev/base/fix-cm.ins -2021/05/04 | 289245 | macros/latex-dev/base/tlc2.pdf -2021/05/04 | 2890 | macros/latex-dev/base/alltt.ins -2021/05/04 | 2888 | macros/latex-dev/base/ifthen.ins -2021/05/04 | 287672 | macros/latex-dev/base/fix-cm.pdf -2021/05/04 | 287125 | macros/latex-dev/base/ltnews23.pdf -2021/05/04 | 286309 | macros/latex-dev/required/graphics/drivers.pdf -2021/05/04 | 28260 | macros/latex-dev/base/ltnews33.tex -2021/05/04 | 2804 | systems/texlive/tlnet/archive/mparhack.r59066.tar.xz -2021/05/04 | 278041 | macros/latex-dev/required/tools/tabularx.pdf -2021/05/04 | 2738 | macros/latex-dev/base/tex2.txt -2021/05/04 | 2733 | macros/latex-dev/base/ltpageno.dtx -2021/05/04 | 27122 | macros/latex-dev/base/ltxcheck.tex -2021/05/04 | 2705 | macros/latex-dev/base/idx.tex -2021/05/04 | 269434 | macros/latex-dev/required/graphics/rotating.pdf -2021/05/04 | 267761 | macros/latex-dev/required/tools/layout.pdf -2021/05/04 | 2666324 | install/macros/latex-dev/required/latex-graphics-dev.tds.zip -2021/05/04 | 265211 | macros/latex-dev/base/ltnews24.pdf -2021/05/04 | 2632527 | macros/latex-dev/required/graphics.zip -2021/05/04 | 260624 | macros/latex-dev/required/tools/showkeys.pdf -2021/05/04 | 2576 | macros/latex-dev/required/tools/multicol.ins -2021/05/04 | 256897 | macros/latex-dev/required/tools/xspace.pdf -2021/05/04 | 2538 | macros/latex-dev/required/tools/longtable.ins -2021/05/04 | 2538 | macros/latex-dev/required/tools/afterpage.ins -2021/05/04 | 2535 | macros/latex-dev/required/tools/tabularx.ins -2021/05/04 | 2531 | macros/latex-dev/required/tools/varioref.ins -2021/05/04 | 2524 | macros/latex-dev/required/tools/bm.ins -2021/05/04 | 252432 | macros/latex-dev/base/ltnews27.pdf -2021/05/04 | 252154 | macros/latex-dev/base/lb2.pdf -2021/05/04 | 25151 | macros/latex-dev/required/tools/trace.dtx -2021/05/04 | 247910 | macros/latex-dev/required/graphics/graphicx.pdf -2021/05/04 | 245818 | macros/latex-dev/base/ltnews19.pdf -2021/05/04 | 244869 | macros/latex-dev/base/ltnews21.pdf -2021/05/04 | 243601 | macros/latex-dev/base/modguide.pdf -2021/05/04 | 242886 | macros/latex-dev/base/cfgguide.pdf -2021/05/04 | 24015 | macros/latex-dev/base/lterror.dtx -2021/05/04 | 239681 | macros/latex-dev/base/cyrguide.pdf -2021/05/04 | 239654 | macros/latex-dev/required/graphics/keyval.pdf -2021/05/04 | 238577 | macros/latex-dev/base/ltxdoc.pdf -2021/05/04 | 23651 | macros/latex-dev/base/ltnews30.tex -2021/05/04 | 23521 | macros/latex-dev/base/fix-cm.dtx -2021/05/04 | 234008 | macros/latex-dev/base/slifonts.pdf -2021/05/04 | 233995 | macros/latex-dev/base/proc.pdf -2021/05/04 | 23386 | macros/latex-dev/base/lppl.tex -2021/05/04 | 2318 | graphics/mcf2graph/mcf_example.tex -2021/05/04 | 229713 | macros/latex-dev/required/tools/trace.pdf -2021/05/04 | 22676 | macros/latex-dev/base/ltcounts.dtx -2021/05/04 | 22456 | macros/latex-dev/base/cfgguide.tex -2021/05/04 | 2225 | macros/latex-dev/required/tools/indentfirst.dtx -2021/05/04 | 220689 | macros/latex-dev/required/tools/dcolumn.pdf -2021/05/04 | 220417 | macros/latex-dev/base/ifthen.pdf -2021/05/04 | 219354 | macros/latex-dev/base/ltx3info.pdf -2021/05/04 | 218782 | macros/latex-dev/base/nfssfont.pdf -2021/05/04 | 215355 | macros/latex-dev/required/tools/enumerate.pdf -2021/05/04 | 215091 | macros/latex-dev/base/lgc2.pdf -2021/05/04 | 215002 | macros/latex-dev/required/graphics/color.pdf -2021/05/04 | 214710 | macros/latex-dev/base/alltt.pdf -2021/05/04 | 212307 | macros/latex-dev/base/exscale.pdf -2021/05/04 | 211589 | support/latexmk/latexmk.txt -2021/05/04 | 21072 | macros/latex-dev/required/graphics/rotating.dtx -2021/05/04 | 2092 | macros/latex-dev/required/graphics/README.md -2021/05/04 | 208359 | macros/latex-dev/base/latexsym.pdf -2021/05/04 | 207299 | macros/latex-dev/required/graphics/trig.pdf -2021/05/04 | 205344 | macros/latex-dev/required/tools/afterpage.pdf -2021/05/04 | 205162 | macros/latex-dev/base/ltnews25.pdf -2021/05/04 | 20486 | macros/latex-dev/base/lgc2.err -2021/05/04 | 20469 | macros/latex-dev/base/ltnews.cls -2021/05/04 | 204007 | macros/latex-dev/base/doc.dtx -2021/05/04 | 2013372 | systems/texlive/tlnet/archive/xindy.universal-darwin.r59070.tar.xz -2021/05/04 | 198647 | macros/latex-dev/required/tools/delarray.pdf -2021/05/04 | 197297 | macros/latex-dev/base/syntonly.pdf -2021/05/04 | 19724 | systems/texlive/tlnet/archive/windycity.r59067.tar.xz -2021/05/04 | 19510 | macros/latex/contrib/ut-thesis/ut-thesis.dtx -2021/05/04 | 195098 | macros/latex-dev/required/tools/fileerr.pdf -2021/05/04 | 1937 | macros/latex-dev/base/minimal.cls -2021/05/04 | 193197 | support/latexmk/latexmk.pdf -2021/05/04 | 19064 | macros/latex-dev/base/ltxdoc.dtx -2021/05/04 | 19040 | macros/latex-dev/base/lppl.txt -2021/05/04 | 189538 | macros/latex-dev/required/tools/hhline.pdf -2021/05/04 | 18940 | macros/latex-dev/base/ltnews29.tex -2021/05/04 | 188086 | macros/latex-dev/base/lthooks.dtx -2021/05/04 | 18448 | support/latexmk/INSTALL -2021/05/04 | 18404 | macros/latex-dev/base/nfssfont.dtx -2021/05/04 | 183532 | macros/latex-dev/required/tools/shellesc.pdf -2021/05/04 | 18303 | macros/latex-dev/base/ifthen.dtx -2021/05/04 | 18299 | macros/latex-dev/base/ltx3info.tex -2021/05/04 | 182354 | macros/latex-dev/required/tools/multicol.dtx -2021/05/04 | 180 | macros/latex-dev/base/ltfilehook-doc.tex -2021/05/04 | 179 | macros/latex-dev/base/ltshipout-doc.tex -2021/05/04 | 17861 | macros/latex-dev/required/tools/xspace.dtx -2021/05/04 | 177 | macros/latex-dev/base/lthooks-doc.tex -2021/05/04 | 177 | macros/latex-dev/base/ltcmdhooks-doc.tex -2021/05/04 | 177595 | macros/latex-dev/required/tools/xr.pdf -2021/05/04 | 175624 | macros/latex-dev/base/ltoutput.dtx -2021/05/04 | 175169 | macros/latex-dev/required/tools/somedefs.pdf -2021/05/04 | 17495 | macros/latex-dev/base/cyrguide.tex -2021/05/04 | 174488 | macros/latex-dev/base/ltnews05.pdf -2021/05/04 | 173 | macros/latex-dev/base/ltpara-doc.tex -2021/05/04 | 173682 | macros/latex-dev/base/makeindx.pdf -2021/05/04 | 173323 | macros/latex-dev/base/ltnews13.pdf -2021/05/04 | 172278 | macros/latex-dev/base/tlc2.err -2021/05/04 | 172231 | macros/latex-dev/required/graphics/rotex.pdf -2021/05/04 | 1711 | systems/mac/mactex/Licenses.txt -2021/05/04 | 170747 | support/latexmk/latexmk.1 -2021/05/04 | 170529 | macros/latex-dev/base/tulm.pdf -2021/05/04 | 170214 | macros/latex-dev/base/docstrip.dtx -2021/05/04 | 1694 | macros/latex-dev/base/small2e.tex -2021/05/04 | 169323 | macros/latex-dev/base/graphpap.pdf -2021/05/04 | 167686 | macros/latex-dev/required/graphics/epsfig.pdf -2021/05/04 | 1666 | macros/latex-dev/required/tools/README.md -2021/05/04 | 166368 | macros/latex-dev/base/ltnews17.pdf -2021/05/04 | 16427 | CTAN.sites -2021/05/04 | 163584 | macros/latex-dev/required/graphics/lscape.pdf -2021/05/04 | 16233 | macros/latex-dev/base/modguide.tex -2021/05/04 | 161518 | macros/latex-dev/base/ltnews01.pdf -2021/05/04 | 161405 | macros/latex-dev/base/ltnews14.pdf -2021/05/04 | 16105 | macros/latex-dev/base/ltbibl.dtx -2021/05/04 | 160521 | macros/latex-dev/base/manual.pdf -2021/05/04 | 159313 | macros/latex-dev/base/ltnews10.pdf -2021/05/04 | 157803 | macros/latex-dev/required/tools/indentfirst.pdf -2021/05/04 | 15737 | macros/latex-dev/required/graphics/cat.eps -2021/05/04 | 15699 | macros/latex-dev/base/slifonts.fdd -2021/05/04 | 15625 | macros/latex-dev/base/ltxref.dtx -2021/05/04 | 156210 | macros/latex-dev/base/classes.dtx -2021/05/04 | 155055 | macros/latex-dev/base/ltnews08.pdf -2021/05/04 | 15429 | macros/latex-dev/required/graphics/graphics-2017-06-25.sty -2021/05/04 | 154034 | macros/latex-dev/required/tools/fontsmpl.pdf -2021/05/04 | 1510 | macros/latex/contrib/ut-thesis/README -2021/05/04 | 15104 | macros/latex-dev/base/source2e.tex -2021/05/04 | 150493 | macros/latex-dev/base/ltnews03.pdf -2021/05/04 | 150466 | macros/latex-dev/base/ltnews02.pdf -2021/05/04 | 149221 | macros/latex-dev/base/ltoutenc.dtx -2021/05/04 | 14891 | macros/latex-dev/base/ltnews28.tex -2021/05/04 | 147587 | macros/latex-dev/base/ltnews12.pdf -2021/05/04 | 146534 | macros/latex-dev/required/tools/rawfonts.pdf -2021/05/04 | 146533 | macros/latex-dev/base/ltnews16.pdf -2021/05/04 | 146200 | macros/latex-dev/base/webcomp.pdf -2021/05/04 | 14575 | macros/latex-dev/required/graphics/rotex.tex -2021/05/04 | 14421 | macros/latex-dev/base/lppl-1-2.txt -2021/05/04 | 143686 | macros/latex-dev/base/ltnews04.pdf -2021/05/04 | 143532 | macros/latex-dev/base/ltcmd.dtx -2021/05/04 | 14341 | macros/latex-dev/base/lppl-1-1.txt -2021/05/04 | 142909 | macros/latex-dev/base/ltnews06.pdf -2021/05/04 | 14077 | macros/latex-dev/required/tools/afterpage.dtx -2021/05/04 | 13920 | macros/latex-dev/base/ltexpl.dtx -2021/05/04 | 13902 | macros/latex-dev/base/ltvers.dtx -2021/05/04 | 13880 | macros/latex-dev/required/graphics/keyval.dtx -2021/05/04 | 138044 | macros/latex-dev/base/ltnews07.pdf -2021/05/04 | 136299 | macros/latex-dev/base/ltclass.dtx -2021/05/04 | 1341 | macros/latex-dev/base/ltnews18.tex -2021/05/04 | 13301 | macros/latex-dev/base/proc.dtx -2021/05/04 | 132373 | macros/latex-dev/base/lppl.pdf -2021/05/04 | 1316472 | macros/latex-dev/base/encguide.pdf -2021/05/04 | 13068 | graphics/mcf2graph/CHANGELOG -2021/05/04 | 130447 | macros/latex-dev/base/ltnews15.pdf -2021/05/04 | 12946 | macros/latex-dev/base/manual.err -2021/05/04 | 129032 | macros/latex-dev/base/ltnews09.pdf -2021/05/04 | 12822 | support/latexmk/README -2021/05/04 | 1279 | macros/latex-dev/base/legal.txt -2021/05/04 | 127986 | macros/latex-dev/required/tools/array.dtx -2021/05/04 | 12714 | macros/latex-dev/required/tools/dcolumn.dtx -2021/05/04 | 12559 | macros/latex-dev/required/tools/array-2020-02-10.sty -2021/05/04 | 12520 | macros/latex-dev/base/testpage.tex -2021/05/04 | 123154 | macros/latex/contrib/ut-thesis.zip -2021/05/04 | 12224 | macros/latex-dev/base/ltnews24.tex -2021/05/04 | 12133 | macros/latex-dev/required/tools/longtable-2020-01-07.sty -2021/05/04 | 12119 | macros/latex-dev/base/tulm.fdd -2021/05/04 | 11749 | macros/latex-dev/required/tools/array-2016-10-06.sty -2021/05/04 | 116669 | macros/latex/contrib/ut-thesis/ut-thesis.pdf -2021/05/04 | 11590 | macros/latex-dev/base/ltpage.dtx -2021/05/04 | 114211 | macros/latex-dev/required/tools/varioref.dtx -2021/05/04 | 1128 | macros/latex-dev/required/graphics/graphics.ins -2021/05/04 | 111955 | macros/latex-dev/base/ltnews11.pdf -2021/05/04 | 11153 | macros/latex-dev/required/tools/hhline.dtx -2021/05/04 | 10871 | macros/latex-dev/base/manifest.txt -2021/05/04 | 10776 | macros/latex-dev/required/tools/fontsmpl.dtx -2021/05/04 | 10697 | macros/latex-dev/base/ltnews26.tex -2021/05/04 | 106908 | macros/latex-dev/base/inputenc.dtx -2021/05/04 | 10687 | macros/latex-dev/base/ltnews23.tex -2021/05/04 | 1068601 | macros/latex-dev/base/ltnews.pdf -2021/05/04 | 10682 | macros/latex-dev/required/graphics/trig.dtx -2021/05/04 | 10668 | macros/latex-dev/base/ltnews22.tex -2021/05/04 | 10649 | macros/latex-dev/required/tools/enumerate.dtx -2021/05/04 | 10603 | macros/latex-dev/base/makeindx.dtx -2021/05/04 | 105 | macros/latex-dev/base/ltfilehook-code.tex -2021/05/04 | 104 | macros/latex-dev/base/ltshipout-code.tex -2021/05/04 | 103 | macros/latex-dev/base/ltcmdhooks-code.tex -2021/05/04 | 10375 | macros/latex-dev/base/ltfsscmp.dtx -2021/05/04 | 102 | macros/latex-dev/base/lthooks-code.tex -2021/05/04 | 10192 | systems/texlive/tlnet/archive/mparhack.source.r59066.tar.xz -2021/05/04 | 10105 | macros/latex-dev/base/webcomp.err -2021/05/04 | 1002696 | macros/latex-dev/base/lthooks-code.pdf diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md index 447668b7bf..1813e73d11 100644 --- a/macros/latex/contrib/l3kernel/CHANGELOG.md +++ b/macros/latex/contrib/l3kernel/CHANGELOG.md @@ -7,6 +7,20 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2021-05-11] + +### Added +- `\cctab_item:Nn` (issue #880) +- `\clist_use:nnnn` and `\clist_use:nn` (issue #561) + +### Fixed +- Loading of backend in generic DVI mode (issue #905) +- Make `\keyval_parse:nnn` alignment-safe (issue #896) +- Control sequences and category codes in regex replacements (issue #909) + +### Changed +- Speed up \group_align_safe_begin: (pull #906) + ## [2021-05-07] ### Added @@ -883,7 +897,8 @@ this project uses date-based 'snapshot' version identifiers. - Step functions have been added for dim variables, e.g. `\dim_step_inline:nnnn` -[Unreleased]: https://github.com/latex3/latex3/compare/2021-05-07...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2021-05-11...HEAD +[2021-05-11]: https://github.com/latex3/latex3/compare/2021-05-07...2021-05-11 [2021-05-07]: https://github.com/latex3/latex3/compare/2021-02-18...2021-05-07 [2021-02-18]: https://github.com/latex3/latex3/compare/2021-02-06...2021-02-18 [2021-02-06]: https://github.com/latex3/latex3/compare/2021-02-02...2021-02-06 diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md index 5acfbb5d3b..3127e246c5 100644 --- a/macros/latex/contrib/l3kernel/README.md +++ b/macros/latex/contrib/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2021-05-07 +Release 2021-05-11 Overview -------- diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx index a2f5c86cbe..16632dbd99 100644 --- a/macros/latex/contrib/l3kernel/expl3.dtx +++ b/macros/latex/contrib/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> % -\def\ExplFileDate{2021-05-07}% +\def\ExplFileDate{2021-05-11}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1756,11 +1756,15 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\g__kernel_backend_header_bool} % Load the dynamic code and standard back-end. % \begin{macrocode} \sys_everyjob: +\bool_new:N \g__kernel_backend_header_bool +\bool_gset_true:N \g__kernel_backend_header_bool \sys_load_backend:n { } % \end{macrocode} +% \end{macro} % % For the generic loader, a few final steps to take. Turn of \cs{expl3} % syntax and tidy up the small number of temporary changes. diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf index 7e9a3d01ba..7872487af2 100644 Binary files a/macros/latex/contrib/l3kernel/expl3.pdf and b/macros/latex/contrib/l3kernel/expl3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf index e73bc3462c..4ab31e9042 100644 Binary files a/macros/latex/contrib/l3kernel/interface3.pdf and b/macros/latex/contrib/l3kernel/interface3.pdf differ diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex index 0108f11ddd..c41b45bf4e 100644 --- a/macros/latex/contrib/l3kernel/interface3.tex +++ b/macros/latex/contrib/l3kernel/interface3.tex @@ -54,7 +54,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \pagenumbering{roman} \maketitle diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx index 83c8f2b20f..47c746ee43 100644 --- a/macros/latex/contrib/l3kernel/l3basics.dtx +++ b/macros/latex/contrib/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx index 2897f94237..40047fe446 100644 --- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx +++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx index d83fdb914e..1eb6848d85 100644 --- a/macros/latex/contrib/l3kernel/l3box.dtx +++ b/macros/latex/contrib/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx index b03b3831c5..84fd99a2b0 100644 --- a/macros/latex/contrib/l3kernel/l3candidates.dtx +++ b/macros/latex/contrib/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx index a84852f73b..9a0bc54933 100644 --- a/macros/latex/contrib/l3kernel/l3cctab.dtx +++ b/macros/latex/contrib/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -110,7 +110,7 @@ % matching \cs{cctab_begin:N}. % \end{function} % -% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N} +% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N, \cctab_select:c} % \begin{syntax} % \cs{cctab_select:N} \meta{category code table} % \end{syntax} @@ -120,6 +120,15 @@ % and \cs{cctab_gset:Nn}. % \end{function} % +% \begin{function}[EXP, added = 2021-05-10]{\cctab_item:Nn, \cctab_item:cn} +% \begin{syntax} +% \cs{cctab_item:Nn} \meta{category code table} \Arg{integer expression} +% \end{syntax} +% Determines the \meta{character} with character code given by the +% \meta{integer expression} and expands to its category code specified +% by the \meta{category code table}. +% \end{function} +% % \section{Category code table conditionals} % % \begin{function}[pTF]{\cctab_if_exist:N, \cctab_if_exist:c} @@ -660,6 +669,34 @@ } % \end{macrocode} % +% +% \begin{macro}{\cctab_item:Nn, \cctab_item:cn} +% Evaluate the integer argument only once. In most engines the +% |cctab| variable only has $256$ entries so we only look up the +% catcode for these entries, otherwise we use the current catcode. In +% particular, for out-of-range values we use whatever fall-back +% \cs{char_value_catcode:n}. In \LuaTeX{}, we use the +% |tex.getcatcode| function. +% \begin{macrocode} +\cs_new:Npn \cctab_item:Nn #1#2 + { \exp_args:Nf \@@_item:nN { \int_eval:n {#2} } #1 } +\sys_if_engine_luatex:TF + { + \cs_new:Npn \@@_item:nN #1#2 + { \lua_now:e { tex.print(-2, tex.getcatcode(\int_use:N #2, #1)) } } + } + { + \cs_new:Npn \@@_item:nN #1#2 + { + \int_compare:nNnTF {#1} < { 256 } + { \intarray_item:Nn #2 { #1 + 1 } } + { \char_value_catcode:n {#1} } + } + } +\cs_generate_variant:Nn \cctab_item:Nn { c } +% \end{macrocode} +% \end{macro} +% % \subsection{Category code table conditionals} % % \begin{macro}{\cctab_if_exist:N,\cctab_if_exist:c} diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx index 3db9365a1f..f61fedb483 100644 --- a/macros/latex/contrib/l3kernel/l3clist.dtx +++ b/macros/latex/contrib/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -591,6 +591,20 @@ % \end{texnote} % \end{function} % +% \begin{function}[EXP, added = 2021-05-10]{\clist_use:nnnn, \clist_use:nn} +% \begin{syntax} +% \cs{clist_use:nnnn} \meta{comma~list} \Arg{separator~between~two} \Arg{separator~between~more~than~two} \Arg{separator~between~final~two} +% \cs{clist_use:nn} \meta{comma~list} \Arg{separator} +% \end{syntax} +% Places the contents of the \meta{comma~list} in the input stream, +% with the appropriate \meta{separator} between the items. As for +% \cs{clist_set:Nn}, blank items are omitted, spaces are removed from +% both sides of each item, then a set of braces is removed if the +% resulting space-trimmed item is braced. The \meta{separators} are +% then inserted in the same way as for \cs{clist_use:Nnnn} and +% \cs{clist_use:Nn}, respectively. +% \end{function} +% % \section{Comma lists as stacks} % % Comma lists can be used as stacks, where data is pushed to and popped @@ -805,11 +819,13 @@ % \end{variable} % % \begin{macro}[EXP]{ +% \@@_use_none_delimit_by_s_mark:w, % \@@_use_none_delimit_by_s_stop:w, % \@@_use_i_delimit_by_s_stop:nw % } % Functions to gobble up to a scan mark. % \begin{macrocode} +\cs_new:Npn \@@_use_none_delimit_by_s_mark:w #1 \s_@@_mark { } \cs_new:Npn \@@_use_none_delimit_by_s_stop:w #1 \s_@@_stop { } \cs_new:Npn \@@_use_i_delimit_by_s_stop:nw #1 #2 \s_@@_stop {#1} % \end{macrocode} @@ -1941,6 +1957,62 @@ % \end{macro} % \end{macro} % +% \begin{macro} +% { +% \clist_use:nnnn, \clist_use:nn, \@@_use:Nw, +% \@@_use_one:w, \@@_use_end:w, \@@_use_more:w +% } +% Items are grabbed by \cs{@@_use:Nw}, which detects blank items with +% a \cs{tl_if_empty:oTF} test (in which case it recurses). Non-blank +% items are either the end of the list, in which case the argument +% |#1| of \cs{@@_use:Nw} is used to properly end the list, or are +% normal items, which must be trimmed and properly unbraced. As we +% find successive items, the long list of \cs{@@_use:Nw} calls gets +% shortened and we end up calling \cs{@@_use_more:w} once we have +% found $3$ items. This auxiliary leaves the first-found item and the +% general separator, and calls \cs{@@_use:Nw} to find more items. +% A subtlety is that we use \cs{@@_use_end:w} both in the case of a +% two-item list and for the last two items of a general list: to get +% the correct separator, \cs{@@_use_more:w} replaces the +% separator-of-two by the last-separator when called, namely as soon +% as we have found three items. +% \begin{macrocode} +\cs_new:Npn \clist_use:nnnn #1#2#3#4 + { + \@@_use:Nw \@@_use_none_delimit_by_s_stop:w + \@@_use:Nw \@@_use_one:w + \@@_use:Nw \@@_use_end:w + \@@_use_more:w ; + {#2} {#3} {#4} ; + \prg_do_nothing: #1 , \s_@@_mark , + \s_@@_stop + } +\cs_new:Npn \@@_use:Nw #1#2 ; #3 ; #4 , + { + \tl_if_empty:oTF { \use_none:nn #4 ? } + { \@@_use:Nw #1#2 ; } + { + \@@_use_none_delimit_by_s_mark:w #4 #1 \s_@@_mark + \tl_trim_spaces_apply:oN {#4} \@@_use_ii_i:nn + \@@_map_unbrace:wn , { #2 ; } + } + #3 ; \prg_do_nothing: + } +\cs_new:Npn \@@_use_one:w \s_@@_mark #1 , #2#3#4 \s_@@_stop + { \exp_not:n {#3} } +\cs_new:Npn \@@_use_end:w + \s_@@_mark #1 , #2#3#4#5#6 \s_@@_stop + { \exp_not:n { #4 #5 #3 } } +\cs_new:Npn \@@_use_more:w ; #1#2#3#4#5#6 ; + { + \exp_not:n { #3 #5 } + \@@_use:Nw \@@_use_end:w \@@_use_more:w ; + {#1} {#2} {#6} {#5} {#6} ; + } +\cs_new:Npn \clist_use:nn #1#2 { \clist_use:nnnn {#1} {#2} {#2} {#2} } +% \end{macrocode} +% \end{macro} +% % \subsection{Using a single item} % % \begin{macro}{\clist_item:Nn, \clist_item:cn} diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx index 1291f40128..e0cdd606b3 100644 --- a/macros/latex/contrib/l3kernel/l3coffins.dtx +++ b/macros/latex/contrib/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx index 1b59215b8a..9b72bdc466 100644 --- a/macros/latex/contrib/l3kernel/l3color.dtx +++ b/macros/latex/contrib/l3kernel/l3color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -158,8 +158,8 @@ % red!50!cyan % \end{verbatim} % will result in a color specification using the |rgb| model, made up of -% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}. As color -% model interconversion is not exact. +% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}. +% This may be important as color model interconversion is not exact. % % The one exception to the above is where the first model in an expression is % |gray|. In this case, the order of mixing is \enquote{swapped} internally, so diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx index 56b74c3a34..b7eb9d0215 100644 --- a/macros/latex/contrib/l3kernel/l3debug.dtx +++ b/macros/latex/contrib/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx index 29e0f37051..42e7283436 100644 --- a/macros/latex/contrib/l3kernel/l3deprecation.dtx +++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx index 9e079c7f43..aa9fce6c58 100644 --- a/macros/latex/contrib/l3kernel/l3doc.dtx +++ b/macros/latex/contrib/l3kernel/l3doc.dtx @@ -79,7 +79,7 @@ and all files in that bundle must be distributed together. % % \title{The \cls{l3doc} class} % \author{\Team} -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % \tableofcontents % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx index 6555eb4c3b..fa01fb954e 100644 --- a/macros/latex/contrib/l3kernel/l3docstrip.dtx +++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf index 2c252c5ca9..8d05bf60a8 100644 Binary files a/macros/latex/contrib/l3kernel/l3docstrip.pdf and b/macros/latex/contrib/l3kernel/l3docstrip.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx index 1c6b1bd01d..163e867881 100644 --- a/macros/latex/contrib/l3kernel/l3expan.dtx +++ b/macros/latex/contrib/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx index eb025e0b16..a89f6540c6 100644 --- a/macros/latex/contrib/l3kernel/l3file.dtx +++ b/macros/latex/contrib/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx index ee3458bb46..1b8dfa7c7a 100644 --- a/macros/latex/contrib/l3kernel/l3flag.dtx +++ b/macros/latex/contrib/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx index d4f03e55f2..59eb0b65df 100644 --- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx index 172735f54d..1811a17475 100644 --- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx index 9ded69aa6f..0a5662979d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx index 97d449608f..097da442af 100644 --- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx index 1ae1a4faf8..0be0e3f605 100644 --- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx index ebb2852223..44ae9a5d7d 100644 --- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx index 75823bbb95..165d955d7b 100644 --- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx index c43da846b6..dcfa86e227 100644 --- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx index a8c2f8403b..7b854343ed 100644 --- a/macros/latex/contrib/l3kernel/l3fp-random.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx index e61833552b..5012e48e9b 100644 --- a/macros/latex/contrib/l3kernel/l3fp-round.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx index faba0ea08a..c4dbfa4d15 100644 --- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % % \begin{documentation} diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx index 7ca054e7d2..669642d2e8 100644 --- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx +++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx index e56560e88d..27ee89c073 100644 --- a/macros/latex/contrib/l3kernel/l3fp.dtx +++ b/macros/latex/contrib/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx index 7a110305cb..a66073e073 100644 --- a/macros/latex/contrib/l3kernel/l3fparray.dtx +++ b/macros/latex/contrib/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx index 54f36dbab5..5994a193c6 100644 --- a/macros/latex/contrib/l3kernel/l3int.dtx +++ b/macros/latex/contrib/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx index d0be26dc67..f67e937989 100644 --- a/macros/latex/contrib/l3kernel/l3intarray.dtx +++ b/macros/latex/contrib/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx index c5586a9a0d..428774aa93 100644 --- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx +++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx index cf04ec82d2..8f5f984c79 100644 --- a/macros/latex/contrib/l3kernel/l3keys.dtx +++ b/macros/latex/contrib/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -891,7 +891,7 @@ % \end{verbatim} % are treated identically. % -% \begin{function}[rEXP, added=2020-12-19]{\keyval_parse:nnn} +% \begin{function}[rEXP, added=2020-12-19, updated = 2021-05-10]{\keyval_parse:nnn} % \begin{syntax} % \cs{keyval_parse:nnn} \Arg{code_1} \Arg{code_2} \Arg{key--value list} % \end{syntax} @@ -929,7 +929,7 @@ % \end{texnote} % \end{function} % -% \begin{function}[rEXP,updated = 2020-12-19]{\keyval_parse:NNn} +% \begin{function}[rEXP, updated = 2021-05-10]{\keyval_parse:NNn} % \begin{syntax} % \cs{keyval_parse:NNn} \meta{function_1} \meta{function_2} \Arg{key--value list} % \end{syntax} @@ -1017,7 +1017,10 @@ % argument. % \begin{macrocode} \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 - { \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 } + { + \group_align_safe_begin: + \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 + } \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn % \end{macrocode} % \end{macro} @@ -1255,7 +1258,7 @@ \cs_new:Npn \@@_end_loop_active:w \s_@@_tail \@@_loop_other:nnw ##1 \s_@@_mark \s_@@_tail , \s_@@_tail , - { } + { \group_align_safe_end: } % \end{macrocode} % \end{macro} % @@ -1280,14 +1283,18 @@ { \@@_if_blank:w \s_@@_mark #2 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop + \group_align_safe_end: \exp_not:n { #4 { #2 } { #1 } } + \group_align_safe_begin: \@@_loop_other:nnw {#3} {#4} } \cs_new:Npn \@@_key:nn #1 #2 { \@@_if_blank:w \s_@@_mark #1 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop + \group_align_safe_end: \exp_not:n { #2 { #1 } } + \group_align_safe_begin: \@@_loop_other:nnw {#2} } % \end{macrocode} @@ -1311,7 +1318,8 @@ % \begin{macrocode} \cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \@@_trim:nN #1 \@@_key:nn { \@@_loop_other:nnw } -\cs_new:Npn \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n #1 +\cs_new:Npn \@@_blank_key_error:w + \s_@@_mark \s_@@_stop \group_align_safe_end: \exp_not:n #1 { \__kernel_msg_expandable_error:nn { keyval } { blank-key-name } diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx index a843e28ffe..05b98fed56 100644 --- a/macros/latex/contrib/l3kernel/l3legacy.dtx +++ b/macros/latex/contrib/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx index 7e4f729ca5..35c8df065d 100644 --- a/macros/latex/contrib/l3kernel/l3luatex.dtx +++ b/macros/latex/contrib/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx index b408c181b2..ed2169b94f 100644 --- a/macros/latex/contrib/l3kernel/l3msg.dtx +++ b/macros/latex/contrib/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -125,6 +125,40 @@ % defined. % \end{function} % +% \section{Customizable information for message modules} +% +% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n} +% \begin{syntax} +% \cs{msg_module_name:n} \Arg{module} +% \end{syntax} +% Expands to the public name of the \meta{module} as defined by +% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module} +% unchanged). +% \end{function} +% +% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n} +% \begin{syntax} +% \cs{msg_module_type:n} \Arg{module} +% \end{syntax} +% Expands to the description which applies to the \meta{module}, +% for example a |Package| or |Class|. The information here is defined +% in \cs{g_msg_module_type_prop}, and will default to |Package| if an +% entry is not present. +% \end{function} +% +% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop} +% Provides a mapping between the module name used for messages, and that +% for documentation. For example, \LaTeX{}3 core messages are stored in +% the reserved |LaTeX| tree, but are printed as |LaTeX3|. +% \end{variable} +% +% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop} +% Provides a mapping between the module name used for messages, and that +% type of module. For example, for \LaTeX{}3 core messages, an empty entry +% is set here meaning that they are not described using the standard +% |Package| text. +% \end{variable} +% % \section{Contextual information for messages} % % \begin{function}[rEXP]{\msg_line_context:} @@ -215,25 +249,6 @@ % |Package| is the standard outcome: see \cs{msg_module_type:n}. % \end{function} % -% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n} -% \begin{syntax} -% \cs{msg_module_name:n} \Arg{module} -% \end{syntax} -% Expands to the public name of the \meta{module} as defined by -% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module} -% unchanged). -% \end{function} -% -% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n} -% \begin{syntax} -% \cs{msg_module_type:n} \Arg{module} -% \end{syntax} -% Expands to the description which applies to the \meta{module}, -% for example a |Package| or |Class|. The information here is defined -% in \cs{g_msg_module_type_prop}, and will default to |Package| if an -% entry is not present. -% \end{function} -% % \begin{function}[EXP,updated = 2018-09-30]{\msg_see_documentation_text:n} % \begin{syntax} % \cs{msg_see_documentation_text:n} \Arg{module} @@ -246,23 +261,10 @@ % \end{quote} % This function can be redefined to alter the language in which the % message is given, using |#1| as the name of the \meta{module} to -% be included. The name of the \meta{module} may be altered by use of -% \cs{g_msg_module_documentation_prop} +% be included. The name of the \meta{module} is produced using +% \cs{msg_module_name:n}. % \end{function} % -% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop} -% Provides a mapping between the module name used for messages, and that -% for documentation. For example, \LaTeX{}3 core messages are stored in -% the reserved |LaTeX| tree, but are printed as |LaTeX3|. -% \end{variable} -% -% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop} -% Provides a mapping between the module name used for messages, and that -% type of module. For example, for \LaTeX{}3 core messages, an empty entry -% is set here meaning that they are not described using the standard -% |Package| text. -% \end{variable} -% % \section{Issuing messages} % % Messages behave differently depending on the message class. In all cases, diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx index 9a548a5391..44239f2348 100644 --- a/macros/latex/contrib/l3kernel/l3names.dtx +++ b/macros/latex/contrib/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf index 2971e2c1ef..187147d56c 100644 Binary files a/macros/latex/contrib/l3kernel/l3news.pdf and b/macros/latex/contrib/l3kernel/l3news.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf index 9d5e2fe3e6..58d8d08397 100644 Binary files a/macros/latex/contrib/l3kernel/l3news01.pdf and b/macros/latex/contrib/l3kernel/l3news01.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf index 0b8f621fc2..382e0212ad 100644 Binary files a/macros/latex/contrib/l3kernel/l3news02.pdf and b/macros/latex/contrib/l3kernel/l3news02.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf index e90998a0bf..46912dfb9f 100644 Binary files a/macros/latex/contrib/l3kernel/l3news03.pdf and b/macros/latex/contrib/l3kernel/l3news03.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf index 5c8945b925..a41de356e1 100644 Binary files a/macros/latex/contrib/l3kernel/l3news04.pdf and b/macros/latex/contrib/l3kernel/l3news04.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf index 31af650bda..11357e96ce 100644 Binary files a/macros/latex/contrib/l3kernel/l3news05.pdf and b/macros/latex/contrib/l3kernel/l3news05.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf index 2d22191459..4ec096a2d6 100644 Binary files a/macros/latex/contrib/l3kernel/l3news06.pdf and b/macros/latex/contrib/l3kernel/l3news06.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf index 632e781463..d13185fb0f 100644 Binary files a/macros/latex/contrib/l3kernel/l3news07.pdf and b/macros/latex/contrib/l3kernel/l3news07.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf index d308888b50..4ae5d0c89b 100644 Binary files a/macros/latex/contrib/l3kernel/l3news08.pdf and b/macros/latex/contrib/l3kernel/l3news08.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf index 5f45b57bcf..65b65444fc 100644 Binary files a/macros/latex/contrib/l3kernel/l3news09.pdf and b/macros/latex/contrib/l3kernel/l3news09.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf index c2f0363c44..3817070064 100644 Binary files a/macros/latex/contrib/l3kernel/l3news10.pdf and b/macros/latex/contrib/l3kernel/l3news10.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf index aeefd9ab82..27d0e8042d 100644 Binary files a/macros/latex/contrib/l3kernel/l3news11.pdf and b/macros/latex/contrib/l3kernel/l3news11.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf index 78d84d6f13..5a9e0fe8f8 100644 Binary files a/macros/latex/contrib/l3kernel/l3news12.pdf and b/macros/latex/contrib/l3kernel/l3news12.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx index 747f46aa9f..71a0f85469 100644 --- a/macros/latex/contrib/l3kernel/l3pdf.dtx +++ b/macros/latex/contrib/l3kernel/l3pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf index a21877e64c..345295840d 100644 Binary files a/macros/latex/contrib/l3kernel/l3prefixes.pdf and b/macros/latex/contrib/l3kernel/l3prefixes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx index 972e417998..eedb4f271a 100644 --- a/macros/latex/contrib/l3kernel/l3prg.dtx +++ b/macros/latex/contrib/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1620,7 +1620,7 @@ % \TeX{}'s alignment structures present many problems. As Knuth says % himself in \emph{\TeX : The Program}: \enquote{It's sort of a miracle % whenever \tn{halign} or \tn{valign} work, [\ldots]} One problem relates -% to commands that internally issues a \tn{cr} but also peek ahead for +% to commands that internally issue a \tn{cr} but also peek ahead for % the next character for use in, say, an optional argument. If the % next token happens to be a |&| with category code~4 we get some % sort of weird error message because the underlying @@ -1631,14 +1631,21 @@ % special group so that \TeX{} still thinks it's on safe ground but at % the same time we don't want to introduce any brace group that may % find its way to the output. The following functions help with this -% by using code documented only in Appendix~D of +% by using behaviour documented only in Appendix~D of % \emph{The \TeX{}book}\dots +% In short evaluating |`{| and |`}| as numbers will not change the counter +% \TeX{} uses to keep track of its state in an alignment, whereas gobbling a +% brace using \cs{if_false:} will affect \TeX's state without producing any +% real group. % We place the \cs{if_false:} |{| \cs{fi:} part at that place so % that the successive expansions of \cs{group_align_safe_begin/end:} % are always brace balanced. % \begin{macrocode} +\group_begin: +\tex_catcode:D `\^^@ = 2 \exp_stop_f: \cs_new:Npn \group_align_safe_begin: - { \if_int_compare:w \if_false: { \fi: `} = \c_zero_int \fi: } + { \exp:w \if_false: { \fi: `^^@ \exp_stop_f: } +\group_end: \cs_new:Npn \group_align_safe_end: { \if_int_compare:w `{ = \c_zero_int } \fi: } % \end{macrocode} diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx index 38acc36a4c..371f894c42 100644 --- a/macros/latex/contrib/l3kernel/l3prop.dtx +++ b/macros/latex/contrib/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx index 8106e1746e..10ccfa7483 100644 --- a/macros/latex/contrib/l3kernel/l3quark.dtx +++ b/macros/latex/contrib/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx index 0824cbcb97..4962ca6fa2 100644 --- a/macros/latex/contrib/l3kernel/l3regex.dtx +++ b/macros/latex/contrib/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -270,11 +270,15 @@ % \item[\{$n,m$\}] At least $n$, no more than $m$, greedy. % \item[\{$n,m$\}?] At least $n$, no more than $m$, lazy. % \end{l3regex-syntax} +% For greedy quantifiers the regex code will first investigate matches +% that involve as many repetitions as possible, while for lazy +% quantifiers it investigates matches with as few repetitions as +% possible first. % % Alternation and capturing groups. % \begin{l3regex-syntax} % \item[A\char`|B\char`|C] Either one of \texttt{A}, \texttt{B}, -% or \texttt{C}. +% or \texttt{C}, investigating \texttt{A} first. % \item[(\ldots{})] Capturing group. % \item[(?:\ldots{})] Non-capturing group. % \item[(?\char`|\ldots{})] Non-capturing group which resets @@ -5652,17 +5656,21 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_replacement_normal:n #1 { - \tl_if_empty:NTF \l_@@_replacement_category_tl - { \@@_replacement_normal_aux:N #1 } - { % ( - \token_if_eq_charcode:NNTF #1 ) - { - \seq_pop:NN \l_@@_replacement_category_seq - \l_@@_replacement_category_tl - } - { - \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w } - ? #1 + \int_compare:nNnTF { \l_@@_replacement_csnames_int } > 0 + { \exp_args:No \@@_replacement_put:n { \token_to_str:N #1 } } + { + \tl_if_empty:NTF \l_@@_replacement_category_tl + { \@@_replacement_normal_aux:N #1 } + { % ( + \token_if_eq_charcode:NNTF #1 ) + { + \seq_pop:NN \l_@@_replacement_category_seq + \l_@@_replacement_category_tl + } + { + \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w } + ? #1 + } } } } diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx index 7b6cc0c857..18e954d9e1 100644 --- a/macros/latex/contrib/l3kernel/l3seq.dtx +++ b/macros/latex/contrib/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx index 67c71a890b..fa2b011f99 100644 --- a/macros/latex/contrib/l3kernel/l3skip.dtx +++ b/macros/latex/contrib/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx index 58e65d59b1..46ed7ca906 100644 --- a/macros/latex/contrib/l3kernel/l3sort.dtx +++ b/macros/latex/contrib/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx index 23fbf0421b..c9ce040eee 100644 --- a/macros/latex/contrib/l3kernel/l3str-convert.dtx +++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx index 10d4fa865e..aecd6d3c0d 100644 --- a/macros/latex/contrib/l3kernel/l3str.dtx +++ b/macros/latex/contrib/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf index 82ed3e5bf5..de7203d202 100644 Binary files a/macros/latex/contrib/l3kernel/l3styleguide.pdf and b/macros/latex/contrib/l3kernel/l3styleguide.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex index 00e041f294..375691e3a2 100644 --- a/macros/latex/contrib/l3kernel/l3styleguide.tex +++ b/macros/latex/contrib/l3kernel/l3styleguide.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \begin{document} diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf index 6e0445de7d..397508a83c 100644 Binary files a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf and b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex index d4282431b8..834a27a6e1 100644 --- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex +++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx index 57f3361c51..6399f57f31 100644 --- a/macros/latex/contrib/l3kernel/l3sys.dtx +++ b/macros/latex/contrib/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf index 9bd43ef0f0..667db28a6c 100644 Binary files a/macros/latex/contrib/l3kernel/l3term-glossary.pdf and b/macros/latex/contrib/l3kernel/l3term-glossary.pdf differ diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex index 7ea79a155f..253dc77e19 100644 --- a/macros/latex/contrib/l3kernel/l3term-glossary.tex +++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \newcommand{\TF}{\textit{(TF)}} diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx index 6f6bef57ec..3fb6816d12 100644 --- a/macros/latex/contrib/l3kernel/l3text-case.dtx +++ b/macros/latex/contrib/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx index 18cc1db064..54fa33d04e 100644 --- a/macros/latex/contrib/l3kernel/l3text-purify.dtx +++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx index aee505c0c5..58e87ba0e3 100644 --- a/macros/latex/contrib/l3kernel/l3text.dtx +++ b/macros/latex/contrib/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx index f2f10d1664..05f32c25fe 100644 --- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx +++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx index 30a9612af1..fb2a14b6f0 100644 --- a/macros/latex/contrib/l3kernel/l3tl.dtx +++ b/macros/latex/contrib/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx index 3db1f706c8..ce65d87061 100644 --- a/macros/latex/contrib/l3kernel/l3token.dtx +++ b/macros/latex/contrib/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1080,6 +1080,15 @@ % \cs{peek_regex:nTF} as control sequences, while functions that % inspect individual tokens (for instance \cs{peek_charcode:NTF}) % only take into account their meaning. +% +% The \cs{peek_regex:nTF} function only inspects as few tokens as +% necessary to determine whether the regular expression matches. +% For instance \cs{peek_regex:nTF} \verb"{ abc | [a-z] }" |{ } { }| +% |abc| will only inspect the first token~|a| even though the first +% branch |abc| of the alternative is preferred in functions such as +% \cs{peek_regex_remove_once:n}. This may have an effect on +% tokenization if the input stream has not yet been tokenized and +% category codes are changed. % \end{texnote} % \end{function} % diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx index 6165c802ae..0d2a3bedbc 100644 --- a/macros/latex/contrib/l3kernel/l3unicode.dtx +++ b/macros/latex/contrib/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf index e6503168dc..b962910210 100644 Binary files a/macros/latex/contrib/l3kernel/source3.pdf and b/macros/latex/contrib/l3kernel/source3.pdf differ diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex index 95e707b01f..05de34a9e4 100644 --- a/macros/latex/contrib/l3kernel/source3.tex +++ b/macros/latex/contrib/l3kernel/source3.tex @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \pagenumbering{roman} \maketitle diff --git a/support/TeX4ht/README b/support/TeX4ht/README index 088258aac5..9f694bf2e4 100644 --- a/support/TeX4ht/README +++ b/support/TeX4ht/README @@ -1,10 +1,5 @@ -Please see http://tug.org/tex4ht for current information about TeX4ht, -including a bug tracker and mailing lists. +This is TeX4ht, a package to convert LaTeX, plain TeX, and other +TeX-related documents to HTML, XML, and other related formats. -tex4ht is still actively maintained, and many individual files have been -updated; new versions are committed to the tex4ht and TeX Live -repositories. - -Unfortunately, no full release of tex4ht has been made since Eitan -Gurari, the original author, passed away. When a release is finally made -(there is no ETA at present), it will be available here. +It is released under the LaTeX Project Public License, v1.3 or later. +For more information of all sorts, see https://tug.org/tex4ht. diff --git a/support/TeX4ht/doc/Makefile b/support/TeX4ht/doc/Makefile new file mode 100644 index 0000000000..889205d1c4 --- /dev/null +++ b/support/TeX4ht/doc/Makefile @@ -0,0 +1,35 @@ +# $Id: Makefile 786 2020-08-24 17:18:49Z karl $ +# Makefile for original tex4ht ("mn") documentation. Public domain. + +# karl's environment to get latest released files ... +tldev_cmd := $(shell $(path) which tldev 2>/dev/null) +ifdef tldev_cmd + dev = tldev +else + dev = +endif + +tex = $(dev) etex -interaction=nonstopmode -file-line-error +bld: clean +# chmod -R a+rwX . # as received from OSU + $(tex) mn && $(tex) mn && $(tex) mn + $(dev) tex4ht mn Generated ' + +# have to add new files by hand. +install: + cp -p `(cd $(inst_dir) && \ls)` $(inst_dir) + svn status $(inst_dir) + +clean: + rm -f *.4ct *.4tc *.aux *.css *.dvi *.idv *.lg *.log *.tmp *.trc *.xref + rm -f *.4es *.bat *.unix *.htf *.png *.fls tmp + rm -f m*.html bugfixes.html # not index.html diff --git a/support/TeX4ht/doc/README b/support/TeX4ht/doc/README new file mode 100644 index 0000000000..ba635133df --- /dev/null +++ b/support/TeX4ht/doc/README @@ -0,0 +1,15 @@ +$Id: README 924 2021-05-02 22:55:22Z karl $ +This file is public domain. Originally written 2021, Karl Berry. + +Documentation for TeX4ht, https://tug.org/tex4ht. + +The documentation here was written by Eitan Gurari, the original author +of TeX4ht. It has been only slightly updated since his passing. + +Published articles are listed on the TeX4ht web page. Additional +documentation is in the source repository (doc/ subdir), but is not yet +ready for release. (This documentation is the doc/mn subdir in the +source repository.) + +Bug reports and patches are most welcome. See https://tug.org/tex4ht +for contact and other information. diff --git a/support/TeX4ht/doc/TeX4ht-doc.tex b/support/TeX4ht/doc/TeX4ht-doc.tex new file mode 100644 index 0000000000..c70d4d87fa --- /dev/null +++ b/support/TeX4ht/doc/TeX4ht-doc.tex @@ -0,0 +1,11094 @@ +% $Id: TeX4ht-doc.tex 786 2020-08-24 17:18:49Z karl $ +% Part of TeX4ht, released under the LPPL. +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project . + +%%%%%%%%%%%%%%% comment out for final version %%%%%%%%%%%%% +% \def\UnderRevision{{\bf +% This site is under revision +% until the end of February +% \IgnorePar\EndP \HCode{
}\par +% }} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%\immediate\write16{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!} +%\immediate\write16{!!!!!!Compile: dotemp or dofinal !!!!!!!!} +%\immediate\write16{!!!!!!NEEDS: htcmd.exe, tex4ht.exe, t4ht.exe !!!!!!!!} +%\immediate\write16{!!!!!!needs: TWO COMPILATIONS to get correct index!!!!!!!!} +%\immediate\write16{!!!!!!checkmn in-messages out-clean-messages!!!!!!!!} +%\immediate\write16{!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!} + + +\long\def\WAIT#1\ENDWAIT{} +%%%%%%%%%%%%%%%%%%% Compiling this program %%%%%%%%%%%% +% For temp directory: dotemp +% For TeX4ht dir : difinal + +% \def\SysNeeds#1{} + + +\def\SKIP{\bgroup\catcode`\\=9 \catcode`\{=9 \catcode`\}=9 \foo} +\long\def\foo#1/////////////+/{\egroup}\SKIP + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +MORE AT THE END +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +refresh AlProTex.sty in ctan +------------------------------------------- +-------------------------------------------------------------------------------------- +------------------------------------------- + +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- +http://biostat.mc.vanderbilt.edu/wiki/Main/SweaveConvert +-------------------------------------------------------------------------------------- +From: Peter FELECAN +To: gurari@cse.ohio-state.edu +Subject: [SPAM] tex4ht packages for SUN Solaris +Date: Mon, 18 May 2009 09:50:36 +0200 + +Eitan, + +Just to let you know that I packaged tex4ht --- the latest version --- +for SUN Solaris and the packages are available in the distribution +OpenCSW: http://www.opencsw.org/ If you think that it's of interest for +the tex4ht users community you can mention it on the project page. + +Sincerely yours +-- +Peter FELECAN + +-------------------------------------------------------------------------------------- + +Bill, + +The problem is due to tex4ht assuming that \a maintains its original +definition as provided in latex.ltx. The same kind of problem will +arise with many other macros that are configured by tex4ht. + +It is possible to modify tex4ht to provide configurations only for +control words that maintain their original definitions, but that will +require a large code overhead. On the other hand, it can be argued +that it is the responsibility of authors that change the meaning of +control words to provide also new tex4ht-based configurations. + +I modified the bugfixes distribution to cancel through an instruction +of the form + + \HRestore\a + +the configuration by tex4ht. + +-eitan + + > I suppose this could be fixed by now, though the same behavior + > is obtained with the texlive 2007 version (version 2006-10-28-15:32). + > + > (/usr/share/texmf/tex/generic/tex4ht/tex4ht.sty + > version 2008-02-25-14:04 + > + > The only notice is: + > + > ! Missing $ inserted. + > + > $ + > + > Example and xhtml+mathml output appended. The example runs correctly + > through normal latex. + + > ------------------------- + > \documentclass{article} + > \renewcommand{\a}{\alpha} + > \begin{document} + > + > $\a$ + > \end{document} + > ----------------------- +-------------------------------------------------------------------------------------- + + +\documentclass[english]{article} + \listfiles + \usepackage{filecontents} + \begin{filecontents}{test.bib} + @BOOK{book, + author = {Surname, Shaun}, + title = {A book with a long title}, + shorttitle = {A book}, + address = {London}, + year = {2000} + } + \end{filecontents} + \usepackage[style=verbose-note]{biblatex} + \bibliography{test} + + \begin{document} + \footnote{\cite{book}} +\footnote{\cite{book}} + \end{document} + +-------------------------------------------------------------------------------------- + +here it is a patch to let oolatex test which java implementation is run +by the command ``java'', and to exit with a meaningful error message (that can b\ +e +improved, of course) + +the patch is relevant in the debian context, and is not intended for propagati\ +on +upstream + +best regards + + gb + +--- /usr/share/tex4ht/oolatex 2008-09-14 05:53:15.000000000 +0200 ++++ oolatex 2008-12-11 15:11:38.000000000 +0100 +@@ -1,4 +1,7 @@ + #!/bin/sh ++ ++java -version 2>&1 | grep -q 'GNU libgcj' && printf ``oolatex NEEDS Sun's Java\ +\n'' && exit ++ + if command -v xhtex > /dev/null 2>&1 ; then + true + else + + + + + +-------------------------------------------------------------------------------------- +\graphicspath{{eps/}{tiff/}} +http://www.tex.ac.uk/cgi-bin/texfaq2html?label=graphicspath +\DeclareGraphicsExtensions{.png,.jpg,.eps,.ps} +\includegraphics{fig} +-------------------------------------------------------------------------------------- +To: owner@bugs.debian.org (Debian Bug Tracking System) +Cc: Kapil Hari Paranjape +Subject: Bug#486482: tex4ht: a java program invoked from + oolatex goes in error +In-Reply-To: +References: + <20080616111948.5356.58963.reportbug@boffi95.stru.polimi.it> + +X-Mailer: VM 7.04 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid +--text follows this line-- + +An apology if this is a duplicate posting. I tried to email earlier +a similar message I fail to find a trace of it. + +-------- + + +Kapil Hari Paranjape, Mon, 16 Jun 2008 20:00:02 + +> This (second) failure seems to the same error as is evident in bug +> report #471837, which is due to a problem with "default-jre" under +> Debian (see #474075). The problem is that the JRE which uses gij (or +> cacao or jamvm) is not entirely compatible with Sun's "java". +> +> The original "xtpipes" java code and the resulting byte code works +> fine with Sun's "java". If you choose the Sun java (currently only in +> non-free under Debian) using "update-alternatives", then the +> conversion ought to work for now. +> +> We are still trying to fix this compatibility issue. + +Eitan Gurari, Tue, 17 Jun 2008 00:48:31 +> +> > We are still trying to fix this compatibility issue. +> +> It will take some months until I'll confront the problem head on. I +> intend first to learn the gij/gcj environment by using it to develop +> software for another project. -eitan + +The oolatex problem with gij/gcj is due to the problem exhibited in +the attached sample program. The program produces the same error (of +a missing office.dtd file) under SUN Java and GNU Java. When the +EntityResolver code is uncommented, the SUN Java program executes +smoothly. On the other hand, the GNU Java still issues the error +message. That is, GNU Java seems to have broken implementation for +the EntityResolver feature. + +I ran the code with the commands + + javac Test.java ; java Test test.tmp + gcj -C Test.java ; gij Test test.tmp + +within the following environment. + + java version "1.5.0" + gij (GNU libgcj) version 4.2.4 (Ubuntu 4.2.4-1ubuntu3) + +By introducing an empty office.dtd file in the work directory, oolatex +would work also under gcj/gij. + +-eitan + +------------------- Test.java ---------------------- + +import javax.xml.parsers.*; +import org.xml.sax.*; +import java.io.*; +class Test { + static public void main(String[] args) + throws Exception { + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + XMLReader xmlReader = saxParser.getXMLReader(); + /* + xmlReader.setEntityResolver(new org.xml.sax.EntityResolver() { + public InputSource resolveEntity( + String publicId, String systemId) { + StringReader strReader = new StringReader(""); + System.err.println(".......... " + systemId); + return new org.xml.sax.InputSource(strReader); + } + }); + */ + xmlReader.parse + ( new File(args[0]).toURI().toURL().toString() ); +} } + +------------------- test.tmp ----------------------- + + + + + + +---------------------------------------------------- + + +-------------------------------------------------------------------------------------- + +javac Test.java ; java Test test.tmp +gcj -C Test.java ; gij Test test.tmp + +java version "1.5.0" +gij (GNU libgcj) version 4.2.4 (Ubuntu 4.2.4-1ubuntu3) + + + + + +import javax.xml.parsers.*; +import org.xml.sax.*; +import java.io.*; +class Test { + static public void main(String[] args) + throws Exception { + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + XMLReader xmlReader = saxParser.getXMLReader(); + /* + xmlReader.setEntityResolver(new org.xml.sax.EntityResolver() { + public InputSource resolveEntity( + String publicId, String systemId) { + StringReader strReader = new StringReader(""); + System.err.println(".......... " + systemId); + return new org.xml.sax.InputSource(strReader); + } + }); + */ + xmlReader.parse + ( new File(args[0]).toURI().toURL().toString() ); +} } + + + + + + + + + + +------------------------------------------------------------------------------ + > tc:\Program Files\MiKTeX 2.7\fonts\! + > which it could not resolve. + > I now changed it to + > tc:\Progra~1\MiKTeX~2.7\fonts\! + > which makes it work now. +-------------------------------------------------------------------------------------- + +As explained in section 2, TEX4ht needs external utilities for +creating the bitmaps used in the web-documents. The default set up is +a combination of dvips, gs (GhostScript) and ImageMagick’s convert +utility [4]. Unfortunately this is a rather slow process, and not a +very good one when it comes to antialiasing, and it’s definetely not +suited for typesetting uses. However, the dvi2bitmap tool available +freely from [3] is efficient and converts dvi files directly to png or +gif files. Dvi2bitmap works almost like a normal dvi-driver, but has +no support for so-called dvi-specials (such as included eps-figures +et.c.) Thus, a combination of the two is required: We use dvi2bitmap +whenever we encounter maths and special symbols as this is efficient +and produce good results, but use the aforementioned +dvips/gs/convert-process for items that dvi2bitmap cannot handle, such +as included PostScript figures. + +-------------------------------------------------------------------------------------- +http://schlosser.info/latexsystem-en.html#x1-200003.6 +-------------------------------------------------------------------------------------- +I forgot to mention about one thing. The installation script I posted +earlier does not install tex4ht.exe and t4ht.exe binaries. They come +with miktex-tex4ht-bin-2.7 package and should be installed first +(using miktex package manager). The rest of tex4ht is installed by the +script and it won't show up in miktex package manager (it have to be +maintained manually). + +And a small correction - lines [51-54] are not needed and can be +deleted (but they don't do any harm, it's not a bug, just some dead +code). + + + +>A few final remarks. It works on NT based systems only, so users of +>win98 and below are out of luck. Sorry. Shell scripting on NT is +>already traumatic enough for me. All lines are numbered in case they +>get wrapped in this post. Copy and paste them into a text editor and +>unwrap all lines not starting with a number. Remove the bracketed +>numbers and save it as 'install-tex4ht.bat'. If you are too lazy to do +>it manually save it as 'install-tex4ht.txt' and from the command line +>run (one line): +>(for /f "tokens=1* delims=[]" %K in (install-tex4ht.txt) do @echo. +>%L)>install-tex4ht.bat +> +>OK, without the further ado, here's the installation script. +> +>---------- INSTALL-TEX4HT.BAT +>[1]::--------------------------------------------------------------------:: +>[2]::- *** TEX4HT installation script +>*** -:: +>[3]::- +>-:: +>[4]::- +>Usage: -:: +>[5]::- * +>Installation: -:: +>[6]::- install- +>tex4ht.bat -:: +>[7]::- install-tex4ht.bat +>install -:: +>[8]::- * +>Uninstallation: -:: +>[9]::- install-tex4ht.bat +>uninstall -:: +>[10]::- +>-:: +>[11]::- +>Remaks: -:: +>[12]::- * Installation script will prompt you for locations of +>unzipped -:: +>[13]::- tex4ht.zip and newt4ht.zip files; you can to avoid that +>by -:: +>[14]::- defining them in the configuration section of the +>script -:: +>[15]::- * After installation created TDS (TeX Directory Structure) +>tree -:: +>[16]::- has to be added to MiKTeX's roots (use MiKTeX's +>Settings -:: +>[17]::- utility mo.exe). Alternatively, you can install to +>MiKTeX's -:: +>[18]::- intallation directory but this is not recommended. +>Refresh -:: +>[19]::- FNDB after +>installation. -:: +>[20]::- * Uninstallation will leave behind created TDS +>tree; -:: +>[21]::- delete it manually if +>desired -:: +>[22]::--------------------------------------------------------------------:: +>[23] +>[24]@echo off +>[25]setlocal +>[26] +>[27]:: ******************** Configuration section +>*********************** :: +>[28]::unzipped tex4ht location +>[29]set tex4ht_unzipped_dir=.\tex4ht-20070708 +>[30]::unzipped newt4ht location +>[31]set newt4ht_unzipped_dir=.\newt4ht +>[32]::tex4ht installation dir +>[33]set tex4ht_install_dir=C:\texmf-local +>[34]::change (Y) or not (N) the default script to +>[35]set use_oo-alt=Y +>[36]::rollback if installation failed (Y/N) +>[37]::(removes only texh4ht and leaves created TDS tree behind) +>[38]set rollback=N +>[39]:: +>****************************************************************** :: +>[40] +>[41]if not "%OS%"=="Windows_NT" goto requireNT +>[42]for %%G in (xcopy.exe) do if "%%~$PATH:G"=="" goto :noxcopy +>[43] +>[44]call :help +>[45]for %%G in (tex4ht_unzipped_dir newt4ht_unzipped_dir +>tex4ht_install_dir) do ( +>[46] call :setupdirs %%G +>[47] if not defined %%G goto :abort +>[48]) +>[49]goto %1 :install +>[50] +>[51]for %%G in (%tex4ht_install_dir%\tex4ht\base\win32\tex4ht.env +>%tex4ht_install_dir%\scripts\tex4ht\bat\*.bat) do ( +>[52] call %% > nul +>[53] REM && move /Y %%G.tmp %%G || goto :copyerror +>[54]) +>[55] +>[56]:install +>[57]set "copyopt=/I /S /Y /D" +>[58]xcopy.exe %newt4ht_unzipped_dir%\texmf\tex4ht %tex4ht_install_dir% +>\tex4ht %copyopt% || goto :copyerror +>[59]xcopy.exe %newt4ht_unzipped_dir%\texmf\tex\generic\tex4ht +>%tex4ht_install_dir%\tex\generic\tex4ht %copyopt% || goto :copyerror +>[60]xcopy.exe %tex4ht_unzipped_dir%\texmf\tex4ht\ht-fonts +>%tex4ht_install_dir%\tex4ht\ht-fonts %copyopt% || goto :copyerror +>[61]xcopy.exe %tex4ht_unzipped_dir%\bin\win32\*.bat %tex4ht_install_dir +>%\scripts\tex4ht\bat %copyopt% || goto :copyerror +>[62]echo Search and replace "c:\tex4ht\texmf\" with +>"%tex4ht_install_dir%" +>[63]for %%G in (%tex4ht_install_dir%tex4ht\base\win32\tex4ht.env +>%tex4ht_install_dir%scripts\tex4ht\bat\*.bat) do ( +>[64] call :replstr %%G "c:\tex4ht\texmf\" "%tex4ht_install_dir%" +>[65]) +>[66]if /i "%use_oo-alt%"=="Y" ( +>[67] echo Search and replace "oo>" with "oo-bak>" +>[68] call :replstr %tex4ht_install_dir%tex4ht\base\win32\tex4ht.env +>"oo>" "oo-bak>" +>[69] echo Search and replace "oo-alt>" with "oo>" +>[70] call :replstr %tex4ht_install_dir%tex4ht\base\win32\tex4ht.env +>"oo-alt>" "oo>" +>[71]) +>[72]echo To finish installation add "%tex4ht_install_dir%" to MiKTeX +>roots and refresh FNDB +>[73]pause +>[74]goto :eof +>[75] +>[76] +>[77]:uninstall +>[78]echo Uninstalling TEH4HT... +>[79]for %%H in (%tex4ht_install_dir%tex4ht %tex4ht_install_dir%tex +>\generic\tex4ht %tex4ht_install_dir%scripts\tex4ht) do ( +>[80] if exist "%%~H\" ( +>[81] echo Removing "%%~H\" +>[82] rmdir /S /Q "%%~H\" +>[83] ) +>[84]) +>[85]echo Uninstallation complete +>[86]pause +>[87]goto :eof +>[88] +>[89]:help +>[90]findstr "^::-" %~sf0 +>[91]goto :eof +>[92] +>[93]:setupdirs +>[94]::let's make sure that dirs are in short format +>[95]for /f "tokens=1* delims==" %%H in ('set %1 2^>^&1') do set +>"$cratchVar=%%~sfI" +>[96]if defined $cratchVar set "$cratchVar=%$cratchVar%\" +>[97]if not exist "%$cratchVar%" (set /p $cratchVar=%1=) +>[98]if not exist "%$cratchVar%" ( +>[99] set "$cratchVar=" +>[100] set /p $cratchVar=Specified directory does not exist. Retry? [y/ +>n]: +>[101] set $cratchVar | findstr /i "=y\>" >nul && goto :setupdirs || +>set "$cratchVar=" +>[102]) +>[103]set %1=%$cratchVar% +>[104]goto :eof +>[105] +>[106]:replstr +>[107]setlocal +>[108]echo.%1 +>[109]for /f "tokens=1* delims=[]" %%K in ('find /n /v "" "%~1"') do ( +>[110] set lineNo=0000%%K +>[111] set "txtline==%%L" +>[112] REM This may break if txtline contains poison characters +>[113] REM together with quotation characters +>[114] call set "txtline.%%lineNo:~-4%%=%%txtline:%~2=%~3%%" +>[115]) +>[116]::echo from for command so we don't get screwed by poison +>characters +>[117]>"%~1" (for /f "tokens=1* delims==" %%K in ('set txtline.') do +>echo.%%L) +>[118]goto :eof +>[119] +>[120]:copyerror +>[121]>&2 echo There were some errors while copying files. Make sure +>that correct installation directories are specified. +>[122]>&2 echo Aborting installation. +>[123]if /i "%rollback%"=="Y" call :uninstall +>[124]pause +>[125]exit /b 1 +>[126] +>[127]:abort +>[128]>&2 echo Aborting installation. +>[129]pause +>[130]exit /b 1 +>[131] +>[132]:requireNT +>[133]>&2 echo This script requires Windows NT based system. Sorry. +>[134]pause +>[135]exit /b 1 +>[136] +>[137]:noxcopy +>[138]>&2 echo No xcopy command? Aborting installation, please don't +>hate me. +>[139]pause +>[140]exit /b 1 + +-------------------------------------------------------------------------------------- +http://groups.google.com/group/comp.text.tex/browse_thread/thread/cd12489666d4d15f/2662902be1a6b276?lnk=gst&q=tex4ht+2008+pdf#2662902be1a6b276 +-------------------------------------------------------------------------------------- + +comp.text.tex #397221 (0 + 9 more) (1)+-(1) +From: Turgut Durduran \-(1)--[1] +[1] Re: tex4ht problems +Date: Thu Feb 28 17:31:52 EST 2008 +Lines: 48 + +On 2008-02-21, Eitan M Gurari wrote: +> +>>LaTeX document to either open document format, or to html that I would +> +>>I am using text4ht from Ubuntu Gutsy Gibbon repositories. Nothing +>>customized. +>> +>>The files I am using are here: +>>http://www.stwing.upenn.edu/~durduran/tmp/distr/ +> +>>The output is broken -- Firefox can't open it with the following error. +> +> Try upgrading the tex4ht instalation with the files from +> +> http://www.cse.ohio-state.edu/~gurari/TeX4ht/bugfixes.html +> +> +>>(2) references are listed but appear as: + +From: Turgut Durduran \-(1)--(1) +[1] Re: tex4ht problems +Date: Thu Feb 28 17:31:52 EST 2008 +Lines: 48 + +On 2008-02-21, Eitan M Gurari wrote: +> +>>LaTeX document to either open document format, or to html that I would +> +>>I am using text4ht from Ubuntu Gutsy Gibbon repositories. Nothing +>>customized. +>> +>>The files I am using are here: +>>http://www.stwing.upenn.edu/~durduran/tmp/distr/ +> +>>The output is broken -- Firefox can't open it with the following error. +> +> Try upgrading the tex4ht instalation with the files from +> +> http://www.cse.ohio-state.edu/~gurari/TeX4ht/bugfixes.html +> +> +>>(2) references are listed but appear as: ``ø:mbox:1,ø:mbox:2'' instead of +>>supersciprt 1,2 etc. +> +> I modified the bugfixes distribution to take care of the problem along the +> approach suggested by Dan (thanks Dan!). +> +> -eitan +> + + + +I thank Dan and Eitan for their help. + +Eitan, under the instructions for an ``upgrade'' (which I assume bugfixes +should be applied as such?), it says: + +``[Invocation Scripts] Find where htlatex resides (e.g., \u2018which +htlatex\u2019). Save the files htlatex, httex, httexi, and htcontext +elsewhere and get new scripts from +bin/linux/ +for a replacement.'' + + + but there is no such thing in +http://www.cse.ohio-state.edu/~gurari/TeX4ht/fix/tex4ht-1.0.2008_02_26_0908.tar.gz + +should it read as bin/unix instead? (I tried that, seems fine) + +I am checking if this fixed my problem yet. + + +-------------------------------------------------------------------------------------- + ---- ---------------------- -------------------------------------------------- +From: Richard Koch +Sender: macosx-tex-bounces@email.esm.psu.edu +To: emalito@uchicago.edu, + TeX on Mac OS X Mailing List +Cc: +Subject: Re: [OS X TeX] convert .tex file to .html +Date: Sat, 17 Nov 2007 19:25:47 -0800 + +Enrico, + +What TeX distribution are you using? If it is TeX Live or gwTeX, then +TeX4ht should be already installed in the distribution. + +The latest version of TeXShop has an "engine" file for \ this program. +It is in + + ~/Library/TeXShop/Engines/Inactive + +If you don't find it there, but have TeXShop 2.14, then move the +entire folder ~/Library/TeXShop/Engines to your desktop. The next time +TeXShop starts, it will create the default folder, which will include +a TeX4ht folder and htlatex.engine. To use it, move htlatex.engine +from the inactive folder to ~/Library/TeXShop/Engines. + +To use this program, enter standard latex source in the Source Window. +In the pulldown menu next to the Typeset button, select htlatex. When +you push the Typeset button, your latex source will be typeset and +then converted to an html file, and this html file will open in Safari. + +You can make this happen automatically (without selecting htlatex) by +entering + + %!TEX TS-program = htlatex + +near the top of your source file. + +Dick Koch +koch@math.uoregon.edu +==================== +From: Thomas Rike +Sender: macosx-tex-bounces@email.esm.psu.edu +To: emalito@uchicago.edu, + TeX on Mac OS X Mailing List +Cc: +Subject: Re: [OS X TeX] convert .tex file to .html +Date: Sat, 17 Nov 2007 19:37:15 -0800 + +Enrico, + +I am no expert, but on the command line I first change my directory to +the directory containing the latex file (Just drag and drop the folder +works fine). Then type htlatex nameofyourfile.tex + +For graphics I think you will need ghostscript and Imagic which I got +with the i-Intaller. + +If you are not working on the command line then a very effective gui +is SimpleTeX4ht (version 1.8). Just download, install and run. Select +the button ``Convert'' and you can browse your computer for the file you +want to convert to html. + +http://www.apple.com/downloads/macosx/unix_open_source/simpletex4ht.html + +HTH, Tom Rike + +-------------------------------------------------------------------------------------- + + +-------------------------------------------------------------------------------------- +http://www.sun.com/software/star/odf_plugin/ + +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- + > > The problem was in missing hypertext fonts, as indicated by the + + > I think that's only one of two errors. Tex4ht should produce valid mml + > files even if the .htf files are missing, as TeX allows users to define + > their own fonts. Unknown Characters could be replaced by a square or a + > question mark as it is used in other contexts. + +I believe it will be a wrong approach, as users might get improper +content and in some cases are unlikely to notice it. Moreover, the +philosophy of OpenOffice, and of quite a few advocates of XML, is to +maintain zero tolerance for errors. So not allowing improper data is +consistent with that philosophy. + +The squares or question marks OpenOffice and other browsers display +are not due to errors in the exhibited files. They point to missing +fonts in the platforms on which the browsers run. + +A solution to a missing font problem should not be that difficult to +achieve by replacing fonts. For instance dvi2dvi seems to be +a utility designed for that purpose (http://packages.debian.org/sid/dvi2dvi). + +Technically, it probably will be easy to add an option for tex4ht to +output, say, a question mark where characters are missing. In case +you strongly like to have such an option, I'll provide it. + +-eitan + +-------------------------------------------------------------------------------------- + +biblatex +-------------------------------------------------------------------------------------- + +FWIW, I mirror Eitan's web pages (and distributions) at +ftp://tug.org/mirror/www.cse.ohio-state.edu/~gurari/TeX4ht. Maybe CTAN +could easily mirror that and hence be up to date? In particular, the +file +ftp://tug.org/mirror/www.cse.ohio-state.edu/~gurari/TeX4ht/fix/tex4ht.tar.gz +is the latest bug fix release, I believe. + +-------------------------------------------------------------------------------------- + + + + + + +-------------------------------------------------------------------------------------- +MacTeX installs the full TeX Live 2007, with virtually no +changes. Indeed, you can go to + + http://www.tug.org/mactex/whatgetsinstalledwhere.html + +to see exactly how we configure TeX Live. + +-------------------------------------------------------------------------------------- + + +I've done this with MetaPost graphics. The first step is to get +yourself a PDF output as you suggested in (b). I've tried various +techniques, but I've decided for myself that this is the "best" +solution (quality wise). You'll need the following tools: + +1) pstoedit --> http://www.pstoedit.net/pstoedit +2) skencil --> http://www.skencil.org +3) inkscape --> http://www.inkscape.org + +In Gentoo Linux I needed Skencil in order for Inkscape to have SKencil/ +SKetch support; however, pstoedit and Inkscape are the only two +utilities *directly* used. If your version of Inkscape has SK support +without installing SKencil, then that's good. + +Let's assume your PDF is foo.pdf. Then do the following: + +pstoedit -page 1 -rgb -dt -psarg "-r9600x9600" -f sk foo.pdf foo.sk + +This will produce a SKencil/SKetch format of page 1 of your document. +-rgb uses RGB colors and -dt tells pstoedit to trace your fonts. This +tracing gives a larger filesize, but it ensures that your output text +looks exactly like your text in your PDF. The -psarg "-r9600x9600" +tells GhostScript to process stuff at 9600dpi. + +Note that pstoedit can export to SVG directly, but I've found that the +results aren't as good as going through SK and using Inkscape to +convert the SK to SVG. + +After you get foo.sk, you can then do + +inkscape -z -f foo.sk -l foo.svg + +Hopefully this will be to the quality and filesize that you want. + + +-------------------------------------------------------------------------------------- +http://ooolatex.sourceforge.net/ +-------------------------------------------------------------------------------------- + +To: =?iso-8859-2?B?QmFyYm9yYSBIYXbt+G924Q==?= +Subject: TeX4ht for LaTeX to DocBook +In-Reply-To: <000701c73441$e95d8f90$7601a8c0@barbora> +References: <000701c73441$e95d8f90$7601a8c0@barbora> +X-Mailer: VM 7.04 under 21.1 (patch 14) ``Cuyahoga Valley'' XEmacs Lucid +--text follows this line-- + + +Hi Barbora, + +Would the following (unsafe) configuration do the job for you. + + \newtoks\toks + \Configure{$}{}{}{\getMath} + \def\getMath#1${\relax$\fi + \expandafter\toks\expandafter{\gobble#1}% + \HCode{\the\toks}} + \def\gobble#1{} + +-eitan + + > I need to let all the mathematics as it is and only wrap + > it in . + > + > I.e. $\sqrt{a^b}$ will be \sqrt{a^b} + > + > Is it possible? + > + > I am able to wrap it with + > + > \Preamble{xhtml} + > \begin{document} + > \Configure{$}{\HCode{}}{\HCode{}}{} + > \EndPreamble + > + > in my configuration file, but I don't know how to forbid processing of the + > math code. + +Barbora, + +Another (unsafe) option: + + \newtoks\toks + \Configure{$}{}{}{\getMath} + \def\getMath#1${\relax$\fi + \expandafter\toks\expandafter{\gobble#1}% + \HCode{}% + \bgroup + \noindent + \Configure{HtmlPar}{}{}{}{} + \ConfigureEnv{verbatim}{}{}{}{} + \immediate\openout15=tempmatheq.tex + \immediate\write15{\string\begin{verbatim}\the\toks + \string\end{verbatim}}% + \immediate\closeout15 + \input tempmatheq.tex \noindent + \egroup + \HCode{}} + \def\gobble#1{} + +-eitan + + > I found a problem, because the symbols < and > + > can't be in the mathematic text as they are used for tags. I hope that + > changing it into < and &rt; will help. + + + +Barbora, Try the following variant. -eitan + + \newtoks\toks + \Configure{$}{}{}{\getMath} + \def\getMath#1${\relax$\fi + \expandafter\toks\expandafter{\gobble#1}% + \HCode{}% + \bgroup + \noindent + \Configure{HtmlPar}{}{}{}{} + \ConfigureEnv{verbatim}{}{}{}{} + \Configure{verbatim}{ }{ } + \immediate\openout15=tempmatheq.tex + \immediate\write15{\string\begin{verbatim}\the\toks + \string\end{verbatim}}% + \immediate\closeout15 + \input tempmatheq.tex \noindent + \egroup + \HCode{}} + \def\gobble#1{} + + + > It works. But when there is a space in math, it is replaced by   + +-------------------------------------------------------------------------------------- + +http://www.alanwood.net/unicode/ + +Alan Wood’s Unicode Resources +Unicode and Multilingual Support in HTML, Fonts, Web Browsers and Other Applications +-------------------------------------------------------------------------------------- + + > > How about a command similar to the following one? + > > + > > t4ht try -d'~/WWW/temp/foo\ foo/' + > > + > + > To get to that requires changing the htlatex script to quote the + > argument to t4ht. + +I don't think we can go for htlatex modifications, as the outcome +might also depend on the operating system in use. In any case, I +modified t4ht.c to allow for FULLY quoted arguments such as + + t4ht try '-d~/WWW/temp/foo\ foo/' + t4ht try "-d~/WWW/temp/foo foo/" + +and in the case of htlatex + + htlatex file " " ``'-d~/WWW/temp/foo foo/''' + +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- + + +>Ok. I think I can fix my problem editing the tex4ht.env file. +>I can read in the file /usr/share/doc/tex4ht/README.Debian +>that TeX4ht can use three different way to convert images: +> +>DEFAULT: with dvipng. I think I'm using it right now. +>UPSTREAM: using ImageMagick suite, so using ``convert'' +>NETPBM: with the netpbm suite. Never heard before. +> +>One of them is active, the other scripts are commented +>(how? with spaces?) + +My guess the relevant parts in the Debian environment file have the +following outline. + + + G.png + Gdvips ... + Ggs ... + G.svg + Gdvips ... + Gpstoedit ... + G. + Gdvips ... + Gconvert ... + + + + ....... + + + + G.png + Gdvipng ... + G.gif + Gdvipng ... + G. + Gdvips ... + Gconvert ... + + +The dvipng segment is the active one as its enclosing tags are +commented out, with spaces before the opening tag and the +closing tag . The dvipng segment consists of three +parts: + +* A G.png and a G.gif parts invoking the dvipng + utility to satisfy requests for png and gif bitmaps + +* A G. part invoking dvips+convert to handle requests for other + formats of bitmaps + +Spaces before the records of the first two parts will comment out the +dvipng subscripts, and forward all the requests to the subscript in +the third part. + +Alternatively, remove the spaces before the and tags +to deactivate the script they enclose, and place spaces before the + and tags to activate the enclosed script. + +>In which language is written the tex4ht.env file? Python? Perl? +>Can somebody show me how to edit the tex4ht.env file? + +The file cosists of a specially designed script to be interpreted by +the tex4ht utilities. The tex4ht.env entry in the index of + + http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html + +offers some clues to its content. Modifications to the file can be +done with editors capable of working with plain text. + +-eitan + +-------------------------------------------------------------------------------------- +OS-X: + (/usr/local/teTeX/share/texmf.local/tex4ht/base/tex4ht.env) + (/usr/local/teTeX/share/texmf.tetex/fonts/tfm/public/cm/cmr10.tfm) + --- warning --- Couldn't find font `cmr10.htf' (char codes: 0--127) + Can you show me the messages issued  for + + +     tex4ht  -hF -hv  test + +That gave me a bit more to work with, I added  + + + +TEX4HTFONTSET=alias,iso8859   + +TEX4HTINPUTS=.;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}//   + +T4HTINPUTS=.;$TEXMF/tex4ht/base//   + + + +tex4ht.c (2006-07-14-10:23 kpathsea) + +tex4ht -hF + +  -hv + +  test + +(/usr/local/teTeX/share/texmf.local/tex4ht/base/tex4ht.env) + +given TEX4HTFONTSET = alias,iso8859 + +setting TEX4HTFONTSET={iso8859/1,ascii,alias,mozilla,unicode,alias,iso8859} + +texmf.cnf = /usr/local/teTeX/texmf.cnf + +TEX4HTINPUTS = +.:{/Users/kai/Library/texmf,!!/usr/local/teTeX/share/texmf.local,!!/usr/local/teTeX/share/te\ +xmf.gwtex,!!/usr/local/teTeX/share/texmf.tetex,!!/usr/local/teTeX/share/texmf}/tex4ht/base//\ +:{/Users/kai/Library/texmf,!!/usr/local/teTeX/share/texmf.local,!!/usr/local/teTeX/share/tex\ +mf.gwtex,!!/usr/local/teTeX/share/texmf.tetex,!!/usr/local/teTeX/share/texmf}/tex4ht/ht-font\ +s/{iso8859/1,ascii,alias,mozilla,unicode,alias,iso8859}// + +(/usr/local/teTeX/share/texmf.local/tex4ht/ht-fonts/iso8859/1/charset/unicode.4hf) + + +-------------------------------------------------------------------------------------- + + > I downloaded the recent release tex4ht-1.0.2006_07_23_0130, but where + > can I find the documentation for installing it? + +I should wrie such instructions... The idea is just to replace the old +files/directories with the new ones: + + bin/ht/perl/mk4ht.perl + bin/ht/unix/ht* + bin/mac/* + texmf/* + + + +and refresh lR-s, e.g., with the texhash command. + + +-------------------------------------------------------------------------------------- + +The problem has vanished. It +might be connected with the update of tetex-bin that I just made on the +sid box. + +-------------------------------------------------------------------------------------- + +a side note: recently I released TeXML 2.0 beta1. I expect no issues, +and I'm going to announce TeXML 2.0 in the middle of July. The new +TeXML site is: http://getfo.org/texml/ . + +conrad.ammon@gmail.com wrote: +> Has anyone taken a look at using XSL to give needed functionality to +> TeXML? +> +> TeXML on the level of TeX... on its own its not too useful. However, +> XSL was specifically designed for doing markup, similar to the macros +> of LaTeX. Is there a good set of XSL scripts that anyone has written? + +There are a lot of them, but they are private. The only public script +I'm aware of is XML2TeXML by Wolfgang Jeltsch +(http://xml2texml.sourceforge.net/ ). And I'm starting working on a +DocBook to TeXML converter in the near future. + +-------------------------------------------------------------------------------------- +To: gurari.1@osu.edu +Cc: Barbara Beeton , Anna Hattoy +Subject: documentation for dratex (fwd) +Date: Fri, 02 Jun 2006 10:26:22 -0400 (EDT) + +hi, eitan, +when i tried to send this message to you, using +the e-mail address i got from the tug office, +it was returned. i found the address i'm using +now by searching the osu.edu web site. it seems +that the university has made your previous +incarnation unreachable in a lot of places ... + -- bb + +---------- Forwarded message ---------- +Date: Fri, 2 Jun 2006 10:20:23 -0400 (EDT) +From: Barbara Beeton +To: gurari@cis.ohio-state.edu +Cc: Barbara Beeton , Anna Hattoy +Subject: documentation for dratex + +hello, eitan, +we've received a manuscript for publication in +one of our journals that calls for +\usepackage{DraTex}. + +before we can decide whether this should be +installed here for production, we need to look +at the documentation. but the documentation +isn't at ctan -- the readme file says that it +can be found at + http://www.cis.ohio-state.edu/~gurari/systems.html + +an attempt to reach that url results in + www.cis.ohio-state.edu cannot be found. please + check the name and try again. + +what is the current location, please? and +please update the readme file for this and any +other material at ctan that has this reference. + +thanks. + +-------------------------------------------------------------------------------------- + +mk4ht xhlatex convtest "html,jsmath" + +How about trying the `jslatex' option. It doesn't preserve the +original latex math. Instead, it produces html with normalized latex +math. + +-eitan + + > Thanks for the tip, I had already tried something like that, but Word + > doesn't like it. Also, going through OpenDocument doesn't quite get the + > formulae right.. + > + > I am now trying to edit the mathml configuration so that it pastes the + > LaTeX + + +-------------------------------------------------------------------------------------- + + > > There is an option to send output files (.html,.css,.png) files to + > > a directory other than the current directory. For example + > > + > > htlatex sample2e "" "" "-d~/home_page/test" + > > + > > will send the output files to ~/home_page/test. + + > Well, it would be nice if the temporary directory was automatically + > created if it doesn't exist. But what I'd appreciate even more is if it + > would (or is?) possible to permanently set the -d switch, so that I + > don't need to type it every time. + +That can be done by adding in the htlatex-like script files the -d +switch to the t4ht records, e.g., + + t4ht ... -d~/WWW/temp/ + +Similarly, within mk4ht add the -d switch to the trailing quoted "..." +segments, e.g., + + "ht", "htlatex", "latex", "", "", "-cvalidatehtml -d~/WWW/temp/", + +It doesn't seem appropriate to introduce such a switch permanently +as different users might prefer different directories for their +output. + +I have the switch -d~/WWW/temp/ set in my private scripts. I insert +the switch -d./ in the command line, when I want to overwrite that +switch to have the outcome stay in the work directory. + + > I've read the documentation about configuration files, but it seems this + > only relates to (La)TeX code, not to a configuration file for + > mk4ht/htlatex/... Did I miss something? + +Try the command `t4ht' without arguments. It will show the available +options. I'll modify the documentation to deal with issue. + +-------------------------------------------------------------------------------------- + +gs -sDEVICE=png256 -sOutputFile=figure1.png -dEPSCrop -r600 -dBATCH + -dNOPAUSE figure1.eps + +-------------------------------------------------------------------------------------- + + > As far as I saw, the pictures inserted in the OO document, have normally + > a size of appr. 1cm without recognizing the original ratio. Is it + > possible to recognize either the size or the ratio (then resizing is + > very simple) for pictures ? I normally use \includegraphics, most of the + > time with the option [width=1.0\textwidth] to insert my pictures. If it + > helps I could send you a sample file. + +TeX4ht specifies sizes only for bounding boxes, when it gets them from +latex. I don't know how to provide sizes in general, as dimensions +for paper output quite often result in distorted dimensions within XML +presentations. I don't understand why OpenOffice uses 1cm dimensions +for figures that are offered without requested dimensions---I would +expect the natural sizes of the figures to be preferable. + + + > You're right. The converted pictures are all in a good size. If I click + > in OO on one picture and change it to +-------------------------------------------------------------------------------------- +comp.text.tex #353104 (0 + 4 more) [1] +Date: Thu Mar 23 18:29:21 EST 2006 +From: USENET-news +[1] latex2html and wiki +Lines: 19 + +Hello Texnicians, + +I have found that wiki is a great way to publish a doc so +that the other developers can collaborate on it, but I +prefer to start that document in LaTeX initially. So I used +latex2html to convert it to HTML and used copy-n-paste to +copy from the HTML to a WIKI page. This gave me a document +that the other developers (who are not TeX aware) can work +with. But this was rather tedious to do. + +I have seen several attempts to write latex2wiki but they +all seem quite poor. It occurs to me that it might be better +to take latex2html and add a mode that would allow WIKI +output as an option. What do you guys think? Does this sound +reasonable? Is latex2html still supported/maintained/developed? + +Regards, + +Andrew Marlow + +> Most probably it is well-defined. Most probably he assumes some +> particular wiki engine with some fixed wikitext syntax. + +Yes, I assume mediaWiki. + +-------------------------------------------------------------------------------------- + + > >The problem is in missing fonts for the browser to display + > >the characters 〈 and 〉. + > + > These characters, and a bunch of others from what we can see here + > are sortof at the ragged edge of font world as far as default browsers + > are concerned. We have the default installs of IE6 and Firefox 1.5 + > loaded here, to emulate what we would expect the average user to use. + > >From what we can see here, these characters do not come loaded by default + > with + > the ability to render these characters... Or are off base here somehow? + +Look at the messages issued by tex4ht.c for the location of the active +unicode.4hf file. Copy that file to your work directory. You can +redefine any character to your liking. For instance, an entry + + '〈' '' 'foo' '' + +will substitute the character 〈 with `foo' everywhere. On the +other hand, an entry asks for a pictorial substitution where allowed +and `foo' where pictures are not allowed. + + '〈' '' 'foo' '1' + +-eitan + + + + + + + + + + +-------------------------------------------------------------------------------------- +http://www.simpletex4ht.free.fr/ +-------------------------------------------------------------------------------------- + +http://fedoraproject.org/extras/4/i386/repodata/repoview/__nogroup__.group.html +-------------------------------------------------------------------------------------- + + #help www-math@w3.org archives + + W3C home > Mailing lists > Public > www-math@w3.org > January 2006 + +Re: mathml applications + + * This message: [ Message body ] [ Respond ] [ More options ] + * Related messages: [ Previous message ] [ In reply to ] + + + From: Bruce Miller + Date: Mon, 09 Jan 2006 10:54:41 -0500 + Message-ID: <43C28741.8000906@nist.gov> + To: Neil Soiffer + CC: Public MathML mailing list + + +Neil Soiffer wrote: +> This week, I will be giving an update to a talk I gave last year about +> MathML applications. If anyone has some new applications not listed on +> http://www.w3.org/Math/Software/ or if you have an update to info listed +> there, please send that info so I can incorporate it into the talk. + +There's my LaTeXML, which I've been meaning to submit to the software +list, once I get a breath. +See http://dlmf.nist.gov/LaTeXML/ +for description, documentation and a (somewhat out-of-date) example from DLMF. + +A brief description (and apologies, in advance, for beating my own drum): + +LaTeXML attempts to mimic TeX's behaviour as fully as possible, but interprets +TeX via a Perl program, rather than using TeX's engine itself. Thus extension +and customization can be done using perl modules, as well as TeX code. + +It processes whole documents (although it can be induced to process fragments, +such as formula), converting the document to a LaTeXML DocType that corresponds +to LaTeX's constructs. This avoids the information lost by direct conversion +to html. This output can then be converted to html (w/images for math), +xhtml (w/MathML) or other formats using XSL stylesheets (included for html/xhtml). + +[In principle, but not practically, it could also be made to directly generate + other XML formats: Ie. the processing engine is (almost) separated from the + document generation. However, since the vocabularies are so large it's nontrivial + to replace the generation definitions.] + +As for MathML: the program attempts to parse the formula into, at least, +a parse tree. This is necessary to generate "Good" presentation MathML. +It is close to enough to generate content MathML, as well, although +some major sticking points and ambiguities, such as the meaning of superscripts +and the handling of unknown symbols, are the subject of further development. +To increase the quality of the parsing, an author can either use special +markup to disambiguate the notations, or use document-specific external declarations. + + +> The audience will likely have a strong TeX background. If you have had +> any experience (pro or con) with the various TeX-to-XHTML+MathML +> converters in the last year, I'd like to hear about that so I can pass +> it along. + +I've been using it pretty heavily in the DLMF (Digital Library of Mathematical +Functions) project. I've processed 26 chapters (must be equivalent to +6-700 pages) so far; we're preparing a draft of the site for evaluation +(alas, the editors are keeping it close to the chest, however). +So, I'd have to say my experience is positive :> + +Michael Kohlhase has also been using LaTeXML in developing his STeX system. + +> Thanks, +> +> Neil Soiffer +> Senior Scientist +> Design Science, Inc. +> www.dessci.com +> ~ Makers of Equation Editor, MathType, MathPlayer and MathFlow ~ + + +-- +bruce.miller@nist.gov +http://math.nist.gov/~BMiller/ + + Received on Monday, 9 January 2006 15:54:31 GMT + + * This message: [ Message body ] + * Previous message: Paul Libbrecht: "Re: mathml applications" + * In reply to: Neil Soiffer: "mathml applications" + + * Mail actions: [ respond to this message ] [ mail a new topic ] + * Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by + author ] + * Help: [ How to use the archives ] [ Search in the archives ] + + This archive was generated by hypermail 2.2.0+W3C0.50 : Monday, 9 January 2006 + 15:54:32 GMT + +-------------------------------------------------------------------------------------- +http://www.activemath.org/amwiki/index.php/Conversion-efforts-to-content-math +-------------------------------------------------------------------------------------- +omp.text.tex #347601 (0 + 2 more) (1)--[1] +From: Troy Henderson +[1] Re: eps to svg +Lines: 15 +Date: Sun Jan 01 12:59:14 EST 2006 + +Convert it to PDF using, say, epstopdf. After that, use my pdf2svg +converter located at + +http://www.tlhiv.org/MetaPost/tools/mptosvg/ + +If you have any trouble, let me know. + +Troy Henderson +Assistant Professor +Department of Mathematical Sciences +252 Thayer Hall +United States Military Academy +West Point, NY 10996 +(845) 938-5649 +http://www.tlhiv.org + +-------------------------------------------------------------------------------------- +Clarify: + +9. \Configure{CutAt} {unit} {before-button} {after-button} + +10. \Configure{+CutAt} {unit} {before-button} {after-button} +-------------------------------------------------------------------------------------- + + + One more request. + Would be so kind as to generate the SINGLE page HTML + from http://www.cse.ohio-state.edu/~gurari/TeX4ht/ + It will make searching much easier. + Simple `find' it will suffice. Currently + I keep all the pages on my hard disk and use + grep instead. + +From: Wlodek Bzyl +To: Eitan Gurari +Subject: Re: TeX4ht: SVG: Wrong walue of the TYPE attribute in the generated + OBJECT tag +Date: Mon, 24 Oct 2005 21:45:42 +0200 + +-------------------------------------------------------------------------------------- + +One suggestion though is, that you make it more obvious that one should +really study the .log file. (I normally don't do this.) I have seen that +you have put somewhere a hint to the mktex4ht.4ht index, but I cannot +remember that I have seen that index on your website. That would be very +much welcome. In fact, but the sources as html online. Then one could +more easily refer to it. + +-------------------------------------------------------------------------------------- + +The (behind the scenes) process of converting the PDF to SVG above uses the following three external programs: + + 1. pstoedit to convert the PDF to SKencil/SKetch format + 2. skconvert to convert the SKencil/SKetch file to SVG + 3. gzip to compress the SVG + +The actual commands that are executed are: + + * pstoedit -page 1 -dt -psarg + +http://www.nongnu.org/skencil/ +-------------------------------------------------------------------------------------- + + > http://baruch.ev-en.org/proj/chktex/ + + +-------------------------------------------------------------------------------------- + +http://www.dcs.fmph.uniba.sk/~emt/ + + +There is absolutely no reason why this should be, given that an excellent +implementation of direct one-click real-time lossless translation of TeX +math to SGML and back again has existed for a decade (in the EuroMath +editor). + + +-------------------------------------------------------------------------------------- +From: Herbert Schulz +Sender: +To: "TeX on Mac OS X Mailing List" +Subject: Re: [OS X TeX] TeX to word on Mac +Date: Sun, 26 Jun 2005 09:04:44 -0500 + + +On Jun 25, 2005, at 11:49 PM, George Ghio wrote: + +> +> Open terminal and type; +> +> Welcome to Darwin! +> George-Ghios-Computer:~ georgeghio$ cd /Users/georgeghio/Desktop/TeX +> +> Hit return & type +> +> George-Ghios-Computer:~/Desktop/TeX georgeghio$ htlatex /Users/ +> georgeghio/Desktop/TeX/TheFlight.tex +> +> Hit return I then get the html file, +> +> I then open the html file with Explorer, +> +> Select all, +> +> Copy, +> +> Paste into word. +> +> If I try to open the html file with word MS does what it does best +> and crashes. +> +> Oh well, it works and I end up with a word document. +> +> Thank you and everyone else for taking the time to keep me from +> becoming a basket case. +> +> George L Ghio +> + +Howdy, + +Now that you know how to do it in terminal, here's a way to do it +from within TeXShop. + +Go to the ~/Library/TeXShop/Engines/ folder (~ is your HOME +directory) and duplicate one of the .engine files there. Rename it +htlatex.engine and open it up (double clicking will open it up in +TeXShop). Remove the contents of the file and put the following lines +into that file: + +#!/bin/bash +htlatex "$1" + +and save the file (again in ~/Library/TeXShop/engines and with the +name htlatex.engine). + +At the beginning of any .tex file you want to be processed with +htlatex put the line + +%!TEX TS-program = htlatex + +and then process the file with Cmd-T (Typeset). As an alternative you +can simply choose the htlatex engine in the dropdown menu in the +toolbar. + +Good Luck, + +Herb Schulz +(herbs@wideopenwest.com) + + +--------------------- Info --------------------- +Mac-TeX Website: http://www.esm.psu.edu/mac-tex/ + & FAQ: http://latex.yauh.de/faq/ +TeX FAQ: http://www.tex.ac.uk/faq +List Post: + +-------------------------------------------------------------------------------------- +SVG : + + +==> pstoedit : +I tried pstoedit -f svg-plot file.eps file.svg, but that did not work well. +The greek letters were omitted and the non-greek letter did overlap. + + +==> Inkscape (http://www.inkscape.org/download.php) + +==> TLC2 mentiones dvi2svg , +pstoedit and an article in TUGboat: + +Michel Goossens and Vesa Sivunen +LaTeX, SVG, Fonts +TUGboat 22(4) 269-279, 2001 + + + http://www.tug.org/TUGboat/Articles/tb22-4/tb72goos.pdf + +==> http://dvisvg.sourceforge.net/ + +----------------------------------------------------------------------------------- +--- + +gcc -Wall -o tex4ht tex4ht.c -I/usr/local/teTeX/include -L/usr/local/teTeX/lib -DKPATHSEA -DHAVE_DIRENT_H -DHAVE_STRING_H -lkpathsea + +su +rm -R /usr/local/teTeX/share/texmf.local/tex4ht/ht-fonts +mv -R /Users/eitangurari/Desktop/downloads/ht-fonts /usr/local/teTeX/share/texmf.local/tex4ht/. +mv /Users/eitangurari/Desktop/downloads/newt4ht/bin/mac/tex4ht /usr/local/teTeX/bin/powerpc-apple-darwin-current/. +cp /Users/eitangurari/Desktop/downloads/newt4ht/texmf/tex4ht/base/unix/tex4ht.env /usr/local/teTeX/share/texmf.local/tex4ht/base/. +texhash +exit + +-------------------------------------------------------------------------------------- + +Use latex (with preview.sty) and dvipng. dvipng will even output the +ascender and descender values so that inline math can be displayed +with correct vertical positioning. + +-------------------------------------------------------------------------------------- +add the outcome of javahelp +-------------------------------------------------------------------------------------- + +WordML2LaTeX is a meeting point between two titans in word processing: +Microsoft Word 2003 and LaTeX2e. + +It is a XSL stylesheet that transforms a Word document (WordML) in a +LaTeX2e source. With it You can use Word as a front end for LaTeX. + +Location on CTAN: /support/WordML2LaTeX + +-------------------------------------------------------------------------------------- +-------------------------------------------------------------------------------------- + +On mac OS X: + +%% t4ht utility, sharing files with TeX4ht +TEX4HTFONTSET=alias,iso8859 +TEX4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// +T4HTINPUTS= .;$TEXMF/tex4ht/base// + +-------------------------------------------------------------------------------------- + Using fonts of (La)TeX in stylesheets of WWW-pages +Date: Wed Aug 25 06:42:40 EDT 2004 +Lines: 20 + + + +Yes! It is possible: + +http://iki.fi/juhtolv/pelle.html +http://iki.fi/juhtolv/css-download/ +http://iki.fi/juhtolv/css-download/readme.txt + +You'd better use Mozilla, Mozilla Firefox, Galeon, Konqueror or Opera, +because they support alternative stylesheets and MSIE don't. + +I'd like to support cm-super, too, but it is fscking huge package and it +is real pain in the ass to find right font from those gazillion files, +because they have almost meaningless fontnames. + +-------------------------------------------------------------------------------------- + +m-tex4ht.tex + +-------------------------------------------------------------------------------------- +MS: + + > run + > + > htlatex analysis.tex >printout.txt 2>&1 + > + > to get both output and stderr to file + > +-------------------------------------------------------------------------------------- +To: Maarten Wisse +Subject: Gentoo ebuild, or, Pay my debt :-) +In-Reply-To: <200404232220.49246.Maarten.Wisse@urz.uni-heidelberg.de> +References: <200404232220.49246.Maarten.Wisse@urz.uni-heidelberg.de> +X-Mailer: VM 7.04 under 21.1 (patch 14) ``Cuyahoga Valley'' XEmacs Lucid +--text follows this line-- + +Maarten, + +You owe me nothing! It is a pleasure for me to work with you, and that +is more than enough for me. + +The pointer regarding Gentoo might become useful to me. I hope to +find a few days in the coming months to set up a server running Linux +and I was wondering which distribution to use. So from your +experience Gentoo seems to be a good choice. + +I placed in the bug fixes page a pointer to the zipped file renamed +to tex4ht-20040211.zip, and will fix the name in the main page next +year when I'll revise the home page. + +Thanks, -eitan + + + + > Given that you so gratiously helped me, I asked myself how I could do + > something back and also, to help others with this great tool, especially + > those who use my favourite Linux distribution, Gentoo Linux, you probably + > know, the distro which is entirely managed from source with the intelligent + > Portage system. I like it very much wont switch to another distro so easily + > as I did with RedHat or SuSE. But, this is still a matter of fact: + > + > http://bugs.gentoo.org/show_bug.cgi?id=33259 + > + > no ebuild, so no automated install of TeX4ht is available yet. + > + > I'm not a very able ebuild writer, but it shouldn't be difficult to get this\ + + > going. However, one thing which immediately came to my mind: you don't + > release the source distribution of TeX4ht with a name indicating its version\ +. + > That's inconvenient for Gentoo, because ideally it spreads the files on top + > of the original source location, so it uses its mirror system and when that + > doesn't contain the file, it falls back to the root source location. When + > that location just contains `tex4ht.zip' then Gentoo has no way to know whic\ +h + > version that is. So could you rename it to: tex4ht-20040211.zip or the like?\ + + > Then I can make an ebuild tex4ht-20040211.ebuild which then automatically + > downloads that version. When an upgrade appears, we check the ebuild, bump + > the version number and it uses that one. So we can cater for stable and + > unstable ebuilds too. + > + > PS: as an expression of debt, I mentioned your name in the news item on our + > website, called `New in volume 4'. You deserve it. + +-------------------------------------------------------------------------------------- +comp.text.tex #305453 (0 + 13 more) [1] +From: Torsten Bronger +Newsgroups: comp.text.xml,comp.text.tex +[1] [ANN] tbook 1.5.2 +Date: Sat Apr 17 12:56:34 EDT 2004 +Lines: 43 + +Halloechen! + +tbook 1.5.2 is available for download at +http://sourceforge.net/projects/tbookdtd/ + +Its homepage with documentation and a demo is available at +http://tbookdtd.sourceforge.net/ + + +Version 1.5.2 is a major bugfix release by and large. New features: + +* Full XHTML compliance if you want (however with MathML you don't + want it ;) + +* New
und elements in the DTD with tha same + meaning as in DocBook and HTML. + +* Many additionally supported Unicode symbols. + + +From the Sourceforge summary: + + tbook is a system that typesets XML documents with high-level LaTeX + while HTML, XHTML+MathML and DocBook output are equally + possible. It bases on the LaTeX-like tbook DTD developed for this + project, XSLT transformations and further tools. + +All transformations work with bibliography, index, formulae, and +graphics. Therefore the transformation processes include some complex +tasks (e.g. generating of bitmaps for all formulae) which are greatly +simplified by shell scripts that are automatically generated. + +The LaTeX output is also suitable for pdfLaTeX and uses its features. + +For equations, you may use an almost-LaTeX syntax; except for complex +cases, you don't have to type MathML directly. (Instead, it is +transformed to that eventually.) + +Tschoe, +Torsten. + +------------------------------------------------------------------------------------- +http://freshmeat.net/projects/flpsed/ +-------------------------------------------------------------------------------------- + + +Wlodek, + +I suspect the problem is in the tex4ht.env within a segment +similar to the following one that takes precedence over the values in +the variables of texmf.cnf + + + i~/tex4ht.dir/texmf/tex4ht/ht-fonts/iso8859/1/! + i~/tex4ht.dir/texmf/tex4ht/ht-fonts/ascii/! + i~/tex4ht.dir/texmf/tex4ht/ht-fonts/alias/! + i~/tex4ht.dir/texmf/tex4ht/ht-fonts/mozilla/! + i~/tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/! + + +Try removing the i-records or modifying their content. + +-eitan + + + > When compiling a simple (iso8859-2 encoded) LaTeX file which uses + > the Polish Computer Modern family of fonts (pl*.tfm fonts), the + > tex4ht program searches and uses htf fonts (plr.htf) from + > iso8859/1 subdirectory instead from iso8859/2. + > + > I am using tex4ht under Linux with kpathsea support + > and texmf.cnf which contains: + > + > TEX4HTFONTSET=iso8859/2,iso8859/1,alias + > TEX4HTINPUTS=.,$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + > + > Below I include the output of tex4ht executed with -hF option: + > + > -------------------------------------------- + > tex4ht.c (2004-02-05-19:30 kpathsea) + > tex4ht -f/01 + > -hF + > (tex4ht.env) + > given TEX4HTFONTSET = iso8859/2,iso8859/1,alias + > setting TEX4HTFONTSET={iso8859/2,iso8859/1,alias} + > TEX4HTINPUTS = + > .,{texmf,../texmf,/home/hold/texmf,!!/usr/local/texmf-local,!!/usr/local/texmf-var,!!/usr/local/texmf}/tex4ht/ht-fonts/{iso8859/2,iso8859/1,alias}// + > (/usr/local/texmf/fonts/tfm/public/pl/plsy10.tfm) + > (/usr/local/texmf-local/tex4ht/ht-fonts/alias/pl/plsy.htf) + .... +------------------------------------------- +By the way, it would be +> convenient to have all TeX4ht documentation formated entirely +> as _one_ web page. (I have no idea if I had read 10% or 90% available +> documentation.) +------------------------------------------- +http://www.tmit.ac.jp/~esl/soft/t4hc-intro.html + +Two-steps picture conversion +The default bitmap generation script for Unix-like environment is three-step procedure calling dvips, ghostscript, and ImageMagick sequentially. But the author prefers to two-step procedure calling dvipdf and ImageMagick, which is written as follows: + +Ghtcopyfile %%1 _t4hcache.dvi +Gdvipdfm -s %%2-%%2 _t4hcache +Gc:/progra~1/picturem~1.8-q/convert.exe pdf:_t4hcache.pdf -crop 0x0 +repage -density 220x220 -geometry 50% -transparent '#FFFFFF' %%3 +Ghterasefile _t4hcache.dvi +Ghterasefile _t4hcache.pdf + +Most of recent Web2C systems such as Kakuto's win32 package contain dvipdf (with the filename dvipdfm), and resultant PDF file is properly processed by ImageMagick. + + +------------------------------------------- +------------------------------------------- +------------------------------------------- + +------------------------------------------- +------------------------------------------- +------------------------------------------- + + +As of (at least) miktex 2.4, miktex will automatically install tex4ht. The +problem is, as best I can see, it does not do the fairly extensive editing +of the batch files (and tex4ht.env) needed to tell tex4ht where the various +files are. I've just added a note to my instructions recommending that +miktex users uninstall miktex's version and use mine instead. + +I just want to arert you to what can happen: if users don't do this, then +the locations pointed to by eg the -e switch in the batch files, though it +may *look* correct, in fact point to the wrong locations. So if you get a +request for help from a miktex user, this is the first thing you should +probably have them check. +------------------------------------------- + +Mention the dates of the files, simlarly to the eay it is done +in the bug fixes page. + + +------------------------------------------- +http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=tex4ht + +------------------------------------------- + +http://www.perce.de/LaTeX/math/Mathmode-TeX.pdf +http://www.ntg.nl/doc/wilkins/pllong.pdf +http://sarovar.org/download.php/120/ltxprimer-1.0.pdf +http://www.tug.org/utilities/plain/cseq.html +http://www.tug.org.in/tutorials.html + +------------------------------------------- + + support/TeX4ht/tex4ht-mn.zip +> +> which is probably what eitan was talking about. + +I thought, this was only the manual. ``mn'' seems to mean ``manual''?AFAICS, it +is used in this meaning in the names of the HTML files in the archive. +Strange that the actual TeX4ht ZIP archive is included as a file in the mn +archive. + +tex4ht-all in CTAN!!!! + +------------------------------------------- +http://http.cs.berkeley.edu/~phelps/Multivalent/ +------------------------------------------- + +> there's also a tex4ht distribution embedded in the texlive +> distribution. the difference from eitan's original is it's tailored +> to work with the kpathsea libraries; i'm investigating that as a route +> to a working linux version. (i'll probably end up by installing the +> whole of texlive, but i don't want to rush it since there's quite a +> bit of configuration gone into the tetex setup i currently give my +> users.) + +I think for kpathsea the main differences are that the compilation of +the C programs require a special switch: + + http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html + => Unix + => (c) + => alternative + +and variable settings similar to the following ones in texmf.cnf + + TEX4HTINPUTS=.;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + TEX4HTFONTSET=iso8859/1,alias + +------------------------------------------- + +OK, but how about putting a readme file in CTAN:support/TeX4ht telling +people to check out http://www.cse.ohio-state.edu/~gurari/TeX4ht/bugfixes.html + + +------------------------------------------- + + + http://netpbm.sourceforge.net/ + http://sourceforge.net/projects/netpbm/ + (latest version: Netpbm-10.19 update at 11/15 2003) + +------------------------------------------- +From zierke@dante.de Wed Nov 5 05:18:49 EST 2003 +Article: 292426 of comp.text.tex +Path: news.cse.ohio-state.edu!news.maxwell.syr.edu!news-han1.dfn.de!news-ham1.dfn.de!news.uni-hamburg.de!dante.de!owner-ctan-ann +From: zierke@dante.de (Reinhard Zierke) +Newsgroups: comp.text.tex +Subject: CTAN Upload - BaKoMa TeX 6.10 - Animated GIF, Sound for SVG +Date: 5 Nov 2003 09:32:48 +0100 +Organization: University of Hamburg -- Germany +Lines: 264 +Approved: yes +Message-ID: <20031105083010.GA22304@dante.de> +NNTP-Posting-Host: sun.dante.de +Mime-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +X-Trace: rzsun03.rrz.uni-hamburg.de 1068021168 23174 134.100.9.52 (5 Nov 2003 08:32:48 GMT) +X-Complaints-To: usenet@news.uni-hamburg.de +NNTP-Posting-Date: 5 Nov 2003 08:32:48 GMT +To: ctan-ann@dante.de +Organisation: none +Xref: news.cse.ohio-state.edu comp.text.tex:292426 + +----- Forwarded message from "Basil K. Malyshev" ----- +I have uploaded to `ftp.dante.de/incoming/bakoma' directory +update for BaKoMa TeX 6.10 (issued 1-Nov-2003). + +Please put the files to 'CTAN:nonfree/systems/win32/bakoma' directory. + +Most important improvements in BaKoMa TeX 6.10 are: + +SVG Generation: + * Import of animated GIF into SVG as animated image. + * Import multi-page Postscript into SVG as animated + graphics - every page is translated as frame. + * Sound effects are supported by SVG.STY via \sound command. + * More customization in Navigation Bar added at SVG generation: size, colors. + + More details about SVG Generation features are available in + + +Graphics (Supported for View, Print, SVG, PDF, Postscript) + * Support of transparent background in imported GIF files. + * Support of Color Key Masked Images - Type 4 (Postscript Level 3) + +BibEdit Improvements: + * Refined disappering comment subwindow + when adding new fields and resizing window. + * Added Rename command for changing entry key and field name. + +More information about changes is at: + + +Bye. +Basil K. Malyshev +4-Nov-2003 + +PS: Please send announce to appropriate mailing lists and news groups. + +--------------- About BaKoMa TeX 6.10 ---------------------- + + + +------------------------------------------- +From: The Thanh Han +To: gurari@cse.ohio-state.edu +Cc: Fabrice Popineau +Subject: tex4ht question +Date: Fri, 8 Aug 2003 08:22:24 +0700 + +Hi, + +can you please give me some hints to the following: I was trying to use +tex4ht to convert a latex file to html. The latex source is in +Vietnamese, and I would like to have the html output in Unicode. I +looked at the tex4ht files in texlive7 cd, and created a set of htf +fonts for vietnamese. It nearly works, apart from an only oddity: that +all glyphs with a dot below (like adotbelow, edotbelow, idotbelow, ...) is +converted to their ascii counterpart (a, e, i, ...). The latex file +itself works ok with latex; ie when I latexed it and viewed the dvi ouput +using xdvi, everything seems to be ok. I was digging a bit but couldn't +fix it, so if you have time, can you please take a look at it? Apart +from files on texlive7 cd, I used the following: + +1) a htf font for vietnamese, which is attachted in this mail. + +2) vietnamese tex support: vntex from http://vinux.sourceforge.net/vntex + +The test file I used is included in vntex as well; it's in +doc/generic/vntex/vntest1.tex. I copied those tex files to a temporary +directory and run: + +uhtlatex vntest1 +------------------------------------------- +http://lists.w3.org/Archives/Public/www-math/2003Sep/0023.html +------------------------------------------- + + +\HCode{Test +} + + +------------------------------------------- + + + +CTAN: to promote latex, we need to promote standarization. We can +have committees. We can also promote certifications: in ctan put a +comment around each contribution on the level of compatibility the +contribution provides!! This will encourage contributures to produce +more fitting parts. Also, had a discussion group for contributions, +for pre discussing contributions--i.e. cooling system for cross +contributions. + + + > \begin{list}{\textbullet}{} + > \item Bla bla bla... + > \end{list} + > + > \begin{itemize} + > \item Bla bla bla... + > \end{itemize} + +Latex and pdf deal with visual layout of the lists. TeX4ht needs to +map the lists to html. The default configurations map the first +`list' list into a `description' (dl) list of html, and the second +into an itemized one (ul). I knowledge that the first list list +behaves like an itemized list is not at all clear without inspecting +the visual output. + + +$$\begin{minipage}{\textwidth} +\small\itshape The first section \textbullet\ The socond one \textbullet\ +The third one {\upshape(A subsection in it, 1. Another, 2)} \textbullet\ A +fourth section {\upshape(A subsection in it, 1. Another, 2)}. +\end{minipage}$$ + +http://omega.enstb.org/eurotex2003/ + + +> >A compilation with the command line option `mathml-' provides a ``correct'' +> >mathml that doesn't check for balanced parentheses. +> +> Oh, is that the only difference? I was worried I'd be disabling some +> functionality in the output with that option. + +MathML looses the knowledge of the parenthesis being delimiters, and +so the output code provides reduced amount of clues for postprocessing +(and displaying). Personally, when I think authors should avoid this +option, anf fix their source files. On the other hand, it is too much +of a burdun for third parties to do so. + + +\Css{@media print {div.crosslinks {visibility:hidden;}}} + + + +\addcontentsline{toc}{slide}{#1} + +Susan's work + +Review participants & program + +note: The index doesn't include math, figs fragments + + +http://www.activemath.org/~adrianf/dvi2svg/ + + +http://www-2.cs.cmu.edu/~kohlhase/talks/om-tutorial/ +http://www.dessci.com/en/reference/webmath/status/default.htm + +OpenOffice for docbook: http://xml.openoffice.org/xmerge/docbook/ + + +What makes latex difficult (What You Ask Is not What You Get): + + You ask for + + \begin{split} + \end{split} + + end you get instead + + \begin{split} + \begin{split} + \end{split} + \end + +Similarly + + \begin{document} + \end{document} + \begin + + \end{document} + + + + +In open office: + + -------- + ------ + -------- + ------ + -------- + + \begin{center} + .... + + .... + \end{center} + +is implemenmted as three paragraphs: + +

...

+

+

...

+ + + + +The importance of having standards (like amsmath) in latex, and having +them stables: e.g. + + + + +Why latex is ugly: check the sample ams page!!! + +Why mathml is ugly: check the specification web page!!! + + + + +------------------------------------------- + +%%%%%%%%%%%%%%%%%%%%%% +\DocPart{Limitations} +%%%%%%%%%%%%%%%%%%%%%% + + +\List{*} +\item {Superscripts or Subscripts} + + Commands within scripts should have their parameters explicitly + included within the scripts. For instance, use \`'a^{\sqrt b}'---not + \`'a^\sqrt b'. + + [{\sl MathML}]: + Empty bases in many contexts should be represented by a code similar + to \`'{\csname HCode\endcsname{}}'. Otherwise, the the content + preceding the empty bases will be assumed for the bases. + + Subscripts and superscripts within a preamble (that is, before + \`'\begin{document}') should be accessed through the \''\sb' and + \''\sp' commands instead of the \`'_' and \`'^' + operators. Alternatively, in many cases the \`'early_' and + \`'\early^' options might be used as an alternative to allow + references to the latter operations. On the other hand, within loaded + files the \`'\sb' and \`'\sp' commands should be employed. + +\item {Parentheses} + + [{\sl MathML}]: Formulas without proper nesting of delimiters are + considered harmful. It is possible to relax this constraint on a + global level through the \`'mathml-' command line option, but it is + highly not recommended to use this feature. Instead, localized + approaches similar to the following may be employed to downgrade the + meaning of delimiters. + +\List{} +\item {} \''\left|...\right|' +\item {} \''\bigl\{...\bigm|...\bigr\}' +\item {} \''\begin{array} ...\mathord(... & ...\mathord)...\end{array}' +\EndList + + +\item{Lists} + +\TeX4ht doesn't sense changes to default appearances of lists in +native \LaTeX. To reflect in the hypertext output on such changes, the +user should adjust the given configurations of \TeX4ht. + +\EndList + +------------------------------------------- + + +> >A compilation with the command line option `mathml-' provides a ``correct'' +> >mathml that doesn't check for balanced parentheses. +> +> Oh, is that the only difference? I was worried I'd be disabling some +> functionality in the output with that option. + +MathML looses the knowledge of the parenthesis being delimiters, and +so the output code provides reduced amount of clues for postprocessing +(and displaying). Personally, when I think authors should avoid this +option, anf fix their source files. On the other hand, it is too much +of a burdun for third parties to do so. + + +> Is there anything wrong with doing what I did -- ie, downloading the +> tar.gz from the mathzilla page, and then refreshing the individual files for +> the install? + +I think that is fine. Just need to be careful to consult the paths in +old the old versions when replacing the tex4ht.env and htlatex-like +files with new ones. + + +------------------------------------------- + + +> Please forgive my ignorance, but how is one actually supposed to obtain +> and install a distribution, say on linux? The mathzilla page just had a +> tar.gz file to download, untar/gzip, and run localInstall. + +The easiest way to install tex4ht would be by installing any +distribution that contains tex4ht, and then refresh the different +files + + 1. tex4ht.sty + 2. *.4ht + 3. Executables of tex4ht.c and t4ht.c + +and may be + + 4. tex4ht.env + 5. *htf + +I can guide you through this path if you choose to take it. + +------------------------------------------- +http://www.texmacs.org/ +http://makingtexwork.sourceforge.net/mtw/ +------------------------------------------- +------------------------------------------- + + + > 7 days trial version of Vector Eye for Windows has been released + > due to Siame & Celinea. This is a quick converter of raster to vector graphi\ +cs + > giving, in particular, SVG output. THEORETICALLY it seems to create an + > opportunity + > for you to make the first experiments with svg graphic files included in + > the xml document, as we dreamed about few months ago. I had a problem + > with installing Vector Eye as it requires a high resolution screen. Furtherm\ +ore + > something was changed in Mozilla svg system and lost (I hope temporarily) + > a chance to use Mozilla for svg viewing. Out of this the real capabilities + > of this + > software remain unknown for me. + > + > -Piotr + > + > + > http://www.celinea.com/ + +------------------------------------------- + +http://www.pianotype.net/ +http://www.pianotype.net/eBook/index.html + +- Latex +- WEB (Literate Programing) +- html, xhtml, xml : dtd DocBook and TEI +- xslt +- pdf, lit... & + +Patrice :-) + +Reply-To: ``Patrice GUERPILLON'' +From: ``Patrice GUERPILLON'' +[1] A new site (La)TeX / XML & C° from France +Date: Sun May 11 16:32:36 EDT 2003 + +------------------------------------------- + + + > I'd also love to see a complete list of tex4ht parameters without having to + > look through the .log file although there is lots of information there. + +The options depend on the file styles being loaded, so a complete list +would be difficult to compile. However, I agree it would be desirable +to have a list of major options. I have none currently :-( + + +------------------------------------------- +converts troff macros to XML: + http://catb.org/~esr/doclifter/ +------------------------------------------- + +\Verbatim + +Refresh the filename database: in the MikTeX options wizard, or +initexmf -u from the command line. + +\EndVerbatim +------------------------------------------- +can be invoked with a command of the form \`'ht tex filename' (\HPage{example} +\rightline{\ExitHPage{}} +\SubSection{An Example for Invoking ht} +A system invocation of the form \`'ht tex foo' for a file +\''foo.tex' of the following form. + +\Verbatim +\input amstex +\documentstyle{amsppt} + +\Preamble{xhtml,html4.4ht,unicode.4ht,mathml.4ht} +\EndPreamble + +\document +..... +\enddocument +\EndVerbatim\EndHPage{}). +------------------------------------------- + +> How do you feel about the described approaches? My preference is for +> the first one. + +Many thanks for this. I tried Approach A and found that the width=75% +statement did not get carried through to to the html for the .pstex figures +from xfig. It worked for the .eps figures. + +I therefore moved over to Approach B. I created a script called +'convertScale' (note: the grep picks up .pstex files also since there is a +BeginDocument:.*.eps line in all of them): + +#----------------------------------------------------------------------- +#!/bin/sh +# + +ISEPS=`grep -E ``BeginDocument:.*.eps'' zz${1}.ps` +if [ ``$ISEPS'' == " ] ; then + SCALE=''100%'' +else + SCALE=''50%'' +fi +convert zz.bmp -crop 0x0 +repage -transparent '#FFFFFF' -scale $SCALE zz${1}.gif +#----------------------------------------------------------------------- + +and then in the env file: +GconvertScale %%4 + +This worked well so I have adopted this approach. + +------------------------------------------- +http://www.uoregon.edu/~koch/texshop/texshop.html +------------------------------------------- + +converteters to SVG + +http://www.w3.org/Graphics/SVG/SVG-Implementations.htm8 +------------------------------------------- +http://www.bloodyeck.com/wwwis/ + +--------------- +http://www.w3c.org/Style/XSL/ + + + +The web page + + http://dmoz.org/Computers/Data_Formats/ + Markup_Languages/XML/Style_Sheets/XSL/Implementations/ + +lists many processors. (The two lines should be merged in +order to get the address.) + +---- + + + +Tex4ht seems to strain TeX somewhat. To keep from getting messages +that say ``TeX capacity exceeded, sorry'' it may be necessary to +increase TeX's capacity by placing a configuration file texmf.cnf in +the document directory and setting the environment variable TEXMFCNF +to ``dir::'' where dir is the path to the document directory. This +only works for TeXs that use kpathsea. +------------------------------------------- +------------------------------------------- +Gc:\yandy\Dvipsone\dvipsone -B=%%2 -E=%%2 -d=zz%%4.ps %%1 +Gc:\ImageMagick\convert zz%%4.ps -crop 0x0 +repage -density 110x110 -transparent #FFFFFF %%3 + +------------------------------------------- +comp.text.tex #250583 (0 + 4 more) [1] +From: Ralph Furmaniak +[1] Announcing gotex +Lines: 35 +Date: Tue May 21 17:50:29 EDT 2002 + +Gotex is a program that I made, which is basically a preprocessor and +(albeit small) set of macros for LaTeX, to give it extra functionality +for presenting files and web sites. It translates the `got' file into a +`tex' file, which it then sends on to `tex4ht'. A full description is +on my website at http://sugaku.homeunix.org + +------------------------------------------- + + +Like all automatic HTML generators, Tex4ht does not always produce +clean (or even correct) HTML. HTML Tidy is an incredibly useful tool +for finding (and often, automatically fixing) problems in HTML +files. WWWis is a useful utility for making image size annotations in +web pages agree with actual image sizes (it's surprising how easy it +is to get these annotations wrong or to let them get out of +date). Finally, always look over your web pages using several +different browsers -- HTML generators seem to have a knack for +emitting constructs that render differently in different browsers. + +------------------------------------------- + +align=\string''absbottom\string'' + + + > { class=\string''math\string'' + > align=\string''absbottom\string'' + > } +------------------------------------------- +------------------------------------------- +From: Patrice GUERPILLON +Sender: pat@club-internet.fr +To: gurari@cse.ohio-state.edu +Subject: TeXht and dtd Tei/Docbook +Date: Sun, 16 Dec 2001 16:05:02 +0100 + +Dear M. Gurari, + +i have computed my LaTeX document with TeXht to get Tei and Docbook +code. + +Its OK. (perfect after some coorections of the code) + +The result is present on my page : +http://www.club-internet.fr/perso/pguerpil + +------------------------------------------- +Probably you can simply tell tex4ht to look in + c:\progra~1\texmf +which is a non-spaced alias for + c:\program files\texmf +------------------------------------------- + > 2. note that if the batch files contain unix line endings (LF, rather than + > dos's CR LF) you can crash win95/98/ME (NT and win2k are ok). There was a + > period during the autumn when some of the batch files may have had this + > problem. (Either that, or someone managed to copy the wrong files). Anyway, + > this is worth watching out for, especially if someone reports an otherwise + > incomprehensible failure. +------------------------------------------- +------------------------------------------- + +> > Does any know how to use 'jpeg' images with LaTex? Including the +> > environment setting and the command .... + +This can be done on the fly with psgraphicx by using, eg + \DeclareGraphicsRule{.jpg}{eps}{.jpg.bb}{`convert jpeg:#1 eps:-} + +and creating a bounding box file called xxx.jpg.bb (if your image is +xxx.jpg) by using + convert xxx.jpg eps:- | grep BoundingBox > xxx.jpg.bb + +See the file `Using EPS Graphics in LaTeX2e Documents', available +from ctan in /tex-archive/info/ as epslatex.ps or epslatex.pdf. +------------------------------------------- + + +>I'm using tetex on RH 7.3. In the /usr/share/texmf/web2c/texmf.cnf file, +>I have: +> +>TEXMFMAIN = /usr/share/texmf +>TEXMFLOCAL = /usr/local/share/texmf +>HOMETEXMF = $HOME/texmf +>TEXMF = {$HOMETEXMF,$TEXMFLOCAL,!!$TEXMFMAIN} +> +>and it used to work fine with my extra style files, bib files, etc. stored in +>~/texmf. But ever since one rainy day, something is wrong: +> + +I've had success using: + + env KPATHSEA_DEBUG=-11 latex + +say, to debug issues with TEXMF and other path-related elements. I found +that I'd stuck some things in non-intuitive places... + +>> I'm using tetex on RH 7.3. In the /usr/share/texmf/web2c/texmf.cnf file, +>> I have: +>> +>> TEXMFMAIN = /usr/share/texmf +>> TEXMFLOCAL = /usr/local/share/texmf +>> HOMETEXMF = $HOME/texmf +>> TEXMF = {$HOMETEXMF,$TEXMFLOCAL,!!$TEXMFMAIN} +>> +>> and it used to work fine with my extra style files, bib files, etc. stored in +>> ~/texmf. But ever since one rainy day, something is wrong: +>> +>> nali$ kpsewhich --expand-path='$HOMETEXMF' +>> /home/nali/texmf +>> nali$ kpsewhich --expand-path='$TEXMF' +>> /usr/share/texmf +>> +>> I didn't do anything to the texmf.cnf file. What could be affecting +>> the value of TEXMF? + +David> Perhaps the value of TEXMF? What does +David> echo $TEXMF +David> display? + +echo $TEXMF returns /usr/share/texmf. I don't know why I defined it in +/etc/profile. Removing that fixed the problem. Thanks. + + +---- + + +http://john.regehr.org/latex/: + +Tex4ht seems to strain TeX somewhat. To keep from getting messages +that say ``TeX capacity exceeded, sorry'' it may be necessary to +increase TeX's capacity by placing a configuration file texmf.cnf + + hash_extra = 25000 + pool_size = 750000 + string_vacancies = 45000 + max_strings = 55000 + pool_free = 47500 + save_size = 8000 + +in the document directory and setting the environment variable +TEXMFCNF to ``dir::'' where dir is the path to the document directory. +This only works for TeXs that use kpathsea. +This only works for TeXs that use kpathsea. +%-------------------------------------------------------------- + > The following approach of Sebastian allows to direct the kpathsea + > search to a subdirectory of the ht-fonts tree. + > + > TEX4HTFONTSET={alias,iso8859} + > T4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + > TEX4HTINPUTS= .;$TEXMF/tex4ht/base// + > + > in texmf.cnf, and the htlatex script says + > + > test -z "$3" || TEX4HTFONTSET=$3;export TEX4HTFONTSET + > + > On a second thought, the latter approach might not work for the + > mozilla script. That is so because for mozilla we want the search to + > be conducted under two subdirectories: first under ht-fonts/mozilla + > and then under ht-fonts/unicode. +just + TEX4HTFONTSET={mozilla,unicode} +surely? +------------------------------------------- +#!/bin/sh + +TEXINPUTS=$XMLCDROM/texmf/tex4ht: +export TEXINPUTS + +$XMLCDROM/bin/i386/tex4ht.exe $1 \ + -e$XMLCDROM/texmf/tex4ht/base/tex4ht.env \ + -i$XMLCDROM/texmf/tex4ht/ht-fonts/unicode/\! + +Note the \ before the ! +------------------------------------------- +OK, in texmf.cnf I say + +TEX4HTFONTSET={alias,iso8859} +T4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTS}// +TEX4HTINPUTS= .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTS}// + +and then in eg htlatex I can just do + +TEX4HTFONTSET=$3 +export TEX4HTFONTSET +tex4ht $1 +t4ht $1 $4 + + +make sense? + +sebastian + +Eitan Gurari writes: +OK, + +Now I have + + TEX4HTFONTSET={alias,iso8859} + T4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + TEX4HTINPUTS= .;$TEXMF/tex4ht/base// + +in texmf.cnf, and the htlatex script says + + test -z "$3" || TEX4HTFONTSET=$3;export TEX4HTFONTSET + +and this seems to do the job + + > Would that guarantee searching the .../ht-fonts/iso8859/... branch + > before the other brances, since alphabetically iso8859 is the first + > one among the subdirectories? + +kpathsea has no guarentee of search order. it may be alphebetical, but +maybe not + + > If not, can we inform kpathsea about the directories + > .../ht-fonts/iso8859/... and .../ht-fonts/alias/..., without + > reporting to it the other directories? + + +yes, if it works properly, my default + + TEX4HTFONTSET={alias,iso8859} + +does the job + + > Did you sort out the problem with testa? I can't recreate it and + > wonder what happened there. +still testing.... + +sebastian +From: Sebastian Rahtz +To: gurari@cse.ohio-state.edu +Subject: Re: ht-fonts +Date: Tue, 14 Mar 2000 16:08:00 +0000 (GMT) + +Eitan Gurari writes: + > + > also the /! is needed. + > + > > htlatex filename "html,html.4ht,picmath4.4ht" "symbol" + > + > htlatex filename "html,html4.4ht,picmath4.4ht" "symbol/!" + +no. not needed! kpathsea takes care of that. + + > xhtml should be first: + > + > > htlatex filename "html4.4ht,unicode.4ht,mathml.4ht,xhtml" "unicode" + > + > htlatex filename "xhtml,html4.4ht,unicode.4ht,mathml.4ht" "unicode/!" + > ^^^^^^ ^^ + +ah, now it works fine, and i see mathml in the output. +excellent! now I can attempt to make these german Web Companion +examples work again + +sebastian +------------------------------------------- +http://cauchy.math.missouri.edu/~stephen/cgi-bin/naturalmath.cgi +http://ftp.geophysik.uni-frankfurt.de/~ruedas/links-latex.html +http://math.albany.edu:8010/g/Math/MathComp/mathwww/ +http://www.astro.gla.ac.uk/users/norman/bookmarks/lists-maths.html +http://www.dcs.fmph.uniba.sk/~emt/ +http://www.math.berkeley.edu/~tinsel/mathunix/webmath.html +http://www.mathtools.net/LaTeX/Other_Links/index.html +http://www.openebook.org/ +http://www.w3.org/Math/ +http://www.webeq.com/mathml/resources.html +http://www.zib.de/Visual/software/doc++/ +http://www.w3.org/Tools/ +-------------------------------------------------------- + \Configure{tabbing}[1.6]{}{}{}{} +--------------------------------------- +service in India -- River Valley Technologies, http://www.river-valley.com -- +that creates ``a variety of outputs like screen pdf, regular PDF, dvi, +PostScript, +SGML, XML and MathML from a single TeX source document''. + +------------------------------------------------------ + +From: plaice@cse.unsw.edu.au (John Plaice) +To: rey@ams.org (Ralph Youngen), mjd@ams.org (Michael Downes), + ion@ihes.fr (Patrick Ion), sutor@us.ibm.com (Robert Sutor), + aldiaz@us.ibm.com (Angel Diaz), + s.rahtz@elsevier.co.uk (Sebastian Rahtz), + gurari@cse.ohio-state.edu (Eitan Gurari) +Date: Thu, 19 Nov 1998 18:18:19 +1100 (EST) +Message-Id: <981119071819.7482@cse.unsw.edu.au> +Subject: TeX to MathML converter +Cc: plaice@cse.unsw.edu.au (John Plaice) +X-Mailer: ELM [version 2.4 PL25] +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit + + +Hello everyone, + +The MathML translator is now finished, and it works wonderfully. +It will read a TeX or Omega document and transform the math part +into a MathML file (suffix .mml). This is done by replacing the +mlist_to_hlist part of TeX with an SGML pretty-printer, along +with some nifty stuff along the way to recognize parenthesized +expressions and the like. + +In addition to the driver work, Omega will now, upon loading a +font, look for a .onm file corresponding to the font (cmr.onm +for cmr10.tfm or cmr7.tfm, ecrm.onm for ecrm10.tfm, etc.). +This file contains a list of declarations such as + \SGMLFontEntity{eufb}{"41}{\SGMLname{Afr}}{mi}{\SGMLbold} + +which states that position "41 of Font sort eufb (Euler Fraktur Bold) +is entity "𝔄". If used in Math mode, it will produce + 𝔄 + +If used in text mode, it will produce + 𝔄 + +All of the standard math fonts have corresponding .onm files, +and most of the cm family of fonts do as well. I can easily +generate more if necessary. + +In addition, there are new Omega primitives, in addition +to \SGMLFontEntity, to produce tags and entities as desired +in the text. + +\SGMLstarttag{tagname} will start a new TeX level, and +will ultimately place in the output file. + +\SGMLendtag{tagname} will end a TeX level, and must match +a preceding \SGMLstarttag{tagname}. It will place + in the output file. + +\SGMLattribute{attrname}{value} will place in the start tag +the text attrname="value". It allows one to define extra +attributes for tags. + +\SGMLemptytag{tagname}{attributes} will place an empty tag, +possibly with attributes, as in . The attributes +are defined using \SGMLattribute. + +The translator as it now stands seems to be able to do +all of normal LaTeX math, as well as AMS-LaTeX math. It +will also do a fair amount of TeX stuff. The most important +TeX thing that it cannot work with is \halign, which is +OK if one is doing LaTeX, since \halign is not normally +called in LaTeX. + +Unlike LaTeXtoHTML, this translator is capable of interpreting +and taking advantage of TeX's macro language. As a result, +it should be able to interpret a far greater proportion of +TeX files than can any Perl script. In addition, the translator +is easily adapted: if you do not like the interpretation, +then just change it. + +I will place the appropriate files on my FTP site tomorrow. + +Best, + +John Plaice + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/ENDSKIP ///////////////+/ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% START +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\temp{htm} \ifx\switch\temp \def\htm{htm}\fi + + + + +%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%% \def\htm{htm} +\ifx \ROOT \UnDef + \immediate\write16{....................Undef ROOT--using temp/TeX4ht/} + \def\ROOT{temp/TeX4ht/} +\fi +\ifx \htm \UnDef + \def\htm{html} + \def\CLASS{class} + \let\DOS=\empty + \let\ARG=\empty +\else + \def\CLASS{class} %%% \def\CLASS{cla} fails + \def\DOS{\noexpand\let\noexpand\DOS=Y} + \def\ARG{[htm]} +\fi + +% \def\unzip{\HCode{}[\UNZIP]\HCode{}} +\def\UNZIP{%\Link[http://www.info-zip.org/pub/infozip/]{}{} + unzip% + %\EndLink +} + + + +\openin15=tex4ht.exe \ifeof15 + \immediate\write16{============= tex4ht.exe missing=========} +\fi \closein15 +\openin15=t4ht.exe \ifeof15 + \immediate\write16{============= t4ht.exe missing===========} +\fi \closein15 + +\input DraTex.sty +\input AlDraTex.sty +\input tex4ht.sty + +\def\GOBBLE#1{} +\ifx \SysNeeds\GOBBLE + \Configure{DOCTYPE}{\Tg + \Tg} +\else + \def\SysNeeds{\Needs} +\fi + +\Preamble{xhtml,th4,index} +\Configure{@HEAD}{\HCode{\Hnewline}} +\Configure{@/BODY}{\ifvmode\IgnorePar\fi\EndP\HCode{
}\par\HCode{Generated \ifcase \month \or + January \or February \or March \or April \or May \or June \or July + \or August \or September \or October \or November \or December \fi +\the\day, \the\year\space - tex4ht home page}} +\EndPreamble + + +\input ProTex.sty +\AlProTex{llo,<<<>>>,?} + +\def\Template{\IgnorePar\EndP\bgroup \tt \HCode{
} + \def\cr{\HCode{
}\hfil\break} + } +\def\EndTemplate{\IgnorePar\EndP\HCode{
}\egroup} + + + +\ScriptCommand{\LikeVerbatim}{\NoFonts}{\EndNoFonts} + +\def\BULLET{$\bullet$} + +%%%%%%%%%%%%%%%%%%%%%%%%%% from latex %%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\let\'=\Verb +\def\`{\expandafter\expandafter\expandafter\qts\Verb} +\def\qts#1{`#1\aftergroup'} + + + +\def\LaTeX{La\TeX} +\def\TeX{TeX} + +\def\INDEX#1#2{\--\expandafter\EAT\string#2//{{\tt\char 92}}/#1#2} + +\def\IDX--#1/#2/#3/#4/{{% + \Configure{--} + {} + {\string\csname\space :gobble\string\endcsname{\csname + html:lbl\endcsname}% + \string\Link[#4]{}{}\folio\string\EndLink }% + \--#1/#2/#3/}} + + +% Examples: +% \--Fonts/htf\string\empty//% +% \--Fonts/htf\relax,\string~configuring//% + + + +\def\EAT#1{} + +\NewSection\TroubleSec{}{} +\Configure{TroubleSec} + {} {} + {\par \IgnorePar\EndP\HCode{

}\bgroup\bf} + {\egroup\HCode{

}\ShowPar\IgnoreIndent\par} +\ConfigureToc{TroubleSec} + {} {$\bullet$\HChar{160}} {} { } + + + + + + +\NewSection\DocChapter{}{} +\Configure{DocChapter} + {\IgnorePar} {} + {\IgnorePar\EndP\HCode{

}} + {\HCode{

}\ShowPar\IgnoreIndent} +\ConfigureToc{DocChapter} + {} {\HCode{}$\bullet$\HChar{160}} + {} {\HCode{} } + + +\HAssign\OddDoc=1 + +\def\Intro{\ifvmode\IgnorePar\fi\EndP\HCode{
}} +\def\EndIntro{\ifvmode\IgnorePar\fi\EndP\HCode{
}}{}{} +\Css{.intro{border:1px solid black; padding:4px;}} + +\NewSection\DocPart{}{} +\Configure{DocPart} + {\IgnorePar} {} + {\IgnorePar\EndP\HCode{

}} + {\HCode{

}\ShowPar\IgnoreIndent} +\ConfigureToc{DocPart} + {} {$\bullet$\HChar{160}} {} { } + +\TocAt{DocPart,DocChapter} + +\NewSection\DocSection{}{} +\Configure{DocSection} + {\IgnorePar} {} + {\EndP\HCode{

}} {\HCode{

}\IgnorePar} +\ConfigureToc{DocSection} + {} {$\bullet$\HChar{160}} {} { } + + +\NewSection\DocSubSection{}{} +\Configure{DocSubSection} + {\IgnorePar} {} + {\EndP\HCode{

}} {\HCode{

}\IgnorePar} + + + + + +\NewSection\InstallSection{}{} +\Configure{InstallSection} + {\IgnorePar} {} + {\EndP\HCode{

}} {\HCode{

}\IgnorePar} +\ConfigureToc{InstallSection} + {} {$\bullet$\HChar{160}} {} { } + + + + + + +\NewSection\QAChapter{}{} +\Configure{QAChapter} + {\IgnorePar} {} + {\IgnorePar\EndP\HCode{

}} + {\HCode{

}\ShowPar\IgnoreIndent} +\ConfigureToc{QAChapter} + {} {\HCode{}} + {} {\HCode{
} } + +\Css{span.QAChapter{font-size: 125\%;}} + +\NewSection\QASection{}{} +\Configure{QASection} + {\IgnorePar} {} + {\IgnorePar\EndP\HCode{

}} + {\HCode{

}\ShowPar\IgnoreIndent} +\ConfigureToc{QASection} + {} {\HCode{}$\bullet$\HChar{160}} + {} {\HCode{
} } + + + + + + + + + +\def\Example{\IgnorePar\EndP\IgnoreIndent + \HCode{
}{\bf Example}} +\def\EndExample{\IgnorePar\EndP\HCode{
}} + + +\def\Notes{\IgnorePar\EndP\IgnoreIndent + \HCode{
}{\bf Notes}} +\def\EndNotes{\IgnorePar\EndP\HCode{
}} + + + +\def\Sign#1#2{\aSign#1\bSign#2\cSign} + + +\NewConfigure{Sign}[3]{\def\aSign{#1}\def\bSign{#2}\def\cSign{#3}} + + + +% +% \Configure{buttonList} +% {\IgnorePar\EndP\HCode{}} +% {\HCode{
}\par\ShowPar} +% {\HCode{}} +% {\HCode{}#1\HCode{}} +% {\ListCounter} + + +\Configure{buttonList} + {\IgnorePar\par\EndP\HCode{}} + {\HCode{
}\par\ShowPar} + {\HCode{}} + {\HCode{}\ShowPar + #1\IgnorePar\EndP\HCode{}} + {\ListCounter} + + + +\def\ResourceList{\begingroup +% + \def\ListSepr{\gdef\ListSepr{, }} + \Configure{buttonList} + {\IgnorePar\HCode{
}} + {\HCode{
}\IgnorePar} + {\long\def\author####1(####2){}\ListSepr + ##1\IgnorePar\HCode{}\let\author=\space} + {\HCode{}} + {\ListCounter} +% + \List{button}} + +\def\EndResourceList{\EndList \endgroup} + +\def\ListSepr{\gdef\ListSepr{, }} + + +\def\setup#1{\rightline{{\bf #1}}} + + +\long\def\Warning#1{\IgnorePar\Tg
{\IgnoreIndent + \par\sl#1}\Tg
} + +\def\frac#1#2{{#1\over#2}} +\def\temp#1#2{\hbox{\Picture*{ + align="middle"}$#1\over#2$\EndPicture}} +\HLet\frac=\temp + +\def\EXAMPLE{\HTable/[/class="output"]\HCode{
}} +\def\ContEXAMPLE{\HCode{
}\&\HCode{
}} +\def\EndEXAMPLE{\HCode{
}\EndHTable} + +\ScriptCommand{\Same}{\NoFonts}{\EndNoFonts} + +\def\sl{\it} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Css{h1, h2, h3 { font-family: sans-serif; }} % sans MS +\Css{body {max-width: 60rem;margin:1rem;}} + +\def\Mark#1{\HCode{}#1\HCode{}} + +\Configure{Sign} + {\IgnorePar\EndP\HCode{
}\bgroup \it} + {\HCode{
}} + {\egroup\HCode{
}} +\Css{.SIGN{text-align:right;}} + +\Css{.Template { margin-left:3em; }} + +\Configure{ShowCode} + {\IgnorePar\EndP\HCode{
}} + {\HCode{
}} + {\HCode{
\string }} + {\HCode{}} + {\HCode{}} + {\HCode{\string }} + +\def\.#1{\def\temp##1#1{\HCode{}##1\HCode{}}\temp} + +\Css{div.ShowCode{ + font-family:monospace; + white-space:nowrap; +}} +\Css{span.showcode { color: green; }} + + +\Css{div.TableOfContents { margin-top: 1em; + margin-right: 1em; margin-left:1em;}} +\Css{div.Warning{ margin-right: 8\%; margin-left:8\%; + text-align:justify; }} + +\Css{div.Warning div.Warning{ font-weight: bold; + text-align:justify; border:solid 1px; color:red; +}} + + +\Css{.tabular, div.output { background-color:\#FFFFCC; }} +\Css{div.output { margin-left:3\%; }} + +\Css{.button-list P{ +%%%%%% margin-left:2em; text-indent:-2em; IE is totally +%%%%% broken here. It stalls hypertext links, and +%%%%% quits upon narrowing the window. + margin-top:0em; margin-bottom:0; }} +\Css{div.button-list { margin-left:3\%; margin-right:3\%; }} + + +\Css{div.ShowCode { + margin-left:3\%; margin-right:3\%; + border-top: solid \#CCCCCC 1pt; + border-bottom: solid \#CCCCCC 1pt; +}} + +\Css{div.source { + border-top: solid \#CCCCCC 1pt; + border-bottom: solid \#CCCCCC 1pt;}} + +% \def\EndDocChapter{% +% \par\ShowPar\IgnoreIndent[\Link[\UpFilename]{}{}up\EndLink]\EndHPage{}% +% \let\DocPart=\oldDocPart +% \TableOfContents[DocChapter]} +% +% \let\oldDocChapter=\DocChapter +% \def\DocChapter{% +% \let\oldDocPart=\DocPart +% \edef\UpFilename{\FileName}% +% \HPage{}% +% [\Link[\UpFilename]{}{}up\EndLink] +% \Part{Features of \TeX4ht}% +% \TableOfContents[DocChapter] +% \def\DocPart{% +% \EndDocChapter +% \DocPart} +% \let\DocChapter=\oldDocChapter +% \DocChapter} + + + + +\def\BR{\HCode{
}} + +\gdef\SysVar#1{\Link{x-#1}{#1}#1\EndLink} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DIRECTORIES +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\GURARI{http://www.cse.ohio-state.edu/\string~gurari/} +\def\GOLD{/n/gold/5/gurari/} + +\def\WWW{\GURARI \ROOT} +\def\DIR{\GOLD WWW/\ROOT} +\def\TempDIR{\DIR temp/} + +\def\HOME{\GURARI TeX4ht/} + +\def\SYSTEMS{\GURARI systems.html} % ProTex AlProTex + +\def\tugHOME{http://www.tug.org/applications/tex4ht/} + + + + + + + +%\def\shareFTP{\WWW share/} +% \def\shareDIR{\DIR share/} +% \def\shareTempDIR{\TempDIR share/} +% \def\shareHOME{\HOME share/} +% \def\dosFTP{\WWW dos/} +% \def\dosDIR{\DIR dos/} +% \def\dosHOME{\HOME dos/} +% \def\winFTP{\WWW win95/} +% \def\winDIR{\DIR win32/} +% \def\winTempDIR{\TempDIR win32/} +% \def\winHOME{\HOME win32/} + +%\def\temp{TeX4ht} \ifx\switch\temp \else +% \def\shareFTP{share/} +% \def\shareHOME{share/} +% \def\dosFTP{dos/} +% \def\dosHOME{dos/} +% \def\winFTP{win32/} +% \def\winHOME{win32/} +% \fi + + +\def\WWWxml{http://www.tug.org/applications/tex4ht/mml/} +\def\dosports{\GURARI dosports/readme.html} + + + + + + + % can't clean the full directory because + % the new html stuff is already there + %%%%%%%%%%%%%%% FIRST %%%%%%%%%%%%%%%%%%%%% +\csname SysNeeds\endcsname{"rm ht-unix/*"} +\csname SysNeeds\endcsname{"rm ht-win32/*"} +\csname SysNeeds\endcsname{"chmod 711 \DIR"} +%foo \csname SysNeeds\endcsname{"chmod 711 \TempDIR"} + %%%%%%%%%%%%%%%%%%%%% + +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/temp"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/temp"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/src"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/src"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/bin"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/bin/unix"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/bin/win32"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/bin"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/bin/unix"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/bin/win32"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex/generic"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex/generic/tex4ht"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex4ht"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex4ht/ht-fonts"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex4ht/base"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex4ht/base/bin"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex/generic"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex/generic/tex4ht"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex4ht"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex4ht/ht-fonts"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex4ht/base"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex4ht/base/bin"} + +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex4ht/base/unix"} +%foo \csname SysNeeds\endcsname{"mkdir \TempDIR tex4ht/texmf/tex4ht/base/win32"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex4ht/base/unix"} +%foo \csname SysNeeds\endcsname{"chmod 755 \TempDIR tex4ht/texmf/tex4ht/base/win32"} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% END DIRECTORIES +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\csname UnderRevision\endcsname + +\Part{TeX4ht: LaTeX and TeX for Hypertext} + +\Intro + +\Mark{The \TeX4ht home page is at +\Link[https://tug.org/tex4ht]{}{}https://tug.org/tex4ht\EndLink}. +Please see that page for current development information, % +including a \Link[https://puszcza.gnu.org.ua/bugs/?group=tex4ht]{}{}bug tracker\EndLink\ +and \Link[https://lists.tug.org/tex4ht]{}{}mailing lists\EndLink. + +\TeX4ht is still actively maintained, and many individual files have been +updated; new versions are committed to the \TeX4ht\ and TeX Live +repositories. + +Unfortunately, no full release of \TeX4ht has been made since Eitan +Gurari, the original author, passed away unexpectedly in June 2009. When +a release is finally made (there is no ETA at present), it will be +available on \Link[https://ctan.org/pkg/tex4ht]{}{}CTAN\EndLink. + +\EndIntro + +\TeX4ht is a highly configurable \TeX-based authoring system +dedicated mainly to +produce hypertext. It interacts with \TeX-based applications through +style files and postprocessors, leaving the processing of the source +files to the native \TeX{} compiler. Consequently, \TeX4ht can handle +the features of \TeX-based systems in general, and of the \LaTeX{} and +AMS style files in particular. + +Pre-tailored configurations are offered for different +\Link[\jobname-commands.html]{}{}output formats\EndLink{}, including +HTML 5, (X)HTML, MathML, OpenDocument, and DocBook. +%This document and the utility code +%are available for downloading in \Link[tex4ht-all.zip]{}{}zipped +%format\EndLink{}. + +% (alternative sites: \Link[\WWW +% tex4ht-all.zip]{}{}osu\EndLink \tugOnOff{, \Link[\tugHOME +% tex4ht-all.zip]{}{}tug\EndLink}). + + \TableOfContents[DocPart] + +\HPage{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocPart{Table of Contents} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\bgroup + +\ConfigureToc{DocPart} + {} {\HCode{
}} + {} {\HCode{
} } + +\TableOfContents[DocPart,DocChapter,DocSection,DocSubSection,InstallSection] + + +\Css{div.TableOfContents div.DocPart{margin-top:1em; margin-bottom:1em; + font-size:110\%;}} + + +% \TableOfContents[SubSection] + +% \TableOfContents[TroubleSec] + +% \TableOfContents[QAChapter,QASection] + +\egroup +\EndHPage{toc} + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Css{.bugfixes{background: yellow; +% padding:0.5em; +% margin-left:70\%; +% text-align:center; + font-style: italic; +font-weight: bold; +}} + + + + \HPage{troubleshooting}\ExitHPage{} + +\Link{}{trbl-sht}\EndLink + + + +\InstallSection{Troubleshooting} + +\TableOfContents [TroubleSec] + +\TroubleSec{Bitmaps} + +\let\svTroubleSec=\TroubleSec +\def\TroubleSec#1{\EndList \svTroubleSec{#1} + \List{} + \let\SV=\item + \def\item##1{\SV{\Tg##1\Tg}}% + } + +\List{} +\let\SV=\item +\def\item#1{\SV{\Tg#1\Tg}} +\item{Too small math fonts in images} + +Use instructions of the form + +\centerline{\tt \string\DeclareMathSizes + \string{{\it surrounding text size}\string} + \string{{\it base math}\string} + \string{{\it subscript math}\string} + \string{{\it 2nd order subscript math}\string}} + +to request math font dimensions for formulas embedded within text of +specified font dimensions. Use sizes of magnitude $10*(1.2)^i$. + +{\bf Example:} + +\Verbatim +\documentclass{article} + \DeclareMathSizes{10}{24.88}{20.74}{17.28} +\begin{document} + Test in 10pt. \( {base 24.88}_{script 20.74} \) +\end{document} +\EndVerbatim + +\item{Bad Quality of Pictures} + +Increase the density (number of dots per inch) when converting the +pictures, and then sub-sample the picture. Specifically, +replace in \`'tex4ht.env' the switch + + \centerline{-density 110x100} + +\noindent with the switch + + \centerline{-density 220x220 -geometry 50\%} + +\noindent or with another switch of the form + + \centerline{-density ...x... -geometry ...\%} + +The \''-density' switch increases the number of pixels per inch, +and the \''-geometry' option reduces that number. The process + smoothes (anti-aliases) the edges. + Typically screens display about 72 to 100 dots per inch. + +The type of fonts in use may also affect the quality of the output. +In particular, +\Link[http://www.ams.org/index/tex/type1-cm-fonts.html]{}{}Type +1\EndLink{} (scalable outlines) fonts offer better outcome than Type 3 +(bitmapped) fonts. + +\item{Direct Translations of EPS Figures} + +The quality of the bitmaps of EPS figures may be improved by +converting the figures directly, without transmitting them through the +dvi code. For instance, the \''\includegraphics' command in the +presence of the following configuration provides such a route. + +\Verbatim + \Configure{graphics*} + {eps} + {\Needs{"convert \csname Gin@base\endcsname.eps + \csname Gin@base\endcsname.png"}% + \Picture[pict]{\csname Gin@base\endcsname.png}% + } +\EndVerbatim + +\--Bitmaps and graphics/eps//% +The following script provides a more efficient and general approach. + +\Verbatim + \Configure{graphics*} + {eps} + {\openin15=\csname Gin@base\endcsname.\PictExt\relax + \ifeof15 + \Needs{"convert \csname Gin@base\endcsname.eps + \csname Gin@base\endcsname.\PictExt"}% + \fi + \closein15 + \Picture[pict]{\csname Gin@base\endcsname.\PictExt}% + } +\EndVerbatim + + +\item{Truncated and empty png files} + +Such a behavior might result from pictures which end up off the +dvi page limits. +A larger paper size may be requested from dvips + through the switch `-T offset' (e.g., -T 14in,14in). +The dvips command is activated from tex4ht.env. + + +\item{Truncated and empty png files for Xfig pictures} + + Some Xfig files are made up of overlapping picture environments, + with \TeX4ht viewing the components as defining independent figures. + The problem can be solved by importing the Xfig files into + pictorial environments of \TeX4ht. + +\Verbatim + \newenvironment{mypic}{\Picture*{}}{\EndPicture} + \begin{mypic} \input{xfig-file} \end{mypic} +\EndVerbatim + +Alternatively, +%\Link{pdf-based}{} +PDF-based +%\EndLink{} + translations into bitmaps might also +offer a solution. + +% > xfig to draw, +% > fig2dev to convert +% > - text to TeX picture +% > - graphics to eps +% > This way we have full TeX fonts/features in all our pictures. +\TroubleSec{\LaTeX} + + +\item{Unable to find a newly installed file} + +The \TeX{} engine might require an update of a search directory: the +ls-R database for installations employing kpathsea (run texhash), the +data base directory in the case of MiK\TeX{} (select \'Start -> Programs -> MiKTeX -> Refresh', or run \`'initexmf -u' from +a DOS session, to update it). + + + + \TroubleSec{Fonts} + +\item{Can't find/open file foo.tfm} + +\List{*} +\item \--Fonts/tfm//% +Locate the directory where \LaTeX/\TeX{} finds font foo.tfm, +and add to \''tex4ht.env' a \`'t' record pointing to that directory +(e.g., \`'tc:\localtexmf\fonts\tfm!'). +\item +Insert the record at the start of the line. \TeX4ht considers the first +character in each line to be a code describing the type of the record in +hand. Lines which start with unrecognized character codes, spaces +included, are ignored. +\item +Note also that \LaTeX/\TeX{} may create fonts on the fly and put them +in a temporary directory (e.g., \`'/var/tmp/texfonts/tfm/'). +\EndList + +\item{Linux, Netscape, and the SYMBOL font} + + + To display the SYMBOL fonts in Netscape on Linux +add + +\centerline{\tt Netscape*documentFonts.charset*adobe-fontspecific: iso-8859-1} + +\noindent to the \''~/.Xdefaults' file + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\TroubleSec{C programs} + +\item{\--tex4ht.c/Compiling//tex4ht.c doesn't compile ... ERROR:3396: `DIR' +undeclared (first use this function)... } + +Consider adding the switch \`'-DHAVE_DIRENT_H' to the command line. +For instance, + +\'+gcc -o tex4ht tex4ht.c -DENVFILE='"path/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"' + -DHAVE_DIRENT_H+ + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\TroubleSec{Scripts} + +\item{Bad end-of-line characters in htlatex.bat/httex.bat/htexi.bat/ht.bat} + + +Remove undesirable trailing characters in the +lines of the scripts, introduced by the utilities which download the files. + +DOS/WINDOW platforms use an endline pair of characters: a carriage +return and a line feed (0Dx,0Ax hexadecimal; 13,10 +decimal). MAC platforms use only a single carriage feed character +(0Dx; 13dec). UNIX platforms use only a single line feed character +(0Ax; 10 dec). + +\item{Can't find/open file `xxx.dvi' or `xxx.lg'} + + In some platforms, the operating systems pass on the quotes of the + parameters of \''htlatex', \''httex', and \''httexi' to the + utilities \''tex4ht' and \''t4ht'. In such cases, the utilities issue + complaints of the above nature for file names \`'xxx' other than + those being compiled. The problem can be resolved by +\HPage{installing a filter} +%%%% +\ExitHPage{} + +\SubSection{htcmd} + + +\--htcmd.c///% +The source is available at +\''bin/temp/htcmd.c', and executable for MS Win 95/98/NT is +available at \''bin/win32/htcmd.exe'. + + + +%%%%% +\EndHPage{} named \`'htcmd', +and submitting + the \''tex4ht' and \''t4ht' commands to the filter. Backslash + characters \`'\' might need replacements with double backslash + characters \`'\\' or forward slash characters \`'/'. + +For instance, if \''htlatex.bat' contains a command line of the form + \`'C:\tex4ht\t4ht %1 %4', then after introducing the filter the +modified command line will take the form + \`'C:\\tex4ht\\htcmd C:\\tex4ht\\t4ht %1 %4'. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \TroubleSec{Environment File} +\item +{Can't find/open file `tex4ht.env'} + +\--tex4ht.env///% +The switch \''-hV' on the calling \''tex4ht' command shows where +the file is being searched. The following are possible solutions to +the problem. +\List{*} +\item Set an environment variable TEX4HTENV to the address of the file +\item Add the switch \`'-e...address-of-tex4ht.env...' to the command +lines of t4ht + and tex4ht within the htlatex, httex, +httexi, and ht (or htlatex.bat, httex.bat, +httexi.bat, + and ht.bat) scripts. +\item If tex4ht and t4ht are compiled for kpathsea check that the +texmf.cnf contains records similar to the following ones. + +\Verbatim + TEX4HTFONTSET=alias,iso8859 + TEX4HTINPUTS=.;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + T4HTINPUTS=.;$TEXMF/tex4ht/base// +\EndVerbatim + +\item Make the location of +the environment file known to the programs in another manner +(see the pointers from the entry + \`'tex4ht.env' in the \Link{Index}{}index\EndLink). +\EndList + +\item{No permission for system call: ...} + + Make sure that the \`'S' records in \''tex4ht.env' don't +end with invisible spaces, and that the file ends +with the record \`'% end of +file'. + +\item{Problems with argument {\tt -d...} of t4ht} + +The specified directory must be augmented by a slash character \''/'. + + + + +\item{Problems with the convert utility} + +\List{*} +\item Make sure the convert program of ImageMagick is called and +not another convert system in your directories. In the latter case, +insert the full address of convert into the following command within tex4ht.env. + +\'+Gconvert zz%%4.ps -trim -density 110x110 -transparent '#FFFFFF' %%3+ + + +For instance, use + +\''Gc:\TeX\Imagick\convert' + +instead of + +\''Gconvert' +\item You might need to remove the quotes from \'+'#FFFFFF'+ +\EndList + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\TroubleSec{tex4ht.sty / *.4ht} + +\item{Foreign content in {\tt ...} elements} + + Use the {\tt \string\Configure\string{@TITLE\string}\string + {...\string}} command to redefine for the these elements the + harmful macros that appear in headers of logical units like + \''\title' and \''\chapter'. For instance, the definition + \''\Configure{@TITLE}{\def\LaTeX{LaTeX}}' for the source +\''\title{with \LaTeX}'. + +\item{Problematic commands in titles of logical divisions} + +Commands within titles of divisions might need protection when +transported by tex4ht to other locations. The command +\''\Configure{NoSection}{..before...}{...after...}' +may be used for such a purpose. + + + +%%%%%%%%%%%%%%%%%%%%%%% + \TroubleSec{DVI Code} + + +\item{XDVI/DVIWINDO/YAP... hang on {\tt\char92special} command} + + The dvi code produced by tex4ht is not valid for use with other + utilities. Recompile the source file without the presence of tex4ht, + to provide a proper code to your dvi viewer. + +%%%%%%%%%%%%%%%%%%%%%%% + \TroubleSec{JavaScript} + + +\item{`{\tt onovermouse}' package option} + +This option currently relies on +the JavaScript utility +\Link[https://github.com/overlib/overlib]{}{}overlib.js\EndLink{} +of Erik Bosrup. The {\tt overlib.js} file must be placed to the directory +along the html files. +%The file might need to be fixed at line 234, by +% introducing \`'return "";' instead of \`'return;' (an already +% \Link[http://www.egroups.com/message/overlib/133]{}{}reported\EndLink{} problem). + + +%%%%%%%%%%%%%%%%%%%%%%% + \TroubleSec{Subscripts and Superscripts} + + +\item{Loss of structural information} + +\--Subscripts and superscripts///% +% + Subscripts and superscripts are among the weakest points of tex4ht. + In order to recognize them for non-bitmap representations, \TeX4ht changes the category codes of + \`'^' and \`'_', upon reaching the \''\begin{document}' instruction, +and ignores the operations if introduced earlier. + + +The ideal solution would have been to get the superscript and +subscript operations, as well as the empty bases \`'{}', marked upon +request by the native compilers in the dvi code. Currently, that is +just a good night dream. + +The followings are possible ways to overcome the problem. + +\List{1} + +\item Prepare TeX4ht configuration files containing redefinitions +for the the sensitive macros. For instance, the configuration file +\''test.cfg' + +\Verbatim +\Preamble{} + +\renewcommand{\FQED}[2]{F_{#1#2}} +\renewcommand{\Mlones}{M^2} +\renewcommand{\bzms}{M^2_{_0}} + +\begin{document} +\EndPreamble +\EndVerbatim + + +for a source \''test.tex', and a compilation invoked through the +command \`'mzlatex test "test"'. + +\item Use \''\sb' and \''\sp', +instead of \`'_' and \`'^', in auxiliary files and preambles of files, +or push the definitions to after the \''\begin{document}' statement. +The danger in this approach is that occasionally + users provide new meanings to existing control sequences, + without tex4ht taking it into account. + +\item + Use the command line options \''early_' and \''early^'. For instance, + \''htlatex file "html,early_"'. + + + + + +\EndList + + + + +\EndList +\EndHPage{} +% +{\tt |} +% +\noindent \HPage{Q/A}\ExitHPage{} + + +\InstallSection{Q/A} + +\TableOfContents [QAChapter,QASection] + + +\noindent {\bf Note:} Please also check the .log files of the compilations +for hints provided by tex4ht. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QAChapter{Addresses of Bitmap Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{How Bitmap Files Are Created for Pictures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +There are two kinds of pictures: those created for letters, and those +requested directly or indirectly for figures in the source files. The +tex4ht.c utility extracts the figures from the foo.dvi file into a +foo.idv file, and places in foo.lg messages of how to extract the +figures. The t4ht.c utility, uses the requests listed at foo.lg, to +activate the G-script from tex4ht.env for the different figures. +However, if a F-script is available, it is used instead for the letters. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{References to Bitmap Files of General Pictures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + The command + +\''\Configure{IMG}{}' + + in the configuration file adds the prefix + + \''foo.dir/' + + to the file names. + + The default setting uses the configuration + +\''\Configure{IMG}{}' + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Placement of Bitmap Filess of General Pictures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Add to the \`'G' script in \''tex4ht.env' +a command to move the bitmap files to the desired +destination (e.g., \`'Gmv %%3 foo.dir/.'). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{References to Bitmap Files of HTF Symbols} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Add the following commands to the configuration file. + +\Verbatim +\Configure{htf}{1}{+}{} +\Configure{htf}{3}{+}{} +\EndVerbatim + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Placement of Bitmap Files of HTF Symbols} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +If \`'foo.dir/' is not the directory used in the `G' script, introduce into +tex4ht.env a similar `F' script for the bitmaps of character, e.g., + +\Verbatim +Fdvips -T 14in,14in -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Fconvert zz%%4.ps -trim -density 110x110 -transparent '#FFFFFF' %%3 +Fmv %%3 foo.dir/. +\EndVerbatim + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QAChapter{Representation of formulas} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Make picture's alternative text to show the original tex code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Explicit requests: + +\Verbatim +\newtoks\eqtoks +\def\ImageAlt{\afterassignment\setimg\eqtoks} +\def\setimg{\Picture*[\HCode{\the\eqtoks}]{}\the\eqtoks\EndPicture} + +\ImageAlt{$\alpha + \beta$} + +\ImageAlt{$$ + \begin{array}{cc} + a & b \\ + c & d + \end{array} +$$} +\EndVerbatim + +Implicit requests may also be tailored along the following lines, but +they should be used carefully because they are not safe. + +\Verbatim +\newtoks\eqtoks +\def\AltMath#1${\eqtoks{#1}% + \Picture*[\HCode{\the\eqtoks}]{ align="middle"}$#1$\EndPicture$} +\Configure{$}{}{}{\expandafter\AltMath} +\EndVerbatim + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Avoiding bitmaps within formulas} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\--Bitmaps and graphics/Requests//% +{\it Q. I found that some equations have smaller fonts than the +others. I wonder why the size of the equations changes along the +document.} + +Some equations and symbols are converted to bitmaps--I guess they are +the parts you are concerned about. + +If you try the command \`' mzlatex filename', provided you have the +xhlatex-like script of mzlatex configured, you'll get the bitmaps +removed in favor of unicode symbols and mathml formulas. In such a +case, one will need a mathml-enabled browser to view the outcome. + +If you don't care using the MS SYMBOL font, which non-pc browsers are +likely not to recognize, try the command \`' htlatex filename "" "symbol/!" '. +It will resolve the bitmap problem for of the characters. + +%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Setting bitmaps within formulas} +%%%%%%%%%%%%%%%%%%%%%%%% + + +A code similar to the following one may +be used to configure instructions like \`+\int_{xxx}^{yyy}+ and +\`+\sum_{xxx}^{yyy}+ + to produce pictorial representations within non-pictorial +formulas. + +\Verbatim +\def\SubSupOp#1{% + \edef\temp{\expandafter\gobble\string#1}% + \expandafter\let\csname old\temp\endcsname=#1 + \edef\temp{\noexpand\SUBSUPOP{\expandafter\noexpand + \csname old\temp\endcsname}}% + \HLet#1=\temp +} +\def\gobble#1{} +\def\SUBSUPOP#1{\let\curOP=#1% + \let\next=\putOP \let\OPsub=\empty \let\OPsup=\empty + \futurelet\nextop\getOP} +\def\getOP{% + \ifx _\nextop \let\next=\getsub + \else\ifx ^\nextop \let\next=\getsup\fi\fi \next} +\def\getsub#1#2{\def\OPsub{#2}\let\next=\putOP + \futurelet\nextop\getOP} +\def\getsup#1#2{\def\OPsup{#2}\let\next=\putOP + \futurelet\nextop\getOP} +\def\putOP{\Picture+{ align="middle"}{\curOP_{\OPsub}^{\OPsup}}\EndPicture} + +\SubSupOp\sum +\SubSupOp\int + +\EndVerbatim + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QAChapter{{\tt \char92 includegraphics}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Conditional bitmap conversion for imported graphic files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\it Q. How to avoid the conversion of eps files to PNG's, +included through the \''\includegraphics{...}' command', each time +the source file is run across tex4ht.} + + +Compile your source with the command line \`' htlatex filename "html,info" ', +and check the log file for the information provided there. In +particular, the \`'\Configure{graphics*} {wmf} ...' example may be +adapted for dealing with eps files, where a conditional conversion is +requested within the \`'\Needs{"..."}' command (possibly indirectly +through a call to a script for doing he job). + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Clickable Thumbnail Images} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\it +\--Pictures/Thumbnail//% + Q. +How an image can be made a thumbnail to be clicked on for + bringing up the full size image.} + +\Verbatim + \Configure{graphics*} + {png} + {\Link[\csname Gin@base\endcsname .png]{}{}% + \Picture[pict]{\csname Gin@base\endcsname .png + \space width="40px" height="40px" }% + \EndLink + } +\EndVerbatim + + + +\Verbatim + \Configure{graphics*} + {eps} + {\openin15=\csname Gin@base\endcsname\PictExt\relax + \ifeof15 + \Needs{"convert \csname Gin@base\endcsname.eps + \csname Gin@base\endcsname\PictExt"}% + \fi + \closein15 + \Link[\csname Gin@base\endcsname\PictExt]{}{} + \Picture[pict]{\csname Gin@base\endcsname\PictExt + \space width="40px" height="40px" }% + \EndLink + } +\EndVerbatim + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QAChapter{Other} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\QASection{Missing Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +{\it Q. I am attempting to convert a Ph.D. thesis written in LaTeX, +using a locally developed class ths.cls based on the report class, which +redefines some elements of the class for local needs. The output is +lacking the Table of Contents and the Lists of Figures and Tables, and +the bibliography at the end is only minimally formatted.} + +The problems result from a lack of a configuration file for the thesis +class. Try introducing a configuration file similar to the following +one. + +\Verbatim + % file name: ths.4ht + \input report.4ht +\EndVerbatim + + + +\EndHPage{QA} +% +{\tt |} +% +% +% +% \HCode{}\Link[http://www.cse.ohio-state.edu/\string +% ~gurari/TeX4ht/bugfixes.html]{}{}bug fixes\EndLink +% \HCode{} +% +\NextFile{mml.html}% +\HPage{common problems for MathML} +\--MathML/Do and Don't//% +\rightline{\ExitHPage{up}} +\Link{}{mml-prob}{}% +\NextFile{mml-issues.html}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Some Sources of Problems for MathML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\List{a} +\item +Broken math formulas, such as \`'$R=\{x|x$ is real $\}$' +instead of \`'$R=\{x|x \mbox{ is real } \}$'. +% +\item + Math mode employment for presenting nonmath content, +such as \`'$$\vbox{...}$$ ' instead of + \`'\begin{center}\vbox{...}\end{center}'. +% +\item + Unmatched parentheses within entries of arrays, +such as \`'\begin{array}...(... & ...)...\end{array}' +instead of +\`'\begin{array}...\left(... \right.& + \left. ...\right)...\end{array}'. +% +\item +Unmatched parentheses within math, such as \`'$a = b)$' instead of +\`'$\left.a = b\right)$'. It is also possibl to use `mathml-' command line +option without need to modify the first form, but it may result in wrong +parentheses size. +% +\item +Incorrect annotation of delimiters, such as \`'\bigl\{...\bigr|...\bigr\}' +instead of + \`'\bigl\{...\bigg|...\bigr\}' +% +% +% 21/04/2017 Michal: +% What does the following example mean? It produces identical code, but the recomended form doesn't +% make any sense +% \item +% %%\relax\relax\--\string_//\string\tt/% +% \relax\relax\--!//{\string\tt\char \space 95}\string\csname\space :gobble\string\endcsname/% +% %%\relax\relax\--\string^///% +% \relax\relax\--!//{\string\tt\char \space 94}\string\csname\space :gobble\string\endcsname/% +% Empty bases for subscripts and superscripts, +% such as \`'{}^{...}, {}_{...}' instead of +% \`'{\csname HCode\endcsname{}}^{...}, {\csname HCode\endcsname{}}_{...}'. +% % +% +\item +Missing grouping for bases of subscripts and superscripts, such as +\`'10^6' instead of \`'{10}^6'. (Some fixing of the problem can be requested through a `-cxhtmml' command line option for t4ht.c. For instance, +`{\tt mzlatex file "" "" "-cxhtmml"}'.) + +\item Missing grouping for subscripts and suprscripts, such as +\`'A_\mathit{...}' instead of \`'A_{\mathit{...}}'. (\LaTeX{} allows +indirect access to the content of the operands; \TeX4ht requires + direct access.) + + + +\item +Use of the operators \`'^' and \`'_', instead of \`'\sb' and \`'\sp', +outside the presence of \TeX4ht. + (\TeX4ht becomes active only at the \`'\begin{document}' command. +The \`'early_' and \`'early^' options extend this awareness to the preambles of the source latex documents.) + +\item +If math environments nested within tabular environments cause \HPage{problems} + +\noindent{\bf Any explanation for the following problem?} +The native LaTeX compiler has no problem with examples 1 and 2. On example 3 it +complains: \`'Argument of \xhalign has an extra }'. When compiled in isolation, examples 2 and 3 produce the same tracing until \''\xhalign' is invoked. + + + +\Verbatim + \tracingcommands=2 + \tracingmacros=2 +\documentclass{article} +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\catcode`\@=11 + +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\everycr{}\xhalign \cr +} + +\def\xhalign#1\cr{% + \halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil + &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep + $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \vbox\bgroup %% example 1 %% + \begin{eqnarray} x \end{eqnarray}% + \egroup + + \begin{tabular}{c} %% example 2 %% + \vbox{% + \begin{eqnarray} x \end{eqnarray}% + }% + \end{tabular} + + \begin{tabular}{c} %% example 3 %% + \vbox\bgroup + \begin{eqnarray} x \end{eqnarray}% + \egroup + \end{tabular} + +\end{document} +\EndVerbatim + + + + + + + +\EndHPage{} + enclose them +within braces (for instance, +\`'\begin{tabular}{c} + \begin{minipage}{4in} + { \begin{eqnarray} + x & = & y + \end{eqnarray} } + \end{minipage} + \end{tabular}'). + + +\EndList +\EndHPage{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%{\tt |} .log files of the compilations + + +\NextFile{bugfixes.html}\HPage{bug fixes - TeX4ht} + +See +\Link[https://tug.org/tex4ht]{}{}https://tug.org/tex4ht\EndLink\ +for current status and information. You can see updates in the +\Link[https://tug.org/pipermail/tex4ht-commits/]{}{}commit history\EndLink. + +Issues can be reported on the +\Link[https://puszcza.gnu.org.ua/bugs/?group=tex4ht]{}{}bug tracker\EndLink. +\EndHPage{} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocPart{Using the System} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Typical \LaTeX{} source files can be compiled into standard HTML and +XML formats in a manner similar to the way they are compiled into +print formats, namely, through variations of the command +\--htlatex///`{\tt htlatex {\it filename} "{\it options1}" "{\it + option2}" "{\it options3}" "{\it options4}"}'. For instance, + +\Verbatim +htlatex filename # generate HTML +xhlatex filename # generate XHTML +\EndVerbatim + +% (since these are not in current TL, leave them out for now; should restore) +% mzlatex filename # XHTML with MathML +% oolatex filename # OpenOffice XML with MathML +% dbmlatex filename # Docbook XML with MathML + +For details, visit the +\NextFile{\jobname-commands.html}\HPage{calling commands} + +\rightline{\ExitHPage{up}} + +\DocPart{Calling Commands} + +% \TableOfContents[DocChapter] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{From LaTeX\space to HTML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\leavevmode\Link{}{features}\EndLink +The translation of a \LaTeX{} source file into HTML involves of +loading \''tex4ht.sty' and *.4ht style files, +choosing the desirable options for the translation, compiling the +source into \''dvi' code with the native \LaTeX{} engine, and +postprocessing the outcome with the \''tex4ht' and \''t4ht' programs +(see \Link[\RefFile{overview}]{}{}overview\EndLink{}). + + +\--htlatex///% +The \''htlatex' command loads a script which takes on itself to invoke +the different steps of the process, without user intervention. The +command assumes the form + +\centerline{{\tt htlatex filename "{\it options1}" + "{\it option2}" "{\it options3}" "{\it options4}"}} + + +\noindent +where the first set of options is for the +\''tex4ht.sty' and \''*.4ht' style files, the second set is for the +\''tex4ht' +postprocessor, the third for the \''t4ht' postprocessor, and +the last one is for the \LaTeX{} compiler. + For instance, + + + + + + + +\List{} +\item{{\''htlatex filename'}}This command requests a translation according +to the default conditions, which are set to produce HTML transitional +4.0 code. + + +\item{{\''htlatex filename "html,2,info"'}}This command is +equivalent to the previous one, specifying explicitly the option +\''html' for \''tex4ht.sty' instead of doing so implicitly. + +In addition, +the command requests a break up of the output into separate web pages, +in accordance to the two top sectioning levels of the document. + +Moreover, +it asks for a listing in the log file of the information available for +the style files in use. That information, among other things, also +introduces additional values available for the first list of options. + +% +\item{{\''htlatex filename "" "dbcs/!"'}}This command requests the +loading +of the dbcs branch of Chinese hypertext fonts (on top of those already requested by +the default setting). + +% +\item{{% +\--Bitmaps and graphics/Requests//% +\--Frames///% +\--Chinese///% +\--Fonts/Chinese//% +\--t4ht.c/-p//% +\''htlatex filename "foo,frames" "" "-p"'}}This command requests \LaTeX{} +to load a private +configuration file, named \''foo.cfg', +and to place the content and table of contents +in separate frames. +In addition, it asks + \''t4ht' not to produce bitmaps for pictures. + + + +\item{{\''htlatex filename "" " -ciso2htf" "" +"-translate-file=il2-pl"'}}This command invokes the \LaTeX{} compiler +with the instruction \`'latex -translate-file=il2-plfilename'. + +\EndList + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Available Values for the Options} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--htlatex/available options//% +The fields of {\it option1} should be separated by commas. An +\`'info' field requests a listing in the .log file of many of the +the available values. If the list is not empty, it must start with +the entry \`'html', \`'xhtml', or a name of a private configuration +file. + +The fields of {\it option2} and {\it options3} should be separated by +spaces. The available values can be listed by executing the +postprocessors \''tex4ht.c' and \''t4ht.c', respectively, without +arguments (or with wrong sets of arguments). + +The first field of {\it option2} should be empty or a subdirectory of +\''ht-fonts' (typically augmented with an exclamation mark \`'!'). A +space should separate the first field from the second one, also when +the first field is empty. + +The underlying output formats of available \''htlatex'-like commands +are tailored into the commands through fields of {\it option1}. The +names of these fields are defined in \''tex4ht.4ht' and \''tex4ht.usr' +(see \Link{confFiles}{}\Ref{confFiles}\EndLink). These values should +be of little interest to most users. + + + +\--htlatex/mk4ht//% +\--mk4ht///% +Different variants of the \''htlatex' +command may be invoked by introducing the commands as arguments to a +driver named \''mk4ht'. When provided without arguments, the driver +lists the commands it recognizes. + +\bgroup \tt +\HTable ^/ +[/style="white-space: nowrap; margin-right:2em;"] mk4ht mzlatex filename "html,3" \& (htlatex filename "html,3,xhtml,mozilla" "~-cmozhtf") \CR +[/style="white-space: nowrap; margin-right:2em;"] mk4ht oolatex filename \& (htlatex filename "xhtml,ooffice" "ooffice/!~-cmozhtf" "-coo") +\EndHTable +\egroup + +\--htlatex/mkht-scripts.4ht//% +Alternatively, a compilation +\`'latex mkht-scripts.4ht' +produces different named scripts of similar functionality. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{XHTML and Unicode} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\--XHTML///%' +\--Unicode///%' +\--tex4ht.c/-cunihtf//% +\--Unicode/-utf8//% +The \`'xhlatex' command is a variant of the \`'htlatex' command +requesting XHTML output. It consists just of a call to \`'htlatex' +with the entry \`'xhtml' in the first list of options +and \`'-cvalidate' in the third list. For instance, +\`'xhlatex filename' or \`'htlatex filename "xhtml"'. + +To request a Unicode representation of symbols, the first list of +options should include the \`'uni-html4' entry, and the second list +should include the \`'-cunihtf' entry preceded by space. For +instance, \`'xhlatex filename "xhtml,uni-html4" " -cunihtf"'. + + +Unicode representations of symbols in UTF-8 encoding may be requested +with the entry \`'-utf8' added to the second list. + For +instance, \`'xhlatex filename "xhtml,charset=utf-8" " -cunihtf -utf8"'. + + + +To request expanded usage of unicode values in iso-8859-1 output +employ commands +similar to + + \centerline{\tt htlatex file "" "iso8859/1/charset/uni/!"} + +\noindent or introduce a similar charset path in tex4ht.env. Otherwise, non +iso-8859-1 characters might obtain bitmap representations. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{XHTML with MathML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--MathML///% +\--MathML/MathPlayer//% +\--mzlatex///%' +\--Scripts/mzlatex//% +\--xhmlatex///%' +\--Scripts/xhmlatex//% +\TeX4ht has different configurations for different modes of output. It +is distributed with pre-tailored base configurations for translating +\LaTeX{} math into MathML, and extra configurations for adjusting the +outcome to Mozilla, + MathPlayer, +and PMathML CSS. Only presentational +MathML is supported. + +\Verbatim + mzlatex filename + mzlatex filename "html,pmathml" + mzlatex filename "html,mathml-" + mzlatex filename "html,mathplayer" + xhmlatex filename +\EndVerbatim + + + + For XHTML+MathML to be served both by Mozilla and +MSIE+MathPlayer use the command line option `mathplayer'. + + +The \''mzlatex' command is a short cut representation for the command +\`'htlatex filename "xhtml,mozilla" " -cmozhtf" "-cvalidate"'. It take into account special +needs of browsers. The \''xhmlatex' command is a short cut +representation for the command +\`'htlatex filename "xhtml,mathml" " -cunihtf" "-cvalidate"'; +it does not make any compromizes toward browsers. + + + It might be worthwhile to notice some of the +more \Link{mml-prob}{}common sources of problems\EndLink{} for MathML. +\--mzlatex/-mathml//%' +The \`'mathml-' options asks for a degraded + MathML output that sidetracks some of +the problems. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{OpenDocument, OpenOffice, and MS Word} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--OpenOffice///% +\--OpenDocument///% +\--Scripts/oolatex//% +\--oolatex///% +\--Word, MicroSoft///% +\--Scripts/MicroSoft Word//% +A translation for an OpenDocument + format can +be requested by the \`'\oolatex' command. The command is a variant of + \''htlatex' in which the first list of options holds the entries +\`'xhtml,ooffice', the second list holds the entry \`'-cmozhtf' +preceded by a space, and the third list contains \`'-coo' +({\tt +htlatex filename "xhtml,ooffice" "ooffice/!~-cmozhtf" "-coo -cvalidate"}). The output +of a command \`'oolatex filename' is a zipped file named with a +\`'.odt' extension. + + + + +The OpenDocument code employs MathML for formulas, and XSL-FO for +formatting. It can be viewed by the +\Link[http://www.openoffice.org/]{}{}OpenOffice\EndLink{} + word processor which, +in turn, can export RTF and other MicroSoft-based formats (see also, +Maarten Wisse, ``Hacking TeX4ht for XML Output: The Road toward a TeX +to Word Convertor'', +\Link[http://www.ntg.nl/maps/electromaps.html]{}{}MAPS\EndLink~28~(2002), +pp.~28-35). + + + +A command of the form \`'htlatex filename "html,word" "symbol/!" +"-cvalidate"' asks for HTML output tuned toward MicroSoft Word. Such +a format, however, relies on bitmaps for mathematical formulas. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{DocBook and TEI} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--DocBook///% +\--Scripts/dblatex//% +\--Scripts/dbmlatex//% +\--TEI///% +\--Scripts/teilatex//% +\--Scripts/teimlatex//% +\--dblatex///% +\--dbmlatex///% +\--teilatex///% +\--teimlatex///% +The following +commands may be used for requesting DocBook and TEI output. + +\bgroup \tt +\HTable / +dbmlatex: \& +htlatex {\it filename} "xhtml,docbook-mml" " -cunihtf" "-cdocbk"\CR +dblatex:\& +htlatex {\it filename} "xhtml,docbook" " -cunihtf" "-cdocbk"\CR +teimlatex:\& +htlatex {\it filename} "xhtml,tei-mml" " -cunihtf" "-cdocbk"\CR +teilatex:\& +htlatex {\it filename} "xhtml,tei" " -cunihtf" "-cdocbk" +\EndHTable +\egroup + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{JavaHelp} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--Unicode/-u10//% +\--JavaHelp///% +\Link[http://java.sun.com/products/javahelp/index.jsp]{}{}JavaHelp\EndLink{} +is an online documentation system for use by Java-based applications. +Such documents can be produced from \LaTeX{} files through commands +similar to `{\tt jhlatex {\it filename}}' for JavaHelp version 2.0. + +The above invocation stands for +`{\tt htlatex {\it filename} "html,3.2,xml,javahelp,unicode" " -cmozhtf +-u10" "-dfilename-doc/ -cjavahelp"}'. The \`'-u10' asks for entity +references in base 10---JavaHelp doesn't seem to support hexadecimal +representations. The \Verb=-cjavahelp= +invokes the JavaHelp indexer to produce the search +database at `jobname-doc/jobname-jhs' with a command + similar to `{\tt java -jar + \$\string{HOME\string}/jh2.0/javahelp/bin/jhindexer.jar -db + jobname-doc/jobname-jhs +jobname*.html}'. + +The Java program is to be distributed with the +jobname-doc directory. + + +\Code\jhsample{XXXX}<<< +\documentclass{article} + + \usepackage{url} + \Configure{ProTex}{java,<<<>?empty>>,title,`,list,[[]]} + + \usepackage{makeidx} + \makeindex + +\begin{document} + +\tableofcontents + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Compilation Instructions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item +Compile this \LaTeX{} file with the +\index{jhlatex}% +`{\tt jhlatex +jobname "html,3"}' +command. +\item +\index{JavaHelp URL}% +The URL into the javahelp file, as provided by tex4ht, is +`{\tt jobname-doc/jobname-jh.xml}'. +\item +The java programs should be compiled with commands similar to +\index{javac}% +`{\tt javac -classpath + \$\string{HOME\string}/jh2.0/javahelp/lib/jh.jar program.java}'. +\item +The programs should run with commands similar to +\index{java}% +`{\tt java -classpath + \$\string{HOME\string}/jh2.0/javahelp/lib/jh.jar:. program}'. +\end{itemize} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sample Program} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +import java.net.URL; +import javax.help.*; +import javax.swing.*; +public class jhprog { + public static void main(String args[]) { + JHelp helpViewer=null; + try { + ClassLoader cl = jhprog.class.getClassLoader(); + URL url = HelpSet.findHelpSet(cl, + "`jobname-doc/`jobname.hs"); + helpViewer = new JHelp(new HelpSet(cl, url)); + } catch (Exception e) { System.out.println("error"); + } + JFrame frame = new JFrame(); + frame.setSize(500,500); + frame.getContentPane().add(helpViewer); + frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + frame.setVisible(true); + } +} +>?empty>> + +\OutputCode\ + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sample Script} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +A source file \edef\temp{\noexpand\url{jhsample.tex}}\temp{} of this +document may be compiled for JavHelp 2.0 with the following script. + +\Verbatim +jhlatex jhsample +tex "\def\filename{{$1}{idx}{4dx}{ind}} \input idxmake.4ht" +makeindex -o jhsample.ind jhsample.4dx +jhlatex jhsample +\EndVerbatim + +The compilation produces the following files. + +\begin{verbatim} +jhprog.class +jhsample-doc/ +jhsample-doc/jhsample.html +jhsample-doc/jhsample.jhm +jhsample-doc/jhsample-jhi.xml +jhsample-doc/jhsample.hs +jhsample-doc/jhsample-jht.xml +jhsample-doc/jhprog.java +\end{verbatim} + + +The following instruction can be used for compiling the program. + +\Verbatim +javac -classpath ${HOME}/jh2.0/javahelp/lib/jh.jar jhprog.java +\EndVerbatim + + +The outcome could be viewed through the following command. + +\Verbatim +java -cp ${\home}/jh2.0/javahelp/lib/jh.jar:. jhprog +\EndVerbatim + + +\printindex + +\end{document} +>>> \OutputCode[tex]\jhsample + + + + +% Tex4ht does the following for JavaHelp +% +% * Creates keys for the entries in the table of contents and the +% index +% * Maps the keys into th erl's of the toc and the index (jobname.jhm) +% * Maps the keys to the entries referenced by the toc +% (jobname-jht.xml) and to the entries referenced by the toc +% (jobname-jhi.xml) +% * Creates a manifest of the files (jhelpset.hs), under the +% assumption that jhindexer set a search directory at jobname-jhs +% `java -jar +% /n/gold/5/gurari/javahelp.dir/jh2.0/javahelp/bin/jhindexer.jar +% -db jobname-jhs *.html' +% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Private Configuration Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--Files/Configuration//% +\Link{}{prvCfgFiles}\EndLink +The leading entry, in the first list of options of the +\''htlatex'-like commands, can equal \`'html' or \`'xhtml'. If this is +not the case, the entry is assumed to be the name of a configuration +file. The extension \`'cfg' is assumed for names of configuration +files that are listed without their extension. + +A configuration file should take the following form for \LaTeX{} +files. + + +\Template +...{\sl early definitions}...\cr +{\string\Preamble\string{{\sl options}\string}}\cr +...{\sl definitions}...\cr +{\string\begin\string{document\string}}\cr +...{\sl insertions into the header of the html file}...\cr +{\string\EndPreamble} +\EndTemplate\ShowPar + + +It is up to the user to decide the distribution of entries between the +\''\Preamble' and the \''htlatex'-like commands. + + +\Example{} +The command \`'htlatex myfile "mycfg,2"' requests the compilation of +a file named myfile.tex, in the presence of a configuration file named +mycfg.cfg. The configuration file might have the following content. + +\Verbatim +\Preamble{html} +\begin{document} + \Css{body { color : red; }} +\EndPreamble +\EndVerbatim + +\EndExample + + +\Notes \List{*} \item Notice that for a \LaTeX{} file the +\''\begin{document}' instruction should be present both in the +configuration file and the source file. + +\item Instructions defined within a source file may be redefined in a +configuration file. Such a feature enables to keep source files +intact for compilation to different formats by different tools. + + +For instance, a definition of the form +\''\renewcommand\mycommand{...}' within a configuration file provided +for the following \LaTeX{} source. + +\Verbatim + \documentclass{...} + \newcommand\mycommand{...} + \begin{document} + Use \mycommand{...} + \end{document} +\EndVerbatim + + + +\EndList +\EndNotes + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Creating Private Command Lines} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--mkht.4ht/Configuration//% +\--Scripts/tailored//% + +A htlatex-like script {\tt foolatex.bat} can be obtained from the +compilation under \LaTeX{} of a file similar to the following one. + +\Verbatim + \def\script{bat} + \input mkht.4ht + \one{,html,next,3} + \two{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 + -ic:\tex4ht\texmf\tex4ht\ht-fonts\symbol\!} + \three{#1 -dc:\my\dir} + \make{foo} + \end{document} +\EndVerbatim + +A call of the form + +\centerline{\tt foolatex filename} + +is then equivalent to a call of the following form. + +\centerline{\tt htlatex filename "html,next,3" "symbol/!" + "-dc:\string\my\string\dir"} + + +Scripts obtained in such a manner can embed parameters within their +bodies instead of expecting the parameters to be provided in command lines. + +Details regarding the available options can be found by compiling under \LaTeX{} +a file of the following form. + +\centerline{\tt\string\input\space mkht.4ht \string\end\string{document\string}} + + +The compilation requires the {\tt ProTex.sty} and {\tt AlProTex.sty} +files available at \Link[http://www.cse.ohio-state.edu/\string +~gurari/systems.html.]{}{}{\tt http://www.cse.ohio-state.edu/\string +~gurari/systems.html}\EndLink. + + + + + + + + +%%%%%%%%%%%%%%%%%%%% +\DocChapter{An Insight into the Commands} +%%%%%%%%%%%%%%%%%%%% + + + +Given a \LaTeX{} file + + \Code\xxxx{XXXX}<<< +\documentclass{article} +\begin{document} + .................. +\end{document} +>>> +\ShowCode-\xxxx\ShowPar + +\noindent the `{\tt htlatex {\it filename}}' command produces a call +`{\tt latex {\it filename}}' to \LaTeX{} on an implicit file of the +following form. + + + \Code\xxxx{XXXX}<<< +\documentclass{article} + ?.@\usepackage{tex4ht}@ +\begin{document} + .................. +\end{document} +>>> +\ShowCode-\xxxx\ShowPar + +\noindent Similarly, the command `{\tt htlatex {\it filename} +{\tt"}{\it options}{\tt"}}' produces a call to a `{\tt latex {\it +filename}}' command on an implicit file of the following form. + + + \Code\xxxx{XXXX}<<< +\documentclass{article} + \usepackage[?.@options@]{tex4ht} +\begin{document} + .................. +\end{document} +>>> +\ShowCode-\xxxx\ShowIndent + + +\--ht///% +The command `{\tt ht latex {\it filename} }' may be used, instead of +the `{\tt htlatex {\it filename} {\tt"}{\it options}{\tt"}}' command, +in cases that the \''\usepackage' instruction is explicitly introduced +into the source files. + + +%%%%%%%%%%%%%%%%%%%% +\DocChapter{A Deeper Insight} +%%%%%%%%%%%%%%%%%%%% + +From the perspective of \TeX4ht, the \''htlatex'-like commands, and +the \''\usepackage', are indirect approaches for getting \LaTeX{} +files of the following form. +Such files can be explicitly provided for compilations + requested through the `{\tt ht latex {\it filename}}' command. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Code\xxxx{XXXX}<<< +\documentclass{article} + ..... + \input tex4ht.sty + ..... +\Preamble{?.@options@} + ..... +\begin{document} + ..... +\EndPreamble + .................. +\end{document} +>>> +\ShowCode-\xxxx \ShowPar +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%% +\DocChapter{\TeX, Con\TeX t, and \TeX i} +%%%%%%%%%%%%%%%%%%%% + +\--\TeX///% \--Scripts/\TeX//% \--\TeX i///% \--Scripts/\TeX i//% +\--ht///\--httex///% +\--Scripts/ht//% +Commands similar to those offered for \LaTeX{} are also offered for +\TeX{} (dbmtex, dbtex, ht, httex, mztex, ootex, t4ht, teimtex, teitex, +tex4ht, xhmtex, xhtex) and \TeX i (dbmtexi, dbtexi, httexi, mztexi, +ootexi, teimtexi, teitexi, xhmtexi, xhtexi). In the case of \TeX{}, +the fragment of code \`'\csname tex4ht\endcsname' should be introduced by the user +into the source file, after the preamble of the file where the +document definitions reside + (\HPage{example} +\rightline{\ExitHPage{}} +\SubSection{An Example for Using httex} +A system invocation of the form \`'httex foo +"xhtml,html4.4ht,unicode.4ht,mathml.4ht" "unicode/!"' for a file +\''foo.tex' of the following form. + +\Verbatim +\input amstex +\documentstyle{amsppt} \csname tex4ht\endcsname +\document +..... +\enddocument +\EndVerbatim\EndHPage{}). + In the case of \TeX i, such a code +fragment is introduced implicitly. + + +The private configuration files are similar to those of \LaTeX{}, with +the instruction `{\tt \string\begin\string{document\string}}' +excluded. + +\Template +...\cr +{\string\Preamble\string{{\sl options}\string}}\cr +...\cr +{\string\begin\string{document\string}}\cr +...\cr +{\string\EndPreamble}\cr +... +\EndTemplate + + +The `{\tt ht tex {\it filename} }' and `{\tt ht texi {\it filename} }' +commands may apply for \TeX{} and \TeX i{} sources that embed such +code fragments in their body. The embeded code should replace the +\`'\csname tex4ht\endcsname' fragment in \TeX{} sources, be palces +at the strat of the files in \TeX i sources, and not include +the \Verb+\begin{document}+ instruction. + + + +\--ConTeXt///% +\--htcontext///% +For \Link[http://www.pragma-ade.com/]{}{}Con\TeX t\EndLink{} similar +instructions apply with suffixes `{\tt context}' instead of +`{\tt latex}', `{\tt tex}', or `{\tt texi}'. For instance, `{\tt htcontext'} . + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Other Options} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\List{*} +\item +\--XwTeX///% +XeTeX files can be compiled with htlatex-like instructions +(e.g., htxelatex, htxetex, mzxelatex). Currently only partial support is provided +and only TeX-based fonts are handled. +\item +\--JsMath///% +A \Link[http://www.math.union.edu/\string + ~dpvc/jsMath/welcome.html]{}{}jsMath\EndLink{} mode of output may be requested with instructions similar to the following one. + + \centerline{\tt htlatex file "xhtml,jsmath" " -cmozhtf"} + +\item +\--Bitmaps and graphics/png//% +The dvipng utility might be activated for bitmap constructions +through a request `-cdvipng' in the third options list. For instance, + + \centerline{\tt htlatex file "" "" "-cdvipng"} + +This utility is reported to produce fast high quality output with much +smaller files than other convertors. + +\item +\--Speech///% +TeX4ht offers also +\Link[http://www.cse.ohio-state.edu/\string~gurari/laspeak]{}{}speech\EndLink{} output formats. + +\EndList + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Validation} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--Validation///% +The outcome of the translations should be checked by validators for +proper syntax. Typically, with the presence of validators, errors are +easy to detect and correct, but they require human intervention. + +\TeX4ht doesn't offer a built-in parser to verify the correctness of +the outcome. However, external validator(s) can quite easily be +integrated into the compilation process. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Recommendations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +To keep with the spirit of \LaTeX{} and hypertext, in which style is +assumed to be separated from content, the users are encouraged to +avoid inserting \TeX4ht code into their source files. Instead, they +should place their modifications, to the default settings, within +private configuration files to be loaded by htlatex-like +commands. + +On the other hand, it should be noted that hypertext markings should +adhere to strict rules specified by different standards. Consequently, +it is strongly advised to check the output obtained from the default +configurations, before trying to tailor new ones. + + + + +\EndHPage{hts} section. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{References} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +The main features of \TeX4ht are described in: +\List{*} +\item +% \Picture{http://www.awl.com/coverimage/0201433117.jpg align="right"} + M.~Goossens and + S.~Rahtz with E.~Gurari, R.~Moore, and R.~Sutor, + {\sl The \LaTeX{} Web Companion}, Addison-Wesley, 1999. +% +% doa +% \item +% Fabrice Popineau, +% \Link[http://www.gutenberg.eu.org/pub/GUTenberg/publicationsPDF/37-popineau.pdf]{}{}{\sl Affichez vos documents \LaTeX{} sur le Web avec \TeX4ht}\EndLink, +% Cahiers GUTenberg 37--38, December 2000, 5--43 (French, PDF). +% +\item +Gustavo Cevolani, +\Link[http://www.guit.sssup.it/guitmeeting/2005/articoli/cevolani.pdf]{}{}{\sl +Introduzione a \TeX4ht}\EndLink, +Proceedings of the 2004 Italian TUG meeting. +% +\item +\HPage{Within} + +\rightline{\ExitHPage{up}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocPart{Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \TableOfContents[DocChapter] +\DocChapter{Background} + + +TeX4ht handles correctly only macros whose logical meanings are +directly or indirectly declared in TeX4ht configurations. +For instance, without extra configurations, TeX4ht will provide +correct translation for + +\Verbatim + \divide{a}{b} +\EndVerbatim + + +under a user's definition of the form + +\Verbatim + \def\divide#1#2{{#1\over #2}} +\EndVerbatim + +but not under a definition of the form + +\Verbatim + \def\divide#1#2{\vbox{\hbox{$#1$}\hrule\hbox{$#2$}}} +\EndVerbatim + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Recommendations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--PostScript///% +\--PDF///% +It is highly recommended to leave source \LaTeX{} and \TeX{} files +intact, and not introduce \TeX4ht configurations there. The +configurations should be introduced indirectly in private +\Link{prvCfgFiles}{}configuration files\EndLink. Source files +containing just native \LaTeX{} and \TeX{} code permit their +compilation to different output formats, including PostScript and PDF, +by \TeX4ht and other tools. + + + Packages used by the general \LaTeX{} community typically provide + better support than one can expect from tailoring private commands + and configurations for such commands. It is also expected to take + less effort to learn the features of existing packages than designing + new ones. Consequently, one is advised to investigate available + resources before committing to work on private features. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Low-Level Features} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The following are some of the more useful +underlying commands of \TeX4ht. + +\List{button} +\Item {{\tt \--HCode//{{\tt\char 92}}/\string\HCode\string{...\string}}}% +\ContItem + +%%\relax\relax\--#\relax///% +\relax\relax\--!//{\string\tt\char\space 35 }\string\csname\space :gobble\string\endcsname/% +This command allows only for the expansion of macros, before +sending its content to the output. The instruction \''\Hnewline' +may be introduced there for requesting line breaks, and the command \Verb'\#' +may be used for the sharp symbol \`'#'. + + \Code\xxxx{XXXX}<<< +Two lines of text \HCode{
} +separated by a horizontal line. + +You probably don't want a `
'. +>>> +\ShowCode-\xxxx\ShowIndent + +\Item {{\tt \--HPage//{{\tt\char 92}}/ \string\HPage\string{{\sl anchor}\string}{\sl content}\string + \EndHPage\string{\string}}}% +\ContItem + +This command dedicates a hypertext page for the specified content, +to be accessed through the given button. + +\--ExitHPage//{{\tt\char 92}}/The \''\ExitHPage{...}' command may be employed within the content +to create exit buttons. + +\Code\xxxx{XXXX}<<< +...... ............ +\HPage{in} + ................ + [\ExitHPage{out}] + ................ +\EndHPage{} +................... +>>> \ShowCode-\xxxx\ShowIndent + + + +\Item {\tt \--Link//{{\tt\char 92}}/\string\Link[{\it target-file + arguments}]\string{{\it target-loc}\string}\string{{\it + cur-loc}\string}{\it anchor}\string\EndLink}% +\ContItem + + +This command requests an anchor that links to `{\it +target-file}\''#'{\it target-loc}', and marks the current +location with the name `{\it cur-loc}'. + + +The component \`'[...]' is optional when it is empty, and the target +file need not be mentioned if it is created from the current source +file. + +\Code\xxxx{XXXX}<<< +\HPage{} + ...................... + \Link[http://www.tug.org/]{}{XX}\TeX{} Users Group + Home Page\EndLink + ...................... +\EndHPage{} +...................... +\Link{XX}{}...\EndLink +>>> \ShowCode-\xxxx\ShowIndent + +%%%% \relax\relax\--\string~//\string\string/% +\relax\relax\--!//{\string\tt\char 126}\string\csname\space :gobble\string\endcsname/% +%%\relax\relax\--\string_//\string\tt\string\string/% +\relax\relax\--!//{\string\tt\char \space 95}\string\csname\space :gobble\string\endcsname/% +%\relax\relax\--!//\string\%\string\csname\space :gobble\string\endcsname/% +\relax\relax\--!//{\string\tt\char \space 37}\string\csname\space :gobble\string\endcsname/% +The characters \`'~', \`'_', and~\`'%' can be indirectly included +through the code~\`'\string ~',~\`'\string _', and~\`'\%', +respectively. + +% \Item +% {{\tt \--ifHTml//{{\tt\char 92}}/\string\ifHtml +% ...tex4ht code... +% \string\else ...non tex4ht code... \string\fi}} +% (or {{\tt \string\ifHtml\string\UnDef +% ...non tex4ht code... \string\else ...tex4ht code... \string\fi}}) +% \ContItem +% +% This command provides the means to conditionally provide content +% to the HTML and non-HTML modes. The \''\else' is optional when +% the false part is empty. +% + +\Item {{\tt \--ifOption//{{\tt\char 92}}/\string\ifOption\string{...\string + }\string{{\it true-part}\string }\string {{\it false-part}\string}}}% +\ContItem +\EndList + +\DocChapter{Sectioning and Tables of Contents} + +\--Sectioning///\--Tables of Contents///\--Options, package/1, 2, 3, +4//\--Options, package/next//\--Options, package/sections+//A +non-leading command line argument \`'1', `{\tt \HPageButton[]{2}}', \`'3', +or \`'4' asks for a tree-structured set of files, +reflecting on the sectioning of the document to the specified depth. +Sequential prev-next links within the hierarchy, instead of the +default hierarchical ones, can be requested with the \`'next' +parameter. The parameter \`'sections+' creates titles for the +sectioning commands that link to the tables of contents. + + +\BeginHPage[]{2} + +\ExitHPage{up} + + \Code\xxxx{XXXX}<<< +\documentclass{book} + \usepackage[html,?..2.]{tex4ht} +\begin{document} +\chapter{...} ...... \section{...} ...... \section{...} ...... +\chapter{...} ...... \section{...} ...... +\end{document} +>>> \ShowCode-\xxxx\ShowIndent + + +\EndHPage{2} + + + +Finer control is possible with the following commands. + +\List{button} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\Item{\tt {\INDEX\string\CutAt\string{{\sl at-unit},{\sl + until-unit-1},{\sl until-unit-2},...\string}}}% +\ContItem + +This directive asks the sectioning commands {\tt\char92{\sl at-unit}} +to place their units in separate hypertext pages. +The pages are to terminate upon encountering any of the commands +in the list +{\tt\char92{\sl at-unit}}, +{\tt\char92{\sl until-unit-1}}, +{\tt\char92{\sl until-unit-2}},... + + + \Code\xxxx{XXXX}<<< +?..\CutAt{section,chapter}. +\tableofcontents +\chapter{...} ...... \section{...} ...... \section{...} ...... +\chapter{...} ...... \section{...} ...... +>>> \ShowCode-\xxxx\ShowIndent + + +Within the \''\CutAt' instruction, the starred commands of \LaTeX{} +should be referenced with the prefix \`'like' instead of the postfix +of \`'*', and appendices through the entry \`'appendix'. + + +A plus character \`'+', before the leading parameter, requests +buttons that link to the hypertext pages; e.g., \`'\CutAt{+likesection}'. + +The end points of sections not specified within +the \''\CutAt' commands can be made known with instructions +of the form `{\tt \string \Configure\string {{\it endunit}\string}\string +{{\it unit},{\it unit},...\string}}'. + + + +\Item{\tt\INDEX\string\tableofcontents[{\sl unit-1},{\sl unit-2},...]} +\ContItem + +This variant of the \''\tableofcontents' +command specifies the kinds of entries that should be included in the +tables. + + +\Item{\tt\INDEX\string\TocAt\string{{\sl at-unit},{\sl unit-1},{\sl unit-2},...,{\sl +{\tt/}until-unit-1},{\sl {\tt/}until-unit-2},...\string}} +\ContItem + +This directive asks for a local table of contents, at each division +created by the {\tt\char92{\sl at-unit}} command. The tables should +include entries of types {\tt\char92{\sl unit-1}}, {\tt\char92{\sl +unit-2}},..., and terminate upon reaching any of the {\tt\char92{\sl +at-unit}}, {\tt\char92{\sl until-unit-1}}, {\tt\char92{\sl +until-unit-2}},... commands. + +\--Sectioning/like//Within the \''\TocAt' instruction, the starred commands of \LaTeX{} +should be referenced with the prefix \`'like' instead of the postfix +of \`'*', and appendices through the entry \`'appendix'. + + \Code\xxxx{XXXX}<<< +?..\TocAt{section,subsection,/likechapter}. +\CutAt{subsection,section,likechapter} + +\section{...} ... \subsection{...} ... +\section{...} ... \subsection{...} ... \subsection{...} ... +\chapter*{...} +\section*{...} ... +>>> \ShowCode-\xxxx\ShowIndent + + +A postfix \`'*' on \''\CutAt' asks the tables of contents +to appear after the preambles of the logical unit. + + + \Code\xxxx{XXXX}<<< +?..\TocAt*{section,subsection,/likechapter}. +\CutAt{subsection,section,likechapter} + +\section{...} ... \subsection{...} ... +\section{...} ... \subsection{...} ... \subsection{...} ... +\chapter*{...} +\section*{...} ... +>>> \ShowCode-\xxxx\ShowIndent + + +A postfix \`'-' on \''\CutAt' asks to produce the local tables of contents +only on demand, through {\tt Cut{\it section-type}} commands. + +The only \''\ConfigureToc' commands +that count are those before +the \''\TocAt' instruction. + +\Item +{\tt +\INDEX\string\ConfigureToc + \string{{\sl unit}\string} + \string{{\sl before-mark}\string} + \string{{\sl before-title}\string} + \string{{\sl before-page-number}\string} + \string{{\sl at-end}\string} +}% +\ContItem + +This command determines how entries of the specified unit will appear +in the tables of contents. The entries include only fields +corresponding to nonempty fields in the \''\ConfigureToc' +commands. + + \Code\xxxx{XXXX}<<< +\ConfigureToc{section} {} {$\bullet$~} {} {~~ } +\tableofcontents[section] +>>> \ShowCode-\xxxx\ShowIndent + + + + + +\Item +{\tt +\--Configure/tableofcontents/{{\tt\char92}}/% +\string\Configure + \string{tableofcontents\string} + \string{{\sl before-toc}\string} + \string{{\sl end-of-toc}\string} + \string{{\sl after-toc}\string} + \string{{\sl before-nonindented-par}\string} + \string{{\sl before-indented-par}\string} +}% +\ContItem + +The {\sl end-of-toc} is inserted at the end of the internal +environment of the tables. The {\sl after-toc} is included after +leaving the internal environment. + + + + +\Item +{\tt +\--Configure/TocAt/{{\tt\char92}}/% + \string\Configure + \string{TocAt\string} + \string{{\sl before-toc}\string} + \string{{\sl after-toc}\string} +}% +\ContItem + + +\Item +{\tt +\--Configure/TocAt*/{{\tt\char92}}/% + \string\Configure + \string{TocAt*\string} + \string{{\sl before-toc}\string} + \string{{\sl after-toc}\string} +}% +\ContItem + + + + +\Item +{\tt +\--Configure/Sectioning units/{{\tt\char92}}/% + \string\Configure + \string{{\sl unit}\string} + \string{{\sl top}\string} + \string{{\sl bottom}\string} + \string{{\sl before-title}\string} + \string{{\sl after-title}\string} +}% +\ContItem + +This command determines the content to be inserted at the mentioned +locations of the specified units. + + \Code\xxxx{XXXX}<<< +?..\Configure{.chapter?..}. + ?..{.\HCode{
}?..}. ?..{.\HCode{
}?..}. + ?..{.\HCode{

}\chaptername + ~\thechapter\HCode{
}?..}. + ?..{.\HCode{

}?..}. +\chapter{...} .... +\chapter{...} .... +>>> \ShowCode-\xxxx\ShowIndent + + +\Item +{\tt +\--Configure/CutAt/{{\tt\char92}}/% + \string\Configure + \string{CutAt\string} + \string{{\sl unit}\string} + \string{{\sl before-button}\string} + \string{{\sl after-button}\string} +}% +\ContItem + + +\Item +{\tt +\--Configure/+CutAt/{{\tt\char92}}/% + \string\Configure + \string{+CutAt\string} + \string{{\sl unit}\string} + \string{{\sl before-button}\string} + \string{{\sl after-button}\string} +}% +\ContItem + +\Item +{\tt \INDEX\string\NewSection + {\char92}{\sl unit} + \string{{\sl mark-for-toc}\string} +}% +\ContItem + +This directive introduces a sectioning command {\tt\char 92{\sl unit}}, +which submits {\sl mark-for-toc} to the tables of contents. + + + \Code\xxxx{XXXX}<<< +\newcounter{c} +\NewSection\X {\thec} +\Configure{X} + {\addtocounter{c}{1}\HCode{

}[\thec] } + {\HCode{

}} + {}{} +>>> \ShowCode-\xxxx\ShowIndent + + + + + +\Item{\tt +\--Configure/writetoc/{{\tt\char92}}/% +\string\Configure\string{writetoc\string} + \string{{\sl definitions-for-the-writing-environment}\string}} +\ContItem + + + + +\TeX4ht expands and then writes the sectioning titles into an +auxiliary file, and it might encounter there problems from macros that +are not fit for such conditions or for inclusion in the table of +contents. The current configuration instruction allows to locally +modify the behavior of macros for the writing phase. + +For instance, the instruction \`'\section{Foo \\ bar}' +suggests a configuration similar to +\`'\Configure{writetoc}{\let\\\space}'. + +% (or just a \''\protect' on \''\flushright'). + + + + + + + + + +\Item{\tt +\--Configure/crosslinks/{{\tt\char92}}/% +\string\Configure\string{crosslinks\string} + \string{{\sl left-delimiter}\string} + \string{{\sl right-delimiter}\string} + \string{{\sl next}\string} + \string{{\sl prev}\string} + \string{{\sl prev-tail}\string} + \string{{\sl front}\string} + \string{{\sl tail}\string} + \string{{\sl up}\string}}% +\ContItem + +This command configures the appearance of the cross-links +between hypertext pages obtained for sectioning commands. + + + \Code\xxxx{XXXX}<<< +\Configure{crosslinks} + {}{}{$\scriptstyle\Rightarrow$} + {$\scriptstyle\Leftarrow$} + {}{}{}{$\scriptstyle\Uparrow$} +>>> \ShowCode-\xxxx\ShowIndent + + + + +\Item{\tt +\--Configure/crosslinks+/{{\tt\char92}}/% +\string\Configure\string{crosslinks+\string} + \string{{\sl before-top-links}\string} + \string{{\sl after-top-links}\string} + \string{{\sl before-bottom-links}\string} + \string{{\sl after-bottob-links}\string}}% +\ContItem + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\EndList + + +\DocChapter{Tables} + +\--Tables///% +\--Tables/number of compilations//% +Tables with \''\multicolum' entries need a few \LaTeX{} +compilations to stabilize. + + + + +\List{button} +\Item + {\tt +\--Configure/tabular/{{\tt\char92}}/% +\--Configure/array/{{\tt\char92}}/% +\--Configure/eqnarray/{{\tt\char92}}/% +\string\Configure\string{{\it table}\string} + \string{{\it before-tbl}\string} + \string{{\it after-tbl}\string} + \string{{\it before-row}\string} + \string{{\it after-row}\string} + \string{{\it before-entry}\string} + \string{{\it after-entry}\string}}% +\ContItem + +\--HRow//{{\tt\char92}}/% +\--HCol//{{\tt\char92}}/% +The parameter {\it table} stands for \`'tabular', \`'array', +or \`'eqnarray'. +The macros \''\HRow' and \''\HCol' provide +the row and column indexes, respectively. The macro \''\HMultispan' +records the number of columns. + + + +\EXAMPLE +\Same + +
(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
+\EndSame + +\Css{.try{ border:solid 4px; }} + +\ContEXAMPLE +\Verbatim +\Configure{tabular} + {\HCode{}} + {\HCode{
}} + {\HCode{}} + {\HCode{}} + {\HCode{ + \ifnum \HMultispan>1 + colspan="\HMultispan"\fi}(\HRow,\HCol)} + {\HCode{}} +\Css{.try{ border:solid 4px; }} + +\begin{tabular}{lll} + &&\\ && +\end{tabular} +\EndVerbatim +\EndEXAMPLE + + + +\EndList + + + + + + +\DocChapter{Lists and Environments} + +\--Environments///% +\--Lists///% +The appearances of lists and {\tt\string\begin}-{\tt\string\end} + environments are configured with the following commands. + + +\List{button} +\Item + {\tt\INDEX\string\ConfigureList + \string{{\sl list-name}\string} + \string{{\sl before-list}\string} + \string{{\sl after-list}\string} + \string{{\sl before-label}\string} + \string{{\sl after-label}\string}}% +\ContItem + +\--ConfigureList/list/{{\tt\char92}}/% +\--ConfigureList/trivlist/{{\tt\char92}}/% +Environments that directly or indirectly are built on top of the +\`'\begin{list}...\end{list}' and +\`'\begin{trivlist}...\end{trivlist}' environments, inherit the +appearances of these base environments. The +\''\ConfigureList' command may be used to change the default +configuration. + + + \Code\xxxx{XXXX}<<< +\ConfigureList {description} + {} + {\HCode{
}} + {\HCode{
}} + {\HCode{}} +>>> \ShowCode-\xxxx\ShowIndent + +\--ConfigureList/description/{{\tt\char92}}/% +\--ConfigureList/itemize/{{\tt\char92}}/% +\--ConfigureList/enumerate/{{\tt\char92}}/% +The \`'description', \`'itemize', and \`'enumerate' environments +are the more obvious extensions of the \`'list' and \`'trivlist' +environments. + +\--ConfigureList/verse/{{\tt\char92}}/% +\--ConfigureList/quotation/{{\tt\char92}}/% +\--ConfigureList/quote/{{\tt\char92}}/% +\--ConfigureList/flushleft/{{\tt\char92}}/% +\--ConfigureList/flushright/{{\tt\char92}}/% + The \`'verse', \`'quotation', \`'quote', \`'center', + \`'flushleft', and \`'flushright' are examples of non obvious + extensions. The latter extensions are made up in \LaTeX{} from a + single-item lists, to get the appearance of displayed paragraphs. + + + +\Item +{\tt \INDEX\string \ConfigureEnv + \string{{\sl environment-name}\string} + \string{{\sl before-environment}\string} + \string{{\sl after-environment}\string} + \string{{\sl before-list}\string} + \string{{\sl after-list}\string}} +\ContItem + +If either {\it before-environment} or {\it +after-environment} is not empty, then these parameters +specify insertions that should be placed before and after the +specified environment. + + + \Code\xxxx{XXXX}<<< +\ConfigureEnv {tabular} + {\HCode{
}} {\HCode{
}} + {} {} +>>> \ShowCode-\xxxx\ShowIndent + + + +If the parameter {\sl before-list} or the parameter {\sl +after-list} is not empty, a call is made to + {{\tt\char92}\bf ConfigureList \tt + \string{{\sl list-name}\string} + \string{{\sl before-list}\string} + \string{{\sl before-label}\string} + \string{\string} + \string{\string} +} for configuring the base-list of the environment. + + + \Code\xxxx{XXXX}<<< +\ConfigureEnv {flushright} + {\HCode{
}} + {\HCode{
}} + {\HCode{

}} {\HCode{

}} +>>> \ShowCode-\xxxx\ShowIndent + + +\EndList + + + + +\DocChapter{Pictures} + + +\--Pictures///The next command imports external pictures, and the two +commands that follow request pictorial representations for local +content. The attributes, and the replacement parameters with their +enclosing rectangular brackets, are optional. + +\List{button} + +\Item{\tt \INDEX\string\Picture[{\sl +replacement-for-textual-browser}]\string{{\sl file-name +attributes}\string}}% \ContItem + +This command references the specified pictorial file. The +component `{\tt [{\sl replacement-for-textual-browsers}]}' +is optional. + +\EXAMPLE +\Picture[**OSU logo**]{% + http://www.cse.ohio-state.edu/images/OSU.gif} +\ContEXAMPLE +\''\Picture[**OSU logo**]{http://www.cse.ohio-state.edu/images/OSU.gif}' +\EndEXAMPLE + + +\Item{\tt\string\Picture+[{\sl replacement-for-text-browsers}]\string{{\sl + file-name attributes}\string}{\sl content}\string\EndPicture} % +\ContItem + +This command produces a picture for the provided content, stores the +outcome within a file of the specified name, and creates a reference +to the picture within the document. + + +\Code\xxxx{XXXX}<<< +\Picture+{ align="right"}% + Text within a picture. +\EndPicture +>>> \OutputCode[log]\xxxx + +\EXAMPLE +\input xxxx.log +\ContEXAMPLE + \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + +The component `{\tt [{\sl replacement-for-textual-browser}]}' +and the file name can be omitted. If no name is provided for the +file, the system assigns a name of its own. + + +\Item{\tt\string\Picture*[{\sl replacement-for-text-browsers}]\string{{\sl + file-name attributes}\string}{\sl content}\string\EndPicture} % +\ContItem + +This is a variant of the previous command, that produces a picture +of the content within a vertical box. + + +\EndList + + +\DocChapter{Mathematical Formulas} + + +%%\relax\relax\--(//{{\tt\char92}}/% +\relax\relax\--!//{\string\tt\relax\char \space 92 (}\string\csname\space :gobble\string\endcsname/% +\--Math environments///% +%\relax\relax\--[//{{\tt \char92}}/% +\relax\relax\--(//{\string\tt\relax\char \space 92 [}\string\csname\space :gobble\string\endcsname/% +%%\relax\relax\--\string$\relax///% +\relax\relax\--!//{\string\tt\char\space 36 }\string\csname\space :gobble\string\endcsname/% +%%\relax\relax\--\string$\string\string\string$///% +\relax\relax\--!//{\string\tt\char\space 36\char\space 36}\string\csname\space :gobble\string\endcsname/% +In the default setting, the math +environments \`'\(...\)', and the display math environments +\`'\[...\]' +and \`'$$...$$', request pictorial representations for their content. On +the other hand, the math environments \`'$...$' ask for no special treatment. Simple +features like mathematical symbols, subscripts, and superscripts, are +translated into html, and more complex entities like roots and +fractions are translated into pictures (\HPage{example} + +\EXAMPLE + $a^x + \frac{b}{c+d}$ and + \(a^x + \frac{b}{c+d}\) +\ContEXAMPLE + \''$a^x + \frac{b}{c+d}$ and \(a^x + \frac{b}{c+d}\)' +\EndEXAMPLE + +\ExitHPage{up} +\EndHPage{}). + +\List{button} + +\Item {\tt +\--Configure/[]/{{\tt\char92}}/% +\--Configure/()/{{\tt\char92}}/% +\--Configure/{{\tt\char36\char36}}/{{\tt\char92}}/% +\--Configure/{{\tt\char36\space}}/{{\tt\char92}}/% + \string\Configure + \string{[]\string} + \string{{\it before}\string$\string${\it at-start}\string} + \string{{\it at-end}\string$\string${\it after}\string}% +}, + {\tt \string\Configure + \string{()\string}% + \string{{\it before}\string${\it at-start}\string}% + \string{{\it at-end}\string${\it after}\string}%% +}\BR {\tt \string\Configure + \string{\string$\string$\string}% + \string{{\it before}\string}% + \string{{\it after}\string}% + \string{{\it at-start}\string}% +}\BR {\tt \string\Configure + \string{\string$\string}% + \string{{\it before}\string}% + \string{{\it after}\string}% + \string{{\it at-start}\string}% +} +\ContItem + + + +\Code\xxxx{XXXX}<<< +\Configure{[]}{An equation: $$}{$$} +\[a^b\] +>>> + \OutputCode[log]\xxxx + +\EXAMPLE + \input xxxx.log +\ContEXAMPLE + \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + +\--PicDisplay//{{\tt\char92}}/% +\--PicMath//{{\tt\char92}}/% +The default configuration is obtained from\BR +\`'\Configure{[]}{\PicDisplay$$}{$$\EndPicDisplay}',\BR +\`'\Configure{$$}{\PicDisplay}{\EndPicDisplay}{}', \BR +\`'\Configure{()}{\PicMath$}{$\EndPicMath}', and\BR +\`'\Configure{$}{}{}{}'. + + + +\Item {\tt +\--Configure/SUB/{{\tt\char92}}/% +\--Configure/SUP/{{\tt\char92}}/% +\--Configure/SUBSUP/{{\tt\char92}}/% + \string\Configure + \string{SUB\string}% + \string{{\it before}\string}% + \string{{\it after}\string}% +}\BR {\tt \string\Configure + \string{SUP\string}% + \string{{\it before}\string}% + \string{{\it after}\string}% +}\BR {\tt \string\Configure + \string{SUBSUP\string}% + \string{{\it before}\string}% + \string{{\it between}\string}% + \string{{\it after}\string}% +} +\ContItem + +These commands configure subscripts appearing in isolation, +superscripts given in isolation, and subscripts provided together with +superscripts. If the last configuration command gets empty +parameters, the corresponding cases use the settings that apply to +isolated subscripts and superscripts. + +The default setting results from\BR +\`'\Configure{SUB}{\HCode{}}{\HCode{}}', \BR +\`'\Configure{SUP}{\HCode{}}{\HCode{}}', and\BR +\`'\Configure{SUBSUP}{}{}'. + + + +\Item{\tt +%%\relax\relax\--\string_//\string\tt/% +\relax\relax\--!//{\string\tt\char \space 95}\string\csname\space :gobble\string\endcsname/% +%%\relax\relax\--\string^///% +\relax\relax\--!//{\string\tt\char \space 94}\string\csname\space :gobble\string\endcsname/% +\--Options, package/no\string\tt\space\string\string\string_//% +\--Options, package/no\string\tt\space\string\string\string^//% + no\string_}, {\tt no\string^}\ContItem + +\TeX4ht modifies the implementation of \`'_' and \`'^', to create +hypertext subscripts and superscripts in non pictorial formulas---a +modification that occasionally might clash with other interpretations +in the source documents. The current package parameters ask \TeX4ht +not to modify the implementation of these commands, respectively. + +\EndList + + + + + +\DocChapter{Paragraphs} + +\--Paragraphs///The insertions of code at paragraph breaks are controlled by the +following commands. + +\List{button} +\Item {\tt +\--Configure/HtmlPar/{{\tt\char92}}/% +\--Par//{{\tt \char92}}/% + \string\Configure + \string{HtmlPar\string} + \string{{\sl noindent-P}\string} + \string{{\sl indent-P}\string} + \string{{\sl from-noindent-P}\string} + \string{{\sl from-indent-P}\string}} +\BR +{\tt \string\EndP} +\ContItem + +The first two parameters of this command determine the kind of code to +be inserted at the start of, respectively, nonindented and indented +paragraphs. + +\EXAMPLE +\ShowPar +\everypar{\HtmlPar} +\Configure{HtmlPar} + {} {* } {} {} +\par 1\par 2\par + 3\par 4\par 5 +\ContEXAMPLE + \Code\xxxx{XXXX}<<< +\Configure{HtmlPar} + {} {* } {} {} +\par 1\par 2\par + 3\par 4\par 5 +>>> \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + +The last two parameters specify the code to be stored in +\''\EndP', when the first two parameters are introduced, respectively, +into the output. + +\EXAMPLE +\ShowPar +\everypar{\HtmlPar} +\Configure{HtmlPar} + {[ } {\EndP [ } + { ]} { ]} + +\par 1\par 2\par + 3\par 4\par 5 + +\Configure{HtmlPar} + {}{\EndP} {}{} + +\par\leavevmode +\ContEXAMPLE + \Code\xxxx{XXXX}<<< +\Configure{HtmlPar} + {[ } {\EndP [ } { ]} { ]} +\par 1\par 2\par 3\par 4\par 5 +\Configure{HtmlPar} + {}{\EndP} {}{} +\par\leavevmode +>>> \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + +The default setting assumes a configuration of the form +\`'\Configure{HtmlPar}{\HCode{

}} + {\HCode{

}} {}{}' (and it is +implemented through an \`'\everypar{\HtmlPar}' command). + +\Item {\tt +\--IgnorePar//{{\tt \char92}}/ + \string\IgnorePar}\ContItem + +This command asks that no code will be inserted at the +beginning of the next paragraph. + +\Item {\tt +\--ShowPar//{{\tt \char92}}/ + \string\ShowPar}\ContItem + +This command asks that code will be inserted at the +beginning of the next paragraph. + +\Item {\tt +\--IgnoreIndent//{{\tt \char92}}/ +\string\IgnoreIndent}\ContItem + +This command asks to treat the next paragraph as nonindented. + + +\Item {\tt + \--Indent//{{\tt \char92}}/ + \string\ShowIndent}\ContItem + +This command asks to treat the following paragraphs as indented. + +\EndList + + + + + + + + + + +\DocChapter{Cascade Style Sheets (CSS)} + + +\--Cascade Style Sheets (CSS)///% +Cascade style sheets attach +presentations to the content of hypertext pages, in a manner similar +to the way that \`'.sty' files define the presentations to the content +of source \LaTeX{} files. \TeX4ht produces a CSS file for each +document that is translated to HTML transitional 4.0 code. The +following are related commands. + +\List{button} +\Item +{\tt +\string\Css\string{{\sl content}\string}% +}% +\ContItem + +This command sends its content to the CSS file of the document. + +\Item +{\tt +\INDEX +\string\Css\space{\sl content}\string\EndCss +}% +\ContItem + +This command introduces the specified content, at the location of the +command as an inline CSS code fragment. The content should not start +with the left brace character \`'{'. + + + +\Item +{\tt +\INDEX\string\CssFile[{\sl list-of-css-files}]{\sl content}\string\EndCssFile +}% +\ContItem + +The default CSS file \TeX4ht produces is initially a file consisting +just of a single line of the form \`'/* css.sty */'. That line is later +replaced with the code submitted by the \`'\Css{...}' commands. + +The current command allows to specify an alternative to the initial +CSS file. The alternative file consists of the code loaded +from listed files, and of the content explicitly specified in its body. + + + +\Verbatim + \ConfigureList{mylist} + {\HCode{

}} {\HCode{
}} {* }{} + +\begin{document} + + \HCode{} + \CssFile + /* css.sty */ + .mylist { color : red; } + \EndCssFile +\EndVerbatim + + + + +The names in the list of files should be separated by commas, and the +rectangular brackets are optional when the list is empty. + +The file should include a line having the content of \`'/* css.sty */'. +If more than one such line is included, the content of the +\`'\Css{...}' commands replace the first occurrence of this line. +Arbitrary many space characters may appear around the substrings +\`'/*' and \`'*/'. + + +\EndList + + + + + + + + + +\DocChapter{Fonts} + +\--Fonts/htf//% +\TeX4ht has an elaborated machinery +for handling fonts, through special virtual hypertext fonts stored in +\`'.htf' files. Instead of providing a design for each symbol, as is +the case in standard fonts, the virtual fonts provide a content for +each symbol. The following commands offer some control, from within +the source \LaTeX{} documents, over the content provided to the +symbols. + +\List{button} + +\Item{\tt +\INDEX\string\NoFonts}\ContItem +This command asks that information provided in the font files will be +used for the symbols, but not the information requested for the fonts +in the source \LaTeX{} file through the \`'\Configure{htf}' +command. + + +\Item{\tt \INDEX\string\EndNoFonts}\ContItem + +This command asks to end the effect of the most recently encountered +\''\NoFonts' command that is still active. + +\Code\xxxx{XXXX}<<< +{\it italic \NoFonts\NoFonts +not italic \EndNoFonts +not italic \EndNoFonts +italic}. +>>> \OutputCode[log]\xxxx + +\EXAMPLE + \input xxxx.log +\ContEXAMPLE + \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + +\Item{\tt +\--Configure/htf\string\empty/{{\tt\char92}}/% +\string\Configure +\string{htf\string} +\string{{\sl class}\string} +\string{{\sl delimiter}\string} +\string{{\sl template-1}\string} +\string{{\sl template-2}\string} +\string{{\sl template-3}\string} +\string{{\sl template-4}\string} +\string{{\sl template-5}\string} +\string{{\sl template-6}\string} +\string{{\sl template-7}\string}% +}\ContItem + + +Each character is provided two entries in its virtual font file: a +string and an integer number. +The integer number is considered to be the class of the character. An +even number requests that the character will be represented by the +string. An odd number requests that the character will be represented +by a picture, with the string acting as an alternative representation. + +The current \''\Configure' command provides a template for +introducing, into the hypertext document, the representations of the +symbols of the specified class. The template is consisted of the +seven specified components, where the delimiter must be a character +that does not appear in these components. + +In even classes, the template is used for outputing a tuple, +consisting of the following information, for the given symbol: the +font name, the font size, the font magnification when it differs from +100\%, and the corresponding string field from the virtual font. + +The first component is printed unconditionally at the beginning. +The font name is printed only if the second component of the template +is not empty and, when it is not +empty, the second component should be a template for printing a string +in a C program. Similarly, the font size is printed only if the third +component of the template is not empty, and in such a case the +component should be a template for printing a string in a C program. +On the other hand, the font magnification is printed only if the +fourth component of the template is not empty, and in such a case the +component should be a template for printing an integer in a C program. +The rest of the components of the template are added literally into +the output, where either the fifth or the sixth component must be +empty. The string field from the virtual font is introduced just +before the last component. + + +\Code\xxxx{XXXX}<<< +{\it +\Configure{htf} + {0}{+}{} + {} +text% +\Configure{htf} + {0}{+}{}{} +text} +>>> \OutputCode[log]\xxxx + +\EXAMPLE + \input xxxx.log +\BR +\BR +\Verbatim +text +text +\EndVerbatim +\ContEXAMPLE + \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + + + +The \''\Configure' defines for a symbol of an even class, a prefix and +a postfix to be inserted around the string assigned to the symbol in +its virtual font file. The \''\Configure' for +characters of class 0 has the extra property +that it provides extra prefixes and postfixes also for all the +pictorial representations of symbols. + + +A \''\Configure' command for an odd class defines a template to output +a tuple, consisting of the following information: the font name, the +alternative string from the virtual font, the font name, the font +size, the font magnification when it differs from 100\%, and the +character code of the symbol. The output is determined in a manner +similar to that implied for symbols from characters of odd +classes. + + +\Code\xxxx{XXXX}<<< +\Configure{htf} + {1}{+}{}{}{}{}{}
+   {} + +$\alpha$% +\Configure{htf} + {1}{+}{}{}% +$\alpha$ +>>> \OutputCode[log]\xxxx + + +\EXAMPLE + \input xxxx.log +\ContEXAMPLE + \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + + +\Item{\tt +\--Configure/htf\relax-sty/{{\tt\char92}}/% +\string\Configure +\string{htf-sty\string} +\string{{\sl class/font}\string} +\string{{\sl CSS-instructions}\string}% +}\ContItem +This command specifies CSS content for font classes and +virtual hypertext fonts. + +\EndList + + +The \''htf' fonts might request pictorial representations for +symbols. In such cases, the sizes of the pictures depend on +the sizes of the \TeX{} fonts in use. Size changes through +the \''\magnification' command should be made before loading the +\''tex4ht.sty' package. + + +The design of a virtual hypertext font might take some labor, +but it does not +\NextFile{\jobname-htf.html}% +\HPage{require} + +\ExitHPage{up} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocSection{Designing Virtual Hypertext Fonts} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\List{1} +% +\item +\--Fonts/htf//% + If you are creating a new htf font, scan the information + \TeX4ht issues in the \''log' file of the compilation + regarding the missing htf font. For instance, + + {\tt--- warning --- Couldn't find font `ectt1000.htf' (char codes: + 0--255)} +% +\item + Produce a document showing the character maps. Employ + a script similar to the following one, +using a standard compilation, say, for an output in PDF or PostScript. + +% {\tt \string\font\string\x=ectt1000 \string\ShowFont\string\x} + + \Example +\Verbatim + \documentclass{article} + \input showfonts.4ht + \begin{document} + \showfonts + {eccc1000} + {ecss1000} + {ecsx1200} + {ecti1000} + {ectt1000} + {} + \end{document} +\EndVerbatim + +\EndExample +% +\item + Create htf fonts of the form + +\Verbatim + first line: prefix_of_font_name first_index last_index + ............... + ............... + ............... + ............... + last line: prefix_of_font_name first_index last_index +\EndVerbatim + + + where +\List{a} +\item The first and last lines must agree on their content, with + \''first_index' and \''last_index' being equal to the character codes + mentioned in the message + + {\tt--- warning --- Couldn't find font `....' (char + codes: first\string_index--last\string_index)} + +\item The number of intermediate lines should equal + + \''(last_index) - (first_index) + 1'. + + Each of these intermediate lines provides a representation for + a corresponding character code. + + \Example +\Verbatim + ectt 0 255 + '`' '' 0 + '´' '' 1 + 'ˆ' '' 2 + '~' '' 3 + .................. + 'i' '1' 25 dotless i + .................. + '' '' 255 + ectt 0 255 +\EndVerbatim + +\EndExample + +\item Each intermediate line consists of three fields + + \''string class comment' + + The first two fields must be enclosed by a delimiter, + determined by the first character in the line. The + comment may be empty. + +A \`'class' specified by an odd integer value asks for a pictorial +character. An even integer number asks for a non-pictorial +character, specified in the \`'string' field. An empty class field +is treated as a zero value. + +The manner the characters of the different classes are packaged, is +determined by commands of the form \`'\Configure{htf}{class-number}...'. +For instance, + +\Verbatim + \Configure{htf}{0}{+}{}{} + \Configure{htf}{1}{+}{} + \Configure{htf}{4}{+}{}{} + \Configure{htf}{6}{+}{}{} +\EndVerbatim + + + + When no + special requirements are in place, it is advisable to + use just the classes of 0 and 1. + +\item The \`'string' field may include any sequence of characters, + except for its delimiters. The backslash + character \`'\' acts there as an escaped character. It may + act as a delimiter for a character code, or be followed + by another backslash (that is, \`'\\' represents the + character \`'\' ). +\item In the string part, use \`'<' for the character \`'<', + \`'>' for \`'>', and \`'&' for \`'&'; + + + +\EndList +% +\item +\--Cascade Style Sheets (CSS)///% +\--Fonts/htf//%% + If you want specific information for a font, to be included in + the .css file, add to the end of the file an entry consisting of the + font name and the information in discourse. The two fields must be + separated by space. The second field may span over more than one + line; the extra lines must start with space. The lines of the + entries must be prefixed with \`'htfcss: '. + +If more than one entry applies for a +given font, the first one is the only one that counts. +\EndList + + +{\noindent \bf Note.} It is highly recommended to set up fonts just of +Unicode entries, and let \TeX4ht automatically map the symbols to the +appropriate character encodings (using {\tt unicode.4hf} mapping files). + + + + + + + + + + +Instead of explicitly specifying the encodings for the characters, an +htf font can be declared an alias to another htf font by specifying in +the first line the aliased font name prepended by a period. + +\Example{} + +{\bf cmss.htf} + +\Verbatim +.cmti +htfcss: cmss font-family: sans-serif; +htfcss: cmssbx font-weight: bold; +htfcss: cmssi font-style: italic; font-family: sans-serif; +\EndVerbatim +\EndExample + +\ExitHPage{up} +\EndHPage{} + too much sophistication. + + +A font of \TeX{} may have more than one htf font to map +to. The search for a desired version can be regulated +within \Link{alt-htf}{}scripts\EndLink. + +%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Scripts} +%%%%%%%%%%%%%%%%%%%%% + +Scripts produce the content in verbatim format with no decorations. + +%------------------------------------------------------------------- + +\List{button} + +\Item{\tt +\--ScriptEnv//{{\tt\char92}}/% +\string\ScriptEnv +\string{{\sl environment}\string} +\string{{\sl prefix}\string} +\string{{\sl postfix}\string} +}\ContItem + +This command defines a \LaTeX{} environment + +\Template +\char92begin\string{{\sl environment}\string}\BR +{\sl body}\BR +\char92end\string{{\sl environment}\string}% +\EndTemplate + +\IgnoreIndent which outputs its body in plain format, between the specified +prefix and postfix. + +\Item +{\tt \--ScriptCommand//{{\tt\char92}}/% +\string\ScriptCommand +\string{{\char92\sl command}\string} +\string{{\sl prefix}\string} +\string{{\sl postfix}\string} +}\ContItem + +This command defines an environment + +\Template +{\char92\sl command}\BR +{\sl body}\BR +{\char92End\sl command} +\EndTemplate + +\IgnoreIndent which outputs its body in plain format, between the specified +prefix and postfix. + +\Item{\tt +\--JavaScript//{{\tt\char92}}/% +\string\JavaScript...\string\EndJavaScript}\ContItem + +\IgnoreIndent This command is available when {\tt javascript} option is used. + +\EndList + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{Configurable Hooks} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +Much of the look and feel of \TeX4ht is achieved through +hooks that are introduced and configured with the following commands. + + +\List{button} + +\Item {\tt +\--NewConfigure//{{\tt\char92}}/% + \string\NewConfigure\string{{\it name}\string}[{\it + i}]\string{{\it body}\string}} \ContItem + +Hooks are just macro names seeded within the bodies of other macros. + This command introduces a configuration command for a group of + hooks, whose cardinality is given by a digit {\it i} and whose + name is provided by the first parameter. The body determines + the relationship between the hooks and the configurations + provided for them. + +\Item {\tt +\--Configure//{{\tt\char92}}/% + \string\Configure\string{{\it name}\string}\string{{\it parameter-1}\string}...\string{{\it parameter-i}\string}} +\ContItem + + +\Code\xxxx{XXXX}<<< +\NewConfigure{try}[2]{% + \def\hookI{#1}\def\hookII{#2}} +\def\try#1{\hookI#1\hookII} +\Configure{try}{* }{} \try{ho} +\Configure{try}{}{ *} \try{ha} +>>> \OutputCode[log]\xxxx + +\EXAMPLE +\input xxxx.log +\ContEXAMPLE + \ShowCode-\xxxx\ShowIndent +\EndEXAMPLE + + + + + +\EndList + + Block environments \Verb+\begin+\dots\Verb+\end+ may also be + configured through the \Verb+\ConfigureEnv+ command. Lists may + also employ the \Verb+\ConfigureList+ command. + + +For help configuring hooks already seeded in the system, compile the +source files in use with the \`'info' option active and review the +information in log files. +Much of the information in the log files may also be obtained by +running \`'xhlatex mktex4ht.4ht' and reviewing the entries in the outcome +page \`'mktex4ht.html => index => mktex4ht'. + +As an example, the footer is placed on these HTML pages using the +\Verb+@/BODY+ hook, like this (inside +\Verb+\Preamble+\dots\Verb+\EndPreamble+): +\Verbatim +\Configure{@/BODY}{\ifvmode\IgnorePar\fi\EndP\HCode{
}\par + \HCode{Generated \ifcase \month \or + January \or February \or March \or April \or May \or June \or July + \or August \or September \or October \or November \or December \fi + \the\day, \the\year\space - tex4ht home page}} +\EndVerbatim + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocChapter{General Configuration Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\--Files/Configuration//% +\Tag{confFiles}{General Configuration Files}% +\Link{}{confFiles}{}\EndLink% +\--tex4ht.sty///% +A compilation starts by opening \''tex4ht.sty' and loading a +fraction of its code. The main purpose of this phase is to request +the loading of the system at a later time (for instance, upon reaching +\''\begin{document}'). The motivation for the late loading is to +allow \TeX4ht to collect as much information as possible about the +environment requested by the source file, and help the system reshape +that environment with minimal interference from elsewhere. + +\--Files/4ht//% +The system uses two kinds of (4ht) configuration +files. The files of the first kind mainly seed hooks into the macros +loaded by the source file (for instance, \''latex.4ht', +\''fontmath.4ht', and \''article.4ht'). The files of the second kind +mainly attach meaning to the hooks (for instance, \''html4.4ht', +\''unicode.4ht', and \''mathml.4ht'). + +\--tex4ht.4ht///% +Different source files may request the loading of different style +files and in different orders. The hook seeding files are loaded in +response to the loading of the style files, and in a compatible order. +Since the different style files may redefine the syntax and semantics +of macros, \TeX4t follows a similar route of defining and redefining +the hooks and their meanings. + +\--tex4ht.usr///% +The meaning attaching files are normally requested +through option names introduced in the \''tex4ht.4ht' system file. +For instance, the \''mzlatex' command refers to the \''mozilla' option +name of \''tex4ht.4ht', and the \''oolatex' command refers to the +\''ooffice' option name. The user may add option names, and redefine +old ones, within a new file named \''tex4ht.usr'. + + A new \''tex4ht.usr' file should group references to \''*.4ht' + configuration files under arbitrarily chosen option names. For that + purpose, \''\Configure' commands similar to those provided in + \''tex4ht.4ht' should be + employed. + +Variants of the htlatex-like scripts may be +produced in the following manner. + +\List{a} +\item +Adjust the \''latex' (\''tex', \''texi') command of a +given script to use a desired option name, +and rename the new script. +\item +Make sure the \''tex4ht' and \''t4ht' commands receive +appropriate switches in the new script. (These commands show the +available options when invoked without parameters.) +\EndList + +The definition of new meaning assigning configuration files can be +considerable simplified by relying on literate programming +and the file +\''mktex4t.4ht'. +For additional information, compile this file into a hypertext document, +visit the \`'index' page, and from there reach into +the \`'mktex4ht' page. + + +\Example{} +\List{a} +\item Add a configuration file \''myooconfig.4ht' with the following +content. + +\Verbatim + \exit:ifnot{jurabib} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ConfigureHinput{jurabib} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \def\jbNoLink#1#2{} + \Configure{jblink}{\jbNoLink}{} + \Configure{jbanchor}{\jbNoLink}{} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \endinput\empty\empty\empty\empty\empty\empty + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \endinput +\EndVerbatim + + +\item Add to \''tex4ht.usr' the following script. + +\Verbatim + \Configure{myooffice}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \:CheckOption{info}\if:Option + \Hinclude[*]{infomml.4ht}\fi + \Hinclude[*]{ooffice.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{ooffice-mml.4ht}% + \Hinclude[*]{myooconfig.4ht}% + } +\EndVerbatim + +It is the ooffice script from \''tex4ht.4ht', with the added record + \`'\Hinclude[*]{myooconfig.4ht}%'. + +\item Invoke the compilations with a variant of the following form of +the \''oolatex' command. + +\centerline{{\tt htlatex filename "xhtml,myooffice" "ooffice/!~-cmozhtf" "-coo"}} + + + +\EndList + +\EndExample + +\EndHPage{here} +\relax +the current document. +% +\item + \Link[http://michal-h21.github.io/src4ht/tex4ht-info.html]{}{}Basic information about configurations\EndLink +\item + \Link[https://github.com/michal-h21/helpers4ht/wiki/tex4ht-tutorial]{}{}tex4ht tutorial\EndLink +\item +\Link[http://web.archive.org/web/20140909114942/http://www.cse.ohio-state.edu/\string + ~gurari/publications.html]{}{}Conference presentations\EndLink +\item +\Link[https://tug.org/TUGboat/tb25-1/gurari.pdf]{}{}TeX4ht: HTML production\EndLink +\item +\Link[https://tug.org/TUGboat/tb40-1/tb124hoftich-make4ht.pdf]{}{}TeX4ht: LaTeX to Web publishing\EndLink +% +%\item In the .log files of the compilations. +\WAIT +\item +\HPage{Examples} + +\rightline{\ExitHPage{up}} +\EndHPage{} for using the \`'htlatex' and \`'httex' commands. +\ENDWAIT +\EndList + + + +% +% The documents \Link[http://www.cse.ohio-state.edu/\string +% ~gurari/docs/mml-00/mml-00.html]{}{}From \LaTeX{} to MathML and Back +% with \TeX4ht and Passive\TeX\EndLink, +% \Link[http://www.cse.ohio-state.edu/\string +% ~gurari/tug99/]{}{}\LaTeX{} to XML/MathML\EndLink{}, +% \Link[http://www.cse.ohio-state.edu/\string +% ~gurari/tug97/tug97-h.html]{}{}A demonstration of TeX4ht\EndLink{}, +% and +% \Link[http://www.cse.ohio-state.edu/\string +% ~gurari/docs/tug-03/tug-03.html]{}{}From LaTeX to MathML and Beyond\EndLink{} +% may +% provide additional insight into the system (and some outdated +% details). + + + + +%%%%%%%%%%%%%%%%%%%%%% +\DocPart{Installation} +%%%%%%%%%%%%%%%%%%%%%% + + +\Intro + +\TeX4h is included in \TeX\ distributions, notably TeX Live and MikTeX. You don't +have to install it manually. The following information is outdated and it is kept here +mainly for the historical reasons. + +\EndIntro + +To be installed, the system needs a port made up of native utilities +of \TeX4ht and of non-native utilities. The easiest way to establish +an up to date port is to download an installed distribution +% \HPage{} +% \List{*} +% \item Linux +% %%%%% +% \List{*} +% \item\Link[http://packages.debian.org/unstable/tex/tex4ht]{}{}Debian Linux\EndLink{} +% % \item +% % For RedHut Linux at \Link[http://hunch.net]{}{}Hunch\EndLink: +% % \Link[http://hunch.net/tex4ht/tex4ht-1.0-1.src.rpm]{}{}source code\EndLink, +% % \Link[http://hunch.net/tex4ht/tex4ht-1.0-1.i386.rpm]{}{}i386 linux binary\EndLink +% % +% % From: John Langford +% % To: Eitan Gurari +% % Subject: Re: tex4ht +% % Date: Tue, 23 Sep 2003 17:59:14 -0400 +% \item +% For Fedora +% at +% \Link[http://www.sbc.su.se/\string ~esjolund/tex4ht/]{}{}sbc.su.se\EndLink{} +% % From: Erik Sjölund +% % To: Eitan Gurari +% % Cc: jl@tti-c.org, arne@sbc.su.se +% % Subject: tex4ht rpm on our home page +% % Date: 13 Jul 2004 12:08:08 +0200 +% % maintains % http://xml2hostconf.sourceforge.net +% % and at +% %\Link[http://download.fedora.redhat.com/pub/fedora/linux/extras/development/SRPMS/]{}{}Fedora Extras\EndLink{} (invoke with `\Verb+yum install tetex-tex4ht+'; see \Link[http://www.fedoratracker.org/]{}{}http://www.fedoratracker.org/\EndLink) +% % From: Patrice Dumas +% % To: Eitan Gurari +% % Subject: tex4ht in fedora extras +% % Date: Wed, 16 Nov 2005 00:47:04 +0100 +% % +% % Hello, +% % +% % tex4ht (called tetex-tex4ht) has been accepted in fedora extras. The srpm +% % is based on the one you provide on your site with changes by Michael A. +% % Peters and me. +% % +% % The submission is there: +% % +% % https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=172521 +% % +% % If you want to put the srpm on your website, I can give the link to you, and +% % tell you when there are new srpm releases. +% % +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% %There is the main SRPM ftp repository +% % http://download.fedora.redhat.com/pub/fedora/linux/extras/development/SRPMS/ +% % +% % And there is an index there... +% % http://www.fedoratracker.org/ +% % +% % But as it is in fedora extras, a user only has to add the fedora extras +% % repository to the yum config (done by default on fedora core 4) and do +% % +% % yum install tetex-tex4ht +% \item +% \Link[http://packages.gentoo.org/search/?sstring=tex4ht]{}{}Gentoo\EndLink{} +% % > http://packages.gentoo.org/search/?sstring=tex4ht +% % > +% % > The the ``ebuild'' script lists the file +% % > http://www.cse.ohio-state.edu/~gurari/TeX4ht/${P}.zip as the source file, +% % > where P == tex4ht. +% % \item\Link[http://www.novell.com/products/linuxpackages/professional/tex4ht.html]{}{}SuSE\EndLink{} +% % (Linux) %(\Link[http://www.rpm.org/]{}{}RPM\EndLink) +% %%% +% % comp.text.tex #252972 (0 + 14 more) (1)--[1] +% % From: Karl Eichwalder +% % [1] Re: tex4ht -> DocBook XML +% % Date: Fri Jun 14 07:24:43 EDT 2002 +% % Lines: 17 +% % +% % Karl Eichwalder writes: +% % +% % > Using tex4ht I can convert LaTeX files into DocBook XML. Great tool! +% % +% % Forgot to mention: Here you may find a test unofficial upgrade package +% % for SuSE Linux 8.0 (i386): +% % +% % ftp://ftp.suse.com/pub/people/ke/8.0-i386/ +% % +% % 45e049338013222baade6c3eaa9e8272 tex4ht-20020613-0.i386.rpm +% % 13a63ea28bc563eaef5df7c8f2ce779d tex4ht-20020613-0.src.rpm +% % +% % -- +% % Linux frechet 2.4.18-4GB #1 Fri Apr 5 15:14:39 UTC 2002 i686 unknown +% % 1:22pm up 66 days, 22:38, 13 users, load average: 0.25, 0.16, 0.05 +% % work : ke@suse.de +% % Karl Eichwalder home : keichwa@gmx.net +% %%% +% \EndList +% %%%%%% +% \item Mac +% %%%%% +% \List{*} +% \item\Link[http://fink.sourceforge.net/pdb/package.php/tex4ht]{}{}Fink\EndLink{} +% \item \Link[http://www.rna.nl/]{}{}R\&A\EndLink , +% \Link[http://ii2.sourceforge.net/]{}{}i-Installer\EndLink +% \EndList +% %%%%%% +% \item MS Windows +% %%%%% +% \List{*} +% \item \Link[http://www.miktex.org/]{}{}Mik\TeX\EndLink{} +% %\item \Link[ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/tex/]{}{}Simtelnet\EndLink{} +% \item \Link[http://www.metz.supelec.fr/\string +% ~popineau/xemtex-1.html]{}{}XEm\TeX\EndLink{} +% \EndList +% %%%%%%%%%%%% +% \item\Link[http://www.tug.org/texlive/]{}{}\TeX{} Live\EndLink{} +% % \item\Link[http://4tex.ntg.nl/]{}{}4all\TeX\EndLink{} +% +% %\item \Link[https://dev.livingreviews.org/repos/tex4ht/trunk/]{}{}livingreviews\EndLink +% \EndList{} +% \EndHPage{} + of the system, and %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NextFile{\jobname-upgrade.html}\HPage{upgrade}\ExitHPage{} +\bgroup %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\InstallSection{TeX4ht Upgrading} + +At present, the only practical way to update \TeX4ht is via a +distribution. Runtime files continue to be updated in TeX Live, so if you're using TL, you can get those +with tlmgr update. We don't know if MiKTeX picks up +the same updates. + +There has been no new full release since Eitan's death; still a work in +progress. + +For the upstream tex4ht source repository where the work is being +done, see the \Link[/tex4ht/]{}{}tex4ht home page\EndLink. + +\InstallSection{A Setup for Unix Environments} + +\List{a} +\item Establish a directory, say, `{\tt \string~/tex4ht.dir}'. + + +\item +\--Files/Download//% + Download the file \Link[tex4ht.zip]{}{}tex4ht.zip\EndLink{} + into the directory \''tex4ht.dir' and \UNZIP{} it. + + + + + +\Code\Uht{}<<< +$1 $2 +$1 $2 +$1 $2 +tex4ht $2 +t4ht $2 $3 # -d~/WWW/temp/ -m644 +>>> + +\OutputCode[foo]\Uht + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setup{Compile the Postprocessors} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\item +\--tex4ht.c/Compiling//\--t4ht.c/Compiling//Compile +\''~/tex4ht.dir/src/tex4ht.c' into an executable \''tex4ht' file with a +command similar to the following one. +%, where \`'path' stands for the absolute +% path to directory \''tex4ht.dir'. + + +\'+gcc -o tex4ht tex4ht.c +-DENVFILE='"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"' + -DHAVE_DIRENT_H+ + + +The switch + \`+-DENVFILE='"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"'+ may be omitted, +if the program can reach the environment file +in an \Link{envloc}{}alternative\EndLink{} manner. + +% #define ENVFILE "/n/soda/export/0/gurari/tex4ht.dir/tex4ht.env" +% #define HTFDIR "/n/soda/export/0/gurari/tex4ht.dir" + + + +\item Compile \''~/tex4ht.dir/src/t4ht.c' with a command similar to following one. +%, where \`'path' stands for the absolute +% path to directory \''tex4ht.dir'. + + +\'+gcc -o t4ht t4ht.c +-DENVFILE='"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"'+ + +Again, the switch + \`@-DENVFILE='"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"'@ +may be omitted, +if the program can reach the environment file +in an \Link{envloc}{}alternative\EndLink{} manner. + + + +\item + Move the +executable files \''tex4ht' and \''t4ht' to +directory \''~/tex4ht.dir/bin/unix/'. +% +\setup{Update the Pointers in the Environment File} +\item +\--Fonts/tfm//% +\--tex4ht.env/Unix//Replace in +\Link[tex4ht-env-unix.txt]{}{}% +\''~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env'\EndLink{} +the line(s) starting with the character \`'t', with alternative lines +which state +what directories should be searched for the tfm files +of \TeX{} and \LaTeX. The directory names must be preceded with the character +\`'t' at column 1 and, if their subdirectories are also to be searched, +the names should be appended with the character \`'!' +(\Link{alt-tfm}{}insight\EndLink{}). + +\item +\--Fonts/htf//% + If needed, adjust the paths in the \`'i' records of +\''tex4ht.env'. These records are used for searching htf fonts, and they +are similar to the \`'t' (\Link{alt-htf}{}insight\EndLink{}). + + + + +\item +\--tex4ht.fls///% + The entry \`'l~/tex4ht.dir/filename' + in \''tex4ht.env' points to the address where the +\Link{TEX4HTWR}{}bookkeeping file\EndLink{} should reside. + Modify the path to fit + your platform. The character \`'l' should precede the address, and + be placed at the first column. + Make sure the access mode +of the directory permits writing into files. + + +\setup{Update the Bitmap Generating Scripts in the Environment File} + +\item +\--Bitmaps and graphics/png//% +\--dvips/png//% +The file \''tex4ht.env' contains the following default script, of +calls to system utilities for translating dvi pictures into +bitmaps.\Link{}{dv2png}\EndLink{} + +\Verbatim +Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Gconvert zz%%4.ps -trim +repage -density 110x110 -transparent '#FFFFFF' %%3 +Grm zz%%4.ps +\EndVerbatim + +The entry \''%%1' is a parameter refering to a dvi file, the \''%%2' is a +parameter indicating a page number, the \''%%3' is a parameter +standing for an output file name, +and \''%%4' is a parameter providing the jobname. + +You may replace this script with an alternative sequence of system +calls. In such a case, place one command per line, and mark +each of these lines with the character \`'G' at the first column. +The literate version tex4ht-env.tex of tex4ht.env offers a few +suggestions. + +The \Link[http://www.radicaleye.com/dvips.html]{}{}dvips\EndLink{} +utility translates dvi files into postscript. The +\''convert' utility, provided within the distribution of +\Link[http://www.imagemagick.org/]{}{}ImageMagick\EndLink{}, +translates postscript files into png. + +The script +employs the Metafont mode \`'ibmvga' of resolution \`'110'; +the available modes are listed in file \''modes.mf' of Metafont. + + +Use the option `{\tt -crop 0x0 +page}' or `{\tt -crop 0x0 +repage}' +instead of `{\tt -trim}' for old convert utilities that do not +recognize the latter argument. + + +\item Instead of employing the G scripts, glyphs can rely on +specialized +\HPage{F scripts} +\List{*} +\item For instance +\Verbatim +Fdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Fconvert zz%%4.ps -trim +repage -density 110x110 -transparent '#FFFFFF' %%3 +Frm zz%%4.ps +\EndVerbatim + + +\item The specialized scripts may, for instance, maintain global caches of + png bitmaps for cutting down on recompilation time. \EndList + \EndHPage{} of similar nature for creating bitmaps. + +\item +\--Bitmaps and graphics/fonts//% +\--Fonts/Bitmaps//% +\--Pictures/Bitmaps//% +\--tex4ht.c/LGTYP//% +The bitmap formats can be controlled by a `g' record of tex4ht.env, +a `-g' switch + of {\tt tex4ht.c}, +and a -LGTYP switch in the compilation of tex4ht.c. + The default setting assumes the `png' format. + +\setup{Update the Other Scripts in the Environment File} + + + +\item \Link{}{mvscript}\EndLink{}If needed, replace + the scripts \`'Mmv %%1 %%2%%3' and \`'Ccp %%1 %%2%%3' + in \''tex4ht.env' with alternative scripts +for moving and copying files. The parameter \''%%1' stands for the +source file(s), the parameter \''%%2' provides the target directory +name, and the parameter \''%%3' refers to the target file name(s). + + + +% \item If needed, replace the script +% \`'Ecp empty.gif %%1%%2' in \''tex4ht.env' with an +% alternative script +% for replacing empty files. The parameter \''%%1' stands +% for the +% target directory name, and the parameter \''%%2' refers to +% the empty file name. + + + + + + + +\item \Link{}{accscript}\EndLink{}If needed, +replace the script \`'Achmod %%1 %%2%%3' +in \''tex4ht.env' with an alternative script for changing access mode of +files. The parameter \''%%1' stands for access mode, the parameter +\''%%2' refers to a directory name, and the parameter \''%%3' refers +to file(s). + +\item \--Validation///% +\relax\relax\--!//{\string\tt\char \space 37\char \space 37\char \space 126}\string\csname\space :gobble\string\endcsname/% +Postprocessing of files can be requested with +\`'.' scripts. The files are selected by their extension names, as + listed following the period symbols. The parameter +\`'%%1' provides the file names, and the parameter \`'%%0' provides +the jobnames. + Under kpathsea, the substring `%%~' may be employed + to indirectly obtain the value of \Verb=${SELFAUTOPARENT}=. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +The environment file +\Link[tex4ht-env-unix.txt]{}{}tex4ht.env\EndLink{} +offers the following inactive dot script for +{\bf validating} output of compilations. + + +\Verbatim + + .html xmllint --noout --valid --html %%1.html + + + .xml xmllint --noout --valid %%1.xml + .html xmllint --noout --valid %%1.html + .css mycssparser %%1.css + +\EndVerbatim + + +The dot script may be activated in the following manner. + +\List{1} + +\item +Bind a CSS validator to the .css record. +(\Link[http://jigsaw.w3.org/css-validator/DOWNLOAD.html]{}{}{\tt +http://jigsaw.w3.org/css-validator/DOWNLOAD.html}\EndLink) + + +\item Remove the leading space characters from the above record. + + + + +\EndList + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\item + Postprocessing of files can also be requested with \`'X' +scripts. The file names are accessed through the parameter \`'%%1', +and their extensions through the parameter \`'%%2'. + + + +\setup{Set the Script Files} +\item +Ensure proper paths within the htlatex-like scripts in +\`'~/tex4ht.dir/bin/unix/'. + If you use a command different than \''latex' for compiling \LaTeX{} + source files, +fix also +the references to \''latex' in the scripts. +Check also the appropriateness of the commands for compiling \TeX{} and +\TeX i files. + +\--htlatex/number of compilations//% +\--Tables/number of compilations//% +The default scripts provide for three calls to LaTeX. + The file \Verb+tex4ht-auto-script.tex+ in +\Link[tex4ht-lit.zip]{}{}tex4ht-lit.zip\EndLink{} offers examples of +bash scripts that automatically determine the number of compilations +needed from LaTeX (contributed by +Kai-Mikael J\"a\"a-Aro). +% + \setup{Make the System Globally Known} +% +\item +Inform the operating system where the scripts reside, say, by + adding the directory `{\tt \string ~/tex4ht.dir/bin/unix/}' into the +\''path' variable within the \''.login' file. For instance, + + \''set path=($path ~/tex4ht.dir/bin/unix/)' + +% +\item Let \LaTeX{} and \TeX{} know where the new style files reside, say, by +adding the directory `{\tt \string~/tex4ht.dir/texmf/tex/generic/tex4ht/}' to the +environment variable \''TEXINPUTS'. For instance, + +\''setenv TEXINPUTS .:~/tex4ht.dir/texmf/tex//:/usr/local/share/texmf/tex//' + +\item +If your \TeX{} system uses a registry database to locate files, make sure to refresh +it (e.g., run {\tt texhash} for kpathsea, +or {\tt mktexlsr} or `{\tt initexmf -u}' for some Linux systems). + + +%\Verbatim +%There is an environment variables, TEXINPUTS, which controls from where +%TeX should take its input files; if not set, TeX has a default value +%(at CIS, the value is ".:/usr/local/lib/tex/macros//"). +% +%So if we set +% setenv TEXINPUTS .:/usr/local/lib/tex/macros//:~gurari/cis788// +%then it would continue looking where it used to (in the current dir and +%in the system dir) plus use whatever possible from your directory (the +%added convenience is that if we're going to use more than just IprTeX.sty +%we wouldn't need to link every file). +%=== +%Albert Meltzer +%%------------------- +% > latex (teTeX) cann't find the style files and so on. +% > So I don't know where to set the style files and +% > what kind of commands I have to give so that +% > latex can handle these files. +% +% + +\item Some output modes assume +\Link[http://www.sun.com/]{}{}Java\EndLink{} +is also available in the computer in use. +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setup{Test the Installation} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +Move \''testa.tex' and \''testb.tex' +from +\''~/tex4ht.dir/temp/' + to your work directory +\item Compile \`'testa.tex' with the command \`'ht latex testa' +\item Compile \`'testb.tex' with the command \`'htlatex testb' + + +\Code\demo{}<<< +% \def\CALL{{tex}{latex}} +% \let\PC=Y +% \let\DOS=Y + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% demo.tex % +% % +% Please DON'T try to understand the code of this file---it % +% can be harmful to your eyes and brain! % +% % +% gurari@cse.ohio-state.edu % +% http://www.cse.ohio-state.edu/~gurari % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\ifx \SCRIPT\UnDef + \ifx \PC\UnDef + \def\SCRIPT{ + \Needs{ht \TEX\space + \FN\space + } + } + \else % dos batch file + \def\SCRIPT{ + \Needs{call ht \TEX\space \FN} + \Needs{if exist \FN.txt del \FN.txt} + \Needs{ren \FN.tex \FN.txt} + } +\fi\fi + +% \def\SCRIPT{ +% \Needs{call ht \TEX\space \FN} +% \Needs{if exist \FN.txt del /q \FN.txt} +% \Needs{ren /q \FN.tex \FN.txt} +% } + + + + +\ifx \PC\UnDef +\else + +\openin15=clean.bat +\ifeof15 +\closein15 +\immediate\openout15=clean.bat +\immediate\write15{DEL hti.bat} +\immediate\write15{DEL htii.bat} +\immediate\write15{DEL htiii.bat} +\immediate\write15{DEL htiv.bat} +\immediate\write15{DEL htv.bat} +\immediate\write15{DEL htvi.bat} +\immediate\write15{DEL htvii.bat} +\immediate\write15{DEL htdemo.bat} +\immediate\write15{DEL i.*} +\immediate\write15{DEL ia.*} +\immediate\write15{DEL ii.*} +\immediate\write15{DEL iia.*} +\immediate\write15{DEL iii.*} +\immediate\write15{DEL iiia.*} +\immediate\write15{DEL iv.*} +\immediate\write15{DEL iv2.*} +\immediate\write15{DEL iva2.*} +\immediate\write15{DEL iva.*} +\immediate\write15{DEL demo*.aux} +\immediate\write15{DEL demo*.bat} +\immediate\write15{DEL demo*.dvi} +\immediate\write15{DEL demo*.htm*} +\immediate\write15{DEL demo*.css} +\immediate\write15{DEL demo*.lg} +\immediate\write15{DEL demo*.idv} +\immediate\write15{DEL demo*.log} +\immediate\write15{DEL demo*.otc} +\immediate\write15{DEL demo*.toc} +\immediate\write15{DEL demo*.txt} +\immediate\write15{DEL demo*.xre*} +\immediate\write15{DEL tex4ht.ps} +\immediate\write15{DEL v.*} +\immediate\write15{DEL va.*} +\immediate\write15{DEL vi.*} +\immediate\write15{DEL viIa.*} +\immediate\write15{DEL via.*} +\immediate\write15{DEL vii.*} +\immediate\write15{DEL viia.*} +\immediate\write15{DEL clean.bat} +\immediate\closeout15 +\else \closein15 \fi + +\fi + +\ifx \DOS\UnDef + \def\HTML{html} \def\ARG{} + \else \def\HTML{htm} \def\ARG{[htm]} + \fi + +\ifx \documentclass\undef \else + \documentclass{article} +\fi +\input tex4ht.sty +\def\temp{htm}\ifx \HTML\temp + \Preamble{htm,no_,no^} +\else + \Preamble{html,no_,no^} +\fi + \ifx \documentclass\undef \else + \begin{document} + \fi + + \Configure{Needs}{l. \the\inputlineno\space--- needs --- "#1" ---} + + +\newlinechar=`\^^J + +\ifx \WWW\UnDef \let\WWW=\empty \fi +\ifx \DOS\UnDef\else +% \Needs{CLS} % clear screen +\fi + + +\ifx \CALL\UnDef + \def\TEX{\ifx \documentclass\undef \else la\fi tex} +\else + \def\TEX#1#2{\def\TEX{\ifx \documentclass\undef #1\else #2\fi}} + \expandafter\TEX\CALL +\fi + +\edef\type{\ifx \documentclass\undef \else a\fi} + +\def\\#1\\{\expandafter\noexpand\csname#1\endcsname} +\catcode`\#=11 \def\Sharp{#} \catcode`\#=6 +\def\source#1#2{ + \def\doc##1##2##3{#2} + \HAdvance\FileNo by 1 + \NextFileName + \immediate\openout15=\FN.tex + \immediate\write16{--- Writing file \FN.tex}% + \SCRIPT + \immediate\write15{\ifx \documentclass\undef + \noexpand \input tex4ht.sty ^^J + \noexpand \Preamble{\HTML#1} ^^J + \noexpand \EndPreamble ^^J^^J\else + \noexpand \documentclass{article} ^^J + \noexpand \usepackage\ARG{tex4ht} ^^J + \noexpand \begin{document} ^^J^^J\fi + \doc{PSALMS (131:1)} + {My heart is not haughty, nor ^^J + mine eyes lofty:} + {neither do I ^^J + exercise myself in great ^^J + matters, or in things too high ^^J + for me.} ^^J^^J + {\\it\\ Example \FileNo\space (out of \examples)} ^^J^^J + \noexpand \end\ifx \documentclass\undef \else + {document}\fi } + \immediate\closeout15 + \Link[\jobname\FileNo\type f.\HTML\space target="X"]{}{}\FileNo\EndLink + \FileStream+{\jobname\FileNo\type f.\HTML} + \HorFrames{*,*} + \Frame[\romannumeral\FileNo\type.txt]{} + \Frame[\romannumeral\FileNo\type.\HTML]{} + \EndPreamble + \Link[\romannumeral\FileNo\type.txt]{}{}outcome\EndLink{} / + \Link[\romannumeral\FileNo\type.\HTML]{}{}source\EndLink{} / + \Link{1}{}pointers\EndLink + \EndFileStream{\jobname\FileNo\type f.\HTML} +} + +\def\NextFileName{\edef\FN{\romannumeral\FileNo\type}} + +\HAssign\examples=0\LikeRef{count} +\HAssign\FileNo=1 \NextFileName + + \VerFrames{7*,*} + \Frame[\jobname\FileNo\type f.\HTML\space NAME="X"]{} + \Frame[ NAME="Y"]{1} + +\EndPreamble + +\Link[\FN.txt]{}{}source\EndLink{} / +\Link[\FN.\HTML]{}{}outcome\EndLink{} / + +\HAssign\FileNo=0 + +\edef\temp{\noexpand\HPage<\jobname p.\HTML>} +\temp{Pointers}\Link{}{1}~\EndLink + + +Goto to Example: +\source{%,fonts +}{#1^^J^^J#2^^J^^J#3} + \def\HR{^^J\\HCode\\{
}^^J} +\source{%,fonts +}{\HR #1 \HR #2 \HR #3 \HR} +\source{%,fonts +}{{\\bf\\#1}^^J^^J{\\it\\#2}^^J^^J{\\tt\\#3}} +\source{%,fonts +}{\\HPage\\{#1}^^J^^J#2^^J^^J#3^^J^^J + \\ExitHPage\\{}\\EndHPage\\{}} +% +\ifx \documentclass\undef +\source{%,fonts +}{\\Contribute\\{halign}{BORDER<>0 1 < 0 2 - 0 3 > }^^J +\\halign\\{&\Sharp\\cr\\#1^^J&^^J#2^^J&^^J#3\\cr\\}} +\else +\source{%,fonts +}{\string\begin{tabular}{|l|c|r|}^^J +#1^^J&^^J#2^^J&^^J#3^^J +\string\end{tabular}} +\fi +% + + \def\d{\\scriptstyle\\ \\diamondsuit\\ + \\diamondsuit\\ \\diamondsuit\\ } +\ifx \documentclass\undef +\source{%,fonts +}{^^J +\\settabs\\ 6 \\columns\\^^J +\\+\\PSALMS & (131:1)\\cr\\^^J +\\+\\My heart & is not haughty,\\cr\\ ^^J +\\+\\nor mine & eyes lofty:\\cr\\^^J +\\settabs\\ \\+\\ neither & do I exercise & \\cr\\^^J +\\+\\neither & do I exercise \\cr\\^^J +\\+\\ & myself in & great matters, \\cr\\^^J +\\+\\or & in things & too high for me. \\cr\\^^J +} +\else +\source{%,fonts +}{^^J +\\begin\\{tabbing}^^J +XXXXXXXXX \\=\\\\kill\\^^J +PSALMS \\>\\ (131:1) \string\\^^J +My heart \\>\\ is not haughty, \string\\^^J +nor mine \\>\\ eyes lofty:\string\\^^J +neither \\=\\ do I exercise \\=\\ \\kill\\^^J +neither \\>\\ do I exercise \string\\^^J + \\>\\ myself in \\>\\ great matters, \string\\^^J +or \\>\\ in things \\>\\ too high for me. \string\\^^J +\\end\\{tabbing}^^J +} +\fi +% +\source{%,fonts +}{\ifx \documentclass\undef\space + \string\def\string\(\string{\string\Picture+\string{\string}\string + $\string}^^J + \string\def\string\)\string{\string$\string\EndPicture\string}^^J +\fi +\\Picture\\+{ ALIGN="LEFT"}\\vtop\\{\\hsize\\=2in^^J + \\hrule\\\\smallskip\\ #1\\smallskip\\\\hrule\\}\string + \EndPicture^^J #2^^J\\(\\ \d \\)\\ ^^J#3 $\d$} +\EndHPage{} + + \Tag{count}{\FileNo} + +\end{document} +\endinput +>>> + +\OutputCode[tex]\demo + + + + + + +\Code\testa{}<<< +\documentclass {article} + \usepackage {tex4ht} +\begin {document} + +A single $\heartsuit$ and a full +suit: \( \clubsuit \diamondsuit +\heartsuit \spadesuit \). + +\end {document} +\endinput +>>> + +\OutputCode[tex]\testa + + + +\Code\testb{}<<< +\documentclass {article} +\begin {document} + +A single $\heartsuit$ and a full +suit: \( \clubsuit \diamondsuit +\heartsuit \spadesuit \). + +\end {document} +\endinput +>>> + +\OutputCode[tex]\testb + + + + + + + + + + + + + + + +% \Code\HT{}<<< +% echo "**************** Temporary ht ***********************" +% $1 $2 +% $1 $2 +% $1 $2 +% tex4ht $2 +% t4ht $2 -m644 -d?DIR +% echo "**************** Temporary ht ***********************" +% >>> +% +% \OutputCode[log]\HT +% \csname SysNeeds\endcsname{"mv ht SVht"} +% \csname SysNeeds\endcsname{"mv HT.log ht"} +% \csname SysNeeds\endcsname{"chmod 700 ht"} +% +% +% \csname SysNeeds\endcsname{"mv SVht ht"} +% \csname SysNeeds\endcsname{"chmod 700 ht"} + + + + + +\EndList + + + + + + + +\EndHPage{} and +\NextFile{\jobname-mswin.html}\HPage[]{MS Windows} +% +\ExitHPage{} + +\InstallSection{A Setup for MS Windows} % / DOS + + +\List{a} +\item +\--Files/Download//% +Establish a directory, say, \`'c:\tex4ht'. + + +\item +\--Files/Download//% + Download the file \Link[tex4ht.zip]{}{}tex4ht.zip\EndLink{} + into the directory \''tex4ht.dir' and \UNZIP{} it. + + + + +\Code\Wht{}<<< +%1 %2 +%1 %2 +%1 %2 +tex4ht %2 -ic:\tex4ht\texmf\tex4ht\ht-fonts\%3 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env +t4ht %2 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env +>>> + +\OutputCode[tab]\Wht + +%%%%%%%%%%%%%%%%%%%%%%%% + + +\setup{Update the Pointers in the Environment File} + + + +% +\item +\--tex4ht.env/MS Windows//% +\--Fonts/tfm//% + Replace in +\Link[tex4ht-env-win32.txt]{}{}% +\''c:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env'\EndLink{} +the lines starting with the character + \`'t', with alternative lines which state what directories should be + searched for the tfm files of \TeX{} and \LaTeX. The directory names + must be preceded with the character \`'t' at the first column. If + their subdirectories are also to be searched, the names should be + appended with the character \`'!'. + +Note that long file names on MS Windows, and file names with spaces, +might have short space-free aliases. For instance, a directory name +\`'c:\progra~1\texmf' instead of \`'c:\program files\texmf'. +The alternative names can be checked by issuing the \`'dir' command +in a DOS session. + + +\item +\--Fonts/htf//% + If needed, adjust the paths in the \`'i' records of +\''tex4ht.env'. These records are used for searching htf fonts, and they +are similar to the \`'t' records. + + + + +\setup{Update the Bitmap Generating Scripts} + + + + +\item +\--Bitmaps and graphics/png//% +The file \''tex4ht.env' contains the following default script, of calls +to system utilities for translating dvi pictures into png. + +\Verbatim +Gif exist zz%%4.ps DEL zz%%4.ps >nul +Gif exist %%3 DEL %%3 >nul +Gdvips -E -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Gconvert zz%%4.ps -trim +repage -density 110x110 -transparent "#FFFFFF" %%3 +Gif exist zz%%4.ps DEL zz%%4.ps >nul +\EndVerbatim + +You may replace this script with an alternative sequence of system +calls. In such a case, place one command per line, and mark +each of these lines with the character \`'G' at the first column. +The literate version tex4ht-env.tex of tex4ht.env offers a few +suggestions. + +The entry \''%%1' is a parameter referring to a dvi file, the \''%%2' is a +parameter indicating a page number, the \''%%3' is a parameter +standing for an output file name, +and \''%%4' is a parameter providing the jobname. + + +% Some variants of the \''convert' utility +% require the \''-transparent' switch, instead of \''-transparency'. + +The \Link[http://www.radicaleye.com/dvips.html]{}{}dvips\EndLink{} +utility translates dvi files into postscript. The +\''convert' utility, provided within the distribution of +\Link[http://www.imagemagick.org/]{}{}ImageMagick\EndLink{}, +translates postscript files into png. + +The script +employs the Metafont mode \`'ibmvga' of resolution \`'110'; +the available modes are listed in file \''modes.mf' of Metafont. + + +Use the option `{\tt -crop 0x0 +page}' or `{\tt -crop 0x0 +repage}' +instead of `{\tt -trim}' for old convert utilities that do not +recognize the latter argument. + +\item Instead of employing the G scripts, glyphs can rely on +specialized +\HPage{F scripts} +\List{*} +\item For instance +\Verbatim +Fif exist zz%%4.ps DEL zz%%4.ps >nul +Fif exist %%3 DEL %%3 >nul +Fdvips -E -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Fconvert zz%%4.ps -trim +repage -density 110x110 -transparent "#FFFFFF" %%3 +Fif exist zz%%4.ps DEL zz%%4.ps >nul +\EndVerbatim + +\item The specialized scripts may, for instance, maintain global caches of + png bitmaps for cutting down on recompilation time. \EndList + \EndHPage{} of similar nature for creating pngs. + + + +\item +\--Bitmaps and graphics/fonts//% +\--Fonts/Bitmaps//% +\--Pictures/Bitmaps//% +\--tex4ht.c/LGTYP//% +The bitmap formats can be controlled by a `g' record of tex4ht.env, +a `-g' switch + of {\tt tex4ht.c}, +and a -LGTYP switch in the compilation of tex4ht.c. + The default setting assumes the `png' format. + + +\setup{Update the Other Scripts in the Environment File} + +\item If needed, replace the scripts \`'Mmove %%1 %%2%%3', +and \`'Ccopy %%1 %%2%%3' +in \''tex4ht.env' with \HPage{alternative scripts} + +\Verbatim +Mif exist %%2%%3 del %%2%%3 +Mif exists %%1 move %%1 %%2%%3 +Cif exist %%2%%3 del %%2%%3 +Cif exists %%1 copy %%1 %%2%%3 +\EndVerbatim +\EndHPage{} +for moving and copying files. The parameter \''%%1' stands +for the source file(s), the parameter \''%%2' provides the +target directory name, and the parameter \''%%3' refers to +the target file name(s). + +% \item If needed, replace the script +% \`'Ecopy empty.gif %%1%%2' in \''tex4ht.env' with an +% alternative script +% for replacing empty files. The parameter \''%%1' stands +% for the +% target directory name, and the parameter \''%%2' refers to +% the empty file name. + + + +\item If applicable, replace the scripts \`'Achmod %%1 %%2%%3' +in \''tex4ht.env' with an alternative script for changing the access mode of +files. The parameter \''%%1' stands for access mode, the parameter +\''%%2' refers to a directory name, and the parameter \''%%3' refers +to the file(s). + + + +\item \--Validation///% +Postprocessing of files can be requested with +\`'.' scripts. The files are selected by their extension names, as + listed following the period symbols. The parameter +\`'%%1' provides the file names, and the parameter \`'%%0' provides +the jobnames. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +The environment file +\Link[tex4ht-env-win32.txt]{}{}tex4ht.env\EndLink{} +offers the following draft of a dot script for +{\bf validating} output of compilations. + + +\Verbatim + + .xml xmllint --noout --valid %%1.xml + .html xmllint --noout --valid %%1.html + .css mycssparser %%1.css + +\EndVerbatim + + +The dot script may be activated in the following manner. + +\List{1} +\item Fix the paths in the first two records. + + +\item +Bind a CSS validator to the .css record. +(\Link[http://jigsaw.w3.org/css-validator/DOWNLOAD.html]{}{}{\tt +http://jigsaw.w3.org/css-validator/DOWNLOAD.html}\EndLink) + + +\item Remove the leading space characters from the above record. + + + + +\EndList + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\item + Postprocessing of files can also be requested with \`'X' +scripts. The file names are accessed through the parameter \`'%%1', +and their extensions through the parameter \`'%%2'. + + +\setup{Set the Script Files} + +\item + If you use a command different than \`'latex' for compiling \LaTeX{} + source files, replace +the references to \''latex' in \''c:\tex4ht\bin\win32\*.bat' with the appropriate +command name. +The \''tex' and \''texi' +commands require similar attention. + + + + \setup{Make the System Globally Known} +\item Add \`'c:\tex4ht\bin\win32' to your path variable in \`'c:\AUTOEXEC.BAT'. + +\item +Place the files \`'tex4ht.sty' and \`'*.4ht' +of \''c:\texmf\tex\generic\tex4ht\' +within the +\LaTeX/\TeX{} tree (either by moving the files to a directory which already +has sty files, or by modifying the environment variable TEXINPUTS to point also to \`'c:\texmf\tex\generic\tex4ht\'). + +\item +If your \TeX{} system uses a database to locate files, make sure to refresh +it (e.g., select \''Start -> Programs -> MiKTeX -> Refresh', or run \`'initexmf -u' from +a DOS session, to update MiK\TeX{}). + + + +\setup{Didn't Use '{\tt c:\string\tex4ht'}?} +\item +If \TeX4ht is installed in a directory other than \''c:\tex4ht', +make sure to adjust the related paths in +\''tex4ht.env' the \''.bat' files. + + +\item Some output modes assume +\Link[http://www.sun.com/]{}{}Java\EndLink{} +is also available in the computer in use. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setup{Test the Installation} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item +Move \''testa.tex' and \''testb.tex' +from +\''c:\tex4ht.dir\temp\' + to your work directory +\item Compile \`'testa.tex' with the command \`'ht latex testa' +\item Compile \`'testb.tex' with the command \`'htlatex testb' + + + +\EndList + + + +[\Link[http://www.csulb.edu/\string +~murdock/dosindex.html]{}{}MS Commands\EndLink] + + + +\EndHPage{} require additional effort, mainly because of the need to set up +non-native utilities. +% +Alternative ports for these and other platforms can be tailored +in a +% +\NextFile{\jobname-port.html}\HPage{similar manner} + +\ExitHPage{} + +\InstallSection{Establishing a Port} + +\--Files/Download//% +A port can be established in the following manner. + +\List{1} + \item Set a directory, say,`{\tt \string~/tex4ht.dir}'. +\item + Download the file \Link[tex4ht.zip]{}{}tex4ht.zip\EndLink{} + into the directory \''tex4ht.dir' and \UNZIP{} it. +\item Add to +\`'tex4ht.dir/texmf/tex4ht/base/' +and +\`'tex4ht.dir/bin/' +a subdirectory named, say, \''mydir'. +\item Copy +\`'tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env' +or +\`'tex4ht.dir/texmf/tex4ht/base/win32/tex4ht.env' +into +\`'tex4ht.dir/texmf/tex4ht/base/mydir/tex4ht.env'. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\HPage{} +\ExitHPage{exit} +\InstallSection{Placement of the Environment File} + +\--tex4ht.env/ENVFILE//% +\--tex4ht.c/Compiling//% +\--Kpathsea///% +\--tex4ht.env/TEX4HTENV//% +\--Environment Variables///% +\Link{}{envloc}\EndLink{} +The \''tex4ht.c' +and \''t4ht.c' programs retrieve the information about their +platform from an environment file. The programs search the file at the +following locations, in the given order. +\List{disc} +% +% +\item The address specified within the +\Link[\RefFile{overview}]{}{}command lines\EndLink{} of \''tex4ht' +and \''t4ht', +and identified there by the prefix \`'-e'. +% +\item The address \''tex4ht.env' in the work directory. +% +\item At the location specified by an optional environment variable named +\''TEX4HTENV'. +% +\item The address \''tex4ht.env' in the \HPage{root} + The address of the root directory +is assumed to be stored in an environment variable named \''HOME'. + +On MS Windows, the directory +\''c:/', and the residence directory of \''tex4ht.exe' and +\''t4ht.exe', are also candidates. +\EndHPage{} directory. +\item +The address provided in the variable \SysVar{ENVFILE} of tex4ht +and t4ht during compilation. +\item At the directories of kpathsea, to be searched by that utility, + if the \''tex4ht.c' and \''t4ht.c' programs are compiled +with the \`'-DKPATHSEA' switch on. + +For instance, + +\'@gcc -o tex4ht tex4ht.c + -DENVFILE='"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"' + -DKPATHSEA + -DHAVE_DIRENT_H + -lkpathsea@ + +\noindent or + +\'@gcc -O2 + -DKPATHSEA + -I/usr/include + -L/usr/lib + -o tex4ht tex4ht.c + -DHAVE_DIRENT_H + -lkpathsea@ +% + +When the address of \''tex4ht.env' is not explicitly given, the +\''texmf.cnf' file might need records similar to the following ones. + +\Verbatim + TEX4HTFONTSET=alias,iso8859 + TEX4HTINPUTS=.;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}// + T4HTINPUTS=.;$TEXMF/tex4ht/base// +\EndVerbatim + + +\item +The instruction + +\centerline{\tt apt-get install gcc libkpathsea4 libkpathsea-dev} + +\noindent when executed as root +installs the following +packages +on + Ubuntu/Debian. + +\List{*} +\item +gcc: the standard C compiler +\item +libkpathsea4: library for TeX path searching, part of the texlive + distribution + provides files like /usr/lib/libkpathsea.so.4.0.0 +\item +libkpathsea-dev: development files for libkpathsea + provides numerous header files (*.h) in +/usr/include/kpathsea +\EndList + +If a file is already present, a warning +is issued + and the instruction can be +retried after omitting the request for the installed package. + + + +\EndList + + +A given address may start with the character \`'~'. This character is +interpreted to be the directory address of the root (as provided in an +environment variable named \''HOME'). + + + +The file \''tex4ht.env' may be renamed to \`'.tex4ht', +if your system allows names consisting only of the extension part. + + + + + +\EndHPage{}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\HPage{Modify} + +\ExitHPage{} + +\InstallSection{The Composition of tex4ht.env} + +\--tex4ht.env///% +\TeX4ht consults this file for system-dependent information. The file +consists of a sequence of directives, where each directive occupies a line +and is identified with a distinguished character code in the first column. +The following are the possible character codes and their meaning. +\List{} + + +\item{b} This character identifies +for \''tex4ht' + a comment to be placed +in the \`'.lg' file, before the +\Link{bsc}{bsc-1}scripts\EndLink{} + for creating +pictures for symbols. + +\item{g} +\--Bitmaps and graphics/png//% + This character identifies the extension tex4ht +should associate to names of the files of pictures the postprocessor + requests (for instance, bitmap files of glyphs.). The +default corresponds to a setting of the form \`'g.png'. + +An extension name can also be encoded into tex4ht +during compilation time through the variable +\SysVar{LGTYP}. + +Alternatively, an extension can be provided +in the command line of tex4ht, in which case the character code +should be present and immediately preceded by a \`'-' character. + + + +\item{i} +This character identifies to \''tex4ht' +a directory +\Link{ch-i}{ch.i}where\EndLink{} +the hypertext font (.htf) files of \''tex4ht' are stored. + +\item{l} +\--tex4ht.fls///% + This character identifies a +% +\HPage{bookkeeping file} +\ExitHPage{exit} +\InstallSection{Placement of the Bookkeeping File} + + +\--tex4ht.c///% +\--Kpathsea///% +\--tex4ht.fls/TEX4HTWR//% +\--Environment Variables///% +\Link{}{TEX4HTWR}\EndLink{}To cut down on the time invested to locate files, +the \''tex4ht.c' program maintains a bookkeeping + file where it records the +addresses of the files it finds. Whenever the program needs to locate +a file, it first searches the address in the bookkeeping file. If it doesn't +find the address there, the program embarks on a search +throughout the physical directories of its platform. + +The program places the bookkeeping file at the first applicable +location of the following list. + +\List{1} +\item + The pointer specified by an optional \`'-l' switch provided to the +invocation of the \''tex4ht' program. +\item + A file named \''tex4ht.fls' in + the directory specified by an optional environment variable named +\''TEX4HTWR'. +\item + The location specified by an optional \`'l' record provided +in the environment file. +\item A file named \''tex4ht.fls' in the work directory. +\EndList + + + +A given address may start with the character \`'~' or the +character pair \`'~~'. The single character \`'~' is interpreted to be the +directory address of the root, provided in an environment variable +named \''HOME'. +The character pair \`'~~' is interpreted to be a +directory address provided in an environment variable +named \''TEX4HTWR'. The address stored in the latter environment +variable may also start with a single character \`'~'. + + + + The bookkeeping file must have writable access mode, and the directory +which contains the file should have a compatible access mode. On +multi-user platforms, it is recommended not to share the bookkeeping +file, but to ask for such files in the users' directories. + + +The bookkeeping file is a +dynamically constructed variant of the ls-R file of kpathsea. TeX4ht +ignores its own bookkeeping mechanism, if the program \''tex4ht.c' +is compiled with a raised \''-DKPATHSEA' switch. +\EndHPage{} +% + where \''tex4ht' can + record information about paths to files it uses. + + +\item{s} This character identifies +to \''tex4ht' +a \Link{sc}{sc-1}command\EndLink{} +for requesting in the \''lg' file the translation of dvi + pictures to bitmaps. When needed, a sequence of such +commands can be placed in consecutive lines to form a block of +commands for handling the translation. + + + + +\item{t} +\--Fonts/tfm//% + This character identifies +to \''tex4ht' + the directory \HPage{where} + + +\ExitHPage{exit} + +\InstallSection{Directories of the \TeX\space Fonts Metric (tfm)} + +\--Fonts/tfm//%% +\--tex4ht.c/Compiling//% +\--Kpathsea///% +\--Environment Variables///% +\Link{}{alt-tfm}\EndLink\TeX4ht searches + the hypertext fonts in the working directory, and + in the following optional directories, in the given order. + + +\List{disc} +\item +The directory named +in the \Link[\RefFile{overview}]{}{}command line\EndLink{} +of tex4ht, identified with the prefix \`'-t'. + + +\item The directory identified with the character \`'t' +in the tex4ht.env file. + +\item +The directory whose name is fed into tex4ht.c +during compilation time, through the program variable +\SysVar{TFMDIR}. + +\item In the directory holding the executable \''tex4ht' (only +for MS Windows). + +\EndList + + +A given address may start with the character \`'~' or the +character pair \`'~~'. The single character \`'~' is interpreted to be the +directory address of the root, provided in an environment variable +named \''HOME'. +The character pair \`'~~' is interpreted to be a +directory address provided in an environment variable +named \''TEX4HTTFM'. The address stored in the latter environment +variable may also start with a single character \`'~'. + +The optional environment variable \''TEX4HTTFM' may hold one +or more addresses. The addresses must be separated by a +character which does not appear in the addresses, and that +character must also delimit the content at the start and end points. + + + The system variable \SysVar{MAXFONTS} of tex4ht.c places a + limit on the number of fonts allowed in the documents. The default + setting doesn't provide such a limit. + + If the program \''tex4ht.c' is compiled +with the \`'-DKPATHSEA' switch on, +\TeX4ht ignores its own search and delegate it to the kpathsea utility. + +% \leavevmode \--Fonts/tfm/aliases/\Link{}{tfmalias}\EndLink +% Some +% \TeX{} systems provide virtual fonts without tfm files. Instead, they +% provide file of aliases with records of the form `{\it virtual font +% name}={\it actual font name}'. In such a case, the location of a file of +% aliases can be provided within an a-record in \''tex4ht.env'. +% +% The tex4ht program ignores records having form different than +% `{\it virtual font name}={\it actual font name}'. + + +A given address may start with the character \`'~' or the +character pair \`'~~'. The single character \`'~' is interpreted to be the +directory address of the root, provided in an environment variable +named \''HOME'. +The character pair \`'~~' is interpreted to be a +directory address provided in an environment variable +named \''TEX4HTA'. The address stored in the latter environment +variable may also start with a single character \`'~'. + + + + +\EndHPage{} +the font metric (.tfm) files of \TeX{} are stored. + + +\item{A} +This character identifies to \''t4ht' a +\Link{accscript}{}script\EndLink{} for changing +access mode of files. + +\item{C} +This character identifies a \Link{mvscript}{}script\EndLink{} for +satisfying requests made in the +\''lg' file to copy files between directories. + + +\item{E} +This character identifies a \Link{mvscript}{}script\EndLink{} for +satisfying requests made in the +\''lg' file to get substitutions for empty pictures. + + +\item{F} +This character identifies +to \''t4ht' +a \Link{dv2png}{}script\EndLink{} for translating into other formats +characters +from dvi files. + +A `F.ext' record marks a conditional F-subscript. It states that the +following F-records will apply only to pictures whose extension +names are `ext'. + +A `F.' record marks a default F-subscript. It applies to pictures +whose extension names do not get dedicated F-subscripts. + +The `F.ext' and `F.' records are not needed, in case all the pictures +are to be processed by a single set of F-records. + +\noindent{\bf Example}: + +\Verbatim +F.gif +F-gif-script +F.png +F-png-script +F. +F-script +\EndVerbatim + + +\item{G} +This character identifies +to \''t4ht' +a \Link{dv2png}{}script\EndLink{} for translating general + dvi figures into other formats. + + +A `G.ext' record marks a conditional G-subscript. It states that the +following G-records will apply only to pictures whose extension +names are `ext'. + +A `G.' record marks a default G-subscript. It applies to pictures +whose extension names do not get dedicated G-subscripts. + +The `G.ext' and `G.' records are not needed, in case all the pictures +are to be processed by a single set of G-records. + +\noindent{\bf Example}: + +\Verbatim +G.gif +G-gif-script +G.png +G-png-script +G. +G-script +\EndVerbatim + + +\item{M} +This character identifies a \Link{mvscript}{}script\EndLink{} for +satisfying requests made in the +\''lg' file to move files between directories. + + + +\item{S} This character specifies what security measures + \''t4ht' should take when invoking other utilities. In the + absence of this directive, all the calls to system services are + ignored. On the other hand, a directive of the form \`'S*' allows + all system calls. A selective access to system calls can be + obtained with \''S' directives, which specify the prefixes of command + names that should be allowed to go through. + + The \''S' directives can be fed as switches to the command lines \''t4ht'. + +\item{P} A variant of he \''S' switch for \''tex4ht'. Rarely useful. + + +\item{X} This character identifies to \''t4ht' a script for + postprocessing the files which \''tex4ht' outputs. The file names + are represented +by \`'%%1', and their extensions by \`'%%2'. +Such scripts, for instance, may invoke validators to check +the correctness of the files against given DTD's and request +XSL transformations. + +The command line of \''t4ht' may include a flag \`'-X' whose content +is represented by \`'%%3' in the script. + + +Example: \''Xmake -f mymake name=%%1 ext=%%2 %%3' + +\item{{\bf.} (dot)} A variant of the X script applied to files whose extension +names are provided after the dot. The file names are represented by +\`'%%1', and the jobnames by \`'%%0'. + +Example: \''.xml echo "name=%%1.xml"' + + +\item{{\tt <}} +Tagged script segments \''...' are scanned only if + their names are specified within \''-ctag' switches of \''tex4ht.c' + and \''t4ht.c'. When such switches are not supplied, a the switch \''-cdefault' + is implicitly assumed. + +\EndList +Lines starting with other characters are treated as comments, +and empty lines may be treated as file terminators + by \''tex4ht' and \''t4ht'. + + + +{\noindent \bf Examples:} +\Link[tex4ht-env-unix.txt]{}{}Unix-oriented\EndLink{}, +\Link[tex4ht-env-win32.txt]{}{}MS-oriented\EndLink{} + + + + +\EndHPage{} the file to meet the setting +of your environment. +% +% +% +\item +\HPage{Compile} + +\ExitHPage{} +\Link{}{doc-c}\EndLink + +\InstallSection{Compiling tex4ht.c} + + +\List{disc} +\item +\--tex4ht.c/Compiling//You might want to activate some of the options at the start of the +file by uncommenting the corresponding lines. + +\Verbatim +/* ********************************************** + Compiler options * + (uncommented | command line) * +------------------------------------------------* + Classic C (CC) default +#define ANSI ansi-c, c++ +#define DOS_C +#define HAVE_STRING_H +#define HAVE_DIRENT_H +#define HAVE_SYS_NDIR_H +#define HAVE_SYS_DIR_H +#define HAVE_NDIR_H +#define WIN32 +#define KPATHSEA +#define BCC32 bordland c++ + +************************************************* +\EndVerbatim + +\item +\--tex4ht.c/Compiling//% +\--tex4ht.c/HTFDIR//% +\--tex4ht.c/LGPIC//% +\--tex4ht.c/LGSEP//% +\--tex4ht.c/LGTYP//% +\--tex4ht.c/MAXFONTS//% +\--tex4ht.c/TFMDIR//% +Values may be assigned in the command line or +the beginning of the source file, to the environment variables +\def\SysVar#1{\Link{#1}{x-#1}#1\EndLink} +\SysVar{ENVFILE}, +\SysVar{HTFDIR}, +\SysVar{LGPIC}, +\SysVar{LGSEP}, +\SysVar{LGTYP}, +% ??? \SysVar{MAXFDIRS}, +\SysVar{MAXFONTS}, +and +\SysVar{TFMDIR}. +\gdef\SysVar#1{\Link{-#1}{#1}#1\EndLink} + +For instance, + + \'@gcc -o tex4ht tex4ht.c + -DENVFILE='"path/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"' + -DHAVE_DIRENT_H@ + +\EndList + +The switch \`+-DENVFILE+ is optional, if the program can reach the +environment file in an \Link{envloc}{}alternative\EndLink{} manner. + + +\InstallSection{Compiling t4ht.c} + + +\--t4ht.c/Compiling//% +The environment variable \''ENVFILE' is available also in \`'t4ht.c'. + +For instance, + +\'+gcc -o t4ht t4ht.c -DENVFILE='"gold/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"'+ + + + +\EndHPage{} +the source files +\`'tex4ht.dir/src/tex4ht.c' +and +\`'tex4ht.dir/src/t4ht.c' + into executable programs \''tex4ht' and \''t4ht', +and move the latter programs into \`'tex4ht.dir/bin/'. +% +% +% +\item Set a +\HPage{driver} +\ExitHPage{} + +\InstallSection{Driving the Translation of Pictures and Other Tasks} + + +\--Files/idv//% +\--Files/lg//% +\--Bitmaps and graphics/Requests//% +\TeX4ht outputs a script file (\`'.lg') describing how the dvi file +(extension \`'.idv') of pictures should be processed, the CSS +instructions to be included for the file, and user-initiated requests +from the operating system. In the default setting, the script file +holds abstract commands similar to the following ones. +\List{} +\item{{\tt--- needs --- source.idv[i] ==> target.png ---}} + +An abstract command of this form requests that the i'th page in +the dvi file will be translated into a target file +whose name is provided. + +\item{{\tt +--- characters --- +}} + +This abstract command is a identifies where +the requests for pictorial characters start. + +\EndList + +A manual brute-force execution of the abstract +commands can be a tedious job for large number of +pictures. The \''t4ht' is in essence an interpreter +for these abstract commands. + + Another +possible approach for automating the process +is to request lg scripts in the form of +shell scripts +or batch files. + + +\HCode{}{\bf Alternatives to `{{\tt--- needs --- +source.idv[i] ==> target.png ---}}'}\HCode{} + +The default setting is made with a request of the form +\`'--- needs --- %%1.idv[%%2] ==> %%3.png ---', where +the parameters \''%%1', \''%%2', and \''%%3' respectively represent +the name of the source file without its extension, a page number, and +a name of the target file. Alternative patterns to these abstract +commands can be requested in the following locations, with the order +reflecting on the priority given to the requests. + + +\List{disc} +\item In the \Link[\RefFile{overview}]{}{}command line\EndLink{} +of \''tex4ht', where the pattern should be prefixed with \`'-s'. + +\item In the environment file \''tex4ht.env' +within a block of consecutive lines, where the lines should be +identified with the character \Link{sc-1}{sc}\`'s'\EndLink{}. + +\gdef\SysVar#1{\Link{x-#1}{#1}#1\EndLink} %%%%%%%%# + +\item In \''tex4ht' with the pattern provided through the variable +\SysVar{LGPIC} of \''tex4ht.c'. + +\def\SysVar#1{\Link{#1}{x-#1}#1\EndLink} + +\EndList + +The character \`'%' can be introduced into a pattern through +the entry \`'%%%'. On the other hand, the parameters \`'%%1', +\`'%%2', and \''%%3' can specify, +between the first two percentage characters (i.e., \`'%...%1', +\`'%...%2', and \`'%...%3'), any format for the outcome that is +compatible with the print formats of C. + +\HCode{}{\bf Alternatives to `{{\tt--- characters ---}}'}\HCode{} + +Substitutions for this abstract command +can be requested in the following locations. + + + + + +\List{disc} +\item +In the +%\Link[\RefFile{overview}]{}{}command line\EndLink{} + \HPage[]{overview} + +\ExitHPage{} + +\InstallSection{The Translation Process} + + +\--tex4ht.sty///\--t4ht.c///\--tex4ht.c///\--\LaTeX///% +\--Scripts///% +The system can be activated with a sequence of +commands of the following form, typically embedded within a script. + +\Verbatim + latex x (or `tex x') + latex x + latex x + tex4ht x + t4ht x +\EndVerbatim + + +The three compilations with La(\TeX) are needed to ensure proper links. +The approach is illustrated in the following picture. + + +\Draw + \TreeSpec(n,\Node & r,\SRectNode)()() + \TreeAlign(H,0,0)(0,0,0) + \MinNodeSize(1,30) +\Tree()( + 1,n,x.tex// + 1,r,TeX // + 1,n,x.dvi // + 3,r,tex4ht // + 0,n,html~~files & 0,n,x.idv & + 0,n,x.lg // +) +\MoveToLoc(4..1) +\CSeg[0.5]\Move(4..1,4..2) + + + \CSeg\Move(0..0,1..0) + \SRectNode(5..0)(--t4ht--) + + \CSeg\Move(0..0,1..0) + \Node(6..0)(--png~\&~css~~files--) + + +\Edge(5..0,6..0) + +\MoveToLoc(5..0) +\CSeg[0.5]\Move(1..0,0..0) \MarkLoc(x) +\HHEdge(4..1,5..0,x) +\HHEdge(4..2,5..0,x) + + \EndDraw + + + + + +\List{} +\item{x.tex} + + This is a source \TeX/\LaTeX/Other\TeX{} file that imports the style + files \''tex4ht.sty' and \''*.4ht'. The style files define + the features for the output. + +\item{tex4ht} + +\--dvi///% +\--Files/dvi//% +The output of \TeX{} is a standard dvi file interleaved with special +instructions for the postprocessor \''tex4ht' to use. The special +instructions come from implicit and explicit requests made in the +source file through commands of \TeX4ht. + +The utility \''tex4ht' translates the dvi code into standard text, +while obeying the requests it gets from the special instructions. The +special instructions may request the creation of files, insertion +of html code, filtering of pictures, and so forth. + +In the extreme case that the source code contains no commands of +\TeX4ht{}, tex4ht gets pure dvi code and it outputs (almost) plain +text with no hypertext elements in it. + +The special ({\tt\string\special}) instructions seeded in the dvi code +are not understood by dvi processors other than those of \TeX4ht. + +\item{x.idv} + +\--dvi///% +\--Files/idv//% +This is a dvi file extracted from \''x.dvi', and it contains the +pictures needed in the html files. + +\item{x.lg} + +\--Files/lg//% +This is a log file listing the pictures of x.idv, the png files that +should be created, CSS information, and user directives introduced +through the \`'\Needs{...}' command. + +\item{t4ht} + +This is an interpreter for executing the requests made in the \''x.lg' +script. + +\EndList + +\InstallSection{A Reflection at the System Messages} + +\bgroup +\def\.#1.{$\Leftarrow$ {\bf #1}} + +\Verbatim-@ +This is TeX, Version 3.14159 (Web2C 7.3.1) @.invoke `latex x'. +LaTeX2e <1998/12/01> patch level 1 +Babel and hyphenation patterns for american, french, german, ngerman, n +ohyphenation, loaded. +(x.tex (/usr/share/texmf/tex/latex/base/article.cls +Document Class: article 1999/01/07 v1.4a Standard LaTeX document class +(/usr/share/texmf/tex/latex/base/size10.clo)) +(n/tex4ht.dir/tex4ht.sty) +(n/tex4ht.dir/tex4ht.sty +--- needs --- tex4ht x --- +(tex4ht.tmp) (x.xref) (n/tex4ht.dir/html4.4ht) +(n/tex4ht.dir/picmath4.4ht) +(n/tex4ht.dir/latex.4ht (n/tex4ht.dir/html4.4ht) +(n/tex4ht.dir/picmath4.4ht)) +(n/tex4ht.dir/fontmath.4ht +(n/tex4ht.dir/html4.4ht) +(n/tex4ht.dir/picmath4.4ht)) +(n/tex4ht.dir/article.4ht (n/tex4ht.dir/html4.4ht +) (n/tex4ht.dir/picmath4.4ht))) (x.aux) +--- file x.css --- +[1] (x.aux) ) +Output written on x.dvi (1 page, 4460 bytes). +Transcript written on x.log. +This is TeX, Version 3.14159 (Web2C 7.3.1) @.invoke `latex x'. +LaTeX2e <1998/12/01> patch level 1 +....................... +This is TeX, Version 3.14159 (Web2C 7.3.1) @.invoke `latex x'. +LaTeX2e <1998/12/01> patch level 1 +....................... +tex4ht.c (1999-11-10-03-50) @.invoke `tex4ht x'. +(tex4ht.env) +(n/tex4ht.dir/tex4ht.fls) +(/usr/share/texmf/fonts/tfm/public/cm/cmr10.tfm) +(n/tex4ht.dir/ht-fonts/iso8859/cm/cmr.htf) +[1 file x.html + file x.css + file tex4ht.tmp +] +Execute script `x.lg' +t4ht.c (1999-12-30-21-14) @.invoke `t4ht x'. +Entering tex4ht.env +Entering x.lg +....................... +\EndVerbatim \egroup + + + + +\EndHPage{} +of \''tex4ht', prefixed with \`'-b'. + +\item In a line within the environment file +\`'tex4ht.file', where the line should be identified with the character +`\Link{bsc-1}{bsc}b\EndLink{}'. + +\gdef\SysVar#1{\Link{x-#1}{#1}#1\EndLink} + +\item In \''tex4ht' with the substitution provided +during compilation time through the variable \SysVar{LGSEP} of +\''tex4ht.c'. + +\def\SysVar#1{\Link{#1}{x-#1}#1\EndLink} + +\EndList + +\EndHPage{} +for the t4ht utility. +\EndList + + +%%%%%%%%%%%%%%%%%%%%%%%% + +\HPage{} + +\ExitHPage{exit} + +\InstallSection{Directories for the Virtual Hypertext Fonts (htf)} + +\--Fonts/htf//%% +\--tex4ht.c/Compiling//% +\--Kpathsea///% +\--Environment Variables///% +\Link{}{alt-htf}\EndLink% +Each font of TeX may have numerous virtual hypertext font to map to. +The \Link{ch.i}{}i directives\EndLink{} of \''tex4ht.env', as well as +the i switches of the \''tex4ht' command, may be used to identify the +subdirectories where the target virtual fonts are to be found. + +\TeX4ht searches the hypertext fonts in the working directory, and + in the following optional directories, in the given order. + + +\List{disc} +\item +The directory named +in the \Link[\RefFile{overview}]{}{}command line\EndLink{} +of tex4ht, identified with the prefix \`'-i'. + + +\item The directory identified with the character +\Link{ch.i}{ch-i} \`'i'\EndLink{} +in the tex4ht.env file. + +\item +The directory whose name is encoded into tex4ht +during compilation time, +within a string \''"..."' fed into the variable +\SysVar{HTFDIR} of tex4ht.c. + +\item In the directory holding the executable \''tex4ht' (only +for MS Windows). + +\EndList + + +A given address may start with the character \`'~' or the +character pair \`'~~'. The single character \`'~' is interpreted to be the +directory address of the root, provided in an environment variable +named \''HOME'. +The character pair \`'~~' is interpreted to be the +directory address provided in an environment variable +named \''TEX4HTHTF'. The address stored in the latter environment +variable may also start with a single character \`'~'. + + +The optional environment variable \''TEX4HTHTF' may hold one +or more addresses. The addresses must be separated by a +character which does not appear in the addresses, and that +character must also delimit the content at the start and end points. + + If the program \''tex4ht.c' is compiled +with the \`'-DKPATHSEA' switch on, +\TeX4ht ignores its own search and delegate it to the kpathsea utility. +\EndHPage{} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + \EndHPage{}. +The distribution assumes compilations through command lines but + \HPage{graphical user inferfaces} + +\--Graphical User Interfaces///% + +\List{*} +\item +\Link[http://www.mayer.dial.pipex.com/tex.htm]{}{}\TeX{} Converter\EndLink{} +(Steve Mayer). Supports a set of converters on MS Windows, +including \TeX4ht. + + + +\item + \Link[http://www.simpletex4ht.free.fr/ + target="\string_blank"]{}{} SimpleTeX4ht\EndLink{} +(Yves Gesnel). A Mac OS X GUI. + + +\item +\TeX4ht +\HPage{integrated into the WinShell} +I was successful with integrating TeXh4t win WinShell 2.2.1 +from Texlive 7 distribution. By inserting ``user tools'' you can +have an editor from which there is a quick access to not only +LaTeX, (standard makeindex - not provided but explained in help support), +PDFLaTeX, Dvi, GsView, Acrobat Reader, but also to TeXh4t (DOS switch +MUST be OFF as logspace has not enough room for long log files produced +by TeXh4t), to two stage makeindex procedure and to Mozilla browser. + + + + +\EndHPage{} + graphical user interface +of Ingo H. de Boer + for working with TeX. +(Piotr Grabowski) % + +\item +\Link[https://ctan.org/tex-archive/systems/win32/bakoma/programs/texword.html]{}{}BaKoMa +\TeX{} Word\EndLink . A WYSIWYG \LaTeX{} editor with HTML expot +through \TeX4ht . +\EndList + +\EndHPage{} may also be employed. + + + + Philip A. Viton discusses in details issues of installing \TeX4ht under + \Link[https://web.archive.org/web/20170701025148/http://facweb.knowlton.ohio-state.edu/pviton/support/tex4ht.html]{}{}Mik\TeX\EndLink{} and + \Link[https://web.archive.org/web/20170909235854/http://facweb.knowlton.ohio-state.edu/pviton/support/swpht.html]{}{}Scientific + Word/WorkPlace\EndLink, but many of the topics apply + also to other platforms. Steven Zeil offers + \Link[https://web.archive.org/web/20060617212822/http://www.cs.odu.edu/\string~zeil/tex4ht/tex4ht\string_discussion.html]{}{}improvements\EndLink{} for the above + settings. + + + + + The \Link[http://svn.gnu.org.ua/viewvc/tex4ht/trunk/lit/]{}{}literate sources\EndLink{} of \TeX4ht + are also available, but they are not needed for installing the + system. The literate views are very far from being in a desirable + state for a review by a public eye---they reflect their true nature as + being privately used for developing and maintaining the available + code. The views follow a basement mentality: throw in without much + scrutiny any item of possible value at some point of time, and clean + a corner when the need arises for working on a specific issue of the + code. The leading lines in the files indicate how the files can be compiled. + + + +\noindent \Link{trbl-sht}{}troubleshooting\EndLink +{\tt |} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \HCode{}\Link[bugfixes.html]{}{}bug fixes\EndLink + \HCode{} + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\DocPart{Bug Reports} +%%%%%%%%%%%%%%%%%%%%%%%%%% + +The development of the \TeX4ht system is to a large degree +driven by users' bug reports +and requests. The bug reports can be posted on +\Link[https://puszcza.gnu.org.ua/bugs/?group=tex4ht]{}{}\TeX4ht issue tracker\EndLink. +In most cases, when providing feedback, it is essential to include the +following information. + +\List{*} +\item A +\NextFile{\jobname-bug.html}\HPage{minimal}\ExitHPage{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\List{*} +\item Remove the calls to packages that are not essential to reproduce the problem + (e.g., \Verb=\RequirePackage=, \Verb=\usepakage=) + +\item Remove the local definitions that are not essential. +For instance, use + +\Verbatim +\begin{figure} + \includegraphics{filename} + \caption{What ever.} +\end{figure} +\EndVerbatim + +instead of + +\Verbatim +\def\fig#1#2{\begin{figure} \includegraphics{#1} \caption{#2} \end{figure}} +\fig{filename}{What ever.} +\EndVerbatim + +\item Use core classes when possible (e.g., \Verb=article= instead of \Verb=scrbook=). + +\item Cut to a minimum the content where possible + (e.g., `Abc' instead of `Blah blah ... for ever.') +\EndList + + +We work in a \LaTeX{} environment different from where the bug reports +typically originate. To understand the bugs we need to recreate the +environments producing them. A sample file that isolates the +problem reduces the debugging effort to a minimum. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\EndHPage{} miniature complete source file illustrating the +issues involved, but do not include bitmap files loaded by the +sources (e.g., PNG files). Since similar constructs are introduced within different +style files, a minimal source is required for correctly pinpointing the +definitions of the constructs involved in the translation. + + + +\item Specifying the command used to invoke the translation. This +information is required since the command determines which +configurations participate in the translation. + +\item Occasionally it might also be useful to have a url where the files +and messages produced during the compilation can be viewed. Unless +explicitly requested, please don't email such information. + +\EndList + + +Translations of source files are centered on logical structures. +Formatting instructions receive only limited attention. + + + +\DocPart{Resources} + + +% From: Sebastian Rahtz +% Date: Fri, 4 Sep 1998 10:16:12 +0100 ( `) +% To: plaice@cse.unsw.edu.au +% cc: gurari@cse.ohio-state.edu +% Subject: Re: tex to mathml +% +% John Plaice writes: +% +% +% > i've changed the tex engine so that entities get recognized at the +% > font level or at the mathcode/delcode level. there are also new macros for +% > \sgmlstarttag, \sgmlendtag, \sgmlemptytag and \sgmlentity. +% > plus with versioned macros, you can have highly optimized translations +% > that do everything correctly. +% ok so far. you do in the TeX engine what Eitan has to do in the dvi +% post-processor. but +% +% - you still have to write an extensive macro package to do the actual +% mapping, I assume? +% - how do you get the XML file out the end? is Omega writing a text +% file, or are you going to extract from the dvi file? +% +% > it should be finished in about 2 weeks. +% shall be fascinated to see it +% +% sebastian + + +\HTable^/\Css{\#TBL-\TableNo\space td{font-size:75\%;}} +Languages: \& +\HPage{LaTeX/TeX} +\ExitHPage{}\SubSection{LaTeX/TeX} +\List{disc} +\item + \Link[http://www.mech.gla.ac.uk/\string + ~donald/talks/LaTeX/slides.html + target="\string_blank"]{}{}% + Introduction to \LaTeX \EndLink{} (A. J. Hildebrand) +\item + \Link[http://www.cs.rug.nl/\string + ~rein/csrugonly/latex/latexdoc/latexdoc.html + target="\string_blank"]{}{}% + What's LaTeX all about?\EndLink{} (Rein Smedinga) +\item + \Link[http://web.mit.edu/olh/Latex/ess-latex.html + target="\string_blank"]{}{}% + Essential \LaTeX \EndLink{} (Sharon Belville, Matthew Swift) +\item + \Link[http://www.cs.cornell.edu/Info/Misc/LaTeX-Tutorial/LaTeX-Home.html + target="\string_blank"]{}{}% + Beginning LaTeX\EndLink{} (Denise Moore) +\item + \Link[http://www.cs.stir.ac.uk/guides/latex/guide.html + target="\string_blank"]{}{}% + Document Preparation with \LaTeX\EndLink{} (David Budgen, Sam Nelson) +\item + \Link[http://www.sci.usq.edu.au/staff/robertsa/LaTeX/latexintro.html + target="\string_blank"]{}{}\LaTeX: from quick and dirty to style and finesse\EndLink{} (Tony Roberts) +\item + \Link[http://www.maths.tcd.ie/\string + ~dwilkins/LaTeXPrimer/Index.html + target="\string_blank"]{}{}Getting Started with \LaTeX\EndLink{} (David R. Wilkins) +\item \Link[http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/latex\string_advanced/latex\string_advanced.html + target="\string_blank"]{}{}Advanced \LaTeX \EndLink {} (Tim Love) +\item +\Link[http://www.giss.nasa.gov/latex/ltx-2.html + target="\string_blank"]{}{}\LaTeX{} commands\EndLink{} (Sheldon Green) +\item +\Link[http://tex.loria.fr/ctan-doc/macros/latex/doc/html/fntguide/fntguide.html + target="\string_blank"]{}{}\LaTeX2e + font selection\EndLink{} +\item + \Link[http://makingtexwork.sourceforge.net/mtw/ + target="\string_blank"]{}{}Making \TeX{} Work\EndLink{} (Norman Walsh) +\item + \Link[http://profs.sci.univr.it/\string ~gregorio/orrori.pdf + target="\string_blank"]{}{}Horrors in LaTeX: how to mistreat LaTeX and make a copy +> editor unhappy\EndLink{} (Enrico Gregorio). Commented in Italian. +\item + \Link[http://www.non.com/books/TeX\string_cc.html + target="\string_blank"]{}{}Books\EndLink{} +\item + \Link[news:comp.text.tex + target="\string_blank"]{}{}newsgroup comp.text.tex\EndLink +\item + \Link[http://www.esm.psu.edu/mac-tex/ + target="\string_blank"]{}{}MacOSX TeX/LaTeX Web Site\EndLink +\item + \Link[http://www.dante.de/cgi-bin/ctan-index + target="\string_blank"]{}{}Archive Search\EndLink{} +\item + \Link[http://en.wikibooks.org/wiki/LaTeX + target="\string_blank"]{}{}LaTeX Wiki\EndLink{} +\EndList +\EndHPage{}, +\HPage{HTML}\ExitHPage{}\SubSection{HTML} +\List{disc} +\item +\Link[http://www.w3.org/MarkUp/Guide/ + target="\string_blank"]{}{}Getting started + with HTML\EndLink{} (Dave Raggett) +\item + \Link[http://www.htmlhelp.com/reference/wilbur/overview.html + target="\string_blank"]{}{}% +HTML 3.2: Wilbur\EndLink{} (WDG: Web Design Group) +\item + \Link[http://www.w3.org/TR/html401/ + target="\string_blank"]{}{}% + HTML 4.01 Specification\EndLink{} (W3C), + \Link[http://www.w3.org/MarkUp/Test/HTML401/current/tests/index.html + target="\string_blank"]{}{}% + examples\EndLink{} +\item + \Link[http://www.w3.org/MarkUp/ + target="\string_blank"]{}{}% + XHTML\EndLink{} (W3C) +\EndList +\EndHPage{}, +\HPage{XML/XSLT}\ExitHPage{}\SubSection{XML/XSLT} +\List{disc} +\item + \Link[http://www.w3.org/TR/REC-xml + target="\string_blank"]{}{}% + XML\EndLink{} (W3C), + \Link[http://www.garshol.priv.no/download/text/xml-intro/index-en.html + target="\string_blank"]{}{}% + An Introduction to XML\EndLink{} (Lars Marius Garshol) +\item +XSLT: +\Link[http://www.w3.org/TR/xslt + target="\string_blank"]{}{}W3C\EndLink, + \Link[http://www.devguru.com/Technologies/xslt/quickref/xslt\string + _index.html + target="\string_blank"]{}{}DevGuru index\EndLink, + \Link[http://metalab.unc.edu/xml/books/bible/updates/14.html + target="\string_blank"]{}{}tutorial\EndLink{} (XML Bible), + \Link[http://nwalsh.com/docs/tutorials/xsl/xsl/slides.html + target="\string_blank"]{}{}tutorial\EndLink{} (Groso and Walsh) +\item + \Link[http://www.w3.org/TR/xpath + target="\string_blank"]{}{}XPATH\EndLink{} (W3C) +\item +Pointers (Robin Cover): + \Link[http://www.oasis-open.org/cover/sgml-tex.html + target="\string_blank"]{}{}% + SGML/XML and (La)\TeX\EndLink{}, + \Link[http://www.oasis-open.org/cover/xml.html + target="\string_blank"]{}{}% + SGML/XML\EndLink{}, + \Link[http://www.oasis-open.org/cover/xsl.html + target="\string_blank"]{}{}% + XSL\EndLink{} +\item + \Link[http://www.xml.com/pub/pt/3 + target="\string_blank"]{}{}% + editors\EndLink{} (XML.com) + + +\EndList +\EndHPage{}, +% +\HPage{MathML}\ExitHPage{}\SubSection{MathML} +\List{disc} +%----------------------------------------------------------------------------------- +\item +\Link[http://www.w3.org/TR/MathML2/ + target="\string_blank"]{}{}% +Specifications\EndLink{}. +%----------------------------------------------------------------------------------- +\item +\Link[http://www.w3.org/Math/ + target="\string_blank"]{}{}% +W3C's Math Home Page\EndLink{}. +%----------------------------------------------------------------------------------- +\item +\Link[http://www.w3.org/Amaya/ + target="\string_blank"]{}{}% +Amaya\EndLink{}. + A browser capable of viewing MathML. +%----------------------------------------------------------------------------------- +\item +\Link[http://www.dessci.com/webmath/mathplayer/ + target="\string_blank"]{}{}% +MathPlayer\EndLink{}. +A MathML display engine for the MicroSoft's Internet Explorer web browser. +%----------------------------------------------------------------------------------- +\item +\Link[http://www.mozilla.org + target="\string_blank"]{}{}% +Mozilla\EndLink{}. +A MathML enabled browser +%----------------------------------------------------------------------------------- +\item +\Link[http://www.integretechpub.com/ + target="\string_blank"]{}{}% +TechExplorer\EndLink{}. + A plug-in for viewing + a large subset of +\TeX, \LaTeX, and AMS-\LaTeX, as well as MathML. +% %--------------------------------------------------------------------------- +\item +\Link[http://www.dessci.com + target="\string_blank"]{}{}WebEQ\EndLink{}. A +Java-based renderer for MathML. +%--------------------------------------------------------------------------- +\item +\Link[ftp://ftp.tex.ac.uk/tex-archive/macros/xmltex/base/manual.html + target="\string_blank"]{}{}XML\TeX\EndLink{}. +LaTeX-based formatter for MathML. +%--------------------------------------------------------------------------- +\item +\Link[http://www.pragma-ade.com/ + target="\string_blank"]{}{}Con\TeX t\EndLink{}. +TeX-based formatter for MathML +%--------------------------------------------------------------------------- +\item +\Link[http://www.alanwood.net/unicode/ + target="\string_blank"]{}{}% +Unicode fonts\EndLink{} for browsers (Alan Wood). +% +% Piotr Grabowski +% I would like to share withe you a solution I found for zingbats unicode fonts. +% The solution followed Alan Wood's unicode resource. +% +% This is really a big resource. I studied what is written therein. Soon it +% turned out +% that I do not have enough font characters. From zingbats test I found that +% I had only +% a few characters. The remedium was to install ARIAL UNICODE MS for Win. +% The web page address is attached to the list of Arial fonts on Alan Wood's +% page. +% I downloaded and installed it - the problem disappeared all zingbats +% unicode characters +% are now visible. Alan Wood's web page is also recommending such tools as, +% e.g. Character Agent +% to verify what type of fonts you really have in your machine. Such tools as +% ``character map'' +% normally available in Win systems are toys! +% +% New Mozilla is quite nice - red fonts are now all in black as the rest. + +%----------------------------------------------------------------------------------- + + +\EndList +\EndHPage{}, +% +\HPage{OpenDocument}\ExitHPage{}\SubSection{OpenDocument}\--OpenDocument///% +\List{disc} +\item + \Link[http://books.evc-cit.info/odbook/book.html + target="\string_blank"]{}{}% + OpenDocument Essentials\EndLink{} (OASIS) +\item + \Link[http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pd + target="\string_blank"]{}{}% + Open Document Format for Office Applications\EndLink{} (OASIS) +\EndList +\EndHPage{}, +% +\HPage{DocBook}\ExitHPage{}\SubSection{DocBook}\--DocBook///% +\List{disc} +\item + \Link[http://www.oasis-open.org/docbook/xml/ + target="\string_blank"]{}{}% + The official DocBook Homepage\EndLink{} (Oasis) +\item + \Link[http://www.docbook.org/tdg5/en/html/docbook.html + target="\string_blank"]{}{}% + DocBook: The Definitive Guide\EndLink{} (Norman Walsh and Leonard Muellner) + +\item + \Link[http://db2latex.sourceforge.net/ + target="\string_blank"]{}{}% + DB2LaTeX XSL Stylesheets\EndLink{} + +\EndList +\EndHPage{}, +% +\HPage{TEI}\ExitHPage{}\SubSection{TEI} +\--TEI///% +\List{disc} +\item +\Link[http://www.tei-c.org/ + target="\string_blank" ]{}{}Home page\EndLink{} +\item +\Link[http://www.oasis-open.org/cover/tei.html + target="\string_blank" ]{}{}XML TEI\EndLink{} +(OASIS) +\EndList +\EndHPage{}, +% +\HPage{Style Sheets}\ExitHPage{}\SubSection{Style Sheets} +\List{disc} +\item + \Link[http://www.w3.org/Style/CSS/ + target="\string_blank"]{}{}% + CSS (W3C)\EndLink{} + (\Link[http://www.w3.org/TR/REC-CSS1 + target="\string_blank"]{}{}% + CSS1\EndLink{}, + \Link[http://www.w3.org/TR/REC-CSS2 + target="\string_blank"]{}{}% + CSS2\EndLink{}, + \Link[http://www.w3.org/Style/CSS/Test/ + target="\string_blank"]{}{}% + examples\EndLink{}) +\item + \Link[http://library.thinkquest.org/15074/cssmain.html + target="\string_blank"]{}{}% + tutorial\EndLink{} (Oracle ThinkQuest) +\item + \Link[http://www.w3.org/MarkUp/Guide/Style + target="\string_blank"]{}{}% +CSS tutorial\EndLink{} (Dave Raggett) +\item + \Link[http://www.w3.org/TR/WD-xsl/ + target="\string_blank"]{}{}% + XSL\EndLink{} (W3C) +\item + \Link[http://www.w3.org/TR/xsl/ + target="\string_blank"]{}{}XSL-FO\EndLink{} (W3C) +\item + \Link[http://nwalsh.com/docs/tutorials/xsl/xsl/slides.html + target="\string_blank"]{}{}XSL Concepts and Practical Use\EndLink{} (Paul Grosso and Norman Walsh) +\EndList +\EndHPage{}, +% +\HPage{Validators}\ExitHPage{}\SubSection{Validators} + +\--Validation///% +\List{disc} +\item XML: xmllint +\item +CSS: +\Link[http://jigsaw.w3.org/css-validator/ + target="\string_blank" ]{}{}WDG + jigsaw.w3.org\EndLink{} + + + +\EndList +\EndHPage{} +% +\CR +Converters\BR into\BR HTML/XML: \& + +% http://union.ncsa.uiuc.edu/HyperNews/get/www/html/converters.html + +\ResourceList + + +%-------------------------------------------------------------------------- +\Item +\Link[http://www.astro.gla.ac.uk/users/norman/distrib/bibhtml.html + target="\string_blank"]{}{}BibHTML\EndLink{}\author + (Norman Gray)\ContItem +A Bib\TeX{} to HTML converter. +%-------------------------------------------------------------------------- +% \Item +% \Link[http://sgalland.multimania.com/english/tools/bib2html/ +% target="\string_blank"]{}{}Bib2HTML\EndLink{}\author +% (Stephane Galland)\ContItem +% Perl script for creating HTML output from a Bib\TeX{} database. +% Stéphane Galland +% at home sgalland@multimania.com +%-------------------------------------------------------------------------- +% \Item +% \Link[http://rikblok.cjb.net/scripts/bbl2html.awk +% target="\string_blank"]{}{}Bib2HTML\EndLink{}\author +% (Rik Blok)\ContItem +% AWK script for creating HTML output from a Bib\TeX{} database. +% %-------------------------------------------------------------------------- +% \Item +% \Link[http://www.uni-koblenz.de/ag-ki/ftp/bib2html/ +% target="\string_blank"]{}{}Bib2HTML\EndLink{}\author +% (David Hull)\ContItem +% Perl script for creating HTML output from a Bib\TeX{} database. +%-------------------------------------------------------------------------- +\Item +\Link[http://www.ibiblio.org/pub/packages/TeX/biblio/bibtex/utils/bibtools/bib2html + target="\string_blank"]{}{}Bib2HTML\EndLink{}\author + (David Kotz)\ContItem +Perl script for creating HTML output from a Bib\TeX{} database. +%-------------------------------------------------------------------------- +%-------------------------------------------------------------------------- +\Item +\Link[http://www.shelldorado.com/scripts/cmds/bib2html.txt + target="\string_blank"]{}{}Bib2HTML\EndLink{}\author + (Heiner Steven)\ContItem +AWK script for creating HTML output from a Bib\TeX{} database. +%-------------------------------------------------------------------------- +\Item +\Link[http://www.spinellis.gr/sw/textproc/bib2xhtml/ + target="\string_blank"]{}{}Bib2XHTML\EndLink{}\author + (Diomidis Spinelli)\ContItem +Bibtex styles and a Perl script driver for creating XHTML output from +BibTeX citations. +%-------------------------------------------------------------------------- +\Item +\Link[https://ctan.org/pkg/bib2ml + target="\string_blank"]{}{}Bib2ML\EndLink{}\author + (St\'ephane Galland)\ContItem + A Perl script for generating HTML, XML and SQL files +from Bib\TeX{} databases. +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.lri.fr/\string ~filliatr/bibtex2html/index.en.html + target="\string_blank"]{}{}Bib\TeX2HTML\EndLink{}\author + (Jean-Christophe Filliatre)\ContItem +A Bib\TeX{} to HTML converter written in Objective Caml. +%-------------------------------------------------------------------------- +\Item +\Link[http://www.blahtex.org/ + target="\string_blank"]{}{}Bib\TeX2HTML\EndLink{}\author + (David Harvey)\ContItem +A tool that translates TeX math into MathML for MediaWiki +%----------------------------------------------------------------------------------- +%%--------------------------------------------------------------------------- +\Item +\Link[http://www.mostang.com/\%7Edavidm/dlh.html + target="\string_blank"]{}{}Dlh\EndLink{}\author (David Mosberger)\ContItem + A C translator for converting from a subset of \LaTeX{} to HTML. +%----------------------------------------------------------- +% \Item +% \Link[http://www.dcs.fmph.uniba.sk/\string~emt/EmSystem.html +% target="\string_blank"]{}{}Euromath\EndLink{} \ContItem +% A converter from +% \LaTeX{} to Euromath SGML +%----------------------------------------------------------------------------------- +\Item +\Link[http://math.albany.edu:8000/math/pers/hammond/igl.html + target="\string_blank"]{}{}GELLMU\EndLink{}\author + (William F. Hammond)\ContItem + A general-purpose SGML authoring language based on +\LaTeX{} syntax. +% +% GELLMU is not LaTeX nor is it an HTML generator (but see below); rather it +% is a general-purpose SGML authoring language that is based on traditional +% LaTeX syntax (to the extent possible). +% +% The design of GELLMU envisions a three stage system. +% +% Stage 1 uses an E-lisp program to convert GELLMU input into an SGML +% document. (E-lisp is the dialect of Lisp that underlies GNU Emacs.) +% +% Stage 2 uses the SGML parser ``nsgmls'' of James Clark to produced a fully +% parsed text stream from the SGML arising out of stage 1. +% +% Stage 3 uses author-provided collections of Perl codelets for David +% Megginson's ``sgmlspl'' SGML-processing program, actually more of a +% % framework, that is part of his ``sgmlspm'' Perl library. +%----------------------------------------------------------------------------------- +% \Item +% \Link[http://www.psyx.org/mowgli/ +% target="\string_blank"]{}{}Hermes\EndLink{}\author +% (Romeo Anghelache)\ContItem +% A converted for a subset of \LaTeX{} concentrating on getting content-MathML +% out of math. +% From: Romeo Anghelache +% Date: Fri, 26 Sep 2003 14:03:23 +0200 +% Message-ID: <3F742B0B.4040703@psyx.org> +% To: www-math@w3.org +% +% +% Hi, +% +% a new tool for getting Content-MathML out of LaTeX sources is in current +% development, its name is Hermes. +% Current version is 0.7 and is relatively useful for testing and feedback. +% It is covered by GPL, the details and the sources are available here +% (http://www.psyx.org/mowgli/). +% +% The official Hermes pages/presentations will grow here: +% http://relativity.livingreviews.org/Info/AboutLR/mowgli/index.html +% +% The updated source distributions versions of hermes will be also +% available on the MoWGLI project's website (http://www.mowgli.cs.unibo.it). +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.aei.mpg.de/hermes/ + target="\string_blank"]{}{}Hermes\EndLink{}\author + (Romeo Anghelache)\ContItem +A LaTeX to XML convertor with a presentation MathML target for math. +When possible, content MathML code is introduced as a wrapper that supplies semantics to the expressions. +Sources are compiled +with the native \TeX{} compiler to obtain output seeded with DVI specials. +A postprocessor extracts the output from the DVI code. + % http://www.ictp.trieste.it/~its/2004/casestudies/1/Hermes_files/frame.htm +%----------------------------------------------------------------------------------- +\Item +\Link[http://para.inria.fr/\string~maranget/hevea + target="\string_blank"]{}{}HEVEA\EndLink{}\author + (Luc Maranget)\ContItem +An Objective Caml translator from a subset of \LaTeX{} to HTML. +% From Luc.Maranget@inria.fr Mon Aug 3 00:29:53 EDT 1998 +% Article: 145813 of comp.text.tex +% Path: news.cse.ohio-state.edu!nntp.sei.cmu.edu!bb3.andrew.cmu.edu!honeys.cs.cmu.edu!goldenapple.srv.cs.cmu.edu!not-for-mail +% From: maranget@conti.inria.fr (Luc Maranget) +% Newsgroups: comp.text.tex +% Subject: HEVEA 1.0, a LaTeX to HTML translator in Caml +% Date: 1 Aug 1998 17:49:11 GMT +% Organization: INRIA Rocquencourt +% Lines: 41 +% Distribution: world +% Message-ID: <6pvken$3un$1@goldenapple.srv.cs.cmu.edu> +% Reply-To: Luc.Maranget@inria.fr +% NNTP-Posting-Host: raw.fox.cs.cmu.edu +% Originator: rowan@raw.fox.cs.cmu.edu +% Xref: news.cse.ohio-state.edu comp.text.tex:145813 +% +% It is my pleasure to anounce the first release of HEVEA. +% +% This is HEVEA, version 1.0, a fast LaTeX to HTML translator. +% +% +% HEVEA is a LaTeX to HTML translator. The input language is a fairly +% complete subset of LaTeX2e (old LaTeX style is also accepted) and the +% output language is HTML that is (hopefully) correct with respect to +% version 3.2. +% +% Exotic symbols are translated into symbols +% pertaining to the symbol font of the HTML browser, using the +% non-standard FACE attribute of the FONT tag. +% This allows the translation to HTML of quite a lot of the symbols +% used in LaTeX. +% +% HEVEA understands LaTeX macro definitions. Simple user style +% files are understood with little or no modifications. +% Furthermore, HEVEA customization is done by writing LaTeX code. +% +% HEVEA is written in Objective Caml, as many lexers. It is quite fast +% and flexible. Using HEVEA it is possible to translate large documents +% such as manuals, books, etc. very quickly. All documents are +% translated as one single HTML file. Then, the output file can be cut +% into smaller files, using the companion program HACHA. +% +% CONTACTS +% mail: Luc.Maranget@inria.fr +% distribution: ftp://ftp.inria.fr/INRIA/Project/para/hevea +% +% DOCUMENTATION +% On-line documentation is available at +% http://para.inria.fr/~maranget/hevea +% The first sections explain how to use hevea. +% +% IMPORTANT REQUIREMENT +% To compile HEVEA, you need Objective Caml 1.07, see +% http://caml.inria.fr/ocaml/ +% +% --Luc Maranget +% +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.gams.com/contrib/htex/htex.htm + target="\string_blank"]{}{}H\TeX\EndLink{}\author + (Thomas F. Rutherford)\ContItem + A preprocessor which expands +html by a new tag: \`'..'. An \''' +signifies the start of a \LaTeX-readable equation, +and a \''' indicates the end of an equation. Anything appearing +between these tags is treated as \LaTeX{} commands within a \`'displaymath' + section of a \LaTeX{} document. +% +%--------------------------------------------------------------------------- +\Item +\Link[http://www-db.stanford.edu/\string~sergey/htmltex/ + target="\string_blank"]{}{}Html\TeX\EndLink{} \author (Sergey Brin)\ContItem +Perl script for converting a subset of \LaTeX{} to HTML +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.southernct.edu/\string ~fields/htmx/ + target="\string_blank"]{}{}HTMX\EndLink{}\author (Joe Fields)\ContItem +Perl script for translating \LaTeX{} equations embedded within HTML into gif. +% +%----------------------------------------------------------------------------------- +\Item +\Link[http://hyperlatex.sourceforge.net/ + target="\string_blank"]{}{}Hyper\LaTeX\EndLink{}\author (Otfried Cheong)\ContItem +A processor for a subset of \LaTeX{} enriched with hypertext-oriented +commands. +% http://www.cs.uu.nl/\string~otfried/Hyperlatex +% +% \Link[http://www.postech.ac.kr/\string~otfried/html/hyperlatex.html +% +% In anticipation of my moving to Hong Kong, I have already moved the +% Hyperlatex homepage to ``http://www.cs.ust.hk/~otfried/hyperlatex.html''. +% The primary ftp distribution site is now ``ftp.cs.ust.hk:/pub/ipe''. +% +% Please update all links you may have to the Hyperlatex pages. +% (Roland, can you update the introductory text on the mailing list?) +% +% Otfried +% +%------------------------------------------------------------------------------ says that ----- +\Item +\Link[http://xxx.lanl.gov/hypertex/ + target="\string_blank"]{}{}Hyper\TeX\EndLink{}\author +(Tanmoy Bhattacharya, David Carlisle, Mark Doyle, Paul Ginsparg, Alan +Jeffrey, Hiroshi Kubo, Kasper Peeters, Sebastian Rahtz and Arthur +Smith)\ContItem{} A convention for inclusion of hyperlinks in TeX and LaTeX +documents, supported by packages that automatically introduce the +links into the code. +% +% 4.Invest in the hyperTeX conventions (standardised \special commands); +% there are supporting macro +% packages for plain TeX and LaTeX). +% +% The HyperTeX project aims to extend the functionality of all the LaTeX +% cross-referencing commands (including +% the table of contents) to produce \special commands which are parsed +% by DVI processors conforming to +% the HyperTeX guidelines; it provides general hypertext links, +% including those to external documents. +% +% The HyperTeX spec viewers/translators +% must recognize the following set of +% \special commands: +% +% href: +% html: +% name: +% html: +% end: +% html: +% image: +% html: +% base_name: +% html: +% +% The href, name and end commands are used to do the basic hypertext +% operations of establishing links between +% sections of documents. +% +% Further details are available on http://xxx.lanl.gov/hypertex/; there +% are two commonly-used implementations of +% the specification, a modified xdvi and a modified dvips. Output from +% the latter may be used in a modified +% GhostScript or Acrobat Distiller. +%----------------------------------------------------------------------------------- +\Item +\Link[http://pear.math.pitt.edu/mathzilla/itex2mmlItex.html + target="\string_blank"]{}{}Itex2mml\EndLink{}\author + (Paul Gartside)\ContItem +A C program for translating a dialect of \LaTeX{} into MathML. +%----------------------------------------------------------------------------------- +\Item +\Link[http://dlmf.nist.gov/LaTeXML/ + target="\string_blank"]{}{}\LaTeX ML\EndLink{}\author + (Bruce Miller)\ContItem +A program for translating \LaTeX{} into XML (including XHTML and MathML). +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.tug.org/mailman/listinfo/latex2html + target="\string_blank"]{}{}\LaTeX 2HTML\EndLink{}\author + (Nikos Drakos)\ContItem + A perl script for translating \LaTeX{} into HTML. +% +% http://www.latex2html.org +% https://lists.tug.org/latex2html +% +% LaTeX2HTML needs Perl, the PBM utilities, dvips, GhostScript, and +% other sundries; it assumes it is running on a Unix system. Michel +% Goossens and Janne Saarela published a detailed discussion of +% LaTeX2HTML, and how to tailor it, in TUGboat 16(2). +%----------------------------------------------------------------------------------- +% \Item +% \Link[http://sunsite.sut.ac.jp/pub/archives/ctan/support/latex2hyp/ +% target="\string_blank"]{}{}\LaTeX 2hyp\EndLink{}\author +% (Roger Nelson)\ContItem +% A C program for converting \TeX{} and \LaTeX{} documents +% into plain text, capable of introducing HTML links. +%%----------------------------------------------------------------------------------- +\Item +\Link[http://ctan.tug.org/tex-archive/support/latex2man/latex2man.html + target="\string_blank"]{}{}\LaTeX 2man\EndLink{}\author + (J\"urgen Vollmer)\ContItem +A Perl script for translating UNIX manual pages written with \LaTeX{} + into UNIX man(1)-command, HTML, or Texinfo code. +%%----------------------------------------------------------------------------------- +% \Item +% \Link[http://www.soft4science.com/fr\string +% _index.html?/products/LaTeX2MathML/s4s\string_LaTeX2MathML.html +% target="\string_blank"]{}{}\LaTeX 2MathML\EndLink{}\author +% (Soft4Science)\ContItem +% A Microsoft .NET Framework program for translating LaTeX math expressions into MathML. +% +%%----------------------------------------------------------------------------------- + \Item + \Link[http://www.localghost.at/latex2mathml/ + target="\string_blank"]{}{}\LaTeX 2MathML\EndLink{}\author + (Jens Breit)\ContItem +A Python program to translate \LaTeX{} math into MathML. +%%----------------------------------------------------------------------------------- + \Item + \Link[http://www.cucat.org/projects/latex2mathml/index.php + target="\string_blank"]{}{}\LaTeX 2MathML\EndLink{}\author + (Greg Kearney)\ContItem + A Macintosh program to translate \LaTeX{} math into MathML. +% +% >From: Greg Kearney +% >To: Technical Developments Discussion List +% >, +% > Discussion of Digital Talking Books , +% > macvoiceover +% >Subject: LaTeX2MathML +% >Date: Sat, 31 Jan 2009 18:21:47 -0700 +% >X-Mailer: Apple Mail (2.930.3) +% > +% > +% >With the advent of MathML support in DAISY I have put together a +% >simple MacOS X program that will convert LaTeX math code into MathML +% >code. This is a GUI for blahtex. It is a universal application (intal +% >and PPC). You can get it and the Xcode source code from the following +% >URL: +% > +% >http://www.cucat.org/projects/latex2mathml/index.php +% > +% >Greg Kearney +% >535 S. Jackson St. +% >Casper, Wyoming 82601 +% >307-224-4022 +% >gkearney@gmail.com + +%%----------------------------------------------------------------------------------- +\Item +\Link[http://perso.wanadoo.fr/eric.chopin/latex/latex_subset.htm + target="\string_blank"]{}{}\LaTeX 4Web\EndLink{}\author + (Eric Chopin)\ContItem +A javascript for translating a subset of \LaTeX{} to HTML. +% +%----------------------------------------------------------------------------------- +\Item +\Link[http://yum.math.hmc.edu/ctan/support/ltoh/readme.html + target="\string_blank"]{}{}Ltoh\EndLink{}\author + (Russell W. Quong)\ContItem +A customizable Perl converter from a subset of \LaTeX{} to HTML. +% +%----------------------------------------------------------------------------------- +\Item +\Link[ftp://ftp.dante.de/tex-archive/support/ltx2x/ltx2x.html + target="\string_blank"]{}{}Ltx2x\EndLink{}\author (Pete R.r Wilson)\ContItem +A table-driven program that will replace \LaTeX{} commands by user + defined text. +% +%----------------------------------------------------------------------------------- +% \Item +% \Link[http://www.go.dlr.de/fresh/unix/src/www/.warix/math2html-1.3.tar.gz.html +% target="\string_blank"]{}{}Math2HTML\EndLink{}\author +% (Janne Saarela)\ContItem +% A bison program for converting \LaTeX{} mathematics and tables into HTML 3.0. +% +%----------------------------------------------------------- +% \Item +% \Link[http://www.stilo.com/news/pr-1999-06-12b.html +% target="\string_blank"]{}{}MathWriter\EndLink{}\author +% (Stilo)\ContItem +% A MathML (``MathWriter'') and XML (``WebWriter'') editors +% capable of inputing \TeX{} expressions. +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.mathtran.org/index.html + target="\string_blank"]{}{}MathTran\EndLink{}\author Jonathan Fine()\ContItem +A modified \TeX{} compiler aiming at translating mathematical content from TeX to MathML + and vice-versa, and to graphics formats. +% +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.micropress-inc.com/webb/wbstart.htm + target="\string_blank"]{}{} MicroPress + \TeX pider\EndLink{}\author (MicroPress)\ContItem +A modified \TeX{} compiler for PCs for translating \LaTeX{} to HTML. +% +%----------------------------------------------------------- +% \Item +% \Link[http://www.mathmlstudio.com/ +% target="\string_blank"]{}{} MathMLStudio\EndLink{}\author (?)\ContItem +% A translator for a subset of \TeX, \LaTeX, and AMS\TeX{} math into MathML. +% +%----------------------------------------------------------- +% \Item +% \Link[http://www.maths.tcd.ie/pub/openmath/ +% target="\string_blank"]{}{}Ml2om\EndLink{}\author +% (Richard M. Timoney)\ContItem +% \LaTeX{} math to OpenMath converter. +% +%----------------------------------------------------------- + \Item + \Link[http://www.orcca.on.ca/MathML/projects.html + target="\string_blank"]{}{}ORCCA\EndLink{}\author + (?)\ContItem +A Java program for translating TeX mathematics into MathML +%----------------------------------------------------------- +% \Item +% \Link[http://omega.enstb.org +% target="\string_blank"]{}{}Omega\EndLink{}\author +% (Yannis Haralambous and John Plaice)\ContItem +% A \TeX{} compiler capable of producing MathML code. +% %http://sourceforge.net/projects/omega-system/ +%----------------------------------------------------------- +\Item +\Link[http://plastex.sourceforge.net/ + target="\string_blank"]{}{}plasTeX\EndLink{}\author + (Kevin Smith)\ContItem +A \LaTeX{} document processing framework written entirely in Python. +A successor to +\Link[http://pylatex.sourceforge.net/ + target="\string_blank"]{}{}pyLaTeX\EndLink{}. +% Kevin.Smith@themorgue.org (Kevin Smith) +% equations are parsed into pseudo-mathml +%----------------------------------------------------------- +\Item +\Link[http://richdoc.sourceforge.net/doc/en/html/index.html + target="\string_blank"]{}{}RichDoc\EndLink{}\author + (Michal \v Sev\v cenko)\ContItem +A document preparation system capable to import \LaTeX{} and export HTML +%----------------------------------------------------------- +\Item +\Link[http://dione.zcu.cz/\string ~toman40/selathco/ + target="\string_blank"]{}{}Selathco\EndLink{}\author + (Petr Toman)\ContItem +A simple extensible \LaTeX{} to HTML converter written in Java. +%----------------------------------------------------------- +\Item +\Link[http://www.ph.ed.ac.uk/snuggletex/ + target="\string_blank"]{}{}SnuggleTeX\EndLink{}\author + (David McKain)\ContItem +A converter from a subset of \LaTeX{} to XHTML+MAthML written in Java. +%----------------------------------------------------------------------------------- +\Item +\Link[http://web.informatik.uni-bonn.de/\string + ~zach/vim/index.html + target="\string_blank"]{}{}\TeX2HTML\EndLink{}\author +(Gabriel Zachmann)\ContItem + Vim macros for converting from + \LaTeX{} to HTML +%%----------------------------------------------------------------------------------- +\Item +\Link[http://www.ccs.neu.edu/home/dorai/tex2page/tex2page-doc.html + target="\string_blank"]{}{}\TeX2Page\EndLink{}\author +(Dorai Sitaram)\ContItem +A Scheme script for translating a subset of plain \TeX{} to +HTML. +% was +% http://www.cs.rice.edu/\string~dorai/tex2html/tex2html.html +%----------------------------------------------------------------------------------- +\Item +\Link[https://ctan.org/pkg/tex2rtf + target="\string_blank"]{}{}\TeX 2RTF\EndLink{}\author + (Julian Smart)\ContItem +tmEA A C++ utility for converting from a subset of \LaTeX{} to HTML and other formats. +%%%-----------------------------------------------------------------------------------%----------------------------------------------------------------------------------- +\Item +\Link[http://www.cmt.phys.kyushu-u.ac.jp/\string + ~M.Sakurai/java/sdoc/index-e.html + target="\string_blank"]{}{}tex2sdoc\EndLink{}\author + (Masashi Sakurai)\ContItem +A Java program for translating a subset of \LaTeX{} into +\Link[http://www.asahi-net.or.jp/\string + ~dp8t-asm/java/tools/SmartDoc/]{}{}SmartCode\EndLink +%%%----------------------------------------------------------------------------------- +\Item +\Link[http://www.mathematik.uni-kl.de/\string~obachman/Texi2html/ + target="\string_blank"]{}{}Texi2HTML\EndLink{}\author +(Lionel Cons)\ContItem +A Perl script for converting Texinfo manuals to HTML. +%----------------------------------------------------------------------- +% \Item +% \Link[http://sunland.gsfc.nasa.gov/info/texi2www/ +% target="\string_blank"]{}{}Texi2www\EndLink{}\author +% (Tim Singletary)\ContItem +% Converts Texinfo manuals to HTML. +% Another Perl script for converting Texinfo manuals to HTML. +% +%--------------------------------------------------------------------------- +\Item +\Link[http://www.ktalk.com/texport-web.html + target="\string_blank"]{}{}\TeX Port WEB\EndLink{}\author (K-talk Communications)\ContItem +A program running on MS-DOS or + MS-Windows. +%--------------------------------------------------------------------------- +\Item +\Link[http://www.xm1math.net/ttwp/index.html + target="\string_blank"]{}{}TexToWebPublishing\EndLink{}\author (P.Brachet / J.Amblard)\ContItem +A perl script for producing HTML from \LaTeX{} +%--------------------------------------------------------------------------- +% \Item +% \Link[http://www-unix.mcs.anl.gov/\string~gropp/manuals/tohtml/tohtml.html +% target="\string_blank"]{}{}Tohtml\EndLink{}\author (William Gropp)\ContItem +% A C program for translating a subset of \LaTeX{} to HTML. +% %----------------------------------------------------------------------------------- +%--------------------------------------------------------------------------- +\Item +\Link[http://www-sop.inria.fr/miaou/Jose.Grimm/tralics/ + target="\string_blank"]{}{}Tralics\EndLink{}\author (José Grimm)\ContItem + A C++ program for translating a subset of \LaTeX{} to a local XML. +----------------------------------------------------------------------------------- +\Item +\Link[http://hutchinson.belmont.ma.us/tth/ + target="\string_blank"]{}{}Tth\EndLink{}\author +(Ian Hutchinson)\ContItem +%hutch@pfc.mit.edu +A C program for translating a subset of plain \TeX{} and \LaTeX{} +into HTML. Uses special fonts and tables to represent formulas. +% +% omp.text.tex #118834 (0 + 10 more) +% From: Ian Hutchinson +% Newsgroups: comp.text.tex,comp.infosystems.browsers.x +% Subject: tth Plain TeX to HTML translator does LaTeX too. +% Date: Fri May 23 20:53:46 EDT 1997 +% Organization: MIT +% Lines: 16 +% Mime-Version: 1.0 +% Content-Type: text/plain +% Content-Transfer-Encoding: 7bit +% X-Mailer: Mozilla 3.0 (X11; I; Linux 2.0.28 i486) +% CC: hutch@pfc.mit.edu +% +% tth is a TeX to HTML translator that renders mathematics and most of the +% relevant aspects of TeX into HTML3.2. +% +% It does not use images for hard-to-translate items like mathematics. +% Instead it uses fonts and HTML tables to give compact output that is +% semantically correct. It consists of a single executable available as a +% single C file and therefore portable to any system. Some precompiled +% executables are also available. Installation is trivial. +% +% tth is extremely fast, and hence suitable for a CGI script. +% +% In the latest version, 0.60, tth simultaneously supports a major subset +% of LaTeX. +% +% omp.text.tex #114492 (0 + 4 more) +% [1] +% From: Ian Hutchinson +% [1] Plain TeX to HTML Translator: tth +% Date: Sat Mar 15 21:19:39 EST 1997 +% Organization: MIT +% Lines: 18 +% Mime-Version: 1.0 +% Content-Type: text/plain +% Content-Transfer-Encoding: 7bit +% X-Mailer: Mozilla 3.0 (X11; I; Linux 2.0.28 i486) +% +% Version 0.2 of tth, may be obtained from. +% +% http://venus.pfc.mit.edu/tth/ +% +% It translates TeX source that uses the plain macro package (not LaTeX) +% into a near equivalent in HTML. +% +% It can't do a perfect job, of course, because HTML is not capable of +% many of TeX's more subtle tricks. Nevertheless, on TeX files that are +%% predominantly text and use standard constructs and macros, the results +%% are rather satisfactory. +%% +%% The new version adds support for \def, \edef, \xdef, and counters. +%% +%% LaTeX has its own translator, latex2html, which is recommended for +%% LaTeX +%% code. +%% +%% Ian Hutchinson. +%% +%%----------------------------------------------------------- +%From rubber@bounce.com Fri Feb 20 10:25:23 EST 1998 +%Article: 134658 of comp.text.tex +%Path: news.cse.ohio-state.edu!news.maxwell.syr.edu!nntp.news.xara.net!xara.net!server6.netnews.ja.net!server4.netnews.ja.net!server2.netnews.ja.net!news.ox.ac.uk!not-for-mail +%From: rubber@bounce.com (Keith Refson - real email address in signature) +%Newsgroups: comp.text.tex +%Subject: Re: Alternatives to latex2HTML +%Date: 20 Feb 1998 13:55:14 +0000 +%Organization: Oxford University +%Lines: 65 +%Sender: keith@everest +%Message-ID: +%References: +% <3463E1.4E3E337F@pfc.mit.edu> +% <34873.349FD14@pfc.mit.edu> +% +%NNTP-Posting-Host: everest.earth.ox.ac.uk +%Mime-Version: 1.0 (generated by -edit 7.106) +%Content-Type: text/plain; charset=US-ASCII +%X-Newsreader: Gnus v5.3/Emacs 19.34 +%Xref: news.cse.ohio-state.edu comp.text.tex:134658 +% +% +%In some earlier ramblings I wrote: +% +%> I did take a look at ttH but I couldn't even look at the homepage +%> without reconfiguring my browser. +% +%Although that was factually correct it could give a misleading +%impression that I was criticizing ttH, which I hadn't even tried. +%Well I feel a bit guilty about that, so now I *have* tried it out. +% +%1) It certainly does work as advertised. In fact you can display +% simple maths by adding a 1 line X resource for Netscape. +% The documentation claims you can improve the output further, +% but this is at the cost of some highly undesirable mucking +% about with font aliases in the X server which I imagine +% would cause many other problems not just for Netscape but +% for other X programs. +% +% Unfortunately this does really rule it out for web *publishing* +% for my purposes. But it could be very useful in, say, a +% teaching laboratory or local environment where you have +% administrative control over which browsers are installed and +% their setup. +% +%2) The maths handling *is* limited. It doesn't do well on +% complex or sophisticated maths, a limitation of it's +% all-html approach. But simple display formulae, equations, +% matrices, sums and integals do come out surprisingly readable. +% +%3) You get 1 huge html file at the end. There is a version which +% handles this better but it costs money. +% +%4) Handling of included graphics is rudimentary compared to +% latex2html. Simple \includegraphics of ps or +% should work, but my figures are more complicated than that! +% +%5) There are some bugs in the parser: eg it can't handle +% switching back to text mode inside an equation properly +% and crashes. However this is no worse than I found with +% the earlier versions of latex2html. +% +%6) It does run about 1000 times faster than latex2html! No, that +% isn't a mistype! +% +%7) It doesn't seem to be available in source form so presumably +% only the author can fix bugs. (You get a compilable C +% file but the real sources are in lex and yacc and you don't get +% those.) +% +%8) It's only free for non-commercial use but can be purchased for +% commercial applications. +% +% +%I expect there are many circumstances where ttH will be very useful, +%notably where the maths is simple or unimportant. In its present form +%it can't replace latex2html for mathematical documents. +% +%Keith Refson +%--------------------------------------------------------------------------- +\Item +\Link[http://www.plover.com/\string ~mjd/vulcanize.html + target="\string_blank"]{}{}Vulcanize\EndLink{}\author (Mark-Jason Dominus)\ContItem +A Perl program for translating a subset of \LaTeX{} to HTML. +% +% What is Texinfo? +% +% Texinfo is a documentation system that uses one source file to produce +% both on-line information and printed +% output. So instead of writing two different documents, one for the +% on-line help and the other for a typeset +% manual, you need write only one document source file. When the work is +% revised, you need only revise one +% document. You can read the on-line information, known as an ``Info +% file'', with an Info documentation-reading +% program. By convention, Texinfo source file names end with a .texi or +% .texinfo extension. You can write +% and format Texinfo files into Info files within GNU emacs, and read +% them using the emacs Info reader. If you do +% not have emacs, you can format Texinfo files into Info files using +% makeinfo and read them using info. +% +% The Texinfo distribution, including a set of TeX macros for formatting +% Texinfo files is available as +% macros/texinfo/texinfo-3.9.tar.gz (also available as a .zip file +% macros/texinfo/texinfo-3.9.zip). +% +% Making Acrobat documents from LaTeX +% +% In the simplest case, use your DVI to PostScript driver, and run the +% result through Adobe's Acrobat Distiller; +% even simpler, if you use a Mac or Windows TeX system, is to install +% Acrobat Exchange, and use PDFwriter like +% a printer from your application. The latter is a dead end, though fine +% for simple documents, since you can't +% insert extra hyperlinks in the PDF output. For that, you most +% other translators) and gives access to all the +% functionality of pdfmark. +% +% Sadly, there are no free implementations of Distiller, nor any signs +% of them. GhostScript (versions 3.51 +% onwards) can display and print PDF files, however, if you are on a +% platform with no Acrobat Reader. You may +% see a DVI to PDF translator soon, but do not hold your breath. +% +%--------------------------------------------------------------------------- +% \Item +% \Link[http://mathosphere.net/editeurml/WeM.html +% target="\string_blank"]{}{}VeM\EndLink{}\author (St\'ephan +% S\'emirat)\ContItem +% A PHP program for translating a subset of \LaTeX{} to MathML. +%--------------------------------------------------------------------------- +\Item +\Link[http://www.dessci.com/en/products/webeq + target="\string_blank"]{}{}WebEQ\EndLink{}\author (Mark-Jason Dominus)\ContItem +MathML fro a \TeX{} variant named WebTeX +%----------------------------------------------------------------------------------- +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.gold-saucer.org/mathml/greasemonkey/ +%http://planetx.cc.vt.edu/AsteroidMeta/Display\string_LaTeX + target="\string_blank"]{}{}LaTeX on Web pages\EndLink{}\author + (Steve Cheng)\ContItem +A JavaScript program for translating \LaTeX{} into MathML for rendering on the web. +%----------------------------------------------------------------------------------- +\Item +\Link[http://www.math.union.edu/\string~dpvc/jsMath/ + target="\string_blank"]{}{}jsMath\EndLink{}\author + (Davide P. Cervone)\ContItem +A JavaScript program for rendering \LaTeX{} on the web. +%%-------------------------------------------------------------------------- +\EndResourceList +%-------------------------------------------------------------------------- +\CR +Backward\BR Converters: \& +\ResourceList +\Item + \Link[http://www.chemie.fu-berlin.de/chemnet/use/gf.html + target="\string_blank"]{}{}% + Gf\EndLink{}\author (Gary Houston)\ContItem + SGML to \LaTeX +% \Item +% \Link[http://www.hut.fi/\string~jkorpela/h2l/ +% target="\string_blank"]{}{}% +% H2l\EndLink{}\author (Jukka Korpela)\ContItem A C program converting HTML to \LaTeX +\Item + \Link[http://www.wildfire.dircon.co.uk/htex.html + target="\string_blank"]{}{}% + Htex\EndLink{}\author (Toby Thurston)\ContItem HTML to \LaTeX +\Item + \Link[http://htmltolatex.sourceforge.net/ + target="\string_blank"]{}{}% + HTMLtoLaTeX\EndLink{}\author (Michal Kebrt)\ContItem +A Java program +\Item + \Link[http://www.lib.rpi.edu/dept/acs/rpinfo/filters/GChtml2latex/ + target="\string_blank"]{}{}% + HTML2\LaTeX\EndLink{}\author (Davide Cervone \string& Jeffrey Schaefer, Geometry Center)\ContItem +A Perl script for converting HTML into \LaTeX +\Item + \Link[ftp://ftp.dante.de/tex-archive/support/html2latex/ + target="\string_blank"]{}{}% + HTML2\LaTeX\EndLink{}\author (Nathan Torkington)\ContItem +A C-program relying on the HTML parser of the +NCSA Mosaic HTML browser. +%----------------------------------------------------------------------------------- +\Item + \Link[http://html2latex.sourceforge.net/ + target="\string_blank"]{}{}% + HTML2\LaTeX\EndLink{}\author (Peter Thatcher)\ContItem +A Perl script for converting HTML into \LaTeX +% also at http://www.go.dlr.de/fresh/unix/src/www/html2latex-1.1.tar.gz +%----------------------------------------------------------------------------------- +\Item +\Link[http://home.planet.nl/\string ~faase009/html2tex.html + target="\string_blank"]{}{}HTML2\TeX\EndLink{}\author +(Frans J. Faase)\ContItem +C macros for converting from +HTML 2 to \LaTeX{} +% %----------------------------------------------------------------------------------- +% \Item +% \Link[http://www.igd.fhg.de/\string~zach/vim/ +% target="\string_blank"]{}{}HTML2\TeX\EndLink{}\author +% (Gabriel Zachmann)\ContItem +% Vim macros for converting from +% HTML to \LaTeX{} +%----------------------------------------------------------------------------------- +\Item + \Link[http://sourceforge.net/projects/jadetex +%http://www.tug.org/applications/jadetex/ + target="\string_blank"]{}{}% + Jade\TeX\EndLink{}\author (Sebastian Rahtz)\ContItem +SGML to \TeX{} using DSSSL Formatting Objects and +the Jade program of James Clark +% From: Sebastian Rahtz | \-(2) +% [1] Re: ANN: SGMLbase and HTMLbase \-(1)--(1)+-(1) +% Date: Fri Jan 14 04:27:29 EST 2000 \-(1)--[1] +% > I am most interested in an alternative to Jade+DSSSL+JadeTeX for hard +% > copy output from SGML. +% +% write a trivial application using a Perl module like SGMLSpm to +% generate plain LaTeX. that works, no doubt about it. JadeTeX is a joke +% (I speak as the author :-}) +\Item + \Link[http://www.tei-c.org.uk/Software/passivetex/ + target="\string_blank"]{}{}% + Passive \TeX\EndLink{}\author (Sebastian Rahtz)\ContItem +XML to \LaTeX{} using XSL + Formatting Objects +\Item + \Link[http://www.ucc.ie/info/TeX/sgml2tex.html + target="\string_blank"]{}{}% + SGML2\TeX\EndLink{}\author (Peter Flynn)\ContItem +A PCL (Personal Computer Language, an interpreted language for DOS) +program +% \Item +% \Link[http://www.active-tex.demon.co.uk +% target="\string_blank"]{}{}% +% SGMLbase\EndLink{}\author (Jonathan Fine)\ContItem +% A TeX-based parser for SGML with a style file HTMLbase for typsetting +% HTML documents. +%--------------------------------------------------------------------- +\Item + \Link[http://www.alphaworks.ibm.com/aw.nsf/techreqs/texml + target="\string_blank"]{}{}% + \TeX ML\EndLink{}\author (Doug Lovell)\ContItem +A JAVA translator from \TeX ML-conforming XML into \TeX. +% TeXML? No, dont believe all you read. TeXML is an XML DTD for +% expressing LaTeX. You write a transformation specification which +% expresses your XML in TeXML, and then they have a little processor to +% make `traditional' LaTeX. You still get to do all the hard work! +%--------------------------------------------------------------------- +\Item + \Link[http://getfo.sourceforge.net/texml/ + target="\string_blank"]{}{}% + \TeX ML\EndLink{}\author (Oleg Paraschenko)\ContItem +A Perl translator from \TeX ML-conforming XML into \TeX. +%--------------------------------------------------------------------- +\Item + \Link[http://kebrt.webz.cz/programs/word-to-latex/index.html + target="\string_blank"]{}{}% + Word-to-LaTeX\EndLink{}\author (Michal Kebrt)\ContItem +A C\# program running on Windows with Microsoft Word installed. +\Item + \Link[http://www.hj-gym.dk/\string~hj/writer2latex/ + target="\string_blank"]{}{}% + Writer2\LaTeX\EndLink{}\author (Henrik Just)\ContItem +A Java application for translation OpenOffice documents into \LaTeX +% +% \Item +% \Link[http://www.jclark.com/xml/xt.html +% target="\string_blank"]{}{}% +% XT\EndLink{}\author (James Clark)\ContItem Implementation in Java for +% \Link[http://www.w3.org/TR/xslt +% target="\string_blank"]{}{}% +% XSL Transformations (XSLT) 1.0\EndLink{}: +% A language for expressing transformations on XML documents. +\Item + \Link[ftp://ftp.dante.de/pub/tex/support/word2latex/ + target="\string_blank"]{}{}% + W2LTX\EndLink{}\author (Ingo H. de Boer)\ContItem +A mostly Unix based API for translating +MS Word documents to LaTeX. +\Item + \Link[ftp://ftp.tex.ac.uk:/tex-archive/macros/xmltex/base/manual.html + target="\string_blank"]{}{}% + XML\TeX\EndLink{}\author (David Carlisle)\ContItem +A system for typesetting XML files with \TeX. +% +\Item + \Link[http://www.cse.ohio-state.edu/\string~gurari/tug99/indexSl57.html + target="\string_blank"]{}{}% + Brute Force\EndLink{} \ContItem +\EndResourceList +%-------------------------------------------------------------------------- +\CR +Converters\BR for other\BR formats: \& +\ResourceList +%%---------------------------------------------------------------------------- +\Item +\Link[http://dvi2bitmap.sourceforge.net/ + target="\string_blank"]{}{}Dvi2bitmap\EndLink{}\author (Norman Gray)\ContItem + A DVI to GIF and XBM translator. +%%---------------------------------------------------------------------------- +\Item +\Link[http://www.ags.uni-sb.de/\string ~adrianf/dvi2svg/help.html + target="\string_blank"]{}{}Dvi2Svg\EndLink{}\author (Adrian Frischauf)\ContItem + A DVI to SVG translator. +%%---------------------------------------------------------------------------- +\Item +\Link[http://gaspra.kettering.edu/dvipdfm/ + target="\string_blank"]{}{}Dvipdfm\EndLink{}\author (Mark A. Wicks)\ContItem + A DVI to PDF translator. +%%---------------------------------------------------------------------------- +\Item +\Link[http://dvipng.sourceforge.net/dvipng.html + target="\string_blank"]{}{}dvipng{}\author (Jan-Ake Larsson)\ContItem +A DVI to PNG and GIF convertor. It supports PostScript inclusion. +%%---------------------------------------------------------------------------- +\Item +\Link[http://dvisvg.sourceforge.net/ + target="\string_blank"]{}{}DviSvg\EndLink{}\author (Rudolf Sabo)\ContItem + A DVI to SVG translator. + +% dvisvgm is a command line utility for converting DVI files to SVG +% (Scalable Vector Graphics). The latest release 0.4.2 fixes some bugs and +% introduces options for SVG transformations (rotation, translation, scaling +% etc.) +% +% dvisvgm has been sucessfully tested on various Linux (teTeX) and Windows +% (MikTeX) systems. Precompiled versions for Windows/MikTeX can be +% downloaded from the project homepage (see README for further information). + +%%---------------------------------------------------------------------------- +\Item +\Link[http://dvisvgm.sourceforge.net/ + target="\string_blank"]{}{}DviSvgm\EndLink{}\author (Martin Gieseking)\ContItem + A DVI to SVG translator. +%%---------------------------------------------------------------------------- +% \Item +% \Link[http://www.tug.org/TUGboat/Articles/tb22-4/tb72goo.pdf +% target="\string_blank"]{}{}Dvi2Svg\EndLink{}\author (Michel Goossens and Vesa Sivunen)\ContItem +% A DVI to SVG translator. +%%---------------------------------------------------------------------------- +\Item +\Link[http://www.grindeq.com/ + target="\string_blank"]{}{}GrindEQ\EndLink{}\author ()\ContItem + Converter from LaTeX equations to MS Word and backward. +%%%---------------------------------------------------------------------------- +\Item +\Link[http://www.forkosh.com/ + target="\string_blank"]{}{}MimeTeX\EndLink{}\author (John Forkosh)\ContItem +A server side parses for LaTeX math expressions, emitting either mime + xbitmaps or gif images of them +% +%%---------------------------------------------------------------------------- +% \Item +% \Link[ +% target="\string_blank"]{}{}ltx2rtf\EndLink{}\author (Georg Lehner)\ContItem +% La\TeX{} to MicroSoft Word +% %%---------------------------------------------------------------------------- +% \Item +% \Link[ +% target="\string_blank"]{}{}ltx2rtf\EndLink{}\author (Georg Lehner)\ContItem +% La\TeX{} to MicroSoft Word +%%---------------------------------------------------------------------------- +\Item +\Link[http://www.tug.org/utilities/texconv/ltx2rtf3.html + target="\string_blank"]{}{}ltx2rtf\EndLink{}\author (Daniel Taupin)\ContItem + La\TeX{} to MicroSoft Word (rtf: Rich Text Format) +%%---------------------------------------------------------------------------- +% \Item +% \Link[http://pantheon.yale.edu/\string~pmm34/leq.html +% target="\string_blank"]{}{}LEQ\EndLink{}\author (Paul Magwene)\ContItem +% La\TeX{} to MicroSoft Word +%%---------------------------------------------------------------------------- +\Item +\Link[https://tug.org/applications/pdftex/ + target="\string_blank"]{}{}Pdf\TeX\EndLink{}\author (Han The Thanh)\ContItem +An extension of the \TeX{} compiler +offering native output for the Portable Document Format (pdf) output. +% +%ftp://ftp.cstug.cz/pub/tex/local/cstug/thanh/ +% +% Re: tex2pdf binary for Linux ? +% Date: Fri Mar 07 07:16:40 EST 1997 +% Organization: Elsevier Science Ltd +% Lines: 44 +% In-reply-to: mnikunen@mat-48.pc.helsinki.fi's message of 6 Mar 1997 17:18:19 +% + GMT +% X-Newsreader: Gnus v5.1 +% +% Changing libpng headers and the library to newer versions helped me to get +% it compiled and it seems to work OK for a couple of plain documents that I +% have tried. The file example.tex, however, makes r less any Unix system). A \ +% compiled +% binary for Windows NT/95 should be available soon. +% +% PLEASE do not jump into this stuff without accepting it as beta +% status. I don't think Han The Thanh will thank me if announcements like +% this get him deluged with mail saying `where is the Mac version' or +% . +% +% In order to help promulgate information about this development, and +% exchange ideas, the TeX Users Group is hosting a mailing list. If you +% want to join, send a mail message to +% +% +% +% There are several routes. One is to use DVIPS or similar PS driver +% and then pump the result through Adobe Acrobat Distiller. A less +% desirable method involves printing via the PDFWriter. There are +% also programs being written to go direct from DVI to PDF, and +% direct from TeX to PDF. These ar mentioned often on this news group. +% +% Check out http://www.YandY.com/pdf-from.pdf and also links to +% other web sites discussion this issues on the `Other Information +% Sources' on that site. Check the comp.text.pdf news group. +% +% +%%---------------------------------------------------------------------------- +% \Item +% \Link[http://shika.aist-nara.ac.jp/products/plain2/plain2.html +% target="\string_blank"]{}{}Plain2\EndLink{}\author (Akihiro Uchida)\ContItem +% Plain text to \TeX, ROFF and HTML. +%%---------------------------------------------------------------------------- +\item{\LaTeX{} to ... } +Convert to HTML, then according to the target +\List{} +\item{Text} +Save the view of the outcome on a +text-based browser +(e.g., \''lynx -dump foo.html > foo.txt', or +\Link[http://www.w3m.org/]{}{}w3m\EndLink{}; the latter one might +treat tables better) +\item {Word} +\''Word', and some other word processors, can load HTML files. The \`'uxhlatex' +is probably the best setting of \TeX4ht for such translations. +\EndList +%----------------------------------------------------------------------------------- +% \Item +% \Link[http://www.htmlscript.com/docs/userdocs.htm +% target="\string_blank"]{}{}HtmlScript\EndLink{}\ContItem +% An extended html development language to be translated by a +% \Link[http://hoohoo.ncsa.uiuc.edu/cgi/ +% target="\string_blank"]{}{}CGI\EndLink{} +% into html. +% % +% +% \Link[http://www.geom.umn.edu/software/WebEQ/]{}{}webEQ\EndLink{}: +% A java applet for including mathematics in documents. +% +% TTTTo use WebEQ, you must use a browser that can run Java +% . This immediately excludes a large fraction of your +% balise% readers. Java is also known to pose security risks. applet +% takes a long time to load. Upon visiting the WebEQ home page, it took +% 40 seconds for me to see one equation. YYYYou can't print any of the +% output from WebEQ. WWWWebEQ isn't extensible or +% reconfigurable. WWWWebEQ expects you to write your equations in a +% highly presentational language that is based half on TEX and half on +% the expired HTML 3.0 draft. It is not especially complicated, but it +% is tedious because there are no definitions for common mathematical +% constructs: you basically do the layout yourself. Moreover, the +% limited nature of the medium makes it difficult for your equation to +% be presented in a text-based browser or using a speech synthesis +% system. TTTTo put an equation into your document, you have to insert +% an APPLET element and then place PARAM tags within it to provide the +% expression, which increases typing and makes editing +% inconvenien% +% t. This combines with the presentational syntax to make for +% a lot of code even for the simplest expressions. + +\EndResourceList +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \CR[C2<] +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \HPage{Conversion to Bitmaps} +% \ExitHPage{}\SubSection{Conversion to Bitmaps} +% \List{*} +% \item +% \Link[http://www.fourmilab.ch/webtools/textogif/textogif.html]{}{}\TeX togif\EndLink{} (John Walker) +% \item +% \Link[http://www.astro.gla.ac.uk/users/norman/star/dvi2bitmap/]{}{}Dvi2bitmap\EndLink{}: +% direct conversion of Dvi to Gif (Norman Gray) +% \item +% \Link[http://www.slurm.com/gf2gifs/]{}{}gf2gifs\EndLink{}: +% A Java program for converting MetaFont files into GIF images (Richard Blaylock ) +% % From: Richard Blaylock +% % To: ``Eitan M. Gurari'' +% % Subject: gf2gifs link +% % Date: Thu, 24 May 2001 10:05:36 -0700 (PDT) +% % +% % +% % Hi, +% % +% % Thanks for putting the link to my GF2GIFs program on +% % http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn64.html +% % +% % When you get a chance, you could take away the question mark +% % after my name since, yes, I really am the author. +% % +% % Thanks again, +% % Richard Blaylock + +%\EndList +%\EndHPage{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% {\tt |} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \HPage{math on the web} +% \ExitHPage{}\SubSection{math on the web} +% \List{*} +% \item +% \Link[http://www.w3.org/Math/]{}{}W3C\EndLink 's math home page +% \item +% \Link[http://www.oasis-open.org/cover/topics.html]{sgml-math}{}OASIS\EndLink +% 's resources on SGML and math. +% % \item +% % \Link[http://www.oreilly.com/people/staff/crism/math/]{}{}Chris Maden\EndLink. +% % A note about the +% % semantic of mathematical markup +% \item +% \Link[http://mathforum.org/typesetting/index.html] +% Typesetting for the Internet\EndLink. A review of methods. +% % \item +% % \Link[http://www.nag.co.uk/projects/OpenMath/]{}{}OpenMath\EndLink. +% % \item +% % \Link[http:www.mathtype.com]{}{}MathType\EndLink{}. An interactive editor +% % for mathematical formulas in \LaTeX{} and MathML. +% % \item +% % \Link[http://www.webeq.com/WebEQ/2.3/docs/webtex/webtex.html]{}{}Web\TeX\EndLink. +% % A \LaTeX-like equation markup language understood by the MathML-based +% % viewer WebEQ. +% % \item +% % \Link[http://www.nikhef.nl/\string~t16/public/ndvi/ndvi\string_doc.html]{}{}nDVI\EndLink{} +% % (Kasper Peeters). +% % A DVI viewer plugin for Unix Netscape. +% % \item +% % \Link[http://www.mnemonic.org//mnemonic/documentation/doc/www/index.html]{}{}Mnemonic\EndLink. +% % A browser under development supporting mathematics typesetting in +% % the form of MathML and \TeX. +% % \item +% % \Link[http://www-4.ibm.com/software/network/techexplorer/]{}{}Techexplorer\EndLink. +% % A plug-in for browsers, enabling the display of TeX, LaTeX, and +% % MathML +% % \item +% % \Link[http://www.mozilla.org/projects/mathml]{}{}MathML in +% % Mozilla\EndLink +% % \item +% % \Link[http://hutchinson.belmont.ma.us/tth/]{}{}TTH\EndLink. +% % Translates a subset of \TeX{} and \LaTeX{} math +% % to a table-based representation and to MathML. +% % \item +% % \Link[http://genepi.louis-jean.com/omega/lyonmathml.pdf]{}{}Omega\EndLink. +% % A \TeX{} compiler with extra primitive to support SGML (and MathML) output. +% %%%%%%%%%%%%%%%%% +% \EndList \EndHPage{} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% {\tt |} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \HPage{web publishing with LaTeX} +% \ExitHPage{}\SubSection{Web Publishing} +% \List{*} +% \item +% \Link[ftp://ctan.tug.org/tex-archive/info/webguide/webguide.html]{}{}A +% Brief Guide to LaTeX Tools for Web Publishing\EndLink{} (Peter R. Wilson) +% \EndList \EndHPage{} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% {\tt |} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \HPage{conversion services} +% \ExitHPage{}\SubSection{Conversion Services} +% \List{*} +% \item +% \Link[http://wheel.compose.cs.cmu.edu:8001/cgi-bin/browse/objweb]{}{}TOM +% (Typed Object Model)\EndLink +% \EndList \EndHPage{} +\EndHTable + + +\DocPart{License} + +\TeX4ht is provided under the +\Link[http://mirror.ctan.org/macros/latex/base/lppl.txt]{}{}LaTeX +Project Public License\EndLink{} (LPPL). + + + +\DocPart{Acknowledgments} + +Eitan gratefully acknowledges the suggestions, contributions, and bug reports +offered by many people. In particular, thanks go to Carmen Fierro, +Piotr Grabowski, Gertjan Klein, Sebastian Rahtz, and Philip Viton for +extensive feedback and help at early stages of this project. + +Eitan's work was partially sponsored by NSF grant IIS-0312487. + +Subsequent work has been a community effort involving many people. +Contributors, bug reporters, and all, are listed in the ChangeLog file +in the sources. + +% \IgnorePar\EndP \Tg
+ +% \TableOfContents[DocPart] + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\HPage{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% index +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NextFile{\jobname-index.html}\HPage{} +\rightline{\Link[\jobname.html]{}{Index}up\EndLink} +\DocPart{Index} + + + +\HAssign\ICount=0 + +\let\svIndexEntry\IndexEntry +\def\IndexEntry#1#2#3#4{\bgroup + \let\sv=\Link + \def\Link[##1]##2##3##4\EndLink{\sv[##1]{##2}{##3}\ICount\EndLink}% + \gHAdvance\ICount by 1 + \IndexSec#1//\let\IndexSec=\relax + \svIndexEntry{#3#1}{#2}{}{#4}% + \egroup} + +\catcode`\:=11 + \def\IndexSec#1#2//{% + \tmp:cnt=`#1\relax + \ifnum \tmp:cnt>`Z \advance\tmp:cnt by -32 \fi + \ifnum \tmp:cnt<`A \else \ifnum \tmp:cnt>`Z \else + \ifnum \Idx:ch<\tmp:cnt + \Configure{leftline} + {\HCode{

}}{\HCode{
}} + \leftline{\bf \char\tmp:cnt }% + \xdef\Idx:ch{\the\tmp:cnt}% + \global\let\prev:A\:UnDef + \fi + \fi \fi % #1% + } +\catcode`\:=12 + + +\Index + + +\csname SysNeeds\endcsname{"rm \jobname.xdi"} +\csname SysNeeds\endcsname{"sort -f \jobname.idx -o \jobname.xdi"} + + + +\EndHPage{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + % can't clean the full directory because + % the new html stuff is already there + %%%%%%%%%%%%%%% FIRST %%%%%%%%%%%%%%%%%%%%% + +\csname SysNeeds\endcsname{"rm -r -f \DIR *.zip"} +\csname SysNeeds\endcsname{"mkdir \DIR"} +\csname SysNeeds\endcsname{"mkdir \DIR"} +\csname SysNeeds\endcsname{"chmod 711 \DIR"} +\csname SysNeeds\endcsname{"chmod 711 \DIR"} + %%%%%%%%%%%%%%%%%%%%% + +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/temp"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/temp"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/src"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/src"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/bin"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/bin/unix"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/bin/win32"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin/unix"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin/win32"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex/generic"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex/generic/tex4ht"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex4ht"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex4ht/ht-fonts"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex4ht/base"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex4ht/bin"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex4ht/xtpipes"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex/generic"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex/generic/tex4ht"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex4ht"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex4ht/ht-fonts"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex4ht/base"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex4ht/xtpipes"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex4ht/bin"} + +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex4ht/base/unix"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/texmf/tex4ht/base/win32"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex4ht/base/unix"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/texmf/tex4ht/base/win32"} + + + + +\csname SysNeeds\endcsname{"cp -R + \GOLD tex4ht.dir/texmf/tex4ht/ht-fonts + \DIR tex4ht/texmf/tex4ht/."} +\csname SysNeeds\endcsname{"chmod 755 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*.htf"} +\csname SysNeeds\endcsname{"chmod 755 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*.htf"} +\csname SysNeeds\endcsname{"chmod 755 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*.htf"} +\csname SysNeeds\endcsname{"chmod 755 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*/*"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*/*.htf"} +\csname SysNeeds\endcsname{"chmod 755 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*/*/*"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*/*/*.htf"} +\csname SysNeeds\endcsname{"chmod 755 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*/*/*/*"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/ht-fonts/*/*/*/*/*/*.htf"} + + +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/htcmd.c + \DIR tex4ht/src/."} +\csname SysNeeds\endcsname{"cp htcmd.exe + \DIR tex4ht/bin/win32/."} + +\csname SysNeeds\endcsname{"cp tex4ht.exe + \DIR tex4ht/bin/win32/tex4ht.exe"} +\csname SysNeeds\endcsname{"cp t4ht.exe + \DIR tex4ht/bin/win32/t4ht.exe"} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/bin/win32/*.exe"} + +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/mk4ht.perl + \DIR tex4ht/bin/win32/mk4ht"} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/bin/win32/mk4ht"} + +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/mk4ht.perl + \DIR tex4ht/bin/unix/mk4ht"} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/bin/unix/mk4ht"} + + + + + +\csname SysNeeds\endcsname{"chmod 711 ht-unix"} +\csname SysNeeds\endcsname{"chmod 711 ht-win32"} + +\csname SysNeeds\endcsname{"rm foo"} +\csname SysNeeds\endcsname{"rm foo1"} +\csname SysNeeds\endcsname{" + latex mkht-scripts.4ht ; + mv *.bat ht-win32/. ; + ls -l *.unix > foo ; + sed -e's/-r.*--.*:.. //g' + -e's/.unix//g' + -e's/.*/mv \string&.unix ht-unix\string\/\string&/g' + < foo > foo1 ; + chmod 700 foo1; + foo1 + "} + +\csname SysNeeds\endcsname{"cp ht-win32/ht* + \DIR tex4ht/bin/win32/."} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/bin/win32/*"} +\csname SysNeeds\endcsname{"cp ht-unix/ht* + \DIR tex4ht/bin/unix/."} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/bin/unix/*"} + + +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/bin/ht"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/bin/ht/win32"} +\csname SysNeeds\endcsname{"mkdir \DIR tex4ht/bin/ht/unix"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin/ht"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin/ht/win32"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin/ht/unix"} + + + +\csname SysNeeds\endcsname{"cp ht-win32/* + \DIR tex4ht/bin/ht/win32/."} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/bin/ht/win32/*"} +\csname SysNeeds\endcsname{"cp ht-unix/* + \DIR tex4ht/bin/ht/unix/."} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/bin/ht/unix/*"} + + + + + +\csname SysNeeds\endcsname{"mv Wht.tab temp.log"} +\csname SysNeeds\endcsname{"addMM.perl temp.log > Wht.tab"} + + +\csname SysNeeds\endcsname{"mv Wht.tab ht.tab"} +\csname SysNeeds\endcsname{"/n/gold/5/gurari/main.dir/bin.dir/myunix2dos + ht.tab"} +\csname SysNeeds\endcsname{"cp \GOLD tex4ht.dir/bin/ht/win32/ht.bat + \DIR tex4ht/bin/win32/ht.bat"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin/win32/*"} + + + +\csname SysNeeds\endcsname{"cp \GOLD tex4ht.dir/bin/ht/unix/ht + \DIR tex4ht/bin/unix/ht"} +\csname SysNeeds\endcsname{"chmod 755 \DIR tex4ht/bin/unix/*"} + + + + + + +% \csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/xv4ht.java +% \DIR tex4ht/src/."} +% +% \csname SysNeeds\endcsname{"cp \GOLD +% tex4ht.dir/texmf/tex4ht/bin/xv4ht.jar +% \DIR tex4ht/bin/."} +% +% \csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/xv4ht.cat-unix +% \DIR tex4ht/texmf/tex4ht/base/unix/xv4ht.cat"} +% +% \csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/xv4ht.cat-win +% \DIR tex4ht/texmf/tex4ht/base/win32/xv4ht.cat"} + + + + + + + + + + + + +\csname SysNeeds\endcsname{"cp testa.tex \DIR tex4ht/temp/."} +\csname SysNeeds\endcsname{"cp testb.tex \DIR tex4ht/temp/."} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/temp/*.tex"} + +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/tex4ht.c + \DIR tex4ht/src/."} +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/t4ht.c + \DIR tex4ht/src/."} +\csname SysNeeds\endcsname{"chmod 644 \DIR tex4ht/src/*.c"} + + +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/*.4ht + \DIR tex4ht/texmf/tex/generic/tex4ht/."} +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/tex4ht.sty + \DIR tex4ht/texmf/tex/generic/tex4ht/."} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex/generic/tex4ht/*"} + + +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/tex4ht.env-unix + \DIR tex4ht/texmf/tex4ht/base/unix/tex4ht.env"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/base/unix/*"} +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/tex4ht.env-win32 + \DIR tex4ht/texmf/tex4ht/base/win32/tex4ht.env"} +\csname SysNeeds\endcsname{"chmod 644 + \DIR tex4ht/texmf/tex4ht/base/unix/*"} + +\csname SysNeeds\endcsname{"cp -r \GOLD tex4ht.dir/texmf/tex4ht/bin + \DIR tex4ht/texmf/tex4ht/."} +\csname SysNeeds\endcsname{"cp -r \GOLD tex4ht.dir/texmf/tex4ht/xtpipes + \DIR tex4ht/texmf/tex4ht/."} + + + + + +% +\csname SysNeeds\endcsname{"cp jhsample.tex + \DIR . ; chmod 644 \DIR jhsample.tex"} +% +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/tex4ht.env-unix + \DIR tex4ht-env-unix.txt"} +\csname SysNeeds\endcsname{"cp \GOLD main.dir/html.dir/tex4ht.env-win32 + \DIR tex4ht-env-win32.txt"} +\csname SysNeeds\endcsname{"chmod 644 \DIR *.txt"} + + + +\bgroup +%%%%%%%%%%%%%%%%%%%% +\Needs{" mkdir \DIR lit "} + + \Needs{" mkdir \DIR lit/src"} + \Needs{" mkdir \DIR lit/src/java"} + \Needs{" mkdir \DIR lit/src/java/xtpipes"} + \Needs{" mkdir \DIR lit/src/java/xtpipes/util"} + + +% cp \GOLD main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes.java +% src/java/. ; +% cp \GOLD main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/Xtpipes.java +% src/java/xtpipes/. ; +% cp \GOLD main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/XtpipesUni.java +% src/java/xtpipes/. ; +% cp \GOLD main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/lib/ScriptsManager.java +% src/java/xtpipes/lib/. ; +% cp \GOLD main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/lib/ScriptsManagerLH.java +% src/java/xtpipes/lib/. ; + +%%%%%%%%%%%%%%%%%%%% + + +\def\LitNeeds#1{% + \def\file{\GOLD main.dir/html.dir/#1.tex}% + \openin15=\file\relax + \ifeof15 + \def\file{\GOLD main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/#1.tex}% + \openin15=\file\relax + \fi + \ifeof15\else + \closein15 + \Needs{" cd \DIR lit ; cp \file\space . "}% + \fi +} + + + + \LitNeeds{tex4ht-4ht} +% \LitNeeds{tex4ht-bibtex2} + \LitNeeds{tex4ht-c} + \LitNeeds{tex4ht-cond4ht} + \LitNeeds{tex4ht-docbook} + \LitNeeds{tex4ht-docbook-xtpipes} + \LitNeeds{tex4ht-jsml-xtpipes} + \LitNeeds{tex4ht-jsml} + \LitNeeds{tex4ht-xhtml-xtpipes} + \LitNeeds{tex4ht-env} + \LitNeeds{tex4ht-fonts-cjk} + \LitNeeds{tex4ht-fonts-cjk-utf8} + \LitNeeds{tex4ht-fonts-noncjk} + \LitNeeds{tex4ht-fonts-4hf} + \LitNeeds{tex4ht-fonts-modern} + \LitNeeds{tex4ht-htcmd} + \LitNeeds{tex4ht-html-speech-xtpipes} + \LitNeeds{tex4ht-html-speech} + \LitNeeds{tex4ht-html0} + \LitNeeds{tex4ht-html32} + \LitNeeds{tex4ht-html4} + \LitNeeds{tex4ht-info-html4} + \LitNeeds{tex4ht-info-mml} + \LitNeeds{tex4ht-info-svg} + \LitNeeds{tex4ht-info} + \LitNeeds{tex4ht-info-javahelp} + \LitNeeds{tex4ht-info-ooffice} + \LitNeeds{tex4ht-bibtex2} + \LitNeeds{tex4ht-javahelp} + \LitNeeds{tex4ht-mathltx} + \LitNeeds{tex4ht-mathml} + \LitNeeds{tex4ht-jsmath} + \LitNeeds{tex4ht-mathplayer} + \LitNeeds{tex4ht-mkht} + \LitNeeds{tex4ht-moz} + \LitNeeds{tex4ht-ooffice} + \LitNeeds{tex4ht-options} + \LitNeeds{tex4ht-sty} + \LitNeeds{wripro} + \LitNeeds{tex4ht-svg} + \LitNeeds{tex4ht-t4ht} + \LitNeeds{tex4ht-tei} +% \LitNeeds{tex4ht-texconverter} + \LitNeeds{tex4ht-unicode} + \LitNeeds{tex4ht-word} + \LitNeeds{tex4ht-dir} + \LitNeeds{tex4ht-auto-script} + \LitNeeds{tex4ht-oo-xtpipes} + \LitNeeds{xtpipes} + \LitNeeds{tex4ht-htcmd} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\Needs{" +cp /home/4/gurari/main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/Xtpipes.java \DIR lit/src/java/xtpipes/. ; +cp /home/4/gurari/main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/XtpipesUni.java \DIR lit/src/java/xtpipes/. ; +cp /home/4/gurari/main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/util/ScriptsManager.java \DIR lit/src/java/xtpipes/util/. ; +cp /home/4/gurari/main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/util/ScriptsManagerLH.java \DIR lit/src/java/xtpipes/util/. ; +cp /home/4/gurari/main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/InputObject.java \DIR lit/src/java/xtpipes/. ; +cp /home/4/gurari/main.dir/html.dir/brail.dir/xtpipes.dir/xtpipes.dir/work.dir/xtpipes/FileInfo.java \DIR lit/src/java/xtpipes/. ; +cp /home/4/gurari/main.dir/html.dir/GroupMn.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/HtJsml.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/HtSpk.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/JsmlFilter.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/JsmlMathBreak.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/EmSpk.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/OoFilter.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/OoUtilities.java \DIR lit/src/java/. ; +cp /home/4/gurari/main.dir/html.dir/OomFilter.java \DIR lit/src/java/. +"} + +%%%%%%%%%%%%%%%%%%%% +% Let's not bother to make the zip file we do not use. +%\Needs{" +% cd \DIR lit +%; zip tex4ht-lit * +%; mv tex4ht-lit.zip \DIR . +%"} +%\Needs{" +% chmod %44 \DIR tex4ht-lit.zip +%"} +%\Needs{" /usr/bin/rm -r \DIR lit +%"} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\egroup + +% do not symlink index.html; we want a plain file for TeX Live runtime. +% So we maintain it by hand as a simple html redirect. +%\csname SysNeeds\endcsname{"cd \DIR; ln -s mn.html index.html"} +%\csname SysNeeds\endcsname{"chmod 644 \DIR index.html"} + +% Let's not bother to make the zip file we do not use. +%\csname SysNeeds\endcsname{"cd \DIR tex4ht +% ; zip -r tex4ht.zip * +% ; mv \DIR tex4ht/tex4ht.zip \DIR . +% ; cd \DIR +% ; rm -r tex4ht +% ; chmod 644 *.zip +% ; zip -r tex4ht-all.zip * +% ; chmod 644 *.zip +% ; ln -s tex4ht.zip +% tex4ht-\the\year +% \ifnum \month<10 0\fi +% \the\month +% \ifnum \day<10 0\fi +% \the\day.zip +% "} + +\csname SysNeeds\endcsname{"echo '*************** DONE ***************'"} + +\bye + + +% LocalWords: MathTran MathML diff --git a/support/TeX4ht/doc/bugfixes.html b/support/TeX4ht/doc/bugfixes.html new file mode 100644 index 0000000000..05b828db2e --- /dev/null +++ b/support/TeX4ht/doc/bugfixes.html @@ -0,0 +1,27 @@ + + + + +bug fixes - TeX4ht + + + + + + + + + See https://tug.org/tex4ht for current status and information. You can see updates in the commit +history. +

Issues can be reported on the bug tracker. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/index.html b/support/TeX4ht/doc/index.html new file mode 100644 index 0000000000..0632c6f3a4 --- /dev/null +++ b/support/TeX4ht/doc/index.html @@ -0,0 +1 @@ + diff --git a/support/TeX4ht/doc/jhsample.tex b/support/TeX4ht/doc/jhsample.tex new file mode 100644 index 0000000000..c17e002d6a --- /dev/null +++ b/support/TeX4ht/doc/jhsample.tex @@ -0,0 +1,118 @@ +\documentclass{article} + + \usepackage{url} + \Configure{ProTex}{java,<<<>>>,title,`,list,[[]]} + + \usepackage{makeidx} + \makeindex + +\begin{document} + +\tableofcontents + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Compilation Instructions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item +Compile this \LaTeX{} file with the +\index{jhlatex}% +`{\tt jhlatex +jobname "html,3"}' +command. +\item +\index{JavaHelp URL}% +The URL into the javahelp file, as provided by tex4ht, is +`{\tt jobname-doc/jobname-jh.xml}'. +\item +The java programs should be compiled with commands similar to +\index{javac}% +`{\tt javac -classpath + \$\string{HOME\string}/jh2.0/javahelp/lib/jh.jar program.java}'. +\item +The programs should run with commands similar to +\index{java}% +`{\tt java -classpath + \$\string{HOME\string}/jh2.0/javahelp/lib/jh.jar:. program}'. +\end{itemize} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sample Program} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +import java.net.URL; +import javax.help.*; +import javax.swing.*; +public class jhprog { + public static void main(String args[]) { + JHelp helpViewer=null; + try { + ClassLoader cl = jhprog.class.getClassLoader(); + URL url = HelpSet.findHelpSet(cl, + "`jobname-doc/`jobname.hs"); + helpViewer = new JHelp(new HelpSet(cl, url)); + } catch (Exception e) { System.out.println("error"); + } + JFrame frame = new JFrame(); + frame.setSize(500,500); + frame.getContentPane().add(helpViewer); + frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + frame.setVisible(true); + } +} +>>> + +\OutputCode\ + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sample Script} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +A source file \edef\temp{\noexpand\url{jhsample.tex}}\temp{} of this +document may be compiled for JavHelp 2.0 with the following script. + +\Verbatim +jhlatex jhsample +tex "\def\filename{{$1}{idx}{4dx}{ind}} \input idxmake.4ht" +makeindex -o jhsample.ind jhsample.4dx +jhlatex jhsample +\EndVerbatim + +The compilation produces the following files. + +\begin{verbatim} +jhprog.class +jhsample-doc/ +jhsample-doc/jhsample.html +jhsample-doc/jhsample.jhm +jhsample-doc/jhsample-jhi.xml +jhsample-doc/jhsample.hs +jhsample-doc/jhsample-jht.xml +jhsample-doc/jhprog.java +\end{verbatim} + + +The following instruction can be used for compiling the program. + +\Verbatim +javac -classpath ${HOME}/jh2.0/javahelp/lib/jh.jar jhprog.java +\EndVerbatim + + +The outcome could be viewed through the following command. + +\Verbatim +java -cp ${\home}/jh2.0/javahelp/lib/jh.jar:. jhprog +\EndVerbatim + + +\printindex + +\end{document} + diff --git a/support/TeX4ht/doc/mml-issues.html b/support/TeX4ht/doc/mml-issues.html new file mode 100644 index 0000000000..e1885caa74 --- /dev/null +++ b/support/TeX4ht/doc/mml-issues.html @@ -0,0 +1,386 @@ + + + + +problems + + + + + + + + + Any explanation for the following problem? The native LaTeX compiler has no problem with examples 1 +and 2. On example 3 it complains: ‘Argument of \xhalign has an extra }’. When compiled in isolation, +examples 2 and 3 produce the same tracing until \xhalign is invoked. +
  \tracingcommands=2  +
  \tracingmacros=2  +
\documentclass{article}  +
\begin{document}  +
  +
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  +
\catcode‘\@=11  +
  +
\def\eqnarray{%  +
   \stepcounter{equation}%  +
   \def\@currentlabel{\p@equation\theequation}%  +
   \global\@eqnswtrue  +
   \m@th  +
   \global\@eqcnt\z@  +
   \tabskip\@centering  +
   \let\\\@eqncr  +
   $$\everycr{}\xhalign  \cr  +
}  +
  +
\def\xhalign#1\cr{%  +
   \halign to\displaywidth\bgroup  + +
       \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel  +
      &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil  +
      &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep  +
         $\displaystyle{##}$\hfil\tabskip\@centering  +
      &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup  +
         \tabskip\z@skip  +
      \cr  +
}  +
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  +
  +
  \vbox\bgroup                                      %% example 1 %%  +
    \begin{eqnarray}  x \end{eqnarray}%  +
  \egroup  +
  +
  \begin{tabular}{c}                                %% example 2 %%  +
    \vbox{%  +
      \begin{eqnarray}  x \end{eqnarray}%  +
    }%  +
  \end{tabular}  +
  +
  \begin{tabular}{c}                                %% example 3 %%  +
    \vbox\bgroup  +
      \begin{eqnarray}  x \end{eqnarray}%  +
    \egroup  +
  \end{tabular}  +
  +
\end{document}  +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mml.html b/support/TeX4ht/doc/mml.html new file mode 100644 index 0000000000..93afc2d6ce --- /dev/null +++ b/support/TeX4ht/doc/mml.html @@ -0,0 +1,79 @@ + + + + +common problems for MathML + + + + + + + + +

up

+

Some Sources of Problems for MathML

+

+

    +
  1. Broken math formulas, such as ‘$R=\{x|x$ is real $\}$’ instead of ‘$R=\{x|x \mbox{ is real } \}$’. +
  2. +
  3. Math mode employment for presenting nonmath content, such as ‘$$\vbox{...}$$ ’ instead of +‘\begin{center}\vbox{...}\end{center}’.
  4. +
  5. Unmatched parentheses within entries of arrays, such as ‘\begin{array}...(... & ...)...\end{array}’ instead +of ‘\begin{array}...\left(... \right.& \left. ...\right)...\end{array}’.
  6. +
  7. Unmatched parentheses within math, such as ‘$a = b)$’ instead of ‘$\left.a = b\right)$’. It is also possibl to +use ‘mathml-’ command line option without need to modify the first form, but it may result in wrong parentheses +size.
  8. +
  9. Incorrect annotation of delimiters, such as ‘\bigl\{...\bigr|...\bigr\}’ instead of ‘\bigl\{...\bigg|...\bigr\}’ +
  10. +
  11. Missing grouping for bases of subscripts and superscripts, such as ‘10^6’ instead of ‘{10}^6’. (Some fixing of the +problem can be requested through a ‘-cxhtmml’ command line option for t4ht.c. For instance, ‘mzlatex file "" "" +"-cxhtmml"’.) +

  12. +
  13. Missing grouping for subscripts and suprscripts, such as ‘A_\mathit{...}’ instead of ‘A_{\mathit{...}}’. (LaTeX +allows indirect access to the content of the operands; TeX4ht requires direct access.) +

  14. +
  15. Use of the operators ‘^’ and ‘_’, instead of ‘\sb’ and ‘\sp’, outside the presence of TeX4ht. (TeX4ht becomes active +only at the ‘\begin{document}’ command. The ‘early_’ and ‘early^’ options extend this awareness to the +preambles of the source latex documents.) +

  16. +
  17. If math environments nested within tabular environments cause problems enclose them within braces (for instance, ‘\begin{tabular}{c} \begin{minipage}{4in} { +\begin{eqnarray} x & = & y \end{eqnarray} } \end{minipage} \end{tabular}’). +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn-bug.html b/support/TeX4ht/doc/mn-bug.html new file mode 100644 index 0000000000..49c3b0e3b6 --- /dev/null +++ b/support/TeX4ht/doc/mn-bug.html @@ -0,0 +1,44 @@ + + + + +minimal + + + + + + + + + exit minimal +
    +
  • Remove the calls to packages that are not essential to reproduce the problem (e.g., \RequirePackage, +\usepakage) +

  • +
  • Remove the local definitions that are not essential. For instance, use +
    \begin{figure}  +
       \includegraphics{filename}  +
       \caption{What ever.}  +
    \end{figure}  +
    +

    instead of +

    \def\fig#1#2{\begin{figure} \includegraphics{#1} \caption{#2} \end{figure}}  +
    \fig{filename}{What ever.}  +
    +

  • +
  • Use core classes when possible (e.g., article instead of scrbook). +

  • +
  • Cut to a minimum the content where possible (e.g., ‘Abc’ instead of ‘Blah blah ... for ever.’)
+

We work in a LaTeX environment different from where the bug reports typically originate. To understand the +bugs we need to recreate the environments producing them. A sample file that isolates the problem reduces the +debugging effort to a minimum. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn-commands.html b/support/TeX4ht/doc/mn-commands.html new file mode 100644 index 0000000000..9217522e1a --- /dev/null +++ b/support/TeX4ht/doc/mn-commands.html @@ -0,0 +1,796 @@ + + + + +calling commands + + + + + + + + +

up

+

Calling Commands

+

From LaTeX to HTML

+

The translation of a LaTeX source file into HTML involves of loading tex4ht.sty and *.4ht style files, choosing the +desirable options for the translation, compiling the source into dvi code with the native LaTeX engine, and +postprocessing the outcome with the tex4ht and t4ht programs (see overview). +

The htlatex command loads a script which takes on itself to invoke the different steps of the process, without +user intervention. The command assumes the form +

+
htlatex filename "options1" "option2" "options3" "options4"
+

where the first set of options is for the tex4ht.sty and *.4ht style files, the second set is for the tex4ht +postprocessor, the third for the t4ht postprocessor, and the last one is for the LaTeX compiler. For +instance, +

+

htlatex filename
+This command requests a translation according to the default conditions, which are set to produce HTML +transitional 4.0 code. +
htlatex filename "html,2,info"
+This command is equivalent to the previous one, specifying explicitly the option html for tex4ht.sty instead of +doing so implicitly. +

In addition, the command requests a break up of the output into separate web pages, in accordance to the two +top sectioning levels of the document. +

Moreover, it asks for a listing in the log file of the information available for the style files in use. +That information, among other things, also introduces additional values available for the first list of +options. +

+
htlatex filename "" "dbcs/!"
+This command requests the loading of the dbcs branch of Chinese hypertext fonts (on top of those already requested +by the default setting). +
htlatex filename "foo,frames" "" "-p"
+This command requests LaTeX to load a private configuration file, named foo.cfg, and to place the +content and table of contents in separate frames. In addition, it asks t4ht not to produce bitmaps for +pictures. +
htlatex filename "" " -ciso2htf" "" "-translate-file=il2-pl"
+This command invokes the LaTeX compiler with the instruction ‘latex -translate-file=il2-plfilename’. + +
+

Available Values for the Options

+

The fields of option1 should be separated by commas. An ‘info’ field requests a listing in the .log file of many of the +the available values. If the list is not empty, it must start with the entry ‘html’, ‘xhtml’, or a name of a private +configuration file. +

The fields of option2 and options3 should be separated by spaces. The available values can be listed by +executing the postprocessors tex4ht.c and t4ht.c, respectively, without arguments (or with wrong sets of +arguments). +

The first field of option2 should be empty or a subdirectory of ht-fonts (typically augmented with an +exclamation mark ‘!’). A space should separate the first field from the second one, also when the first field is +empty. +

The underlying output formats of available htlatex-like commands are tailored into the commands through +fields of option1. The names of these fields are defined in tex4ht.4ht and tex4ht.usr (see General Configuration +Files). These values should be of little interest to most users. +

Different variants of the htlatex command may be invoked by introducing the commands as +arguments to a driver named mk4ht. When provided without arguments, the driver lists the commands it +recognizes. +

+ + +
mk4ht mzlatex filename "html,3" (htlatex filename "html,3,xhtml,mozilla" " -cmozhtf") +
mk4ht oolatex filename (htlatex filename "xhtml,ooffice" "ooffice/! -cmozhtf" "-coo") +
+

Alternatively, a compilation ‘latex mkht-scripts.4ht’ produces different named scripts of similar +functionality. +

+

XHTML and Unicode

The ‘xhlatex’ command is a variant of the ‘htlatex’ command requesting XHTML +output. It consists just of a call to ‘htlatex’ with the entry ‘xhtml’ in the first list of options and ‘-cvalidate’ in +the third list. For instance, ‘xhlatex filename’ or ‘htlatex filename "xhtml"’. +

To request a Unicode representation of symbols, the first list of options should include the ‘uni-html4’ entry, and +the second list should include the ‘-cunihtf’ entry preceded by space. For instance, ‘xhlatex filename +"xhtml,uni-html4" " -cunihtf"’. +

Unicode representations of symbols in UTF-8 encoding may be requested with the entry ‘-utf8’ +added to the second list. For instance, ‘xhlatex filename "xhtml,charset=utf-8" " -cunihtf +-utf8"’. +

To request expanded usage of unicode values in iso-8859-1 output employ commands similar to +

+
htlatex file "" "iso8859/1/charset/uni/!"
+

or introduce a similar charset path in tex4ht.env. Otherwise, non iso-8859-1 characters might obtain bitmap +representations. +

+

XHTML with MathML

+

TeX4ht has different configurations for different modes of output. It is distributed with pre-tailored base +configurations for translating LaTeX math into MathML, and extra configurations for adjusting the outcome to +Mozilla, MathPlayer, and PMathML CSS. Only presentational MathML is supported. +

     mzlatex filename  +
     mzlatex filename "html,pmathml"  +
     mzlatex filename "html,mathml-"  +
     mzlatex filename "html,mathplayer"  +
     xhmlatex filename  +
+

For XHTML+MathML to be served both by Mozilla and MSIE+MathPlayer use the command line option +‘mathplayer’. + +

The mzlatex command is a short cut representation for the command ‘htlatex filename "xhtml,mozilla" +" -cmozhtf" "-cvalidate"’. It take into account special needs of browsers. The xhmlatex command is a short cut +representation for the command ‘htlatex filename "xhtml,mathml" " -cunihtf" "-cvalidate"’; it does not +make any compromizes toward browsers. +

It might be worthwhile to notice some of the more common sources of problems for MathML. The ‘mathml-’ +options asks for a degraded MathML output that sidetracks some of the problems. +

+

OpenDocument, OpenOffice, and MS Word

+

A translation for an OpenDocument format can be requested by the ‘\oolatex’ command. The command is a +variant of htlatex in which the first list of options holds the entries ‘xhtml,ooffice’, the second list holds the +entry ‘-cmozhtf’ preceded by a space, and the third list contains ‘-coo’ (htlatex filename "xhtml,ooffice" +"ooffice/! -cmozhtf" "-coo -cvalidate"). The output of a command ‘oolatex filename’ is a zipped file +named with a ‘.odt’ extension. +

The OpenDocument code employs MathML for formulas, and XSL-FO for formatting. It can be viewed by the +OpenOffice word processor which, in turn, can export RTF and other MicroSoft-based formats (see also, Maarten +Wisse, “Hacking TeX4ht for XML Output: The Road toward a TeX to Word Convertor”, MAPS 28 (2002), +pp. 28-35). +

A command of the form ‘htlatex filename "html,word" "symbol/!" "-cvalidate"’ asks for HTML +output tuned toward MicroSoft Word. Such a format, however, relies on bitmaps for mathematical +formulas. +

+

DocBook and TEI

+

The following commands may be used for requesting DocBook and TEI output. +

+ + + + +
dbmlatex: htlatex filename "xhtml,docbook-mml" " -cunihtf" "-cdocbk"
dblatex:htlatex filename "xhtml,docbook" " -cunihtf" "-cdocbk"
teimlatex:htlatex filename "xhtml,tei-mml" " -cunihtf" "-cdocbk"
teilatex:htlatex filename "xhtml,tei" " -cunihtf" "-cdocbk"
+

JavaHelp

+

JavaHelp is an online documentation system for use by Java-based applications. Such documents can be +produced from LaTeX files through commands similar to ‘jhlatex filename’ for JavaHelp version +2.0. +

The above invocation stands for ‘htlatex filename "html,3.2,xml,javahelp,unicode" " -cmozhtf +-u10" "-dfilename-doc/ -cjavahelp"’. The ‘-u10’ asks for entity references in base 10—JavaHelp +doesn’t seem to support hexadecimal representations. The -cjavahelp invokes the JavaHelp indexer to +produce the search database at ‘jobname-doc/jobname-jhs’ with a command similar to ‘java -jar +${HOME}/jh2.0/javahelp/bin/jhindexer.jar -db jobname-doc/jobname-jhs jobname*.html’. +

The Java program is to be distributed with the jobname-doc directory. +

+

Private Configuration Files

+

The leading entry, in the first list of options of the htlatex-like commands, can equal ‘html’ or ‘xhtml’. If this is not +the case, the entry is assumed to be the name of a configuration file. The extension ‘cfg’ is assumed for names of +configuration files that are listed without their extension. +

A configuration file should take the following form for LaTeX files. +

+
...early definitions...
+\Preamble{options}
+...definitions...
+\begin{document}
+...insertions into the header of the html file...
+\EndPreamble
+

It is up to the user to decide the distribution of entries between the \Preamble and the htlatex-like + +commands. +

+
Example The command ‘htlatex myfile "mycfg,2"’ requests the compilation of a file named myfile.tex, in +the presence of a configuration file named mycfg.cfg. The configuration file might have the following +content. +
\Preamble{html}  +
\begin{document}  +
  \Css{body { color : red; }}  +
\EndPreamble  +
+
+
Notes +
    +
  • Notice that for a LaTeX file the \begin{document} instruction should be present both in the configuration file and +the source file. +

  • +
  • Instructions defined within a source file may be redefined in a configuration file. Such a feature enables to keep +source files intact for compilation to different formats by different tools. +

    For instance, a definition of the form \renewcommand\mycommand{...} within a configuration file provided for +the following LaTeX source. +

          \documentclass{...}  +
            \newcommand\mycommand{...}  +
          \begin{document}  +
             Use \mycommand{...}  +
          \end{document}  +
    +
+
+

Creating Private Command Lines

+

+

A htlatex-like script foolatex.bat can be obtained from the compilation under LaTeX of a file similar to the +following one. +

 \def\script{bat}  +
 \input mkht.4ht  +
 \one{,html,next,3}  +
 \two{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1  +
      -ic:\tex4ht\texmf\tex4ht\ht-fonts\symbol\!}  +
 \three{#1 -dc:\my\dir}  +
 \make{foo}  +
 \end{document}  +
+

A call of the form +

+
foolatex filename
+

is then equivalent to a call of the following form. +

+
htlatex filename "html,next,3" "symbol/!" "-dc:\my\dir"
+

Scripts obtained in such a manner can embed parameters within their bodies instead of expecting the +parameters to be provided in command lines. +

Details regarding the available options can be found by compiling under LaTeX a file of the following +form. +

+
\input mkht.4ht \end{document}
+ +

The compilation requires the ProTex.sty and AlProTex.sty files available at +http://www.cse.ohio-state.edu/~gurari/systems.html. +

+

An Insight into the Commands

+

Given a LaTeX file +

+
 \documentclass{article} +
 \begin{document} +
    .................. +
 \end{document} +
+

the ‘htlatex filename’ command produces a call ‘latex filename’ to LaTeX on an implicit file of the following +form. +

+
 \documentclass{article} +
    \usepackage{tex4ht} +
 \begin{document} +
    .................. +
 \end{document} +
+

Similarly, the command ‘htlatex filename "options"’ produces a call to a ‘latex filename’ command on an +implicit file of the following form. +

+
 \documentclass{article} +
    \usepackage[options]{tex4ht} +
 \begin{document} +
    .................. +
 \end{document} +
+ The command ‘ht latex filename ’ may be used, instead of the ‘htlatex filename "options"’ command, in +cases that the \usepackage instruction is explicitly introduced into the source files. +

A Deeper Insight

+

From the perspective of TeX4ht, the htlatex-like commands, and the \usepackage, are indirect approaches for +getting LaTeX files of the following form. Such files can be explicitly provided for compilations requested through +the ‘ht latex filename’ command. +

+
 \documentclass{article} +
    ..... +
    \input tex4ht.sty +
    ..... +
 \Preamble{options} +
    ..... +
 \begin{document} +
    ..... +
 \EndPreamble +
    .................. +
 \end{document} +
+

TeX, ConTeXt, and TeXi

+

Commands similar to those offered for LaTeX are also offered for TeX (dbmtex, dbtex, ht, httex, mztex, ootex, +t4ht, teimtex, teitex, tex4ht, xhmtex, xhtex) and TeXi (dbmtexi, dbtexi, httexi, mztexi, ootexi, teimtexi, teitexi, +xhmtexi, xhtexi). In the case of TeX, the fragment of code ‘\csname tex4ht\endcsname’ should be introduced + +by the user into the source file, after the preamble of the file where the document definitions reside +(example). In the case of TeXi, such a code fragment is introduced implicitly. +

The private configuration files are similar to those of LaTeX, with the instruction ‘\begin{document}’ +excluded. +

+
...
+\Preamble{options}
+...
+\begin{document}
+...
+\EndPreamble
+...
+ The ‘ht tex filename ’ and ‘ht texi filename ’ commands may apply for TeX and TeXi sources that embed +such code fragments in their body. The embeded code should replace the ‘\csname tex4ht\endcsname’ fragment in +TeX sources, be palces at the strat of the files in TeXi sources, and not include the \begin{document} +instruction. +

For ConTeXt similar instructions apply with suffixes ‘context’ instead of ‘latex’, ‘tex’, or ‘texi’. For +instance, ‘htcontext’ . +

+

Other Options

+

+

    +
  • XeTeX files can be compiled with htlatex-like instructions (e.g., htxelatex, htxetex, mzxelatex). Currently only +partial support is provided and only TeX-based fonts are handled.
  • +
  • A jsMath mode of output may be requested with instructions similar to the following one. +
    htlatex file "xhtml,jsmath" " -cmozhtf"
    +

  • +
  • The dvipng utility might be activated for bitmap constructions through a request ‘-cdvipng’ in the third options +list. For instance, +
    htlatex file "" "" "-cdvipng"
    +

    This utility is reported to produce fast high quality output with much smaller files than other +convertors. +

  • +
  • TeX4ht offers also speech output formats. +
+

Validation

+

The outcome of the translations should be checked by validators for proper syntax. Typically, with the presence of +validators, errors are easy to detect and correct, but they require human intervention. +

TeX4ht doesn’t offer a built-in parser to verify the correctness of the outcome. However, external validator(s) +can quite easily be integrated into the compilation process. +

+

Recommendations

+

To keep with the spirit of LaTeX and hypertext, in which style is assumed to be separated from content, the users +are encouraged to avoid inserting TeX4ht code into their source files. Instead, they should place their +modifications, to the default settings, within private configuration files to be loaded by htlatex-like +commands. +

On the other hand, it should be noted that hypertext markings should adhere to strict rules specified by +different standards. Consequently, it is strongly advised to check the output obtained from the default +configurations, before trying to tailor new ones. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn-htf.html b/support/TeX4ht/doc/mn-htf.html new file mode 100644 index 0000000000..1e008cd4e8 --- /dev/null +++ b/support/TeX4ht/doc/mn-htf.html @@ -0,0 +1,127 @@ + + + + +require + + + + + + + + + up +

Designing Virtual Hypertext Fonts

+
    +
  1. If you are creating a new htf font, scan the information TeX4ht issues in the log file of the compilation regarding +the missing htf font. For instance, +

    --- warning --- Couldn’t find font ‘ectt1000.htf’ (char codes: 0--255)

  2. +
  3. Produce a document showing the character maps. Employ a script similar to the following one, using a standard +compilation, say, for an output in PDF or PostScript. +
    Example +
             \documentclass{article}  +
               \input showfonts.4ht  +
             \begin{document}  +
               \showfonts  +
                  {eccc1000}  +
                  {ecss1000}  +
                  {ecsx1200}  +
                  {ecti1000}  +
                  {ectt1000}  +
                  {}  +
             \end{document}  +
    +
  4. +
  5. Create htf fonts of the form +
           first line:    prefix_of_font_name  first_index  last_index  +
                          ...............  +
                          ...............  +
                          ...............  +
                          ...............  +
           last line:     prefix_of_font_name  first_index  last_index  +
    +

    where +

      +
    1. The first and last lines must agree on their content, with first_index and last_index being equal to the character +codes mentioned in the message +

      --- warning --- Couldn’t find font ‘....’ (char codes: first_index--last_index) +

    2. +
    3. The number of intermediate lines should equal +

      (last_index) - (first_index) + 1. +

      Each of these intermediate lines provides a representation for a corresponding character code. +

      +
      Example +
                  ectt 0 255  +
                  ’&#x0060;’    ’’        0  +
                  ’&#x00B4;’    ’’        1  +
                  ’&#x02C6;’    ’’        2  +
                  ’~’           ’’        3  + +
                  ..................  +
                  ’i’          ’1’       25 dotless i  +
                  ..................  +
                  ’’           ’’        255  +
                  ectt 0 255  +
      +
      +

    4. +
    5. Each intermediate line consists of three fields +

      string class comment +

      The first two fields must be enclosed by a delimiter, determined by the first character in the line. The comment +may be empty. +

      A ‘class’ specified by an odd integer value asks for a pictorial character. An even integer number asks +for a non-pictorial character, specified in the ‘string’ field. An empty class field is treated as a zero +value. +

      The manner the characters of the different classes are packaged, is determined by commands of the form +‘\Configure{htf}{class-number}...’. For instance, +

         \Configure{htf}{0}{+}{<span\Hnewline  +
            class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>}  +
         \Configure{htf}{1}{+}{<img\Hnewline  +
            src="}{" alt="}{" class="}{\%s}{-\%d}{x-x-\%x}{" />}  +
         \Configure{htf}{4}{+}{<small\Hnewline  +
            class="}{}{}{}{}{small-caps">}{</small>}  +
         \Configure{htf}{6}{+}{<u\Hnewline  +
            class="}{}{}{}{}{underline">}{</u>}  +
      +

      When no special requirements are in place, it is advisable to use just the classes of 0 and 1. +

    6. +
    7. The ‘string’ field may include any sequence of characters, except for its delimiters. The backslash character ‘\’ acts +there as an escaped character. It may act as a delimiter for a character code, or be followed by another backslash +(that is, ‘\\’ represents the character ‘\’ ).
    8. +
    9. In the string part, use ‘&lt;’ for the character ‘<’, ‘&gt;’ for ‘>’, and ‘&amp;’ for ‘&’; +
    +

  6. +
  7. If you want specific information for a font, to be included in the .css file, add to the end of the file an entry +consisting of the font name and the information in discourse. The two fields must be separated by space. The second +field may span over more than one line; the extra lines must start with space. The lines of the entries must be +prefixed with ‘htfcss: ’. +

    If more than one entry applies for a given font, the first one is the only one that counts.

+

Note. It is highly recommended to set up fonts just of Unicode entries, and let TeX4ht automatically map the +symbols to the appropriate character encodings (using unicode.4hf mapping files). +

Instead of explicitly specifying the encodings for the characters, an htf font can be declared an alias to another +htf font by specifying in the first line the aliased font name prepended by a period. +

+
Example +

cmss.htf +

.cmti  +
htfcss: cmss   font-family: sans-serif;  +
htfcss: cmssbx font-weight: bold;  +
htfcss: cmssi  font-style: italic; font-family: sans-serif;  +
+
+

up + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn-index.html b/support/TeX4ht/doc/mn-index.html new file mode 100644 index 0000000000..441e09fc12 --- /dev/null +++ b/support/TeX4ht/doc/mn-index.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + + +

up

Index

+
+ +
#     1 +
+$     2 +
+$$     3 +
+%%~     4 +
+%     5 +
+^     6, 7 +
+_     8, 9, 10 +
+~     11 +
+\(     12 +
+\[     13

B
Bitmaps and graphics     +
   eps     14 +
   fonts     15, 16 +
   png     17, 18, 19, 20 +
   Requests     21, 22, 23

C
Cascade Style Sheets +(CSS)     24, 25 +
+Chinese     26 +
+\ConfigureEnv     27, 28 +
+\ConfigureList     29, 30 +
   description     31 +
   enumerate     32 +
   flushleft     33 +
   flushright     34 +
   itemize     35 +
   list     36 +
   quotation     37 +
   quote     38 +
   trivlist     39 +
   verse     40 +
+\ConfigureToc     41, 42 +
+\Configure     43, 44 +
   ()     45, 46 +
   +CutAt     47, 48 +
   array     49, 50 +
   crosslinks+     51, 52 +
   crosslinks     53, 54 +
   CutAt     55, 56 +
   eqnarray     57, 58 +
   htf     59, 60 +
   htf-sty     61, 62 +
   HtmlPar     63, 64 +
   Sectioning units     65, 66 +
   SUBSUP     67, 68 +
   SUB     69, 70 +
   SUP     71, 72 +
   tableofcontents     73, 74 +
   tabular     75, 76 +
   TocAt*     77, 78 +
   TocAt     79, 80 +
   writetoc     81, 82 +
   []     83, 84 +
   $     85, 86 +
   $$     87, 88 +
+ConTeXt     89 +
+\CssFile     90, 91 +
+\Css     92, 93 +
+\CutAt     94, 95

D
dblatex     96 +
+dbmlatex     97 +
+DocBook     98, 99 +
+dvips     +
   png     100 +
+dvi     101, 102

E
\EndNoFonts     103, 104 +
+Environment Variables     105, 106, 107, 108 +
+Environments     109 +
+\ExitHPage     110

F
Files     +
   4ht     111 +
   Configuration     112, 113 +
   Download     114, 115, 116, 117 +
   dvi     118 +
   idv     119, 120 +
   lg     121, 122 +
+Fonts     +
   Bitmaps     123, 124 +
   Chinese     125 +
   htf     126, 127, 128, 129, 130, 131 +
   tfm     132, 133, 134, 135, 136 +
+Frames     137

G
Graphical User Interfaces     138 +

H
\HCode     139, 140 +
+\HCol     141 +
+\HPage     142, 143 +
+\HRow     144 +
+htcmd.c     145 +
+htcontext     146 +
+htlatex     147, 148 +
   available options     149 +
   mk4ht     150 +
   mkht-scripts.4ht     151 +
   number of compilations     152 +
+httex     153 +
+ht     154, 155

I
\ifOption     156, 157 +
+\IgnoreIndent     158, 159 +
+\IgnorePar     160, 161 +
+\Indent     162, 163

J
JavaHelp     164 +
+\JavaScript     165, 166 +
+JsMath     167

K
Kpathsea     168, 169, 170, 171 +

L
LaTeX     172 +
+\Link     173, 174 +
+Lists     175

M
Math environments     176 +
MathML     177 +
   Do and Don’t     178 +
   MathPlayer     179 +
+mk4ht     180 +
+mkht.4ht     +
   Configuration     181 +
+mzlatex     182 +
   -mathml     183

N
\NewConfigure     184, 185 +
+\NewSection     186, 187 +
+\NoFonts     188, 189

O
oolatex     190 +
+OpenDocument     191, 192 +
+OpenOffice     193 +
+Options, package     +
   1, 2, 3, 4     194 +
   next     195 +
   no^     196, 197 +
   no_     198, 199 +
   sections+     200

P
Paragraphs     201 +
+\Par     202, 203 +
+PDF     204 +
+\PicDisplay     205 +
+\PicMath     206 +
+Pictures     207 +
   Bitmaps     208, 209 +
   Thumbnail     210 +
+\Picture     211, 212 +
+PostScript     213

S
\ScriptCommand     214, 215 +
+\ScriptEnv     216, 217 +
+Scripts     218 +
   dblatex     219 +
   dbmlatex     220 +
   ht     221 +
   MicroSoft Word     222 +
   mzlatex     223 +
   oolatex     224 +
   tailored     225 +
   teilatex     226 +
   teimlatex     227 +
   xhmlatex     228 +
+Sectioning     229 +
   like     230 +
+\ShowPar     231, 232 +
+Speech     233 +
+Subscripts and superscripts     234

T
t4ht.c     235 +
   -p     236 +
   Compiling     237, 238 +
+\tableofcontents     239, 240 +
+Tables of Contents     241 +
+Tables     242 +
   number of compilations     243, 244 +
+teilatex     245 +
+teimlatex     246 +
+TEI     247, 248 +
+tex4ht.4ht     249 +
+tex4ht.c     250, 251 +
   -cunihtf     252 +
   Compiling     253, 254, 255, 256, 257, 258, 259 +
   HTFDIR     260 +
   LGPIC     261 +
   LGSEP     262 +
   LGTYP     263, 264, 265 +
   MAXFONTS     266 +
   TFMDIR     267 +
+tex4ht.env     268, 269 +
   ENVFILE     270 +
   MS Windows     271 +
   TEX4HTENV     272 +
   Unix     273 +
+tex4ht.fls     274, 275 +
   TEX4HTWR     276 +
+tex4ht.sty     277, 278 +
+tex4ht.usr     279 +
+TeX     280 +
+\TocAt     281, 282

U
Unicode     283 +
   -u10     284 +
   -utf8     285

V
Validation     286, 287, 288, 289

W
Word, +MicroSoft     290

X
xhmlatex     291 +
+XHTML     292 +
+XwTeX     293
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn-mswin.html b/support/TeX4ht/doc/mn-mswin.html new file mode 100644 index 0000000000..1c62f83087 --- /dev/null +++ b/support/TeX4ht/doc/mn-mswin.html @@ -0,0 +1,148 @@ + + + + +MS Windows + + + + + + + + + exit MS Windows +

A Setup for MS Windows

+
    +
  1. Establish a directory, say, ‘c:\tex4ht’. +

  2. +
  3. Download the file tex4ht.zip into the directory tex4ht.dir and unzip it. +

    Update the Pointers in the Environment File

    +

  4. +
  5. Replace in c:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env the lines starting with the character ‘t’, with +alternative lines which state what directories should be searched for the tfm files of TeX and LaTeX. The directory +names must be preceded with the character ‘t’ at the first column. If their subdirectories are also to be searched, the +names should be appended with the character ‘!’. +

    Note that long file names on MS Windows, and file names with spaces, might have short space-free aliases. For +instance, a directory name ‘c:\progra~1\texmf’ instead of ‘c:\program files\texmf’. The alternative names can +be checked by issuing the ‘dir’ command in a DOS session. +

  6. +
  7. If needed, adjust the paths in the ‘i’ records of tex4ht.env. These records are used for searching htf fonts, and +they are similar to the ‘t’ records. +

    Update the Bitmap Generating Scripts

    +

  8. +
  9. The file tex4ht.env contains the following default script, of calls to system utilities for translating dvi pictures into +png. +
    Gif exist zz%%4.ps DEL zz%%4.ps >nul  +
    Gif exist %%3 DEL %%3 >nul  +
    Gdvips -E -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps  +
    Gconvert zz%%4.ps -trim +repage -density 110x110 -transparent "#FFFFFF" %%3  +
    Gif exist zz%%4.ps DEL zz%%4.ps >nul  +
    +

    You may replace this script with an alternative sequence of system calls. In such a case, place one command per +line, and mark each of these lines with the character ‘G’ at the first column. The literate version tex4ht-env.tex of +tex4ht.env offers a few suggestions. +

    The entry %%1 is a parameter referring to a dvi file, the %%2 is a parameter indicating a page +number, the %%3 is a parameter standing for an output file name, and %%4 is a parameter providing the +jobname. +

    The dvips utility translates dvi files into postscript. The convert utility, provided within the distribution of +ImageMagick, translates postscript files into png. +

    The script employs the Metafont mode ‘ibmvga’ of resolution ‘110’; the available modes are listed in file +modes.mf of Metafont. +

    Use the option ‘-crop 0x0 +page’ or ‘-crop 0x0 +repage’ instead of ‘-trim’ for old convert utilities that do +not recognize the latter argument. +

  10. +
  11. Instead of employing the G scripts, glyphs can rely on specialized F scripts of similar nature for creating pngs. +

  12. +
  13. The bitmap formats can be controlled by a ‘g’ record of tex4ht.env, a ‘-g’ switch of tex4ht.c, and a -LGTYP +switch in the compilation of tex4ht.c. The default setting assumes the ‘png’ format. +

    Update the Other Scripts in the Environment File

    +

  14. +
  15. If needed, replace the scripts ‘Mmove %%1 %%2%%3’, and ‘Ccopy %%1 %%2%%3’ in tex4ht.env with alternative +scripts for moving and copying files. The parameter %%1 stands for the source file(s), the parameter %%2 provides the +target directory name, and the parameter %%3 refers to the target file name(s). +

  16. +
  17. If applicable, replace the scripts ‘Achmod %%1 %%2%%3’ in tex4ht.env with an alternative script for changing the +access mode of files. The parameter %%1 stands for access mode, the parameter %%2 refers to a directory name, and +the parameter %%3 refers to the file(s). +

  18. +
  19. Postprocessing of files can be requested with ‘.’ scripts. The files are selected by their extension names, as listed +following the period symbols. The parameter ‘%%1’ provides the file names, and the parameter ‘%%0’ provides the +jobnames. +

    The environment file tex4ht.env offers the following draft of a dot script for validating output of +compilations. +

    <validate>  +
     .xml xmllint --noout --valid %%1.xml  +
     .html xmllint --noout --valid %%1.html  +
     .css mycssparser %%1.css  +
    </validate>  +
    +

    The dot script may be activated in the following manner. +

    +

      +
    1. Fix the paths in the first two records. +

    2. +
    3. Bind a CSS validator to the .css record. (http://jigsaw.w3.org/css-validator/DOWNLOAD.html) +

    4. +
    5. Remove the leading space characters from the above record. +
    +

  20. +
  21. Postprocessing of files can also be requested with ‘X’ scripts. The file names are accessed through the parameter +‘%%1’, and their extensions through the parameter ‘%%2’. +

    Set the Script Files

    +

  22. +
  23. If you use a command different than ‘latex’ for compiling LaTeX source files, replace the references to latex in +c:\tex4ht\bin\win32\*.bat with the appropriate command name. The tex and texi commands require similar +attention. +

    Make the System Globally Known

  24. +
  25. Add ‘c:\tex4ht\bin\win32’ to your path variable in ‘c:\AUTOEXEC.BAT’. +

  26. +
  27. Place the files ‘tex4ht.sty’ and ‘*.4ht’ of c:\texmf\tex\generic\tex4ht\ within the LaTeX/TeX tree (either by +moving the files to a directory which already has sty files, or by modifying the environment variable TEXINPUTS to +point also to ‘c:\texmf\tex\generic\tex4ht\’). +

  28. +
  29. If your TeX system uses a database to locate files, make sure to refresh it (e.g., select Start -> Programs -> +MiKTeX -> Refresh, or run ‘initexmf -u’ from a DOS session, to update MiKTeX). +

    Didn’t Use ’c:\tex4ht’?

  30. +
  31. If TeX4ht is installed in a directory other than c:\tex4ht, make sure to adjust the related paths in tex4ht.env the +.bat files. +

  32. +
  33. Some output modes assume Java is also available in the computer in use. +

    Test the Installation

  34. +
  35. Move testa.tex and testb.tex from c:\tex4ht.dir\temp\ to your work directory
  36. +
  37. Compile ‘testa.tex’ with the command ‘ht latex testa
  38. + +
  39. Compile ‘testb.tex’ with the command ‘htlatex testb’ +
+

[MS Commands] + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn-port.html b/support/TeX4ht/doc/mn-port.html new file mode 100644 index 0000000000..82cd5b9f7f --- /dev/null +++ b/support/TeX4ht/doc/mn-port.html @@ -0,0 +1,41 @@ + + + + +similar manner + + + + + + + + + exit similar manner +

Establishing a Port

+ A port can be established in the following manner. +

+

    +
  1. Set a directory, say,‘~/tex4ht.dir’.
  2. +
  3. Download the file tex4ht.zip into the directory tex4ht.dir and unzip it.
  4. +
  5. Add to ‘tex4ht.dir/texmf/tex4ht/base/’ and ‘tex4ht.dir/bin/’ a subdirectory named, say, mydir. +
  6. +
  7. Copy ‘tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env’ or ‘tex4ht.dir/texmf/tex4ht/base/win32/tex4ht.env’ +into ‘tex4ht.dir/texmf/tex4ht/base/mydir/tex4ht.env’. Modify the file to meet the setting of your environment.
  8. +
  9. Compile the source files ‘tex4ht.dir/src/tex4ht.c’ and ‘tex4ht.dir/src/t4ht.c’ into executable programs tex4ht +and t4ht, and move the latter programs into ‘tex4ht.dir/bin/’.
  10. +
  11. Set a driver for the t4ht utility.
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn-upgrade.html b/support/TeX4ht/doc/mn-upgrade.html new file mode 100644 index 0000000000..be9b792be6 --- /dev/null +++ b/support/TeX4ht/doc/mn-upgrade.html @@ -0,0 +1,185 @@ + + + + +upgrade + + + + + + + + + exit upgrade +

TeX4ht Upgrading

+ At present, the only practical way to update TeX4ht is via a distribution. Runtime files continue to be updated +in ¡a href=”/texlive/”¿TeX Live¡/a¿, so if you’re using TL, you can get those with ¡tt¿tlmgr update¡/tt¿. We don’t +know if MiKTeX picks up the same updates. +

There has been no new full release since Eitan’s death; still a work in progress. +

For the upstream tex4ht source repository where the work is being done, see the tex4ht home +page. +

+

A Setup for Unix Environments

+
    +
  1. Establish a directory, say, ‘~/tex4ht.dir’. +

  2. +
  3. Download the file tex4ht.zip into the directory tex4ht.dir and unzip it. +

    Compile the Postprocessors

    +

  4. +
  5. Compile ~/tex4ht.dir/src/tex4ht.c into an executable tex4ht file with a command similar to the following +one. +

    gcc -o tex4ht tex4ht.c -DENVFILE=’"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’ +-DHAVE_DIRENT_H +

    The switch ‘-DENVFILE=’"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’’ may be omitted, if the +program can reach the environment file in an alternative manner. +

  6. +
  7. Compile ~/tex4ht.dir/src/t4ht.c with a command similar to following one. +

    gcc -o t4ht t4ht.c -DENVFILE=’"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’ +

    Again, the switch ‘-DENVFILE=’"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’’ may be omitted, if +the program can reach the environment file in an alternative manner. +

  8. +
  9. Move the executable files tex4ht and t4ht to directory ~/tex4ht.dir/bin/unix/. +

    Update the Pointers in the Environment File

  10. +
  11. Replace in ~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env the line(s) starting with the character ‘t’, with +alternative lines which state what directories should be searched for the tfm files of TeX and LaTeX. The directory +names must be preceded with the character ‘t’ at column 1 and, if their subdirectories are also to be searched, the +names should be appended with the character ‘!’ (insight). +

  12. + +
  13. If needed, adjust the paths in the ‘i’ records of tex4ht.env. These records are used for searching htf fonts, and +they are similar to the ‘t’ (insight). +

  14. +
  15. The entry ‘l~/tex4ht.dir/filename’ in tex4ht.env points to the address where the bookkeeping file +should reside. Modify the path to fit your platform. The character ‘l’ should precede the address, +and be placed at the first column. Make sure the access mode of the directory permits writing into +files. +

    Update the Bitmap Generating Scripts in the Environment File

    +

  16. +
  17. The file tex4ht.env contains the following default script, of calls to system utilities for translating dvi pictures +into bitmaps. +
    Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2  > zz%%4.ps  +
    Gconvert zz%%4.ps -trim +repage -density 110x110 -transparent ’#FFFFFF’ %%3  +
    Grm zz%%4.ps  +
    +

    The entry %%1 is a parameter refering to a dvi file, the %%2 is a parameter indicating a page number, the %%3 is +a parameter standing for an output file name, and %%4 is a parameter providing the jobname. +

    You may replace this script with an alternative sequence of system calls. In such a case, place one command per +line, and mark each of these lines with the character ‘G’ at the first column. The literate version tex4ht-env.tex of +tex4ht.env offers a few suggestions. +

    The dvips utility translates dvi files into postscript. The convert utility, provided within the distribution of +ImageMagick, translates postscript files into png. +

    The script employs the Metafont mode ‘ibmvga’ of resolution ‘110’; the available modes are listed in file +modes.mf of Metafont. +

    Use the option ‘-crop 0x0 +page’ or ‘-crop 0x0 +repage’ instead of ‘-trim’ for old convert utilities that do +not recognize the latter argument. +

  18. +
  19. Instead of employing the G scripts, glyphs can rely on specialized F scripts of similar nature for creating bitmaps. +

  20. +
  21. The bitmap formats can be controlled by a ‘g’ record of tex4ht.env, a ‘-g’ switch of tex4ht.c, and a -LGTYP +switch in the compilation of tex4ht.c. The default setting assumes the ‘png’ format. +

    Update the Other Scripts in the Environment File

    +

  22. +
  23. If needed, replace the scripts ‘Mmv %%1 %%2%%3’ and ‘Ccp %%1 %%2%%3’ in tex4ht.env with alternative scripts for +moving and copying files. The parameter %%1 stands for the source file(s), the parameter %%2 provides the target +directory name, and the parameter %%3 refers to the target file name(s). +

  24. +
  25. If needed, replace the script ‘Achmod %%1 %%2%%3’ in tex4ht.env with an alternative script for changing access +mode of files. The parameter %%1 stands for access mode, the parameter %%2 refers to a directory name, and the +parameter %%3 refers to file(s). +

  26. +
  27. Postprocessing of files can be requested with ‘.’ scripts. The files are selected by their extension +names, as listed following the period symbols. The parameter ‘%%1’ provides the file names, and the +parameter ‘%%0’ provides the jobnames. Under kpathsea, the substring ‘to indirectly obtain the value of +${SELFAUTOPARENT}. +

    The environment file tex4ht.env offers the following inactive dot script for validating output of +compilations. +

    <validatehtml>  +
     .html xmllint --noout --valid --html %%1.html  +
    </validatehtml>  +
    <validate>  +
     .xml xmllint --noout --valid %%1.xml  +
     .html xmllint --noout --valid %%1.html  +
     .css mycssparser %%1.css  +
    </validate>  +
    +

    The dot script may be activated in the following manner. +

    +

      +
    1. Bind a CSS validator to the .css record. (http://jigsaw.w3.org/css-validator/DOWNLOAD.html) +

    2. +
    3. Remove the leading space characters from the above record. +
    +

  28. +
  29. Postprocessing of files can also be requested with ‘X’ scripts. The file names are accessed through the parameter +‘%%1’, and their extensions through the parameter ‘%%2’. +

    Set the Script Files

  30. +
  31. Ensure proper paths within the htlatex-like scripts in ‘~/tex4ht.dir/bin/unix/’. If you use a command different +than latex for compiling LaTeX source files, fix also the references to latex in the scripts. Check also the +appropriateness of the commands for compiling TeX and TeXi files. +

    The default scripts provide for three calls to LaTeX. The file tex4ht-auto-script.tex in tex4ht-lit.zip offers +examples of bash scripts that automatically determine the number of compilations needed from LaTeX (contributed +by Kai-Mikael Jää-Aro).

    Make the System Globally Known

  32. +
  33. Inform the operating system where the scripts reside, say, by adding the directory ‘~/tex4ht.dir/bin/unix/’ into +the path variable within the .login file. For instance, +

    set path=($path ~/tex4ht.dir/bin/unix/) +

  34. +
  35. Let LaTeX and TeX know where the new style files reside, say, by adding the directory + +‘~/tex4ht.dir/texmf/tex/generic/tex4ht/’ to the environment variable TEXINPUTS. For instance, +

    setenv TEXINPUTS .:~/tex4ht.dir/texmf/tex//:/usr/local/share/texmf/tex// +

  36. +
  37. If your TeX system uses a registry database to locate files, make sure to refresh it (e.g., run texhash for kpathsea, +or mktexlsr or ‘initexmf -u’ for some Linux systems). +

  38. +
  39. Some output modes assume Java is also available in the computer in use.

    Test the Installation

    +
  40. +
  41. Move testa.tex and testb.tex from ~/tex4ht.dir/temp/ to your work directory
  42. +
  43. Compile ‘testa.tex’ with the command ‘ht latex testa
  44. +
  45. Compile ‘testb.tex’ with the command ‘htlatex testb’ +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn.css b/support/TeX4ht/doc/mn.css new file mode 100644 index 0000000000..d8e48a83fa --- /dev/null +++ b/support/TeX4ht/doc/mn.css @@ -0,0 +1,79 @@ + +/* start css.sty */ +.cmr-9{font-size:90%;} +.cmr-7{font-size:70%;} +.cmmi-10{font-style: italic;} +.cmmi-7{font-size:70%;font-style: italic;} +.cmbx-10{ font-weight: bold;} +.cmbx-10{ font-weight: bold;} +.cmbx-9{font-size:90%; font-weight: bold;} +.cmbx-9{ font-weight: bold;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-9{font-size:90%;font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmti-10{ font-style: italic;} +p{margin-top:0;margin-bottom:0} +p.indent{text-indent:0;} +p + p{margin-top:1em;} +p + div, p + pre {margin-top:1em;} +div + p, pre + p {margin-top:1em;} +a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; hyphens: auto; } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +div.par-math-display, div.math-display{text-align:center;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +div.proclaim { margin-top: 1em; margin-bottom: 1em; } +p.item {text-indent:-2em; margin-left:2em;} +p.itemitem {text-indent:-2em; margin-left:4em;} +span.item, span.itemitem {width:2em; margin-right:0.4em;} +td.eqalign3 { text-align:right; margin-left:10em;} +.eqalign td { white-space: nowrap; } +div.eqalign {text-align:center;} +td.eqalignno3, td.leqalignno3 { text-align:right; margin-left:10em;} +.leqalignno td, .eqalignno td { white-space: nowrap; } +.leqalignno td.noalign, .eqalignno td.noalign { width:5%; white-space: normal; } +table.leqalignno, table.eqalignno {width:100%;} +img.cdots{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +div.Draw{text-align:center} +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +div.Verbatim { font-family: monospace,monospace; white-space: nowrap; } +body .Verbatim { margin: 1em; } +.IndexSec {margin-top:1em; margin-bottom:0.5em;} +.intro{border:1px solid black; padding:4px;} +span.QAChapter{font-size: 125%;} +h1, h2, h3 { font-family: sans-serif; } +body {max-width: 60rem;margin:1rem;} +.SIGN{text-align:right;} +.Template { margin-left:3em; } +div.ShowCode{ font-family:monospace; white-space:nowrap; } +span.showcode { color: green; } +div.TableOfContents { margin-top: 1em; margin-right: 1em; margin-left:1em;} +div.Warning{ margin-right: 8%; margin-left:8%; text-align:justify; } +div.Warning div.Warning{ font-weight: bold; text-align:justify; border:solid 1px; color:red; } +.tabular, div.output { background-color:#FFFFCC; } +div.output { margin-left:3%; } +.button-list P{ margin-top:0em; margin-bottom:0; } +div.button-list { margin-left:3%; margin-right:3%; } +div.ShowCode { margin-left:3%; margin-right:3%; border-top: solid #CCCCCC 1pt; border-bottom: solid #CCCCCC 1pt; } +div.source { border-top: solid #CCCCCC 1pt; border-bottom: solid #CCCCCC 1pt;} +div.TableOfContents div.DocPart{margin-top:1em; margin-bottom:1em; font-size:110%;} +.bugfixes{background: yellow; font-style: italic; font-weight: bold; } +.try{ border:solid 4px; } +#TBL-14 td{font-size:75%;} +/* end css.sty */ + diff --git a/support/TeX4ht/doc/mn.html b/support/TeX4ht/doc/mn.html new file mode 100644 index 0000000000..7745254fc3 --- /dev/null +++ b/support/TeX4ht/doc/mn.html @@ -0,0 +1,431 @@ + + + + + + + mn.html + + + + + + + + +

TeX4ht: LaTeX and TeX for Hypertext

+
+

The TeX4ht home page is at https://tug.org/tex4ht. Please see that page for current development information, +including a bug tracker and mailing lists. +

TeX4ht is still actively maintained, and many individual files have been updated; new versions are committed +to the TeX4ht and TeX Live repositories. +

Unfortunately, no full release of TeX4ht has been made since Eitan Gurari, the original author, passed away +unexpectedly in June 2009. When a release is finally made (there is no ETA at present), it will be available on +CTAN. +

+
+

TeX4ht is a highly configurable TeX-based authoring system dedicated mainly to produce hypertext. It +interacts with TeX-based applications through style files and postprocessors, leaving the processing of the source +files to the native TeX compiler. Consequently, TeX4ht can handle the features of TeX-based systems in general, and +of the LaTeX and AMS style files in particular. +

Pre-tailored configurations are offered for different output formats, including HTML 5, (X)HTML, MathML, +OpenDocument, and DocBook. +

+ +

troubleshooting | Q/A | common problems for MathML +

bug fixes - TeX4ht +

+

Using the System

+
+

Typical LaTeX source files can be compiled into standard HTML and XML formats in a manner similar to the +way they are compiled into print formats, namely, through variations of the command htlatex filename +"options1" "option2" "options3" "options4"’. For instance, +

htlatex  filename  # generate HTML  +
xhlatex  filename  # generate XHTML  +
+

For details, visit the calling commands section. +

+

References

+

The main features of TeX4ht are described in: +

+

Installation

+
+
+

TeX4h is included in TeX distributions, notably TeX Live and MikTeX. You don’t have to install it manually. +The following information is outdated and it is kept here mainly for the historical reasons. +

+
+

To be installed, the system needs a port made up of native utilities of TeX4ht and of non-native utilities. The +easiest way to establish an up to date port is to download an installed distribution of the system, and +upgrade and MS Windows require additional effort, mainly because of the need to set up non-native utilities. Alternative ports for these +and other platforms can be tailored in a similar manner. The distribution assumes compilations through command lines but graphical user inferfaces may also be employed. +

Philip A. Viton discusses in details issues of installing TeX4ht under MikTeX and Scientific Word/WorkPlace, +but many of the topics apply also to other platforms. Steven Zeil offers improvements for the above +settings. +

The literate sources of TeX4ht are also available, but they are not needed for installing the system. The literate +views are very far from being in a desirable state for a review by a public eye—they reflect their true nature as being +privately used for developing and maintaining the available code. The views follow a basement mentality: throw in +without much scrutiny any item of possible value at some point of time, and clean a corner when the need arises for +working on a specific issue of the code. The leading lines in the files indicate how the files can be +compiled. +

troubleshooting| bug fixes +

+

Bug Reports

+
+

The development of the TeX4ht system is to a large degree driven by users’ bug reports and requests. The bug +reports can be posted on TeX4ht issue tracker. In most cases, when providing feedback, it is essential to include the +following information. +

+

    +
  • A minimal miniature complete source file illustrating the issues involved, but do not include bitmap files loaded +by the sources (e.g., PNG files). Since similar constructs are introduced within different style files, a +minimal source is required for correctly pinpointing the definitions of the constructs involved in the +translation. +

  • +
  • Specifying the command used to invoke the translation. This information is required since the command determines +which configurations participate in the translation. +

  • +
  • Occasionally it might also be useful to have a url where the files and messages produced during the compilation can +be viewed. Unless explicitly requested, please don’t email such information. +
+

Translations of source files are centered on logical structures. Formatting instructions receive only limited +attention. +

+

Resources

+
+ + + + +
Languages: LaTeX/TeX, HTML, XML/XSLT, MathML, OpenDocument, DocBook, TEI, Style Sheets, Validators
Converters
into
HTML/XML:
+
Backward
Converters:
+
Converters
for other
formats:
+ +
+

License

+
+

TeX4ht is provided under the LaTeX Project Public License (LPPL). +

+

Acknowledgments

+
+

Eitan gratefully acknowledges the suggestions, contributions, and bug reports offered by many people. In +particular, thanks go to Carmen Fierro, Piotr Grabowski, Gertjan Klein, Sebastian Rahtz, and Philip Viton for +extensive feedback and help at early stages of this project. +

Eitan’s work was partially sponsored by NSF grant IIS-0312487. +

Subsequent work has been a community effort involving many people. Contributors, bug reporters, and all, are +listed in the ChangeLog file in the sources.


+

Generated August 24, 2020 - tex4ht home page

+ + + + diff --git a/support/TeX4ht/doc/mn0x.png b/support/TeX4ht/doc/mn0x.png new file mode 100644 index 0000000000..2b720fe4ce Binary files /dev/null and b/support/TeX4ht/doc/mn0x.png differ diff --git a/support/TeX4ht/doc/mn10.html b/support/TeX4ht/doc/mn10.html new file mode 100644 index 0000000000..ea0710419f --- /dev/null +++ b/support/TeX4ht/doc/mn10.html @@ -0,0 +1,48 @@ + + + + +example + + + + + + + + +

exit example

+

An Example for Using httex

A system invocation of the form ‘httex foo "xhtml,html4.4ht,unicode.4ht,mathml.4ht" +"unicode/!"’ for a file foo.tex of the following form. +
\input amstex  +
\documentstyle{amsppt}  \csname tex4ht\endcsname  +
\document  +
.....  +
\enddocument  +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn11.html b/support/TeX4ht/doc/mn11.html new file mode 100644 index 0000000000..4c32113da9 --- /dev/null +++ b/support/TeX4ht/doc/mn11.html @@ -0,0 +1,829 @@ + + + + +Within + + + + + + + + +

up

+

Configurations

+

Background

+

TeX4ht handles correctly only macros whose logical meanings are directly or indirectly declared in TeX4ht +configurations. For instance, without extra configurations, TeX4ht will provide correct translation +for +

     \divide{a}{b}  +
+

under a user’s definition of the form +

   \def\divide#1#2{{#1\over #2}}  +
+

but not under a definition of the form +

   \def\divide#1#2{\vbox{\hbox{$#1$}\hrule\hbox{$#2$}}}  +
+

Recommendations

+

It is highly recommended to leave source LaTeX and TeX files intact, and not introduce TeX4ht configurations +there. The configurations should be introduced indirectly in private configuration files. Source files containing just +native LaTeX and TeX code permit their compilation to different output formats, including PostScript and PDF, by +TeX4ht and other tools. +

Packages used by the general LaTeX community typically provide better support than one can expect from +tailoring private commands and configurations for such commands. It is also expected to take less effort to learn the +features of existing packages than designing new ones. Consequently, one is advised to investigate available resources +before committing to work on private features. +

+

Low-Level Features

+

The following are some of the more useful underlying commands of TeX4ht. +

+

+ + + + +
1 \HCode{...} +
2 \HPage{anchor}content\EndHPage{} +
3 \Link[target-file arguments]{target-loc}{cur-loc}anchor\EndLink +
4 \ifOption{...}{true-part}{false-part} +
+

Sectioning and Tables of Contents

+

A non-leading command line argument ‘1’, ‘2’, ‘3’, or ‘4’ asks for a tree-structured set of files, reflecting on the +sectioning of the document to the specified depth. Sequential prev-next links within the hierarchy, instead of the +default hierarchical ones, can be requested with the ‘next’ parameter. The parameter ‘sections+’ creates titles for +the sectioning commands that link to the tables of contents. +

Finer control is possible with the following commands. +

+

+ + + + + + + + + + + + + + +
1 \CutAt{at-unit,until-unit-1,until-unit-2,...} +
2 \tableofcontents[unit-1,unit-2,...] +
3 \TocAt{at-unit,unit-1,unit-2,...,/until-unit-1,/until-unit-2,...} +
4 \ConfigureToc{unit} {before-mark} {before-title} {before-page-number} {at-end} +
5 \Configure{tableofcontents} {before-toc} {end-of-toc} {after-toc} {before-nonindented-par} +{before-indented-par} +
6 \Configure{TocAt} {before-toc} {after-toc} +
7 \Configure{TocAt*} {before-toc} {after-toc} +
8 \Configure{unit} {top} {bottom} {before-title} {after-title} +
9 \Configure{CutAt} {unit} {before-button} {after-button} + +
10 \Configure{+CutAt} {unit} {before-button} {after-button} +
11 \NewSection\unit {mark-for-toc} +
12 \Configure{writetoc} {definitions-for-the-writing-environment} +
13 \Configure{crosslinks} {left-delimiter} {right-delimiter} {next} {prev} {prev-tail} {front} {tail} +{up} +
14 \Configure{crosslinks+} {before-top-links} {after-top-links} {before-bottom-links} {after-bottob-links} +
+

Tables

+

Tables with \multicolum entries need a few LaTeX compilations to stabilize. +

+

+ +
1 \Configure{table} {before-tbl} {after-tbl} {before-row} {after-row} {before-entry} {after-entry} +
+

Lists and Environments

+

The appearances of lists and \begin-\end environments are configured with the following commands. +

+

+ + +
1 \ConfigureList{list-name} {before-list} {after-list} {before-label} {after-label} +
2 \ConfigureEnv{environment-name} {before-environment} {after-environment} {before-list} +{after-list} +
+

Pictures

+

The next command imports external pictures, and the two commands that follow request pictorial representations +for local content. The attributes, and the replacement parameters with their enclosing rectangular brackets, are +optional. +

+

+ + + +
1 \Picture[replacement-for-textual-browser]{file-name attributes}
2\Picture+[replacement-for-text-browsers]{file-name attributes}content\EndPicture +
3\Picture*[replacement-for-text-browsers]{file-name attributes}content\EndPicture +
+

Mathematical Formulas

+

In the default setting, the math environments ‘\(...\)’, and the display math environments ‘\[...\]’ and +‘$$...$$’, request pictorial representations for their content. On the other hand, the math environments ‘$...$’ ask +for no special treatment. Simple features like mathematical symbols, subscripts, and superscripts, are +translated into html, and more complex entities like roots and fractions are translated into pictures +(example). +

+

+ + + +
1 \Configure{[]} {before$$at-start} {at-end$$after}, +\Configure{()}{before$at-start}{at-end$after}
\Configure{$$}{before}{after}{at-start}
\Configure{$}{before}{after}{at-start} +
2 \Configure{SUB}{before}{after}
\Configure{SUP}{before}{after}
\Configure{SUBSUP}{before}{between}{after} +
3 no_, no^
+

Paragraphs

+

The insertions of code at paragraph breaks are controlled by the following commands. +

+

+ + + + + +
1 \Configure{HtmlPar} {noindent-P} {indent-P} {from-noindent-P} {from-indent-P}
\EndP +
2 \IgnorePar
3 \ShowPar
4 \IgnoreIndent
5 \ShowIndent
+

Cascade Style Sheets (CSS)

+

Cascade style sheets attach presentations to the content of hypertext pages, in a manner similar to the way +that ‘.sty’ files define the presentations to the content of source LaTeX files. TeX4ht produces a CSS +file for each document that is translated to HTML transitional 4.0 code. The following are related +commands. +

+

+ + + +
1\Css{content} +
2 \Css content\EndCss +
3 \CssFile[list-of-css-files]content\EndCssFile +
+

Fonts

+

TeX4ht has an elaborated machinery for handling fonts, through special virtual hypertext fonts stored in ‘.htf’ files. +Instead of providing a design for each symbol, as is the case in standard fonts, the virtual fonts provide a content for +each symbol. The following commands offer some control, from within the source LaTeX documents, over the +content provided to the symbols. +

+

+ + + + +
1 \NoFonts
2 \EndNoFonts
3 \Configure{htf} {class} {delimiter} {template-1} {template-2} {template-3} {template-4} {template-5} +{template-6} {template-7}
4 \Configure{htf-sty} {class/font} {CSS-instructions}
+

The htf fonts might request pictorial representations for symbols. In such cases, the sizes of the pictures +depend on the sizes of the TeX fonts in use. Size changes through the \magnification command should be made +before loading the tex4ht.sty package. +

The design of a virtual hypertext font might take some labor, but it does not require too much sophistication. +

A font of TeX may have more than one htf font to map to. The search for a desired version can be regulated +within scripts. +

+

Scripts

+

Scripts produce the content in verbatim format with no decorations. +

+

+ + + +
1 \ScriptEnv{environment} {prefix} {postfix}
2 \ScriptCommand{\command} {prefix} {postfix}
3 \JavaScript...\EndJavaScript
+

Configurable Hooks

+

Much of the look and feel of TeX4ht is achieved through hooks that are introduced and configured with the +following commands. +

+

+ + +
1 \NewConfigure{name}[i]{body}
2 \Configure{name}{parameter-1}...{parameter-i} +
+

Block environments \begin\end may also be configured through the \ConfigureEnv command. Lists may +also employ the \ConfigureList command. +

For help configuring hooks already seeded in the system, compile the source files in use with the ‘info’ option +active and review the information in log files. Much of the information in the log files may also be obtained by +running ‘xhlatex mktex4ht.4ht’ and reviewing the entries in the outcome page ‘mktex4ht.html => index => +mktex4ht’. +

As an example, the footer is placed on these HTML pages using the @/BODY hook, like this (inside +\Preamble\EndPreamble): +

\Configure{@/BODY}{\ifvmode\IgnorePar\fi\EndP\HCode{<hr />}\par  +
    \HCode{<small>Generated \ifcase \month \or  +
      January \or February \or March \or April \or May \or June \or July  +
      \or August \or September \or October \or November \or December \fi  +
  \the\day, \the\year\space - <a href="/tex4ht/">tex4ht home page</a></small>}}  +
+

General Configuration Files

+

A compilation starts by opening tex4ht.sty and loading a fraction of its code. The main purpose of this phase is +to request the loading of the system at a later time (for instance, upon reaching \begin{document}). The +motivation for the late loading is to allow TeX4ht to collect as much information as possible about the environment +requested by the source file, and help the system reshape that environment with minimal interference from +elsewhere. +

The system uses two kinds of (4ht) configuration files. The files of the first kind mainly seed hooks into the +macros loaded by the source file (for instance, latex.4ht, fontmath.4ht, and article.4ht). The files of +the second kind mainly attach meaning to the hooks (for instance, html4.4ht, unicode.4ht, and +mathml.4ht). +

Different source files may request the loading of different style files and in different orders. The hook seeding +files are loaded in response to the loading of the style files, and in a compatible order. Since the different style files +may redefine the syntax and semantics of macros, TeX4t follows a similar route of defining and redefining the hooks +and their meanings. +

The meaning attaching files are normally requested through option names introduced in the tex4ht.4ht system +file. For instance, the mzlatex command refers to the mozilla option name of tex4ht.4ht, and the oolatex +command refers to the ooffice option name. The user may add option names, and redefine old ones, within a new +file named tex4ht.usr. +

A new tex4ht.usr file should group references to *.4ht configuration files under arbitrarily chosen option +names. For that purpose, \Configure commands similar to those provided in tex4ht.4ht should be +employed. +

Variants of the htlatex-like scripts may be produced in the following manner. +

+

    +
  1. Adjust the latex (tex, texi) command of a given script to use a desired option name, and rename the new script. +
  2. +
  3. Make sure the tex4ht and t4ht commands receive appropriate switches in the new script. (These commands show +the available options when invoked without parameters.)
+

The definition of new meaning assigning configuration files can be considerable simplified by relying on literate +programming and the file mktex4t.4ht. For additional information, compile this file into a hypertext document, +visit the ‘index’ page, and from there reach into the ‘mktex4ht’ page. +

+
Example +
    +
  1. Add a configuration file myooconfig.4ht with the following content. +
        \exit:ifnot{jurabib}  +
      + +
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  +
                         \ConfigureHinput{jurabib}  +
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  +
        \def\jbNoLink#1#2{}  +
        \Configure{jblink}{\jbNoLink}{}  +
        \Configure{jbanchor}{\jbNoLink}{}  +
      +
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  +
      +
        \endinput\empty\empty\empty\empty\empty\empty  +
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  +
        \endinput  +
    +

  2. +
  3. Add to tex4ht.usr the following script. +
          \Configure{myooffice}{%  +
             \:CheckOption{info}\if:Option  +
                         \Hinclude[*]{infoht4.4ht}\fi  +
             \:CheckOption{info}\if:Option  +
                         \Hinclude[*]{infomml.4ht}\fi  +
             \Hinclude[*]{ooffice.4ht}%  +
             \Hinclude[*]{unicode.4ht}%  +
             \Hinclude[*]{mathml.4ht}%  +
             \Hinclude[*]{ooffice-mml.4ht}%  +
             \Hinclude[*]{myooconfig.4ht}%  +
          }  +
    +

    It is the ooffice script from tex4ht.4ht, with the added record ‘\Hinclude[*]{myooconfig.4ht}%’. +

  4. +
  5. Invoke the compilations with a variant of the following form of the oolatex command. +
    htlatex filename "xhtml,myooffice" "ooffice/! -cmozhtf" "-coo"
    +
+
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn12.html b/support/TeX4ht/doc/mn12.html new file mode 100644 index 0000000000..8ec13eca76 --- /dev/null +++ b/support/TeX4ht/doc/mn12.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + +

1. \HCode{...} +

This command allows only for the expansion of macros, before sending its content to the output. The +instruction \Hnewline may be introduced there for requesting line breaks, and the command \# may be used for the +sharp symbol ‘#’. +

+
 Two lines of text      \HCode{<br />} + +
 separated by a horizontal line. +
  +
 You probably don’t want a ‘<br>’. +

+

2. \HPage{anchor}content\EndHPage{} +

This command dedicates a hypertext page for the specified content, to be accessed through the given +button. +

The \ExitHPage{...} command may be employed within the content to create exit buttons. +

+
 ...... ............ +
 \HPage{in} +
    ................ +
    [\ExitHPage{out}] +
    ................ +
 \EndHPage{} +
 ................... +

+

3. \Link[target-file arguments]{target-loc}{cur-loc}anchor\EndLink +

This command requests an anchor that links to ‘target-file#target-loc’, and marks the current location with the +name ‘cur-loc’. +

The component ‘[...]’ is optional when it is empty, and the target file need not be mentioned if it is created +from the current source file. +

+
 \HPage{} +
    ...................... +
    \Link[http://www.tug.org/]{}{XX}\TeX{} Users Group +
                                     Home Page\EndLink +
    ...................... +
 \EndHPage{} +
 ...................... +
 \Link{XX}{}...\EndLink +
+ The characters ‘~’, ‘_’, and ‘%’ can be indirectly included through the code ‘\string ~’, ‘\string _’, +and ‘\%’, respectively.
+

4. \ifOption{...}{true-part}{false-part} +

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn13.html b/support/TeX4ht/doc/mn13.html new file mode 100644 index 0000000000..908d5e4ca3 --- /dev/null +++ b/support/TeX4ht/doc/mn13.html @@ -0,0 +1,46 @@ + + + + +2 + + + + + + + + + up +
+
 \documentclass{book} +
    \usepackage[html,2]{tex4ht} +
 \begin{document} +
 \chapter{...}  ......  \section{...}  ......  \section{...}  ...... +
 \chapter{...}  ......  \section{...}  ...... +
 \end{document} +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn14.html b/support/TeX4ht/doc/mn14.html new file mode 100644 index 0000000000..cd9c2a29b1 --- /dev/null +++ b/support/TeX4ht/doc/mn14.html @@ -0,0 +1,419 @@ + + + + + + + + + + + + + +

1. \CutAt{at-unit,until-unit-1,until-unit-2,...} +

This directive asks the sectioning commands \at-unit to place their units in separate hypertext pages. The +pages are to terminate upon encountering any of the commands in the list \at-unit, \until-unit-1, +\until-unit-2,... +

+
 \CutAt{section,chapter} +
 \tableofcontents +
 \chapter{...}  ......  \section{...}  ......  \section{...}  ...... +
 \chapter{...}  ......  \section{...}  ...... +
+ Within the \CutAt instruction, the starred commands of LaTeX should be referenced with the prefix ‘like’ +instead of the postfix of ‘*’, and appendices through the entry ‘appendix’. +

A plus character ‘+’, before the leading parameter, requests buttons that link to the hypertext pages; e.g., +‘\CutAt{+likesection}’. +

The end points of sections not specified within the \CutAt commands can be made known with instructions of +the form ‘\Configure{endunit}{unit,unit,...}’. +


+

2. \tableofcontents[unit-1,unit-2,...] +

This variant of the \tableofcontents command specifies the kinds of entries that should be included in the +tables. +


+

3. \TocAt{at-unit,unit-1,unit-2,...,/until-unit-1,/until-unit-2,...} +

This directive asks for a local table of contents, at each division created by the \at-unit command. The tables +should include entries of types \unit-1, \unit-2,..., and terminate upon reaching any of the \at-unit, \until-unit-1, +\until-unit-2,... commands. +

Within the \TocAt instruction, the starred commands of LaTeX should be referenced with the prefix ‘like’ +instead of the postfix of ‘*’, and appendices through the entry ‘appendix’. +

+
 \TocAt{section,subsection,/likechapter} +
 \CutAt{subsection,section,likechapter} +
  +
 \section{...} ... \subsection{...} ... +
 \section{...} ... \subsection{...} ... \subsection{...} ... +
 \chapter*{...} +
 \section*{...} ... +
+ A postfix ‘*’ on \CutAt asks the tables of contents to appear after the preambles of the logical +unit. +
+ +
 \TocAt*{section,subsection,/likechapter} +
 \CutAt{subsection,section,likechapter} +
  +
 \section{...} ... \subsection{...} ... +
 \section{...} ... \subsection{...} ... \subsection{...} ... +
 \chapter*{...} +
 \section*{...} ... +
+ A postfix ‘-’ on \CutAt asks to produce the local tables of contents only on demand, through Cutsection-type +commands. +

The only \ConfigureToc commands that count are those before the \TocAt instruction. +


+

4. \ConfigureToc{unit} {before-mark} {before-title} {before-page-number} {at-end} +

This command determines how entries of the specified unit will appear in the tables of contents. The entries +include only fields corresponding to nonempty fields in the \ConfigureToc commands. +

+
 \ConfigureToc{section} {} {$\bullet$~}  {}  {~~ } +
 \tableofcontents[section] +

+

5. \Configure{tableofcontents} {before-toc} {end-of-toc} {after-toc} {before-nonindented-par} +{before-indented-par} +

The end-of-toc is inserted at the end of the internal environment of the tables. The after-toc is included after +leaving the internal environment. +


+

6. \Configure{TocAt} {before-toc} {after-toc} +


+

7. \Configure{TocAt*} {before-toc} {after-toc} +


+

8. \Configure{unit} {top} {bottom} {before-title} {after-title} +

This command determines the content to be inserted at the mentioned locations of the specified +units. +

+
 \Configure{chapter} +
    {\HCode{<div class="chapter">}}  {\HCode{</div>}} +
    {\HCode{<h2 class="chapterHead">}\chaptername +
        ~\thechapter\HCode{<br />}} +
    {\HCode{</h2>}} +
 \chapter{...} .... +
 \chapter{...} .... +

+

9. \Configure{CutAt} {unit} {before-button} {after-button} +


+

10. \Configure{+CutAt} {unit} {before-button} {after-button} +


+

11. \NewSection\unit {mark-for-toc} +

This directive introduces a sectioning command \unit, which submits mark-for-toc to the tables of +contents. +

+
 \newcounter{c} +
 \NewSection\X {\thec} +
 \Configure{X} +
    {\addtocounter{c}{1}\HCode{<h2>}[\thec] } +
    {\HCode{</h2>}} +
    {}{} +

+

12. \Configure{writetoc} {definitions-for-the-writing-environment} +

TeX4ht expands and then writes the sectioning titles into an auxiliary file, and it might encounter there +problems from macros that are not fit for such conditions or for inclusion in the table of contents. +The current configuration instruction allows to locally modify the behavior of macros for the writing +phase. +

For instance, the instruction ‘\section{Foo \\ bar}’ suggests a configuration similar to +‘\Configure{writetoc}{\let\\\space}’. +


+

13. \Configure{crosslinks} {left-delimiter} {right-delimiter} {next} {prev} {prev-tail} {front} {tail} +{up} +

This command configures the appearance of the cross-links between hypertext pages obtained for sectioning +commands. +

+
 \Configure{crosslinks} +
   {}{}{$\scriptstyle\Rightarrow$} +
   {$\scriptstyle\Leftarrow$} +
   {}{}{}{$\scriptstyle\Uparrow$} +

+

14. \Configure{crosslinks+} {before-top-links} {after-top-links} {before-bottom-links} {after-bottob-links} +

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn15.html b/support/TeX4ht/doc/mn15.html new file mode 100644 index 0000000000..d37196521b --- /dev/null +++ b/support/TeX4ht/doc/mn15.html @@ -0,0 +1,155 @@ + + + + + + + + + + + + + +

1. \Configure{table} {before-tbl} {after-tbl} {before-row} {after-row} {before-entry} {after-entry} +

The parameter table stands for ‘tabular’, ‘array’, or ‘eqnarray’. The macros \HRow and \HCol +provide the row and column indexes, respectively. The macro \HMultispan records the number of +columns. +

+ +
+
(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
+ +
+
\Configure{tabular}  +
   {\HCode{<table>}}  +
   {\HCode{</table>}}  +
   {\HCode{<tr>}}  +
   {\HCode{</tr>}}  +
   {\HCode{<td class="try">  +
               \ifnum \HMultispan>1  +
                   colspan="\HMultispan"\fi}(\HRow,\HCol)}  +
   {\HCode{</td>}}  +
\Css{.try{ border:solid 4px; }}  +
  +
\begin{tabular}{lll}  +
  &&\\ &&  +
\end{tabular}  +
+
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn16.html b/support/TeX4ht/doc/mn16.html new file mode 100644 index 0000000000..5ec6ebb139 --- /dev/null +++ b/support/TeX4ht/doc/mn16.html @@ -0,0 +1,139 @@ + + + + + + + + + + + + + +

1. \ConfigureList{list-name} {before-list} {after-list} {before-label} {after-label} +

Environments that directly or indirectly are built on top of the ‘\begin{list}...\end{list}’ and +‘\begin{trivlist}...\end{trivlist}’ environments, inherit the appearances of these base environments. The +\ConfigureList command may be used to change the default configuration. +

+
 \ConfigureList {description} +
                             {} +
                 {\HCode{<hr />}} +
         {\HCode{<hr /><strong>}} +
            {\HCode{</strong>}} +
+ The ‘description’, ‘itemize’, and ‘enumerate’ environments are the more obvious extensions of the ‘list’ +and ‘trivlist’ environments. +

The ‘verse’, ‘quotation’, ‘quote’, ‘center’, ‘flushleft’, and ‘flushright’ are examples of non obvious +extensions. The latter extensions are made up in LaTeX from a single-item lists, to get the appearance of displayed +paragraphs. +


+

2. \ConfigureEnv{environment-name} {before-environment} {after-environment} {before-list} {after-list} +

If either before-environment or after-environment is not empty, then these parameters specify insertions that +should be placed before and after the specified environment. +

+
 \ConfigureEnv {tabular} +
     {\HCode{<hr />}} {\HCode{<hr />}} +
     {} {} +
+ If the parameter before-list or the parameter after-list is not empty, a call is made to \ConfigureList +{list-name} {before-list} {before-label} {} {} for configuring the base-list of the environment. +
+
 \ConfigureEnv {flushright} +
     {\HCode{<div class="flushright">}} +
     {\HCode{</div>}} +
     {\HCode{<h2>}} {\HCode{</h2>}} +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn17.html b/support/TeX4ht/doc/mn17.html new file mode 100644 index 0000000000..d7b916d589 --- /dev/null +++ b/support/TeX4ht/doc/mn17.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + +

1. \Picture[replacement-for-textual-browser]{file-name attributes} +

This command references the specified pictorial file. The component ‘[replacement-for-textual-browsers]’ is +optional. +

+ +
**OSU logo**
\Picture[**OSU logo**]{http://www.cse.ohio-state.edu/images/OSU.gif}

+

2. \Picture+[replacement-for-text-browsers]{file-name attributes}content\EndPicture +

This command produces a picture for the provided content, stores the outcome within a file of the specified +name, and creates a reference to the picture within the document. +

+ +
Text within a picture.  +
+
+
 \Picture+{ align="right"}% +
    Text within a picture. +
 \EndPicture +
+
+ The component ‘[replacement-for-textual-browser]’ and the file name can be omitted. If no name is provided for +the file, the system assigns a name of its own.
+

3. \Picture*[replacement-for-text-browsers]{file-name attributes}content\EndPicture +

This is a variant of the previous command, that produces a picture of the content within a vertical +box. +

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn18.html b/support/TeX4ht/doc/mn18.html new file mode 100644 index 0000000000..3e71579a34 --- /dev/null +++ b/support/TeX4ht/doc/mn18.html @@ -0,0 +1,33 @@ + + + + +example + + + + + + + + + +
ax + cb+d  +and ax + cb+d
$a^x + \frac{b}{c+d}$ and \(a^x + \frac{b}{c+d}\)
+ up + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn19.html b/support/TeX4ht/doc/mn19.html new file mode 100644 index 0000000000..185dae5fb2 --- /dev/null +++ b/support/TeX4ht/doc/mn19.html @@ -0,0 +1,134 @@ + + + + + + + + + + + + + +

1. \Configure{[]} {before$$at-start} {at-end$$after}, +\Configure{()}{before$at-start}{at-end$after}
\Configure{$$}{before}{after}{at-start}
\Configure{$}{before}{after}{at-start} +

+ +
An equation: +
+ b
+a
+
+
+
+
 \Configure{[]}{An equation: $$}{$$} +
 \[a^b\] +
+
+ The default configuration is obtained from
\Configure{[]}{\PicDisplay$$}{$$\EndPicDisplay}’,
\Configure{$$}{\PicDisplay}{\EndPicDisplay}{}’, +
\Configure{()}{\PicMath$}{$\EndPicMath}’, and
\Configure{$}{}{}{}’.
+

2. \Configure{SUB}{before}{after}
\Configure{SUP}{before}{after}
\Configure{SUBSUP}{before}{between}{after} +

These commands configure subscripts appearing in isolation, superscripts given in isolation, and subscripts +provided together with superscripts. If the last configuration command gets empty parameters, the corresponding +cases use the settings that apply to isolated subscripts and superscripts. +

The default setting results from
\Configure{SUB}{\HCode{<sub>}}{\HCode{</sub>}}’, +
\Configure{SUP}{\HCode{<sup>}}{\HCode{</sup>}}’, and
\Configure{SUBSUP}{}{}’. +


+

3. no_, no^ +

TeX4ht modifies the implementation of ‘_’ and ‘^’, to create hypertext subscripts and superscripts in non +pictorial formulas—a modification that occasionally might clash with other interpretations in the source documents. +The current package parameters ask TeX4ht not to modify the implementation of these commands, +respectively. +

+ +
+

Generated May 2, 2021 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn1x.png b/support/TeX4ht/doc/mn1x.png new file mode 100644 index 0000000000..13e589b411 Binary files /dev/null and b/support/TeX4ht/doc/mn1x.png differ diff --git a/support/TeX4ht/doc/mn2.html b/support/TeX4ht/doc/mn2.html new file mode 100644 index 0000000000..f49cd0c0ed --- /dev/null +++ b/support/TeX4ht/doc/mn2.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + + +

Table of Contents

+
+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn20.html b/support/TeX4ht/doc/mn20.html new file mode 100644 index 0000000000..1257743f7e --- /dev/null +++ b/support/TeX4ht/doc/mn20.html @@ -0,0 +1,140 @@ + + + + + + + + + + + + + +

1. \Configure{HtmlPar} {noindent-P} {indent-P} {from-noindent-P} {from-indent-P}
\EndP +

The first two parameters of this command determine the kind of code to be inserted at the start of, respectively, +nonindented and indented paragraphs. +

+ +
+* 1 +* 2 +* 3 +* 4 +* 5
+
+
 \Configure{HtmlPar} +
      {} {* }  {} {} +
 \par 1\par 2\par +
      3\par 4\par 5 +
+
+ The last two parameters specify the code to be stored in \EndP, when the first two parameters are introduced, +respectively, into the output. + +
+[ 1 + ][ 2 + ][ 3 + ][ 4 + ][ 5 + ]
+
+
 \Configure{HtmlPar} +
      {[ } {\EndP [ } { ]} { ]} +
 \par 1\par 2\par 3\par 4\par 5 +
 \Configure{HtmlPar} +
      {}{\EndP} {}{} +
 \par\leavevmode +
+
+ The default setting assumes a configuration of the form ‘\Configure{HtmlPar}{\HCode{<p class="noindent">}} +{\HCode{<p class="indent">}} {}{}’ (and it is implemented through an ‘\everypar{\HtmlPar}’ +command).
+

2. \IgnorePar + +

This command asks that no code will be inserted at the beginning of the next paragraph. +


+

3. \ShowPar +

This command asks that code will be inserted at the beginning of the next paragraph. +


+

4. \IgnoreIndent +

This command asks to treat the next paragraph as nonindented. +


+

5. \ShowIndent +

This command asks to treat the following paragraphs as indented. +

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn21.html b/support/TeX4ht/doc/mn21.html new file mode 100644 index 0000000000..8e141986dd --- /dev/null +++ b/support/TeX4ht/doc/mn21.html @@ -0,0 +1,119 @@ + + + + + + + + + + + + + +

1. \Css{content} +

This command sends its content to the CSS file of the document. +


+

2. \Css content\EndCss +

This command introduces the specified content, at the location of the command as an inline CSS code +fragment. The content should not start with the left brace character ‘{’. +


+

3. \CssFile[list-of-css-files]content\EndCssFile +

The default CSS file TeX4ht produces is initially a file consisting just of a single line of the form ‘/* css.sty +*/’. That line is later replaced with the code submitted by the ‘\Css{...}’ commands. +

The current command allows to specify an alternative to the initial CSS file. The alternative file consists of the +code loaded from listed files, and of the content explicitly specified in its body. +

  \ConfigureList{mylist}  +
    {\HCode{<div class="mylist">}} {\HCode{</div>}} {* }{}  +
  +
\begin{document}  +
  +
  \HCode{<!--created by me-->}  +
  \CssFile  +
     /* css.sty */  +
     .mylist { color : red; }  +
  \EndCssFile  +
+

The names in the list of files should be separated by commas, and the rectangular brackets are optional when +the list is empty. +

The file should include a line having the content of ‘/* css.sty */’. If more than one such line is included, the +content of the ‘\Css{...}’ commands replace the first occurrence of this line. Arbitrary many space characters may +appear around the substrings ‘/*’ and ‘*/’. +

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn22.html b/support/TeX4ht/doc/mn22.html new file mode 100644 index 0000000000..5bcd41e457 --- /dev/null +++ b/support/TeX4ht/doc/mn22.html @@ -0,0 +1,168 @@ + + + + + + + + + + + + + +

1. \NoFonts This command asks that information provided in the font files will be used for the symbols, but +not the information requested for the fonts in the source LaTeX file through the ‘\Configure{htf}’ +command. +


+

2. \EndNoFonts +

This command asks to end the effect of the most recently encountered \NoFonts command that is still +active. +

+ +
italic not italic not italic italic. +
+
+
 {\it italic \NoFonts\NoFonts +
 not italic \EndNoFonts +
 not italic \EndNoFonts +
 italic}. +
+

+

3. \Configure{htf} {class} {delimiter} {template-1} {template-2} {template-3} {template-4} {template-5} +{template-6} {template-7} +

Each character is provided two entries in its virtual font file: a string and an integer number. The integer +number is considered to be the class of the character. An even number requests that the character will be +represented by the string. An odd number requests that the character will be represented by a picture, with the +string acting as an alternative representation. +

The current \Configure command provides a template for introducing, into the hypertext document, the +representations of the symbols of the specified class. The template is consisted of the seven specified components, +where the delimiter must be a character that does not appear in these components. +

In even classes, the template is used for outputing a tuple, consisting of the following information, for the given +symbol: the font name, the font size, the font magnification when it differs from 100%, and the corresponding string +field from the virtual font. +

The first component is printed unconditionally at the beginning. The font name is printed only if the second +component of the template is not empty and, when it is not empty, the second component should be a template for +printing a string in a C program. Similarly, the font size is printed only if the third component of the template is not +empty, and in such a case the component should be a template for printing a string in a C program. On the other +hand, the font magnification is printed only if the fourth component of the template is not empty, and in such +a case the component should be a template for printing an integer in a C program. The rest of the +components of the template are added literally into the output, where either the fifth or the sixth +component must be empty. The string field from the virtual font is introduced just before the last + +component. +

+ +
text text +

+
<span class="underline">text</span>  +
<span class="cmti-10">text</span>  +
+
+
+
 {\it +
 \Configure{htf} +
    {0}{+}{<span class="} +
    {}{}{}{}{underline">} +
    {</span>} +
 text% +
 \Configure{htf} +
    {0}{+}{<span class="} +
    {\%s}{-\%s}{--\%d}{} +
    {">}{</span>} +
 text} +
+
+ The \Configure defines for a symbol of an even class, a prefix and a postfix to be inserted around the +string assigned to the symbol in its virtual font file. The \Configure for characters of class 0 has the +extra property that it provides extra prefixes and postfixes also for all the pictorial representations of +symbols. +

A \Configure command for an odd class defines a template to output a tuple, consisting of the +following information: the font name, the alternative string from the virtual font, the font name, the +font size, the font magnification when it differs from 100%, and the character code of the symbol. +The output is determined in a manner similar to that implied for symbols from characters of odd +classes. +

+ +
+ αα +
+
+
 \Configure{htf} +
    {1}{+}{<sup><img src="} +
    {" alt="}{}{}{}{} +
    {" /></sup>} +
  +
 $\alpha$% +
 \Configure{htf} +
    {1}{+}{<img src="} +
    {" alt="}{" class="\%s} +
    {\%s}{-\%d}{--\%x}{" />}% +
 $\alpha$ +
+

+ +

4. \Configure{htf-sty} {class/font} {CSS-instructions} This command specifies CSS content for font classes +and virtual hypertext fonts. +

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn24.html b/support/TeX4ht/doc/mn24.html new file mode 100644 index 0000000000..17b65de740 --- /dev/null +++ b/support/TeX4ht/doc/mn24.html @@ -0,0 +1,39 @@ + + + + + + + + + + + + + +

1. \ScriptEnv{environment} {prefix} {postfix} +

This command defines a LaTeX environment +

+
\begin{environment}
body
\end{environment}
+ which outputs its body in plain format, between the specified prefix and postfix.
+

2. \ScriptCommand{\command} {prefix} {postfix} +

This command defines an environment +

+
\command
body
\Endcommand
+ which outputs its body in plain format, between the specified prefix and postfix.
+

3. \JavaScript...\EndJavaScript +

This command is available when javascript option is used. +

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn25.html b/support/TeX4ht/doc/mn25.html new file mode 100644 index 0000000000..c693d3039b --- /dev/null +++ b/support/TeX4ht/doc/mn25.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + +

1. \NewConfigure{name}[i]{body} +

Hooks are just macro names seeded within the bodies of other macros. This command introduces a +configuration command for a group of hooks, whose cardinality is given by a digit i and whose name is provided by +the first parameter. The body determines the relationship between the hooks and the configurations provided for +them. +


+

2. \Configure{name}{parameter-1}...{parameter-i} +

+ +
* ho ha * +
+
+
 \NewConfigure{try}[2]{% +
    \def\hookI{#1}\def\hookII{#2}} +
 \def\try#1{\hookI#1\hookII} +
 \Configure{try}{* }{}  \try{ho} +
 \Configure{try}{}{ *}  \try{ha} +
+
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn27.html b/support/TeX4ht/doc/mn27.html new file mode 100644 index 0000000000..43f9d3ef87 --- /dev/null +++ b/support/TeX4ht/doc/mn27.html @@ -0,0 +1,29 @@ + + + + +F scripts + + + + + + + + +
    +
  • For instance +
    Fdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2  > zz%%4.ps  +
    Fconvert zz%%4.ps -trim +repage -density 110x110 -transparent ’#FFFFFF’ %%3  +
    Frm zz%%4.ps  +
    +

  • +
  • The specialized scripts may, for instance, maintain global caches of png bitmaps for cutting down on recompilation +time.
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn29.html b/support/TeX4ht/doc/mn29.html new file mode 100644 index 0000000000..f5a7d6d809 --- /dev/null +++ b/support/TeX4ht/doc/mn29.html @@ -0,0 +1,32 @@ + + + + +F scripts + + + + + + + + +
    +
  • For instance +
    Fif exist zz%%4.ps DEL zz%%4.ps >nul  +
    Fif exist %%3 DEL %%3 >nul  +
    Fdvips -E -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps  +
    Fconvert zz%%4.ps -trim +repage -density 110x110 -transparent "#FFFFFF" %%3  +
    Fif exist zz%%4.ps DEL zz%%4.ps >nul  + +
    +

  • +
  • The specialized scripts may, for instance, maintain global caches of png bitmaps for cutting down on recompilation +time.
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn2x.png b/support/TeX4ht/doc/mn2x.png new file mode 100644 index 0000000000..0fd44bf04e Binary files /dev/null and b/support/TeX4ht/doc/mn2x.png differ diff --git a/support/TeX4ht/doc/mn3.html b/support/TeX4ht/doc/mn3.html new file mode 100644 index 0000000000..07a15e742d --- /dev/null +++ b/support/TeX4ht/doc/mn3.html @@ -0,0 +1,671 @@ + + + + +troubleshooting + + + + + + + + + exit troubleshooting +

+

+

Troubleshooting

+ +

Bitmaps

+

+

Too small math fonts in images
+

Use instructions of the form +

+
\DeclareMathSizes{surrounding text size} {base math} {subscript math} {2nd order subscript math}
+

to request math font dimensions for formulas embedded within text of specified font dimensions. Use sizes of +magnitude 10 * (1.2)i. +

Example: +

\documentclass{article}  +
   \DeclareMathSizes{10}{24.88}{20.74}{17.28}  +
\begin{document}  +
   Test in 10pt. \( {base 24.88}_{script 20.74} \)  +
\end{document}  +
+
Bad Quality of Pictures
+

Increase the density (number of dots per inch) when converting the pictures, and then sub-sample the picture. +Specifically, replace in ‘tex4ht.env’ the switch +

+
-density 110x100
+

with the switch +

+
-density 220x220 -geometry 50%
+

or with another switch of the form +

+
-density ...x... -geometry ...%
+

The -density switch increases the number of pixels per inch, and the -geometry option reduces that number. +The process smoothes (anti-aliases) the edges. Typically screens display about 72 to 100 dots per +inch. +

The type of fonts in use may also affect the quality of the output. In particular, Type 1 (scalable outlines) fonts +offer better outcome than Type 3 (bitmapped) fonts. +

+
Direct Translations of EPS Figures
+

The quality of the bitmaps of EPS figures may be improved by converting the figures directly, without +transmitting them through the dvi code. For instance, the \includegraphics command in the presence of the +following configuration provides such a route. +

       \Configure{graphics*}  +
         {eps}  +
         {\Needs{"convert \csname Gin@base\endcsname.eps  + +
                               \csname Gin@base\endcsname.png"}%  +
          \Picture[pict]{\csname Gin@base\endcsname.png}%  +
         }  +
+

The following script provides a more efficient and general approach. +

       \Configure{graphics*}  +
         {eps}  +
         {\openin15=\csname Gin@base\endcsname.\PictExt\relax  +
          \ifeof15  +
             \Needs{"convert \csname Gin@base\endcsname.eps  +
                             \csname Gin@base\endcsname.\PictExt"}%  +
          \fi  +
          \closein15  +
          \Picture[pict]{\csname Gin@base\endcsname.\PictExt}%  +
         }  +
+
Truncated and empty png files
+

Such a behavior might result from pictures which end up off the dvi page limits. A larger paper size may be +requested from dvips through the switch ‘-T offset’ (e.g., -T 14in,14in). The dvips command is activated from +tex4ht.env. +

+
Truncated and empty png files for Xfig pictures
+

Some Xfig files are made up of overlapping picture environments, with TeX4ht viewing the components as +defining independent figures. The problem can be solved by importing the Xfig files into pictorial environments of +TeX4ht. +

   \newenvironment{mypic}{\Picture*{}}{\EndPicture}  +
   \begin{mypic} \input{xfig-file}   \end{mypic}  +
+

Alternatively, PDF-based translations into bitmaps might also offer a solution. +

+
+

LaTeX

+

+

+
Unable to find a newly installed file
+

The TeX engine might require an update of a search directory: the ls-R database for installations employing +kpathsea (run texhash), the data base directory in the case of MiKTeX (select tart -> Programs -> MiKTeX -> +Refresh’, or run \‘’initexmf -u’ from a DO session, to update it). +

+
+

Fonts

+

+

+
Can’t find/open file foo.tfm
+

+

    +
  • Locate the directory where LaTeX/TeX finds font foo.tfm, and add to tex4ht.env a ‘t’ record pointing to that +directory (e.g., ‘tc:\localtexmf\fonts\tfm!’).
  • +
  • Insert the record at the start of the line. TeX4ht considers the first character in each line to be a code describing the + +type of the record in hand. Lines which start with unrecognized character codes, spaces included, are ignored. +
  • +
  • Note also that LaTeX/TeX may create fonts on the fly and put them in a temporary directory (e.g., +‘/var/tmp/texfonts/tfm/’).
+
Linux, Netscape, and the SYMBOL font
+

To display the SYMBOL fonts in Netscape on Linux add +

+
Netscape*documentFonts.charset*adobe-fontspecific: iso-8859-1
+

to the ~/.Xdefaults file +

+
+

C programs

+

+

+
tex4ht.c doesn’t compile ... ERROR:3396: ‘DIR’ undeclared (first use this function)...
+

Consider adding the switch ‘-DHAVE_DIRENT_H’ to the command line. For instance, +

gcc -o tex4ht tex4ht.c -DENVFILE=’"path/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’ +-DHAVE_DIRENT_H +

+
+

Scripts

+

+

+
Bad end-of-line characters in htlatex.bat/httex.bat/htexi.bat/ht.bat
+

Remove undesirable trailing characters in the lines of the scripts, introduced by the utilities which download the +files. +

DOS/WINDOW platforms use an endline pair of characters: a carriage return and a line feed (0Dx,0Ax +hexadecimal; 13,10 decimal). MAC platforms use only a single carriage feed character (0Dx; 13dec). UNIX platforms +use only a single line feed character (0Ax; 10 dec). +

+
Can’t find/open file ‘xxx.dvi’ or ‘xxx.lg’
+

In some platforms, the operating systems pass on the quotes of the parameters of htlatex, httex, and httexi +to the utilities tex4ht and t4ht. In such cases, the utilities issue complaints of the above nature for file names +‘xxx’ other than those being compiled. The problem can be resolved by installing a filter named ‘htcmd’, and submitting the tex4ht and t4ht commands to the filter. Backslash characters ‘\’ might +need replacements with double backslash characters ‘\\’ or forward slash characters ‘/’. +

For instance, if htlatex.bat contains a command line of the form ‘C:\tex4ht\t4ht %1 %4’, then after +introducing the filter the modified command line will take the form ‘C:\\tex4ht\\htcmd C:\\tex4ht\\t4ht %1 +%4’. +

+
+

Environment File

+

+

Can’t find/open file ‘tex4ht.env’
+

The switch -hV on the calling tex4ht command shows where the file is being searched. The following are +possible solutions to the problem. +

    +
  • Set an environment variable TEX4HTENV to the address of the file
  • +
  • Add the switch ‘-e...address-of-tex4ht.env...’ to the command lines of t4ht and tex4ht within the htlatex, +httex, httexi, and ht (or htlatex.bat, httex.bat, httexi.bat, and ht.bat) scripts.
  • +
  • If tex4ht and t4ht are compiled for kpathsea check that the texmf.cnf contains records similar to the following +ones. +
      TEX4HTFONTSET=alias,iso8859  +
      TEX4HTINPUTS=.;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}//  +
      T4HTINPUTS=.;$TEXMF/tex4ht/base//  +
    +

  • +
  • Make the location of the environment file known to the programs in another manner (see the pointers from the entry +‘tex4ht.env’ in the index).
+
No permission for system call: ...
+

Make sure that the ‘S’ records in tex4ht.env don’t end with invisible spaces, and that the file ends with the +record ‘% end of file’. +

+
Problems with argument -d... of t4ht
+

The specified directory must be augmented by a slash character /. +

+
Problems with the convert utility
+

+

    +
  • Make sure the convert program of ImageMagick is called and not another convert system in your +directories. In the latter case, insert the full address of convert into the following command within +tex4ht.env. +

    Gconvert zz%%4.ps -trim -density 110x110 -transparent ’#FFFFFF’ %%3 +

    For instance, use +

    Gc:\TeX\Imagick\convert +

    instead of +

    Gconvert

  • +
  • You might need to remove the quotes from ’#FFFFFF’
+
+

tex4ht.sty / *.4ht

+

+ +

+
Foreign content in <title>...</title> elements
+

Use the \Configure{@TITLE}{...} command to redefine for the these elements the harmful macros +that appear in headers of logical units like \title and \chapter. For instance, the definition +\Configure{@TITLE}{\def\LaTeX{LaTeX}} for the source \title{with \LaTeX}. +

+
Problematic commands in titles of logical divisions
+

Commands within titles of divisions might need protection when transported by tex4ht to other +locations. The command \Configure{NoSection}{..before...}{...after...} may be used for such a +purpose. +

+
+

DVI Code

+

+

+
XDVI/DVIWINDO/YAP... hang on \special command
+

The dvi code produced by tex4ht is not valid for use with other utilities. Recompile the source file without the +presence of tex4ht, to provide a proper code to your dvi viewer. +

+
+

JavaScript

+

+

+
onovermouse’ package option
+

This option currently relies on the JavaScript utility overlib.js of Erik Bosrup. The overlib.js file must be +placed to the directory along the html files. +

+
+

Subscripts and Superscripts

+

+

+
Loss of structural information
+

Subscripts and superscripts are among the weakest points of tex4ht. In order to recognize them for non-bitmap +representations, TeX4ht changes the category codes of ‘^’ and ‘_’, upon reaching the \begin{document} instruction, +and ignores the operations if introduced earlier. +

The ideal solution would have been to get the superscript and subscript operations, as well as the empty bases +‘{}’, marked upon request by the native compilers in the dvi code. Currently, that is just a good night +dream. +

The followings are possible ways to overcome the problem. +

+

    +
  1. Prepare TeX4ht configuration files containing redefinitions for the the sensitive macros. For instance, the +configuration file test.cfg +
    \Preamble{}  +
      +
    \renewcommand{\FQED}[2]{F_{#1#2}}  +
    \renewcommand{\Mlones}{M^2}  + +
    \renewcommand{\bzms}{M^2_{_0}}  +
      +
    \begin{document}  +
    \EndPreamble  +
    +

    for a source test.tex, and a compilation invoked through the command ‘mzlatex test "test"’. +

  2. +
  3. Use \sb and \sp, instead of ‘_’ and ‘^’, in auxiliary files and preambles of files, or push the definitions to after the +\begin{document} statement. The danger in this approach is that occasionally users provide new meanings to +existing control sequences, without tex4ht taking it into account. +

  4. +
  5. Use the command line options early_ and early^. For instance, htlatex file "html,early_". +
+
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn30.html b/support/TeX4ht/doc/mn30.html new file mode 100644 index 0000000000..c254e8fece --- /dev/null +++ b/support/TeX4ht/doc/mn30.html @@ -0,0 +1,25 @@ + + + + +alternative scripts + + + + + + + + +
Mif exist %%2%%3 del %%2%%3  +
Mif exists %%1 move %%1 %%2%%3  +
Cif exist %%2%%3 del %%2%%3  +
Cif exists %%1 copy %%1 %%2%%3  +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn32.html b/support/TeX4ht/doc/mn32.html new file mode 100644 index 0000000000..055b4ef06d --- /dev/null +++ b/support/TeX4ht/doc/mn32.html @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + exit

Placement of the Environment File

+ The tex4ht.c and t4ht.c programs retrieve the information about their platform from an environment file. +The programs search the file at the following locations, in the given order. +
    +
  • The address specified within the command lines of tex4ht and t4ht, and identified there by the prefix ‘-e’. +
  • +
  • The address tex4ht.env in the work directory.
  • +
  • At the location specified by an optional environment variable named TEX4HTENV.
  • +
  • The address tex4ht.env in the root directory.
  • +
  • The address provided in the variable ENVFILE of tex4ht and t4ht during compilation.
  • +
  • At the directories of kpathsea, to be searched by that utility, if the tex4ht.c and t4ht.c programs are compiled +with the ‘-DKPATHSEA’ switch on. +

    For instance, +

    gcc -o tex4ht tex4ht.c -DENVFILE=’"~/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’ +-DKPATHSEA -DHAVE_DIRENT_H -lkpathsea +

    or +

    gcc -O2 -DKPATHSEA -I/usr/include -L/usr/lib -o tex4ht tex4ht.c -DHAVE_DIRENT_H +-lkpathsea +

    When the address of tex4ht.env is not explicitly given, the texmf.cnf file might need records similar to the +following ones. +

      TEX4HTFONTSET=alias,iso8859  +
      TEX4HTINPUTS=.;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}//  +
      T4HTINPUTS=.;$TEXMF/tex4ht/base//  +
    +

  • +
  • The instruction +
    apt-get install gcc libkpathsea4 libkpathsea-dev
    +

    when executed as root installs the following packages on Ubuntu/Debian. +

    +

      +
    • gcc: the standard C compiler
    • +
    • libkpathsea4: library for TeX path searching, part of the texlive distribution provides files like +/usr/lib/libkpathsea.so.4.0.0
    • +
    • libkpathsea-dev: development files for libkpathsea provides numerous header files (*.h) in /usr/include/kpathsea +
    +

    If a file is already present, a warning is issued and the instruction can be retried after omitting the request for +the installed package. +

    +
+

A given address may start with the character ‘~’. This character is interpreted to be the directory address of the +root (as provided in an environment variable named HOME). +

The file tex4ht.env may be renamed to ‘.tex4ht’, if your system allows names consisting only of the extension +part. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn33.html b/support/TeX4ht/doc/mn33.html new file mode 100644 index 0000000000..289b729132 --- /dev/null +++ b/support/TeX4ht/doc/mn33.html @@ -0,0 +1,24 @@ + + + + +root + + + + + + + + + The address of the root directory is assumed to be stored in an environment variable named HOME. +

On MS Windows, the directory c:/, and the residence directory of tex4ht.exe and t4ht.exe, are also +candidates. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn34.html b/support/TeX4ht/doc/mn34.html new file mode 100644 index 0000000000..5e06933147 --- /dev/null +++ b/support/TeX4ht/doc/mn34.html @@ -0,0 +1,142 @@ + + + + +Modify + + + + + + + + + exit Modify +

The Composition of tex4ht.env

+ TeX4ht consults this file for system-dependent information. The file consists of a sequence of directives, where +each directive occupies a line and is identified with a distinguished character code in the first column. The following +are the possible character codes and their meaning. +
+
b
+This character identifies for tex4ht a comment to be placed in the ‘.lg’ file, before the scripts for creating pictures +for symbols. +
g
+This character identifies the extension tex4ht should associate to names of the files of pictures the +postprocessor requests (for instance, bitmap files of glyphs.). The default corresponds to a setting of the form +‘g.png’. +

An extension name can also be encoded into tex4ht during compilation time through the variable +LGTYP. +

Alternatively, an extension can be provided in the command line of tex4ht, in which case the character code +should be present and immediately preceded by a ‘-’ character. +

+
i
+This character identifies to tex4ht a directory where the hypertext font (.htf) files of tex4ht are +stored. +
l
+This character identifies a bookkeeping file where tex4ht can record information about paths to files it uses. +
s
+This character identifies to tex4ht a command for requesting in the lg file the translation of dvi pictures to +bitmaps. When needed, a sequence of such commands can be placed in consecutive lines to form a block of +commands for handling the translation. +
t
+This character identifies to tex4ht the directory where the font metric (.tfm) files of TeX are stored. +
A
+This character identifies to t4ht a script for changing access mode of files. +
C
+This character identifies a script for satisfying requests made in the lg file to copy files between directories. +
E
+This character identifies a script for satisfying requests made in the lg file to get substitutions for empty +pictures. +
F
+This character identifies to t4ht a script for translating into other formats characters from dvi files. +

A ‘F.ext’ record marks a conditional F-subscript. It states that the following F-records will apply only to +pictures whose extension names are ‘ext’. +

A ‘F.’ record marks a default F-subscript. It applies to pictures whose extension names do not get dedicated +F-subscripts. +

The ‘F.ext’ and ‘F.’ records are not needed, in case all the pictures are to be processed by a single set of +F-records. +

Example: +

F.gif  +
F-gif-script  +
F.png  +
F-png-script  +
F.  +
F-script  +
+
G
+This character identifies to t4ht a script for translating general dvi figures into other formats. +

A ‘G.ext’ record marks a conditional G-subscript. It states that the following G-records will apply only to +pictures whose extension names are ‘ext’. +

A ‘G.’ record marks a default G-subscript. It applies to pictures whose extension names do not get dedicated +G-subscripts. +

The ‘G.ext’ and ‘G.’ records are not needed, in case all the pictures are to be processed by a single set of +G-records. +

Example: +

G.gif  +
G-gif-script  +
G.png  +
G-png-script  +
G.  +
G-script  +
+
M
+This character identifies a script for satisfying requests made in the lg file to move files between directories. +
S
+This character specifies what security measures t4ht should take when invoking other utilities. In the absence of +this directive, all the calls to system services are ignored. On the other hand, a directive of the form ‘S*’ allows all +system calls. A selective access to system calls can be obtained with S directives, which specify the prefixes of +command names that should be allowed to go through. +

The S directives can be fed as switches to the command lines t4ht. +

+
P
+A variant of he S switch for tex4ht. Rarely useful. + +
X
+This character identifies to t4ht a script for postprocessing the files which tex4ht outputs. The file names are +represented by ‘%%1’, and their extensions by ‘%%2’. Such scripts, for instance, may invoke validators to check the +correctness of the files against given DTD’s and request XSL transformations. +

The command line of t4ht may include a flag ‘-X’ whose content is represented by ‘%%3’ in the +script. +

Example: Xmake -f mymake name=%%1 ext=%%2 %%3 +

+
. (dot)
+A variant of the X script applied to files whose extension names are provided after the dot. The file names are +represented by ‘%%1’, and the jobnames by ‘%%0’. +

Example: .xml echo "name=%%1.xml" +

+
<
+Tagged script segments <tag>...</tag> are scanned only if their names are specified within -ctag switches of +tex4ht.c and t4ht.c. When such switches are not supplied, a the switch -cdefault is implicitly +assumed. +
+

Lines starting with other characters are treated as comments, and empty lines may be treated as file +terminators by tex4ht and t4ht. +

Examples: Unix-oriented, MS-oriented + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn35.html b/support/TeX4ht/doc/mn35.html new file mode 100644 index 0000000000..002cf444c4 --- /dev/null +++ b/support/TeX4ht/doc/mn35.html @@ -0,0 +1,53 @@ + + + + +bookkeeping file + + + + + + + + + exit

Placement of the Bookkeeping File

+ To cut down on the time invested to locate files, the tex4ht.c program maintains a bookkeeping file where it +records the addresses of the files it finds. Whenever the program needs to locate a file, it first searches the address in +the bookkeeping file. If it doesn’t find the address there, the program embarks on a search throughout the physical +directories of its platform. +

The program places the bookkeeping file at the first applicable location of the following list. +

+

    +
  1. The pointer specified by an optional ‘-l’ switch provided to the invocation of the tex4ht program. +
  2. +
  3. A file named tex4ht.fls in the directory specified by an optional environment variable named TEX4HTWR. +
  4. +
  5. The location specified by an optional ‘l’ record provided in the environment file.
  6. +
  7. A file named tex4ht.fls in the work directory.
+

A given address may start with the character ‘~’ or the character pair ‘~~’. The single character ‘~’ is +interpreted to be the directory address of the root, provided in an environment variable named HOME. The +character pair ‘~~’ is interpreted to be a directory address provided in an environment variable named +TEX4HTWR. The address stored in the latter environment variable may also start with a single character +‘~’. +

The bookkeeping file must have writable access mode, and the directory which contains the file should have a +compatible access mode. On multi-user platforms, it is recommended not to share the bookkeeping file, but to ask +for such files in the users’ directories. +

The bookkeeping file is a dynamically constructed variant of the ls-R file of kpathsea. TeX4ht +ignores its own bookkeeping mechanism, if the program tex4ht.c is compiled with a raised -DKPATHSEA +switch. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn36.html b/support/TeX4ht/doc/mn36.html new file mode 100644 index 0000000000..7ff942cde9 --- /dev/null +++ b/support/TeX4ht/doc/mn36.html @@ -0,0 +1,63 @@ + + + + +where + + + + + + + + + exit +

Directories of the TeX Fonts Metric (tfm)

+ TeX4ht searches the hypertext fonts in the working directory, and in the following optional directories, in the +given order. +

+

    +
  • The directory named in the command line of tex4ht, identified with the prefix ‘-t’. +

  • +
  • The directory identified with the character ‘t’ in the tex4ht.env file. +

  • +
  • The directory whose name is fed into tex4ht.c during compilation time, through the program variable +TFMDIR. +

  • +
  • In the directory holding the executable tex4ht (only for MS Windows). +
+

A given address may start with the character ‘~’ or the character pair ‘~~’. The single character ‘~’ is +interpreted to be the directory address of the root, provided in an environment variable named HOME. The +character pair ‘~~’ is interpreted to be a directory address provided in an environment variable named +TEX4HTTFM. The address stored in the latter environment variable may also start with a single character +‘~’. +

The optional environment variable TEX4HTTFM may hold one or more addresses. The addresses must be +separated by a character which does not appear in the addresses, and that character must also delimit the content +at the start and end points. +

The system variable MAXFONTS of tex4ht.c places a limit on the number of fonts allowed in the documents. +The default setting doesn’t provide such a limit. +

If the program tex4ht.c is compiled with the ‘-DKPATHSEA’ switch on, TeX4ht ignores its own search and +delegate it to the kpathsea utility. +

A given address may start with the character ‘~’ or the character pair ‘~~’. The single character ‘~’ is +interpreted to be the directory address of the root, provided in an environment variable named HOME. The +character pair ‘~~’ is interpreted to be a directory address provided in an environment variable named +TEX4HTA. The address stored in the latter environment variable may also start with a single character +‘~’. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn37.html b/support/TeX4ht/doc/mn37.html new file mode 100644 index 0000000000..e6eb046e93 --- /dev/null +++ b/support/TeX4ht/doc/mn37.html @@ -0,0 +1,80 @@ + + + + +Compile + + + + + + + + + exit Compile +

Compiling tex4ht.c

+
    +
  • You might want to activate some of the options at the start of the file by uncommenting the corresponding +lines. +
    /* **********************************************  +
        Compiler options                            *  +
        (uncommented | command line)                *  +
    ------------------------------------------------*  +
           Classic C (CC)             default  +
    #define ANSI                      ansi-c, c++  +
    #define DOS_C  +
    #define HAVE_STRING_H             <string.h>  +
    #define HAVE_DIRENT_H             <dirent.h>  +
    #define HAVE_SYS_NDIR_H           <sys/ndir.h>  +
    #define HAVE_SYS_DIR_H            <sys/dir.h>  +
    #define HAVE_NDIR_H               <dir.h>  +
    #define WIN32  +
    #define KPATHSEA  +
    #define BCC32                    bordland c++  +
      +
    *************************************************  +
    +

  • +
  • Values may be assigned in the command line or the beginning of the source file, to the environment variables +ENVFILE, HTFDIR, LGPIC, LGSEP, LGTYP, MAXFONTS, and TFMDIR. +

    For instance, +

    gcc -o tex4ht tex4ht.c -DENVFILE=’"path/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’ +-DHAVE_DIRENT_H +

    +
+

The switch ‘-DENVFILE’ is optional, if the program can reach the environment file in an alternative +manner. +

+

Compiling t4ht.c

+ The environment variable ENVFILE is available also in ‘t4ht.c’. +

For instance, +

gcc -o t4ht t4ht.c -DENVFILE=’"gold/tex4ht.dir/texmf/tex4ht/base/unix/tex4ht.env"’ + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn38.html b/support/TeX4ht/doc/mn38.html new file mode 100644 index 0000000000..de020f2d3d --- /dev/null +++ b/support/TeX4ht/doc/mn38.html @@ -0,0 +1,80 @@ + + + + +driver + + + + + + + + + exit driver +

Driving the Translation of Pictures and Other Tasks

+ TeX4ht outputs a script file (‘.lg’) describing how the dvi file (extension ‘.idv’) of pictures should +be processed, the CSS instructions to be included for the file, and user-initiated requests from the +operating system. In the default setting, the script file holds abstract commands similar to the following +ones. +
--- needs --- source.idv[i] ==> target.png ---
+

An abstract command of this form requests that the i’th page in the dvi file will be translated into a target file +whose name is provided. +

+
--- characters ---
+

This abstract command is a identifies where the requests for pictorial characters start. +

+
+

A manual brute-force execution of the abstract commands can be a tedious job for large number of pictures. +The t4ht is in essence an interpreter for these abstract commands. +

Another possible approach for automating the process is to request lg scripts in the form of shell scripts or +batch files. +

Alternatives to ‘--- needs --- source.idv[i] ==> target.png --- +

The default setting is made with a request of the form ‘--- needs --- %%1.idv[%%2] ==> %%3.png ---’, +where the parameters %%1, %%2, and %%3 respectively represent the name of the source file without +its extension, a page number, and a name of the target file. Alternative patterns to these abstract +commands can be requested in the following locations, with the order reflecting on the priority given to the +requests. +

+

    +
  • In the command line of tex4ht, where the pattern should be prefixed with ‘-s’. +

  • +
  • In the environment file tex4ht.env within a block of consecutive lines, where the lines should be identified with the +character s. +

  • +
  • In tex4ht with the pattern provided through the variable LGPIC of tex4ht.c. +
+

The character ‘%’ can be introduced into a pattern through the entry ‘%%%’. On the other hand, the +parameters ‘%%1’, ‘%%2’, and %%3 can specify, between the first two percentage characters (i.e., ‘%...%1’, +‘%...%2’, and ‘%...%3’), any format for the outcome that is compatible with the print formats of +C. +

Alternatives to ‘--- characters --- +

Substitutions for this abstract command can be requested in the following locations. +

+

    +
  • In the overview of tex4ht, prefixed with ‘-b’. +

  • +
  • In a line within the environment file ‘tex4ht.file’, where the line should be identified with the character +‘b’. +

  • +
  • In tex4ht with the substitution provided during compilation time through the variable LGSEP of +tex4ht.c. +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn39.html b/support/TeX4ht/doc/mn39.html new file mode 100644 index 0000000000..3af35e5b79 --- /dev/null +++ b/support/TeX4ht/doc/mn39.html @@ -0,0 +1,131 @@ + + + + +overview + + + + + + + + + exit overview +

The Translation Process

+ The system can be activated with a sequence of commands of the following form, typically embedded within +a script. + +
       latex      x            (or ‘tex x’)  +
       latex      x  +
       latex      x  +
       tex4ht     x  +
       t4ht       x  +
+

The three compilations with La(TeX) are needed to ensure proper links. The approach is illustrated in the +following picture. + +

                                   --html
+                                   |  files
+         ----|            ------|  |
+     ----|   |----    ----|     |----     --
+x.tex    TeX |    x.dvi    |tex4ht|  | x.idv  | -----|
+         -----            -------  |       --|t4ht--png & css
+                                   |       | -----|    files
+                                   ---x.lg---
+ +

+

x.tex
+

This is a source TeX/LaTeX/OtherTeX file that imports the style files tex4ht.sty and *.4ht. The style files +define the features for the output. +

+
tex4ht
+

The output of TeX is a standard dvi file interleaved with special instructions for the postprocessor tex4ht to +use. The special instructions come from implicit and explicit requests made in the source file through commands of +TeX4ht. +

The utility tex4ht translates the dvi code into standard text, while obeying the requests it gets from the +special instructions. The special instructions may request the creation of files, insertion of html code, filtering of +pictures, and so forth. +

In the extreme case that the source code contains no commands of TeX4ht, tex4ht gets pure dvi code and it +outputs (almost) plain text with no hypertext elements in it. +

The special (\special) instructions seeded in the dvi code are not understood by dvi processors other than +those of TeX4ht. +

+
x.idv
+

This is a dvi file extracted from x.dvi, and it contains the pictures needed in the html files. +

+
x.lg
+

This is a log file listing the pictures of x.idv, the png files that should be created, CSS information, and user +directives introduced through the ‘\Needs{...}’ command. +

+
t4ht
+

This is an interpreter for executing the requests made in the x.lg script. +

+
+

A Reflection at the System Messages

+
This is TeX, Version 3.14159 (Web2C 7.3.1)             invoke ‘latex x’  +
LaTeX2e <1998/12/01> patch level 1  +
Babel <v3.6x> and hyphenation patterns for american, french, german, ngerman, n  +
ohyphenation, loaded.  +
(x.tex (/usr/share/texmf/tex/latex/base/article.cls  +
Document Class: article 1999/01/07 v1.4a Standard LaTeX document class  +
(/usr/share/texmf/tex/latex/base/size10.clo))  +
(n/tex4ht.dir/tex4ht.sty)  +
(n/tex4ht.dir/tex4ht.sty  + +
--- needs --- tex4ht x ---  +
(tex4ht.tmp) (x.xref) (n/tex4ht.dir/html4.4ht)  +
(n/tex4ht.dir/picmath4.4ht)  +
(n/tex4ht.dir/latex.4ht (n/tex4ht.dir/html4.4ht)  +
(n/tex4ht.dir/picmath4.4ht))  +
(n/tex4ht.dir/fontmath.4ht  +
(n/tex4ht.dir/html4.4ht)  +
(n/tex4ht.dir/picmath4.4ht))  +
(n/tex4ht.dir/article.4ht (n/tex4ht.dir/html4.4ht  +
) (n/tex4ht.dir/picmath4.4ht))) (x.aux)  +
--- file x.css ---  +
[1] (x.aux) )  +
Output written on x.dvi (1 page, 4460 bytes).  +
Transcript written on x.log.  +
This is TeX, Version 3.14159 (Web2C 7.3.1)             invoke ‘latex x’  +
LaTeX2e <1998/12/01> patch level 1  +
.......................  +
This is TeX, Version 3.14159 (Web2C 7.3.1)             invoke ‘latex x’  +
LaTeX2e <1998/12/01> patch level 1  +
.......................  +
tex4ht.c (1999-11-10-03-50)                            invoke ‘tex4ht x’  +
(tex4ht.env)  +
(n/tex4ht.dir/tex4ht.fls)  +
(/usr/share/texmf/fonts/tfm/public/cm/cmr10.tfm)  +
(n/tex4ht.dir/ht-fonts/iso8859/cm/cmr.htf)  +
[1 file x.html  +
 file x.css  +
 file tex4ht.tmp  +
]  +
Execute script ‘x.lg’  +
t4ht.c (1999-12-30-21-14)                              invoke ‘t4ht x’  +
Entering tex4ht.env  +
Entering x.lg  +
.......................  +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn3x.png b/support/TeX4ht/doc/mn3x.png new file mode 100644 index 0000000000..0b8934b9f7 Binary files /dev/null and b/support/TeX4ht/doc/mn3x.png differ diff --git a/support/TeX4ht/doc/mn4.html b/support/TeX4ht/doc/mn4.html new file mode 100644 index 0000000000..d8dd0e6e9f --- /dev/null +++ b/support/TeX4ht/doc/mn4.html @@ -0,0 +1,31 @@ + + + + +installing a +filter + + + + + + + + + exit installing a filter +

htcmd

+

The source is available at bin/temp/htcmd.c, and executable for MS Win 95/98/NT is available at +bin/win32/htcmd.exe. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn40.html b/support/TeX4ht/doc/mn40.html new file mode 100644 index 0000000000..00d6eefc64 --- /dev/null +++ b/support/TeX4ht/doc/mn40.html @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + exit +

Directories for the Virtual Hypertext Fonts (htf)

+ Each font of TeX may have numerous virtual hypertext font to map to. The i directives of tex4ht.env, as +well as the i switches of the tex4ht command, may be used to identify the subdirectories where the target virtual +fonts are to be found. +

TeX4ht searches the hypertext fonts in the working directory, and in the following optional directories, in the +given order. +

+

    +
  • The directory named in the command line of tex4ht, identified with the prefix ‘-i’. +

  • +
  • The directory identified with the character i in the tex4ht.env file. +

  • +
  • The directory whose name is encoded into tex4ht during compilation time, within a string "..." fed into the +variable HTFDIR of tex4ht.c. +

  • +
  • In the directory holding the executable tex4ht (only for MS Windows). +
+

A given address may start with the character ‘~’ or the character pair ‘~~’. The single character ‘~’ is +interpreted to be the directory address of the root, provided in an environment variable named HOME. The +character pair ‘~~’ is interpreted to be the directory address provided in an environment variable named +TEX4HTHTF. The address stored in the latter environment variable may also start with a single character +‘~’. +

The optional environment variable TEX4HTHTF may hold one or more addresses. The addresses must be +separated by a character which does not appear in the addresses, and that character must also delimit the content +at the start and end points. +

If the program tex4ht.c is compiled with the ‘-DKPATHSEA’ switch on, TeX4ht ignores its own search and +delegate it to the kpathsea utility. + +

+
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn41.html b/support/TeX4ht/doc/mn41.html new file mode 100644 index 0000000000..d60626d9c9 --- /dev/null +++ b/support/TeX4ht/doc/mn41.html @@ -0,0 +1,36 @@ + + + + +graphical user +inferfaces + + + + + + + + + +

+

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn42.html b/support/TeX4ht/doc/mn42.html new file mode 100644 index 0000000000..d3e36a19a3 --- /dev/null +++ b/support/TeX4ht/doc/mn42.html @@ -0,0 +1,25 @@ + + + + +integrated into the WinShell + + + + + + + + + I was successful with integrating TeXh4t win WinShell 2.2.1 from Texlive 7 distribution. By inserting “user +tools” you can have an editor from which there is a quick access to not only LaTeX, (standard makeindex - not +provided but explained in help support), PDFLaTeX, Dvi, GsView, Acrobat Reader, but also to TeXh4t (DOS +switch MUST be OFF as logspace has not enough room for long log files produced by TeXh4t), to two stage +makeindex procedure and to Mozilla browser. + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn44.html b/support/TeX4ht/doc/mn44.html new file mode 100644 index 0000000000..e5c450073b --- /dev/null +++ b/support/TeX4ht/doc/mn44.html @@ -0,0 +1,60 @@ + + + + +LaTeX/TeX + + + + + + + + + exit LaTeX/TeX +

LaTeX/TeX

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn45.html b/support/TeX4ht/doc/mn45.html new file mode 100644 index 0000000000..d6527e3156 --- /dev/null +++ b/support/TeX4ht/doc/mn45.html @@ -0,0 +1,34 @@ + + + + +HTML + + + + + + + + + exit HTML +

HTML

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn46.html b/support/TeX4ht/doc/mn46.html new file mode 100644 index 0000000000..874ec6c051 --- /dev/null +++ b/support/TeX4ht/doc/mn46.html @@ -0,0 +1,42 @@ + + + + +XML/XSLT + + + + + + + + + exit XML/XSLT +

XML/XSLT

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn47.html b/support/TeX4ht/doc/mn47.html new file mode 100644 index 0000000000..f33647c9a3 --- /dev/null +++ b/support/TeX4ht/doc/mn47.html @@ -0,0 +1,47 @@ + + + + +MathML + + + + + + + + + exit MathML +

MathML

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn48.html b/support/TeX4ht/doc/mn48.html new file mode 100644 index 0000000000..061f28e916 --- /dev/null +++ b/support/TeX4ht/doc/mn48.html @@ -0,0 +1,30 @@ + + + + +OpenDocument + + + + + + + + + exit OpenDocument +

OpenDocument

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn49.html b/support/TeX4ht/doc/mn49.html new file mode 100644 index 0000000000..cefe84eac1 --- /dev/null +++ b/support/TeX4ht/doc/mn49.html @@ -0,0 +1,34 @@ + + + + +DocBook + + + + + + + + + exit DocBook +

DocBook

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn4x.png b/support/TeX4ht/doc/mn4x.png new file mode 100644 index 0000000000..3c77b2c894 Binary files /dev/null and b/support/TeX4ht/doc/mn4x.png differ diff --git a/support/TeX4ht/doc/mn5.html b/support/TeX4ht/doc/mn5.html new file mode 100644 index 0000000000..f885a74b2d --- /dev/null +++ b/support/TeX4ht/doc/mn5.html @@ -0,0 +1,706 @@ + + + + +Q/A + + + + + + + + + exit Q/A +

Q/A

+ +

Note: Please also check the .log files of the compilations for hints provided by tex4ht. +

+

Addresses of Bitmap Files

+

How Bitmap Files Are Created for Pictures

+

There are two kinds of pictures: those created for letters, and those requested directly or indirectly for figures in the +source files. The tex4ht.c utility extracts the figures from the foo.dvi file into a foo.idv file, and places in foo.lg +messages of how to extract the figures. The t4ht.c utility, uses the requests listed at foo.lg, to activate the G-script +from tex4ht.env for the different figures. However, if a F-script is available, it is used instead for the +letters. +

+

References to Bitmap Files of General Pictures

+

The command +

\Configure{IMG}{<img\Hnewline src="foo.dir/}{" alt="}{" }{ />} +

in the configuration file adds the prefix +

foo.dir/ +

to the file names. +

The default setting uses the configuration +

\Configure{IMG}{<img\Hnewline src="}{" alt="}{" }{ />} +

+

Placement of Bitmap Filess of General Pictures

+

Add to the ‘G’ script in tex4ht.env a command to move the bitmap files to the desired destination (e.g., ‘Gmv %%3 +foo.dir/.’). +

+

References to Bitmap Files of HTF Symbols

+

Add the following commands to the configuration file. +

\Configure{htf}{1}{+}{<img\Hnewline  +
   src="foo.dir/}{" alt="}{" class="}{\%s}{-\%d}{x-x-\%x}{" />}  +
\Configure{htf}{3}{+}{<img\Hnewline  +
   src="foo.dir/}{" alt="}{" class="\%s-}{\%s}{-\%d}{x-x-\%x}%  +
   {" align="middle" />}  +
+

Placement of Bitmap Files of HTF Symbols

+

If ‘foo.dir/’ is not the directory used in the ‘G’ script, introduce into tex4ht.env a similar ‘F’ script for the bitmaps +of character, e.g., +

Fdvips -T 14in,14in -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2  > zz%%4.ps  +
Fconvert zz%%4.ps -trim -density 110x110 -transparent ’#FFFFFF’ %%3  +
Fmv %%3 foo.dir/.  +
+

Representation of formulas

+

Make picture’s alternative text to show the original tex code

+ +

Explicit requests: +

\newtoks\eqtoks  +
\def\ImageAlt{\afterassignment\setimg\eqtoks}  +
\def\setimg{\Picture*[\HCode{\the\eqtoks}]{}\the\eqtoks\EndPicture}  +
  +
\ImageAlt{$\alpha + \beta$}  +
  +
\ImageAlt{$$  +
  \begin{array}{cc}  +
    a & b \\  +
    c & d  +
  \end{array}  +
$$}  +
+

Implicit requests may also be tailored along the following lines, but they should be used carefully because they +are not safe. +

\newtoks\eqtoks  +
\def\AltMath#1${\eqtoks{#1}%  +
   \Picture*[\HCode{\the\eqtoks}]{ align="middle"}$#1$\EndPicture$}  +
\Configure{$}{}{}{\expandafter\AltMath}  +
+

Avoiding bitmaps within formulas

+

Q. I found that some equations have smaller fonts than the others. I wonder why the size of the equations changes +along the document. +

Some equations and symbols are converted to bitmaps–I guess they are the parts you are concerned +about. +

If you try the command ‘ mzlatex filename’, provided you have the xhlatex-like script of mzlatex configured, +you’ll get the bitmaps removed in favor of unicode symbols and mathml formulas. In such a case, one will need a +mathml-enabled browser to view the outcome. +

If you don’t care using the MS SYMBOL font, which non-pc browsers are likely not to recognize, try +the command ‘ htlatex filename "" "symbol/!" ’. It will resolve the bitmap problem for of the +characters. +

+

Setting bitmaps within formulas

+

A code similar to the following one may be used to configure instructions like ‘\int_{xxx}^{yyy}’ and +‘\sum_{xxx}^{yyy}’ to produce pictorial representations within non-pictorial formulas. +

\def\SubSupOp#1{%  +
   \edef\temp{\expandafter\gobble\string#1}%  +
   \expandafter\let\csname old\temp\endcsname=#1  +
   \edef\temp{\noexpand\SUBSUPOP{\expandafter\noexpand  +
                   \csname old\temp\endcsname}}%  +
   \HLet#1=\temp  +
}  +
\def\gobble#1{}  +
\def\SUBSUPOP#1{\let\curOP=#1%  +
   \let\next=\putOP \let\OPsub=\empty \let\OPsup=\empty  +
   \futurelet\nextop\getOP}  +
\def\getOP{%  +
  \ifx _\nextop \let\next=\getsub  +
     \else\ifx ^\nextop \let\next=\getsup\fi\fi \next}  +
\def\getsub#1#2{\def\OPsub{#2}\let\next=\putOP  +
   \futurelet\nextop\getOP}  +
\def\getsup#1#2{\def\OPsup{#2}\let\next=\putOP  + +
   \futurelet\nextop\getOP}  +
\def\putOP{\Picture+{  align="middle"}{\curOP_{\OPsub}^{\OPsup}}\EndPicture}  +
  +
\SubSupOp\sum  +
\SubSupOp\int  +
  +
+

\includegraphics

+

Conditional bitmap conversion for imported graphic files

+

Q. How to avoid the conversion of eps files to PNG’s, included through the \includegraphics{...} command’, +each time the source file is run across tex4ht. +

Compile your source with the command line ‘ htlatex filename "html,info" ’, and check the log file for the +information provided there. In particular, the ‘\Configure{graphics*} {wmf} ...’ example may be adapted for +dealing with eps files, where a conditional conversion is requested within the ‘\Needs{"..."}’ command (possibly +indirectly through a call to a script for doing he job). +

+

Clickable Thumbnail Images

+

Q. How an image can be made a thumbnail to be clicked on for bringing up the full size image. +

     \Configure{graphics*}  +
        {png}  +
        {\Link[\csname Gin@base\endcsname .png]{}{}%  +
           \Picture[pict]{\csname Gin@base\endcsname .png  +
              \space width="40px" height="40px" }%  +
         \EndLink  +
         }  +
+
     \Configure{graphics*}  +
        {eps}  +
        {\openin15=\csname Gin@base\endcsname\PictExt\relax  +
         \ifeof15  +
            \Needs{"convert \csname Gin@base\endcsname.eps  +
                            \csname Gin@base\endcsname\PictExt"}%  +
         \fi  +
         \closein15  +
         \Link[\csname Gin@base\endcsname\PictExt]{}{}  +
            \Picture[pict]{\csname Gin@base\endcsname\PictExt  +
                        \space width="40px" height="40px" }%  +
         \EndLink  +
        }  +
+

Other

+

Missing Configurations

+

Q. I am attempting to convert a Ph.D. thesis written in LaTeX, using a locally developed class ths.cls based on the +report class, which redefines some elements of the class for local needs. The output is lacking the Table +of Contents and the Lists of Figures and Tables, and the bibliography at the end is only minimally +formatted. +

The problems result from a lack of a configuration file for the thesis class. Try introducing a configuration file +similar to the following one. +

   % file name: ths.4ht  +
   \input report.4ht  +
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn50.html b/support/TeX4ht/doc/mn50.html new file mode 100644 index 0000000000..cdfa115201 --- /dev/null +++ b/support/TeX4ht/doc/mn50.html @@ -0,0 +1,30 @@ + + + + +TEI + + + + + + + + + exit TEI +

TEI

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn51.html b/support/TeX4ht/doc/mn51.html new file mode 100644 index 0000000000..2867f3b2a9 --- /dev/null +++ b/support/TeX4ht/doc/mn51.html @@ -0,0 +1,40 @@ + + + + +Style Sheets + + + + + + + + + exit Style Sheets +

Style Sheets

+ + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn52.html b/support/TeX4ht/doc/mn52.html new file mode 100644 index 0000000000..63b1815d16 --- /dev/null +++ b/support/TeX4ht/doc/mn52.html @@ -0,0 +1,31 @@ + + + + +Validators + + + + + + + + + exit Validators +

Validators

+

+

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn53.html b/support/TeX4ht/doc/mn53.html new file mode 100644 index 0000000000..b4602223d3 --- /dev/null +++ b/support/TeX4ht/doc/mn53.html @@ -0,0 +1,176 @@ + + + + + + + + + + + + + +

1. BibHTML (Norman Gray) A BibTeX to HTML converter.


+

2. Bib2HTML (David Kotz) Perl script for creating HTML output from a BibTeX database.


+

3. Bib2HTML (Heiner Steven) AWK script for creating HTML output from a BibTeX database.


+

4. Bib2XHTML (Diomidis Spinelli) Bibtex styles and a Perl script driver for creating XHTML output from BibTeX +citations.


+

5. Bib2ML (Stphan Galland) A Perl script for generating HTML, XML and SQL files from BibTeX databases.


+

6. BibTeX2HTML (Jean-Christophe Filliatre) A BibTeX to HTML converter written in Objective Caml.


+

7. BibTeX2HTML (David Harvey) A tool that translates TeX math into MathML for MediaWiki


+

8. Dlh (David Mosberger) A C translator for converting from a subset of LaTeX to HTML.


+

9. GELLMU (William F. Hammond) A general-purpose SGML authoring language based on LaTeX syntax.


+

10. Hermes (Romeo Anghelache) A LaTeX to XML convertor with a presentation MathML target for math. When +possible, content MathML code is introduced as a wrapper that supplies semantics to the expressions. Sources are +compiled with the native TeX compiler to obtain output seeded with DVI specials. A postprocessor extracts the +output from the DVI code.


+

11. HEVEA (Luc Maranget) An Objective Caml translator from a subset of LaTeX to HTML.


+

12. HTeX (Thomas F. Rutherford) A preprocessor which expands html by a new tag: ‘<eq>..</eq>’. An <eq> +signifies the start of a LaTeX-readable equation, and a </eq> indicates the end of an equation. Anything appearing +between these tags is treated as LaTeX commands within a ‘displaymath’ section of a LaTeX document.


+

13. HtmlTeX (Sergey Brin) Perl script for converting a subset of LaTeX to HTML


+

14. HTMX (Joe Fields) Perl script for translating LaTeX equations embedded within HTML into gif.


+

15. HyperLaTeX (Otfried Cheong) A processor for a subset of LaTeX enriched with hypertext-oriented commands.


+

16. HyperTeX (Tanmoy Bhattacharya, David Carlisle, Mark Doyle, Paul Ginsparg, Alan Jeffrey, Hiroshi Kubo, +Kasper Peeters, Sebastian Rahtz and Arthur Smith) A convention for inclusion of hyperlinks in TeX and LaTeX +documents, supported by packages that automatically introduce the links into the code.


+

17. Itex2mml (Paul Gartside) A C program for translating a dialect of LaTeX into MathML.


+

18. LaTeXML (Bruce Miller) A program for translating LaTeX into XML (including XHTML and MathML).


+

19. LaTeX2HTML (Nikos Drakos) A perl script for translating LaTeX into HTML.


+

20. LaTeX2man (Jürgen Vollmer) A Perl script for translating UNIX manual pages written with LaTeX into UNIX +man(1)-command, HTML, or Texinfo code.


+

21. LaTeX2MathML (Jens Breit) A Python program to translate LaTeX math into MathML.


+

22. LaTeX2MathML (Greg Kearney) A Macintosh program to translate LaTeX math into MathML. + +


+

23. LaTeX4Web (Eric Chopin) A javascript for translating a subset of LaTeX to HTML.


+

24. Ltoh (Russell W. Quong) A customizable Perl converter from a subset of LaTeX to HTML.


+

25. Ltx2x (Pete R.r Wilson) A table-driven program that will replace LaTeX commands by user defined text.


+

26. MathTran Jonathan Fine() A modified TeX compiler aiming at translating mathematical content from TeX to +MathML and vice-versa, and to graphics formats.


+

27. MicroPress TeXpider (MicroPress) A modified TeX compiler for PCs for translating LaTeX to HTML.


+

28. ORCCA (?) A Java program for translating TeX mathematics into MathML


+

29. plasTeX (Kevin Smith) A LaTeX document processing framework written entirely in Python. A successor to +pyLaTeX.


+

30. RichDoc (Michal ˇS  evˇc  enko) A document preparation system capable to import LaTeX and export HTML


+

31. Selathco (Petr Toman) A simple extensible LaTeX to HTML converter written in Java.


+

32. SnuggleTeX (David McKain) A converter from a subset of LaTeX to XHTML+MAthML written in Java.


+

33. TeX2HTML (Gabriel Zachmann) Vim macros for converting from LaTeX to HTML


+

34. TeX2Page (Dorai Sitaram) A Scheme script for translating a subset of plain TeX to HTML.


+

35. TeX2RTF (Julian Smart) tmEA A C++ utility for converting from a subset of LaTeX to HTML and other +formats.


+

36. tex2sdoc (Masashi Sakurai) A Java program for translating a subset of LaTeX into SmartCode


+

37. Texi2HTML (Lionel Cons) A Perl script for converting Texinfo manuals to HTML.


+

38. TeXPort WEB (K-talk Communications) A program running on MS-DOS or MS-Windows.


+

39. TexToWebPublishing (P.Brachet / J.Amblard) A perl script for producing HTML from LaTeX


+

40. Tralics (Jos Grimm) A C++ program for translating a subset of LaTeX to a local XML. +———————————————————————————–


+

41. Tth (Ian Hutchinson) A C program for translating a subset of plain TeX and LaTeX into HTML. Uses special +fonts and tables to represent formulas.


+

42. Vulcanize (Mark-Jason Dominus) A Perl program for translating a subset of LaTeX to HTML.


+

43. WebEQ (Mark-Jason Dominus) MathML fro a TeX variant named WebTeX


+

44. LaTeX on Web pages (Steve Cheng) A JavaScript program for translating LaTeX into MathML for rendering +on the web.


+

45. jsMath (Davide P. Cervone) A JavaScript program for rendering LaTeX on the web.

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn54.html b/support/TeX4ht/doc/mn54.html new file mode 100644 index 0000000000..cb698dd6b1 --- /dev/null +++ b/support/TeX4ht/doc/mn54.html @@ -0,0 +1,74 @@ + + + + + + + + + + + + + +

1. Gf (Gary Houston) SGML to LaTeX


+

2. Htex (Toby Thurston) HTML to LaTeX


+

3. HTMLtoLaTeX (Michal Kebrt) A Java program


+

4. HTML2LaTeX (Davide Cervone & Jeffrey Schaefer, Geometry Center) A Perl script for converting HTML into +LaTeX


+

5. HTML2LaTeX (Nathan Torkington) A C-program relying on the HTML parser of the NCSA Mosaic HTML +browser.


+

6. HTML2LaTeX (Peter Thatcher) A Perl script for converting HTML into LaTeX


+

7. HTML2TeX (Frans J. Faase) C macros for converting from HTML 2 to LaTeX


+

8. JadeTeX (Sebastian Rahtz) SGML to TeX using DSSSL Formatting Objects and the Jade program of James +Clark


+

9. Passive TeX (Sebastian Rahtz) XML to LaTeX using XSL Formatting Objects


+

10. SGML2TeX (Peter Flynn) A PCL (Personal Computer Language, an interpreted language for DOS) program


+

11. TeXML (Doug Lovell) A JAVA translator from TeXML-conforming XML into TeX.


+

12. TeXML (Oleg Paraschenko) A Perl translator from TeXML-conforming XML into TeX.


+

13. Word-to-LaTeX (Michal Kebrt) A C# program running on Windows with Microsoft Word installed.


+

14. Writer2LaTeX (Henrik Just) A Java application for translation OpenOffice documents into LaTeX


+

15. W2LTX (Ingo H. de Boer) A mostly Unix based API for translating MS Word documents to LaTeX.


+

16. XMLTeX (David Carlisle) A system for typesetting XML files with TeX.


+

17. Brute Force

+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn55.html b/support/TeX4ht/doc/mn55.html new file mode 100644 index 0000000000..d2b09bdbc5 --- /dev/null +++ b/support/TeX4ht/doc/mn55.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + + +

1. Dvi2bitmap (Norman Gray) A DVI to GIF and XBM translator.


+

2. Dvi2Svg (Adrian Frischauf) A DVI to SVG translator.


+

3. Dvipdfm (Mark A. Wicks) A DVI to PDF translator.


+

4. dvipng (Jan-Ake Larsson) A DVI to PNG and GIF convertor. It supports PostScript inclusion.


+

5. DviSvg (Rudolf Sabo) A DVI to SVG translator. +


+

6. DviSvgm (Martin Gieseking) A DVI to SVG translator.


+

7. GrindEQ () Converter from LaTeX equations to MS Word and backward.


+

8. MimeTeX (John Forkosh) A server side parses for LaTeX math expressions, emitting either mime xbitmaps or gif +images of them


+

9. ltx2rtf (Daniel Taupin) LaTeX to MicroSoft Word (rtf: Rich Text Format)


+

10. PdfTeX (Han The Thanh) An extension of the TeX compiler offering native output for the Portable Document +Format (pdf) output.


+

11. LaTeX to ... Convert to HTML, then according to the target +

Text
+Save the view of the outcome on a text-based browser (e.g., lynx -dump foo.html > foo.txt, or w3m; the latter +one might treat tables better)
Word
+Word, and some other word processors, can load HTML files. The ‘uxhlatex’ is probably the best setting of TeX4ht +for such translations.
+ +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn56.html b/support/TeX4ht/doc/mn56.html new file mode 100644 index 0000000000..bab5cdc03d --- /dev/null +++ b/support/TeX4ht/doc/mn56.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + +
+

Generated August 24, 2020 - tex4ht home page

+ diff --git a/support/TeX4ht/doc/mn5x.png b/support/TeX4ht/doc/mn5x.png new file mode 100644 index 0000000000..9c1c72e4f6 Binary files /dev/null and b/support/TeX4ht/doc/mn5x.png differ diff --git a/support/TeX4ht/doc/mn6x.png b/support/TeX4ht/doc/mn6x.png new file mode 100644 index 0000000000..0fec33a918 Binary files /dev/null and b/support/TeX4ht/doc/mn6x.png differ diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog new file mode 100644 index 0000000000..5f18fca4c1 --- /dev/null +++ b/support/TeX4ht/source/ChangeLog @@ -0,0 +1,4216 @@ +2021-05-02 Karl Berry + + * Makefile (diff-src, install-src, list-src): new targets + to handle source files, found via svn status -v. + * README: update. + * archive/: move Makefile.exp and extra-bin/fls* here, + so we don't install them as current source files. + Still hope to use them one day. + + * tex4ht-4ht.tex (polyglossia.4ht, tuenc-xetex-input.4ht): 2021. + (aa.4ht): \write version. + +2021-04-30 Michal Hoftich + + * tex4ht-mathml.tex (mathml.4ht): added special group in order + to support subscripts in upright Greek characters. + https://tex.stackexchange.com/a/595005/2891 + * tex4ht-mathml.tex (mathml.4ht): added special group to + \math commands, in order to support their use in subscripts + and superscripts without extra groups in TeX documents. + * tex4ht-4ht.tex (beamer.4ht), + tex4ht-html4.tex (html4.4ht): modernized Beamer support. + +2021-04-29 Michal Hoftich + + * tex4ht-mathml.tex (mathml.4ht): keep some Greek characters upright. + https://tex.stackexchange.com/a/595005/2891 + +2021-04-27 Karl Berry + + * Makefile (inst-check-files): new target. + +2021-04-27 Michal Hoftich + + * tex4ht-4ht.tex (hyperref.4ht): fixed issues with nameref when + hyperref was loaded from class files. + https://puszcza.gnu.org.ua/bugs/index.php?508 + +2021-04-25 Michal Hoftich + + * tex4ht-4ht.tex (babel.4ht, latex.4ht, lfeenc.4ht, plain.4ht, + polyglossia.4ht, tuenc-xetex-input.4ht): use \ht:special instead of + \special. + * tex4ht-4ht.tex (latex.4ht, plain.4ht): \:nbsp should output + nonbreaking space inside picture. + * tex4ht-html4.tex (html4.4ht): test for \Picture inside \a:HChar. + * tex4ht-unicode.tex (unicode.4ht): use correct definition of \:nbsp. + * tex4ht-html4.tex (html4.4ht): use \:nbsp in listings configurations. + * tex4ht-4ht.tex (listings.4ht): fixed configurations in order to + support \Picture*. (Thanks to Linas Stonys). + +2021-04-22 Michal Hoftich + + * tex4ht-4ht.tex (listings.4ht): insert closing b:lstlinline + configuration really after group. (Thanks to Linas Stonys). + * tex4ht-html4.tex (html4.4ht): add newlines after
tags in + listings environment. + +2021-04-17 Karl Berry + + * Makefile (diff-copyright, inst-check-version): new targets + for consistency checking. + + * tex4ht-4ht.tex (endnotes, svg.4ht), + * tex4ht-cond4ht.tex (mktex4ht.4ht), + * tex4ht-html5.tex (html5.4ht), + * tex4ht-info.tex (info4ht.4ht), + * tex4ht-mathml.tex (html-mml.4ht, mathml.4ht), + * tex4ht-unicode.tex (unicode.4ht): copyright 2021. + +2021-04-16 Karl Berry + + * tex4ht-docbook.tex (docbook.4ht), + * tex4ht-ooffice.tex (ooffice.4ht), + * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht), + * tex4ht-html4.tex (html4-math.4ht, html4.4ht), + * tex4ht-4ht.tex (tikz-hooks.4ht): copyright 2021. + +2021-04-16 Michal Hoftich + + * tex4ht-4ht.tex (tikz-hooks.4ht): load dvisvgm4ht driver by default. + * tex4ht-4ht.tex (chessboard.4ht): added support for the + chessboard package. + +2021-04-15 Michal Hoftich + + * tex4ht-4ht.tex (caption.4ht): fix for TOC handling. + https://tex.stackexchange.com/a/593069/2891 + +2021-04-11 Michal Hoftich + + * tex4ht-html4.tex (html4-math.4ht): fixed paragraph handling for + eqnarray. + https://tug.org/pipermail/tex4ht/2021q2/002949.html + +2021-04-07 Michal Hoftich + + * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): fixed configurations for + gather and gather*. + https://tex.stackexchange.com/a/591806/2891 + +2021-03-30 Michal Hoftich + + * tex4ht-4ht.tex (endnotes.4ht): don't use math mode to print + superscripts. https://tex.stackexchange.com/q/590565/2891 + +2021-03-27 Michal Hoftich + + * tex4ht-ooffice.tex (ooffice.4ht): removed space ignoring + specials from \footnotemark and \foontotetext, they caused removal + of all spaces from the document when only \footnotetext is used. + https://tug.org/pipermail/tex4ht/2021q1/002927.html + +2021-03-25 Michal Hoftich + + * tex4ht-4ht.tex (parallel.4ht), + * tex4ht-html4.tex (html4.4ht): added support for the parallel package. + +2021-03-06 Michal Hoftich + + * tex4ht-sty.tex (tex4ht.sty): preparing for a new LaTeX release, where + \everypar will be patched by LaTeX kernel. + https://puszcza.gnu.org.ua/bugs/?477 + * tex4ht-4ht.tex (caption.4ht): prevent expansion of macros + written to TOC by the \caption command. + https://tug.org/pipermail/tex4ht/2021q1/002912.html + * tex4ht-html4.tex (html4.4ht): use graphics- option value in PDF + end EPS conversion. + https://tex.stackexchange.com/a/586096/2891 + +2021-03-04 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): close paragraph before tabularx + environment. https://tex.stackexchange.com/a/585797/2891 + +2021-03-02 Michal Hoftich + + * tex4ht-4ht.tex (titlesec.4ht): prevent duplicate entries in TOC. + https://tex.stackexchange.com/a/585479/2891 + * tex4ht-4ht.tex (biblatex.4ht): don't redefine \nolinkurl. + https://tex.stackexchange.com/a/585521/2891 + +2021-02-25 Michal Hoftich + + * tex4ht-4ht.tex (biblatex.4ht): check for existence of \TE@hook + before redefine. https://tex.stackexchange.com/a/584949/2891 + +2021-02-18 Michal Hoftich + + * tex4ht-fonts-noncjk.tex ( + tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/cyrillic/cmcyr/cmcbx.htf + ): fixed wrong character. + https://tug.org/pipermail/tex4ht/2021q1/002904.html + * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): fix \( and \) in + sectioning commands. https://tex.stackexchange.com/a/583946/2891 + +2021-02-14 Michal Hoftich + + * tex4ht-4ht.tex (subcaption.4ht, caption.4ht), + * tex4ht-html4.tex (html4.4ht), + * tex4ht-html5.tex (html5.4ht): added support for the subcaption + package, fixed support subfloat captions. + https://tex.stackexchange.com/q/582846/2891 + +2021-02-10 Michal Hoftich + + * tex4ht-4ht.tex (svg.4ht): added support for image dimension + specification. https://tex.stackexchange.com/a/582861/2891 + +2021-02-08 Michal Hoftich + + * tex4ht-docbook.tex (docbook.4ht): start new paragraph after + \maketitle. https://github.com/michal-h21/make4ht/issues/44 + * tex4ht-docbook.tex (docbook.4ht): fixed footnote handling. + https://github.com/michal-h21/make4ht/issues/45 + * tex4ht-docbook.tex (docbook.4ht): added \textsubscript and + \textsuperscript support. + +2021-02-07 Michal Hoftich + + * tex4ht-4ht.tex (exerquiz.4ht, exerquiz-hooks.4ht, usepackage.4ht), + * tex4ht-html4.tex (html4.4ht): fixed exerquiz package support. + +2021-02-06 Michal Hoftich + + * tex4ht-4ht.tex (latex.4ht), + * tex4ht-unicode.tex (unicode.4ht), + * tex4ht-mathml.tex (mathml.4ht): use \protect in \:nbsp and + similar commands that use \leavevmode internally. + +2021-02-03 Michal Hoftich + + * tex4ht-4ht.tex (nameref.4ht): fix for \autoref and the Caption + package. https://tex.stackexchange.com/a/581856/2891 + +2021-01-30 Michal Hoftich + + * tex4ht-html4.tex (html4-math.4ht): removed most of the + configuration for MathJax, it was not needed and could cause + problems in some cases. https://github.com/michal-h21/make4ht/issues/42 + +2021-01-29 Michal Hoftich + + * tex4ht-4ht.tex (biblatex.4ht): the previous fix caused other + issues. We must define \TE@hook depending on the presence of Hyperref. + +2021-01-28 Michal Hoftich + + * tex4ht-4ht.tex (biblatex.4ht): removed definition of \TE@hook. + It caused some BibLaTeX code not to be executed and compilation + failed in some cases. + +2021-01-27 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht), + * tex4ht-html5.tex (html5.4ht): start new paragraph after abstracts. + +2021-01-26 Michal Hoftich + + * tex4ht-4ht.tex (gloss-french.4ht): fix for \nobreakspace error with + characters made active in French Polyglossia. + https://tex.stackexchange.com/a/580505/2891 + +2021-01-24 Michal Hoftich + + * tex4ht-4ht.tex (latex.4ht): added support for environment hooks. + https://puszcza.gnu.org.ua/bugs/?477 + * tex4ht-4ht.tex (article.4ht, report.4ht): added support for abstract + titles. + * tex4ht-html4.tex (html4.4ht), + * tex4ht-html5.tex (html5.4ht): fixed support for abstracts. + * tex4ht-4ht.tex (memoir.4ht, abstract.4ht), + * tex4ht-html4.tex (html4.4ht), + * tex4ht-html5.tex (html5.4ht): added support for abstracts in Memoir. + https://tex.stackexchange.com/a/579953/2891 + * tex-html5.tex (html5.4ht): added more sections and chapters to + make the source more readable. + +2021-01-21 Michal Hoftich + + * tex4ht-4ht.tex (usepackage.4ht, newcomputermodern-hooks.4ht): + fix for the newcomputermodern package. + +2021-01-12 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): add anchor for \label commands in + \endnote. https://tex.stackexchange.com/a/578349/2891 + +2021-01-09 Michal Hoftich + + * tex4ht-html4.tex (html4-math.4ht): fixed display math + configuration for Amsmath. It supports the split environment now. + https://tug.org/pipermail/tex4ht/2021q1/002856.html + * tex4ht-html4.tex (html4.4ht): removed cellspacing and cellpading + attributes from most tables. They are deprecated. + https://tex.stackexchange.com/a/578224/2891 + +2021-01-07 Michal Hoftich + + * tex4ht-ooffice.tex (ooffice.4ht): don't use \@namedef, in order + to support plain. + * tex4ht-html4.tex (html4.4ht): configure Plain accents for long umlaut + \H. + * tex4ht-ooffice.tex (ooffice.4ht): configure accents for Plain TeX. + * tex4ht-ooffice.tex (ooffice.4ht): define page dimensions for + Plain TeX. + * tex4ht-ooffice.tex (ooffice.4ht): added configuration for + leftline and rightline. Even for Plain TeX. + +2021-01-03 Michal Hoftich + + * tex4ht-fonts-spectral.tex: added support for the Spectral font. + https://puszcza.gnu.org.ua/bugs/?497 + +2021-01-02 Michal Hoftich + + * tex4ht-sty.tex (tex4ht.sty): fixed \AtBeginDocument issues. + +2021-01-01 Michal Hoftich + + * tex4ht-sty.tex (tex4ht.sty): emulate \AtBeginDocument in .4ht files. + * tex4ht-4ht.tex (hyperref-hooks.4ht, hyperref.4ht, nameref.4ht): + fix for issues with \AtBeginDocument. + https://puszcza.gnu.org.ua/bugs/index.php?496 + +2020-12-25 Michal Hoftich + + * tex4ht-sty.tex (tex4ht.sty): use the new LaTeX hook system to execute + \Configure{AtBeginDocument} + * tex4ht-4ht.tex (mathtools.4ht): the code added yesterday is now + unnecessary. + https://puszcza.gnu.org.ua/bugs/?495 + https://tex.stackexchange.com/a/576267/2891 + +2020-12-24 Michal Hoftich + + * tex4ht-4ht.tex (mathtools.4ht): load graphicx package. + https://puszcza.gnu.org.ua/bugs/?495 + +2020-12-13 Karl Berry + + * tex4ht-html4.tex : remove spurious
+ from \Configure{signature}, causing blank lines after each + \makesignature element. + (.makesignature): reduce left margin to 4em. + (.signaturemark): hang diamond to left with magic number. + * tex4ht-4ht.tex (ltugboat.4ht): \InputIfFileExists{tugboat.dates} + for production TUGboat runs. + (tugboat.4ht, ltugboat-a.4ht, ltugproc{,-a}.4ht): minimize header. + +2020-12-03 Michal Hoftich + + * tex4ht-4ht.tex (tcolorbox.4ht), + tex4ht-html4.tex (html4.4ht): added support for the tcolorbox package. + https://tex.stackexchange.com/a/573314/2891 + +2020-11-29 Michal Hoftich + + * tex4ht-ooffice.tex (ooffice.4ht): simplified configuration of + \paragraph-like commands. Provided configuration for \paragraph, + \paragraph*, \subparagraph and \subparagraph*. + https://puszcza.gnu.org.ua/bugs/?491 + +2020-11-27 Michal Hoftich + + * tex4ht-ooffice.tex (ooffice.4ht): don't remove footcite support for + biblatex-dw. + https://puszcza.gnu.org.ua/bugs/index.php?492 + * tex4ht-ooffice.tex (ooffice.4ht): fixed paragraph handling for + csquotes quotation environments. + https://puszcza.gnu.org.ua/bugs/index.php?490 + * tex4ht-html4.tex (html4.4ht): use
element for quotation + environments. + +2020-11-26 Michal Hoftich + + * tex4ht-4ht.tex (csquotes.4ht), + tex4ht-html4.tex (html4.4ht), + tex4ht-ooffice.tex (ooffice.4ht): support for csquotes quotation + environments. + https://puszcza.gnu.org.ua/bugs/?490 + * tex4ht-ooffice.tex (ooffice.4ht): support for \subsubsection and + \paragraphs in the scrbook class. + https://puszcza.gnu.org.ua/bugs/?491 + +2020-11-23 Karl Berry + + * tex4ht-mkht.tex (texinfo): use etex rather than tex. + (\Echooff, \echoOff, ): new @echo off string. + (): use it. + (\make): setup. + (, ): define \Echooff as empty or "@echo off". + * Makefile (user_bin): new variable to allow per-user addition to PATH. + +2020-11-21 Michal Hoftich + + * tex4ht-4ht.tex (caption.4ht): fixed spurious separator between + caption number and text. + https://tex.stackexchange.com/q/571684/2891 + +2020-11-20 Michal Hoftich + + * tex4ht-4ht.tex (titlesec.4ht): fixed paragraph handling in sectioning + commands. + +2020-11-12 Michal Hoftich + + * tex4ht-fonts-noncjk.tex( + ./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/bera/fvmr8t.htf + ): added support for frmr8t font. + +2020-11-09 Michal Hoftich + + * tex4ht-html4 (html4-math.4ht): fixed paragraph opening after + \PicDisplay. Also don't use the obsolete
element. + https://tex.stackexchange.com/a/570077/2891 + +2020-11-08 Karl Berry + + * Makefile (diff_files): also filter-out ht.{unix,bat}. + +2020-11-08 Michal Hoftich + + * tex4ht-html4 (html4.4ht): fixed paragraph opening after Theorem + environment. + * tex4ht-html4 (html4.4ht): emulate \subsection handling in Amsart + class. + https://tex.stackexchange.com/q/569955/2891 + +2020-10-30 Karl Berry + + * tex4ht-mkht.tex (unix line): use set -e and exec + + * tex4ht-mkht.tex: more copyright 2020, https for tug.org. + * Makefile (diff-scripts, install-scripts): new targets. + (install_data, inst_dir_scripts): new variables. + (tex4ht_mkht_derived): add ht.unix and ht.bat (lots more). + +2020-10-25 Michal Hoftich + + * tex4ht-mkht.tex (all .unix and .bat files that use plain TeX): + use etex in shell scripts for plain TeX. + * tex4ht-4ht.tex (plain.4ht): declare configurations for spacing + commands in plain TeX. + +2020-10-18 Michal Hoftich + + * tex4ht-4ht.tex (minted-sty-hooks.4ht): fixed the breaklines option + handling. + +2020-10-17 Michal Hoftich + + * tex4ht-4ht.tex (usepackage.4ht,graphics-hooks.4ht): adapted Graphics, + * tex4ht-4ht.tex (usepackage.4ht,xcolor-hooks.4ht): adapted Xcolor, + * tex4ht-4ht.tex (usepackage.4ht,caption-hooks.4ht): adapted Caption, + * tex4ht-4ht.tex (usepackage.4ht,pdfbase-hooks.4ht): adapted Pdfbase, + * tex4ht-4ht.tex (usepackage.4ht,tikz-hooks.4ht): adapted Tikz, + * tex4ht-4ht.tex (usepackage.4ht,fontspec-hooks.4ht, + polyglossia-hooks.4ht): adapted Fontspec and Polyglossia, + * tex4ht-4ht.tex (usepackage.4ht,ctex-hooks.4ht): adapted Ctex, + * tex4ht-4ht.tex (usepackage.4ht,xecjk-hooks.4ht): adapted xeCJK, + * tex4ht-4ht.tex (usepackage.4ht,savetrees-hooks.4ht): adapted + savetrees, + * tex4ht-4ht.tex (usepackage.4ht,expl3-hooks.4ht): adapted expl3, + * tex4ht-4ht.tex (usepackage.4ht,showframe-hooks.4ht): adapted + showframe, + * tex4ht-4ht.tex (usepackage.4ht,esopic-hooks.4ht): adapted eso-pic, + * tex4ht-4ht.tex (usepackage.4ht,xrhyper-hooks.4ht): adapted xr-hyper, + * tex4ht-4ht.tex (usepackage.4ht,xr-hooks.4ht): adapted xr, + * tex4ht-4ht.tex (usepackage.4ht,fancyhdr-hooks.4ht): adapted fancyhdr, + * tex4ht-4ht.tex (usepackage.4ht,cleveref-hooks.4ht): adapted cleveref, + * tex4ht-4ht.tex (usepackage.4ht,imakeidx-hooks.4ht): adapted imakeidx, + for the new hook mechanism. + * tex4ht-4ht.tex: added tutorial on how to write early package patching + the new package hook mechanism. + +2020-10-16 Michal Hoftich + + * tex4ht-cond4ht.tex (cond4ht.4ht, docbook.4ht, html0.4ht, + html32.4ht, html4.4ht, mktex4ht.4ht, ooffice.4ht, ooimpress.4ht, + tei.4ht): strip leading quotes from files that we try to find + .4ht files for. https://puszcza.gnu.org.ua/bugs/?486#postcomment + * tex4ht-4ht.tex (catchfile-sty-hooks.4ht): removed unnecessary file. + * tex4ht-sty.tex (tex4ht.sty): changed the early package hook + mechanism to speed up things. + https://puszcza.gnu.org.ua/bugs/?486#postcomment + * tex4ht-4ht.tex (usepackage.4ht): adapded Minted for the new + package hook mechanism. + +2020-10-08 Michal Hoftich + + * tex4ht-sty.tex (tex4ht.sty): new mechanism for early package + redefinitions. + * tex4ht-4ht.tex (usepackage.4ht, + minted-sty-hooks.4ht, + catchfile-sty-hooks.4ht): added early package redefinitions for Minted + and Catchfile packages. + https://puszcza.gnu.org.ua/bugs/?486 + +2020-10-05 Michal Hoftich + + * tex4ht-4ht.tex (biblatex.4ht): fix for ithenelse patching error. + * tex4ht-4ht.tex (usepackage.4ht): fix for Polyglossia fatal error. + +2020-10-03 Michal Hoftich + + * tex4ht-4ht.tex (fancyvrb.4ht): fixed spurious blank lines that were + sometimes produced. + * tex4ht-4ht.tex (latex.4ht): fixed \,, \;, \: and other similar + commands. Their definition had been added to LaTeX kernel and + their behaviour changed, resulting in possible fatal error. + https://tug.org/pipermail/tex4ht/2020q4/002735.html + +2020-09-28 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): use
 element for fancy verbatim.
+	https://tex.stackexchange.com/q/564532/2891
+	* tex4ht-4ht.tex (minted.4ht),
+	* tex4ht-html4.tex (html4.4ht): added support for colored Minted
+	listings. https://tex.stackexchange.com/a/564579/2891
+
+2020-09-22  Michal Hoftich  
+
+	* tex4ht-4ht (latex.4ht, subscript.4ht): patch \@textsuperscript and
+	\@textsubscript unconditionally.
+	https://puszcza.gnu.org.ua/bugs/index.php?477
+
+2020-09-21  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): use \providecommand instead of
+	\newcommand in order to prevent errors when eso-pic package is required
+	multiple times.
+
+2020-09-18  Michal Hoftich  
+
+	* tex4ht-unicode.tex (unicode.4ht): don't use combining characters for
+	MathML accents.
+	https://puszcza.gnu.org.ua/bugs/?483
+
+2020-09-13  Michal Hoftich  
+
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): removed space
+	handling regular expressions, they seem to be unnecessary with
+	current MathJax.
+
+2020-09-08  Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): removed some weird code from
+	configuration for \text.. commands. It produced invalid MathML.
+
+2020-09-02  Michal Hoftich  
+
+	* tex4ht-4ht.tex(usepackage.4ht, usepackage-fontspec.4ht):
+	fix for the development version of LaTeX.
+	https://puszcza.gnu.org.ua/bugs/?477
+	* tex4ht-html4.tex (html4.4ht): fixed line breaks in verbatim.
+	https://tex.stackexchange.com/a/561167/2891
+
+2020-09-01  Michal Hoftich  
+
+	* tex4ht-fonts-ebgaramond.tex,
+	* tex4ht-fonts-fourier.tex,
+	* tex4ht-fonts-libertine.tex,
+	* tex4ht-fonts-newtx.tex: updated compilation instructions.
+	
+2020-08-31  Karl Berry  
+
+	* tex4ht-fonts-noncjk.tex (bchb8t): remove spurious Unicode in
+	htfcss line.
+
+	* tex4ht-fonts-ebgaramond.tex,
+	* tex4ht-fonts-fourier.tex,
+	* tex4ht-fonts-libertine.tex,
+	* tex4ht-fonts-newtx.tex: license, copyright year.
+
+2020-08-31  Michal Hoftich  
+
+	* tex4ht-fonts-fourier.tex,
+	* Makefile: generate files for Fourier fonts.
+	https://github.com/michal-h21/make4ht/issues/35
+
+2020-08-27  Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): use some code from mathml- option by
+	default.
+	https://github.com/michal-h21/make4ht/issues/34
+	https://puszcza.gnu.org.ua/bugs/?278
+
+2020-08-19  Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): fixed fence rendering in MathML.
+	https://puszcza.gnu.org.ua/bugs/?481
+
+2020-07-30  Michal Hoftich  
+
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): remove spurious colon.
+	https://tex.stackexchange.com/a/555755/2891
+	https://puszcza.gnu.org.ua/bugs/?479
+
+2020-07-28  Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty),
+	* tex4ht-4ht.tex (latex.4ht),
+	* Makefile: use new LaTeX hook system for patching \begin{document}
+	when possible.
+	https://puszcza.gnu.org.ua/bugs/?477#postcomment
+	
+2020-07-27  Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty): don't patch \shipout command.
+	https://listserv.uni-heidelberg.de/cgi-bin/wa?A2=LATEX-L;d8558dd0.2007&S=
+
+2020-07-26  Michal Hoftich  
+
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht),
+	* tex4ht-html4.tex (html4-math.4ht): added MathJaxConfig configuration.
+	https://github.com/michal-h21/make4ht/issues/33
+
+2020-07-26  Karl Berry  
+
+	* Makefile (diff-htfonts): rename from diff-ht-fonts, and also
+	generate /tmp/htnew for new files. Other small name changes.
+
+2020-07-25  Michal Hoftich  
+
+	* tex4ht-fonts-newtx.tex,
+	* Makefile: generate files for Newtx fonts
+	https://puszcza.gnu.org.ua/bugs/index.php?236#postcomment
+
+2020-07-18  Karl Berry  
+
+	* Makefile (update):  missing ) on "$(dest_src/", causing 
+	"unterminated variable reference".
+	(destdir): change to update.dir from .., to make it clearer
+	this is a test target not in regular use.
+
+2020-07-17 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): \rowcolor should have precedence over
+	\columncolor in colortbl support.
+	https://puszcza.gnu.org.ua/bugs/?163
+	* tex4ht-html4.tex (html4.4ht): fixed Koma Script \paragraph.
+	https://puszcza.gnu.org.ua/bugs/?176
+	* tex4ht-html4.tex (html4.4ht): allow linebreak in long URLs.
+	https://puszcza.gnu.org.ua/bugs/index.php?301
+
+2020-07-16 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): fixed eso-pic support.
+	https://puszcza.gnu.org.ua/bugs/?231
+	* tex4ht-4ht.tex (article.4ht,book.4ht,report.4ht,
+	scrbook.4ht,scrreprt.4ht): fixed tocdepth handling.
+	https://puszcza.gnu.org.ua/bugs/?228
+
+2020-07-13 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht, ctex.4ht): added support for the
+	ctex package.
+	https://github.com/michal-h21/make4ht/issues/29
+
+2020-07-10 Michal Hoftich  
+
+	* tex4ht-tei.tex (tei.4ht): declare encoding in 
+	* tex4ht-fonts-modern.tex (
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/rm-lm.htf
+	): added declaration for rm-lmcsc.
+	* tex4ht-fonts-noncjk.tex (
+	DejaVuSansCondensed-Bold-tlf-t1.htf
+	DejaVuSansCondensed-BoldOblique-tlf-t1.htf
+	DejaVuSansCondensed-Oblique-tlf-t1.htf
+	DejaVuSansCondensed-tlf-t1.htf
+	): these fonts are not small caps (thanks to Linas Stonys).
+
+
+2020-07-09 Michal Hoftich  
+
+	* tex4ht-tei.tex (tei.4ht): defined \ifHCond conditional.
+	* tex4ht-tei.tex (tei.4ht): defined basic HTF font support.
+
+2020-07-07 Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex (
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/bitstrea/charter/bchr8r 
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/bitstrea/charter/bchb8t
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/bitstrea/charter/bchri8t
+	): fixed htfcss declarations (thanks to Linas Stonys)
+
+2020-07-02 Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): don't use deprecated 
+	element for \left and \right.
+
+2020-07-01 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): fixed spacing after \LaTeX and \TeX.
+	https://puszcza.gnu.org.ua/bugs/?162
+
+2020-06-30 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): don't override HTML charset when it is
+	already set.
+	https://puszcza.gnu.org.ua/bugs/index.php?432
+	* tex4ht-html4.tex (html4.4ht): use monospaced font for fancyvrb
+	and alltt environments.
+	https://puszcza.gnu.org.ua/bugs/?211
+
+2020-06-29  Ulrich M\"uller  
+
+	* tex4ht-htcmd.c (err_i, err_arg): use ("%s", warn_err_mssg[n])
+	 for the sake of -Werror=format-security.
+	 http://puszcza.gnu.org.ua/bugs/?472
+
+2020-06-23 Michal Hoftich  
+
+	* tex4ht-docbook.tex (docbook.4ht): don't print filename in BibLaTeX
+	bibliography.
+	https://github.com/michal-h21/make4ht/issues/28
+
+2020-06-21 Michal Hoftich  
+
+	* tex4ht-docbook.tex (docbook.4ht): support for BibLaTeX bibliography.
+	https://github.com/michal-h21/make4ht/issues/28
+
+2020-06-19 Michal Hoftich  
+
+	* tex4ht-4ht.tex (memoir.4ht): disable warning and error messages about
+	obsolete font commands.
+	https://github.com/michal-h21/make4ht/issues/27
+
+2020-06-18 Michal Hoftich  
+
+	* tex4ht-docbook.tex (docbook.4ht): fixed output from \maketitle
+	command in accordance with the current Docbook documentation.
+	https://github.com/michal-h21/make4ht/issues/27
+
+2020-06-16 Michal Hoftich  
+
+	* tex4ht-4ht.tex (longtable.4ht): fixed LOT for longtable + fixed
+	missing colon in caption.
+	https://puszcza.gnu.org.ua/bugs/?313
+
+2020-06-15  Vincent Bela\"iche  
+
+	* Makefile (do_java): Add comment about do_java=0|1 needing
+	tex4ht-dir.tex refresh.
+	(xtpipe_jar): Replace java_or_not by xtpipes_jar, as the only
+	purpose is to control making of xtpipes.jar, and transpose the
+	dependency between in-tex and in-make, i.e., xtpipes.jar is needed
+	only when java is compiled in tex.
+	Replace all the "ifeq ($(java_in_make),true)" by "ifneq
+	($(do_java),2)".
+	(xtpipes_derived): Add $(xtpipes_jar).
+	($(tex4ht_jsml_xtpipes_derived)): Replace $(call
+	java_or_not,$(wd)/bin/xtpipes.jar) by $(xtpipes_jar) in the
+	dependency list, so there is a dependency only when compiling java
+	in tex.
+	(jar): Suppress producing xtpipes.jar, this is needed only for
+	compiling in tex.
+
+2020-06-13  Vincent Bela\"iche  
+
+	* xtpipes.tex,
+	* tex4ht-xhtmml-xtpipes.tex,
+	* tex4ht-xhtml-xtpipes.tex,
+	* tex4ht-oo-xtpipes.tex,
+	* tex4ht-jsml-xtpipes.tex,
+	* tex4ht-javahelp-xtpipes.tex,
+	* tex4ht-html-speech-xtpipes.tex,
+	* tex4ht-docbook-xtpipes.tex: Make all java system calls
+	conditional on "\ifdojava" switch.
+	* tex4ht-dir.m4: Add a "\ifdojava" switch.
+	* Makefile: Refactor the "do_java" option so that, and propagate
+	the option to "tex4ht-dir.tex" via "tex4ht-dir.m4".
+
+2020-06-11  Karl Berry  
+
+	* Makefile (all): run checklog.lua here, instead of in
+	individual rules.
+	* texlog.lua: fiddle with formatting.
+
+2020-06-10 Michal Hoftich  
+
+	* checklog.lua: pass checked log file name to the log parser function.
+
+2020-06-07  Karl Berry  
+
+	* Makefile (tex4ht_fonts_modern_derived): evidently lm-htf.tex
+	is created from tex4ht-fonts-modern.tex, not noncjk. It looks to
+	be a test file with no particul use, but ok, whatever. svn:ignore it.
+	(diff-ht-fonts): failed to uncomment the full diff rerun.
+	(diff_files): $(filter-out) various files in $(derived) that are
+	not installed under $(inst_dir_4ht).
+	(tex4ht_fonts_cjk_derived, tex4ht_fonts_cjk_utf8_derived): define
+	as the first .htf file created, instead of the .html, since the
+	.html is not installed.
+
+2020-06-07 Michal Hoftich  
+
+	* checklog.lua: script for detection of errors in the log files.
+	* tex4ht-4ht.tex (amsart.4ht, amsproc.4ht): fixed horizontal mode
+	error when \dedication is used.
+	https://puszcza.gnu.org.ua/bugs/?469
+
+2020-06-06  Vincent Bela\"iche  
+
+	* xtpipes.tex (End document system call): Remove
+	-Xlint:deprecation from javac call.
+	(): Add xtpipes.XtpipesPrintWriter import.
+	(, <, ): Replace deprecated Integer/Boolean allocation with
+	new by call to static member function valueOf.
+
+2020-06-06  Karl Berry  
+
+	* Makefile: use htlatex instead of xhlatex throughout.
+	https://tug.org/pipermail/tex4ht/2020q2/002579.html
+
+	(diff-ht-fonts): more tweaks on the road to making the output more
+	easily usable.
+
+	(SearchFonts.java): disable dependency.
+	* tex4ht-fonts-noncjk.tex: document Michal's idea about about it.
+	https://tug.org/pipermail/tex4ht/2020q2/002578.html
+
+2020-06-05  Karl Berry  
+
+	* tex4ht-javahelp-xtpipes.tex: \input{tex4ht-dir}.
+
+2020-06-05  Vincent Bela\"iche  
+
+	* tex4ht-javahelp-xtpipes.tex,
+	* tex4ht-html-speech-xtpipes.tex: Remove reference to \XTPIPES lib
+
+2020-06-05  Karl Berry  
+
+	* Makefile (do_java): conditional to enable Java derivations
+	and compilations.
+	* Makefile.exp: move "experimental section" to here from Makefile.
+
+2020-06-05  Vincent Bela\"iche  
+
+	* tex4ht-docbook-xtpipes.tex,
+	* tex4ht-javahelp-xtpipes.tex,
+	* tex4ht-jsml-xtpipes.tex,
+	* tex4ht-oo-xtpipes.tex,
+	* tex4ht-xhtml-xtpipes.tex,
+	* tex4ht-xhtmml-xtpipes.tex: Replace absolute paths by macros
+	from tex4ht-dir.tex.
+
+	* tex4ht-html-speech-xtpipes.tex: Likewise replace absolute paths,
+	and ensure directory \TEXMFTEXivBIN exists.
+
+	* xtpipes.tex: Likewise replace absolute paths, and
+	change system calls so that javac input files are streamed from find.
+
+2020-06-04 Michal Hoftich  
+
+	* tex4ht-fonts-modern.tex: removed lot of duplicated .htf entries.
+	* tex4ht-fonts-modern.tex (txbtt8v, txbttsc8v, txbttsl8v, txtt8v,
+	txttsc8v, txttsl8v): new HTF files.
+	* tex4ht-fonts-noncjk.tex: renamed pxbsyc.htf to txbsyc.htf.
+
+2020-06-04  Karl Berry  
+
+	* tex4ht-fonts-modern.tex (lm-qxtt-LM-05): remove duplicate \AddFont.
+	(lm-qxtt-LM-05): move to after definition.
+	* tex4ht-fonts-noncjk.tex (txtt): \AddFont this instead of txb twice.
+	(zppleb7m): remove duplicate definition.
+	(pcrb): remove \AddFont in phvb section (correct the name, too).
+	(txbsyc): delete second spurious (alias) entry.
+	(ma1r8c, ma1r8t, ma1b8t): remove definitions since they were never
+	installed because their directory,
+        tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/monotype,
+        was not created (and the fonts are not free anyway).
+
+	* Makefile (SearchFonts.java, etc.): disable dependencies so as
+	not to uselessly remake everything when files are not in the right
+		place.
+
+2020-06-04  Vincent Bela\"iche  
+
+	* xtpipes.tex (\AddFileC): Remove appending slash to directory
+	argument, as it ends prematurely the \MakeDir loop by having an
+	unwanted // pattern in the path.
+
+2020-06-03 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4-math.4ht): handle nested math in amsmath
+	version of \[\].
+	https://tug.org/pipermail/tex4ht/2020q2/002561.html
+
+2020-06-02 Michal Hoftich  
+
+	* tex4ht-4ht.tex (latex.4ht): fixed bug in tabbing environment.
+	https://tug.org/pipermail/tex4ht/2020q2/002565.html
+
+2020-05-31  Vincent_Bela\"iche  
+
+	* tex4ht-dir.m4: new file, used to generate with m4:
+	* tex4ht-dir.tex: generate, with java-related directories too.
+	* Makefile (tex4ht-dir.tex): do the generation.
+	(dirs): new variable, list of dirs to substitute.
+	(common_no_cond_sty): add tex4ht-dir.tex.
+	(tex4ht_docbook_xtpipes_derived, many others): use new directory vars
+	for .java file locations, etc.
+	(xtpipes.jar, tex4ht.jar, jar): new targets.
+
+2020-05-31 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4-math.4ht): added default definition for
+	\:RestoreMathjaxCatcodes.
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): fix \sum in TOC.
+	https://puszcza.gnu.org.ua/bugs/index.php?468
+
+2020-05-27 Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex,
+	* tex4ht-fonts-modern.tex,
+	* tex4ht-fonts-4hf.tex (
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-qx/lm-qx.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/iwona/greek-iwona.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/libertine/fxlr-xl-03.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/libertine/fxlr-xl-ts1.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/lm-qxtt.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/lm-ts1.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/pxfonts/rpcxr.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/tibetan/ctib.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/tipa/xipx.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/txfonts/rtcxr.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/txfonts/rtcxss.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/txfonts/tcxb.htf
+	): fixed wrong XML entites. 
+	* tex4ht-4ht.tex (awesomebox.4ht),
+	* tex4ht-html4.tex (html4.4ht): basic support for the awesomebox
+	package.
+	https://tex.stackexchange.com/a/546570/2891
+
+2020-05-25 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): load Unicode definitions when script
+	option for language selection is used in Polyglossia.
+	https://github.com/reutenauer/polyglossia/issues/419
+
+2020-05-22 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht, caption.4ht): fixes for the
+	Caption package.
+	https://tex.stackexchange.com/q/545582/2891
+	* tex4ht-html4.tex (html4.4ht): use 
 element for the verbatim
+	environment.
+	* tex4ht-4ht.tex (amsart.4ht, amsbook.4ht, amsproc.4ht): fixed spurious
+	footnotes for \thanks command.
+
+2020-05-20 Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): added support for MW classess
+	in the ooffice output.
+
+2020-05-18 Michal Hoftich  
+
+	* tex4ht-4ht.tex (imakeidx.4ht): added support for the intoc option.
+	https://tex.stackexchange.com/a/543759/2891
+
+2020-05-05 Michal Hoftich  
+
+	* README: fixed location of xmllint and vcss commands.
+	https://puszcza.gnu.org.ua/bugs/?459
+
+2020-04-23 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): fix for interaction between
+	Cleveref and Hyperref.
+	https://tex.stackexchange.com/a/540277/2891
+
+2020-04-19 Michal Hoftich  
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): fixed support for `\ {`
+	https://tex.stackexchange.com/a/539677/2891
+	https://puszcza.gnu.org.ua/bugs/index.php?457
+
+2020-04-19 Michal Hoftich  
+
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): added support for \ln in
+	section titles.
+	https://puszcza.gnu.org.ua/bugs/?456
+
+2020-04-15 Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty): make \append:def and simillar commands
+	available in usepackage.4ht
+	* tex4ht-4ht.tex (usepackage.4ht): fixed TikZ externalization patching.
+	https://puszcza.gnu.org.ua/bugs/?451
+
+2020-04-13 Michal Hoftich  
+
+	* tex4ht-html4.tex(html4.4ht): removed CSS code that set left
+	margin for images in margins to 10%
+	* tex4ht-html5.tex (html5.4ht): fixed centering of images in floats and
+	figures.
+	https://tex.stackexchange.com/a/538431/2891
+
+2020-04-04 Michal Hoftich  
+
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): added
+	\fixtmathjaxsec command, prevented \left and \right from expansion.
+	https://puszcza.gnu.org.ua/bugs/?453
+
+2020-03-16  Karl Berry  
+
+	* tex4ht-docbook.tex,
+	* tex4ht-fonts-cjk-utf8.tex,
+	* tex4ht-fonts-cjk.tex,
+	* tex4ht-fonts-noncjk.tex,
+	* tex4ht-html4.tex (html4.4ht),
+	* tex4ht-html5.tex,
+	* tex4ht-javahelp.tex (javahelp.4ht),
+	* tex4ht-mkht.tex (mkht.4ht): use https://tug.org instead of http.
+	Only listed .4ht files updated in TeX Live, others will
+	have to come in time.
+
+2020-03-14 Michal Hoftich  
+
+	* tex4ht-4ht.tex (multicol.4ht): fixed paragraph handling.
+
+2020-03-12 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): block package showframe.
+	https://tug.org/pipermail/tex4ht/2020q1/002464.html
+	
+2020-03-09 Michal Hoftich  
+
+	* tex4ht-jats.tex (jats.4ht),
+	tex4ht-options.tex (tex4ht.4ht): still work in progress on JATS.
+
+2020-03-04 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4-math.4ht),
+	tex4ht-mathml.tex (html-mml.4ht): use MathJax 3
+	https://tug.org/pipermail/tex4ht/2020q1/002455.html
+
+2020-03-03 Michal Hoftich  
+
+	* tex4ht-jats.tex (jats.4ht),
+	tex4ht-options.tex (tex4ht.4ht): started to work on basic JATS support.
+
+2020-03-02 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): fixed patching of the
+	\usetikzpackage command.
+	https://puszcza.gnu.org.ua/bugs/?451#postcomment
+
+2020-02-28 Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht),
+	tex4ht-html4.tex (html4.4ht): do not use breakable space for the "\ "
+	command. It broke verbatim.
+	https://puszcza.gnu.org.ua/bugs/?449
+
+2020-02-26 Michal Hoftich  
+
+	* tex4ht-4ht.tex (latex.4ht, plain.4ht),
+	tex4ht-mathml.tex (mathml.4ht),
+	tex4ht-html4.tex (html4.4ht): use breakable space for the "\ " command.
+	https://puszcza.gnu.org.ua/bugs/?449
+
+2020-02-24 Michal Hoftich  
+
+	* tex4ht-oo-xtpipes.tex (oo-text.4xt): don't process 
+	elements using Xtpipes; it is handled better by make4ht.
+
+2020-02-17 Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty),
+	tex4ht-4ht.tex (usepackage-fontspec.4ht, usepackage.4ht): fixed
+	support for command patching in the document preamble. New
+	command provided: \:AtEndOfPackage.
+	https://puszcza.gnu.org.ua/bugs/?448
+
+2020-02-14 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): removed ignored letters from
+	\Configure{HAccent}.
+	https://puszcza.gnu.org.ua/bugs/?446
+
+2020-02-13 Michal Hoftich  
+
+	* tex4ht-4ht.tex (listings.4ht): added support for the
+	\lstlistoflistings command.
+	https://tex.stackexchange.com/a/528310/2891
+
+2020-02-09 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage-fontspec.4ht): don't block the
+	Fontenc package from loading, it caused another fatal issue with
+	Fonspec.
+
+2020-01-24 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): do not use 1.5 as default line height.
+	* tex4ht-4ht.tex (usepackage-fontspec.4ht): fixed more fatal
+	issues with Fontspec.
+
+2020-01-23 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage-fontspec.4ht): fix fatal error
+	with updated fontspec package.
+
+2020-01-22 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): use plain text for \TeX and
+	\LaTeX commands by default. Versions that try to emulate their
+	visual appearance in PDF can be requested using the "fancylogo"
+	option.
+
+	* tex4ht-html4.tex (html4.4ht): use 1.5 as default line height.
+
+	* tex4ht-fonts-cjk.tex (
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai62.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai77.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai66.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai68.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai08.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai29.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai64.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai87.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai88.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai48.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai43.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai34.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai04.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai10.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai32.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai37.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai55.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai11.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai47.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai27.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai61.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai09.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai83.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai82.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai31.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai19.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai54.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai76.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai94.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai06.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai12.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai84.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai28.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai80.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai40.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai58.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai60.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai75.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai49.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai24.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai79.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai50.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai86.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai53.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai44.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai07.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai41.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai20.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai71.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai13.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai03.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai67.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai65.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai05.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai93.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai21.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai74.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai17.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai15.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai38.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai70.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai42.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai14.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai85.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai18.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai25.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai91.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai72.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai23.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai33.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai46.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai22.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai36.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai02.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai51.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai52.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai16.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai35.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai01.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai30.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai92.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai57.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai63.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai39.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai81.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai45.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai73.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai89.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai69.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai56.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai90.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai78.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai26.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkkai/gbkkai59.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao69.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao55.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao54.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao42.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao68.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao17.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao25.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao61.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao06.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao62.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao91.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao92.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao26.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao36.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao49.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao56.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao20.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao87.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao39.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao80.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao63.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao23.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao77.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao84.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao78.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao19.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao18.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao51.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao76.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao71.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao16.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao59.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao94.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao40.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao47.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao09.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao70.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao24.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao37.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao08.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao35.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao75.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao02.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao83.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao74.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao50.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao89.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao64.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao28.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao79.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao88.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao01.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao66.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao38.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao90.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao52.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao57.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao34.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao41.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao27.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao32.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao73.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao04.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao43.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao12.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao53.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao13.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao46.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao65.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao58.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao60.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao45.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao22.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao86.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao03.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao48.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao07.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao82.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao11.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao67.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao85.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao33.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao44.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao30.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao72.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao10.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao05.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao15.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao93.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao21.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao14.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao81.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao31.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkyao/gbkyao29.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh20.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh55.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh29.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh54.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh82.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh26.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh24.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh03.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh53.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh68.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh10.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh02.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh75.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh92.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh73.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh38.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh63.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh49.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh84.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh56.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh04.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh60.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh34.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh15.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh65.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh59.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh07.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh32.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh52.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh85.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh70.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh40.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh39.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh19.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh61.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh22.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh06.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh74.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh13.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh86.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh48.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh12.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh71.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh16.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh90.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh37.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh87.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh05.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh78.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh81.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh25.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh41.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh69.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh94.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh33.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh30.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh51.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh77.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh47.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh58.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh93.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh18.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh09.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh76.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh80.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh57.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh01.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh89.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh66.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh21.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh42.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh27.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh44.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh88.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh46.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh67.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh62.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh23.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh79.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh72.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh14.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh11.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh28.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh50.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh35.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh31.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh91.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh43.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh36.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh83.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh08.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh64.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh17.htf
+	./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/gbk/gbkxh/gbkxh45.htf
+	): fixed more monospaced htf fonts.
+
+	* tex4ht-fonts-noncjk.tex (
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DroidSansMono-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/PTMono-BoldSlanted-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DejaVuSansMono-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DejaVuSansMono-Oblique-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DejaVuSansMono-Bold-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/PTMono-Slanted-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DroidSansMono-SmallCaps-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DejaVuSansMono-BoldOblique-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/PTMono-Regular-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DroidSansMono-Slanted-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/PTMono-Bold-tlf-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/DroidSansMono-Slanted-SmallCaps-t1.htf
+./tex4ht.dir/texmf/tex4ht/ht-fonts/alias/bera/fvmr8r.htf
+	): even more fixes for monospaced htf fonts.
+
+2019-12-30 Michal Hoftich  
+
+	* tex4ht-4ht.tex (extarticle.4ht, extbook.4ht, extletter.4ht):
+	disable huge font size in the document. It led to huge text
+	resulting from HTF fonts.
+	https://tex.stackexchange.com/q/522173/2891
+
+	* tex4ht-mathml.tex (mathml.4ht): redefined \int command to
+	produce the  element.
+	https://tex.stackexchange.com/q/522173/2891
+
+2019-12-29 Michal Hoftich  
+
+	* tex4ht-4ht.tex (amsmath.4ht),
+	tex4ht-mathml.tex (mathml.4ht): added support for the
+	\boldsymbol command.
+	https://tex.stackexchange.com/q/522173/2891
+
+	* tex4ht-mathml.tex (mathml.4ht): removed mathsize="big"
+	attribute, it is deprecated.
+
+2019-12-28 Michal Hoftich  
+
+	* tex4ht-unicode.tex (unicode.4ht),
+	tex4ht-mathml.tex (mathml.4ht): fixed math accents.
+	https://puszcza.gnu.org.ua/bugs/?444
+
+2019-12-23 Michal Hoftich  
+
+	* tex4ht-4ht.tex (footmisc.4ht): fixed support for the symbolic
+	footnote marks.
+	https://tex.stackexchange.com/a/521497/2891
+
+2019-12-20 Michal Hoftich  
+
+	* tex4ht-4ht.tex (biblatex.4ht): updated for the latest BibLaTeX
+	version.
+	http://puszcza.gnu.org.ua/bugs/?447
+
+2019-12-19 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): prevent the Caption package
+	from patching other packages. This can clash with TeX4ht
+	configurations.
+	https://tex.stackexchange.com/a/520996/2891
+
+	* tex4ht-4ht.tex (
+	aa.4ht,
+	acm_proc_article-sp.4ht,
+	amsart.4ht,
+	amsbook.4ht,
+	amsproc.4ht,
+	article.4ht,
+	book.4ht,
+	elsart.4ht,
+	listings.4ht,
+	longtable.4ht,
+	mwart.4ht,
+	mwbk.4ht,
+	mwrep.4ht,
+	report.4ht,
+	revtex4.4ht,
+	scrbook.4ht,
+	scrreprt.4ht
+	): Don't print caption label separator when the labels is empty.
+
+2019-12-17 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): fixed CSS code for \cmidrule
+	from Booktabs package.
+
+2019-12-16 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): added margins to 
and
+	elements.
+	* tex4ht-mathml.tex (mathml.4ht): add space after \tag* command.
+	* tex4ht-4ht.tex (amsmath.4ht): fixed support for the \tag* command.
+
+2019-12-15 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4-math.4ht),
+	tex4ht-mathml.tex (mathml.4ht): configure Amsmath \[ ... \] to
+	\begin{equation*} ... \end{equation*}
+	https://tex.stackexchange.com/q/520375/2891
+	* tex4ht-html4.tex (html4.4ht): use only spaces as separator between
+	paragraphs. Use the "p-indent" option to use text indents.
+
+2019-12-13 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): added p-indent and p-space
+	options. First one disables blank spaces between paragraphs, the
+	second keeps blank spaces and disables indents.
+
+	* tex4ht-html4.tex (html4.4ht): fixed font size problem with monospaced
+	fonts.
+	http://code.iamkate.com/html-and-css/fixing-browsers-broken-monospace-font-handling/
+	* tex4ht-fonts-modern.tex,
+	tex4ht-fonts-noncjk.tex (
+	ma1r8t.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/pl/pltcsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/tipa/tipa.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/adobe/palatino/pplrc9t.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/cm/cmtcsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/el-lm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/l7x-lm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/pre2005/qx-lmtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/pre2005/cork-.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/el-lmcs.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/cs-lm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/l7x-lmcsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/txfonts/txsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/txfonts/tcxb.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/iso8859/1/sw/curr.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/iso8859/5/cyrillic/kmitt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cyrillic/kmvtti.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cyrillic/cmcyr/cmcitt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cyrillic/cmcyr/cmcsltt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cyrillic/cmcyr/cmctt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cyrillic/kmtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cyrillic/kmvtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cyrillic/kmsltt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cs/cstt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/cmbrightvn/vncm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/vnr/vn.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/urwvn/ucrbo8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/urwvn/ucrrc8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/urwvn/ucrb8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/urwvn/ucrbc8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/urwvn/ucrro8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/urwvn/ucrr8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/mscorevn/mcrb8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/mscorevn/mcrbc8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/mscorevn/mcrri8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/mscorevn/mcrr8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/mscorevn/mcrbi8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/mscorevn/mcrrc8v.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/chartervn/txtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/pl/pltt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/pl/plsltt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/pl/plitt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/pl/plvtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/jknappen/tc/tctt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/jknappen/tc/tcrb.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lctt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/latt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lbcc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/ldcc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/ldtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lbtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/ldss.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lcss.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lbss.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lait.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lass.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/latc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lccc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/tipa/tipx.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/qfonts/qcrbi.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/qfonts/qcrri.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/qfonts/qcrb.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/ae/aetcsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/ae/ae.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/rpcrr.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/rpcrb.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrr.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrb.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/rpcrbo.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrb8u.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrbo.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrr8u.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/rpcrro.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrrc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrbo8u.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrbc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/courier/pcrro.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/pslatex/pcrr8rn.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/pslatex/pcrr8tn.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cm/cmtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cm/cmitt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cm/cmsltt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/cm/cmvtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/cs-lmcs.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/rm-lmt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/ts1-.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/pre2005/qx-lmtcs.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/pre2005/texnansi-lmtcs.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/pre2005/texnansi-lm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/pre2005/cork-lmtcs.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/t5-lm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-qx/qx-lm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-rep-cstt/cssltt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-rep-cstt/csvtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-rep-cstt/cstcsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-rep-cstt/csitt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/rm-lmvt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-rep-t5psn/vntcsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/t5-lmtcs.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/lm-ec/ec-lm.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/times/ptmr7t.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/ec/dc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/ec/ec.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/tcxtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/txttsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/txbttsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/t1xttsc.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/tcxttsl.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/txbtt.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/tyx.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/t1x.htf
+	tex4ht.dir/texmf/tex4ht/ht-fonts/alias/txfonts/t1xbttsc.htf
+	): fixed monospace handling in htf files.
+
+	* tex4ht-4ht.tex (usepackage.4ht): patched Polyglossia's
+	direction handling.
+
+2019-12-12 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): the test for Polyglossia package was
+	missing.
+
+2019-11-23 Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): changed way how functions are
+	encoded in MathmML.
+	https://puszcza.gnu.org.ua/bugs/?444
+	* tex4ht-mathml.tex (mathml.4ht): use  element for math text
+	commands again.
+	http://puszcza.gnu.org.ua/bugs/?226
+
+2019-11-22 Michal Hoftich  
+
+	* tex4ht-4ht.tex (colortbl.4ht): fixed support for colors in \rowcolor
+	command.
+
+2019-11-21 Michal Hoftich  
+
+	* tex4ht-html5.tex (html5.4ht): fixed language detection when no main
+	language is specified.
+	* tex4ht-4ht.tex (colortbl.4ht): added support for the
+	\cellcolor command.
+	https://tex.stackexchange.com/a/517434/2891
+
+2019-11-13 Michal Hoftich  
+
+	* tex4ht-4ht.tex (fancyvrb.4ht): fixed spacing issues.
+
+2019-11-07  Karl Berry  
+
+	* tex4ht-cond4ht.tex (cond4ht.4ht, mktex4ht.4ht): copyright years.
+
+2019-11-07 Michal Hoftich  
+
+	* tex4ht-4ht.tex (mdframed.4ht): fixed support for frame titles.
+	Disabled native frame drawing.
+	* tex4ht-4ht.tex (minted.4ht),
+	tex4ht-html4.tex (html4.4ht): fixed support for inline syntax
+	highlighting with the Minted package.
+	* tex4ht-4ht.tex (pythontex.4ht),
+	tex4ht-html4.tex (html4.4ht): fixed support for inline syntax
+	highlighting with the Pythontex package.
+
+2019-11-06 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): fixed test for existence of the
+	\mdfl@linewidth command in the configuration for mdframed.
+
+2019-10-31 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): fix for the xr-hyper package.
+	https://tex.stackexchange.com/a/514398/2891
+
+2019-10-24 Michal Hoftich  
+
+	* tex4ht-4ht.tex (appendix.4ht), 
+	tex4ht-html4.tex (html4.4ht): fixed the appendix package.
+
+2019-10-16 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): fix for basic text formatting
+	commands at the beginning of the paragraph when fontspec is used.
+	http://puszcza.gnu.org.ua/bugs/?441
+	* tex4ht-html4.tex (html4.4ht): changed style for horizontal lines in
+	tables.
+
+2019-10-13 Michal Hoftich  
+
+	* tex4ht-4ht.tex (graphics.4ht): fix for serious error that
+	showed after a recent LaTeX core update -- all pictures were
+	included as EPS images.
+
+2019-10-08 Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): fix for Fancyhdr fancy style.
+
+2019-09-29 Michal Hoftich  
+
+	* tex4ht-cond4ht.tex (cond4ht.4ht, docbook.4ht, html0.4ht, html32.4ht,
+          html4.4ht, mktex4ht.4ht, ooffice.4ht, ooimpress.4ht, tei.4ht):
+	Use \InputIfFileExists to include the package .4ht files. This
+	should support the \input@path.
+	https://tex.stackexchange.com/q/510155/2891
+
+2019-09-23  Karl Berry  
+
+	* tex4ht-html4.tex: copyright 2019.
+
+2019-09-22 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4-math.4ht): fix for tables inside math in the
+	MathJax node.
+	https://tug.org/pipermail/tex4ht/2019q3/002349.html
+
+2019-09-18 Michal Hoftich  
+
+	* tex4ht-4ht.tex (longtable.4ht): fix for the \\* commands
+	inside longtable.
+	https://puszcza.gnu.org.ua/bugs/?437
+
+2019-09-13 Michal Hoftich  
+
+	* tex4ht-4ht.tex (hyperref.4ht, exerquiz.4ht): moved contents of
+	the second argument of \hypertarget outside the generated
+	link, in order to prevent creation of invalid HTML tags.
+
+2019-09-12 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht),
+	tex4ht-ooffice.tex (ooffice.4ht),
+	tex4ht-4ht.tex (graphics.4ht): fixed support for image dimensions,
+	tex4ht will try to explicitly set them when possible.
+	* tex4ht-html4.tex (html4.4ht),
+	tex4ht-ooffice.tex (ooffice.4ht): use the -dusecropbox option for
+	GhostScript in the PDF conversion.
+
+2019-09-10 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht),
+	tex4ht-ooffice.tex (ooffice.4ht): disabled check for the missing
+	bounding box, this prevented use of dimensions specified in
+	\includegraphics[width=...].
+	https://tex.stackexchange.com/q/501648/2891
+
+2019-09-05 Michal Hoftich  
+
+	* tex4ht-4ht.tex (memoir.4ht): fix for footnotes when the Hyperref
+	package is loaded.
+	https://tex.stackexchange.com/q/507129/2891
+
+2019-09-03 Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht), 
+	* tex4ht-html4.tex (html4.4ht): use double quotes for command
+	parameters instead of single quotes. This caused run time error on
+	Windows.
+
+2019-09-01 Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): added support for the EPS images.
+
+2019-08-31 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht),
+	tex4ht-4ht.tex (color.4ht): fix for colors defined with spaces. Like
+	\definecolor{sample}{rgb}{0.2, 0.2, 0.2}
+
+2019-08-30 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): added non breaking space to remove
+	spurious space inserted on every odd line in the algorithmicx
+	environment. https://github.com/michal-h21/make4ht/issues/20
+
+2019-08-26 Michal Hoftich  
+
+	* tex4ht-4ht.tex (latex.4ht),
+	tex4ht-mathml.tex (mathml.4ht): added support for different math space
+	commands.
+
+2019-08-20 Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht),
+	tex4ht-ooffice.tex (ooffice.4ht): enable supported graphics types
+	out of the box.
+	* tex4ht-fonts-modern.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/alias/vntex/arevvn/fav.htf):
+	added CSS declarations for more font styles and weights.
+
+2019-08-16 Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex: fixed support for avant, newcent,
+	bookman and chancery text fonts.
+	https://puszcza.gnu.org.ua/bugs/?433
+
+2019-07-26 Michal Hoftich  
+
+	* tex4ht-4ht.tex (natbib.4ht): added support for \Configure{cite}.
+	https://tex.stackexchange.com/q/501572/2891
+
+2019-07-10  Michal Hoftich  
+
+	* tex4ht-4ht.tex (babel.4ht,polyglossia.4ht): added support for the
+	\arabicdigits macro.
+	https://tex.stackexchange.com/q/495709/2891
+
+2019-07-06  Michal Hoftich  
+
+	* tex4ht-4ht.tex (titling.4ht): added basic support for the
+	titling package. 
+	https://tex.stackexchange.com/a/498887/2891
+
+2019-07-05  Michal Hoftich  
+
+	* tex4ht-docbook.tex (docbook.4ht): added support for scrartcl,
+	scrreprt and memoir classes.
+
+2019-07-03  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): removed invalid attribute
+	table:value-type.
+
+2019-06-24  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): fixed the breaklines option
+	for Minted package.
+
+2019-06-19  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht, polyglossia.4ht),
+	tex4ht-html4.tex (html4.4ht),
+	tex4ht-ooffice.tex (ooffice.4ht): fixed direction support for
+	polyglossia.
+
+2019-06-18  Michal Hoftich  
+
+	* tex4ht-4ht.tex (fontspec-4ht.lua): fix for unicode specials
+	inserted at the beginning of a node list.
+
+2019-06-11  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): don't pass the PDF name to
+	epstopdf, it can fail on Windows.
+
+2019-06-10  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): made the command used for the
+	EPS graphics support configurable.
+
+2019-06-07  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht, imakeidx.4ht): added support for the
+	Imakeidx package.
+
+2019-06-06  Michal Hoftich  
+
+	* tex4ht-4ht.tex (memoir.4ht),
+	tex4ht-html4.tex (html4.4ht): added support for the \book command.
+	* tex4ht-unicode.tex (unicode.4ht): check for "new-accents" option in
+	accents configuration.
+
+2019-05-27  Michal Hoftich  
+
+	* tex4ht-4ht.tex (fontspec-4ht.lua): current LuaTeX needs + sign before
+	direction.
+
+2019-05-22  Michal Hoftich  
+
+	* tex4ht-4ht.tex (bussproofs.4ht),
+	tex4ht-html4.tex (html4.4ht): added support for the bussproofs package.
+	* tex4ht-4ht.tex (proof.4ht),
+	tex4ht-html4.tex (html4.4ht): added support for the proof package.
+
+2019-05-20  Michal Hoftich  
+
+	* tex4ht-4ht.tex (adjustbox.4ht),
+	tex4ht-html4.tex (html4.4ht): added support for the adjustbox package.
+
+2019-05-14  Michal Hoftich  
+
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): redefine the 
+	problematic commands for TOC only in \Configure{writetoc}.
+	https://tug.org/pipermail/tex4ht/2019q2/002262.html
+
+2019-04-24  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex: regenerated Zapf fonts using Htfgen.
+	The old version produced incorrect characters
+
+2019-04-18  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex: restore XCharter fonts.
+	* tex4ht-fonts-libertine.tex: fixed family names for Libertine
+	fonts. This changes the directory where the HTF fonts are generated.
+	* tex4ht-4ht.tex (floatpag.4ht): redefine the
+	\thisfloatpagestyle command to be ignored with tex4ht.
+	https://github.com/michal-h21/tex4ebook/issues/58
+
+2019-04-17  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex: removed EB Garamond and Linux
+	Libertine fonts.
+	* tex4ht-fonts-ebgaramond.tex: added new literate source for EB
+	Garamond HTF files.
+	* tex4ht-fonts-libertine.tex: added literate sources for Libertine HTF
+	files.
+
+2019-04-12  Michal Hoftich  
+
+	* tex4ht-4ht.tex (nameref.4ht): fix for amsart and amsproc \part.
+
+2019-04-10  Michal Hoftich  
+
+	* tex4ht-html5.tex (html5.4ht): added support for HTML5 figures
+	for AMS classes.
+	
+2019-04-09  Michal Hoftich  
+
+	* tex4ht-4ht.tex (color.4ht, xcolor.4ht): fixed issues with color names
+	equal to color schemes.
+	https://tug.org/pipermail/tex4ht/2019q2/002242.html
+
+2019-04-05  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht),
+	tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): added support for $$
+	display math.
+	
+2019-03-25  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): use superscript for a
+	footnote anchor. https://tex.stackexchange.com/q/474000/2891
+
+2019-03-25  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): added support for \reversemarginpar.
+
+2019-03-21  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): changed footnote font size to 80%.
+
+2019-03-19  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): added group around
+	\@textsuperscript reset, in order to support superscripts in footnotes.
+	* Makefile: renamed jurabibib.4ht to jurabib.4ht.
+
+2019-03-18  Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty): removed second argument for
+	\BlockElementEnd, it isn't used.
+
+2019-03-16  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): the wrapfix configuration generated
+	nested paragraphs, leading to a non-valid ODF file. 
+
+2019-03-15  Michal Hoftich  
+
+	* tex4ht-html5.tex (html5.4ht): use semantic elements for floats,
+	figures and captions.
+
+	* tex4ht-4ht.tex (memoir.4ht): input definitions for booktabs.
+	https://tex.stackexchange.com/q/479652/2891
+
+2019-03-14  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): fixed image filename parsers.
+	* tex4ht-ooffice.tex (ooffice.4ht): added image mimetypes to the
+	manifest.xml file.
+	* tex4ht-ooffice.tex (ooffice.4ht): correct name of the attribute is
+	text:class-names.
+
+2019-03-13  Michal Hoftich  
+
+	* tex4ht-4ht.tex (biblatex.4ht): fix for non-ascii cite keys
+	with XeLaTeX.
+	* tex4ht-html4.tex (html4.4ht),
+	* tex4ht-javahelp.tex (javahelp.4ht): use white-space:normal in Css.
+	* tex4ht-ooffice.tex (ooffice.4ht): support for PDF image inclusion.
+
+2019-03-12  Michal Hoftich  
+
+	* tex4ht-4ht.tex (biblatex.4ht): fix for Polyglossia package.
+	* tex4ht-ooffice.tex (ooffice.4ht): fixed issues with pictures in
+	subdirectories.
+	* tex4ht-ooffice.tex (ooffice.4ht): set image dimensions on draw:frame
+	element, we got validation error otherwise.
+
+2019-02-19  Michal Hoftich  
+
+	* tex4ht-4ht.tex (cleveref.4ht): added support for reference
+	hyperlinks.
+	https://tex.stackexchange.com/a/475664/2891
+	
+	* tex4ht-4ht.tex (csquotes.4ht): fix for footnotes inside blockquote
+	environment.
+	https://tex.stackexchange.com/a/474605/2891
+	
+2019-01-30  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): horizontally center longtables.
+	https://tex.stackexchange.com/a/472643/2891
+
+2019-01-24  Michal Hoftich  
+
+	* tex4ht-4ht.tex (amsmath.4ht): fixed definition of \xrightarrow and
+	\xleftarrow again.
+	https://tex.stackexchange.com/q/461445/2891
+	* tex4ht-4ht.tex (amsmath.4ht): prevented duplicate definitions of some
+	macros.
+
+2019-01-23  Michal Hoftich  
+
+	* tex4ht-4ht.tex (pstricks.4ht): fixed generated file name in
+	the copyright notice.
+
+2019-01-22  Michal Hoftich  
+
+	* tex4ht-4ht.tex (memoir.4ht): removed loading of table related
+	packages. Recent Memoir doesn't use them anymore.
+
+2019-01-18  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): added configurations for verse.4ht.
+
+2019-01-17  Michal Hoftich  
+
+	* tex4ht-4ht.tex (tuenc-xetex-input.4ht): fixed Unicode range character
+	declaration.
+	* tex4ht-html4.tex (html4.4ht),
+	tex4ht-ooffice.tex (ooffice.4ht): Start a new paragraph after the verse
+	environment.
+	https://tex.stackexchange.com/q/470546/2891
+	* tex4ht-html4.tex (html4.4ht): set zero bottom margin for
+	paragraphs inside the verse environment in order to prevent
+	unwanted blank lines. 
+
+2019-01-16  Michal Hoftich  
+
+	* tex4ht-4ht.tex (memoir.4ht): fixed chapter TOC creation
+	https://tex.stackexchange.com/q/470352/2891
+	* tex4ht-ooffice.tex (ooffice.4ht): renamed quote-trl to
+	quote-rtl, to fix the direction support.
+	https://tex.stackexchange.com/a/470434/2891
+
+2019-01-12  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): fixed Biblatex language handling.
+	https://tex.stackexchange.com/q/469718/2891
+
+2019-01-06  Michal Hoftich  
+
+	* tex4ht-4ht.tex (memoir.4ht): Support for optional argument of
+	\chapter. Thanks to Deimantas Gal\v{c}ius.
+	https://puszcza.gnu.org.ua/bugs/?406
+
+2019-01-05  Michal Hoftich  
+
+	* tex4ht-tei.tex (tei.4ht): added definitions of CSS support commands.
+	* tex4ht-4ht.tex (titlesec.4ht): fixed issues with TOC.
+	* tex4ht-4ht.tex (memoir.4ht): support for \tableofcontents* command.
+
+2018-12-27  Michal Hoftich  
+
+	* tex4ht-svg.tex (svg-option.4ht, html4-svg.4ht): renamed svg.4ht to
+	svg-option.4ht due to name conflict with svg.sty.
+	* tex4ht-options.tex (tex4ht.4ht): use svg-option.4ht instead of
+	svg.4ht.
+	* tex4ht-4ht.tex (svg.4ht): added basic support for the svg.sty
+	package.
+	* Makefile (tex4ht_svg_derived): change names accordingly.
+	* mktex4ht-cnf.tex: \AddFile{9}{svg}.
+	
+	* tex4ht-4ht.tex (tabu.4ht): added basic support for the tabu package.
+	* tex4ht-4ht.tex (scrjura.4ht),
+	tex4ht-html4.tex (html4.4ht): added basic support for the
+	scrjura package.
+
+2018-12-20  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): load dvips driver for
+	graphicx and xcolor packages with XeLaTeX. It fixes PDF support.
+
+2018-12-19  Michal Hoftich  
+
+	* tex4ht-options.tex (tex4ht.4ht): added support for mathml option for
+	docbook and tei formats.
+
+2018-12-18  Karl Berry  
+
+	* tex4ht-4ht.tex (pstricks.4ht): copyright.
+
+2018-12-18  Michal Hoftich  
+
+	* tex4ht-4ht.tex (pstricks.4ht): fixed compilation error.
+	https://tex.stackexchange.com/a/466340/2891
+
+2018-12-10  Michal Hoftich  
+
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): configure
+	environments and 
+	other redefinitions inside \AtBeginDocument.
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): added configurations for
+	eqnarray.
+
+2018-12-04  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4-math.4ht): added "mathjax" option.
+	* tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): new literate
+	source holding definitions for keeping of LaTeX commands in math
+	commands and environments.
+	* tex4ht-mathml.tex (html-mml.4ht): use "mathjax" option also
+	for MathML output.
+	* tex4ht-html4.tex (html4.4ht): use \def instead of \newcommand for
+	\AddFontFace, it causes compilation error.
+	* tex4ht-4ht.tex (latex.4ht): added \NewConfigure{MathjaxSource}.
+
+2018-11-29  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): Added \Configure{AddJs} and
+	\Configure{AddCss} for external script and style sheet inclusion.
+	* tex4ht-html4.tex (html4.4ht): Added support for web fonts.
+	* tex4ht-html4.tex (html4.4ht): Made the GhostScript configuration for
+	actuall gs executable selection for the PDF to png conversion.
+
+2018-11-24  Karl Berry  
+
+	* tex4ht-4ht.tex (amsmath.4ht): .
+
+2018-11-24  Michal Hoftich  
+
+	*  tex4ht-4ht.tex (amsmath.4ht): fixed redefinition of
+	\xrightarrow and \xleftarrow.
+	https://tex.stackexchange.com/q/461445/2891
+
+2018-11-17  Michal Hoftich  
+
+	* tex4ht-4ht.tex (magyar.4ht): fixed support for \aref and \Aref
+	commands.
+
+2018-11-15  Michal Hoftich  
+
+	* tex4ht-4ht.tex (magyar.4ht): added support for \az command in Magyar
+	Babel.
+
+2018-11-09  Michal Hoftich  
+
+	* tex4ht-fonts-4hf.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/mozilla/charset/unicode.4hf):
+	removed many unnecessary mappings from Unicode math to ASCII.
+
+2018-11-08  Michal Hoftich  
+
+	* tex4ht-4ht.tex (czech.4ht): use \quotedblbase instead of
+	custom code for opening quote.
+
+2018-11-06  Karl Berry  
+
+	* tex4ht-4ht.tex (plain.4ht, fontmath.4ht): "copywrite"
+	to include timestamps.
+
+2018-11-06  Michal Hoftich  
+
+	* tex4ht-4ht.tex (plain.4ht, fontmath.4ht): added definition of \ldots 
+
+2018-11-05  Karl Berry  
+
+	* tex4ht-4ht.tex (lettrine.4ht): copyright 2018.
+
+2018-11-05  Michal Hoftich  
+
+	* tex4ht-4ht.tex (lettrine.4ht): use the same keyval namespace as
+	lettrine.sty.
+	https://github.com/michal-h21/tex4ebook/issues/48
+
+2018-10-26  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): added support for TocLink option.
+
+2018-10-25  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): removed space before footnote mark.
+	https://puszcza.gnu.org.ua/bugs/?172
+
+2018-10-20  Michal Hoftich  
+
+	* tex4ht-4ht.tex (book.4ht, report.4ht, article.4ht, amsart.4ht,
+	amsbook.4ht, amsproc.4ht, scrartcl.4ht, scrreprt.4ht, mwbk.4ht,
+	mwart.4ht, mwrep.4ht): disabled patching of the old commands, it
+	seemd like really old weird hack that is not useful anymore.
+	https://tex.stackexchange.com/q/455994/2891
+
+2018-10-15  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): test for presence of image
+	converted from pdf file.
+	added support for conversion of eps files to the current picture
+	format.
+
+2018-10-01  Michal Hoftich  
+
+	* tex4ht-4ht.tex (graphicx.4ht): defined configurations for \rotatebox
+	* tex4ht-html4.tex (html4.4ht): configured \rotatebox
+	https://tex.stackexchange.com/a/453376/2891
+
+2018-09-16  Michal Hoftich  
+
+	* tex4ht-4ht.tex (titlesec.4ht): fix for the runin and display formats.
+	https://tex.stackexchange.com/q/451077/2891
+
+2018-09-08  Michal Hoftich  
+
+	* tex4ht-4ht.tex (biblatex-chicago.4ht): fix for correct punctuation.
+
+2018-09-02  Karl Berry  
+
+	* tex4ht-unicode.tex: copyright.
+
+2018-09-02  Michal Hoftich  
+
+	* tex4ht-unicode.tex (unicode.4ht): fixed definition of
+	\x:unicode to use the same pattern for declaration of Unicode
+	characters as the rest of tex4ht sources.
+
+	* tex4ht-html4.4ht (html4.4ht): added \ttfamily to the listings-init
+	configuration. It fixes some issues when listings are used inside the
+	\Picture*.
+
+2018-08-30  Michal Hoftich  
+
+	* tex4ht-4ht.tex (tuenc-luatex.4ht): added vpack_filter
+	callback, in order to process all characters.
+	* tex4ht-4ht.tex (latex.4ht): load tuenc.def to get definitions
+	for text symbols.
+
+2018-07-31  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): removed   entity from
+	configuration for HBorder, it caused Xtpipes error.
+
+2018-07-04  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): removed all DOCTYPE
+	definitions, they cause validation failure in
+	https://odfvalidator.org/.
+	* tex4ht-ooffice.tex (ooffice-mml.4ht): fixed mime type.
+	Replaced literal math: prefix with \a:mathml in some configurations.
+	Configured \Configure{mathml} to not use a prefix at all.
+	Added correct Doctype for MathML.
+
+2018-07-03  Karl Berry  
+
+	* tex4ht-t4ht.tex (texmf :=): replace %%~ with $TEXMFDIST,
+	not $SELFAUTOPARENT, for consistency with MiKTeX, to help
+	distros, etc.
+	* tex4ht-env.tex (generic note fonts): replace .
+	(unix opening comment): replace ; TEXMFDIST.
+	Omit texmf-dist/ after %%~/ throughout.
+	https://puszcza.gnu.org.ua/bugs/index.php?394
+	https://tug.org/pipermail/tex4ht/2018q2/001975.html
+
+2018-06-30  Karl Berry  
+
+	* tex4ht-c.tex (close tex4ht file): don't try to dereference
+	null pointers if file is not open. (Why it's not open, I don't know.)
+	Report from Nasser Abbasi, 25 May 2018 20:11:20 ff.
+
+2018-06-29  Karl Berry  
+
+	* tex4ht-c.tex (command line options): mention A in option summary
+	as well as text. (And push current *.c to TL.)
+
+2018-06-12  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): fixed support for images included
+	without extension.
+
+2018-06-12  Karl Berry  
+
+	* wripro.tex,
+	* tex4ht-sty.tex: more \writesixteen.
+	(\xeuniuseblock): quote use in doc.
+	* tex4ht-html0.tex,
+	* tex4ht-html32.tex,
+	* tex4ht-info.tex,
+	* tex4ht-options.tex,
+	* tex4ht-tei.tex: copyright 2018.
+
+2018-06-12  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): removed \clearpage patch, it
+	breaks math.
+
+2018-06-11  Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty): use higher number for \write,
+	to try even harder to avoid possible conflicts.
+
+2018-06-11  Michal Hoftich  
+
+	* common.tex,
+	* tex4ht-4ht.tex (amsart.4ht, amsbook.4ht, amsproc.4ht, article.4ht,
+	book.4ht, eplain.4ht, glossary.4ht, latex.4ht, mwart.4ht, mwbk.4ht,
+	mwrep.4ht, report.4ht, scrbook.4ht, scrreprt.4ht, showfonts.4ht,
+	th4.4ht),
+	* tex4ht-html0.tex (html0.4ht),
+	* tex4ht-html32.tex (html32.4ht),
+	* tex4ht-html4.tex (html4.4ht, onmouseover.4ht),
+	* tex4ht-info.tex (info4ht.4ht),
+	* tex4ht-options.tex (tex4ht.4ht),
+	* tex4ht-sty.tex (tex4ht.sty),
+	* tex4ht-tei.tex (tei-mml.4ht, tei.4ht): changed \immediate\write16 to
+	\writesixteen macro, and define it.
+
+2018-06-08  Michal Hoftich  
+
+	* tex4ht-4ht.tex (cleveref.4ht): basic support for Cleveref package.
+
+2018-06-06  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): require new page for
+	\clearpage command.
+
+2018-05-19  Michal Hoftich  
+
+	* tex4ht-4ht.tex (tuenc-xetex-input.4ht): new release of l3kernel
+	defined more active chars, it is necessary to undefine them for XeTeX.
+
+2018-05-18  Karl Berry  
+
+	* Makefile (diff_files): diff all $(derived) as a test;
+	use = when := is not necessary; doc tweaks.
+
+2018-05-09  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): removed testing snippet, it
+	contained text in Latin 1 encoding and current LaTeX defaults to
+	utf8, causing a compilation errror.
+
+	* Makefile: removed $(ht_fonts_devdir)/alias/bera/fvmr8r.htf,
+	this file doesn't exist and it caused constant recompilations of
+	font files.
+
+	* tex4ht-4ht.tex (usepackage.4ht): patch XeTeX active characters
+	only in XeTeX compilation.
+
+2018-05-08  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): patch for expl3 package
+	* tex4ht-4ht.tex (usepackage-fontspec.4ht, tuenc-xetex.4ht,
+	tuenc-xetex-input.4ht): fixed XeTeX support.
+
+2018-05-04  Michal Hoftich  
+
+	* tex4ht-html5.tex (html5.4ht): added declarations for
+	additional languages supported by Polyglossia.
+	* tex4ht-sty.tex (tex4ht.sty): load XeTeX encoding support code
+	if XeTeX is active in order to support Unicode characters in the
+	preamble.
+
+2018-05-03  Michal Hoftich  
+
+	* tex4ht-4ht.tex (memoir.4ht): include code which was invoked only for
+	mempatch.sty in memoir.4ht, since mempatch is not used anymore.
+
+2018-05-02  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): disabled package eso-pic, it
+	cannot do anything useful under tex4ht.
+
+2018-04-16  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex 
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/alias/arev/favb8r.htf):
+	fixed reference to the master .htf file.
+
+2018-04-10  Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): removed \leavevmode from fbox
+	configuration, it produced wrong results in the vertical mode.
+
+	* tex4ht-4ht.tex (braket.4ht): patched the braket package, it
+	produced wrong MathML code.
+
+2018-04-06  Michal Hoftich  
+
+	* tex4ht-4ht.tex (biblatex.4ht): use \pend:defI for patching of
+	\blx@bibliography in the current Biblatex version.N
+	Report from Anonymous,
+	http://tug.org/pipermail/tex4ht/2018q2/001929.html
+
+2018-03-29  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/alias/t1fonts/XCharter*.htf):
+	Support for XCharter fonts.
+
+2018-03-28  Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty): use \long for definition of
+	\IfFileExists, because it may contain blank lines in its branches.
+	https://tex.stackexchange.com/q/423725/2891
+
+2018-03-27  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/bera/fvmr8r.htf):
+	Monospaced Bera font.
+	https://puszcza.gnu.org.ua/bugs/?390
+
+2018-02-23  Karl Berry  
+
+	* tex4ht-mathml.tex: copyright 2018.
+
+2018-02-22  Michal Hoftich  
+
+	* tex4ht-mathml.tex (html-mml.4ht): disabled ht-fonts for basic
+	font formatting commands also in MathML.
+	* tex4ht-mathml.tex (mathml.4ht, html-mml.4ht): print 
+	elements when text formatting commands are used.
+	https://tex.stackexchange.com/a/416613/2891
+
+2018-02-20  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): disabled ht-fonts for basic font
+	formatting commands.
+
+2018-02-19  Karl Berry  
+
+	* tex4ht-fonts-noncjk.tex,
+	* Makefile (tex4ht_fonts_noncjk_derived): use /alias/bera/,
+	since it is not an Adobe font.
+
+2018-02-15  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/alias/adobe/bera/fve*.htf): Basic
+	support for Bera fonts.
+	https://tex.stackexchange.com/q/415418/2891
+
+2018-02-07  Michal Hoftich  
+
+	* tex4ht-sty.tex (tex4ht.sty): new commands for semantic elements.
+	https://puszcza.gnu.org.ua/bugs/index.php?387
+	
+2018-01-31  Karl Berry  
+
+	* tex4ht-html5.tex: copyright.
+
+2018-01-31  Michal Hoftich  
+
+	* tex4ht-html5.tex (html5.4ht): added meta tags for source file,
+	date and instructions for mobile devices.
+
+2018-01-15  Karl Berry  
+
+	* Makefile (tex4ht_fonts_modern_derived): add lm-ts1.htf.
+	* tex4ht-fonts-modern.tex (lm-ts1-LM-05): copyright.
+
+2018-01-15  Michal Hoftich  
+
+	* tex4ht-fonts-modern.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/lm-ts1.htf): use
+	ASCII apostrophe (x0027) for the \textquotesingle symbol.
+	http://tug.org/pipermail/tex4ht/2018q1/001873.html
+
+2018-01-12  Karl Berry  
+
+	* tex4ht-html4.tex,
+	* tex4ht-ooffice.tex: it's 2018.
+
+2017-01-11  Michal Hoftich  
+
+	* tex4ht-4ht.tex (latex.4ht),
+	* tex4ht-ooffice.tex (ooffice.4ht),
+	* tex4ht-html4.tex (html4.4ht): fixed support for \textsubscript and
+	\textsuperscript.
+	http://tug.org/pipermail/tex4ht/2018q1/001870.html
+
+2017-01-04  Michal Hoftich  
+
+	* tex4ht-4ht.tex (biblatex.4ht): removed macros for older
+	Biblatex versions support.
+	https://tex.stackexchange.com/q/408742/2891
+	http://puszcza.gnu.org.ua/bugs/?376
+
+2017-12-13  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): use hexadecimal entity for the
+	asterism.
+
+2017-12-09  Michal Hoftich  
+
+	* Makefile: compile the tex4ht-html4.tex file twice in order to
+	get all configurations included.
+
+2017-12-08  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht),
+	* tex4ht-4ht.tex (sectionbreak.4ht): support for sectionbreak package.
+	* Makefile: request compilation of tex4ht-cond4ht.tex before 
+	tex4ht-4ht.tex. 
+	
+2017-12-06  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht), 
+	* tex4ht-4ht.tex (animate.4ht, usepackage.4ht): added support for the
+	animate package.
+
+2017-11-23  Michal Hoftich  
+
+	* tex4ht-4ht.tex (nameref.4ht): add label for equation if amsmath
+	is not used. Report from Philippe Spiesser on tex-live list,
+	http://tug.org/pipermail/tex-live/2017-November/040809.html.
+
+2017-11-16  Michal Hoftich  
+
+	* tex4ht-4ht.tex (biblatex.4ht): fixed version checking
+
+2017-11-12  Karl Berry  
+
+	* Makefile (update-env): no -platform suffix.
+	* Makefile (update-env): separate out target.
+	(update): call it.
+
+	* tex4ht-docbook.tex: copyright.
+
+2017-11-11  Michal Hoftich  
+
+	* tex4ht-docbook.tex (docbook.4ht): added support for the quote
+	environment.
+
+2017-11-10  Michal Hoftich  
+
+	* tex4ht-env.tex (tex4ht.env): use the --exact option for dvisvgm, it
+	prevents wrong image clipping in some cases.
+
+2017-10-25  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): define dummy vallue for
+	\Gin@page when it is undefined.
+
+2017-10-22  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): added configurations for
+	frenchb spaces.
+	* tex4ht-ooffice.tex (ooffice-mml.4ht): Changed definition of
+	\:nbsp macro to produce actual non-breaking space.
+	http://tug.org/pipermail/tex4ht/2017q4/001852.html
+
+2017-10-21  Karl Berry  
+
+	* tex4ht-fonts-noncjk.tex
+     (ctib -> tex4ht.dir/texmf/tex4ht/ht-fonts/iso8859/1/tibetan/ctib.htf,
+  ctib-uni -> tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/tibetan/ctib.htf):
+        correct |jobname to `jobname for this context.
+
+	* tex4ht-fonts-noncjk.tex
+     (lacc-uni -> tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lh/lh-t2a/lacc.htf),
+	* tex4ht-4ht.tex (graphicx.4ht): copyright.
+
+2017-10-18  Michal Hoftich  
+
+	* tex4ht-4ht.tex (graphicx.4ht): add xbb support for pdf and svg.
+	* tex4ht-html4.tex (html4.4ht): use pdf2svg for pdf to svg
+	conversion, the pdf images will be converted to png by default,
+	use "svg" option to request the svg output.
+
+2017-10-16  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): added support for TikZ
+	externalization.
+	http://puszcza.gnu.org.ua/bugs/?371
+	* tex4ht-html4.tex (html4.4ht): added support for pdf image inclusion.
+
+2017-10-01  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex 
+        (tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/labi.htf,
+         tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/latc.htf,
+         tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/lait.htf):
+	new Cyrillic fonts.
+	* tex4ht-fonts-noncjk.tex 
+        (tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lh/lh-t2a/lacc.htf):
+        fixed wrong character.
+        https://puszcza.gnu.org.ua/bugs/index.php?370
+	
+2017-09-19  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex 
+        (tex4ht.dir/texmf/tex4ht/ht-fonts/alias/ec/ecxc.htf,
+         tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lh/lh-t2a/laxc.htf):
+	fixed some small-caps fonts.
+
+2017-09-09  Karl Berry  
+
+	* tex4ht-mathml.tex (html-mml.4ht): copyright.
+	https://tex.stackexchange.com/q/400629/2891
+
+2017-09-02  Michal Hoftich  
+
+	* tex4ht-4ht.tex (authblk.4ht): added basic support for authblk
+	package.
+
+2017-08-23  Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): print columnlines attribute only
+	when it is not empty.
+
+2017-08-14  Vincent Belaiche  
+
+	* tex4ht-sty.tex: \openin ./tex4ht.sty, to be sure we get the
+	development version.
+	https://puszcza.gnu.org.ua/bugs/?366
+
+2017-08-01  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): use `mk4ht xhtex` command with
+	onmouseover option.
+	https://tex.stackexchange.com/q/384371/2891
+
+2017-05-19  Michal Hoftich  
+
+	* tex4ht-mathml.tex (html-mml.4ht): configuration for array caused
+	invalid MathML.
+	https://tex.stackexchange.com/q/370450/2891
+	https://puszcza.gnu.org.ua/bugs/?368
+
+2017-05-15  Michal Hoftich  
+
+	* tex4ht-info-svg.tex (infosvg.4ht): fixed compilation error.
+
+2017-05-14  Karl Berry  
+
+	* tex4ht-ooffice.tex,
+	* tex4ht-info.tex,
+	* tex4ht-info-html4.tex,
+	* tex4ht-info-mml.tex,
+	* tex4ht-info-svg.tex: copyright 2017.
+
+2017-05-10  Michal Hoftich  
+
+	* tex4ht-ooffice.tex (ooffice.4ht): Added basic support for mdwlist
+	environments enumerate* and itemize*
+
+2017-05-10  Michal Hoftich  
+
+	* mktex4ht-cnf.tex: uncommented mktex4ht configuration.
+	* tex4ht-info.tex (info4ht.4ht),
+	* tex4ht-info-html4.tex (infoht4.4ht),
+	* tex4ht-info-mml.tex (infomml.4ht,
+	* tex4ht-info-svg.tex (infosvg.4ht): Added definition of \CleanComment 
+	macro to each of these files, because it needs current filename in 
+	it's definition. Generated info files, except infosvg.4ht, should work
+	now.
+	* Makefile: removed mktex4ht.4ht from common dependencies.
+
+2017-05-09  Karl Berry  
+
+	* tex4ht-info-svg.tex (infosvg.4ht),
+	tex4ht-svg.tex (svg.4ht),
+	tex4ht-fonts-noncjk.tex 
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/misc/SkakNew.htf): copyright.
+
+2017-05-05  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/misc/SkakNew.htf):
+	Support for chess figures.
+	* tex4ht-4ht.tex (skak.4ht),
+	* tex4ht-html (html4.4ht): added support for skak package 
+	chessboards.
+	* tex4ht-svg.tex (svg.4ht, html4-svg.4ht),
+	* tex4ht-options.tex (tex4ht.4ht): introduced new option,
+	`svg-inline`, which holds the original meaning of `svg` option.
+	`svg` option now doesn't include the image in the document text.
+	* tex4ht-info-svg.tex (infosvg.4ht): added information about 
+	various svg options.
+
+2017-05-04  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): round dimensions and remove 
+	``pt'' units from image dimensions.
+	* tex4ht-html4.tex (html4.4ht): Require horizontal stacking 
+	of subfigures.
+
+2017-05-03  Michal Hoftich  
+
+	* tex4ht-4ht.tex (usepackage.4ht): added basic support for
+	xeCJK package, fixed one issue with biblatex.
+	Details:  https://tex.stackexchange.com/a/367968/2891 
+
+2017-04-28  Karl Berry  
+
+	* Makefile (common): include mktex4ht.4ht and tex4ht.sty.
+	(common_no_cond_sty): new variable without either of those.
+	(tex4ht_cond4ht_derived,tex4ht_sty_derived): use
+	  $(common_no_cond_sty) instead of $(common). 
+	(tex4ht_4ht_derived): depend on cond4ht.4ht.
+	
+	* mktex4ht-cnf.tex: copyright 2017.
+
+2017-04-28  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): fixed error which happened when 
+	xcolor haven't been loaded in the document. Fixed line widths.
+	Start paragraph after mdframed environment.
+	https://puszcza.gnu.org.ua/bugs/?217
+
+2017-04-27  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): use CSS instead of rules="groups"
+	attribute for vertical lines in tables.
+	* tex4ht-4ht.tex (xcolor.4ht): new command \get:xcolorcss, for 
+	conversion from xcolor color spec to CSS colors.
+	* tex4ht-4ht.tex (mdframed.4ht),
+	* tex4ht-html4.tex (html4.4ht): added basic support for mdframed
+	package. https://puszcza.gnu.org.ua/bugs/?217
+
+2017-04-22  Karl Berry  
+
+	* tex4ht-4ht.tex (caption.4ht): copyright.
+	(framed.4ht): no copyright 2016.
+
+2017-04-20  Michal Hoftich  
+
+	* tex4ht-4ht.tex (listings.4ht): added custom configuration for 
+	\lst@makecaption, in order to get correct cross-references.
+
+2017-04-18  Michal Hoftich  
+
+	* Makefile: added info4ht.4ht to the list of derived files.
+	* tex4ht-4ht.tex (framed.4ht),
+	* tex4ht-html4.tex (html4.4ht),
+	* mktex4ht-cnf.tex: added basic support for Framed package,
+	https://puszcza.gnu.org.ua/bugs/?217.
+
+	* tex4ht-4ht.tex (caption.4ht): Added missing C to the macro name.
+
+2017-04-12  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/tibetan/ctib.htf):
+	one entity missed closing semicolon.
+
+2017-04-11  Karl Berry  
+
+	* Makefile (tex4ht_fonts_noncjk_derived): add tibetan/ctib.htf.
+	* tex4ht-mathml.tex (mathml.4ht),
+	* tex4ht-options.tex (tex4ht.4ht): copyright 2017.
+
+2017-04-10  Michal Hoftich  
+
+	* tex4ht-options.tex (tex4ht.4ht): Don't load MathML by default
+	for HTML5.
+
+2017-04-07  Michal Hoftich  
+
+	* tex4ht-fonts-noncjk.tex
+	(tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/tibetan/ctib.htf):
+	fixed XML entities in ctib-uni block.
+	* tex4ht-html4.tex (html4.4ht): added Unicode codes for some combined
+	accents.
+	* tex4ht-4ht.tex (usepackage-fontspec.4ht): don't use
+	"new-accents" option, pass "no-math" option to Fontspec instead.
+
+2017-04-06  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): Round dimensions and remove units
+	in width and height attributes in  elements.
+
+2017-04-05  Michal Hoftich  
+
+	* tex4ht-mathml.tex (mathml.4ht): added \EndPauseMathClass to
+	\Configure{mathbf}.
+	http://tex.stackexchange.com/q/362178/2891
+
+2017-04-04  Michal Hoftich  
+
+	* tex4ht-html4.tex (html4.4ht): changed some deprecated 
+ elements to
. + +2017-04-01 Karl Berry + + * tex4ht-html5.tex: copyright 2017. + +2017-03-30 Michal Hoftich + + * tex4ht-html5.tex (html5.4ht): Added support for xml:lang and lang + attributes in element. + Added support for xmlns in tag. + Removed cellspacing and cellpading attributes from tabular + configuration. + +2017-03-30 Michal Hoftich + + * tex4ht-html4.tex (html4-math.4ht): Configure AMS math align-type + environments to start a new paragraph. + +2017-03-28 Karl Berry + + * tex4ht-html4.tex (html4-math.4ht): copyright 2017. + +2017-03-28 Michal Hoftich + + * tex4ht-html4.tex (html4-math.4ht): The CSS code for align equations + declared width 100% and margin-left:5%. This means that the + equation numbers were moved by 5% out of the window. The width + should be 95%, so the sum with margin-left is 100%. + +2017-03-22 Karl Berry + + * tex4ht-fonts-cjk.tex, + * tex4ht-fonts-cjk-utf8.tex, + * tex4ht-docbook-xtpipes.tex, + * tex4ht-4ht.tex: "The" Current Maintainer, not "This". + + * tex4ht-html4.tex (html4): copyright 2017. + + * tex4ht-4ht.tex (greek.4ht, russianb.4ht): copyright cleanup. + + (\<<<): add h, was + "\<<<", in order to avoid this error: + ! \OutputCode\usepackage-fontspec without \Code\usepackage-fontspec. + +2017-03-20 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): check for new-accents option in + configuration for \bbl@umlauta accent. + * tex4ht-html4.tex (html4.4ht): prevent including of + html4-russian-accents.4ht with XeLaTeX and LuaLaTeX. + * tex4ht-4ht.tex (russianb.4ht): prevent usage of OpenType fonts with + LuaLaTX and XeLaTeX, load definitions for Cyrillic characters + with XeLaTeX. + * tex4ht-4ht.tex (greek.4ht): prevent usage of OpenType fonts, load + definitions of Greek characters with XeLaTeX. + * tex4ht-4ht.tex (fontspec-4ht.lua): Added ec-lm as supported font. + +2017-03-20 Karl Berry + + * Makefile (tex4ht_fonts_4hf): use basename instead of make features. + (install-unicode-4hf): new target to install all unicode.4hf files. + (diff-ht-fonts): new target to compare dev vs. installed ht-fonts. + New variables to support the above. + * tex4ht-fonts-4hf.tex: use \input common. + (TeX4ht copyright): remove, since it was only used in unicode.4hf + files and it turns out they don't allow comments. + (unicode.4hf): in all the many encodings, remove leading comments. + +2017-03-16 Michal Hoftich + + * Makefile (tex4ht_fonts_4hf_derived): use dvilualatex for compilation. + +2017-03-15 Michal Hoftich + + * Makefile (tex4ht_fonts_4hf_derived): support tex4ht-fonts-4hf.tex. + * tex4ht-fonts-4hf.tex + (tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/charset/unicode.4hf) + and others: request xml entity for single quote, removed xml + entity for ` character. + +2017-03-13 Karl Berry + + * Makefile (tex4ht_4ht_derived): spread out by first letter. + + * tex4ht-4ht.tex (graphics.4ht): copyright. + +2017-03-11 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht), + * tex4ht-4ht.tex (graphics.4ht): Fixed support for images with spaces + in their filenames. + +2017-03-11 Michal Hoftich + + * tex4ht-4ht.tex (memoir.4ht): redefinition for \legend command + * tex4ht-html4.tex (html4.4ht): default configuration for \legend + +2017-02-09 Michal Hoftich + + * tex4ht-env.tex (tex4ht.env-unix): use one version of htf paths for + both Unix and Windows. + +2017-02-04 Michal Hoftich + + * tex4ht-env.tex (tex4ht.env-win32): replaced backslashes with normal + slashes in HTF paths on Windows + +2017-02-03 Michal Hoftich + + * tex4ht-env.tex (tex4ht.env-win32): fixed file paths on Windows + +2017-02-01 Michal Hoftich + + * tex4ht-env.tex (tex4ht.env-unix, tex4ht.env-win32): + Use dvisvgm for SVG production and dvipng for bitmap production by + default. + +2017-01-31 Michal Hoftich + + * tex4ht-4ht.tex (usepackage.4ht, + usepackage-fontspec.4ht): New configurations for Fontspec package, + redefining user commands instead of internal macros. Hopefully + it will fix LuaLaTeX and XeLaTeX issues. + http://puszcza.gnu.org.ua/bugs/?352 + +2017-01-29 Karl Berry + + * common-info.tex, + * common.tex, + * tex4ht-fonts-4hf.tex, + * tex4ht-info-html4.tex, + * tex4ht-info-javahelp.tex, + * tex4ht-info-mml.tex, + * tex4ht-info.tex: copyright cleanups. + +2017-01-24 Karl Berry + + * tex4ht-4ht.tex (tuenc-luatex.4ht, tuenc-xetex.4ht, + fontspec-luatex.4ht, fontspec-xetex.4ht, + fontspec-4ht.lua, fontspec.4ht): + use | and direct copyright lines + for these new files, instead of various macro invocations. + +2017-01-24 Michal Hoftich + + * tex4ht-4ht.tex (tuenc-luatex.4ht, tuenc-xetex.4ht, + fontspec-luatex.4ht, fontspec-xetex.4ht, latex.4ht): Introduced + basic Unicode handling for LuaLaTeX and XeLaTeX. It is based on + code which was originally used in Fontspec support. + (Plus copyright tweaks from Karl.) + https://puszcza.gnu.org.ua/bugs/?352 + +2017-01-23 Michal Hoftich + + * tex4ht-4ht.tex (latex.4ht): prevent the selection of TU font + encoding, because it loads OpenType fonts. Use OT1 instead. + https://puszcza.gnu.org.ua/bugs/?352 + +2016-12-26 Michal Hoftich + + * tex4ht-4ht.tex (nameref.4ht): changed \:tempc to \:tempams, in order + to avoid collision with pic-align option + http://tex.stackexchange.com/q/345689/2891 + +2016-12-21 Karl Berry + + * tex4ht-4ht.tex (xr.4ht, xr-hyper.4ht): copyrights. + +2016-12-20 Michal Hoftich + + * tex4ht-4ht.tex (usepackage.4ht, xr.4ht, xr-hyper.4ht): fix support + for additional optional argument of \externaldocument, + and support for hyperref's label in the cross references. + http://puszcza.gnu.org.ua/bugs/?349> + +2016-12-18 Karl Berry + + * tex4ht-4ht.tex (nameref.4ht): copyright. + +2016-12-16 Michal Hoftich + + * tex4ht-4ht.tex (nameref.4ht): Fixed support for empty nameref + types in labels, added support for asmath environments. + https://puszcza.gnu.org.ua/bugs/?348 + +2016-12-16 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): Added support for inclusion of + SVG images + https://puszcza.gnu.org.ua/bugs/?348 + +2016-12-15 Michal Hoftich + + * tex4ht-4ht.tex (listings.4ht): Fixed support for mathescape + option + https://puszcza.gnu.org.ua/bugs/?347> + +2016-12-14 Karl Berry + + * tex4ht-4ht.tex (xcolor.4ht): copyright. + +2016-12-14 Michal Hoftich + + * tex4ht-4ht.tex (colortbl.4ht): Added support for \color + command in table column specifivation. + * tex4ht-4ht.tex (xcolor.4ht): Added support for colors + defined by the user. + https://puszcza.gnu.org.ua/bugs/?346 + +2016-12-13 Michal Hoftich + + * tex4ht-4ht.tex (colortbl.4ht): Use xcolor.sty commands + to convert color specifications to CSS. + https://puszcza.gnu.org.ua/bugs/?346 + +2016-12-11 Karl Berry + + * tex4ht-fonts-noncjk.tex ([g]version 2..18): eliminate + right-justified %'s, typos. + + * tex4ht-fonts-modern.tex (rm-lm): copyright for + tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/rm-lm.htf. + +2016-12-11 Michal Hoftich + + * tex4ht-fonts-modern.tex + (tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/lm/rm-lm.htf, + tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/rm-lmt.htf, + tex4ht.dir/texmf/tex4ht/ht-fonts/alias/lm/rm-lmvt.htf): + Typewriter lmodern fonts in OT1 encoding containded wrong + backslashes and other characters. + +2016-12-10 Michal Hoftich + + * tex4ht-4ht.tex (usepackage.4ht): There was catcode issue with + `:` character, it was 11 instead of 12. + * tex4ht-4ht.tex (fontspec-4ht.lua): There could be Lua error caused + by some fonts. + https://puszcza.gnu.org.ua/bugs/?123 + +2016-12-09 Karl Berry + + * tex4ht-env.tex: copyright 2016. + + * tex4ht-4ht.tex (usepackage.4ht): | + not copywrite, so the full notice is inserted. + +2016-12-08 Karl Berry + + * tex4ht-cond4ht.tex (mktex4ht.4ht): copyright 2016. + +2016-12-07 Michal Hoftich + + * tex4ht-env.tex (tex4ht.env): moved default picture conversion + scripts below alternative scripts, in order to enable their + selection with -c option of t4ht. + https://puszcza.gnu.org.ua/bugs/?343 + http://tug.org/pipermail/tex4ht/2016q4/001689.html + +2016-12-04 Michal Hoftich + + * tex4ht-4ht.tex (fontspec.4ht, fontspec-luatex.4ht, + fontspec-xetex.4ht): moved luatex and xetex definitions for + fontspec to fontspec-xetex.4ht and fontspec-luatex.4ht. + * mktex4ht-cnf.tex (mktex4ht.4ht): added fontspec-luatex. + +2016-12-03 Karl Berry + + * .svnignore (fontspec-4ht.lua): add. + + * Makefile (tex4ht_4ht_derived), + * mktex4ht-cnf.tex, + * tex4ht-4ht.tex: rename xetex-fontspec.4ht to fontspec-xetex.4ht. + + * tex4ht-4ht.tex (fontspec.4ht, fontspec-4ht.lua, fontspec-xetex.4ht), + * mktex4ht-cnf.tex: copyrights, svn:keywords, comments. + +2016-12-02 Karl Berry + + * tex4ht-4ht.tex (multirow.4ht): copyright. + +2016-12-02 Michal Hoftich + + * tex4ht-4ht.tex (multirow.4ht): fixed support for package multirow. + https://puszcza.gnu.org.ua/bugs/index.php?342 + +2016-11-27 Michal Hoftich + + * mktex4ht-cnf.tex: added requests for fontspec + * Makefile: added mktex4ht-cnf.tex as dependency for tex4ht-cond4ht.tex + +2016-11-27 Michal Hoftich + + * tex4ht-4ht.tex (usepackage.4ht, fontspec.4ht, fontspec-4ht.lua, + fontspec-xetex.4ht): Added support for Fontspec package, for both + LuaLaTeX and XeLaTeX + * tex4ht-html4.tex: Configuration for basic font commands when + fontspec is used. + https://puszcza.gnu.org.ua/bugs/?123 + +2016-11-25 Karl Berry + + * tex4ht-html4.tex, + * tex4ht-options.tex: copyright 2016, svn:keywords. + +2016-11-25 Michal Hoftich + + * tex4ht-html5.tex (html5.4ht): basic html5 template + * tex4ht-options.tex (tex4ht.4ht): added html5 option + * Makefile: generate html5 files + https://puszcza.gnu.org.ua/bugs/index.php?341 + +2016-11-23 Karl Berry + + * tex4ht-mathml.tex: Copyright 2016. + +2016-11-22 Michal Hoftich + + Towards http://puszcza.gnu.org.ua/bugs/?340. + + * tex4ht-mathml.tex (mathml.4ht): added \a:mathml commands + before some attributes where it was missing. This ensures use of + mathml: prefix if it is used in the output format. + + * tex4ht-ooffice.tex (ooffice-mml.4ht): Removed configurations + of 'left' and 'right', default configurations from mathml.4ht + should be used instead. + +2016-11-21 Michal Hoftich + + * tex4ht-mathml.tex (mathml.4ht): added \let\columnlines\empty + before use of \columnlines in \Configure{halignTB<>}. It caused + compilation error in ooffice mode. + +2016-10-05 Deimantas Galcius + + * Makefile (d) Experimental target "d" for dependency/derived files. + * Makefile (tohtmldir) move html files to html.dir + * Makefile (toderivedir) move derived files to derived.dir + * extra-bin/fls2d, extra-bin/flslg2d: scripts to read *fls/*.lg + and output *.d file + +2016-10-03 Deimantas Galcius + + * Makefile (PATH): set PATH to look into $extra_bin and $ht_bin; + TeXLive 2016 (DVD) does not ship with 'xhlatex', so we find it in + $ht_bin. + * Makefile (tex_options): set '-recorder' option to $tex_opts. We + want to know deps/derived files. + * Makefile (clean): add '*.fls' for removal + * Makefile (ht tex): replace with $(HTTEX) which respects $tex_opts + * Makefile ("-d./" in htlatex calls): replace "-d./" with "". + "-d./" means move generated files to current folder, which does + not make sense. + * Makefile (html4): Amend $(tex4ht_html4_derived) rule. No + dependency on html4.4ht-released. + * Remove (html4.4-released): Delete file. (hopefully) not needed + any more. + * Makefile: change $(dev_null) to "". + +2016-09-29 Deimantas Galcius + + * common-info.tex (CleanComment): fix CleanComment to not + raise latex run error on first pass. + * mktex4ht-cnf.tex (new file): copy of mktex4ht.cnf. The file + should not be generated by literate sources + * tex4ht-4ht.tex (mktex4ht.4ht,mktex4ht.cnf): remove mktex4ht.4ht + generation. Remove mktex4ht.cnf processing. Define macro + \Skipmkfilename. + * tex4ht-cond4ht.cnf (ConfigFiles,FirstPass): \ConfigFiles set to + a new file mktex4ht-cnf.tex; skip processing lit entries on + FirstPass; set a hook \Skipmkfilename for skipping mktex4ht.4ht + generation from tex4ht-4ht.tex + * tex4ht-info-html4.tex: remove code duplication; input + common-info.tex and common.tex; this also fixes latex run error as + in common-info.tex. + * tex4ht-info-javahelp.tex: remove code duplication; ensure to load + local mktex4ht.4ht + * tex4ht-info-mml.tex: ensure to load local mktex4ht.4ht + * tex4ht-info.tex: remove code duplication + +2016-09-20 Karl Berry + + * tex4ht-c.tex (scan postamble): allow any value <= the xdv byte, + instead of requiring equality. That way the same tex4ht binary + can be used with different versions of XeTeX. As of + XeTeX 3.14159265-2.6-0.99996 (TeX Live 2016), the id value is 7. + (version xdv): update value to 10. + +2016-08-10 Michal Hoftich + + * tex4ht-4ht.tex (latex.4ht): use \mathunderscore in math mode for + \_ macro. + * tex4ht-mathml.tex (mathml.4ht): fix for mathml. + https://puszcza.gnu.org.ua/bugs/?337 + +2016-07-19 Karl Berry + + * tex4ht-4ht.tex (lettrine.4ht) <\@lettrine>: use lettrine-* + for the + + * Makefile (dev_null): new macro for + + * tex4ht-sty.tex (tex4ht.sty): make macros patched by \pend:def + and similar patching commands \long, in order to correctly support + macros defined with \newcommand. + . + +2016-07-17 Karl Berry + + * tex4ht-4ht.tex (\CodeLineNo): disable again since Michal's + compilation fails. + +2016-06-05 Karl Berry + + * ProTex.sty, + * AlProTex.sty: symlinks to ../protex, so dev versions will be used. + * Makefile (common): depend on them. + + * tex4ht-c.tex, + * tex4ht-4ht.tex: enable new protex option CodeLineNo to generate + #line directives in the .c files, and %line comments in *.4ht. + http://puszcza.gnu.org.ua/bugs/?136 + +2016-07-04 Karl Berry + + * tex4ht-html-speech.tex, + * tex4ht-jsml.tex, + * tex4ht-mathltx.tex: update copyrights. + * Makefile (diff-all): --ignore-matching-lines for boilerplate. + +2016-07-04 Karl Berry + + * tex4ht-mkht.tex: don't hardwire c: paths. + +2016-07-03 Karl Berry + + * tex4ht-4ht.tex, + * tex4ht-auto-script.tex, + * tex4ht-env.tex, + * tex4ht-sty.tex: remove nonascii chars in comments. + +2016-07-02 Karl Berry + + * tex4ht-4ht.tex (lettrine.4ht): delete the .lettrine-Agrave css + with literal Agraves, to avoid encoding agony. Update copyright. + +2016-07-01 Karl Berry + + * tex4ht-sty.tex (tex4ht.sty), + * tex4ht-4ht.tex (usepackage.4ht): unify copyright notices. + +2016-06-30 Karl Berry + + * tex4ht-4ht.tex (latex.4ht): unify copyright notice. + +2016-06-30 Michal Hoftich + + * tex4ht-4ht.tex (latex.4ht): added \hbox{} to active + hyphen in order to prevent ligatures in environments defined + with \ScriptEnv. + + +2016-06-16 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): added \par command to sectioning + commands, text can be outside paragraphs otherwise. + + +2016-06-16 Michal Hoftich + + * tex4ht-4ht.tex (html4.4ht): Replaced non-breaking Unicode space with + normal spaces. + + +2016-06-16 Michal Hoftich + + * tex4ht-4ht.tex: Fixed lstinline configuration - spurious \aftergroup. + +2016-06-15 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): Fixed configurations for + algorithmic package - indentation and line number align. + + +2016-06-15 Michal Hoftich + + * tex4ht-4ht.tex, + * tex4ht-misc.tex: move definitions for lettrine to tex4ht-4ht.tex. + * Makefile: don't compile tex4ht-misc.tex, it causes overwritting of + mktex4ht.cnf. + +2016-06-10 Michal Hoftich + + * tex4ht-html4.tex, + * tex4ht-html-speech.tex, + * tex4ht-html32.tex, + * tex4ht-ooffice.tex: remove explicit two-space indentation in + fancyvrb configuration; found by deimi. + + +2016-06-09 Michal Hoftich + + * tex4ht-sty.tex (tex4ht.sty): added \:dontusepackage macro for + package loading preventing. Changed \@onefilewithoptions + patching, second argument is read and saved. + * tex4ht-4ht.tex (usepackage.4ht): added savetrees.sty to list + of packages detected upon their loading. It is blocked from + loading, as it causes tex4ht to fail. + * Makefile: add derived files. + https://puszcza.gnu.org.ua/bugs/?309 + +2016-05-24 Michal Hoftich + + * tex4ht-4ht.tex (geometry.4ht): new file to turn off frame-drawing. + + * Makefile (tex4ht_4ht_derived): add it. + +2016-05-22 Karl Berry + + * tex4ht-c.tex (search_file): return NULL rather than FALSE + to placate MiKTeX. Report from Mojca, + https://sourceforge.net/p/miktex/bugs/2488. + +2016-03-31 Karl Berry + + * Makefile (tex4ht_info_html4_derived, tex4ht_info_javahelp_derived, + tex4ht_misc_derived): new variables, targets. + + * tex4ht-docbook.tex, + * tex4ht-html-speech.tex, + * tex4ht-html0.tex, + * tex4ht-html32.tex, + * tex4ht-ooffice.tex, + * tex4ht-tei.tex: likewise make timestamps (\:today) in output + off by default, enabled with timestamp option. In css files + and other contexts where an option is inconvenient, just remove them. + + * tex4ht-javahelp.tex, + * tex4ht-docbook.tex: reference tug rather than ohio-state.edu + web site. + +2016-03-31 Michal Hoftich + + * tex4ht-html4.tex (html4.4ht): remove timestamp from the HTML4 + output. It can be enabled with ``timestamp'' option. + https://puszcza.gnu.org.ua/bugs/index.php?277 + +2016-03-16 Karl Berry + + * Makefile (tex4ht_4ht_derived): add biblatex.4ht. + +2016-03-16 Michal Hoftich + + * tex4ht-4ht.tex (biblatex.4ht): support for biblatex 3.0. + http://puszcza.gnu.org.ua/bugs/?273> + +2016-02-01 Michal Hoftich + + * tex4ht-fonts-noncjk.tex (pcrro8r.htf): Fixed some wrong characters. + http://puszcza.gnu.org.ua/bugs/?271 + +2016-01-12 Michal Hoftich + + * tex4ht-4ht.tex (hyperref.4ht): Added support for \nameref* command, + http://tex.stackexchange.com/q/285339/2891, + http://puszcza.gnu.org.ua/bugs/?269. + +2016-01-04 Michal Hoftich + + * tex4ht-4ht.tex (biblatex.4ht): Fix for version checking + +2015-12-19 Michal Hoftich + + * tex4ht-ooffice.tex (il2-pl.tcx url encoder): Fix the file + encoding. It is related to a earlier bug in tex4ht-html4.tex, + where input encoding error was reported with package babel when + LuaLaTeX was used for compilation. Just + \input{html4-l2-url.4ht}. + Report from Guido Milanese, Dec 18 23:29:28 CET 2015, + http://tug.org/pipermail/tex4ht/2015q4/001326.html. + + * tex4ht-4ht.tex (, frenchn.4ht): disable LuaTeX + callback which causes tex4ht command to fail. + +2015-10-25 Michal Hoftich + + * tex4ht-fonts-noncjk.tex (tcrm-uni): Updated support for textcomp + font tcrm. + * Makefile (tex4ht_fonts_noncjk_derived): add derived file + tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/jknappen/tc/tcrm.htf. + https://puszcza.gnu.org.ua/bugs/?264 + +2015-10-09 Karl Berry + + * Makefile (tex4ht_fonts_modern_derived): new var for l7x, + and make it a target in addition to noncjk_derived. + +2015-10-09 Michal Hoftich + + * tex4ht-fonts-modern.tex (l7x-lmcsc.htf, l7x-lm.htf): fixed + diacritic marks for Lithuanian language. + https://puszcza.gnu.org.ua/bugs/?263 + +2015-09-29 Michal Hoftich + + * tex4ht-ooffice.tex (configure ooffice subscript), + * tex4ht-4ht.tex (subscript.4ht), + * tex4ht-html4.tex (configure html4 subscript): + support for \textsubscript. http://puszcza.gnu.org.ua/bugs/?262 + * Makefile (derived): add subscript.4ht. + +2015-08-05 Michal Hoftich + and Karl Berry + + * Makefile (derived): add graphicx.4ht. + * tex4ht-4ht.tex (graphicx.4ht): usee .xbb for png/jpg/gif. + https://puszcza.gnu.org.ua/bugs/?257 + +2015-06-10 Michal Hoftich + + * tex4ht-ooffice.tex (save image name): use \Gin@ext rather than + \PictExt (which is apparently always png). Report from Simon Spiegel, + 10 Jun 2015 10:21:19. + +2015-06-10 Radhakrishnan CV + + * tex4ht-4ht.tex (biblatex): \blx@checksum was a parameterless + macro, while the current biblatex defines it as a macro with three + parameters. The macro has been redefined to match the package. The bug + was reported by Simon Spiegel and fix suggested by Michal Hoftich. + http://tug.org/pipermail/tex4ht/2015q2/001211.html (and previous). + +2015-06-07 Michal Hoftich + + * tex4ht-fonts-noncjk.tex: huge update of T1-encoded fonts + not previously supported by tex4ht. + * t1fontmake.lua: new script. + * t1fontsample.tex: new sample tex file. + * Makefile (tex4ht_fonts_noncjk_derived): add two of + the new aliases/t1fonts/*.htf files. + Mail of http://tug.org/pipermail/tex4ht/2015q2/001180.html. + +2015-05-25 Michal Hoftich + and Karl Berry + + * tex4ht-fonts-noncjk.tex (eccc): new font support. + https://puszcza.gnu.org.ua/bugs/?253 + + * Makefile (tex4ht_fonts_noncjk_derived): add the new + tex4ht.dir/texmf/tex4ht/ht-fonts/alias/ec/eccc.htf + tex4ht.dir/texmf/tex4ht/ht-fonts/unicode/ec/eccc-uni.htf + as htf output examples. + +2015-04-14 Michal Hoftich + + * Makefile (tex4ht_4ht_derived): add memoir.4ht. + * tex4ht-4ht.tex: improve array and tabular support for memoir; + input array,dcolumn,tabularx,booktabs.4ht, disable \columnlines. + http://puszcza.gnu.org.ua/bugs/?249 + +2015-04-01 Michal Hoftich + + * tex4ht-ooffice.tex: configure wrapfig to avoid spurious \par. + https://puszcza.gnu.org.ua/bugs/?247 + +2015-02-17 Michal Hoftich + + * tex4ht-4ht.tex (spanish.4ht): fix missing csname when Spanish + babel is used. + https://puszcza.gnu.org.ua/bugs/?245 + * Makefile (tex4ht_4ht_derived): add spanish.4ht. + +2015-02-11 Michal Hoftich + + * tex4ht-ooffice.tex (ooffice.4ht): fix images in subfolders + handling -- everything in Pictures/. + * tex4ht-env.tex: likewise, copy all images to one directory. + https://puszcza.gnu.org.ua/bugs/?240 + +2015-02-13 Michal Hoftich + + * tex4ht-mathml.tex (mathml.4ht) : + output + + * tex4ht-mathml.tex (mathml.4ht) : \ifmmode\else + to avoid some (but not all) + problems. https://puszcza.gnu.org.ua/bugs/?244 + +2015-02-07 Michal Hoftich + + * tex4ht-4ht.tex (scrartcl.4ht, scrbook.4ht, scrreprt.4ht): + koma-script patch, mail of 6 Feb 2015 12:32:10. + Original report from Alexander Willand. + +2015-02-04 Radhakrishnan CV + + * tex4ht-4ht.tex (biblatex.4ht): biblatex fixes for + http://puszcza.gnu.org.ua/bugs/?227. + +2015-01-29 Michal Hoftich and Karl Berry + + * Makefile (tex4ht_4ht_derived): add quoting.4ht. + * tex4ht-4ht.tex (quoting.4ht): new generated file, + to restore

when quoting.sty is sued. + http://puszcza.gnu.org.ua/bugs/?198 + http://tex.stackexchange.com/q/140986/2891 + +2015-01-28 Michal Hoftich + + * tex4ht-mathltx.tex + * tex4ht-mathml.tex + * tex4ht-html-speech.tex + * tex4ht-jsmath.tex: added \relax after \mathchar to prevent eating + following characters as hexadecimal numbers. + https://puszcza.gnu.org.ua/bugs/?230 + http://tex.stackexchange.com/q/116340/2891 + + * Makefile (diff): new convenience target. + +2015-01-28 Karl Berry + + * tex4ht-4ht.tex (\CopyYear, \TeX4ht copyright): no need for + en-dash in copyrights. + (frenchb.4ht): rework copyrights, and install in TL, + including previously-unreleased testing for + \FDP@space vs. \FDP@colonspace. + +2015-01-26 Michal Hoftich and Karl Berry + + * tex4ht-html4.tex: generate {html4-l2-url,html4-russian-accents}.4ht + as separate files, to avoid having html4.4ht with multiple encodings, + which lualatex does not like to read. + * Makefile (tex4ht_html4_derived): add the new files. + +2015-01-23 Karl Berry + + * html4.4ht-released: new file, copied from current TL. + * Makefile (tex4ht_html4_derived): enable, and intersperse + copying of html4.4ht-released to html4.4ht with latex runs, + per comments at top of file. No significant differences remain. + +2015-01-19 Michal Hoftich + + * tex4ht-html4.tex, + * tex4ht-unicode.tex: remove spurious semicolon produced by + \textregistered command. + http://puszcza.gnu.org.ua/bugs/?242 + http://tex.stackexchange.com/questions/223804/tex4ht-textregistered-and-an-unwanted-semicolon + +2014-10-28 Michal Hoftich + + * tex4ht-html4.tex: Spurious comma in css selector causes CSS + validation error. + https://puszcza.gnu.org.ua/bugs/index.php?232 + +2014-10-10 Peter Breitenlohner + + * tex4ht-c.tex: Avoid compiler warning [-Wunused-value]. + (Backport from TeX Live.) + +2014-07-15 Michal Hoftich + + * tex4ht-4ht.tex (scrbook.4ht, scrreprt.4ht, scrartcl.4ht): Update + KOMA-Script configurations to handle recent changes in the classes + for the \rm, etc., font commands. + http://tug.org/pipermail/tex4ht/2014q1/000913.html + http://puszcza.gnu.org.ua/bugs/?205 + * Makefile (tex4ht_4ht_derived): add the affected scr*.4ht. + +2014-07-14 Karl Berry + + * Makefile (tex4ht_4ht_derived): add titlesec.4ht. + (titlesec 2005) <\ttl:straight@i>: use {#2} in case arg contains + brackets. From Michal Hoftich. + http://tex.stackexchange.com/q/185866/ + http://puszcza.gnu.org.ua/bugs/?215 + +2014-07-13 Karl Berry + + * Makefile (tex4ht_4ht_derived): add listings.4ht. + * tex4ht-4ht.tex (listings.4ht): handle listings' escapechar + feature. From Michal Hoftich. + http://tex.stackexchange.com/q/188322/2891 + http://puszcza.gnu.org.ua/bugs/?221 + +2014-07-13 Karl Berry + + * Makefile (tex4ht_4ht_derived): add tocloft.4ht. + * tex4ht-4ht.tex (tocloft.4ht): new generated file, + to turn off tocloft toc's. Fix from Michal Hoftich. + http://tex.stackexchange.com/q/190991/2891 + http://puszcza.gnu.org.ua/bugs/?220 + + * tex4ht-4ht.tex (TeX4ht license text): new macro without + copyright line, used in the new .4ht file. + (TeX4ht copyright): use that after the copyright line. + +2014-06-27 Karl Berry + + * tex4ht-4ht.tex (mwcls divs): omit error if not in vertical mode + in mwbk.cls. Report from Sylwester Arabas, fix from Deimantas Galcius. + http://puszcza.gnu.org.ua/bugs/?214 + +2014-06-27 Karl Berry + + * tex4ht-fonts-noncjk.tex, + * tex4ht-mathltx.tex, + * tex4ht-mathml.tex: copyright years and notices. + +2014-06-26 Chris Horler + + * tex4ht-mathltx.tex, + * tex4ht-mathml.tex: use different align= values + instead of CSS text-align: values, per current standards. + Affects mathltx.4ht and mathml.4ht. + https://puszcza.gnu.org.ua/bugs/?219 + +2014-06-26 Karl Berry + + * Makefile (tex4ht_mathml_derived): new variable and target, + for tex4ht-mathml.tex. + + * Makefile (tex4ht_fonts_noncjk_derived): evidently lm-htf.tex + is created from tex4ht-fonts-noncjk.tex, but not cmtex.htf. + Don't see where/how cmtex.htf is created. + +2014-05-22 Karl Berry + + * tex4ht-4ht.tex (shared url): must use definition + of \set@mathnolig from previous url.sty, since we must + use literal _ rather than \sb for tex4ht. (From CVR.) + +2014-02-21 Karl Berry + + * tex4ht-html4.tex (font-size): need \%, not %, for the 70%. + Found by Raphael Pinson, http://puszcza.gnu.org.ua/bugs/?189. + +2014-02-10 Karl Berry + + * tex4ht-env.tex: use gs instead of convert for making bitmaps + (from dick, + notes). + + * tex4ht-env.tex: use %%~ or ~ instead of hardwired gurari dir. + +2013-10-07 Karl Berry + + * Makefile (tex4ht-fonts-{cjk,cjk-utf8,noncjk}*): new targets and vars. + * tex4ht-fonts-noncjk.tex: do not generate cjk and cjk-utf8. + * tex4ht-fonts-cjk-utf8.tex: copyright update. + +2013-07-02 Peter Breitenlohner + + * tex4ht-c.tex, tex4ht-t4ht.tex: Always include system headers + after . (Backport from TeX Live.) + +2013-03-01 Radhakrishnan CV + + * tex4ht-ooffice.tex: \NoFonts ... \EndNoFonts added in + {footnotetext} configuration to avoid font size anomalies in + footnotes when footnote text has accented characters. Patch + submitted by Nicolai Rostov, Feb 28, 2013 at 4:40 AM. + +2013-01-08 Peter Breitenlohner + + Backport from TeX Live. + * tex4ht-c.tex, tex4ht-t4ht.tex: Drop set but unused variables. + +2012-07-27 Peter Breitenlohner + + Adapt to W32TeX (backport from TeX Live). + * tex4ht-c.tex, tex4ht-t4ht.tex [WIN32]: + Use binary mode for output files. + Pass program name string to kpse_set_program_name. + Must not free argv. + +2011-09-18 Karl Berry + + * tex4ht-unicode.tex (): \H{O} is 0150, + not 0151; http://www.fileformat.info/info/unicode/char/150/index.htm. + Report from Tibor Tomacs, 18 Sep 2011 12:34:09, + http://puszcza.gnu.org.ua/bugs/?147. + +2010-12-25 Karl Berry + + * tex4ht-c.tex (): allow -hA to enable all tracing. + (): fatal error if we don't find it, since the + next thing we do is seek on the file which crashes anyway. + (): use --format=othertext so we can find + tex4ht.env. However, this is not enough to find the .htf files, + so it's still not possible to run the program as anything except + `tex4ht'. So it goes. + +2010-12-24 Karl Berry + + * tex4ht-c.tex, + * tex4ht-t4ht.tex: attempt to document which files I think these + programs read and write. Fix a couple typos. + +2010-12-23 Karl Berry + + * tex4ht-c.tex, + * tex4ht-t4ht.tex, + * tex4ht-htcmd.tex: rewrite some doc uses of "win32". + + * common-info.tex (\CleanComment): lengthy comment about ultimate + failure trying to make the info option work with mzlatex. + + * tex4ht-info-mml.tex (configure infomml tex4ht): use \Configure, + not the undefined \Contribution, add plain text heading + like the others. + +2010-12-16 Peter Breitenlohner + + * tex4ht-t4ht.tex: missed <<<. + +2010-12-14 Karl Berry + + * tex4ht-c.tex, + * tex4ht-t4ht.tex (resplit argv for windows): new section, from Akira + Kakuto. + + * tex4ht-htcmd.tex: document that this not used. + +2010-11-17 Karl Berry + + * all files: switch to ranges in copyright notices. + +2010-11-17 Karl Berry + + * tex4ht-c.tex: compiler options are a comment, despite #define's. + +2010-11-16 Peter Breitenlohner + + * t4ht.c (main): Initialize addr and media in order to avoid + compiler warnings. Use '#if 0' to skip unreachable code. + +2010-11-12 Peter Breitenlohner + + * t4ht.c (filterGifScript): Avoid 'filtered_script might be used + uninitialized'. Use NULL_SCRIPT. + +2010-03-17 Karl Berry + + * tex4ht-auto-script.tex: unused, it seems. + +2010-03-12 Karl Berry + + * tex4ht-bibtex2.tex: license notices. + * Makefile: add derivations. + +2010-03-11 Karl Berry + + * tex4ht-c.tex: license notices. + * Makefile: add derivations. + +2010-03-08 Karl Berry + + * tex4ht-cond4ht.tex: license notices. + * mktex4ht.cnf: new (empty) file, needed to run cond4ht. + * Makefile: add derivations. + * tex4ht-cpright.tex: note additional copy. + * all files: no period ending copyright lines, I guess. + +2010-03-08 Karl Berry + + * tex4ht-docbook-xtpipes.tex: license notices. + * Makefile: add derivations. + +2010-03-07 Karl Berry + + * tex4ht-docbook.tex: license notices. + * Makefile: add derivations. + +2010-03-06 Karl Berry + + * tex4ht-env.tex: license notices. + (dvips convert (personal)): do not hardcode path to convert + (else zztex4ht-env.ps is left behind). + * Makefile: add derivations. + +2010-03-05 Karl Berry + + * tex4ht-fonts-noncjk.tex: start at license notices. + Correct quoting of the + \Needs{"xhlatex tex4ht-fonts-4hf ..."} line. + * Makefile: start at derivations. + +2010-03-04 Radhakrishnan CV + + * tex4ht-mkht.tex ( + + * tex4ht-htcmd.tex: update license notices. + * Makefile: add derivations. + +2010-03-03 Karl Berry + + * tex4ht-html-speech-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-03-02 Karl Berry + + * tex4ht-html-speech.tex, + * tex4ht-html0.tex: update license notices. + * Makefile: add derivations. + +2010-02-28 Karl Berry + + * tex4ht-html32.tex, + * tex4ht-html4.tex: update license notices. + * Makefile: add derivations. + +2010-02-26 Karl Berry + + * tex4ht-info-mml.tex, + * tex4ht-info-ooffice.tex: update license notices. + * Makefile: add derivations. + +2010-02-25 Karl Berry + + * tex4ht-info-svg.tex, + * tex4ht-javahelp-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-02-23 Karl Berry + + * tex4ht-javahelp.tex, + * tex4ht-jsmath.tex: update license notices. + * Makefile: add derivations. + +2010-02-22 Karl Berry + + * tex4ht-jsml-xtpipes.tex, + * tex4ht-jsml.tex: update license notices. + * Makefile: add derivations. + +2010-02-21 Karl Berry + + * tex4ht-mathltx.tex: update license notices. + * Makefile: add derivations. + +2010-02-18 Karl Berry + + * tex4ht-mathplayer.tex: update license notices. + * tex4ht-mkht.tex: update some license notices, more to come. + * Makefile: add derivations. + +2010-02-17 Karl Berry + + * tex4ht-moz.tex: update license notices. + * Makefile: add derivations. + +2010-02-16 Karl Berry + + * tex4ht-oo-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-02-15 Karl Berry + + * tex4ht-ooffice.tex: update license notices. + * Makefile: add derivations. + +2010-02-14 Karl Berry + + * tex4ht-ooimpress.tex: update license notices. + Remove would-be generation of ooimpress-math and ooimpress-mml, + since it seems they are not actually generated. + * Makefile: add derivations. + +2010-02-13 Karl Berry + + * common-code.tex: new file. + * tex4ht-unicode.tex: use it. + + * tex4ht-options.tex: update license notices. + * Makefile: add derivations. + +2010-02-12 Karl Berry + + * tex4ht-sty.tex: update license notices. + * Makefile: add derivations. + +2010-02-11 Karl Berry + + * tex4ht-svg.tex: update license notices. + * Makefile: add derivations. + + * All files so far: Put current (2010) copyright line first. + +2010-02-10 Karl Berry + + * tex4ht-t4ht.tex: update license notices. + * Makefile: add derivations. + +2010-02-09 Karl Berry + + * tex4t-tei.tex: update license notices. + * Makefile: add derivations. + * tex4ht-cpright.tex: new macro |TeX4ht copywrite, + to output the license notice with a \write to the log file. + +2010-02-08 Karl Berry + + * tex4ht-unicode.tex: update license notices. + * Makefile: add derivations. + +2010-02-07 Karl Berry + + * tex4ht-word.tex: update license notices. + * Makefile: add derivations. + +2010-02-06 Karl Berry + + * tex4ht-xhtml-xtpipes.tex: update license notices. + * Makefile: add derivations. + + * tex4ht-xhtmml-xtpipes.tex, + * xtpipes.tex: \message when running the lit sources doesn't + seem useful. Remove it. + +2010-02-05 Karl Berry + + * tex4ht-xhtmml-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-02-03 Karl Berry + + * wripro.tex: add license notice. + +2010-02-02 Karl Berry + + * xtpipes.tex: add derivation info and copyright messages + to generated files. + * tex4ht-cpright.tex: minimize lines. + * Makefile: start at new file. + +2010-02-23 Peter Breitenlohner + + * t4ht.c (get_env_dir) [WIN32]: Declare as static. + +2010-02-20 Peter Breitenlohner + + * tex4ht.c [__MINGW32__]: #define HAVE_BOOLEAN in order to avoid + conflicting declaration for boolean from kpathsea/types.h. + Declare various param strings as const. + +2009-09-30 Peter Breitenlohner + + * t4ht.c, tex4ht.c: Declare numerous param and local strings as + const. + +This file is public domain. Started 2010, Karl Berry. +2011-09-18 Karl Berry + + * tex4ht-unicode.tex (): \H{O} is 0150, + not 0151; http://www.fileformat.info/info/unicode/char/150/index.htm. + Report from Tibor Tomacs, 18 Sep 2011 12:34:09, + http://puszcza.gnu.org.ua/bugs/?147. + +2010-12-25 Karl Berry + + * tex4ht-c.tex (): allow -hA to enable all tracing. + (): fatal error if we don't find it, since the + next thing we do is seek on the file which crashes anyway. + (): use --format=othertext so we can find + tex4ht.env. However, this is not enough to find the .htf files, + so it's still not possible to run the program as anything except + `tex4ht'. So it goes. + +2010-12-24 Karl Berry + + * tex4ht-c.tex, + * tex4ht-t4ht.tex: attempt to document which files I think these + programs read and write. Fix a couple typos. + +2010-12-23 Karl Berry + + * tex4ht-c.tex, + * tex4ht-t4ht.tex, + * tex4ht-htcmd.tex: rewrite some doc uses of "win32". + + * common-info.tex (\CleanComment): lengthy comment about ultimate + failure trying to make the info option work with mzlatex. + + * tex4ht-info-mml.tex (configure infomml tex4ht): use \Configure, + not the undefined \Contribution, add plain text heading + like the others. + +2010-12-16 Peter Breitenlohner + + * tex4ht-t4ht.tex: missed <<<. + +2010-12-14 Karl Berry + + * tex4ht-c.tex, + * tex4ht-t4ht.tex (resplit argv for windows): new section, from Akira + Kakuto. + + * tex4ht-htcmd.tex: document that this not used. + +2010-11-17 Karl Berry + + * all files: switch to ranges in copyright notices. + +2010-11-17 Karl Berry + + * tex4ht-c.tex: compiler options are a comment, despite #define's. + +2010-11-16 Peter Breitenlohner + + * t4ht.c (main): Initialize addr and media in order to avoid + compiler warnings. Use '#if 0' to skip unreachable code. + +2010-11-12 Peter Breitenlohner + + * t4ht.c (filterGifScript): Avoid 'filtered_script might be used + uninitialized'. Use NULL_SCRIPT. + +2010-03-17 Karl Berry + + * tex4ht-auto-script.tex: unused, it seems. + +2010-03-12 Karl Berry + + * tex4ht-bibtex2.tex: license notices. + * Makefile: add derivations. + +2010-03-11 Karl Berry + + * tex4ht-c.tex: license notices. + * Makefile: add derivations. + +2010-03-08 Karl Berry + + * tex4ht-cond4ht.tex: license notices. + * mktex4ht.cnf: new (empty) file, needed to run cond4ht. + * Makefile: add derivations. + * tex4ht-cpright.tex: note additional copy. + * all files: no period ending copyright lines, I guess. + +2010-03-08 Karl Berry + + * tex4ht-docbook-xtpipes.tex: license notices. + * Makefile: add derivations. + +2010-03-07 Karl Berry + + * tex4ht-docbook.tex: license notices. + * Makefile: add derivations. + +2010-03-06 Karl Berry + + * tex4ht-env.tex: license notices. + (dvips convert (personal)): do not hardcode path to convert + (else zztex4ht-env.ps is left behind). + * Makefile: add derivations. + +2010-03-05 Karl Berry + + * tex4ht-fonts-noncjk.tex: start at license notices. + Correct quoting of the + \Needs{"xhlatex tex4ht-fonts-4hf ..."} line. + * Makefile: start at derivations. + +2010-03-04 Radhakrishnan CV + + * tex4ht-mkht.tex ( + + * tex4ht-htcmd.tex: update license notices. + * Makefile: add derivations. + +2010-03-03 Karl Berry + + * tex4ht-html-speech-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-03-02 Karl Berry + + * tex4ht-html-speech.tex, + * tex4ht-html0.tex: update license notices. + * Makefile: add derivations. + +2010-02-28 Karl Berry + + * tex4ht-html32.tex, + * tex4ht-html4.tex: update license notices. + * Makefile: add derivations. + +2010-02-26 Karl Berry + + * tex4ht-info-mml.tex, + * tex4ht-info-ooffice.tex: update license notices. + * Makefile: add derivations. + +2010-02-25 Karl Berry + + * tex4ht-info-svg.tex, + * tex4ht-javahelp-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-02-23 Karl Berry + + * tex4ht-javahelp.tex, + * tex4ht-jsmath.tex: update license notices. + * Makefile: add derivations. + +2010-02-22 Karl Berry + + * tex4ht-jsml-xtpipes.tex, + * tex4ht-jsml.tex: update license notices. + * Makefile: add derivations. + +2010-02-21 Karl Berry + + * tex4ht-mathltx.tex: update license notices. + * Makefile: add derivations. + +2010-02-18 Karl Berry + + * tex4ht-mathplayer.tex: update license notices. + * tex4ht-mkht.tex: update some license notices, more to come. + * Makefile: add derivations. + +2010-02-17 Karl Berry + + * tex4ht-moz.tex: update license notices. + * Makefile: add derivations. + +2010-02-16 Karl Berry + + * tex4ht-oo-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-02-15 Karl Berry + + * tex4ht-ooffice.tex: update license notices. + * Makefile: add derivations. + +2010-02-14 Karl Berry + + * tex4ht-ooimpress.tex: update license notices. + Remove would-be generation of ooimpress-math and ooimpress-mml, + since it seems they are not actually generated. + * Makefile: add derivations. + +2010-02-13 Karl Berry + + * common-code.tex: new file. + * tex4ht-unicode.tex: use it. + + * tex4ht-options.tex: update license notices. + * Makefile: add derivations. + +2010-02-12 Karl Berry + + * tex4ht-sty.tex: update license notices. + * Makefile: add derivations. + +2010-02-11 Karl Berry + + * tex4ht-svg.tex: update license notices. + * Makefile: add derivations. + + * All files so far: Put current (2010) copyright line first. + +2010-02-10 Karl Berry + + * tex4ht-t4ht.tex: update license notices. + * Makefile: add derivations. + +2010-02-09 Karl Berry + + * tex4t-tei.tex: update license notices. + * Makefile: add derivations. + * tex4ht-cpright.tex: new macro |TeX4ht copywrite, + to output the license notice with a \write to the log file. + +2010-02-08 Karl Berry + + * tex4ht-unicode.tex: update license notices. + * Makefile: add derivations. + +2010-02-07 Karl Berry + + * tex4ht-word.tex: update license notices. + * Makefile: add derivations. + +2010-02-06 Karl Berry + + * tex4ht-xhtml-xtpipes.tex: update license notices. + * Makefile: add derivations. + + * tex4ht-xhtmml-xtpipes.tex, + * xtpipes.tex: \message when running the lit sources doesn't + seem useful. Remove it. + +2010-02-05 Karl Berry + + * tex4ht-xhtmml-xtpipes.tex: update license notices. + * Makefile: add derivations. + +2010-02-03 Karl Berry + + * wripro.tex: add license notice. + +2010-02-02 Karl Berry + + * xtpipes.tex: add derivation info and copyright messages + to generated files. + * tex4ht-cpright.tex: minimize lines. + * Makefile: start at new file. + +2010-02-23 Peter Breitenlohner + + * t4ht.c (get_env_dir) [WIN32]: Declare as static. + +2010-02-20 Peter Breitenlohner + + * tex4ht.c [__MINGW32__]: #define HAVE_BOOLEAN in order to avoid + conflicting declaration for boolean from kpathsea/types.h. + Declare various param strings as const. + +2010-01-11 Karl Berry + + * texmf/tex/generic/tex4ht/frenchb.4ht: patch from + daniel.flipo@univ-lille1.fr to improve compatibility + with different versions of frenchb. + +2009-09-30 Peter Breitenlohner + + * t4ht.c, tex4ht.c: Declare numerous param and local strings as + const. + +This file is public domain. Started 2010, Karl Berry. + +# vim: textwidth=78 diff --git a/support/TeX4ht/source/Makefile b/support/TeX4ht/source/Makefile new file mode 100644 index 0000000000..702bc156fa --- /dev/null +++ b/support/TeX4ht/source/Makefile @@ -0,0 +1,834 @@ +# $Id: Makefile 924 2021-05-02 22:55:22Z karl $ +# This file is public domain. Originally written 2010, Karl Berry. +# Assumes GNU make. + +# todo: look for xx below, among much more. + +SHELL = /bin/sh + +# setting PATH as it's nice to find our own (development) scripts, +# e.g., look for xmlint and vcss in ./extra-bin. +extra_bin = ./extra-bin +ht_bin = ../bin/ht/unix +PATH := $(shell echo $$PATH) +# +# per-user addition to PATH. We need to use LaTeX out of current TeX Live, +# since changes that affect tex4ht are often made. Include trailing :. +ifeq ($(USER),karl) +user_bin := /usr/local/texlive/dev/bin/x86_64-linux: +else +user_bin := +endif +# +export PATH := $(ht_bin):$(extra_bin):$(user_bin)$(PATH) + +homedir ?= tex4ht.dir +wd = work.dir +htmldir = html.dir +xtpipesdir = xtpipes.dir +deriveddir = derived.dir +texmf_t4ht_bin = texmf/tex4ht/bin +# List of directories we'll substitute into tex4ht-dir.tex below: +dirs = homedir wd htmldir xtpipesdir deriveddir texmf_t4ht_bin + +# do_java variable to control how tex4ht.jar is built. +# do_java=1 works only if tex4ht-dir.tex is not already built with +# do_java=0 option. +# Similarly do_java=0 will keep java compilation in tex in addition to +# building in Makefile if tex4ht-dir.tex was already built with +# do_java=1 +# 0 = in Makefile only +# 1 = in .tex only +# 2 = no java compilation +do_java ?= 2 +java_in_make := false +java_in_tex := false +ifeq ($(do_java),0) +java_in_make := true +else ifeq ($(do_java),1) +java_in_tex := true +else ifneq ($(do_java),2) +$(error Invalid do_java, supported values are 0, 1, and 2) +endif + +# The xtpipes.jar is an intermediate product that is needed only when +# java compilation is made through t4ht system call (do_java=1), not +# when the java compilation is made in Makefile (do_java=0) +ifeq ($(java_in_tex),true) +xtpipe_jar = $(wd)/bin/xtpipes.jar +else +xtpipe_jar = # +endif + +tex_opts = --interaction=nonstopmode -recorder #--file-line-error +tex_1opt = "$(tex_opts)" # must be quoted, passing to shell script +dev_null = $@ || rm -f $@ + +# Start long list of generated files from the literate sources. Needs more. +derived = + +derived += $(tex4ht_cond4ht_derived) +tex4ht_cond4ht_derived = cond4ht.4ht mktex4ht.4ht +derived += $(tex4ht_4ht_derived) +tex4ht_4ht_derived = \ + abstract.4ht adjustbox.4ht algorithmic.4ht amsmath.4ht \ + animate.4ht authblk.4ht appendix.4ht \ + biblatex.4ht biblatex-chicago.4ht book.4ht bussproofs.4ht \ + caption.4ht cleveref.4ht color.4ht colortbl.4ht \ + fontspec.4ht fontspec-4ht.lua fontspec-luatex.4ht fontspec-xetex.4ht \ + footmisc.4ht framed.4ht frenchb.4ht floatpag.4ht \ + geometry.4ht graphics.4ht graphicx.4ht \ + hyperref.4ht \ + imakeidx.4ht \ + jurabib.4ht \ + latex.4ht lettrine.4ht listings.4ht longtable.4ht \ + ltugboat.4ht ltugboat-a.4ht ltugproc.4ht ltugproc-a.4ht \ + magyar.4ht mdframed.4ht memoir.4ht minted.4ht multicol.4ht multirow.4ht \ + nameref.4ht natbib.4ht \ + parallel.4ht proof.4ht pstricks.4ht pythontex.4ht \ + quoting.4ht \ + reading.4ht \ + scrartcl.4ht scrbook.4ht scrreprt.4ht scrjura.4ht sectionbreak.4ht \ + skak.4ht spanish.4ht subscript.4ht svg.4ht \ + tabu.4ht tcolorbox.4ht titlesec.4ht tocloft.4ht \ + tuenc-luatex.4ht tuenc-xetex.4ht \ + tugboat.4ht \ + usepackage.4ht usepackage-fontspec.4ht \ + wrapfig.4ht \ + xcolor.4ht xr.4ht xr-hyper.4ht +# xx and many, many more. + +derived += $(tex4ht_bibtex2_derived) +tex4ht_bibtex2_derived = bibtex2.4ht + +derived += $(tex4ht_c_derived) +tex4ht_c_derived = tex4ht.c + +derived += $(tex4ht_docbook_derived) +tex4ht_docbook_derived = docbook.4ht docbook-math.4ht docbook-mml.4ht + +ifeq ($(java_in_make),true) +derived += $(tex4ht_docbook_xtpipes_derived) +tex4ht_docbook_xtpipes_derived = docbook.4xt $(wd)/src/DbUtilities.java +endif + +derived += $(tex4ht_env_derived) +tex4ht_env_derived = tex4ht.env-unix tex4ht.env-win32 tex4ht.env + +derived += $(tex4ht_fonts_cjk_derived) +tex4ht_fonts_cjk_derived = \ + $(ht_fonts_devdir)/unicode/cjk/gbksong/gbksong01.htf +# and a whole lot more + +derived += $(tex4ht_fonts_cjk_utf8_derived) +tex4ht_fonts_cjk_utf8_derived = \ + $(ht_fonts_devdir)/unicode/cjk/utf8/utf8songa0.htf + +# noncjk.tex \input's modern, but seems more maintainable +# to have separate lists. +ht_fonts_devdir = $(homedir)/texmf/tex4ht/ht-fonts +derived += $(tex4ht_fonts_noncjk_derived) +tex4ht_fonts_noncjk_derived = \ + $(ht_fonts_devdir)/alias/ec/eccc.htf \ + $(ht_fonts_devdir)/unicode/ec/eccc-uni.htf \ + $(ht_fonts_devdir)/alias/t1fonts/ClearSans-BoldItalic-lf-t1.htf \ + $(ht_fonts_devdir)/alias/t1fonts/ipxg-r-t1.htf \ + $(ht_fonts_devdir)/unicode/jknappen/tc/tcrm.htf \ + $(ht_fonts_devdir)/unicode/misc/SkakNew.htf \ + $(ht_fonts_devdir)/unicode/adobe/courier/pcrro8r.htf \ + $(ht_fonts_devdir)/iso8859/1/tibetan/ctib.htf \ + $(ht_fonts_devdir)/unicode/tibetan/ctib.htf \ + $(ht_fonts_devdir)/alias/bera/fveb8r.htf \ + $(ht_fonts_devdir)/alias/bera/fveb8t.htf \ + $(ht_fonts_devdir)/alias/bera/fver8r.htf \ + $(ht_fonts_devdir)/alias/bera/fver8t.htf \ + $(ht_fonts_devdir)/alias/bera/fvero8r.htf \ + $(ht_fonts_devdir)/alias/bera/fvero8t.htf \ + $(ht_fonts_devdir)/alias/t1fonts/XCharter-Roman-tlf-t1--base.htf \ + $(ht_fonts_devdir)/alias/t1fonts/XCharter-Italic-tlf-t1--base.htf \ + $(ht_fonts_devdir)/alias/t1fonts/XCharter-Bold-tlf-t1--base.htf + +# Although SearchFonts.java is created by fonts-noncjk, it's a +# development tool that we don't use and have no need for, so don't list +# it or try to compile it. (See source for a little more info.) +# $(wd)/src/SearchFonts.java + +derived += $(tex4ht_fonts_modern_derived) +tex4ht_fonts_modern_derived = \ + $(ht_fonts_devdir)/unicode/lm/l7x-lmcsc.htf \ + $(ht_fonts_devdir)/unicode/lm/l7x-lm.htf \ + $(ht_fonts_devdir)/unicode/lm/lm-ts1.htf \ + $(ht_fonts_devdir)/unicode/lm/rm-lm.htf \ + $(ht_fonts_devdir)/alias/lm/rm-lmt.htf \ + $(ht_fonts_devdir)/alias/lm/rm-lmvt.htf \ + lm-htf.tex + +derived += $(tex4ht_fonts_ebgaramond_derived) +tex4ht_fonts_ebgaramond_derived = \ + $(ht_fonts_devdir)/unicode/EB_Garamond/EBGaramond-Regular-lf-swash-t1.htf \ + $(ht_fonts_devdir)/alias/EB_Garamond/EBGaramond-Bold-lf-titling-t1.htf + +derived += $(tex4ht_fonts_libertine_derived) +tex4ht_fonts_libertine_derived = \ + $(ht_fonts_devdir)/unicode/Linux_Biolinum_T/LinBiolinumT-lf-sc-ly1.htf + +derived += $(tex4ht_fonts_newtx_derived) +tex4ht_fonts_newtx_derived = \ + $(ht_fonts_devdir)/unicode/txbmiaX/ntxbmia.htf + +derived += $(tex4ht_fonts_fourier_derived) +tex4ht_fonts_fourier_derived = \ + $(ht_fonts_devdir)/unicode/Fourier-Math-Letters/futmi.htf + +derived += $(tex4ht_fonts_spectral_derived) +tex4ht_fonts_spectral_derived = \ + $(ht_fonts_devdir)/unicode/Spectral/Spectral-Regular-lf-sc-ly1.htf +# xx and many more +# whither tmp? how change target dir? what happened to cmtex.htf? etc. + +# htcmd not used +#derived += $(tex4ht_htcmd_derived) +#tex4ht_htcmd_derived = htcmd.c + +derived += $(tex4ht_fonts_4hf) +tex4ht_fonts_4hf = \ + $(ht_fonts_devdir)/mozilla/charset/unicode.4hf \ + $(ht_fonts_devdir)/unicode/charset/unicode.4hf \ + +# xx and many more + +derived += $(tex4ht_html_speech_derived) +tex4ht_html_speech_derived = html-speech.4ht html-speech-math.4ht emacspeak.4ht + +ifeq ($(java_in_make),true) +derived += $(tex4ht_html_speech_xtpipes_derived) +tex4ht_html_speech_xtpipes_derived = htspk.4xt $(wd)/src/HtSpk.java +endif + +derived += $(tex4ht_html0_derived) +tex4ht_html0_derived = html0.4ht + +derived += $(tex4ht_html32_derived) +tex4ht_html32_derived = html32.4ht html32-math.4ht + +derived += $(tex4ht_html4_derived) +tex4ht_html4_derived = \ + html4.4ht html4-math.4ht html4-uni.4ht \ + html4-l2-url.4ht html4-russian-accents.4ht \ + onmouseover.4ht exerqz.4ht + +#xx big changes for unknown reasons +derived += $(tex4ht_info_derived) +tex4ht_info_derived = info4ht.4ht + +derived += $(tex4ht_info_html4_derived) +tex4ht_info_html4_derived = infoht4.4ht + +derived += $(tex4ht_info_javahelp_derived) +tex4ht_info_javahelp_derived = infojh.4ht + +derived += $(tex4ht_info_mml_derived) +tex4ht_info_mml_derived = infomml.4ht + +derived += $(tex4ht_info_ooffice_derived) +tex4ht_info_ooffice_derived = infoof.4ht + +derived += $(tex4ht_info_svg_derived) +tex4ht_info_svg_derived = infosvg.4ht + +derived += $(tex4ht_javahelp_derived) +tex4ht_javahelp_derived = javahelp.4ht javahelp-a.4ht + +ifneq ($(do_java),2) +derived += $(tex4ht_javahelp_xtpipes_derived) +tex4ht_javahelp_xtpipes_derived = javahelp.4xt +endif + +derived += $(tex4ht_jsmath_derived) +tex4ht_jsmath_derived = jsmath.4ht html-jsmath.4ht + +ifneq ($(do_java),2) +derived += $(tex4ht_jsml_xtpipes_derived) +tex4ht_jsml_xtpipes_derived = \ + jsml.4xt \ + $(addprefix $(wd)/src/,HtJsml.java GroupMn.java JsmlFilter.java JsmlMathBreak.java) +endif + +derived += $(tex4ht_jsml_derived) +tex4ht_jsml_derived = jsml.4ht jsml-math.4ht + +derived += $(tex4ht_mathltx_derived) +tex4ht_mathltx_derived = mathltx.4ht html-mltx.4ht + +derived += $(tex4ht_mathml_derived) +tex4ht_mathml_derived = mathml.4ht html-mml.4ht + +derived += $(tex4ht_mathplayer_derived) +tex4ht_mathplayer_derived = mathplayer.4ht + +derived += $(tex4ht_mkht_derived) +tex4ht_mkht_derived = mkht.4ht mk4ht.perl mkht-scripts.4ht ht.unix ht.bat + +derived += $(tex4ht_moz_derived) +tex4ht_moz_derived = mozilla.4ht + +derived += $(tex4ht_html5_derived) +tex4ht_html5_derived = html5.4ht + +ifneq ($(do_java),2) +derived += $(tex4ht_oo_xtpipes_derived) +tex4ht_oo_xtpipes_derived = \ + oo-math.4xt oo-text.4xt \ + $(addprefix $(wd)/src/,OoUtilities.java OomFilter.java OoFilter.java) +endif + +derived += $(tex4ht_ooffice_derived) +tex4ht_ooffice_derived = ooffice.4ht ooffice-mml.4ht + +derived += $(tex4ht_ooimpress_derived) +tex4ht_ooimpress_derived = ooimpress.4ht + +derived += $(tex4ht_options_derived) +tex4ht_options_derived = tex4ht.4ht + +derived += $(tex4ht_sty_derived) +tex4ht_sty_derived = tex4ht.sty + +derived += $(tex4ht_svg_derived) +tex4ht_svg_derived = svg-option.4ht html4-svg.4ht + +derived += $(tex4ht_t4ht_derived) +tex4ht_t4ht_derived = t4ht.c + +derived += $(tex4ht_tei_derived) +tex4ht_tei_derived = tei.4ht tei-mml.4ht tei-math.4ht tei-mmltei.4ht + +derived += $(tex4ht_jats_derived) +tex4ht_jats_derived = jats.4ht + +derived += $(tex4ht_unicode_derived) +tex4ht_unicode_derived = unicode.4ht + +derived += $(tex4ht_word_derived) +tex4ht_word_derived = htmlw.4ht + +ifneq ($(do_java),2) +derived += $(tex4ht_xhtml_xtpipes_derived) +tex4ht_xhtml_xtpipes_derived = xhtml.4xt $(wd)/src/XhtmlEmails.java +endif + +ifneq ($(do_java),2) +derived += $(tex4ht_xhtmml_xtpipes_derived) +tex4ht_xhtmml_xtpipes_derived = xhtmml.4xt $(wd)/src/XhtmmlUtilities.java +endif + +derived += $(tex4ht_mathjax_derived) +tex4ht_mathjax_derived = mathjax-latex-4ht.4ht + +# wripro.tex generates nothing (not literate). + +ifneq ($(do_java),2) +derived += $(xtpipes_derived) +xtpipes_derived = \ + $(addprefix $(wd)/src/, \ + xtpipes.java \ + xtpipes/FileInfo.java \ + xtpipes/InputObject.java \ + xtpipes/Xtpipes.java \ + xtpipes/XtpipesPrintWriter.java \ + xtpipes/XtpipesUni.java \ + xtpipes/util/ScriptsManager.java \ + xtpipes/util/ScriptsManagerLH.java ) \ + xtpipes-default.4xt \ + xtpipes-map.dtd \ + xtpipes.dtd \ + $(xtpipes_jar) + # +endif + +# +all: $(derived) + texlua checklog.lua *.log + +$(tex4ht_4ht_derived): tex4ht-4ht.tex cond4ht.4ht $(common) + etex $(tex_opts) $< + +$(tex4ht_bibtex2_derived): tex4ht-bibtex2.tex $(common) + latex $(tex_opts) $< + +$(tex4ht_c_derived): tex4ht-c.tex $(common) + etex $(tex_opts) $< + +$(tex4ht_cond4ht_derived): tex4ht-cond4ht.tex mktex4ht-cnf.tex \ + $(common_no_cond_sty) + etex $(tex_opts) $< + etex $(tex_opts) cond4ht.4ht + +$(tex4ht_docbook_derived): tex4ht-docbook.tex $(common) + htlatex $< "html,3" "" "" $(tex_1opt) + +$(tex4ht_docbook_xtpipes_derived): tex4ht-docbook-xtpipes.tex $(common) + htlatex $< "html,3" "" "" $(tex_1opt) + +$(tex4ht_env_derived): tex4ht-env.tex $(common) + htlatex $< "xhtml,3" "" "" $(tex_1opt) + +$(tex4ht_fonts_cjk_derived): tex4ht-fonts-cjk.tex + $(HTTEX) $< "" + +$(tex4ht_fonts_cjk_utf8_derived): tex4ht-fonts-cjk-utf8.tex + $(HTTEX) $< "" + +$(tex4ht_fonts_noncjk_derived) $(tex4ht_fonts_modern_derived): \ + tex4ht-fonts-noncjk.tex tex4ht-fonts-modern.tex $(common) + $(HTTEX) $< "" + +$(tex4ht_fonts_ebgaramond_derived): tex4ht-fonts-ebgaramond.tex + $(HTTEX) $< "" + +$(tex4ht_fonts_libertine_derived): tex4ht-fonts-libertine.tex + $(HTTEX) $< "" + +$(tex4ht_fonts_newtx_derived): tex4ht-fonts-newtx.tex + $(HTTEX) $< "" + +$(tex4ht_fonts_fourier_derived): tex4ht-fonts-fourier.tex + $(HTTEX) $< "" + +$(tex4ht_fonts_spectral_derived): tex4ht-fonts-spectral.tex + $(HTTEX) $< "" + +# requires more memory than configured in other tex programs. +$(tex4ht_fonts_4hf): tex4ht-fonts-4hf.tex + dvilualatex $< + tex4ht `basename $< .tex` + t4ht `basename $< .tex` + +$(tex4ht_htcmd_derived): tex4ht-htcmd.tex $(common) + $(HTTEX) $< "" + +$(tex4ht_html_speech_derived): tex4ht-html-speech.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_html_speech_xtpipes_derived): tex4ht-html-speech-xtpipes.tex $(common) + htlatex $< "html,next,3" "" "" $(tex_1opt) + +$(tex4ht_html0_derived): tex4ht-html0.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_html32_derived): tex4ht-html32.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_html4_derived): tex4ht-html4.tex $(common) + latex $(tex_opts) $< + latex $(tex_opts) $< + +$(tex4ht_html5_derived): tex4ht-html5.tex $(common) + htlatex $< "xhtml,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_info_html4_derived): tex4ht-info-html4.tex $(common_info) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_jats_derived): tex4ht-jats.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_info_javahelp_derived): tex4ht-info-javahelp.tex $(common_info) + htlatex $< "html,sections+" "" "" $(tex_1opt) + +$(tex4ht_info_mml_derived): tex4ht-info-mml.tex $(common_info) + latex $(tex_opts) $< + +$(tex4ht_info_ooffice_derived): tex4ht-info-ooffice.tex $(common_info) + htlatex $< "html,sections+" "" "" $(tex_1opt) + +$(tex4ht_info_svg_derived): tex4ht-info-svg.tex $(common_info) + latex $(tex_opts) $< + +$(tex4ht_info_derived): tex4ht-info.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_javahelp_derived): tex4ht-javahelp.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_javahelp_xtpipes_derived): tex4ht-javahelp-xtpipes.tex $(common) + htlatex $< "xhtml,next,3" "" "" $(tex_1opt) + +$(tex4ht_jsmath_derived): tex4ht-jsmath.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_jsml_xtpipes_derived): tex4ht-jsml-xtpipes.tex $(common) $(xtpipes_jar) + htlatex $< "xhtml,next,3" "" "" $(tex_1opt) + +$(tex4ht_jsml_derived): tex4ht-jsml.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_mathjax_derived): tex4ht-mathjax.tex + htlatex $< "xhtml,3,next" "" "" $(tex_1opt) + +$(tex4ht_mathltx_derived): tex4ht-mathltx.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_mathml_derived): tex4ht-mathml.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_mathplayer_derived): tex4ht-mathplayer.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_mkht_derived): tex4ht-mkht.tex $(common) + latex $(tex_opts) $< + perl -c mk4ht.perl # syntax check + latex $(tex_opts) mkht-scripts.4ht + +$(tex4ht_moz_derived): tex4ht-moz.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_oo_xtpipes_derived): tex4ht-oo-xtpipes.tex $(common) + htlatex $< "xhtml,next,3" "" "" $(tex_1opt) + +$(tex4ht_ooffice_derived): tex4ht-ooffice.tex $(common) + htlatex $< "xhtml,4,sections+" "" "" $(tex_1opt) + +$(tex4ht_ooimpress_derived): tex4ht-ooimpress.tex $(common) + htlatex $< "xhtml,4,sections+" "" "" $(tex_1opt) + +$(tex4ht_options_derived): tex4ht-options.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_sty_derived): tex4ht-sty.tex $(common_no_cond_sty) + $(HTTEX) $< "" + +$(tex4ht_svg_derived): tex4ht-svg.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_t4ht_derived): tex4ht-t4ht.tex $(common) + $(HTTEX) $< "" + +$(tex4ht_tei_derived): tex4ht-tei.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_unicode_derived): tex4ht-unicode.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_word_derived): tex4ht-word.tex $(common) + htlatex $< "html,3,sections+" "" "" $(tex_1opt) + +$(tex4ht_xhtml_xtpipes_derived): tex4ht-xhtml-xtpipes.tex $(common) + htlatex $< "xhtml,3,next" "" "" $(tex_1opt) + +$(tex4ht_xhtmml_xtpipes_derived): tex4ht-xhtmml-xtpipes.tex $(common) + htlatex $< "xhtml,3,next" "" "" $(tex_1opt) + +$(xtpipes_derived): xtpipes.tex $(common) + htlatex $< "xhtml,3,next" "" "" $(tex_1opt) +# Derived files are generated in . and $(wd). +# (corresponds to src/java for xtpipes.tex) + +# +# Test installation. Does not work. +destdir = update.dir +dest_texmf = $(destdir)/texmf/tex/generic/tex4ht +dest_4ht = $(destdir)/texmf/tex4ht +dest_base = $(dest_4ht)/base +dest_xtpipes = $(dest_4ht)/xtpipes +dest_src = $(destdir)/src +dest_java = $(dest_src)/java +# +update = cp -pr +mkdir = install -d +# +update-env: + $(mkdir) $(dest_base)/unix $(dest_base)/win32 + $(update) tex4ht.env-unix $(dest_base)/unix/tex4ht.env + $(update) tex4ht.env-win32 $(dest_base)/win32/tex4ht.env + +update: all + $(update) $(tex4ht_bibtex2_derived) $(dest_src)/ +# + $(update) $(tex4ht_c_derived) $(dest_src)/ +# + $(update) $(tex4ht_cond4ht_derived) $(dest_texmf)/ +# + $(update) docbook.4xt $(dest_xtpipes)/ + $(update) DbUtilities.java $(dest_java)/ +# + $(update) $(tex4ht_docbook_derived) $(dest_texmf)/ +# + $(MAKE) update-env +# + $(update) $(tex4ht_html_speech_xtpipes_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_html_speech_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_html0_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_html32_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_html4_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_info_mml_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_info_ooffice_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_info_svg_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_info_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_javahelp_xtpipes_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_javahelp_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_jsmath_derived) $(dest_texmf)/ +# + $(update) jsml.4xt $(dest_xtpipes)/ + $(update) HtJsml.java GroupMn.java JsmlFilter.java \ + JsmlMathBreak.java $(dest_java)/ +# + $(update) $(tex4ht_jsml_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_mathltx_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_mathplayer_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_moz_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_html5_derived) $(dest_texmf)/ +# + $(update) oo-text.4xt oo-math.4xt $(dest_xtpipes)/ + $(update) OoUtilities.java OomFilter.java $(dest_java)/ +# + $(update) $(tex4ht_ooffice_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_ooimpress_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_options_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_sty_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_svg_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_t4ht_derived) $(dest_src)/ +# + $(update) $(tex4ht_tei_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_jats_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_unicode_derived) $(dest_texmf)/ +# + $(update) $(tex4ht_word_derived) $(dest_texmf)/ +# + $(update) xhtml.4xt $(dest_xtpipes)/ + $(update) XhtmlEmails.java $(dest_java)/ +# + $(update) xhtmml.4xt $(dest_xtpipes)/ + $(update) XhtmmlUtilities.java $(dest_java)/ +# +# this has to be done last. Does anything else use $(wd)? We'll see. + rmdir $(wd)/bin + $(update) $(wd)/* $(dest_java)/ + $(update) xtpipes.dtd xtpipes-map.dtd xtpipes-default.4xt \ + $(dest_xtpipes)/ + +clean: mostlyclean + rm -rf $(wd) + rm -f *.4ct *.4tc *.aux *.css *.dvi *.idv *.lg *.log *.tmp *.trc *.xref + rm -f *.4es *.bat *.unix *.htf *.html *.png tmp + rm -f *.fls + rm -f tex4ht-dir.tex + +mostlyclean: + rm -f $(derived) + +clean1: + rm -f $(f).[0-s]* $(f).[u-z]* $(f).trc + +# +# Java. +ifeq ($(java_in_make),true) +.PHONY: jar +jar: $(homedir)/$(texmf_t4ht_bin)/tex4ht.jar +$(homedir)/$(texmf_t4ht_bin)/tex4ht.jar: + $(tex4ht_docbook_xtpipes_derived) \ + $(tex4ht_fonts_noncjk_derived) \ + $(tex4ht_html_speech_xtpipes_derived) \ + $(tex4ht_jsml_xtpipes_derived) \ + $(tex4ht_oo_xtpipes_derived) \ + $(tex4ht_xhtml_xtpipes_derived) \ + $(tex4ht_xhtmml_xtpipes_derived) + find $(wd)/src -iname '*.java' -print0 \ + | xargs -0 javac -d $(xtpipesdir) -sourcepath $(wd)/src + mkdir -p $(dir $@) + cd $(xtpipesdir) && jar cf $(notdir $@) * + mv $(xtpipesdir)/$(notdir $@) $(dir $@) +endif + +# +# The directories where tex4ht is installed in TeX Live, +# i.e., where we will copy and commit updates. + +texmf = /r/tug/home/texlive/karl/Master/texmf-dist +inst_dir_4ht = $(texmf)/tex/generic/tex4ht +inst_dir_top = $(texmf)/tex4ht +inst_dir_scripts = $(texmf)/scripts/tex4ht +inst_dir_source = $(texmf)/source/tex4ht + +# Simple command to "install" from dev to TL. +# (Other methods are also used.) +install_data = cp -p + +# Diff and install the *.unix and *.bat scripts. +# The suffix changes from .unix in development to .sh in TL, +# and many of the scripts are not installed at all; +# don't worry about that. We also won't worry about the +# Perl scripts (mk4ht) at present. +# +diff-scripts: + for f in *.unix; do \ + inst_f=$(inst_dir_scripts)/`basename $$f .unix`.sh; \ + test -r $$inst_f || continue; \ + $(diff) $$inst_f $$f; done + +# Diff from installed to dev, but install from dev to installed. +install-scripts: + for f in *.unix; do \ + inst_f=$(inst_dir_scripts)/`basename $$f .unix`.sh; \ + test -r $$inst_f || continue; \ + echo $(install_data) $$inst_f $$f; \ + $(install_data) $$f $$inst_f; done + +# +# Checking and updating source files from development vs. TeX Live, +# from whence they get to CTAN. + +srcfiles = $(shell svn status -v | awk '{print $$NF}' \ + | egrep -v '^\.|^archive|ProTex.sty$$') + +# Diff source files from installed to dev. +diff-src: + for f in $(srcfiles); do $(diff) $$f $(inst_dir_source)/$$f; done +# +# Install from dev to installed. +install-src: + for f in $(srcfiles); do $(install_data) $$f $(inst_dir_source); done +# +# Just list the files. +list-src: + @echo $(srcfiles) | tr ' ' '\n' + +# +# Checking and updating font support files. +# +ht_fonts_instdir = $(inst_dir_top)/ht-fonts +# +install-unicode-4hf: + cd $(ht_fonts_devdir) && tar cf - `find . -name unicode.4hf` \ + | (cd $(ht_fonts_instdir) && tar xf -) + svn diff $(ht_fonts_instdir) +# +# copy fonts listed in /tmp/htf (must be filenames relative to +# ht_fonts_devdir, like those created by diff-htfonts below) +# to ht_fonts_instdir. Or to use /tmp/htnew instead of /tmp/htf, override: +tmp_htf = /tmp/htf +install-htfonts-tmp: + cd $(ht_fonts_devdir) && tar cfT - $(tmp_htf) \ + | (cd $(ht_fonts_instdir) && tar xvf -) + svn status $(ht_fonts_instdir) + +diff-htfonts: +# put the raw diff in /tmp/htd: + -$(diff) -r $(ht_fonts_instdir) $(ht_fonts_devdir) >/tmp/htd +# just the filenames in htf: + sed -n 's,^diff.*ht-fonts/,,p' /tmp/htd |sort >/tmp/htf +# new files in htnew: + sed -n -e 's,^Only in.*ht-fonts/,,' \ + -e 's,: ,/,p' /tmp/htd >/tmp/htnew +# for human consumption, remove generation lines (hopefully there are no +# real diffs on those lines); also the @@ lines from diff -u and the +# redundant diff invocations. + egrep -v '^(diff |@@ |[-+][^-+].*20[0-9][0-9]-[0-9][0-9]-[0-9][0-9])' \ + /tmp/htd | tee /tmp/htchanges + +# +# diff all files in the main TeX Live installation directory against +# cwd (development). the --ignore-matching-lines below only works when +# that's the only change in the hunk, so ignore them all explicitly. +# also ignore commented changes. +# +# htf files, scripts, etc. are in different places, so don't include them here, +# +# The diff-scripts output is usually empty, so we can run that; +# but diff-htfonts is too verbose to run every time. +diff-all: diff-scripts #diff-htfonts + -for f in $(inst_dir_4ht)/*; do $(diff) $$f .; done \ + | tee /tmp/u | egrep -v '^ *[-+]%|^@@ |^- *$$|-1.version' \ + | egrep -v '^..ifx.infoIVht.UnDeF.*//$$' + +# For checking the derived files that are explicitly listed above +# against installed (in TL) files. This is a small subset of all the +# generated files. +diff_files = $(filter-out %.htf %.4hf tex4ht.env% %.c lm-htf.tex \ + mk4ht.perl ht.unix ht.bat,\ + $(derived)) +diff-derived: + -for f in $(diff_files); do $(diff) $(inst_dir_4ht)/$$f .; done \ + | tee /tmp/u | egrep -v '^ *[-+]%|^@@ |^- *$$|-1.version' \ + | egrep -v '^..ifx.infoIVht.UnDeF.*//$$' + +# Check that anything with a \version of this year +# also has a copyright of this year. +inst-check-copyright: + -cd $(inst_dir_4ht) && for f in *; do \ + if grep "version.*`date +%Y`" $$f >/dev/null; then \ + grep "Copyright.*`date +%Y`" $$f >/dev/null || echo $$f; fi; done + +# Check that all *.4ht in dev are installed. Other file types are +# difficult, but all 4ht's should be present. +inst-check-files: + cd $(inst_dir_4ht) && ls -1 *.4ht >/tmp/instlist + ls -1 *.4ht >/tmp/devlist + comm -3 /tmp/devlist /tmp/instlist + +# missing version identifications. +inst-check-version: + -cd $(inst_dir_4ht) && for f in *; do \ + grep 'write-1.*version' $$f >/dev/null || echo $$f; done + +# +# diff one specified file, as in "make d1 d=filename.4ht". +diff1 d1: + $(diff) $(inst_dir_4ht)/$(d) . + +# the diff command used pervasively. +diff = diff -u0 --ignore-all-space --ignore-blank-lines \ + --ignore-matching-lines='write-1.version\|, generated from\|Copyright' + +# final simple abbrev for convenience. +upmake upm: + svn update && make diff --git a/support/TeX4ht/source/README b/support/TeX4ht/source/README new file mode 100644 index 0000000000..9d8b2e663a --- /dev/null +++ b/support/TeX4ht/source/README @@ -0,0 +1,23 @@ +$Id: README 924 2021-05-02 22:55:22Z karl $ +This file is public domain. Originally written 2010, Karl Berry. + +Sources for TeX4ht, https://tug.org/tex4ht. + +Eitan Gurari (the original author of tex4ht) devised his own literate +programming system, which supports multiple output files from a single +source (https://ctan.org/pkg/protex). The files here are such "literate" +source files. They are processed with (ht)(la)tex, as given by commands +at the top of each file and in the Makefile. + +The extra-bin subdirectory contains do-nothing scripts named xmllint +and vcss, which are called for validation via tex4ht-env.tex. (Of +course they won't be used unless ./extra-bin is early enough in PATH.) +The real xmllint can take a long time to run, and fails to find the +DTD on the tex4ht-docbook*.html output. + +The Makefile has commands to build the derived files (e.g., *.4ht) from +the *.tex sources, compare them against an installed system, etc. Much +work remains to be done to make it a clean build, but it's a start. + +Bug reports and patches are most welcome. See https://tug.org/tex4ht +for contact and other information. diff --git a/support/TeX4ht/source/checklog.lua b/support/TeX4ht/source/checklog.lua new file mode 100644 index 0000000000..0e048175db --- /dev/null +++ b/support/TeX4ht/source/checklog.lua @@ -0,0 +1,50 @@ +-- $Id$ +-- Public domain. Originally written by Michal Hoftich, 2020. +-- this script parses log files for errors +-- pass the .log file as a first argument +-- +-- Usage: +-- texlua checklog.lua .log + +kpse.set_program_name "luatex" +-- the following library is part of make4ht +local error_logparser = require("make4ht-errorlogparser") + +local function parse_log(input_file, content) + -- log parsing can be expensive on time, don't do it if we don't have + -- any error message in the log file + if content:match("\n!") then + local errors = error_logparser.parse(content) + if #errors > 0 then + print(input_file .. ": errors found:") + for _, err in ipairs(errors) do + print((err.filename or "?") .. ":" + .. (err.line or "?") .. ":" .. err.error) + end + os.exit(1) + end + end +end + +local content +-- the log file can be passed as filename argument, or piped from shell + +if #arg > 0 then + for _, input_file in ipairs(arg) do + local ext = input_file:match("%.([^%.]+)$") + if not ext then + input_file = input_file .. ".log" + elseif ext ~="log" then + input_file = input_file:gsub("[^%.]+$", "log") + end + local f = io.open(input_file, "r") + content = f:read("*all") + f:close() + parse_log(input_file, content) + end +else + -- read from STDIN + content = io.read("*all") + parse_log(content) +end + diff --git a/support/TeX4ht/source/common-code.tex b/support/TeX4ht/source/common-code.tex new file mode 100644 index 0000000000..048872ad27 --- /dev/null +++ b/support/TeX4ht/source/common-code.tex @@ -0,0 +1,32 @@ +% $Id: common-code.tex 65 2010-11-17 19:16:45Z karl $ +% A more few common TeX definitions for literate sources. Not installed +% in runtime. These are only used in a few files, compared to those in +% common.tex. Do not know if any harm would come from including them always. +% +% Copyright 2009-2010 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project . +% +% If you modify this program, changing the +% version identification would be appreciated. + +\let\AltxModifyShowCode=\ModifyShowCode +\def\ModifyShowCode{% + \def\by{by}\def\={=}\AltxModifyShowCode} + +\let\pReModifyOutputCode=\ModifyOutputCode +\def\ModifyOutputCode{% + \def\by{}\def\={}% + \pReModifyOutputCode} diff --git a/support/TeX4ht/source/common-info.tex b/support/TeX4ht/source/common-info.tex new file mode 100644 index 0000000000..57bcf182f7 --- /dev/null +++ b/support/TeX4ht/source/common-info.tex @@ -0,0 +1,68 @@ +% $Id: common-info.tex 237 2017-01-29 18:20:42Z karl $ +% Common TeX definitions used only in the *-info.tex literate sources. +% Not installed. +% +% Copyright 2009-2017 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\expandafter\ifx \csname YES\HTML\endcsname\relax + % begin comment. 21/07/2016 (dg) + % on first run \infoIVht expects \ConfigureHinput + % ( \def\infoIVht#1\ConfigureHinput{..} ) + % so we feed it with "\ConfigureHinput" (no expansion here, merely + % a delimiter); the rest is slurped until the "//". + % end + \def\CleanComment{[0]\ConfigureHinput\id:gobble} +\else + \let\saveCd=\< + \def\<{\edef\FIRST{\the\inputlineno}\let\<\saveCd \saveCd} + % + % Eitan's commented-out definition started like this (and doesn't work): + %\def\CleanComment#1tex4ht-info#2#3#4.#5>#6//{[\eatIV#4% <--jobname + % + % Eitan's active definition started like this: + %\def\CleanComment#1tex4ht-info#2#3#4.#5>#6//{[#4% <--jobname + % + % However, that didn't work either. #4 is not the jobname. + % The arguments when running htlatex tex4ht-info-mml.tex are these: + % %#1<- + %\CleanComment #1tex4ht-info#2#3#4.#5>#6//-> + %[\if ,\ifnum \FIRST =#6 .\else ,0\fi + %#1<- + %#2<-- + %#3<-m + %#4<-ml + %#5<-html#QPrTx1"\#6//{[1\empty % + \if,\ifnum \FIRST=#6 .\else ,0\fi\fi]#6//} + \def\eatIV#1#2#3#4{} +\fi + +\Comment{ + +\string\ifx\string\infoIVht\string\UnDeF\string\def\string\infoIVht#1//{}\string\fi\string\infoIVht\CleanComment}{// + +} + +\def\>>>#1<<<{\bgroup\csname no:catcodes\endcsname0{255}{12}% + \csname no:catcodes\endcsname{13}{13}{13}% ^^M + \def\temp##1>>>{\egroup + \expandafter \def\csname #1\endcsname{##1}}\temp} diff --git a/support/TeX4ht/source/common.tex b/support/TeX4ht/source/common.tex new file mode 100644 index 0000000000..66c74a69ed --- /dev/null +++ b/support/TeX4ht/source/common.tex @@ -0,0 +1,43 @@ +% $Id: common.tex 411 2018-06-11 13:12:17Z michal_h21 $ +% A few common TeX definitions for literate sources. Not installed in runtime. +% +% Copyright 2009-2017 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project . +% +% If you modify this program, changing the +% version identification would be appreciated. + +\newcount\tmpcnt \tmpcnt\time \divide\tmpcnt 60 +\edef\temp{\the\tmpcnt} +\multiply\tmpcnt -60 \advance\tmpcnt \time + +\edef\version{\the\year-\ifnum \month<10 0\fi + \the\month-\ifnum \day<10 0\fi\the\day + -\ifnum \temp<10 0\fi \temp + :\ifnum \tmpcnt<10 0\fi\the\tmpcnt} + +% a fixed-string version that can be enabled for debugging. +%\edef\versionDebug{000-00-00-00:00} +%\let\version\versionDebug + +% #1 is the first year for Eitan. The last year is always 2009. RIP. +\def\CopyYear.#1.{#1-2009} + +% command for write to terminal and the log file +% this version is used in the .4ht files build +% identical command is defined also in tex4ht-sty.tex, +% it is used in TeX document compilation +\def\writesixteen#1{\immediate\write1616{#1}} diff --git a/support/TeX4ht/source/extra-bin/vcss b/support/TeX4ht/source/extra-bin/vcss new file mode 100644 index 0000000000..af3a4e4bec --- /dev/null +++ b/support/TeX4ht/source/extra-bin/vcss @@ -0,0 +1,2 @@ +#!/bin/sh +true diff --git a/support/TeX4ht/source/extra-bin/xmllint b/support/TeX4ht/source/extra-bin/xmllint new file mode 100644 index 0000000000..af3a4e4bec --- /dev/null +++ b/support/TeX4ht/source/extra-bin/xmllint @@ -0,0 +1,2 @@ +#!/bin/sh +true diff --git a/support/TeX4ht/source/mktex4ht-cnf.tex b/support/TeX4ht/source/mktex4ht-cnf.tex new file mode 100644 index 0000000000..bad50dd5bb --- /dev/null +++ b/support/TeX4ht/source/mktex4ht-cnf.tex @@ -0,0 +1,361 @@ +% $Id: mktex4ht-cnf.tex 903 2021-04-16 15:02:57Z michal_h21 $ +% Manually-maintained file, listing *.4ht files created by tex4ht-4ht.tex. +% Read by tex4ht-cond4ht. +% +% Copyright 2016-2020 TeX Users Group +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. +% +\AddFile{0}{Preamble} +\AddFile{0}{tex4ht} +\AddFile{0}{tex4ht2} +\AddFile{0}{etex4ht} +\AddFile{2}{book} +\AddFile{2}{report} +\AddFile{2}{article} +\AddFile{1}{latex} +\AddFile{9}{titlesec} +\AddFile{2}{tcilatex} +\AddFile{7}{seslideb} +\AddFile{9}{jeep} +\AddFile{9}{apacite} +\AddFile{9}{mla} +\AddFile{6}{biblatex} +\AddFile{6}{biblatex-chicago} +\AddFile{6}{reading} +\AddFile{5}{debug} +\AddFile{5}{footnote-dw} +\AddFile{8}{varioref} +\AddFile{8}{nameref} +\AddFile{8}{cleveref} +\AddFile{8}{authblk} +\AddFile{8}{geometry} +\AddFile{8}{byname} +\AddFile{7}{xr} +\AddFile{7}{xr-hyper} +\AddFile{7}{url} +\AddFile{9}{path} +\AddFile{7}{hyperref} +\AddFile{9}{hypcap} +\AddFile{8}{fleqn} +\AddFile{7}{supertabular} +\AddFile{7}{array} +\AddFile{9}{dcolumn} +\AddFile{7}{longtable} +\AddFile{7}{pctable} +\AddFile{8}{tabulary} +\AddFile{8}{tabulary-a} +\AddFile{7}{tabularx} +\AddFile{9}{tabu} +\AddFile{9}{mdwtab} +\AddFile{9}{multirow} +\AddFile{8}{theorem} +\AddFile{8}{ntheorem} +\AddFile{8}{bussproofs} +\AddFile{8}{proof} +\AddFile{9}{wrapfig} +\AddFile{9}{subscript} +\AddFile{9}{subfigure} +\AddFile{9}{caption} +\AddFile{9}{subcaption} +\AddFile{9}{makeidx} +\AddFile{9}{splitidx} +\AddFile{6}{glossaries} +\AddFile{6}{glossary} +\AddFile{9}{chicago} +\AddFile{9}{srcltx} +\AddFile{9}{emulateapj} +\AddFile{7}{ifthen} +\AddFile{9}{picins} +\AddFile{9}{nomencl} +\AddFile{2}{fontmath} +\AddFile{5}{latex209} +\AddFile{8}{t2benc} +\AddFile{9}{ot4enc} +\AddFile{9}{pd1enc} +\AddFile{4}{inputenc} +\AddFile{8}{memoir} +\AddFile{8}{abstract} +\AddFile{8}{verse} +\AddFile{8}{mempatch} +\AddFile{9}{revtex4} +\AddFile{9}{aps} +\AddFile{9}{revsymb} +\AddFile{7}{mwart} +\AddFile{7}{mwrep} +\AddFile{7}{mwbk} +\AddFile{9}{aa} +\AddFile{9}{latex2man} +\AddFile{9}{texinfo} +\AddFile{9}{doc} +\AddFile{9}{holtxdoc} +\AddFile{9}{scrbook} +\AddFile{9}{scrartcl} +\AddFile{9}{scrreprt} +\AddFile{6}{letter} +\AddFile{9}{elsart} +\AddFile{9}{apa} +\AddFile{9}{apa-a} +\AddFile{9}{JHEP} +\AddFile{9}{TextBook} +\AddFile{9}{combine} +\AddFile{9}{g-brief} +\AddFile{9}{ltxguide} +\AddFile{9}{extarticle} +\AddFile{9}{extbook} +\AddFile{9}{extletter} +\AddFile{9}{extproc} +\AddFile{9}{extreport} +\AddFile{5}{amsart} +\AddFile{5}{amsbook} +\AddFile{5}{amsproc} +\AddFile{5}{amsldoc} +\AddFile{9}{amsdtx} +\AddFile{5}{amsthm} +\AddFile{5}{amsbsy} +\AddFile{8}{amssymb} +\AddFile{5}{amsmath} +\AddFile{8}{gauss} +\AddFile{5}{amsfonts} +\AddFile{5}{amstext} +\AddFile{5}{amstex1} +\AddFile{9}{braket} +\AddFile{9}{mathtools} +\AddFile{9}{llncs} +\AddFile{9}{llncs-a} +\AddFile{9}{lncse} +\AddFile{9}{lncse-a} +\AddFile{5}{amstex} +\AddFile{5}{amsppt} +\AddFile{9}{bibtopic} +\AddFile{9}{overcite} +\AddFile{9}{harvard} +\AddFile{9}{jurabib} +\AddFile{9}{scrjura} +\AddFile{7}{natbib} +\AddFile{5}{babel} +\AddFile{7}{csquotes} +\AddFile{7}{CJK} +\AddFile{8}{arabicore} +\AddFile{8}{lfeenc} +\AddFile{9}{cp1256} +\AddFile{9}{8859-6} +\AddFile{8}{alatex} +\AddFile{8}{rlbabel} +\AddFile{8}{hebtex} +\AddFile{8}{abidir} +\AddFile{8}{hewrite} +\AddFile{8}{aoutput} +\AddFile{8}{koi8-r} +\AddFile{6}{latin2} +\AddFile{8}{frenchb} +\AddFile{7}{german} +\AddFile{5}{ngerman} +\AddFile{9}{germanb} +\AddFile{9}{ngermanb} +\AddFile{9}{manju} +\AddFile{7}{italian} +\AddFile{7}{french} +\AddFile{9}{verbatimfiles} +\AddFile{9}{verbatim} +\AddFile{7}{moreverb} +\AddFile{7}{fancyvrb} +\AddFile{9}{minted} +\AddFile{9}{pythontex} +\AddFile{9}{prosper} +\AddFile{9}{prosper-a} +\AddFile{8}{powerdot} +\AddFile{8}{powerdot-a} +\AddFile{9}{beamer} +\AddFile{9}{beamerbasetoc} +\AddFile{9}{beamerbasefont} +\AddFile{9}{seminar} +\AddFile{9}{seminar-a} +\AddFile{9}{slides} +\AddFile{9}{foils} +\AddFile{9}{slidesec} +\AddFile{9}{texpower} +\AddFile{9}{xy} +\AddFile{9}{pictex} +\AddFile{9}{diagrams} +\AddFile{9}{pstricks} +\AddFile{9}{pst-all} +\AddFile{7}{epsf} +\AddFile{7}{psfig} +\AddFile{7}{epsfig} +\AddFile{4}{graphics} +\AddFile{4}{graphicx} +\AddFile{9}{svg} +\AddFile{9}{endfloat} +\AddFile{9}{mfpic} +\AddFile{9}{pb-diagram} +\AddFile{7}{amscd} +\AddFile{9}{pgf} +\AddFile{7}{color} +\AddFile{7}{xcolor} +\AddFile{7}{dvipsnam} +\AddFile{7}{svgnam} +\AddFile{7}{colortbl} +\AddFile{6}{dvips} +\AddFile{9}{textures} +\AddFile{9}{dvipdf} +\AddFile{9}{dvipsone} +\AddFile{9}{fig4tex} +\AddFile{9}{pctex32} +\AddFile{9}{overpic} +\AddFile{9}{dratex} +\AddFile{9}{europecv} +\AddFile{9}{resume} +\AddFile{9}{curve} +\AddFile{9}{vowel} +\AddFile{9}{enumitem} +\AddFile{9}{esperanto} +\AddFile{9}{IEEEtran} +\AddFile{9}{enumerate} +\AddFile{9}{accents} +\AddFile{9}{linguex} +\AddFile{9}{cgloss4e} +\AddFile{9}{covington} +\AddFile{9}{pst-jtree} +\AddFile{9}{diagram} +\AddFile{9}{subeqnarray} +\AddFile{9}{eurosym} +\AddFile{9}{SIunits} +\AddFile{9}{sistyle} +\AddFile{9}{ushort} +\AddFile{9}{chapterbib} +\AddFile{9}{microtype} +\AddFile{9}{bm} +\AddFile{9}{beton} +\AddFile{9}{everyshi} +\AddFile{9}{quoting} +\AddFile{9}{titling} +\AddFile{9}{appendix} +\AddFile{9}{res} +\AddFile{9}{res-a} +\AddFile{9}{algorithmic} +\AddFile{9}{algorithmicx} +\AddFile{9}{algorithm} +\AddFile{9}{booktabs} +\AddFile{9}{tocloft} +\AddFile{7}{minitoc} +\AddFile{9}{gloss} +\AddFile{9}{dsfont} +\AddFile{9}{afterpage} +\AddFile{8}{euler} +\AddFile{8}{eucal} +\AddFile{9}{longdiv} +\AddFile{7}{index} +\AddFile{7}{multind} +\AddFile{7}{imakeidx} +\AddFile{9}{tugboat} +\AddFile{9}{ltugboat} +\AddFile{9}{ltugboat-a} +\AddFile{9}{ltugproc} +\AddFile{9}{ltugproc-a} +\AddFile{9}{mls} +\AddFile{9}{rotating} +\AddFile{9}{boxedminipage} +\AddFile{9}{ulem} +\AddFile{9}{go} +\AddFile{9}{paralist} +\AddFile{9}{pifont} +\AddFile{9}{listings} +\AddFile{9}{alphanum} +\AddFile{9}{lineno} +\AddFile{9}{errata} +\AddFile{9}{epigraph} +\AddFile{9}{float} +\AddFile{9}{floatflt} +\AddFile{9}{floatpag} +\AddFile{7}{fancybox} +\AddFile{7}{adjustbox} +\AddFile{7}{awesomebox} +\AddFile{7}{alltt} +\AddFile{9}{lb} +\AddFile{7}{latin1} +\AddFile{7}{utf8} +\AddFile{7}{utf8x} +\AddFile{7}{ucs} +\AddFile{9}{acm-proc-article-sp} +\AddFile{9}{sig-alternate} +\AddFile{9}{endnotes} +\AddFile{9}{2up} +\AddFile{9}{web} +\AddFile{9}{exerquiz} +\AddFile{9}{nicefrac} +\AddFile{9}{multicol} +\AddFile{2}{lettrine} +\AddFile{9}{osudeG} +\AddFile{7}{vanilla} +\AddFile{9}{ProTex} +\AddFile{9}{th4} +\AddFile{9}{footmisc} +\AddFile{9}{writer} +\AddFile{9}{mdwlist} +\AddFile{9}{sverb} +\AddFile{9}{syntax} +\AddFile{9}{soul} +\AddFile{5}{plain} +\AddFile{9}{manmac} +\AddFile{8}{mex} +\AddFile{7}{eplain} +\AddFile{7}{context} +\AddFile{5}{amsopn} +\AddFile{9}{cp850} +\AddFile{9}{cp852} +\AddFile{9}{cp862} +\AddFile{9}{cp1250} +\AddFile{9}{cp1252} +\AddFile{9}{cp437} +\AddFile{9}{cp437de} +\AddFile{9}{cp865} +\AddFile{9}{norsk} +\AddFile{9}{polish} +\AddFile{9}{polski} +\AddFile{9}{portuges} +\AddFile{9}{romanian} +\AddFile{9}{russianb} +\AddFile{9}{scottish} +\AddFile{9}{slovak} +\AddFile{9}{slovene} +\AddFile{9}{spanish} +\AddFile{9}{swedish} +\AddFile{9}{turkish} +\AddFile{9}{ukraineb} +\AddFile{9}{usorbian} +\AddFile{9}{welsh} +\AddFile{9}{hebrew} +\AddFile{9}{austrian} +\AddFile{9}{catalan} +\AddFile{9}{croatian} +\AddFile{9}{czech} +\AddFile{9}{danish} +\AddFile{9}{dutch} +\AddFile{9}{english} +\AddFile{9}{esperant} +\AddFile{9}{estonian} +\AddFile{9}{finnish} +\AddFile{9}{francais} +\AddFile{9}{galician} +\AddFile{9}{greek} +\AddFile{9}{magyar} +\AddFile{9}{exam} +\AddFile{9}{ctex} +\AddFile{9}{polyglossia} +\AddFile{9}{gloss-french} +\AddFile{9}{fontspec} +\AddFile{9}{fontspec-xetex} +\AddFile{9}{fontspec-luatex} +\AddFile{9}{tuenc-xetex} +\AddFile{9}{tuenc-xetex-input} +\AddFile{9}{tuenc-luatex} +\AddFile{9}{framed} +\AddFile{9}{mdframed} +\AddFile{9}{tcolorbox} +\AddFile{9}{parallel} +\AddFile{9}{skak} +\AddFile{9}{chessboard} +\AddFile{9}{animate} +\AddFile{9}{sectionbreak} +% \AddFile{9}{mktex4ht} diff --git a/support/TeX4ht/source/t1fontmake.lua b/support/TeX4ht/source/t1fontmake.lua new file mode 100644 index 0000000000..0c3d610982 --- /dev/null +++ b/support/TeX4ht/source/t1fontmake.lua @@ -0,0 +1,48 @@ +local libertineproperty = function(x) + local property = x:gsub("I","italic") + property = property:gsub("B", "bold") + return string.lower(property) +end + + +local fontfixes = { +["Lin Libertine"] = function(x) + return "Linux Libertine O", libertineproperty(x) +end, +["Lin Biolinum"] = function(x) + return "Linux Biolinum O", libertineproperty(x) .. "sans" +end +} + +for rec in io.lines() do + local filename = rec:match("([^%/]+).tfm$") + local propertystring = filename:lower() + local fontname = filename:match("([^%-]+)") + local t = {} + fontname:gsub("([A-Z]*[a-z]+)", function(x) t[#t+1] = x end) + fontname = table.concat(t," ") + local fontfunc = fontfixes[fontname] + if fontfunc then + fontname, propertystring = fontfunc(filename) + propertystring = string.lower(propertystring) + end + local bold = propertystring:match("bold") and "font-weight: bold;" + local slanted = propertystring:match("slanted") and "font-style: oblique;" + local italic = propertystring:match("italic") and "font-style: italic;" + local smallcaps = (propertystring:match("sc") or propertystring:match("smallcaps")) and "font-variant: small-caps;" + local sans = propertystring:match("sans") and "sans-serif" + local mono = propertystring:match("mono") and "monospace" + local cssfontname = string.format("font-name: '%s', %s", fontname,(mono or sans) or "serif") + local t = {} + table.insert(t,bold) + table.insert(t,slanted) + table.insert(t,italic) + table.insert(t,smallcaps) + table.insert(t,cssfontname) + local css = table.concat(t, " ") + print(string.format('\\<%s\\><<<', filename)) + print(".lm-ec") + print("htfcss: ".. filename .." " ..css) + print(">>>") + print(string.format("\n\\AddFont{%s}{alias/t1fonts/%s}{}\n", filename, filename)) +end diff --git a/support/TeX4ht/source/t1fontsample.tex b/support/TeX4ht/source/t1fontsample.tex new file mode 100644 index 0000000000..5d34832678 --- /dev/null +++ b/support/TeX4ht/source/t1fontsample.tex @@ -0,0 +1,21 @@ +\documentclass{article} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\def\sample{``PÅ™Ă­liÅ¡ žluÅ¥ouÄkĂ½ kůň ĂºpÄ›l ÄĂ¡belskĂ© Ă³dy''} + +\usepackage{libertine} + +\begin{document} + +\sample + +\textit{\sample} + +\textbf{\sample} + +\textit{\textbf{\sample}} + +\textsc{\sample} + +\end{document} diff --git a/support/TeX4ht/source/tex4ht-4ht.tex b/support/TeX4ht/source/tex4ht-4ht.tex new file mode 100644 index 0000000000..7db5a69105 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-4ht.tex @@ -0,0 +1,39187 @@ +% $Id: tex4ht-4ht.tex 934 2021-05-09 15:03:45Z karl $ +% tex tex4ht-4ht or ht tex tex4ht-4ht +% +% Copyright 2009-2021 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\input DraTex.sty +\input AlDraTex.sty + +\DrawOff + +\def\writesixteen#1{\immediate\write1616{#1}} +\writesixteen{----------Verify length of lines!!!!------------} +\writesixteen{----------Verify length of lines!!!!------------} +\writesixteen{----------Verify length of lines!!!!------------} +\writesixteen{----------Verify length of lines!!!!------------} + +\newif\ifalprotex \alprotexfalse + +\hbadness=10000 \vbadness=10000 \hfuzz=99in \vfuzz=99in +\def\BREAK{^^J} + +\def\Link#1\EndLink{} + +\openin15=th4.4ht + \ifeof15 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% replacement for TeX4ht %%%%%%%%%%%%%%%%%% +\csname newif\endcsname\ifHtml \Htmlfalse +\def\-#1{\ifx#1-\expandafter\TEMP\else\expandafter#1\fi} +\expandafter\let\csname bye\endcsname=\end +\def\TEMP#1/#2/#3/{} +\def\HTable#1{} +\def\'#1'{} +\def\`#1'{} +\let\TableOfContents=\relax +\def\Part#1{} +\def\Chapter#1{} +\def\Appendix#1{} +\def\Section#1{} +\def\SubSection#1{} +\def\Margin#1{} +\def\HCode#1{} +\def\LinkPort\<#1\>{} +\def\TagSec#1{} +\def\RefSec#1{} +\def\List#1{} \let\ShortList=\List +\def\EndList{} +\def\item{} +\def\IgnorePar{} +\def\EndP{} +\catcode`\:=11 +\csname newcount\endcsname\tmp:cnt + \def\no:catcodes#1#2#3{% + \tmp:cnt=#1 + \def\no::catcodes{% + \catcode\tmp:cnt=#3 + \ifnum\tmp:cnt<#2 + \advance\tmp:cnt by 1 \expandafter\no::catcodes + \fi }% + \no::catcodes } + \let\:oldlq=\` +\let\:oldrq=\' +\def\'{\leavevmode \:cats \::cats} +\def\::cats#1{\if #1"\expandafter\:oldrq + \else \def\:eat##1#1{\tt ##1\egroup}\expandafter\:eat\fi} +\def\`{\leavevmode \:cats \:::cats} +\def\:::cats#1{\if #1"\expandafter\:oldlq + \else \def\:eat##1#1{`{\tt ##1}'\egroup}\expandafter\:eat\fi} +\def\:cats{\bgroup \no:catcodes0{255}{12}\catcode`\ = 10 + \catcode`\^^M = 10 \catcode`\^^I = 10 +} + +\def\HPage{} \def\EndHPage{} +\def\Verbatim{\bgroup\catcode`\\=12 \catcode`\#=12 + \catcode`\^=12 \catcode`\_=12 + \catcode`\{=12 \catcode`\}=12 \catcode`\%=12 \:vrb} +\long\def\:vrb#1EndVerbatim{\egroup} + + \closein15 + \def\next{%\input DraTex.sty + \input ProTex.sty + \AlProTex{sty,<<<>>>,|,title,list,[],ClearCode}} + \catcode`\:=12 +\else + \closein15 + \def\next{%\input DraTex.sty + \input tex4ht.sty + \Preamble{html,th4,family,sections+,xhtml,next} + \Configure{@HEAD}{\HCode{}} +% \input MyTeX4ht.sty {}% + \input ProTex.sty + \AlProTex{sty,<<<>>>,|,title,list,[],ClearCode} + \EndPreamble + } +\fi + +\next + +%\CodeLineNo % Set line numbers in the output, using %. +% to change the comment char used: \srclineBOT{some symbol} +% Sadly, this causes compilation to fail in unknown circumstances. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\expandafter \ifx \csname append:def\endcsname \relax + \expandafter\def\csname append:def\endcsname#1#2{% + \def\Xtemp{\def#1}% + \expandafter\expandafter\expandafter\Xtemp\expandafter{#1#2}} +\fi + +\expandafter \ifx \csname Verbatim\endcsname \relax + \def\Verbatim{\bgroup + \catcode`\^=10 \catcode`\\=10 \catcode`\%=10 + \catcode`\{=10 \catcode`\}=10 \catcode`\#=10 \catcode`\#=10 + \XVerbatim} + \long\def\XVerbatim#1EndVerbatim{\egroup} +\fi + +\expandafter \ifx \csname Verb\endcsname \relax + \def\Verb{\bgroup \catcode`\^=10 \catcode`\\=10 \catcode`\%=10 + \catcode`\{=10 \catcode`\}=10 \catcode`\#=10 \catcode`\#=10 + \leavevmode \Xctgs} + \def\Xctgs#1{\def\Xeat##1#1{\egroup}\Xeat } +\fi + +\ifx \HAssign\UnDef + +\csname newcount\endcsname \tmpXxXcnt + +\def\advXxX#1{\def\XxXvar{#1}\futurelet\XxXtemp\AdvancXxX} +\def\AdvancXxX{\ifx [\XxXtemp \expandafter\AdvancXxXe + \else \expandXxXafter{\expandafter\advXxXc\XxXvar}\fi} +\def\AdvancXxXe[#1]{\expandafter\advXxXc\csname + \expandafter\string\XxXvar[#1]\endcsname} + +\def\gXxXAdvance#1{\bgroup \def\XxXtemp{#1}% + \tmpXxXcnt#1\afterassignment\XxXgplus \mthXxXop\tmpXxXcnt} +\def\XxXgplus{\expandafter\xdef\XxXtemp{\the\tmpXxXcnt}\egroup} +\def\XxXAdvance#1{\bgroup \def\XxXtemp{#1}% + \tmpXxXcnt#1\afterassignment\XxXaplus \mthXxXop\tmpXxXcnt} +\def\XxXaplus{\xdef\XxXtemp{\def\expandafter\noexpand\XxXtemp{\the\tmpXxXcnt}}% + \egroup \XxXtemp} +\def\HAssign{\XxXssg\edef} +\def\gHAssign{\XxXssg\xdef} + +\def\XxXssg#1#2{\let\dXxXfn#1\def\XxXvar{#2}\futurelet\XxXtemp\XxXAssgn} +\def\XxXAssgn{% + \ifx [\XxXtemp + \expandafter\dXxXfn\XxXvar[##1]{% + \noexpand\csname \expandafter + \string\XxXvar[##1]\noexpand\endcsname}% + \expandafter\assgXxXm + \else \afterassignment\assgXxXv \expandafter \tmpXxXcnt \fi } + +\def\assgXxXv{\expandafter\dXxXfn\XxXvar{\the\tmpXxXcnt}} +\def\assgXxXm[#1]{% + \def\XxXtemp{\expandafter\dXxXfn + \csname \expandafter\string\XxXvar[#1]\endcsname{\the\tmpXxXcnt}}% + \afterassignment\XxXtemp \tmpXxXcnt} + +\fi +\catcode`\:=11 +\csname newcount\endcsname\tmp:cnt +\expandafter\ifx \csname no:catcodes\endcsname\relax + \def\no:catcodes#1#2#3{% + \tmp:cnt=#1 + \def\no::catcodes{% + \catcode\tmp:cnt=#3 + \ifnum\tmp:cnt<#2 + \advance\tmp:cnt by 1 \expandafter\no::catcodes + \fi }% + \no::catcodes } +\fi +\let\:oldlq=\` +\let\:oldrq=\' +\def\'{\leavevmode \:cats \::cats} +\def\::cats#1{\if #1"\expandafter\:oldrq + \else \def\:eat##1#1{\tt ##1\egroup}\expandafter\:eat\fi} +\def\`{\leavevmode \:cats \:::cats} +\def\:::cats#1{\if #1"\expandafter\:oldlq + \else \def\:eat##1#1{`{\tt ##1}'\egroup}\expandafter\:eat\fi} +\bgroup + \catcode`\^=7 + \gdef\:cats{\bgroup \no:catcodes0{255}{12}\catcode`\ = 10 + \catcode`\^^M = 10 \catcode`\^^I = 10 + } +\egroup +\catcode`\:=12 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\HOME{/opt/cvr/gurari/tex4ht.dir/texmf/tex/generic/tex4ht/} +\def\SOURCE{/opt/cvr/gurari/main.dir/html.dir} + +\newcount\tmpcnt \tmpcnt\time \divide\tmpcnt 60 +\edef\temp{\the\tmpcnt} +\multiply\tmpcnt -60 \advance\tmpcnt \time + +\edef\version{\the\year-\ifnum \month<10 0\fi + \the\month-\ifnum \day<10 0\fi\the\day + -\ifnum \temp<10 0\fi \temp + :\ifnum \tmpcnt<10 0\fi\the\tmpcnt} + +\def\CopyYear.#1.{% + \ifnum #1=\year #1\space\space\space\space\space\space + \else #1-2009\fi +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let\ConfigFiles=\empty +\def\AddFile#1#2{\csname append:def\endcsname\ConfigFiles{\AddFile{#1}{#2}}} + +\AddFile{0}{Preamble} +\AddFile{0}{tex4ht} +\AddFile{0}{tex4ht2} +\AddFile{0}{etex4ht} + +\let\OutFiles=\empty +\def\AddFile{\futurelet\next\contAddFile} +\def\contAddFile{% + \ifx [\next \def\next{\finishAddFile}% + \else \def\next{\finishAddFile[]}\fi + \bgroup \catcode`\_=12 \next +} +\def\finishAddFile[#1]#2#3{\egroup + \writesixteen{ ==> <#1, #2, #3>}% + \csname append:def\endcsname\OutFiles{\OutputCodE\<\if !#1!#3\else #1\fi.4ht\>}% + \csname append:def\endcsname\ConfigFiles{\AddFile{#2}{#3}}% +} + +\ifHtml + +\def\tocSubSection#1#2#3{\par| #2} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % must appear before all TocAt + % that refer to SubSection + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\TocAt{Part,Chapter,Section,LikeSection} +\TocAt{Chapter,Section,LikeSection,/Appendix,/Part} +\TocAt{LikeChapter,Section,LikeSection,/Appendix,/Part} +\TocAt{Appendix,Section,LikeSection,/Appendix,/Part} +\TocAt{Section,SubSection,/LikeSection} +\TocAt{LikeSection,SubSection,/Section} + +\CutAt{Part} +\CutAt{Chapter,LikeChapter,Appendix,Part} +\CutAt{LikeChapter,Chapter,Appendix,Part} +\CutAt{Appendix,Chapter,LikeChapter,Part} +\CutAt{Section,LikeSection,Appendix,Chapter,LikeChapter,Part} +\CutAt{LikeSection,Section,Appendix,Chapter,LikeChapter,Part} +\CutAt{SubSection,Section,LikeSection,Appendix,Chapter,LikeChapter,Part} + +\else +\def\ParentOf#1{} +\csname TableOfContents\endcsname +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\by{by}\def\={=} +\let\pReModifyOutputCode=\ModifyOutputCode +\def\ModifyOutputCode{% + \def\by{}\def\={}% + \pReModifyOutputCode} + +\csname NoOutputCode\endcsname + +\let\coDE=\< +\def\<{\vfil\par\coDE} + +\tracingstats=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\IgnorePar\EndP \HCode{

A `Literate' View of tex4ht.sty

} + +\csname TableOfContents\endcsname[ParentOf,Part,Chapter,% + Appendix,LikeChapter%,Section,LikeSection% + ] + +%%%%%%%%%%%%%%%%%%%%% +\Part{Deeper Toc} +%%%%%%%%%%%%%%%%%% + +\csname TableOfContents\endcsname[ParentOf,Part,Chapter,% + Appendix,LikeChapter,Section,LikeSection% + ] + +%----------------- shared with TeX4ht ------------------------------------ + +%%%%%%%%%%%%%%%%%%%%% +\Part{Shared} +%%%%%%%%%%%%%%%%%% + +\<<< +!*?: >>> + +\
<<< +|1-\file:id-\TitleCount >>> + +\<<< +Q>>> + +%------------------------------ start here ------------------------ + +\Chapter{Outline of the Code} + +Keeping all the existing copyright messages in this file unchanged, +hence splitting the text from copyright line. + +\<<< +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project . +% +% If you modify this program, changing the +% version identification would be appreciated. +\immediate\write-1{version |version} +>>> + +This is prepended to the definition in tex4ht-cpright.tex, hence no need +to include the above (new) ``TeX4ht license text''. I don't understand. + +\<<< +% Copyright 2009-|the|year|empty TeX Users Group +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\<<< +% book.4ht |version % +% Copyright (C) |CopyYear.1997. Eitan M. Gurari % +| +| +| +| +| +| + +| +| +| +| +\Hinput{book} +\endinput +>>> \AddFile{2}{book} + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% report.4ht |version % +% Copyright (C) |CopyYear.1997. Eitan M. Gurari % +| + +| +| +| + +| +| +| +| +| +| + +| +\Hinput{report} +\endinput +>>> \AddFile{2}{report} + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% article.4ht |version % +% Copyright (C) |CopyYear.1997. Eitan M. Gurari % +| + +| +| + +| +| +| +| +| +| +|
+|
+\Hinput{article} +\endinput +>>> \AddFile{2}{article} + +\<<< +| +| +| |%after tocs, divs, and cuts|% +>>> + +\<<< +| +>>> + +\<<< +\long\def\:tempc{\@roman \c@enumiii} +\ifx \theenumiii\:tempc + \def\:tempc{\a:enumiii\@roman\c@enumiii\b:enumiii} + \HLet\theenumiii\:tempc +\fi +\NewConfigure{enumiii}{2} +>>> + +\<<< +|
+\ConfigureToc{appendix} {\empty}{\ }{}{\newline} +\ConfigureToc{chapter} {\empty}{\ }{}{\newline} +\ConfigureToc{likechapter} {}{\empty}{}{\newline} +>>> + +\
<<< +\ConfigureToc{likeparagraph} {}{\empty}{}{\newline} +\ConfigureToc{likepart} {}{\empty}{}{\newline} +\ConfigureToc{likesection} {}{\empty}{}{\newline} +\ConfigureToc{likesubparagraph} {}{\empty}{}{\newline} +\ConfigureToc{likesubsection} {}{\empty}{}{\newline} +\ConfigureToc{likesubsubsection} {}{\empty}{}{\newline} +\ConfigureToc{paragraph} {\empty}{\ }{}{\newline} +\ConfigureToc{part} {\empty}{\ }{}{\newline} +\ConfigureToc{section} {\empty}{\ }{}{\newline} +\ConfigureToc{subparagraph} {\empty}{\ }{}{\newline} +\ConfigureToc{subsection} {\empty}{\ }{}{\newline} +\ConfigureToc{subsubsection} {\empty}{\ }{}{\newline} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Package patching handling} +%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%% +% tutorial begin +%%%%%%%%%%%%%%%%%%%%%%%% + +By default, .4ht files are loaded at begin document. When we need to patch +a package at the moment when it is loaded, we can use the mechanism provided +by usepackage.4ht. + +The obsolete way is to use the following construct: + +\Verbatim +\<<< +packagename,>>> + +\<<< +\def\:temp{packagename}\ifx\@currname\:temp +% package redefinitions +\fi +>>> +\EndVerbatim + +The downside of this that it loads usepackage.4ht again for each package +it detects. This can slow down the compilation. + +The recommended way is the following: + +\Verbatim +\<<< +% use package name as the second argument and name of the file +% that contains redefinitions as the third +\Configure{PackageHooks}{packagename.sty}{packagename-hooks.4ht} +>>> + +\<<< +% packagename-hooks.4ht (|version), generated from |jobname.tex +% Copyright 2020 TeX Users Group +| +% package redefinitions +>>>\AddFile{9}{packagename-hooks} +\EndVerbatim + +The contents of the hooks file can be following: + +\Verbatim +% code before package is loaded +% ... +\:AtEndOfPackage{ + % redefine package commands that are used in the preamble + % ... +} +\EndVerbatim + +You can use the following special commands in the hooks file: + +\Verbatim +\:dontusepackage{packagename} % prevent the package from loading +\:AtEndOfPackage{code} % redefine macros that can be used in the document preamble +\EndVerbatim + +%%%%%%%%%%%%%%%%%%%%%%%% +% tutorial end +%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +% usepackage.4ht (|version), generated from |jobname.tex +% Copyright |CopyYear.2003. Eitan M. Gurari +| + | +\endinput +>>> + +\<<< +\def\:temp{tex4ht}\ifx \:temp\@currname + \:warning{\string\usepackage{tex4ht} again?} + | +\fi +\gdef\a:usepackage{\use:package |,|} +\gdef\use:package#1,{% + \if :#1:\def\:temp##1|{}\else + \def\:temp{#1}\ifx \@currname\:temp + \def\:temp##1|{\input usepackage.4ht }% + \else \let\:temp=\use:package \fi + \fi \:temp} +| +>>> + +\<<< +\def\:temp#1htex4ht.def,tex4ht.sty#2|{\def\:temp{#2}} +\expandafter\:temp \@filelist htex4ht.def,tex4ht.sty|% +\ifx \:temp\empty \else + \:warning{if + \string\RequirePackage[tex4ht]{hyperref} or + \string\usepackage[tex4ht]{hyperref} was + used try instead, repectively, + \string\RequirePackage{hyperref} or + \string\usepackage{hyperref}} +\fi +>>> + +%%%%%%%%%%%%%%%%% +\Part{latex.ltx} +%%%%%%%%%%%%%%%% + +\Link[/usr/local/teTeX/share/texmf/tex/latex/base/latex.ltx]{}{}latex.ltx\EndLink, + +\Link[http://ctan.org/tex-archive/macros/latex/base/]{}{}latex +source components\EndLink + +\def\1.#1.{\Link[http://ctan.org/tex-archive/macros/latex/base/#1.dtx]{}{}#1\EndLink} + +\<<< +% latex.4ht (|version), generated from |jobname.tex +% Copyright |CopyYear.1997. Eitan M. Gurari +| +| +| +| +| +| |%|1.ltclass.|% + |%|1.ltdirchk.|% +| |%|1.ltplain.|% + |%|1.ltvers.|% + |%|1.ltdefns.|% + |%|1.ltalloc.|% + |%|1.ltcntrl.|% + |%|1.lterror.|% + |%|1.ltpar.|% +| |%|1.ltspace.|% + |%|1.ltlogos.|% + |%|1.ltfiles.|% +| |%|1.ltoutenc.|% +| |%|1.ltcounts.|% +| |%|1.ltlength.|% + |%|1.ltfssbas.|% +| |%|1.ltfsstrc.|% + |%|1.ltfsscmp.|% +| |%|1.ltfssdcl.|% + |%|1.ltfssini.|% + |%|1.ltfntcmd.|% + |%|1.ltpageno.|% +| |%|1.ltxref.|% +| |%|1.ltmiscen.|% +| |%|1.ltmath.|% +| |%|1.ltlists.|% +| |%|1.ltboxes.|% +| |%|1.lttab.|% +| |%|1.oltpictur.|% +| |%|1.ltthm.|% +| |%|1.ltsect.|% +| |%|1.ltfloat.|% +| |%|1.ltidxglo.|% +| |%|1.ltbibl.|% +| |%|1.ltpage.|% +| |%|1.ltoutput.|% +| |%|1.ltfinal.|% +| +| + +\let\:MClass:|=\c:MathClass: +\NewConfigure{MathClass}[5]{\bgroup + \let\@nodocument|=\empty + \let\normalcolor|=\relax + \:MClass:{#1}{#2}{#3}{#4}{#5}\egroup} + +\let\:MDelims:|=\c:MathDelimiters: +\NewConfigure{MathDelimiters}[2]{\bgroup + \let\@nodocument|=\empty + \let\normalcolor|=\relax + \:MDelims:{#1}{#2}\egroup} + +\Hinput{latex} +\endinput +>>> \AddFile{1}{latex} + +\<<< +\edef\:temp{% + \every@math@size={\noexpand\ifx \noexpand\EndPicture\noexpand\:UnDef + \noexpand\else \the\every@math@size \noexpand\fi}% +} +\:temp +>>> + +\<<< +\ifx\SaveMkHalignConf:g\:UnDef \else \expandafter\endinput\fi +>>> + + Latex prohibits content before the \`'\begin{document}' by putting +\`'\ht:everypar{\@nodocument}' before +\`'\begin{document}' to get an error if text appears before the +beginning. A possible solution is to put sensitive stuff +in, for instance, \`'{ \let\@nodocument=\empty ...}'. + +It is unsafe to define \''\romannumeral' because it is used +within immediate definition \''\edef', as well as definitions of macro +names \''\csname ...\romannumeral ...\endcsname'. Consider also +\''\Configure{enumerate}' (e.g., +\HPage{paralist} +\Verbatim +\documentclass[a4paper]{article} +\usepackage{amssymb} +\usepackage{amsmath} + +\setcounter{MaxMatrixCols}{10} + +% \RequirePackage[nocfg]{paralist}% avoid locals +% \setdefaultenum{a.}{(i)}{A.}{I.} + +\begin{document} + +\title{Test} +\date +\author{C. Fierro} + +Default list: +\begin{enumerate} +\item \label{7-a}$x \underset{\text{(\ref{7-i})}}{\leq }y$ +\item \label{7-b} $a\underset{\text{(\ref{7-ii})}}{\geq }b$ +\end{enumerate} + +Custom list: +\begin{enumerate}%[\itshape (i)]{} +\item \label{7-i}$y\underset{\text{(\ref{7-a})}}{\geq }x$, +\item \label{7-ii}$b \underset{\text{(\ref{7-b})}}{\leq }a$ +\end{enumerate} + +\end{document} +\EndVerbatim +\EndHPage{}) + +\<<< +\:CheckOption{enum}\if:Option + \def\:temp#1{\a:romannumeral {\expandafter + \:slowroman\romannumeral #1@}\b:romannumeral} + \HLet\@roman=\:temp + \def\:temp#1{\a:romannumeral {\expandafter + \:Slowroman\romannumeral #1@}\b:romannumeral} + \HLet\@Roman=\:temp +\item + :warning{To configure roman numbers use + the option 'enum' (unsafe)} +\fi +\NewConfigure{romannumeral}{2} +>>> + +\<<< +\def\:Slowroman#1{\ifx @#1\else |%\@slowromancap|% + \if i#1\I:rnum\else + \if v#1\V:rnum\else + \if x#1\X:rnum\else + \if l#1\L:rnum\else + \if c#1\C:rnum\else + \if d#1\D:rnum\else + \if m#1\M:rnum\else + #1\fi\fi\fi\fi\fi\fi\fi\expandafter\:Slowroman\fi +} +\NewConfigure{Roman}[7]{% + \def\I:rnum{#1}\def\V:rnum{#2}\def\X:rnum{#3}\def\L:rnum{#4}% + \def\C:rnum{#5}\def\D:rnum{#6}\def\M:rnum{#7}} +\Configure{Roman}{I}{V}{X}{L}{C}{D}{M} +>>> + +\<<< +\def\:slowroman#1{\ifx @#1\else + \if i#1\i:rnum\else + \if v#1\v:rnum\else + \if x#1\x:rnum\else + \if l#1\l:rnum\else + \if c#1\c:rnum\else + \if d#1\d:rnum\else + \if m#1\m:rnum\else + #1\fi\fi\fi\fi\fi\fi\fi\expandafter\:slowroman\fi +} +\NewConfigure{roman}[7]{% + \def\i:rnum{#1}\def\v:rnum{#2}\def\x:rnum{#3}\def\l:rnum{#4}% + \def\c:rnum{#5}\def\d:rnum{#6}\def\m:rnum{#7}} +\Configure{roman}{i}{v}{x}{l}{c}{d}{m} +>>> + +\Chapter{Classes and Packages} + +\Link[http://ctan.tug.org/ctan/tex-archive/macros/latex/base/ltdirchk.dtx]{}{}ltdirchk.dtx\EndLink + +An option \`'no_#1' asks not to load the style file \`'#1.4ht'. + +\<<< +\ifx \@ifpackageloaded\:UnDef + \long\def\@ifpackageloaded#1#2#3{} +\fi +\def\:ifpackageloaded#1#2#3{% + \:CheckOption{no_#1}\if:Option \:Optionfalse + \else \@ifpackageloaded{#1}{#2}{#3}\fi} +>>> + +\<<< +\def\:ifclassloaded#1#2#3{% + \:CheckOption{no_#1}\if:Option \:Optionfalse + \else \@ifclassloaded{#1}{#2}{#3}\fi} +\def\:iffileloaded#1#2#3{% + \:CheckOption{no_#1}\if:Option \:Optionfalse + \else | \expandafter \:tempa\fi } +>>> + +\<<< +\def\:temp{#1}\expandafter + \:iffil\@filelist,,|% + \ifx \:tempa\:temp \def\:tempa{#2}\else \def\:tempa{#3}\fi +>>> + +\<<< +\def\:iffil#1,#2|{\def\:tempa{#1}\ifx \:temp\:tempa + \let\:tempb=\empty + \else + \ifx \:tempa\empty \let\:tempb=\empty + \else \def\:tempb{\:iffil#2|}\fi + \fi \:tempb} +>>> + +We need the follwoing for definition of fonts that are introduced late, e.e., + +\Verbatim +\documentclass{amsart} + \usepackage{textcomp} + \usepackage{amssymb} +\begin{document} + +\csname Configure\endcsname{mathfrak}{[[[[}{]]]} +\csname Configure\endcsname{mathbb}{[[[[}{]]]} + +$\mathfrak{A}a^{\mathfrak{A}}$ +\end{document} +\EndVerbatim + +\<<< +\let\document:select:group\document@select@group +\def\document@select@group#1#2#3#4{% + \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi + {% + \document:select:group{#1}{#2}{#3}{}% + \expandafter\ifx \csname n:\expandafter + \:gobble\string#1:\endcsname\relax\else + \expandafter\let\csname o:\expandafter\:gobble + \string#1:\endcsname\:UnDef + \expandafter\HLet\expandafter#1\csname + n:\expandafter\:gobble\string#1:\endcsname + \expand:after{\global\expandafter\let + \csname o:\expandafter\:gobble\string#1:\endcsname}% + \csname o:\expandafter\:gobble\string#1:\endcsname + \global\let#1=#1% + \fi + #1{#4}% +}} +>>> + +%%%%%%%%%%%%%%%%%% +\Section{titlesec} + +\<<< +% titlesec.4ht (|version), generated from |jobname.tex +% Copyright |CopyYear.2000. Eitan M. Gurari +| +\ifx \ttl@assign@ii\:Undef + \ifx \ttl@sect\:UnDef\else + | + \fi + \ifx \ttl@useclass\:UnDef\else + | + \fi + | +\else + | +\fi +\Hinput{titlesec} +\endinput +>>> \AddFile{9}{titlesec} + +\<<< +\pend:defII\ttl@useclass{% + \@ifstar {}{\SkipRefstepAnchor}} +\let\ttl:select|=\ttl@select +\def\ttl@select#1{% + \edef\sc:tp{\ifttl@label\else like\fi + #1}\def\c:secnumdepth{\@nameuse{ttll@#1}}% + \ttl:select{#1}} +\let\ttl@write|=\:gobbleII +\let\ttl@glcmds\relax +\let\ttl@beginlongest\@empty +\let\ttl@midlongest\@empty +\let\ttl@endlongest\@empty +>>> + +\<<< +\pend:defII\ttl@sect{% + \@ifstar {}{\SkipRefstepAnchor}} +\let\ttl:select=\ttl@select +\def\ttl@select#1#2#3#4#5{% + \edef\sc:tp{\ifttl@label\else like\fi #1}\def\c:secnumdepth{#5}% + \ttl:select{#1}{#2}{#3}{#4}{#5}} +\let\ttl@write|=\:gobbleIII +>>> + +\<<< +\let\ttlh:hang|=\ttlh@hang +\def\ttlh@hang#1#2#3#4#5#6#7#8{% + \HtmlEnv + \expandafter\def\csname thetitle\sc:tp\endcsname{#2}% + \csname no:\sc:tp\endcsname{#8}% + \par \ttlh:hang{}{}{#3}{}{}{#6}{#7}{}} +>>> + +\<<< +\let\:seccntformat=\@seccntformat +\def\@seccntformat#1{\ifnum 0=0\the\csname c@#1\endcsname\else + \:seccntformat{#1}\fi} +>>> + + +\<<< +\let\ttl:straight@i\ttl@straight@i +\def\ttl@straight@i#1[#2]#3{% + |% + \ifttl@label \else + |% + \fi + \edef\sc:tp{\ifttl@label\else like\fi #1}% + \ttl:straight@i{#1}[{#2}]{#3}% +} +\def\ttlh@hang#1#2#3#4#5#6#7#8{% + \def\c:secnumdepth{\@nameuse{ttll@\sc:tp}}% + \:StartSec {\sc:tp}{% + \ifttl@label \ifnum \c:secnumdepth >\c@secnumdepth + \else \csname the\sc:tp\endcsname \fi \fi + }{#8}% +} +\def\:tempc#1#2#3#4{% + \begingroup + \let\everypar\@gobble% don't let titlesec to break our paragraph handling + \edef\sc:tp{\ifttl@label\else like\fi #1}% + \let\ttl@savewrite\empty + \o:ttl@select:{#1}{#2}{#3}{#4} + \endgroup +} + +\HLet\ttl@select\:tempc +>>> + +% runin and display formats ruin tex4ht section patching +% letting them to the \ttl@hang format seems to fix that +% https://tex.stackexchange.com/q/451077/2891 +\<<< +\let\ttlh@runin\ttlh@hang +\let\ttlh@display\ttlh@hang +>>> + +\<<< +\def\:temp{#1}\edef\:tempa{\expandafter + \expandafter\expandafter\:gobble + \expandafter\string\csname section\endcsname}\ifx \:temp\:tempa \else + |% +\fi +>>> + +\<<< +\edef\:tempa{\expandafter\expandafter\expandafter\:gobble + \expandafter\string\csname subsection\endcsname}\ifx \:temp\:tempa \else + {\ttl@labeltrue \ttl@addcontentsline{like#1}{#3}}% +\fi +>>> + +\<<< +\gdef\NR:Title{\a:newlabel{#3}}% +>>> + +% \def\ttlh@display#1#2#3#4#5#6#7#8{{[111]#1\ifttl@label #2\fi #4{#8}[/111]}} +% \def\ttlh@runin#1#2#3#4#5#6#7#8{{[333]#1\ifttl@label #2\fi #4{#8}[/333]}} + +TeX4ht handles stuff written to TOC itself, Titlesec caused duplicated entries in TOC, +so we just disable it's TOC handling. + +\<<< +\def\ttl@addcontentsline#1#2{\nobreak} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Scientific Word} + +\Link[ftp://ftp.mackichan.com/]{}{}mackichan\EndLink, +\Link[http://cutter.ship.edu/\string + ~ensley/tci/]{}{}tci\EndLink + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% tcilatex.4ht |version % +% Copyright (C) |CopyYear.2000. Eitan M. Gurari % +| +| +\expandafter\ifx \csname @TCItagstar\endcsname\relax + | +\else + | + \ifx \@msidraft\:Undef + | +\fi \fi +| +\Hinput{tcilatex} +\endinput +>>> \AddFile{2}{tcilatex} + +\<<< +\let\tci:ProvidesPackage=\ProvidesPackage +\def\ProvidesPackage#1{% + \tci:ProvidesPackage{#1}% + \def\:temp{swpframe}\def\:tempa{#1}\ifx \:temp\:tempa + \ifx \GRAPHICSHP\:UnDef\else + \let\swp:GRAPHICSHP=\GRAPHICSHP + \:AtEndOfPackage{\let\GRAPHICSHP\swp:GRAPHICSHP}% + \fi + \ifx \graffile\:UnDef\else + \let\swp:graffile=\graffile + \:AtEndOfPackage{\let\graffile\swp:graffile}% + \fi + \ifx \GRAPHIC\:UnDef\else + \let\swp:GRAPHIC=\GRAPHIC + \:AtEndOfPackage{\let\GRAPHIC\swp:GRAPHIC}% + \fi + \fi +} +>>> + +% \ifx \BOXEDSPECIAL\:UnDef\else +% \let\swp:BOXEDSPECIAL=\BOXEDSPECIAL +% \AtEndOfPackage{\let\BOXEDSPECIAL\swp:BOXEDSPECIAL}% +% \fi +% +% + +The \`'\protect' in \`'\section{The second Section + \protect\label{two}}' is problematic because of double labels when +the toc is on. The problem can be solved with the code. + +\<<< +\def\label:gobble{\futurelet\:temp\lbl:gobble} +\def\lbl:gobble#1{\ifx\:temp\relax \expandafter\label:gobble\fi} +\AtBeginDocument{\immediate\write\:tocout{% + \let\string\label \string\label:gobble }} +>>> + +\<<< +\def\:temp#1#2#3#4{#2\ref{#4}#3} +\ifx \:temp\hyperref + \def\hyperref{\bgroup + \catcode`\#=12 \catcode`\~=12 \catcode`\_=12 \h:pref}% + \def\h:pref#1#2#3#4{\egroup\Link[#4]{}{}#1\EndLink}% +\fi +>>> + +In version 4 \''\hyperref' is aliased to \''\x@hyperref'. + +\<<< +\def\y@hyperref#1#2#3#4{% + \Link[#4]{}{}#1\EndLink + \catcode`\~ = 13 + \catcode`\$ = 3 + \catcode`\_ = 8 + \catcode`\# = 6 + \catcode`\& = 4 +} +>>> + +\<<< +\let\:tempc=\GRAPHICSPS +\pend:defI\:tempc{\a:GRAPHICSPS} +\append:defI\:tempc{\b:GRAPHICSPS} +\HLet\GRAPHICSPS=\:tempc +\NewConfigure{GRAPHICSPS}{2} +>>> + +\<<< +\let\:tempc=\GRAPHICSHP +\pend:defI\:tempc{\a:GRAPHICSHP} +\append:defI\:tempc{\b:GRAPHICSHP} +\HLet\GRAPHICSHP=\:tempc +\NewConfigure{GRAPHICSHP}{2} +>>> + +\<<< +\let\:tempc=\BOXTHEFRAME +\pend:defI\:tempc{\hbox\bgroup\a:BOXTHEFRAME} +\append:defI\:tempc{\b:BOXTHEFRAME\egroup} +\HLet\BOXTHEFRAME=\:tempc +\NewConfigure{BOXTHEFRAME}{2} +\let\:IFRAME=\IFRAME +\let\:DFRAME=\DFRAME +\let\:FFRAME=\FFRAME +\def\IFRAME#1#2#3#4#5#6{\a:IFRAME\leavevmode + \IgnorePar\:IFRAME{#1}{#2}{#3}{#4}{#5}{#6}\b:IFRAME} +\def\DFRAME#1#2#3#4#5{\a:DFRAME\leavevmode + \IgnorePar\:DFRAME{#1}{#2}{#3}{#4}{#5}\b:DFRAME} +\def\FFRAME#1#2#3#4#5#6#7#8{\a:FFRAME\leavevmode + \IgnorePar\:FFRAME{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}\b:FFRAME} +\NewConfigure{IFRAME}{2} +\NewConfigure{DFRAME}{2} +\NewConfigure{FFRAME}{2} +>>> + +% \def\mailto{\bgroup \catcode`\#=12 \catcode`\~=12 \catcode`\_=12 \mlto}% +% \def\mlto#1{\egroup \Link[mailto:#1]{}{}\texttt{#1}\EndLink}% + +\<<< +\def\:tempc#1#2{\o:QATOP:{\a:QATOP #1\b:QATOP}{\c:QATOP #2\d:QATOP}} +\HLet\QATOP=\:tempc +\NewConfigure{QATOP}{4} +\def\:tempc#1#2{\o:QDATOP:{\a:QDATOP #1\b:QDATOP}{\c:QDATOP #2\d:QDATOP}} +\HLet\QDATOP=\:tempc +\NewConfigure{QDATOP}{4} +\def\:tempc#1#2{\o:QTATOP:{\a:QTATOP #1\b:QTATOP}{\c:QTATOP #2\d:QTATOP}} +\HLet\QTATOP=\:tempc +\NewConfigure{QTATOP}{4} +>>> + +\<<< +\expandafter\ifx \csname o:dfrac:\endcsname \relax + | +\fi +>>> + +The following protection, e.g., for titles of sections. + +\<<< +\let\o:Greekmath:|=\Greekmath +\def\Greekmath{\protect\o:Greekmath:} +>>> + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% seslideb.4ht |version % +% Copyright (C) |CopyYear.2001. Eitan M. Gurari % +| +| +\Hinput{seslideb} +\endinput +>>> \AddFile{7}{seslideb} + +\<<< +\NewSection\swSlide{}{} +\def\PageBreak{\swSlide{\swTitle}} +\let\swTitle|=\relax +>>> + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% jeep.4ht |version % +% Copyright (C) |CopyYear.2002. Eitan M. Gurari % +| +| +\Hinput{jeep} +\endinput +>>> \AddFile{9}{jeep} + +\<<< +\let\jeep:@sect|=\no@sect +\def\no@sect#1#2#3#4#5{% + \jeep:@sect{#1}{#2}{#3}{#4}{#5\let\@svsec=\empty}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Chapter{Common to Plain and LaTeX-Plain} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Link[http://ctan.tug.org/ctan/tex-archive/macros/latex/base/ltplain.dtx]{}{}ltplain.dtx\EndLink + +\<<< +| +>>> + +plain.tex and latex. + +The following is assumed to be within a group. + +\<<< +\def\:temp{\o:obeylines: + \let\obeylines|=\o:obeylines: + \a:obyln \global\let\x:obln|=\end:obeylines \aftergroup\x:obln + \def\:temp{% + \ifx\:tempa\par \ht:everypar{\ht:everypar{\b:obyln}}% + \else \ht:everypar{\b:obyln}\fi}% + \futurelet\:tempa\:temp } +\HLet\obeylines|=\:temp +\NewConfigure{obeylines}[3]{\c:def\a:obyln{#1}\c:def\b:obyln{#3}% + \c:def\end:obeylines{#2}} +>>> + +\ifHtml[\HPage{more}\Verbatim +xxxxxxxxxxxxxxxxxxxxx + +{\obeylines neither do +things too high for me.} + +xxxxxxxxxxxxxxxxxxxxxxxxxxxx + +xxxxxxxxxxxxxxxxxxxxx +{\obeylines neither do +things too high for me.} +xxxxxxxxxxxx + +xxxxxxxxxxxxxxxxxxxxxxx +{\obeylines neither do +things too high for me.} + +xxxxxxxxxxxxxxxxxxxxxxxxxx + +xxxxxxxxxxxxxxxxxxxxx +

neither do +

things too high for me. +

xxxxxxxxxxxxxxxxxxxxxxxxxxxx +

xxxxxxxxxxxxxxxxxxxxx neither do +

things too high for me. xxxxxxxxxxxx +

xxxxxxxxxxxxxxxxxxxxxxx neither do +

things too high for me. +

xxxxxxxxxxxxxxxxxxxxxxxxxx + +\EndVerbatim\EndHPage{}]\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Chapter{ltspace (Horizontal Spaces)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Link[http://ctan.tug.org/ctan/tex-archive/macros/latex/base/ltspace.dtx]{}{}ltspace.dtx\EndLink + +\<<< +\NewConfigure{hspace}{3} +\Configure{hspace}{}{}{ } +\def\:temp#1{\tmp:dim|=#1\relax + \a:hspace \hsp:c\hskip #1\relax\b:hspace} +\HLet\@hspace|=\:temp +\def\:temp#1{\tmp:dim|=#1\relax + \a:hspace \hsp:c\vrule \@width\z@\nobreak + \hskip #1\hskip \z@skip\b:hspace} +\HLet\@hspacer|=\:temp +\def\hsp:c{\ifdim \tmp:dim<1em\else\c:hspace\fi + \ifdim \tmp:dim<2em\else\c:hspace\fi + \ifdim \tmp:dim<3em\else\c:hspace\fi + \ifdim \tmp:dim<4em\else\c:hspace\fi + \ifdim \tmp:dim<5em\else\c:hspace\fi} +>>> + +We need the assignment to \''\tmp:dim' because of commands like +\''\hspace{0.25em plus 0.125em minus 0.08em}'. + +\<<< +\let\:tempc\@vspace +\append:defI\:tempc{\a:vspace{#1}} +\HLet\@vspace\:tempc +\let\:tempc\@vspacer +\append:defI\:tempc{\a:vspace{#1}} +\HLet\@vspacer\:tempc +\NewConfigure{vspace}[1]{\def\a:vspace##1{#1}} +\Configure{vspace}{} +>>> + +%%%%%%%%%%%%%%%%%% +\Chapter{ltlength} +%%%%%%%%%%%%%%%%%% + +\Link[http://ctan.tug.org/ctan/tex-archive/macros/latex/base/ltlength.dtx]{}{}ltlength.dtx\EndLink + +% +%>>> + +The commands \''\settoheight', \''\settodepth', and \''\settowidth' +invoke \''\setbox' without producing output. To avoid fake pictures, +we do the following. + +\<<< +\let\:settodim|=\@settodim +\def\@settodim#1#2#3{\PictureOff \:settodim#1{#2}{#3}\PictureOn} +>>> + +%%%%%%%%%%%%% +\Chapter{Cross References} +%%%%%%%%%%%%% + +\Link[http://ctan.tug.org/ctan/tex-archive/macros/latex/base/ltxref.dtx]{}{}ltxref.dtx\EndLink + +%%%%%%%%%%%%% +\Section{LaTeX} +%%%%%%%%%%%%% + +\<<< +| +| +>>> + +%%%%%%%%%%%%% +\SubSection{Index Labels} +%%%%%%%%%%%%% + +Try to delete, or at least contain, \''\no:lbl:idx'. + +\<<< +\def\no:lnk#1#2#3\EndLink{#3} +\let\:ref|=\ref +\let\:index|=\index +\def\no:lbl:idx{\let\label|=\@gobble } +\def\toc:lbl:idx{\a:NoSection} +>>> + +%%%%%%%%%%%%% +\SubSection{ref, label, newlabel: Usage} +%%%%%%%%%%%%% + +\<<< +\def\:tempc#1{\a:pageref\o:pageref:{#1}\b:pageref} +\HLet\pageref\:tempc +\NewConfigure{pageref}[3]{% + \def\a:pageref{#1\bgroup \Configure{ref}{\Link}{\EndLink}{#3}}% + \def\b:pageref{\egroup #2}% +} +\Configure{pageref}{}{}{} +>>> + +\<<< +\NewConfigure{@newlabel}[1]{\concat:config\a:@newlabel{#1}} +\let\a:@newlabel|=\relax +| +\NewConfigure{newlabel}[2]{% + \def\a:newlabel{#1}\ifx \a:newlabel\empty + \def\label:addr{\cur:th \:currentlabel}% + \else + \def\label:addr{#1}% + \fi + \def\a:newlabel##1{\expandafter\string\c:rEfLiNK{\label:addr}{#2}}} +\NewConfigure{ref}[3]{% + \def\a:rEfLiNK{#1}\def\b:rEfLiNK{#3}% + \ifx \a:rEfLiNK\empty + \ifx \b:rEfLiNK\empty + \expandafter\def\c:rEfLiNK##1##2{##2}% + \else + \expandafter\def\c:rEfLiNK##1##2{#3}% + \fi + \else + \ifx \b:rEfLiNK\empty + \expandafter\def\c:rEfLiNK##1##2{#1{##1}{}##2#2}% + \else + \expandafter\def\c:rEfLiNK##1##2{#1{##1}{}#3#2}% + \fi + \fi + \def\b:rEfLiNK{#2}% +} +\Configure{newlabel}{\cur:th \:currentlabel}{#1} +\NewConfigure{newlabel-ref}[1]{\def\c:rEfLiNK{#1}% + \ifx \at:startdoc\:UnDef \dflt:ref{#1}\else + \pend:def\at:startdoc{\dflt:ref{#1}}\fi +} +\def\dflt:ref#1{\if@filesw\immediate\write\@auxout{\string\ifx + \string#1\string\UnDef\gdef\string#1\#1\#2{\#2}\string\fi}\fi} +\Configure{newlabel-ref}{\rEfLiNK} +\let\:writefile|=\@writefile +\def\@writefile#1{\bgroup \catcode`\:|=11 \:wrtfile{#1}} +\def\:wrtfile#1#2{\egroup\:writefile{#1}{#2}} +>>> + +\List{*} +\item +\`'\Configure{ref}{\Link}{\EndLink}{anchor}' tells what \''\Link'-type command +should be on insertions of \''\ref'. If the third parameter is empty, +the anchor is the one provided by the system. If the first parameter +is empty, no Link is assumed. + +\item +\''\Configure{newlabel}{\cur:th \:currentlabel}{#1}' supplies the +target address and the anchor. +\item +\''\Configure{newlabel}{}{#1}' +is equivalent to +\''\Configure{newlabel}{\cur:th \:currentlabel}{#1}' +\item +The +\''\Configure{newlabel-ref}{\rEfLiNK}' command provides an +intermediate link command for the aux command, which +\`'\Configure{ref}{\Link}{\EndLink}{anchor}' configures. If the first +field of the last configuration command is empty, than the anchor is +provided without its surrounding. +\EndList + +\Verbatim + + > One more thing. You will notice from `minitoc.tex' that the HTML + > anchors given to the sections depend on the value of \@currentlabel, + > be it set explicitely or implicitly (e.g., by the previous section). + > Is it what you want ? + +Yes. I believe the reason was to avoid ambiguities--unfortunately, +I can't locate now where they could occur. + +{\makeatletter \gdef\@currentlabel{XxX}} +\section*{first section/First chapter} +\section{second section/First chapter} +\section*{third section/First chapter} + +\EndVerbatim + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{ref, label, newlabel: Hooking into Label} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\let\:label|=\label +\def\label{\relax + \expandafter\ifx \csname cur:th\endcsname\relax \expandafter\:label + \else \expandafter\l:bel \fi} +\let\lb:l|=\label +\def\l:bel#1{\@bsphack\if@filesw {\let\thepage|=\relax + |% + \let\protect|=\@unexpandable@protect \cur:lbl{}% + \ifx \EndPicture\:UnDef + \ifx \cur:th\skip:anchor + |% + \else \ifx \:currentlabel\empty + |

%
+      \fi \fi
+   \else
+      |%
+   \fi
+   \a:@newlabel
+   \edef\@tempa{\write\@auxout{\string
+      \newlabel{#1}{{|}%
+                    {|}|}}}%
+   \expandafter}\@tempa
+   \if@nobreak \ifvmode\nobreak\fi\fi\fi
+   |%
+   \@esphack}
+|
+>>>
+
+\<<<
+\Configure{@newlabel}{\def\%{\string\%}}
+>>>
+
+We had before \`'\ifx \EndPicture\:UnDef...\else...\fi' embeded within
+\`'\ifx \cur:th\skip:anchor' but that eliminated the anchors for
+eqnarray of pictures.
+
+To save memory, we try to get anchors only when refered by labels.
+For instance, this is the case for \''\@thm'.
+
+\<<<
+\bgroup   \a:@newlabel
+   \Make:Label{\label:addr}{}\egroup
+>>>
+
+\<<<
+\let\skip:anchor|=\:UnDef
+>>>
+
+The following deals with labels \''\label' provided before sectioning commands.
+
+\
<<<
+\def\:currentlabel{doc}%
+|%
+>>>
+         
+
+\<<<
+\def\AutoRefstepAnchor{\SkipRefstepAnchor}
+>>>
+
+The following is to ensure anchors for labels in pictures.
+
+\<<<
+\begingroup
+   \a:@newlabel
+   \edef\:temp{\noexpand\AfterPicture{%
+       \noexpand\Make:Label{\label:addr}{}%
+       \noexpand\uno:lbl{\label:addr}}%
+   }\:temp
+\endgroup
+>>>
+
+The following is to avoid eliminated anchors as is the case in, for instance, \`'\[xx\label{a}\label{b}\] '.
+
+\<<<
+\def\uno:lbl#1{\def\:temp{#1}\futurelet\:tempa\I:lbl}
+\def\I:lbl{\ifx \:tempa\Make:Label \expandafter\no:mklbl \fi}
+\def\no:mklbl#1#2#3{\def\:tempa{#2}\ifx \:temp\:tempa \else
+   \Make:Label{#2}{#3}\fi}
+>>>
+
+\<<<
+\a:newlabel\@currentlabel
+>>>
+
+The anchor for the page is approximated to the anchor of the logical unit.
+This is so to solve the possible problem of having a \`'label' in a position
+where \`'' links are not allowed. 
+
+\<<<
+\a:newlabel\thepage
+>>>
+
+\<<<
+\let\:currentlabel|=\empty
+>>>
+
+In pure latex, \''\Configure{newlabel}{##1}'.
+
+The following is treated in a similar manner to cite.
+It provides the means to disable nested links in
+entries of tocs. The \''\Link' doesn't seem to need
+the \''[]' option there, so a \''\:gobbleII' can do the job.
+
+A better def is given to \''\l:bel' in AmsLaTeX .
+
+\<<<
+\let\l:bel:|=\l:bel
+\def\l::bel#1{{\:SUBOff\:SUPOff\xdef\:temp{\noexpand\l:bel:{#1}}}\:temp}
+\def\l:bel{\Protect\l::bel}
+\let\o:ref|=\:ref
+\def\::ref#1{{\:SUBOff\:SUPOff\xdef\RefArg{#1}}\expandafter\o:ref
+                                               \expandafter{\RefArg}}
+\def\:ref{\Protect\::ref}
+\let\ref|=\:ref
+>>>
+
+Without the \'''\expandafter' we may get \''\RefArg' passed
+ as the first argument to \''\T@arg',
+resulting in \''\def\RefArg{\RefArg}'.
+
+\<<<
+\let\:newl@bel|=\@newl@bel
+\let\n:wlbl|=\@newl@bel
+\def\@newl@bel#1#2{{\:SUBOff\:SUPOff
+   \xdef\:temp{\noexpand\n:wlbl{#1}{#2}}}\:temp}
+>>>
+
+\<<<
+\let\:testdef|=\@testdef
+\def\@testdef #1#2{{\:SUBOff\:SUPOff
+   \xdef\:temp{\noexpand\:testdef{#1}{#2}}}\:temp}
+>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\SubSection{@currentlabel}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The second parameter of \''\anc:lbl' is a counter name, when such is know.
+
+The \`'\@currentlabel' comes sometimes with font info.  Normally, it
+comes from \''\refstepcounter' in the form of
+\''\the..counter-name..'. In such cases, we can take the counter
+name which is provided in the parameter of \''\cur:lbl'.
+
+\<<<
+\NewConfigure{@:currentlabel}[1]{\concat:config\a:@:currentlabel{#1}}
+\let\a:@:currentlabel|=\relax
+\def\cur:lbl#1{{\a:@:currentlabel 
+  |\expandafter}\:currentlabel}
+>>>
+
+\<<<
+\def\:currentlabel{\par}%
+\ifx\@currentlabel\:currentlabel 
+   \def\:currentlabel{\let\:currentlabel|=\empty}%
+\else \def\:currentlabel{#1}%
+   \edef\:currentlabel{\def\noexpand
+                 \:currentlabel{\ifx\:currentlabel\empty
+         \ifx \:@currentlabel\:UnDef \@currentlabel
+         \else \:@currentlabel \fi
+      \else 
+          \expandafter\ifx\csname #1:Count\endcsname\relax
+             \expandafter\the\csname c@#1\endcsname
+          \else \csname #1:Count\endcsname\fi
+      \fi}}%
+\fi
+>>>
+
+The \''\label' command of latex invokes \''\cur:lbl{}'. If
+\''\:@currentlabel' is deined, it is the to be used for the current label.
+The   \''\ltx@label' command of amsmath.sty ignores it.
+
+Whenever \''\@currentlabel' is redefined, we also want to redefine
+\''\:@currentlabel'. It is redefined in 
+\List{*}
+\item  latex.ltx within
+    \''\refstepcounter', \''\eqnarray', \''\@mpfootnotetext',
+     and \''\@footnotetext';
+\item amsart.cls, amsbook.cls, and amsproc.cls
+    within \''eqnarray' and \''\@footnotetext'; 
+\item amsmath.sty within
+    \''\df@tag' and \''\make@df@tag@@';  
+\item amstex.sty  within
+    \''\@currentlabel', \''\@seteqlabel', and \''multline*'. 
+\EndList
+
+\<<<
+\let\cnt:currentlabel|=\@currentlabel
+\def\:@currentlabel{\ifx \cnt:currentlabel\@currentlabel
+   \expandafter\the\csname c@equation\endcsname\else \@currentlabel\fi}%
+>>>
+
+\<<<
+\let\cnt:currentlabel|=\@currentlabel
+\def\:@currentlabel{\ifx \cnt:currentlabel\@currentlabel
+   \expandafter\the\csname c@#1\endcsname\else \@currentlabel\fi}%
+>>>
+
+\<<<
+\html:addr \edef\cur:th{|\last:haddr r}% 
+>>>
+
+\<<<
+\anc:lbl r{}%
+>>>
+
+\<<<
+|
+\def\cnt:currentlabel{\p@equation\theequation}%   
+\def\:@currentlabel{\ifx \cnt:currentlabel\@currentlabel
+   \expandafter\the\csname c@equation\endcsname\else \@currentlabel\fi}%
+>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\SubSection{/link for /label from /refstepcounter}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The following is late arrival into TeX4ht, inserted for handling
+\''\newtheorem', and possibly other structures.  It might cause
+duplicated anchors.  At least in the  case of figures and lists they
+are overided by other anchors, and hence not needed. In case of 
+lists and new theorems we ended to delete the overriden case. Still
+need to do it
+for pictures, and amybe also other cases.
+
+The \''\refstepcounter' may appear in places (e.g., before first item
+of a list) where no text is allowed, hence we have to ensure that
+\''\anc:lbl' will not break this restriction.
+How about within pictures?
+
+\<<<
+\append:defI\refstepcounter{%
+  |%
+  \anc:lbl r{#1}}
+\def\anc:lbl#1#2{%
+   \html:addr   \edef\cur:th{|\last:haddr #1}%
+   \ifx \EndPicture\:UnDef
+      {\let\leavevmode|=\empty \cur:lbl{#2}%
+      \Make:Label{\cur:th\:currentlabel}{}}%
+   \else \ifx \label\@gobble \else  \cur:lbl{#2}%
+       \edef\:temp{\noexpand\AfterPicture{%
+          \noexpand\Make:Label{\cur:th\:currentlabel}{}}}\:temp
+   \fi \fi}
+\let\onc:lbl|=\anc:lbl
+\def\SkipRefstepAnchor{\def\anc:lbl##1##2{\html:addr
+   \edef\cur:th{|\last:haddr}\ShowRefstepAnchor
+   \let\skip:anchor|=\cur:th}}
+\def\ShowRefstepAnchor{\let\anc:lbl|=\onc:lbl}
+|
+\html:addr   \edef\cur:th{|\last:haddr}
+>>>
+
+% \def\AutoRefstepAnchor{\def\anc:lbl##1##2{\onc:lbl{##2}{}%
+%   \ShowRefstepAnchor}}
+
+We can't use ref- below, because 
+
+The MakeLabel removes duplicates such as in
+
+\Verbatim
+         \documentclass{article}
+         \begin{document}
+            \begin{equation}\label{jh}
+              c
+            \end{equation}
+         \end{document}
+\EndVerbatim
+
+For memory conservation, a maximum is placed on the number of labels
+recorded.
+
+\<<<
+\def\Make:Label#1#2{%
+   \def\:tempb##1|{%
+      \xdef\Made:Labels{{#1}\Made:Labels}%
+      \set:label{\hbox{\Link{}{#1}#2\EndLink}}%
+      \trim:Labels
+   }%
+   \def\:tempc##1|{\hbox{#2}}%
+   \let\:next=\check:labels \edef\:tempa{#1}%
+   \expandafter\:next\Made:Labels{}|%      
+}
+\let\set:label=\empty
+>>>
+
+\<<<
+\let\Made:Labels=\empty
+\def\check:labels#1{%
+   \def\:temp{#1}\ifx\:temp\empty \let\:next=\:tempb 
+   \else\ifx \:temp\:tempa        \let\:next=\:tempc
+   \fi \fi
+   \:next }
+>>>
+
+\<<<
+\HAssign\Labels:Cnt |= 0
+\def\trim:Labels{%
+   \ifnum \Labels:Cnt>100 
+      \def\:tempa##1|{}%
+      \gHAssign\Labels:Cnt = 0
+      \let\:tempb\Made:Labels  
+      \let\Made:Labels\empty
+      \expandafter\keep:Labels\:tempb|%
+   \else \gHAdvance\Labels:Cnt by 1 \fi
+}
+\def\keep:Labels#1{\relax
+   \ifnum \Labels:Cnt<50
+     \xdef\Made:Labels{\Made:Labels{#1}}\gHAdvance\Labels:Cnt |by 1
+         \expandafter\keep:Labels
+   \else \expandafter\:tempa \fi }
+>>>
+
+We need the \''\hbox' above because \''\label' complains if vertical
+mode is replaced with horizontal mode.
+
+\`'   \let\Link:Labe|=\Make:Label
+   \def\Tag:Label#1#2{\Tag{fR\label:Count}{#1}#2\GetLabel}
+   \def\LinkLabels{\let\Make:Label|=\Link:Label} 
+   \def\SendLabels{\let\Make:Label|=\Tag:Label}'
+
+\ifHtml[\HPage{test data}\Verbatim
+\newtheorem{example}{Example}[section]
+
+\begin{example} 
+
+\label{E}
+
+\end{example} 
+
+Example \ref{E}
+
+\EndVerbatim\EndHPage{}]\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\SubSection{divisions in tex4ht.sty}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<<<
+\def\Get:SecAnchor#1#2#3{%
+   |%
+   \xdef\cur:th{|\last:haddr}%
+   |%
+   \edef\:SecAnchor{\cur:th\:currentlabel}%
+ }
+>>>
+
+We redefine \''\@Roman' for \''\thepart' to have the same number
+of entries as \''\Alph'.
+
+\<<<
+\bgroup  \def\@Roman##1{%
+  \ifcase##1\or I\or II\or III\or IV\or V\or VI\or 
+     VII\or VIII\or IX\or X\or XI\or XII\or XIII\or 
+     XIV\or XV\or XVI\or XVII\or XVIII\or XIX\or XX\or 
+     XXI\or XXII\or XXIII\or XXIV\or XV\or XVI\else
+     \expandafter\uppercase\expandafter{\romannumeral ##1}\fi}%
+   \a:currentlabel
+   \edef\:temp{#2}\ifx \:temp\empty
+   \else \global\let\@currentlabel|=\:temp\fi
+\egroup
+>>>
+
+\<<<
+\NewConfigure{currentlabel}{1}
+>>>
+
+The \''\@currentlabel' may hold a \''\uppercase' due to \''\thepart'
+that has a \''\@Roman' in it.
+Tried to go for \`'\cur:lbl{#1}%', but that was a problem for cross
+references with labels of sections, because \''\label' uses \`'\cur:lbl{}'.
+
+\<<<
+\let\:tempa|=\uppercase \def\uppercase##1{##1}\cur:lbl{}%
+\let\uppercase|=\:tempa
+>>>
+
+How the above  \`'\global\let\cur:th|=\last:haddr'
+work with the change in \''\refstepcounter'?
+
+%%%%%%%%%%%%%%%%%%
+\SubSection{ref-}
+%%%%%%%%%%%%%%%%%%
+
+To reduce conflicts, we deal with labels indirectly
+through a counter. The counter is increased before
+\''\getlabel' and after \''ref'. That is, this pair is assured
+consistency of a label.  The separation between \''\GetLabel' and
+\''\PutLabel' is
+to allow the latter one into immediate arguments such as \''\HCode'
+and \''\Tg'.
+
+\''\label' sends its info to \''\getlabel'. It insert a 
+\`'' iff it is a target of a \''\pageref'.
+
+\Verbatim
+\:info{\string\Configure{label}{\string#1}{\string#1}}
+\:info{\string\Configure{pageref}{\string#1}}
+\:info{\string\Configure{ref}{\string#1}}
+
+\Configure{label}{#1}{\HCode{[pagelabel label="#1"/]}}
+\Configure{pageref}{\HCode{[pageref label="#1"/]}}
+\Configure{ref}{\HCode{[ref label="#1"/]}}
+\GetLabel \PutLabel  \ref{a}  \pageref{a}  \label{a}
+\EndVerbatim
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+\Section{apacite.sty bibtex}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+
+\<<<
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+% apacite.4ht                           |version %
+% Copyright (C) |CopyYear.2000.       Eitan M. Gurari         %
+|
+   | 
+   \ifx \@@citeNP\:UnDef
+     |
+   \else
+     |
+   \fi
+\Hinput{apacite}
+\endinput
+>>>        \AddFile{9}{apacite}
+
+\<<<
+\def\B:my@dummy{\B@my@dummy}
+\def\:citeP{\@citeP}
+
+\def\:tempc<#1>[#2]#3{%
+   \start:cite\a:cite \o:@@cite:<#1>[#2]{#3}\b:cite \end:cite
+}
+\HLet\@@cite=\:tempc
+>>>
+
+\<<<
+\def\@lbibitem[#1]#2{% 
+    \def\BBA{\BBAA}% 
+    \item[\@biblabel{#1}]% 
+    \if@filesw{% 
+        \a:bibcite
+        \def\BBA{\string\BBA}% 
+        \def\protect##1{\string ##1}% 
+        \immediate\write\@auxout{\string\bibcite{#2}{#1}}% 
+        \def\BBA{\BBAA}% 
+    }% 
+    \fi% 
+    \ignorespaces% 
+} 
+>>>
+
+\<<<
+\def\start:cite{%
+   \let\sv:edef\edef
+   \let\gobble:cite=\:gobble
+   \def\edef##1{\def\:temp{##1}%
+      \ifx \:temp\B:my@dummy
+         \ifx \o:BCA\:UnDef
+             \ifx \BCA\:UnDef\else
+                \let\o:BCA=\BCA
+                \def\BCA####1####2{\Protect\cIteLink{X\@citeb}{}%
+                       \o:BCA{####1}{####2}\Protect\EndcIteLink}%
+             \fi
+         \fi
+      \fi
+      \sv:edef##1}%
+}
+\def\end:cite{%
+   \let\edef=\sv:edef
+   \let\BCA=\o:BCA  \let\o:BCA=\:UnDef
+}
+>>>
+
+\
<<<
+\def\start:cite{%
+   \let\sv:edef\edef
+   \let\gobble:cite=\:gobble
+   \def\edef##1{\def\:temp{##1}%
+      \ifx \:temp\B:my@dummy
+         \cIteLink{X\@citeb}{}\let\gobble:cite=\empty
+         \ifx \o:@BBOP\:UnDef 
+             \let\o:@BBOP=\@BBOP
+             \let\o:@BBAY=\@BBAY
+             \pend:def\@BBOP{\gobble:cite\EndcIteLink
+                        \let\gobble:cite=\:gobble}%
+             \pend:def\@BBAY{\gobble:cite\EndcIteLink
+                        \let\gobble:cite=\:gobble}%
+         \fi
+      \fi
+      \ifx \:temp\:citeP
+         \gobble:cite\EndcIteLink \let\gobble:cite=\:gobble
+      \fi
+      \sv:edef##1}%
+}
+\def\end:cite{%
+   \let\edef=\sv:edef
+   \let\@BBOP=\o:@BBOP  \let\o:@BBOP=\:UnDef
+   \let\@BBAY=\o:@BBAY  \let\o:@BBAY=\:UnDef
+}
+\def\:tempc[#1]#2{%
+   \start:cite\a:cite \o:@citeA:[#1]{#2}\b:cite \end:cite
+}
+\HLet\@citeA=\:tempc
+\def\:tempc[#1]#2{%
+   \start:cite\a:cite \o:@citeyear:[#1]{#2}\b:cite \end:cite
+}
+\HLet\@citeyear=\:tempc
+\def\:tempc<#1>[#2]#3{%
+   \start:cite\a:cite \o:@@citeNP:<#1>[#2]{#3}\b:cite \end:cite
+}
+\HLet\@@citeNP=\:tempc
+\def\:tempc#1{%
+   \start:cite\a:cite \o:@citeauthor:{#1}\b:cite \end:cite
+}
+\HLet\@citeauthor=\:tempc
+\def\:tempc[#1]#2{%
+   \start:cite\a:cite \o:@citeyearNP:[#1]{#2}\b:cite \end:cite
+}
+\HLet\@citeyearNP=\:tempc
+>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+\Section{mla.sty bibtex}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+
+\<<<
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+% mla.4ht                             |version %
+% Copyright (C) |CopyYear.2002.      Eitan M. Gurari         %
+|
+   | 
+\Hinput{mla}
+\endinput
+>>>        \AddFile{9}{mla}
+
+\<<<
+\catcode`\:=12  
+\def\@citedatax[#1]#2{%
+\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi%
+  \def\@citea{}\csname a:cite\endcsname
+  \@cite{\@for\@citeb:=#2\do%
+    {\@citea\def\@citea{, }\@ifundefined% by Young
+       {b@\@citeb}{{\bf ?}%
+       \@warning{Citation `\@citeb' on page \thepage \space undefined}}%
+       {\cIteLink {X\@citeb}{}\csname b@\@citeb\endcsname \EndcIteLink
+   }}}{#1}\csname b:cite\endcsname}
+\catcode`\:=11 
+>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+\Section{Biblatex}
+
+\SubSection{biblatex.sty}
+
+\<<<
+% biblatex.4ht (|version), generated from |jobname.tex
+% Copyright |CopyYear.2007. Eitan M. Gurari
+|
+   | 
+   |
+   |
+   |
+\Hinput{biblatex}
+\endinput
+>>>        \AddFile{6}{biblatex}
+
+\<<<
+\let\:temp\do
+  \def\do#1{% 
+    \patchcmd#1% 
+      {\color@begingroup}% 
+      {\color@begingroup\toggletrue{blx@footnote}}% 
+      {\togglefalse{blx@tempa}\listbreak}%
+      {}}% 
+  \docsvlist{% 
+    \@footnotetext,%          latex 
+    \H@@footnotetext,%        hyperref 
+    \scr@saved@footnotetext,% koma-script 3.x 
+    \l@dold@footnotetext,%    ledmac 
+    \l@doldold@footnotetext,% ledmac 
+    \@fntORI}%                frenchle 
+\let\do\:temp
+>>>
+
+\<<<
+\def\make:blx:ver#1.#2#3\relax{%
+   %\ifdim#1pt< 3pt \xdef\blx:ver:no{2}\else\xdef\blx:ver:no{3}\fi%
+   \gdef\blx:ver:no{#1}
+   \gdef\blx:subver:no{#2}
+}
+\expandafter\make:blx:ver\abx@version.0\relax
+\ifx\a:printshorthands\Undef\let\blx@shorthands\@empty\fi
+\ifx\blx@startbib\:UnDef
+ \pend:def\blx@shorthands{%
+   \pend:def\blx@bibinit{%
+       \HAssign\shorthands:cnt=0
+       \NewConfigure{printfield-shorthand}{2}%
+       \Configure{printfield-shorthand}%
+         {\gHAdvance\shorthands:cnt by 1\relax
+          \ifnum \shorthands:cnt=1 \a:printshorthands
+          \else                    \c:printshorthands \fi
+         }
+         {\d:printshorthands}%
+   \append:def\endtheshorthands{\b:printshorthands}%
+   \csname a:@shorthands\endcsname}
+}
+>>>
+
+\<<<
+\ifx\b:printshorthands\Undef\let\endtheshorthands\@empty\fi
+\def\a:entryhead{CVR}
+\def\a:entryhead:full{CV Radhakrishnan}
+\ifx\bib@macro@entryhead:name\UnDef
+  \let\bib@macro@entryhead:name\@empty\fi
+\ifx\bib@macro@entryhead:full\UnDef
+  \let\bib@macro@entryhead:full\@empty\fi
+  \gdef\BibFileName[#1]#2{\expandafter\xdef\csname 
+       BibFileName#1\endcsname{#2}}
+>>>
+
+\<<<
+\newcount\sv:sec:cnt
+\def\bibSecConfigure{%
+  \let\save:section\section
+  \global\sv:sec:cnt=\c@secnumdepth  
+  \def\section{\@ifstar
+      {\c@secnumdepth=0\relax\save:section}%
+      {\c@secnumdepth=\sv:sec:cnt\save:section}}% 
+}
+\gHAssign\bibN=0
+>>>
+
+Biblatex recently started to complain about ifthenelse
+patching. It is quite strange, as this patching code is quite 
+old and there were no such errors previously. Anyway, 
+this code should try to patch ifthenelse using TeX4ht built-in
+mechanism for ifthenelse.
+
+\<<<
+\@ifpackageloaded{hyperref}{}{%
+\ifdefined\TE@hook\else%
+\def\TE@hook{}%
+\fi%
+}
+
+\AtBeginDocument{%
+  \Configure{ifthenelse}{\TE@hook}
+}
+>>>
+
+\<<<
+\def\bibConfigure{\ConfigureList{thebibliography}%
+      {\IgnorePar\EndP \gHAdvance\bib:N by 1
+       \HCode{
+              \Hnewline
+             }
+           \NoFonts\ref:name\EndNoFonts
+       \HCode{\Hnewline
+%
+           \Hnewline
+%
+            \Hnewline
+%
+           : \Hnewline
+           \Hnewline
+           , \Hnewline
+%
+           \Hnewline
+           , \Hnewline
+%
+           \Hnewline
+           \Hnewline\Hnewline
+           \Hnewline
+           \Hnewline}%
+         \let\en:bib=\empty
+      }%
+      {\en:bib\HCode{}}
+      {\en:bib\gdef\en:bib{\HCode{\Hnewline}}%
+        \HCode{}%
+        \gHAdvance\bibN by 1
+        \HCode{%
+          }%
+      }%
+      {}{}
+  }
+>>>
+
+\<<<
+ \def\bibConfigure{%
+  \ConfigureList{thebibliography}
+  {\ifvmode \IgnorePar \fi \EndP \EndP
+    \HCode {
}% +% +% This is for linking citations with biblist items which +% are in a different file when output is split into different +% chunks. [CVR 2012-09-27] +% +% +% +% + \immediate\write\@auxout{% + \string\BibFileName[\therefsection]{\FileName}}% +% +% +% + \PushMacro \end:itm \global \let \end:itm =\empty}% + {\ifvmode \IgnorePar \fi \EndP + \PopMacro \end:itm \global \let \end:itm \end:itm \EndP + \HCode {
}\ShowPar}% + {\ifvmode \IgnorePar \fi \EndP \gHAdvance \bibN by 1 + \end:itm \global \def \end:itm {\EndP \Tg }% + \HCode {
}\bgroup \bf}% + {\ifvmode \IgnorePar \fi \EndP + \egroup + \HCode {
}% + \par \ShowPar}% + } +>>> + +\<<< + \:CheckOption{ooffice}\if:Option + | + \else + | + \fi +>>> + +\<<< +\NewConfigure{printshorthands}{4} +\NewConfigure{@shorthands}[1]{\concat:config\a:@shorthands{#1}} +\let\a:@shorthands\empty +% \def\nolinkurl{\o:url:} +% \def\blx@checksum{\ifx \blx@checksum@old \blx@checksum@new \else +% \blx@warning@noline {Page references have changed.\MessageBreak +% Rerun to get references right}\@tempswatrue \blx@reruntrue \fi +% \@nameuse {blx@rerun}} +\def\blx@checksum#1#2#3{% + \begingroup + \blx@tempcnta\the\numexpr0#2*0#3\relax + \blx@tempcntb\blx@tempcnta + \divide\blx@tempcntb10 + \multiply\blx@tempcntb10 + \advance\blx@tempcnta-\blx@tempcntb + \xdef#1{#1\the\blx@tempcnta}% + \endgroup} + +\@ifpackagelater{biblatex}{2018/03/01}{\let\blx:pend:def\pend:defI}{\let\blx:pend:def\pend:def} +\blx:pend:def\blx@bibliography{\bibSecConfigure% + \pend:def\blx@bibinit{% + \bibConfigure + \csname onthebibliography:list\endcsname + }% +} +>>> + +\<<< +\let\en:bib\@empty +\newcounter{bib} +\ifnum\blx:ver:no < 3 + \protected\def\blx@bbl@entry#1#2#3{% + \begingroup + \def\texht@bibkey{#1} + \edef\abx@field@entrykey{\detokenize{#1}}% + \global\advance\c@bib 1 + \immediate\write\@auxout{\string\expandafter\string\gdef + \string\csname\space BIB-\thebib\string\endcsname + {\expandafter\strip@prefix\meaning\texht@bibkey}}% + \Tag{)QX\therefsection-#1}{\thebib}% + \blx@setoptions@type{#2}% + \blx@bbl@options{#3}% + \blx@setoptions@entry + \edef\blx@bbl@data{blx@data@\the\c@refsection @\abx@field@entrykey}% + \csuse\blx@bbl@data + \cslet\blx@bbl@data\@empty + \blx@bbl@addfield{entrykey}{\abx@field@entrykey}% + \blx@bbl@addfield{entrytype}{#2}% + \blx@imc@iffieldundef{options} + {} + {\blx@bbl@fieldedef{options}{\expandonce\abx@field@options}}} +% + \protected\def\blx@finentry{% + \unspace + \a:finentry + \finentrypunct + \blx@postpunct + \b:finentry + \blx@initunit + } +% +\else +% Biblatex 3.0 +% +% Hacks for biblatex +% MakeUppercase is redefined by tex4ht, biblatex tries to redefine it as well, but it relies on original +% LaTeX version: +\DeclareRobustCommand{\MakeUppercase}[1]{{% + \def\i{I}\def\j{J}% + \def\reserved@a##1##2{\let##1##2\reserved@a}% + \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{\uppercase{#1}}% + \reserved@a +}} +% Same applies also for \MakeLowercase +\DeclareRobustCommand{\MakeLowercase}[1]{{% + \def\reserved@a##1##2{\let##2##1\reserved@a}% + \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% + \protected@edef\reserved@a{\lowercase{#1}}% + \reserved@a +}} + +% I don't really understand this, but language processing is broken by default +% with biblatex. It loads language file, but it executes code which should be +% executed only in the case if the language file fails, it displays an error message +% and language handling doesn't work. When we execute following code, the language +% files are loaded before checking of the success and it seems to work. + +\AtBeginDocument{% +\@ifpackageloaded{babel} + {% This is required for languages which are never explicitly selected + % It seems this code was executed also with Polyglossia, where it caused compilation error + \@ifpackageloaded{polyglossia}{}{% + \def\do#1{\blx@lbxinput{#1}{}{}}% + \ifx\@empty\bbl@loaded\else% + \expandafter\docsvlist\expandafter{\bbl@loaded}% + \fi}}{}% +} +\fi % end of version boolean +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% CVR 2010/03/31 +% \bib@field@entrykey initialized with empty value +% +% CVR 2010/07/18 +% null initialization will result in wrong hyperlinking of citations +% with respective bibitems. Therefore, \bib@field@entrykey is defined +% as the entrykey which is the correct value. +% +% CVR 2010/09/10 +% \blx@checksum macro added to match biblatex.sty +% version 1.6 2011/07/29 +% +\<<< +\let\blx@anchors\@empty +\let\bib@field@entrykey\@empty +\protected\def\blx@anchor{% + \xifinlist{|\bib@field@entrykey}{\blx@anchors}% + {}% + {\listxadd\blx@anchors{|\bib@field@entrykey}% + \hyper:natanchorstart{|\bib@field@entrykey}% + \hyper:natanchorend}} +>>> + +\<<< +\protected\def\blx@bibhyperref{% + \@ifnextchar[%] + {\blx@bibhyperref@i}% + {\blx@bibhyperref@i[\bib@field@entrykey]}}% +\long\def\blx@bibhyperref@i[#1]#2{% + \hyper:natlinkstart{|#1}% + #2\hyper:natlinkend}% +\protected\long\def\blx@bibhyperlink#1#2{% + \hyper:natlinkstart{|#1}% + #2\hyper:natlinkend}% +\protected\long\def\blx@bibhypertarget#1#2{% + \@bsphack + \hyper:natanchorstart{|#1}% + \@esphack + #2\hyper:natanchorend}% +>>> + +\<<< +X\the\c@refsection -%@ +>>> + +\<<< +X\the\c@refsection --%: +>>> + +\<<< +\let\blx@ifhyperref\@firstoftwo +\def\hyper:natanchorstart#1{\Link{}{#1}\EndLink} +\def\hyper:natanchorend{} +\def\hyper:natlinkstart#1{\Link{#1}{}} +\def\hyper:natlinkend{\EndLink} +>>> + +\<\><<< +\long\def\blx@bibhyperref@i[#1]#2{#2} +\protected\long\def\blx@bibhyperlink#1#2{#2} +\protected\long\def\blx@bibhypertarget#1#2{#2} +>>> +% +% 2010/09/26 CVR +% Kristian Debrabant and +% Christian Fearnot reported that consequent +% to revision of biblatex to version 0.9d, biblatex.4ht seemed to +% be broken. It was true. The problem was the redefined +% \blx@checksum in biblatex.4ht which was either superfluous or +% erratic or both. So, I have commented out in biblatex.4ht +% and decided to use the default definition in the biblatex.sty. +% Both the bug reporters have told that the modified version +% solved their problems. +% +% \<<< +% \def\blx@checksum{\ifx \blx@checksum@old \blx@checksum@new \else +% \blx@warning@noline {Page references have changed.\MessageBreak +% Rerun to get references right}\@tempswatrue \blx@reruntrue \fi +% \@nameuse {blx@rerun}} +% >>> + +\<<< +\pend:def\blx@bibliography{% + \pend:def\blx@bibinit{% + \ConfigureList{thebibliography}% + {\a:thebibliography}% + {\b:thebibliography}% + {\c:thebibliography}% + {\d:thebibliography}% + \csname onthebibliography:list\endcsname + }% +% \pend:def\endthebibliography{% +% \if@newlist \global\@newlistfalse \fi +% }% +} +>>> + +\<<< +\pend:defI\blx@bibitem{% + \ifx \bibitem:key\:UnDef + \let\blx:anchor\blx@anchor + \def\blx@anchor{\let\blx@anchor\blx:anchor + \Link{}{\bibitem:key}\EndLink}% + \fi + \def\bibitem:key{##1}% +} +>>> + +\<<< +\protected\def\blx@citeprint#1{% + \advance\c@citecount\@ne + \addtocounter{instcount}\@ne + \ifnum\c@citecount=\@ne + \blx@getdata@cite{#1}% + \blx@precode + \ifnum\c@citetotal>\@ne + \blx@resetdata + \fi + \else + \blx@dlimcode + \fi + \begingroup + \ifnum\c@citetotal>\@ne + \blx@getdata@cite{#1}% + \fi + \blx@entrysetcount + \blx@options + \blx@backref + \blx@pagetracker + \csuse{blx@hook@citekey}% + \csuse{blx@hook@citekey@next}% + \blx@execute + \cIteLink{#1}{}\blx@loopcode \EndcIteLink + \blx@citetracker + \blx@ibidtracker + \blx@opcittracker + \blx@loccittracker + \ifnum\c@citecount=\c@citetotal + \def\blx@thecheckpunct{\blx@err@nestcite\@gobble}% + \blx@postcode + \fi + \endgroup} +>>> + +\<<< +\NewConfigure{finentry}{2} +\def\:tempc[#1]#2{% + \expandafter\ifx \csname a:printfield-#2\endcsname\relax + \NewConfigure{printfield-#2}{2}% + \a:printfield{printfield-#2}% + \fi + \Configure{blx@unit}% + {\csname a:printfield-#2\endcsname}% + {\csname b:printfield-#2\endcsname}% + \csname o:\string\blx@printfield:\endcsname[#1]{#2}% +} +\expandafter\HLet\csname\string\blx@printfield\endcsname\:tempc +>>> + +\<<< +\NewConfigure{printfield}[1]{\def\a:printfield##1{#1}} +\Configure{printfield}{% + \Configure{#1}% + {\HCode{}}% + {\HCode{}}% +} +>>> + +\<<< +\def\:tempc[#1]#2{% + \expandafter\ifx \csname a:printtext-#2\endcsname\relax + \NewConfigure{printtext-#2}{2}% + \a:printfield{printtext-#2}% + \fi + \Configure{blx@unit}% + {\csname a:printtext-#2\endcsname}% + {\csname b:printtext-#2\endcsname}% + \csname o:\string\blx@printtext:\endcsname[#1]{#2}% +} +\expandafter\HLet\csname\string\blx@printtext\endcsname\:tempc +>>> + +\<<< +\def\:tempc[#1]#2{% + \expandafter\ifx \csname a:bibstring-#2\endcsname\relax + \NewConfigure{bibstring-#2}{2}% + \a:printfield{bibstring-#2}% + \fi + \Configure{blx@unit}% + {\csname a:bibstring-#2\endcsname}% + {\csname b:bibstring-#2\endcsname}% + \csname o:\string\blx@bibstring:\endcsname[#1]{#2}% +} +\expandafter\HLet\csname\string\blx@bibstring\endcsname\:tempc +>>> + +\<<< +\def\:tempc[#1]#2{% + \expandafter\ifx \csname a:bibcpstring-#2\endcsname\relax + \NewConfigure{bibcpstring-#2}{2}% + \a:printfield{bibcpstring-#2}% + \fi + \Configure{blx@unit}% + {\csname a:bibcpstring-#2\endcsname}% + {\csname b:bibcpstring-#2\endcsname}% + \csname o:\string\blx@bibcpstring:\endcsname[#1]{#2}% +} +\expandafter\HLet\csname\string\blx@bibcpstring\endcsname\:tempc +>>> + +\<<< +\def\:tempc[#1]#2{% + \expandafter\ifx \csname a:biblcstring-#2\endcsname\relax + \NewConfigure{biblcstring-#2}{2}% + \a:printfield{biblcstring-#2}% + \fi + \Configure{blx@unit}% + {\csname a:biblcstring-#2\endcsname}% + {\csname b:biblcstring-#2\endcsname}% + \csname o:\string\blx@biblcstring:\endcsname[#1]{#2}% +} +\expandafter\HLet\csname\string\blx@biblcstring\endcsname\:tempc +>>> + +\<<< +\def\:tempc[#1]#2{% + \expandafter\ifx \csname a:bibucstring-#2\endcsname\relax + \NewConfigure{bibucstring-#2}{2}% + \a:printfield{bibucstring-#2}% + \fi + \Configure{blx@unit}% + {\csname a:bibucstring-#2\endcsname}% + {\csname b:bibucstring-#2\endcsname}% + \csname o:\string\blx@bibucstring:\endcsname[#1]{#2}% +} +\expandafter\HLet\csname\string\blx@bibucstring\endcsname\:tempc +>>> + +\<<< +\pend:def\blx@bibliography{% + \pend:def\thebibitem{\c:thebibliography}% + \append:def\thebibitem{\relax\d:thebibliography}% + \pend:def\blx@startbib{\a:thebibliography}% + \pend:def\endthebibliography{% + \if@newlist \global\@newlistfalse \fi + }% + \append:def\endthebibliography{\b:thebibliography}% +} +>>> + +\<<< +\NewConfigure{thebibliography}{4} +>>> + +\<<< +\NewConfigure{biblatex-style}[2]{% + \def\:temp{#1}% + \ifx \:temp\blx@cbxfile + #2% + \global\let\biblatex:style\def + \fi +} + +\def\biblatex:style{} +\Configure{biblatex-style}{}{} + +\pend:def\at:docend{% + \ifx \UnDef\biblatex:style + \:warning{\string\Configure{biblatex-style}{\blx@cbxfile}{...} + not available}% + \fi +} +>>> + +\<<< +\let\blx:item\@item +\def\@item[#1]{% + \blx:item[#1]% + \ifhmode \spacefactor\blx@sf@par\fi +} +\let\blx@resetpuncthook\@empty +\let\blx@csq@ifkernmark\@empty +\newskip\blx@unitmark +\blx@unitmark=10pt plus 1pt minus 1pt +\let\abx@aux@page\@gobbletwo +\let\abx@aux@fnpage\@gobbletwo +\let\abx@aux@refsection\@gobbletwo +% +% reported that After updating +% biblatex and biblatex.ht to versions 2.2 respectively +% 2012-09-28-17:49 (using MiKTeX 2.9 64 bit), tex4ht seemed no longer +% respected the defernumbers option in biblatex.sty: When applied to +% the attached file tex4hterror.tex. +% +% The problem was due to nullifying \abx@aux@number which in fact +% should have been redefined to \blx@aux@number when defernumbers +% option is true. +% +% This is done now and as per Kristian, the fix works fine now. +% +\ifnum\blx:ver:no < 3 +% + \protected\def\blx@aux@number#1#2#3#4{% + \blx@bbl@addentryfield{\detokenize{#2}}{#3}{localnumber}{#4}% + \ifblank{#4}% + {}% + {\csgdef{blx@labelnumber@#3}{#4}% + %\blx@addchecksum{#1}{#4} % this can cause a nodocument error! + }} +% + \iftoggle{blx@defernumbers}% + {\setkeys{blx@opt@pre}{labelnumber}% + \let\blx@thelabelnumber\blx@addlabelnumber + \let\abx@aux@number\blx@aux@number}% + {\let\blx@thelabelnumber\relax + \let\abx@aux@number\@gobblefour} +% +\else + \def\@gobblefive#1#2#3#4#5{}% + \protected\def\blx@aux@number#1#2#3#4#5{% + \blx@bbl@addentryfield{\detokenize{#2}}{#3}{localnumber}{#4}{#5}% + \blx@bbl@addentryfield{\detokenize{#2}}{#3}{labelnumber}{#4}{#5}% + \global\toggletrue{blx@localnumber}% + \ifblank{#5} + {} + {\csgdef{blx@labelnumber@#3@#4}{#5}}} + + \iftoggle{blx@defernumbers}% + {\setkeys{blx@opt@pre}{labelnumber}% + \let\blx@thelabelnumber\blx@addlabelnumber + \let\abx@aux@number\blx@aux@number}% + {\let\blx@thelabelnumber\relax + \let\abx@aux@number\@gobblefive} +\fi % end of version boolean +% +\AtEndDocument{% + \def\abx@aux@page#1#2{\blx@addpagesum{#1}{#2}}% + \def\abx@aux@fnpage#1#2{\blx@addpagesum{#1}{#2}}% +} +% +\def\blx@begunit{% + \toggletrue{blx@tempa}% + \iftoggle{blx@insert}% + {\iftoggle{blx@unit}% + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \let\blx@endnounit\@empty + \blx@unitpunct\blx@postpunct + \endgroup + \global\togglefalse{blx@unit}% + \togglefalse{blx@tempa}} + {\blx@postpunct}% + \iftoggle{blx@block}% + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \let\blx@endnounit\@empty + \newblockpunct + \endgroup + \global\togglefalse{blx@block}% + \togglefalse{blx@tempa}}% + {}}% + {}% + \blx@postpunct + \blx@resetpuncthook + \iftoggle{blx@tempa}% + {}% + {\global\togglefalse{blx@insert}}% + \csname a:blx@unit\endcsname + \blx@leavevmode + \blx@csq@ifkernmark + {}% + {\penalty\@M + \hskip-\blx@unitmark\relax + \hskip\blx@unitmark\relax + }% + \begingroup + \Configure{blx@unit}{}{}% +} +\def\blx@endunit{% + \endgroup + \csname b:blx@unit\endcsname + \Configure{blx@unit}{}{}% + \ifdim\lastskip=\blx@unitmark + \unskip\unskip\unpenalty + \global\togglefalse{blx@lastins}% + \else + \global\toggletrue{blx@insert}% + \global\toggletrue{blx@lastins}% + \fi +} +\NewConfigure{blx@unit}{2} +% + \else +\fi + +>>> + +The following code fixes non-ascii cite keys with XeLaTeX, +they caused compilation error when the AUX file is loaded. +\<<< +\ifdefined\XeTeXversion + \def\abx@aux@defaultrefcontext#1#2#3{% + \global\boolfalse{refcontextdefaults}% + \csxdef{blx@assignedrefcontextbib@#1@\detokenize{#2}}{\detokenize{#3}}} +\fi +>>> + +\<<< +\append:def\blx@bibinit{\a:bibinit}% +\NewConfigure{bibinit}{1}% +>>> + +\<<< +\let\blx@anchors\@empty +\let\bib@field@entrykey\@empty + +\protected\def\blx@anchor{% + \xifinlist{X\the\c@refsection -%@ + \bib@field@entrykey}{\blx@anchors}% + {}% + {\listxadd\blx@anchors{X\the\c@refsection -%@ + \bib@field@entrykey}% + \hyper:natanchorstart{X\the\c@refsection -%@ + \bib@field@entrykey}% + \hyper:natanchorend}} + +\protected\def\blx@bibhyperref{% + \@ifnextchar[%] + {\blx@bibhyperref@i}% + {\blx@bibhyperref@i[\bib@field@entrykey]}}% + +\long\def\blx@bibhyperref@i[#1]#2{% + \hyper:natlinkstart{X\the\c@refsection -%@ + #1}% + #2\hyper:natlinkend}% + +\protected\long\def\blx@bibhyperlink#1#2{% + \hyper:natlinkstart{X\the\c@refsection -%: + #1}% + #2\hyper:natlinkend}% + +\protected\long\def\blx@bibhypertarget#1#2{% + \@bsphack + \hyper:natanchorstart{X\the\c@refsection -%: + #1}% + \@esphack + #2\hyper:natanchorend}% + +\let\blx@ifhyperref\@firstoftwo + +% Oleg Domanov odomanov@yandex.ru reports: +% tex4ht ends with an error when compiles biblatex files. I'm on +% Windows, texlive 2012. I put here a minimal example and files +% generated with the command latexmk test && mk4ht oolatex test +% +% https://www.dropbox.com/s/hn1zm40htqs13mf/t4htlink.zip +% +% There is a superfluous \relax in the file test.tmp, line 65 which +% seems to cause the error. +% +% Changes to cope with biblatex upgrade caused this problem. It is now +% fixed. --CVR 2012/10/26 +% +\:CheckOption{ooffice}\if:Option + \def\hyper:natanchorstart#1{\Link{}{#1}\EndLink}% + \def\hyper:natlinkstart#1{\Link{#1}{}}% +\else + \def\hyper:natanchorstart#1{% + \expandafter\ifx\csname QXpage.\thepage\endcsname\relax% + \Tag{)Qpage.\thepage}{\file:id}% + \HCode{
}% + \expandafter\xdef\csname QXpage.\thepage\endcsname{0}% + \fi + \Link[\csname BibFileName\therefsection\endcsname]{}{#1}\EndLink} + \def\hyper:natlinkstart#1{% + \expandafter\ifx\csname QXpage.\thepage\endcsname\relax% + \Tag{)Qpage.\thepage}{\file:id}% + \HCode{}% + \expandafter\xdef\csname QXpage.\thepage\endcsname{0}% + \fi + \Link[\csname BibFileName\therefsection\endcsname]{#1}{}} +\fi +\def\hyper:natanchorend{} +\def\hyper:natlinkend{\EndLink} +\def\writeCiteLink#1{\immediate\write\@mainaux{% + \string\@namedef{#1.\thepage}{\FileName}}} +\let\blx@addpagesum\@gobbletwo +% \let\nolinkurl\relax + +\ifx\blx:ver:no < 3 +% +% biblatex 2.9a +% +% Newly added to process {keylist} environment (CVR) +% +\let\keylist\description +\let\endkeylist\enddescription +\def\keyitem#1{\item[#1]}% +% +% +\else +% +% biblatex 3.0 +% +\let\keylist\Un:def +\let\endkeylist\Un:def +\newenvironment*{keylist} + {\list{}{% + \setlength{\labelwidth}{1.25in}% + \setlength{\labelsep}{10pt}% + \setlength{\leftmargin}{0pt}% + \setlength{\itemsep}{0pt}% + \raggedright% + \renewcommand*{\makelabel}[1]{\hss\bfseries##1}}} + {\endlist} +% +\def\keyitem#1{% + \item[#1] + \begingroup + \keyitemhook% + \blx@bibinit% + \midsentence\ifbibstring{#1}{}{\latintext}\biblstring{#1}% + \expandafter\lbx@initnamehook\lsmartoftext% + \par\nobreak + \midsentence\ifbibstring{#1}{}{\latintext}\bibsstring{#1}% + \expandafter\lbx@initnamehook\ssmartoftext% + \endgroup + \par\nobreak} +\fi % End of version boolean + +\ConfigureList{keylist}% + {\EndP\HCode{
}% + \PushMacro\end:itm +\global\let\end:itm=\empty}% + {\PopMacro\end:itm \global\let\end:itm \end:itm +\EndP\HCode{
}\ShowPar}% + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
}\bgroup \bf}% + {\egroup\EndP\HCode{
}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{reading.4ht} + +\<<< +% reading.4ht (|version), generated from |jobname.tex +% Copyright |CopyYear.2008. Eitan M. Gurari +| + | +\Hinput{reading} +\endinput +>>> \AddFile{6}{reading} + +\<<< +\def\bbx@thebibitem{% + \@itempenalty\z@ + \itemsep4\bibitemsep + \item\relax + \@itempenalty\@M + \itemsep\bibitemsep + \begingroup + \samepage\bfseries + \def\finentrypunct{\strut}% + \ifnum\bbx@head<\tw@ + \usebibmacro{entryhead:full}% + \ifbool{bbx:entrykey}% + {\def\newblockpunct{% + \nobreak\hskip\z@skip\strut + \hfill\penalty100\hskip1em\relax + \hbox{}\nobreak\hfill\strut}% + \def\finentrypunct{% + \parfillskip\z@\finalhyphendemerits\z@ + \par\nobreak}% + \newblock + \printfield{entrykey}}% + {}% + \else + \usebibmacro{entryhead:name}% + \fi + \finentry + \endgroup + \vskip 1.25pt\relax `%hrule height`% + \item\strut} +>>> + +\<\><<< +\renewcommand*{\thebibitem}{% + \@itempenalty\z@ + \itemsep4\bibitemsep + \item\relax + \@itempenalty\@M + \itemsep\bibitemsep + \begingroup + \samepage\bfseries + \usebibmacro{entryhead}% + \endgroup + \vskip 1pt + \item\strut +} +>>> + +\<<< +\pend:def\bib@macro@entryhead:name{\a:entryhead} +\append:def\bib@macro@entryhead:name{\b:entryhead} +\pend:def\bib@macro@entryhead:full{\a:entryhead:full} +\append:def\bib@macro@entryhead:full{\b:entryhead:full} +\NewConfigure{entryhead:name}{2} +\NewConfigure{entryhead:full}{2} +>>> + +\<<< +\let\blx:item\@item %% discarded CVR +\def\@item[#1]{% + \blx:item[#1]% + \ifhmode \spacefactor\blx@sf@par\fi +} +>>> + +The definition of \Verb=\@item= ends with \Verb=\leavevmode=, and +biblatex has a \Verb=\blx@leavevmode= definition with the following +spacefactor assignment. Biblatex uses the spacefactor for checking +different statuses of the compilation. + +The following macros were not initialized, hence done now: + + \Verb=\let\blx@resetpuncthook\@empty= + \Verb=\let\blx@csq@ifkernmark\@empty= + \Verb=\let\bib@field@entrykey\@empty= + +% +% Bug posted by Nicholas Cole +% Bug posted by Joanna Bryson +% + +\Verb=\blx@unitmark= is defined as a new skip to match the introduction +of the same in biblatex.sty v 1.6. [CVR 2011/09/10] + +\<<< +\newskip\blx@unitmark %% discarded CVR +\blx@unitmark=10pt plus 1pt minus 1pt +\let\abx@aux@page\@gobbletwo +\AtEndDocument{% + \def\abx@aux@page#1#2{\blx@addpagesum{#1}{#2}}% + \def\abx@aux@fnpage#1#2{\blx@addpagesum{#1}{#2}}} +% +\let\blx@resetpuncthook\@empty +\let\blx@csq@ifkernmark\@empty +\def\blx@begunit{% + \toggletrue{blx@tempa}% + \iftoggle{blx@insert}% + {\iftoggle{blx@unit}% + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \blx@unitpunct\blx@postpunct + \endgroup + \global\togglefalse{blx@unit}% + \togglefalse{blx@tempa}} + {\blx@postpunct}% + \iftoggle{blx@block}% + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \newblockpunct + \endgroup + \global\togglefalse{blx@block}% + \togglefalse{blx@tempa}}% + {}}% + {}% + \blx@postpunct + \blx@resetpuncthook + \iftoggle{blx@tempa}% + {}% + {\global\togglefalse{blx@insert}}% + \csname a:blx@unit\endcsname + \blx@leavevmode + \blx@csq@ifkernmark + {}% + {\penalty\@M + \hskip-\blx@unitmark\relax + \hskip\blx@unitmark\relax}% + \begingroup + \Configure{blx@unit}{}{}% +} +>>> + +\<<< +\def\blx@begunit{% + \toggletrue{blx@tempa}% + \iftoggle{blx@insert}% + {\iftoggle{blx@unit}% + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \blx@unitpunct + \endgroup + \global\togglefalse{blx@unit}% + \togglefalse{blx@tempa}}% + {}% + \iftoggle{blx@block}% + {\begingroup + \let\blx@begunit\@empty + \let\blx@endunit\@empty + \newblockpunct + \endgroup + \global\togglefalse{blx@block}% + \togglefalse{blx@tempa}}% + {}}% + {}% + \blx@postpunct + \blx@resetpuncthook + \iftoggle{blx@tempa}% + {}% + {\global\togglefalse{blx@insert}}% + \csname a:blx@unit\endcsname + \blx@leavevmode + \blx@csqmarkcheck{% + \penalty\@M + \hskip-\blx@unitmark\relax + \hskip\blx@unitmark\relax}% + \begingroup + \Configure{blx@unit}{}{}% +} +>>> + +\<<< +\def\blx@endunit{% + \endgroup + \csname b:blx@unit\endcsname + \Configure{blx@unit}{}{}% + \ifdim\lastskip=\blx@unitmark + \unskip\unskip\unpenalty + \global\togglefalse{blx@lastins}% + \else + \global\toggletrue{blx@insert}% + \global\toggletrue{blx@lastins}% + \fi +} +>>> + +\<<< +\NewConfigure{blx@unit}{2} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{biblatex-chicago.4ht} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The tex4ht output contains wrong punctuation, it should follow +US rules. +\Link[https://tex.stackexchange.com/q/301287/2891]{}{}Source.\EndLink + +\<<< +% biblatex-chicago.4ht (|version), generated from |jobname.tex +% Copyright 2018 TeX Users Group +| +\blx@defbibextras{english}{\uspunctuation} +\Hinput{biblatex-chicago} +\endinput +>>> \AddFile{6}{biblatex-chicago} + + +%%%%%%%%%%%%% +\SubSection{debug.bbx} +%%%%%%%%%%%%% + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% debug.4ht |version % +% Copyright (C) |CopyYear.2008. Eitan M. Gurari % +| +| +\Hinput{debug} +\endinput +>>> \AddFile{5}{debug} + +\<<< +\def\bbx@fieldlabel#1{% + \thebibitem + [\texttt{\makebox[\leftmargin][l]{[#1]}}]} +\def\bbx@subfieldlabel#1{% + \par\nobreak + \makebox[6em][l]{\a:subfieldlabel\ttfamily [#1]\b:subfieldlabel}} +\NewConfigure{subfieldlabel}{2} +>>> + +%%%%%%%%%%%%% +\SubSection{footnote-dw} +%%%%%%%%%%%%% + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% footnote-dw.4ht |version % +% Copyright (C) |CopyYear.2008. Eitan M. Gurari % +| +| +\Hinput{footnote-dw} +\endinput +>>> \AddFile{5}{footnote-dw} + +\<<< +\def\bib@macro@footref{\:label{\thefield {entrykey}}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{amstex} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\
}} + + +\<<< +\def\r:HA{\HCode{}} +\def\d:HA{\ifvmode \IgnorePar \fi \EndP\HCode{}|} +>>> + + +\<<< +\newif\ifHCond +>>> + + +\<<< +% +>>> + + +\<<< +\SaveEndP +>>> + +\<<< +\RecallEndP +>>> + +\<<< +\par \ShowPar +>>> + +\<<< +\IgnorePar \EndP +>>> + + + + + + + + +%%%%%%%%%%%%% +\subsection{Obey Lines and Alignments} +%%%%%%%%%%%%% + + + + +\<<< +\Configure{verb}{}{} +>>> + +\<<< +\Configure{obeylines} + {\ifvmode \IgnorePar \EndP + \HCode{
}% + \gdef\ob:ln{blockquote}% + \else \HCode{}% + \gdef\ob:ln{remark}% + \fi + } + {\ht:special{t4ht=}\ShowPar} {\hbox{\HCode{}}} +>>> + +\<<< +\ConfigureEnv{center} + {} {\ShowPar} {}{} +\Configure{centerline} + {\ifvmode \IgnorePar\fi\HCode{}} + {\HCode{}} +\Configure{leftline} + {\ifvmode \IgnorePar\fi\HCode{}} + {\HCode{}} +\Configure{rightline} + {\ifvmode \IgnorePar\fi\HCode{}} + {\HCode{}} +>>> + + +%%%%%%%%%%%%% +\subsection{multirow} +%%%%%%%%%%%%% + +\<<< +\Configure{multirow} + {\HCode{
}} + {\HCode{
}} +>>> + + + +%%%%%%%%%%%%% +\subsection{multirow} +%%%%%%%%%%%%% + +\<<< +\Configure{dcolumn} + {\HCode{
}} + {\HCode{
}} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\subsection{colortbl.sty} +%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\HAssign\Table:No=0 +\HAssign\TableNo=0 +\HAssign\Prev:Col=0 +\HAssign\HRow=0 + +\Configure{@classz} + {\let\begin:current@color=\relax + \let\end:current@color=\relax } + {% + \ifx \CT@column@color\relax \else + \ifx \CT@column@color\empty \else{% + \def\CT@color{\@ifnextchar[\color:ii\color:i}% + \CT@column@color|% + \edef\:temp{\noexpand\add:color + {background-color}{\:temp}{\ar:cnt}}\:temp + }\fi \fi + } + {\begin:current@color} + {\end:current@color} +\Configure{rowcolor}{\row:clr} +\def\row:clr#1{{% +% \HAdvance\HRow by 1 + \add:color{background-color}{#1}{\HRow-}}} +\Configure{text-colortbl} + {\add:color{color}{\current@color}{\HRow-\HCol}} +\Configure{cell-colortbl} + {\add:color{background-color}{\current@color}{\HRow-\HCol}} +\def\add:color#1#2#3{% + \Configure{SetHColor}{\Css{ \#TBL-\TableNo-#3{ #1:\HColor }}}{#2}} +>>> + + + + +%%%%%%%%%%%%%%%%% +\section{Figures} +%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{figure} + {\ifvmode \IgnorePar\fi \EndP \HCode{
<blockquote>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</blockquote></figure>}} + {}{} +\Configure{caption} + {\HCode{<blockquote role="caption"><title role="caption">}} + {\HCode{}} + {} + {\HCode{
}} +>>> + +\<<< +\ConfigureToc{lof} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{lot} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +>>> + + + +%%%%%%%%%%%%%% +\section{Math} +%%%%%%%%%%%%%% + +\<<< +\Configure{$$}{\EndP\PicDisplay}{\EndPicDisplay} + {\everymath{}\everydisplay{}} +\Configure{$}{\PicMath}{\EndPicMath}{} +\Configure{PicMath} + {\Tg}{\Tg}{}{} +\let\MathPar\empty +>>> + + +\<<< +\Configure{PicDisplay} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\EndP\ShowPar\endgraf + \HCode{}} + {\HCode{}\ShowPar} + {} {\space role="\MathPar math-display" } +>>> + + + + + +\<<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + + +\<<< +\Configure{Picture+}{}{} +\Configure{Picture*}{}{} +\Configure{IMG} + {\ht:special{t4ht=}} +\Configure{pic-halign}{} +>>> + + + +\<<< +\Configure{Picture+}{}{} +\Configure{Picture*}{}{} +\Configure{IMG} + {\ht:special{t4ht=}} +\Configure{pic-halign}{} +>>> + + + +\<<< +\Configure{PictureAlt*+} + {\let\sv:HtmlPar=\HtmlPar \let\HtmlPar=\empty + |% + |% + \NoFonts\csname PauseMathClass\endcsname \SUBOff \SUPOff + \let\HCode=\:gobble |%\offinterlineskip|% + \let\EndPicture=\empty + \ht:special{t4ht@[}% + } + {\ht:special{t4ht@]}% + \let\HCode=\:HCode + \let\EndPicture=\:UnDef \let\HtmlPar=\sv:HtmlPar \SUBOn \SUPOn + \csname EndPauseMathClass\endcsname \EndNoFonts + |% + |% + } +>>> + +\<<< +\def\PsCode##1{{\ht:special{\PsCodeSpecial##1}}}% +>>> + +\<<< +\iffalse{\fi +\let\sv:halign=\halign +\let\sv:cr=\cr +\let\sv:crcr=\crcr +\iffalse}\fi +\RecallTeXcr \let\halign =\TeXhalign +>>> + +\<<< +\iffalse{\fi +\let\halign=\sv:halign +\let\cr=\sv:cr +\let\crcr=\sv:crcr +\iffalse}\fi +>>> + +\<<< +\let\PsCode=\relax +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< + +\Configure{halignTR} + {\HCode{ style="vertical-align:baseline;"}} +\Configure{halignTBL} +% % {t}{\HCode{ valign="top"}} +% % {b}{\HCode{ valign="baseline"}} +% % {c}{\HCode{ valign="middle"}} + {} + +\Configure{halign} + {\EndP\halignTB{halign}} {\HCode{}} + \R:HA\r:HA\D:HA\d:HA +\Configure{pic-halign}{} +\Configure{halignTD} {}{} + {<}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ style="vertical-align:top; white-space:nowrap;"}} + {=}{\HCode{ style="vertical-align:baseline; white-space:nowrap;"}} + {||}{\HCode{ style="vertical-align:middle; white-space:nowrap;"}} + {_}{\HCode{ style="vertical-align:bottom; white-space:nowrap;"}} + {p}{\HCode{ style="white-space:wrap; text-align:left;"}\Protect\a:HColWidth} + {m}{\HCode{ style="white-space:nowrap; text-align:left; vertical-align:middle;"}} + {b}{\HCode{ style="white-space:nowrap; text-align:left; vertical-align:baseline;"}} + {} + + + +\ifx \a:imgdir\:UnDef + \let\a:imgdir=\empty + \catcode`\:=12 + \expandafter + \def\csname :temp\endcsname#1imgdir:#2,#3!*?: {% + \if !#2!\else \expandafter + \def\csname a:imgdir\endcsname{#2}\fi} + \expandafter\csname :temp\expandafter\endcsname + \Preamble ,imgdir:,!*?: % + \catcode`\:=11 + \Log:Note{for addressing images in + a subdirectory, use the command line option `imgdir:.../'} +\fi + +>>> + +\<<< + \ConfigureEnv{array} + {\IgnorePar\EndP\Tg
\Picture*{}$$} + {$$\EndPicture\Tg
}{}{} +>>> + +\<<< + \ConfigureEnv{array} + {\IgnorePar\EndP\Tg
\Picture*{}$$} + {$$\EndPicture\Tg
}{}{} +>>> + + + + + + + + + +\<<< +\Configure{graphics} + {} + {\HCode{}% + } +>>> + + +\<<< +\Configure{graphics} + {} + {\HCode{}% + } +>>> + + +\<<< +\Configure{[]} + {\PicDisplay $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay} +\Configure{()}{\protect\PicMath$}{$\protect\EndPicMath} +>>> + + + + +\<<< +\Configure{$$} + {\Configure{@math}{|}\DviMath} + {\EndDviMath{\csname HCondtrue\endcsname\noindent}} + {} +\Configure{@math}{|} \let\math:mode=\a:@math +\Configure{DviMath} + {\a:DviMathML \mathmltrue + \mml:htfsym |%\NoFonts|%% + \IgnoreRule + \HCode{}\a:math + |\IgnorePar} + {\HCode{} \EndIgnoreRule + \ext:htfsym |%\EndNoFonts|%% + \mathmlfalse \b:DviMathML |} +\Configure{DviMathML} + {\HCode{<\ifx \math:mode\a:@math \else inline\fi + equation \Hnewline \expandafter\:rend \a:@math==//>}} + {\HCode{}} +\def\:rend#1=#2=#3//{\if !#1!\else role=#2\fi} +>>> + + +% \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% +% \ifOption{mml-fonts}{}{|%\ext:htfsym|%\EndNoFonts}% + +\<<< +display="block">>> + +\<<< +\sv:ignore +>>> + +\<<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + + + + + + +\<<< +\Configure{mathit}{\HCode{}} + {\HCode{}} +\Configure{mathbf}{\HCode{}} + {\HCode{}} +\Configure{mathtt}{\HCode{}} + {\HCode{}} +\Configure{mathsf}{\HCode{}} + {\HCode{}} +\Configure{mathrm}{\HCode{}} + {\HCode{}} +>>> + +\<<< +\Configure{textbf}{|\HCode{}} + {\HCode{}|} +\Configure{textit}{|\HCode{}} + {\HCode{}|} +\Configure{textrm}{|\HCode{}} + {\HCode{}|} +\Configure{textup}{|\HCode{}} + {\HCode{}|} +\Configure{textsc}{|\HCode{}} + {\HCode{}|} +\Configure{textsf}{|\HCode{}} + {\HCode{}|} +\Configure{textsl}{|\HCode{}} + {\HCode{}|} +\Configure{texttt}{|\HCode{}} + {\HCode{}|} +\Configure{emph}{|\HCode{}} + {\HCode{}|} +>>> + + + +\<<< +\leavevmode\SaveEndP\bgroup +\Configure{HtmlPar} + {\HCode{}} + {\HCode{}} + {}{}% +>>> + +\<<< +\egroup \RecallEndP +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{Environments} +%%%%%%%%%%%%%%%%%%%% + + + + + +%%%%%%%%%%%% +\subsection{quote} +%%%%%%%%%%%% + +\<<< +\ConfigureEnv{quote}{\ifvmode\IgnorePar\fi\EndP\HCode{
}}{\ifvmode\IgnorePar\fi\EndP\HCode{
}\par\ShowPar}{}{} +>>> + +%%%%%%%%%%%%% +\subsection{Center} +%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{center} + {\EndP}{\par \ShowPar} {}{} +\ConfigureList{center} + {\IgnorePar\EndP\HCode{
}\par\ShowPar} + {\IgnorePar\EndP\HCode{</section>}\par\ShowPar} + {} {\par\ShowPar} +>>> + +%%%%%%%% +\subsection{Flusshing} +%%%%%%%%%%%%% + +\<latex environments\><<< +\ConfigureEnv{flushleft} + {\EndP}{\par \ShowPar} {}{} +\ConfigureEnv{flushright} + {\EndP}{\par \ShowPar} {}{} +\ConfigureList{flushleft} + {\IgnorePar\EndP\HCode{<blockquote role="flushleft">}\par\ShowPar} + {\IgnorePar\EndP\HCode{</blockquote>}\par\ShowPar} + {} {\par\ShowPar} +\ConfigureList{flushright} + {\IgnorePar\EndP\HCode{<blockquote role="flushright">}\par\ShowPar} + {\IgnorePar\EndP\HCode{</blockquote>}\par\ShowPar} + {} {\par\ShowPar} +>>> + +%%%%%%%%%%%%% +\subsection{Mini Page} +%%%%%%%%%%%%% + +\<latex environments\><<< +\ConfigureEnv{minipage} + {%\IgnorePar\EndP + %\HCode{<note><para role="minipage">}% + {\ifnum 0=`}\fi + } + {\ifnum 0=`{\fi}% +% \EndP\HCode{</para></note>}% + } + {}{} +>>> + +The extra braces in the minipage configurations are to allow the +compilation of cases similar to the following one. + +\begin{verbatim} +\documentclass{article} +\begin{document} +\begin{tabular}{c} +\begin{minipage}{4in} +\begin{eqnarray} +x & = & y +\end{eqnarray} +\end{minipage} +\end{tabular} +\end{document} +\end{verbatim} + + + + +\<latex environments\><<< +\ConfigureEnv{section} + {\IgnorePar\EndP\HCode{<section role="minipage">}} + {\IgnorePar\EndP\HCode{</section>}\ShowPar} + {}{} +>>> + +%%%%%%%%%%%%% +\subsection{Tabbing} +%%%%%%%%%%%%% + +\<latex environments\><<< + +>>> + +\subsection{Tabular and Array} + +\<latex environments\><<< + +>>> + +\subsection{Verbatim} + +\<latex environments\><<< +\ConfigureEnv{verbatim} + {\ifinner\else \vfill\break\fi + \IgnorePar\EndP\HCode{<literallayout role="verbatim">}\EndNoFonts} + {\NoFonts \ht:special{t4ht=</literallayout>}\ShowPar\par} + {} {} +\ConfigureEnv{verbatim*} + {\ifinner\else \vfill\break\fi + \IgnorePar\EndP\HCode{<literallayout role="verbatim-star">}\EndNoFonts} + {\NoFonts \HCode{</literallayout>}\ShowPar\par} + {} {} +\Configure{verbatim}{\:nbsp}{\a:sp} +>>> + + array + tabbing + tabular + + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{Listings} +%%%%%%%%%%%%%%%%%%%%%% + +\<configure docbook listings\><<< +\Log:Note{to ensure proper alignments use + fixed size fonts (see listings.dtx)} +\Configure{listings} + {\ifvmode \IgnorePar\fi \EndP + {\everypar{}\leavevmode}\HCode{<!--l. \the\inputlineno-->}% + \HCode{<pre class="listings">}% + } + {{\everypar{}\leavevmode}\HCode{</pre>}} + {}{} +\Configure{lstinline} + {\HCode{<remark role="lstinline">}} + {\HCode{</remark>}} +>>> + +\<configure docbook listings\><<< +\ConfigureEnv{lstlisting} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno-->}% + \HCode{<div class="lstlisting">}% + \bgroup + \Configure{listings} + {{\everypar{}\leavevmode}} + {{\everypar{}\leavevmode}} + {\HCode{<br/>}}{}% + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{Paragraphs} +%%%%%%%%%%%%%%%%%%%% + + +\<tex4ht paragraphs\><<< +\Configure{HtmlPar} + {\EndP\HCode{<!--l. \the\inputlineno--><para>}} + {\EndP\HCode{<!--l. \the\inputlineno--><para>}} + {\HCode{</para>}} {\HCode{</para>}} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{TOCs} +%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%% +\subsection{Shared} +%%%%%%%%%%%%%%%%%%%% + + + + +\<configure docbook tex4ht\><<< +\Configure{TocLink}{\Link{#2}{#3}\EndLink#4} +>>> + + + + +\<article tocs\><<< +\Configure{tableofcontents} + {\ifvmode \IgnorePar\fi \EndP\HCode{<toc><tocpart>}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</tocpart></toc><para></para>}} + {}{}{} +>>> + + +\<report,book tocs\><<< +|<article tocs|> +\ConfigureToc{appendix} + {\HCode{\Hnewline<tocentry role="appendixToc">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{chapter} + {\HCode{\Hnewline<tocentry role="chapterToc">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{likechapter} + {} {\HCode{\Hnewline<tocentry role="likechapterToc">}} + {} {\HCode{</tocentry>}} +>>> + +\<article tocs\><<< +\ConfigureToc{likeparagraph} + {} {\HCode{\Hnewline<tocentry role="likeparagraphToc">}} + {} {\HCode{</tocentry>}} +\ConfigureToc{likepart} + {} {\HCode{\Hnewline<tocentry role="likepartToc">}} + {} {\HCode{</tocentry>}} +\ConfigureToc{likesection} + {} {\HCode{\Hnewline<tocentry role="likesectionToc">}} + {} {\HCode{</tocentry>}} +\ConfigureToc{likesubparagraph} + {} {\HCode{\Hnewline<tocentry role="likesubparagraphToc">}} + {} {\HCode{</tocentry>}} +\ConfigureToc{likesubsection} + {} {\HCode{\Hnewline<tocentry role="likesubsectionToc">}} + {} {\HCode{</tocentry>}} +\ConfigureToc{likesubsubsection} + {} {\HCode{\Hnewline<tocentry role="likesubsubsectionToc">}} + {} {\HCode{</tocentry>}} +\ConfigureToc{paragraph} + {\HCode{\Hnewline<tocentry role="paragraphToc">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{part} + {\HCode{\Hnewline<tocentry role="partToc">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{section} + {\HCode{\Hnewline<tocentry role="sectionToc">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{subparagraph} + {\HCode{\Hnewline<tocentry role="subparagraphToc">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{subsection} + {\HCode{\Hnewline<tocentry role="subsectionToc">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{subsubsection} + {\HCode{\Hnewline<tocentry role="subsubsectionToc">}} + {\ }{} {\HCode{</tocentry>}} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{Scr} +%%%%%%%%%%%%%%%%%%%% + +\<scrbook tocs\><<< +\ConfigureToc{addchap} + {} + {\HCode{\Hnewline<tocentry role="addchapToc">}} + {} + {\HCode{</tocentry>}} +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{Texinfo} +%%%%%%%%%%%%%%%%%%%% + + + +\<configure docbook texinfo\><<< +\ConfigureToc{chapter} + {\HCode{\Hnewline<tocentry role="chapter">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{appendix} + {\HCode{\Hnewline<tocentry role="appendix">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{unnumbered} + {\HCode{\Hnewline<tocentry role="unnumbered">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{numberedsec} + {\HCode{\Hnewline<tocentry role="numberedsec">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{appendixsec} + {\HCode{\Hnewline<tocentry role="appendixsec">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{unnumberedsec} + {\HCode{\Hnewline<tocentry role="unnumberedsec">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{numberedsubsec} + {\HCode{\Hnewline<tocentry role="numberedsubsec">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{appendixsubsec} + {\HCode{\Hnewline<tocentry role="appendixsubsec">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{appendixsubsec} + {\HCode{\Hnewline<tocentry role="appendixsubsec">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{unnumberedsubsec} + {\HCode{\Hnewline<tocentry role="unnumberedsubsec">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{numberedsubsubsec} + {\HCode{\Hnewline<tocentry role="numberedsubsubse">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{appendixsubsubsec} + {\HCode{\Hnewline<tocentry role="appendixsubsubse">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{appendixsubsubsec} + {\HCode{\Hnewline<tocentry role="appendixsubsubse">}} + {\ }{} {\HCode{</tocentry>}} +\ConfigureToc{unnumberedsubsubsec} + {\HCode{\Hnewline<tocentry role="unnumberedsubsub">}} + {\ }{} {\HCode{</tocentry>}} +\Configure{toTocLink}{\Title:Link}{} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{Indexes} +%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%% +\subsection{Article, Report, Book} +%%%%%%%%%%%%% + +\<index entry\><<< +\Configure{theindex} + {\let\end:theidx=\empty \HCode{<indexterm>}} + {\HCode{</indexterm>}} + {|<primary index|>% + \def\end:cur{|<end primary index|>\let\end:cur=\empty}% + \DB:index + } + {\end:cur \let\chain:subitem=\empty} + {\chain:subitem |<secondary index|>% + \def\end:cur{|<end secondary index|>\let\end:cur=\empty}% + } + {\end:cur \def\chain:subitem{% + |<new index entry|>|<primary index|>|<end primary index|>}% + \let\chain:subsubitem=\empty + } + {\chain:subsubitem|<tertiary index|>% + \def\end:cur{|<end tertiary index|>\let\end:cur=\empty}% + } + {\end:cur \def\chain:subsubitem{% + |<new index entry|>|<primary index|>|<end primary index|>% + |<secondary index|>|<end secondary index|>}% + } + {} +>>> + + + +\<article, report, book\><<< +\def\DB:index#1\indNum#2{% + \ifnum #2=\index:N + \let\DB:index=\relax #1\long\def\item##1\end{\end}% + \else \expandafter\gob:item \fi +} +\long\def\gob:item#1\item{\DB:index} +\let\indNum=\:gobble +>>> + + + + +\<article, report, book\><<< +\HAssign\index:N = 0 +\def\comNum#1{\tmp:cnt=} +\let\db:index=\index +\def\index{% + \immediate\openin15=\jobname.ind + \ifeof15 \else + \immediate\closein15 + \bgroup + \def\gobble##1{}% + \gHAdvance\index:N by 1 + |<index entry|>% + \leavevmode \let\par=\empty + \input{\jobname.ind}% + \egroup + \fi + \db:index} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{index} +%%%%%%%%%%%%%%%%%%%% + + +\<configure docbook latex\><<< +\Configure{idxmake}{\Beforeentry} +>>> + + +\<ams art,proc,book\><<< +|<index throug printindex|> +>>> + + +\<configure docbook amsmidx\><<< +|<index throug printindex|> +>>> + +\<configure docbook makeidx\><<< +|<index throug printindex|> +>>> + + +\<configure docbook index\><<< +|<index throug printindex|> +>>> + +\<configure docbook multind\><<< +|<index throug printindex|> +>>> + + +\<index throug printindex\><<< +\def\:temp{\HCode{<indexterm role="printindex" />}} +\HLet\printindex\:temp +\expandafter\ifx \csname db:index\endcsname\realx + \let\db:index=\index +\fi +\def\index{\bgroup + \HRestore\printindex + \def\gobble##1{}% + \gHAdvance\index:N by 1 + |<index entry|>% + \leavevmode \let\par=\empty + \printindex + \egroup \db:index} +\def\comNum#1{\tmp:cnt=} +\def\brange#1{\HCode{<remark role="start">}\Link{to-#1}{from-#1}\EndLink + \HCode{</remark>}} +\def\erange#1{\HCode{<remark role="to">}\Link{from-#1}{to-#1}\EndLink + \HCode{</remark>}} +>>> + + + +\<\><<< +\def\comNum{% + \def\:tempa{% + \ifx ,\:temp \def\:tempa####1{\tmp:cnt=}% + \else \ifx {\:temp \def\:tempa####1{\tmp:cnt=####1}% + \iffalse }\fi + \else \def\:tempa{\tmp:cnt=}% + \fi\fi \:tempa}% + \futurelet\:temp\:tempa} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{theindex} +%%%%%%%%%%%%%%%%%%%% + + +\<article, report, book\><<< +\Configure{theindex} + {\special{t4ht@[}} + {\special{t4ht@]}} + {}{}{}{}{}{}{} +>>> + + + +\<configure docbook makeidx\><<< +\Configure{see} + {\csname end:cur\endcsname \HCode{<seealso role="see">}} + {\HCode{</seealso>}% + \futurelet\:next\remove:comma} +\def\remove:comma{\ifx ,\:next \expandafter\:gobble\fi} +>>> + + + +\<primary index\><<< +\HCode{<primary>}% +>>> + +\<end primary index\><<< +\HCode{</primary>}\hfil\break +>>> + +\<secondary index\><<< +\HCode{<secondary>}% +>>> + +\<end secondary index\><<< +\HCode{</secondary>}\hfil\break +>>> + +\<tertiary index\><<< +\HCode{<tertiary>}% +>>> + +\<end tertiary index\><<< +\HCode{</tertiary>}\hfil\break +>>> + + + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{splitindex} +%%%%%%%%%%%%%%%%%%%% + +\<configure docbook splitidx\><<< +\let\db:sindex=\sindex +\def\:sindex{\bgroup + \HRestore\printindex + \def\gobble##1{}% + \gHAdvance\index:N by 1 + \leavevmode \let\par=\empty + \edef\:temp{\LikeRef{printindex}}\expandafter\printindex\:temp + \egroup \db:sindex} +>>> + +\<configure docbook splitidx\><<< +\def\:temp{% + \def\:tempa{% + \HCode{<indexterm role="printindex\ifx *\:temp -star\fi" />}% + \ifx *\:temp \Tag{printindex}{*}\expandafter\:gobble\fi + }% + \futurelet\:temp\:tempa +} +\HLet\printindex\:temp +>>> + +\<configure docbook splitidx\><<< +\def\sindex{% + \def\:tempa{% + \ifx [\:temp + \def\:temp[####1]{\def\ind:ext{####1}\:sindex[####1]}% + \expandafter\:temp + \else \expandafter\:sindex \fi + }% + \futurelet\:temp\:tempa +} +\let\o:@@printindex:=\@@printindex +\def\@@printindex[#1][#2]{% + \def\:temp{#1}% + \ifx \:temp\ind:ext \o:@@printindex:[#1][#2]\fi} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Color} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure docbook color\><<< +\Configure{color}{\:gobble} +\Configure{HColor:gray}{% + \int:of\:tempa{255}{#1}% + \Configure{HColor}{}{rgb(\:tempa,\:tempa,\:tempa)}% +} +\Configure{HColor:rgb}{% + \int:of\:tempa{255}{#1}% + \int:of\:tempb{255}{#2}% + \int:of\:tempc{255}{#3}% + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +\Configure{HColor:cmyk}{% + \int:of\:Cyan{255}{#1}% + \int:of\:Magenta{255}{#2}% + \int:of\:Yellow{255}{#3}% + \int:of\:Black{255}{#4}% + \:cmyk\:tempa\:Cyan + \:cmyk\:tempb\:Magenta + \:cmyk\:tempc\:Yellow + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +|<HColor util|> +>>> + + +\<HColor util\><<< +\def\int:of#1#2#3{% + \tmp:dim=#3pt \tmp:dim=#2\tmp:dim + \edef\:temp{\tmp:cnt\the\tmp:dim//}% + \def#1##1//{}\afterassignment#1\:temp + \edef#1{\the\tmp:cnt}% +} +>>> + + +\begin{verbatim} +cmyk -> gray +(1 - 0.299c - 0.587m - 0.114y)(1 - k) + +cmyk -> rgb +Red = 1-minimum(1,Cyan *(1-Black)+Black) +Green = 1-minimum(1,Magenta*(1-Black)+Black) +Blue = 1-minimum(1,Yellow *(1-Black)+Black) +\end{verbatim} + + + +\<HColor util\><<< +\def\:cmyk#1#2{% + \tmp:cnt=255 \advance\tmp:cnt by -\:Black + \multiply\tmp:cnt by#2 \advance\tmp:cnt by \:Black + \advance\tmp:cnt by -255 \tmp:cnt=-\tmp:cnt + \ifnum \tmp:cnt<0 \tmp:cnt=0 \fi + \edef#1{\the\tmp:cnt}% +} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{Other} +%%%%%%%%%%%%%%%%%%%% + + +\<latex ltoutenc\><<< +\Configure{textcircled} + {\@use@text@encoding \@curr@enc c} + {\leavevmode \special{t4ht@+\string&\#x00A9;}c} + {\@use@text@encoding \@curr@enc \scshape r} + {\leavevmode \special{t4ht@+\string&\#x00AE;}r} + {} +>>> + + +\<configure docbook latex\><<< +|<latex ltoutenc|> +\def\:temp{LaTeX} +\HLet\LaTeX\:temp +>>> + +\<configure docbook amsmath\><<< +\def\:temp{{\protect\AmSfont AMS}} +\HLet\AmS\:temp +>>> + + +\<latex, plain\><<< +|<unicode space|> +>>> + +\<unicode space\><<< +\def\:nbsp{\HCode{\string&}\HChar{-35}\HCode{x00A0;}}% +>>> + + +\<configure docbook latex\><<< +\Configure{footnotetext} + {\HCode{<footnote><para>}\setbox\tmp:bx=\hbox\bgroup\let\@makefnmark\relax} + {\egroup}% + {\HCode{</para></footnote>}} +\Configure{footnotemark} + {\setbox\tmp:bx=\hbox\bgroup} + {\egroup} +\ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi +>>> + + +Sub and super scripts + + +\<configure docbook latex\><<< +\Configure{textsuperscript} + {\HCode{<superscript>}} + {\HCode{</superscript>}} + +\Configure{textsubscript} + {\HCode{<subscript>}} + {\HCode{</subscript>}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Underline and Overline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure docbook latex\><<< +\Configure{underline} + {\HCode{<emphasis role="underline">}\:gobble} + {\HCode{</emphasis>}} +\Configure{overline} + {\HCode{<emphasis role="overline">}} + {\HCode{</emphasis>}} +>>> + +\<configure docbook plain\><<< +\Configure{underline} + {\HCode{<emphasis role="underline">}\hbox\bgroup \:gobble} + {\egroup \HCode{</emphasis>}} +\Configure{overline} + {\HCode{<emphasis role="overline">}} + {\HCode{</emphasis>}} +>>> + + + + + + + +\<configure docbook-mml latex\><<< +\Configure{overline} + {\bgroup\ifmathml |<mathml overline|>\else + \HCode{<emphasis role="overline">}\fi} + {\ifmathml |<end mathml overline|>\else \HCode{</emphasis>}\fi\egroup} +\Configure{underline} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<emphasis role="underline">}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</emphasis>}\fi \egroup} +>>> + + +\<mathml latex\><<< +|<und/ov-erline|> +>>> + +\<mathml plain\><<< +|<und/ov-erline|> +>>> + + +\<und/ov-erline\><<< +\Configure{overline} + {\bgroup |<mathml overline|>} + {|<end mathml overline|>\egroup} +\Configure{underline} + {\bgroup \ifmmode |<mathml underline|>\else + |<nomath underline|>\fi} + {|<end mathml underline|>\egroup} +>>> + +\<nomath underline\><<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + +\<mathml overline\><<< +\HCode{<\a:mathml mover accent="false"\Hnewline +\mml:class="mml-overline"><\a:mathml mrow>}% +>>> + +\<end mathml overline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline + accent="true">&\#x00AF;</\a:mathml mo>% +</\a:mathml mover>}% +>>> + +\verb'¯' is the code of \verb'‾' + + +\<mathml underline\><<< +\HCode{<\a:mathml munder \a:mathml accentunder="false"\Hnewline +\mml:class="mml-underline"><\a:mathml mrow>}% +>>> + +\<end mathml underline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline +accent="true">&\#x0332;</\a:mathml mo></\a:mathml munder>}% +>>> + + +\verb'̲' is the code of \verb'_' + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{AMS} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%% +\section{Root} +%%%%%%%%%%%%%%%%%%%% + + +\<configure docbook amsart\><<< +|<article prologue|> +|<sectioning utilities|> +|<ams maketitle|> +|<ams article,report maketitle|> +|<ams art,proc,book|> +|<ams art,proc|> +>>> + +\<configure docbook amsbook\><<< +|<article prologue|> +|<sectioning utilities|> +|<ams maketitle|> +|<ams article,report maketitle|> +|<ams art,proc,book|> +|<ams book|> +>>> + +\<configure docbook amsproc\><<< +|<article prologue|> +|<sectioning utilities|> +|<ams maketitle|> +|<ams article,report maketitle|> +|<ams art,proc,book|> +|<ams art,proc|> +>>> + +\<configure docbook-mml amsart\><<< +|<ams dtd|> +>>> + +\<ams dtd\><<< +\:CheckOption{css} \if:Option + \:CheckOption{dtd} \if:Option + \Configure{VERSION} + {\HCode{<?xml version="1.0"?>\Hnewline}} + \Configure{DOCTYPE} + {\HCode{<!DOCTYPE article |<doctype 5.0|> >}} + \Configure{XML-STYLESHEET} + {\HCode{<?xml-stylesheet type="text/css" href="\jobname.css"?> + \Hnewline}} + \else + \Configure{VERSION} + {\HCode{<?xml version="1.0"?>\Hnewline}} + \Configure{DOCTYPE} + {\HCode{<!DOCTYPE article |<doctype 5.0|> >}} + \Configure{XML-STYLESHEET} + {\HCode{<?xml-stylesheet type="text/css" href="\jobname.css"?> + \Hnewline}} + \fi +\else + \Configure{VERSION} + {\HCode{<?xml version="1.0"?>\Hnewline}} + \Configure{DOCTYPE} + {\HCode{<!DOCTYPE article |<doctype 5.0|> >\Hnewline }} +\fi +>>> + + + +\<configure docbook Preamble\><<< +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{VERSION,*XML-STYLESHEET} +\fi +>>> + + + +\<configure docbook-mml amsbook\><<< +|<ams dtd|> +>>> + +\<configure docbook-mml amsproc\><<< +|<ams dtd|> +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{Css} +%%%%%%%%%%%%%%%%%%%% + +\<configure docbook tex4ht\><<< +|<cascade style sheets|> +\Configure{Preamble} + {|<default cascade style sheets|>} {} +\Configure{CssFile}{\jobname.css} + {/* \aa:CssFile\space from \jobname.tex (TeX4ht) */} +\Configure{Needs}{l. + \the\inputlineno\space--- needs --- #1 ---} +\Configure{Needs-}{l. + \the\inputlineno\space--- needs --- #1 ---} +>>> + +\<default cascade style sheets\><<< +{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@ +\leavevmode}% +\immediate\write-1{--- file \aa:CssFile\space ---}% +\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}% +\ht:special{t4ht<\aa:CssFile}% +>>> + + +\<cascade style sheets\><<< +\ScriptCommand{\CssFile}{% + \immediate\write-1{--- file \aa:CssFile\space ---}% + \def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}% + \def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}% + \def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special + {t4ht>\aa:CssFile}}% + \ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}\bb:CssFile + \hfil\break\NoFonts}{\EndNoFonts + \ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}} +\let\Css:File|=\CssFile +\def\CssFile{\futurelet\:temp\Css:Fl} +\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl + \else \expand:after{\Css:File \space}\fi} +\def\Css:fl[#1]{\Css:File\space \css:files #1,,|<par del|>} +\def\css:files#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty + \else \def\:temp{\in:css#1.|<par del|>\css:files#2,,|<par del|>}\fi + \:temp } +\def\in:css#1.#2|<par del|>{\def\:temp{#2}\ifx \:temp\empty \input #1.css + \else \inc:ss#1.#2|<par del|>\fi} +\def\inc:ss#1.|<par del|>{\input #1 } +\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} +>>> + + + +\<cascade style sheets\><<< +\def\Css#1{{\def\:temp{\Configure{Needs}}% + \expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}} +>>> + + +\<configure docbook tex4ht\><<< +\ifx \a:FontCss:\:UnDef + \Configure{FontCss}{Font\string_Css##1} + {Font\string_Css\string_Plus\space##1} +\fi +\expandafter\ifx \csname aa:Css\endcsname\relax + \Configure{Css}{Css: ##1} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{Theorem} +%%%%%%%%%%%%%%%%%%%% + + +\<ams art,proc,book\><<< +\ifx \deferred@thm@head\:UnDef\else + |<shared ams thm/cls|> +\fi +>>> + +\<configure docbook amsthm\><<< +|<shared ams thm/cls|> +>>> + +\<shared ams thm/cls\><<< +\Configure{proof} + {\IgnorePar\EndP\HCode{<blockquote role="proof"><title>}\IgnorePar} + {\ifvmode \IgnorePar\fi\EndP\HCode{}\ShowPar\par} + {\IgnorePar\EndP\HCode{
}\ShowPar\par} +>>> + + + + +%%%%%%%%%%%%%%%%%%%% +\section{Title Page} +%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{maketitle} + {\HCode{}} + {\HCode{}} + {\HCode{}}{\HCode{}} +\Configure{thanks author date and} {}{} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {}{} +>>> + + +\<<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi\EndP + \HCode{
}% + \ConfigureEnv{center} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi}% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</section>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<para role="title">}} + {\ifvmode \IgnorePar\fi\HCode{</para>}} +\Configure{thanks author date and} + {\par\IgnorePar\EndP \HCode{<note role="thanks">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</note>}} + {\ifvmode \IgnorePar\fi\EndP + |<para role|>\HCode{<para role="authorgroup"><author><personname><othername>}} + {\ifvmode \IgnorePar\fi + \HCode{</othername></personname></author><!--/author--></para><!--/authorgroup-->}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<para role="date">}} + {\ifvmode \IgnorePar\fi \HCode{</para><!--/date-->}} + {\ifvmode \IgnorePar\fi\lowercase{\HCode{</othername></personname></author> + <!--/author--><!--author--><author><personname><othername>}}} + {} +>>> + +\<ams article,report maketitle\><<< +\Configure{addresses} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<note role="addresses">}\ShowPar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</note><!--addresses-->}} +\Configure{address} + {\HCode{<note role="address-title"><para>}} + {\ifvmode \IgnorePar\fi + \HCode{</para></note><!--address-title--><note role="address"><para>}} + {\HCode{</para></note><!--address-->}} +\Configure{curraddr} + {\HCode{<para role="curraddr-title">}} + {\ifvmode \IgnorePar\fi + \HCode{</para><!--curraddr-title--><para role="curraddr">}} + {\HCode{</para><!--curraddr-->}} +\Configure{email} + {\HCode{<note role="email-title"><para>}} + {\ifvmode \IgnorePar\fi + \HCode{</para></note><!--email-title--><note role="email"><para>}} + {\HCode{</para></note><!--email-->}} +\Configure{urladdr} + {\HCode{<para role="urladdr-title">}} + {\ifvmode \IgnorePar\fi + \HCode{</para><!--urladdr-title--><para role="urladdr">}} + {\HCode{</para><!--urladdr-->}} +>>> + +\<ams art,proc,book\><<< +\ConfigureEnv{abstract} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +\ConfigureList{abstract} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<note role="abstract">}\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</note><!--abstract-->}\ShowPar} + {\IgnorePar\par\HCode{<title>}} + {\HCode{}\ShowPar\par} +\Configure{setabstract} + {\ifvmode \IgnorePar \fi \EndP} + {\ifvmode \IgnorePar \fi \EndP} +>>> + +\<<< +\Configure{subjclass} + {\par\IgnorePar\HCode{}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP\HCode{}} +\Configure{keywords} + {\par\IgnorePar\EndP \HCode{}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP\HCode{}} +>>> + + + +\<<< +\Configure{translators} + {\par\IgnorePar\EndP \HCode{}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP \HCode{}} + {\HCode{}} + {\HCode{}} +>>> + +\<<< +\Configure{translators} + {\par\IgnorePar\EndP \HCode{}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP \HCode{}} + {\HCode{}} + {\HCode{}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Sections} +%%%%%%%%%%%%%%%%%% + + + + + +\<<< +| +>>> + +\<<< +| +>>> + + +\<<< +| +>>> + + + + +\<<< +\Configure{part} + {\OpenDiv{part}} {\CloseDiv{part}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{section} + {\OpenDiv{section}} {\CloseDiv{section}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{subsection} + {\OpenDiv{subsection}} {\CloseDiv{subsection}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{subsubsection} + {\OpenDiv{subsubsection}} {\CloseDiv{subsubsection}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{paragraph} + {\OpenDiv{paragraph}} {\CloseDiv{paragraph}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{subparagraph} + {\OpenDiv{subparagraph}} {\CloseDiv{subparagraph}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +| +>>> + + +\<<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \HCode{}\thesection + \HCode{}\fi } +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \HCode{}\thesubsection + \HCode{}\fi } +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \HCode{}\thesubsubsection + \HCode{}\fi } +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{End Points} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likpart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\ifx \part\:UnDef \else + \Configure{endpart}{likepart} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{amsmath} +%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{equation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}% + \Configure{gather} + {\HCode{}\IgnorePar } + {\HCode{}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{}\fi } + {} + } + {\ifvmode \IgnorePar\fi\EndP \HCode{}} + {\ifvmode \IgnorePar\fi\EndP \HCode{
}\par + \ShowPar} + +% Mar 18, 2013 at 9:28 PM, Matteo Gamboz +% wrote that starred equation caused an forgotten endgroup error, hence +% the following fix. CVR Mar 22, 2013. + +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}% + \Configure{gather} + {\HCode{}\IgnorePar } + {\HCode{}} + {} + {} + {} + {} + } + {\ifvmode \IgnorePar\fi\EndP \HCode{
}\par + \ShowPar} +>>> + + +\<<< +\ConfigureEnv{align*} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi} {}{} +\ConfigureEnv{alignat*} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{alignat} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{align} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{eqxample} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{flalign*} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{flalign} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{gather} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{gather*} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{gathered} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{matrix} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{xalignat*} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{xalignat} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +\ConfigureEnv{xxalignat} + {\ifmmode\else \ifvmode\else \IgnorePar\fi \EndP\fi} + {\ifmmode\else \par\ShowPar\fi}{}{} +>>> + + + + +\<<< +\ConfigureEnv{subequations} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{
}\par + \ShowPar} + {}{} +>>> + +\<<< +\Configure{equation} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{
}\IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP\HCode{}} + {\HCode{
}} +\Configure{equation*} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{
}\IgnorePar + } + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{
}} +>>> + + +\<<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\par\IgnorePar\EndP\HCode{}\Picture*[]{}} + {\EndPicture\EndP\HCode{}\par} + {} {}} +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align-star} +\:tempc{alignat*}{alignat-star} +\:tempc{xalignat*}{xalignat-star} +\:tempc{flalign*}{flalign-star} +>>> + +%%%%%%%%%%%%%%%%% +\chapter{Plain} +%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{centerline} + {\IgnorePar\EndP\HCode{
}\ShowPar\par} + {\IgnorePar\EndP\HCode{
}\ShowPar\par} +\Configure{leftline} + {\IgnorePar\EndP\HCode{
}\ShowPar\par} + {\IgnorePar\EndP\HCode{
}\ShowPar\par} +\Configure{rightline} + {\ifvmode \IgnorePar \fi \EndP \HCode{
}\ShowPar\par} + {\ifvmode \IgnorePar \fi \EndP \HCode{
}\ShowPar\par} +>>> + + +%%%%%%%%%%%%%%%%% +\chapter{TeXinfo} +%%%%%%%%%%%%%%%%% + + + + +\<<< +| +\Configure{pdfurl} + {\let\sv:Link=\Link \let\sv:EndLink=\EndLink + \let\Link=\U:Link + \def\EndLink{\EndU:Link\let\Link=\sv:Link \let\EndLink=\sv:EndLink}} +%\LinkCommand\U:Link{ulink, url,,,,} +\LinkCommand\U:Link{link, xlink:href,,,,} +>>> + + + + +\<<< +\Configure{group} + {\IgnorePar\EndP\HCode{
}\ShowPar\par} + {\IgnorePar\EndP\HCode{
}\ShowPar\par} +\Configure{multitable} + {\IgnorePar \EndP\HCode{}\IgnorePar } + {\HCode{}} + {\HCode{\ifnum \HRow=1 \fi + }} + {\HCode{}} + {\HCode{}} + {\IgnorePar \EndP\HCode{}} +>>> + + +\<<< +\Configure{example} + {\IgnorePar\EndP\HCode{}\bgroup + \Configure{obeylines}{}{}{\hbox{\HCode{}}}} + {\egroup\IgnorePar\EndP\HCode{}\ShowPar\par} +\Configure{smallexample} + {\IgnorePar\EndP\HCode{}\bgroup + \Configure{obeylines}{}{}{\hbox{\HCode{}}}} + {\egroup\IgnorePar\EndP\HCode{}\ShowPar\par} +>>> + + + + + +\<<< +\ConfigureMark{chapter}{\the\chapno} +\Configure{chapter} + {\OpenDiv{chapter}} {\CloseDiv{chapter}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\ConfigureMark{appendix}{\appendixletter} +\Configure{appendix} + {\AppOpenDiv{appendix}} {\AppCloseDiv{appendix}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{unnumbered} + {\OpenDiv{unnumbered}} {\CloseDiv{unnumbered}} + {\HCode{}} {\HCode{}\par\ShowPar} +\ConfigureMark{numberedsec}{\the\chapno.\the\secno} +\Configure{numberedsec} + {\OpenDiv{numberedsec}} {\CloseDiv{numberedsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\ConfigureMark{appendixsec}{\appendixletter.\the\secno} +\Configure{appendixsec} + {\OpenDiv{appendixsec}} {\CloseDiv{appendixsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{unnumberedsec} + {\OpenDiv{unnumberedsec}} {\CloseDiv{unnumberedsec}} + {\HCode{}} {\HCode{}\par\ShowPar} +\ConfigureMark{numberedsubsec}{\the\chapno.\the\secno .\the\subsecno} +\Configure{numberedsubsec} + {\OpenDiv{numberedsubsec}} {\CloseDiv{numberedsubsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\ConfigureMark{appendixsubsec}{\appendixletter .\the\secno.\the\subsecno} +\Configure{appendixsubsec} + {\OpenDiv{appendixsubsec}} {\CloseDiv{appendixsubsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\ConfigureMark{appendixsubsec}{\appendixletter.\the\secno + .\the\subsecno} +\Configure{appendixsubsec} + {\OpenDiv{appendixsubsec}} {\CloseDiv{appendixsubsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{unnumberedsubsec} + {\OpenDiv{unnumberedsubsec}} {\CloseDiv{unnumberedsubsec}} + {\HCode{}} {\HCode{}\par\ShowPar} +\ConfigureMark{numberedsubsubsec}{\the\chapno.\the\secno + .\the\subsecno.\the\subsubsecno} +\Configure{numberedsubsubsec} + {\OpenDiv{numberedsubsubsec}} {\CloseDiv{numberedsubsubsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\ConfigureMark{appendixsubsubsec}{\appendixletter + .\the\secno.\the\subsecno.\the\subsubsecno} +\Configure{appendixsubsubsec} + {\OpenDiv{appendixsubsubsec}} {\CloseDiv{appendixsubsubsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\ConfigureMark{appendixsubsubsec}{\appendixletter.\the\secno + .\the\subsecno.\the\subsubsecno} +\Configure{appendixsubsubsec} + {\OpenDiv{appendixsubsubsec}} {\CloseDiv{appendixsubsubsec}} + {\HCode{}|<TitleMark|>} {\HCode{}\par\ShowPar} +\Configure{unnumberedsubsubsec} + {\OpenDiv{unnumberedsubsubsec}} {\CloseDiv{unnumberedsubsubsec}} + {\HCode{}} {\HCode{}\par\ShowPar} +>>> + + + + + + + + +\<<< +\Configure{enumerate}% + {\ifvmode\IgnorePar\fi \EndP \HCode{}} + {\EndP\HCode{}\ShowPar} + {\ifnum \itemno>1 + \ifvmode\IgnorePar\fi \EndP \Tg\fi \DeleteMark} + {\ifvmode\IgnorePar\fi \EndP \HCode{}\par\ShowPar} +\Configure{itemize}% + {\ifvmode\IgnorePar\fi \EndP \HCode{}} + {\EndP\HCode{}\ShowPar} + {\ifnum \itemno>1 \ifvmode\IgnorePar\fi \EndP + \Tg\fi \DeleteMark} + {\ifvmode\IgnorePar\fi \EndP \HCode{}\par\ShowPar} +\Configure{table}% + {\EndP\HCode{}\let\end:itm=\empty} + {\EndP\HCode{}\ShowPar} + {\end:itm\def\end:itm{\EndP\HCode{}}% + \HCode{}\bgroup \bf} + {\egroup\HCode{}\par\ShowPar} +>>> + +\<<< +\Configure{titlepage} + {\ifvmode \IgnorePar \fi \EndP \HCode{}\bgroup + \Configure{flushleft} + {\ifvmode \IgnorePar \fi \EndP \HCode{}\bgroup + \Configure{obeylines}{}{}{\hbox{\HCode{}}}\ShowPar\par + \leavevmode } + {\ifvmode \IgnorePar \fi \EndP \egroup\HCode{}} + } + {\egroup\ifvmode \IgnorePar \fi \EndP \HCode{}} +\Configure{title} + {\ifvmode \IgnorePar \fi \EndP \HCode{}\bgroup + \Configure{leftline}{}{}} + {\egroup\ifvmode \IgnorePar \fi \EndP \HCode{}} +\Configure{subtitle} + {\IgnorePar\EndP\HCode{}\bgroup + \Configure{rightline}{}{}} + {\egroup \IgnorePar\EndP\HCode{}} +\Configure{author} + {\ifvmode \IgnorePar \fi \EndP \HCode{}\bgroup + \Configure{leftline}{}{}} + {\egroup \ifvmode \IgnorePar \fi \EndP \HCode{}} +>>> + + + + +\<<< +| +>>> + + + + +% \HCode{\string&\#x00A0;}} + + +\<<< +\Configure{contents} + {\b:titlepage \let\b:titlepage=\empty + \ifvmode \IgnorePar \fi \EndP \HCode{}} + {\ifvmode \IgnorePar \fi \EndP \HCode{}} +>>> + + + + +\<<< +\Configure{endchapter}{appendix} +\Configure{endappendix}{chapter} +\Configure{endnumberedsec} + {chapter,appendix,appendixsec,unnumberedsec,unnumbered} +\Configure{endappendixsec} + {chapter,appendix,umberedsec,unnumberedsec,unnumbered} +\Configure{endunnumberedsec} + {chapter,appendix,umberedsec,appendixsec,unnumbered} +\Configure{endunnumbered} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec} +\Configure{endnumberedsubsec} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec,% + unnumbered,appendixsubsec,appendixsubsec,unnumberedsubsec} +\Configure{endappendixsubsec} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec,% + unnumbered,numberedsubsec,appendixsubsec,unnumberedsubsec} +\Configure{endappendixsubsec} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec,% + unnumbered,numberedsubsec,appendixsubsec,unnumberedsubsec} +\Configure{endunnumberedsubsec} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec,% + unnumbered,numberedsubsec,appendixsubsec,appendixsubsec} +\Configure{endnumberedsubsubsec}{chapter,appendix,umberedsec,% + appendixsec,unnumberedsec,unnumbered,numberedsubsec,% + appendixsubsec,appendixsubsec,unnumberedsubsec,appendixsubsubsec,% + appendixsubsubsec,unnumberedsubsubsec} +\Configure{endappendixsubsubsec} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec,% + unnumbered,numberedsubsec,appendixsubsec,appendixsubsec,% + unnumberedsubsec,numberedsubsubsec,appendixsubsubsec,% + unnumberedsubsubsec} +\Configure{endappendixsubsubsec} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec,% + unnumbered,numberedsubsec,appendixsubsec,appendixsubsec,% + unnumberedsubsec,numberedsubsubsec,appendixsubsubsec,% + unnumberedsubsubsec} +\Configure{endunnumberedsubsubsec} + {chapter,appendix,umberedsec,appendixsec,unnumberedsec,% + unnumbered,numberedsubsec,appendixsubsec,appendixsubsec,% + unnumberedsubsec,numberedsubsubsec,appendixsubsubsec,appendixsubsubsec} +>>> + + + + + + + + + +\<<< +\Configure{index} + {\IgnorePar\leavevmode\EndP\Tg
} + {\IgnorePar\EndP\Tg
} + {\leavevmode\Tg} + {\Tg\Tg
\IgnorePar} +>>> + + +%%%%%%%%%%%%%%%%% +\chapter{Packages} +%%%%%%%%%%%%%%%%% + + + + + + +%%%%%%%%%%%%%%%%%%% +\section{Verbatim} +%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{fancyvrb} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{fancyvrb} + {\ifvmode \IgnorePar \fi \EndP + \HCode{}} + {\EndP\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +>>> + + +\<<< +\Configure{fancyvrbcolor} + {\Css{div\#fancyvrb\fancyvrbNo { color: \HColor; }}} + {\Css{div\#fancyvrb\fancyvrbNo { background-color: \HColor;}}} + {\Css{div\#fancyvrb\fancyvrbNo { border-color: \HColor;}}} +>>> + +\<<< +\Configure{fancyvrbframe} + {\Css{div\#fancyvrb\fancyvrbNo { border-top: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo { border-left: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo { border-bottom: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo { border-right: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo {border-width:\HSize;}}} + {\Css{div\#fancyvrb\fancyvrbNo {padding:\HSize;}}} +>>> + +\<<< +\Configure{BVerbatimInput} + {\ifvmode \IgnorePar \fi \EndP + \gHAssign\HRow=0 + \HCode{
}} + {\ifvmode \IgnorePar \fi \EndP \HCode{
}} + {\gHAdvance\HRow by 1 \ifnum \HRow>1 \HCode{
}\fi}{} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\section{Drawing Utilitis} +%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%% +\subsection{pgf} +%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%% +\subsection{pgf} +%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{pgfpicture} + {\hbox\bgroup\Picture+[ ]{}} + {\EndPicture\egroup} + {}{} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{beamer} +%%%%%%%%%%%%%%%%%%% + + + + +\<<< +|
+| +| +| +| +| +| +| +| +>>> + +\<<< +\Configure{HtmlPar} + {\EndP\HCode{}} + {\EndP\HCode{}} + {\HCode{}} {\HCode{}} +>>> + +\<<< +\Configure{titlepage} + {\ifvmode \IgnorePar\fi \EndP \HCode{}% + \bgroup |} + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{}} +\Configure{title} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} +\Configure{author} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} +\Configure{institute} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} +\Configure{date} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} +\Configure{inst} + {\HCode{}\bgroup \everymath{}\let\sp=\empty} + {\egroup\HCode{}} +\Configure{andtitle}{\HCode{}} +>>> + + + +\<<< +\Configure{tableofcontents} + {\ifvmode \IgnorePar\fi \EndP \HCode{}} + {\ifvmode \IgnorePar\fi \EndP\HCode{}} + {}{}{} +\ConfigureToc{toc} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +\Configure{sectionshadedintoc} + {\HCode{}} + {\ifvmode \IgnorePar\fi \HCode{}} +\Configure{sectionintoc} + {\HCode{}} + {\ifvmode \IgnorePar\fi \HCode{}} +\Configure{subsectionshadedintoc} + {\HCode{}} + {\ifvmode \IgnorePar\fi \HCode{}} +\Configure{subsectionintoc} + {\HCode{}} + {\ifvmode \IgnorePar\fi \HCode{}} +>>> + + +\<<< +\ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}\par + } + {\ifvmode \IgnorePar\fi \EndP \HCode{
}} + {} {} +>>> + + + +\<<< +\let\no:section\section +\Def:Section\section{\thesection}{#1} +\let\no::section\section +\let\section\no:section +\let\no:section\@section +\def\@section[#1]#2{\no::section{#2}% + \ifvmode \IgnorePar\fi \EndP + \HCode{}#1% + \ifvmode \IgnorePar\fi \EndP \HCode{}% + \no:section[#1]{#2}} + +\let\no:subsection\subsection +\Def:Section\subsection{\thesubsection}{#1} +\let\no::subsection\subsection +\def\subsection#1{\no::subsection{#1}\no:subsection{#1}} + +\Configure{section} + {\IgnorePar\EndP \HCode{}} + {\IgnorePar\EndP\HCode{
}} + {\HCode{}\TitleMark} + {\HCode{}\par\ShowPar} +\Configure{subsection} + {\IgnorePar\EndP \HCode{}} + {\IgnorePar\EndP\HCode{}} + {\HCode{}\TitleMark} + {\HCode{}\par\ShowPar} +\Configure{endsubsection}{section} +>>> + + + + +\<<< +\let\block:Name=\empty +\ConfigureEnv{block} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{block}\fi + \HCode{
}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}} + {} {} +\ConfigureEnv{alertblock} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{alertblock}\fi + \HCode{
}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}} + {} {} +\ConfigureEnv{exampleblock} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{exampleblock}\fi + \HCode{
}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}} + {} {} +\Configure{blocktitle} + {\ifvmode \IgnorePar\fi \EndP \HCode{}\par\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP \HCode{}\par} +>>> + +\<<< +\ConfigureEnv{Problem} + {\def\block:Name{Problem}} {} {} {} +\ConfigureEnv{Loesung} + {\def\block:Name{Loesung}} {} {} {} +\ConfigureEnv{Definition} + {\def\block:Name{Definition}} {} {} {} +\ConfigureEnv{Satz} + {\def\block:Name{Satz}} {} {} {} +\ConfigureEnv{Beweis} + {\def\block:Name{Beweis}} {} {} {} +\ConfigureEnv{Folgerung} + {\def\block:Name{Folgerung}} {} {} {} +\ConfigureEnv{Lemma} + {\def\block:Name{Lemma}} {} {} {} +\ConfigureEnv{Fakt} + {\def\block:Name{Fakt}} {} {} {} +\ConfigureEnv{Theorem} + {\def\block:Name{Theorem}} {} {} {} +\ConfigureEnv{Proof} + {\def\block:Name{Proof}} {} {} {} +\ConfigureEnv{Corollary} + {\def\block:Name{Corollary}} {} {} {} +\ConfigureEnv{Fact} + {\def\block:Name{Fact}} {} {} {} +\ConfigureEnv{definition} + {\def\block:Name{definition}} {} {} {} +\ConfigureEnv{definitions} + {\def\block:Name{definitions}} {} {} {} +\ConfigureEnv{theorem} + {\def\block:Name{theorem}} {} {} {} +\ConfigureEnv{proof} + {\def\block:Name{proof}} {} {} {} +\ConfigureEnv{corollary} + {\def\block:Name{corollary}} {} {} {} +\ConfigureEnv{fact} + {\def\block:Name{fact}} {} {} {} +\ConfigureEnv{Beispiel} + {\def\block:Name{Beispiel}} {} {} {} +\ConfigureEnv{Beispiele} + {\def\block:Name{Beispiele}} {} {} {} +\ConfigureEnv{Example} + {\def\block:Name{Example}} {} {} {} +\ConfigureEnv{Examples} + {\def\block:Name{Examples}} {} {} {} +\ConfigureEnv{example} + {\def\block:Name{example}} {} {} {} +\ConfigureEnv{examples} + {\def\block:Name{examples}} {} {} {} +>>> + + + +\<<< +\Configure{frametitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{}\bgroup + \Configure{HtmlPar}{ }{ }{}{}% + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{}} +>>> + + +\<<< +\ConfigureEnv{columns} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}\par} + {}{} +\ConfigureEnv{column} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}} + {}{} +>>> + + +\<<< +\Configure{alert} + {\HCode{}\bgroup + \Configure{HtmlPar}{\HCode{}}{\HCode{}}{}{}% + } + {\egroup\HCode{}} +>>> + + + + + +\<<< +\ConfigureList{thebibliography}% + {\IgnorePar\EndP + \HCode{}\let\en:bib=\empty} + {\en:bib\HCode{}} + {\en:bib\def\en:bib{\HCode{}}% + \HCode{}% + |} + {\HCode{}} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{prosper} +%%%%%%%%%%%%%%%%%%% + + + +\<<< +\ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}\par} + {\HCode{
}} + {}{} +\Configure{slidetitle} + {\HCode{}} + {\HCode{}} +>>> + + +%%%%%%%%%%%%%%%%%%% +\section{algorithmic} +%%%%%%%%%%%%%%%%%%% + + + +\<<< +\ConfigureEnv{algorithmic} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
}% + \bgroup + \Configure{HtmlPar}{}{}{}{}} + {\egroup \ifvmode \IgnorePar\fi + \HCode{
}\par\ShowPar} + {}{} +\Configure{ALCitem} + {\HCode{\ifnum \c@ALC@line>1 \fi + }} + {\HCode{}} +\Configure{algorithmiccomment} + {\HCode{
}} + {\HCode{
}} + {}{} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{llncs} +%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{email} + {\HCode{}} + {\HCode{}} +\Configure{institute} + {\HCode{}} + {\HCode{}} +>>> + +\<<< +\ConfigureEnv{abstract} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +\ConfigureList{abstract} + {\ifvmode \IgnorePar\fi \EndP + \HCode{}\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{}\ShowPar} + {\IgnorePar\par\HCode{}} + {\HCode{}\ShowPar\par} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{array} +%%%%%%%%%%%%%%%%%% + + + +\<<< +| +| +>>> + + +\<<< +| +>>> + + + + + +%%%%%%%%%%%%% +\subsection{subeqnarray} +%%%%%%%%%%%%% + + +\<<< +\ConfigureEnv{subeqnarray} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}} + {}{} +>>> + +\begin{thebibliography}{9} +\bibitem{home} +\url{http://www.docbook.org/} +\bibitem{specs} +Norman Walsh +(With contributions from Leonard Muellner), +DocBook 5.0: The Definitive Guide, +3 March 2008, +O'Reilly, +\url{http://www.docbook.org/tdg5/en/html/} +(\Link[http://www.docbook.org/tdg5/en/html/pt02.html]{}{}element references\EndLink, \Link[http://docbook.org/schemas/5x]{}{}relax ng\EndLink + +\bibitem{wiki} +\url{http://en.wikipedia.org/wiki/DocBook} +\end{thebibliography} + + +%%%%%%%%%%%%%%%%%% +\section{Bitmaps} +%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{graphics*} + {gif} + {{\Configure{Needs}{File: \Gin@base.gif}\Needs{}}% + \Picture[\a:GraphicsAlt]{\Gin@base.gif |}} +\Configure{graphics*} + {png} + {{\Configure{Needs}{File: \Gin@base.png}\Needs{}}% + \Picture[\a:GraphicsAlt]{\Gin@base.png |}} +\Configure{graphics*} + {jpg} + {{\Configure{Needs}{File: \Gin@base.jpg}\Needs{}}% + \Picture[\a:GraphicsAlt]{\Gin@base.jpg |}} +\Configure{graphics*} + {jpeg} + {{\Configure{Needs}{File: \Gin@base.jpeg}\Needs{}}% + \Picture[\a:GraphicsAlt]{\Gin@base.jpeg |}} +>>> + +\<<< +\csname a:Gin-dim\endcsname +>>> + +\<<< +\NewConfigure{Gin-dim}{1} +>>> + +\<<< +\:CheckOption{jpg} \if:Option + \Configure{Picture}{.jpg} +\else + \Log:Note{for jpg bitmaps of pictures, use the `jpg' + command line option. |} +\fi +\:CheckOption{gif} \if:Option + \Configure{Picture}{.gif} +\else + \Log:Note{for gif bitmaps of pictures, use the `gif' + command line option. |} +\fi +>>> + +\<<< +(Character bitmaps are controled only by `g' records of tex4ht.env and `-g' +switches of tex4ht.c) +>>> + +\endinput diff --git a/support/TeX4ht/source/tex4ht-env.tex b/support/TeX4ht/source/tex4ht-env.tex new file mode 100644 index 0000000000..9b175890b3 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-env.tex @@ -0,0 +1,1729 @@ +% $Id: tex4ht-env.tex 418 2018-07-03 17:37:07Z karl $ +% latex tex4ht-env +% or htlatex tex4ht-env "xhtml,3" +% +% Copyright 2009-2018 TeX Users Group +% Copyright 1997-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + +\usepackage{url} +\input tex4ht-dir.tex + +\ifx \HCode\Undef + \usepackage[xhtml,2,sections+]{tex4ht} + \input ProTex.sty + \AlProTex{env,<<<>>>,@,title,list} +\else + \Configure{ProTex}{env,<<<>>>,@,title,list} +\fi + +\input{common} + +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Outline of Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Note: The `-c...' calls are executed in the order of the prsence of +the scripts within tex4ht.env. Hence, place the xtpipe translations +before validations. + + +\<<< +@% +@% +@% +@% +@% +@% +@% +@% +@% +@ +@ +@ +@ +@ +@ @%before validate@% +@% +@ % +@% +% end of file +>>> + + +\<<< +@% +@% +@% +@% +@% +@% +@% +@% +@% +@ +@ +@ +@ +@ +@ @%before validate@% +@% +@ % +@% +% end of file +>>> + + + +\<<< +@% +@% +@% +@% +@% +@% +@% +@% +@% +@% +@ +@ +@ +@ +@ +@ @%before validate@% +@ +@ % +@% +% end of file +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Opening Comments} +%%%%%%%%%%%%%%%%%%% + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Notes: % +% 1. Empty lines might be harmful % +% 2. Tagged script segments ... are scanned only if % +% their names are specified within -ctag switches of tex4ht.c % +% and t4ht.c. When -c switches are not supplied, a -cdefault % +% is implicitly assumed. % +% The tags and , but not their bodies, are % +% ignored if they are not located at the start of their lines. % +% 3. Place this file in your work directory and/or root directory % +% and/or in directory `xxx' of your choice. In the latest case, % +% compile tex4ht.c and t4ht.c with `#define ENVFILE xxx', or % +% provide the address of the file to tex4ht and t4ht throught % +% the -e switch % +% 4. Under kpathsea, the substring `%%~' may be employed in % +% commands to obtain the value of ${TEXMFDIST}. % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +>>> + + +\<<< +% See comments in the Unix tex4ht.env for how this file gets found, +% except on Windows, we also look in the directory of tex4ht.exe/t4ht.exe. +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Fonts} +%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%% +\subsection{TFM Files} +%%%%%%%%%%%%%%%%%%% + + + +\<<< +tpath/tex/texmf/fonts/tfm/! +>>> + + +\<<< +tc:\path\tfm! +>>> + +\<<< +t/usr/local/teTeX/share/texmf/fonts/tfm/! +t/var/tmp/texfonts/tfm/! + t/usr/local/teTeX/texmf/fonts/vf/! +>>> + +The \verb't/var/tmp/texfonts/tfm/!' are for fonts created on the fly +during the compilation by tex. + + + +%%%%%%%%%%%%%%%%%% +\subsection{HTF Files} +%%%%%%%%%%%%%%%%%%% + +The structure of htf fonts is the same on Windows and Unix, so it +doesn't make sense to keep two versions. + + + +\<<< +@ +@ +@ +@ +@ +@ +@ +@ +@ +@ +@ +@ +@ +>>> + + + +\<<< + +i%%~/tex4ht/ht-fonts/iso8859/1/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/mozilla/! +i%%~/tex4ht/ht-fonts/unicode/! + +>>> + + +\<<< + +i%%~/tex4ht/ht-fonts/mozilla/! +i%%~/tex4ht/ht-fonts/unicode/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! + +>>> + + + +\<<< + +i%%~/tex4ht/ht-fonts/unicode/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! + +>>> + + + +\<<< + +i%%~/tex4ht/ht-fonts/html-speech/! +i%%~/tex4ht/ht-fonts/unicode/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/css/emacspeak/! + +>>> + + +\<<< + +i%%~/tex4ht/ht-fonts/jsml/! +i%%~/tex4ht/ht-fonts/unicode/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! + +>>> + + +\<<< + +i%%~/tex4ht/ht-fonts/iso8859/2/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/unicode/! + +>>> + + +\<<< + +i%%~/tex4ht/ht-fonts/iso8859/5/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/unicode/! + +>>> + + + +\<<< + +i%%~/tex4ht/ht-fonts/iso8859/7/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/unicode/! + +>>> + + + +\<<< + +i%%~/tex4ht/ht-fonts/iso8859/8/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/unicode/! + +>>> + + +\<<< + +i%%~/tex4ht/ht-fonts/iso8859/15/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/unicode/! + +>>> + + + +\<<< + +i%%~/tex4ht/ht-fonts/koi/8r/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! +i%%~/tex4ht/ht-fonts/unicode/! + +>>> + + +\<<< % + +i%%~/tex4ht/ht-fonts/symbol/! +i%%~/tex4ht/ht-fonts/unicode/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! + +>>> + + + +\<<< % + +i%%~/tex4ht/ht-fonts/win/1251/! +i%%~/tex4ht/ht-fonts/unicode/! +i%%~/tex4ht/ht-fonts/ascii/! +i%%~/tex4ht/ht-fonts/alias/! + +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\subsection{Bookkeeping tex4ht.fls} +%%%%%%%%%%%%%%%%%%% + +Currently broken and Disabled. + + +\<<< +% * Address for an automatically created bookkeeping file % +% * The work directory is assumed for a default % +l~/tex4ht.dir/tex4ht.fls +>>> + + + + +\<<< +% * Address for an automatically created bookkeeping file % +% * Ignored under kpathsea % +% * The work directory is assumed for a default % + l~/tex4ht.dir/tex4ht.fls +>>> + + + +\<<< +% * Address for an automatically created bookkeeping file % +% * Ignored under kpathsea % +% * The work directory is assumed for a default % +lc:\tex4ht\tex4ht.fls +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{Notes} +%%%%%%%%%%%%%%%%%%% + +\<<< +% * Replace `path', and possibly what follows, with appropriate % +% content % +% * A path may start with: % +% ~ for environment variable HOME % +% ~~ for environment variable TEX4HTTFM % +% %%~ for ${TEXMFDIST} of KPATHSEA % +% * A ! requests recursive search into subdirectories % +% * Multiple t and i entries are allowed % +% * When supported by kpathsea % +% + t entries are ignored % +% + the path before /ht-fonts/ is ignored in i records that don't % +% represent real addresses % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Bitmap Conversion Scripts} +%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%% +\subsection{Unix} +%%%%%%%%%%%%% + + + + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dvi-to-xxx % +% choose one G-script % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dvips options % +% magnification: -x mag (e.g., -x 1200) % +% page size: -T x,y (e.g., -T 14in,14in) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@ + + +@ +@ +G. +@ +@ + +@ +@ % +>>> + + +%%%%%%%%%%%%% +\subsection{Windows} +%%%%%%%%%%%%% + + + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dvi-to-xxx % +% choose one G-script % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dvips options % +% magnification: -x mag (e.g., -x 1200) % +% page size: -T x,y (e.g., -T 14in,14in) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +@ + +@ + +@ + +@ +@ +G. +@ + +@ +@ % +>>> + + +%%%%%%%%%%%%% +\subsection{Private (on SUN)} +%%%%%%%%%%%%% + + + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Select one of the G scripts % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dvips options % +% magnification: -x mag (e.g., -x 1200) % +% page size: -T x,y (e.g., -T 14in,14in) % +% gs fonts: -Pfont (e.g., -Pcmz -Pamz) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@ +@ +G. +@ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@ + +@ + +@ + +@ % +>>> + + + +%%%%%%%%%%%%% +\subsection{Script: dvips + gs} +% duplicated below, as well as twice here. must fixx! +% we don't want to use convert for the sake of simplifying mactex. +%%%%%%%%%%%%% + +\<<< +Gdvips -E -q -Ppdf -f %%1 -pp %%2 > zz%%4.ps +Ggs -sDEVICE=pngalpha -sOutputFile=%%3 -r110x110 -dEPSCrop -dBackgroundColor=16#ffffff -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit +Grm zz%%4.ps >>> + +\<<< +%echo "dbg: got to dvips to png via gs (unix dvips convert)" +Gdvips -E -q -Ppdf -f %%1 -pp %%2 > zz%%4.ps +Ggs -sDEVICE=pngalpha -sOutputFile=%%3 -r110x110 -dEPSCrop -dBackgroundColor=16#ffffff -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit +Grm zz%%4.ps >>> + + +\<<< +Gif exist zz%%4.ps DEL zz%%4.ps >nul +Gif exist %%3 DEL %%3 >nul +Gdvips -E -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Gconvert -trim +repage -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3 +Gif exist zz%%4.ps DEL zz%%4.ps >nul >>> + + + +\<<< +%--------- alternative instructions for old versions of convert +% Gconvert -trim -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3 +% Gconvert -crop 0x0 +repage -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3 +% Gconvert -crop 0x0 +page -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >>> + +The `-E' option is required for dvips to produce a tight bounding box. + + +%%%%%%%%%%%%% +\subsection{Script: dvips + gs + convert} +%%%%%%%%%%%%% + +\<<< + +Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Ggs -sDEVICE=ppm -sOutputFile=zz%%4.ppm -r110x110 -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit +Gconvert zz%%4.ppm -trim +repage -density 110x110 -transparent '#FFFFFF' %%3 +Grm zz%%4.ps +Grm zz%%4.ppm + >>> + + +The intermediate ppm step is to overcome cropping and other problems +in convert. + + + +\<<< +Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Ggs -sDEVICE=ppm -sOutputFile=zz%%4.ppm -r110x110 -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit +Gconvert zz%%4.ppm -crop 0x0 +page -density 110x110 -transparent '#FFFFFF' %%3 +Grm zz%%4.ps +Grm zz%%4.ppm >>> + +\<<< + +Gif exist zz%%4.ps DEL zz%%4.ps >nul +Gif exist zz%%4.ppm DEL zz%%4.ppm >nul +Gif exist %%3 DEL %%3 >nul +Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Ggswin32c -dNOPAUSE -sDEVICE=ppmraw -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r110x110 -sOutputFile=zz%%4.ppm -q zz%%4.ps -c quit +Gconvert zz%%4.ppm -trim +repage -density 110x110 -transparent #FFFFFF %%3 +Gif exist zz%%4.ps DEL zz%%4.ps >nul +Gif exist zz%%4.ppm DEL zz%%4.ppm >nul + >>> + +The command line options \verb'-Pcmz -Pamz' of dvips requests type 1 +postscript format for the standard Computer Modern fonts of \TeX. + + +TextAlphaBits, GraphicsAlphaBits: The number of bits of anti-aliasing +information for text or graphics respectively. Legal values are 1 (no +anti-aliasing, the default for most devices), 2, or 4. + +-x: magnification * 1000. A variant of \verb'\magnification'. Should use +values for which the printers can support the font sizes. Typically, +\verb'1.2{\tt\string^}i * 1000'. + +%%%%%%%%%%%%% +\subsection{PNG Script: dvi + gs} +%%%%%%%%%%%%% + + + +\<<< + G.png + Gdvips -E -q -Ppdf -f %%1 -pp %%2 > zz%%4.ps + Ggs -sDEVICE=pngalpha -sOutputFile=%%3 -r110x110 -dEPSCrop -dBackgroundColor=16#ffffff -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit + Grm zz%%4.ps >>> + +A piping of the conversion as in + +\begin{verbatim} +dvips -E -q -Ppdf -f %%1 -pp %%2 | Ggs -sDEVICE=pngalpha -sOutputFile=- ... +\end{verbatim} + +provides faster compilations, but error messages might get lost if +they happen to be directed to the standard output stream. + + +\<<< + G.png + Gif exist zz%%4.ps DEL zz%%4.ps >nul + Gif exist %%3 DEL %%3 >nul + Gdvips -E -q -Ppdf -f %%1 -pp %%2 > zz%%4.ps + Ggswin32c -sDEVICE=pngalpha -sOutputFile=%%3 -r110x110 -dEPSCrop -dBackgroundColor=16#ffffff -dTextAlphaBits=2 -dGraphicsAlphaBits=2 -q -dbatch -dNOPAUSE zz%%4.ps -c quit + Gif exist zz%%4.ps DEL zz%%4.ps >nul >>> + + + + +ImageMagic comes with an `identify' utility for inspecting image +files. For instance, try `identify -verbatim foo.png'. For additional +information, try `identify' or `man identify'. + + +%%%%%%%%%%%%% +\subsection{Script: netpbm} +%%%%%%%%%%%%% + + + +\<<< +Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Ggs -sDEVICE=ppm -r110 -sOutputFile=zz%%4.ppm -q -dbatch -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dNOPAUSE zz%%4.ps -c quit +Gmv zz%%4.ppm temp.ppm +Gpnmcrop temp.ppm > zz%%4.ppm +Gpnmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3 + Gppmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3 +Grm zz%%4.ps +Grm zz%%4.ppm +Grm temp.ppm +% Gppmtogif -interlace -transparent 1,1,1 zz%%4.ppm > %%3 >>> + + +\<<< +Gif exist zz%%4.ps DEL zz%%4.ps +Gif exist zz%%4.ppm DEL zz%%4.ppm +Gif exist temp.ppm DEL temp.ppm +Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Ggswin32c -sDEVICE=ppm -r110 -sOutputFile=zz%%4.ppm -q -dbatch -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dNOPAUSE zz%%4.ps -c quit +Gmove /y zz%%4.ppm temp.ppm +Gpnmcrop temp.ppm > zz%%4.ppm +Gif exist %%3 DEL %%3 +Gppmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3 +Gif exist zz%%4.ps DEL zz%%4.ps +Gif exist zz%%4.ppm DEL zz%%4.ppm +Gif exist temp.ppm DEL temp.ppm +% Gppmtogif -interlace -transparent 1,1,1 zz%%4.ppm > %%3 >>> + +%%%%%%%%%%%%% +\subsection{Script: dvipng} +%%%%%%%%%%%%% + + \<<< + +G.png +%echo "dbg: got to dvi to png via (dvipng)" +Gdvipng -T tight -D 144 -bg Transparent -pp %%2:%%2 %%1 -o %%3 +G.gif +Gdvipng -T tight -D 144 -bg Transparent -gif -pp %%2:%%2 %%1 -o %%3 +@ +G. +Gdvipng -T tight -D 144 -bg Transparent -pp %%2:%%2 %%1 -o %%3 +% avoiding convert for mactex. +% Gdvips -Ppdf -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +% Gconvert -crop 0x0 -density 110x110 -transparent '#FFFFFF' zz%%4.ps %%3 +%Grm zz%%4.ps + +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{SVG Bitmap Conversion Scripts} +%%%%%%%%%%%%%%%%%%% + +\<<< +G.svg +Gdvisvgm -n -p %%2 --exact -c 1.4,1.4 -s %%1 > %%3 >>> + + +\<<< +G.svg +Gdvisvgm -n -p %%2 --exact -c 1.4,1.4 -s %%1 > %%3 >>> + +dvisvgm is included with all \TeX\ distributions nowadays and the +conversion is quite fast and efficient. + + +%%%%%%%%%%%%% +\subsection{Request Scripts} +%%%%%%%%%%%%% + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Default scripts, shifted rightward 1 pos +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + s--- needs --- %%1.idv[%%2] ==> %%3 --- + b--- characters --- + g.png +% empty bitmaps % + Ecopy empty.png %%1%%2 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +>>> + + +%%%%%%%%%%%%% +\subsection{Alternative Scripts} +%%%%%%%%%%%%% + + + + + + +\begin{itemize} +\item +\begin{verbatim} + Gdvips -T 14in,14in -Ppdf -mode epstypro -D 360 -f %%1 -pp %%2 > zz%%4.ps +\end{verbatim} + +\item +\begin{verbatim} +Gtest ! -f %%3 +Gdvips -pp %%2 -R -E %%1 -o - | convert -transparent '#FFFFFF' -quality 100 +-density 110 ps:- %%3 +\end{verbatim} + +\item +{A +Netpbm-based script +(\Link[ftp://ftp.x.org/R5contrib/netpbm-1mar1994.tar.gz]{}{}src\EndLink{})} + +\begin{verbatim} + Ggs -sDEVICE=ppm -sOutputFile=zz%%4.ppm -q -dbatch -dNOPAUSE zz%%4.ps -c quit + Gmv zz%%4.ppm yz%%4.ppm + Gpnmcrop yz%%4.ppm > zz%%4.ppm + Gppmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3 +\end{verbatim} + +\item +{A +PDF-based script +(\Link[http://www.cs.wisc.edu/\string + ~ghost/doc/AFPL/6.50/Ps2pdf.htm]{}{}ps2pdf\EndLink{})} +\begin{verbatim} +Gdvips -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Gps2pdf zz%%4.ps zz%%4.pdf +Gconvert zz%%4.pdf -trim -density 110x110 -transparent '#FFFFFF' %%3 +\end{verbatim} + + +\item + +\<<< + +Gif exist zz%%4.ps DEL zz%%4.ps >nul +Gif exist %%3 DEL %%3 >nul +Gdvips -E -q -Ppdf -D 110 -mode ibmvga -f %%1 -pp %%2 -o zz%%4.ps +Ggswin32c -dbatch -dNOPAUSE -sDEVICE=pngalpha -dEPSCrop ``-dBackgroundColor=16#ffffff'' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r110x110 -sOutputFile=%%3 -q zz%%4.ps -c quit +Gif exist zz%%4.ps DEL zz%%4.ps >nul + +>>> + + +\end{itemize} + + + +\begin{itemize} + + + +\item{A variant of the given script} +\begin{verbatim} +GDEL zz%%4.ps +Gdvips -T 14in,14in -Ppdf -mode epstypro -D 360 -f %%1 -pp %%2 > zz%%4.ps +GDEL %%3 +Gc:/imagemagic/convert zz%%4.ps -trim -density 110x110 -transparent #FFFFFF %%3 +\end{verbatim} +\item{A +Netpbm-based script +(\Link[ftp://ftp.x.org/R5contrib/netpbm-1mar1994.tar.gz]{}{}src\EndLink{} / +binaries for Win 95/98/NT: +\Link[http://sourceforge.net/projects/netpbm/]{}{}Netpbm project\EndLink, +\Link[ftp://miktex.sourceforge.net/pub/miktex/util/]{}{}MiK\TeX\EndLink +)} + +\begin{verbatim} + Gif exist zz%%4.ps DEL zz%%4.ps + Gif exist zz%%4.ppm DEL zz%%4.ppm + Gdvips -T 14in,14in -Ppdf -f %%1 -pp %%2 -o zz%%4.ps + Ggswin32c -sDEVICE=ppm -sOutputFile=zz%%4.ppm -q -dbatch -dNOPAUSE zz%%4.ps -c quit + Gmove zz%%4.ppm yz%%4.ppm + Gpnmcrop yz%%4.ppm > zz%%4.ppm + Gif exist %%3 DEL %%3 + Gppmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3 +\end{verbatim} + +or similarly + +% on dvips: -D 600 +% on gs : -r600x600 + +\begin{verbatim} + Gif exist zz%%4.ps DEL zz%%4.eps + Gif exist zz%%4.ppm DEL zz%%4.ppm + Gdvips -E -f %%1 -pp %%2 -o zz%%4.eps + Ggswin32c -dEPSCrop -dBATCH -dNOPAUSE -sDEVICE=pbm -q -sOutputFile=zz%%4.ppm zz%%4.eps -c quit + Gmove zz%%4.ppm yz%%4.ppm + Gpnmcrop yz%%4.ppm > zz%%4.ppm + Gppmtopng -interlace -transparent 1,1,1 zz%%4.ppm > %%3 +\end{verbatim} + +\item {IrfanView} +\Link[http://www.irfanview.com]{}{}IrfanView\EndLink{} +offers a possible alternative for the +\`'convert' utility of ImageMagick. + +\item{PDF-based script} +\Link{}{pdf-based}\EndLink {A +(\Link[http://www.cs.wisc.edu/\string + ~ghost/doc/AFPL/6.50/Ps2pdf.htm]{}{}ps2pdf\EndLink{})} +\begin{verbatim} +Gdvips -mode ibmvga -D 110 -f %%1 -pp %%2 > zz%%4.ps +Gps2pdf zz%%4.ps zz%%4.pdf +Gconvert zz%%4.pdf -trim -density 110x110 -transparent '#FFFFFF' %%3 +\end{verbatim} + + +\end{itemize} + + + +%%%%%%%%%%%%%%%%%%%% +\section{Open Office} +%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{Unix} +%%%%%%%%%%%%%%%%%%%% + + +A `.foo command' record in the script asks to execute the given +command for each entry 'File: abc.foo' in the .lg file. A \verb=%%0= +stands for the job name, a \verb=%%1= stands for the file name +(e.g., 'abc') without the extension. A \verb=%%~= stands for the +value of \verb=${TEXMFDIST}= under KPATHSEA, and `\verb=~=' (home dir) +when such a value is unavailable. + + +\<<< + +%%% openoffice % +.4oo mkdir sxw-%%0.dir +.4os mkdir sxw-%%0.dir/Pictures +.4os mv %%1.4os sxw-%%0.dir/settings.xml +.4oo mv %%0.4oo sxw-%%0.dir/content.xml +% % +.4om mkdir sxw-%%0.dir/%%1 +.4om mv %%1.4om sxw-%%0.dir/%%1/content.xml +.4om cp sxw-%%0.dir/settings.xml sxw-%%0.dir/%%1/settings.xml +% % +.4of mkdir sxw-%%0.dir/META-INF +.4of mv %%1.4of sxw-%%0.dir/META-INF/manifest.xml +% % +.4ot mv %%1.4ot sxw-%%0.dir/meta.xml +.4oy mv %%1.4oy sxw-%%0.dir/styles.xml +% .4og cp --parents %%1 Pictures +% .4og mkdir -p sxw-%%0.dir/Pictures/%%1 +% .4og rmdir sxw-%%0.dir/Pictures/%%1 +.4og cp %%1 sxw-%%0.dir/Pictures/ +%-- sxw -- % +.4ox cd sxw-%%0.dir; zip -r %%0.sxw * ; cd .. +% % +.4ox mv sxw-%%0.dir/%%0.sxw . +% % +.4ox rm %%1.4ox +.4ox rm -r -f sxw-%%0.dir +%-- odt -- % +.4od cd sxw-%%0.dir; zip -r %%0.odt * ; cd .. +% % +.4od mv sxw-%%0.dir/%%0.odt . +% % +.4od rm %%1.4od +.4od rm -r -f sxw-%%0.dir +%%% end openoffice % + +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Win32} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<<< + +%%% openoffice % +.4oo if exist sxw-%%0.dir rmdir /Q /S sxw-%%0.dir +.4oo mkdir sxw-%%0.dir +.4os mkdir sxw-%%0.dir\Pictures +.4os move %%1.4os sxw-%%0.dir\settings.xml +.4oo move %%0.4oo sxw-%%0.dir\content.xml +% +.4om mkdir sxw-%%0.dir\%%1 +.4om move %%1.4om sxw-%%0.dir\%%1\content.xml +.4om copy sxw-%%0.dir\settings.xml sxw-%%0.dir\%%1\settings.xml +% +.4of mkdir sxw-%%0.dir\META-INF +.4of move %%1.4of sxw-%%0.dir\META-INF\manifest.xml +% +.4ot move %%1.4ot sxw-%%0.dir\meta.xml +.4oy move %%1.4oy sxw-%%0.dir\styles.xml +.4og copy %%1 sxw-%%0.dir\Pictures\ +.4od cd sxw-%%0.dir & zip -r -m %%0.zip * & cd .. +% .4od cd sxw-%%0.dir & 7za a -y %%0.zip * & cd .. +.4od move sxw-%%0.dir\%%0.zip %%0.odt +% +.4od del %%1.4od +.4od if exist sxw-%%0.dir rmdir /Q /S sxw-%%0.dir +%%% end openoffice + +>>> + +7za: \url{http://sourceforge.net/projects/sevenzip/} + +Windows uses ampersand character '\verb=&=' as command separator. +There are also conditional separators '\verb=&&=' (execute if previous +command successful) and '\verb=||=' (execute if previous command +failed). It was added in NT so it's not portable to win95(98). + + + +\<<< +%%% openoffice % +.4oo mkdir sxw-%%0.dir +.4os mkdir sxw-%%0.dir\Pictures +.4os move %%1.4os sxw-%%0.dir\settings.xml +.4oo move %%0.4oo sxw-%%0.dir\content.xml +% +.4om mkdir sxw-%%0.dir\%%1 +.4om move %%1.4om sxw-%%0.dir\%%1\content.xml +.4om copy sxw-%%0.dir\settings.xml sxw-%%0.dir\%%1\settings.xml +% +.4of mkdir sxw-%%0.dir\META-INF +.4of move %%1.4of sxw-%%0.dir\META-INF\manifest.xml +% +.4ot move %%1.4ot sxw-%%0.dir\meta.xml +.4oy move %%1.4oy sxw-%%0.dir\styles.xml +.4og copy %%1 sxw-%%0.dir\Pictures\%%1 +%-- sxw -- +.4ox cd sxw-%%0.dir\ +.4ox cd sxw-%%0.dir\META-INF +.4ox zip sxw-%%0.dir\%%0.sxw sxw-%%0.dir\META-INF\*.* +.4ox cd .. +.4ox cd sxw-%%0.dir\Pictures +.4ox zip sxw-%%0.dir\%%0.sxw sxw-%%0.dir\Pictures +.4ox cd .. +.4ox zip -j sxw-%%0.dir\%%0.sxw sxw-%%0.dir\* +.4ox cd .. +% +.4ox move sxw-%%0.dir\%%0.sxw . +% +.4ox del %%1.4ox +.4ox echo y | del sxw-%%0.dir\Pictures\*.* +.4ox rd sxw-%%0.dir\Pictures +.4ox echo y | del sxw-%%0.dir\META-INF\*.* +.4ox rd sxw-%%0.dir\META-INF +.4ox echo y | del sxw-%%0.dir\*.* +.4ox rd /S sxw-%%0.dir +%-- odt -- +.4od cd sxw-%%0.dir\ +.4od cd sxw-%%0.dir\META-INF +.4od zip sxw-%%0.dir\%%0.odt sxw-%%0.dir\META-INF\*.* +.4od cd .. +.4od cd sxw-%%0.dir\Pictures +.4od zip sxw-%%0.dir\%%0.odt sxw-%%0.dir\Pictures +.4od cd .. +.4od zip -j sxw-%%0.dir\%%0.odt sxw-%%0.dir\* +.4od cd .. +% +.4od move sxw-%%0.dir\%%0.odt . +% +.4od del %%1.4od +.4od echo y | del sxw-%%0.dir\Pictures\*.* +.4od rd sxw-%%0.dir\Pictures +.4od echo y | del sxw-%%0.dir\META-INF\*.* +.4od rd sxw-%%0.dir\META-INF +.4od echo y | del sxw-%%0.dir\*.* +.4od rd sxw-%%0.dir +% (1) if 'echo y | del ...' does not work try 'del /Q ...' instead +% (2) if rd fails to do the job, try replacing 'rd' with 'rd /s /q' +%%% end openoffice % + +>>> + + +t.m.trzeciak (Tolmek): + +\begin{verbatim} +'rd' won't remove non-empty directory. It should be: +rd /s /q sxw-test-tex4ht.dir +\end{verbatim} + + + +Contributed by Hans-Peter Kohler: + +\<<< +% +% Activate the following non-concurent sub script, if the previous +% one does not work. That is, interchange with +% and with . +% + +%%% openoffice % +.4os mkdir Pictures +.4os move %%1.4os settings.xml +.4oo move %%0.4oo content.xml +% +.4om mkdir %%1 +.4om move %%1.4om %%1\content.xml +.4om copy settings.xml %%1\settings.xml +% +.4of mkdir META-INF +.4of move %%1.4of META-INF\manifest.xml +% +.4ot move %%1.4ot meta.xml +.4oy move %%1.4oy styles.xml +.4og copy %%1 Pictures\%%1 +%-- sxw --- +.4ox zip -m %%0.sxw Pictures +.4ox zip -m %%0.sxw settings.xml +.4ox zip -m %%0.sxw content.xml +.4ox zip -m -r %%0.sxw %%0-m* +.4ox zip -m -r %%0.sxw META-INF +.4ox zip -m %%0.sxw meta.xml +.4ox zip -m %%0.sxw styles.xml +.4ox zip -m -r %%0.sxw Pictures/* +%-- odt --- +.4od zip -m %%0.odt Pictures +.4od zip -m %%0.odt settings.xml +.4od zip -m %%0.odt content.xml +.4od zip -m -r %%0.odt %%0-m* +.4od zip -m -r %%0.odt META-INF +.4od zip -m %%0.odt meta.xml +.4od zip -m %%0.odt styles.xml +.4od zip -m -r %%0.odt Pictures/* +%%% end openoffice % + +>>> + + + + + + + +Contributed: Andrzej Or\l{}owski-Skoczyk; Modified: Wilfried Hennings: + +\<<< + +%%% openoffice % +.4os mkdir sxw-%%0.dir +.4os mkdir Pictures +.4os move %%1.4os sxw-%%0.dir\settings.xml +.4os move %%0.4oo sxw-%%0.dir\content.xml +% +.4om mkdir %%1 +.4om move %%1.4om %%1\content.xml +.4om copy sxw-%%0.dir\settings.xml %%1\settings.xml +.4om zip %%0.zip %%1\* +.4om del /Q %%1\* +.4om rmdir %%1 +% +.4of mkdir META-INF +.4of move %%1.4of META-INF\manifest.xml +% +.4ot move %%1.4ot sxw-%%0.dir\meta.xml +.4oy move %%1.4oy sxw-%%0.dir\styles.xml +.4og copy %%1 Pictures\%%1 +%-- sxw -- +.4ox move %%0.zip %%0.sxw +.4ox zip %%0.sxw META-INF\*.* +.4ox zip %%0.sxw Pictures +.4ox zip -j %%0.sxw sxw-%%0.dir\* +% +.4ox del %%1.4ox +.4ox del /Q Pictures\*.* +.4ox rd Pictures +.4ox del /Q META-INF\*.* +.4ox rd META-INF +.4ox del /Q sxw-%%0.dir\*.* +.4ox rd /S sxw-%%0.dir +.4ox del /Q *.tmp +%-- odt -- +.4od move %%0.zip %%0.odt +.4od zip %%0.odt META-INF\*.* +.4od zip %%0.odt Pictures +.4od zip -j %%0.odt sxw-%%0.dir\* +% +.4od del %%1.4od +.4od del /Q Pictures\*.* +.4od rd Pictures +.4od del /Q META-INF\*.* +.4od rd META-INF +.4od del /Q sxw-%%0.dir\*.* +.4od rd sxw-%%0.dir +.4od del /Q *.tmp +% if rd fails to do the job, try replacing 'rd' with 'rd /s /q' +%%% end openoffice + +>>> + + +\<<< + +%%% openoffice % +.4os mkdir sxw-%%0.dir +.4os mkdir Pictures +.4os move %%1.4os sxw-%%0.dir\settings.xml +.4os move %%0.4oo sxw-%%0.dir\content.xml +% +.4om mkdir %%1 +.4om move %%1.4om %%1\content.xml +.4om copy sxw-%%0.dir\settings.xml %%1\settings.xml +% +.4of mkdir META-INF +.4of move %%1.4of META-INF\manifest.xml +% +.4ot move %%1.4ot sxw-%%0.dir\meta.xml +.4oy move %%1.4oy sxw-%%0.dir\styles.xml +.4og copy %%1 Pictures\%%1 +%-- sxw -- +.4ox zip %%0.sxw META-INF\*.* +.4ox zip %%0.sxw Pictures +.4ox zip -j %%0.sxw sxw-%%0.dir\* +% +.4ox del %%1.4ox +.4ox del /Q Pictures\*.* +.4ox rd Pictures +.4ox del /Q META-INF\*.* +.4ox rd META-INF +.4ox del /Q sxw-%%0.dir\*.* +.4ox rd /S sxw-%%0.dir +%-- odt -- +.4od zip %%0.odt META-INF\*.* +.4od zip %%0.odt Pictures +.4od zip -j %%0.odt sxw-%%0.dir\* +% +.4od del %%1.4od +.4od del /Q Pictures\*.* +.4od rd Pictures +.4od del /Q META-INF\*.* +.4od rd META-INF +.4od del /Q sxw-%%0.dir\*.* +.4od rd sxw-%%0.dir +% if rd fails to do the job, try replacing 'rd' with 'rd /s /q' +%%% end openoffice + +>>> + + + + + +Contributed by Andreas Gobel: + + +\<<< +% +% Platforms (e.g., cygwin) with cp and mv utilities of +% http://www.mingw.org/msys.shtml may use the following script. +% It is capable of moving pictures from subdirectories required, +% for instance, by \includegraphics{bitmaps/test.eps} +% + +%%% openoffice % +.4os mkdir Pictures +.4os mv %%1.4os settings.xml +.4oo mv %%0.4oo content.xml +% +.4om mkdir %%1 +.4om mv %%1.4om %%1\content.xml +.4om cp settings.xml %%1\settings.xml +% +.4of mkdir META-INF +.4of mv %%1.4of META-INF\manifest.xml +% +.4ot mv %%1.4ot meta.xml +.4oy mv %%1.4oy styles.xml +.4og cp %%1 Pictures\ +%-- sxw -- +.4ox zip %%0.sxw Pictures +.4ox zip %%0.sxw settings.xml +.4ox zip %%0.sxw content.xml +.4ox zip -r %%0.sxw %%0-m* +.4ox zip -r %%0.sxw META-INF +.4ox zip %%0.sxw meta.xml +.4ox zip %%0.sxw styles.xml +.4ox zip -r %%0.sxw Pictures/* +%-- odt -- +.4od zip %%0.odt Pictures +.4od zip %%0.odt settings.xml +.4od zip %%0.odt content.xml +.4od zip -r %%0.odt %%0-m* +.4od zip -r %%0.odt META-INF +.4od zip %%0.odt meta.xml +.4od zip %%0.odt styles.xml +.4od zip -r %%0.odt Pictures/* +% +%%% end openoffice % + +>>> + + + + + +%%%%%%%%%%%%% +\subsection{xtpipes} +%%%%%%%%%%%%% + + + + + + + +\<<< + +.4oo mv %%0.4oo %%0.tmp +.4oo java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%0.4oo %%0.tmp +.4om mv %%1.4om %%1.tmp +.4om java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.4om %%1.tmp + +>>> + + +\<<< + +.4oo mv %%0.4oo %%0.tmp +.4oo java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%0.4oo %%0.tmp +.4om mv %%1.4om %%1.tmp +.4om java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.4om %%1.tmp + +>>> + + +\<<< + +.4oo move %%0.4oo %%0.tmp +.4oo java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%0.4oo %%0.tmp +.4om move %%1.4om %%1.tmp +.4om java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.4om %%1.tmp + +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{JavaHelp} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s javahelp.4xt -o %%1.html %%1.tmp +.jhm echo "java -jar ${HOME}/javahelp.dir/jh2.0/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html" +.jhm echo "--- Warning --- Beware of leftover %%1*.html files from other compilations" +.jhm java -jar ${HOME}/javahelp.dir/jh2.0/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html + + +.java rm -r -f %%0-java.dir +.java mkdir %%0-java.dir +.java cp *.java %%0-java.dir/. +.java javac -classpath ${HOME}/javahelp.dir/jh2.0/javahelp/lib/jh.jar %%0-java.dir/%%1.java +.java chdir %%0-java.dir; jar -cf %%1.jar *.class ; chdir .. +.java mv %%0-java.dir/%%1.jar . +.java rm -r -f %%0-java.dir +.java zip -r %%1 %%0-doc %%1.jar + +>>> + + +\<<< + +.jhm java -jar ${HOME}/javahelp.dir/jh1.1.3/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html + + +.java rm -r -f %%0-java.dir +.java mkdir %%0-java.dir +.java cp *.java %%0-java.dir/. +.java javac -classpath ${HOME}/javahelp.dir/jh1.1.3/javahelp/lib/jh.jar %%0-java.dir/%%1.java +.java chdir %%0-java.dir; jar -cf %%1.jar *.class ; chdir .. +.java mv %%0-java.dir/%%1.jar . +.java rm -r -f %%0-java.dir +.java zip -r %%1 %%0-doc %%1.jar + +>>> + + +\begin{verbatim} +jhlatex jhprog "html,3,xml,xmldtd" + javac -classpath ${HOME}/javahelp.dir/jh2.0/javahelp/lib/jh.jar jhprog.java + +jh1latex jhprog "html,3,xml,xmldtd" +javac -classpath ${HOME}/javahelp.dir/jh1.1.3/javahelp/lib/jh.jar jhprog.java +\end{verbatim} + + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s javahelp.4xt -o %%1.html %%1.tmp +.jhm echo "java -jar ${HOME}/jh2.0/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html" +.jhm echo "--- Warning --- Beware of leftover %%1*.html files from other compilations" +.jhm java -jar ${HOME}/jh2.0/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html + + +.jhm java -jar ${HOME}/jh1.1.3/javahelp/bin/jhindexer.jar -db %%0-doc/%%1-jhs %%1*.html + +>>> + + +\<<< + +.html move %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s javahelp.4xt -o %%1.html %%1.tmp +.jhm java -jar c:\jh2.0\javahelp\bin\jhindexer.jar -db %%0-doc\%%1-jhs %%1*.html + + +.jhm java -jar c:\jh1.1.3\javahelp\bin\jhindexer.jar -db %%0-doc\%%1-jhs %%1*.html + +>>> + +%%%%%%%%%%%%%%%%%% +\section{Access to OS} +%%%%%%%%%%%%%%%%%% + +\<<< +% t4ht -d%%2 % +Mmv %%1 %%2%%3 +Ccp %%1 %%2%%3 +% t4ht -d%%2 -m%%1 % +Achmod %%1 %%2%%3 +% removed protection % +S* +>>> + + +\<<< +% t4ht -d%%2 % +Mmv %%1 %%2%%3 +Ccp %%1 %%2%%3 +% t4ht -e%%1 -d%%2 % +Ecp empty.png %%1%%2 +% t4ht -d%%2 -m%%1 % +Achmod %%1 %%2%%3 +% removed protection % +S* +>>> + +\<<< +% t4ht -d%%2 % +Mmove %%1 %%2%%3 +Ccopy %%1 %%2%%3 +% removed protection % +S* +>>> + +Note: the permission option `S' takes into account also trailing spaces. + + +%%%%%%%%%%%%%%%%%% +\section{Validation} +%%%%%%%%%%%%%%%%%% + + + +\<<< + + .html xmllint --noout --valid --html %%1.html + + + .xml xmllint --noout --valid %%1.xml + .html xmllint --noout --valid %%1.html + .css mycssparser %%1.css + +>>> + +% Xmake -f NSGMLS name=%%1 ext=%%2 + + +\<<< + + + + .xml xmllint --noout --valid %%1.xml + .html xmllint --noout --valid %%1.html + .css mycssparser %%1.css + +>>> + + +% Xif "%%2"=="html" nsgmls -wxml -wall -c catalog -s xml.dcl %%1.%%2 +% Xecho "*****************************************" + + + + +\def\.#1.{\csname #1\endcsname} + + +\<<< + +.html xmllint --noout --valid --html %%1.html +.xml xmllint --noout --valid %%1.xml + .hs java -cp @.HOME.texmf/tex4ht/bin/xv4ht.jar xv4ht %%1.hs @.HOME.texmf/tex4ht/base/solaris/xv4ht.cat + .jhm java -cp @.HOME.texmf/tex4ht/bin/xv4ht.jar xv4ht %%1.jhm @.HOME.texmf/tex4ht/base/solaris/xv4ht.cat +.css vcss %%1.css + + +.xml xmllint --noout --valid %%1.xml +.html xmllint --noout --valid %%1.html +.css vcss %%1.css + .4om echo "rxp -V -s -e %%1.4om" + .4om rxp -V -s -e %%1.4om + .4oo xmllint --relaxng ~/dtd.dir/openoffice/relaxng.dir/OpenDocument-schema-v1.0-os.rng -noout %%0.4oo +.4oo xmllint --relaxng ~/dtd.dir/openoffice/relaxng.dir/OpenDocument-schema-v1.1.rng -noout %%0.4oo + .4oy xmllint --relaxng ~/dtd.dir/openoffice/relaxng.dir/OpenDocument-schema-v1.0-os.rng -noout %%0-styles.4oy +.4oy xmllint --relaxng ~/dtd.dir/openoffice/relaxng.dir/OpenDocument-schema-v1.1.rng -noout %%0-styles.4oy +.4om perl -pe 's/math://g' %%1.4om | perl -pe 's/xmlns:[^=]*="[^"]*"//g' | perl -pe 's/xlink:[^=]*="[^"]*"//g' > tmp.tmp ; xmllint --valid --noout --catalogs tmp.tmp + + Xmake -f \HOME texmf/base/NSGMLS name=%%1 ext=%%2 %%3 +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Emacspeak} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.html %%1.tmp +.html xmllint --noout %%1.html + +>>> + + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.html %%1.tmp + +>>> + + +\<<< + +.html move %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.html %%1.tmp + +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{JSML} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< + +.jsml mv %%1.jsml %%1.tmp +.jsml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.jsml %%1.tmp +.jsml xmllint --noout %%1.jsml + +>>> + + +\<<< + +.jsml mv %%1.jsml %%1.tmp +.jsml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.jsml %%1.tmp + +>>> + + +\<<< + +.jsml move %%1.jsml %%1.tmp +.jsml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.jsml %%1.tmp + +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{DocBook} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< + +.xml cp %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.xml %%1.tmp +.xml xmllint --relaxng /home/4/gurari/dtd.dir/docbook.dir/docbook-5.0/rng/docbook.rng -noout -dropdtd -nonet %%0.xml + +>>> + + +\<<< + +.xml cp %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.xml %%1.tmp + +>>> + + +\<<< + +.xml copy %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -o %%1.xml %%1.tmp + +>>> + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{XHTML} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.html %%1.tmp +.html xmllint --noout %%1.html +.xht mv %%1.xht %%1.tmp +.xht java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xht %%1.tmp +.xht xmllint --noout %%1.xht +.xml mv %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xml %%1.tmp +.xml xmllint --noout %%1.xml + +>>> + + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.html %%1.tmp +.xht mv %%1.xht %%1.tmp +.xht java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xht %%1.tmp +.xml mv %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xml %%1.tmp + +>>> + + +\<<< + +.html move %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.html %%1.tmp +.xht move %%1.xht %%1.tmp +.xht java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xht %%1.tmp +.xml move %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtml.4xt -o %%1.xml %%1.tmp + +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{XHTML + MathML} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.html %%1.tmp +.html xmllint --noout %%1.html +.xht mv %%1.xht %%1.tmp +.xht java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xht %%1.tmp +.xht xmllint --noout %%1.xht +.xml mv %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xml %%1.tmp +.xml xmllint --noout %%1.xml + +>>> + + +\<<< + +.html mv %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.html %%1.tmp +.xht mv %%1.xht %%1.tmp +.xht java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xht %%1.tmp +.xml mv %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xml %%1.tmp + +>>> + + +\<<< + +.html move %%1.html %%1.tmp +.html java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.html %%1.tmp +.xht move %%1.xht %%1.tmp +.xht java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xht %%1.tmp +.xml move %%1.xml %%1.tmp +.xml java -classpath %%~/tex4ht/bin/tex4ht.jar xtpipes -i %%~/tex4ht/xtpipes/ -s xhtmml.4xt -o %%1.xml %%1.tmp + +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Copyright} +%%%%%%%%%%%%%%%%%% + +\input{tex4ht-cpright} + + +\<<< +% tex4ht.env-unix (@version), generated from @jobname.tex +% (can be used as ~/.tex4ht) +% Copyright 2009-2018 TeX Users Group +% Copyright @CopyYear.1997. Eitan M. Gurari +@>>> + +\<<< +% tex4ht.env (private) (@version), generated from @jobname.tex +% (can be used as ~/.tex4ht) +% Copyright 2009-2018 TeX Users Group +% Copyright @CopyYear.1997. Eitan M. Gurari +@>>> + +\<<< +% tex4ht.env-win32 (@version), generated from @jobname.tex +% Copyright 2009-2018 TeX Users Group +% Copyright @CopyYear.1997. Eitan M. Gurari +@>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\OutputCode\ +\OutputCodE\ +\OutputCodE\ + +\end{document} + +Date: Thu, 14 Nov 2013 13:08:12 -0800 +From: Richard Koch +To: Karl Berry + +[...] + +The syntax of tex4ht.env is certainly unclear. Eitan says at the top +that is ignored if it doesn't start a line, and then has a vague +comment about defaults. + +Looking at the section, everything here seems to call dvips to get a +ps, and then output a graphic, either png or svg. The section has + + G.png prefaced by a space + G.svg prefaced by no space + G. prefaced by no space + +I guessed this meant that output of either a png or svg was acceptable, and +the preferred method is G. + +So as a test, I left everything alone except the existing "G." section, which I +commented out. Then I added my own "G." section, containing the existing +G.png code, because it calls ghostscript rather than convert. + +Next there is a netpbm section. The Mac doesn't have netpbm, so this section +seems to do no harm and I left it alone. + +The final graphic section has tag and the programs inside seem to +all start with a dvi, skip the ps step, and get either a png or a gif. The +section has + + G.png with no initial space + G.gif with no initial space + G. with no initial space + +With little evidence, I took this to mean that conversion starting with a dvi +file can end with either a png or a gif, but that the preferred method is in G. +As before, I commented out the old "G." because it used convert, and replaced +it with a "G." section containing the contents of G.png because it uses +Gdvipng instead of convert. + +Then I tried a sample file. It worked fine, even when I disabled +convert. Earlier attempts to change tex4ht.env resulted in no png files +and lots "missing picture" icons in the html, but this time all those +png files were created and the html output looked fine on a browser. + +This evidence suggests, but does not prove, that Ghostscript itself +would be a satisfactory conversion method. The change seems to take more +time, but perhaps this is startup time and large projects wouldn't see +much difference. + +END OF TODAY'S HOBBY SESSION + +Dick diff --git a/support/TeX4ht/source/tex4ht-fonts-4hf.tex b/support/TeX4ht/source/tex4ht-fonts-4hf.tex new file mode 100644 index 0000000000..97c1a31bc5 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-fonts-4hf.tex @@ -0,0 +1,101665 @@ +% $Id: tex4ht-fonts-4hf.tex 724 2020-06-05 17:34:50Z karl $ +% htlatex tex4ht-fonts-4hf "xhtml,3" +% +% Copyright 2009-2020 TeX Users Group +% Copyright 1997-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + +\input tex4ht-dir + \def\MYdir{\HOME texmf/tex4ht/ht-fonts} + + \ifx \HCode\UnDef \usepackage[xhtml,3,sections+]{tex4ht} \fi + \usepackage{url} + \Configure{ProTex}{java,<<<>>>,title,list,`} + + +\def\AddFont#1#2{% + \Comment{}{}\OutputCode[4hf]\<#1\>% + \let\StartDir=\empty \def\EndDir{#2}\MakeDir + \ifx \WWWdir\Undef \else + \Needs{"cp #1.4hf \WWWdir /#2.4hf"}% + \Needs{"chmod 644 \WWWdir /#2.4hf"}% + \fi + \Needs{"mv #1.4hf \MYdir /#2.4hf"}% + } +\def\MakeDir{\relax + \expandafter \ifx \csname !\StartDir\endcsname\relax + \expandafter\let\csname !\StartDir\endcsname=\empty + \Needs{"mkdir -p \MYdir/\StartDir"}% + \ifx \WWWdir\Undef \else + \Needs{"mkdir -p \MYdir/\StartDir"}% + \Needs{"chmod 711 \WWWdir /StartDir"}% + \fi + \fi + \ifx \EndDir\empty \else + \expandafter\AppendDir \EndDir////*% + \expandafter\MakeDir + \fi +} +\def\AppendDir#1/#2/#3/*{% + \def\temp{#2}\ifx \temp\empty \let\EndDir=\empty + \else + \edef\StartDir{\ifx \StartDir\empty\else \StartDir/\fi + #1}\def\EndDir{#2/#3}% + \fi +} + +\input{common} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +% unicode.4hf files can't contain comments; they have the same copyright +% and license as the rest of tex4ht; see tex4ht-cpright.tex. +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{Translation Patterns for Encodings} +%%%%%%%%%%%%%%%%%%%% + +Early patterns take precedence over latter ones. + + + +%%%%%%%%%%%%%%%%%%% +\subsection{8859-1} +%%%%%%%%%%%%%%%%%%% + + +\Link[http://www.cestina.cz/cestina/kodovani/unicode/unic8859-1.txt]{}{}translation +codes\EndLink + + +\AtEndDocument{\AddFont{iso-8859-1}{iso8859/1/charset/uni/unicode}} + + +Keep the `hexa to decimal' at the start so its entries can be overcome +by 8-bit character encodings when such are provided. (In fact, when +browsers will comply with hexa decimal values this segment can be +eliminated.) + +\<<< +` +` +'¡' '' '\161\' '' `% INVERTED EXCLAMATION MARK `% +'¢' '' '\162\' '' `% CENT SIGN `% +'£' '' '\163\' '' `% POUND SIGN `% +'¤' '' '\164\' '' `% CURRENCY SIGN `% +'¥' '' '\165\' '' `% YEN SIGN `% +'¦' '' '\166\' '' `% BROKEN BAR `% +'§' '' '\167\' '' `% SECTION SIGN `% +'¨' '' '\168\' '' `% DIAERESIS `% +'©' '' '\169\' '' `% COPYRIGHT SIGN `% +'ª' '' '\170\' '' `% FEMININE ORDINAL INDICATOR `% +'«' '' '\171\' '' `% LEFT-POINTING DOUBLE ANGLE QUOTATION MARK `% +'¬' '' '\172\' '' `% NOT SIGN `% +'­' '' '\173\' '' `% SOFT HYPHEN `% +'®' '' '\174\' '' `% REGISTERED SIGN `% +'¯' '' '\175\' '' `% MACRON `% +'°' '' '\176\' '' `% DEGREE SIGN `% +'±' '' '\177\' '' `% PLUS-MINUS SIGN `% +'²' '' '\178\' '' `% SUPERSCRIPT TWO `% +'³' '' '\179\' '' `% SUPERSCRIPT THREE `% +'´' '' '\180\' '' `% ACUTE ACCENT `% +'µ' '' '\181\' '' `% MICRO SIGN `% +'¶' '' '\182\' '' `% PILCROW SIGN `% +'·' '' '\183\' '' `% MIDDLE DOT `% +'¸' '' '\184\' '' `% CEDILLA `% +'¹' '' '\185\' '' `% SUPERSCRIPT ONE `% +'º' '' '\186\' '' `% MASCULINE ORDINAL INDICATOR `% +'»' '' '\187\' '' `% RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK `% +'¼' '' '\188\' '' `% VULGAR FRACTION ONE QUARTER `% +'½' '' '\189\' '' `% VULGAR FRACTION ONE HALF `% +'¾' '' '\190\' '' `% VULGAR FRACTION THREE QUARTERS `% +'¿' '' '\191\' '' `% INVERTED QUESTION MARK `% +'À' '' '\192\' '' `% LATIN CAPITAL LETTER A WITH GRAVE `% +'Á' '' '\193\' '' `% LATIN CAPITAL LETTER A WITH ACUTE `% +'Â' '' '\194\' '' `% LATIN CAPITAL LETTER A WITH CIRCUMFLEX `% +'Ã' '' '\195\' '' `% LATIN CAPITAL LETTER A WITH TILDE `% +'Ä' '' '\196\' '' `% LATIN CAPITAL LETTER A WITH DIAERESIS `% +'Å' '' '\197\' '' `% LATIN CAPITAL LETTER A WITH RING ABOVE `% +'Æ' '' '\198\' '' `% LATIN CAPITAL LETTER AE `% +'Ç' '' '\199\' '' `% LATIN CAPITAL LETTER C WITH CEDILLA `% +'È' '' '\200\' '' `% LATIN CAPITAL LETTER E WITH GRAVE `% +'É' '' '\201\' '' `% LATIN CAPITAL LETTER E WITH ACUTE `% +'Ê' '' '\202\' '' `% LATIN CAPITAL LETTER E WITH CIRCUMFLEX `% +'Ë' '' '\203\' '' `% LATIN CAPITAL LETTER E WITH DIAERESIS `% +'Ì' '' '\204\' '' `% LATIN CAPITAL LETTER I WITH GRAVE `% +'Í' '' '\205\' '' `% LATIN CAPITAL LETTER I WITH ACUTE `% +'Î' '' '\206\' '' `% LATIN CAPITAL LETTER I WITH CIRCUMFLEX `% +'Ï' '' '\207\' '' `% LATIN CAPITAL LETTER I WITH DIAERESIS `% +'Ð' '' '\208\' '' `% LATIN CAPITAL LETTER ETH `% +'Ñ' '' '\209\' '' `% LATIN CAPITAL LETTER N WITH TILDE `% +'Ò' '' '\210\' '' `% LATIN CAPITAL LETTER O WITH GRAVE `% +'Ó' '' '\211\' '' `% LATIN CAPITAL LETTER O WITH ACUTE `% +'Ô' '' '\212\' '' `% LATIN CAPITAL LETTER O WITH CIRCUMFLEX `% +'Õ' '' '\213\' '' `% LATIN CAPITAL LETTER O WITH TILDE `% +'Ö' '' '\214\' '' `% LATIN CAPITAL LETTER O WITH DIAERESIS `% +'Ø' '' '\216\' '' `% LATIN CAPITAL LETTER O WITH STROKE `% +'Ù' '' '\217\' '' `% LATIN CAPITAL LETTER U WITH GRAVE `% +'Ú' '' '\218\' '' `% LATIN CAPITAL LETTER U WITH ACUTE `% +'Û' '' '\219\' '' `% LATIN CAPITAL LETTER U WITH CIRCUMFLEX `% +'Ü' '' '\220\' '' `% LATIN CAPITAL LETTER U WITH DIAERESIS `% +'Ÿ' '' '\221\' '' `% LATIN CAPITAL LETTER Y WITH ACUTE `% +'Þ' '' '\222\' '' `% LATIN CAPITAL LETTER THORN `% +'ß' '' '\223\' '' `% LATIN SMALL LETTER SHARP S `% +'à' '' '\224\' '' `% LATIN SMALL LETTER A WITH GRAVE `% +'á' '' '\225\' '' `% LATIN SMALL LETTER A WITH ACUTE `% +'â' '' '\226\' '' `% LATIN SMALL LETTER A WITH CIRCUMFLEX `% +'ã' '' '\227\' '' `% LATIN SMALL LETTER A WITH TILDE `% +'ä' '' '\228\' '' `% LATIN SMALL LETTER A WITH DIAERESIS `% +'å' '' '\229\' '' `% LATIN SMALL LETTER A WITH RING ABOVE `% +'æ' '' '\230\' '' `% LATIN SMALL LETTER AE `% +'ç' '' '\231\' '' `% LATIN SMALL LETTER C WITH CEDILLA `% +'è' '' '\232\' '' `% LATIN SMALL LETTER E WITH GRAVE `% +'é' '' '\233\' '' `% LATIN SMALL LETTER E WITH ACUTE `% +'ê' '' '\234\' '' `% LATIN SMALL LETTER E WITH CIRCUMFLEX `% +'ë' '' '\235\' '' `% LATIN SMALL LETTER E WITH DIAERESIS `% +'ì' '' '\236\' '' `% LATIN SMALL LETTER I WITH GRAVE `% +'í' '' '\237\' '' `% LATIN SMALL LETTER I WITH ACUTE `% +'î' '' '\238\' '' `% LATIN SMALL LETTER I WITH CIRCUMFLEX `% +'ï' '' '\239\' '' `% LATIN SMALL LETTER I WITH DIAERESIS `% +'ð' '' '\240\' '' `% LATIN SMALL LETTER ETH `% +'ñ' '' '\241\' '' `% LATIN SMALL LETTER N WITH TILDE `% +'ò' '' '\242\' '' `% LATIN SMALL LETTER O WITH GRAVE `% +'ó' '' '\243\' '' `% LATIN SMALL LETTER O WITH ACUTE `% +'ô' '' '\244\' '' `% LATIN SMALL LETTER O WITH CIRCUMFLEX `% +'õ' '' '\245\' '' `% LATIN SMALL LETTER O WITH TILDE `% +'ö' '' '\246\' '' `% LATIN SMALL LETTER O WITH DIAERESIS `% +'÷' '' '\247\' '' `% DIVISION SIGN `% +'ø' '' '\248\' '' `% LATIN SMALL LETTER O WITH STROKE `% +'ù' '' '\249\' '' `% LATIN SMALL LETTER U WITH GRAVE `% +'ú' '' '\250\' '' `% LATIN SMALL LETTER U WITH ACUTE `% +'û' '' '\251\' '' `% LATIN SMALL LETTER U WITH CIRCUMFLEX `% +'ü' '' '\252\' '' `% LATIN SMALL LETTER U WITH DIAERESIS `% +'ÿ' '' '\253\' '' `% LATIN SMALL LETTER Y WITH ACUTE `% +'þ' '' '\254\' '' `% LATIN SMALL LETTER THORN `% +` +` +` +` +>>> + + + + +\<<< + +>>> + +\<<< +` +` +` +`<'minus' into 'negative'`> +` +` +>>> + + +\<<< +` +` +` +` +>>> + + +\marginpar{Can dom be prevented from creating an xml declaration in + the output? The xslt part is there just to remove the undesirable + declaration.} + + +\<<< + + ` + ` + + +>>> + + + + + + + +\AtEndDocument{\OutputCodE\} +\ifdojava + \Needs{" + javac HtSpk.java -d \XTPIPES . +"} +\fi + +\<<< +package tex4ht; +/* HtSpk.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2006. Eitan M. Gurari +` */ +import org.w3c.dom.*; +public class HtSpk { + ` + ` + ` +} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Line Break Elements} +%%%%%%%%%%%%%%%%%% + +Avoid short versions \verb+
+. + +\<<< + +>>> + +%%%%%%%%%%%%%%%%%% +\section{Capital Letters in Math} +%%%%%%%%%%%%%%%%%% + +\<<< + +>>> + +% (translate(.,'abcdefghijklmnopqrstuvwxyz', +% 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') = . ) +% and + +\<<< + + + + + + + capital + + + + + + +>>> + +%%%%%%%%%%%%%%%%%% +\section{Superscripts and Subscripts} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Insert Sub-Levels Info} +%%%%%%%%%%%%% + + + + +\<<< + +` +>>> + + + +\<<< +public static void scriptLevel(Node dom) { + setScriptLevel(dom.getFirstChild(), ""); +} +private static void setScriptLevel(Node node, String prefix) { + String clName = null; + if (node.hasChildNodes()) { + if (node.hasAttributes()) { + Node cl = node.getAttributes().getNamedItem("class"); + if (cl != null) { + clName = cl.getNodeValue(); + if( clName.equals("mrow-sub") + || + clName.equals("mrow-super") + ){ + ` + } else if( + clName.equals("msqrt") + ){ prefix = ""; } + } } + ` + + +>>> + +\<<< + + ` + ` + ` + + +>>> + +\<<< + + + +>>> + + + +\begin{verbatim} + + + ......... + + + superscript + baseline + + +\end{verbatim} + + + + +%%%%%%%%%%%%% +\subsection{Squared} +%%%%%%%%%%%%% + +\<<< + + ` + ` + ` + + +>>> + +\<<< + + + + + +>>> + + +\<<< +not( + child::span[ (@class = 'mrow-base') ] + / child::span[ not( @title = 'speech-extra' ) ] + [ position() = last() ] + / self::* [ @class = 'mo-op' ] +) +>>> + + + + +\<<< + + + + + + + squared + + + + + + + + +>>> + + + + + + +\begin{verbatim} + + + cos + + + superscript + 2 + baseline + + +\end{verbatim} + + + + +\<<< + + + + + +>>> + + + +\<<< + + + + + + + cube + + + + + + + + +>>> + + +\<<< + + ` + ` + ` + + +>>> + + + + + +\<<< + + + + msub + + + + +>>> + + + +\<<< + + + + + + + + + + squared-super + + + squared + + + + + + + + +>>> + + +\<<< + + + + msub + + + + +>>> + + + +\<<< + + + + + + + + + + cube-super + + + cube + + + + + + + + +>>> + + + +%%%%%%%%%%%%% +\subsection{Numeric Subscripts (Rule 77)} +%%%%%%%%%%%%% + +\<<< + + ` + ` + ` + + +>>> + + + +\<<< + + + + + + + + + + + + +>>> + +Emacspeak doesn't read fluently numbers with commas. For instance `10,000' is +treated as `ten comma zero zero zero'. + +\begin{verbatim} + + + x + + + subscript + 1 + baseline + + +\end{verbatim} + +%%%%%%%%%%%%% +\subsection{Primes} +%%%%%%%%%%%%% + +\<<< + + +>>> + + + +\<<< + + +>>> + + + +\begin{verbatim} + + + x + + + superscript + + + double prime + + + baseline + + +\end{verbatim} + +\<<< + + ` + ` + ` + + +>>> + + +\<<< + + + + msub + + + + + + + + +>>> + + + +\begin{verbatim} + + + x + + + ...... + + + superscript + + + prime + + + + +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{Over and Under Limit Scripts} +%%%%%%%%%%%%%%%%%% + + +\<<< + +>>> + +\<<< + + + + + + + + + +>>> + + +\<<< + + + + + + + end scripts + + + end script + + + + + +>>> + + +\<<< + + + + + + + + + + + + + + +>>> + + + +\<<< + + + over + + + +>>> + + +\<<< + + + under + + + +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Fractions} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%% + + + +\<<< + +>>> + +\<<< + + + + ` + ` + ` + + + + + + +>>> + +%%%%%%%%%%%%% +\subsection{Continuos Fractions} +%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsubsection{Get Three Bottom Levels} +%%%%%%%%%%%%% + + + +\<<< + + ` + + + + + + + + + + + + +>>> + + +\<<< +( normalize-space( + child::span[ @class = 'mrow-numerator' ]) + and + normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + child::span[ @class = 'mrow-numerator' ]) +) +and +( normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + child::span[ @class = 'mrow-numerator' ]) + and + normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + child::span[ @class = 'mrow-numerator' ]) +) +>>> + + + +\<<< +( child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + preceding-sibling::*[1][@class = 'mo-bin'] +) +and +( normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + preceding-sibling::*[1] ) + = + normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + preceding-sibling::*[1] ) +) +>>> + + + +\<<< + + + + + + + + + +>>> + + +\<<< + + + + + + +>>> + + + + +%%%%%%%%%%%%% +\subsubsection{Prepend Existing one} +%%%%%%%%%%%%% + + + +\<<< + + ` + + + + + + + + + + + + +>>> + +\<<< +( + normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + preceding-sibling::*[1] ) + = + normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mfrac' ] / + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'continuous-mfrac' ] / + preceding-sibling::*[1] ) +) +>>> + + +\<<< + + + + + + +>>> + +%%%%%%%%%%%%% +\subsection{Word Fractions} +%%%%%%%%%%%%% + + + +\<<< + + `
+ + + + + + + word-frac + + ` + ` + + + + + + +>>> + + +\<<< + + + + + + +>>> + + +\<<< + + one + two + three + four + five + six + seven + eight + nine + +>>> + + +\<<< + + half + third + fourth + fifth + sixth + seventh + eighth + nineth + +s + +>>> + + +%%%%%%%%%%%%% +\subsection{Prefix `and' Connectors} +%%%%%%%%%%%%% + +\<<< + + and + + + + +>>> + +%%%%%%%%%%%%% +\subsection{Hyper Complex Fractions} +%%%%%%%%%%%%% + + +\<<< + +` +>>> + + + +\<<< +public static void fracLevel(Node dom) { + setFracLevel(dom.getFirstChild(), 0); +} +private static int setFracLevel(Node node, int cont) { + int level = 0; + String clName = null; + if (node.hasChildNodes()) { + if (node.hasAttributes()) { + Node cl = node.getAttributes().getNamedItem("class"); + if (cl != null) { clName = cl.getNodeValue(); } + } + ` + if( clName != null ){ + ` + ` + if (clName.equals("mfrac")) { + if( cont > 0 ){ + ` + } else if( level > 0 ){ + ` + } + level++; + } } } + return level; +} +>>> + + +\<<< +NodeList children = node.getChildNodes(); +int max = 0; +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + int d = setFracLevel(child, + (clName != null) && + clName.equals("continuous-mfrac")? + 2 : + ((clName != null) && + clName.equals("continuous-mfrac")? + (cont-1) : cont) + ); + if (d > max) { max = d; } +} } +level += max; +>>> + + + + +The `cont' parameter is for determining whether the parent and the +grandparent are frac elements marked as continuous. + + +\<<< +if( clName.equals("msub") || clName.equals("msup") || + clName.equals("msubsup") +) { + return 0; +} +>>> + + +\<<< +if( clName.equals("continuous-mfrac") ) { + if( cont > 0 ){ + ` + } else { ` } `%root of continuous chain`% + return 0; +} +>>> + + + +\<<< +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() + .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if (clsName.equals("begin-end")) { + child = child.getFirstChild(); + String s = child.getNodeValue(); + String bg = "", ov = "", en = ""; + for(int j=0; j>> + + +\<<< +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() + .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if ( clsName.equals("begin-end")) { + child = child.getFirstChild(); + String s = child.getNodeValue(); + s = s.replaceFirst("begin", "begin continued"); + s = s.replaceFirst("end", "end continued"); + ((org.w3c.dom.Text) child).setData(s); +} } } } +>>> + +\<<< +Node child = node.getLastChild(); +if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if ( clsName.equals("begin-end")) { + node.removeChild( child ); +} } } +>>> + + + + +%%%%%%%%%%%%% +\subsection{Set Levels on Roots} +%%%%%%%%%%%%% + +\<<< + +` +>>> + +\<<< +public static void rootLevel(Node dom) { + setRootLevel(dom.getFirstChild()); +} +private static int setRootLevel( Node node ){ + int level = 0; + String clName = null; + if (node.hasChildNodes()) { + if (node.hasAttributes()) { + Node cl = node.getAttributes().getNamedItem("class"); + if (cl != null) { clName = cl.getNodeValue(); } + } + ` + if( clName != null ){ + ` + if( clName.equals("msqrt") || clName.equals("root") ){ + ` + level++; + } } } + return level; +} +>>> + + +\<<< +NodeList children = node.getChildNodes(); +int max = 0; +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + int d = setRootLevel(child); + if( d > max ){ max = d; } +} } +level += max; +>>> + + +\<<< +if( clName.equals("msub") || clName.equals("msup") || + clName.equals("msubsup") +) { + return 0; +} +>>> + + + + +\<<< +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() + .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if( clsName.equals("begin-root") + || clsName.equals("mid-root") + || clsName.equals("end-root") + ){ + child = child.getFirstChild(); + String s = child.getNodeValue(); + String nested = ""; + for(int j=0; j>> + + + +%%%%%%%%%%%%%%%%%% +\section{Odd Ends} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Remove Empty Array Cells} +%%%%%%%%%%%%% + +Empty array celles at end of rows can make it more difficult to +detect deletable baseline indicators. + + + +\<<< + +>>> + +\<<< + + +>>> + + + + + +%%%%%%%%%%%%% +\subsection{'minus' into 'negative'} +%%%%%%%%%%%%% + + + +\<'minus' into 'negative'\><<< + + + + mo-unary + + + + +>>> + + +\<'minus' into 'negative'\><<< + + + + + +>>> + +\begin{verbatim} + subscript + + + minus + + +2 +\end{verbatim} + + + + +\<'minus' into 'negative'\><<< + + + + negative + + + + + + +>>> + +%%%%%%%%%%%%% +\subsection{Short-Cuts for Modifiers} +%%%%%%%%%%%%% + +\<<< + +>>> + + + + +\<<< + +>>> + + + + + + + + + +\<<< + + + + + + + + + + + under bar + + + + + + + + +>>> + + + + + + + + +\<<< + + + + + + + + + + + over bar + + + + + + + + +>>> + + + +\begin{verbatim} + + modified above + + + bold + + capital + Z + + + + with bar + +\end{verbatim} + + + +\begin{verbatim} + + modified under + + x + + with bar + +\end{verbatim} + +%%%%%%%%%%%%% +\subsection{Font Decorations} +%%%%%%%%%%%%% + + + + + +\<<< + +>>> + + + +\<<< + + + + + + + + + + bold + + + + + + begin bold + + + + end bold + + + + + +>>> + + +%%%%%%%%%%%%% +\section{Eliminate Inline Math Narrative} +%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Simple Sub-Sup (Core Content of Length One)} +%%%%%%%%%%%%% + + + + +\<<< + + + + + + + + + semi-math + + + + ` + + + + + + +>>> + + +\<<< +child::*[ not(@title) or (@title != 'speech-extra') ] +>>> + + +\<<< + + + + + + + + semi-math + + +`% + + baseline + +`% + + + + + + +>>> + + +\begin{verbatim} + + + + C + + + i + + + +\end{verbatim} + + + + +%%%%%%%%%%%%% +\subsection{Unary Op on Core Content of Length One} +%%%%%%%%%%%%% + +The `mo-unary' is established in the first pass over inline-math, +so we need to wait for the second pass with the following. + + +\<<< + + + + + + + + + semi-math + + + + + + + + + +>>> + + + +\begin{verbatim} + + begin math + + + negative + + + + bold + + + + capital + + A + + + end math + +\end{verbatim} + +%%%%%%%%%%%%%%%%%% +\section{Empty Elements} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Set for W3} +%%%%%%%%%%%%% + + + +\<<< + + ` + ` + ` + + +>>> + +\<<< + + + + + ` + + + +>>> + +Note: Java 5 complains when comments contain just white spaced. + + +\<<< +.>>> + +%%%%%%%%%%%%% +\subsection{Remove Split Arrays} +%%%%%%%%%%%%% + +\<<< + +>>> + + +\<<< + + + + + + + + + + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Spaces around Math Identifiers} +%%%%%%%%%%%%%%%%%% + +The following is to cause a pause. For instance, between the +variables in \verb+ij+. + + +\<<< + + + + + + + + +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Prose} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Tables} +%%%%%%%%%%%%% + +\<<< + +>>> + + +\<<< + + + +
+ +
+ +
+
+>>> + + + + + +%%%%%%%%%%%%% +\subsection{New Theorems} +%%%%%%%%%%%%% + +\<<< + +>>> + + +\<<< + + + +
+ +
+
+
+>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Shared} +%%%%%%%%%%%%%%%%%% + + + +\<<< + + +>>> + +\<<< + + + + + + +]]> +>>> + + +\<<< + + + + x + + + + + + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{To Do} +%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item +Left subscripts and tensors. +\end{itemize} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifdojava +\AtEndDocument{\Needs{% + "pushd \XTPIPES || exit 1 + ; + jar cf tex4ht.jar * + ; + popd + ; + mkdir -p \TEXMFTEXivBIN || exit 1 + ; + mv \XTPIPES tex4ht.jar \TEXMFTEXivBIN . +"}} +\fi + + + +\end{document} + + + + + diff --git a/support/TeX4ht/source/tex4ht-html-speech.tex b/support/TeX4ht/source/tex4ht-html-speech.tex new file mode 100644 index 0000000000..a31f00c91e --- /dev/null +++ b/support/TeX4ht/source/tex4ht-html-speech.tex @@ -0,0 +1,25036 @@ +% $Id: tex4ht-html-speech.tex 184 2016-07-04 17:35:09Z karl $ +% Compile 3 times: latex tex4ht-html-speech +% or xhlatex tex4ht-html-speech "html,3,sections+" +% (html4*.4ht must be up to date.) +% +% Copyright 2009-2016 TeX Users Group +% Copyright 2006-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{html-speech,html-speech-math,emacspeak} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\OPTIONS{xhtml,3,sections+} + \def\PREAMBLE{\usepackage{url}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +\def\.{\string\a:mathml:\space} + + +\TocAt{section,subsection,likesubsection} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Needs{"ls -l tex4ht-*.tex > ls-links.log"} +\openin15=ls-links.log +\ifeof15 \else \closein15 +\bgroup + \catcode`\-=13 + \def-#1tex4ht-{\bgroup \catcode`\-=12 + \def-##1.tex{\egroup + [\Link[tex4ht\string-##1.html]{}{}##1\EndLink]} + -} + \input ls\string-links.log +\egroup +\fi + + +%%%%%%%%%%%%%%%%%% +\section{General} +%%%%%%%%%%%%%%%%%% + + + + +\begin{center} +\tt htlatex file "html,emspk" " -cemspkhtf -s4css -s4es" "-cemspk" +\end{center} + +%%%%%%%%%%%%%%%%%% +\section{Root} +%%%%%%%%%%%%%%%%%% + + +\<<< +% html-speech.4ht (|version), generated from |jobname.tex +% Copyright 2009-2016 TeX Users Group +% Copyright |CopyYear.1997. Eitan M. Gurari +| +>>> + +\<<< +% html-speech-math.4ht (|version), generated from |jobname.tex +% Copyright 2009-2015 TeX Users Group +% Copyright |CopyYear.2006. Eitan M. Gurari +| +>>> + +\<<< +% emacspeak.4ht (|version), generated from |jobname.tex +% Copyright 2009-2016 TeX Users Group +% Copyright |CopyYear.2006. Eitan M. Gurari +| +>>> + + +\<<< +!*?: >>> +\<<< + cw:>>> + + +\<<< +\xdef\:cursec{|
}% +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Preamble} +%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{VERSION} + {\HCode{ ?>\Hnewline + \Hnewline}} +>>> + +\<<< +encoding="\expandafter\ifx \csname a:charset\endcsname\relax + \expandafter\:encoding\A:charset + \else \expandafter\:encoding\a:charset\fi" +>>> + +\<<< +\:CheckOption{math-} \if:Option + \edef\Preamble{\Preamble,mathml-} +\else + \Log:Note{for sources failing to produce + clean math code, try the command line option `math-'}% +\fi +>>> + + +\<<< +\def\CssSpeech#1{\Css{@media speech{#1}}} +\def\add:description#1#2{\Hnewline #2\Hnewline} +\def\add:vdescription#1#2{
\Hnewline #2\Hnewline
} +>>> + + +The attribute `{\tt title="speech-extra"}' is useful when there is +a need to check just the content provided to the translation. + + + +\<<< +\Css{.begin-math, .end-math {color:red;}} +\Css{span.semi-math {color:red;font-style:italic;}} +\Css{span[title="ch-verbose"] {color:red;}} +\Css{.added-description {color:green;}} +\Css{.begin-end {color:green;}} +\Css{.begin-root, .end-root, .mid-root {color:green;}} +\Css{.begin-stack, .end-stack, .mid-stack {color:green;}} +\Css{.capital-description {color:green;}} +>>> + + +\<<< +\CssSpeech{.begin-end {stress:4; richness:4;}} +\CssSpeech{.begin-math, .end-math {stress:3; richness:5;}} +\CssSpeech{.semi-math {pitch: 8; pitch-range: 7; volume: 5;}} +\CssSpeech{.begin-root, .end-root, .mid-root {stress:3;}} +\CssSpeech{.begin-stack, .end-stack, .mid-stack {stress:3;}} +\CssSpeech{.char-del {stress:4;}} +\CssSpeech{.capital-description {stress:4;}} +\CssSpeech{body {speak-punctuation: none}} +>>> + +% + +\<<< +% +>>> + + + + +\<<< +\edef\Preamble{\Preamble,xhtml} +>>> + +\<<< +\Configure{DOCTYPE} + {\HCode{% \Hnewline + + \Hnewline}} +\def\xhtml:DOCTYPE{PUBLIC + "-//W3C//DTD XHTML 1.0 Transitional//|"\Hnewline + \space\space "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"} +>>> + +The DOCTYPE is not provided since we don't know how to hide it from +Java SAX in stpipes. + + +%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%% + + +\<<< +| +| +| +>>> + + + +\<<< +| +| +| +>>> + + +\<<< +| +| +| +>>> + +\<<< +| +>>> + +\<<< +| +>>> + +\<<< +| +| +>>> + +\<<< +| +| +>>> + +\<<< +| +| +| +>>> + +\<<< +| +>>> + +\<<< +| +| +| +| +| +| +| +| +>>> + + +\<<< +| +| +| +| +>>> + +\<<< +| +| +| +| +>>> + +\<<< +| +| +| +| +| +>>> + +\<<< +| +| |%should appear before TocAt|% +>>> + +\<<< +| +>>> + +\<<< +| +>>> + +\<<< +| +>>> + + +\<<< +| +| +| +>>> + +\<<< +| +| +>>> + + +\<<< +| +>>> + + +\<<< +| +>>> + + +\<<< +| +| +>>> + + + +\<<< +| +| +>>> + +\<<< +| +| +>>> + +\<<< +| +| +>>> + +\<<< +| +>>> + +\<<< +| +>>> + +\<<< +| +>>> + +\<<< +| +>>> + + +\<<< +| +| +>>> + + + +\<<< +| +>>> + +%%%%%%%%%%%%%%%%%% +\section{HTML Head} +%%%%%%%%%%%%%%%%%% + +\<<< +\let\Link\M:Link \let\M:Link\:UnDef +\let\EndLink\M:EndLink \let\M:EndLink\:UnDef +>>> + + + + +\<<< +\Configure{@HEAD}{} +| +\:CheckOption{css-in} \if:Option + \Log:Note{the inline CSS code is extracted from the input of the + previous compilation, so an extra compilation might be needed} + \Configure{@HEAD}{|} +\else + \Log:Note{for inline CSS code, use the command line option `css-in'} + \Configure{@HEAD}{\HCode{\Hnewline}} +\fi +>>> + +\<<< +\:CheckOption{xht} \if:Option + \:CheckOption{xhtml}\if:Option \else \:CheckOption{xml}\fi +\fi +| +\def\:gobbleM#1->{} +| +\immediate\write-1{TeX4ht package options: + \expandafter\:gobbleM\meaning\Preamble} +\Configure{@HEAD} + {\HCode{\Hnewline}} +\:CheckOption{timestamp}\if:Option +\Configure{@HEAD} + {\HCode{\Hnewline}} +\else + \Log:Note{To print a timestamp, use the command line option timestamp} +\fi +>>> + +\<<< +\Log:Note{for file extension name xht, use the command line option `xht'}% +\Configure{@HEAD}{\HCode{\Hnewline}} +>>> + +\<<< +\Configure{@HEAD}{\HCode{\Hnewline}} +\Configure{@HEAD}{\HCode{\Hnewline + \Hnewline}} +>>> + + +%%%%%%%%%%%%%%%%%% +\part{Prose} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%% +\section{Bibliography and Equation References} +%%%%%%%%%%%%%%%%%% + + + +\<<< +\def\@cite#1#2{% + \HCode{\add:description{added-description}{\a:speak:citation}}% + {#1\if@tempswa , #2\fi}} +\def\@biblabel#1{% + \HCode{\add:description{added-description}{\a:speak:bib}}% + #1} +>>> + +\<<< +\NewConfigure{speak:citation}{1} +\Configure{speak:citation}{citation } +\NewConfigure{speak:bib}{1} +\Configure{speak:bib}{Bibliography entry } +>>> + + + + +\<<< +\Configure{eqref} + {\bgroup\let\tagform@\empty + \HCode{ + \add:description{added-description}{\a:speak:eqref}}} + {\HCode{}\egroup} +>>> + +\<<< +\NewConfigure{speak:eqref}{1} +\Configure{speak:eqref}{ equation } +>>> + + +\<<< +\CssSpeech{@media speech{.cite, .biblabel + {pitch: 5 ; pitch-range: 6; stress: 6; richness: 5;}}} +>>> + + +\<<< +\CssSpeech{@media speech{.eqref + {pitch: 5 ; pitch-range: 6; stress: 6; richness: 5;}}} +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Cross Links} +%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{crosslinks}{ }{ }{next}{previous}{previous-tail}{front}{tail}{up} +\Configure{crosslinks+} + {\IgnorePar\EndP\HCode{|% + }\par\ShowPar} + {\IgnorePar\EndP\HCode{|% + }\par\ShowPar} +\:CheckOption{next} \if:Option + \Configure{next+} + {\ShowPar\par\noindent \HCode{ + \add:description{added-description}{\c:speak:crosslinks}}} + {\HCode{}} +\fi +>>> + + +\<<< +\NewConfigure{speak:crosslinks}{3} +\Configure{speak:crosslinks} + {Navigation links} + {End navigation links} + {Navigation link} +>>> + +\<<< +\CssSpeech{@media speech{.crosslinks a, .next a + { pitch: 9; pitch-range: 4; volume: 5; + stress:1; pause-after: 1000ms }}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Front Matter} +%%%%%%%%%%%%%%%%%% + + +\<<< +\CssSpeech{ + .titleHead {pitch: 3; + pitch-range: 4; + richness: 8; + stress: 3; + volume: |}} +\CssSpeech{ .author, .date {pitch: 5; + pitch-range: 4; + richness: 7; + stress: 1; + volume: |}} +\CssSpeech{ .date {speak-date: dmy}} +\CssSpeech{ div.abstract { pitch: 4; + pitch-range: 3; + speed: x-fast; + volume: |}} +>>> + + +\<<< +\ConfigureEnv{abstract} + {\IgnorePar\EndP + \HCode{
}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP\HCode{
}} + {}{} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Sections} +%%%%%%%%%%%%%%%%%% + + +\<<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{\add:description{added-description} + {\a:speak:section}}\@seccntformat{section}% + \HCode{}\fi } +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{\add:description{added-description} + {\a:speak:subsection}}\@seccntformat{subsection}% + \HCode{}\fi } +| +>>> + + + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{\add:description{added-description} + {\a:speak:section}}\@ifundefined{sectionname}{}{% + \ignorespaces\sectionname\space}% + \@seccntformat{section}% + \HCode{}\fi } +| +>>> + + + +\<<< +\NewConfigure{speak:section}{1} +\Configure{speak:section}{section} +\NewConfigure{speak:subsection}{1} +\Configure{speak:subsection}{subsection} +>>> + + +\<<< +\CssSpeech{ + .sectionHead {pitch: 4; + pitch-range: 7: + richness: 9; + speed: slow; + volume: |;}} +\CssSpeech{ .subsectionHead {pitch: 5; + pitch-range: 7; + richness: 9; + speed: slow; + volume: |;}} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Tables} +%%%%%%%%%%%%%%%%%% + + + +\<<< +| +>>> + +\<<< +\ConfigureEnv{tabular} + {|% + \IgnorePar|\EndP + } + {\ShowPar + |% + |% + }{}{} +>>> + +\<<< +\Configure{noalign}% + {\f:tabular\d:tabular \HCode{}} + {\HCode{}\pend:def\TableNo{0}\c:tabular\e:tabular}% +>>> + + +\<<< +\Configure{noalign}{}{}% +>>> + + +\<<< +\ifvmode\else\HCode{}\fi +>>> + + + +\<<< +\Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
}|} + {|\HCode{
}} + {\HCode{
}% + |} + {|\HCode{
}} + {\HCode{
}% + |\HCode{
}\SaveEndP + \par \ShowPar} + {\IgnorePar \EndP \ifvmode \IgnorePar \fi \EndP + \HCode{
}|% + \HCode{
\Hnewline}\RecallEndP } +>>> + + +\<<< +\HCode{\add:vdescription{begin-end}{begin table}}% +>>> + +\<<< +\HCode{|\add:vdescription{begin-end}{end table}}% +>>> + +\<<< +\HCode{\add:vdescription{begin-end}{| row}}% +>>> + + +\<<< +\HCode{% + \add:vdescription{added-description}{% + \ifnum \HMultispan>1 | cell, spans + \HMultispan \space columns + \else + \ifnum \HCol>1 | cell \fi + \fi +}}% +>>> + +\<<< +>>> + + + + + + +\<<< +\ShowPar +>>> + +\<<< +\ShowPar \par{\HCondtrue\noindent}% +>>> + +%%%%%%%%%%%%% +\subsection{Numbering} +%%%%%%%%%%%%% + + +\<<< +\HAssign\HRow=0 +>>> + +\<<< +\PushStack\Table:Stck\TableNo +\gHAdvance\Next:TableNo by 1 +\global\let\TableNo=\Next:TableNo +>>> + +\<<< +\PopStack\Table:Stck\TableNo +>>> + +\<<< +\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax +>>> + +\<<< +\PopStack\Row:Stck\HRow +>>> + +\<<< +\PushStack\Col:Stck\Prev:Col +>>> + +\<<< +\PopStack\Col:Stck\Prev:Col +>>> +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Matrices} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Aligned} +%%%%%%%%%%%%% + + + +\<<< +\Configure{aligned} + {|% + |% + \HCode{
}% + \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}} + {\Tag{aligned-\TableNo}{\hrow:s}% + \HCode{|% + \add:vdescription{end-array}{\b:speak:aligned}}% + \ifvmode \IgnorePar\fi \Tg
% + |% + |} + {\HCode{
}\c:speak:aligned}% + {\xdef\hrow:s{\HRow}\HCode{
}}% + {\HCode{
}% + \e:speak:aligned \HCode{
}} + {\HCode{
}\f:speak:aligned + \HCode{
\Hnewline}} +>>> + +\<<< +\NewConfigure{speak:aligned}{6} +\Configure{speak:aligned} + {begin + \ifTag{aligned-\TableNo}{\LikeRef{aligned-\TableNo}}{} + aligned equations} + {end equations} + {|} + {|} + {|} + {|} +>>> + + + +\<<< +\Configure{alignedat} + {|% + |% + \HCode{
}% + \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}} + {\Tag{aligned-\TableNo}{\hrow:s}% + \HCode{|% + \add:vdescription{end-array}{\b:speak:aligned}}% + \ifvmode \IgnorePar\fi \Tg
% + |% + |} + {\HCode{
}\c:speak:aligned}% + {\xdef\hrow:s{\HRow}\HCode{
}}% + {\HCode{
}% + \e:speak:aligned \HCode{
}} + {\HCode{
}\f:speak:aligned + \HCode{
\Hnewline}} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{Cases} +%%%%%%%%%%%%%%%%% + +\<<< +\Configure{cases} + {}{} {\Tg}{\Tg} + {\Tg}{\Tg} + {\Tg}{\Tg} +>>> + + +\<<< +\ConfigureEnv{cases} + {|% + |% + \HCode{
}% + \bgroup + |% + |% + |% + } + {\egroup\HCode{
}% + |% + |} + {}{} +>>> + + + + + + +\<<< +\Configure{array} + {\HCode{
% + \add:vdescription{begin-array}{begin + \ifTag{cases-\TableNo}{\LikeRef{cases-\TableNo}}{} cases}}} % + {\Tag{cases-\TableNo}{\HRow}% + \HCode{|% + \add:vdescription{end-array}{end cases}}% + \ifvmode \IgnorePar\fi \Tg
} + {\HCode{
% + \add:vdescription{begin-end}{Case \HRow}}} + {\HCode{
}}% + {\HCode{
}% + \bgroup + |% + |% + } + {\egroup \HCode{
\Hnewline}} +>>> + + + + + + +\<<< +\Configure{left} + {} + {\bgroup} +\Configure{right} + {\egroup} + {} +>>> + + +\<<< +\let\sv:a:left=\a:left +\let\sv:b:left=\b:left +\let\sv:a:right=\a:right +\let\sv:b:right=\b:right +>>> + + +\<<< +\let\a:left=\sv:a:left +\let\b:left=\sv:b:left +\let\a:right=\sv:a:right +\let\b:right=\sv:b:right +>>> + + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{matrix} +%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{matrix} + {|% + |% + \HCode{
}% + \HCode{\add:vdescription{begin-array}{\a:speak:array}}} + {\Tag{array-\TableNo}{\hrow:s}% + \HCode{|% + \add:vdescription{end-array}{\b:speak:array}}% + \ifvmode \IgnorePar\fi \Tg
% + |% + |} + {\HCode{
}\c:speak:array}% + {\xdef\hrow:s{\HRow}\HCode{
}}% + {\HCode{
}% + \e:speak:array\HCode{
}} + {\HCode{
}\f:speak:array + \HCode{
\Hnewline}} +>>> + +\<<< +\HCode{}% +>>> + + + +The grouping below is handle the case that the matrix is a base of an exponent. + + +\<<< +\Configure{pmatrix} + {\bgroup\Tg
} + {\Tg
\egroup} +>>> + + + + +\<<< +\NewConfigure{speak:array}{6} +\Configure{speak:array} + {begin array with + \ifTag{array-\TableNo}{\LikeRef{array-\TableNo}}{} + rows} + {end array} + {|} + {|} + {|} + {|} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Math} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +| +>>> +\
<<< +\Configure{eqalign} + {\:xhtml{\IgnorePar\EndP}\HCode + {
}} + {\HCode{
}} + {\HCode{}}{\IgnorePar\HCode{}} + {\HCode{}} + {\HCode{}} +\def\:eqalign:{\Configure{noalign} + {\HCode{}}% + {\HCode{}}} +\Css{td.eqalign3 { text-align:right; margin-left:10em;}} +\Css{.eqalign td { white-space: nowrap; }} +\Css{div.eqalign {text-align:center;}} +>>> + + + + + +\<<< +\Configure{eqalignno} + {\:xhtml{\IgnorePar\EndP}\HCode{
}} + {\HCode{
}} + {\HCode{}}{\IgnorePar\HCode{}} + {\HCode{\ifnum \HCol=3 \fi + }} + {\HCode{}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{}}% + {\HCode{}}} +\Css{td.eqalignno3, td.leqalignno3 + { text-align:right; margin-left:10em;}} +\Css{.leqalignno td, .eqalignno td + { white-space: nowrap; }} +\Css{.leqalignno td.noalign, .eqalignno td.noalign + { width:5\%; white-space: normal; }} +\Css{table.leqalignno, table.eqalignno {width:100\%;}} +>>> + +\<<< +\Configure{leqalignno} + {\:xhtml{\IgnorePar\EndP}\HCode{
}} + {\HCode{
}} + {\HCode{}}{\IgnorePar\HCode{}} + {\HCode{\ifnum \HCol=3 \fi + }} + {\HCode{}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{}}% + {\HCode{}}} +>>> + + + + +\<<< +\Configure{array} + {|% + |% + \HCode{
}% + \HCode{\add:vdescription{begin-array}{\a:speak:array}}} + {\Tag{array-\TableNo}{\hrow:s}% + \HCode{|% + \add:vdescription{end-array}{\b:speak:array}}% + \ifvmode \IgnorePar\fi |\Tg
% + |% + |} + {\HCode{
}\c:speak:array}% + {\xdef\hrow:s{\HRow}\HCode{
}}% + {\HCode{
}% + \e:speak:array\HCode{
}} + {\HCode{
}\f:speak:array + \HCode{
\Hnewline}} +\ConfigureEnv{array} + {\bgroup\Configure{$}{}{}{}} + {\egroup} + {}{} +>>> + + + + +\<<< +\Css{.begin-array, .end-array {color:green;}} +>>> + +\<<< +\CssSpeech{.begin-array, .end-array {stress:4; richness:4;}} +>>> + + +\<<< +\HCode{\add:vdescription{begin-end}{Row \HRow}}% +>>> + + + + +\<<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + +\<<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + + + + + + +\<<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{}% +>>> + + + + + +\<<< +\def\:MM{m} +\Configure{HBorder} + {} + {|} + {} + {} + {} + {|} + {} + {} + {
} + {} +>>> + +\<<< +\def\:MM{\ifmathml m\fi} +\Configure{HBorder} + {<\:MM tr\Hnewline + \ifmathml \expandafterclass\else class\fi="hline">} + {\ifmathml|\else + \fi} + {} + {<\:MM tr\Hnewline + \ifmathml \expandafterclass\else class\fi ="cline">} + {<\:MM td>} + {\ifmathml|\else + \fi} + {} + {<\:MM tr\Hnewline + \ifmathml \expandafterclass\else class\fi="vspace" + style="font-size:\HBorderspace">} + {<\:MM td\Hnewline>\ifmathml\else\string&\#x00A0;\fi + } + {} +\Configure{halign} + {\EndP\halignTB{halign}} \t:HA + \R:HA\r:HA\D:HA\d:HA +>>> + + + +\<<< + \string&\#x0332; +>>> + +%%%%%%%%%%%%% +\subsection{Small Matrix} +%%%%%%%%%%%%% + + + +\<<< +| +>>> + + +\<<< +| +>>> + + +\<<< +\Configure{multicolumn} + {\let\sv:VBorder\VBorder + \let\VBorder\empty + \Configure{VBorder}{}{}{}{}% + } + {\let\VBorder\sv:VBorder} + {\ifmmode \else + \ifvmode\IgnorePar\fi + \fi \HCode{
}} + {\ifmmode \else + \ifvmode\IgnorePar\fi \EndP\fi \HCode{
} } +\def\gob:sp#1{#1} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{TeX} +%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{eqalignno} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{}}% + {\HCode{}}} +>>> + + +\<<< +\Configure{leqalignno} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{}}% + {\HCode{}}} +>>> + + + + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Lists} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Shared} +%%%%%%%%%%%%% + + + + +\<<< +| +>>> + +\<<< +\CssSpeech{ + .itemize, .enumerate, .description {pitch: 8; + pitch-range: 4; + volume: |; + pause-after: 1000ms} +} +\CssSpeech{.added-list-description + { pitch: 8; pitch-range: 4; volume: 5; pause-after: 1000ms }} +\CssSpeech{.li-itemize, .li-enumerate, .li-description + { pitch: 3; pitch-range: 6; volume: 5 }} +>>> + + +\<<< +\ConfigureList{trivlist}% + {\EndP\HCode{
}% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
}\bgroup \bf} + {\egroup\HCode{
}} +>>> + +\<<< +\ConfigureList{list}% + {\EndP\HCode{
}% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
}\bgroup \bf} + {\egroup\HCode{
}} +>>> + +%%%%%%%%%%%%% +\subsection{Itemized} +%%%%%%%%%%%%% + + + +\<<< +\ConfigureList{itemize}% + {\EndP|\HCode{
}% + |\global\let\end:itm=\empty} + {|\ifvmode \IgnorePar\fi + \EndP\HCode{
}|\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}% + \HCode{
}|\DeleteMark + } + {\HCode{}} +>>> + +\<<< +\HCode{
% +
% + \add:description{added-description}{\a:speak:itemize}
}% +>>> + +\<<< +\HCode{
% + \add:description{added-description}{\b:speak:itemize}
}% +>>> + +\<<< +\HCode{% + \add:description{added-description}{\c:speak:itemize}}% +>>> + + + +\<<< +\NewConfigure{speak:itemize}{3} +\Configure{speak:itemize} + {begin \ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi + list} + {end \ifcase\csname @listdepth\endcsname + \or sub \or sub sub \or sub sub sub \else\fi + list} + {|%\ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi|% + item} +>>> + + + + + + +%%%%%%%%%%%%% +\subsection{Enumerate} +%%%%%%%%%%%%% + + + + +\<<< +\ConfigureList{enumerate}% + {|} + {|} + {|} + {|} +>>> + + +\<<< +\EndP|\HCode{
}|\global\let\end:itm=\empty +>>> + +\<<< +|% +\EndP\HCode{
}|\ShowPar +>>> + + +\<<< +\end:itm \gdef\end:itm{\EndP\Tg}% +\HCode{
}|%\DeleteMark +>>> + +\<<< +\HCode{}\HCode{}%\AnchorLabel +>>> + + + +\<<< +\PushMacro\end:itm +>>> + + +\<<< +\PopMacro\end:itm \global\let\end:itm \end:itm +>>> + + + + +\<<< +\HCode{
% +
% + \add:description{added-description}{\a:speak:enumerate}
}% +>>> + + +\<<< +\HCode{
% + \add:description{added-description}{\b:speak:enumerate}
}% +>>> + +\<<< +\HCode{% + \add:description{added-description}{\c:speak:enumerate}}% +>>> + + + +\<<< +\Configure{enumiii} + {\HCode{}% + Roman numeral \HCode{}\the\c@enumiii + \HCode{}\:gobbleII} + {\HCode{}} +\long\def\:tempc{(\theenumii)} +\ifx \labelenumii\:tempc + \def\:tempc{(\HCode{}\theenumii\HCode{})} + \HLet\labelenumii\:tempc +\fi +>>> + + + +\<<< +\NewConfigure{speak:enumerate}{3} +\Configure{speak:enumerate} + {begin \ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi + list} + {end \ifcase\csname @listdepth\endcsname + \or sub \or sub sub \or sub sub sub \else\fi + list} + {|%\ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi|% + item} +>>> + +%%%%%%%%%%%%% +\subsection{Description} +%%%%%%%%%%%%% + + +\<<< +\ConfigureList{description}% + {\EndP|% + \HCode{
}% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
}% + |\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
}|\bgroup \bf} + {\egroup\EndP\HCode{
}} +>>> + + + + + + + +\<<< +\HCode{
% +
% + \add:description{added-description}{\a:speak:description}
}% +>>> + + +\<<< +\HCode{
% + \add:description{added-description}{\b:speak:description}
}% +>>> + +\<<< +\HCode{% + \add:description{added-description}{\c:speak:description}% + }% +>>> + + +\<<< +\NewConfigure{speak:description}{3} +\Configure{speak:description} + {begin \ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi + list} + {end \ifcase\csname @listdepth\endcsname + \or sub \or sub sub \or sub sub sub \else\fi + list} + {|%\ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi|% + item} +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Verbatim} +%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{verbatim} {} {\a:sp} +\def\env:verb#1{\ifinner\else \vfill\break\fi + \IgnorePar\EndP \HAssign\Verb:N=0 + \HCode{\add:description{added-description}{begin verbatim}% +
}\EndNoFonts}
+\def\endenv:verb{\NoFonts
+  \EndP \ht:special{t4ht=
% + \add:description{added-description}{end verbatim}% + }|} +\def\start:fenv#1{\:xhtml{\IgnorePar + \EndP}\HCode{
}} +\def\end:fenv{\IgnorePar\HCode{
}\IgnorePar} +>>> + + +\<<< +\CssSpeech{ pre.verbatim { pitch: |; + pitch-range: 0; + stress: 0; + richness: 8 + }} +>>> + + +h1, h2, h3, +h4, h5, h6 { voice-family: paul, male; stress: 20; richness: 90 } +h1 { pitch: x-low; pitch-range: 90 } +h2 { pitch: x-low; pitch-range: 80 } +h3 { pitch: low; pitch-range: 70 } +h4 { pitch: medium; pitch-range: 60 } +h5 { pitch: medium; pitch-range: 50 } +h6 { pitch: medium; pitch-range: 40 } +li, dt, dd { pitch: medium; richness: 60 } +dt { stress: 80 } +pre, code, tt { pitch: medium; pitch-range: 0; stress: 0; richness: 80 } +em { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } +strong { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } +dfn { pitch: high; pitch-range: 60; stress: 60 } +s, strike { richness: 0 } +i { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } +b { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } +u { richness: 0 } +a:link { voice-family: harry, male } +a:visited { voice-family: betty, female } +a:active { voice-family: betty, female; pitch-range: 80; pitch: x-high } + + + +%%%%%%%%%%%%%%%%%% +\section{Figures} +%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\Configure{float} + {\ifOption{refcaption}{}{\csname par\endcsname\ShowPar \leavevmode}} + {\:xhtml{\IgnorePar\EndP}\HCode{
}} + {\ifvmode \IgnorePar \fi\EndP + \HCode{
}\csname par\endcsname\ShowPar} +\ConfigureEnv{figure} + {\:xhtml{\IgnorePar\EndP}% + \HCode{
|}% + \bgroup \Configure{float}{\ShowPar}{}{}% + } + {\egroup + \:xhtml{\IgnorePar\EndP}\HCode{|
}% + |\par} + {}{} +>>> + +% \<<< +% \CssSpeech{ .caption {pitch: 5; +% pitch-range: 9; +% richness: 5; +% volume: |; +% voice-family: betty +% } } +% >>> +% + +\<<< +\Configure{caption}{\HCode{\if:nopar \else
\fi} + \:xhtml{\IgnorePar\EndP}\HCode{
}% + |} + {: } {|\HCode{% + % + \add:description{added-description}{\a:speak:caption}}} + {\HCode{\add:description{added-description}{\b:speak:caption}% +
}|} +>>> + + +\<<< +
\add:description{begin-end}{\a:speak:figure}
% +>>> + + +\<<< +
\add:description{begin-end}{\b:speak:figure}
% +>>> + +\<<< +\HCode{\add:description{added-description}{\c:speak:caption}}% +>>> + +\<<< +\HCode{}% +>>> + +\<<< +\NewConfigure{speak:caption}{3} +\Configure{speak:caption} + {begin caption} + {end caption} + {caption of} +\NewConfigure{speak:figure}{2} +\Configure{speak:figure} + {begin figure environment} + {end figure environment} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{footnote-mark} + {|\HCode{}} + {\HCode{}|} +>>> + + + +\<<< +\HCode{\add:description{added-description}{\a:speak:footnote}}% +>>> + + +\<<< +\HCode{}% +>>> + + +\<<< +\NewConfigure{speak:footnote}{1} +\Configure{speak:footnote} + {footnote} +>>> + + +%%%%%%%%%%%%% +\section{Margin Notes} +%%%%%%%%%%%%% + + + +\<<< +\Configure{marginpar} + {\ifvmode + \IgnorePar\EndP\HCode{
}% + |% + \def\end:margp{\ifvmode \IgnorePar\fi \EndP + |\HCode{
}}% + \par + \else + \SaveEndP + \HCode{}|% + \bgroup + \Configure{HtmlPar} + {
} + {\HCode{
}} + {}{}% + \def\end:margp{\egroup + |\HCode{
}\RecallEndP}% + \fi + } + {\end:margp} +>>> + +\<<< +\CssSpeech{.marginpar {pitch: 7; + pitch-range: 4; + richness: 3; + stress: 2; + volume: 4}} +>>> + +\<<< +\HCode{
+ \add:description{begin-end}{\a:speak:marginpar}
}% +>>> + +\<<< +\HCode{
+ \add:description{begin-end}{\b:speak:marginpar}
}% +>>> + + +\<<< +\HCode{\add:description{begin-end}{\a:speak:marginpar}}% +>>> + +\<<< +\HCode{\add:description{begin-end}{\b:speak:marginpar}}% +>>> + + + +\<<< +\NewConfigure{speak:marginpar}{2} +\Configure{speak:marginpar} + {begin margin note} + {end margin note} +>>> + +%%%%%%%%%%%%%%%%%% +\part{Math} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The equation Environment} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{equation} + {\IgnorePar|\EndP + |% + \HCode{
% + \add:description{begin-math}{\a:speak:equation}% +
}\IgnorePar + |} + {\ifvmode \IgnorePar\fi\EndP + \HCode{
}% + \let\@eqnnum\empty + } + {\HCode{% + \add:description{end-math}{\b:speak:equation}% +
}% + \Tag{eq-\TableNo-num}{\theequation}% + |} +>>> + + + +\<<< +\NewConfigure{speak:equation}{2} +\Configure{speak:equation} + {begin equation + \ifTag{eq-\TableNo-num}{\LikeRef{eq-\TableNo-num}}{}% + } + {end equation \theequation} +>>> + + + +\<<< +\ifvmode\else \HCode{}\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{AmsMath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +\<<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + | + \else + | + \fi +\else + | +\fi +>>> + + +\<<< +\Configure{equation} + {\ifvmode \IgnorePar\fi\EndP + |% + \HCode{
% + \add:description{begin-math}{\a:speak:equation}% +
}% + |% + |% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{
}% + \let\@eqnnum\empty + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{% + \add:description{end-math}{\b:speak:equation}% +
}% + \Tag{eq-\TableNo-num}{\theequation}% + |% + \ShowPar\IgnoreIndent\par} +>>> + + + +\<<< +\Configure{equation*} + {\ifvmode \IgnorePar\fi\EndP + |% + \HCode{
% + \add:description{begin-math}{\csname + a:speak:equation*\endcsname}}% + |% + |% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{\add:description{end-math}{\csname + b:speak:equation*\endcsname}
}% + |% + \ShowPar\IgnoreIndent\par} +>>> + + +\<<< +\Configure{speak:equation} + {begin equation + \ifTag{eq-\TableNo-num}{\LikeRef{eq-\TableNo-num}}{}% + } + {end equation \theequation} +\NewConfigure{speak:equation*}{2} +\Configure{speak:equation*} + {begin equation} + {end equation} +>>> + + + +\<<< +\Configure{gather} + {\HCode{
}\IgnorePar + |} + {\HCode{
}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{
}\fi } + {} +>>> + + +\<<< +\Configure{gather*} + {\HCode{
}\IgnorePar + |} + {\HCode{
}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{
}\fi } + {} +>>> + + +\<<< +\Configure{$$} + {\Configure{@math}{|% + class="equation"}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP} + {\DisplayMathtrue}% +>>> + + + + + + + + + + + +\<<< +\Configure{@begin} + {split} + {\let\tagform@=\:gobble } +>>> + + + + + +\<<< +\Configure{split} + {|% + \HCode{
% + \add:vdescription{begin-array}{begin + \ifTag{split-\TableNo}{\LikeRef{split-\TableNo}}{} + sub equations}}} + {\ifvmode\IgnorePar\fi + \Tag{split-\TableNo}{\HRow:s}% + \HCode{\add:vdescription{end-array}{end sub equations}
}% + |% + } + {\HCode{}% + \xdef\HRow:s{\HRow}% + } + {\HCode{
}} + {\HCode{% + \add:vdescription{begin-end}{% + \ifnum \HCol=1 left \else right \fi + | sub equation}}% + } + {\HCode{}} +>>> + + +\<<< +\ConfigureEnv{multline} + {\bgroup |} + {\egroup} + {}{} +\ConfigureEnv{multline*} + {\bgroup |} + {\egroup} + {}{} +>>> + +\<<< +\Configure{multline} + {|% + |% + \HCode{% + |}} + {\Tag{multline-\TableNo}{\hrow:s}% + \HCode{|}% + |% + |} + {\HCode{
% + |}} + {\xdef\hrow:s{\HRow}\HCode{
}} + {\HCode{
}} + {} +\Configure{multline-num} + {\Tag{multline-\TableNo-num}{\theequation}\let\tagform@\:gobble} + {} +>>> + + +\<<< +\Configure{multline*} + {|% + |% + \HCode{% + |}} + {\Tag{multline-\TableNo}{\hrow:s}% + \HCode{|
}% + |% + |} + {\HCode{% + |}} + {\xdef\hrow:s{\HRow}\HCode{}} +\Css{.begin-multline, .end-multline {color:red;}} +>>> + + + +\<<< +\CssSpeech{.begin-multline, .end-multline {stress:3; richness:5;}} +>>> + + +\<<< +\add:vdescription{begin-math}{begin equation + \ifTag{multline-\TableNo-num}{\LikeRef{multline-\TableNo-num}}{} + with + \ifTag{multline-\TableNo}{\LikeRef{multline-\TableNo}}{} + lines}% +
% +>>> + +\<<< +\add:vdescription{begin-math}{begin equation with + \ifTag{multline-\TableNo}{\LikeRef{multline-\TableNo}}{} + lines}% +
% +>>> + + +\<<< +
% +\add:vdescription{end-math}{end equation + \ifTag{multline-\TableNo-num}{\LikeRef{multline-\TableNo-num}}{}% +}% +>>> + +\<<< +
% +\add:vdescription{end-math}{end equation}% +>>> + + +\<<< +\add:vdescription{begin-end}{| line}% +>>> + +\<<< +\HAdvance\HRow by 1 +>>> + + + + +\<<< +\ConfigureEnv{gather} + {\bgroup |} + {\egroup} + {}{} +\ConfigureEnv{gather*} + {\bgroup |} + {\egroup} + {}{} +\Css{.begin-gather, .end-gather {color:red;}} +>>> + + +\<<< +\CssSpeech{.begin-gather, .end-gather {stress:3; richness:5;}} +>>> + + +\<<< +\Configure{gather} + {|% + |% + \HCode{% + \add:vdescription{begin-math}{begin group of + \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{} + equations}% +
% + }} + {\HCode{
\add:vdescription{end-math}{end equations}% + }% + \Tag{gather-\TableNo}{\hrow:s}% + |% + |} + {\HCode{
% + \add:vdescription{begin-end}{| equation}% + }} + {\xdef\hrow:s{\HRow}\HCode{
}} + {\HCode{\Hnewline
>}% + \ifnum \HCol>1 \let\tagform@\:gobble \fi + } + {\HCode{
}} +>>> + +\<<< +\Configure{gather*} + {|% + |% + \HCode{% + \add:vdescription{begin-math}{begin group of + \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{} + equations}% +
% + }} + {\HCode{
\add:vdescription{end-math}{end equations}% + }% + \Tag{gather-\TableNo}{\hrow:s}% + |% + |} + {\HCode{
% + \add:vdescription{begin-math}{| equation}% + }} + {\xdef\hrow:s{\HRow}\HCode{
}} + {\HCode{\Hnewline
>}} + {\HCode{
}} +>>> + + + + +\<<< +\Configure{gathered} + {|% + |% + \HCode{% + \add:vdescription{begin-math}{begin group of + \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{} + equations}% +
% + }} + {\HCode{
\add:vdescription{end-math}{end equations}% + }% + \Tag{gather-\TableNo}{\hrow:s}% + |% + |} + {\HCode{
% + \add:vdescription{begin-end}{| equation}% + }} + {\xdef\hrow:s{\HRow}\HCode{
}} + {\HCode{\Hnewline
>}% + \ifnum \HCol>1 \let\tagform@\:gobble \fi + } + {\HCode{
}} +>>> + + +\<<< +\ifnum \HCol=1 class="col-\HCol" +\else class="content-less" title="col-\HCol" +\fi +>>> + + +\<<< +\ord:pos{\HRow}% +>>> + +\<<< +\ord:pos{\HCol}% +>>> + + +\<<< +\def\ord:pos#1{% + \ifcase #1 + \or first + \or second + \or third + \or fourth + \or fifth + \or sixth + \or seventh + \or eighth + \or nineth + \else #1th + \fi +} +>>> + + +\<<< +\Css{.ord-row {color:red;}} +>>> + +\<<< +\Configure{subarray} + {|% + |% + \HCode{
% + \add:vdescription{begin-array}{\a:speak:subarray}% + }} + {\HCode{\add:vdescription{end-array}{\b:speak:subarray}% +
}% + \Tag{subarray-\TableNo}{\hrow:s}% + |% + |} + {\HCode{
% + \add:vdescription{begin-end}{\c:speak:subarray}% + }} + {\xdef\hrow:s{\HRow}\HCode{
}} +>>> + +\<<< +\NewConfigure{speak:subarray}{3} +| +>>> + +\<<< +\Configure{speak:subarray} + {begin sub array with + \ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{} + rows} + {end sub array} + {| row} +>>> + + +\<<< +\Configure{substack} + {\bgroup + \Configure{speak:subarray} + {begin sub stack with + \ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{} + entries} + {end sub stack} + {| entry} + } + {\egroup} +>>> + +\<<< +\Configure{smallmatrix} + {|% + |% + \HCode{
}% + \HCode{\add:vdescription{begin-array}{\a:speak:smallmatrix}}} + {\Tag{smallmatrix-\TableNo}{\hrow:s}% + \HCode{|% + \add:vdescription{end-array}{\b:speak:smallmatrix}}% + \ifvmode \IgnorePar\fi \Tg
% + |% + |} + {\HCode{
}\c:speak:smallmatrix}% + {\xdef\hrow:s{\HRow}\HCode{
}}% + {\HCode{
}% + \e:speak:smallmatrix \HCode{
}} + {\HCode{
}\f:speak:smallmatrix + \HCode{
\Hnewline}} +>>> + + +\<<< +\NewConfigure{speak:smallmatrix}{6} +\Configure{speak:smallmatrix} + {begin matrix with + \ifTag{smallmatrix-\TableNo}{\LikeRef{smallmatrix-\TableNo}}{} + rows} + {end matrix} + {|} + {|} + {|} + {|} +>>> + +\<<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\def\end:al:env{}\ifmmode\else + \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent}\fi\fi} + {\end:al:env } + {}{}% + \Configure{#1} + {\IgnorePar + \ifvmode \EndP \else \EndP \HCode{}\fi + \ifmathml + \Tg\def\end:mathalign{\Tg}% + \else + \DviMath + \def\end:mathalign{\EndDviMath \DisplayMathfalse}% + \DisplayMathtrue + \fi + |% + |% + \HCode{
% + \add:description{begin-array}{\a:speak:align}% + }} + {\HCode{% + \add:description{end-array}{\b:speak:align}% +
}% + \Tag{align-\TableNo}{\hrow:s}% + |% + |\end:mathalign } + {\HCode{
|}} + {\HCode{
}\ifst@rred\else + \Tag{align-\TableNo-\HRow}{\theequation}% + \fi \xdef\hrow:s{\HRow}} + {\HCode{}% + \ifnum \HCol>\maxfields@ \let\tagform@\:gobble \fi + } + {\HCode{}} +} +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align-star} +\:tempc{alignat*}{alignat-star} +\:tempc{xalignat*}{xalignat-star} +\:tempc{flalign*}{flalign-star} +\Css{.begin-aligned, .end-aligned {color:red;}} +>>> + + +\<<< +\CssSpeech{.begin-aligned, .end-aligned {stress:3; richness:5;}} +>>> + +\<<< +\add:description{begin-end}{\c:speak:align}% +>>> + + +\<<< +\NewConfigure{speak:align}{3} +\Configure{speak:align} + {begin + \ifTag{align-\TableNo}{\LikeRef{align-\TableNo}}{} + aligned equations} + {end aligned equations} + {\ifst@rred | equation + \else + equation number \ifst@rred\else + \ifTag{align-\TableNo-\HRow}{\LikeRef{align-\TableNo-\HRow}}{} + \fi + \fi + } +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Math Delimiters} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Full Expressions} +%%%%%%%%%%%%% + + + + +\<<< +\Configure{DviMath} + {\a:DviMathSpk \mathmltrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule \HCode{}\a:math + |\IgnorePar} + {\EndIgnoreRule + \mathmlfalse \b:DviMathSpk |} +\NewConfigure{DviMathSpk}{2} +>>> + + + +\<<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +\<<< +\sv:ignore +>>> + + + +\<<< +\Configure{math}{} +\Configure{$} + {|\DviMath} + {\EndDviMath}{} +\Configure{$$} + {|\DviMath} + {\EndDviMath + \ShowPar\par{\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +>>> + + +\<<< +\Configure{[]} + {|\DviMath $$\DisplayMathtrue } + {$$\EndDviMath} +\Configure{()} + {|\DviMath $} + {$\EndDviMath} +>>> + + +\<<< +\Configure{DviMathSpk} + {\HCode{% + \add:description{begin-math}{\a:speak:math}}} + {\HCode{\add:description{end-math}{\b:speak:math}}}% +>>> + + +\<<< +\Configure{@math}{div}\IgnorePar + |\EndP + \Configure{DviMathSpk} + {\HCode{
% + \add:description{begin-math}{\a:speak:math}}} + {\HCode{\add:description{end-math}{\b:speak:math}
}}% +>>> + + +\<<< +\NewConfigure{speak:math}{2} +\Configure{speak:math} + {begin math} + {end math} +>>> + + +\<<< +\CssSpeech{.inline-math, .display-math + { pitch: 8; pitch-range: 7; stress:7; richness: 7; }} +\CssSpeech{.space {pitch:0; pitch-range:0; richness:0; stress:0;}} +>>> + + +%%%%%%%%%%%%% +\subsection{Left and Right} +%%%%%%%%%%%%% + + + +\<<< +\Configure{left} + {} + {\HCode{% + |}\bgroup} +\Configure{right} + {\egroup} + {\HCode{% + |}} +>>> + +\<<< +\Configure{big} + {}{} + {} + {} +\Configure{Big} + {}{} + {} + {} +\Configure{bigg} + {}{} + {} + {} +\Configure{Bigg} + {}{} + {} + {} +>>> + + + + + + + +\<<< +| +\:CheckOption{mathml-} \if:Option + | +\else + | +\fi +>>> + +\<<< +\Configure{Biggl} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Biggr} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{Bigl} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Bigr} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{biggl} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{biggr} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{bigl} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{bigr} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +>>> + + + + +\<<< +\Configure{Biggl} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Biggr} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{Bigl} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Bigr} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{biggl} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{biggr} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{bigl} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathopen}{*} + {} + {} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{bigr} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathclose}{*} + {} + {} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +>>> + + + +\<<< +\Configure{Biggm} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathrel}{*} + {} + {} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{Bigm} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathrel}{*} + {} + {} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{biggm} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathrel}{*} + {} + {} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{bigm} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathrel}{*} + {} + {} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +>>> + +\<<< +\Configure{mfenced}{\vert}{||} +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\{}{\string&\#x007B;}}\:temp +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\}}{\string&\#x007D;}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\lbrace}{\string&\#x007B;}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\rbrace}{\string&\#x007D;}}\:temp +>>> + + +%%%%%%%%%%%%% +\subsection{Math Inner} +%%%%%%%%%%%%% + + +\<<< +\def\mathinner#1{\Tg#1\Tg} +>>> + + + +%%%%%%%%%%%%% +\subsection{Tokens} +%%%%%%%%%%%%% + + + +\<<< +\Configure{MathClass}{0}{*}{}% + {}{} +\Configure{MathClass}{1}{*}{ + }{ }{} +\Configure{MathClass}{2}{*}{}{}{} +\Configure{MathClass}{3}{*}{}{}{} +\:CheckOption{mathml-} \if:Option + \Configure{MathClass}{4}{*}{} + {}{} + \Configure{MathClass}{5}{*}{} + {}{} +\else + \Log:Note{for sources failing to produce + clean mathml code, try the command line option `mathml-'}% + \Configure{MathClass}{4}{*}{} + {}{} + \Configure{MathClass}{5}{*}{} + {}{} +\fi +\Configure{MathClass}{6}{*}{}{}{} +\Configure{MathClass}{7}{*}{}{} + {0123456789} +\Configure{FormulaClass}{0}{}{}{} +\Configure{FormulaClass}{1}{}{}{} +\Configure{FormulaClass}{2}{}{}{} +\Configure{FormulaClass}{3}{}{}{} +\Configure{FormulaClass}{4}{}{}{} +\Configure{FormulaClass}{5}{}{}{} +\Configure{FormulaClass}{6}{}{}{} +>>> + + + + + +\<<< +\Configure{qopname} + {\Configure{mathop}{*} + { } + { } + {}} +>>> + + +\<<< +\CssSpeech{ .mo-open, .mo-close{ stress:3; }} +\CssSpeech{ .mo-rel, .mo-bin { stress:4; }} +\CssSpeech{ .mo-op { stress:4; }} +\CssSpeech{ .mo-punc { stress:4; }} +\CssSpeech{ .mo-qopname { stress:4; }} +>>> + + +%%%%%%%%%%%%% +\subsection{Embedded Text} +%%%%%%%%%%%%% + + + +\<<< +\def\AA:text#1{|} +\def\BB:text{|} +>>> + + +\<<< +\mtexttrue +\HCode{ }% + |\PauseMathClass + |% +>>> + + +\<<< +\mtextfalse\EndPauseMathClass|\HCode + {}% +>>> + +\<<< +\Configure{$}% + {\EndPauseMathClass \HCode{}\mtextfalse + |}% + {\HCode{}|\PauseMathClass \mtexttrue}% + {}% +>>> + + + +\<<< +\ht:special{t4ht@,&\#x00A0;}% +>>> +\<<< +\ht:special{t4ht@,}% +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Fonts} +%%%%%%%%%%%%%%%%%% + + + +\<<< +\def\bold:version{bold} +\Configure{mathbf}% + {\bgroup \Tg}% + {\Tg\egroup }% +\Configure{mathit}% + {\bgroup \Tg}% + {\Tg\egroup }% +\Configure{mathrm}% + {\bgroup \Tg}% + {\Tg\egroup }% +\Configure{mathsf}% + {\bgroup \Tg}% + {\Tg\egroup }% +\Configure{mathtt}% + {\bgroup \Tg}% + {\Tg\egroup }% +>>> + + +\<<< +\def\:tempd#1#2{% + \expandafter\def\csname #1\endcsname{\mathchar"13#2\relax}% + \MathSymbol\mathop{#1}% + \expandafter\def\csname #1:limits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\limits}% + \expandafter\def\csname #1:nolimits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\nolimits}% + \expandafter\edef\csname n:#1:\endcsname{\noexpand\ifDisplayMath + \noexpand\expandafter \expandafter\noexpand \csname #1:limits\endcsname + \noexpand\else \noexpand\expandafter + \expandafter\noexpand + \csname #1:nolimits\endcsname\noexpand\fi}% + \expandafter\pend:def\csname n:#1:\endcsname{\ifDisplayMath + \mathop:prefix{mathsize-big}\fi}% +} +\:tempd{bigcap}{54} +\:tempd{bigcup}{53} +\:tempd{bigodot}{4A} +\:tempd{bigoplus}{4C} +\:tempd{bigotimes}{4E} +\:tempd{bigsqcup}{46} +\:tempd{biguplus}{55} +\:tempd{bigvee}{57} +\:tempd{bigwedge}{56} +\:tempd{coprod}{60} +\:tempd{intop}{52} +\:tempd{ointop}{48} +\:tempd{prod}{51} +\:tempd{sum}{50} +>>> + +\<<< +\def\mathop:prefix#1{% + \Configure{mathop}{*}{}{}% + {\Configure{mathop}{*}{}{}{}}} +>>> + +\begin{verbatim} + + + sum + + +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{Symbols} +%%%%%%%%%%%%%%%%%% + + +\<<< +\def\:tempc{\HCode{}\mathbin{mod} } +\HLet\bmod\:tempc +\def\:tempc#1{ (#1)} +\HLet\pod=\:tempc +\def\:tempc#1{\pod{\mathop{mod} #1}} +\HLet\pmod=\:tempc +\def\:tempc#1{ \mathop{mod} #1} +\HLet\mod=\:tempc +>>> + + + +\<<< +\def\:tempc{\ifDisplayMath\mathop:prefix{big}\fi\o:n:iint::} +\HLet\n:iint:\:tempc +\def\:tempc{\ifDisplayMath\mathop:prefix{big}\fi\o:n:iiint::} +\HLet\n:iiint:\:tempc +\def\:tempc{\ifDisplayMath\mathop:prefix{big}\fi\o:n:idotsint::} +\HLet\n:idotsint:\:tempc +>>> + + +\<<< +\def\:tempc{\mathop{\underrightarrow\lim}\displaylimits} \HLet\varinjlim\:tempc +\def\:tempc{\mathop{\underleftarrow\lim}\displaylimits} \HLet\varprojlim\:tempc +\def\:tempc{\mathop{\overline\lim}\displaylimits} \HLet\varlimsup\:tempc +\def\:tempc{\mathop{\underline\lim}\displaylimits} \HLet\varliminf\:tempc +>>> + + +\<\><<< +\HRestore\varinjlim +\HRestore\varprojlim +\HRestore\varlimsup +\HRestore\varliminf +>>> + + + +\<<< +\Configure{hdotsfor}{\dots} +>>> + + + +\<<< +\def\:tempc{\HCode{\add:description{added-description}{real part + symbol capital }}\o:Re:} +\HLet\Re\:tempc +\def\:tempc{\HCode{\add:description{added-description}{real part + symbol capital }}\o:Im:} +\HLet\Im\:tempc +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Spaces} +%%%%%%%%%%%%%%%%%% + + + + +\<<< +\Configure{quad}{\HCode{|}} +\Configure{qquad}{\HCode{|}} +\Configure{,}{\HCode{|}} +\Configure{ }{\:nbsp} +>>> + + +\<<< +\Configure{hspace}{ }{}{ } +>>> + + +\<<< +\Configure{tmspace} + {\HCode{|}} +>>> + +\<<< +\def\:nbsp{\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x} +>>> + + + +\<<< +\Configure{frenchb-nbsp} + {\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x% + \setbox\tmp:bx=\hbox\bgroup} + {\egroup} +>>> + + + +\<<< + % +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Fractions and Stacks} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Regular Ones} +%%%%%%%%%%%%% + + + +\<<< +\Configure{over} + {\Send{GROUP}{0}{|}|} + {|\Send{EndGROUP}{0}{|}} +\Configure{atop} + {\Send{GROUP}{0}{|}|} + {|\Send{EndGROUP}{0}{|}} +\Configure{above} + {\Send{GROUP}{0}{|}% + |\o:over:\:gobbleII} + {|\Send{EndGROUP}{0}{|}} +>>> + + + +\<<< +\Configure{frac} + {\HCode{|}} + {|\Configure{over}{}{}} + {|} + {\HCode{|}} +>>> + + + +\<<< +\Configure{above} + {\Send{GROUP}{0}{|}% + |\o:@@over:\:gobbleII} + {|\Send{EndGROUP}{0}{|}} +>>> + + +\<<< +\Configure{choose} + {\Send{GROUP}{0}{% + \add:description{begin-stack}{\a:speak:choose}% + }% + \HCode{}\o:atop: + \HCode{\add:description{added-description}% + {\c:speak:choose}}% + \Send{EndGROUP}{0}% + {\add:description{end-stack}{\b:speak:choose}}% + } +>>> + + + +\<<< +\NewConfigure{speak:choose}{3} +\Configure{speak:choose} + {begin binomial coefficient} + {end binomial coefficient} + {choose} +>>> + + +\<<< +\Configure{tbinom} + {\Send{GROUP}{0}{% + \add:description{begin-stack}{\a:speak:choose}% + }% + \HCode{}\o:@@abovewithdelims: ..\z@{}% + \HCode{\add:description{added-description}% + {\c:speak:choose}}% + \Send{EndGROUP}{0}% + {\add:description{end-stack}{\b:speak:choose}}% + } +>>> + +\<<< +\Configure{dbinom} + {\Send{GROUP}{0}{% + \add:description{begin-stack}{\a:speak:choose}% + }% + \HCode{}\o:@@abovewithdelims: ..\z@{}% + \HCode{\add:description{added-description}{\c:speak:choose}}% + \Send{EndGROUP}{0}% + {\add:description{end-stack}{\b:speak:choose}}% + } +>>> + + + + +\<<< +\Configure{binom} + {\Send{GROUP}{0}{% + \add:description{begin-stack}{\a:speak:choose}% + }% + \HCode{}\o:@@abovewithdelims: ..\z@{}% + \HCode{\add:description{added-description}{\c:speak:choose}}% + \Send{EndGROUP}{0}% + {\add:description{end-stack}{\b:speak:choose}}% + } +>>> + +%%%%%%%%%%%%% +\subsection{With Delimiters} +%%%%%%%%%%%%% + + + + + +\<<< +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|}% + |\o:over: + |\Send{EndGROUP}{0}{|} + \else + \Send{GROUP}{0}% + {|% + |}% + |\o:over: + |\Send{EndGROUP}{0}{|% + |} + \fi + \tmp:dim + } +>>> + + + +\<<< +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|}% + |\o:atop: + |\Send{EndGROUP}{0}{|} + \else + \Send{GROUP}{0}% + {|% + |}% + |\o:atop: + |% + \Send{EndGROUP}{0}{|% + |} + \fi + } +>>> + +\<<< +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|}|\o:over: + |\Send{EndGROUP}{0}{|} + \else + \Send{GROUP}{0}% + {|% + |}% + |\o:over: + |\Send{EndGROUP}{0}{|% + |} + \fi + } +>>> + + + +\<<< +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|}% + |\o:@@over: + |\Send{EndGROUP}{0}{|} + \else + \Send{GROUP}{0}% + {|% + |}% + |\o:@@over: + |\Send{EndGROUP}{0}{|% + |} + \fi + \tmp:dim + } +>>> + + +\<<< +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|}% + |\o:@@atop: + |\Send{EndGROUP}{0}{|} + \else + \Send{GROUP}{0}% + {|% + |}% + |\o:@@atop: + |\Send{EndGROUP}{0}{|% + |} + \fi + } +>>> + + + +\<<< +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|}% + |\o:over: + |\Send{EndGROUP}{0}{|} + \else + \Send{GROUP}{0}% + {|% + |}% + |\o:@@over: + |\Send{EndGROUP}{0}{|% + |} + \fi + } +>>> + + + +%%%%%%%%%%%%% +\subsection{Code Assignments} +%%%%%%%%%%%%% + + + +\<<< +\add:description{begin-end}{\a:speak:fraction}% +% +>>> + + +\<<< +\HCode{}% +>>> + + + +\<<< +\HCode{\add:description{begin-end}{\c:speak:fraction} + }% +>>> + +\<<< +\add:description{begin-end}{\b:speak:fraction}% +>>> + + +\<<< +% +\add:description{begin-stack}{\a:speak:atop}% +% +>>> + + + + +\<<< +\HCode{}% +>>> + + +\<<< +\HCode{\add:description{added-description}{\c:speak:atop}}% +>>> + + +\<<< +\add:description{end-stack}{\b:speak:atop}% +>>> + + + + +\<<< +|% +>>> + + +\<<< +|% +>>> + + +\<<< +|% +>>> + +\<<< +|% +>>> + + + +\<<< +\expandafter +\ifx \csname \string#1:lr del\endcsname\relax #1\else + \csname \string#1:lr del\endcsname\fi +>>> + +\<<< +\expandafter +\ifx \csname \string#2:lr del\endcsname\relax #2\else + \csname \string#2:lr del\endcsname\fi +>>> + + +\<<< +\expandafter +\ifx \csname \string#3:lr del\endcsname\relax #3\else + \csname \string#3:lr del\endcsname\fi +>>> + + +The following cases in mathml are translated directly +to explicit caharacters and so donn't get there the +speech interpretation provided in unicode.4hf. + +\<<< +\Configure{mfenced}{\vert}{\string&\#x007C;} +\Configure{mfenced}{\{}{\string&\#x007B;} +\Configure{mfenced}{\}}{\string&\#x007D;} +\Configure{mfenced}{\lbrace}{\string&\#x007B;} +\Configure{mfenced}{\rbrace}{\string&\#x007D;} +\Configure{mfenced}{\rgroup}{\string&\#x0028;} +\Configure{mfenced}{\lgroup}{\string&\#x0029;} +\Configure{mfenced}{(}{\string&\#x0028;} +\Configure{mfenced}{)}{\string&\#x0029;} +\Configure{mfenced}{[}{\string&\#x0058;} +\Configure{mfenced}{]}{\string&\#x0059;} +\Configure{mfenced}{||}{\string&\#x007C;} +\Configure{mfenced}{\bracevert}{\string&\#x007C;} +\Configure{mfenced}{\bracevert}{\string&\#x007C;} +>>> + + + + +\<<< +\NewConfigure{speak:fraction}{3} +\Configure{speak:fraction} + {begin fraction} + {end fraction} + {over} +>>> + + +\<<< +\CssSpeech{.mfrac{ + pitch:7; pitch-range: 1; richness: 9; stress:4;}} +>>> + + + + +\<<< +\NewConfigure{speak:atop}{3} +\Configure{speak:atop} + {begin stack} + {end stack} + {over} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Theorems} +%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{newtheorem} + {\ifvmode\IgnorePar\fi\EndP + \HCode{
}\par\noindent + \HCode{}} + {\HCode{}} + {\EndP\IgnorePar\HCode{
}\ShowPar\par} +\Css{span.theorem-head { font-weight:bold; }} +>>> + +\<<< +\Configure{proof} + {\ifvmode\IgnorePar\fi\EndP + \HCode{
}\par\noindent + \HCode{}} + {\HCode{}} + {\EndP\IgnorePar\HCode{
}\ShowPar\par} +>>> + + +\<<< +| +>>> + +\<<< +\ifx \deferred@thm@head\:UnDef\else + | +\fi +>>> + + +\<<< +\Configure{proof} + {\ifvmode \IgnorePar \fi \EndP + \HCode{
}\par\ShowPar + \HCode{}\IgnorePar} + {\HCode{}\ShowPar} + {\ifvmode \IgnorePar \fi \EndP \HCode{
}\par} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Others} +%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{radical} + {\HCode{% + \add:description{begin-root}{\a:speak:radical}}% + \special{t4ht\string~!e<}% + \special{t4ht\string~!e>% + \add:description{end-root}{\b:speak:radical}}% + \special{t4ht\string~!ee/}% + \special{t4ht\string~!ese-}% + } +>>> + +\<<< +\NewConfigure{speak:radical}{2} +\Configure{speak:radical} + {begin root} + {end root} +>>> + + + + + +\<<< +\Configure{root} + {\HCode{% + \add:description{begin-root}{\a:speak:root}}} + {\HCode{\add:description{mid-root}{\b:speak:root}% + }} + {\HCode{\add:description{end-root}{\c:speak:root}}} +>>> + + +\<<< +\NewConfigure{speak:root}{3} +\Configure{speak:root} + {root index} + {begin root} + {end root} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Boxed} +%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{boxed} + {\HCode{% + \add:description{begin-end}{\a:speak:boxed}}} + {\HCode{\add:description{begin-end}{\b:speak:boxed}}} +>>> + + +\<<< +\NewConfigure{speak:boxed}{2} +\Configure{speak:boxed} + {begin boxed} + {end boxed} +>>> + + +%%%%%%%%%%%%%%%%%% +\chapter{Over and Under} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%% +\section{Subscrips and Superscripts (sub and super)} +%%%%%%%%%%%%% + + + +\<<< +\Configure{SUB} + {\Send{BACK} + {|}|} + {|} +\Configure{SUP} + {\Send{BACK} + {|}|} + {|} +\Configure{SUBSUP} + {\Send{BACK} + {|}|} + {|} + {|} +\def\trap:base{{\HCode{}}} +>>> + + + +\<<< +% +>>> + +\<<< +\HCode{\add:description{begin-script}{\b:speak:subsup}}\trap:base +>>> + +\<<< +\HCode{\add:description{end-script}{\c:speak:subsup}
}% +>>> + + + +\<<< +% +>>> + +\<<< +\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base +>>> + +\<<< +\HCode{\add:description{end-script}{\c:speak:subsup}}% +>>> + + + +\<<< +% +>>> + +\<<< +\HCode{\add:description{begin-script}{\a:speak:subsup}}\trap:base +>>> + + +\<<< +\HCode{\add:description{mid-script}{\b:speak:subsup}}\trap:base +>>> + + +\<<< +\HCode{\add:description{end-script}{\c:speak:subsup}}% +>>> + +\<<< +\NewConfigure{speak:subsup}{3} +\Configure{speak:subsup} + {subscript} + {superscript} + {baseline} +>>> + +\<<< +\CssSpeech{.mrow-super{ pitch:9; pitch-range:4; richness:9; stress:9;}} +\CssSpeech{.mrow-base{ pitch:9; pitch-range:4; richness:5; stress:5;}} +\CssSpeech{.mrow-sub{ pitch:9; pitch-range:0; richness:1; stress:1;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Limits of Sub- snd Super- Scripts (over/under - end - scripts)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{limits}{|} +\def\disp:limits{|} +>>> + + +\<<< +\let|=\:UnDef +\let|=\:UnDef +\ifx \:temp\sp |\else +\ifx \:temp\sb |\fi\fi +|% +>>> + + + +\begin{verbatim} + + + a + + + under script + b + end script + + +\end{verbatim} + +\begin{verbatim} + + + a + + + over script + b + end script + + +\end{verbatim} + +\begin{verbatim} + + + a + + + under script + b + + + over script + c + end scripts + + +\end{verbatim} + + +\<<< +\Css{.begin-limits-script, .end-limits-script, .mid-limits-script {color:green;}} +\Css{.begin-script, .end-script, .mid-script {color:green;}} +>>> + +\<<< +\CssSpeech{.begin-limits-script, + .end-limits-script, .mid-limits-script {stress:3;}} +\CssSpeech{.begin-script, .end-script, .mid-script {stress:3;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Simultaneously Sub- and Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +|% +\Configure{SUBSUP} + {\ifx |\:UnDef\else |\fi + \ifx |\:UnDef\else |\fi + |% + \Send{BACK} + {|}|} + {|} + {|} +>>> + + + + +\<<< +% +>>> + +\<<< +\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base +>>> + + +\<<< +\HCode{\add:description{mid-limits-script}{\b:speak:underover}}\trap:base +>>> + + +\<<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}}% +>>> + + +\<<< +\NewConfigure{speak:underover}{3} +\Configure{speak:underover} + {under script} + {over script} + {end scripts} +>>> + +\<<< +\let\pl:SUBSUP=\SUBSUP: +>>> + +\<<< +\ifx \pl:SUBSUP\:UnDef \else + \let\SUBSUP:=\pl:SUBSUP +\fi +>>> + +\<<< +\ifx \a:putSUB\:UnDef \else + \pend:def\a:putSUB{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +\ifx \a:putSUP\:UnDef \else + \pend:def\a:putSUP{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Superscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +|% +\Configure{SUP} + {|\bgroup + |% + |\trap:base} + {}% +>>> + +\<<< +\def\pl:SUP{\Configure{SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\a:SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\b:SUP}}% +>>> + +\<<< +\Configure{SUP} + {|\bgroup + |\trap:base} + {\egroup|}% +>>> + + +\<<< +\Configure{SUP} + {|\bgroup \trap:base} + {\egroup |}% +>>> + + +\<<< +\Send{BACK}{|}% +|% +>>> + + + + + + + + +\<<< +\HCode{\add:description{begin-limits-script}{\b:speak:underover}}\trap:base +>>> + + +\<<< +% +>>> + +\<<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}}\aftergroup|% +>>> + +\<<< +\pl:SUP >>> + +\<<< +\Send{BACK} +{|}|% +>>> + +\<<< +\Send{BACK} +{|}|% +>>> + +\<<< +|% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Subscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +|% +\Configure{SUB} + {|\bgroup + |% + |\trap:base} + {}% +>>> + +\<<< +\def\pl:SUB{\Configure{SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\a:SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\b:SUB}}% +>>> + +\<<< +\Configure{SUB} + {|\bgroup + |\trap:base} + {\egroup|}% +>>> + + +\<<< +\Configure{SUB} + {|\bgroup \trap:base} + {\egroup |}% +>>> + + +\<<< +\Send{BACK}{|}% +|% +>>> + + + +\<<< +\HCode{\add:description{begin-limits-script}{\a:speak:underover}}\trap:base +>>> + + + + +\<<< +% +>>> + + + +\<<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}}\aftergroup|% +>>> + +\<<< +\pl:SUB >>> + +\<<< +\Send{BACK} +{|}|% +>>> + +\<<< +\Send{BACK} +{|}|% +>>> + +\<<< +|% +>>> + + + + +%%%%%%%%%%%%% +\section{On Arrows (over/under - end - scripts)} +%%%%%%%%%%%%% + + + +\<<< +\renewcommand{\xrightarrow}[2][]{% + \if :#1: + \HCode{|}% + \rightarrow + |#2% + |% + \else + \HCode{|}% + \leftarrow + |#1% + |#2% + |% + \fi +} +\renewcommand{\xleftarrow}[2][]{% + \if :#1: + \HCode{|}% + \leftarrow + |#2% + |% + \else + \HCode{|}% + \leftarrow + |#1% + |#2% + |% + \fi +} +>>> + + + + +%%%%%%%%%%%%% +\section{On Text (over/under - end - scripts)} +%%%%%%%%%%%%% + +\<<< +\def\overset#1#2{{% + \HCode{|}% + #2% + |#1% + |% +}} +\def\underset#1#2{{% + \HCode{|}% + #2% + |#1% + |% +}} +>>> + + + + + + +\<<< +\def\sideset#1#2#3{{\Tg{\HCode{}}#1{\HCode{}#3}#2\Tg}} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Accents} +%%%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{new-accents} \if:Option \else + | +\fi +>>> + +\<<< +\Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}\if!#1!x\else#2\fi + \ht:special{t4ht@]}}} + {\ifmathml + \ifmtext |% + \else \AccentMath{|}\fi + \else |\fi + } +>>> + +\<<< +\CssSpeech{.accented-char { pitch-range: 4; }} +\CssSpeech{.math-over { pitch-range: 4; }} +\CssSpeech{.mover-accent {pitch-range: 7; richness: 9;}} +>>> + + +\<<< +\leavevmode +\if !#1!\ht:special{t4ht@+&{35}x#2;}% +\else \expandafter \ifx\csname U#2#1\endcsname\relax + \ht:special{t4ht@+&{35}x#2;}% +\else + \ht:special{t4ht@+&{35}x\csname U#2#1\endcsname;}% +\fi \fi x% +>>> + +\<<< +\expandafter\ifx \csname :#1:over\endcsname\relax + \expandafter\ifx \csname :#1:under\endcsname\relax + \AccentMath{|}% + \else #3\csname :#1:under\endcsname \fi +\else #3\csname :#1:over\endcsname \fi +>>> + + +\<<< +\expandafter\ifx \csname :#1:over\endcsname\relax + |% +\else \expandafter\ifx \csname :#1:under\endcsname\relax + |% +\else + |% +\fi \fi +>>> + +\<<< +\HCode{}#3\HCode{}% + \csname :#1:under\endcsname + \HCode{}% +>>> + +\<<< +\HCode{}#3\HCode{}% + \csname prefix:#1:over\endcsname + \csname :#1:over\endcsname + \HCode{}% +>>> + +\<<< +\HCode{}#3\HCode{}% + \csname :#1:under\endcsname + \csname :#1:over\endcsname + \HCode{}% +>>> + +\<<< +\def\:temp#1#2{\expandafter\def\csname prefix:#1:over\endcsname + {\HCode{\add:description{added-description}{ #2 }}}} +\:temp{vec}{\b:speak:underover} +\:temp{dddot}{\b:speak:underover} +\:temp{ddddot}{\b:speak:underover} +>>> + + + + +%%%%%%%%%%%%% +\section{Lines and Braces (With ...)} +%%%%%%%%%%%%% + +\marginpar{See reordeing fix at jslatex} + + + + +\<<< +\Configure{overline} + {\bgroup\ifmathml + \HCode{% + \add:description{begin-end}{\b:speak:modified}% + }% + \else \HCode{}\fi} + {\ifmathml + \HCode{% + \add:description{begin-end}{\a:speak:modified:line}}% + \else \HCode{}\fi\egroup} +\Configure{underline} + {\bgroup + \ifmathml + \HCode{% + \add:description{begin-end}{\a:speak:modified}% + }% + \else |\HCode{}\fi} + {\ifmathml \HCode{% + \add:description{begin-end}{\a:speak:modified:line}}% + \else \HCode{}\fi \egroup} +>>> + +\<<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + + +\<<< +\Configure{overbrace} + {\Configure{mathop*}{*} + {% + \add:description{begin-end}{\b:speak:modified}% + } + {\add:description{begin-end}{\a:speak:modified:brace}} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:overbrace:=\displaystyle} + {} +\Configure{underbrace} + {\Configure{mathop*}{*} + {% + \add:description{begin-end}{\a:speak:modified}% + } + {\add:description{begin-end}{\a:speak:modified:brace}} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:underbrace:=\displaystyle} + {} +>>> + + + + + + + +\<<< +\Configure{accent}\widetilde\widetilde{{}{}} + {} + {\HCode{% + \add:description{begin-end}{\b:speak:modified}% + }% + #2% + \HCode{\add:description{begin-end}{\a:speak:modified:tilde}}} +\Configure{accent}\widehat\widehat{{}{}} + {} + {\HCode{% + \add:description{begin-end}{\a:speak:modified}% + }% + #2% + \HCode{\add:description{begin-end}{ + \a:speak:modified:hat}}} |%circumflex|% +>>> + + +\<<< +\NewConfigure{speak:modified}{2} +\Configure{speak:modified} + {modified under} + {modified above} +\NewConfigure{speak:modified:line}{1} +\Configure{speak:modified:line}{with bar} +\NewConfigure{speak:modified:brace}{1} +\Configure{speak:modified:brace}{with brace} +\NewConfigure{speak:modified:hat}{1} +\Configure{speak:modified:hat}{with wide hat} +\NewConfigure{speak:modified:tilde}{1} +\Configure{speak:modified:tilde}{with wide tilde} +>>> + + +%%%%%%%%%%%%% +\section{Arrows (With ...)} +%%%%%%%%%%%%% + + + + +\<<< +\Configure{overrightarrow} + {\HCode{% + \add:description{begin-end}{\b:speak:modified}% + }\:gobble} + {\HCode{% + \add:description{begin-end}{\a:speak:modified:rightarrow}}} +\Configure{overleftarrow} + {\HCode{% + \add:description{begin-end}{\b:speak:modified}% + }\:gobble} + {\HCode{% + \add:description{begin-end}{\a:speak:modified:leftarrow}}} +>>> + +\<<< +\NewConfigure{speak:modified:rightarrow}{1} +\Configure{speak:modified:rightarrow}{with right arrow} +\NewConfigure{speak:modified:leftarrow}{1} +\Configure{speak:modified:leftarrow}{with left right arrow} +\NewConfigure{speak:modified:leftrightarrow}{1} +\Configure{speak:modified:leftrightarrow}{with left right arrow} +>>> + +\<<< +\Configure{underrightarrow} + {\HCode{% + \add:description{begin-end}{\a:speak:modified}% + }\:gobble} + {\HCode{% + \add:description{begin-end}{\a:speak:modified:rightarrow}}} +\Configure{underleftarrow} + {\HCode{% + \add:description{begin-end}{\a:speak:modified}% + }\:gobble} + {\HCode{% + \add:description{begin-end}{speak:modified:leftarrow}}} +>>> + + +\<<< +\Configure{overleftrightarrow} + {\HCode{% + \add:description{begin-end}{\b:speak:modified}% + }\:gobble} + {\HCode{% + \add:description{begin-end}{\a:speak:modified:leftrightarrow}}} +\Configure{underleftrightarrow} + {\HCode{% + \add:description{begin-end}{\a:speak:modified}% + }\:gobble} + {\HCode{% + \add:description{begin-end}{\a:speak:modified:leftrightarrow}}} +>>> + +%%%%%%%%%%%%%%%%%% +\part{Loose Ends} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{halign} +%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{embedded-halign}{}{} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Problems with W3C / Emacspeak} +%%%%%%%%%%%%%%%%%% + +\begin{description} +\item[Don't use Shortcuts of Empty Elements] + + The W3C browser is getting confused by the slash character, and + takes the closing delimiter `\verb'+>+' for a content. So use, for + instance, \verb+

instead of \verb+
+. + +\item [Html-Speech Rate] Resets to default whenever a web page is reset. +The default is defined in +\verb+dtk-speak.el+, line 164 (\verb+~/emacspeak-22.0/lisp/dtk-speak.el+). + +\item [Named Property Values not Recognized] The `loud' and `medium' + properties are not supported for volume. (Wrong type argument: + integerp, medium) + + + + +\<<< +7 +>>> + +\<<< +9 +>>> + + +\<<< +5 +>>> + +See end of \url{http://www.w3.org/TR/CSS21/aural.htm}. We provide +values also for some unsupported attribute, with the expectation that +at some point they'll be supported. + +\item[Delimiters] + + + + In equation 3, the left parenthsis does not get spoken (The parentheses +around the product: ``( product under script j = 1 over script n end +scripts x circumflex subscript j baseline )''. They should be spoken +automatically by emacspeak, but the problem is that the punctuation mode +for HTML is hardcoded to ``some'', which means that not all punctuation +codes will be spoken. Convert ( and ) into ``left +parenthesis'' (or ``enlarged left parenthesis'') and ``right parenthesis'' (or +``enlarged right parenthesis'') + + +\end{description} + + +%%%%%%%%%%%%%%%%%% +\section{Baselines in Tables} +%%%%%%%%%%%%%%%%%% + + +Normalize math tables to facilitate processing, such as +removing `baseline' at end of rows. + +\begin{itemize} +\item +Use begin-array and end-array delimiters, to catch unneeded baseline indicators at end of tables +\item +Use `tr' class names to catch baseline indicators at end of non-final rows +\item +Use \verb+
+ roots, in case math environment is +needed to be explictly mentioned. +\item +A `title="implicit-baseline"' attribute can aslo help. +\end{itemize} + + +\begin{verbatim} +
+ ............... +
+ ... +
+
+
+ ..... + + baseline + +
+
+
+ ... +
+
+
+
+\end{verbatim} + +\begin{verbatim} +\begin{multline} +T=n^{p-2}\prod^p_{i=1} +(n-n_i)^{n_i-1} +\\ +T=n^{p-2}\prod^p_{i=1} +(n-n_i)^{n_i-1} +\end{multline} +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{Questions} +%%%%%%%%%%%%%%%%%% + + +\begin{itemize} +\item Emacspeak + w3c on a mac? + +\item Emacspeak is being fed by w3c. What it takes to attach +alternative browsaers? + +\end{itemize} + + +%%%%%%%%%%%%%%%%%% +\section{Resources} +%%%%%%%%%%%%%%%%%% + + +\begin{itemize} +\item +\url{http://www.w3.org/TR/CSS21/aural.html} + +\item +MathPlayer on MSIE +(http://www.dessci.com) + +\item +Nemeth's MathSpeak, +\url{http://www.gh-mathspeak.com/} (\url{http://www.ghbraille.com/}), +\url{http://www.rit.edu/~easi/easisem/talkmath.htm}, +\url{http://www.math.virginia.edu/~arm4r/nemeth/nemeth.htm} + + +\item +\url{http://www.livemath.com/} +Theorist Interactive, LLC, of Cambridge, developers of the LiveMath +>> and +>MathEQ +>> computer algebra software line, introduced this tool with the release +>> of MathEQ 4.0 for Windows and Macintosh computers. +>> +>> MathSpeak is a set of special HTML tags that all html-speech-to-text screen +> +>> readers can access on a webpage, and correctly read the expression as +>> spoken html-speech. Although webpage authors can manually create the such +>> tags for their math expressions, the task can be +>cumbersome. +>> MathEQ will automatically create the correct MathSpeak tags when used +>> to create either images or MathML-based math expressions for webpages. + +\item +Lawrence A Chang, +Handbook for spoken mathematics: (Larry's speakeasy), +Lawrence Livermore Laboratory (1983) +\item +Parkin, A.J. and Aldrich, F.K. (1987), How can studying from tape be made easier? New Beacon, LXXI, 341, 847342. Tape Recording Manual (3rd Edition) (1979), The National Braille Association, Inc. (Copies available on request from: National Library Service for the Blind and Physically Handicapped, Library of Congress, Washington, DC 20542.) + + +\item +\url{http://www.mathspeak.org/} + +\item +\url{http://www.w3.org/2000/08/nba-manual/Overview.html} + +\item +Richard Fateman, +How can we speak math?, +\url {http://dlp.cs.berkeley.edu/~fateman/papers/speakmath.pdf} + +\item +Dave Raggett and +Davy Batsalle, +Add Math to Web pages with HP EzMath v1.1, +25th Ocober 1998 +\url{http://www.w3.org/People/Raggett/EzMath/} + +\item +T. V. Raman, Audio System for Technical Readings, +\url{http://emacspeak.sourceforge.net/raman/publications/web-aster/root-thesis.html.html} +(section 4.3) +Demo: \url{http://emacspeak.sourceforge.net/raman/aster/aster-toplevel.html} +\item +DotsPlus megaDots + +That said, I have developed a computer program which translates math +entered into Megadots into files in which the math symbols have been +translated into words. These can be read by any browser. The advantage is +that a computer is considerably more patient than a human. + + +The MegaDots technology now belongs to Duxbury. I have a special +arrangement to use MegaDots here at CHPI, so I can use the program here, +but I can't release it. In addition, it works only with MegaDots files. +\end{itemize} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + + + + + + +\<<< +\Configure{equation*} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<\tbl:XV{equation-star 3}>}\IgnorePar + } + {\end:TTT\ifmmode\else |\fi} +>>> + + + + + + + + +\<<< +\def\AccentMath#1{\relax\ifmmode #1\else $#1$\fi} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Constructs} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The equation Environment} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\let\A:equation|=\a:equation +\let\B:equation|=\b:equation +\let\C:equation|=\c:equation +\Configure{equation} + {\A:equation|} + {\B:equation}{\C:equation} +>>> + + + + + +\<<< +display="block" +>>> + + +\<<< +display="inline" +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{MathML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +\section{?????} +%%%%%%%%%%%%%%%%% + +\Link[http://lists.w3.org/Archives/Public/www-math/]{}{}mailing list\EndLink + + +\<<< +\ifx \a:mathml\:UnDef + \NewConfigure{mathml}{1} + \Configure{mathml}{} +\fi +\defclass{class} +>>> + + +\<<< +| +| +>>> + + +\<\><<< +\def\mml:prefix#1{% + \Configure{mathop}{*}{}{}% + {\Configure{mathop}{*}{}{}{}}} +\def\mml:prefix#1{} +\def\limit:csname{|%form="prefix" |%class="csname-limit"} +\def\nolimit:csname{|%form="prefix" |%class="csname-nolimit"} +>>> + + +\<<< +\def\:tempb#1{% + \def\:tempc##11->##2///{\if :##2:% + \pend:def#1{\mml:prefix \nolimit:csname}\fi}% + \expandafter\:tempc\meaning#11->///% +} +\:tempb\arccos +\:tempb\arcsin +\:tempb\arctan +\:tempb\arg +\:tempb\cosh +\:tempb\cos +\:tempb\coth +\:tempb\cot +\:tempb\csc +\:tempb\deg +\:tempb\dim +\:tempb\exp +\:tempb\hom +\:tempb\ker +\:tempb\lg +\:tempb\ln +\:tempb\log +\:tempb\sec +\:tempb\sinh +\:tempb\sin +\:tempb\tanh +\:tempb\tan +| +>>> + +\<<< +\def\:tempb#1{% + \def\:tempc##11->##2///{\if :##2:% + \pend:def#1{\mml:prefix \limit:csname}\fi}% + \expandafter\:tempc\meaning#11->///% +} +\:tempb\Pr +\:tempb\det +\:tempb\gcd +\:tempb\inf +\:tempb\lim +\:tempb\max +\:tempb\min +\:tempb\sup +>>> + +\<<< +\def\:tempc{\mml:prefix\limit:csname \mathop{\operator@font lim inf}} +\HLet\liminf\:tempc +\def\:tempc{\mml:prefix\limit:csname \mathop{\operator@font lim sup}} +\HLet\limsup\:tempc +>>> + + +\<<< +\let\A:displaylines|=\a:displaylines +\let\B:displaylines|=\b:displaylines +\let\C:displaylines|=\c:displaylines +\let\D:displaylines|=\d:displaylines +\Configure{displaylines} + {\ifmmode + \def\A:displaylines{\HCode{}}% + \def\B:displaylines{\HCode{}}% + \def\C:displaylines{\HCode{}}% + \def\D:displaylines{\HCode{}}% + \fi + \A:displaylines} + {\B:displaylines} {\C:displaylines}{\D:displaylines} +>>> + + + +\<<< +\def\m:env#1{\HCode{}% + \def\endm:env{\HCode + {}}} +>>> + + + + + + +\<<< +| +| + +>>> + + + + + + + + + + +\<<< +\Configure{htf}{0}{+}{}{}% +\Configure{htf}{1}{+}{}% +\Configure{htf}{3}{+}{}% +\Configure{htf}{4}{+}{}{}% +\Configure{htf}{6}{+}{}{}% +\Configure{htf}{8}{+} + {}{}{}{}{}{}{}% +\Configure{htf}{10}{+} + {}{}{}{}{}{}{}% +\Configure{htf}{12}{+} + {}{}{}{}{}{}{}% +>>> + +\<<< +\Configure{htf}{0}{+}{}{}{}{}{}{}{}% +\Configure{htf}{1}{+}{}{}{}{}{}{}{}% +\Configure{htf}{3}{+}{}{}{}{}{}{}{}% +\Configure{htf}{4}{+}{}{}{}{}{}{}{}% +\Configure{htf}{6}{+}{}{}{}{}{}{}{}% +\Configure{htf}{8}{+}{}{}{}{}{}{}{}% +\Configure{htf}{10}{+}{}{}{}{}{}{}{}% +\Configure{htf}{12}{+}{}{}{}{}{}{}{}% +>>> + + + + + +\<<< +\def\mml:htfsym{\Configure + {htf}{254}{+}{}} +\def\ext:htfsym{\Configure{htf}{254}{+}{}{}{}{}{}{}{}} +>>> + + +\<<< +\append:def\mml:htfsym{|} +\append:def\ext:htfsym{|} +>>> + + +We reserve code 254 (and 255) for unknown symbols. + + +\<<< + + +| +>>> + +\<<< +| +>>> + +\<<< +| +| +>>> + +\<<< +| +| + +>>> + +\<<< +\Configure{intertext} + {\IgnorePar \ifinalign@ + \HCode{\ifnum \HRow>0 \fi + }% + \else \ifingather@ + \HCode{}% + \fi\fi + \AA:text{intertext}% + } + {\BB:text \ifvmode \IgnorePar \fi \EndP\ifinalign@ + \HCode{% + \ifnum \HRow>0 \fi}% + \else \ifingather@ + \HCode{}% + \fi\fi + } +>>> + + + +\<<< +\Configure{maketag} + {\ifmathml + \ifmtext \expandafter\expandafter\expandafter\no:maketag\fi + \else \expandafter\no:maketag\fi + \AA:text{maketag}\hbox\bgroup\:gobbleIII :@:} + {\egroup\BB:text } +\def\no:maketag#1:@:#2\b:maketag{\hbox{#2}} +>>> + + +\<<< +\Configure{text}{\AA:text{text}}{\BB:text} +>>> + + +\<<< +\def\:tempc{\DOTSI\protect\:idotsint} +\HLet\idotsint|=\:tempc +\def\:idotsint{% + \mathop{\intop\cdotp\cdotp\cdotp\intop }\ilimits@ +} +>>> + +\<<< +| +>>> + +\<<< +% amstex.sty +| +| +| + >>> + +\<<< +% amstex.tex +| +| +>>> + + \<<< + | + >>> + + + + + +\<<< +\Configure{romannumeral} + {\ifmathml\ifmtext\else \HCode{}\fi\fi} + {\ifmathml\ifmtext\else \HCode{}\fi\fi} +>>> + +\<<< +\Configure{romannumeral} + {\ifmtext\else + \HCode{<\ifmathml mrow \else span \fi class="romannumeral">}\fi + } + {\ifmtext\else \HCode{}\fi } +>>> + + + + +\<<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathml:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\ifmmode + \Tg\mathord{#3}\Tg% + \else \HCode{}#3\HCode{}% + \fi + }% + \fi +\fi +>>> + + + + \<<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathml:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\Tg\mathord{#3}\Tg% + }% + \fi +\fi +>>> + + + + + + + +The special replaces the `x' character. + + +\<<< +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{VERSION,*XML-STYLESHEET} +\fi +>>> + +% \Configure{VERSION} +% {\HCode{\Hnewline}} + + +\<<< +\def\mathml:DOCTYPE{|} +\def\:temp{xhtml} +\ifx \:DTD\:temp + | +\fi +>>> + + +\<<< +\Configure{DOCTYPE}{\HCode + {% + >\Hnewline +}} +>>> + +\<<< +PUBLIC + "-//W3C//DTD XHTML 1.1 plus MathML 2.0//|"\Hnewline + "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"\Hnewline + [\Hnewline + \Hnewline + ]>>> + + +\<<< +PUBLIC + "-//W3C//DTD XHTML 1.1 plus MathML 2.0//|"\Hnewline + "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd" +>>> + +DTD to be used. + +\begin{description} + +\item [http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd] + +Declares a FPI (Formal Public Identifier) +``-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'' for XHTML+MathML. The DTD is broken +sine it contains a processing instruction +\verb!! with a colon in the name. XML +parsers don't allow it when namespaces are enabled. It carries +revision id `xhtml-1,v 1.1 2000/10/31 19:52:09 davidc Exp'. + +\item[http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd] + +Suggested by the MathML +specification + http://www.w3.org/TR/2003/REC-MathML2-20031021/appendixa.html. However, the +DTD incorporates also SVG. It shows revision id +`xhtml-math11-f.dtd,v 1.16 2003/11/04 13:14:35 davidc Exp' + +\item [others] + +See SVG specifications +\end{description} + +The DTD +a "-//W3C//DTD XHTML 1.1 plus MathML +2.0//EN" is claimed: + + + + + +\<<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +\<<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + +\<<< +\let\mml:TeX|=\TeX +\def\TeX{\ifmathml + \HCode{TeX}\else \mml:TeX\fi} +>>> + + +\subsection{TeX Engine} + + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + + + + + + +\<<< +\newif\ifmathml \mathmlfalse +\newif\ifmtext \mtextfalse +| +\NewConfigure{math}{1} +\NewConfigure{@math}{1} +\def\IgnoreRule{\ht:special{t4ht@\string_}} +\def\EndIgnoreRule{\ht:special{t4ht@\string_\string_}} +\Configure{$$} + {\Configure{@math}{|}\IgnorePar + |\EndP\DviMath} + {\EndDviMath\ShowPar\par{\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +\Configure{$} + {\Configure{@math}{|}\DviMath} + {\EndDviMath}{} +\newif\ifDisplayMath \DisplayMathfalse +>>> + + +The \verb+\sqrt+ fanction produces a structure of the following form. + +\begin{verbatim} +PUSH + PUSH + ......sqrt et al symbols, possibly with PUSH-POP...... + POP + PUSH + W3: 655361 + DOWN3: -1020474 + PUT_RULE: height: 26213 + length: 1091179 + DOWN3: 1020474 + PUSH + .....body......... + POP + POP +POP +\end{verbatim} + + + +The following fails when the root symbol is made up +from multiple characters. + +\begin{verbatim} +\Configure{radical}{\Tg% + \Send{EndGROUP}{2}{}% + \Send{GROUP}{3}{}% + \Send{EndGROUP}{3}% + {\tg\tg}\special{t4ht@+}} +\end{verbatim} + + + + + +\<<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {}{}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> + + + +The \verb'\MathRow' requests a \verb'...', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + +\<<< +\def\:MT{\ifmathml m\fi} +\Configure{halignTB}{\HCode{<\:MT table }\halignTBL}{\HCode{>}} +\Configure{halignTBL} + {t}{\ifmathml \HCode{ align="top" }\fi} + {b}{\ifmathml \HCode{ align="baseline" }\fi} + {c}{\ifmathml \HCode{ align="axis" }\fi} + {} +\def\t:HA{\HCode{}} +\def\R:HA{\HCode{<\:MT tr \Hnewline valign="baseline">}} +\def\r:HA{\HCode{}} +\def\D:HA{\HCode{<\:MT td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}} +\def\d:HA{\HCode{}} +>>> + + +\subsection{latex.ltx} + + +MathML: +\begin{verbatim} +Authors wishing to encode whitespace characters at the start +or end of the content of a token, or in sequences other than a single +space, without having them ignored, must use   or other +`whitespace' non-marking entities as described in Section 6.2.4 +[Non-Marking Characters]. +\end{verbatim} + + + +\<<< +\Configure{newline} + {\ifmtext |\HCode{< + mtext class="newline">}% + |% + \else \Tg\fi} +>>> + +\<<< +\Configure{newline} + {|\HCode{}|} +>>> + + + +\<<< +\NewConfigure{mathml[]}{2} +\NewConfigure{mathml()}{2} +>>> + +\<<< +\Configure{mathml[]} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{
}} + {\HCode{
}|} +\Css{div.math-display, div.par-math-display{text-align:center;}} +>>> + + + + +\<<< +\Configure{[]} + {\Configure{@math}{|}\csname a:mathml[]\endcsname + \DviMath\Tg$$\DisplayMathtrue } + {$$\Tg\EndDviMath\csname b:mathml[]\endcsname + \if@rl\else\beginR\fi } +>>> + + + + + + +\<<< +| +\let\A:fbox=\a:fbox +\let\B:fbox=\b:fbox +\let\OLDf:box=\fbox +\def\fbox{\relax\ifmmode + \Configure{fbox}{\leavevmode\Configure{HtmlPar}{}{}{}{}\IgnoreRule + \AA:text{fbox}}{\BB:text\EndIgnoreRule}\else + \Configure{fbox}{\leavevmode + \IgnoreRule\A:fbox}{\B:fbox\EndIgnoreRule}\fi + \OLDf:box} +\let\A:mbox|=\a:mbox +\let\B:mbox|=\b:mbox +\let\OLD:mbox|=\mbox +\def\mbox{\relax\ifmmode \Configure{mbox}{\AA:text{mbox}}{\BB:text}\else + \Configure{mbox}{\A:mbox}{\B:mbox}\fi\OLD:mbox} +| +>>> + + + + + +\begin{verbatim} +\documentclass{article} +\begin{document} +$ \mbox{is right-continuous at } -r $ +\end{document} + +I see the problematic space between + + is right-continuous at + +and + + -r + +but I don't understand it. The mathml code currently has there + + is right-continuous at + r + +Replacing mrow with mstyle doesn't make a difference. Removing +the mrow solves the problem of the extra space. + +I introduced the above changes to the mathml and mozilla-mathml +configurations, respectively. +\end{verbatim} + + + + + +\<<< +| +\Configure{text}{\AA:text{text}}{\BB:text} +\Configure{format} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{
}} + {\HCode{}} + {\HCode{}} +>>> + +\<<< +\Configure{frac} + {\Tg\Tg} + {\Tg\Configure{over}{}{}} + {\Tg} + {\Tg\Tg} +>>> + + + +\<<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + | + \else + | + \fi +\else + | +\fi +>>> + + +% \Configure{quad}{{\ifmathml \ifmtext \o:quad:\else +% \fi\else \o:quad: \fi}} +% + + + + + +\<<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + +% \Configure{math}{} + +\<<< +\Configure{texttt} + {\ifmathml \Configure{@mtext}{class="texttt" + mathvariant="monospace" }\fi} + {}% +\Configure{textit} + {\ifmathml \Configure{@mtext}{class="textit" + mathvariant="italic" }\fi} + {}% +\Configure{textrm} + {\ifmathml \Configure{@mtext}{class="textrm" + mathvariant="normal" }\fi} + {}% +\Configure{textup} + {\ifmathml \Configure{@mtext}{class="textup" + mathvariant="normal" }\fi} + {}% +\Configure{textsl} + {\ifmathml \Configure{@mtext}{class="textsl" + mathvariant="italic" }\fi} + {}% +\Configure{textsf} + {\ifmathml \Configure{@mtext}{class="textsf" + mathvariant="sans-serif" }\fi} + {}% +\Configure{textbf} + {\ifmathml \Configure{@mtext}{class="textbf" + mathvariant="bold" }\fi} + {}% +\Configure{textsc} + {\ifmathml \Configure{@mtext}{class="textsc" + mathvariant="normal" }\fi} + {}% +\Configure{emph} + {\ifmathml \Configure{@mtext}{class="emph" + mathvariant="italic" }\fi} + {}% +>>> + + + + +\<<< +\:CheckOption{fonts} \if:Option +\Configure{texttt} + {\ifmathml \Configure{@mtext}{class="texttt" mathvariant="monospace" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{textit} + {\ifmathml \Configure{@mtext}{class="textit" mathvariant="italic" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{textrm} + {\ifmathml \Configure{@mtext}{ class="textrm" mathvariant="normal" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{textup} + {\ifmathml \Configure{@mtext}{ class="textup" mathvariant="normal" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{textsl} + {\ifmathml \Configure{@mtext}{ class="textst" mathvariant="italic" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{textsf} + {\ifmathml \Configure{@mtext}{ class="textsf" mathvariant="sans-serif" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{textbf} + {\ifmathml \Configure{@mtext}{ class="textbf" mathvariant="bold" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{textsc} + {\ifmathml \Configure{@mtext}{ class="textsc" mathvariant="normal" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} + \Configure{emph} + {\ifmathml \Configure{@mtext}{ class="emph" mathvariant="italic" }% + \else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} +\fi +>>> + +The \verb+\bgroup...\egroup+ is to handle cases like +\verb+\nathbf{a}^x+. + + +\<<< +\Configure{mathbb}{}{} +\Configure{mathfrak}{}{} +>>> + + + +Used to be + +\begin{verbatim} + \Configure{mathrm}{\Tg\PauseMathClass}% + {\EndPauseMathClass\Tg}% + \Configure{mathbf}{\Tg\PauseMathClass}% + {\EndPauseMathClass\Tg}% +\end{verbatim} + + +\<<< +\Css{math .texttt { font-family: monospace; }} +\Css{math .textit { font-style: italic; }} +\Css{math .textsl { font-style: oblique; }} +\Css{math .textsf { font-family: sans-serif; }} +\Css{math .textbf { font-weight: bold; }} +>>> + + + + + +\<<< +\Configure{afterSUB}{'}{\def\SUB:prime{\SUB:SUP}} +\Configure{'} + {\let\:primes=\empty} + {\relax \csname SUB:prime\endcsname\sp{% + \global\let\SUB:prime=\:UnDef + \def\:tempa{\prime\prime}\ifx \:tempa\:primes + \mathop{\HCode{\string&\#x2033;}}\else + \def\:tempa{\prime\prime\prime}\ifx \:tempa\:primes + \mathop{\HCode{\string&\#x2034;}}\else + \:primes \fi\fi}% + } + {\let\prime=\relax \xdef\:primes{\:primes\prime}} +>>> + +LaTeX places the primes within superscript, and mathml seems to follow +suit (maybe because of the use of latex fonts in mozilla). However, +unicode maps already seem to assume raised representation for the +primes. + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{plain.sty} +%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<<< + \Configure{eqalign} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\IgnorePar\HCode{}} + {\HCode{\ifnum \HCol=3 \fi + }} + {\HCode{}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Palin + LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + +\<<< +\def\:temp#1{\a:left{#1}\o:left:.\b:left{#1}} \HLet\left|=\:temp +\def\:temp#1{\a:right{#1}\o:right:.\b:right{#1}}\HLet\right|=\:temp +\Configure{left} + {} + {\HCode{}\bgroup} +\Configure{right} + {\egroup\Send{GROUP}{0}{ close="|"\space}\egroup} + {\HCode{}} +\def\def:DEL#1{\def\:DEL{#1}} +\def\check:DEL#1#2{\def\:tempa{#1}\ifx \:tempa\:DEL \def\:DEL{#2}\fi} +\NewConfigure{mfenced}[2]{\append:defI\def:DEL{\check:DEL{#1}{#2}}} + + +>>> + + +\<<< +\def\:tempc#1{\a:middle\mathrel{\left:right#1\:EMPTY}\b:middle} +\HLet\middle=\:tempc +\NewConfigure{middle}{2} +\Configure{middle} + {\bgroup + \Configure{mathrel}{*} + {} + {} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +>>> + + + + + +\<<< +\NewConfigure{mfenced}[2]{\expandafter + \def\csname \string#1:lr del\endcsname{#2}} +| +>>> + +\<<< +\Configure{mfenced}{\lvert}{\string&\#x007C;} |%vertical line|% +\Configure{mfenced}{\rvert}{\string&\#x007C;} |%double vertical line|% +\Configure{mfenced}{\lVert}{\string&\#x2016;} +\Configure{mfenced}{\rVert}{\string&\#x2016;} +>>> + +\<<< +\Configure{mfenced}{\lvert}{\string&\#x007C;} +\Configure{mfenced}{\rvert}{\string&\#x007C;} +\Configure{mfenced}{\lVert}{\string&\#x2016;} +\Configure{mfenced}{\rVert}{\string&\#x2016;} +>>> + + + + + + +\<<< +\Configure{mfenced}{\||}{\string&\#x2225;} +\Configure{mfenced}{.}{} +\Configure{mfenced}{\langle}{\string&\#x27E8;} |%lang|% +\Configure{mfenced}{\rangle}{\string&\#x27E9;} |%rang|% +\Configure{mfenced}{<}{\string&\#x003C;} |%lt|% +\Configure{mfenced}{>}{\string&\#x003E;} |%gt|% +\Configure{mfenced}{\lceil}{\string&\#x2308;} +\Configure{mfenced}{\rceil}{\string&\#x2309;} +\Configure{mfenced}{\lfloor}{\string&\#x230A;} +\Configure{mfenced}{\rfloor}{\string&\#x230B;} +\Configure{mfenced}{\Vert}{\string&\#x2016;} +\Configure{mfenced}{\vert}{\string&\#x007C;} +\Configure{mfenced}{\rgroup}{)} +\Configure{mfenced}{\lgroup}{(} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\downarrow}{\string&\#x2193;} +\Configure{mfenced}{\uparrow}{\string&\#x2191;} +\Configure{mfenced}{\Uparrow}{\string&\#x21D1;} +\Configure{mfenced}{\updownarrow}{\string&\#x2195;} +\Configure{mfenced}{\Updownarrow}{\string&\#x21D5;} +\Configure{mfenced}{\Downarrow}{\string&\#x21D3;} +\Configure{mfenced}{\backslash}{\string&\#x2216;} +\Configure{mfenced}{\rmoustache}{\string&\#x25DD;} +\Configure{mfenced}{\lmoustache}{\string&\#x25DC;} +\Configure{mfenced}{\Arrowvert}{\string&\#x2225;} +\Configure{mfenced}{\arrowvert}{\string&\#x2223;} +>>> + +% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else +% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else +% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else +% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}% +% \fi\fi\fi\fi } +% \edef\lbrc:{\string{} \edef\rbrc:{\string}} + +% \HCode{\string#1;}% + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Amsmath} +%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Css{mtd.align-odd{margin-left:2em; text-align:right;}} +\Css{mtd.align-even{margin-right:2em; text-align:left;}} +>>> + + + + + +Setting \verb+#1+ below within mrow is problematic in the sense that +arrows don't stretch over multi-characters content \verb+#2+. +A \verb+accent="true"+ move the arrow lower, but also distribute the +characters further apart. + +\<<< +\Tg% +\Tg#2\Tg% +#1% +\Tg% +>>> + +\<<< +\Tg% +\Tg{#2#3}\Tg% +#1% +\Tg% +>>> + + + + +% \Tg#1\Tg% +% \Tg#1\Tg% + + +\<<< +\Configure{underarrow@} + {\Tg\Tg} + {\Tg\Tg} + {\Tg\Tg} +\Configure{overarrow@} + {\Tg\Tg} + {\Tg\Tg} + {\Tg\Tg} +\def\:tempc#1#2#3{\a:overarrow@ + \hbox{$\m@th#2#3$}\b:overarrow@ + \hbox{#1#2}\c:overarrow@ + } +\HLet\overarrow@\:tempc +>>> + + + + + +\<<< +\ifx \o:overrightarrow:\:UnDef\else + \HRestore\overrightarrow + \HRestore\overleftarrow + \HRestore\overleftrightarrow +\fi +>>> + + + +\<<< +\HRestore\overrightarrow +\HRestore\overleftarrow +\HRestore\overleftrightarrow +>>> + +\<<< +\HRestore\overrightarrow +\HRestore\overleftarrow +\HRestore\overleftrightarrow +>>> + +% \HRestore\underrightarrow +% \HRestore\underleftarrow +% \HRestore\underleftrightarrow + + + + +\<\><<< +\def\:tempc{\mathpalette{\overarrow@\rightarrow}} +\HLet\overrightarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow@\leftarrow}} +\HLet\overleftarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow@\leftrightarrow}} +\HLet\overleftrightarrow=\:tempc + +\def\:tempc{\mathpalette{\underarrow@\rightarrow}} +\HLet\underrightarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow@\leftarrow}} +\HLet\underleftarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow@\leftrightarrow}} +\HLet\underleftrightarrow=\:tempc +>>> + + +Replace with +\Link[http://www.unicode.org/charts/PDF/U27F0.pdf]{}{}stretching +arrows\EndLink{} once they work. It was \verb+\rightarrow+ (U-2192) +before going to \verb+\HCode{&\#x20D7;}+. +(... suggested +to replace it with +the diacritical one: \verb+⃗+. I t solves two problems. The arrow is +lower and the the spacing between a subscript and a vector is +reduced.) + + +\<\><<< +\def\underarrow:#1#2#3{|} +\def\overarrow:#1#2#3{|} +\def\:tempc{\mathpalette{\overarrow:\rightarrow}} +\HLet\overrightarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow:\leftarrow}} +\HLet\overleftarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow:\leftrightarrow}} +\HLet\overleftrightarrow=\:tempc +>>> + +\<\><<< +\def\:tempc{\mathpalette{\underarrow:\rightarrow}} +\HLet\underrightarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow:\leftarrow}} +\HLet\underleftarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow:\leftrightarrow}} +\HLet\underleftrightarrow=\:tempc +>>> + + + +\<<< +| + + +\renewcommand{\hdotsfor}[1]{% + \ifx[#1\@xp\shdots@for\else\hdots@for\@ne{#1}\fi} +\def\shdots@for#1]{\hdots@for{#1}} +\def\hdots@for#1#2{\multicolumn{#2}c% + {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@ + \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}% + \hfill + \mkern-#1\dotsspace@}% + } +\ConfigureEnv{eqxample}{}{}{}{} +\ConfigureEnv{gather*}{}{}{}{} +\ConfigureEnv{gathered}{}{}{}{} +\ConfigureEnv{matrix}{}{}{}{} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{amsopn} +%%%%%%%%%%%%%%%%%%%% + + +\<<< +\def\varinjlim{{\underrightarrow\lim}} +\def\varprojlim{{\underleftarrow\lim}} +\def\varlimsup{{\overline\lim}} +\def\varliminf{{\underline\lim}} +\def\:tempc#1#2#3{\hbox{{\mtexttrue + \HCode{}|\PauseMathClass + \Configure{$}{\EndPauseMathClass\mtextfalse + |\HCode{}} + {|\HCode{}\mtexttrue\PauseMathClass}{#1} + \let\f@size#2\selectfont #3}% + \mtextfalse \EndPauseMathClass |\HCode + {}}} +\HLet\textdef@\:tempc +>>> + + +The original definitions for the following macros contain small spaces +\verb+\,+ in the names, and the spaces imply improper mathml outcome +of the form \verb+......+. + + +\<<< +\def\:tempc{\qopname\relax m{lim inf}} +\HLet\liminf=\:tempc +\def\:tempc{\qopname\relax m{lim sup}} +\HLet\limsup=\:tempc +\def\:tempc{\qopname\relax m{proj lim}} +\HLet\projlim=\:tempc +\def\:tempc{\qopname\relax m{inj lim}} +\HLet\injlim=\:tempc +>>> + + + + + +Why originally the accents are defined within a group? (knuth answer +this in the texbook.) + +\<<< +\let\A:oalign|=\a:oalign +\let\B:oalign|=\b:oalign +\Configure{oalign} + {\ifmmode \Configure{$}{\Tg}{\Tg}{}% + \let\halign|=\TeXhalign + \Tg\else\A:oalign + \fi} + {\ifmmode \Tg\else\B:oalign\fi} +>>> + + + +\<\><<< +\Configure{qopname} + {\Configure{mathop*}{*} + {} + {} + {\Configure{mathop}{}{}{}{}}} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{Eqnarray} +%%%%%%%%%%%%%%%%%%%% + +Had `BASELINE' before `MIDDLE', but changed to conform with math +in page 252-- in intro to theory book. + +\<<< +\Configure{eqnarray} + {\HCode{}}{\HCode{}} + {\HCode{}} {\HCode{}} + {\Tg + \ifnum \HCol=4 + \Tg|\PauseMathClass + \mtexttrue + \fi} + {\ifnum \HCol=4 \mtextfalse + \EndPauseMathClass|\Tg\fi + \Tg} +>>> + + + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{-left}} + {-}{\HCode{-center}} + {>}{\HCode{-right}} + {p}{\HCode{-left}} + {}% +>>> + + +\<<< +\Configure{halignTD} {}{} + {<}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ align="left" style="white-space:nowrap;"}\fi} + {-}{\ifmathml \HCode{ columnalign="center"}\else + \HCode{ align="center" style="white-space:nowrap;"}\fi} + {>}{\ifmathml \HCode{ columnalign="right"}\else + \HCode{ align="right" style="white-space:nowrap;"}\fi} + {^}{\ifmathml \HCode{ rowalign="top"}\else + \HCode{ valign="top" style="white-space:nowrap;"}\fi} + {=}{\ifmathml \HCode{ rowalign="baseline"}\else + \HCode{ valign="baseline" style="white-space:nowrap;"}\fi} + {||}{\ifmathml \HCode{ rowalign="center"}\else + \HCode{ valign="middle" style="white-space:nowrap;"}\fi} + {_}{\ifmathml \HCode{ rowalign="bottom"}\else + \HCode{ valign="bottom" style="white-space:nowrap;"}\fi} + {p}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ align="left"}\fi} + {} +>>> + + + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{ columnalign="left"}} + {-}{\HCode{ columnalign="center"}} + {>}{\HCode{ columnalign="right"}} + {^}{\HCode{ rowalign="top"}} + {=}{\HCode{ rowalign="baseline"}} + {||}{\HCode{ rowalign="center"}} + {_}{\HCode{ rowalign="bottom"}} + {p}{\HCode{ columnalign="left"}} + {} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Big, BIG, ....} +%%%%%%%%%%%%%%%%%%%%%%%%% + +The +\verb'\special{t4ht@[}...\special{t4ht@]}' gobble the enclosed stuff. +The external pair is provided as grouping mechanism for +sub/super-scripts cases like \verb'\bigl(...\bigr)^x' within dvimath +mode. The \verb'{\HCode{}}' is neded for creating content delimiters +\verb'.' delimiters like in \verb'$\bigl. a_b \bigr)$'; without that mathml +gets something wrong there. + + +\begin{verbatim} + > There are some minor problems wit \bigl | corresponding to #x2223 in + > Mozilla encoding + > but I eliminted it by using \left | which turned to be a right solution. + +The \big... macros decide the dimensions of the delimiters. As is the +case with \sum, also here I don't know how to transport the dimensions +to mozilla. + +The \left...\right macros ask latex/mozilla to determine the +dimensions. +\end{verbatim} + + + + +\verb+\bigl{.}+ et al produce empty para,etr , hence the \verb+\:EMPTY+ is a ompensation for such cases. + + +% \R=8.5; \R*1.4; \WriteVal\R +% \R=11.5; \R*1.4; \WriteVal\R +% \R=14.5; \R*1.4; \WriteVal\R +% \R=17.5; \R*1.4; \WriteVal\R + + +\<<< +\def\:tempc#1{{\hbox{\a:big$\c:big + \left#1\hbox{}\right.\n@space\d:big$\b:big}}} +\HLet\big=\:tempc +\def\:tempc#1{{\hbox{\a:Big$\c:Big + \left#1\hbox{}\right.\n@space\d:Big$\b:Big}}} +\HLet\Big=\:tempc +\def\:tempc#1{{\hbox{\a:bigg$\c:bigg + \left#1\hbox{}\right.\n@space\d:bigg$\b:bigg}}} +\HLet\bigg=\:tempc +\def\:tempc#1{{\hbox{\a:Bigg$\c:Bigg + \left#1\hbox{}\right.\n@space\d:Bigg$\b:Bigg}}} +\HLet\Bigg=\:tempc +>>> + +\<<< +\Configure{pmb} + {\ifmmode \HCode{}\fi} + {\ifmmode \HCode{}\fi} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{stackrel} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\def\:temp#1#2{{\a:stackrel{#1}\b:stackrel {#2}\c:stackrel}} +\HLet\stackrel|=\:temp +\:CheckOption{stackrel-} \if:Option + \Configure{stackrel} + {\mathrel\bgroup \HCode{}\egroup} + \def\put:arg{\HCode{{\the\tmp:toks}}} +\else + \Configure{stackrel} + {\HCode{}\inv:i:iii} + {\HCode{<\empty + mrow\Hnewline>}|\mathop} + {\HCode{}} + \def\inv:i:iii#1#2#3{{#3}#2{#1}} +\fi +>>> + +\<<< +\Configure{mathop*}{*} + {} + {} + {\Configure{mathop}{}{}{}{}}% +>>> + +\subsection{fontmath.ltx} + + +Accent versus underscript: \verb=\underbrace{x+y+z}= + versus \verb=\underbrace{\strut x+y+z}= + +\<\><<< +\def\:temp#1{% + \Configure{mathop*}{*}{} + {}% + {\Configure{mathop}{}{}{}{}}% + \mathop{\hbox{$\displaystyle{#1}$}}\limits} +\HLet\underbrace|=\:temp +\def\:temp#1{% + \Configure{mathop*}{*}{} + {}% + {\Configure{mathop}{}{}{}{}}% + \mathop{\hbox{$\displaystyle{#1}$}}\limits} +\HLet\overbrace|=\:temp +>>> + + +\<<< +\def\:temp#1{% + \Configure{mathop*}{*}{} + {}% + {\Configure{mathop}{}{}{}{}}% + \mathop{\vtop{$\displaystyle{#1}$}}\limits} +\HLet\underbrace|=\:temp +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sized Operations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + + +\<<< +\ifx \ilimits@\o:nolimits: + \let\ilimits@\nolimits +\fi +\ifx \ilimits@\o:nolimits: + \let\slimits@\nolimits +\fi +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Underline and Overline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Choose} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{choose} + {\Send{GROUP}{0}{\Hnewline + }\HCode{}} + {\HCode{\Hnewline} + \Send{EndGROUP}{0}{}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{footnote-mark} + {\ifmathml \ifmtext \else + \HCode{}\fi + \else \HCode{}\fi } + {\ifmathml \ifmtext \else \HCode{}\fi + \else \HCode{}\fi } +\Configure{thank-mark} + {\HCode{<\ifmathml mrow \expandafterclass\else span class\fi + ="thank-mark">}} + {\HCode{}} +>>> + + + + + +The following code segments handle the different listed cases, +with possible exception of the last. + +\begin{verbatim} +a\footnote{b c} + +$a\footnote{b c}$ + +$a\footnote{\hbox{b c}}$ + +$a\footnote{\mbox{b c}}$ + +$a\mbox{\footnote{b c}}$ +\end{verbatim} + + +We have the following hooks + + +\begin{verbatim} +\def\@footnotemark{...\a:@makefnmark\@makefnmark + \b:@makefnmark...} +\long\def\@footnotetext#1{...\a:footnote-text\a:@makefntext + \@makefntext{\b:@makefntext + \a:@makefnbody #1\b:@makefnbody + }\c:@makefntext\b:footnote-text...} +\end{verbatim} + + + + + +\<<< +\:CheckOption{fn-in}\if:Option \else + \expandafter\let\csname A:footnote-text\expandafter\endcsname + \csname a:footnote-text\endcsname + \expandafter\let\csname B:footnote-text\expandafter\endcsname + \csname b:footnote-text\endcsname + \NewConfigure{footnote-text}[2]{% + \expandafter\def\csname a:footnote-text\endcsname{% + #1% + \ifmathml + \HCode{% + \ifmtext \fi} + \fi + \ifmathml \fi + }% + \expandafter\def\csname b:footnote-text\endcsname{% + \ifmathml + \HCode{\ifmtext\fi }% + \fi + #2% + }% + } + \Configure{footnote-text} + {\csname A:footnote-text\endcsname} + {\csname B:footnote-text\endcsname} +\fi +>>> + + + +\<<< +\let\A:footnotetext=\a:footnotetext +\let\B:footnotetext=\b:footnotetext +\let\C:footnotetext=\c:footnotetext +\NewConfigure{footnotetext}[3]{% + \def\a:footnotetext{% + \ifmathml \ifmtext |\fi\fi + #1% + \ifmathml \ifmtext |\fi\fi + }% + \def\b:footnotetext{% + \ifmathml \ifmtext |\fi\fi + #2% + \ifmathml \ifmtext |\fi\fi + }% + \def\c:footnotetext{% + \ifmathml \ifmtext |\fi\fi + #3% + \ifmathml \ifmtext |\fi\fi + }% +} +\Configure{footnotetext} + {\A:footnotetext} + {\B:footnotetext} + {\C:footnotetext} +>>> + +\<<< +\Configure{footnotebody} + {\tmp:toks=} + {\ifmathml \ifmmode $\mbox{$\the\tmp:toks$}$ + \else $\mbox{\the\tmp:toks}$\fi + \else \the\tmp:toks\fi} +>>> + + +\<<< +\:CheckOption{mouseover} \if:Option + \pend:def\js:on{\ifmathml \ifmtext |\fi\fi} + \append:def\js:on{\ifmathml \ifmtext |\fi\fi} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Space Characters} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +% {\mathchar"0403} % \square +% {\mathchar"0404} % \blacksquare +% {\mathchar"0406} % \lozenge +% {\mathchar"0407} % \blacklozenge +% {\mathchar"0438} % \backprime +% {\mathchar"0446} % \bigstar +% {\mathchar"0448} % \blacktriangledown +% {\mathchar"044E} % \blacktriangle +% {\mathchar"044F} % \triangledown +% {\mathchar"045D} % \measuredangle +% {\mathchar"045E} % \sphericalangle +% {\mathchar"0473} % \circledS +% {\mathchar"047B} % \complement +% {\mathchar"051E} % \diagup +% {\mathchar"051F} % \diagdown +% {\mathchar"053F} % \varnothing +% {\mathchar"0540} % \nexists +% {\mathchar"0560} % \Finv +% {\mathchar"0561} % \Game +% {\mathchar"0567} % \eth +% {\mathchar"0569} % \beth +% {\mathchar"056A} % \gimel +% {\mathchar"056B} % \daleth +% {\mathchar"057A} % \digamma +% {\mathchar"057B} % \varkappa +% {\mathchar"057C} % \Bbbk +% {\mathchar"057D} % \hslash + + +\<<< +\def\:tempa#1"#2#3///{\Configure{MathClass}{#2}} +\def\:temp#1{\:tempa#1///{}{}{}{#1}} +\:temp{\mathchar"2400} |% \boxdot |% +\:temp{\mathchar"2401} |% \boxplus |% +\:temp{\mathchar"2402} |% \boxtimes |% +\:temp{\mathchar"2405} |% \centerdot |% +\:temp{\mathchar"240C} |% \boxminus |% +\:temp{\mathchar"2459} |% \veebar |% +\:temp{\mathchar"245A} |% \barwedge |% +\:temp{\mathchar"245B} |% \doublebarwedge |% +\:temp{\mathchar"2464} |% \Cup |% +\:temp{\mathchar"2465} |% \Cap |% +\:temp{\mathchar"2466} |% \curlywedge |% +\:temp{\mathchar"2467} |% \curlyvee |% +\:temp{\mathchar"2468} |% \leftthreetimes |% +\:temp{\mathchar"2469} |% \rightthreetimes |% +\:temp{\mathchar"2475} |% \dotplus |% +\:temp{\mathchar"247C} |% \intercal |% +\:temp{\mathchar"247D} |% \circledcirc |% +\:temp{\mathchar"247E} |% \circledast |% +\:temp{\mathchar"247F} |% \circleddash |% +\:temp{\mathchar"253E} |% \divideontimes |% +\:temp{\mathchar"256C} |% \lessdot |% +\:temp{\mathchar"256D} |% \gtrdot |% +\:temp{\mathchar"256E} |% \ltimes |% +\:temp{\mathchar"256F} |% \rtimes |% +\:temp{\mathchar"2572} |% \smallsetminus |% +\:temp{\mathchar"3408} |% \circlearrowright |% +\:temp{\mathchar"3409} |% \circlearrowleft |% +\:temp{\mathchar"340A} |% \rightleftharpoons |% +\:temp{\mathchar"340B} |% \leftrightharpoons |% +\:temp{\mathchar"340D} |% \Vdash |% +\:temp{\mathchar"340E} |% \Vvdash |% +\:temp{\mathchar"340F} |% \vDash |% +\:temp{\mathchar"3410} |% \twoheadrightarrow |% +\:temp{\mathchar"3411} |% \twoheadleftarrow |% +\:temp{\mathchar"3412} |% \leftleftarrows |% +\:temp{\mathchar"3413} |% \rightrightarrows |% +\:temp{\mathchar"3414} |% \upuparrows |% +\:temp{\mathchar"3415} |% \downdownarrows |% +\:temp{\mathchar"3416} |% \upharpoonright |% +\:temp{\mathchar"3417} |% \downharpoonright |% +\:temp{\mathchar"3418} |% \upharpoonleft |% +\:temp{\mathchar"3419} |% \downharpoonleft |% +\:temp{\mathchar"341A} |% \rightarrowtail |% +\:temp{\mathchar"341B} |% \leftarrowtail |% +\:temp{\mathchar"341C} |% \leftrightarrows |% +\:temp{\mathchar"341D} |% \rightleftarrows |% +\:temp{\mathchar"341E} |% \Lsh |% +\:temp{\mathchar"341F} |% \Rsh |% +\:temp{\mathchar"3420} |% \rightsquigarrow |% +\:temp{\mathchar"3421} |% \leftrightsquigarrow |% +\:temp{\mathchar"3422} |% \looparrowleft |% +\:temp{\mathchar"3423} |% \looparrowright |% +\:temp{\mathchar"3424} |% \circeq |% +\:temp{\mathchar"3425} |% \succsim |% +\:temp{\mathchar"3426} |% \gtrsim |% +\:temp{\mathchar"3427} |% \gtrapprox |% +\:temp{\mathchar"3428} |% \multimap |% +\:temp{\mathchar"3429} |% \therefore |% +\:temp{\mathchar"342A} |% \because |% +\:temp{\mathchar"342B} |% \doteqdot |% +\:temp{\mathchar"342C} |% \triangleq |% +\:temp{\mathchar"342D} |% \precsim |% +\:temp{\mathchar"342E} |% \lesssim |% +\:temp{\mathchar"342F} |% \lessapprox |% +\:temp{\mathchar"3430} |% \eqslantless |% +\:temp{\mathchar"3431} |% \eqslantgtr |% +\:temp{\mathchar"3432} |% \curlyeqprec |% +\:temp{\mathchar"3433} |% \curlyeqsucc |% +\:temp{\mathchar"3434} |% \preccurlyeq |% +\:temp{\mathchar"3435} |% \leqq |% +\:temp{\mathchar"3436} |% \leqslant |% +\:temp{\mathchar"3437} |% \lessgtr |% +\:temp{\mathchar"343A} |% \risingdotseq |% +\:temp{\mathchar"343B} |% \fallingdotseq |% +\:temp{\mathchar"343C} |% \succcurlyeq |% +\:temp{\mathchar"343D} |% \geqq |% +\:temp{\mathchar"343E} |% \geqslant |% +\:temp{\mathchar"343F} |% \gtrless |% +\:temp{\mathchar"3442} |% \vartriangleright |% +\:temp{\mathchar"3443} |% \vartriangleleft |% +\:temp{\mathchar"3444} |% \trianglerighteq |% +\:temp{\mathchar"3445} |% \trianglelefteq |% +\:temp{\mathchar"3447} |% \between |% +\:temp{\mathchar"3449} |% \blacktriangleright |% +\:temp{\mathchar"344A} |% \blacktriangleleft |% +\:temp{\mathchar"344D} |% \vartriangle |% +\:temp{\mathchar"3450} |% \eqcirc |% +\:temp{\mathchar"3451} |% \lesseqgtr |% +\:temp{\mathchar"3452} |% \gtreqless |% +\:temp{\mathchar"3453} |% \lesseqqgtr |% +\:temp{\mathchar"3454} |% \gtreqqless |% +\:temp{\mathchar"3456} |% \Rrightarrow |% +\:temp{\mathchar"3457} |% \Lleftarrow |% +\:temp{\mathchar"345F} |% \varpropto |% +\:temp{\mathchar"3460} |% \smallsmile |% +\:temp{\mathchar"3461} |% \smallfrown |% +\:temp{\mathchar"3462} |% \Subset |% +\:temp{\mathchar"3463} |% \Supset |% +\:temp{\mathchar"346A} |% \subseteqq |% +\:temp{\mathchar"346B} |% \supseteqq |% +\:temp{\mathchar"346C} |% \bumpeq |% +\:temp{\mathchar"346D} |% \Bumpeq |% +\:temp{\mathchar"346E} |% \lll |% +\:temp{\mathchar"346F} |% \ggg |% +\:temp{\mathchar"3474} |% \pitchfork |% +\:temp{\mathchar"3476} |% \backsim |% +\:temp{\mathchar"3477} |% \backsimeq |% +\:temp{\mathchar"3500} |% \lvertneqq |% +\:temp{\mathchar"3501} |% \gvertneqq |% +\:temp{\mathchar"3502} |% \nleq |% +\:temp{\mathchar"3503} |% \ngeq |% +\:temp{\mathchar"3504} |% \nless |% +\:temp{\mathchar"3505} |% \ngtr |% +\:temp{\mathchar"3506} |% \nprec |% +\:temp{\mathchar"3507} |% \nsucc |% +\:temp{\mathchar"3508} |% \lneqq |% +\:temp{\mathchar"3509} |% \gneqq |% +\:temp{\mathchar"350A} |% \nleqslant |% +\:temp{\mathchar"350B} |% \ngeqslant |% +\:temp{\mathchar"350C} |% \lneq |% +\:temp{\mathchar"350D} |% \gneq |% +\:temp{\mathchar"350E} |% \npreceq |% +\:temp{\mathchar"350F} |% \nsucceq |% +\:temp{\mathchar"3510} |% \precnsim |% +\:temp{\mathchar"3511} |% \succnsim |% +\:temp{\mathchar"3512} |% \lnsim |% +\:temp{\mathchar"3513} |% \gnsim |% +\:temp{\mathchar"3514} |% \nleqq |% +\:temp{\mathchar"3515} |% \ngeqq |% +\:temp{\mathchar"3516} |% \precneqq |% +\:temp{\mathchar"3517} |% \succneqq |% +\:temp{\mathchar"3518} |% \precnapprox |% +\:temp{\mathchar"3519} |% \succnapprox |% +\:temp{\mathchar"351A} |% \lnapprox |% +\:temp{\mathchar"351B} |% \gnapprox |% +\:temp{\mathchar"351C} |% \nsim |% +\:temp{\mathchar"351D} |% \ncong |% +\:temp{\mathchar"3520} |% \varsubsetneq |% +\:temp{\mathchar"3521} |% \varsupsetneq |% +\:temp{\mathchar"3522} |% \nsubseteqq |% +\:temp{\mathchar"3523} |% \nsupseteqq |% +\:temp{\mathchar"3524} |% \subsetneqq |% +\:temp{\mathchar"3525} |% \supsetneqq |% +\:temp{\mathchar"3526} |% \varsubsetneqq |% +\:temp{\mathchar"3527} |% \varsupsetneqq |% +\:temp{\mathchar"3528} |% \subsetneq |% +\:temp{\mathchar"3529} |% \supsetneq |% +\:temp{\mathchar"352A} |% \nsubseteq |% +\:temp{\mathchar"352B} |% \nsupseteq |% +\:temp{\mathchar"352C} |% \nparallel |% +\:temp{\mathchar"352D} |% \nmid |% +\:temp{\mathchar"352E} |% \nshortmid |% +\:temp{\mathchar"352F} |% \nshortparallel |% +\:temp{\mathchar"3530} |% \nvdash |% +\:temp{\mathchar"3531} |% \nVdash |% +\:temp{\mathchar"3532} |% \nvDash |% +\:temp{\mathchar"3533} |% \nVDash |% +\:temp{\mathchar"3534} |% \ntrianglerighteq |% +\:temp{\mathchar"3535} |% \ntrianglelefteq |% +\:temp{\mathchar"3536} |% \ntriangleleft |% +\:temp{\mathchar"3537} |% \ntriangleright |% +\:temp{\mathchar"3538} |% \nleftarrow |% +\:temp{\mathchar"3539} |% \nrightarrow |% +\:temp{\mathchar"353A} |% \nLeftarrow |% +\:temp{\mathchar"353B} |% \nRightarrow |% +\:temp{\mathchar"353C} |% \nLeftrightarrow |% +\:temp{\mathchar"353D} |% \nleftrightarrow |% +\:temp{\mathchar"3568} |% \eqsim |% +\:temp{\mathchar"3570} |% \shortmid |% +\:temp{\mathchar"3571} |% \shortparallel |% +\:temp{\mathchar"3573} |% \thicksim |% +\:temp{\mathchar"3574} |% \thickapprox |% +\:temp{\mathchar"3575} |% \approxeq |% +\:temp{\mathchar"3576} |% \succapprox |% +\:temp{\mathchar"3577} |% \precapprox |% +\:temp{\mathchar"3578} |% \curvearrowleft |% +\:temp{\mathchar"3579} |% \curvearrowright |% +\:temp{\mathchar"357F} |% \backepsilon |% +>>>> + + + + + + + +\<<< +\Configure{align} + {\EndP\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Right-to-Left Babel} +%%%%%%%%%%%%%%%%%% + + + +\<<< +\expandafter\ifx \csname o@everypar\endcsname\relax \else +\expandafter\ifx \csname ht:everypar\endcsname\relax + \let\ht:everypar\o@everypar +\fi\fi +>>> + + + + + + +\<<< +dir="\if@rl rtl\else ltr\fi" +>>> + + +\<<< +\Configure{moreL} + {\ifmathml |% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{}% + \def\end:moreRL{\HCode{}}% + \fi + \fi + } + {\end:moreRL} +\Configure{moreR} + {\ifmathml |% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{}\def\end:moreRL{\HCode{}}\fi + \fi + } + {\end:moreRL} +\Css{.rtl {direction: rtl} + .ltr {direction: ltr} } +>>> + + + +\<<< +\ifmtext + \leavevmode\special{t4ht@+}x% + \def\end:moreRL{\HCode{}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + + +\<<< +\ifmtext + \leavevmode\special{t4ht@+}x% + \def\end:moreRL{\HCode{}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{openmath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{itemitem}{}{}{\par\leavevmode}{} +>>> + + + + +Used to have also a \verb'\special{t4ht@[}...\special{t4ht@]}', +where the specials asked to igore the enclosed +content. It is provided for getting `realistic' measurements in mathml +applets. a candidadte for delition. + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +!*?: >>> + + +\<<< + cw:>>> + + + +\<<< +\xdef\:cursec{|
}% +>>> + + +\<<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{fontmath} +%%%%%%%%%%%%%%%%%% + + + + +\<<< +\mathchar"3230 |%\prime|% +\mathchar"3231 |%\infty|% +\mathchar"323B |%\emptyset|% +\mathchar"323C |%\Re|% +\mathchar"323D |%\Im|% +\mathchar"3240 |%\aleph|% +>>> + +\<<< +\mathchar"3234 |%\triangle|% +\mathchar"3238 |%\forall|% +\mathchar"3239 |%\exists|% +\mathchar"323A |%\neg|% +\mathchar"323E |%\top|% +\mathchar"323F |%\bot|% +\mathchar"3272 |%\nabla|% +\mathchar"3278 |%\mathsection|% +\mathchar"327B |%\mathparagraph|% +\mathchar"327C |%\clubsuit|% +\mathchar"327D |%\diamondsuit|% +\mathchar"327E |%\heartsuit|% +\mathchar"327F |%\spadesuit|% +>>> + + + +\subsection{1: Large Operators} + +\begin{verbatim} +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 +\end{verbatim} + +\<<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 + |% +} +>>> + +% \mathchar"230 |%math prime|% + +A prime is typically placed on letters and digits. + + +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +} +>>> + + +\subsection{3: Relational Operations} + +The catcode is needed because 303A is \verb':'. + +\<<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + +% \mathchar"327C |%clubsuit|% +% \mathchar"327D |%diamondsuit|% +% \mathchar"327E |%heartsuit|% +% \mathchar"327F |%spadesuit|% + + + +% \mathchar"340A % rightleftharpoons +% \mathchar"340B % leftrightharpoons +% + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} + + +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + +\<<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + + +\subsection{6: Punctuation Marks} + +\begin{verbatim} +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + +\<<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A % ldot +\mathchar"6201 % cdot +\mathchar"603A % colon +?; , +} +>>> + + +\subsection{Questions} + +\begin{verbatim} + + +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + + +\subsection{Type 4: Math Open} + + +latex.ltx, fontmath.ltx, plain.tex + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Packages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\section{Small Ones} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsubsection{Bm} +%%%%%%%%%%%%% + + +\<<< +\Configure{bm} + {\ifmmode \ifmtext \else + \Tg% + \expandafter\expandafter\expandafter\:gobble + \fi\fi} + {\ifmmode \ifmtext \else \Tg\fi\fi} +>>> + + +The bm commands produces bold printing by overprinting the characters +with small shifting. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Notes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{To Do} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} + +\item Filter output through SAX/DOM/SAX to allow, e.g., dealing + globaly with empty elements to accomodate w3 browser. That is, + xtpipes fed into xtpipes. + +\item Fix mathml config for + + +\begin{itemize} +\item + +\verb+$\mathop{\overline{x}} \limits_{a=3}^{b=4}$+ +\item Parametric commands as Superscripts or Subscripts: + \verb+$E^\frac{1}{2}$+ (instead of \verb+$E^{\frac{1}{2}}$+). + + +\item + +\begin{verbatim} +\def\varinjlim{\mathop{\underrightarrow\lim}\displaylimits} +\def\varprojlim{\mathop{\underleftarrow\lim}\displaylimits} + +$$\varprojlim_{p}$$ +\end{verbatim} + + +\end{itemize} + + +\item + Numbering is not right justified: + +\begin{verbatim} +\documentclass{amsart} + \begin{document} + + \begin{eqnarray} + A &=& B + C + \end{eqnarray} + + \begin{align} + A &= B + C \qquad & N &= G + F + \end{align} + + \begin{alignat}{2} + A &= B + C \qquad \qquad & N & = G + F + \end{alignat} + +\begin{gather} +A = B + C \tag{my equation} \\ +B = \text{variable unknown} \notag \\ +Y = \max X + \log 10 +\end{gather} + +\end{document} +\end{verbatim} + + +\item +\begin{verbatim} +\begin{align} +e &= a + b \\ +\intertext{this should be located on the left browser hand margin} +a &= u +\end{align} + +\end{verbatim} + +\end{itemize} + + + +\endinput + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{The Calling Tree for 4ht Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\if:latex | +\else | \fi +>>> + +\<0,32,4 plain\><<< +| +| +>>> + +\<0,32,4 latex\><<< +| +| +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Front part} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%% +\section{HTML} +%%%%%%%%%%%%%%%% + +\<<< +\ifx \a:HTML\:UnDef + \Configure{HTML} + {\IgnorePar\HCode{\Hnewline}>\Hnewline}} + {\ifvmode\IgnorePar\fi\HCode{\Hnewline}} +\fi +\ifx \a:HEAD\:UnDef + \Configure{HEAD} + {\IgnorePar\NoFonts\HCode {}} + {\HCode{}\EndNoFonts} +\fi +\ifx \a:BODY\:UnDef + \:CheckOption{frames} \if:Option + | + \else + \Log:Note{for content and toc + in 2 frames, use the command line option `frames'} + \Log:Note{for content, toc, and footnotes + in 3 frames, use the command line option `frames-fn'} + | +\fi\fi +\ifx \a:TITLE\:UnDef + \Configure{TITLE}{\Protect\IgnorePar + \HCode{}}{\HCode{\Hnewline}} +\fi +\ifx \a:@HEAD\relax \let\a:@HEAD=\empty\fi +\ifx \a:@HEAD\empty + | + \:CheckOption{css-in} \if:Option + \Log:Note{the inline CSS code is extracted from the input of the + previous compilation, so an extra compilation might be needed} + \Configure{@HEAD}{|} + \else + \Log:Note{for inline CSS code, use the command line option `css-in'} + \Configure{@HEAD}{\HCode{\Hnewline}} + \fi + | +\fi +\:CheckOption{mouseover} \if:Option + | +\else + \Log:Note{for pop ups on mouse over, + use the command line option `mouseover'} +\fi +>>> + +\<<< +\openin15=\jobname .css +\ifeof15 \else \:warning{Missing file: \jobname .css }% +\bgroup + \catcode`\{=12 \catcode`\}=12 \catcode`\%=12 \catcode`\#=12 + \HCode{\Hnewline\Hnewline}% +\egroup +\fi +\closein15 +>>> + + + +\<<< +\:CheckOption{uni-emacspeak} \if:Option + \def\A:charset{charset=utf-8} +\else + \def\A:charset{charset=iso-8859-1} +\fi +>>> + +\verb'\a:charset' can come from a private configuration file, and from +a poackage option. It takes precedence over \verb'\A:charset'. + + + +%%%%%%%%%%%%%%%% +\section{XML Version} +%%%%%%%%%%%%%%%% + +\<<< +| +\Configure{VERSION} + {\HCode{ ?>\Hnewline}} +>>> + +%%%%%%%%%%%%%%%% +\section{DOCTYPE} +%%%%%%%%%%%%%%%% + +\<<< +\ifx \a:DOCTYPE\relax + \:CheckOption{frames} \if:Option + | + \else + | + | + \fi +\fi +>>> + + +\<<< +\:CheckOption{xhtml} \if:Option + \NewConfigure{@DOCTYPE}[1]{\def\:temp{#1}% + \ifx \:temp\empty \let\a:@DOCTYPE|=\empty + \else \ifx \a:@DOCTYPE\relax \let\a:@DOCTYPE|=\empty\fi + \pend:def\a:@DOCTYPE{#1}\fi} + \let\a:@DOCTYPE|=\relax +\fi +>>> + +\<<< +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} +\:CheckOption{mouseover} \if:Option + | +\fi +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{VERSION,*XML-STYLESHEET} +\else + \Log:Note{to remove the DOCTYPE declaration + use the command line option `no-DOCTYPE'} +\fi +>>> + + + + +\<<< +\:CheckOption{xhtml} \if:Option + |% + \def\:DTD{xhtml} +\else + |% +\fi +>>> + + + +Don't place the full address + \''http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' +within DOCTYPE. It can stop tools like xt when the serves doen't respond + + +\<<< +|% +\Configure{DOCTYPE} + {\HCode{ \Hnewline + + \Hnewline}} +\def\xhtml:DOCTYPE{PUBLIC + "-//W3C//DTD XHTML 1.0 Transitional//|"\Hnewline + \space\space "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"} +>>> + + +\<<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +\<<< +\Configure{@DOCTYPE} + {\Hnewline\%xhtml.dtd; \Hnewline} +>>> + +\<<< +\Configure{DOCTYPE}{\IgnorePar\HCode + {" + \Hnewline\space\space "http://www.w3.org/TR/emacspeak/loose.dtd"> + \Hnewline}} +>>> + + + +\<<< +\:CheckOption{xhtml} \if:Option + \Configure{DOCTYPE} + {\HCode{" + \Hnewline "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\Hnewline}} +\else + \Configure{DOCTYPE} + {\HCode{" + \Hnewline "http://www.w3.org/TR/emacspeak/frameset.dtd">\Hnewline}} +\fi +>>> + + + + + + +Xerces reqires the following encoding. + +\<<< +\def\:encoding#1={} +>>> + +\<<< +encoding="\expandafter\ifx \csname a:charset\endcsname\relax + \expandafter\:encoding\A:charset + \else \expandafter\:encoding\a:charset\fi" +>>> + +%%%%%%%%%%%%%%%% +\section{BODY} +%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{mouseover} \if:Option + \Configure{BODY} + {\:xhtml{\SaveEndP}\IgnorePar\HCode{}|\ShowPar\par} + {\IgnorePar\:xhtml{\EndP}\HCode{\Hnewline + }\:xhtml{\RecallEndP}}% +\else + \Configure{BODY} + {\:xhtml{\SaveEndP}\IgnorePar\HCode{}\ShowPar\par } + {\IgnorePar\:xhtml{\EndP}\HCode{\Hnewline + }\:xhtml{\RecallEndP}}% +\fi +>>> + +\<<< +\def\Frame:Name{menu} +|% +\Configure{BODY} + {% + \a:frames \NoFrames \PushStack\BODY:stack{} + |% + |% + \HPage[tex4ht-p1]{table of contents}% + \Link{}{|}\EndLink + \bgroup + \Configure{Link}{a}{target="|" href=}{ name=}{} + \b:frames + \egroup + \def\Frame:Name{main} + \EndHPage{tex4ht-p1} \Tg
+ \HPage[tex4ht-p2]{text}\Link{}{|}\EndLink + } + {\EndHPage{tex4ht-p2}} +\NewConfigure{frames}{2} +\Css{body\#| {white-space: nowrap; }} +>>> + + +\<<< +\:CheckOption{mouseover} \if:Option + \Configure{BODY} + {\PushStack\BODY:stack{x}% + \:xhtml{\SaveEndP}\IgnorePar\HCode{}|\ShowPar\par \let\Frame:Name=\empty} + {\IgnorePar\:xhtml{\EndP}\PopStack\BODY:stack\:temp + \ifx \:temp\empty \EndFrames \else + \HCode{\Hnewline }\fi + \:xhtml{\RecallEndP}}% +\else + \Configure{BODY} + {\PushStack\BODY:stack{x}% + \:xhtml{\SaveEndP}\IgnorePar\HCode{}\ShowPar\par \let\Frame:Name\empty} + {\IgnorePar\:xhtml{\EndP}\PopStack\BODY:stack\:temp + \ifx \:temp\empty \EndFrames + \else \HCode{\Hnewline }\fi + \:xhtml{\RecallEndP}}% +\fi +>>> + + + +\<<< +tex4ht-main>>> + + +\<<< +tex4ht-fn>>> + +\<<< +tex4ht-menu>>> + + +%%%%%%%%%%%%%%%% +\section{Meta} +%%%%%%%%%%%%%%%% + + +\<<< +\:CheckOption{xht} \if:Option + \:CheckOption{xhtml}\if:Option \else \:CheckOption{xml}\fi +\fi +\if:Option | +\else |\fi +\def\:gobbleM#1->{} +| +\immediate\write-1{TeX4ht package options: + \expandafter\:gobbleM\meaning\Preamble} +\Configure{@HEAD} + {\HCode{\Hnewline}} +\:CheckOption{timestamp}\if:Option +\Configure{@HEAD} + {\HCode{\Hnewline}} +\else + \Log:Note{To print a timestamp, use the command line option timestamp} +\fi +>>> + + +\<<< +\Configure{@HEAD}{\HCode{\Hnewline}} +\Configure{html}{xht} +>>> + +\<<< +\Log:Note{for file extension name xht, use the command line option `xht'}% +\Configure{@HEAD}{\HCode{\Hnewline}} +>>> + + +\verb'\Hnewline' is needed at end of file to avoid loosing the +last line under some applications. + + + + + +Tex4ht pages published through FrontPage loose the generator metas, +but not the originator-metas. + + + + +\<<< +\Configure{@HEAD}{\HCode{\Hnewline}} +\Configure{@HEAD}{\HCode{\Hnewline + \Hnewline}} +>>> + + + +%%%%%%%%%%%%%%%% +\section{Frames} +%%%%%%%%%%%%%%%% + +\<<< +tex4ht-toc>>> + +\<<< +tex4ht-body>>> + +\<4 latex\><<< +\:CheckOption{frames} \if:Option + \:CheckOption{frames-fn} \if:Option + \Configure{frames} + {\HorFrames[rows="*"]{*,3*} + \VerFrames[cols="*"]{3*,*} + \Frame[ name="|" + frameborder="0" ]{|} + \Frame[ name="|" + frameborder="0" ]{} + \EndFrames + \Frame[ name="|" + frameborder="0" ]{|}} + {\let\contentsname=\empty \tableofcontents} + \else + \Configure{frames} + {\HorFrames[rows="*"]{*,3*} + \Frame[ name="|" + frameborder="0" ]{|} + \Frame[ name="|" + frameborder="0" ]{|}} + {\let\contentsname=\empty \tableofcontents} + \fi +\fi +>>> + +% frameborder="no" +% border="0" +% framespacing="0" + + +\<<< +\:CheckOption{frames-fn} \if:Option + \edef\Preamble{\Preamble,frames} +\fi +>>> + + + +\<<< +\Configure{frames} + {\VerFrames[ cols="*"]{4*,*} + \Frame[ name="|" + frameborder="1" ]{|} + \Frame[ name="|" + frameborder="1" ]{|}} + {\beamer:bookmarks \tableofcontents} +>>> + +\<<< +\Configure{frames} + {\HorFrames[ rows="*"]{*,3*} + \Frame[ name="|" + frameborder="1" ]{|} + \Frame[ name="|" + frameborder="1" ]{|}} + {\beamer:bookmarks \tableofcontents} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Structures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sectioning} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Sub Sections} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< + +| +\Configure{subsection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

}% + \TitleMark\space \HtmlParOff} + {\HCode{

}\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsection}{}{}{\EndP\bgroup + \ifvmode \IgnorePar\fi + \HCode{

}\HtmlParOff } + {\HCode{

}\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsectionTITLE+}{#1} +>>> + + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}\@seccntformat{section}% + \thesubsection\HCode{}\fi} +\Configure{subsection}{}{} + {\EndP\bgroup \IgnorePar\HCode{

}% + \TitleMark{. \space}} + {\HCode{

}\IgnoreIndent\egroup} +>>> + + + + +\
<<<
+\ConfigureMark{subsection}
+   {\ifnum \c:secnumdepth>\c@secnumdepth  \expandafter\:gobble \else
+    \csname thetitlesubsection\endcsname\fi}
+\Configure{subsection}{}{}
+   {\EndP\bgroup \IgnorePar\HCode{

}% + \TitleMark\space} + {\HCode{

}\IgnoreIndent\egroup\par} +\Configure{likesubsection}{}{} + {\EndP\bgroup \IgnorePar\HCode{

}} + {\HCode{

}\IgnoreIndent\egroup\par} +>>> + + +\<<< +\ConfigureMark{subsection} + {\ifHeadingNumbered \HCode{}\mw@seccntformat + \HeadingNumber \HCode{}\fi} +\Configure{subsection}{}{} + {\NoFonts \ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

}% + \TitleMark \HtmlParOff} + {\HCode{

}\HtmlParOn \EndNoFonts \IgnoreIndent\egroup\par} +\Configure{subsectionTITLE+}{\thesubsection \space#1} +>>> + +\<<< +\Configure{likesubsection}{}{}{\EndP\bgroup + \ifvmode \IgnorePar\fi + \HCode{

}\HtmlParOff } + {\HCode{

}\HtmlParOn \IgnoreIndent\egroup\par} +\Configure{likesubsectionTITLE+}{#1} +>>> + + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}% + \@ifundefined{subsectionname}{}{% + \ignorespaces\subsectionname\space}% + \@seccntformat{subsection}% + \HCode{}\fi } +| +>>> + + +\<<< +\Configure{subsection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

}% + \TitleMark\space \HtmlParOff} + {\HCode{

}\HtmlParOn \IgnoreIndent\egroup\par} +>>> + +\<<< +\Configure{subsection}{}{} + {\ShowPar\noindent + \HCode{}\begingroup\bf + \TitleMark\space} + {.\endgroup\HCode{}\IgnorePar\par} +>>> + + + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}\thesubsection + \HCode{}\fi } +| +\Configure{subsection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

}% + \TitleMark.~~\HtmlParOff} + {\HCode{

}\HtmlParOn \IgnoreIndent\egroup\par} +\Configure{likesubsection}{}{}{\EndP\bgroup + \ifvmode \IgnorePar\fi + \HCode{

}\HtmlParOff } + {\HCode{

}\HtmlParOn \IgnoreIndent\egroup\par} +\Configure{likesubsectionTITLE+}{#1} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Sub Sub Sections} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}% + \@ifundefined{subsubsectionname}{}{% + \ignorespaces\subsubsectionname\space}% + \@seccntformat{subsubsection}% + \HCode{}\fi} +| +>>> + + +\<<< +\Configure{subsubsection}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{
}% + \TitleMark\space \HtmlParOff} + {\HCode{
}\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +>>> + +\<<< +\Configure{subsubsection}{}{} + {\ShowPar\noindent + \HCode{}\begingroup\it + \TitleMark\space} + {.\endgroup\HCode{}\IgnorePar} +>>> + + +\<<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}\@seccntformat{subsubsection}% + \HCode{}\fi} +| +\Configure{subsubsection}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{
}% + \TitleMark\space \HtmlParOff} + {\HCode{
}\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsubsection}{}{} + {\ifvmode \IgnorePar\fi \EndP\bgroup\IgnorePar + \HCode{
}\HtmlParOff} + {\HCode{
}\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +>>> + + + +\<<< +\ConfigureMark{subsubsection} + {\ifHeadingNumbered \HCode{}\mw@seccntformat + \HeadingNumber \HCode{}\fi} +\Configure{subsubsection}{}{} + {\NoFonts \ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{
}% + \TitleMark \HtmlParOff} + {\HCode{
}\HtmlParOn \EndNoFonts \IgnoreIndent\egroup + \par\ShowPar} +\Configure{subsubsectionTITLE+}{\thesubsubsection \space#1} +>>> + + + +\<<< +\Configure{likesubsubsection}{}{} + {\ifvmode \IgnorePar\fi \EndP\bgroup\IgnorePar + \HCode{
}\HtmlParOff} + {\HCode{
}\HtmlParOn \IgnoreIndent\egroup \par\ShowPar} +>>> + + + + +\
<<<
+\ConfigureMark{subsubsection}
+   {\ifnum \c:secnumdepth>\c@secnumdepth   \expandafter\:gobble \else
+    \csname thetitlesubsubsection\endcsname\fi}
+\Configure{subsubsection}{}{}
+   {\EndP\bgroup \IgnorePar\HCode{
}% + \TitleMark\space} + {\HCode{
}\IgnoreIndent\egroup \par\ShowPar} +\Configure{likesubsubsection}{}{} + {\EndP\bgroup \IgnorePar\HCode{
}% + \TitleMark\space} + {\HCode{
}\IgnoreIndent\egroup \par\ShowPar} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sectioning Pagination} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{article,report,book} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +| |%should appear before TocAt|% +| +>>> + + + + + +\<<< +\:CheckOption{7} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + \fi +\else\:CheckOption{6} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + \fi +\else \:CheckOption{5} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + \fi +\else\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + \fi +\else\:CheckOption{1} \if:Option + | |%cut toc before cutat|% + | +\else + \Log:Note{for automatic sectioning + pagination, use the command line option + `1', `2', `3', '4', '5', '6', or '7'}% +\fi \fi \fi \fi \fi \fi \fi +>>> + +% + +\<<< +\CutAt{part} +\CutAt{likepart} +>>> + + + + +\<<< +\CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} +>>> + + + +\<<< +\CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +>>> + + +\<<< +\CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{AMS} +%%%%%%%%%%%%%%%%%%% + + + +\<<< +| +>>> + + + + +%%%%%%%%%%%%% +\subsection{File Naming} +%%%%%%%%%%%%% + +\<<< +\:CheckOption{sec-filename} \if:Option \else + \Log:Note{for files named after section + titles, use the command line option `sec-filename'}% +\fi +>>> + + +\<<< +\:CheckOption{7} + \if:Option \else \:CheckOption{6}\fi + \if:Option \else \:CheckOption{5}\fi + \if:Option \else \:CheckOption{4}\fi + \if:Option \else \:CheckOption{3}\fi + \if:Option \else \:CheckOption{2}\fi + \if:Option \else \:CheckOption{1}\fi +\if:Option + \:CheckOption{sec-filename} + \if:Option + |
+ \else + \Log:Note{For section filenames that reflect on + their titles use the command line + option `sec-filename'} + \fi +\fi +>>> + +\
<<< +\Configure{CutAt-filename}{% + \ifx \:NxtNwFN\:Undef + \tmp:toks={#2}% + \immediate\openout15=\jobname .tmp + \immediate\write15{\string\next{\the\tmp:toks}}% + \immediate\closeout15 + \bgroup + \def\next{\xdef\:temp}% + \csname no:catcodes\endcsname{32}{47}{9}% + \csname no:catcodes\endcsname{58}{64}{9}% + \csname no:catcodes\endcsname{91}{91}{9}% + \csname no:catcodes\endcsname{93}{96}{9}% + \csname no:catcodes\endcsname{126}{126}{9}% + \input \jobname .tmp + \egroup + \tmp:cnt=0 \uniq:fn + \fi +} +\def\uniq:fn{% + \expandafter\ifx + \csname ct:fn\:temp + \ifnum \tmp:cnt>0 \the\tmp:cnt\fi\endcsname\relax + \expandafter\global\expandafter\let + \csname ct:fn\:temp + \ifnum\tmp:cnt>0 \the\tmp:cnt\fi + \endcsname=\def + \ifx \:temp\empty \else + \NextFile{\:temp + \ifnum \tmp:cnt>0 \the\tmp:cnt\fi .\:html}% + \fi + \else + \advance\tmp:cnt by 1 \expandafter\uniq:fn + \fi +} +>>> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables of Contents: Choice of Entries} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,section,subsection} + \fi + \Configure{tableofcontents*}{part,section} +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,section,likesection,% + subsection,likesubsection} + \fi + | + \Configure{tableofcontents*}{part,likepart,section,likesection} +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,appendix,section} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,likechapter,appendix,% + section,likesection} + \fi +\fi +>>> + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*} + {part,chapter,appendix} +\else + | + \Configure{tableofcontents*} + {part,likepart,chapter,likechapter,appendix} +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,likechapter,appendix,% + section,likesection} + \TocAt*{likepart,/part,chapter,likechapter,appendix,% + section,likesection} + \fi +\fi +>>> + + + + +\<<< +\:CheckOption{notoc*} \if:Option +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,% + section,likesection,subsection,likesubsection} + \TocAt*{likepart,/part,% + section,likesection,subsection,likesubsection} + \fi +\fi +>>> + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section\expandafter\ifx + \csname @chapter\endcsname\relax ,subsection\fi} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection\expandafter\ifx + \csname @chapter\endcsname\relax ,subsection,likesubsection\fi} +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{chapter,/likechapter,/appendix,/part,% + section,subsection} + \TocAt*{likechapter,/appendix,/chapter,/part,% + section,subsection} + \TocAt*{appendix,/chapter,/likechapter,/part,% + section,subsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{chapter,/likechapter,/appendix,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{likechapter,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{appendix,/chapter,/likechapter,/part,% + section,likesection,subsection,likesubsection} + \fi +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,appendix,section% + \expandafter\ifx \csname @chapter\endcsname\relax + ,subsection\fi} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection% + \expandafter\ifx \csname @chapter\endcsname\relax + ,subsection,likesubsection\fi} +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{section,/likesection,/chapter,/likechapter,/appendix,/part,% + subsection,subsubsection} + \TocAt*{likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsection,subsubsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{section,/likesection,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \TocAt*{likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,likesubsection,subsection} +\fi +>>> + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + subsubsection,paragraph} + \TocAt*{likesubsection,/subsection,/likesection,% + /section,/chapter,/likechapter,/appendix,/part,% + subsubsection,paragraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + subsubsection,likesubsubsection,% + paragraph} + \TocAt*{likesubsection,/subsection,% + /likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsubsection,likesubsubsection,% + paragraph} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection} +\fi +>>> + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{subsubsection,/likesubsubsection,/subsection,% + /likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + paragraph,subparagraph} + \TocAt*{likesubsubsection,/subsubsection,/likesubsection,% + /subsection,/likesection,% + /section,/chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{subsubsection,/likesubsubsection,% + /subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \TocAt*{likesubsubsection,/subsubsection,/likesubsection,/subsection,% + /likesection,/section,/chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \fi +\fi +>>> + + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection,paragraph} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection,% + paragraph} +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{paragraph,/subsubsection,/likesubsubsection,/subsection,% + /likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + subparagraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{paragraph,/subsubsection,/likesubsubsection,% + /subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + subparagraph} + \fi +\fi +>>> + + + + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection,% + paragraph,subparagraph} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection,% + paragraph,subparagraph} +\fi +>>> + + +\<<< +\CutAt{subsubsection,subsection,likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsubsection,subsection,likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +>>> + +\<<< +\CutAt{paragraph,subsubsection,likesubsubsection,subsection,likesubsection,% + section,likesection,chapter,likechapter,appendix,part} +>>> + +\<<< +\CutAt{subparagraph,paragraph,subsubsection,likesubsubsection,% + subsection,likesubsection,% + section,likesection,chapter,likechapter,appendix,part} +>>> + + + + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,addchap,appendix,section} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,likechapter,addchap,appendix,% + section,likesection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*} + {part,chapter,addchap,appendix} +\else + | + \Configure{tableofcontents*} + {part,likepart,chapter,likechapter,addchap,appendix} +\fi +>>> + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,addchap,appendix,section} + \TocAt*{likepart,/part,chapter,addchap,appendix,section} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{part,/likepart,chapter,likechapter,addchap,appendix,% + section,likesection} + \TocAt*{likepart,/part,chapter,likechapter,addchap,appendix,% + section,likesection} + \fi +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{chapter,/likechapter,/addchap,/appendix,/part,% + section,subsection} + \TocAt*{likechapter,/addchap,/appendix,/chapter,/part,% + section,subsection} + \TocAt*{addchap,/likechapter,/appendix,/chapter,/part,% + section,subsection} + \TocAt*{appendix,/chapter,/likechapter,/addchap,/part,% + section,subsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{chapter,/likechapter,/addchap,/appendix,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{likechapter,/addchap,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{addchap,/likechapter,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{appendix,/chapter,/likechapter,/addchap,/part,% + section,likesection,subsection,likesubsection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{section,/likesection,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,subsubsection} + \TocAt*{likesection,/section,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,subsubsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \TocAt*{section,/likesection,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \TocAt*{likesection,/section,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \CutAt{subsection,section,chapter,addchap,appendix,part} + \CutAt{likesubsection,section,chapter,addchap,appendix,part} +\else + \CutAt{subsection,section,likesection,% + chapter,likechapter,addchap,appendix,part} + \CutAt{likesubsection,section,likesection,% + chapter,likechapter,addchap,appendix,part} +\fi +>>> + + + +\<<< +\ConfigureToc{foilheads}{}{ *\ }{}{} +\Configure{tableofcontents*}{foilheads} +>>> + + +The `notoc*' is applicable only to pages that are automatically +decomposed into separate web pages along section divides. It +should be used whe addcontentline instructions are present. + +\begin{verbatim} +\section*{....} +\addcontentsline{toc}{section}{....} +\end{verbatim} + + + +\<<< +\Log:Note{for tocs without * entries, use + command line option `notoc*'} +>>> + + + +\<<< +\:CheckOption{1} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else \:CheckOption{2} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else \:CheckOption{3} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else \:CheckOption{4} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else + \addcontentsline{toc}{section}{\indexname}% +\fi \fi \fi \fi +>>> + + + +\<<< +\Log:Note{to eliminate mini tables of + contents, use the command line option `nominitoc'} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables of Contents: Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{TocAt} + {|% + \Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
}\IgnorePar} + {}{\IgnorePar\HCode{
}\ShowPar}{\HCode{}}{}% + \ifvmode \IgnorePar\fi \EndP + } + {|\par\ShowPar} +\Configure{TocAt*} + {|% + \Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
}\IgnorePar} + {}{\IgnorePar\HCode{
}\ShowPar}{\HCode{}}{}% + \ifvmode \IgnorePar\fi \EndP + } + {|\par\ShowPar} +>>> + + + + +\<<< +\Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
}\IgnorePar} + {\ifTag{tex4ht-body}{\HCode{
}\Link{tex4ht-body}{}Home\EndLink}{}} + {\IgnorePar\EndP\HCode{
}\ShowPar} + {\HCode{}} {} +>>> + +\<<< +\let\sv:atoc|=\a:tableofcontents +\let\sv:btoc|=\b:tableofcontents +\let\sv:ctoc|=\c:tableofcontents +\let\sv:dtoc|=\d:tableofcontents +\let\sv:etoc|=\e:tableofcontents +>>> + + +\<<< +\let\a:tableofcontents|=\sv:atoc +\let\b:tableofcontents|=\sv:btoc +\let\c:tableofcontents|=\sv:ctoc +\let\d:tableofcontents|=\sv:dtoc +\let\e:tableofcontents|=\sv:etoc +>>> + + +\<<< +\def\tocpart#1#2#3{\par\:SPAN{partToc}{\if !#1!\else #1~~\fi #2}\par}% +\def\toclikepart#1#2#3{\par\:SPAN{likepartToc}{#2}\par}% +|% +\expandafter\ifx \csname @chapter\endcsname\relax + \def\tocsection#1#2#3{\par + \:SPAN{sectionToc}{\def\:temp{#1}\ifx \:temp\empty\else + #1 \fi #2}\par} + \def\toclikesection#1#2#3{\par\:SPAN{likesectionToc}{#2}\par}% + \def\tocsubsection#1#2#3{\par\ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par\ \:SPAN{likesubsectionToc}{#2}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \:SPAN{likesubsubsectionToc}{#2}\par} + \def\tocparagraph#1#2#3{\par\ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par\ \ \:SPAN{likeparagraphToc}{#2}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \:SPAN{likesubparagraphToc}{#2}\par} +\else + |% + \def\tocchapter#1#2#3{\par\:SPAN{chapterToc}{\ifnum \c@secnumdepth >\m@ne + #1 \fi #2}\par} + \def\toclikechapter#1#2#3{\par\:SPAN{likechapterToc}{#2}\par}% + \def\tocappendix#1#2#3{\par\:SPAN{appendixToc}{#1 #2}\par} + \def\tocsection#1#2#3{\par\ \toc:num{section}{#1}{#2}\par} + \def\toclikesection#1#2#3{\par\ \:SPAN{likesectionToc}{#2}\par} + \def\tocsubsection#1#2#3{\par\ \ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par + \ \ \:SPAN{likesubsectionToc}{#2}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \ \:SPAN{likesubsubsectionToc}{#2}\par} + \def\tocparagraph#1#2#3{\par\ \ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par + \ \ \ \:SPAN{likeparagraphToc}{#2}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \ \:SPAN{likesubparagraphToc}{#2}\par} +\fi +\def\toc:num#1#2#3{\def\:temp{#1#2}\:SPAN{#1Toc}{\ifx \:temp\empty \else + #2 \fi #3}} +>>> + + + +\<<< +\def\tocpart#1#2#3{\par\:SPAN{partToc}{\if !#1!\else #1~~\fi #2}\par}% +\def\toclikepart#1#2#3{\par\:SPAN{likepartToc}{#2}\par}% +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} + \Css{.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, + .appendixToc a, .appendixToc, .addchapToc a + {line-height: 200\%; font-weight:bold;}} + \def\tocchapter#1#2#3{\par\:SPAN{chapterToc}{#1~~#2}\par} + \def\toclikechapter#1#2#3{\par\:SPAN{likechapterToc}{#2}\par}% + \def\tocaddchap#1#2#3{\par\:SPAN{addchapToc}{#2}\par}% + \def\tocappendix#1#2#3{\par\:SPAN{appendixToc}{#1~~#2}\par} + \def\tocsection#1#2#3{\par\ \toc:num{section}{#1}{#2}\par} + \def\toclikesection#1#2#3{\par\ \:SPAN{likesectionToc}{#2}\par} + \def\tocsubsection#1#2#3{\par\ \ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par + \ \ \:SPAN{likesubsectionToc}{#2}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \ \:SPAN{likesubsubsectionToc}{#2}\par} + \def\tocparagraph#1#2#3{\par\ \ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par + \ \ \ \:SPAN{likeparagraphToc}{#2}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \ \:SPAN{likesubparagraphToc}{#2}\par} +\def\toc:num#1#2#3{\def\:temp{#1#2}\:SPAN{#1Toc}{\ifx \:temp\empty \else + #2~~\fi #3}} +>>> + + +\<<< +\def\tocpart#1#2#3{\par\:SPAN{partToc}{\if !#1!\else #1~~\fi #2}\par}% +\def\toclikepart#1#2#3{\par\:SPAN{likepartToc}{#2}\par}% +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +% +\expandafter\ifx \csname @chapter\endcsname\relax + \def\tocsection#1#2#3{\par + \:SPAN{sectionToc}{\def\:temp{#1}\ifx \:temp\empty\else + #1 \fi #2}\par} + \def\toclikesection#1#2#3{\par\:SPAN{likesectionToc}{#2}\par}% + \def\tocsubsection#1#2#3{\par\ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par\ \:SPAN{likesubsectionToc}{#2}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \:SPAN{likesubsubsectionToc}{#2}\par} + \def\tocparagraph#1#2#3{\par\ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par\ \ \:SPAN{likeparagraphToc}{#2}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \:SPAN{likesubparagraphToc}{#2}\par} +\else + \Css{.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, + .appendixToc a, .appendixToc + {line-height: 200\%; font-weight:bold;}} +% + \def\tocchapter#1#2#3{\par\:SPAN{chapterToc}{#1 #2}\par} + \def\toclikechapter#1#2#3{\par\:SPAN{likechapterToc}{#2}\par}% + \def\tocappendix#1#2#3{\par\:SPAN{appendixToc}{#1 #2}\par} + \def\tocsection#1#2#3{\par\ \toc:num{section}{#1}{#2}\par} + \def\toclikesection#1#2#3{\par\ \:SPAN{likesectionToc}{#2}\par} + \def\tocsubsection#1#2#3{\par\ \ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par + \ \ \:SPAN{likesubsectionToc}{#2}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \ \:SPAN{likesubsubsectionToc}{#2}\par} + \def\tocparagraph#1#2#3{\par\ \ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par + \ \ \ \:SPAN{likeparagraphToc}{#2}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \ \:SPAN{likesubparagraphToc}{#2}\par} +\fi +\def\toc:num#1#2#3{\def\:temp{#1#2}\:SPAN{#1Toc}{\ifx \:temp\empty \else + #2 \fi #3}} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{Tables of Contents} +%%%%%%%%%%%%%%%%%%% + + +\<<< +\ConfigureToc{part} + {\HCode{}\toc:Mark{part}} + {\End:Mark} + {} + {\HCode{}} +\ConfigureToc{section} + {\HCode{}\toc:Mark{section}} + {\End:Mark} + {} + {\HCode{}} +\ConfigureToc{subsection} + {\HCode{}~~\toc:Mark{subsection}} + {\End:Mark} + {} + {\HCode{}} +\ConfigureToc{subsubsection} + {\HCode{}~~~~\toc:Mark{subsubsection}} + {\End:Mark} + {} + {\HCode{}} +\def\toc:Mark#1#2\End:Mark{\if !#2!\else + \expandafter\ifx \csname #1name\endcsname\relax\else + \csname #1name\endcsname~\fi #2.~~\fi} +>>> + + +\<<< +\ConfigureToc{likepart} + {\HCode{}} + {\empty} + {} + {\HCode{}} +\ConfigureToc{chapter} + {\HCode{}% + \ifx \chaptername\:UnDef\else \chaptername~\fi} + {.~~} + {} + {\HCode{}} +\ConfigureToc{likechapter} + {\HCode{}} + {~~} + {} + {\HCode{}} +\ConfigureToc{appendix} + {\HCode{}% + \ifx \appendixname\:UnDef\else \appendixname~\fi} + {.~~} + {} + {\HCode{}} +>>> + +\<<< +\Css{.chapterToc a, .chapterToc, .appendixToc a, .appendixToc + {line-height: 200\%; font-weight:bold;}} +>>> + + +\<<< +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables and Arrays} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX Tabule} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\ConfigureEnv{table} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}} + {\ifvmode \IgnorePar\fi \EndP \HCode{
}\par\ShowPar} + {}{} +>>> + +%%%%%%%%%%%%% +\subsection{multirow} +%%%%%%%%%%%%% + +\<<< +\Configure{multirow} + {\HCode{
}} + {\HCode{
}} +>>> + + +%%%%%%%%%%%%% +\subsection{tabulary} +%%%%%%%%%%%%% + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{ % align="left" + style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ % align="center" + style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ % align="right" + style="white-space:nowrap; text-align:right;"}} + {l}{\HCode{ % align="left" + style="white-space:nowrap; text-align:left;"}} + {c}{\HCode{ % align="center" + style="white-space:nowrap; text-align:center;"}} + {r}{\HCode{ % align="right" + style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ valign="top" style="white-space:nowrap;"}} + {=}{\HCode{ valign="baseline" style="white-space:nowrap;"}} + {||}{\HCode{ valign="middle" style="white-space:nowrap;"}} + {_}{\HCode{ valign="bottom" style="white-space:nowrap;"}} + {p}{\HCode{ % align="left" + style="white-space:wrap; text-align:left;"}} + {m}{\HCode{ % align="left" + style="white-space:nowrap; text-align:left;" valign="middle"}} + {b}{\HCode{ % align="left" + style="white-space:wrap; text-align:left;" valign="baseline"}} + {L}{\HCode{ style="white-space:wrap; text-align:left;"}} + {R}{\HCode{ style="white-space:wrap; text-align:right;"}} + {C}{\HCode{ style="white-space:wrap; text-align:center;"}} + {J}{\HCode{ style="white-space:wrap;"}} + {} +>>> + +\<<< +\ConfigureEnv{tabulary} + {|% + \IgnorePar|\EndP\HCode{
}% + \PushStack\Col:Marg\AllColMargins + } + {\HCode{
}\PopStack\Col:Marg\AllColMargins\ShowPar + |% + |% + }{}{} +>>> + + +\<<< + \Configure{tabulary} + {\ifvmode \IgnorePar\fi \EndP \halignTB{tabulary}\putVBorder } + {|\HCode{}} + {\HCode{}} + {\r:HA} + {\HCode{1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}\NoFonts\ColMargins\EndNoFonts + \HCode{">}|\PushStack\Table:Stck\TableNo} + {|\PopStack\Table:Stck\TableNo \d:HA} +>>> + + +\<<< +\Configure{halignTB<>}{tabulary}{\HCode{class="tabulary"\Hnewline + cellspacing="0" cellpadding="0" \GROUPS\Hnewline + frame="\ifx \GROUPS\empty void\else border\fi" id="TBL-\TableNo-" + }<>\HAlign} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Bibliography} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Cite} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{cite} + {\HCode{}} + {\HCode{}} + {\Link[ |]} + {\EndLink } +\expandafter\def\csname c:mouseover-cite:\endcsname{% + \def\:tempb{cite}\csname c:mouseover-?:\endcsname} +\Configure{mouseover-cite}{tex4ht.body,FULLHTML} +>>> + + +\<<< +\mo:args{cite}{\@citeb}{\expandafter + \jsHash\expandafter{\expandafter X\@citeb}}% +>>> + + + + + + + + +\<<< +\Configure{cite}{}{}{}{}% +>>> + + +\<<< +\string\Configure{mouseover-vars}{cite}{Author,Title}% +>>> + + +\<<< +\string\Configure {mouseover-cite} + {tex4ht.body,CAPTION,tex4ht.caption+tex4ht.var,FULLHTML}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Bib Item} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{bibitem}{\Link}{\EndLink} +>>> + +\<<< +\Configure{bibitem} + {\bibitem:link} + {\EndLink|} +\def\bibitem:link#1#2{|\HCode + {}\Link{#1}{#2}} +>>> + + + +\<<< +\Configure{HtmlPar} + {\EndP\HCode{

}} + {\EndP\HCode{

}} + {\Tg

} {\Tg

}% +>>> + + + +\<<< +\Configure{HtmlPar} + {\EndP\HCode{

}} + {\EndP\HCode{

}} + {\Tg

} {\Tg

}% +>>> + + +\<<< + \Configure{bibitem2} + {|\par\ShowPar + \HCode{}% + |% + } + {\EndP} + {\HCode{}~~~\HCode{}} +>>> + + +\<<< +\HCode{}% +|% +>>> + +\<<< +|% +\HCode{}% +>>> + +\<<< +.js p.bibitem-p +>>> + +\<<< +js p.bibitem +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The Bibliography} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The bibliography environment is prooblematic because +it carries a definition that implies an environment similar +to + +\begin{verbatim} + \begin{....} + \section*{...} + ... + \end{....} +\end{verbatim} + +The \verb+\begin{...}+ has a \verb+\SaveEverypar+, and + \verb+\end{...}+ has a \verb+\RecallEverypar+. In the case of +paginations across sectioning commands, we have also the saving and +recalling also at the start and end of each section (each page). In +such a case, we don't have proper nestings of environments. + + + + + +\<<< +\ConfigureEnv{thebibliography}{\IgnorePar}{\ShowPar\par}{}{} +>>> + +\<<< +\ConfigureEnv{thebibliography}{\par\leavevmode}{\ShowPar}{}{} +>>> + + + + + + +\<<< +\<<< +\<<< +\<<< +\<<< +\<<< + + +\<<< +\ConfigureList{thebibliography}% + {\ifvmode\IgnorePar\fi \EndP \HCode{
}\let\en:bib=\empty} + {\en:bib \ifvmode\IgnorePar\fi \EndP \HCode{
}} + {\en:bib\def\en:bib{|\EndP}% + |\par\ShowPar + \HCode{}|} + {\HCode{}\:nbsp + \:nbsp\:nbsp\HCode{}} +>>> + + +\<<< +\:CheckOption{bibtex2} \if:Option + \Configure{bibliography2} + {~~[} {more} {]} + |% +\fi +>>> + + + + + +\<<< +\:CheckOption{no-bib} \if:Option\else + \:CheckOption{mouseover} \if:Option + | + | + \else + | + | + \fi +\fi +>>> + + +\<<< +\:CheckOption{no-bib} \if:Option\else + \:CheckOption{mouseover} \if:Option + | + \else + | + \fi + | +\fi +>>> + +\<<< +\csname bibliography2\endcsname +>>> + +\<<< +|\csname bibliography2\endcsname +|% +>>> + + + + + +% \HCode{\Hnewline\string\jselement{footnote}% +% \string\jselement{bibitem}\Hnewline}% + + + + + +\<<< +\Configure{vol}{\HCode{}}{\HCode{}} +\Configure{book}{\HCode{}}{\HCode{}} +\Configure{paper}{\HCode{}}{\HCode{}} +\Configure{Refs}{\IgnorePar\EndP\HCode{}} + {\HCode{
}} +\Configure{ref}{\HCode{}} + {\EndP\HCode{}}{} +\Configure{keyformat}{}{\EndP\HCode{}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{acm-proc-article-sp} +%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{no-bib} \if:Option\else + \:CheckOption{mouseover} \if:Option + | + \else + | + \fi + | +\fi +>>> + + +\<<< +\ConfigureEnv{thebibliography}% + {\ifvmode\IgnorePar\fi \EndP \HCode{
}\let\en:bib=\empty} + {\en:bib \ifvmode\IgnorePar\fi \EndP \HCode{
}} + {}{} +\ConfigureList{thebibliography}% + {}{} + {\en:bib\def\en:bib{|\EndP}% + |\par\ShowPar + \HCode{}|} + {\HCode{}\:nbsp + \:nbsp\:nbsp\HCode{}} +>>> + + +\<<< +\ConfigureEnv{thebibliography}% + {\ifvmode\IgnorePar\fi\EndP |\HCode{
}\let\en:bib=\empty} + {\en:bib \ifvmode\IgnorePar\fi\EndP \HCode{
}} + {}{} +\ConfigureList{thebibliography}% + {}{} + {\en:bib\def\en:bib{|% + \EndP}||% + |\par\ShowPar + \leavevmode |\HCode{}|} + {\HCode{}\:nbsp + \:nbsp\:nbsp\HCode{}|} +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{JS Contributions} +%%%%%%%%%%%%%%%% + + + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Cont bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Set1 bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Set2 bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Addr1 bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Addr2 bib }% +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Lists} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Css{li p.indent { text-indent: 0em }} +\ConfigureEnv{trivlist} + {}{|}{}{} +\ConfigureList{trivlist}% + {\EndP\HCode{
}% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
}\bgroup \bf} + {\egroup\HCode{
}} +\ConfigureEnv{list} + {}{|}{}{} +\ConfigureList{list}% + {\EndP\HCode{
}% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
}\bgroup \bf} + {\egroup\HCode{
}} +\ConfigureEnv{itemize} + {\ifvmode \IgnorePar\fi \EndP}{|} + {}{} +\ConfigureList{itemize}% + {\EndP\HCode{
    }% + |\global\let\end:itm=\empty} + {|\ifvmode \IgnorePar\fi + \EndP\HCode{
}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\DeleteMark} + {\HCode{
  • }} +\ConfigureEnv{enumerate} + {}{|}{}{} +\:CheckOption{li-} \if:Option + \ConfigureList{enumerate}% + {|} + {|} + {|} + {|} +\else + \ConfigureList{enumerate}% + {|} + {|} + {|} + {|} + \Log:Note{for enumerated list elements li's with value attributes, + use the command line option `li-'} +\fi +\:CheckOption{css2} \if:Option + | +\else + \Log:Note{for CSS2 code, use the command line option `css2'} +\fi +>>> + +\<<< +\bgroup + \def\textbullet{&\#x2219;} + \def\textasteriskcentered{&\#x2217;} + \Css{ul.itemize1 {list-style-type: none;}} + \Css{ul.itemize1 li.itemize:before { display: marker; + marker-offset: 0.5em; + content: "\labelitemi\space" }} + \Css{ul.itemize2 {list-style-type: none;}} + \Css{ul.itemize2 li.itemize:before { display: marker; + marker-offset: 0.5em; + content: "\labelitemii\space" }} + \Css{ul.itemize3 {list-style-type: none;}} + \Css{ul.itemize3 li.itemize:before { display: marker; + marker-offset: 0.5em; + content: "\labelitemiii\space" }} +\egroup +>>> + +It is better to put the LI in the third field to avoid extra space +to the following text. + +\<<< +\def\c:enumerate:#1{\c:enu #1|} +\def\c:enu#1#2#3#4#5|{% +\def\a:enumerate:{\ifcase \@enumdepth \or + #1\or #2\or #3\or #4\else\fi #5}} +>>> + +\<<< +\Configure{enumerate}{{}{}{}{}} +\Css{.enumerate1 {list-style-type:decimal;}} +\Css{.enumerate2 {list-style-type:lower-alpha;}} +\Css{.enumerate3 {list-style-type:lower-roman;}} +\Css{.enumerate4 {list-style-type:upper-alpha;}} +>>> + +\<\><<< +\:CheckOption{html+} \if:Option + \Configure{enumerate} + {% + {style="list-style-type:decimal"}% + {style="list-style-type:lower-alpha"}% + {style="list-style-type:lower-roman"}% + {style="list-style-type:upper-alpha"}% + } +\else + \Log:Note{for stricter html code, + use the command line option `html+'} + \Configure{enumerate}{% + {type="\theenumi"}% + {type="\theenumii"}% + {type="\theenumiii"}% + {type="\theenumiv"}} +\fi +>>> + +% \Configure{enumerate}{{type="1"}{type="a"}{type="i"}{type="A"}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Prosper} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{Itemize} + {\ifvmode \IgnorePar\fi \EndP}{|} + {}{} +\ConfigureList{Itemize}% + {\EndP\HCode{
      }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
    }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg
  • }\DeleteMark} + {\HCode{
  • }} +>>> + +\<<< +\ConfigureEnv{itemstep} + {\ifvmode \IgnorePar\fi + \EndP\HCode{
      }% + |\global\let\end:itm=\empty} + {|\ifvmode \IgnorePar\fi\EndP + \HCode{
    }\ShowPar} + {} + {} +\ConfigureList{itemstep} + {} + {} + {\end:itm \global\def\end:itm{\EndP\Tg
  • }\DeleteMark} + {\HCode{
  • }} +\Css{li.itemize-hide {visibility:hidden;}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Jeep} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<<< +\ConfigureEnv{outline} + {}{|}{}{} +\ConfigureList{outline}% + {|} + {|} + {|} + {|} +>>> + +\<<< +\EndP\HCode{
      }|\global\let\end:itm=\empty +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Description} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\ConfigureList{description}% + {\EndP\HCode{
      }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
      }\bgroup \bf} + {\egroup\EndP\HCode{
      }} +>>> + +\<32,4 report,book\><<< +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +\<<< +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +\<<< +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +\<<< +| +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{List Utilities} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +Latex allows groups like the following, so we need global \verb+\end:itm+ + +\begin{verbatim} +\begin{enumerate} +{\item Line 1} +{\item Line 2} +\end{enumerate} +\end{verbatim} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{mdwlist} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{itemize*} + {\ifvmode \IgnorePar\fi \EndP}{|} + {}{} +\ConfigureList{itemize*}% + {\EndP\HCode{
        }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\DeleteMark} + {\HCode{
    1. }} +\ConfigureEnv{enumerate*} + {}{|}{}{} +\ConfigureList{enumerate*}% + {|} + {|} + {|} + {|} +\ConfigureList{description*}% + {\EndP\HCode{
      }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
      }\bgroup \bf} + {\egroup\EndP\HCode{
      }} +\ConfigureList{basedescript} + {\EndP\HCode{
      }% + \PushMacro\end:itm \global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
      }\bgroup \bf} + {\egroup\EndP\HCode{
      }} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Index} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +| +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Scr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<32,4 report,book\><<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \chapter*{\indexname}\fi} +>>> + +\<<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \section*{\indexname}\fi} +>>> + + +\<<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \chapter*{\indexname}\fi} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{multiind} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{@begin}{theindex} + {\ifx \indexname\empty \else|\fi} +>>> + + +% \ifx \indexname\empty \else +% \ifx\chapter\:Undef \section*{\indexname}\else +% \chapter*{\indexname}\fi +% \let\indexname=\empty +% \fi +% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Index} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{NoSection} + {\let\sv:index|=\p@index \let\sv:label|=\label + \let\sv:newline|=\newline \def\newline{ }% + \def\p@index[##1]{\@gobble}\let\label|=\@gobble + |% + } + {\let\p@index|=\sv:index \let\label|=\sv:label + |% + \let\newline|=\sv:newline + } +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{texinfo} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{index} + {\IgnorePar\leavevmode\EndP\Tg
      } + {\IgnorePar\EndP\Tg
      } + {\leavevmode\Tg} + {\Tg\Tg
      \IgnorePar} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{ConTeXt} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\catcode`\!=11 +| +| +| +| +| +| +| +| +| +| +| +| +| +\catcode`\!=12 +>>> + +\<<< +\NewConfigure{-@@ly}{2} +>>> + +\<<< +\Configure{-@@ur} + {\HCode{}} + {\HCode{}} +>>> + + +\<<< +\v!hoofdstuk +>>> + +\<<< +\v!paragraaf +>>> + +\<<< +\v!sub \v!paragraaf +>>> + +\<<< +\v!sub \v!sub \v!paragraaf +>>> + +\<<< +\v!sub \v!sub \v!sub \v!paragraaf +>>> + +\<<< +\v!sub \v!sub \v!sub \v!sub \v!paragraaf +>>> + + + +\<<< +\Configure{sectie} + {\gHAdvance \sec:Level by 1\relax + \ifnum \sec:Level=1 + \ifvmode \IgnorePar\fi \EndP + \HCode{
      }% + \else + \HCode{}% + \fi + } + {\ifnum \sec:Level=1 + \ifvmode \IgnorePar\fi \EndP + \HCode{
      }% + \else + \HCode{}% + \fi + \gHAdvance \sec:Level by -1\relax + } +\HAssign\sec:Level=0 +>>> + + + + +\<<< +\def\:tmp#1#2{% + \ConfigureMark{#1} + {\HCode{}\finalsectionnumber + \HCode{}} + \Configure{#1}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<#2 class="#1Head"\a:LRdir>}\NoFonts + \TitleMark\space\HtmlParOff} + {\EndNoFonts \HCode{}\HtmlParOn + \IgnoreIndent \par \ShowPar} + \Configure{chapterTITLE+}{\finalsectionnumber\space##1} + \ifx \end:secs\empty \else + \edef\:temp{\noexpand\Configure{end#1}{\end:secs}}\:temp + \fi + \edef\end:secs{\end:secs,#1}% + \NewConfigure{#1-ko}{2} +} +\def\end:secs{} +\def\:tempd#1{\edef\:temp{\noexpand\:tmp{#1}}\:temp} +\:tempd{|}{h1} +\:tempd{|}{h2} +\:tempd{|}{h3} +\:tempd{|}{h4} +\:tempd{|}{h5} +\:tempd{|}{h5} +>>> + +\<<< +\ConfigureMark{part} + {\HCode{}\finalsectionnumber + \HCode{}} +\Configure{part}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

      }\NoFonts + \TitleMark\space\HtmlParOff} + {\EndNoFonts \HCode{

      }\HtmlParOn \IgnoreIndent \par} +\Configure{partTITLE+}{\finalsectionnumber\space#1} +>>> + +\<<< +\ConfigureMark{chapter} + {\HCode{}\finalsectionnumber + \HCode{}} +\Configure{chapter}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

      }\NoFonts + \TitleMark\space\HtmlParOff} + {\EndNoFonts \HCode{

      }\HtmlParOn + \IgnoreIndent \par \ShowPar} +\Configure{chapterTITLE+}{\finalsectionnumber\space#1} +\Configure{endsection}{part} +>>> + + + +\<<< +\Configure{placecontent} + {\ifvmode \IgnorePar\fi \EndP + \def\toc:br{\def\toc:br{\HCode{}}}% + \HCode{
      }\IgnorePar} + {} + {\IgnorePar\EndP\HCode{
      }\ShowPar} + {} {} +\Configure{contenthead} + {\ifvmode \IgnorePar\fi \EndP \HCode{

      }\NoFonts} + {\ifvmode \IgnorePar\fi \EndNoFonts \HCode{

      }\par} +>>> + + + +\<<< +\ConfigureToc{part} + {\toc:br + \HCode{}} + {\HCode{}~} + {} + {\HCode{}} +>>> + + + + +\<<< +\ConfigureToc{chapter} + {\toc:br + \HCode{}} + {\HCode{}~} + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{section} + {\toc:br + \HCode{}} + {\HCode{}~} + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsection} + {\toc:br + \HCode{}} + {\HCode{}~} + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsubsection} + {\toc:br + \HCode{}} + {\HCode{}~} + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsubsubsection} + {\toc:br + \HCode{}} + {\HCode{}~} + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsubsubsubsection} + {\toc:br + \HCode{}} + {\HCode{}~} + {} + {\HCode{}} +>>> + + + +\<<< +\Configure{narrower} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} +\Css{div.narrower {margin-left:2em; margin-right:2em;}} +>>> + + + +\<<< +\Configure{midaligned} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }\par} +\Configure{leftaligned} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }\par} +\Configure{rightaligned} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }\par} +\Css{div.midaligned {text-align:center;}} +\Css{div.leftaligned {text-align:left;}} +\Css{div.rightaligned {text-align:right;}} +>>> + + +\<<< +\Configure{startstop} + {\ifvmode \IgnorePar \EndP + \HCode{
      }\par + \def\end:startstop{\ifvmode \IgnorePar \EndP \fi + \HCode{
      }\par}% + \else + \HCode{}% + \def\end:startstop{\ifvmode \IgnorePar \HCode{}\par + \else \HCode{}\fi}% + \fi} + {\end:startstop} +>>> + + +\<<< +\Configure{description-item} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      +
      }\everypar{}} + {\HCode{
      }\everypar{\HtmlPar}\par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} +>>> + +\<<< +\Configure{description-word} + {\HCode{}} + {\ifvmode \IgnorePar \HCode{}\par + \else \HCode{}\fi} +>>> + + + +\<<< +\Configure{itemgroup} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
      }\let\end:dd=\empty} + {\ifvmode\IgnorePar\fi \EndP \end:dd \HCode{
      }} +\Configure{head-listitem} + {\ifvmode\IgnorePar\fi \EndP + \end:dd \HCode{
      }} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
      }\def\end:dd{\HCode{
      }}} +\Configure{symbol-listitem} + {\ifvmode\IgnorePar\fi \EndP + \end:dd \HCode{
      }} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
      }\def\end:dd{\HCode{
      }}} +\Configure{other-listitem} + {\ifvmode\IgnorePar\fi \EndP + \end:dd \HCode{
      }} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
      }\def\end:dd{\HCode{
      }}} +>>> + +\<<< +\Configure{typing} + {\ifvmode \IgnorePar\fi \EndP \par \ShowPar + \def\verb:par{% + \HCode{
      }% + \gdef\verb:par{\HCode{
      }}}% + } + {\ifvmode \IgnorePar\fi \HCode{
      }\par} + {\verb:par} + {\HCode{\string&}\HChar{-35}\HCode{x00A0;}} +\Css{div.typing + {font-family: monospace; white-space: nowrap; }} +>>> + + +\<<< +\Configure{plaatsblok} + {\ifvmode \IgnorePar\fi \EndP\HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP\HCode{
      }} +\Configure{caption} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +>>> + +Q. Where placefigure is declared? + +\<<< +\NewConfigure{figure}{2} +\Configure{figure} + {\ifvmode \IgnorePar\fi \EndP\HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP\HCode{
      }} +>>> + + +\<<< +\Configure{externalfigure}{\Picture[fig]} +>>> + +\<<< +\Configure{figure-li} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }\par\IgnorePar} + {\HCode{}} + {\HCode{
      }} +\Configure{-@@kjfigure} + {\HCode{}} + {\HCode{}} +>>> + + +\<<< +\Configure{title-ko} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }% + \def\end:ko{\ifvmode \IgnorePar\fi \EndP \HCode{
      }}\bgroup + \aftergroup\end:ko + \Configure{title-ko}{\bgroup}{\egroup}% + } + {\egroup } +>>> + + + +\<<< +\Configure{\v!tabulate} + {\ifvmode \IgnorePar\fi + \EndP \HCode{
      }}
      +   {\ifvmode\IgnorePar\fi\HCode{
      }\par} +>>> + + + +\<<< +\Configure{table} + {\PushStack\Table:Stck\TableNo + \PushStack\Row:Stck\HRow \HAssign\HRow=0\relax + \PushStack\Col:Stck\Prev:Col + \gHAdvance\Table:No by 1\relax + \HAssign\TableNo=\Table:No\relax + \ifvmode \IgnorePar\fi \EndP\halignTB{table}\putVBorder +} + {\HCode{}% + \PopStack\Table:Stck\TableNo + \PopStack\Row:Stck\HRow + \PopStack\Col:Stck\Prev:Col + } + {\gHAdvance\HRow by 1 + \HCode{}% + \currentTABLEcolumn=0 \gHAssign\Prev:Col=0 } + {\HCode{}} + {\HAssign\HCol=\the\currentTABLEcolumn\relax + \HAssign\HMultispan=\HCol\relax + \HAdvance\HMultispan by -\Prev:Col\relax + \gHAssign\Prev:Col=\HCol\relax + \HAdvance\HCol by 1\relax + \ifnum \HMultispan>1 \HAdvance\HCol by 1 + \HAdvance\HCol by -\HMultispan\relax \fi + \HCode{\Hnewline1 colspan="\HMultispan" \fi >}% +\gdef\dd:table{% + \gdef\dd:table{}% + \x:tableCell + \d:table}% +\def\x:tableCell{\e:tableCell \global\let\x:tableCell=\empty}% +} + {\HCode{}} + +\HAssign\Table:No=0 +\HAssign\TableNo=0 +\HAssign\Prev:Col=0 +\HAssign\HRow=0 +>>> + + +\<<< +\Configure{tableCell} + {\e:table\HCode{
      }\ShowPar\par} + {\e:table\HCode{
      }\ShowPar\par} + {\e:table\HCode{
      }\ShowPar\par} + {\e:table\HCode{
      }\ShowPar\par} + {\ifvmode \IgnorePar\fi \EndP\HCode{
      }\f:table} +>>> + + +\<<< +\let\VBorder\empty \let\AllColMargins\empty +\Configure{VBorder} + {\let\VBorder\empty + \let\AllColMargins\empty + \global\let\GROUPS\empty + \HAssign\NewGroup = 0 + } + {% + \let\:temp\TableNo \let\TableNo=\relax + \edef\VBorder{\VBorder\ifnum \NewGroup> 0 \fi}% + \let\TableNo\:temp + \HAssign\NewGroup = 0 + \gdef\GROUPS{rules="groups"}% + } + {\Advance:\NewGroup by 1 + \let\:temp\TableNo \let\TableNo=\relax + \ifnum \NewGroup=1 \edef\VBorder{\VBorder}\fi + \edef\VBorder{\VBorder}\xdef\AllColMargins{\AllColMargins1}% + \let\TableNo\:temp + } + {% + \let\:temp\TableNo \let\TableNo=\relax + \edef\AllColMargins{\AllColMargins 0}% + \let\TableNo\:temp + } + +\Css{table.table td {vertical-align:top;}} +>>> + +\<<< +\Css{table.table td { padding-left:3pt; padding-right:3pt; }} + +\Configure{halignTB}{\HCode{}} +\Configure{halignTB<>}{table}{\HCode{class="table"\Hnewline + cellspacing="0" cellpadding="0" \GROUPS\Hnewline + frame="\ifx \GROUPS\empty void\else border\fi" id="TBL-\TableNo-" + }<>\HAlign} +>>> + +\<<< +\Configure{TABLElongrule}{\HCode{
      }} +\Configure{TableHL} + {\TABLEnoalign{% + \HCode{
      }% +\tmp:cnt=\maxTABLEcolumn +\advance\tmp:cnt by 2 +\HCode{}% + \HCode{}}% +} +>>> + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{ % align="left" + style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ % align="center" + style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ % align="right" + style="white-space:nowrap; text-align:right;"}} + {l}{\HCode{ % align="left" + style="white-space:nowrap; text-align:left;"}} + {c}{\HCode{ % align="center" + style="white-space:nowrap; text-align:center;"}} + {r}{\HCode{ % align="right" + style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ valign="top" style="white-space:nowrap;"}} + {=}{\HCode{ valign="baseline" style="white-space:nowrap;"}} + {||}{\HCode{ valign="middle" style="white-space:nowrap;"}} + {_}{\HCode{ valign="bottom" style="white-space:nowrap;"}} + {p}{\HCode{ % align="left" + style="white-space:wrap; text-align:left;"}\Protect\a:HColWidth} + {m}{\HCode{ % align="left" + style="white-space:nowrap; text-align:left;" valign="middle"}} + {b}{\HCode{ % align="left" + style="white-space:nowrap; text-align:left;" valign="baseline"}} + {} +>>> + + +\<<< +\Configure{index} + {\Link{}{in-\nextinternalreference}\EndLink} +\Configure{indexpage}{% + \gHAdvance\Idx:No by 1 #1% + {#2}% + {#3}% + {#4}% + {\Link{in-#3}{}\Idx:No\EndLink}} +\HAssign\Idx:No = 0 +>>> + +\<<< +\Configure{indexchar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\HCode{
      }\par} +\Css{div.indexchar{margin-top:0.2em; margin-bottom:0.1pt;}} +>>> + +\<<< +\Configure{index-env} + {\ifvmode \IgnorePar\fi \EndP\HCode{
      }\par} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }\par} +\Css{div.index-env p{margin-top:0em; margin-bottom:0em;}} +\NewConfigure{-@@idindex}{2} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{letters} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{g-brief} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }% + \let\sv:@imakebox\@imakebox + \let\sv:br=\\ \def\\{\HCode{
      }}% + \let\:clearpage\clearpage + \def\clearpage{\let\clearpage\:clearpage + \ifvmode \IgnorePar\fi \EndP + \HCode{

      }% + \IgnorePar + }% + \let\brf:par\par + \def\@imakebox[##1][##2]##3{% + \HCode{}% + \def\par{\let\par\brf:par + \ifvmode \IgnorePar\fi \EndP + \HCode{
      }% + \bgroup \let\\=\sv:br \let\@imakebox\sv:@imakebox + \let\par\sv:par + ##3% + \egroup + \HCode{
      }}% + }% + } + {\let\\=\sv:br \let\@imakebox\sv:@imakebox + \ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} +\Css{table.date {width:100\%; margin-top:2em;}} +\Css{table.date td{white-space: nowrap;}} +>>> + +\<<< +\Configure{letterfoot} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {} + {\HCode{
      }} +\Configure{letterhead} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\HCode{}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {\HCode{
      }} +\Css{.letterfoot .tabular {text-align: left; margin-top:4em; }} +\Css{table.from {width:100\%; margin-bottom:2em;}} +\Css{table.from .address table {width:100\%;}} +\Css{.makebox-r {text-align:right;}} +>>> + +\<<< +\Configure{datumtext} + {\HCode{}} + {\HCode{}} +\Configure{datum} + {\HCode{}} + {\HCode{}\IgnorePar} +\Configure{anrede} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {\HCode{
      }} +\Configure{betreff} + {\ifvmode \IgnorePar\fi \EndP\HCode{
      }} + {\HCode{
      }} +\Css{.betreff{margin-top:2em; margin-bottom:1em;}} +\Configure{gruss} + {\HCode{}} + {\HCode{}} +\Configure{unterschrift} + {\HCode{}} + {\HCode{}} +\Configure{anlagen} + {\HCode{}} + {\HCode{}} +\Configure{verteiler} + {\HCode{}} + {\HCode{}} +\Configure{sprache} + {\HCode{}} + {\HCode{}} +\Configure{telefontex} + {\HCode{}} + {\HCode{}} +\Configure{telefaxtext} + {\HCode{}} + {\HCode{}} +\Configure{telextext} + {\HCode{}} + {\HCode{}} +\Configure{emailtext} + {\HCode{}} + {\HCode{}} +\Configure{httptext} + {\HCode{}} + {\HCode{}} +\Configure{banktext} + {\HCode{}} + {\HCode{}} +\Configure{blztext} + {\HCode{}} + {\HCode{}} +\Configure{betrefftext} + {\HCode{}} + {\HCode{}} +\Configure{ihrzeichentext} + {\HCode{}} + {\HCode{}} +\Configure{ihrschreibentext} + {\HCode{}} + {\HCode{}} +\Configure{meinzeichentext} + {\HCode{}} + {\HCode{}} +\Configure{unserzeichentext} + {\HCode{}} + {\HCode{}} +\Configure{anlagen} + {\HCode{}} + {\HCode{}} +\Configure{adresse} + {\HCode{}} + {\HCode{}} +\Configure{bank} + {\HCode{}} + {\HCode{}} +\Configure{blz} + {\HCode{}} + {\HCode{}} +\Configure{email} + {\HCode{}} +\Configure{gruss} + {\HCode{}} + {\HCode{}} +\Configure{grussskip} + {\HCode{}} + {\HCode{}} +\Configure{http} + {\HCode{}} + {\HCode{}} +\Configure{ihrschreiben} + {\HCode{}} + {\HCode{}} +\Configure{ihrzeichen} + {\HCode{}} + {\HCode{}} +\Configure{konto} + {\HCode{}} + {\HCode{}} +\Configure{land} + {\HCode{}} + {\HCode{}} +\Configure{meinzeichen} + {\HCode{}} + {\HCode{}} +\Configure{name} + {\HCode{}} + {\HCode{}} +\Configure{ort} + {\HCode{}} + {\HCode{}} +\Configure{postvermerk} + {\HCode{}} + {\HCode{}} +\Configure{retouradresse} + {\HCode{}} + {\HCode{}} +\Css{div.retouradresse { margin-bottom:2em; }} +\Configure{strasse} + {\HCode{}} + {\HCode{}} +\Configure{telefax} + {\HCode{}} + {\HCode{}} +\Configure{telefon} + {\HCode{}} + {\HCode{}} +\Configure{telex} + {\HCode{}} + {\HCode{}} +\Configure{unterschrift} + {\HCode{}} + {\HCode{}} +\Configure{verteiler} + {\HCode{}} + {\HCode{}} +\Configure{zusatz} + {\HCode{}} + {\HCode{}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{mwcls} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{@begin}{theindex}{\section*{\indexname}} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }\let\end:theidx\empty} + {\end:theidx\HCode{
      }} + {} {\HCode{}\hfil\break} + {\ \ \ \ } {\HCode{}\hfil\break} + {\ \ \ \ \ \ \ \ } {\HCode{}\hfil\break} + {\hbox{\end:theidx\HCode{

      }}% + \def\end:theidx{\HCode{

      }}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Into Columns} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\def\:temp#1index=#2,#3|{% + \ifnum #2>1 |\fi + \def\:temp{#2}% +} +\expandafter\:temp\Preamble,index=0,| +\ifnum \:temp<2 + | +\else + | +\fi +>>> + + +The \verb=\Configure{IndexColumns}= instruction is to allow documents +that have more than one index to employ different number of columns. +The `index=i' provides the initial setting. + + +\<<< +\Log:Note{for i-columns index, + use the command line option `index=i' (e.g., index=2)} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }\let\end:theidx|=\empty} + {\end:theidx\HCode{
      }} + {} {\hfil\break\HCode{}} + {\ \ \ \ } {\hfil\break\HCode{}} + {\ \ \ \ \ \ \ \ } {\hfil\break\HCode{}} + {\hbox{\end:theidx\HCode{

      }}% + \def\end:theidx{\HCode{

      }}} +>>> + +\<<< +\NewConfigure{IndexColumns}{1} +\Configure{IndexColumns}{#2} +>>> + + +\<<< +\Log:Note{the number of columns + requested by the option `index=\a:IndexColumns' can + be modified through the command \string\Configure{IndexColumns}{i}} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }% + |\let\end:theidx|=\empty} + {\end:theidx + |\HCode{
      }} + {} {\hfil\break\HCode{}} + {\ \ \ \ } {\hfil\break\HCode{}} + {\ \ \ \ \ \ \ \ } {\hfil\break\HCode{}} + {%\ifvmode \EndP\fi + % \hbox{\end:theidx\HCode{

      }}% + % \def\end:theidx{\HCode{

      }} + \parindent=0pt + }% +>>> + + +% {} +% {\ifvmode \else \hfil\HCode{}\break\fi} +% {\ \ \ \ } {\hfil\HCode{}\break} +% {\ \ \ \ \ \ \ \ } {\hfil\HCode{}\break} + +\<<< +\Configure{HColumns} + {\IgnorePar\EndP + \HCode{}} + {\HCode{
      }} + {\HCode{}\ColMag{1.1}} + {\IgnorePar\EndP\HCode{}} + \HColumns{\a:IndexColumns}% + \everypar{\HtmlPar}% + \Configure{HtmlPar}{}{\HCode{
      }}{}{}% + \par\ShowPar +>>> + +\<<< +\ifvmode\IgnorePar\fi \EndP\EndHColumns +>>> + +\<<< +\def\add:col{\Advance:\:cols -1 \HAdvance\HCol 1\relax + \ifnum \:cols>0 + \c:Cols \vsplit0 to \tmp:dim \d:Cols \expandafter\add:col + \fi} +\NewConfigure{HColumns}{4} +\def\c:Cols{\edef\sv:dim{\the\tmp:dim}\c:HColumns} +\def\d:Cols{\d:HColumns \tmp:dim\sv:dim } +\def\ColMag#1{\tmp:dim #1\tmp:dim} +\def\HColumns#1{% + \a:HColumns + \HAssign\:cols#1 \setbox0=\vbox\bgroup + \divide\hsize #1 } +\def\EndHColumns{\egroup \HAssign\HCol0 + \tmp:dim\ht0 \advance\tmp:dim \dp0 \divide\tmp:dim \:cols + \add:col \c:Cols \box0 \d:Cols \b:HColumns} +>>> + + + +%%%%%%%%%%%%% +\section{Glossary} +%%%%%%%%%%%%% + +\<<< +\Configure{gloskip}{list}{\item[]\HCode{

      }} +\Configure{gloskip}{altlist}{\item[]\HCode{

      }} +\Configure{gloskip}{super}{\cr\HCode{

      }} +\Configure{gloskip}{long}{\cr\HCode{

      }} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Captions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{caption}{\HCode{\if:nopar \else \fi} + \:xhtml{\IgnorePar\EndP}\HCode{
      }} + {: } {\HCode{}} + {\HCode{
      }|} +\Css{.caption td.id{font-weight: bold; white-space: nowrap; }} +\Css{table.caption {text-align:center;}} +>>> + + +\<<< +\Configure{caption}{\HCode{\if:nopar \else \fi} + \:xhtml{\IgnorePar\EndP}\HCode{
      }} + { } {\HCode{}} + {\HCode{
      }|} +\Css{table.caption {text-align:left;}} +>>> + +\<<< +\Configure{caption}{\HCode{\if:nopar \else \fi} + \:xhtml{\IgnorePar\EndP}\HCode{
      }} + {: } {\HCode{}} + {\HCode{
      }|% +} +\Css{.caption td.id{font-weight: bold; white-space: nowrap; }} +\Css{div.cation {text-align:center;}} +>>> + +\<<< +\Configure{caption} + {\:xhtml{\IgnorePar\EndP}\HCode{
      }}{}{\HCode{
      }} +>>> + +\<<< +\Configure{caption} + {\HCode{
      }} + {\HCode{}: }{}{\HCode{
      }}% +>>> + + +\<<< +\HCode{}% +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Originating Packages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +| +\:CheckOption{fn-in}\if:Option + | +\else + \Log:Note{for inline footnotes use + command line option `fn-in'} + | +\fi +>>> + + + + + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + \Log:Note{for inline footnotes, use + the command line option `fn-in'} + | +\fi +>>> + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + + + + + +%%%%%%%%%%%%%%%% +\subsection{In-Line LaTeX} +%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{mouseover} \if:Option + | + | + | + | +\else + | + | + | +\fi +>>> + + +\<<< +\Configure{footnotetext} + {|% + ||% + \NoFonts + \Tag{|-bk}{}% + \special{t4ht@(}% + } + {\special{t4ht@)}\EndNoFonts ||} + {\expandafter\global\expandafter + \let\csname (|)\endcsname\def + |} +>>> + +\<<< +\Configure{footnotemark} + {||% + \NoFonts + \Tag{|}{}} + {\EndNoFonts + ||% + \expandafter\global\expandafter + \let\csname (|-bk)\endcsname\def} +>>> + + + + +\<<< +\Configure{footnotetext} + {|% + |% + ||% + \NoFonts \Tag{|-bk}{}% + } + {\EndNoFonts ||} + {\expandafter\global\expandafter + \let\csname (|)\endcsname\def + |% + |} +>>> + +\<<< +\Configure{footnotemark} + {||% + \NoFonts + \Tag{|}{}} + {\EndNoFonts + ||% + \expandafter\global\expandafter + \let\csname (|-bk)\endcsname\def} +>>> + + + + + + + + + + + + + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \Link{|-bk}{}% + \else + \Link{|-bk}{|}% + \fi + } + {\expandafter\ifx\csname (|)\endcsname\def + \else \Link{}{|}\fi + }% +>>> + +\<<< +\ifTag{|} + {\EndLink} + {\expandafter\ifx\csname (|)\endcsname\def + \else \EndLink\fi + }% +>>> + + + +\<<< +|% +\ifTag{|-bk} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \Link[ |\Hnewline + ]{|}{}% + \else + \Link[ |\Hnewline + ]{|}{|-bk}% + \fi + } + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \Link[ |\Hnewline + ]{}{|-bk}\fi + }% +>>> + + + + + + + +\<<< +\ifTag{|-bk} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \Link{|}{}% + \else + \Link{|}{|-bk}% + \fi + } + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \Link{}{|-bk}\fi + }% +>>> + +\<<< +\ifTag{|-bk} + {\EndLink} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \EndLink\fi + }% +>>> + + + + +\<<< +\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi +>>> + +\<<< +\EndP\egroup\RecallEndP +>>> + + +\<<< +\ifvoid \fn:box \else + \expandafter \ifx \csname fn:box\body:level\endcsname\relax + \csname newbox\expandafter\endcsname + \csname fn:box\body:level\endcsname + \fi + \global\expandafter\setbox\csname fn:box\body:level\endcsname= + \vbox{\csname unvbox\endcsname\fn:box}% +\fi +\gHAdvance\body:level by 1 +>>> + +\<<< +\gHAdvance\body:level by -1 +\expandafter \ifx \csname fn:box\body:level\endcsname\relax \else + \global\setbox\fn:box= + \vbox{\expandafter\ifvoid \csname fn:box\body:level\endcsname \else + \csname unvbox\expandafter\endcsname + \csname fn:box\body:level\endcsname\fi}% +\fi +>>> + +\<<< +\ifvmode \IgnorePar\fi\EndP +\ifvoid \fn:box\else + \HCode{
      }\box\fn:box\HCode{
      } + \IgnorePar\EndP +\fi +>>> + + +\<<< +(L >>> + +\<<< +)Q>>> + + + +\<<< +\Configure{BODY} + {|\:xhtml{\SaveEndP}\IgnorePar + \HCode{}|\ShowPar\par} + {|% + \relax \ifnum \FileNumber=1 + |% + \fi + \HCode{\Hnewline + }\:xhtml{\RecallEndP}|}% +>>> + +\<<< + \Configure{BODY} + {|\:xhtml{\SaveEndP}\IgnorePar + \HCode{}\ShowPar\par} + {|\HCode{\Hnewline + }\:xhtml{\RecallEndP}|}% +>>> + + +\<<< +\Configure{crosslinks+} + {\IgnorePar\EndP\HCode{|% + }\par\ShowPar} + {|% + \ifvmode \IgnorePar\fi \EndP + \HCode{|}\par\ShowPar} +>>> + +\<<< +\Css{div.footnotes{border-top:solid 1px black; + border-bottom:solid 1px black; + padding-bottom:1ex; + padding-top:0.5ex; + margin-right:15\%; margin-top:2ex; + font-style:italic; font-size:85\%;}} +\Css{div.footnotes p{margin-top:0; margin-bottom:0; text-indent:0;}} +\ifx \fn:box\:UnDef \csname newbox\endcsname\fn:box \fi +\HAssign\body:level=0 +>>> + + + + +%%%%%%%%%%%%%%%% +\subsection{Off-Line in latex} +%%%%%%%%%%%%%%%% + + +\<<< +\:CheckOption{mouseover} \if:Option + | + | + | + \AtEndDocument{|} +\else \:CheckOption{frames-fn} \if:Option + | + | + \else + | + | +\fi \fi +>>> + +\<<< +\Configure{footnotetext} + {|% + |\Link{}{|}% + \NoFonts + } + {\EndNoFonts \EndLink|} + {|} +>>> + +\<<< +\Configure{footnotemark} + {||\NoFonts + \Tag{|}{}} + {\EndNoFonts ||} +>>> + +\<<< +\Configure{footnotetext} + {|% + |\Link{}{|}% + \NoFonts + } + {\EndNoFonts \EndLink|} + {|} +>>> + + +\<<< +\Configure{footnotemark} + {||\NoFonts + \Tag{|}{}} + {\EndNoFonts + ||} +>>> + + + +\<<< +\Configure{footnotetext} + {|% + |\Link{}{|}\NoFonts + } + {\EndNoFonts\EndLink|} + {|} +>>> + +\<<< +\Configure{footnotemark} + {||\NoFonts + \Tag{|}{}} + {\EndNoFonts + ||} +>>> + + + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \else \csname a:footnote-text\endcsname\fi + } + {}% +>>> + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \else \csname b:footnote-text\endcsname\fi + } + {}% +\expandafter\global\expandafter + \let\csname (|)\endcsname\def +>>> + + + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \else \csname a:footnote-text\endcsname\fi + } + {}% +>>> + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \else \csname b:footnote-text\endcsname\fi + } + {}% +\expandafter\global\expandafter + \let\csname (|)\endcsname\def +>>> + + +\<<< +\ifTag{||} + {\Link{|}{}} + {}% +>>> + +\<<< +\ifTag{||} + {\EndLink} + {}% +>>> + + +\<<< +\ifTag{||} + {|% + \leavevmode \Link[ |% + \Hnewline]{|}{}} + {}% +>>> + +\<<< +\ifTag{||} + {\EndLink} + {}% +>>> + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \else + \Configure{!BODY}{id="|" }% + \BeginHPage[|]{ }% + \Configure{!BODY}{}% + \fi + } + {}% +>>> + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \else + \close:fn\EndHPage{} + \fi + } + {}% +\expandafter\global\expandafter + \let\csname (|)\endcsname\def +>>> + + +\<<< +\def\close:fn{\HPage{}\Link{}{hide-fn}\EndLink\EndHPage{}% + \gdef\close:fn{\rightline{\Link{hide-fn}{}@\EndLink}}\close:fn} +>>> + +% \Css{body\#|{font-size:80\%;}}% + + +\<<< +\ifTag{||} + {\Link[\RefFile{|} + target="|"]{}{}} + {}% +>>> + +\<<< +\ifTag{||} + {\EndLink} + {}% +>>> + + + + + + + +\<<< +fn\FNnum x\minipageNum +>>> + + + +\<<< +\csname a:footnote-mark\endcsname +>>> + +\<<< +\csname b:footnote-mark\endcsname +>>> + +\<<< +\csname a:thank-mark\endcsname +>>> + +\<<< +\csname b:thank-mark\endcsname +>>> + +\<<< +\NewConfigure{footnote-mark}{2} +\NewConfigure{thank-mark}{2} +\Configure{footnote-mark} + {\HCode{}} + {\HCode{}} +\Configure{thank-mark} + {\HCode{}} + {\HCode{}} +\Css{span.thank-mark{ vertical-align: super }} +>>> + + + +\<<< +\NewConfigure{footnote-text}{2} +>>> + +\<<< +\Configure{footnote-text} + {\HPage{}\HCode{
      }\par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }\EndHPage{}} +>>> + +\<<< +\Configure{footnote-text} + {\HPage{}\HCode{
      }|} + {\ifvmode \IgnorePar\fi \EndP + |\HCode{
      }\EndHPage{}} +>>> + +\<<< +% \Css{span.footnote-mark{ vertical-align: super }} +\Css{span.footnote-mark sup.textsuperscript, + span.footnote-mark a sup.textsuperscript{ font-size:80\%; }} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{AMS} +%%%%%%%%%%%%%%%% + + +\<<< +\:CheckOption{fn-in}\if:Option + \:CheckOption{mouseover}\if:Option + |% + \else + |% + \fi +\else + \:CheckOption{mouseover}\if:Option + |% + \else \:CheckOption{frames-fn}\if:Option + |% + \else + |% + \fi \fi +\fi +>>> + +\<<< +\Configure{footnotetext} + {|\HPage{\FNnum}\HCode{
      }\NoFonts} + {\EndNoFonts} + {\HCode{
      }\EndHPage{}|}% +>>> + + +\<<< +|% +>>> + +\<<< +|% +>>> + +\<<< +|% +>>> + +\<<< +|% +>>> + +\<<< +% \Css{span.footnote-mark{ vertical-align: super }} +\Css{span.footnote-mark sup.textsuperscript, + span.footnote-mark a sup.textsuperscript{ font-size:80\%; }} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{SCR *} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + + + +\<<< +% \Css{span.footnote-mark{ vertical-align: super }} +\Css{span.footnote-mark sup.textsuperscript, + span.footnote-mark a sup.textsuperscript{ font-size:80\%; }} +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{Plain} +%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{vfootnote} + {|} + {|} + {|} +>>> + + + + +\<<< +\HCode{}\Link{fn\FNnum}{fn\FNnum-bk}% + \ifx \FNmark\empty +\else \FNmark\fi\EndLink +\HCode{}% +>>> + +\<<< +|% +\HCode{}\Link{fn\FNnum-bk}{fn\FNnum}% +\ifx \FNmark\empty +\else \FNmark\fi +\EndLink\space\HCode{}% +>>> + +\<<< +| +>>> + + + +\<<< +\Configure{vfootnote} + {\HPageButton[fn\FNnum]{\FNmark}} + {\BeginHPage[fn\FNnum]{ }} + {\EndHPage{}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{On Mouse Over} +%%%%%%%%%%%%%%%% + + +\<<< +\expandafter\def\csname c:mouseover-footnote:\endcsname{% + \def\:tempb{footnote}\csname c:mouseover-?:\endcsname} +\Configure{mouseover-footnote} {tex4ht.body,FULLHTML} +>>> + + + + +\<<< +|\let\sv:link=\Link +\def\Link[##1]{\let\Link=\sv:link + \Link[##1 |\Hnewline]}% +>>> + + +\<<< +\mo:args{footnote}{\FNnum}{|}% +>>> + + +\<<< +|% +\HCode{}% +|% +>>> + +\<<< +|% +\HCode{}% +>>> + + + + + + +An alternative css-based approach: + +\begin{verbatim} +\Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
      }\IgnorePar} + {} + {\IgnorePar\EndP\HCode{
      }\ShowPar} + {\HCode{
      }} {} + +\ConfigureToc{section} + {\HCode{
      }} + { \HCode{}} + {} + {\HCode{
      }} +\ConfigureToc{subsection} + {\HCode{
      }} + { \HCode{}} + {} + {\HCode{
      }} +\ConfigureToc{subsubsection} + {\HCode{
      }} + { \HCode{}} + {} + {\HCode{
      }} + +\ConfigureToc{likesection} + {} + {\HCode{
      }} + {} + {\HCode{
      }} +\ConfigureToc{likesubsection} + {} + {\HCode{
      }} + {} + {\HCode{
      }} +\ConfigureToc{likesubsubsection} + {} + {\HCode{
      }} + {} + {\HCode{
      }} + + + +\Css{div.sectionToc { margin-left: 1em; text-indent: -1em; }} +\Css{div.sectionToc span.mark { text-align:right; width: 1em; + padding-right:0.25em; }} + +\Css{div.subsectionToc { margin-left:2.5em; text-indent: -2.5em; }} +\Css{div.subsectionToc span.mark { text-align:right; width: 2.5em; + padding-right:0.25em; }} +\Css{div.likesubsectionToc { margin-left: 2.5em; text-indent: -1.5em; }} + +\Css{div.subsubsectionToc { margin-left: 4.5em; text-indent: -4.5em; }} +\Css{div.subsubsectionToc span.mark { text-align:right; width: 4.5em; + padding-right:0.25em; }} +\Css{div.likesubsubsectionToc { margin-left: 4.5em; text-indent: -2em; }} +\end{verbatim} + +%%%%%%%%%%%%% +\subsection{Other} +%%%%%%%%%%%%% + + +\<<< +\Configure{textsuperscript} + {\HCode{}\bgroup \small} + {\egroup \HCode{}} +>>> + + +%%%%%%%%%%%%%%%% +\section{Floats} +%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{subfigure} +%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{subfigure} + {\ifvmode \IgnorePar \fi \EndP + \HCode{
      }} + {\ifvmode \IgnorePar \fi \EndP \HCode{
      }} +\Configure{subfigurecaption} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {}{} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} +\Css{.subfigcaption {margin-top:1em; + margin-left:1em; text-align:center;}} +\Css{div.subfigure {text-align:center;}} +>>> + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Wrapfig} +%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item + r R - the right side of the text +\item + l L - the left side of the text +\item + i I - the inside edge--near the binding (if ``[twoside]'' document) +\item + o O - the outside edge--far from the binding +\end{itemize} + + +\<<< +\Configure{wrapfloat} + {\ifvmode\IgnorePar\EndP + \HCode{
      }% + \def\endWrap{\ifvmode\IgnorePar\fi\EndP\HCode{
      }\par}% + \else + \HCode{}\bgroup + |% + \def\endWrap{\egroup\HCode{}}% + \fi + } + {\endWrap} +\Css{.caption span.id{font-weight: bold;}} +\Css{ + .wrapfig-r, + .wrapfig-ri, + .wrapfig-ir, + .wrapfig-ro, + .wrapfig-or + {float:right; text-align:left; + margin-left:auto; margin-top:0.5em;} +} +\Css{ + .wrapfig-l, + .wrapfig-li, + .wrapfig-il, + .wrapfig-lo, + .wrapfig-ol + {float:left; text-align:left; + margin-right:auto; margin-top:0.5em;} +} +\Css{.wrapfig-r .caption td.content, + .wrapfig-ri .caption td.content, + .wrapfig-ir .caption td.content, + .wrapfig-ro .caption td.content, + .wrapfig-or .caption td.content, + .wrapfig-l .caption td.content, + .wrapfig-li .caption td.content, + .wrapfig-il .caption td.content, + .wrapfig-lo .caption td.content, + .wrapfig-ol .caption td.content + {white-space: normal; }} +\Css{.wrapfig-r .caption, + .wrapfig-ri .caption, + .wrapfig-ir .caption, + .wrapfig-ro .caption, + .wrapfig-or .caption, + .wrapfig-l .caption, + .wrapfig-li .caption, + .wrapfig-il .caption, + .wrapfig-lo .caption, + .wrapfig-ol .caption + {width:30\%; }} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%% +\subsection{endfloat} +%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{figure}{}{}{}{} +>>> + +\<<< +\Configure{floatingfigure} + {\HCode{}% + \bgroup \Configure{HtmlPar}{}{}{}{}% + \ConfigureEnv{minipage}{\IgnorePar}{}{\IgnorePar}{}% + |% + } + {\egroup \HCode{}} +\Css{.floatingfigure-r { float:right; text-align:left; + margin-top:0.5em; margin-bottom:0.5em; margin-left:0em;}} +\Css{.floatingfigure-l { float:left; text-align:left; + margin-top:0.5em; margin-bottom:0.5em; margin-right:0em; }} +\Css{.caption span.id{font-weight: bold;}} +>>> + + + +%%%%%%%%%%%%%%%% +\section{Make Title} +%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{book-report-article} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +thanks author date and>>> + +\<<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{div.maketitle {text-align:center;}} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; }} +|<maketitle footnote|> +>>> + + + +\<config thanks author date and\><<< +\Configure{|<thanks author date and|>} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +\Css{div.author{white-space: nowrap;}} +>>> + +\<thank for thanks\><<< +\Configure{thank} + {|<thank mark sup|>\Link{tk-\the\c@footnote}{}} + {\EndLink |<thank mark end sup|>} + {\HCode{<br />}\protect\Link{}{tk-\the\c@footnote}\protect + \EndLink |<thank mark sup|>} + {|<thank mark end sup|>} {} +>>> + +\<thanks for thanks p\><<< +\Configure{thank} + {|<thank mark sup|>\Link{tk-\the\c@footnote}{\ifx + \footnote\thanks kt-\the\c@footnote\fi}} + {\EndLink |<thank mark end sup|>} + {\HCode{<p>}\protect\Link{\ifx \footnote\thanks kt-\the\c@footnote + \fi}{tk-\the\c@footnote}|<thank mark sup|>} + {|<thank mark end sup|>\protect\EndLink} + {\HCode{</p>}} +>>> + +\<thanks for thanks EndP\><<< +\Configure{thank} + {\HCode{<sup>}\Link{tk-\the\c@footnote}{\ifx + \footnote\thanks kt-\the\c@footnote\fi}} + {\EndLink\HCode{</sup>}} + {\protect\Link{\ifx \footnote\thanks kt-\the\c@footnote + \fi}{tk-\the\c@footnote}\HCode{<sup>}} + {\HCode{</sup>}\protect\EndLink} + {\ifvmode\IgnorePar\fi\EndP} +>>> + + +\<end-thanks author date and\><<< +\Configure{|<thanks author date and|>} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author">}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{RevTeX} +%%%%%%%%%%%%%%%%%%%% + +\<revtex title page\><<< +\ConfigureEnv{abstract}{\:xhtml{\IgnorePar\EndP}\HCode + {<\tbl:XV{abstract}><tr><td\Hnewline>}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</td></tr></table>}}{}{} +\Css{.abstract p {margin-left:5\%; margin-right:5\%;}} + +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 2|>% + \HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +|<revtex maketitle footnote|> +\Configure{address} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="address">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} +>>> + + + + + +\<revtex end-thanks author date and\><<< +\Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" >}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + +\<revtex config thanks author date and\><<< +\Configure{thanks author date and} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<div class="date" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +\Css{div.author{white-space: nowrap;}} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{TUG LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<tug proc maketitle\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + |<global HtmlPar|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +>>> + + +\<tug boat maketitle\><<< +\@ifclassloaded{ltugproc}{}{% + \@ifpackageloaded{ltugproc}{}{\Configure{@BODY}{\rtitlex}} +} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP + \def\textSMC##1{##1}% + |<title for TITLE|>% + |<global HtmlPar|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +>>> + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{lncse} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech lncse\><<< +\Configure{institute}{}{}{\HCode{<br />}} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:left;}} +\:CheckOption{fn-in}\if:Option + \Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" >}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +\else + \Configure{thanks author date and} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<div class="date" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +\fi + +>>> + +%%%%%%%%%%%%%%%%%%%% +\subsection{Prosper} +%%%%%%%%%%%%%%%%%%%% + + +\<prosper maketitle\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP + {\def\@title{\@Title}|<title for TITLE|>}% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {\NoFonts\IgnorePar \EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{AMS} +%%%%%%%%%%%%%%%%%%% + + + +\<ams art,proc,book\><<< +\Configure{translators} + {\par\IgnorePar\EndP \HCode{<div class="translators">}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP \HCode{</div>}} + {\HCode{<span class="translator">}} + {\HCode{</span>}} +>>> + +\<ams art,proc\><<< +\Css{div.translators {text-align:right; margin-bottom:0.7em;}} +>>> + + + +\<ams art,proc,book\><<< +\Configure{keywords} + {\par\IgnorePar\EndP \HCode{<div class="keywords">}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP\HCode{</div>}} +\Configure{subjclass} + {\par\IgnorePar\HCode{<div class="subjclass">}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP\HCode{</div>}} +\Configure{@maketitle} + {\Tg<div class="submaketitle">\IgnoreIndent} + {\ifvmode \IgnorePar \fi\EndP\Tg</div>} +\Css{div.submaketitle{ text-align:left; margin-top:2em; + border-top: 1px solid black; + border-bottom: 1px solid black; + margin-left:5\%; margin-right:5\%; + font-size:85\%; line-height: 95\%;}} +\Css{div.submaketitle div {margin-top:0.5em; margin-bottom:0.5em; }} +\Css{div.submaketitle p { margin-top:0em; margin-bottom:0em; }} +>>> + +\<ams art,proc,book\><<< +\ConfigureEnv{abstract} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +\ConfigureList{abstract} + {\ifvmode \IgnorePar\fi \EndP \Tg<div class="abstract">\ShowPar} + {\ifvmode \IgnorePar\fi \EndP\Tg</div>} + {\ShowPar\par\HCode{<span class="title">}} + {\HCode{</span>}} +\Configure{setabstract} + {\ifvmode \IgnorePar \fi \EndP} + {\ifvmode \IgnorePar \fi \EndP} +\Css{div.abstract{ margin-top: 2em; text-align:left; + margin-right:15pt; margin-left:15pt; }} +>>> + +\<ams art,proc,book\><<< +\Configure{addresses} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="addresses">}\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{address} + {\HCode{<span class="address-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="address">}} + {\HCode{</span>}} +\Configure{curraddr} + {\HCode{<span class="curraddr-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="curraddr">}} + {\HCode{</span>}} +\Configure{email} + {\HCode{<span class="email-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="email">}} + {\HCode{</span>}} +\Configure{urladdr} + {\HCode{<span class="urladdr-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="urladdr">}} + {\HCode{</span>}} +\Css{div.addresses p {margin-top:0em; margin-bottom:0em; }} +>>> + + +\<ams art,proc,book\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<ams title for TITLE|>% + \HCode{<div class="maketitle">}% + \ConfigureEnv{center} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi}% + |<footnote for ams title|>% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar \EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar + \bgroup \Configure{HtmlPar}{}{}{}{}} + {\egroup \HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +>>> + + + + +\<ams art,proc\><<< +\Configure{|<thanks author date and|>} + {\par\IgnorePar\EndP \HCode{<div class="thanks">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<div class="authors"><span class="author">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</span></div>}} + {\par\IgnorePar\EndP \HCode{<div class="date">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\lowercase{\HCode{</span><span class="and">}}and~% + \lowercase{\HCode{</span><span>}}} + {\HCode{<br\xml:empty>}} +>>> + +\<ams book\><<< +\Configure{|<thanks author date and|>} + {\par\IgnorePar\EndP \HCode{<div class="thanks">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<div class="authors"><div class="author">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div></div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\lowercase{\HCode{</div><div>}}} + {\HCode{<br\xml:empty>}} +\Css{div.addresses{ margin-top:0.5em; }} +>>> + +\<amsdtx maketitle\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\NoFonts\HCode{<h2 class="titleHead"\a:LRdir>}} + {\HCode{</h2>}\EndNoFonts} +\Css{div.maketitle {text-align:center;}} +>>> + +%%%%%%%%%%%%%%%% +\subsection{llncs} +%%%%%%%%%%%%%%%% + +\<configure html-speech llncs\><<< +\Configure{email} + {\HCode{<span class="email">}} + {\HCode{</span>}} +\Configure{institute} + {\HCode{<div class="institute">}} + {\HCode{</div>}} +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{aa} +%%%%%%%%%%%%%%%% + +\<configure aa 3.2/4.0t\><<< +\Configure{subtitle institute} + {\HCode{<br\xml:empty><span class="subtitle">}}{\HCode{</span>}} + {\HCode{<div class="institute">}}{\HCode{</div>}} + {\Tg<sup>}{\Tg</sup>} + {\HCode{<br\xml:empty>}} + +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div align="center" >}} + {\HCode{</div>}} + {\NoFonts\IgnorePar \HCode{<h2 class="maketitleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Configure{|<thanks author date and|>} {}{} + {\HCode{<div class="author" align="center">}}{\HCode{</div>}} + {\HCode{<div class="date" align="center">}}{\HCode{</div>}} + {\SPAN:{and}and\EndSPAN:} + {\HCode{<br\xml:empty>}} +\Css{div.maketitle {text-align:center;}} +>>> + +\<configure aa 3.2/4.0t\><<< +\ConfigureEnv{abstract} + {\:xhtml{\IgnorePar\EndP}\HCode {<div class="abstract">}} + {\HCode{</div>}}{}{} + +\Css{div.abstract{text-align:center;}} + +\Configure{makeheadbox} + {\HCode{<table class="makeheadbox" + width="100\%"><tr><td><table><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr></table></td><td class="AALogo" width="10\%">}} + {\HCode{</td></tr></table>}} +\Css{.AALogo{font-size:120\%;font-weight: bold; text-align:right;}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{MWC} +%%%%%%%%%%%%%%%% + +\<mwcls configs\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 2|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{div.maketitle {text-align:center;}} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; }} +\:CheckOption{fn-in}\if:Option + \Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author">}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} + +\else + \Configure{thanks author date and} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +\Css{div.author{white-space: nowrap;}} + +\fi +>>> + + +%%%%%%%%%%%%%%%% +\subsection{scr} +%%%%%%%%%%%%%%%% + +\<configure html-speech scrbook\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 3|>% + \HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\IgnorePar \EndP + \NoFonts\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +|<maketitle footnote|> +|<scr title page|> +>>> + + +\<configure html-speech scrreprt\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 3|>%% + \HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\IgnorePar \EndP + \NoFonts\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +|<scrreprt maketitle footnote|> +|<scr title page|> +>>> + + +\<scr title page\><<< +\ConfigureEnv{titlepage} + {\bgroup + \ifvmode \IgnorePar\fi \EndP + \HCode{<div class="titlepage">}% + \ConfigureEnv{center}{}{}{}{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}% + \egroup} + {} {} +\Configure{dedication} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="dedication" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} +\Css{div.dedication {text-align:center;}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{ACM} +%%%%%%%%%%%%%%%% + + +\<configure html-speech acm-proc-article-sp\><<< +\Configure{toappear} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="toappear">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Configure{boilerplate} + {\HCode{<div class="boilerplate">}} {\HCode{</div>}} +\Configure{conf} + {\HCode{<div class="conf">}} {\HCode{</div>}} +\Configure{confinfo} + {\HCode{<div class="confinfo">}} {\HCode{</div>}} +\Configure{copyrightetc} + {\HCode{<div class="copyrightetc">}} {\HCode{</div>}} +>>> + +\<configure html-speech acm-proc-article-sp\><<< +\Configure{thanks} + {\IgnorePar\HCode{<div class="thanks">}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\IgnoreIndent} +\Css{div.thanks{text-align:left; margin-top:1em; margin-bottom:1em;}} +\Configure{subtitle} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h4 class="subtitleHead"\a:LRdir>}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h4>}\IgnoreIndent} +\Css{.subtitleHead{text-align:center;}} +\Configure{title} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h3 class="titleHead"\a:LRdir>}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h3>}\IgnoreIndent} +\Css{.titleHead{text-align:center;}} +\Configure{email}{\Link[mailto:#1]{}{}\IgnorePar\o:email:{#1}\EndLink} +\Configure{@TITLE}{\let\titlenote=\:gobble} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>} + {} +\Configure{author} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="author">}\ShowPar\par} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\IgnoreIndent} +\Css{div.author{text-align:center; margin-top:1em; margin-bottom:1em;}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{APA} +%%%%%%%%%%%%%%%% + +\<apa maketitle\><<< +\Configure{affil} + {\HCode{<div class="affil">}\bgroup + |<apa maketitle br cr|>% + } + {\egroup \HCode{</div>}} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}\bgroup + |<apa maketitle no-br cr|>% + } + {\egroup\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\apa:title} {\apa:endtitle} +\def\apa:title{\NoFonts\IgnorePar + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar + \global\let\apa:title=\empty } +\def\apa:endtitle{\HCode{</h2>}\IgnoreIndent\EndNoFonts + \global\let\apa:endtitle=\empty } +>>> + + +\<apa maketitle br cr\><<< +\Configure{centercr} + {\ht:special{t4ht=<br />}} + {\ht:everypar{\ht:everypar{\HtmlPar}}} +>>> + +\<apa maketitle no-br cr\><<< +\Configure{centercr} + {} {\ht:everypar{\ht:everypar{\HtmlPar}}}% +>>> + + +%%%%%%%%%%%%%%%% +\subsection{Shared} +%%%%%%%%%%%%%%%% + + + +\<title for TITLE\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection |<disable latex fonts|>\let\thanks|=\:gobble +\let\\|=\space \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\def\footnotemark[##1]{}% +\Tag{TITLE+}{\@title}} +>>> + +Old latex files need \verb'\no:fonts', but not new ones.---wrong, as far as writing to toc in 0.0? + +\<ams title for TITLE\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection |<disable latex fonts|>\let\thanks|=\:gobble +\let\\|=\space \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\def\footnotemark[##1]{}% +\Tag{TITLE+}{\shorttitle}} +>>> + + + +\<disable latex fonts\><<< +\let\leavevmode|=\empty \let\not@math@alphabet|=\:gobbleII +\def\text@command##1{##1}\let\selectfont|=\empty +\def\check@icl ##1\check@icr{}% +>>> + +\<title for TITLE 2\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection \let\leavevmode\empty \let\not@math@alphabet\:gobbleII +\def\text@command##1{##1}\let\selectfont\empty +\def\check@icl ##1\check@icr{}% +\let\thanks\:gobble +\let\\\space \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\def\footnotemark[##1]{}% +\def\a:ttl##1##2//{##1//}% +\let\large=\empty +\let \bf=\empty +\let \centering=\empty +\def \ignorespaces##1\vskip##2//{##1}% +\Tag{TITLE+}{\@title//}% +}% +>>> + +\<title for TITLE 3\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection \let\leavevmode\empty \let\not@math@alphabet\:gobbleII +\def\text@command##1{##1}\let\selectfont\empty +\def\check@icl ##1\check@icr{}% +\let\thanks\:gobble +\let\\\space \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\Tag{TITLE+}{\@title}}% +>>> + + + +%%%%%%%%%%%%%%%% +\section{Abstracts} +%%%%%%%%%%%%%%%% + +\<apa abstract\><<< +\Configure{abstract} + {\HCode{<div class="abstract">}\bgroup + |<apa maketitle br cr|>% + } + {\egroup \HCode{</div>}} +\Css{div.abstract{text-align:left; margin-left:10\%; margin-top:1em; }} +>>> + + + + + +%%%%%%%%%%%%%%%% +\section{Math} +%%%%%%%%%%%%%%%% + + + + +Don't put \verb'\:xhtml{\IgnorePar\EndP}' on the following; \verb'\PicDisplay' +should handle it. + + + +\<configure html-speech-math latex\><<< +\Configure{[]} + {\bgroup + \protect\nested:math + \PicDisplay + $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay \egroup |<try inline par|>} +\Configure{()}{\bgroup + \protect\nested:math + \protect\PicMath + $} + {$ \protect\EndPicMath \egroup} +\def\nested:math{|<nested pic math|>} +>>> + +The above should be sensitive to cases like the following one. + +\begin{verbatim} +\[ \parbox[t]{2in} { \[.\] }\] +\end{verbatim} + + +\<nested pic math\><<< +\def\[{\bgroup \def\]{$$\egroup}$$}% +\def\({\bgroup \def\){$\egroup}$}% +>>> + + + + +\<configure html-speech-math latex\><<< +\Configure{@TITLE}{\Configure{()}{$}{$}} +>>> + +\<configure html-speech-math th4\><<< +\:CheckOption{th4}\if:Option + \Configure{[]} + {\PicDisplay $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay |<try inline par|>} + \Configure{()}{\PicMath$}{$\EndPicMath} +\fi +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Cross References} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech latex\><<< +\Configure{pageref} + {\HCode{<span class="pageref">}} + {\HCode{</span>}} + {\S} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Features} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%% +\section{Javascript: Pop-ups On Mouse Over} +%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%% +\subsection{Background} +%%%%%%%%%%%%%%%% + + +There are 6 supporting dvi variations of the +`CopyTo to-file op group' + dvi command: + +\begin{description} +\item[From] Start copying (at current address) +\item[Until] End copying (at current address) +\item[Skip] Start skipping (from current address) +\item[Cont] End skipping (at current-address) +\item[Addr integer-label] Associate current + address with the integer-label of the given group +\item[Set integer-label] + Replace the `current address' in the following Skip/Cont (and + From/Until ?) commands with the address associated to the + integer-label of the given group by an Addr command +\end{description} + +The code +\begin{verbatim} +B0 + \ht:special {t4ht@DCopyTo: \jobname-js.tex From bib } +B1 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib } +B2 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr1 bib } +B3 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr2 bib } +B4 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Set1 bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Cont bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Set2 bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib } +B5 +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until bib } +B6 +\end{verbatim} + +produces the string ` B1 B3 '. + + +%%%%%%%%%%%%%%%% +\subsection{End Points of the Jobname-js.tex File} +%%%%%%%%%%%%%%%% + + + +\<start js\><<< +\js:on +>>> + + + +\<onmouseover utilities\><<< +\def\js:on{% + \global\let\js:on=\relax + \HCode{<!--}% + |<js From js|>% + \HCode{\string\def\string\jstoday{\:today} }% + \HCode{\string\input\space onmouseover.4ht }% + \:CheckOption{trace-onmo} \if:Option + \HCode{<js trace="on">}% + \else + \Log:Note{for mouseover tracing of + compilation, use the command line option `trace-onmo'} + \HCode{<js>}% + \fi + |<js Until js|>% + \HCode{-->}% + |<end js|>} +>>> + + +\<end js\><<< +\csname a:mouseover-Needs\endcsname +\Css{.js {text-indent:0; background-color:aqua; color:black; + border:solid 1px black; margin:2pt; width:99\%;}} +\Css{.js p, .|<js p.bibitem css|>, |<js p.bibitem-p css|> {text-indent:0; + background-color:aqua; color:black; margin:2pt;}} +\AtEndDocument{{\HCode{<!--}% + |<js From js|>% + \HCode{</js>}% + |<js Until js|>% + \HCode{-->}}}% +>>> + + +Was \verb'\Css{.js p {margin:0; text-indent:0;}}' but javascript under +netscape had problems dealing with 0 left margins. + + + + +\<js From js\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From js }% +>>> + +\<js Until js\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until js }% +>>> + + + + + +%%%%%%%%%%%%%%%% +\subsection{Configuration Commands} +%%%%%%%%%%%%%%%% + + + + +\<onmouseover utilities\><<< +\HAssign\MO:script = 0 +\NewConfigure{mouseover-script}[1]{\bgroup + \gHAdvance\MO:script by 1 + \expandafter\NextFile \expandafter{\jobname\MO:script.tmp}% + \HPage{}\IgnorePar |<js From var|>% + \HCode{<\if !#1!\else mouseover-script\fi>#1\if !#1!\else =\fi}% + \everyvbox{\IgnorePar\everyvbox{}\aftergroup\end:movar}% + \def\end:movar{\everyvbox{}\HCode + {</\if !#1!\else mouseover-script\fi>}% + |<js Until var|>\EndHPage{}% + \egroup}% + \vbox} +>>> + +\<ol-hauto mouseover-script\><<< +\Configure {mouseover-script}{}{\HCode{ol\string_hauto = 1;}}% +>>> + + +\<js From var\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From var }% +>>> + +\<js Until var\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until var }% +>>> + + + + +\<onmouseover utilities\><<< +\expandafter\def\csname c:mouseover-vars:\endcsname#1#2{% + \expandafter\def\csname mouseover-#1-init\endcsname##1{}% + \def\:tempc##1{\expandafter\append:defI\csname + mouseover-#1-init\endcsname{tex4ht.##1=tex4ht.\expandafter\jsHash + \expandafter{\expandafter v####1.##1};}}% + \Mo:vars#2,<>} +\def\Mo:vars#1,#2<>{% + \if !#1!\else + \expandafter\def\csname mo#1\endcsname##1{% + \HCode{<!--}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex From #1 }% + \HCode{<#1-var>\jsHash{v##1.#1}=}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Skip #1 }% + \HCode{-->}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Cont #1 }% + }% + \expandafter\def\csname endmo#1\endcsname{% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Skip #1 }% + \HCode{<!--}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Cont #1 }% + \HCode{</#1-var>}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Until #1 }% + \HCode{-->}% + }% + \:tempc{#1}% + \fi + \if !#2!\else \expand:after{\Mo:vars#2<>}\fi +} +>>> + + + + +%%%%%%%%%%%%%%%% +\subsection{Footnotes Contributions} +%%%%%%%%%%%%%%%% + + + + +\<js From fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From fn }% +>>> + +\<js Skip fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Skip fn }% +>>> + +\<js Cont fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Cont fn }% +>>> + +\<js Until fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until fn }% +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Overlib} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Link[http://www.egroups.com/group/overlib]{}{}egroup for overlib\EndLink, +\Link[http://www.bosrup.com/web/overlib/]{}{}home over overlib\EndLink + + +\<overDiv\><<< +\HCode{<div id="overDiv" + style="position:absolute; + visibility:hidden; z-index:1000;"></div> + |<overlib src|>}% +>>> + + +\<onmouseover @HEAD\><<< +\Configure{@HEAD} + {\HCode{%|% natural place for <overlib src>, but netscape 4.7...|% + <script type="text/javascript" + src="\jobname-js.js"></script>\Hnewline}} +|<onmouseover utilities|> +\:CheckOption{info} \if:Option + |<overlib info|> +\fi +>>> + + +\<overlib info\><<< +\Log:Note{Option `mouseover' is powered + by the overlib.js utility of Erik Bosrup + (http://www.bosrup.com/web/overlib/).} +\immediate\write-1{} +\immediate\write-1{The option requires two compilations of + the source file.} +\immediate\write-1{} +\immediate\write-1{Use \string\Configure + {mouseover-XXX}{...} to introduce arguments into the overlib + function call, and code into a preceding script. XXX stands for + `cite' or `footnote', the default body is at tex4ht.body, + and the default caption at tex4ht.caption. An empty parameter + requests no sensitivity of mouse over the specified type of entries.} +\immediate\write-1{} +\immediate\write-1{The variant \string\Configure + {mouseover-XXX}[labels]{...} of the above command restricts the + outcome just to the listed labels (i.e., the values listed + in tex4ht.caption).} +\immediate\write-1{} +\immediate\write-1{The \string\Configure{mouseover-script }{variable-name} + {javascript-code} command may be used to introduce code into the + javascript script, as a content of a global variable when a name is + given and as a bare code when the name is not given. To be referenced, + the name must be prefixed by ``tex4ht.'.} +\immediate\write-1{} +\immediate\write-1{The \string\Configure{mouseover-vars}{XXX} + {variable-list} command introduces local variables, to be referenced + with the prefix ``tex4ht.' on their names. In addition, for each + variable YYY it introduces a construct \string\moYYY + {label}...\string\endmoYYY\space for selecting a value for the variable + at the specified label.} +\immediate\write-1{} +\immediate\write-1{Example:} +\immediate\write-1{ + \string\Configure{mouseover-script}{var}{\HCode{<hr />}}} +\immediate\write-1{|<mouseover cite config|>} +\immediate\write-1{|<mouseover cite css|>.} +\immediate\write-1{ + \string\moAuthor{bb}A name\string\endmoAuthor } +\immediate\write-1{} +\immediate\write-1{The compilation indirectly invokes the + command 'xhtex \string\jobname-js'. An alternative format for + the command can be requested within a configuration of + the form \string\Configure{mouseover-Needs}{\string\Needs{"..."}}. + The default setting is due to + \string\Configure{mouseover-Needs}{\string\Needs{"xhtex + \string\jobname-js"}}} +\immediate\write-1{In case \string\Configure{mouseover-Needs} is + undefined, introduce the instruction + \string\NewConfigure{mouseover-Needs}{1} before that command. +} +>>> + +\<onmouseover utilities\><<< +\expandafter\ifx \csname mouseover-Needs\endcsname\relax + \NewConfigure{mouseover-Needs}{1} + \Configure{mouseover-Needs}{\Needs{"xhtex \jobname-js"}} +\fi +\def\mo:args#1#2#3{\expandafter + \ifx \csname a:mouseover-#1-#2\endcsname\empty\else + \expandafter \ifx \csname a:mouseover-#1-#2\endcsname\relax + |<global mouseover-type|>\else + |<private mouseover-type|>\fi\fi} +>>> + +\<global mouseover-type\><<< +\expandafter \ifx \csname a:mouseover-#1\endcsname\empty + \else + \Hnewline + onmouseover="tex4ht.body=tex4ht.#3; tex4ht.caption='#2'; + |<init mouseover vars|>% + return overlib(\csname a:mouseover-#1\endcsname);" + \Hnewline onmouseout="nd();"\Hnewline\fi +>>> + +\<private mouseover-type\><<< +\Hnewline + onmouseover="tex4ht.body=tex4ht.#3; tex4ht.caption='#2'; + |<init mouseover vars|>% + return overlib(\csname a:mouseover-#1-#2\endcsname);" +\Hnewline onmouseout="nd();"\Hnewline +>>> + +\<init mouseover vars\><<< +\expandafter\ifx \csname mouseover-#1-init\endcsname\relax + \else \csname mouseover-#1-init\endcsname{#2}\fi +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{Boundary Cases for mouseover} +%%%%%%%%%%%%%%%% + + + + +\<DOCTYPE in PROLOG under mouseover\><<< +\:CheckOption{xhtml} \if:Option \else + \:CheckOption{DOCTYPE} \if:Option + \Log:Note{to request a DOCTYPE declaration + use the command line option `DOCTYPE'} + \else + \edef\Preamble{\Preamble,no-DOCTYPE} + \fi +\fi +>>> + + + + + +\<overlib src\><<< +<script language="JavaScript" src="overlib.js" + type="text/javascript" ></script>\Hnewline +<!--http://www.bosrup.com/web/overlib/ (Erik Bosrup)-->% +>>> + + + +\begin{itemize} +\item +\begin{verbatim} +THE DOCUMENT DECLARATION GIVES TROUBLE IN CONNECTION WITH OVERLIB. It +would be hardly noticeable in small pages, requiring no scrolling - +the only symptom then is that the browser suddenly warns about errors +- those ones in overlib, and as a matter of fact, apparently in the +part of the script that ensures compatibility with Netscape. However, +in a large page, the pop-ups seem to disappear - making them STICKY +and scrolling up, one can find them in the upper right corner. One +has only to remove <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 +Transitional//EN" "http://www.w3.org/TR/emacspeak/loose.dtd"> however, to +put an end to the browser complaints and get back the pop-ups into +their proper places. \end{verbatim} + +\item +\begin{verbatim} + I +have just found a reference to the trouble, together with a very easy +way to go round it: it is enough to add <?xml version="1.1"?> BEFORE +the Document declaration. I have checked it, and it is all right - +both for Explorer6 and Netscape 4.7 and 6. + +By the way: for the Mouseover option to work under Netscape4.x, the call to +<script type="text/JavaScript" src="overlib.js"></script> +<!--http://www.bosrup.com/web/overlib/ (Erik Bosrup)--> +MUST appear in the <BODY> section, NOT in the <HEAD>: absurd, but true (it +is reported in Overlib's page). +\end{verbatim} + +\end{itemize} + + +%%%%%%%%%%%%%%%% +\subsection{The Configuration File onmouseover.4ht} +%%%%%%%%%%%%%%%% + + + + +\<onmouseover.4ht\><<< +\ifnum\the\catcode`\%=14\else\expandafter\edef\csname + \string:RestoreCatcodes\endcsname{\catcode`\%|=\the + \catcode`\%}\catcode`\%|=14\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% onmouseover.4ht |version % +% Copyright |CopyYear.2001. Eitan M. Gurari % +|<TeX4ht copyright|> + +\hbadness=10000 \vbadness=10000 \hfuzz=99in \vfuzz=\hfuzz +\overfullrule=0pt \let\makefootline\empty +\special{t4ht.js} + +\newcount\CodeNumber +\def\NoSpecials#1#2#3{\edef\temp{\the\CodeNumber}% + \global\CodeNumber=#3 + \def\next{\catcode\CodeNumber=#1 + \ifnum \CodeNumber=#2 \let\next=\relax \fi + \global\advance\CodeNumber by -1 \next}\next + \global\CodeNumber=\temp }% + +\expandafter\def\csname js js\endcsname{\egroup \special{t4ht@@}% + tex4ht=new Array() ; //\jstoday} +\expandafter\def\csname js js trace="on"\endcsname{\global + \let\TagTrace=\empty \csname js js\endcsname} +\expandafter\def\csname js /js\endcsname{\egroup \special{t4ht@@}% + \csname bye\endcsname\endinput} + +|<hash for onmouseover.4ht|> +|<escape backslashes|> +\catcode`\<=13 +\def\jselement#1{\expandafter\def\csname js #1\endcsname##1=##2</#1>{% + \hfill\break tex4ht.\jsHash{##1}=\hbox{"##2";}\egroup}} +|<escape double quotes|> +\expandafter\def\csname js \endcsname#1</>{% + \hfill\break \hbox{#1}\egroup} + +\def<#1>{\bgroup + \expandafter \ifx \csname js #1\endcsname \relax \jselement{#1}\fi + \def<##1>{\TagTrace{\def\x{##1}\def\y####1:->{}% + \immediate\write16{...\string<\expandafter\y\meaning\x>}}% + \string<\scan ##1"<>>}% + \NoSpecials{12}{0}{255}\NoSpecials{11}{65}{90}\NoSpecials{11}{97}{122}% + \catcode`\ =10 \catcode`\^^M=10 \catcode`\^^I=10 \catcode`\<=13 + \catcode`\\=13 + \tt \csname js #1\endcsname} +\def\TagTrace#1{} +\catcode`\&=12 \catcode`\#=12 +\endinput +>>> + +\<escape double quotes\><<< +\def\scan#1"#2<>{#1\if !#2!\expandafter\done\else + \string\"\expandafter\scan +\fi#2<>} +\def\done#1>{} +>>> + +\<escape backslashes\><<< +\catcode`/=0 \catcode`\\=13 +/def\{/string\/string\} +/catcode`/\=0 \catcode`\/=12 +>>> + + + +\<onmouseover utilities\><<< +\def\jsHash#1{\jsHash:a #1<>} +\def\jsHash:a#1#2<>{% + \ifnum `#1<`0 JjV\else + \ifnum `#1>`z jJv\else + \ifnum `#1>`9 + \ifnum `#1<`A jJV\else + \ifnum `#1>`Z + \ifnum `#1<`a jVV\else #1\fi + \else #1\fi\fi + \else #1\fi\fi\fi + \if !#2!\expandafter\done:hash + \else\expandafter\jsHash:a\fi#2<>} +\def\done:hash#1>{} +>>> + +\<hash for onmouseover.4ht\><<< +\def\jsHash#1{\jsHasha #1<>} +\def\jsHasha#1#2<>{% + \ifnum `#1<`0 JjV\else + \ifnum `#1>`z jJv\else + \ifnum `#1>`9 + \ifnum `#1<`A jJV\else + \ifnum `#1>`Z + \ifnum `#1<`a jVV\else #1\fi + \else #1\fi\fi + \else #1\fi\fi\fi + \if !#2!\expandafter\done + \else\expandafter\jsHasha\fi#2<>} +>>> + + + +\<onmouseover utilities\><<< +\expandafter\Odef\csname c:mouseover-?:\endcsname[#1]#2{% + \def\:temp{#2}% + \if !#1!\expandafter\let\csname a:mouseover-\:tempb\endcsname=\:temp + \else \om:type#1,|<par del|>\fi} +\def\om:type#1,#2|<par del|>{% + \if !#1!\else\expandafter + \let\csname a:mouseover-\:tempb-#1\endcsname=\:temp\fi + \ifx !#2!\else \def\:tempa{\om:type#2|<par del|>}\expandafter\:tempa \fi +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Formats} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%% +\section{latex.ltx} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech latex\><<< +|<0,32,4 plain,latex|> +|<32,4 plain,latex|> +|<4 plain,latex|> +|<32,4 latex|> +|<4 latex|> +|<0,32,4 latex|> +|<latex lttab|> +|<latex ltbibl|> +|<latex ltoutenc|> +|<latex ltfloat (footnotes)|> +\:CheckOption{javahelp} \if:Option + \input javahelp.4ht +\else + \Log:Note{for a JavaHelp output format, + use the command line option `javahelp'} +\fi +>>> + +\<latex lttab\><<< +\Configure{extracolsep} + {~\tmp:dim=#1\relax\ifdim \tmp:dim>1em ~\fi} +>>> + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltplain.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{obeylines} + +\<4 plain,latex\><<< +\Configure{obeylines} + {\ifvmode \:xhtml{\IgnorePar\EndP}\IgnoreIndent + \HCode{<div class="obeylines-v">}% + \gdef\ob:ln{\ht:special{t4ht=</div>}}% + \else + \SaveEndP \HCode{<span class="obeylines-h">}% + \gdef\ob:ln{\ht:special{t4ht=</span>}\RecallEndP}% + \fi + } + {\EndP\ob:ln\ShowPar} + {\hbox{\HCode{<br\xml:empty>}}} +\Css{.obeylines-h,.obeylines-v {white-space: nowrap; }} +\Css{div.obeylines-v p { margin-top:0; margin-bottom:0; }} +>>> + %%%%%%%%%%%%%%%%%%%%%%% + % ltlogos.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Logos} +\<4 plain\><<< +|</TeX for 4.0t|> +>>> + + +\</TeX for 4.0t\><<< +\def\TeX{\HCode{<span class="TEX">}T\HCode{<span\Hnewline + class="E">}E\HCode{</span>}X\HCode{</span>}} +\Css{span.TEX {letter-spacing: -0.125em; }} +\Css{span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}} +\Css{a span.TEX span.E {text-decoration: none; }} +>>> + +\verb'\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}' + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltfssini.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{tt Font} + +\<0,32,4 latex\><<< +\ifx \ttfamily\:UnDef \else \Configure{tt}{\ttfamily} \fi +>>> + + %%%%%%%%%%%%%%%%%%%%%%% + % ltxref.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Cross References} +\<32,4 latex\><<< +\Configure{ref} + {\Link} + {\ifx \RefArg\:UnDef\else + \Tg<!--tex4ht:ref: \RefArg\space-->\fi\EndLink} + {} +>>> + +The comments lets us relate the automatically created label with that +offered by the user. The space is needed for cases that the label ends with a dash. + + +\begin{itemize} +\item + LaTeX allows labels almost everywhere. +\item +Different labels may be associated to a common object in LaTex. +\item + There are almost no restrictions on the kind of characters + allowed within the labels of LaTeX. +\end{itemize} + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmiscen.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Miscellaneous Environments} +\<32,4 plain,latex\><<< +\def\end:TTT{\ifvmode\IgnorePar\fi \EndP\HCode{</td></tr></table>}} +>>> + +\<4 latex\><<< +\append:def\center{\par} +\ConfigureEnv{center} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {\EndP\IgnorePar + \HCode{<div class="center"\Hnewline>}\ShowPar\endgraf} + {\IgnorePar\EndP\HCode{</div>}} +\ConfigureEnv{flushleft} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {\EndP\IgnorePar + \HCode{<div class="flushleft"\Hnewline>}\ShowPar\endgraf} + {\IgnorePar\EndP\HCode{</div>}} +\ConfigureEnv{flushright} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {\EndP\IgnorePar + \HCode{<div class="flushright"\Hnewline>}\ShowPar\endgraf} + {\IgnorePar\EndP\HCode{</div>}} +\Css{div.center, + div.center div.center {text-align: center; + margin-left:1em; margin-right:1em;}} +\Css{div.center div {text-align: left;}} +\Css{div.flushright, + div.flushright div.flushright {text-align: right;}} +\Css{div.flushright div {text-align: left;}} +\Css{div.flushleft {text-align: left;}} +>>> + +\<32,4 latex\><<< +\ConfigureEnv{verbatim}{\env:verb{verbatim}}{\endenv:verb}{}{} +\ConfigureEnv{verbatim*}{\env:verb{verbatim}}{\endenv:verb}{}{} +\def\env:verb#1{\ifinner\else \vfill\break\fi + \IgnorePar\EndP \HAssign\Verb:N=0 + \HCode{<\tbl:XV{#1}><tr class="#1"><td\Hnewline + class="#1">}\HCode{<div class="#1"\a:LRdir>}\EndNoFonts} +\def\endenv:verb{\NoFonts + \EndP \ht:special{t4ht=</div>}\end:TTT |<try inline par|>} +\def\start:fenv#1{\:xhtml{\IgnorePar\EndP}\HCode{<table + \Hnewline width="100\%" + \:zbsp{flush#1}><tr><td><div align="#1"\Hnewline\a:LRdir>}} +\def\end:fenv{\IgnorePar\HCode{</div>}\end:TTT\IgnorePar} +\HAssign\Verb:N=0 +\Css{div.verbatim {font-family: monospace; white-space: nowrap; }} +>>> + +\<configure html-speech latex\><<< +\Configure{verb} + {\HCode{<span class="verb"\a:LRdir>}} + {\HCode{</span>}} +>>> + + + +The \verb+\:nbsp+ above is because lynx collapses +consecutive \verb+<br />+ tags. + + + + +\<configure html-speech latex\><<< +\Configure{centercr}{\ht:special{t4ht=<br\xml:empty>}} + {\ht:everypar{\ht:everypar{\HtmlPar}}} +>>> + + + % ltmath.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Math Setup} + +\<configure html-speech-math latex\><<< +\:CheckOption{pic-equation}\if:Option +% \ConfigureEnv{equation} +% {\relax\ifmmode\else\par\fi\:xhtml{\IgnorePar\EndP}% +% \HCode{<center class="equation"><table class="equation"\Hnewline +% border="0" cellpadding="0" cellspacing="15"><tr><td>}} +% {\:xhtml{\IgnorePar\EndP}% +% \HCode{</td></tr></table></center>}\IgnorePar +% \ifmmode\else\par\fi} +% {}{} + \Configure{equation} + {\:xhtml{\ifvmode \IgnorePar\fi\EndP}% + \HCode{<\tbl:XV{equation}><tr><td>}\IgnorePar + \Configure{$$}{\PicDisplay}{\EndPicDisplay} + {\everymath{}\everydisplay{}} + } + {\ifvmode \IgnorePar\fi\HCode{</td><td width="5\%">}} + {\end:TTT |<try inline par|>} |% was: \IgnorePar\par|% +\else +% \ConfigureEnv{equation} +% {\relax\ifmmode\else\par\fi\:xhtml{\IgnorePar\EndP}% +% \HCode{<center class="equation"><table class="equation"\Hnewline +% border="0" cellpadding="0" cellspacing="15"><tr><td>}% +% } +% {\:xhtml{\IgnorePar\EndP}% +% \HCode{</td></tr></table></center>}\IgnorePar +% \ifmmode\else\par\fi} +% {}{} + \Configure{equation} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<\tbl:XV{equation}><tr><td>}\IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP\HCode{</td><td width="5\%">}} + {\end:TTT\ifmmode\else |<try inline par|>\fi} +\fi +\Css{.equation td{text-align:center; }} +\Css{td.equation { margin-top:1em; margin-bottom:1em; } } +>>> + +\<configure html-speech-math latex\><<< +|<pic plain/latex math 4.0t|> +\:CheckOption{pic-eqnarray} \if:Option + |<PIC eqnarray Config|> +\else |<TABLE eqnarray Config 4.0t|>\fi +>>> + + +\<PIC eqnarray Config\><<< +\ConfigureEnv{eqnarray} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray {text-align:center;}} +\ConfigureEnv{eqnarray*} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray-star">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray-star {text-align:center;}} +>>> + +\<TABLE eqnarray Config 4.0t\><<< +\Log:Note{for pictorial eqnarray, + use the command line option `pic-eqnarray'} + +\Configure{eqnarray}{\HCode{<table\Hnewline + class="eqnarray\ifx \@seqncr\@eqncr\else-star\fi ">}} + {\HCode{</table>}} + {\HCode{<tr valign="middle" + class="eqnarray\ifx \@seqncr\@eqncr\else-star\fi">}} + {\HCode{</tr>}} + {\HCode{\ifnum \HCol=4 <td\Hnewline width="10" + class="eqnarray4"></td>\fi + <td\Hnewline align="\ifcase\HCol \or right\or center\or + left\else right\fi" style="white-space:nowrap;"\Hnewline + class="eqnarray\HCol">}} + {\EndP\HCode{</td>}} +>>> + +\<TABLE eqnarray Config 4.0t\><<< +\ConfigureEnv{eqnarray} + {\:xhtml{\IgnorePar\EndP}\HCode{<div class="eqnarray">}} + {\:xhtml{\EndP}\HCode{</div>}}{}{} +\ConfigureEnv{eqnarray*} + {\:xhtml{\IgnorePar\EndP}\HCode{<div class="eqnarray">}} + {\:xhtml{\EndP}\HCode{</div>}}{}{} +\Css{div.eqnarray{text-align:center;}} +>>> + %%%%%%%%%%%%%%%%%%%%%%% + % lttab.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Tabbing, Tabular and Array Environments} + +\<configure html-speech latex\><<< +\:CheckOption{no-array}\if:Option \else + |<html latex array/tabular Config 4.0t|> +\fi +>>> + + +\<configure html-speech-math latex\><<< +\:CheckOption{no-array}\if:Option \else + |<math html latex array/tabular|> +\fi +>>> + + + + +\<vspace body for array/tabular\><<< +\append:def\vspc:s{\h:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\vspc:s{\i:HBorder}% + \expandafter\:tempb + \fi } +\tmp:cnt|=0 \:tempb +\append:def\vspc:s{\j:HBorder}\global\let\vspc:s|=\vspc:s +>>> + +\<0,32,4 latex\><<< +\Configure{hline}{\ifx \ar:cnt\:UnDef\else + \o:noalign:{|<hline body for array/tabular|>}% + \expandafter\ignoreEndTr + \fi} +\Configure{//[]}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<vspace body for array/tabular|>}\fi} +>>> + + + +\<hline body for array/tabular\><<< +\append:def\hline:s{\a:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\hline:s{\b:HBorder}% + \expandafter\:tempb + \fi }% +\tmp:cnt|=0 \:tempb +\append:def\hline:s{\c:HBorder}\global\let\hline:s|=\hline:s +>>> + + + +\<html latex array/tabular Config 4.0t\><<< +\Configure{multicolumn} + {\let\sv:VBorder\VBorder + \let\VBorder\empty + \Configure{VBorder}{}{}{}{}% + } + {\let\VBorder\sv:VBorder} + {\ifvmode\IgnorePar\fi + \HCode{<div class="multicolumn" }\HColAlign\HCode{>}} + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}} +>>> + + + +\<html latex array/tabular Config 4.0t\><<< +\def\pic:env{% + \def\begin##1{\bgroup + \def\end####1{\o:end:{####1}\EndPicture\egroup}% + \ifx \EndPicture\:UnDef + \Picture+{ class="##1" align="middle"}% + \else \let\EndPicture|=\empty\fi + \o:begin:{##1}}% +} +>>> + +\verb'\AllColMargins' Return a binary string in which 1 represents +a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the +zeros before the 1's that represent the current and following 1's. + +\<html latex array/tabular Config 4.0t\><<< +\def\ColMargins{\tmp:cnt|=\HCol\relax + \expandafter\nosp:hbr\AllColMargins 1//} +\def\nosp:hbr#11#2//{\ifnum \tmp:cnt>1 \advance\tmp:cnt by -1 + \nosp:hbr#2//\else\nosp:gt#11#2//\fi} +\def\nosp:gt#11#21#3//{% + \def\:temp{#1}\ifx \:temp\empty 1\else 0\fi + \def\:temp{#2}\ifx \:temp\empty 1\else 0\fi} +\Css{div.td00{ margin-left:0pt; margin-right:0pt; }} +\Css{div.td01{ margin-left:0pt; margin-right:5pt; }} +\Css{div.td10{ margin-left:5pt; margin-right:0pt; }} +\Css{div.td11{ margin-left:5pt; margin-right:5pt; }} +>>> + + +\<html latex array/tabular Config 4.0t\><<< +\:CheckOption{pic-tabular} \if:Option \else + \Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \halignTB{tabular}\putVBorder } + {|<insert Clr|>\HCode{</table>}} + {\HCode{<tr \Hnewline}\halignTR + \HCode{ id="TBL-\TableNo-\HRow-">}} + {\r:HA} + {\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}\NoFonts\ColMargins\EndNoFonts + \HCode{">}|<td save EndP|>% + |<start array par box|>\PushStack\Table:Stck\TableNo} + {|<end array par box|>\PopStack\Table:Stck\TableNo \d:HA} +\fi +|<configuring @()|> +\Css{td.td00{ padding-left:0pt; padding-right:0pt; }} +\Css{td.td01{ padding-left:0pt; padding-right:5pt; }} +\Css{td.td10{ padding-left:5pt; padding-right:0pt; }} +\Css{td.td11{ padding-left:5pt; padding-right:5pt; }} +>>> + +\<insert ClrNO\><<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{<!--"\the\tmp:toks"-->}% +>>> + +The quotes above hide \verb+>+ from IE within the comment. Otherwise, the +browser inappropriately get confused. + +On the other hand, the above doesn't work, for instance on +`\verb+|r||r@{--}l|p{1.25in}|+' due to the extra \verb+--+. + + +\subsection{The option @()} + + +\<configuring @()\><<< +\Configure{@{}}{} +>>> + + +\<html latex array/tabular Config 4.0t\><<< +\Configure{halignTB<>}{array}{\HCode{class="array"\Hnewline + cellpadding="0" cellspacing="0" \GROUPS\Hnewline + frame="\ifx \GROUPS\empty void\else border\fi" + }<>\HAlign} +\:CheckOption{pic-array} \if:Option \else + \Configure{array} + {\ifvmode \IgnorePar\fi \EndP\halignTB{array}\putVBorder} + {|<insert Clr|>\HCode{</table>}} + {\R:HA} + {\r:HA} + {\D:HA\HCode{<div class="td}\NoFonts\ColMargins\EndNoFonts + \HCode{">}|<start array par box|>\pic:env} + {|<end array par box|>\HCode{</div>}\d:HA} + \Configure{arrayparbox}{\ShowPar} +\fi +>>> + +\verb|\par| is empty if not in par box. + +\<start array par box\><<< +\par \ShowPar +>>> + +\<end array par box\><<< +\IgnorePar \EndP +>>> + + +We force border around the full table whenever a vertical line is +requested, because it makes the tables better looking within the +existing capabilities. + +Currently, we either have empty \verb'\VBorder', or one defined to +\verb'\def\VBorder{border="1"}'. + +\<html latex array/tabular Config 4.0t\><<< + \let\VBorder|=\empty \let\AllColMargins|=\empty + \Configure{VBorder} + {\let\VBorder|=\empty \let\AllColMargins|=\empty + \global\let\GROUPS|=\empty \HAssign\NewGroup = 0 + \gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo } + {\xdef\VBorder{\VBorder\ifnum \NewGroup> 0 </colgroup>\fi} + \HAssign\NewGroup = 0 \gdef\GROUPS{rules="groups"}} + {\Advance:\NewGroup by 1 + \ifnum \NewGroup=1 \xdef\VBorder{\VBorder<colgroup + id="TBL-\TableNo-\ar:cnt g">}\fi + \xdef\VBorder{\VBorder<col\Hnewline id="TBL-\TableNo + -\ar:cnt"\xml:empty>}\xdef\AllColMargins{\AllColMargins1}} + {\xdef\AllColMargins{\AllColMargins 0}} + \Configure{HBorder} + {<tr\Hnewline class="hline">} {<td><hr\xml:empty></td>} {</tr>} + {<tr\Hnewline class="cline">} + {<td></td>} {<td><hr\xml:empty></td>} {</tr>} + {<tr\Hnewline class="vspace" style="font-size:\HBorderspace">} + {<td\Hnewline>\string </td>} {</tr>} +\Configure{putHBorder}{\HCode{\HBorder}} +\HAssign\Next:TableNo|=0 \global\let\TableNo=\Next:TableNo +\Css{.hline hr, .cline hr{ height : 1px; margin:0px; }} +>>> + +When \verb'\putVBorder' is call in \verb'\VBorder' +we have a sequence of the form +\verb'<COLGROUP><COL ...">...</COLGROUP>...' with the last +tag possibly missing. + +\<html latex array/tabular Config 4.0t\><<< +\def\putVBorder{\expandafter\put:VBorder\VBorder</>|<par del|>} +\def\put:VBorder#1</#2>#3|<par del|>{\def\:temp{#2}\ifx\:temp\empty + \HCode{\VBorder}% + \def\:temp{#1}\ifx\:temp\empty \else\HCode{</colgroup>}\fi + \else \def\:temp{\put:VBorder#3|<par del|>}\expandafter\:temp\fi +} +>>> + +\<configure html-speech latex\><<< +\:CheckOption{pic-tabbing} \if:Option + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} +\else + |<TABLE tabbing Config 4.0t|> + \:CheckOption{pic-tabbing'} \if:Option + |<PICT dot tabbing|> + \fi +\fi +>>> + +\<TABLE tabbing Config 4.0t\><<< +\Configure{tabbing}[1.5]{% + \ifvmode \IgnorePar\fi\EndP \leavevmode\ht:special{t4ht=<table + \Hnewline\:zbsp{tabbing}><tr \Hnewline valign="baseline" + class="tabbing">}} + {\ht:special{t4ht=</tr></table>}\ShowPar \csname par\endcsname + |<global HtmlPar|>% + } + {\ht:special{t4ht=<td \ifx \TabWidth\empty \else + width="\TabWidth"\fi \Hnewline + class="tabbing\ifx \`\TabType -right\fi">}} + {\ht:special{t4ht=</td>}} +\ConfigureEnv{tabbing}{\IgnorePar\EndP}{}{}{} +\Css{.tabbing-right {text-align:right;}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} +%%%%%%%%%%%%%%%%%%% + + + +\<4 latex\><<< +\Configure{underline} + {\HCode{<span class="underline">}\:gobble} + {\HCode{</span>}} +\Css{.underline{ text-decoration:underline; }} +\Css{.underline img{ border-bottom: 1px solid black; + margin-bottom:1pt; }} +>>> + +\<4 plain\><<< +\Configure{underline} + {\HCode{<span class="underline">}\hbox\bgroup \:gobble} + {\egroup \HCode{</span>}} +\Css{.underline{ text-decoration:underline; }} +\Css{.underline img{ border-bottom: 1px solid black; + margin-bottom:1pt; }} +>>> + + + +\<4 plain,latex\><<< +\Configure{overline} + {\HCode{<span class="overline">}} + {\HCode{</span>}} +\Css{.overline{ text-decoration:overline; }} +\Css{.overline img{ border-top: 1px solid black; }} +>>> + + + + + + + + + + +\<0,32,4 latex\><<< +\:CheckOption{pic-framebox} \if:Option + \Configure{framebox} + {\Picture+[]{ \a:@Picture{framebox}}} {\EndPicture} +\else + \Log:Note{for bitmap framebox'es, use + the command line option `pic-framebox'} + \Configure{framebox} + {\HCode{<span class="framebox-\frameboxAlign"\Hnewline + style="width:\frameboxWidth;">}} + {\HCode{</span>}} + |<shared framebox style|> +\fi +>>> + +% \bgroup +% \fboxrule=0pt \fboxsep=0pt +% \HAssign\frameboxN=0 +% \gHAdvance\frameboxN by 1 +% id="framebox-\frameboxN" + + +\<shared framebox style\><<< +\Css{.framebox-c, .framebox-l, .framebox-r { + padding-left:\the\fboxsep; + padding-right:\the\fboxsep; + text-indent:0pt; + border:solid black \the\fboxrule; +}} +\Css{.framebox-c {text-align:center;}} +\Css{.framebox-l {text-align:left;}} +\Css{.framebox-r {text-align:right;}} +>>> + +\<32,4 latex\><<< +\:CheckOption{pic-fbox} \if:Option + \Configure{fbox} + {\leavevmode\Picture+[]{ \a:@Picture{fbox}}} {\EndPicture} +\else + \Log:Note{for bitmap fbox'es, use + the command line option `pic-fbox'} + \Configure{fbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="fbox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="fbox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.fbox {padding-left:\the\fboxsep; + padding-right:\the\fboxsep; + text-indent:0pt; + border:solid black \the\fboxrule; + }} + \Css{div.center div.fbox {text-align:center; clear:both; + padding-left:3.0pt; padding-right:3.0pt; + text-indent:0pt; border:solid black 0.4pt; }} +\fi +>>> + + + + +\<0,32,4 latex\><<< +\Configure{InsertTitle}{\let\label|=\lb:l + \let\ref|=\o:ref \Configure{ref}{}{}{}} +\Configure{AfterTitle}{\let\index|=\:index + \let\ref|=\:ref \let\label|=\lb:l } +\Configure{NoSection} + {\let\sv:index|=\index \let\sv:label|=\label + \let\sv:newline|=\newline \def\newline{ }% + \let\sv:setfontsize|=\@setfontsize \let\@setfontsize|=\:gobbleIII + \let\index|=\@gobble \let\label|=\@gobble + |<nolink ref|>% + } + {\let\index|=\sv:index \let\label|=\sv:label + |<restore ref|>% + \let\newline|=\sv:newline \let\@setfontsize|=\sv:setfontsize + } +>>> + +\<nolink ref\><<< +\let\sva:rEfLiNK|=\a:rEfLiNK +\let\svb:rEfLiNK|=\b:rEfLiNK +\let\svc:rEfLiNK|=\c:rEfLiNK +\expandafter\let\expandafter\svC:rEfLiNK\c:rEfLiNK +\Configure{ref}{}{}{}% \let\sv:ref|=\ref \let\ref|=\@gobble +>>> + +\<restore ref\><<< +\let\a:rEfLiNK|=\sva:rEfLiNK +\let\b:rEfLiNK|=\svb:rEfLiNK +\let\c:rEfLiNK|=\svc:rEfLiNK +\expandafter\let\c:rEfLiNK\svC:rEfLiNK % \let\ref\sv:ref +>>> + +\<0,32,4 latex\><<< +\Configure{oalign}{\Picture+{ \a:@Picture{oalign}}}{\EndPicture} +\Configure{TocLink} + {\expandafter\ifx \csname #3-def\endcsname\relax + \global\expandafter\let \csname #3-def\endcsname\def + \Link{#2}{#3}% + \else + \Link{#2}{}% + \fi + {\Configure{ref}{}{}{}% + |<cite in TocLink|>#4}\ifvmode\IgnorePar\fi\EndLink} +>>> + + +\<configure html-speech-math latex\><<< +\Configure{stackrel}{\Picture+{ class="stackrel"}\mathrel} + {\limits ^}{\EndPicture} +>>> + + +\<0,32,4 latex\><<< +\Configure{picture} + {\Picture+[PICT]{}} + {\EndPicture} +>>> + + +\<32,4 latex\><<< +\ConfigureEnv{minipage} + {\IgnorePar\EndP\HCode{<table class="minipage"><tr><td>}} + {\EndP\HCode{</td></tr></table>}} + {}{} +\Css{table.minipage{width:100\%;}} +>>> + +Tried the following for minipage +\begin{verbatim} +\ConfigureEnv{minipage} + {\IgnorePar\EndP\HCode{<div class="minipage">}} + {\EndP\HCode{</div>}} + {\IgnoreIndent\HtmlEnv}{} +\end{verbatim} +but was not able to find an appropriate css code for centered pages +\begin{verbatim} +Es ist ganz einfach: + +\begin{center} + \raisebox{0cm}{\begin{minipage}{10cm}\sc Jesus Christus\\ +erbarme dich meiner!\end{minipage}} +\end{center} + +Varianten sind: +\end{verbatim} + + + + +\<latex shared section config\><<< +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +>>> + +\<latex shared subsection config\><<< +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +>>> + +\<latex shared subsubsection config\><<< +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + + + + +\<latex shared div config\><<< +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + +\<latex shared paragraph config\><<< +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + + + +\<latex shared part config\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +>>> + + +\<latex shared part config\><<< +\Configure{part}{}{} + {\IgnorePar \EndP\HCode{<h1 class="partHead"\a:LRdir>}% + \HCode{<span class="titlemark">}\partname \ \thepart + \HCode{<br\xml:empty></span>}} + {\HCode{</h1>}\IgnoreIndent\par} +\Configure{likepart}{}{} + {\IgnorePar\EndP\HCode{<h1 class="likepartHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent\par} +\Configure{partTITLE+}{\thepart\space #1} +\Configure{likepartTITLE+}{#1} +\Css{h1.partHead{text-align: center}} +>>> + + + +\<configure html-speech latex\><<< +\ifx\bf\:UnDef + \def\bf{\normalfont\bfseries} +\fi +>>> +Earlier we had +\verb'\:CheckOption{no-halign} \if:Option \else |<pic array|> \fi', +and the same for pic tabular. Why? + + + +\<4 plain,latex\><<< +\Configure{displaylines} + {\IgnorePar \EndP + \HCode{<table \Hnewline border="0" width="100\%" + class="displaylines">}\IgnorePar} + {\HCode{</table>}} + {\HCode{<tr class="displaylines"><td \Hnewline + valign="baseline" class="displaylines" + >}}{\HCode{</td></tr>}} +\Css{td.displaylines {text-align:center; white-space:nowrap;}} +>>> + + + + + + + + + + + + +\<configure html-speech latex\><<< +|</TeX for 4.0t|> +\def\:temp{\HCode{<span class="LATEX">}L\HCode{<span + class="A">}A\HCode{</span>}\TeX\HCode{</span>}} +\HLet\LaTeX|=\:temp +\def\:temp{\mbox{% + \if b\expandafter\@car\f@series\@nil\boldmath\fi + \LaTeX2$_{\textstyle\varepsilon}$}} +\expandafter\HLet\csname LaTeXe\endcsname|=\:temp +\Css{span.LATEX span.A{ position:relative; top:-0.5ex; + left:-0.4em; font-size:85\%;}} +\Css{span.LATEX span.TEX{ position:relative; left: -0.4em; }} +\Configure{@TITLE}{\def\LaTeX{LaTeX}\let\fontencoding|=\:gobble + \let\fontfamily|=\:gobble \let\fontseries|=\:gobble + \let\fontshape|=\:gobble \let\usefont|=\:gobbleIV } +>>> + + + + + +\<configure html-speech latex\><<< +\Configure{newline}{\HCode{<br class="newline"\xml:empty>}} +>>> + + + + +\<configure html-speech supertabular\><<< +\Configure{SpBorder} + {<tr\Hnewline class="vspace"><!--\SpBorder-->} + {<td>\string </td>} + {</tr>} +\ConfigureEnv{supertabular} + {\par \IgnorePar \EndP \HCode{<div class="supertabular">}} + {\HCode{</div>}\par} + {} {} +\Css{.supertabular {text-align:center}} +>>> + +\<configure html-speech longtable\><<< +\:CheckOption{old-longtable}\if:Option + |<config old longtable|> +\else + |<config new longtable|> +\fi +>>> + + +\<config new longtable\><<< +\Configure{halignTB<>}{longtable}{\HCode{class="longtable"\Hnewline + cellspacing="0" cellpadding="0" \GROUPS\Hnewline + frame="\ifx \GROUPS\empty void\else border\fi" + }<>\HAlign} +\Configure{longtable} + {\IgnorePar\EndP + \HCode{|<show input line no|><div class="longtable">}% + \halignTB{longtable}\putVBorder } + {|<insert Clr|>\HCode{</table></div>}} + {\HCode{<tr \Hnewline}\halignTR\HCode{ id="TBL-\TableNo-\HRow-">}} + {\r:HA} + {\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}\NoFonts\ColMargins\EndNoFonts + \HCode{">}|<td save EndP|>% + |<start array par box|>\PushStack\Table:Stck\TableNo} + {\PopStack\Table:Stck\TableNo |<end array par box|>\d:HA} +\Css{div.longtable{text-align:center;}} +\Configure{longtableparbox}{\IgnorePar\leavevmode\ShowPar\par} +>>> + + +\<config old longtable\><<< +\let\a:longtable=\a:tabular +\let\b:longtable=\b:tabular +\let\c:longtable=\c:tabular +\let\d:longtable=\d:tabular +\let\e:longtable=\e:tabular +\let\f:longtable=\f:tabular +>>> + +\<configure html-speech latex\><<< +\Configure{float} + {\ifOption{refcaption}{}{\csname par\endcsname\ShowPar \leavevmode}} + {\:xhtml{\IgnorePar\EndP}\HCode{<hr class="float"\xml:empty><div + class="float"\Hnewline><table + class="float"><tr class="float"><td class="float"\Hnewline + >}} + {\ifvmode \IgnorePar \fi\EndP + \HCode{</td></tr></table></div><hr + class="endfloat" />}\csname par\endcsname\ShowPar} +\ConfigureEnv{figure} + {\:xhtml{\IgnorePar\EndP}\HCode{<hr class="figure"\xml:empty><div + class="figure"\Hnewline><table + class="figure"><tr class="figure"><td class="figure"\Hnewline>}% + \bgroup \Configure{float}{\ShowPar}{}{}% + } + {\egroup + \:xhtml{\IgnorePar\EndP}\HCode{</td></tr></table></div><hr + class="endfigure"\xml:empty>}|<try env inline par|>\par} + {}{} +\Css{div.float img, div.float .caption {text-align:center;}} +\Css{div.figure img, div.figure .caption {text-align:center;}} +>>> +The \verb'<TABLE>' is needed as a grouping mechanism for \verb'<CENTER>'. + + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{Plain} +%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{General} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech plain\><<< +|<4 plain,latex|> +|<0,32,4 plain|> +|<0,32,4 plain,latex|> +|<32,4 plain,latex|> +|<32,4 plain|> +|<4 plain|> +|<plain items|> |%keep last in html mode?|% +>>> + + +\<4 plain\><<< +\def\plain:indent{\ShowIndent \global\let\plain:indent\empty} +\Configure{@BODY}{\plain:indent} +>>> + + + +\<plain items\><<< +\Configure{item} + {}{} + {\par\Configure{items}{\item:class}\HCode{<span class="item">}} + {\HCode{</span>}\Configure{items}{}} +\Configure{itemitem} + {}{} + {\par\Configure{items}{\itemitem:class}\HCode{<span class="itemitem">}} + {\HCode{</span>}\Configure{items}{}} +\Css{p.item {text-indent:-2em; margin-left:2em;}} +\Css{p.itemitem {text-indent:-2em; margin-left:4em;}} +\Css{span.item, span.itemitem {width:2em; margin-right:0.4em;}} +\Configure{!P}{\a:items} +\NewConfigure{items}{1} +\Configure{items}{} +\def\item:class#1class#2"#3"{#1class="item"} +\def\itemitem:class#1class#2"#3"{#1class="itemitem"} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Environments} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<4 plain\><<< +\Configure{settabs}[1.5]{\IgnorePar\EndP\leavevmode + \ht:special{t4ht=<table + \Hnewline\:zbsp{settabs}><tr \Hnewline valign="baseline" + class="settabs">}} + {\ht:special{t4ht=</tr></table>}} + {\ht:special{t4ht=<td \ifx \TabWidth\empty \else + width="\TabWidth"\fi \Hnewline class="settabs">}} + {\ht:special{t4ht=</td>}} +>>> + +\<4 plain\><<< +\Configure{narrower}{\ifvmode \IgnorePar\fi \EndP% + \HCode{<table cellpadding="15" class="narrower"><tr + class="narrower"><td class="narrower">}\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</td></tr></table>}\ifvmode \IgnorePar\fi} +>>> + + + +\<0,32,4 plain\><<< +\Configure{settabs}[1.5]{}{}{}{}{} +\Configure{line}{\HCode{<br\xml:empty>}} +>>> + +\<4 plain\><<< +\Configure{proclaim} + {\IgnorePar\EndP\HCode{<div class="proclaim"><span class="proclaim">}} + {\HCode{</span>}} {\IgnorePar\EndP\HCode{</div>}} +\Css{div.proclaim { margin-top: 1em; margin-bottom: 1em; }} +>>> + +\<4 plain\><<< +\Configure{beginsection} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="beginsection">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\HCode{<h3 class="beginsection">}} + {\HCode{</h3>}\par\ShowPar} +\ConfigureToc{beginsection} + {} {\relax} {} { } +>>> + +% \Css{div.beginsection { margin-top: 1em; margin-bottom: 1em; }} + + + + +\<4 plain\><<< +\Configure{TableOfContents} + {\IgnorePar\EndP \HCode{<div class="TableOfContents">}}{} + {\ifvmode \IgnorePar\fi\EndP + \HCode{</div>}\ShowPar}{\HCode{<br\xml:empty>}}{} +>>> + +\<4 plain\><<< +\Configure{insert} + {\IgnorePar\EndP\HCode{<hr class="insert"\xml:empty>}\IgnorePar} + {\IgnorePar\EndP\HCode{<hr class="endinsert"\xml:empty>}\IgnorePar} +>>> + +\<pic plain/latex math 4.0t\><<< +\NewConfigure{@root}{1} +\Configure{@root}{align="middle" } +>>> + +\<html-speech-math plain,fontmath\><<< +\Configure{big}{\HCode{<span class="big">}}{\HCode{</span>}}{}{} +\Configure{Big}{\HCode{<span class="bbig">}}{\HCode{</span>}}{}{} +\Configure{bigg}{\HCode{<span class="bigg">}}{\HCode{</span>}}{}{} +\Configure{Bigg}{\HCode{<span class="bbigg">}}{\HCode{</span>}}{}{} +>>> + +\<pic plain math 4.0t\><<< +\Configure{@underbrace}{align="middle"} +>>> + +\<4 plain,latex\><<< +\def\:zbsp#1{cellpadding="0" border="0" cellspacing="0"\Hnewline + class="#1"} +>>> + +\<4 plain,latex\><<< +\Configure{centerline}{\ifvmode \IgnorePar + \fi \EndP\HCode{<div \Hnewline + class="centerline">}}{\EndP\HCode{</div>}\ShowPar} +\Configure{leftline}{\ifvmode \IgnorePar + \fi \EndP \HCode{<p\Hnewline class="leftline">}} + {\HCode{</p>}\ShowPar} +\Configure{rightline} + {\IgnorePar\EndP\HCode{<p class="rightline">}} + {\HCode{</p>}\ShowPar} +\Css{.centerline {text-align:center;}} +\Css{.rightline {text-align:right;}} +>>> + +\<4 plain,latex\><<< +\def\tbl:XV#1{table width="100\%"\Hnewline class="#1"} +>>> + + +The \verb'100%' is to allow centering of stuff on the page. +The table is a grouping mechanism to protect internal stuff +from external centering operations. + + +The \verb'special{t4ht=' is superior to \verb'\HCode{' because it can +prevent \verb'<p>'s from entering before \verb'<NOBR>'. + + +The hbox is for avoiding the start of a new paragraph, if in vmode. + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Shared plain latex Math} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +\<configure html-speech-math plain\><<< + +|<html-speech-math plain,fontmath|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Classes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%% +\section{article} +%%%%%%%%%%%%%%%%% + +\<configure html-speech article\><<< +|<article,report,book options 1, 2, 3|> +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<config book-report-article|> +|<config report-article|> +>>> + + +\<config report-article\><<< +\ConfigureEnv{abstract} + {\IgnorePar\EndP + \HCode{<\tbl:XV{abstract}><tr><td\Hnewline>}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP\HCode{</td></tr></table>}}{}{} +\Css{.abstract p {margin-left:5\%; margin-right:5\%;}} +>>> + + + +%%%%%%%%%%%%%%%% +\section{report} +%%%%%%%%%%%%%%%%% + +\<configure html-speech report\><<< +|<article,report,book options 1, 2, 3|> +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<config book-report-article|> +|<latex shared part config|> +|<config book-report 4.0t|> +|<config report-article|> +|<32,4 report,book|> +|<32,4 report|> +>>> + +\<32,4 report\><<< +\ConfigureMark{chapter} + {\HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br\xml:empty>}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\thechapter\space#1} +\Configure{likechapterTITLE+}{#1} +>>> + + +\<32,4 report\><<< +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \TitleMark{\HCode{<br\xml:empty>}}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent} +>>> + +\<32,4 report,book\><<< +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \appendixname \ \thechapter\HCode{</span>}} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapterTITLE+}{#1} +>>> + +\<32,4 report,book\><<< +\Configure{endchapter}{likechapter,appendix,part,likepart} +\Configure{endlikechapter}{chapter,appendix,part,likepart} +\Configure{endappendix}{chapter,likechapter,part,likepart} +>>> + + +%%%%%%%%%%%%%% +\section{book} +%%%%%%%%%%%%%% + +\<configure html-speech book\><<< +|<article,report,book options 1, 2, 3|> +\:CheckOption{1} \if:Option + |<toc book options 1|> +\fi +|<config book-report-article|> +|<latex shared part config|> +|<config book-report 4.0t|> +|<32,4 report,book|> +|<32,4 book|> +>>> + +\<32,4 book\><<< +\ConfigureMark{chapter} + {\if@mainmatter \ifnum \c@secnumdepth >\m@ne + \HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}\fi \fi} +\Configure{chapterTITLE+}{\if@mainmatter\thechapter\space\fi#1} +\renewcommand\thechapter {\if@mainmatter\@arabic\c@chapter\fi} +>>> + +\<32,4 book\><<< +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \if@mainmatter \TitleMark{\HCode{<br\xml:empty>}}\fi } + {\HCode{</h2>}\IgnoreIndent} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \if@mainmatter \TitleMark{\HCode{<br\xml:empty>}}\fi } + {\HCode{</h2>}\IgnoreIndent} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent} +>>> + + +\<chapter toc css\><<< +\Css{.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, + .appendixToc a, .appendixToc + {line-height: 200\%; font-weight:bold;}} +>>> + + +\<part toc css\><<< +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{letter} +%%%%%%%%%%%%%%%%%% + + +\<configure html-speech letter\><<< + +|<quotations|> +|<description 4|> +|<base font size|> +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +>>> + + + + +\<configure html-speech letter\><<< +\Configure{opening} + {\bgroup + \ConfigureEnv{tabular}{}{}{}{}% + \Configure{tabular} + {\EndP\ifvmode \IgnorePar \fi + \HCode{<div class="opening"\a:LRdir>}} + {\HCode{</div><p class="clear-both" />}} + {} + {\HCode{<br />}} + {}{}% + \Configure{HBorder} + {<br class="hline"/>} {}{} + {<br class="cline" />} {}{} {} + {<br class="vspace"/>} {}{}% + } + {\egroup} +\Configure{closing} + {\EndP\ifvmode \IgnorePar\fi + \HCode{<div class="closing">}} + {\EndP\ifvmode \IgnorePar\fi + \HCode{</div><p class="clear-both" />}} +\longindentation=0pt +\Css{div.opening{float:right;}} +\Css{div.closing {float:right; margin-right:2em;}} +\Css{p.clear-both{clear:both;}} +>>> + +\<configure html-speech letter\><<< +\Configure{address} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="address">}} + {\HCode{</span>}} +\Configure{toaddress} + {\HCode{<div class="toaddress">}} + {\HCode{</div>}} +\Configure{toname} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="toname">}} + {\HCode{</div>}} +\Configure{date} + {\HCode{<span class="date">}} + {\HCode{</span>}} +\Configure{dear} + {\HCode{<span class="dear">}} + {\HCode{</span>}} +\Configure{sincerely} + {\HCode{<span class="sincerely">}} + {\HCode{</span>}} +\Configure{signature} + {\HCode{<span class="signature">}} + {\HCode{</span>}} +\Configure{cc} + {\HCode{<div class="cc">}\IgnorePar} + {\ifvmode\IgnorePar\fi\HCode{</div>}} +\Configure{encl} + {\HCode{<div class="encl">}\IgnorePar} + {\ifvmode\IgnorePar\fi\HCode{</div>}} +>>> + + +%%%%%%%%%%%%%%%%% +\section{AMS Art, Proc, Book} +%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%% +\subsection{amsart} +%%%%%%%%%%%%%%%% + + + +\<configure html-speech amsart\><<< +|<ams art,proc,book|> +|<ams art,proc|> +|<ams art|> +>>> + + + + +\<ams art,proc,book\><<< +|<ams maketitle|> +|<makeketitle config 4.0t|> +|<thebib config|> +>>> + +\<makeketitle config 4.0t\><<< +|<config captions|> +>>> + + + + + + + +\<ams art,proc,book\><<< +\ifx \deferred@thm@head\:UnDef\else + |<ams 2000 art + book + proc|> +\fi +>>> + +\<ams 2000 art + book + proc\><<< +\Configure{qed} + {\HCode{<span class="qed">}} {\HCode{</span>}} +\Css{.qed {width:2ex; float:right; text-align:right;}} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{amsproc} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech amsproc\><<< +|<ams art,proc,book|> +|<ams proc,book|> +|<ams art,proc|> +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{amsdtx} +%%%%%%%%%%%%%%%%%%% + + +\<configure html-speech amsdtx\><<< +|<amsdtx maketitle|> +>>> + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{amsbook} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech amsbook\><<< +|<ams art,proc,book|> +|<ams proc,book|> +|<ams book|> +>>> + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Divisions} +%%%%%%%%%%%%%%%%%%% + + +\<ams art,proc,book\><<< +|<ams art,proc,book div|> +|<ams art,proc,book toc|> |%should appear before TocAt|% +|<ams options 1, 2, 3|> +>>> + + +\<ams art,proc,book div\><<< +\ConfigureMark{part} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@ifundefined{partname}{}{% + \ignorespaces\partname\space}% + \@seccntformat{part}% + \HCode{</span>}\fi } +\Configure{part}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h1 class="partHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h1>}\HtmlParOn \IgnoreIndent \par} +\Configure{partTITLE+}{\thepart\space#1} +>>> + + +\<ams book\><<< +\Configure{likepart}{}{} + {\IgnorePar\EndP\HCode{<h1 class="likepartHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent} +\Configure{likepartTITLE+}{#1} +>>> + + + + +\<ams art,proc,book div\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@ifundefined{sectionname}{}{% + \ignorespaces\sectionname\space}% + \@seccntformat{section}% + \HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \par} +>>> + +\<section TITLE+\><<< +\Configure{sectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesection\space + \fi\fi #1} +>>> + + +\<subsection TITLE+\><<< +\Configure{subsectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesubsection\space + \fi\fi #1} +>>> + +\<subsubsection TITLE+\><<< +\Configure{subsubsectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesubsubsection\space + \fi\fi #1} +>>> + + +\<ams art\><<< +\Css{.sectionHead{text-align:center;}} +>>> + + + + +\<ams proc,book\><<< +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\ConfigureMark{subparagraph}{\thesubparagraph} +\Css{.paragraphHead { margin-top:2em; font-weight: bold;}} +>>> + + + + +\<ams art\><<< +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}} + {.\HCode{</span>}\IgnorePar} +\ConfigureMark{subparagraph}{} +>>> + + +\<ams proc,book\><<< +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead { font-weight: bold;}} +>>> + +\<ams art\><<< +\Configure{subparagraph}{}{} + {\ShowPar\noindent\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup + \TitleMark\space} + {.\endgroup\HCode{</span>}\IgnorePar} +>>>> + + + +\<ams book\><<< +\ConfigureMark{chapter} + {\HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br\xml:empty>}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\thechapter\space#1} +>>> + +\<ams book\><<< +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \appendixname \ \thechapter\HCode{</span>}} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \TitleMark{\HCode{<br\xml:empty>}}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{likechapterTITLE+}{#1} +>>> + + +\<ams art,proc\><<< +\Configure{endsection} + {part} +\Configure{endsubsection} + {section,part} +\Configure{endsubsubsection} + {subsection,section,part} +\Configure{endparagraph} + {subsubsection,subsection,section,part} +>>> + + + +\<ams book\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +\Configure{endchapter}{likechapter,appendix,part,likepart} +\Configure{endlikechapter}{chapter,appendix,part,likepart} +\Configure{endappendix}{chapter,likechapter,part,likepart} +\Configure{endsection} + {chapter,likechapter,appendix,part,likepart} +\Configure{endsubsection} + {section,chapter,likechapter,appendix,part,likepart} +\Configure{endsubsubsection} + {subsection,section,chapter,likechapter,appendix,part,likepart} +\Configure{endparagraph} + {subsubsection,subsection,section,chapter,likechapter,% + appendix,part,likepart} +>>> + + + + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Tocs at Cut Points} +%%%%%%%%%%%%%%%%%%% + + +\<ams art,proc\><<< +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +>>> + +\<ams book\><<< +\:CheckOption{1} \if:Option + |<toc book options 1|> +\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{amsppt.sty} +%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure html-speech amsppt\><<< +\ifx \EnditemitemList\:UnDef + \Configure{itemitem} + {}{} + {\par{\Configure{HtmlPar}{\Tg<p class="itemitem">} + {\Tg<p class="itemitem">} {}{}% + \:xhtml{\Configure{HtmlPar}{\EndP\Tg<div class="itemitem">} + {\EndP\Tg<div class="itemitem">} + {\Tg</div>}{\Tg</div>}}% + \noindent}} + {} + \Css{.itemitem {margin-left: 5em; text-indent: -2em; + margin-top: 0.5em; margin-bottom: 0.5em;}} +\fi +|<32,4 amsppt|> +|<4 amsppt|> +>>> + + + + + +\<4 amsppt\><<< +\Configure{title} + {\IgnorePar\par\HCode{<div\Hnewline class="title">}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{div.title {margin-top: 0.5em; + font-weight: bold; text-align:center;}} + +\Configure{author} + {\IgnorePar\par\HCode{<div\Hnewline class="author">}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{div.author {text-align:center}} + +\Configure{affil} + {\IgnorePar\par\HCode{<div\Hnewline class="affil">}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{.affil {text-align:center}} + +\Configure{date} + {\IgnorePar\par\HCode{<div\Hnewline class="date">}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar + \append:def\c:footnote{ }% + } +\Css{.date {text-align:center}} + +\Configure{abstract} + {\IgnorePar\par + \HCode{<div\Hnewline class="abstract">}\ShowPar\IgnoreIndent\par} + {} + {} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{.abstract, .subjclass, .thanks, .keywords + {margin-left:5\%; margin-right:5\%;}} + +\Configure{subjclass} + {\ifx \m:top\:Undef + \let\m:top|=\relax \Css{.subjclass {margin-top:1em; }}% + \fi \Tg<div class="subjclass">} + {\Tg</div>} +\Configure{thanks} + {\ifx \m:top\:Undef + \let\m:top|=\relax \Css{.thanks {margin-top:1em; }}% + \fi \Tg<div class="thanks">} + {\Tg</div>} +\Configure{keywords} + {\ifx \m:top\:Undef + \let\m:top|=\relax \Css{.keywords {margin-top:1em; }}% + \fi \ifvmode \IgnorePar\fi\EndP\Tg<div class="keywords">} + {\ifvmode \IgnorePar\fi \EndP\Tg</div>} +>>> + +\<32 amsppt, 32,4 vanilla\><<< +\Configure{title} + {\IgnorePar\EndP\HCode{<div class="title">}\begingroup\bf} + {\endgroup\IgnorePar\HCode{</div>}} +\Css{div.title {margin-top: 0.5em;}} +\Configure{author} + {\IgnorePar\EndP\HCode{<br\xml:empty><center>}\IgnorePar\par} + {\IgnorePar\EndP\HCode{</center>}} + +>>> + +\<32,4 amsppt\><<< +\Configure{specialhead}{}{} + {\IgnorePar\EndP\HCode{<h1 class="amsspecialheadHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent} +\ConfigureToc{specialhead} + {\HCode{<center>}\ignorespaces}{ } + {}{\HCode{</center>}} +\Configure{head}{}{} + {\IgnorePar\EndP\HCode{<h2 class="amsheadHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent} +\ConfigureToc{head} + {\ignorespaces}{ }{}{\HCode{<br\xml:empty>}} +\Configure{subhead}{}{} + {\IgnorePar\EndP\HCode{<h3 class="amssubheadHead"\a:LRdir>}} + {\HCode{</h3>}\IgnoreIndent} +\ConfigureToc{subhead} + {\:nbsp\:nbsp\:nbsp\:nbsp\ignorespaces} { } + {} {\HCode{<br\xml:empty>}} +\Configure{subsubhead}{}{} + {\IgnorePar\EndP\HCode{<h4 class="amssubsubheadHead"\a:LRdir>}} + {\HCode{</h4>}\IgnoreIndent} +\ConfigureToc{subsubhead} + {\:nbsp\:nbsp\:nbsp\:nbsp\:nbsp% + \:nbsp\:nbsp\:nbsp\ignorespaces} { } {} {\HCode{<br\xml:empty>}} +\Configure{block} + {\IgnorePar\EndP + \HCode{<table cellpadding="15"><tr><td>}\IgnorePar\par} + {\IgnorePar\HCode{</td></tr></table>}\IgnorePar\par} +|<amsppt captions|> +\Configure{roster} + {\IgnorePar\EndP\HCode{<table>}\let\end:item|=\empty} + {\IgnorePar\end:item\HCode{</table>}\IgnorePar\par} + {\IgnorePar\end:item \HCode{<tr valign="top"><td>} + \def\end:item{\EndP\HCode{</td></tr>}}} + {\:nbsp\EndP\HCode{</td><td>}\ShowPar} + {\IgnorePar\EndP\HCode{<table>}\let\end:iitem|=\empty} + {\IgnorePar\end:iitem\HCode{</table>}\IgnorePar\par} + {\IgnorePar\end:iitem\HCode{<tr valign="top"><td>}} + {\HCode{</td><td>} + \def\end:iitem{\EndP\HCode{</td></tr>}}} +|<bib in amsppt.sty|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%% +\section{amstex.tex} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<amstex.tex m:env\><<< +|<amsmath / amstex1 m:env|> +>>> + +\<NO\><<< +\def\m:env#1{\:xhtml{\IgnorePar\EndP}\HCode{<center><table class="#1" + border="0" cellpadding="0" cellspacing="15"><tr><td>}} +\def\endm:env{\HCode + {</td></tr></table></center>}\IgnorePar} +>>> + +\<amsmath / amstex1 m:env\><<< +\def\m:env#1{\relax\ifmmode\else\par\fi\:xhtml{\IgnorePar\EndP}% + \HCode{<center class="#1"><table class="#1"\Hnewline + border="0" cellpadding="0" cellspacing="15"><tr><td>}} +\def\endm:env{\:xhtml{\IgnorePar\EndP}% + \HCode{</td></tr></table></center>}\IgnorePar + \ifmmode\else\par\fi} +>>> + + +\<shared amstex.tex matrix 4.0t\><<< +\Configure{linebreak}{\HCode{<br\xml:empty>}} +|<amstex.tex m:env|> +>>> + + +\section{amsthm.sty} + +\<configure html-speech amsthm\><<< +\ConfigureEnv{proof}{\par\leavevmode}{\par\ShowPar}{}{} + +>>> + + + + + + +\section{amsmath} + +\<configure html-speech-math amsmath\><<< +\Configure{equation} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<\tbl:XV{equation}><tr><td>}\IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP\HCode{</td><td width="5\%">}} + {\end:TTT\ifmmode\else |<try inline par|>\fi} +\Configure{equation*} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<\tbl:XV{equation-star}><tr><td>}\IgnorePar + } + {\end:TTT\ifmmode\else |<try inline par|>\fi} +>>> + + + +\<configure html-speech-math amsmath\><<< +|<amsmath / amstex1 m:env|> +>>> + +\<configure html-speech-math amsmath\><<< +\:CheckOption{pic-align} \if:Option + |<amsmath pic-align css|> +\else + |<amsmath align css|> +\fi +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align-star} +\:tempc{alignat*}{alignat-star} +\:tempc{xalignat*}{xalignat-star} +\:tempc{flalign*}{flalign-star} +>>> + +\<amsmath align css\><<< +\def\:tempc#1#2{% + \Configure{#1} + {\IgnorePar\EndP \HCode{<table\Hnewline class="#2">}} + {\HCode{</table>}} {\HCode{<tr>}} {\HCode{</tr>}} + {\HCode{<td\Hnewline + class="align-\ifnum \HCol>\maxfields@ label\else + \ifodd\HCol\space odd\else even\fi + \fi">}} + {\HCode{</td>}}} +>>> + +\<amsmath pic-align css\><<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\par\IgnorePar\EndP\HCode{<div class="align">}\Picture*[pict]{}} + {\EndPicture\EndP\HCode{</div>}\par} + {} {}} +\Css{div.align {text-align: center;}} +>>> + +\<configure html-speech-math amsmath\><<< +\Configure{split} + {\HCode{<table\Hnewline class="split"><tr><td>}} + {\ifvmode \IgnorePar\fi \HCode{</td></tr></table>}} + {\HCode{<br\Hnewline class="split-tr"\xml:empty>}} {} + {\HCode{<br\Hnewline class="split-td"\xml:empty>}} {} +\Configure{smallmatrix} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<table\Hnewline class="smallmatrix">}} {\HCode{</table>}} + {\HCode{<tr>}} {\HCode{</tr>}} + {\HCode{<td\Hnewline>}} {\HCode{</td>}} +>>> + + + +\<configure html-speech-math amsmath\><<< +\ConfigureEnv{gather*}{\m:env{gather*}}{\endm:env}{}{} +\ConfigureEnv{gathered}{\m:env{gathered}}{\endm:env}{}{} +\ConfigureEnv{matrix}{\m:env{matrix}}{\endm:env}{}{} +\ConfigureEnv{quotation}{\m:env{quotation}}{\endm:env}{}{} +\Configure{equations}{*}{} +>>> + + +\<configure html-speech-math amsmath\><<< +\ConfigureEnv{multline} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{multline}><tr><td>}\Picture*{}\ExtractHLabel + } + {\EndPicture |<put HLabel|>\end:TTT} + {}{} + {}{} +\ConfigureEnv{multline*} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{multline-star}><tr><td>}\Picture*{}% + } + {\EndPicture \end:TTT} + {}{} +|<extract amsmath labels|> +>>> + +\<extract amsmath labels\><<< +\def\ExtractHLabel{% + \def\tagform@##1{{% + \ifx \:HLabel\:UnDef \let\:HLabel=\empty \fi + \def\tagform@####1{\expandafter\let\csname ####1\endcsname\def}% + \:HLabel + \expandafter\ifx\csname ##1\endcsname\relax + \let\tagform@=\relax + \let\HCode=\relax + \edef\:temp{\noexpand\append:def\noexpand + \:HLabel{\HCode{<br />}\tagform@{##1}\HCode{<br />}}}% + \:temp + \global\let\:HLabel=\:HLabel + \fi + }}} +\def\PutHLabel{\:HLabel} +>>> + +\<put HLabel\><<< +\ifx \:HLabel\:Undef \else + \HCode{</td><td width="5\%">}\PutHLabel + \global\let\:HLabel\:Undef +\fi +>>> + + + + +\<configure html-speech-math amsmath\><<< +\ConfigureEnv{gather} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{gather}><tr><td + class="gather1">}\Picture*{}\ExtractHLabel + } + {\EndPicture |<put HLabel|>\end:TTT} + {}{} +\ConfigureEnv{gather*} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{gather-star}><tr><td>}\Picture*{}% + } + {\EndPicture \end:TTT} + {}{} +>>> + + + + + +\<mathml: plain, amsmath, amstex1\><<< +\def\underarrow@#1#2#3{% + \Tg<|.munder>\Tg<|.mrow\Hnewline>#1\Tg</|.mrow>% + \Tg<|.mrow\Hnewline>#2\Tg</|.mrow>% + \Tg</|.munder>}% + +\def\overarrow@#1#2#3{% + \Tg<|.mover>\Tg<|.mrow + class="fill">#1\Tg</|.mrow>% + \Tg<|.mrow\Hnewline>{#2#3}\Tg</|.mrow>% + \Tg</|.mover>}% +>>> + +\<mathml: plain, fontmath, amsmath, amstex1\><<< +\def\overrightarrow{\mathpalette{\overarrow@\rightarrow}} +\def\overleftarrow{\mathpalette{\overarrow@\leftarrow}} +\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrow}} + +\def\underrightarrow{\mathpalette{\underarrow@\rightarrow}} +\def\underleftarrow{\mathpalette{\underarrow@\leftarrow}} +\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrow}} +>>> + + +\<mathml: plain, fontmath, amsmath, amstex1NO\><<< +\def\overrightarrow{\mathpalette{\overarrow@\rightarrow}} +\def\overleftarrow{\mathpalette{\overarrow@\leftarrow}} +\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrow}} + +\def\underrightarrow{\mathpalette{\underarrow@\rightarrow}} +\def\underleftarrow{\mathpalette{\underarrow@\leftarrow}} +\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrow}} +>>> + + The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts + + +\<configure html-speech-math amsmath\><<< +\Configure{intertext} + {\IgnorePar \ifinalign@ + \HCode{\ifnum \HRow>0 </td></tr>\fi<tr><td + colspan="\ifnum \HRow>0 \HCol\else 15\fi" + class="intertext">}% + \else \ifingather@ + \HCode{<tr><td colspan="\HCol" class="intertext">}% + \fi\fi + } + {\ifvmode \IgnorePar \fi \EndP\ifinalign@ + \HCode{</td></tr>\ifnum \HRow>0 <tr><td>\fi}% + \else \ifingather@ + \HCode{</td></tr>}% + \fi\fi + } +>>> + + + +\<configure html-speech-math amsmath\><<< +\Configure{@begin} + {split} + {\ifx \EndPicture \:UnDef \else \let\tagform@=\:gobble \fi} +>>> + + + +%%%%%%%%%%%%%%%%% +\section{amscd} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech amscd\><<< +\ConfigureEnv{CD} + {\Picture*{ class="CD"}$} {$\EndPicture} {}{} +\Css{.CD {text-align:center}} +>>> + + + + + + + +%%%%%%%%%%%%%%%% +\section{Memoir} +%%%%%%%%%%%%%%%%% + +\<configure html-speech memoir\><<< +\Configure{poemline} + {\HCode{<span class="poemline">}} {\HCode{</span>}} +\Css{.poemline {text-align:right; width:6em;}} +>>> + + +%%%%%%%%%%%%%%%% +\section{Elsvier Articles (elsart)} +%%%%%%%%%%%%%%%%% + +\<configure html-speech elsart\><<< +|<32,4 elsart|> +\Configure{abstract} + {\HCode{<\tbl:XV{abstract}><tr><td\Hnewline>}\par\ShowPar} + {} + {\ifvmode\IgnorePar\fi \HCode{</td></tr></table>}} +\Configure{keyword} + {\HCode{<\tbl:XV{keyword}><tr><td\Hnewline>}} + {\ifvmode\IgnorePar\fi \HCode{</td></tr></table>}} +\ConfigureEnv{abstract} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +\ConfigureEnv{keyword} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +>>> + + +\<32,4 elsart\><<< +\ConfigureEnv{frontmatter} + {\EndP\IgnorePar + \HCode{<\tbl:XV{frontmatter}><tr><td><div + class="frontmatter"\Hnewline>}} + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}\end:TTT\IgnorePar} + {}{} +\Css{div.frontmatter {text-align:center;}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%% +\section{American Psychological Association (APA)} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech apa\><<< +|<apa maketitle|> +|<apa abstract|> +|<apa captions|> +|<apa lists|> +\Configure{note} + {\HCode{<div class="note">}\bgroup + |<apa maketitle br cr|>% + } + {\egroup \HCode{</div>}} +\Css{div.note{text-align:left; margin-top:1em; }} +>>> + + +\<apa lists\><<< +\ConfigureList{enumerate}% + {|<enumerate I|>} + {|<enumerate II|>} + {|<enumerate III|>} + {|<enumerate IV|>} +\ConfigureList{APAenumerate}% + {|<enumerate I|>} + {|<enumerate II|>} + {|<enumerate III|>} + {|<enumerate IV|>} +\Configure{seriate} + {\HCode{<span class="seriate">}\let\end:seriate=\empty} + {\end:seriate\HCode{</span>}} + {\end:seriate \def\end:seriate{\HCode{</span>}}% + \HCode{<span class="seriate-item">}\HCode{<span class="seriate-label">}} + {\HCode{</span>}} +\ConfigureList{APAitemize}% + {\EndP\HCode{<ul class="itemize" \a:LRdir >}\PushMacro\end:itm + \global\let\end:itm=\empty + } + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{</li></ul>}\ShowPar + } + {\end:itm \gdef\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="itemize">}\AnchorLabel } +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{JHEP} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech JHEP\><<< +|<latex shared part config|> +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<acm paragraph config|> +\Css{.sectionHead, .partHead{text-transform:uppercase}} +\Css{.subsubsectionHead, .likesubsubsectionHead {font-style: italic;}} +>>> + +\<configure html-speech JHEP\><<< +\Configure{abstract} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="abstract">}\IgnoreIndent} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{accepted} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="accepted">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{author} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="author">}\par \ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{conference} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="conference">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{dedicated} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="dedicated">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{keywords} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="keywords">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{preprint} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="preprint">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{received} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="received">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{title} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="title">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{.abstract{margin-top:1em; margin-bottom:1em;}} +\Css{.accepted{margin-top:1em; margin-bottom:1em; text-align:right;}} +\Css{div.author{margin-top:1em; margin-bottom:1em; margin-left:2em;}} +\Css{.conference{margin-top:1em; margin-bottom:1em;}} +\Css{.dedicated{margin-top:1em; margin-bottom:1em;}} +\Css{.keywords{margin-top:1em; margin-bottom:1em;}} +\Css{.preprint{margin-top:1em; margin-bottom:1em;}} +\Css{.received{margin-top:1em; margin-bottom:1em; text-align:right;}} +\Css{.title{margin-top:1em; margin-bottom:1em;}} +>>> + +\<configure html-speech JHEP\><<< +|<thebib config|> +|<JHEP maketitle footnote|> +>>> + +\<JHEP thanks author date and\><<< +\Configure{thanks} + {\HCode{<div class="thanks">}}{\HCode{</div>}} +|<thank for thanks|> +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + +\<JHEP end-thanks author date and\><<< +\Configure{thanks} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\ifvmode\IgnorePar\fi\EndP\egroup\RecallEndP } +|<thanks for thanks EndP|> +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{acm-proc-article-sp} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-speech acm-proc-article-sp\><<< + +|<acm-proc-article-sp thebib config|> +|<config captions|> +>>> + + + +\<configure html-speech acm-proc-article-sp\><<< +\Configure{qed} + {\Picture+[Q.E.D.]{}\o:qed:\EndPicture + \SavePicture\qed:sym[Q.E.D.]} +>>> + +\<configure html-speech acm-proc-article-sp\><<< +|<latex shared part config|> +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<acm paragraph config|> +\Css{.sectionHead, .partHead{text-transform:uppercase}} +\Css{.subsubsectionHead, .likesubsubsectionHead {font-style: italic;}} +>>> + +\<acm paragraph config\><<< +\ConfigureMark{paragraph} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\theparagraph\space + \HCode{</span>}\fi} +\Configure{paragraph}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{<h5 class="paragraphHead"\a:LRdir>}% + \TitleMark\space \HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent\egroup} +\Configure{likeparagraph}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{<h5 class="likeparagraphHead"\a:LRdir>}% + \HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent\egroup} +\Css{.paragraphHead, .likeparagraphHead { font-style:italic; }} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{scrbook} +%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech scrbook\><<< +|<scr article,report,book|> +|<scr report,book|> +|<shared bib env|> +|<thebib config|> +|<description 4|> +\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +\def\:tempa{ + \CutAt{part} + \CutAt{likepart} + |<cut toc scr: part|>% +} +\def\:tempb{ + |<tocat scr: part|> + \CutAt{chapter,likechapter,addchap,appendix,part} + \CutAt{likechapter,addchap,appendix,part} + \CutAt{addchap,chapter,likechapter,appendix,part} + \CutAt{appendix,chapter,likechapter,addchap,part} + |<tocat: ch|>% +} +\def\:tempc{ + |<tocat scr: ch|>% + \CutAt{section,likesection,chapter,likechapter,addchap,appendix,part} + \CutAt{likesection,chapter,likechapter,addchap,appendix,part} + |<cut toc: sec|>% +} +\def\:tempd{ + |<tocat scr: section|>% + |<tocat scr: subsection|>% + |<cut toc: subsec|>% +} + +\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \:tempd \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax \:tempa \:tempc + \else \:tempa \:tempb \fi +\else\:CheckOption{1} \if:Option + \:tempa +\else + \Log:Note{for sectioning pagination, + use the command line option `1', `2', or `3'}% +\fi \fi \fi \fi + +\:CheckOption{1} \if:Option + |<toc scrbook options 1|> +\fi + +|<scrbook end units|> +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi + +|<config lists of figures and tables|> + +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} + +\ConfigureMark{subparagraph}{\thesubparagraph} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +\ConfigureEnv{picture} + {\bgroup\ifvmode \Configure{HtmlPar} + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center">}}% + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center">}}% + {\:xhtml{\Tg</p>}}{\:xhtml{\Tg</p>}} \ShowPar\leavevmode + \fi} + {\egroup}{}{} + +|<book-report-article index|> +|<scr reprt/book captions|> + +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +|<base font size|> + +|<quotations|> +\Configure{listof}{}{}{}{\HCode{<br\xml:empty>}}{}{} + + + +|<latex shared part config|> + +>>> + +\<scrbook end-thanks author date and\><<< +\Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" >}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + + +\<scrbook thanks author date and\><<< +\Configure{thanks author date and} + {\HCode{<div class="thanks">}}{\HCode{</div>}} + {\HCode{<div class="author">}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} + +>>> + + +\<scr report,book\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\thesection\HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark.~~\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \par} +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \par} +\Configure{likesectionTITLE+}{#1} +>>> + + + +\<scr report,book\><<< +|<shared h5 subsubsection|> +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \thechapter\HCode{</span>}} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}\TitleMark{}.~~} + {\HCode{</h2>}\IgnoreIndent} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{likechapterTITLE+}{#1} +\Configure{addchap}{}{} + {\IgnorePar\EndP\HCode{<h2 class="addchapHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +>>> + +\<configure html-speech scrbook\><<< +\ConfigureMark{chapter} + {\if@mainmatter + \HCode{<span class="titlemark">}\thechapter\HCode{</span>}.~~\fi} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark{}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{chapterTITLE+}{\if@mainmatter\thechapter\space\fi#1} +\renewcommand\thechapter {\if@mainmatter\@arabic\c@chapter\fi} +>>> + +\<configure html-speech scrreprt\><<< +\ConfigureMark{chapter} + {\HCode{<span class="titlemark">}\thechapter\HCode{</span>}.~~} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark{}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\thechapter\space#1} +>>> + +\<scr article,report,book\><<< +\ConfigureMark{minisec}{} +\Configure{minisec}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{<h5 class="minisecHead"\a:LRdir>}% + \TitleMark\space \HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +>>> + +\<scrbook end units\><<< +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsection} + {likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endchapter}{likechapter,addchap,appendix,part,likepart} +\Configure{endlikechapter}{chapter,appendix,part,likeparaddchap,addchap} +\Configure{endaddchap}{chapter,likechapter,appendix,part,likepart} +\Configure{endappendix}{chapter,likechapter,addchap,part,likepart} +>>> + + +%%%%%%%%%%%%%%%%%%% +\section{scrreprt} +%%%%%%%%%%%%%%%%%%% + + + + + +\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} + +|<shared bib env|> +|<thebib config|> + +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi + +|<config lists of figures and tables|> +\ConfigureEnv{picture} + {\bgroup\ifvmode \Configure{HtmlPar} + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center">}}% + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center">}}% + {\:xhtml{\Tg</p>}}{\:xhtml{\Tg</p>}} \ShowPar\leavevmode + \fi} + {\egroup}{}{} + +|<quote config|> +|<book-report-article index|> +|<scr reprt/book captions|> + +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +|<base font size|> +|<quotations|> + +\Configure{listof}{}{}{}{\HCode{<br\xml:empty>}}{}{} + + +|<latex shared part config|> + +\ConfigureEnv{abstract}{\:xhtml{\IgnorePar\EndP}\HCode + {<\tbl:XV{abstract}><tr><td\Hnewline>}} + {\EndP\HCode{</td></tr></table>}}{}{} +\Css{.abstract p {margin-left:5\%; margin-right:5\%;}} + +\def\:tempa{ + \CutAt{part} + \CutAt{likepart} + |<cut toc scr: part|>% +} +\def\:tempb{ + |<tocat scr: part|>% + \CutAt{chapter,likechapter,addchap,appendix,part} + \CutAt{likechapter,addchap,appendix,part} + \CutAt{addchap,chapter,likechapter,appendix,part} + \CutAt{appendix,chapter,likechapter,addchap,part} + |<tocat: ch|>% +} +\def\:tempc{ + |<tocat scr: ch|>% + \CutAt{section,likesection,chapter,likechapter,addchap,appendix,part} + \CutAt{likesection,chapter,likechapter,addchap,appendix,part} + |<cut toc: sec|>% +} +\def\:tempd{ + |<tocat scr: section|>% + |<tocat scr: subsection|>% + |<cut toc: subsec|>% +} + +\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \:tempd \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax \:tempa \:tempc + \else \:tempa \:tempb \fi +\else\:CheckOption{1} \if:Option + \:tempa +\else + \Log:Note{for sectioning pagination, + use the command line option `1', `2', or `3'}% +\fi \fi \fi \fi + +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<scrreprt end units|> +\Configure{addchapTITLE+}{#1} +\def\tocaddchap#1#2#3{\par\:SPAN{addchapToc}{#2}\par}% +>>> + + +\<scrreprt end-thanks author date and\><<< +\Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" >}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + +\<scrreprt thanks author date and\><<< +\Configure{thanks author date and} + {\HCode{<div class="thanks">}}{\HCode{</div>}} + {\HCode{<div class="author" >}}{\HCode{</div>}} + {\HCode{<div class="date" >}}{\HCode{</div>}} + {\HCode{<br class="and"\xml:empty>}} + {\HCode{<br\xml:empty>}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + +\<configure html-speech scrartcl\><<< +|<scr article,report,book|> +>>> + +\<configure html-speech scrreprt\><<< +|<scr article,report,book|> +|<scr report,book|> +|<description 4|> +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} + +\ConfigureMark{subparagraph}{\thesubparagraph} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + +\<scrreprt end units\><<< +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} + +\Configure{endsection} + {likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,addchap,appendix,part,likepart} + +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} + +\Configure{endaddchap}{likechapter,appendix,part,likepart,chapter} +\Configure{endchapter}{likechapter,appendix,part,likepart,addchap} +\Configure{endlikechapter}{chapter,appendix,part,likepart,addchap} +\Configure{endappendix}{chapter,likechapter,part,likepart,addchap} +>>> + + +%%%%%%%%%%%%%% +\section{Res} +%%%%%%%%%%%%%% + +\<configure html-speech res\><<< +\ConfigureEnv{resume} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="resume">}\let\endHR=\empty} + {\ifvmode \IgnorePar\fi \EndP + \HCode{\endHR</div>}} + {} {} +\def\c:secnumdepth{-1} + +\Configure{overlapped-section} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar } + {\ifvmode \IgnorePar\fi \EndP\IgnorePar \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h4 class="sectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h4>}% + \HCode{<div class="section">}% + \HtmlParOn \ShowPar \IgnoreIndent \csname par\endcsname} + +\ConfigureEnv{tabbing} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table class="tabbing">}} + {\ifvmode \IgnorePar\fi \HCode{</table>}\par\ShowPar} + {} {} + +\Configure{tabbing} + {\ifvmode \IgnorePar\fi \HCode{<tr>}} + {\HCode{</tr>}} + {\ifvmode \IgnorePar\fi \HCode{<td class="tabbing">}} + {\ifvmode \IgnorePar\fi \HCode{</td>}} + +\Css{table.tabbing {width:100\%; margin-top:1em;}} +\Css{td.tabbing {width:33\%;}} +\Css{div.section {margin-left:3em;}} +>>> + + +\<configure html-speech res\><<< +\Configure{centeraddresses} + {} {} + {\HCode{<table class="center-addresses"><tr><td class="first-address">}} + {\HCode{</td><td class="second-address">}} + {\HCode{</td></tr></table>}} +\Css{.center-addresses {width:100\%}} +>>> + +\<configure html-speech res\><<< +\Configure{linename} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="linename">}} + {\HCode{</div><hr />}\par} +\Configure{lineaddress} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="line-address">}} + {\HCode{<br />}} + {\HCode{</div>}} +\Css{.line-address {text-align:right;}} +>>> + +\<configure html-speech res\><<< +\Configure{boxed-section} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="section"><tr><td class="section">}\par + } + {\ifvmode \IgnorePar\fi \EndP + \HCode{</td></tr></table>}\par} + {\ifvmode \IgnorePar\fi \HtmlParOff} + {\HCode{</td><td class="section-body">}\HtmlParOn\par\ShowPar} +\Css{table.section td{ vertical-align:top;}} +\Css{td.section {padding-right:2em; width:20\%;}} +\Css{table.section {margin-top:1em;}} +>>> + +\<configure html-speech res\><<< +\ConfigureEnv{position} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="position">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {}{} +\Css{.position table {width:100\%;}} +>>> + +%%%%%%%%%%%%%% +\section{aa} +%%%%%%%%%%%%%% + +\<configure html-speech aa\><<< + |<makeketitle config 4.0t|> + |<configure aa 3.2/4.0t|> +|<latex shared part config|> +|<latex config div 4.0t|> +|<latex shared div config|> +|<shared bib env|> +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi +>>> + +\subsection{Sizes of Fonts} + +pages should honor the base font sizes the +readers choose for their browsers. Hence, under this assumption, all +tex4ht should do is just assure appropriate relative dimensions for +fonts of other sizes. To meet this end, I modified latex.4ht to +automatically include + + \verb'{\Configure{Needs}{Font\string_Size: #1}\Needs{1...}}' + +when options 11pt and 12pt are listed in \verb'\documentclass'. +\<article,report,book\><<< +|<base font size|> +>>> +> + +\<base font size\><<< +{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize + \or \Needs{11}\or \Needs{12}\else \fi} +>>> + + +\<ams art,proc,book\><<< +|<base font size|> +>>> + + + + + + + +\<latex config div 4.0t\><<< +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<latex shared paragraph config|> +>>> + + + +% \Css{.titlemark{margin-right:0.7em;}} abuses NS 4.7 + +\<latex shared section config\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@seccntformat{section}% + \HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h3>}\HtmlParOn\ShowPar \IgnoreIndent \par} +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \par} +\Configure{likesectionTITLE+}{#1} +>>> +% \def\HCode{<#1>}{\HCode{<#1>}} + + + +\<latex shared subsection config\><<< +|<shared h5 subsubsection|> +|<shared h4 subsection|> +>>> + + +\<latex shared paragraph config\><<< +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} +>>> + +\<latex config div 4.0t\><<< +\ConfigureMark{subparagraph}{} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + +\<32,4 latex\><<< +\ConfigureEnv{picture} + {\bgroup\ifvmode \Configure{HtmlPar} + {\EndP\HCode{|<show input line no|>}\HCode{<p + class="center">}}% + {\EndP\HCode{|<show input line no|>}\HCode{<p + class="center">}}% + {\:xhtml{\Tg</p>}}{\:xhtml{\Tg</p>}} \ShowPar\leavevmode + \fi} + {\egroup}{}{} +>>> + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{ltxguide} +%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech ltxguide\><<< +\Configure{m} + {\HCode{\string&\#x2329;}} + {\HCode{\string&\#x232A;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Polish: mwart.cls, mwrep.cls, mwbk.cls} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech mwart\><<< +|<mwcls divs|> +|<mwcls tocs|> +|<mwart tocs|> +|<cut and toc at for options 1, 2, 3|> |%should be after mw ... tocs|% +|<mwcls configs|> +>>> + + +\<configure html-speech mwrep\><<< +|<mwcls divs|> +|<mw rep/bk divs|> +|<mwcls tocs|> +|<mw rep/bk tocs|> +|<cut and toc at for options 1, 2, 3|> |%should be after mw ... tocs|% +|<mwcls configs|> +>>> + +\<configure html-speech mwbk\><<< +|<mwcls divs|> +|<mw rep/bk divs|> +|<mwcls tocs|> +|<mw rep/bk tocs|> +|<cut and toc at for options 1, 2, 3|> |%should be after mw ... tocs|% +|<mwcls configs|> +>>> + +\<mwcls configs\><<< +|<mwcls index|> +|<config captions|> +|<shared bib env|> +|<thebib config|> +\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +|<config lists of figures and tables|> +\ConfigureList{description}% + {\EndP\HCode{<dl \a:LRdir class="description">}% + \PushMacro\end:itm +\global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm +\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="description">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="description">}} + +|<quote config|> +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} + +{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize + \or \Needs{11}\or \Needs{12}\else \fi} + +|<quotations|> +\Configure{listof}{}{}{}{\HCode{<br\xml:empty>}}{}{} + +\ConfigureEnv{abstract} + {\IgnorePar\EndP + \HCode{<\tbl:XV{abstract}><tr><td\Hnewline>}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP\HCode{</td></tr></table>}}{}{} +\Css{.abstract p {margin-left:5\%; margin-right:5\%;}} +>>> + + +\<mwcls divs\><<< +\ConfigureMark{part} + {\ifHeadingNumbered \HCode{<span class="titlemark">}\partname + \space \HeadingNumber \HCode{</span>}\fi} +\Configure{part}{}{} + {\NoFonts\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h1 class="partHead"\a:LRdir>}\TitleMark + \HCode{<br />}\HtmlParOff} + {\HCode{</h1>}\HtmlParOn \EndNoFonts \IgnoreIndent \par} +\Configure{partTITLE+}{\thepart\space #1} +\Css{h1.partHead{text-align: left}} +>>> + +\<mwcls divs\><<< +\Configure{likepart}{}{} + {\IgnorePar\EndP\HCode{<h1 class="likepartHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent} +\Configure{likepartTITLE+}{#1} +>>> + +\<mw rep/bk divs\><<< +\ConfigureMark{chapter} + {\ifHeadingNumbered \HCode{<span class="titlemark">}\mw@seccntformat + \HeadingNumber \HCode{</span>}\fi} +\Configure{chapter}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark\HtmlParOff} + {\HCode{</h2>}\HtmlParOn \EndNoFonts \IgnoreIndent \par} +\Configure{chapterTITLE+}{\thesection\space#1} +>>> + +\<mw rep/bk divs\><<< +\Configure{likechapter}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h2 class="likechapterHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h2>}\HtmlParOn \IgnoreIndent \par} +\Configure{likechapterTITLE+}{#1} +>>> + +\<mwcls divs\><<< +\ConfigureMark{section} + {\ifHeadingNumbered \HCode{<span class="titlemark">}\mw@seccntformat + \HeadingNumber \HCode{</span>}\fi} +\Configure{section}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \EndNoFonts \IgnoreIndent \par} +\Configure{sectionTITLE+}{\thesection\space#1} +>>> + +\<mwcls divs\><<< +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \par} +\Configure{likesectionTITLE+}{#1} +>>> + + +\<mwcls divs\><<< +\Configure{paragraph}{}{} + {\par\ShowPar\IgnoreIndent\HCode{<span + class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} +>>> + +\<mwcls divs\><<< +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\IgnorePar} +>>> + +\<mwcls divs\><<< +\ConfigureMark{subparagraph}{} +\Configure{subparagraph}{}{} + {\par\ShowPar\IgnoreIndent + \HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + +\<mwcls divs\><<< +\Configure{likesubparagraph}{}{} + {\par\ShowPar\IgnoreIndent + \HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +>>> + +\<mwcls divs\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + + + + + +\<mwcls tocs\><<< +\ConfigureToc{part} + {\HCode{<div class="partToc"><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likepart} + {\HCode{<div class="likepartToc"><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{section} + {\HCode{<div class="sectionToc"><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesection} + {\HCode{<div class="likesectionToc"><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{subsection} + {\HCode{<div class="subsectionToc"><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesubsection} + {\HCode{<div class="likesubsectionToc"><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{subsubsection} + {\HCode{<div class="subsubsectionToc"><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesubsubsection} + {\HCode{<div class="likesubsubsectionToc"><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{paragraph} + {\HCode{<div class="paragraphToc"><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likeparagraph} + {\HCode{<div class="likeparagraphToc"><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{subparagraph} + {\HCode{<div class="subparagraphToc"><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesubparagraph} + {\HCode{<div class="likesubparagraphToc"><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +>>> + +\<mw rep/bk tocs\><<< +\ConfigureToc{chapter} + {\HCode{<div class="chapterToc"><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likechapter} + {\HCode{<div class="likechapterToc"><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +>>> + + +\<mwcls tocs\><<< +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +\Css{.partToc, .likepartToc{text-align:center;margin-bottom:0.25em; + margin-top:0.25em;}} +>>> + +\<mwart tocs\><<< +\Css{.sectionToc, .likesectionToc {white-space: nowrap;}} +\Css{.subsectionToc, .likesubsectionToc + {margin-left:1em; white-space: nowrap;}} +\Css{.subsubsectionToc, .likesubsubsectionToc + {margin-left:2em; white-space: nowrap;}} +\Css{.paragraphToc, .likeparagraphToc + {margin-left:3em; white-space: nowrap;}} +\Css{.subparagraphToc, .likesubparagraphToc + {margin-left:4em; white-space: nowrap;}} +>>> + +\<mw rep/bk tocs\><<< +\Css{.chapterToc, .likechapterToc {white-space: nowrap;}} +\Css{.sectionToc, .likesectionToc + {margin-left:1em; white-space: nowrap;}} +\Css{.subsectionToc, .likesubsectionToc + {margin-left:2em; white-space: nowrap;}} +\Css{.subsubsectionToc, .likesubsubsectionToc + {margin-left:3em; white-space: nowrap;}} +\Css{.paragraphToc, .likeparagraphToc + {margin-left:4em; white-space: nowrap;}} +\Css{.subparagraphToc, .likesubparagraphToc + {margin-left:5em; white-space: nowrap;}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%% +\section{texinfo} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-speech texinfo\><<< +\Configure{group} + {\IgnorePar\EndP\HCode{<div class="group">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} +\Css{div.obeylines-v div.group p { margin-top:0; margin-bottom:0; }} +\Configure{multitable} + {\IgnorePar \EndP\HCode{<table\Hnewline class="multitable">}\IgnorePar} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td \Hnewline class="multitabl\the\colcount">}} + {\IgnorePar \EndP\HCode{</td>}} +\Css{.multitable td{padding-left:1em; padding-right:1em;}} +>>> + + +\<configure html-speech texinfo\><<< +\Configure{example} + {\IgnorePar\EndP\HCode{<div class="example">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} +\Css{div.example { margin-left:2em; }} +\Configure{smallexample} + {\IgnorePar\EndP\HCode{<div class="smallexample">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} +\Css{div.smallexample { margin-left:2em; }} +>>> + + +\<configure html-speech texinfo\><<< +\ConfigureMark{chapter}{\the\chapno} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h2>}\IgnoreIndent} +\ConfigureMark{appendix}{\appendixletter} +\Configure{appendix}{}{} + {\IgnorePar\EndP + \HCode{<h2 class="appendixHead"\a:LRdir>}Appendix \TitleMark\space} + {\HCode{</h2>}\IgnoreIndent} +\Configure{unnumbered}{}{} + {\IgnorePar\EndP\HCode{<h2 class="unnumberedHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent} +\ConfigureMark{numberedsec}{\the\chapno.\the\secno} +\Configure{numberedsec}{}{} + {\IgnorePar\EndP\HCode{<h3 + class="numberedsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h3>}\IgnoreIndent} +\ConfigureMark{appendixsec}{\appendixletter.\the\secno} +\Configure{appendixsec}{}{} + {\IgnorePar\EndP\HCode{<h3 + class="appendixsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h3>}\IgnoreIndent} +\Configure{unnumberedsec}{}{} + {\IgnorePar\EndP\HCode{<h3 class="unnumberedsecHead"\a:LRdir>}} + {\HCode{</h3>}\IgnoreIndent} +\ConfigureMark{numberedsubsec}{\the\chapno.\the\secno .\the\subsecno} +\Configure{numberedsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 + class="numberedsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h4>}\IgnoreIndent} +\ConfigureMark{appendixsubsec}{\appendixletter .\the\secno.\the\subsecno} +\Configure{appendixsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 + class="appendixsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h4>}\IgnoreIndent} +\ConfigureMark{appendixsubsec}{\appendixletter.\the\secno + .\the\subsecno} +\Configure{appendixsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 + class="appendixsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h4>}\IgnoreIndent} +\Configure{unnumberedsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 class="unnumberedsubsecHead"\a:LRdir>}} + {\HCode{</h4>}\IgnoreIndent} +\ConfigureMark{numberedsubsubsec}{\the\chapno.\the\secno + .\the\subsecno.\the\subsubsecno} +\Configure{numberedsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 + class="numberedsubsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h5>}\IgnoreIndent} +\ConfigureMark{appendixsubsubsec}{\appendixletter + .\the\secno.\the\subsecno.\the\subsubsecno} +\Configure{appendixsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 + class="appendixsubsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h5>}\IgnoreIndent} +\ConfigureMark{appendixsubsubsec}{\appendixletter.\the\secno + .\the\subsecno.\the\subsubsecno} +\Configure{appendixsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 + class="appendixsubsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h5>}\IgnoreIndent} +\Configure{unnumberedsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 class="unnumberedsubsubsecHead"\a:LRdir>}} + {\HCode{</h5>}\IgnoreIndent} +>>> + +\<configure html-speech texinfo\><<< +\ConfigureToc{chapter} + {\Tg<span class="chapterToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{appendix} + {\Tg<span class="appendixToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{unnumbered} + {\Tg<span class="unnumberedToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{numberedsec} + {\Tg<span class="numberedsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{appendixsec} + {\Tg<span class="appendixsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{unnumberedsec} + {\Tg<span class="unnumberedsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{numberedsubsec} + {\Tg<span class="numberedsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{appendixsubsec} + {\Tg<span class="appendixsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{appendixsubsec} + {\Tg<span class="appendixsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{unnumberedsubsec} + {\Tg<span class="unnumberedsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{numberedsubsubsec} + {\Tg<span class="numberedsubsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{appendixsubsubsec} + {\Tg<span class="appendixsubsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{appendixsubsubsec} + {\Tg<span class="appendixsubsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +\ConfigureToc{unnumberedsubsubsec} + {\Tg<span class="unnumberedsubsubsecToc">}{ }{}{\Tg</span>\Tg<br />} +>>> + + + +\<configure html-speech texinfo\><<< +\Configure{enumerate} + {\IgnorePar\EndP\HCode{<ol\space class="enumerate"\Hnewline>}} + {\IgnorePar\EndP\HCode{</li></ol>}\ShowPar} + {\IgnorePar\EndP\ifnum \itemno>1 \Tg</li>\fi\DeleteMark} + {\HCode{<li class="enumerate">}} +\Configure{itemize} + {\IgnorePar\EndP\HCode{<ul\space\a:LRdir class="itemize"\Hnewline>}} + {\IgnorePar\EndP\HCode{</li></ul>}\ShowPar} + {\IgnorePar\EndP\ifnum \itemno>1 \Tg</li>\fi\DeleteMark} + {\HCode{<li class="itemize">}} +\Configure{table}% + {\IgnorePar\EndP\HCode{<dl \a:LRdir class="description">}% + |<save end:itm|>\global\let\end:itm|=\empty} + {|<recall end:itm|>\IgnorePar\EndP\HCode{</dd></dl>}} + {\IgnorePar\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="description">}\bgroup \bf} + {\egroup\IgnorePar\EndP\HCode{</dt><dd\Hnewline class="description">}} +>>> + +\<configure html-speech texinfo\><<< +\Configure{titlepage} + {\IgnorePar\EndP\HCode{<div class="titlepage">}} + {\IgnorePar\EndP\HCode{</div>}} +\Configure{title} + {\IgnorePar\EndP\HCode{<div class="title">}} + {\IgnorePar\EndP\HCode{</div>}} +\Configure{subtitle} + {\IgnorePar\EndP\HCode{<div class="subtitle">}} + {\IgnorePar\EndP\HCode{</div>}} +\Configure{author} + {\IgnorePar\EndP\HCode{<div class="author">}} + {\IgnorePar\EndP\HCode{</div>}} +>>> + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Accents, encodings, and Languages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\Link[http://lycos.basistech.com/info/standards/ISO-8859.txt]{}{}iso + text\EndLink, +\Link[http://titus.uni-frankfurt.de/unicode/iso8859/iso8859.htm]{}{}titus glyphs\EndLink, +satto glyphs: +\Link[http://www.satto.co.yu/podrska/iso/iso8859-1.htm]{}{}1\EndLink{} +\Link[http://www.satto.co.yu/podrska/iso/iso8859-2.htm]{}{}2\EndLink{} ..., +microsoft glyphs: +\Link[http://www.microsoft.com/globaldev/reference/iso/28591.htm]{}{}1\EndLink{} +\Link[http://www.microsoft.com/globaldev/reference/iso/28592.htm]{}{}2\EndLink{} ... + + + +\<configure html-speech latex\><<< +\ifOption{charset=iso-8859-7} + {|<T1 greek ldf iso-8859-7|>} + {} +\:CheckOption{new-accents} \if:Option +\else + |<T1 old iso-8859-1 accents|> +\fi +\let\^^_|=\v +>>> + + +\<old plain,latex accents\><<< +|<old iso-8859-1 accents|> +|<OT1 old iso-8859-1 accents|> +|<optional iso-8859-2 accents|> +>>> + +\<babel accents\><<< +|<optional iso-8859-2 accents|> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Group Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{8859-1} +%%%%%%%%%%%%%%%%%%%% + +\<acute codes\><<< +A{00C1}C{0106}D{010E}E{00C9}G{01F4}I{00CD}L{0139}N{0143}% +O{00D3}R{0154}S{015A}U{00DA}Y{00DD}Z{0179}a{00E1}c{0107}% +d{010F}e{00E9}g{01F5}i{00ED}l{013A}n{0144}o{00F3}r{0155}% +s{015B}u{00FA}y{00FD}z{017A}j{FFFD}J{FFDD}\i{00ED}\j{FFFD}% +>>> + +\<add acute codes\><<< + {A}{\add:acc{00C1}} + {C}{\add:acc{0106}} + {D}{\add:acc{010E}} + {E}{\add:acc{00C9}} + {G}{\add:acc{01F4}} + {I}{\add:acc{00CD}} + {L}{\add:acc{0139}} + {N}{\add:acc{0143}} + {O}{\add:acc{00D3}} + {R}{\add:acc{0154}} + {S}{\add:acc{015A}} + {U}{\add:acc{00DA}} + {Y}{\add:acc{00DD}} + {Z}{\add:acc{0179}} + {a}{\add:acc{00E1}} + {c}{\add:acc{0107}} + {d}{\add:acc{010F}} + {e}{\add:acc{00E9}} + {g}{\add:acc{01F5}} + {i}{\add:acc{00ED}} + {l}{\add:acc{013A}} + {n}{\add:acc{0144}} + {o}{\add:acc{00F3}} + {r}{\add:acc{0155}} + {s}{\add:acc{015B}} + {u}{\add:acc{00FA}} + {y}{\add:acc{00FD}} + {z}{\add:acc{017A}} + {j}{\add:acc{FFFD}} + {J}{\add:acc{FFDD}} + {\i}{\add:acc{00ED}} + {\j}{\add:acc{FFFD}} +>>> + +\<acute iso-8859-1\><<< +|<acute codes|>% +>>> + +\<acute iso-8859-2\><<< +|<acute codes|>% +>>> + + +\<double acute code\><<< +o{0151}O{0150}U{0170}u{0171}% +>>> + +\<add double acute code\><<< + {o}{\add:acc{0151}} + {O}{\add:acc{0150}} + {U}{\add:acc{0170}} + {u}{\add:acc{0171}} +>>> + +\<double acute iso-8859-1\><<< +|<double acute code|>% +>>> + +\<double acute iso-8859-2\><<< +|<double acute code|>% +>>> + + + + + + + + +\<cedilla codes\><<< +K{0136}k{0137}L{013B}l{013C}N{0145}n{0146}% +R{0156}r{0157}S{015E}s{015F}T{0162}t{0163}% +E{0228}e{0229}D{1E10}d{1E11}H{1E28}h{1E29}% +C{00C7}c{00E7}G{0122}g{0123}% +>>> + +\<add cedilla codes\><<< + {K}{\add:acc{0136}} + {k}{\add:acc{0137}} + {L}{\add:acc{013B}} + {l}{\add:acc{013C}} + {N}{\add:acc{0145}} + {n}{\add:acc{0146}} + {R}{\add:acc{0156}} + {r}{\add:acc{0157}} + {S}{\add:acc{015E}} + {s}{\add:acc{015F}} + {T}{\add:acc{0162}} + {t}{\add:acc{0163}} + {E}{\add:acc{0228}} + {e}{\add:acc{0229}} + {D}{\add:acc{1E10}} + {d}{\add:acc{1E11}} + {H}{\add:acc{1E28}} + {h}{\add:acc{1E29}} + {C}{\add:acc{00C7}} + {c}{\add:acc{00E7}} + {G}{\add:acc{0122}} + {g}{\add:acc{0123}} +>>> + + +\<cedilla iso-8859-1\><<< +|<cedilla codes|>% +>>> + + +\<cedilla iso-8859-2\><<< +|<cedilla codes|>% +>>> + + + + +\<dot above codes\><<< +C{010A}c{010B}E{0116}e{0117}G{0120}g{0121}% +I{0130}Z{017B}z{017C}A{0226}a{0227}O{022E}% +o{022F}B{1E02}b{1E03}D{1E0A}d{1E0B}F{1E1E}% +f{1E1F}H{1E22}h{1E23}M{1E40}m{1E41}N{1E44}% +n{1E45}P{1E56}p{1E57}R{1E58}r{1E59}S{1E60}% +s{1E61}T{1E6A}t{1E6B}W{1E86}w{1E87}X{1E8A}% +x{1E8B}Y{1E8E}y{1E8F}% +>>> + +\<add dot above codes\><<< + {C}{\add:acc{010A}} + {c}{\add:acc{010B}} + {E}{\add:acc{0116}} + {e}{\add:acc{0117}} + {G}{\add:acc{0120}} + {g}{\add:acc{0121}} + {I}{\add:acc{0130}} + {Z}{\add:acc{017B}} + {z}{\add:acc{017C}} + {A}{\add:acc{0226}} + {a}{\add:acc{0227}} + {O}{\add:acc{022E}} + {o}{\add:acc{022F}} + {B}{\add:acc{1E02}} + {b}{\add:acc{1E03}} + {D}{\add:acc{1E0A}} + {d}{\add:acc{1E0B}} + {F}{\add:acc{1E1E}} + {f}{\add:acc{1E1F}} + {H}{\add:acc{1E22}} + {h}{\add:acc{1E23}} + {M}{\add:acc{1E40}} + {m}{\add:acc{1E41}} + {N}{\add:acc{1E44}} + {n}{\add:acc{1E45}} + {P}{\add:acc{1E56}} + {p}{\add:acc{1E57}} + {R}{\add:acc{1E58}} + {r}{\add:acc{1E59}} + {S}{\add:acc{1E60}} + {s}{\add:acc{1E61}} + {T}{\add:acc{1E6A}} + {t}{\add:acc{1E6B}} + {W}{\add:acc{1E86}} + {w}{\add:acc{1E87}} + {X}{\add:acc{1E8A}} + {x}{\add:acc{1E8B}} + {Y}{\add:acc{1E8E}} + {y}{\add:acc{1E8F}} +>>> + +\<dot above iso-8859-1\><<< +|<dot above codes|>% +>>> + +\<dot iso-8859-1\><<< +|<dot above codes|>% +>>> + +\<dot above iso-8859-2\><<< +|<dot above codes|>% +>>> + + + + +\<breve codes\><<< +g{011F}I{012C}i{012D}O{014E}o{014F}% +U{016C}u{016D}A{0102}a{0103}E{0114}% +e{0115}G{011E}\i{012D}% +>>> + +\<add breve codes\><<< + {g}{\add:acc{011F}} + {I}{\add:acc{012C}} + {i}{\add:acc{012D}} + {O}{\add:acc{014E}} + {o}{\add:acc{014F}} + {U}{\add:acc{016C}} + {u}{\add:acc{016D}} + {A}{\add:acc{0102}} + {a}{\add:acc{0103}} + {E}{\add:acc{0114}} + {e}{\add:acc{0115}} + {G}{\add:acc{011E}} + {\i}{\add:acc{012D}} + {y}{y\add:acc{0306}} +>>> + + +\<breve iso-8859-1\><<< +|<breve codes|>% +>>> + +\<breve iso-8859-2\><<< +|<breve codes|>% +>>> + + + + + + + +\<caron codes\><<< +C{010C}c{010D}D{010E}d{010F}% +E{011A}e{011B}L{013D}l{013E}N{0147}n{0148}R{0158}r{0159}% +S{0160}s{0161}T{0164}t{0165}Z{017D}z{017E}A{01CD}a{01CE}I{01CF}% +i{01D0}O{01D1}o{01D2}U{01D3}u{01D4}G{01E6}g{01E7}K{01E8}k{01E9}% +j{01F0}H{021E}h{021F}\i{01D0}\j{01F0}% +>>> + +\<add caron codes\><<< + {C}{\add:acc{010C}} + {c}{\add:acc{010D}} + {D}{\add:acc{010E}} + {d}{\add:acc{010F}} + {E}{\add:acc{011A}} + {e}{\add:acc{011B}} + {L}{\add:acc{013D}} + {l}{\add:acc{013E}} + {N}{\add:acc{0147}} + {n}{\add:acc{0148}} + {R}{\add:acc{0158}} + {r}{\add:acc{0159}} + {S}{\add:acc{0160}} + {s}{\add:acc{0161}} + {T}{\add:acc{0164}} + {t}{\add:acc{0165}} + {Z}{\add:acc{017D}} + {z}{\add:acc{017E}} + {A}{\add:acc{01CD}} + {a}{\add:acc{01CE}} + {I}{\add:acc{01CF}} + {i}{\add:acc{01D0}} + {O}{\add:acc{01D1}} + {o}{\add:acc{01D2}} + {U}{\add:acc{01D3}} + {u}{\add:acc{01D4}} + {G}{\add:acc{01E6}} + {g}{\add:acc{01E7}} + {K}{\add:acc{01E8}} + {k}{\add:acc{01E9}} + {j}{\add:acc{01F0}} + {H}{\add:acc{021E}} + {h}{\add:acc{021F}} + {\i}{\add:acc{01D0}} + {\j}{\add:acc{01F0}} +>>> +% + + +\<caron iso-8859-1\><<< +|<caron codes|>% +>>> + +\<caron iso-8859-2\><<< +|<caron codes|>% +>>> + +\<check iso-8859-1\><<< +|<caron codes|>% +>>> + + + + + + + +\<ring codes\><<< +A{00C5}a{00E5}U{016E}u{016F}% +>>> + +\<add ring codes\><<< + {A}{\add:acc{00C5}} + {a}{\add:acc{00E5}} + {U}{\add:acc{016E}} + {u}{\add:acc{016F}} +>>> + + +\<ring iso-8859-1\><<< +|<ring codes|>% +>>> + +\<ring iso-8859-2\><<< +|<ring codes|>% +>>> + + + + + + + + + + + + + + +\<diaeresis codes\><<< +H{1E26}h{1E27}W{1E84}w{1E85}X{1E8C}x{1E8D}% +t{1E97}A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +>>> + +\<add diaeresis codes\><<< + {H}{\add:acc{1E26}} + {h}{\add:acc{1E27}} + {W}{\add:acc{1E84}} + {w}{\add:acc{1E85}} + {X}{\add:acc{1E8C}} + {x}{\add:acc{1E8D}} + {t}{\add:acc{1E97}} + {A}{\add:acc{00C4}} + {E}{\add:acc{00CB}} + {I}{\add:acc{00CF}} + {O}{\add:acc{00D6}} + {U}{\add:acc{00DC}} + {a}{\add:acc{00E4}} + {e}{\add:acc{00EB}} + {i}{\add:acc{00EF}} + {o}{\add:acc{00F6}} + {u}{\add:acc{00FC}} + {y}{\add:acc{00FF}} + {Y}{\add:acc{0178}} + {\i}{\add:acc{00EF}} + {m}{m\add:acc{0308}} +>>> + + + +\<diaeresis iso-8859-1\><<< +|<diaeresis codes|>% +>>> + +\<diaeresis iso-8859-2\><<< +|<diaeresis codes|>% +>>> + + + + + + + +\<circumflex codes\><<< +A{00C2}E{00CA}I{00CE}O{00D4}U{00DB}a{00E2}e{00EA}% +i{00EE}o{00F4}u{00FB}C{0108}c{0109}G{011C}g{011D}% +H{0124}h{0125}J{0134}j{0135}S{015C}s{015D}W{0174}% +w{0175}Y{0176}y{0177}Z{1E90}z{1E91}\i{00EE}\j{0135}% +>>> + +\<add circumflex codes\><<< + {A}{\add:acc{00C2}} + {E}{\add:acc{00CA}} + {I}{\add:acc{00CE}} + {O}{\add:acc{00D4}} + {U}{\add:acc{00DB}} + {a}{\add:acc{00E2}} + {e}{\add:acc{00EA}} + {i}{\add:acc{00EE}} + {o}{\add:acc{00F4}} + {u}{\add:acc{00FB}} + {C}{\add:acc{0108}} + {c}{\add:acc{0109}} + {G}{\add:acc{011C}} + {g}{\add:acc{011D}} + {H}{\add:acc{0124}} + {h}{\add:acc{0125}} + {J}{\add:acc{0134}} + {j}{\add:acc{0135}} + {S}{\add:acc{015C}} + {s}{\add:acc{015D}} + {W}{\add:acc{0174}} + {w}{\add:acc{0175}} + {Y}{\add:acc{0176}} + {y}{\add:acc{0177}} + {Z}{\add:acc{1E90}} + {z}{\add:acc{1E91}} + {\i}{\add:acc{00EE}} + {\j}{\add:acc{0135}} +>>> + + + +\<circumflex iso-8859-1\><<< +|<circumflex codes|>% +>>> + +\<circumflex iso-8859-2\><<< +|<circumflex codes|>% +>>> + + +\<grave codes\><<< +A{00C0}E{00C8}I{00CC}N{01F8}O{00D2}U{00D9}W{1E80}% +Y{1EF2}a{00E0}e{00E8}i{00EC}n{01F9}o{00F2}u{00F9}% +w{1E81}y{1EF3}\i{00EC}% +>>> + + +\<add grave codes\><<< +{A}{\add:acc{00C0}} + {E}{\add:acc{00C8}} + {I}{\add:acc{00CC}} + {N}{\add:acc{01F8}} + {O}{\add:acc{00D2}} + {U}{\add:acc{00D9}} + {W}{\add:acc{1E80}} + {Y}{\add:acc{1EF2}} + {a}{\add:acc{00E0}} + {e}{\add:acc{00E8}} + {i}{\add:acc{00EC}} + {n}{\add:acc{01F9}} + {o}{\add:acc{00F2}} + {u}{\add:acc{00F9}} + {w}{\add:acc{1E81}} + {y}{\add:acc{1EF3}} + {\i}{\add:acc{00EC}} +>>> + +\<grave iso-8859-1\><<< +|<grave codes|>% +>>> + +\<grave iso-8859-2\><<< +|<grave codes|>% +>>> + + + +\<tilde codes\><<< +A{00C3}N{00D1}O{00D5}a{00E3}n{00F1}o{00F5}I{0128}% +i{0129}U{0168}u{0169}V{1E7C}v{1E7D}E{1EBC}e{1EBD}% +Y{1EF8}y{1EF9}\i{0129}% +>>> + +\<add tilde codes\><<< + {A}{\add:acc{00C3}} + {N}{\add:acc{00D1}} + {O}{\add:acc{00D5}} + {a}{\add:acc{00E3}} + {n}{\add:acc{00F1}} + {o}{\add:acc{00F5}} + {I}{\add:acc{0128}} + {i}{\add:acc{0129}} + {U}{\add:acc{0168}} + {u}{\add:acc{0169}} + {V}{\add:acc{1E7C}} + {v}{\add:acc{1E7D}} + {E}{\add:acc{1EBC}} + {e}{\add:acc{1EBD}} + {Y}{\add:acc{1EF8}} + {y}{\add:acc{1EF9}} + {\i}{\add:acc{0129}} +>>> + +\<tilde iso-8859-1\><<< +|<tilde codes|>% +>>> + + +\<tilde iso-8859-2\><<< +|<tilde codes|>% +>>> + + + + + + + + + + + + + + + + +\<vec iso-8859-1\><<< +>>> + + + + + + + + + + + + + +\<old iso-8859-1 accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} +>>> + +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + + + + + +\<bar iso-8859-1\><<< +>>> + + + + + + + + + + +NOT USED!!!!! + + +\<bar below codes\><<< +B{1E06}b{1E07}% +D{1E0E}d{1E0F}K{1E34}k{1E35}L{1E3A}l{1E3B}N{1E48}n{1E49}% +R{1E5E}r{1E5F}T{1E6E}t{1E6F}Z{1E94}z{1E95}h{1E96}% +>>> + + + + +\<dot below codes\><<< +A{1EA0}a{1Ea1}B{1E04}b{1E05}D{1E0C}d{1E0D}% +E{1EB8}e{1EB9}H{1E24}h{1E25}I{1ECA}i{1ECB}% +K{1E32}k{1E33}L{1E36}l{1E37}M{1E42}m{1E43}% +N{1E46}n{1E47}O{1ECC}o{1ECD}R{1E5A}r{1E5B}% +S{1E62}s{1E63}T{1E6C}t{1E6D}U{1EE4}u{1EE5}% +V{1E7E}v{1E7F}W{1E88}w{1E89}Y{1EF4}y{1EF5}% +>>> + + + + +\<macron codes\><<< +A{0100}a{0101}E{0112}% +e{0113}I{012A}i{012B}O{014C}o{014D}U{016A}u{016B}Y{0232}% +y{0233}G{1E20}g{1E21}% +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{T1 8859-1} +%%%%%%%%%%%%%%%%%%%% + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|<grave iso-8859-1|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|<acute iso-8859-1|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|<circumflex iso-8859-1|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|<tilde iso-8859-1|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter\endcsname + \csname T1\string\"\endcsname{|<diaeresis iso-8859-1|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\r\endcsname}% + \csname T1\string\r\endcsname{|<ring iso-8859-1|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|<cedilla iso-8859-1|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\b\endcsname}% + \csname T1\string\b\endcsname{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname + {|<dot iso-8859-1|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname + {|<breve iso-8859-1|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\vec\expandafter\endcsname + \csname T1\string\vec\endcsname + {|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname + {|<check iso-8859-1|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname + {|<bar iso-8859-1|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{T1 on Empty Base} +%%%%%%%%%%%%%%%%%%%% + +\<latex accents\><<< +\Configure{add accent}{T1:2} + {}{\ht:special{t4ht@+\string&\#x005E;}x} + {}{} +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{OT1 8859-1} +%%%%%%%%%%%%%%%%%%%% + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|<grave iso-8859-1|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|<acute iso-8859-1|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|<circumflex iso-8859-1|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|<tilde iso-8859-1|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname + OT1\string\"\expandafter\endcsname + \csname OT1\string\"\endcsname{|<diaeresis iso-8859-1|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\Configure{accent}\ddot\ddot{|<diaeresis iso-8859-1|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\r\endcsname + \mathring{|<ring iso-8859-1|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + + + + + + +The following are also placed under accents configuration. + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\c\endcsname}% + \csname OT1\string\c\endcsname{|<cedilla iso-8859-1|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\t\endcsname}% + \csname OT1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\H\endcsname}% + \csname OT1\string\H\endcsname{{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\b\endcsname}% + \csname OT1\string\b\endcsname{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +The following originally have been defined to be parameter-less. + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\.\endcsname + \dot{|<dot iso-8859-1|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\u\endcsname + \breve{|<breve iso-8859-1|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\vec\endcsname + \vec{|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\v\endcsname + \check{|<check iso-8859-1|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\=\endcsname + \bar{|<bar iso-8859-1|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + +\<OT1 old iso-8859-1 accents\><<< +|<ot1enc.def unicode|> +>>> + +\<ot1enc.def unicode\><<< +\expandafter\def + \csname OT1\string\l\endcsname{\ht:special{t4ht@+\string&{35}x0142{59}}x} +\expandafter\def + \csname OT1\string\L\endcsname{\ht:special{t4ht@+\string&{35}x0141{59}}x} +>>> + + +\<configure html-speech plain\><<< +\Configure{l}{\ht:special{t4ht@+\string&{35}x0142{59}}x} +\Configure{L}{\ht:special{t4ht@+\string&{35}x0141{59}}x} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{8859-2} +%%%%%%%%%%%%%%%%%%%% + + + +\<optional iso-8859-2 accents\><<< +\def\:temp{charset=iso-8859-2} +\ifx \a:charset\:UnDef + \ifx \A:charset\:temp \let\:temp=\def \fi +\else \ifx \a:charset\:temp \let\:temp=\def \fi +\fi +\ifx \:temp\def + \:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi \fi +>>> + +\<old iso-8859-2 accents\><<< +|<T1 old iso-8859-2 accents|> +>>> + + + + + + + + + + + +% d{239} + + + + + + + + + + + + + + + + + + + + + + + + +\<old iso-8859-2 accents\><<< +\Configure{accent}\`\grave{|<grave iso-8859-2|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{|<acute iso-8859-2|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{|<circumflex iso-8859-2|>{}{}} + {\a:accents{hat}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{|<tilde iso-8859-2|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{|<diaeresis iso-8859-2|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + + + + +The following are also placed under accents configuration. + +\<old iso-8859-2 accents\><<< +\Configure{accent}\c\c{|<cedilla iso-8859-2|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{|<double acute iso-8859-2|>{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\Configure{accent}\b\b{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\Configure{accent}\d\d{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + +The following originally have been defined to be parameter-less. + +\<old iso-8859-2 accents\><<< +\Configure{accent}\.\.{|<dot above iso-8859-2|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\dot\dot{|<dot above iso-8859-2|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{|<breve iso-8859-2|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\v{|<caron iso-8859-2|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\check\check{|<caron iso-8859-2|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + +\<old 8859-2 accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} +>>> + +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + +%%%%%%%%%%%%%%%%%%%% +\section{T1 8859-2} +%%%%%%%%%%%%%%%%%%%% + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|<grave iso-8859-2|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|<acute iso-8859-2|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|<circumflex iso-8859-2|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|<tilde iso-8859-2|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter\endcsname + \csname T1\string\"\endcsname{|<diaeresis iso-8859-2|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\r\endcsname}% + \csname T1\string\r\endcsname{|<ring iso-8859-2|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|<cedilla iso-8859-2|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{|<double acute iso-8859-2|>{}{}} + {\a:accents{Huml}{#1}}{\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\b\endcsname}% + \csname T1\string\b\endcsname{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname + {|<dot iso-8859-2|>{}{}} + {\a:accents{dot}{#1}}{\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname + {|<breve iso-8859-2|>{}{}} + {\a:accents{breve}{#1}}{\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\vec\expandafter\endcsname + \csname T1\string\vec\endcsname + {|<vec iso-8859-2|>{}{}} + {\a:accents{vec}{#1}}{\b:accents{vec}{#1}{#2}} +\expandafter\let\csname T1\string\v\endcsname\:UnDef +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname + {|<caron iso-8859-2|>{}{}} + {\a:accents{check}{#1}}{\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname + {|<bar iso-8859-2|>{}{}} + {\a:accents{bar}{#1}}{\b:accents{bar}{#1}{#2}} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{T1, OT1 8859-7} +%%%%%%%%%%%%%%%%%%%% + + + +\<T1 greek ldf iso-8859-7\><<< +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname + {|<acute iso-8859-7|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +>>> + +\<greek ldf iso-8859-7\><<< +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|<acute iso-8859-7|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +>>> + +\<acute iso-8859-7\><<< +A{\ht:special{t4ht@+\string&{35}x00C1{59}}A}% +E{\ht:special{t4ht@+\string&{35}x00C9{59}}E}% +I{\ht:special{t4ht@+\string&{35}x00CD{59}}I}% +O{\ht:special{t4ht@+\string&{35}x00D3{59}}O}% +U{\ht:special{t4ht@+\string&{35}x00DA{59}}U}% +Y{\ht:special{t4ht@+\string&{35}x00DD{59}}Y}% +a{\ht:special{t4ht@+\string&{35}x00E1{59}}a}% +e{\ht:special{t4ht@+\string&{35}x00E9{59}}e}% +i{\ht:special{t4ht@+\string&{35}x00ED{59}}i}% +\i{\ht:special{t4ht@+\string&{35}x00ED{59}}i}% +o{\ht:special{t4ht@+\string&{35}x00F3{59}}o}% +u{\ht:special{t4ht@+\string&{35}x00FA{59}}u}% +y{\ht:special{t4ht@+\string&{35}x00FD{59}}y}% +{\@use@text@encoding \@curr@enc a}{\ht:special{t4ht@220}a}% +{\@use@text@encoding \@curr@enc e}{\ht:special{t4ht@221}e}% +{\@use@text@encoding \@curr@enc h}{\ht:special{t4ht@222}h}% +{\@use@text@encoding \@curr@enc i}{\ht:special{t4ht@223}i}% +{\@use@text@encoding \@curr@enc o}{\ht:special{t4ht@252}o}% +{\@use@text@encoding \@curr@enc u}{\ht:special{t4ht@253}u}% +{\@use@text@encoding \@curr@enc w}{\ht:special{t4ht@254}w}% +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\section{LaTeX Encodings} +%%%%%%%%%%%%%%%%%%%%%%% + + + +\<32,4 plain,latex\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accents} + {\expandafter\ifx \csname #1-num\endcsname\relax + \ht:special{t4ht@+\string&{35}x#2{59}}x% + \else + \ht:special{t4ht@+\string&\#x#2;}X% + \fi + } + {\Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture} + \expandafter\let\csname ring-num\endcsname=\def +\fi +>>> + +\<32,4 latexPRE-CSS\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{textscaccent} + {\Tg<small class="small-caps">}{\Tg</small>} +\fi +>>> + +\<latex ltoutenc\><<< +\Configure{textcircled} + {\@use@text@encoding \@curr@enc c} + {\leavevmode \special{t4ht@+\string&\#x00A9;}c} + {\@use@text@encoding \@curr@enc \scshape r} + {\leavevmode \special{t4ht@+\string&\#x00AE;}r} + {} +>>> + +\<latex accents\><<< +\:CheckOption{new-accents} \if:Option + |<new accents|> +\else + |<old plain,latex accents|> +\fi +\let\^^_|=\v +>>> + +\<latex accents\><<< +\Configure{@TITLE}{|<env for titles|>} +>>> + +\<env for titles\><<< +\let\"=\:same \let\~=\:same \let\^=\:same +\PictureOff +>>> + + + + +\<0,32,4 latex\><<< +|<latex accents|> +\let\@acci|=\' \let\@accii|=\` \let\@acciii|=\= +>>> + +\<new accents\><<< +\:CheckOption{accent-} \if:Option + \Configure{HAccent}\acute{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\check{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\ddot{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\grave{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture} +\fi +\:CheckOption{mathaccent-} \if:Option + \Configure{HAccent}\"{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\'{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\.{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\={}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\H{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\^{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\`{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\b{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\d{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\t{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\u{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\v{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\~{AOaoNn{}}{\Picture+{}}{\EndPicture} +\fi +>>> + +\<new accents\><<< +\Configure{accent}{*} + {<!--tex4ht:accent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accent-->} +\Configure{mathaccent}{*} + {<!--tex4ht:mathaccent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end mathaccent-->} +\Configure{accented}{*} + {<!--tex4ht:accented\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accented-->} +\Configure{accenting}{*} + {<!--tex4ht:accenting\Hnewline-->} + {<!--tex4ht:end accenting-->} +>>> + + + + + + + +\<0,32,4 plain\><<< +\:CheckOption{new-accents} \if:Option + |<new plain accents|> +\else + |<old plain accents|> + \Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\Picture+{ \:Picture:{#1}}#2{#3}\EndPicture} +\fi +\let\^^_|=\v +>>> + + + +\<new plain accents\><<< +\:CheckOption{accent-} \if:Option + \Configure{HAccent}\acute{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\check{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\ddot{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\grave{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture} +\fi +\:CheckOption{mathaccent-} \if:Option + \Configure{HAccent}\"{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\'{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\.{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\={}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\H{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\^{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\`{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\b{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\d{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\t{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\u{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\v{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\~{AOaoNn{}}{\Picture+{}}{\EndPicture} +\fi +>>> + +\<new plain accents\><<< +\Configure{accent}{*} + {<!--tex4ht:accent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accent-->} +\Configure{mathaccent}{*} + {<!--tex4ht:mathaccent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end mathaccent-->} +\Configure{accented}{*} + {<!--tex4ht:accented\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accented-->} +\Configure{accenting}{*} + {<!--tex4ht:accenting\Hnewline-->} + {<!--tex4ht:end accenting-->} +>>> + + + + + +\<old plain accents\><<< +\Configure{accent}\`\grave{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + +The following are also placed under accents configuration. + +\<old plain accents\><<< +\Configure{accent}\c\c{C{C}c{c}{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\Configure{accent}\b\b{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\Configure{accent}\d\d{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + +The following originally have been defined to be parameter-less. + +\<old plain accents\><<< +\Configure{accent}\.\.{{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\dot\dot{{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{{}{}}{\a:accents{breve}{#1}} + {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}}{\a:accents{vec}{#1}} + {\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\v{{}{}}{\a:accents{check}{#1}} + {\b:accents{check}{#1}{#2}} +\Configure{accent}\check\check{{}{}}{\a:accents{check}{#1}} + {\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> +% \= macron + +\<old plain accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} +>>> +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + +%%%%%%%%%%%%%%%%%%% +\section{AMS Encodings} +%%%%%%%%%%%%%%%%%%% + + + + +\<ams 2000 art + book + proc\><<< +\def\:tempc#1#2#3#4#5{% + \expandafter\ifx \csname #1mathaccentV\endcsname\relax + \o:mathaccentV:{#1}{#2}{#3}{#4}{#5}% + \else \csname #1mathaccentV\endcsname{#5}\fi} +\HLet\mathaccentV\:tempc +\:CheckOption{new-accents} \if:Option \else + |<ams 2000 iso-8859-1 accents|> +\fi +\def\:temp{charset=iso-8859-2} +\ifx \a:charset\:UnDef + \ifx \A:charset\:temp \let\:temp=\def \fi +\else \ifx \a:charset\:temp \let\:temp=\def \fi +\fi +\ifx \:temp\def + \:CheckOption{new-accents} \if:Option \else + |<old ams 2000 iso-8859-2 accents|> +\fi \fi +>>> + + +\<ams 2000 iso-8859-1 accents\><<< +\HRestore\grave +\expandafter\let\csname gravemathaccentV\endcsname=\grave +\expandafter\let\csname GRAVEmathaccentV\endcsname=\grave +\expand:after{\Configure{accent}}\csname + gravemathaccentV\expandafter\endcsname + \csname GRAVEmathaccentV\endcsname{|<grave iso-8859-1|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\HRestore\acute +\expandafter\let\csname acutemathaccentV\endcsname=\acute +\expandafter\let\csname ACUTEmathaccentV\endcsname=\acute +\expand:after{\Configure{accent}}\csname + acutemathaccentV\expandafter\endcsname + \csname ACUTEmathaccentV\endcsname{|<acute iso-8859-1|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\HRestore\hat +\expandafter\let\csname hatmathaccentV\endcsname=\hat +\expandafter\let\csname HATmathaccentV\endcsname=\hat +\expand:after{\Configure{accent}}\csname + hatmathaccentV\expandafter\endcsname + \csname HATmathaccentV\endcsname{|<hat iso-8859-1|>{}{}} + {\a:accents{hat}{#1}} {\b:accents{hat}{#1}{#2}} +\HRestore\tilde +\expandafter\let\csname tildemathaccentV\endcsname=\tilde +\expandafter\let\csname TILDEmathaccentV\endcsname=\tilde +\expand:after{\Configure{accent}}\csname + tildemathaccentV\expandafter\endcsname + \csname TILDEmathaccentV\endcsname{|<tilde iso-8859-1|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\HRestore\ddot +\expandafter\let\csname DDOTmathaccentV\endcsname=\ddot +\expand:after{\Configure{accent}}\csname + DDOTmathaccentV\expandafter\endcsname + \csname DDOTmathaccentV\endcsname{|<ddot iso-8859-1|>{}{}} + {\a:accents{ddot}{#1}} {\b:accents{ddot}{#1}{#2}} +\expandafter\let\csname ddotmathaccentV\endcsname=\ddot +\expand:after{\Configure{accent}}\csname + ddotmathaccentV\expandafter\endcsname + \csname ddotmathaccentv\endcsname{|<ddot iso-8859-1|>{}{}} + {\a:accents{ddot}{#1}} {\b:accents{ddot}{#1}{#2}} +\HRestore\check +\expandafter\let\csname checkmathaccentV\endcsname=\check +\expandafter\let\csname CHECKmathaccentV\endcsname=\check +\expand:after{\Configure{accent}}\csname + checkmathaccentV\expandafter\endcsname + \csname CHECKmathaccentV\endcsname{|<check iso-8859-1|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\HRestore\dot +\expandafter\let\csname dotmathaccentV\endcsname=\dot +\expandafter\let\csname DOTmathaccentV\endcsname=\dot +\expand:after{\Configure{accent}}\csname + dotmathaccentV\expandafter\endcsname + \csname DOTmathaccentV\endcsname{|<dot iso-8859-1|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\HRestore\breve +\expandafter\let\csname brevemathaccentV\endcsname=\breve +\expandafter\let\csname BREVEmathaccentV\endcsname=\breve +\expand:after{\Configure{accent}}\csname + brevemathaccentV\expandafter\endcsname + \csname BREVEmathaccentV\endcsname{|<breve iso-8859-1|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\HRestore\bar +\expandafter\let\csname barmathaccentV\endcsname=\bar +\expandafter\let\csname BARmathaccentV\endcsname=\bar +\expand:after{\Configure{accent}}\csname + barmathaccentV\expandafter\endcsname + \csname BARmathaccentV\endcsname{|<bar iso-8859-1|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +\HRestore\vec +\expandafter\let\csname vecmathaccentV\endcsname=\vec +\expandafter\let\csname VECmathaccentV\endcsname=\vec +\expand:after{\Configure{accent}}\csname + vecmathaccentV\expandafter\endcsname + \csname VECmathaccentV\endcsname{|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +>>> + +\<old ams 2000 iso-8859-2 accents\><<< +\HRestore\acute +\expandafter\let\csname acutemathaccentV\endcsname=\acute +\expandafter\let\csname ACUTEmathaccentV\endcsname=\acute +\expand:after{\Configure{accent}}\csname + acutemathaccentV\expandafter\endcsname + \csname ACUTEmathaccentV\endcsname{|<acute iso-8859-2|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +>>> + +The upper case is needed for cases like + +\begin{verbatim} +\documentclass[12pt]{amsart} +\begin{document} +\title{BUDOWA J''ADER ATOM{O}W PIERWIASTK{O}W} +\author{Rafa''l ``Raba--P{o}''lg''l{o}wek\'o$\acute{o}$} +\def\datename{Wersja z} +\date{\today} +\maketitle +\end{document} +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{ot4enc} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech ot4enc\><<< +\def\add:acc#1{\ht:special{t4ht@+\string&\#x#1;}x} +\Configure{add accent}{OT4:18} %\` + |<add grave codes|> {}{} +\Configure{add accent}{OT4:127} %\" + |<add diaeresis codes|> {}{} +\Configure{add accent}{OT4:19} %\' + |<add acute codes|> {}{} +\Configure{add accent}{OT4:95} %\. + |<add dot above codes|> {}{} +\Configure{add accent}{OT4:22} %\= + {}{} +\Configure{add accent}{OT4:94} %\^ + |<add circumflex codes|> {}{} +\Configure{add accent}{OT4:126} %\~ + |<add tilde codes|> {}{} +\Configure{add accent}{OT4:125} %\H + |<add double acute code|> {}{} +\Configure{add accent}{OT4:21} %\u + |<add breve codes|> {}{} +\Configure{add accent}{OT4:20} %\v + |<add caron codes|> {}{} +\Configure{add accent}{OT4:23} %\r + |<add ring codes|> {}{} +\Configure{add accent}{OT4:24} %\c + |<add cedilla codes|> {}{} +>>> + +%%%%%%%%%%%%%%%%%% +\section{pd1enc} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech pd1enc\><<< +\def\add:acc#1{\ht:special{t4ht@+\string&\#x#1;}x} +\Configure{add accent}{PD1:96} %\` + |<add grave codes|> {}{} +\Configure{add accent}{PD1:168} %\" + |<add diaeresis codes|> {}{} +\Configure{add accent}{PD1:180} %\' + |<add acute codes|> {}{} +\Configure{add accent}{PD1:27} %\. + |<add dot above codes|> {}{} +\Configure{add accent}{PD1:26} %\^ + |<add circumflex codes|> {}{} +\Configure{add accent}{PD1:31} %\~ + |<add tilde codes|> {}{} +\Configure{add accent}{PD1:24} %\u + |<add breve codes|> {}{} +\Configure{add accent}{PD1:20} %\v + |<add caron codes|> {}{} +\Configure{add accent}{PD1:21} %\r + |<add ring codes|> {}{} +\Configure{add accent}{PD1:184} %\c + |<add cedilla codes|> {}{} +>>> + +% \Configure{add accent}{PD1:22} %\= {}{} + +% \Configure{add accent}{PD1:125} %\H +% |<add double acute code|> {}{} + + +%%%%%%%%%%%%%%%%%%% +\section{Languages} +%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%% +\subsection{Babel} +%%%%%%%%%%%%%%%%%%% + + +\<babel.def\><<< +|<quotedblbase|> +>>> + + +\<babel macros\><<< +|<babel.def|> +>>> + + + + +\<config tex4ht\><<< +\NewConfigure{charset}[1]{\def\a:charset{#1}} +\def\:temp#1charset=#2,#3|<par del|>{% + \if !#2!% + \Log:Note{for alternative charset, use + the command line option `charset=...'} + \else \Configure{charset}{charset=#2}\fi} +\expandafter\:temp\Preamble ,charset=,|<par del|> +>>> + + + + +\<configure html-speech CJK\><<< +\def\A:charset{charset=utf-8} +|<simplified chinese (mainland)|> +|<traditional chinese (taiwanese)|> +|<japanese charset|> +|<korean charset|> +\Configure{CJKbold}{\HCode{<b>}}{\HCode{</b>}} +>>> + + + +The following are from CJK.enc +\begin{verbatim} +% CEF: CEFX C80 +% CEFY C81 +\end{verbatim} + + +\<traditional chinese (taiwanese)\><<< +\Configure{CJK.enc}{Bg5}{\def\A:charset{charset=big5}} +\Configure{CJK.enc}{Bg5pmC}{\def\A:charset{charset=big5}} +\Configure{CJK.enc}{Bg5+}{\def\A:charset{charset=big5}} +>>> + + +GB2312 (1980) has been superceded by GBK (circa 1993?) and GB18030 (2000). + +\<simplified chinese (mainland)\><<< +\Configure{CJK.enc}{GBpmC}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{GBK}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{GBt}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{GBtpmC}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{CNS1-7}{\def\A:charset{charset=gbk}} +>>> + + +\<japanese charset\><<< +\Configure{CJK.enc}{JIS}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JISpmC}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JISdnp}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JISwn}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JIS2}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JIS2dnp}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{SJIS}{\def\A:charset{charset=iso-2022-jp}} +>>> + +\<korean charset\><<< +\Configure{CJK.enc}{KS}{\def\A:charset{charset=iso-2022-kr}} +\Configure{CJK.enc}{KSpmC}{\def\A:charset{charset=iso-2022-kr}} +\Configure{CJK.enc}{KSHL}{\def\A:charset{charset=iso-2022-kr}} +>>> + + + + + +\<configure html-speech hebtex\><<< +\def\A:charset{charset=iso-8859-8} +\Configure{arabtext} + {\ifhmode \let\end:arabtex=\empty \IgnorePar + \else + \HCode{<div align="right"><table class="arabtex"><tr><td\Hnewline + style="white-space:nowrap;" align="right">}% + \def\end:arabtex{\HCode{</td></tr></table></div>}}% + \fi + \global\let\start:arab=\relax} + {\end:arabtex} + {\ifx \start:arab\relax \global\let\start:arab=\empty + \else \Tg<br />\fi} + {} +\:CheckOption{nikud} \if:Option + \Configure{chireq}{\char5 } + \Configure{cholem}{\char3 } + \Configure{chpatach}{\char1\char7 } + \Configure{chqames}{\char2\char7 } + \Configure{chsegol}{\char3\char7 } + \Configure{dagesh}{\char46 } + \Configure{meteg}{\char44 } + \Configure{patachf}{\char1 } + \Configure{patach}{\char1 } + \Configure{qameschat}{\char6\char7 } + \Configure{qames}{\char6 } + \Configure{qibbus}{\HCode{<!--qibbus-->}} + \Configure{rdot}{\HCode{<!--rdot-->}} + \Configure{segol}{\char3 } + \Configure{sere}{\char9 } + \Configure{shindot}{\HCode{<!--shindot-->}} + \Configure{shwa}{\char7 } + \Configure{sindot}{\HCode{<!--sindot-->}} +\else + \Log:Note{for hebrew vowels, use + the command line option `nikud'} + \Configure{chireq}{\HCode{<!--chireq-->}} + \Configure{cholem}{\HCode{<!--cholem-->}} + \Configure{chpatach}{\HCode{<!--chpatach-->}} + \Configure{chqames}{\HCode{<!--chqames-->}} + \Configure{chsegol}{\HCode{<!--chsegol-->}} + \Configure{dagesh}{\HCode{<!--dagesh-->}} + \Configure{meteg}{\HCode{<!--meteg-->}} + \Configure{patachf}{\HCode{<!--patachf-->}} + \Configure{patach}{\HCode{<!--patach-->}} + \Configure{qameschat}{\HCode{<!--qameschat-->}} + \Configure{qames}{\HCode{<!--qames-->}} + \Configure{qibbus}{\HCode{<!--qibbus-->}} + \Configure{rdot}{\HCode{<!--rdot-->}} + \Configure{segol}{\HCode{<!--segol-->}} + \Configure{sere}{\HCode{<!--sere-->}} + \Configure{shindot}{\HCode{<!--shindot-->}} + \Configure{shwa}{\HCode{<!--shwa-->}} + \Configure{sindot}{\HCode{<!--sindot-->}} +\fi +>>> + + +\<configure html-speech abidir\><<< +\:CheckOption{pic-RL}\if:Option + \Configure{RL} + {\ifvmode \IgnorePar\EndP \def\RL:tag{div}\else \def\RL:tag{span}\fi + \HCode{<\RL:tag\space class="pic-RL">}\Picture*{}} + {\EndPicture\HCode{</\RL:tag>}} + {} {} {} {} + \Css{div.pic-RL{text-align:right;}} +\else + \Log:Note{for pictorial RL, use + the command line option `pic-RL'} + \Configure{RL} + {\HCode{<span class="RL">}} {\HCode{</span>}} + {} {\HCode{<br />}} {} {} + +\fi +>>> + +% \:CheckOption{RL2LR}\if:Option +% \Configure{RL} +% {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="RL" +% dir="rtl" >}} +% {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +% {} {} {} {} +% \else +% \Configure{RL} +% {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="RL" +% dir="rtl" >}} +% {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +% {} {\HCode{<br />}} {} {} +% \fi + + +\<configure html-speech-uni babel\><<< +\def\A:charset{charset=utf-8}% +>>> + + +\<configure html-speech-uni austrian\><<< +\def\A:charset{charset=utf-8} +>>> + +\<configure html-speech-uni catalan\><<< +\def\A:charset{charset=utf-8} +>>> + +\<configure html-speech-uni croatian\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni czech\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni danish\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni dutch\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni english\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni esperant\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni estonian\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni finnish\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni francais\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni galician\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni germanb\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni greek\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni hebrew\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni ngermanb\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni norsk\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni polish\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni polski\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni portuges\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni romanian\><<< +\def\A:charset{charset=utf-8} +>>> + + +\<configure html-speech-uni scottish\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni slovak\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni slovene\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni spanish\><<< +\def\A:charset{charset=utf-8} +|<spanish configs|> +>>> +\<configure html-speech-uni swedish\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni turkish\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni ukraineb\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni usorbian\><<< +\def\A:charset{charset=utf-8} +>>> +\<configure html-speech-uni welsh\><<< +\def\A:charset{charset=utf-8} +>>> + +\<configure html-speech-uni CJK\><<< +\def\A:charset{charset=utf-8} +\Configure{CJKbold}{\HCode{<b>}}{\HCode{</b>}} +>>> + +\<configure html-speech-uni hebtex\><<< +\def\A:charset{charset=utf-8} +>>> + +\<configure html-speech-uni exerquiz\><<< +\def\A:charset{charset=utf-8} +>>> + +\<configure html-speech romanian\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{Umlaut} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech german\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\grmn@OTumlaut + \grmn@OTumlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + + +\<configure html-speech ngerman\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\grmn@OTumlaut + \grmn@OTumlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + +\<babel.def\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\lower@umlaut\lower@umlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + + + +\<u mlaut\><<< +\Configure{accent}\bbl@umlauta + \bbl@umlaute{|<diaeresis iso-8859-1|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{Russian and Cyrillic} +%%%%%%%%%%%%%%%%%%% + + + +\<configure html-speech t2benc\><<< +\def\:temp{charset=koi8-r}\ifx \A:charset\:temp \else + \def\A:charset{charset=iso-8859-5} +\fi +>>> + + + +\<configure html-speech koi8-r\><<< +\def\A:charset{charset=koi8-r} +>>> + + + +\<set babel charset\><<< +\def\:temp{charset=koi8-r}\ifx \A:charset\:temp \else + \a:temp{russian}{iso-8859-5}{ru} +\fi +>>> + +\<configure html-speech-uni russianb\><<< +\NewConfigure{dtd-lang}{1} \Configure{dtd-lang}{RU} +\def\A:charset{charset=utf-8} + +\ifx \@begindocumenthook\:UnDef\else + \:CheckOption{new-accents} \if:Option \else + |<russian|> +\fi\fi +>>> + + + +\<configure html-speech russianb\><<< +\NewConfigure{dtd-lang}{1} \Configure{dtd-lang}{RU} +\def\:temp{charset=koi8-r}\ifx \A:charset\:temp \else + \def\A:charset{charset=iso-8859-5} +\fi +\ifx \@begindocumenthook\:UnDef\else + \:CheckOption{new-accents} \if:Option \else +% \def\:temp{russian}\ifx \languagename\:temp + |<russian|> +% \fi +\fi\fi +>>> + + +We had also \verb'\append:def\@begindocumenthook{\HLet\"|=\ddot}' in +babel. It gets russian and brazil into infinite loop. Why it was +inserted. + +ERROR: The non ascii characters might translate wrongly in the 4ht +file (e.g., \verb'^^e5' for 00EB below). They also not show in the +documentation since a cmtt10 font is in use and it doesn't covet those +symbols. The problem will probably vanish once the new accent approach +will kick in. + + +\<russian\><<< +\Configure{accent}\"\ddot{|<diaeresis codes|>å{00EB}% + {\@use@text@encoding \@curr@enc A}{00C4}% + {\@use@text@encoding \@curr@enc E}{00CB}% + {\@use@text@encoding \@curr@enc I}{00CF}% + {\@use@text@encoding \@curr@enc O}{00D6}% + {\@use@text@encoding \@curr@enc U}{00DC}% + {\@use@text@encoding \@curr@enc Y}{0178}% + {\@use@text@encoding \@curr@enc a}{00E4}% + {\@use@text@encoding \@curr@enc e}{00EB}% + {\@use@text@encoding \@curr@enc i}{00EF}% + {\@use@text@encoding \@curr@enc \i}{00EF}% + {\@use@text@encoding \@curr@enc o}{00F6}% + {\@use@text@encoding \@curr@enc u}{00FC}% + {\@use@text@encoding \@curr@enc y}{00FF}% + {\@use@text@encoding \@curr@enc å}{00EB}% + {}{34}} + {\a:accents{uml}{#1}} + {\def\:temp{>}\def\:tempa{#2}\ifx \:temp\:tempa\HCode{»}% + \else \def\:temp{<}\ifx \:temp\:tempa\HCode{«}% + \else \b:accents{uml}{#1}{#2}\fi\fi} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Features} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Margin Comments} +%%%%%%%%%%%%%%%%%% + + +We need to consider cases like + \verb+\marginpar{ Consider: \par *one \par *two}+ +for margin pars. + + + + +%%%%%%%%%%%%%%%%%% +\section{Pictures in Margins} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech picins\><<< +\Configure{parpic} + {\IgnorePar\EndP\HCode{<div class="picins-\parpicOpt">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +>>> + +\<configure html-speech picins\><<< +\Css{.picins-dr, .picins-rd { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border: 1px dashed black; + }} +\Css{.picins-dl, .picins-ld, .picins-d { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border: 1px dashed black; + }} +\Css{.picins-fr, .picins-rf { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border: 1px dashed black; + }} +\Css{.picins-fl, .picins-lf, .picins-f { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border: 1px solid black; + }} +\Css{.picins-sr, .picins-rs { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 4px solid black; + border-bottom: 4px solid black; + }} +\Css{.picins-sl, .picins-ls, .picins-s { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 4px solid black; + border-bottom: 4px solid black; + }} +\Css{.picins-xr, .picins-rx { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 1px double black; + border-bottom: 1px double black; + }} +\Css{.picins-xl, .picins-lx, .picins-x { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 1px double black; + border-bottom: 1px double black; + }} +\Css{.picins-r { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + }} +\Css{.picins-l, .picins- { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + }} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Style Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\subsection{MeX} +%%%%%%%%%%%%%%%%%% + + +\<configure html-speech mex\><<< +\def\MeX{\HCode{<span class="MeX">}MeX\HCode{</span>}} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{eplain} +%%%%%%%%%%%%%%%%%% + + +\<configure html-speech eplain\><<< +\Configure{columns} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="columns"><!--cols=\NumColumns-->}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.columns { margin-left:2em; margin-right:2em; }} +>>> + + +\<configure html-speech eplain\><<< +\Configure{bibliography} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="bibliography">}\par} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +>>> + + + +\<configure html-speech eplain\><<< +\Configure{makecolumns} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="makecolumns"><tr><td>}% + \gdef\make:col{\gdef\make:col{\HCode{<br />}}}} + {\HCode{</td></tr></table>}} + {\HCode{</td><td>}% + \gdef\make:col{\gdef\make:col{\HCode{<br />}}}} + {\make:col} + {} +\Css{table.makecolumns{width:100\%;}} +\Css{table.makecolumns td {vertical-align:top;}} +>>> + + +\<configure html-speech eplain\><<< +\Configure{flushleft} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="flushleft">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}} + {\HCode{<br />}} +\Configure{flushright} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="flushright">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}} + {\HCode{<br />}} +\Configure{center} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="center">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}} + {\HCode{<br />}} +\Css{div.center {text-align:center;}} +\Css{div.flushright {text-align:right;}} +\Css{div.flushleft {text-align:left;}} +>>> + + + +\<configure html-speech eplain\><<< +|<eplain dates|> +\Configure{numberedlist} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<ol>}\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \end:itm \HCode{</ol>}} + {\end:itm \def\end:itm{\EndP\Tg</li>}\HCode{<li>}\special{t4ht@[}\IgnorePar} + {\special{t4ht@]}} +\Configure{orderedlist} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<ol>}\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \end:itm \HCode{</ol>}} + {\end:itm \def\end:itm{\EndP\Tg</li>}\HCode{<li>}\special{t4ht@[}\IgnorePar} + {\special{t4ht@]}} +\Configure{unorderedlist} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<ul>}\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \end:itm \HCode{</ul>}} + {\ifvmode \IgnorePar\fi \EndP + \end:itm \def\end:itm{\EndP\Tg</li>}% + \HCode{<li>}\special{t4ht@[}\IgnorePar} + {\special{t4ht@]}} +>>> + +\<configure html-speech eplain\><<< +\Configure{listing} + {\IgnorePar\EndP \HCode{<div class="listing">}\par + \Configure{HtmlPar} + {\EndP} + {\EndP} + {~\HCode{<br />}} + {~\HCode{<br />}} + } + {\HCode{</div>}\par} +>>> + + +\<configure html-speech-math eplain\><<< +\Configure{PicDisplay} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{<div class="\if@leftdisplays leftdisplay\else centereddisplay\fi">}} + {\HCode{</div>}} {} {class="\MathPar math-display" } +\Css{div.lsftdisplay {text-align:left;}} +\Css{div.centereddisplay {text-align:center;}} +>>> + + +\<configure html-speech-math eplain\><<< +\Configure{contents} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="contents">}} + {\HCode{</div>}} +\Configure{tocchapterentry} + {\HCode{<span class="tocchapterentry">}} + {\HCode{</span><span class="toc-num">}} + {\HCode{</span>}} +\Configure{tocsectionentry} + {\HCode{<span class="tocsectionentry">}} + {\HCode{</span><span class="toc-num">}} + {\HCode{</span>}} +\Configure{tocsubsectionentry} + {\HCode{<span class="tocsubsectionentry">}} + {\HCode{</span><span class="toc-num">}} + {\HCode{</span>}} +\Css{span.tocchapterentry{width:30em}} +\Css{span.tocsectionentry{width:30em; padding-left:1.5em}} +\Css{span.tocsectionentry{width:30em; padding-left:3em}} +\Css{span.toc-num{width:6em; padding-left:2em}} +>>> + + + +\<eplain dates\><<< +\Configure{monthname} + {\HCode{<span class="month">}} + {\HCode{</span>}} +\Configure{timestring} + {\HCode{<span class="time">}} + {\HCode{</span>}} +\Configure{timestamp} + {\HCode{<span class="timestamp">}} + {\HCode{</span>}} +\Configure{today} + {\HCode{<span class="today">}} + {\HCode{</span>}} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{Drawing Utilitis} +%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Diagrams} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech epsf\><<< +\Configure{epsfsetgraph} + {\Picture+[\PicName]{}} + {\EndPicture} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Diagrams} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech diagrams\><<< +\ConfigureEnv{diagram} + {\ifvmode \IgnorePar \EndP + \Tg<div class="diagrams">\def\End:Diagrams{\Tg</div>}% + \else \let\End:Diagrams\empty + \fi } + {\End:Diagrams} + {}{} +\Configure{diagram} + {\Picture*{}$} {$\EndPicture} +\Css{.diagrams {text-align: center;}} +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{dratex} +%%%%%%%%%%%%%%%%%%% + + \<configure html-speech dratex\><<< +\Css{div.Draw{text-align:center}} +>>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{pgf} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech pgf\><<< +\ConfigureEnv{pgfpicture} + {\hbox\bgroup\Picture+[picture]{}} + {\EndPicture\egroup} + {}{} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{pgf} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech overpic\><<< +\ConfigureEnv{overpic} + {\Picture*[pic]{}} + {\EndPicture} + {}{} +>>> + + + + +%%%%%%%%%%%%%% +\subsection{psfig} +%%%%%%%%%%%%%% + +\<configure html-speech psfig\><<< +|<0,32,4 psfig|> +>>> + +\<0,32,4 psfig\><<< +\Configure{psfig} {\Picture+[psfig]{}}{\EndPicture} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{graphics} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech graphics\><<< +\:CheckOption{graphics-} \if:Option + \Configure{graphics} + {\bgroup + \let\E:IMG=\e:IMG \let\e:IMG=\empty + \Picture+[\a:GraphicsAlt]{ class="graphics"}} + {\EndPicture + \E:IMG\HCode{<!--tex4ht:graphics + \Hnewline name="\PictureFile" src="\Gin@base\Gin@ext" + \Hnewline -->}% + \egroup} +\else + |<graphics quality|> + \Configure{graphics} + {\bgroup + \let\E:IMG=\e:IMG \let\e:IMG=\empty + \Picture+[\a:GraphicsAlt]{ class="graphics"}} + {\EndPicture \ifx\noBoundingBox\UnDefined + |<pixels graphics width/height|>\fi + \E:IMG\HCode{<!--tex4ht:graphics + \Hnewline name="\PictureFile" src="\Gin@base\Gin@ext" + \Hnewline -->}% + \egroup} +\fi +\Css{.figure img.graphics {margin-left:10\%;}} +\Configure{graphics*} + {gif} + {\Picture[\a:GraphicsAlt]{\Gin@base.gif |<graphics dim|>}} +\Configure{graphics*} + {png} + {\Picture[\a:GraphicsAlt]{\Gin@base.png |<graphics dim|>}} +\Configure{graphics*} + {jpg} + {\Picture[\a:GraphicsAlt]{\Gin@base.jpg |<graphics dim|>}} +\Configure{graphics*} + {jpeg} + {\Picture[\a:GraphicsAlt]{\Gin@base.jpeg |<graphics dim|>}} +\NewConfigure{GraphicsAlt}{1} +\Configure{GraphicsAlt}{PIC} +|<includegraphics dim|> +>>> + +\<graphics quality\><<< +\def\:temp#1graphics-#2,#3|<par del|>{\def\gr:density{#2}} +\expandafter\:temp\Preamble,graphics-,|<par del|> +\ifx \gr:density\empty + \Log:Note{if included graphics are + of degraded quality, try the command line options + `graphics-num' or `graphics-'. The `num' should provide + the density of pixels in the bitmaps (e.g., 110). + } +\else + \def\int:pt#1.#2|<par del|>{#1} +\fi +>>> + + + +\<graphics dim\><<< +\csname a:Gin-dim\endcsname +>>> + + +\<includegraphics dim\><<< +\NewConfigure{Gin-dim}{1} +\:CheckOption{Gin-dim} \if:Option + \Configure{Gin-dim} + {\ifx\noBoundingBox\UnDefined + |<graphics width/height|>% + \else + |<graphicx width/height|>% + \fi + class="includegraphics" + } +\else \:CheckOption{Gin-dim+} \if:Option + \Configure{Gin-dim} + {\ifx \Gin:ewidth\Gin@exclamation + \ifx \Gin:eheight\Gin@exclamation + \ifx\noBoundingBox\UnDefined + |<graphics width/height|>% + \fi + \else + height="\Gin:eheight" + \fi + \else + width="\Gin:ewidth" + \ifx \Gin:eheight\Gin@exclamation \else + height="\Gin:eheight" + \fi + \fi + class="includegraphics" + } +\else + \Log:Note{for key dimensions try the option + `Gin-dim'; for key dimensions when bounding box is unavailable + try `Gin-dim+'; neither is recommended} + \Configure{Gin-dim} + {\ifx\noBoundingBox\UnDefined + |<graphics width/height|>% + \fi + } +\fi \fi +>>> + +\<pixels graphics width/height\><<< +\ifx \gr:density\empty + \HCode{ + width="\the\Gin@req@width" + height="\the\Gin@req@height" + }% +\else + \bgroup + \divide\Gin@req@width by 72 + \multiply\Gin@req@width by \gr:density \relax + \divide\Gin@req@height by 72 + \multiply\Gin@req@height by \gr:density \relax + \HCode{ + width="\expandafter\int:pt\the\Gin@req@width|<par del|>" + height="\expandafter\int:pt\the\Gin@req@height|<par del|>" + }% + \egroup +\fi +>>> + + +\<graphics width/height\><<< +width="\the\Gin@req@width" +height="\the\Gin@req@height" +>>> + +\<graphicx width/height\><<< +\ifx \Gin:ewidth\Gin@exclamation \else + width="\Gin:ewidth" +\fi +\ifx \Gin:eheight\Gin@exclamation \else + height="\Gin:eheight" +\fi +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{xy} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech xy\><<< +|<32,4 xy|> +>>> + +\<32,4 xy\><<< +\Configure{xypic} + {\Picture*{}} {\EndPicture} +>>> + + + +%%%%%%%%%%%%%%%%%% +\subsection{pstricks} +%%%%%%%%%%%%%%%%%% + + +\<configure html-speech pst-all\><<< +\ConfigureEnv{psmatrix} + {\Picture*{}} + {\EndPicture} + {}{} +>>> + +\<configure html-speech pstricks\><<< +\Configure{pspicture} + {\ifvmode \ifinner\else \vfill\break\fi + \leavevmode\fi + \bgroup + \ifdim \pst@dimh<\z@ \pst@dimh=-\pst@dimh \fi + \HCode{<!--width="\ifdim \wd\pst@hbox=\z@ \the\pst@dimg + \else\the\wd\pst@hbox\fi" + height="\ifdim \ht\pst@hbox=\z@ \the\pst@dimh + \else \the\ht\pst@hbox\fi"-->}% + \egroup + \Picture+[\a:pspictureAlt]{ class="pspicture"}} + {\EndPicture} +\NewConfigure{pspictureAlt}{1} +\Configure{pspictureAlt}{PIC} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{pb-diagram} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech pb-diagram\><<< +\ConfigureEnv{diagram} + {\Picture*{ class="pb-diagram"}$} {$\EndPicture} {}{} +\Css{.pb-diagram {align:center}} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{pictex} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech pictex\><<< +\Configure{pictex} + {\:xhtml{\IgnorePar\EndP}\HCode{<div + class="pictex">}}{\HCode{</div>}}{+[PICT]} +\Css{div.pictex {text-align:center;}} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\section{Slides} +%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%% +\subsection{Beamer} +%%%%%%%%%%%%%%%%%%% + + + + +\<configure html-speech beamer\><<< +|<beamer slides|> +|<beamer environments|> +\ifx \beamer@version\:UnDef + |<beamer toc 0.8 and 0.3|> +\fi +>>> + +\<beamer environments\><<< +\let\block:Name=\empty +\ConfigureEnv{block} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{block}\fi + \HCode{<div class="\block:Name">}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +\ConfigureEnv{alertblock} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{alertblock}\fi + \HCode{<div class="\block:Name">}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +\ConfigureEnv{Problem} + {\def\block:Name{Problem}} {} {} {} +\ConfigureEnv{Loesung} + {\def\block:Name{Loesung}} {} {} {} +\ConfigureEnv{Definition} + {\def\block:Name{Definition}} {} {} {} +\ConfigureEnv{Satz} + {\def\block:Name{Satz}} {} {} {} +\ConfigureEnv{Beweis} + {\def\block:Name{Beweis}} {} {} {} +\ConfigureEnv{Folgerung} + {\def\block:Name{Folgerung}} {} {} {} +\ConfigureEnv{Lemma} + {\def\block:Name{Lemma}} {} {} {} +\ConfigureEnv{Fakt} + {\def\block:Name{Fakt}} {} {} {} +\ConfigureEnv{Theorem} + {\def\block:Name{Theorem}} {} {} {} +\ConfigureEnv{Proof} + {\def\block:Name{Proof}} {} {} {} +\ConfigureEnv{Corollary} + {\def\block:Name{Corollary}} {} {} {} +\ConfigureEnv{Fact} + {\def\block:Name{Fact}} {} {} {} +\ConfigureEnv{definition} + {\def\block:Name{definition}} {} {} {} +\ConfigureEnv{definitions} + {\def\block:Name{definitions}} {} {} {} +\ConfigureEnv{theorem} + {\def\block:Name{theorem}} {} {} {} +\ConfigureEnv{proof} + {\def\block:Name{proof}} {} {} {} +\ConfigureEnv{corollary} + {\def\block:Name{corollary}} {} {} {} +\ConfigureEnv{fact} + {\def\block:Name{fact}} {} {} {} +>>> + +\<beamer toc 0.8 and 0.3\><<< +\ConfigureEnv{exampleblock} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{exampleblock}\fi + \HCode{<div class="\block:Name">}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +>>> + + +\<beamer environments\><<< +\ConfigureEnv{Beispiel} + {\def\block:Name{Beispiel}} {} {} {} +\ConfigureEnv{Beispiele} + {\def\block:Name{Beispiele}} {} {} {} +\ConfigureEnv{Example} + {\def\block:Name{Example}} {} {} {} +\ConfigureEnv{Examples} + {\def\block:Name{Examples}} {} {} {} +\ConfigureEnv{example} + {\def\block:Name{example}} {} {} {} +\ConfigureEnv{examples} + {\def\block:Name{examples}} {} {} {} +\Css{div.Example, div.examplblock, div.Beispiele, + div.Beispiel, div.Examples, div.example, div.examples{color:green;}} +>>> + +\<beamer slides\><<< +\:CheckOption{1} \if:Option + \ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP + \ifnum \Slide:cnt>0 \HPage{}\fi + \ifvmode \IgnorePar\fi \EndP + |<beamer header|>% + \HCode{<div class="slide">}\par + } + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}\ifnum \Slide:cnt>1\relax \EndHPage{}\fi} + {} {} + \Css{div.slide {border-top:solid black 0.4pt;}} +\else + \Log:Note{for pagination of slides, + use the command line option `1'} + \ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<hr class="hidden" />}% + |<beamer header|>% + \HCode{<div class="slide">}\par + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} + \Css{div.slide {border:solid black 0.4pt;}} +\fi +>>> + + + + + + +\<beamer toc 0.8 and 0.3\><<< +\Configure{frametitle} + {\ifvmode \IgnorePar\fi \EndP \HCode{<h2 class="frametitle">}\bgroup + \Configure{HtmlPar}{ }{ }{}{}% + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</h2>}} +>>> + +\<configure html-speech beamer\><<< +\Css{h1, h2, span.inst sup{font-size:100\%;}} + +\ConfigureEnv{overlayarea} + {\bgroup + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \HCode{<table class="minipage"><tr><td>}} + {\EndP\HCode{</td></tr></table>}\egroup } + {}{}% + } + {\EndP\egroup } + {}{} + } + {\egroup} {}{} +>>> + + +\<configure html-speech beamer\><<< +\Configure{sec@slide} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="hidden">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par + |<beamer cross links|>\par} +\Css{.hidden {visibility:hidden;}} + +\Css{table.columns {width:100\%;}} +\Css{td.column {vertical-align:top;}} +>>> + + +\<configure html-speech beamer\><<< +\Configure{inst} + {\HCode{<span class="inst">}} + {\HCode{</span>}} + +\Configure{titlepage} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="titlepage">}% + \gHAdvance\Slide:cnt by 1 + \Link{}{sl1}\EndLink + |<beamer cross links|>% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{title} + {\ifvmode \IgnorePar\fi \EndP \HCode{<h1 class="title">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</h1>}} +\Configure{author} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="author">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{institute} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="institute">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{date} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="date">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{andtitle}{\HCode{<br />}} +\Css{div.titlepage {text-align:center;}} +\Css{div.institute { margin-bottom: 1em; margin-top: 1em;}} +>>> + + +\<configure html-speech beamer\><<< +\ConfigureEnv{columns} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="columns"><tr>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</tr></table>}} + {}{} + +\ConfigureEnv{column} + {\bgroup + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \HCode{<table class="minipage"><tr><td>}} + {\EndP\HCode{</td></tr></table>}\egroup } + {}{}% + } + {\EndP\egroup } + {}{}% + \HCode{<td class="column">}% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</td>}\egroup} + {}{} +>>> + + +\<configure html-speech beamer\><<< +\ifx \beamer@version\:UnDef + |<shared conf beamer 0.8 and 0.3|> + \ifx \insertinstituteshort\:UnDef + |<conf beamer 0.8|> + \else + |<conf beamer 0.3|> + \fi +\else + |<conf beamer 3.01|> +\fi +>>> + +\<shared conf beamer 0.8 and 0.3\><<< +\Configure{sectionshadedintoc} + {\HCode{<div class="sectionshadedintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Configure{sectionintoc} + {\HCode{<div class="sectionintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Configure{subsectionshadedintoc} + {\HCode{<div class="subsectionshadedintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Configure{subsectionintoc} + {\HCode{<div class="subsectionintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Css{div.sectionintoc, div.sectionshadedintoc{ margin-top:1em; }} +\Css{div.tableofcontents + { padding-left:1em; padding-right:1em; padding-bottom:1em; }} +\Css{.tableofcontents div.subsectionintoc, + .tableofcontents div.subsectionshadedintoc{ margin-left:1em; }} +>>> + +\<configure html-speech beamer\><<< +\ConfigureToc{toc} + {} + {\Configure{TocLink} + {\def\hyperlink########1########2{\Link{####2}{}########2\EndLink}####4}% + \leavevmode} + {}{\par} +\Configure{tableofcontents} + {\IgnorePar\EndP \HCode{<div class="TableOfContents">}}{} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\ShowPar} + {}{} +>>> + + +\<beamer cross links\><<< +\slides:toc +>>> + +\<beamer header\><<< +\gHAdvance\Slide:cnt by 1 +\ifx \sec:name\empty + \HCode{<div class="hidden">}\Link{}{sl\Slide:cnt}\EndLink + \HCode{</div>}% +\else + \HCode{<div class="header">}\Link{}{sl\Slide:cnt}\EndLink + \sec:name + \ifx \subsec:name\empty \else \HCode{<br />}\subsec:name\fi + \HCode{</div>}% +\fi +>>> + +\<configure html-speech beamer\><<< +\let\beamer:section=\@section +\def\@section[#1]#2{\beamer:section[#1]{#2}% + \gHAdvance\:bookmarkN by 1 + \def\sec:name{#2}\let\subsec:name=\empty} +\append:defI\subsection{% + \gHAdvance\:bookmarkN by 1 + \def\subsec:name{#1}} +\HAssign\:bookmarkN=0 +\let\sec:name=\empty +\let\subsec:name=\empty +\Css{div.header{ margin:0; text-align:right; font-size:70\%; }} +>>> + + + + + +\<configure html-speech beamer\><<< +\gHAssign\Slide:cnt=0 +\def\slides:toc{% + |<beamer bookmarks|>% + |<beamer toc frames|>% + \gdef\slides:toc{\ifvmode \IgnorePar\fi \EndP + \HCode{<p class="links">}|<set beamer cross links|>% + \HCode{</p>}\par}% + \slides:toc +} +\Css{p.links{ margin:0; float:right; text-align:right; + font-size:70\%; }} +>>> + + +\<set beamer cross links\><<< +\bgroup + \HAdvance\Slide:cnt by 1\relax + \ifTag{)Qsl\Slide:cnt}{\Link{sl\Slide:cnt}{}next\EndLink\HCode{<br />}}{}% +\egroup +\ifnum \Slide:cnt>1 + \bgroup + \HAdvance\Slide:cnt by -1 + \Link{sl\Slide:cnt}{}prev\EndLink\HCode{<br />}% + \ifnum \:bookmarkN>0\relax + \Link[ target="|<tex4ht-menu|>" + ]{tc-\:bookmarkN}{}toc\EndLink\HCode{<br />}% + \fi + \Link{sl1}{}top\EndLink\HCode{<br />}% + {\HAdvance\Slide:cnt by 1\relax \Slide:cnt}% + \egroup +\else + \Link[ target="|<tex4ht-menu|>"]{bookmark}{}toc\EndLink +\fi +>>> + + + + + + + +\<beamer bookmarks\><<< +\:CheckOption{frames}\if:Option\else + \bgroup + \HPage{}{\beamer:bookmarks\tableofcontents}\EndHPage{}% + \egroup +\fi +>>> + + +\<configure html-speech beamer\><<< +\:CheckOption{frames}\if:Option + \:CheckOption{ver}\if:Option + |<beamer ver frames|> + \else + \Log:Note{for vertically stacked frames, + use the command line options `frames' and `ver'} + |<beamer hor frames|> + \fi + \Css{body\#tex4ht-menu{ background-color:\#EEEEEE; }} +\fi +\def\beamer:bookmarks{% + \Link{}{bookmark}\EndLink + \HAssign\:bookmarkN=0 + |<beamer bookmark config|>% + \Configure{tableofcontents} + {\IgnorePar\EndP \HCode{<div class="bookmarks">}}{} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\ShowPar} + {}{} + \let\std:tableofcontents\tableofcontents + \def\tableofcontents{\std:tableofcontents[section,subsection]}% + } +>>> + + +\<beamer bookmark config\><<< +\:CheckOption{frames}\if:Option + \Configure{TocLink} + {\HAdvance\:bookmarkN by 1\relax + \Link{##2}{tc-\:bookmarkN}##4\ifvmode + \IgnorePar\fi \EndLink} +\else + \Configure{TocLink} + {\HAdvance\:bookmarkN by 1\relax + \Link[ target="|<tex4ht-main|>"]{##2}{tc-\:bookmarkN}##4\ifvmode + \IgnorePar\fi \EndLink} +\fi +>>> + + + +\<configure html-speech beamer\><<< +\ConfigureToc{section} + {}{\HCode{<div class="sectionintoc">}} {\HCode{</div>}} {}{} +\ConfigureToc{subsection} + {} + {\HCode{<div class="subsectionintoc">}} + {\HCode{</div>}} {}{} +\Css{div.bookmarks {white-space: nowrap;}} +\Css{div.bookmarks div.subsectionintoc a { text-decoration: none; + font-size:85\%;}} +>>> + + +\<configure html-speech beamer\><<< +\Configure{alert} + {\HCode{<span class="alert">}} + {\HCode{</span>}} +\Css{span.alert {color:\#FF0000;}} +\Hinclude{% + \Configure{HColor}{alert}{rgb(100\%,0\%,0\%)}% + \Configure{HColor}{blockstructure}{rgb(20\%,20\%,70\%)}% + \Configure{HColor}{darkgreen}{rgb(15\%,60\%,15\%)}% + \Configure{HColor}{lightgray}{rgb(90\%,90\%,90\%)}% + \Configure{HColor}{shaded}{rgb(60\%,60\%,60\%)}% + \Configure{HColor}{structuremedium}{rgb(30\%,30\%,30\%)}% + \Configure{HColor}{structureshaded}{rgb(75\%,75\%,75\%)}% + \Configure{HColor}{structure}{rgb(0\%,0\%,0\%)}% +}{color} +>>> + +The following is problematic when used on titles. + +\begin{verbatim} +\Configure{structure} + {\HCode{<span class="structure">}} + {\HCode{</span>}} +\Css{span.structure {color:\#000000;}} +\end{verbatim} + + + +%%%%%%%%%%%%%%% +\subsection{foils} +%%%%%%%%%%%%%%% + +\<configure html-speech foils\><<< +|<32,4 foils|> +>>> + +\<32,4 foils\><<< +\Configure{foilheads} {}{} + {\IgnorePar\EndP\HCode{<h1 class="foilheadsHead"\a:LRdir>}} + {\HCode{</h1>}\IgnorePar} +\ConfigureEnv{Theorem}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Lemma}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Corollary}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Corollary*}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Proposition}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Definition}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Proof}{\par\leavevmode}{\ShowPar}{}{} +|<foils bib|> +\:CheckOption{1} \if:Option + \CutAt{foilheads} + |<foils toc 1|>% +\else + \Log:Note{for pagination of slides, + use the command line option `1'} +\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +\section{epigraph.sty} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech epigraph\><<< +\Configure{epigraphhead} + {\IgnorePar\EndP\HCode{<div class="epigraphhead">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} + +\Configure{epigraph} + {\IgnorePar\EndP\HCode{<div class="epigraph">}} + {\IgnorePar\EndP\HCode{<div class="episource">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div></div>}} + + +\ConfigureEnv{epigraphs} + {\IgnorePar\EndP\HCode{<div class="epigraphs">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} {}{} + +\Configure{qitem} + {\IgnorePar\EndP\HCode{<div class="qitem">}} + {\IgnorePar\EndP\HCode{<div class="episource">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div></div>}} + +\Css{.epigraph, .epigraphhead, epigraphs {margin-left:60\%}} +\Css{.epigraphhead .epigraph {margin-left:0\%}} + +\Css{.episource {text-align:right}} +\Configure{epirule} {\ifvmode \IgnorePar\fi \EndP\Tg<hr />\par} + +\Css{.epigraphs table { width:40\% ;}} +\Css{.epigraphs table div .episource { text-align:right; width:100\%;}} +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{slides} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech slides\><<< +\:CheckOption{1} \if:Option + |<multi slides|> +\else + \Log:Note{for pagination of slides, + use the command line option `1'} + \ConfigureEnv{slide} + {\ifnum \c@slide=0 + \IgnorePar\EndP\HCode{<hr />}\fi} + {\rightline{\a:slidename}% + \IgnorePar\EndP\par\HCode{<hr />}} + {}{} +\fi +>>> + +\<multi slides\><<< +\ConfigureEnv{slide} + {\ifnum \c@slide=0 \EndP\ShowPar\else\IgnorePar\fi} + {} + {}{} +\CutAt{slide} +\Configure{crosslinks}{[}{] }{next}{prev}{}{}{}{up} +\Configure{crosslinks+} + {}{} + {\IgnorePar\EndP \HCode{<div + class="crosslinks"><p class="noindent">}% + {\advance\c@slide by -1 \the\c@slide}: } + {\HCode{</p></div>}\par} +\Css{.crosslinks{text-align:right;font-size:85\%;}} +>>> + +\<configure html-speech slides\><<< +|<quote config|> +|<quotations|> +|<description 4|> +\ConfigureEnv{verse} + {\Tg<div class="verse">} + {\Tg</div>} + {}{} +\ConfigureEnv{note} + {\Tg<div class="note">} + {\Tg</div>} + {}{} +\ConfigureEnv{titlepage} + {\Tg<div class="titlepage">} + {\Tg</div>} + {}{} +>>> + + +\<configure html-speech slides\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \vtop\bgroup \IgnorePar \EndP \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\egroup} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +\Configure{author date} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="author" >}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="date">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.author, div.date {text-align:center;}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Prosper} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<configure html-speech prosper\><<< +|<prosper maketitle|> +|<prosper lists|> +>>> + + + +\<configure html-speech prosper\><<< +\Configure{slidetitle} + {\NoFonts \ifvmode \IgnorePar\fi \EndP + \HCode{<h2 class="slidetitle">} } + {\ifvmode \IgnorePar\fi \EndP \HCode{</h2>}\EndNoFonts} +\Css{h2.slidetitle {text-align:center;}} +>>> + +\<configure html-speech prosper\><<< +\Configure{Subtitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="Subtitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{email} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="email">}\Link[mailto:\@email]{}{}} + {\EndLink \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{institution} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="institution">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.email, div.institution {text-align:center;}} +>>> + + +\<configure html-speech prosper\><<< +\:CheckOption{1} \if:Option + |<paginated prosper|> +\else + \Log:Note{for pagination of slides, + use the command line option `1'} + |<non paginated prosper|> +\fi +\:CheckOption{nolayers} \if:Option + \def\itemstep{\itemize} + \def\enditemstep{\enditemize} + \let\overlays=\:gobble +\else + \Log:Note{to remove overlays of slides, + use the command line option `nolayers'} +\fi +>>> + + +\<non paginated prosper\><<< +\ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP\HCode{<hr />}\par} + {\rightline{\bgroup + \ifx \slide\SlideNormal \advance\c@slide by -1 \fi + \ifnum \c@slide>0 + \the\c@slide + \ifx \slide\SlideOverlay .\the\c@overlaysCount\fi + \fi + \egroup + }}{}{} +>>> + + +\<paginated prosper\><<< +\HAssign\Slide:cnt=0 +\ConfigureEnv{slide} + {\ifnum \Slide:cnt>0 + \ifnum \Slide:cnt>1 + \ifvmode\IgnorePar\fi + \fi |<start prosper page|>% + } + {\ifnum \Slide:cnt=1 + \else |<end prosper page|>\fi + } + {}{} +>>> + + + +\<start prosper page\><<< +\ifnum \Slide:cnt=1 + \IgnorePar \par\EndP \HCode{<hr />}\par +\fi +\noindent +\HPage{\the\c@slide + \ifx \slide\SlideOverlay .\the\c@overlaysCount\fi + }\fi +\gHAdvance\Slide:cnt by 1 +\Tag{f-\Slide:cnt}{\FileName}% +>>> + + +\<end prosper page\><<< +\rightline{|<foot paginated prosper|>}% +\EndHPage{}~~ +>>> + + +\<foot paginated prosper\><<< +\bgroup + \ifx \slide\SlideNormal \advance\c@slide by -1 \fi + \the\c@slide +\egroup +\ifx \slide\SlideOverlay .\the\c@overlaysCount\fi, +\bgroup + \HAdvance\Slide:cnt by 1 + \ifTag{f-\Slide:cnt}{\Link + [\LikeRef{f-\Slide:cnt}]{}{}next\EndLink, }{}% +\egroup +\bgroup +\ifnum \Slide:cnt>1 + \HAdvance\Slide:cnt by -1 + \Link[\LikeRef{f-\Slide:cnt}]{}{}prev\EndLink, +\fi +\egroup +\Link[\LikeRef{f-1}]{}{}up\EndLink% +\ifTag{prosperTOC}{% + \edef\:temp{\FileName}\edef\:tempa{\LikeRef{prosperTOC}}% + \ifx \:temp\:tempa \else, + \Link[\LikeRef{prosperTOC}]{}{}toc\EndLink}{}\fi +>>> + +\<paginated prosper\><<< +\Configure{tableofcontents} + {\ifx \prosperTOCtag\:UnDef + \global\let\prosperTOCtag\def + \Tag{prosperTOC}{\FileName}% + \fi + \IgnorePar\EndP + \HCode{<div class="tableofcontents">}\IgnorePar} + {} + {\IgnorePar\EndP\HCode{</div>}\ShowPar} + {\HCode{<br />}} {} +>>> + +FROM MANUAL: +When translated into PDF files, \texttt{prosper} slides benefit from +additional possibilities such as transition effects between slides and +incremental display of a slide with several animation effects. The +currently supported transitions are: +\begin{itemize} +\item {Split}: two lines sweep across the screen revealing the + new slide; +\item {Blinds}: multiple lines, evenly distributed across the + screen, appear and synchronously sweep in the same direction to + reveal the new slide; +\item {Box}: a box sweeps from the center, revealing the new slide; +\item {Wipe}: a single line sweeps across the screen from one + edge to the other, revealing the new slide; +\item {Dissolve}: the old page image dissolves to reveal the new slide; +\item {Glitter}: similar to \texttt{Dissolve}, except the + effect sweeps across the image in a wide band moving from one side + of the screen to the other; +\item {Replace}: the effect is simply to replace the old page + with the new page. +\end{itemize} + + + +%%%%%%%%%%%%%%%%%% +\subsection{seminar} +%%%%%%%%%%%%%%%%%% + + + + + + +\<configure html-speech seminar\><<< +\ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP\HCode{<hr />}\par} + {\rightline{\the\c@slide}}{}{} +>>> +%%%%%%%%%%%%%%%%%%% +\subsection{slidesec} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech slidesec\><<< + \ConfigureToc{slidesection} + {\HCode{<span class="tocslidesection">}}{\ }{}{\HCode + {</span><br\xml:empty>}} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{Lit Prog and Verbatim} +%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%% +\subsection{ProTex} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech ProTex\><<< +\def\NAME:{ id=} +\:CheckProtexOption{[[]]}\if:Option + |<frame protex code|> +\fi +>>> + +\<frame protex code\><<< +\Configure{FrameCode} + {\ifvmode \IgnorePar\fi \EndP + |<lynx separator|>% + \HCode{<div class="ShowCode">\ifx \:test\:minus + \else<div class="head">\fi}\par\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div></div>}} +\Configure{ShowCode} + {\HCode{\ifx \:test\:minus \else </div>\fi + \html:src<div class="body"><span class="ShowCode" + style="font-family:monospace;white-space:nowrap;" + >\html:invisible}% + \nobreak + } + {\special{t4ht=\html:src</span>% + \ifx \:test\:minus \else + </div><div class="tail">\html:BackTitle\fi}} + {\HCode{<br />\html:invisible}} + {\HCode{<i>}} + {\HCode{</i>}} + {|<nbsp|>} +\Css{div.ShowCode{background-color:\#EEEEEE; border: 1px white solid;}} +\Css{div.ShowCode div.head{background-color:\#E0E0E0;}} +\Css{div.ShowCode div.tail{background-color:\#E0E0E0;}} +>>> + +\<nbsp\><<< +\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x% +>>> + +The `59' stands for semicolon. Explicit character might be problematic +for languages (e.g., French) where the cahacter is active and may be imported from +aux or another file. + + +\<lynx separator\><<< +\ifx \par:end\empty \HCode{<p></p>}\fi +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{moreverb} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech moreverb\><<< +|<moreverb.sty config 4.0t|> +>>> + +\<moreverb.sty config 4.0t\><<< +\ConfigureEnv{verbatimtab} + {\env:verb{verbatim}} + {\endenv:verb}{}{} +\Configure{verbatimtab} + {\HAdvance\Verb:N by 1 \ifnum \Verb:N>1 \:nbsp \HCode{<br />}\fi} + {\a:sp} +\ConfigureEnv{boxedverbatim} + {\env:verb{boxedverbatim}}{\endenv:verb}{}{} +\ConfigureEnv{boxedverbatim*} + {\env:verb{boxedverbatim}}{\endenv:verb}{}{} +>>> + +\<moreverb.sty config 4.0t\><<< +\ConfigureEnv{boxedverbatim} + {\env:verB{boxedverbatim}}{\endenv:verb}{}{} +\ConfigureEnv{boxedverbatim*} + {\env:verB{boxedverbatim}}{\endenv:verb}{}{} +\def\env:verB#1{\IgnorePar\HCode{<table \Hnewline + class="#1"><tr class="#1"><td \Hnewline + class="#1"><pre class="#1">}\EndNoFonts} +\Css{ pre.boxedverbatim{border:solid 1px; padding-right:1em;} } +\Css{table.boxedverbatim {text-align:center;}} +>>> + + +\<moreverb.sty config 4.0t\><<< +\Configure{listinginput} + {\HCode{<div class="listinginput">}} + {\IgnorePar\HCode{</div>}} +\Css{.listinginput p{ margin-bottom:0em; margin-top:0em; }} +>>> + + +\<moreverb.sty config 4.0t\><<< +\Configure{verbatimtabinput} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="verbatimtabinput"\a:LRdir>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{fancyvrb} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech fancyvrb\><<< +|<fancyvrb.sty config 4.0t|> +>>> + +\<fancyvrb.sty config 4.0t\><<< +\HAssign\fancyvrbNo|=0 +\Configure{fancyvrb} + {\IgnorePar \EndP \gHAdvance\fancyvrbNo by 1 + \gHAssign\fancyvrb:cnt0 + \HCode{<div class="fancyvrb" id="fancyvrb\fancyvrbNo">}} + {\EndP\HCode{</div>}} + {\gHAdvance\fancyvrb:cnt by 1 + \ifnum \fancyvrb:cnt>1 + \HCode{<br class="fancyvrb"\xml:empty>}\fi} {} + {}{} +\Css{P.fancyvrb {white-space: nowrap; margin:0em;}} +>>> + + + +The following is harmful at the start of section 1.1 in +listings.dtx. + +\begin{verbatim} +\ConfigureEnv{verbatim}{\HAssign\Verb:N=0\relax}{\empty}{}{} +\ConfigureEnv{verbatim*}{\HAssign\Verb:N=0\relax}{\empty}{}{} +\end{verbatim} + + + + + +\<fancyvrb.sty config 4.0t\><<< +\Configure{fancyvrbcolor} + {\Css{div\#fancyvrb\fancyvrbNo { color: \HColor; }}} + {\Css{div\#fancyvrb\fancyvrbNo { background-color: \HColor;}}} + {\Css{div\#fancyvrb\fancyvrbNo { border-color: \HColor;}}} +>>> + +\<fancyvrb.sty config 4.0t\><<< +\Configure{fancyvrbframe} + {\Css{div\#fancyvrb\fancyvrbNo { border-top: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo { border-left: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo { border-bottom: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo { border-right: solid \HSize; }}} + {\Css{div\#fancyvrb\fancyvrbNo {border-width:\HSize;}}} + {\Css{div\#fancyvrb\fancyvrbNo {padding:\HSize;}}} +>>> + +\<fancyvrb.sty config 4.0t\><<< +\Configure{BVerbatimInput} + {\ifvmode \IgnorePar \fi \EndP + \gHAssign\HRow=0 + \HCode{<div class="BVerbatimInput">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {\gHAdvance\HRow by 1 \ifnum \HRow>1 \HCode{<br />}\fi}{} +>>> + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Listings} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech listings\><<< +\Configure{lstinline} + {\HCode{<span class="lstinline">}} + {\HCode{</span}} +>>> + +\<configure html-speech listings\><<< +\Log:Note{to ensure proper alignments use + fixed size fonts (see listings.dtx)} +\Configure{listings} + {\ifvmode \IgnorePar\fi \EndP + {\everypar{}\leavevmode}\HCode{<!--l. \the\inputlineno-->}% + \HCode{<pre class="listings">}% + } + {{\everypar{}\leavevmode}\HCode{</pre>}} + {}{} +>>> + +\<configure html-speech listings\><<< +\ConfigureEnv{lstlisting} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno-->}% + \HCode{<div class="lstlisting">}% + \bgroup \special{t4ht@(}% + \Configure{listings} + {{\everypar{}\leavevmode}} + {{\everypar{}\leavevmode}} + {|<nbsp|>\HCode{<br />}}{}% + } + {\special{t4ht@)}\egroup + \ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {} {} +>>> + +\<configure html-speech listings\><<< +\Configure{lstinputlisting} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno-->}% + \HCode{<div class="lstinputlisting">}% + \bgroup \tt \special{t4ht@(}% + \Configure{listings} + {{\everypar{}\leavevmode}} + {{\everypar{}\leavevmode}} + {|<nbsp|>\HCode{<br />}} + {}% + } + {\special{t4ht@)}\egroup + \ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Css{div.lstinputlisting{ + font-family: monospace; + white-space: nowrap; +}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Verbatim} +%%%%%%%%%%%%%%%%%%%%% + + + + + +\<configure html-speech verbatim\><<< +\Configure{verbatiminput} + {\HAssign\Verb:N=0 \ifvmode \IgnorePar\fi \EndP + \HCode{<div class="verbatiminput"\a:LRdir>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.verbatiminput + {font-family: monospace; white-space: nowrap; }} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{mdwlist} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech sverb\><<< +\HAssign\demoN=0 +\Configure{demo} + {\HAdvance\demoN by 1 + \ifvmode \IgnorePar \fi \EndP + \ifnum \demoN=1 + \HCode{<table class="demo"><tr>}% + \fi + \HCode{<td>}% + } + {\ifvmode \IgnorePar \fi \EndP + \HCode{</td>} + \ifnum \demoN=2 + \HAssign\demoN=0 + \HCode{</tr></table>}% + \fi + } +>>> + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{verbatimlisting} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-speech verbatimlisting\><<< +\Configure{verbatimlisting} + {\ifvmode \EndP\fi \EndP\HCode{<div class="verbatimlisting"\a:LRdir>}} + {\HCode{</div>}} + {\ifnum \c@lineno > 1 \HCode{<br />}\fi + \ifnum \c@lineno<10 ~\fi + \ifnum \c@lineno<100 ~\fi + \ifnum \c@lineno<1000 ~\fi + } + {} +>>> + + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{doc} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech doc\><<< +\ConfigureEnv{macrocode} + {\ifvmode \IgnorePar\fi\EndP\HCode{<pre class="macrocode">}} + {\ifvmode \IgnorePar \HCode{</pre>}\par\else \HCode{</pre>}\fi} + {}{} +>>> + + +%%%%%%%%%%%%%%%%%%% +\section{Boxes and Multiple columns} +%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%% +\subsection{fancybox} +%%%%%%%%%%%%%%%%%%% + + + + + + + + + + + +\<configure html-speech fancybox\><<< + \Configure{ovalbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="ovalbox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="ovalbox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.ovalbox { + padding-left:3pt; + padding-right:3pt; + border:solid thin; + }} +>>> + +\<configure html-speech fancybox\><<< + \Configure{Ovalbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="Ovalbox-thick">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="Ovalbox-thick">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.Ovalbox-thick { + padding-left:3pt; + padding-right:3pt; + border:solid thick; + }} +>>> + + +IE doesn't distinguish between upper and lower case characters in css + + + +\<configure html-speech fancybox\><<< + \Configure{shadowbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="shadowbox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="shadowbox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.shadowbox { + padding-left:3pt; + padding-right:3pt; + border:solid thin; + border-right:solid thick; + border-bottom:solid thick; + }} +>>> + + + + +\<configure html-speech fancybox\><<< + \Configure{doublebox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="doublebox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="doublebox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.doublebox { + padding-left:3pt; + padding-right:3pt; + border-style:double; + border:solid thick; + }} +>>> + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{boxedminipage} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech boxedminipage\><<< +\ConfigureEnv{boxedminipage} + {\ifvmode \IgnorePar \EndP + \def\after:bmp{\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par\ShowPar}% + \HCode{<div class="boxedminipage">}% + \expandafter\everymath\expandafter{\expandafter + \everymath\expandafter{\the\everymath}}% + \else \def\after:bmp{\HCode{</span>}}% + \HCode{<span class="boxedminipage">}% + \fi + \bgroup \fboxrule=\z@} + {\egroup \after:bmp} + {}{} +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{Multicol} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech multicol\><<< +\HAssign\MultiCols=0 +\ConfigureEnv{multicols} + {\par\IgnorePar\EndP + \gHAdvance\MultiCols by 1\relax + \HCode{<table class="multicols" + id="multicols-\MultiCols"><tr><td class="multicol-1">}% + \let\sv:HCol=\HCol + \bgroup \gHAssign\HCol=1\relax + } + {\egroup + \global\let\HCol=\sv:HCol + \ifvmode\IgnorePar\fi\EndP + \HCode{</td></tr></table>}\par + } + {}{} +\Configure{columnbreak} + {\gHAdvance\HCol by 1\relax + \par \IgnorePar \EndP + \HCode{</td><td class="multicol-\HCol">}} +\Css{table.multicols { + width:100\%; margin-left:1em; margin-top:1em; margin-bottom:1em; +}} +>>> + + +%%%%%%%%%%%%%%%% +\section{array.sty} +%%%%%%%%%%%%%%%% + +\<configure html-speech array\><<< +|<html latex array/tabular Config 4.0t|> +>>> + + +\<configure html-speech-math array\><<< +|<math html latex array/tabular|> +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{algorithmic} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech algorithmic\><<< +\ConfigureEnv{algorithmic} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="algorithmic">}% + \bgroup + \Configure{HtmlPar}{}{}{}{}} + {\egroup \ifvmode \IgnorePar\fi \HCode{</div>}} + {}{} +\Configure{ALCitem} + {\HCode{\ifnum \c@ALC@line>1 <br />\fi <span class="ALCitem">}} + {\HCode{</span><span style="width:\the\ALC@tlm ;"> </span>}} +\Css{.ALCitem {width:2em; text-align:right;}} +>>> + + +\<configure html-speech algorithmic\><<< +\ConfigureEnv{ALC@for} + {\HCode{<span class="for-body">}} + {\HCode{</span>}} + {}{} +\ConfigureEnv{ALC@whl} + {\HCode{<span class="while-body">}} + {\HCode{</span>}} + {}{} +\ConfigureEnv{ALC@loop} + {\HCode{<span class="loop-body">}} + {\HCode{</span>}} + {}{} +\ConfigureEnv{ALC@rpt} + {\HCode{<span class="repeat-body">}} + {\HCode{</span>}} + {}{} +\Configure{ALCif} + {\HCode{<span class="if-body">}} + {\HCode{</span>}} + {\HCode{<span class="else-body">}} + {\HCode{</span>}} +\Configure{algorithmiccomment} + {\HCode{<span class="ALC-comment">}} + {\HCode{</span>}} + {}{} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\section{Bibliography} +%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%% +\subsection{jurabib} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech jurabib\><<< +\HAssign\jbancorDepth=0 +\Configure{jblink} + {\HAdvance\jbancorDepth by 1 \Link} + {\EndLink \HAdvance\jbancorDepth by -1 } +\Configure{jbanchor} + {\bgroup + \ifnum \jbancorDepth=0 + \Configure{Link}{a}{href=}{id=}{}% + \else + \Configure{Link}{span}{}{id=}{}% + \fi + \Link} + {\EndLink \egroup} +>>> + +The code \verb+\Configure{jbanchor}{\Link}{\EndLink}+ doen't work +because anchors can in jurabib reside within links. + + + + +\begin{verbatim} +Definition of \@citex +--------------------- + \hyper@jblinkstart{\@citeb} + \jb@firstcitefull + \hyper@jblinkend + +Definiton of \jb@firstcitefull +------------------------------ + \hyper@jbanchorstart{look@\@citeb:\jb@reset@look@label@for}\hyper@jbanchorend + + \jbincollcrossref + +Definition of \jbincollcrossref +------------------------------- + \hyper@jblinkstart{#1}% + + \hyper@jblinkend +\end{verbatim} + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Harvard} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech harvard\><<< +\Configure{harvardyear} + {\HCode{<span class="bib-year">}} + {\HCode{</span>}} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Text Decoration} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%% +\subsection{color} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech color\><<< +\Configure{HColor}{red}{\#FF0000} +\Configure{HColor}{rgb 1 0 0}{\#FF0000} +\Configure{HColor}{blue}{\#0000FF} +\Configure{HColor}{rgb 0 0 1}{\#0000FF} +\Configure{HColor}{green}{\#00FF00} +\Configure{HColor}{rgb 0 1 0}{\#00FF00} +\Configure{HColor}{white}{\#FFFFFF} +\Configure{HColor}{gray 1}{\#FFFFFF} +\Configure{HColor}{rgb 1 1 1}{\#FFFFFF} +\Configure{HColor}{black}{\#000000} +\Configure{HColor}{gray 0}{\#000000} +\Configure{HColor}{rgb 0 0 0}{\#000000} +\Configure{HColor}{cyan}{\#00FFFF} +\Configure{HColor}{cmyk 1 0 0 0}{\#00FFFF} +\Configure{HColor}{magenta}{\#FF00FF} +\Configure{HColor}{cmyk 0 1 0 0}{\#FF00FF} +\Configure{HColor}{yellow}{\#FFFF00} +\Configure{HColor}{cmyk 0 0 1 0}{\#FFFF00} +\Configure{color}{\:gobble} +|<color.sty config 4.0t|> +>>> + + + + + +% \Configure{pagecolor} +% {\Configure{color} +% {\Configure{SetHColor}{\Css{body {background-color:\HColor}}}}} + + + +\<configure html-speech color\><<< +\Configure{HColor:gray}{% + \int:of\:tempa{255}{#1}% + \Configure{HColor}{}{rgb(\:tempa,\:tempa,\:tempa)}% +} +\Configure{HColor:rgb}{% + \int:of\:tempa{255}{#1}% + \int:of\:tempb{255}{#2}% + \int:of\:tempc{255}{#3}% + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +\Configure{HColor:cmyk}{% + \int:of\:Cyan{255}{#1}% + \int:of\:Magenta{255}{#2}% + \int:of\:Yellow{255}{#3}% + \int:of\:Black{255}{#4}% + \:cmyk\:tempa\:Cyan + \:cmyk\:tempb\:Magenta + \:cmyk\:tempc\:Yellow + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +|<HColor util|> +>>> + + +\<HColor util\><<< +\def\int:of#1#2#3{% + \tmp:dim=#3pt \tmp:dim=#2\tmp:dim + \edef\:temp{\tmp:cnt\the\tmp:dim//}% + \def#1##1//{}\afterassignment#1\:temp + \edef#1{\the\tmp:cnt}% +} +>>> + + +\begin{verbatim} +cmyk -> gray +(1 - 0.299c - 0.587m - 0.114y)(1 - k) + +cmyk -> rgb +Red = 1-minimum(1,Cyan *(1-Black)+Black) +Green = 1-minimum(1,Magenta*(1-Black)+Black) +Blue = 1-minimum(1,Yellow *(1-Black)+Black) +\end{verbatim} + + + +\<HColor util\><<< +\def\:cmyk#1#2{% + \tmp:cnt=255 \advance\tmp:cnt by -\:Black + \multiply\tmp:cnt by#2 \advance\tmp:cnt by \:Black + \advance\tmp:cnt by -255 \tmp:cnt=-\tmp:cnt + \ifnum \tmp:cnt<0 \tmp:cnt=0 \fi + \edef#1{\the\tmp:cnt}% +} +>>> + + + + +\<color.sty config 4.0t\><<< +\HAssign\textcolorN=0 +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor} + {\Css{span\#textcolor\textcolorN{color:\HColor}}}}% + \HCode{<span id="textcolor\textcolorN">}}% + {\HCode{</span>}} +>>> + +\<color.sty config 4.0t\><<< +\Configure{colorbox} + {\bgroup + \gHAdvance\textcolorN by 1 + \ifvmode \let\v:colorbox\def \IgnorePar \EndP + \else \let\v:colorbox=\relax \fi + |<colorbox background|>% + \HCode{<\ifx \v:colorbox\def div\else span\fi \Hnewline + class="colorbox" id="colorbox\textcolorN">}}% + {\ifx \v:colorbox\def \EndP\HCode{</div>}\par + \else \HCode{</span>}\fi + \egroup + } +>>> + + +\<colorbox background\><<< +\let\A:color=\a:color +\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor} + {\Css{\ifx \v:colorbox\def div\else span\fi + \#colorbox\textcolorN{background-color:\HColor;}}}}% +>>> + + +\<\><<< +\Configure{fcolorbox} + {\gHAdvance\textcolorN by 1 + \let\A:color=\a:color + \Configure{color}% + {\Configure{SetHColor}{\Css{\#colorbox\textcolorN{border: + solid 1px \HColor;}}}}% + \Configure{fbox}{\leavevmode + \gHAdvance\textcolorN by -1 \let\a:color=\A:color}{}} + {} +>>> + + +\<color.sty config 4.0t\><<< +\Configure{fcolorbox} + {\bgroup\gHAdvance\textcolorN by 1 + \ifvmode \let\v:colorbox\def \IgnorePar \EndP + \else \let\v:colorbox=\relax \fi + \HCode{<\ifx \v:colorbox\def div\else span\fi \Hnewline + class="colorbox" id="colorbox\textcolorN">}% + |<fcolorbox border|>% + \Configure{fbox}{\leavevmode }{}% +} +{\ifx \v:colorbox\def \EndP\HCode{</div>}\par + \else \HCode{</span>}\fi \egroup} +>>> + +\<fcolorbox border\><<< +\let\A:color=\a:color +\Configure{color}% + {|<fcolor background|>% + \Configure{SetHColor}{% + \Css{\#colorbox\textcolorN{border: solid 1px \HColor;}}}% + }% +>>> + +\<fcolor background\><<< +\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor}{% + \Css{\#colorbox\textcolorN{background-color: \HColor;}}% + }}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%% +\subsection{colortbl.sty} +%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech colortbl\><<< +\Configure{@classz} + {\let\begin:current@color|=\relax + \let\end:current@color|=\relax } + {% + \ifx \CT@column@color\relax \else + \ifx \CT@column@color\empty \else{% + \def\CT@color{\@ifnextchar[\color:ii\color:i}% + \CT@column@color|<par del|>% + \edef\:temp{\noexpand\add:color + {background-color}{\:temp}{\ar:cnt}}\:temp + }\fi \fi + } + {\begin:current@color} + {\end:current@color} +\Configure{rowcolor}{\row:clr} +\def\row:clr#1{{% +% \HAdvance\HRow by 1 + \add:color{background-color}{#1}{\HRow-}}} +\Configure{text-colortbl} + {\add:color{color}{\current@color}{\HRow-\HCol}} +\Configure{cell-colortbl} + {\add:color{background-color}{\current@color}{\HRow-\HCol}} +\def\add:color#1#2#3{% + \Configure{SetHColor}{\Css{ \#TBL-\TableNo-#3{ #1:\HColor }}}{#2}} +>>> + + +%%%%%%%%%%%%% +\subsection{Soul} +%%%%%%%%%%%%% + +\<configure html-speech soul\><<< +\Configure{textcaps} + {\HCode{<span class="textcaps">}} + {\HCode{</span>}} +\Configure{texthl} + {\HCode{<span class="texthl">}\bgroup + \ifx\sethlcolor\:gobble\else |<soul color|>\fi} + {\egroup \HCode{</span>}} +\Configure{textso} + {\HCode{<span class="textso">}} + {\HCode{</span>}} +\Configure{textst} + {\HCode{<span class="textst">}\bgroup + \ifx\setstcolor\:gobble\else |<soul color|>\fi} + {\egroup \HCode{</span>}} +\Configure{textul} + {\HCode{<span class="textul">}\bgroup + \ifx\setulcolor\:gobble\else |<soul color|>\fi} + {\egroup \HCode{</span>}} +\Css{span.textso{letter-spacing: 0.3em; word-spacing: 0.3em}} +\Css{span.textul{text-decoration:underline}} +\Css{span.textst{text-decoration:line-through}} +\Css{span.textcaps{font-variant:small-caps}} +>>> + +\<soul color\><<< +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor} + {\Css{span\#textcolor\textcolorN{background-color:\HColor}}}}% + \HCode{<span id="textcolor\textcolorN">}}% + {\HCode{</span>}}% +>>> + + +%%%%%%%%%%%%%%%% +\section{verse} +%%%%%%%%%%%%%%%%% + +\<configure html-speech verse\><<< +\Configure{poemtitle} + {\par\IgnorePar\EndP + \HCode{<div class="poemtitle"><span class="poemtitlemark">}} + {\HCode{</span>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Configure{likepoemtitle} + {\par\IgnorePar\EndP \HCode{<div class="likepoemtitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Css{.poemtitle, likepoemtitle {margin-left:2em; margin-bottom:0.5em;}} +>>> + + + +\<configure html-speech verse\><<< +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<div class="verse">}% + \bgroup + \Configure{hspace} + {\HCode{<span style="margin-right:\the\tmp:dim">}\:nbsp} + {\HCode{</span>}} {} + \let\end:verseln\empty + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {}{} + +\ConfigureList{verse} + {} {\ifvmode \IgnorePar\fi \EndP \end:verseln} + {\parindent=\z@} {} + +\Configure{verseline} + {\ifvmode \IgnorePar\fi \EndP \end:verseln + \HCode{<div class="verseline">}\def\end:verseln{\HCode{</div>}}} + {\ifvmode \IgnorePar\fi \EndP \end:verseln + \HCode{<div class="skip-verseline">}% + \def\end:verseln{\HCode{</div>}}} + +\Configure{flagverse} + {\HCode{<span class="flagverse">}\bgroup \setlength{\vleftskip}{0em}} + {\egroup \HCode{</span>}\ignorespaces} + +\Css{.skip-verseline {margin-top: 1em;}} +\Css{.skip-verseline, .verseline {white-space: nowrap;}} +\Css{.flagverse {float:right; font-size:85\%; + text-decoration:underline;}} +>>> + + +%%%%%%%%%%%%%%%% +\section{OpenOffice writer} +%%%%%%%%%%%%%%%% + +\<configure html-speech writer\><<< +\Configure{WriterEnv} + {% + \ConfigureEnv{#1} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="#1">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {}{}% + } + {% + \tmp:dim=\parindent + \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \Css{div.#1 {text-indent:\expandafter\x:Em \the\tmp:dim em;}}% + \tmp:dim=\leftskip + \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \Css{div.#1 {margin-left:\expandafter\x:Em \the\tmp:dim em;}}% + \tmp:dim=\rightskip + \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \Css{div.#1 {margin-right:\expandafter\x:Em \the\tmp:dim em;}}% + \Css{div.#1 {margin-top:0.75em; + margin-bottom:0.75em; + }}% +} +|<10 em constant|> +>>> + +\<10 em constant\><<< +{ + \def\x:Em{% + \catcode`\p=12 + \catcode`\t=12 + \gdef\x:Em} + \x:Em#1pt{#1} +} +\tmp:dim=10em +\edef\ten:Em#1.#2//{#1} +\edef\ten:Em{\expandafter\ten:Em \the\tmp:dim//} +>>> + +%%%%%%%%%%%%%%%%%% +\section{manmac} +%%%%%%%%%%%%%%%%%% + +\<configure html-speech manmac\><<< +\Configure{chapter} + {\IgnorePar\EndP + \HCode{<!--l. \the\inputlineno--><div class="chapter">}\IgnorePar } + {\IgnorePar\EndP\HCode{</div><!--end chapter-->}\par\ShowPar} + {\HCode{<div class="chapterTitle">}\par \ShowPar \noindent + \let\sv:rightline=\rightline \let\rightline=\hbox } + {\IgnorePar\EndP \let\rightline=\sv:rightline + \HCode{</div><!--end chapter title-->}\par\ShowPar} +\Configure{titlepage} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<!--l. \the\inputlineno--><div class="titlepage">}\par} + {\IgnorePar\EndP\HCode{</div><!--end titlepage-->}\par\ShowPar} +>>> + +\<configure html-speech manmac\><<< +\Configure{mathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="mathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.mathdemo{margin-left:2em}} +\Configure{longdisplaymathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="longdisplaymathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.longdisplaymathdemo{margin-left:2em}} +\Configure{longmathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="longmathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.longmathdemo{margin-left:2em}} +\Configure{displaymathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="displaymathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.displaymathdemo{margin-left:2em}} +>>> + + +\<configure html-speech manmac\><<< +\Configure{exercise} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><h5 class="exercise">}% + \bgroup \Configure{HtmlPar}{}{}{}{}} + {\egroup\HCode{</h5>}\IgnoreIndent\par} + +\Configure{manmac-display} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="manmac-display">}} + {\HCode{</table>}\IgnoreIndent\par} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</td>}} + +\Configure{ttenv} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><div class="ttenv">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par\noindent} +>>> + + + +\<configure html-speech manmac\><<< +\Configure{sampleglue} + {\HCode{<table class="sampleglue">}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +>>> + +\<configure html-speech manmac\><<< +\Configure{danger} + {\HCode{<!--l. \the\inputlineno--><!--danger-->}} + {\HCode{<!--end danger-->}} +\Configure{ddanger} + {\HCode{<!--l. \the\inputlineno--><!--ddanger-->}} + {\HCode{<!--end ddanger-->}} +>>> + + +%%%%%%%%%%%%%%%% +\section{Small Packagesy} +%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{lineno.sty} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech lineno\><<< +\:warning{The line numbers are commented out. To reintroduce them, use + the \string\Configure{lineno}{...}{...} command} +\Configure{lineno} + {\bgroup \let\LineNumber=\empty} + {\egroup} +>>> + + + + +%%%%%%%%%%%%%% +\subsection{revtex (aps)} +%%%%%%%%%%%%%% + +\<configure html-speech aps\><<< +\ifx \@authoraddress\:UnDef + |<revtex4 aps.rtx|> +\else + |<revtex3 aps.sty|> +\fi +>>> + +\<revtex3 aps.sty\><<< +|<revtex sections|> +|<revtex title page|> +|<shared bib env|> +|<thebib config|> +>>> + + +\<revtex sections\><<< + \def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +>>> + + + + +\<revtex sections\><<< +\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +|<cut toc: sec|>% + \CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} + |<cut toc: subsec|>% + |<tocat: part|>% + |<tocat: section|>% + \else + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} +|<tocat: ch|>% + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +|<cut toc: sec|>% + \CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} + |<cut toc: subsec|>% + |<tocat: part|>% + |<tocat: ch|>% + |<tocat: section|>% + \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +|<cut toc: sec|>% + \CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} + |<cut toc: subsec|>% + |<tocat: part|>% + |<tocat: section|>% + \else + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} +|<tocat: ch|>% + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} + |<cut toc: sec|>% + |<tocat: part|>% + |<tocat: ch|>% + \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} + |<cut toc: sec|>% + |<tocat: part|>% + \else + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} + |<tocat: ch|>% + |<tocat: part|>% + \fi +\else\:CheckOption{1} \if:Option + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + +\else + \Log:Note{for automatic sectioning pagination, + use the command line option `1', `2', or `3'}% +\fi \fi \fi \fi + +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<shared h5 subsubsection|> +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} + +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi + +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\thesection\HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark.\space\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \par} +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \par} +\Configure{likesectionTITLE+}{#1} + +\Css{h3.sectionHead, h3.likesectionHead {text-align:center;}} + +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +|<shared h4 subsection|> + +\Css{h4.subsectionHead {text-align:center;}} + +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} + +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} + +\ConfigureMark{subparagraph}{} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Spatial Math} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech longdiv\><<< +\Configure{longdiv} + {\Configure{halign} + {\HCode{<table class="longdiv">}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>\Hnewline}} + {\tmp:cnt=\HRow \divide\tmp:cnt by 2 \multiply\tmp:cnt by 2 + \advance\tmp:cnt by -\HRow + \HCode{<td \ifnum\HCol=2 \ifnum\HRow=2 class="longdiv"\fi \fi>% + <span \ifnum \tmp:cnt=-1 + \ifnum \HRow>2 class="longdiv"\fi\fi >}% + } + {\HCode{</span></td>}}% + } + {} +\Css{table.longdiv {text-align: right;}} +\Css{td.longdiv {border-top:solid 1px black; + border-left:solid 1px black;}} +\Css{span.longdiv {text-decoration:underline;}} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{lncse} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech lncse\><<< +|<lncse chapter|> +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent + \HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\it} + {\endgroup\HCode{</span>}\IgnorePar} +>>> + + +\<lncse chapter\><<< +\ConfigureMark{chapter} + {\if@mainmatter + \HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}\fi} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br\xml:empty>}}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{chapterTITLE+}{\if@mainmatter\thechapter\space\fi#1} +\renewcommand\thechapter {\if@mainmatter\@arabic\c@chapter\fi} + +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \appendixname \ \thechapter\HCode{</span>}} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \TitleMark{\HCode{<br\xml:empty>}}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead">}} + {\HCode{</h2>}\IgnoreIndent} +>>> + + + +%%%%%%%%%%%%%%%% +\section{?????} +%%%%%%%%%%%%%%%% + + + + + +\<0,32,4 preambles\><<< +|<hook utility|> +|<cascade style sheets|> +\Configure{Preamble} + {|<default cascade style sheets|>} {} +>>> + +\<default cascade style sheets\><<< +{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@ +\leavevmode}% +\immediate\write-1{--- file \aa:CssFile\space ---}% +\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}% +\ht:special{t4ht<\aa:CssFile}% +>>> + + + +\verb'\special' are like \verb'\hbox', and they so they may introduve empty lines in +vertical mode. That might be a problem if we don't want empty lines at +the start of the files. Hence, in latex we give them special treatment. + +\<cascade style sheets\><<< +\ScriptCommand{\CssFile}{% + \immediate\write-1{--- file \aa:CssFile\space ---}% + \def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}% + \def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}% + \def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special + {t4ht>\aa:CssFile}}% + \ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}% + \bgroup \everypar{}\NoFonts \bb:CssFile \hfil\break} + {\egroup \EndNoFonts + \ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}} +\let\Css:File|=\CssFile +\def\CssFile{\futurelet\:temp\Css:Fl} +\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl + \else \expand:after{\Css:File \space}\fi} +\def\Css:fl[#1]{\Css:File\space \css:files #1,,|<par del|>} +\def\css:files#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty + \else \def\:temp{\in:css#1.|<par del|>\css:files#2,,|<par del|>}\fi + \:temp } +\def\in:css#1.#2|<par del|>{\def\:temp{#2}\ifx \:temp\empty + \inc:ss#1.css|<par del|> + \else \inc:ss#1.#2|<par del|>\fi} +\def\inc:ss#1.|<par del|>{|<input css file|> } +\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} +>>> + + +\<input css file\><<< + \immediate\openin15=#1 + \ifeof15 \immediate\closein15 + \:warning{Missing file: #1}% + \else \immediate\closein15 \input #1 \fi +>>> + + +\verb'\CssFile[file-name,filename.ext,..]...\EndCssFile'. + +Default file, just in case the user doesn't provide one. If +the user does, the following file will be overwritten. + +Can't use below \verb'\a:CssFile' and \verb'\b:CssFile', because +\verb'\ScriptFile{\CssFile}' also needs them. + +\verb'\Css' changes its definition upon reachin \verb'\CssFile'. The +first definition is needed within the sty files, and the info is +sent to the lg file (where else it can be sent?). + + +\<cascade style sheets\><<< +\def\Css#1{{\def\:temp{\Configure{Needs}}% + \expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}} +>>> + +\<cascade style sheets-DISABLE\><<< +\let\send:css|=\Css +\ScriptCommand{\Css}{\HCode{<style + type="text/css">\Hnewline}\NoFonts}{\EndNoFonts\HCode{</style>}} +\let\loc:css|=\Css +\def\Css{\futurelet\:temp\:Css} +\def\:Css{\ifx \:temp\bgroup \expandafter\send:css + \else \expandafter\loc:css\fi} +>>> + + +\<hook utility\><<< +\:CheckOption{hooks++} \if:Option + \else \:CheckOption{hooks+} + \if:Option \else \:CheckOption{hooks}\fi + \fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi +>>> + + + + +The following provides a faster version +than \verb'\LinkCommand\Link{a,href,name,}' for the \verb'\Link' +command + +\<config tex4ht\><<< +\Configure{Link}{a}{href=}{id=}{} +>>> + + +\section{Shared} +%%%%%%%%%%%%%%%%%% + + +\<config book-report-article\><<< +|<makeketitle config 4.0t|> +>>> + + + +\<config book-report-article\><<< +|<latex shared div config|> +|<shared bib env|> +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi +|<config lists of figures and tables|> +|<description 4|> +>>> + + +\<config lists of figures and tables\><<< +\ConfigureToc{lof} + {\HCode{<span class="lofToc">}}{\ }{}{\HCode{</span><br\xml:empty>}} +\ConfigureToc{lot} + {\HCode{<span class="lotToc">}}{\ }{}{\HCode{</span><br\xml:empty>}} +>>> + +\<config book-report-article\><<< +|<thebib config|> +|<latex config div 4.0t|> +>>> + + + +\<quote config\><<< +\ConfigureEnv{quote} + {}{} + {\IgnorePar\EndP\HCode{<div class="quote">}} + {\IgnorePar\EndP\HCode{</div>}\ShowPar\ShowIndent} +\Css{.quote {margin-bottom:0.25em; margin-top:0.25em; + margin-left:1em; margin-right:1em; text-align:justify;}} +>>> + +\<quote noindent config\><<< +\ConfigureEnv{quote} + {}{} + {\IgnorePar\EndP\HCode{<div class="quote">}\IgnoreIndent} + {\IgnorePar\EndP\HCode{</div>}\ShowPar\ShowIndent} +\Css{.quote {margin-bottom:0.25em; margin-top:0.25em; + margin-left:1em; margin-right:1em; text-align:justify;}} +>>> + + + +\<config book-report-article\><<< +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +>>> + + + + + +\<config book-report-article\><<< +|<article,report,book|> + +>>> + + + + + + +%%%%%%%%%%%%%%%%%%% +\section{babel.sty} +%%%%%%%%%%%%%%%%%%% + + + + + +\<configure html-speech babel\><<< +|<babel macros|> +|<babel char set|> +|<babel accents|> +|<u mlaut|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Character Set} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<babel char set\><<< +\def\a:temp#1#2#3{% + \ifOption{charset=#2}{\def\a:charset{charset=#2}}{}% + \def\:tempa{#1}\ifx \languagename\:tempa + \def\A:charset{#2}\ifx \A:charset\empty\else + \def\A:charset{charset=#2}% + \fi + \if !#3!\else + \Configure{@HTML}{% + \iflanguage{#1}{lang="#3" }{}% + } + \fi + \fi} +\a:temp{afrikaans}{iso-8859-1}{af} +\a:temp{arabic}{iso-8859-6}{ar} +\a:temp{austrian}{iso-8859-1}{ge} +\a:temp{brazilian}{iso-8859-1}{pt} +\a:temp{brazil}{iso-8859-1}{pt} +\a:temp{catalan}{iso-8859-1}{ca} +\a:temp{croatian}{iso-8859-2}{hr} +\a:temp{czech}{iso-8859-2}{cs} +\a:temp{danish}{iso-8859-1}{da} +\a:temp{dutch}{iso-8859-1}{nl} +\a:temp{esperanto}{iso-8859-3}{eo} +\a:temp{estonian}{iso-8859-5}{et} +\a:temp{finnish}{iso-8859-1}{fi} +\a:temp{francais}{iso-8859-1}{fr} +\a:temp{frenchb}{iso-8859-1}{fr} +\a:temp{french}{iso-8859-1}{fr} +\a:temp{galician}{iso-8859-1}{gl} +\a:temp{germanb}{iso-8859-1}{de} +\a:temp{german}{iso-8859-1}{de} +\a:temp{greek}{iso-8859-7}{el} +\a:temp{hebrew}{iso-8859-8}{he} +\a:temp{hungarian}{iso-8859-2}{hu} +\a:temp{ngerman}{iso-8859-1}{de} +\a:temp{norsk}{iso-8859-1}{no} +\a:temp{nynorsk}{iso-8859-1}{no} +\a:temp{polish}{iso-8859-2}{pl} +\a:temp{polski}{iso-8859-2}{pl} +\a:temp{polutonikogreek}{iso-8859-7}{el} +\a:temp{portuges}{iso-8859-1}{pt} +\a:temp{portuguese}{iso-8859-1}{pt} +\a:temp{romanian}{iso-8859-2}{ro} +\a:temp{scottish}{iso-8859-1}{gd} +\a:temp{slovak}{iso-8859-2}{sk} +\a:temp{slovene}{iso-8859-2}{sl} +\a:temp{spanish}{iso-8859-1}{es} +\a:temp{swedish}{iso-8859-1}{sv} +\a:temp{turkish}{iso-8859-9}{tr} +\a:temp{ukrainian}{iso-8859-5}{uk} +\a:temp{uppersorbian}{iso-8859-2}{} +\a:temp{welsh}{iso-8859-1}{cy} +|<set babel charset|> +>>> + + + + + + + +\<configure html-speech german\><<< +|<quotedblbase|> +>>> + +\<configure html-speech ngerman\><<< +|<quotedblbase|> +>>> + + + + + +\<quotedblbase\><<< +\Configure{quotedblbase}{\leavevmode\ht:special{t4ht@+&{35}8222{59}}x} +\Configure{quotesinglbase}{\leavevmode\ht:special{t4ht@+&{35}8218{59}}x} +>>> + + +% \HCode{&}\HChar{-35}\HCode{8222;}} + +\<configure html-speech austrian\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech catalan\><<< +\def\A:charset{charset=iso-8859-1} +>>> + +\<configure html-speech croatian\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + +\<configure html-speech latin2\><<< +\def\A:charset{charset=iso-8859-2} +>>> + + + + +\<configure html-speech czech\><<< +\def\A:charset{charset=iso-8859-2} +>>> +\<configure html-speech danish\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech dutch\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech english\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech esperant\><<< +\def\A:charset{charset=iso-8859-3} +>>> +\<configure html-speech estonian\><<< +\def\A:charset{charset=iso-8859-5} +>>> +\<configure html-speech finnish\><<< +\def\A:charset{charset=iso-8859-1} +>>> + +\<configure html-speech francais\><<< +\def\A:charset{charset=iso-8859-1} +>>> + + +\<configure html-speech frenchb\><<< +\def\A:charset{charset=iso-8859-1} +\Configure{@TITLE}{\Configure{frenchb-thinspace}{}{}} +>>> + + + +\<configure html-speech frenchb\><<< +\Configure{system-nbsp} + {\ht:special{t4ht@[unhskip}} + {\ht:special{t4ht@]unhskip}} +>>> + +\<configure html-speech frenchb\><<< +\ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi +\Configure{frenchb-nbsp} + {\ht:special{t4ht@?unhskip}\HCode{<span class="frenchb-nbsp">}% + \HCode{ }\setbox\tmp:bx=\hbox\bgroup} + {\egroup \HCode{</span>}} +\Css{.frenchb-nbsp{font-size:75\%;}} +>>> + + +\<configure html-speech frenchb\><<< +\Configure{frenchb-thinspace} + {\ht:special{t4ht@?unhskip}\HCode{<span class="frenchb-thinspace">}% + \HCode{ }\setbox\tmp:bx=\hbox\bgroup} + {\egroup \HCode{</span>}} +\Css{.frenchb-thinspace{font-size:75\%;}} +>>> + + + + +\<configure html-speech galician\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech germanb\><<< +\def\A:charset{charset=iso-8859-1} +>>> + +\<configure html-speech greek\><<< +\def\A:charset{charset=iso-8859-7} +\ifOption{charset=iso-8859-7} + {|<greek ldf iso-8859-7|>} + {\Log:Note{for iso-8859-7 accents + use the command line option `charset=iso-8859-7'}} +\ifOption{sgreek} + {\:CheckOption{new-accents} \if:Option \else + |<greek ldf sgreek|> + \fi} + {\Log:Note{for Sgreek font + use the command line option `sgreek'}} +\ifOption{oldgreek} + {\:CheckOption{new-accents} \if:Option \else + |<greek ldf Greek Old Face|> + \fi} + {\Log:Note{for Greek Old Face font + use the command line option `oldgreek'}} +>>> + + + +\<greek ldf sgreek\><<< +\def\A:charset{charset=iso-8859-1} +\Configure{htf}{254}{+}{<font \Hnewline + face="}{}{}{}{}{Sgreek">}{</font>} +\Configure{htf}{252}{+}{<font \Hnewline + face="}{}{}{}{}{Sgreek" class="small-caps">}{</font>} +\Configure{htf-css}{252}{.small-caps{font-variant: small-caps; }} +\Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\expandafter \ifx \csname \@curr@enc :#1\endcsname\relax + \Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture + \else + \csname \@curr@enc :#1\endcsname {#3}% + \fi + } +\def\LGR:acute#1{% + \LGR:gobble\ifx #1\i \HChar{237}% + \else #1\HCode{<font face="Sgreek">/</font>}\fi } +\def\LGR:grave#1{% + \LGR:gobble\ifx #1\i \HChar{236}% + \else #1\HCode{<font face="Sgreek">\string\</font>}\fi} +\def\LGR:circ#1{% + \LGR:gobble\ifx #1\i \HChar{238}% + \else #1\HCode{<font face="Sgreek">=</font>}\fi} +\def\LGR:tilde#1{#1\HCode{<font face="Sgreek">@</font>}} +\def\LGR:uml#1{% + \LGR:gobble\ifx #1\i \HChar{239}% + \else #1\HCode{<font face="Sgreek">+</font>}\fi} +\def\LGR:gobble#1#2#3{#1} +>>> + + +The accented \''\i' arrives in the form of \''\@use@text@encoding +\@curr@enc \i'. + + + +\<greek ldf Greek Old Face\><<< +\def\A:charset{charset=iso-8859-1} +\Configure{htf}{254}{+}{<font \Hnewline + face="}{}{}{}{}{Greek Old Face">}{</font>} +\Configure{htf}{252}{+}{<font \Hnewline + face="}{}{}{}{}{Greek Old Face" class="small-caps">}{</font>} +\Configure{htf-css}{252}{.small-caps{font-variant: small-caps; }} +\Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\expandafter \ifx \csname \@curr@enc :#1\endcsname\relax + \Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture + \else + \csname \@curr@enc :#1\endcsname {#3}% + \fi + } +\def\LGR:acute#1{% + \LGR:gobble\ifx #1\i \HChar{237}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{i}{133}\LGR:ch{w}{232}\LGR:ch{u}{218}\LGR:ch{o}{210}% + \LGR:ch{h}{187}\LGR:ch{a}{163}\LGR:ch{e}{154}% + \ifx \:temp\empty\else #1\HChar{-180}\fi + \fi } +\def\LGR:grave#1{% + \LGR:gobble\ifx #1\i \HChar{236}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{i}{136}\LGR:ch{235}{232}\LGR:ch{u}{221}\LGR:ch{o}{213}% + \LGR:ch{h}{190}\LGR:ch{a}{166}\LGR:ch{e}{157}% + \ifx \:temp\empty\else #1`\fi + \fi } +\def\LGR:circ#1{% + \LGR:gobble\ifx #1\i \HChar{238}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{i}{139}\LGR:ch{w}{238}\LGR:ch{u}{224}\LGR:ch{o}{253}% + \LGR:ch{h}{193}\LGR:ch{a}{169}\LGR:ch{e}{252}% + \ifx \:temp\empty\else #1\string^\fi + \fi} +\def\LGR:tilde#1{#1} +\def\LGR:uml#1{% + \LGR:gobble\ifx #1\i \HChar{239}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{u}{227}\LGR:ch{i}{142}% + \ifx \:temp\empty\else #1\HChar{168}\fi + \fi} +\def\LGR:gobble#1#2#3{#1} +\def\LGR:ch#1#2{\def\:tempa{#1}\ifx \:temp\:tempa + \HCode{<font face="Greek Old Face">}\HChar{#2}\HCode{</font>}% + \let\:temp=\empty \fi } +>>> + + + + + + + + + +\<configure html-speech hebrew\><<< +\def\A:charset{charset=iso-8859-8} +>>> + +\<configure html-speech ngermanb\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech norsk\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech polish\><<< +\def\A:charset{charset=iso-8859-2} +>>> +\<configure html-speech polski\><<< +\def\A:charset{charset=iso-8859-2} +>>> +\<configure html-speech portuges\><<< +\def\A:charset{charset=iso-8859-1} +>>> + + + +\<configure html-speech scottish\><<< +\def\A:charset{charset=iso-8859-1} +>>> + +\<configure html-speech slovak\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + +\<configure html-speech slovene\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + +\<configure html-speech spanish\><<< +\def\A:charset{charset=iso-8859-1} +|<spanish configs|> +>>> + + +\<spanish configs\><<< +\Configure{spanish"a} + {\HCode{<sup><u>a</u></sup>}} +\Configure{spanish"o} + {\HCode{<sup><u>o</u></sup>}} +\Configure{@TITLE}{% + \Configure{spanish"a}{\HCode{&\#170;}}% + \Configure{spanish"o}{\HCode{&\#176;}}% +} +>>> + + +\<configure html-speech swedish\><<< +\def\A:charset{charset=iso-8859-1} +>>> +\<configure html-speech turkish\><<< +\def\A:charset{charset=iso-8859-9} +>>> +\<configure html-speech ukraineb\><<< +\def\A:charset{charset=iso-8859-5} +>>> +\<configure html-speech usorbian\><<< +\def\A:charset{charset=iso-8859-2} +>>> +\<configure html-speech welsh\><<< +\def\A:charset{charset=iso-8859-1} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{right to left babel} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +tex4ht.sty indert Rregion and Lregion end hooks within +\verb+\beginL/R+ and \verb+\endL/R+, mainly to void the +inverse produced by the elatex compiler. + +\<configure html-speech rlbabel\><<< +\Configure{TITLE+}{\HCode{\jobname}} +\Configure{Rregion} {\beginL} {\endL} +\Configure{!P}{\a:LRdir} +\Configure{!BODY}{\a:LRdir} +\Configure{LRdir}{ |<dir ltr/rtl|> } +>>> + +\<dir ltr/rtl\><<< +dir="\if@rl rtl\else ltr\fi" +>>> + + +\<configure html-speech rlbabel\><<< +\Configure{moreL} + {\ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="ltr" >}\def\end:moreRL{\HCode{</span>}}\fi} + {\end:moreRL} +\Configure{moreR} + {\ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="rtl" >}\def\end:moreRL{\HCode{</span>}}\fi} + {\end:moreRL} +>>> + + +\<configure html-speech-math rlbabel\><<< +\:CheckOption{pic-m} \if:Option +\else + \Configure{$} + {\HCode{<span |<dir ltr/rtl|>>}} + {\HCode{</span>}}{} +\fi +>>> + + + +% \def\HCode{<#1>}{\HCode{<#1 |<dir ltr/rtl|>>}} + +\<configure html-speech-math rlbabel\><<< +\Configure{[]} + {\bgroup + \protect\nested:math + \PicDisplay + $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay \egroup + |<try inline par|>\if@rl \beginL\fi \beginR } +>>> + +Test data + +\begin{verbatim} +\def\providehyphenmins#1#2{} +\documentclass[english,hebrew]{article} +\usepackage[T1]{fontenc} + +\makeatletter +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +%% Bold symbol macro for standard LaTeX users +\newcommand{\boldsymbol}[1]{\mbox{\boldmath $#1$}} + + +\usepackage{babel} +\makeatother +\begin{document} +ôéñ÷ä ạ́áøéú + \[F=ma\quad(\textrm{\L{Newton's 2nd Law}\R{ạ́áøéú }})\] + \[F=ma\quad(\mbox{Newton's 2nd Law ạ́áøéú} )\] + \R{\[F=ma\quad(\mbox{Newton's 2nd Law ạ́áøéú} )\]} +ạ̊åă ÷öú ̣áøéú +\end{document} + +\end{verbatim} + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Scientific Word} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +% When \verb+\BOXEDSPECIAL+ is defined we don't want the +% following configuration, because the frame may enclose +% a graphics-like file that we might not want to translate. +% +% \<configure html-speech tcilatex\><<< +% \ifx \BOXEDSPECIAL\:UnDef +% \Configure{BOXTHEFRAME} +% {\Picture+[PICT]{}} {\EndPicture} +% \fi +% >>> + +\<configure html-speech tcilatex\><<< +\Configure{GRAPHICSPS} + {\Picture+[PICT]{}} {\EndPicture} +\Configure{GRAPHICSHP} + {\Picture+[PICT]{}} {\EndPicture} +\Configure{DFRAME} + {\EndP \IgnorePar\HCode{<div class="FRAME">}} + {\HCode{</div>}\par\ShowPar} +\Configure{FFRAME} + {\EndP \IgnorePar\HCode{<div class="FRAME">}} + {\HCode{</div>}\par\ShowPar} +\Configure{IFRAME} + {\ifvmode \IgnorePar \fi} {} +\Css{div.FRAME {text-align:center;}} +\expandafter\ifx \csname @TCItagstar\endcsname\relax + |<tcilatex 2.5|> +\else + |<tcilatex 3.5|> +\fi +>>> + + + +\<configure html-speech-math tcilatex\><<< +\expandafter\ifx \csname @TCItagstar\endcsname\relax + |<tcilatex 2.5 math|> +\else + |<tcilatex 3.5 math|> + \ifx \@msidraft\:Undef + |<tcilatex 3.5 not 4.0 math|> +\fi \fi +>>> + +\<tcilatex 3.5 not 4.0 math\><<< +\Configure{dfrac} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{tfrac} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{binom} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{tbinom} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{dbinom} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +>>> + +\<tcilatex 3.5 math\><<< +\Configure{QATOP} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{QDATOP} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{QTATOP} + {\Picture+{ align="middle"}\bgroup} {} + {} {\egroup\EndPicture} +>>> + + + + + + + +\<configure html-speech seslideb\><<< +\ConfigureEnv{center} + {\IgnorePar \par \EndP \HCode{<div class="center"\Hnewline>}} + {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} + {} {} +{\Configure{Needs}{Font\string_Size: #1}% + \expandafter\Needs\expandafter{\csname normalsize@fsize\endcsname}} +>>> + +\<configure html-speech seslideb\><<< +\ConfigureToc{swSlide} + {} {\relax } {} { } +\:CheckOption{0} + \if:Option \else \:CheckOption{1} \fi +\if:Option + \:CheckOption{1} \if:Option + \CutAt{swSlide} + \Configure{crosslinks}{}{}{}{}{}{}{}{} + \fi + |<seslideb toc|> + |<seslideb page break|> +\else + |<handle my missing sw fonts|> + \Log:Note{pagination may be obtained + through the option `0' or `1', at locations marked with + \noexpand\csname PageBreak\string\endcsname} +\fi +>>> + +\<handle my missing sw fonts\><<< +\Configure{swSlide}{}{}{\bgroup\bf}{\egroup} +>>> + + + +\<seslideb toc\><<< +\def\:temp{% + \ifOption{1}{\par\IgnorePar\EndP\HCode{<hr />}\par}{} + \HAssign\TocN=1 + \def\swTitle{\gHAdvance\TocN by 1 \TocN}\:TableOfContents[swSlide] + \let\swTitle=\relax + \ifOption{0}{\par\IgnorePar\EndP\HCode{<hr />}\par}{} + \let\swSlide=\o:swSlide: \let\o:swSlide:=\empty \swSlide} +\HLet\swSlide=\:temp +>>> + + +\<seslideb page break\><<< +\Configure{swSlide} + {\gHAdvance\swSlideN by 1 \Link{}{s-\swSlideN}\EndLink } + {\rightline{ + {\HAdvance\swSlideN by -1 \Link{s-\swSlideN}{}\swSlideN\EndLink} + \Link[\jobname.html]{}{}\HCode{<>}\EndLink{} + {\HAdvance\swSlideN by 1 + \ifTag{)Qs-\swSlideN}{\Link{s-\swSlideN}{}\swSlideN\EndLink}{}} + } + \ifOption{0}{\par \IgnorePar\EndP\HCode{<hr />}\par}{} + } + {\IgnorePar\bgroup \bf } + {\egroup \ShowPar\IgnoreIndent\par} +\HAssign\swSlideN=1 +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{minitoc} + +\<configure html-speech minitoc\><<< + |<minitoc.sty Configure 4.0t|> +>>> + +\<minitoc.sty Configure 4.0t\><<< +\Configure{minitoc} + {\Configure{tableofcontents} + {\HCode{<div class="minitoc"><hr\xml:empty>}\IgnorePar}{} + {\IgnorePar\HCode{<hr\xml:empty></div>}\ShowPar} + {\HCode{<br\xml:empty>}}{}} {} + {\HCode{<div class="minitoc-\TocOption">}} {\HCode{</div>}} +\Configure{minilof} + {\Configure{tableofcontents} + {\HCode{<div class="minilof"><hr\xml:empty>}\IgnorePar}{} + {\IgnorePar\HCode{<hr\xml:empty></div>}\ShowPar} + {\HCode{<br\xml:empty>}}{}} {} + {\HCode{<div class="minilof-\TocOption">}} {\HCode{</div>}} +\Configure{minilot} + {\Configure{tableofcontents} + {\HCode{<div class="minilot"><hr\xml:empty>}\IgnorePar}{} + {\IgnorePar\HCode{<hr\xml:empty></div>}\ShowPar} + {\HCode{<br\xml:empty>}}{}} {} + {\HCode{<div class="minilot-\TocOption">}} {\HCode{</div>}} +\Css{.minitoc-l,.minilot-l,.minilof-l + {text-align:left;margin-left:3em;}} +\Css{.minitoc-c,.minilot-c,.minilof-c + {text-align:center;margin-left:3em;}} +\Css{.minitoc-r,.minilot-r,.minilof-r + {text-align:right;margin-left:3em;}} +\Css{DIV.minitoc,DIV.minilot,DIV.minilof{margin-left:3em;}} +\Css{.minitoc .sectionToc { font-weight:bold;} } +>>> + +Only one of the following is needed for a given document!!! + +\<minitoc.sty Configure 4.0t\><<< +\Configure{parttoc}{}{} + {\HCode{<div class="parttoc-\TocOption">}} {\HCode{</div>}} +\Configure{partlof}{}{} + {\HCode{<div class="partlof-\TocOption">}} {\HCode{</div>}} +\Configure{partlot}{}{} + {\HCode{<div class="partlot-\TocOption">}} {\HCode{</div>}} +\Css{.parttoc-l,.partlof-l,.partlot-l{text-align:left;}} +\Css{.parttoc-c,.partlof-c,.partlot-c{text-align:center;}} +\Css{.parttoc-r,.partlof-r,.partlot-r{text-align:right;}} +>>> +\<minitoc.sty Configure 4.0t\><<< +\Configure{secttoc}{}{} + {\HCode{<div class="secttoc-\TocOption">}} {\HCode{</div>}} +\Configure{sectlof}{}{} + {\HCode{<div class="sectlof-\TocOption">}} {\HCode{</div>}} +\Configure{sectlot}{}{} + {\HCode{<div class="sectlot-\TocOption">}} {\HCode{</div>}} +\Css{.secttoc-l,.sectlof-l,.sectlot-l{text-align:left;}} +\Css{.secttoc-c,.sectlof-c,.sectlot-c{text-align:center;}} +\Css{.secttoc-r,.sectlof-r,.sectlot-r{text-align:right;}} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{alltt.sty} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech alltt\><<< +\ConfigureEnv{alltt} + {\IgnorePar\EndP\HCode{<div class="alltt">}} + {\IgnorePar\EndP\HCode{</div>}} {}{} +\Css{.alltt P { margin-bottom : 0em; margin-top : 0em; }} +\Css{.alltt { margin-bottom : 1em; margin-top : 1em; }} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{url.sty} +%%%%%%%%%%%%%%%%%%% + +\<configure html-speech url\><<< +\:CheckOption{url-il2-pl} \if:Option +\else \:CheckOption{url-enc} \fi +\if:Option + \Configure{string-encoder}{url-encoder} +% \:CheckOption{url-il2-pl} \if:Option + |<il2-pl.tcx url encoder|> +% \else + |<default url encoder WAIT|> +% \Log:Note{for il2-pl url encoding, +% use the command line option 'url-il2-pl'} +% \fi + \Configure{url}% + {|<:temp = url encoded string|>% + \Link[\noexpand\the\tmp:toks \space + class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} + |<url encoded string utilities|> +\else + \Log:Note{for URL encoding within href + use the command line option `url-enc'} + \Configure{url}% + {\tmp:toks{#1}\Link[\noexpand\the\tmp:toks\space + class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} +\fi +|<path config|> +>>> + +\<:temp = url encoded string\><<< +\tmp:toks={}\set:spaces#1|<par del|>% +\edef\:temp{\tmp:toks{\csname url-encoder\expandafter\endcsname + \the\tmp:toks |<par del|>}}\:temp +>>> + +\<url encoded string utilities\><<< +\def\set:spaces{\futurelet\:temp\set:spacesoo} +\def\set:spacesoo{% + \expandafter\ifx \space\:temp + \tmp:toks\expandafter{\the\tmp:toks{ }}% + \fi + \set:spaceso +} +\def\set:spaceso#1#2|<par del|>{% + \tmp:toks\expandafter{\the\tmp:toks #1}% + \if :#2:\else \set:spaces#2|<par del|>\fi +} +>>> + +\<default url encoder\><<< +\Configure{url-encoder} + {%}{%25} + {&}{%26} + {'}{%27} + {<}{%3C} + {>}{%3E} + {_}{_} + {^}{^} + {}{} +\Log:Note{current url encoding setting: \string\Configure{url-encoder}% + {\%}{\%25}% + {&}{\%26}% + {'}{\%27}% + {<}{\%3C}% + {>}{\%3E}% + {\string _}{\string _}% + {\string ^}{\string ^}% + {}{}} +>>> + + + + +\<il2-pl.tcx url encoder\><<< +\Configure{url-encoder} + {%}{%25} + {&}{%26} + {'}{%27} + {<}{%3C} + {>}{%3E} + {_}{_} + {^}{^} + {±}{ą} + {æ}{ć} + {ê}{ę} + {³}{ł} + {ó}{ó} + {ñ}{ń} + {¶}{ś} + {¼}{ź} + {¿}{ż} + {¡}{Ą} + {Æ}{Ć} + {Ê}{Ę} + {£}{Ł} + {Ó}{Ó} + {Ñ}{Ń} + {¦}{Ś} + {¬}{Ź} + {¯}{Ż} + {}{} +>>> + + +\Link[http://www.faqs.org/rfcs/rfc2396.html]{}{}http://www.faqs.org/rfcs/rfc2396.html\EndLink + +See issues in: + +\begin{verbatim} +\documentclass{article} + \usepackage{url} +\begin{document} + +\url{a%b c&d} + +\url{a%25b+c&d} + +\end{document} +\end{verbatim} + +\<\><<< +\expandafter\ifx\csname Url@OT1encSpecials\endcsname\relax + |<url.sty|> +\else + |<url-2004.sty|> +\fi +>>> + +\<url-2004.styNO\><<< + +>>> + +\<url.styNO\><<< +\Configure{url}{\Link[#1 class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Path.sty} +%%%%%%%%%%%%%%%%%% + +\<path config\><<< +\Configure{path} + {\HCode{<span class="path">}\bgroup + \Configure{obeylines}{}{}{}% + } + {\egroup\HCode{</span>}} +>>> + +\<configure html-speech path\><<< +|<path config|> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%% +\section{fontmath} +%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure html-speech latex\><<< +\:CheckOption{fonts} \if:Option + \Configure{textbf}{\Protect\HCode{<span class="textbf">}} + {\Protect\HCode{</span>}} + \Configure{textit}{\Protect\HCode{<span class="textit">}} + {\Protect\HCode{</span>}} + \Configure{textrm}{\Protect\HCode{<span class="textrm">}} + {\Protect\HCode{</span>}} + \Configure{textup}{\Protect\HCode{<span class="textup">}} + {\Protect\HCode{</span>}} + \Configure{textsc}{\Protect\HCode{<span class="textsc">}} + {\Protect\HCode{</span>}} + \Configure{textsf}{\Protect\HCode{<span class="textsf">}} + {\Protect\HCode{</span>}} + \Configure{textsl}{\Protect\HCode{<span class="textsl">}} + {\Protect\HCode{</span>}} + \Configure{texttt}{\Protect\HCode{<span class="texttt">}} + {\Protect\HCode{</span>}} + \Configure{emph}{\Protect\HCode{<span class="emph">}} + {\Protect\HCode{</span>}} + \Css{span.textbf { font-weight: bold; }} + \Css{span.textit { font-style: italic; }} + \Css{span.textrm { font-family: serif; }} + \Css{span.textsc { font-variant: small-caps; }} + \Css{span.textsf { font-family: sans-serif; }} + \Css{span.texttt { font-family: monospace; }} +\else + \Log:Note{for tracing of latex font commands, + use the command line option `fonts'} +\fi +>>> + +\<configure html-speech-math fontmath\><<< +\:CheckOption{fonts} \if:Option + \Configure{mathit}{\Protect\HCode{<span class="mathit">}} + {\Protect\HCode{</span>}} + \Configure{mathbf}{\Protect\HCode{<span class="mathbf">}} + {\Protect\HCode{</span>}} + \Configure{mathtt}{\Protect\HCode{<span class="mathtt">}} + {\Protect\HCode{</span>}} + \Configure{mathsf}{\Protect\HCode{<span class="mathsf">}} + {\Protect\HCode{</span>}} + \Configure{mathrm}{\Protect\HCode{<span class="mathrm">}} + {\Protect\HCode{</span>}} +\fi +>>> + + + + + + + + + +\<configure html-speech-math amsfonts\><<< +\:CheckOption{fonts} \if:Option + \Configure{mathbb}{\Protect\HCode{<span class="mathbb">}} + {\Protect\HCode{</span>}} + \Configure{mathfrak}{\Protect\HCode{<span class="mathfrak">}} + {\Protect\HCode{</span>}} +\fi +>>> + + + + + + +\subsection{1: Large Operators} + +\begin{verbatim} +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 +\end{verbatim} + + + +\<plain tex classes\><<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 +} +>>> +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<plain tex classes\><<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +} +>>> +\subsection{3: Relational Operations} + +The catcode is needed because 303A is \verb':'. + +\<plain tex classes\><<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + + + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + +\<plain tex classes\><<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + + +\subsection{6: Punctuation Marks} + +\begin{verbatim} +\mathchardef\ldotp="613A % ldot as a punctuation mark +\mathchardef\cdotp="6201 % cdot as a punctuation mark +\mathchardef\colon="603A % colon as a punctuation mark +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + + + +\<plain tex classes\><<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A +\mathchar"6201 +\mathchar"603A +?; , +} +>>> + + +\subsection{Questions} + +\begin{verbatim} +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + + +\subsection{Type 4: Math Open} +latex.ltx, fontmath.ltx, plain.tex + + + +\section{fleqn.sty} + +\<configure html-speech-math fleqn\><<< +\Configure{equation} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{equation}><tr><td>}\IgnorePar + + } + {\IgnorePar\HCode{</td><td width="5\%">}} + {\end:TTT\IgnorePar\par} +>>> +\section{emulateapj.clo} + +\<configure html-speech emulateapj\><<< +\Configure{slugcomment} + {\HCode{<div class="slugcomment">}} + {\HCode{</div>}} +\Css{.slugcomment{text-align:center;font-size:85\%; + font-style: italic;}} +\Configure{subtitle}{\HCode{<div class="subtitle">}}{\HCode{</div>}} +\Configure{submitted}{}{\Tg<br\xml:empty>} +\Configure{title}{\HCode{<h1 class="title">}}{\HCode{</h1>}} +\Css{.title{text-align:center;}} +\Configure{author} + {\IgnorePar\EndP\HCode{<div class="author">}}{\HCode{</div>}} +\Css{div.author{text-align:center;}} +\Configure{affil}{\HCode{<div class="affil"><div>}}{\HCode{</div></div>}} +\Css{.affil{text-align:center;}} +\Css{.affil div{text-align:left; + margin-right:15pt;margin-left:15pt;}} +\Configure{keywords} + {\IgnorePar\EndP\HCode{<div class="keywords"><div>}} + {\HCode{</div></div>}} +\Css{.keywords{text-align:center;}} +\Css{.keywords div{text-align:left; margin-right:15pt;margin-left:30pt; + text-indent:-15pt;}} +\Configure{subjectheadings} + {\HCode{<div class="subjectheadings"><div>}}{\HCode{</div></div>}} +\Css{.subjectheadings{text-align:center;}} +\Css{.subjectheadings div{text-align:left; + margin-right:15pt;margin-left:15pt;}} + +\Css{.abstract {margin-right:15pt;margin-left:15pt;}} +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@seccntformat{section}% + \thesection\HCode{</span>}\fi} +\Configure{section}{}{} + {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="sectionHead"\a:LRdir>} + \TitleMark{. \space}} + {\HCode{</h3>}\IgnoreIndent \par} +\ConfigureEnv{references} + {\IgnorePar\EndP\Tg<div class="references">} + {\IgnorePar\EndP\Tg</div>} {}{} +\Css{.references p { margin: 0.35em; text-indent:-2em;margin-left:2em;}} +>>> + +%%%%%%%%%%%%%%%%% +\section{vanilla} + +\<configure html-speech vanilla\><<< +|<32 amsppt, 32,4 vanilla|> +|<32,4 vanilla|> +|<config vanilla.sty 4.0t|> +>>> + + +\<32,4 vanilla\><<< +\Configure{matrix} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="matrix">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline valign="top">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +\Configure{align} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="align">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline valign="top">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> +\<config vanilla.sty 4.0t\><<< +\Configure{heading} + {}{}{\IgnorePar\EndP\HCode{<h2 class="heading">}}{\HCode{</h2>}} +\ConfigureToc{heading} + {}{\HCode{<span class="heading">}}{}{\HCode{</span><br\xml:empty>}} +\Configure{subheading} + {}{}{\EndP\HCode{<h3 class="subheading">}}{.\HCode{</h3>}} +\ConfigureToc{subheading} + {}{\HCode{<span class="subheading">}}{}{\HCode{</span><br\xml:empty>}} +\Configure{demo} + {\IgnorePar\EndP\HCode{<div class="demo"><span class="demo">}} + {\HCode{</span>}} {\IgnorePar\EndP\HCode{</div>}} +>>> + + +\<config vanilla.sty 4.0t\><<< +\Configure{aligned} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="aligned">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline valign="top">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{tugboat} +%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-speech tugboat\><<< +\Configure{head}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="headHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \EndNoFonts \IgnoreIndent \ShowPar \par} +\Configure{subhead}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h4 class="subheadHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h4>}\HtmlParOn \EndNoFonts \IgnoreIndent \ShowPar \par} +\Configure{subsubhead}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h5 class="subsubheadHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h5>}\HtmlParOn \EndNoFonts \IgnoreIndent \ShowPar \par} +>>> + + +\<configure html-speech tugboat\><<< +\Configure{figure} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="figure">}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +>>> + + +\<configure html-speech tugboat\><<< +\Configure{verbatim} + {{\everypar{}\leavevmode}\EndP + \HCode{<div class="verbatim\:ruled">}\par\ShowPar} + {{\everypar{}\leavevmode}\EndP \HCode{</div>}\par\ShowPar} +\Configure{verb} + {\HCode{<span class="verb">}} + {\HCode{</span>}} +\Css{div.verbatim p, div.verbatim-ruled p {margin:0.2em}} +\Css{div.verbatim-ruled { border-top: 1px solid black; + border-bottom: 1px solid black; }} +>>> + + +\<configure html-speech tugboat\><<< +\Configure{display-list} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="list"><!--cols: \the\@cols-->}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {\HCode{<span class="listitem">}} + {\HCode{</span>}} +\Configure{inline-list} + {\HCode{<span class="list"><!--cols: \the\@cols-->}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}\par} + {\HCode{<span class="listitem">}} + {\HCode{</span>}} +\Css{div.list p span.listitem {text-indent:-3em; margin-right:1em;}} +\Css{div.list { margin-left:3em;}} +>>> + +\<configure html-speech tugboat\><<< +\Configure{rtitle} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="rtitle">}\IgnorePar} + {\HCode{</div>}\ShowPar\par} +\Configure{title} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h2 class="title">}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{address} + {\ifx\@addressstyle\@inlinestyle + \HCode{<span class="address">}% + \else + \ifvmode \IgnorePar \fi \EndP + \HCode{<div class="address">}% + \fi } + {\ifx\@addressstyle\@inlinestyle + \HCode{</span>}% + \else + \ifvmode \IgnorePar \fi \EndP + \HCode{</div>}% + \fi } +\Configure{netaddress} + {\HCode{<span class="netaddress">}} + {\HCode{</span>}} +\Configure{author} + {\HCode{<span class="author">}} + {\HCode{</span>}} +\Configure{authorlist} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="authorlist">}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP + \HCode{</div>}\IgnoreIndent\par\ShowPar} +\Css{div.authorlist {margin-left:2em;}} +|<tugboat cmn|> +>>> + +\<tugboat cmn\><<< +\Configure{signature} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="signature">}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\ShowPar\par} +\Css{div.signature p{ margin-top:0.3em; margin-bottom:0.3em;}} +\Css{div.signature { white-space:nowrap; margin-left:70\%; }} +\Configure{signaturemark} + {\HCode{<span class="signaturemark">} } + {\HCode{</span>}} +\Css{span.signaturemark {margin-top:1.5em;}} +>>> + + + +\<tugboat cmn\><<< +\Configure{issno} + {\hbox{\HCode{<span class="issno">}}} + {\hbox{\HCode{</span>}}} +\Configure{volyr} + {\hbox{\HCode{<span class="volyr">}}} + {\hbox{\HCode{</span>}}} +\Configure{volno} + {\hbox{\HCode{<span class="volno">}}} + {\hbox{\HCode{</span>}}} +>>> + +%%%%%%%%%%%%%%%%%%%%%% +\section{ltug boat/proc} +%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech ltugboat\><<< +|<quote noindent config|> +\ConfigureEnv{verbatim} + {\par}{|<try inline par|>}{}{} +\Configure{author} + {\hbox{\HCode{<span class="author">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{address} + {\hbox{\HCode{<span class="address">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{netaddress} + {\hbox{\HCode{<span class="netaddress">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{PersonalURL} + {\hbox{\HCode{<span class="PersonalURL">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{signaturemark} + {\hbox{\HCode{<span class="signaturemark">}}} + {\hbox{\HCode{</span> }}} +>>> + + +\<configure html-speech ltugboat\><<< +\Configure{makesignature} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="makesignature">}% + \bgroup \Configure{HtmlPar}{}{}{}{}% + \Configure{rightline}{}{}% + \IgnorePar + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{signature} + {\def\||{\HCode{<br />}}% + \Configure{HtmlPar} + {}{\HCode{<br />}} + {}{\HCode{}}% + } +\Css{.makesignature{margin-left:60\%; white-space: nowrap;}} +>>> + + + + +\<configure html-speech ltugboat\><<< +|<tug boat maketitle|> +\Configure{titlex} + {\HCode{<div class="titlex">}} + {\HCode{</div>}} +\Css{div.titlex p{margin-bottom:1em;}} +|<ltugboat congif|> +>>> + + +\<ltugboat congif\><<< +\Configure{sectitle} + {\ifvmode \IgnorePar\fi + \EndP \HCode{<div class="sectitle">}% + \SaveEndP\bgroup\everypar{}} + {\egroup\RecallEndP \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +>>> + + +\<configure html-speech ltugproc\><<< +|<tug proc maketitle|> +\ConfigureEnv{abstract} + {}{} {}{} +\Configure{abstract} + {\bgroup + \HCode{<div class="abstract">}\IgnoreIndent\par} + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}\egroup} +\Css{div.abstract {margin-left:1em; margin-right:1em; + text-align:left;}} +\Css{div.maketitle div.centerline {margin-top:1em;}} +>>> + +\<configure html-speech ltugproc\><<< +\Configure{abstractHead} + {\bgroup + \Configure{centerline}{}{} + \NoFonts + \ifvmode \IgnorePar\fi \EndP \HCode{<h3>}% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</h3>}% + \EndNoFonts \egroup} +>>> + + + + +%%%%%%%%%%%%%%%%% +\section{tex4ht} +%%%%%%%%%%%%%%%%% + +\<configure html-speech tex4ht\><<< +|<config tex4ht|> +|<title for hypertext page|> +|<tex4ht doctype|> +>>> + + +\<config tex4ht\><<< +\:CheckOption{NoFonts} \if:Option + \NoFonts +\else + \Log:Note{to ignore CSS font decoration, use the `NoFonts' + command line option} +\fi +>>> + + + +\<config tex4ht\><<< +\Configure{HVerbatim+}{\z@}{\:nbsp} +\:CheckOption{jpg} \if:Option + \Configure{Picture}{.jpg} +\else + \Log:Note{for jpg bitmaps, use the `jpg' + command line option} +\fi +\:CheckOption{gif} \if:Option + \Configure{Picture}{.gif} +\else + \Log:Note{for gif bitmaps, use the `gif' + command line option} +\fi +>>> + + + + + +\<configure html-speech tex4ht\><<< +|<tex4ht HTML|> +>>> + +\<configure html-speech tex4ht\><<< +\newif\ifHCond +|<global HtmlPar|> +\Css{p.noindent { text-indent: 0em }} +\Css{p.nopar { text-indent: 0em; }} +\Css{p.indent{ text-indent: 1.5em }} +\NewConfigure{!P}[1]{\expandafter\concat:config\csname a:!P\endcsname{#1}} +\expandafter\let\csname a:!P\endcsname|=\relax +\Configure{!P}{} +>>> + +\<global HtmlPar\><<< +\Configure{HtmlPar} + {\EndP\HCode{|<show input line no|><p \csname a:!P\endcsname + class="no\ifHCond par\else indent\fi">}} + {\EndP\HCode{|<show input line no|><p \csname a:!P\endcsname + class="\ifdim \parindent=\z@ no\fi indent">}} + {\:xhtml{\Tg</p>}} + {\:xhtml{\Tg</p>}}% +>>> + +\<configure html-speech tex4ht\><<< +\NewConfigure{!BODY}[1]{\expandafter\concat:config + \csname a:!BODY\endcsname{#1}} +\expandafter\let\csname a:!BODY\endcsname|=\relax +\Configure{!BODY}{} +>>> + +\<configure html-speech tex4ht\><<< +\NewConfigure{LRdir}[1]{\concat:config\a:LRdir{#1}} +\let\a:LRdir|=\relax +\Configure{LRdir}{} +>>> + + +\<configure html-speech tex4ht\><<< + +\Css{@media print {div.crosslinks {visibility:hidden;}}} + +\Configure{halignTR} + {\HCode{ valign="baseline"}} +\Configure{halignTBL} +% % {t}{\HCode{ valign="top"}} +% % {b}{\HCode{ valign="baseline"}} +% % {c}{\HCode{ valign="middle"}} + {} + +\Configure{halign} + {\EndP\halignTB{halign}} {\HCode{</table>}} + \R:HA\r:HA\D:HA\d:HA +\Configure{pic-halign}{} +>>> + +The following should be just under LaTeX. + +\<configure html-speech tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ valign="top" style="white-space:nowrap;"}} + {=}{\HCode{ valign="baseline" style="white-space:nowrap;"}} + {||}{\HCode{ valign="middle" style="white-space:nowrap;"}} + {_}{\HCode{ valign="bottom" style="white-space:nowrap;"}} + {p}{\HCode{ style="white-space:wrap; text-align:left;"}\Protect\a:HColWidth} + {m}{\HCode{ style="white-space:nowrap; text-align:left;" valign="middle"}} + {b}{\HCode{ style="white-space:nowrap; text-align:left;" valign="baseline"}} + {} +\NewConfigure{HColWidth}{1} +\Configure{HColWidth}{} +>>> + + +The following code allows width specifications of p-columns of tables +through the command line option `p-width'. + +The command line option activates a configuration similar to the +following ones. + + \Configure{HColWidth} + {\HCode{ style="width:\HColWidth"}} + + \Configure{HColWidth} + {\HCode{ style="width: + \ifnum \HCol=1 160\fi + \ifnum \HCol=3 500\fi + "}} + +Try the above examples with the following source under different font +sizes in the browser. + + \begin{tabular}{p{2cm}cp{3cm}} + 1 2 3 1 2 3 & x & 1 2 3 1 2 3 + \end{tabular} + +The configuration provided through the command line option `p-width' +takes to some degree into account the size of fonts in use within the +HTML displays. Yet, not all browsers react properly to the size +changes. + + + + + +\<configure html-speech latex\><<< +\:CheckOption{p-width} \if:Option + |<10 em constant|> + \Configure{HColWidth} + {\tmp:dim=\HColWidth \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \HCode{ style="width:\expandafter\x:Em \the\tmp:dim em;"}} +\else + \Log:Note{for width specifications of tabular p entries, use + the `p-width' command line option or a configuration similar + to \string\Configure{HColWidth}{\string\HCode + { style="width:\string\HColWidth"}}} +\fi +>>> + +\<configure html-speech tex4ht\><<< +|<img src dir|> +\Configure{IMG} + {\ht:special{t4ht=<img\Hnewline src="|<a:imgdir|> }} + {\ht:special{t4ht=" alt="}} + {" } + {\ht:special{t4ht=" }} + {\ht:special{t4ht=\xml:empty>}} +\Css{a img { border-top: 0; border-left: 0; border-right: 0; }} +>>> + + + + +A change from the \verb'-' in the \verb'%' patterns of c to, say \verb'@', +requires a \verb'Font_hyphen: @' in the \verb'.lg' file for a match in the +css output of t4ht. + +\<configure html-speech tex4ht\><<< +\Configure{htf}{0}{+}{<span\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>} +|<img src dir|> +\Configure{htf}{1}{+}{<img\Hnewline + src="|<a:imgdir|> }{" alt="}{" class="}{\%s}{-\%d}{x-x-\%x}{" />} +\Configure{htf}{3}{+}{<img\Hnewline + src="|<a:imgdir|> }{" alt="}{" class="\%s-}{\%s}{-\%d}{x-x-\%x}% + {" align="middle" />} +>>> + + +\<configure html-speech tex4ht\><<< +\Configure{htf}{4}{+}{<span\Hnewline + class="}{}{}{}{}{small-caps">}{</span>} +\Configure{htf}{6}{+}{<u\Hnewline + class="}{}{}{}{}{underline">}{</u>} +>>> + +% \Configure{htf}{4}{+}{<span\Hnewline +% class="}{}{}{}{}{small-caps">}{</span>} +% \Configure{htf}{6}{+}{<span\Hnewline +% class="}{}{}{}{}{underline">}{</span>} + + +\<configure html-speech tex4ht\><<< +\Configure{htf}{8}{+} + {<sup class="htf">}{}{}{}{}{}{</sup>} +\Configure{htf}{10}{+} + {<span class="htf-cmbx">}{}{}{}{}{}{</span>} +\Configure{htf}{12}{+} + {<span\Hnewline class="htf-calligraphy">}{}{}{}{}{}{</span>} +\Configure{htf}{14}{+} + {<span\Hnewline class="htf-italic">}{}{}{}{}{}{</span>} +\Configure{htf}{16}{+} + {<span\Hnewline class="htf-bold">}{}{}{}{}{}{</span>} +\Configure{htf}{18}{+} + {<span\Hnewline class="htf-calligraphy-bold">}{}{}{}{}{}{</span>} +\Configure{htf}{20}{+} + {<span\Hnewline class="htf-flip-hor">}{}{}{}{}{}{</span>} +\Configure{htf}{22}{+} + {<sub class="htf">}{}{}{}{}{}{</sub>} +\Configure{htf}{24}{+}{<span\Hnewline + class="}{}{}{}{}{small-caps">}{</span>} +\Configure{htf-css}{4}{.small-caps{font-variant: small-caps; }} +\Configure{htf-css}{10}{.htf-cmbx {font-weight: bold; font-style:normal;}} +\Configure{htf-css}{12}{.htf-calligraphy {font-family:cursive}} +\Configure{htf-css}{14}{.htf-italic {font-style: italic;}} +\Configure{htf-css}{16}{.htf-bold {font-weight: bold;}} +\Configure{htf-css}{12}{.htf-calligraphy-bold {font-family:cursive ; + font-weight: bold; }} +>>> + + + +\verb'\Configure{htf}{0}{+}{<!--span class="}{\%s}{-\%s}{--\%d}{}{"-->}{<!--/span-->}' caused netscape to +loose spaces between comments. + +\<configure html-speech tex4ht\><<< +\Configure{@Picture}{\:class} +\def\:class#1{ class="#1" + \expandafter\ifx\csname a:@#1\endcsname\relax\else + \csname a:@#1\endcsname\fi} +>>> + + + + + + +\<configure html-speech tex4ht\><<< +\Css{center { margin-top:1em; margin-bottom:1em; }} +\Css{td center { margin-top:0em; margin-bottom:0em; }} +>>> + +\<configure html-speech tex4ht\><<< +\NewConfigure{Canvas}[4]{\ht:special{t4ht"% + *<span\Hnewline class="Canvas">% + *X<span style="position:relative;\Hnewline + width:\%.2f#4;"></span></span>% + **<span\Hnewline style="position:absolute; left:\%.2f#4; + top:\%.2f#4;"\Hnewline class="Canvas-xy"><span\Hnewline + class="Canvas-char">% + *</span></span>% + *<span class="Canvas-HR"\Hnewline style="position:absolute; + left:\%.2f#4;top:\%.2f#4;width:\%.2f#4;" + ><hr\Hnewline style="height:\%.2f#4;"></span>% + *#1*#2*#1*#2*#3}} +\Configure{Canvas}{0.00000290646}{0.0}{0.5}{ex} +\Css{.Canvas { position:relative; }} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Subdirectories for Images} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<a:imgdir\><<< +\a:imgdir >>> + +\<img src dir\><<< +\ifx \a:imgdir\:UnDef + \let\a:imgdir=\empty + \catcode`\:=12 + \expandafter + \def\csname :temp\endcsname#1imgdir:#2,#3|<par del|>{% + \if !#2!\else \expandafter + \def\csname a:imgdir\endcsname{#2}\fi} + \expandafter\csname :temp\expandafter\endcsname + \Preamble ,imgdir:,|<par del|>% + \catcode`\:=11 + \Log:Note{for addressing images in + a subdirectory, use the command line option `imgdir:.../'} +\fi +>>> + +A = instead of \verb+->+ works well on Windows NT but unfortunately + there's a problem with Windows 98. This OS insists on seeing = as a + delimiter and reports an error. + + + +\<configure html-speech tex4ht2\><<< +\ifx \a:imgdir\empty\else + \let\GIF:NAME=\gif:name + \def\gif:name#1{% + \let\:temp=\GIF:NAME + \ifx \gif:nm\cond:imgs + \def\:next{\edef\:tempa{#1}\expandafter\I:images \:tempa/....}% + \else + \def\:next{\GIF:NAME{#1}}% + \fi \:next} + + \def\cond:imgs{\edef\gif:nm} + + \def\I:images#1/#2....{% + \edef\:next{\noexpand\:temp{\:tempa}}% + \if .#2.\else \edef\:next{\noexpand\no:images{\:tempa}}\fi + \:next} + \def\no:images#1{\let\a:imgdir=\empty \:temp{#1}} +\fi +>>> + +Test file: + +\begin{verbatim} +\documentclass{article} +\begin{document} +\Picture{xx.png} +\Picture{http://wwww.foo.goo/xx.png} + +With image: $\left( x_{n}\right) \alpha_m$. + +\end{document} +\end{verbatim} + + + + + + + +%%%%%%%%%%%%%%%% +\section{th4} +%%%%%%%%%%%%%%%% + +\<configure html-speech th4\><<< +|<th4 for non-private use|> +\:CheckOption{th4}\if:Option \else \expandafter\endinput\fi +|<th4 sections|> +|<th4 tocs|> +|<th4 lists|> +|<th4 tables|> +|<th4 verbatim|> +|<th4 columns|> +|<th4 index|> +>>> + + +\<th4 for non-private use\><<< +\:CheckOption{javascript} + \if:Option \else\:CheckOption{th4}\fi +\if:Option + \Configure{JavaScript} + {\HCode{<script type="text/JavaScript" ><!--\Hnewline}} + {\HCode{//-->\Hnewline </script>}} +\fi +>>> + + +\<th4 for non-private use\><<< +\:CheckOption{draw} \if:Option \:CheckOption{th4} \if:Option + \Configure{Fig} + {\ifx \AltFig\empty \Picture*{ \a:@Picture{Fig}}% + \else \Picture*[\AltFig]{ \a:@Picture{Fig}}\fi} + {\EndPicture} +\fi \fi +>>> + + +\<th4 columns\><<< +\Configure{Columns} + {\IgnorePar\EndP + \HCode{<table \Hnewline cellspacing="15"><tr valign="top">}} + {\HCode{</tr></table>}} + {\HCode{<td>}\ColMag{1.03}} + {\IgnorePar\EndP\HCode{</td>}} +>>> + +\<th4 index\><<< +\:CheckOption{index}\if:Option + \Configure{index} + {\bgroup + \Configure{Columns} + {\IgnorePar\EndP + \HCode{<table \Hnewline class="index" width="100\%" + cellspacing="15"><tr valign="top">}} + {\HCode{</tr></table>}} + {\HCode{<td>}\ColMag{1.1}} + {\IgnorePar\EndP\HCode{</td>}} + \Columns{2}\IndexFonts} + {\EndColumns \egroup} + {\bgroup\IgnorePar\EndP + \expandafter\ifx \csname prev:A\endcsname\relax + \else \hfil\break \Tg<br />\par\IgnorePar \fi \IndexSec} + {\egroup~~~~} + {\bgroup\hfil\break\Tg<br />~~~}{\egroup~~~~} + {~}{} + \def\Idx:ch{0} + \def\IndexSec#1{% + \tmp:cnt=`#1\relax + \ifnum \tmp:cnt>`Z\advance\tmp:cnt by -32 \fi + \ifnum \tmp:cnt<`A\else \ifnum \tmp:cnt>`Z \else + \ifnum \Idx:ch<\tmp:cnt + \bgroup + \Configure{centerline} + {\HCode{<div\Hnewline class="IndexSec">}}{\HCode{</div>}} + \leftline{\bf \char\tmp:cnt }% + \global\let\prev:A|=\:UnDef + \xdef\Idx:ch{\the\tmp:cnt}% + \egroup + \fi + \fi \fi #1% + } + \Css{.IndexSec {margin-top:1em; margin-bottom:0.5em;}} +\fi +>>> + + +\<th4 sections\><<< +\Configure{Part}{}{}{% + \html:rightskip + \bgroup + \html:rightskip \ht:everypar{} + \IgnorePar\EndP\HCode{<h1 class="PartHead">}\HtmlParOff} + {\HCode{</h1>}\HtmlParOn\IgnoreIndent \egroup\par\ShowPar \IgnoreIndent} +\Configure{LikeSection}{}{} + {\IgnorePar \EndP\HCode{<h3 class="LikeSectionHead">}} + {\HCode{</h3>}\IgnoreIndent + |<addr for Tag and Ref of Sec|>% + \par \IgnoreIndent + } +\ConfigureMark{Section} + {\theSection} +\Configure{Section} + {}{} + {\IgnorePar\EndP\HCode{<h3 class="SectionHead">}% + \gHAdvance\SectionCounter |by 1 \TitleMark\space + }{\HCode{</h3>}\IgnoreIndent + |<addr for Tag and Ref of Sec|>% + \par \IgnoreIndent + } +\Configure{SubSection} + {}{} + {\par \IgnorePar\EndP\HCode{<h3 class="SubSectionHead">}} + {\HCode{</h3>}\IgnoreIndent \ShowPar} +>>> + + + +\<th4 sections\><<< +\ConfigureMark{Chapter} + {Chapter \theChapterCounter} +\Configure{Chapter} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="ChapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\IgnorePar} +\ConfigureMark{Appendix}{Appendix \theChapterCounter} +\Configure{Appendix} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="AppendixHead"\a:LRdir>}% + \TitleMark {\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\IgnorePar} +\Configure{LikeChapter} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="LikeChapterHead"\a:LRdir>}\noindent + \bgroup \def\uppercase##1{##1}} + {\egroup \HCode{</h2>}\IgnoreIndent\IgnorePar } +>>> + +\<th4 sections\><<< +\Configure{+CutAt}{Chapter}{[}{] } +\Configure{+CutAt}{Section}{[}{] } +\Configure{+CutAt}{LikeSection}{[}{] } +\Configure{+CutAt}{SubSection}{[}{] } +>>> + + +\<th4 tocs\><<< +\ConfigureToc{Chapter} + {\HCode{<span class="ChapterToc">}} + {~} + {} + {\HCode{</span><br\xml:empty>}} +\ConfigureToc{Section} + {\HCode{<span class="SectionToc">}~~~} + {~} + {} + {\HCode{</span><br\xml:empty>}} +\ConfigureToc{LikeSection} + {} + {\HCode{<span class="LikeSectionToc">}~~~} + {} + {\HCode{</span><br\xml:empty>}} +\ConfigureToc{SubSection} + {} + {\HCode{<span class="SubSectionToc">}~~~~~~} + {} + {\HCode{</span><br\xml:empty>}} +>>> + + +\<th4 verbatim\><<< +\Configure{Verbatim} + {\ifvmode \IgnorePar\fi + \HAssign\Verb:N = 0 + \EndP\HCode{<div class="Verbatim">}} + {\IgnorePar\HCode{</div>}\par\ShowPar} + {\HAdvance\Verb:N by 1 \ifnum \Verb:N>1 \HCode{<br />}\fi} + {\:nbsp} +\Css{div.Verbatim { font-family: monospace; white-space: nowrap; }} +\Css{body .Verbatim { margin: 1em; }} +>>> + +\<th4 lists\><<< +\Configure{buttonList+} + {\ifnum \ListCounter>1 \IgnorePar\EndP\HCode{<hr\xml:empty>}\fi + \ShowPar\par\IgnoreIndent + } + {. #1\ShowPar} {\IgnorePar\EndP} {\ListCounter} +>>> + +\<th4 lists\><<< +\Configure{UList} + {\IgnorePar\EndP\def\:tempB{disc}% + \ifx\:tempA\:tempB \else \def\:tempB{square}\fi + \ifx\:tempA\:tempB \else \def\:tempB{circle}\fi + \hbox{\IgnorePar\EndP\HCode{<ul + \ifx\:tempA\:tempB type="\:tempA" \fi \:UL:>}}} + {\ht:everypar{}\EndP\HCode{</li></ul>}\ShowPar\par} + {\ifnum \ListCounter>1 \EndP\HCode{</li>}\fi \hfil\break \HCode{<li>}} +\Configure{OList} + {\IgnorePar\EndP\hbox{\HCode{<ol + \ifx \:temp\empty \else type="\:temp" \fi + \:OL:>}}} + {\ht:everypar{}\EndP + \HCode{\ifnum \ListCounter=0<li>\fi </li></ol>}\ShowPar\par} + {\ifnum \ListCounter>1 \EndP\HCode{</li>}\fi \hfil\break \HCode{<li>}} +>>> + + +\<th4 lists\><<< +\Configure{Item}{}{\par}% +\Configure{DList} + {\IgnorePar\EndP\HCode{<dl \:DL:>}} + {\ht:everypar{}\EndP\HCode{\End:dd</dl>}% + \ShowPar\par } + {\IgnorePar\EndP\ifnum \ListCounter>1 \HCode{</dd>}\fi + \HCode{<dt>}} + {\HCode{</dt><dd>}\ShowPar \def\End:dd{</dd>}\hfil\break} +\Configure{buttonList}{}{} + {}{.\ #1 }{\ListCounter} +>>> + + + +\<th4 tables\><<< +\HAssign\TableNo=0 +\Configure{HTable} + {\gHAdvance\TableNo by 1 + \ht:everypar{}\EndP\HCode{<table id="TBL-\TableNo" + \Hnewline\TABLE:\:HTable:>}% + \def\BR{\HCode{<br\xml:empty>}}} + {\HCode{</table>}} + {\HCode{<tr \:TR>}}{\HCode{</tr>}} + {\ht:everypar{}\HCode{<\TD:typ\TD:more\Hnewline>}} + {\ht:everypar{}\HCode{</\TD:typ>}} +\let\:HTable:|=\empty +\Configure{HTable+} + {B}{ cellspacing="0" cellpadding="3pt" frame="border" border="1" } + {<}{ align="left" } + {>}{ align="right" } + {-}{ align="center" } + {^}{ valign="top" } + {||}{ valign="middle" } + {_}{ valign="bottom" } + {=}{ valign="baseline" } + {}{} +>>> + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\section{nicefrac} +%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech nicefrac\><<< +\Configure{nicefrac} + {\HCode{<sup class="nicefrac">}} + {\HCode{</sup>}/\HCode{<sub class="nicefrac">}} + {\HCode{</sub>}} +>>> + + +\<configure html-speech bibtopic\><<< +\ConfigureEnv{btSect} + {\ifvmode \IgnorePar\fi \EndP\HCode{<div class="btSect">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} + {}{} +>>> + + + + + + + + +\section{ntheorem} + +\<configure html-speech ntheorem\><<< +|<32,4 ntheorem|> +>>> + +\<32,4 ntheorem\><<< +\ConfigureEnv{Anmerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Anmerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Beispiel} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Beispiel">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Bemerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Bemerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Beweis} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Beweis">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Corollary} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Corollary">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Definition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Definition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Example} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Example">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Korollar} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Korollar">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Lemma} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Lemma">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Proof} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Proof">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Proposition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Proposition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Remark} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Remark">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Satz} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Satz">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Theorem} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Theorem">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{anmerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="anmerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{beispiel} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="beispiel">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{bemerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="bemerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{beweis} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="beweis">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{corollary} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="corollary">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{definition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="definition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{example} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="example">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{korollar} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="korollar">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{lemma} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="lemma">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{proof} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="proof">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{proposition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="proposition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{remark} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="remark">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{satz} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="satz">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{theorem} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="theorem">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +>>> + +\section{hyperref} + +\<config hyperref form 4\><<< +\Configure{Form} + {\IgnorePar\EndP\leavevmode \Tg<form \Hnewline \Attributes>} + {\IgnorePar\EndP\Tg</form>} +>>> + +\<configure html-speech hyperref\><<< +|<config hyperref form 4|> +|<hyperref shared|> +|<hyperref TextField|> +|<hyperref multiline|> +|<hyperref password|> +|<hyperref radio|> +|<hyperref on...|> +\NewConfigure{::action}{1} +\Configure{::action} + {\edef\Attributes{\Attributes\space action="\AttributeVal"}} +\NewConfigure{::method}{1} +\Configure{::method} + {\edef\Attributes{\Attributes\space method="\AttributeVal"}} +\NewConfigure{PushButton::}{1} +\Configure{PushButton::} + {\leavevmode\Tg<input type="button" \Attributes\space/>} +\NewConfigure{Reset::}{1} +\Configure{Reset::} + {\leavevmode\Tg<input type="reset" \Attributes\space/>} +\NewConfigure{Submit::}{1} +\Configure{Submit::} + {\leavevmode\Tg<input type="submit" \Attributes\space/>} +\NewConfigure{CheckBox::}{2} +\Configure{CheckBox::} + {\leavevmode\Tg<input type="checkbox" \Attributes\space/>}{} +\NewConfigure{CheckBox::checked}{2} +\Configure{CheckBox::checked} + {\leavevmode\Tg<input type="checkbox" checked="checked" + \Attributes\space/>}{} +\HAssign\form:id=0 +>>> + +\<hyperref shared\><<< +\NewConfigure{::value}{1} +\Configure{::value} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +\NewConfigure{::name}{1} +\Configure{::name} + {\edef\Attributes{\Attributes\space name="\AttributeVal"}} +\NewConfigure{::default}{1} +\Configure{::default} + {\let\::default=\AttributeVal} +\def\get:int#1.#2//{\tmp:cnt=#1 } +>>> + +\<\><<< +\NewConfigure{::borderwidth}{1} +\Configure{::borderwidth} + {\Css{div\#form-\form:id {border-width: \AttributeVal; + border-style:solid;}}} +\NewConfigure{::bordercolor}{1} +\Configure{::bordercolor} + {\expandafter\get:colors\AttributeVal//% + \Css{div\#form-\form:id {border-color:\AttributeVal}}} +\def\get:colors#1 #2 #3//{% + \get:color{#1}\edef\AttributeVal{\the\tmp:cnt\%}% + \get:color{#2}\edef\AttributeVal{\AttributeVal, + \the\tmp:cnt\%}% + \get:color{#3}\edef\AttributeVal{rgb(\AttributeVal, + \the\tmp:cnt\%)}% +} +\def\get:color#1{% + \tmp:dim=#1pt \multiply\tmp:dim by 100 + \expandafter\get:int\the\tmp:dim//} +>>> + + + +\<hyperref on...\><<< +\def\:tempc#1{% + \NewConfigure{::#1}{1}% + \Configure{::#1}% + {\edef\Attributes{\Attributes\space #1="\AttributeVal"}}} +\:tempc{onclick} +\:tempc{onblur} +\:tempc{onchange} +\:tempc{onclick} +\:tempc{ondblclick} +\:tempc{onfocus} +\:tempc{onkeydown} +\:tempc{onkeypress} +\:tempc{onkeyup} +\:tempc{onmousedown} +\:tempc{onmousemove} +\:tempc{onmouseout} +\:tempc{onmouseover} +\:tempc{onmouseup} +\:tempc{onselect} +>>> + +\<hyperref TextField\><<< +\NewConfigure{TextField::}{2} +\Configure{TextField::}{}{ \Tg<input type="text" \Attributes />} +\NewConfigure{TextField::width}{1} +\Configure{TextField::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space size="\the\tmp:cnt"}} +\NewConfigure{TextField::default}{1} +\Configure{TextField::default} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +>>> +\<hyperref multiline\><<< +\NewConfigure{TextField::multiline}{2} +\Configure{TextField::multiline} + {} + { \Tg<textarea + \Attributes>\expandafter\set:ln\multiline:value,|<par del|>% + \global\let\multiline:value=\empty \Tg</textarea>} + +\let\multiline:value=\empty +\def\set:ln#1,#2|<par del|>{#1% + \def\:temp{#2}\ifx \:temp\empty \else + \hfil\break \def\:temp{\set:ln#2|<par del|>}% + \fi \:temp} + +\NewConfigure{multiline::value}{1} +\Configure{multiline::value} + {\let\multiline:value=\AttributeVal} + +\NewConfigure{multiline::width}{1} +\Configure{multiline::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space cols="\the\tmp:cnt"}} + +\NewConfigure{multiline::height}{1} +\Configure{multiline::height} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space rows="\the\tmp:cnt"}} +>>> + +\<hyperref password\><<< +\NewConfigure{TextField::password}{2} +\Configure{TextField::password} + {}{\Tg<input type="password" \Attributes />} +>>> + +\<hyperref shared\><<< +\def\Default:Checked#1{% + \ifx #1\Un:Def \let\:temp=\empty \else + \let\:temp=\relax + \let\:tempa=\relax + \edef\:temp{\def\:temp####1#1#1####2//{\def\:temp{####2}}% + \:temp \AttributeVal #1=#1#1//% + \def\:tempa####1=####2//{\def\noexpand\AttributeVal{####1}}% + \:tempa\AttributeVal=//}% + \:temp + \fi +} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::radio}{5} +\Configure{ChoiceMenu::radio} + {\IgnorePar\EndP\leavevmode + \Tg<div id="form-\form:id">\gHAdvance\form:id by 1 } + { }{\IgnorePar\EndP\Tg</div>} + {\Default:Checked\radio::default + \Tg<input\Hnewline type="radio" + \ifx \:temp\empty\else checked="checked" \fi + \Attributes\space />} + {} +\NewConfigure{radio::default}{1} +\Configure{radio::default} + {\let\radio::default=\AttributeVal} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::combo}{5} +\Configure{ChoiceMenu::combo} + {} + {~\Tg<select\Hnewline \Attributes \Hnewline size="1">} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} + {\Tg</option>} +\NewConfigure{combo::default}{1} +\Configure{combo::default} + {\let\combo::default=\AttributeVal} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::popdown}{5} +\Configure{ChoiceMenu::popdown} + {}{\HCode{\Hnewline <select \Attributes \Hnewline size="1">}} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +>>> + +The \verb'size="1"' makes the select a popout memnu +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::}{5} +\Configure{ChoiceMenu::} + {}{\HCode{\Hnewline <select\Hnewline \Attributes>}}{\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +\NewConfigure{::menulength}{1} +\Configure{::menulength} + {\edef\Attributes{\Attributes\space size="\AttributeVal"}} +>>> + + +\<configure html-speech hyperref\><<< +\ifx \@baseurl\@empty \else + \Configure{@HEAD} + {\HCode{<base href="\:baseurl" />}} + \let\:baseurl\@baseurl + \let\@baseurl=\@empty +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{web} +%%%%%%%%%%%%%%%%%%%% + +\<configure html-speech web\><<< +\Configure{webversion} {\\} {} +\Configure{webuniversity} + {\Tg<div class="webuniversity">} {\Tg</div>} +\Css{div div.webuniversity {color : rgb(0\%,0\%,80\%); + margin-bottom: 1em; text-align: center;}} + +\Configure{maketitle} + {\IgnorePar\EndP\par\Tg<div class="maketitle">} + {\IgnorePar\EndP\par\Tg</div>} +\Css{div.maketitle {text-align: center; + margin-left: 3em; margin-right: 3em; }} + +\Configure{HColor}{webgreen}{rgb(0\%,50\%,0\%)} +\Configure{HColor}{webbrown}{rgb(60\%,0\%,0\%)} +\Configure{HColor}{webyellow}{rgb(98\%,92\%,73\%)} +\Configure{HColor}{webgray}{rgb(75.3\%,75.3\%,75.3\%)} +\Configure{HColor}{webblue}{rgb(0\%,0\%,80\%)} +>>> + +\section{exerquiz} + +\<configure html-speech exerquiz\><<< +|<32,4 exerquiz|> +|<4 exerquiz|> +>>> + +\<32,4 exerquiz\><<< +\Configure{Form}{}{} +\Configure{@HEAD}{\input exerqz.4ht } +\Css{.onClick {color:green;}} +\Configure{TextField::}{}{% + \IgnorePar \EndP + \HCode{<form action="." name="form\quiz@total"><input + type="text"\Hnewline \Attributes /></form>}% +} +\Configure{javascript}{JavaScript:} +>>> + +\<32,4 exerquiz\><<< +\ifx \eq@sqrtmsg\:UnDef + \def\eq@sqrtmsg{"Right!"} +\fi +\ifx \eq@sqwgmsg\:UnDef + \def\eq@sqwgmsg{"Wrong!"} +\fi +\Configure{shortquiz} + {(\alph{quizno})} + {alert(\eq@sqrtmsg,3);} + {alert(\eq@sqwgmsg,3);} +\Configure{quiz} + {(\alph{quizno})} + {qthis=this; + ProcessQuestion (\ANS,"\alph{quizno}",\thequestionno, + 1,"\eq@bqlabel",\Quiz:N)} + {InitializeQuiz("\quiz@total", + \ifeq@nocorrections0\else1\fi,\Quiz:N,\LikeRef{ans-\Quiz:N}, + "(",")")} + {QuizEnd("\:bqlabel",\thequestionno,"\quiz@total",\Quiz:N)} + {Corrections("\eq@RC","\eq@AC",\Quiz:N)} +\Configure{quiz*} + {[]} + {qthis=this; + ProcessQuestion (\ANS,"[]",\thequestionno, + 0,"\eq@bqlabel",\Quiz:N)} + {InitializeQuiz("\quiz@total", + \ifeq@nocorrections0\else1\fi,\Quiz:N, + \LikeRef{ans-\Quiz:N},"","")} +>>> + +\<-NOPE\><<< +\Configure{quiz*} + {qthis=this; + ProcessQuestion(\ANS,"\alph{quizno}",\thequestionno, + 0,"\eq@bqlabel",\Quiz:N)} +>>> + + +\<32,4 exerquiz\><<< +\ConfigureEnv{shortquiz} + {\IgnorePar\EndP\leavevmode} {} {}{} +\Configure{ReturnTo}{\begin{flushright}}{\end{flushright}} +>>> + +\<4 exerquiz\><<< +\ConfigureList{questions}% + {\EndP\HCode{<ol type="1" class="questions"\Hnewline + >}|<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</li></ol>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="questions">}\AnchorLabel} +>>> + + + +\<4 exerquiz\><<< +\def\a:temp#1#2{% + \ifOption{#2}{\def\a:charset{#2}}{} + \def\:tempa{#1}\ifx \eqOutOf\:tempa + \def\A:charset{#2}\ifx \A:charset\empty\else + \def\A:charset{#2}% + \fi\fi} +\a:temp{sur}{charset=iso-8859-2} +\a:temp{von}{charset=iso-8859-2} +>>> + + + +\<exerqz\><<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% exerqz.4ht |version % +% Copyright (C) |CopyYear.1999. % +% Donald P. Story & Eitan M. Gurari % +|<TeX4ht copyright|> +|<exerqz's vars|> +|<predefined exerquiz javascript|> +>>> + +\<predefined exerquiz javascript\><<< +\JavaScript-$ +var QuizInitialized; +var EndQuizPushed; +var CurrentQuizNo; +var Responses; +var ResponsesAddr; +var Cor; +var CorAddr; +var qthis; +var prev_notify; +function InitializeQuiz(qtfield,mark,quizN,ansN,lbrc,rbrc) { + Score=0; + QuizInitialized=1; + CurrentQuizNo=quizN; + eval( 'document.form'+qtfield+'.'+qtfield+'.value="$eqScore";' ) + RightWrong=new Array(); + |<hide sol|> + Responses=new Array(); + ResponsesAddr=new Array(); + |<hide cor|> + Cor=new Array(); + CorAddr=new Array(); + EndQuizPushed=0; + for(var i=1; i<=ansN; i++){ + RightWrong[i]=0; + } +} +\EndJavaScript +>>> + +\<show sol\><<< +if( ResponsesAddr[probno] != null ){ + if (notify == 0 ) { + ResponsesAddr[probno].value=Responses[probno]; + } else { + ResponsesAddr[probno].value="("+Responses[probno]+")"; +} } +qthis.value = "#"; ResponsesAddr[probno]=qthis; +>>> + +\<hide sol\><<< +for(var i in Responses){ + if (prev_notify == 0 ) { + ResponsesAddr[i].value=Responses[i]; + } else { + ResponsesAddr[i].value="("+Responses[i]+")"; +} } +>>> + +% if( Responses != null ){ +\<record cor\><<< +var k=Cor.length; +eval('Cor[k]=thisform'+quizN+'.ans'+quizN+'x'+i+'.value'); +eval('CorAddr[k]=thisform'+quizN+'.ans'+quizN+'x'+i); +>>> +\<hide cor\><<< +for(var i in Cor){ + CorAddr[i].value=Cor[i]; +} +>>> + +% if( Cor != null ){ + +\<predefined exerquiz javascript\><<< +\JavaScript +function href(addr) { top.location.href=addr; } +\EndJavaScript +>>> + +% function href(addr) { window.navigate(addr); } + + +\<predefined exerquiz javascript\><<< +\JavaScript +function Corrections(lbl1,lbl2,quizN) { + if ( (EndQuizPushed == 1) && ( CurrentQuizNo == quizN ) ){ + for(var i in RightWrong){ + if( (RightWrong[i]==0) ){ + |<record cor|> + eval('thisform'+quizN+'.ans'+quizN+'x'+i+'.value= "*"'); + } } +} } +\EndJavaScript +>>> + +\<32,4 exerquiz\><<< +\immediate\write16{% +***********************************************************\Hnewline +The `\eq@CA' button fails under Netscape, \Hnewline +due to a code of the following form.\Hnewline +\Hnewline +<html><head><title>?\Hnewline +\space \Hnewline +\space \space \space \Hnewline +\Hnewline +\space \space \Hnewline +\space \space \space \Hnewline +\space \space \space \Hnewline +\space \space \space \Hnewline +\Hnewline + \Hnewline + \Hnewline + \Hnewline +\Hnewline +If you know how to fix the function f() above for Netscape,\Hnewline +without changing the id attribute names, please consider\Hnewline +emailing the fix to gurari@cse.ohio-state.edu. Thanks\Hnewline +***********************************************************} +>>> +\<<< +\JavaScript +function LinkTo(addr) { +} +\EndJavaScript +>>> + +\<<< +\def\eqXInitQuizMsg{\hbox{% + \let\noexpand|=\string + \csname eq@InitQuizMsg\endcsname}} +\expandafter\ifx \csname eq@InitQuizMsg\endcsname\relax + \expandafter\def\csname eq@InitQuizMsg\endcsname{ + "You must initialize the Quiz! Click on "+bqlabel} +\fi +\def\eqXQuizTotalMsg{\hbox{% + \let\noexpand|=\string + \def\thequestionno{"+thequestionno+"}% + \csname eq@QuizTotalMsg\endcsname}} +\expandafter\ifx \csname eq@QuizTotalMsg\endcsname\relax + \expandafter\def\csname eq@QuizTotalMsg\endcsname{"Score: ' + +Score +' out of '+thequestionno+'"} +\fi +\def\eqXMadeChoice{\hbox{% + \let\noexpand|=\string + \csname eq@MadeChoice\endcsname}} +\expandafter\ifx \csname eq@MadeChoice\endcsname\relax + \expandafter\def\csname eq@MadeChoice\endcsname{ + "You have already made a choice. Your choice was (" + +Responses[probno]+")." + +" Do you want to change it?"} +\fi +\expandafter\ifx \csname eqScore\endcsname\relax + \def\eqScore{Score:} +\fi +>>> + +The \verb'Wollen Sie dies \noexpand\344ndern?' is a problem because it +takes the \verb'\344' into \verb'44'. A \verb'\string' will properly +produce \verb'\344'; hence, the above dirty trick. + +\begin{verbatim} +Doesn't IE escape in the way that Acrobat JavaScript does? + +Another possibility is to use String.fromCharCode() + +Convert Octal \344 to decimal 228, then use +String.fromCharCode(228) + + + How to deliver browser specific content using JavaScript + + + + +\end{verbatim} + +\<<< +\JavaScript-$ +function QuizEnd(bqlabel,thequestionno,quiztotal,quizN){ + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + eval( 'document.form'+quiztotal+'.'+quiztotal+ + '.value=$eqXQuizTotalMsg'); + QuizInitialized=-1; + EndQuizPushed=1; +} } +\EndJavaScript + +\JavaScript-$ +function ProcessQuestion + (key,letterresp,probno,notify,bqlabel,quizN) { + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + | + prev_notify = notify; +} } +\EndJavaScript +>>> + +\<<< +if (Responses[probno] == null) { + if (key==1) { + Score++; + RightWrong[probno]=1; + } + else + RightWrong[probno]=0; + | + Responses[probno]=letterresp; +} +else { + if (notify==0) + User=true; + else + User=confirm($eqXMadeChoice); + if (User) { + if (RightWrong[probno]==1) { + if (key==0) { + Score -= 1; + RightWrong[probno]=0; + | + Responses[probno]=letterresp; + } + } + else { + if (key==1) { + Score++; + RightWrong[probno]=1; + | + Responses[probno]=letterresp; + } + else { + RightWrong[probno]=0; + | + Responses[probno]=letterresp; + } + } + } +} +>>> + + + + + + + + + + + +\section{tex4ht} + +\<<< +\Configure{TITLE+}{\HCode{\jobname.\:html}} +>>> + +\<0,32,4 latex\><<< +\ifTag{TITLE+}{\Configure{TITLE+}{\LikeRef{TITLE+}}}{} +>>> + +Was \verb'\ifTag{TITLE+}{\Configure{TITLE+}{\HCode{\LikeRef{TITLE+}}}}{}', +but the \verb'\HCode' leaves \verb'\Protect' in for the latter comamnds which arrive +to the title--the original motivation for the \verb'\HCode' was to +protect the title from undesirable tags. Something like \verb+H\`ello+ can +send it. It now sems to be more trouble than help. + + + + +\<config tex4ht\><<< +|<0,32,4 preambles|> +\ifx \a:FontCss:\:UnDef + \Configure{FontCss}{Font\string_Css##1} + {Font\string_Css\string_Plus\space##1} +\fi +\expandafter\ifx \csname aa:Css\endcsname\relax + \Configure{Css}{Css: ##1} +\fi +\:CheckOption{edit} \if:Option + \Configure{edit}{\HCode{<strong><}}{\HCode{></strong>}} + {<strong><}{></strong>} +\fi +\:CheckOption{hooks++} \if:Option +\else \:CheckOption{hooks+} \if:Option +\else \:CheckOption{hooks} \if:Option +\fi\fi\fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi +\Configure{ExitHPage}{exit}{exit }{} +\Configure{TocLink}{\Link{#2}{#3}#4\ifvmode\IgnorePar\fi\EndLink} +\Configure{MiniHalign}{\hlg:a}{\hlg:b}\hlg:c\hlg:d{\hlg:e}\hlg:f +\:CheckOption{no-halign} \if:Option \else + \Configure{noalign-}{}{} +\fi +\Configure{PictureAlt*+} + {\let\sv:HtmlPar|=\HtmlPar \let\HtmlPar|=\empty + |<postscript for /Picture|>% + |<tex halign and cr/crcr|>% + \NoFonts\csname PauseMathClass\endcsname \SUBOff \SUPOff + \let\HCode|=\:gobble |%\offinterlineskip|% + \let\EndPicture|=\empty} + {\let\HCode|=\:HCode + \let\EndPicture|=\:UnDef \let\HtmlPar|=\sv:HtmlPar \SUBOn \SUPOn + \csname EndPauseMathClass\endcsname \EndNoFonts + |<tex4ht halign and cr/crcr|>% + |<delay postscript|>} +>>> + + +Was \verb+\SUBOff \SUPOff+. Any problems? + +\<postscript for /Picture\><<< +\def\PsCode##1{{\ht:special{\PsCodeSpecial##1}}}% +>>> + +\<tex halign and cr/crcr\><<< +\iffalse{\fi +\let\sv:halign|=\halign +\let\sv:cr|=\cr +\let\sv:crcr|=\crcr +\iffalse}\fi +\RecallTeXcr \let\halign |=\TeXhalign +>>> + +\<tex4ht halign and cr/crcr\><<< +\iffalse{\fi +\let\halign|=\sv:halign +\let\cr|=\sv:cr +\let\crcr|=\sv:crcr +\iffalse}\fi +>>> + +\<delay postscript\><<< +\let\PsCode|=\relax +>>> + +\<config tex4ht\><<< + \Configure{writetoc}{} +>>> + +\<config tex4ht\><<< +\Configure{CutAtTITLE+}{} +\Configure{HPageTITLE+}{} +\Configure{AtBeginDocument} + {\edef\recallcatcodes{% + \catcode`\noexpand\_|=\the\catcode`\_ + \catcode`\noexpand\^|=\the\catcode`\^ }% + \catcode`\_=8\catcode`\^=7} + {\recallcatcodes} +>>> + +\<config tex4ht\><<< + + +\Configure{halignTB}{\HCode{<table }}{\HCode{>}} +\def\R:HA{\HCode{<tr \Hnewline}\halignTR\HCode{>}} +\def\r:HA{\HCode{</tr>}} +\def\D:HA{|<td save EndP|> \HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}\ShowPar\par} +\def\d:HA{\ifvmode \IgnorePar \fi \EndP\HCode{</td>}|<td recall EndP|>} +\Configure{HVerbatim+}{\z@}{\:nbsp} +\Configure{CssFile}{\jobname.css} + {/* \aa:CssFile\space from \jobname.tex (TeX4ht) */} +\Configure{Picture+}{}{} +\Configure{Picture*}{}{} +\Configure{Picture-alt}{[Picture]} +\Configure{Needs}{l. + \the\inputlineno\space--- needs --- #1 ---} +\Configure{Needs-}{l. + \the\inputlineno\space--- needs --- #1 ---} +|<yes css|> +>>> + + +\<td save EndP\><<< +\SaveEndP +>>> + +\<td recall EndP\><<< +\RecallEndP +>>> + + + +\<config tex4ht\><<< +\Configure{moveright}{\leavevmode\endgraf } +\Configure{HChar}{x} +>>> + + +\<yes css\><<< + \def\SPAN:#1{\HCode{<span class="#1">}} + \def\EndSPAN:{\HCode{</span>}} + \def\DIV:#1{\HCode{<div class="#1">}} + \def\EndDIV:{\HCode{</div>}} +>>> + + + +\section{Interpretation for the Entries} + + + + +Use \verb'\ ', and not \verb'~', in style files, because some +users redefine the latter macro. + +\<html latex tocs\><<< +\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +>>> + + +\section{latin1.def} + + +\<configure html-speech latin1\><<< +\def\HTitleText#1{% + \bgroup + \uccode`\~#1% + \uppercase{% + \egroup + \edef~{\string~}% + }% +} +\Configure{@TITLE} + {\DeclareInputText{168}{"}% + \HTitleText{209}% + \HTitleText{194}% + \HTitleText{210}% + \HTitleText{195}% + \HTitleText{211}% + \HTitleText{196}% + \HTitleText{212}% + \HTitleText{197}% + \HTitleText{213}% + \HTitleText{198}% + \HTitleText{214}% + \HTitleText{199}% + \HTitleText{215}% + \HTitleText{200}% + \HTitleText{216}% + \HTitleText{201}% + \HTitleText{217}% + \HTitleText{202}% + \HTitleText{218}% + \HTitleText{203}% + \HTitleText{219}% + \HTitleText{204}% + \HTitleText{220}% + \HTitleText{205}% + \HTitleText{221}% + \HTitleText{206}% + \HTitleText{222}% + \HTitleText{207}% + \HTitleText{223}% + \HTitleText{224}% + \HTitleText{240}% + \HTitleText{225}% + \HTitleText{241}% + \HTitleText{226}% + \HTitleText{242}% + \HTitleText{227}% + \HTitleText{243}% + \HTitleText{228}% + \HTitleText{244}% + \HTitleText{229}% + \HTitleText{245}% + \HTitleText{230}% + \HTitleText{246}% + \HTitleText{231}% + \HTitleText{247}% + \HTitleText{232}% + \HTitleText{248}% + \HTitleText{233}% + \HTitleText{249}% + \HTitleText{234}% + \HTitleText{250}% + \HTitleText{235}% + \HTitleText{251}% + \HTitleText{236}% + \HTitleText{252}% + \HTitleText{237}% + \HTitleText{253}% + \HTitleText{238}% + \HTitleText{254}% + \HTitleText{239}% + \HTitleText{255}% +} + +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{syntax} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-speech syntax\><<< +\ConfigureEnv{grammar} + {\Picture*{}} {\EndPicture} + {}{} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{???????????} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<article,report,book\><<< +|<quotations|> +\Configure{listof}{}{}{}{\HCode{<br\xml:empty>}}{}{} +>>> + +\<quotations\><<< +\ConfigureEnv{quotation} + {}{} + {\IgnorePar\EndP\HCode{<div class="quotation">}} + {\IgnorePar\EndP\HCode{</div>}\ShowPar} +\Css{.quotation {margin-bottom:0.25em; + margin-top:0.25em; margin-left:1em; }} +>>> + + + + + + + + + + + + + + + + +\<PICT dot tabbing\><<< +\:CheckOption{pic-tabbing'} \if:Option + \edef\:temp{\LikeRef{|<tabbing tag|>.}}% + \def\:tempa{.}\ifx \:temp\:tempa + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} + \fi +\fi +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{titlesec} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-speech titlesec\><<< +\ifx \ttl@assign@ii\:Undef + |<pre 2005 titlesec|> +\fi +>>> + + +\<pre 2005 titlesec\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \csname thetitlesection\endcsname\fi} +\Configure{section}{}{} + {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="sectionHead"\a:LRdir>} + \TitleMark\space} + {\HCode{</h3>}\IgnoreIndent\par} +\Configure{likesection}{}{} + {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}} + {\HCode{</h3>}\IgnoreIndent\par} +>>> + + + + + + + +\section{fontmath.ltx} + + +\<configure html-speech-math fontmath\><<< + +|<html-speech-math plain,fontmath|> +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\section{tex4ht} + + +\<configure html-speech-math tex4ht\><<< + +\Css{img.math{vertical-align:middle;}} + +>>> + + +% \Configure{$$} +% {\:xhtml{\IgnorePar\EndP}% +% \HCode{<div class="displaymath">}} +% {\HCode{</div>}|<try env inline par|>} {} +% \Css{div.displaymath{text-align:center;}} + + + + + +\verb'\endgraf' is safer than \verb'\par', because the latter may be redefined. +For instance, see p 262 in texbook. + +\<configure html-speech-math tex4ht\><<< +\let\MathPar|=\empty +\Configure{PicDisplay} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{<center class="\MathPar math-display" \a:LRdir >}} + {\HCode{</center>}} {} {class="\MathPar math-display" } +>>> + +% \Css{img.mathdisplay, div.displaymath, img.par-mathdisplay, +% div.par-displaymath { margin-top: 1em; +% margin-bottom: 1em; }} +% \Css{center img.mathdisplay, td img.mathdisplay, +% center img.par-mathdisplay, +% td img.par-mathdisplay { margin-top: 0; +% margin-bottom:0 ; }} +% + + + + + + + + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + + + + + +\subsection{TeX Engine} + + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + + + +\<?\><<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {<|.mrow\Hnewline + class="\expandafter\:gobble\string#1">}{</|.mrow>}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> +\<recall dvimath par\><<< +\sv:ignore +>>> + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +The \verb'\MathRow' requests a \verb'<|.mrow\Hnewline>...</|.mrow>', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + + + + + +\subsection{latex.ltx} + + + + + +Definitions like \verb'\def\mathbf#1{\a:mathbf#1\b:mathbf}' +can't be done on a global level, because \verb'\mathbf' is just +a name of a font. So, for instance, \verb'\bf' expands to \verb'\mathbf', +and so \verb'$\bf R$' indirectly brings up the latter command. + + + + + +\subsection{Palin + LaTeX} + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + + + +% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else +% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else +% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else +% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}% +% \fi\fi\fi\fi } +% \edef\lbrc:{\string{} \edef\rbrc:{\string}} + +% \HCode{\string#1;}% + +\section{Eqnarray} + +Had `BASELINE' before `MIDDLE', but changed to conform with math +in page 252-- in intro to theory book. + + + +\section{Big, BIG, ....} + +The +\verb'\special{t4ht@[}...\special{t4ht@]}' gobble the enclosed stuff. +The external pair is provided as grouping mechanism for +sub/super-scripts cases like \verb'\bigl(...\bigr)^x' within dvimath +mode. The \verb'{\HCode{}}' is neded for creating content delimiters +\verb'.' delimiters like in \verb'$\bigl. a_b \bigr)$'; without that mathml +gets something wrong there. +\verb+\bigl{.}+ et al produce empty para,etr , hence the \verb+\:EMPTY+ is a ompensation for such cases. + + + + + +\section{Exams} + + + +\<configure html-speech exam\><<< +\ifx \ps@examheadings\:unDef \else + |<Meers' exam|> +\fi +\ifx \@checkqueslevel\:unDef \else + |<Hirschhorns' exam|> +\fi +\ifx \@OneKeyHook\:unDef \else + |<Alexanders' exam|> +\fi +>>> + + +\<Hirschhorns' exam\><<< +\Configure{uplevel} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="uplevel">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Configure{fullwidth} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="fullwidth">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Css{dl .uplevel, .fullwidth{margin-left:-2.5em;}} +\Css{dl dl .fullwidth {margin-left:-5em;}} +\Css{dl dl dl .fullwidth {margin-left:-7.5em;}} +>>> + +\<Hirschhorns' exam\><<< +\ConfigureEnv{questions} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="questions">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\ConfigureEnv{parts} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="parts">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\ConfigureEnv{subparts} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="subparts">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +>>> + + +\<Hirschhorns' exam\><<< +\Configure{setpoints} + {\HCode{<span class="setpoints">}} {\HCode{</span>}} +>>> + + + + +\<Meers' exam\><<< +\ConfigureEnv{exam} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="exam">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\ConfigureEnv{problem} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="problem">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\Css{.problem{border-bottom: 1px solid black;}} +\Configure{scorebox} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="scorebox">} + \bgroup\Configure{fbox}{\leavevmode}{}} + {\egroup\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Css{.scorebox{margin-left:90\%; border: 1px solid black;}} +>>> + + +\<Alexanders' exam\><<< +\Configure{sectiontitle} + {\ifvmode\IgnorePar\fi + \EndP \HCode{<h4 class="sectiontitle">}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h4>}} +>>> + +\<Alexanders' exam\><<< +\Configure{answer} + {\HCode{<span class="answer">}} {\HCode{</span>}} +\Css{.answer {text-decoration:underline;}} +\Configure{question} + {\HCode{<span class="question">}} {\HCode{</span>}} +>>> + +\<Alexanders' exam\><<< +\Configure{instructions} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="instructions">}} + {\IgnorePar\EndP \HCode{</div>}} +>>> + + +\<Alexanders' exam\><<< +\ConfigureEnv{examtop} + {\ifvmode \IgnorePar \fi \EndP \HCode{<table class="examtop"><tr><td>}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</td></tr></table>}} + {}{} +\Configure{namedata} + {\ifvmode \IgnorePar \fi \EndP + \Configure{newline}{\HCode{</td><td + class="namedata-rule"><hr /></td></tr><tr><td>}}% + \HCode{</td><td><div class="namedata"><table><tr><td>}} + {\ifvmode \IgnorePar \fi \EndP + \HCode{</td><td + class="namedata-rule"><hr /></td></tr></table></div>}} +\Css{td.namedata-rule {width:10em; vertical-align:bottom; }} +\Css{div.namedata{text-align:right;}} +\Configure{classdata} + {\ifvmode \IgnorePar \fi \EndP \HCode{<h3 class="classdata">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h3>}} +>>> + + + +\<Alexanders' exam\><<< +\ConfigureEnv{keytop} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="keytop">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +>>> + + +\<Alexanders' exam\><<< +\Configure{frontmatter} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="frontmatter">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +>>> + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Etc} +%%%%%%%%%%%%%%%%%% + + +\<configure html-speech rotating\><<< +\ConfigureEnv{turn} + {\Picture+{}} {\EndPicture} + {}{} +>>> + + +\<configure html-speech manju\><<< +\Configure{@TITLE}{\let\@title=\empty} +>>> + + + + +\<configure html-speech mls\><<< +\Configure{@TITLE}{\let\@title=\empty} +>>> + + + + + + + + + + +\<configure html-speech ulem\><<< +\Configure{uline} + {\HCode{<span class="underline">}} {\HCode{</span>}} +\Configure{uuline} + {\HCode{<span class="underline">}} {\HCode{</span>}} +\Configure{sout} + {\HCode{<span class="sout">}} {\HCode{</span>}} +\Css{span.sout {text-decoration: line-through }} +\Configure{xout} + {\HCode{<span class="xout"><span class="underline">}} + {\HCode{</span></span>}} +\Css{span.xout {text-decoration: line-through }} +\Configure{uwave} + {\HCode{<span class="underline">}} + {\HCode{</span>}} +\Css{span.uwave {text-decoration: line-through }} +>>> + + + +\<configure html-speech go\><<< +\Configure{showdiagram} + {\Picture*[go]{}} {\EndPicture} +>>> + + + + + + +\<configure html-speech pifont\><<< +\ConfigureList{dingautolist} + {\EndP\HCode{<dl \a:LRdir class="dingautolist\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="dingautolist">}} + {\HCode{</dt><dd\Hnewline class="dingautolist">}} +\ConfigureList{Piautolist} + {\EndP\HCode{<dl \a:LRdir class="Piautolist\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="Piautolist">}} + {\HCode{</dt><dd\Hnewline class="Piautolist">}} +\ConfigureList{Pilist} + {\EndP\HCode{<dl \a:LRdir class="Pilist\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="Pilist">}} + {\HCode{</dt><dd\Hnewline class="Pilist">}} +>>> + + +\<configure html-speech paralist\><<< +\ConfigureList{asparaitem}% + {\EndP\HCode{<div class="asparaitem">}\ShowPar\ShowIndent} + {\EndP\HCode{</div>}\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{asparaenum}% + {\EndP\HCode{<div class="asparaenum">}\ShowPar\ShowIndent} + {\EndP\HCode{</div>}\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{asparadesc}% + {\EndP\HCode{<div class="asparadesc">}\ShowPar\ShowIndent} + {\EndP\HCode{</div>}\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{compactdesc}% + {\EndP\HCode{<dl \a:LRdir class="compactdesc">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="compactdesc">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="compactdesc">}} +\ConfigureList{compactitem}% + {\EndP\HCode{<ul>}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</li></ul>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="compactitem">}} +\ConfigureEnv{enumerate} + {}{|<try env inline par|>}{}{} +\ConfigureList{enumerate}% + {\if@plalwaysadjust + \EndP \HCode{<dl \a:LRdir class="enumerate">}% + |<save end:itm|>\global\let\end:itm=\empty + \def\para:enumII{|<recall end:itm|>\EndP + \HCode{</dd></dl>}\ShowPar}% + \def\para:enumIII{\end:itm \global + \def\end:itm{\EndP + \Tg</dd>}\HCode{<dt class="enumerate">}}% + \def\para:enumIV{\EndP + \HCode{</dt><dd\Hnewline class="enumerate">}}% + \else + |<enumerate I|>% + \def\para:enumII{|<enumerate II|>}% + \def\para:enumIII{|<enumerate III|>}% + \def\para:enumIV{|<enumerate IV|>}% + \fi + } + {\para:enumII} {\para:enumIII} {\para:enumIV} +>>> + + + + + +\<configure html-speech alphanum\><<< +\def\:tempc#1#2#3#4{% + \ConfigureMark{toclvl#1} + {\HCode{<span class="titlemark">}\csname thelvl#1\endcsname + \HCode{</span>}}% + \Configure{toclvl#1} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<#4 class="toclvl#1Head"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</#4>}\HtmlParOn \IgnoreIndent \par}% + \ConfigureToc{toclvl#1} + {|<alphanum toc spaces|>\def\:temp{\J@INumberRoot{#2}{\tmp:cnt}}% + \afterassignment\:temp \tmp:cnt} + {#3 \HCode{<span class="toclvl#1">}}{} + {\HCode{</span><br\xml:empty>}}% + \ConfigureToc{liketoclvl#1} + {} {|<alphanum toc spaces|>\HCode{<span class="liketoclvl#1">}}{} + {\HCode{</span><br\xml:empty>}}% +} +\:tempc a1{.}{h3} +\:tempc b2{.}{h4} +\:tempc c3{.}{h5} +\:tempc d4{)}{h5} +\:tempc e5{)}{h5} +\:tempc f6{)}{h5} +\:tempc g7{)}{h5} +\:tempc h8{)}{h5} +\:tempc i9{)}{h5} +\:tempc j{10}{)}{h5} +\:tempc k{11}{)}{h5} +\:tempc l{12}{)}{h5} +>>> + +\<alphanum toc spaces\><<< +\tmp:cnt=0 \loop \advance\tmp:cnt by 1 + \ifnum \tmp:cnt<#2 ~~\repeat +>>> + +\<\><<< +\ConfigureMark{toc} + {\HCode{<span class="titlemark">}\csname thelvl\alph{tiefe}\endcsname + \HCode{</span>}} +\Configure{toc} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h5 class="tocHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent \par} +>>> + + + + + + + +\<configure html-speech alphanum\><<< +\bgroup + \let\ifx=\relax + \let\:temp=\relax + \let\:tempa=\expandafter + \let\expandafter=\relax + \let\:TableOfContents=\relax + \let\else=\relax + \let\if=\relax + \let\fi=\relax + \def\Auto:ent#1{\noexpand\Auto:ent{#1,toclvla,liketoclvla,toclvlb,% + liketoclvlb,toclvlc,liketoclvlc,toclvld,liketoclvld,toclvle,% + liketoclvle,toclvlf,liketoclvlf,toclvlg,liketoclvlg,toclvlh,% + liketoclvlh,toclvli,liketoclvli,toclvlj,% + liketoclvlj,toclvlk,liketoclvlk,toclvll,liketoclvll}} + \edef\:TOC{\def\noexpand\:TOC{\:TOC}} + \:tempa +\egroup \:TOC +>>> + + + + + + + + + + + + + + \<configure html-speech gloss\><<< +\ConfigureList{glosslist}{}{}{}{} +\Configure{gloss} {\Link{\gls@b}{}} {\EndLink} +\Configure{glosslist}% + {\IgnorePar\EndP + \HCode{<dl \a:LRdir class="glosslist">}\global\let\end:glitm=\empty} + {\IgnorePar\EndP\HCode{</dd></dl>}\ShowPar} + {\end:glitm\gdef\end:glitm{\EndP\Tg</dd>}\HCode{<dt + class="glosslist">}\Link{}{\GlossLabel}\EndLink } + {\HCode{</dt><dd\Hnewline class="glosslist">}} +\Css{dl.glosslist {margin-left:2em;}} +>>> + + + + + +\<configure html-speech booktabs\><<< +\Configure{toprule} + {|<booktabs rule mag|>% + \Css{tr\#TBL-\TableNo-\ifnum \HRow=0 + 1- td{border-top:|<booktabs rule height|> solid} + \else + \HRow- td{border-bottom:|<booktabs rule height|> solid} + \fi + }} +\Configure{bottomrule} + {|<booktabs rule mag|>% + \Css{tr\#TBL-\TableNo-\HRow- + td{border-bottom:|<booktabs rule height|> solid}}} +\Configure{midrule} + {|<booktabs rule mag|>% + \Css{tr\#TBL-\TableNo-\HRow- + td{border-bottom:|<booktabs rule height|> solid}}} +\Configure{cmidrule} + {|<booktabs rule mag|>% + \Css{tr\#TBL-\TableNo-\HRow- + td{border-bottom:|<booktabs rule height|> solid}}% + \HCode{<!--cmidrule-->}} +>>> + + + +The cmidrule introduces ruler segments at different rows, instead of all of +them in the same row. + +\<booktabs rule height\><<< +\expandafter\x:Em \the\@thisrulewidth em +>>> + +\<booktabs rule mag\><<< +\@thisrulewidth=\csname a:rule-mag\endcsname\@thisrulewidth +>>> + +\<configure html-speech booktabs\><<< +\NewConfigure{rule-mag}{1} +\Configure{rule-mag}{0.14} +{ + \def\x:Em{% + \catcode`\p=12 + \catcode`\t=12 + \gdef\x:Em} + \x:Em#1pt{#1} +} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Endnotes.sty} +%%%%%%%%%%%%%%%%%% + + + + + +\<configure html-speech endnotes\><<< +\Configure{makeenmark} + {\Link{ennote-\endnoteN}{enmark-\endnoteN}} {\EndLink} +\Configure{enoteformat} + {\Link{enmark-\endnoteN}{ennote-\endnoteN}} {\EndLink} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + + \OutputCode[4ht]\<exerqz\> + \OutputCodE\<onmouseover.4ht\> + +\endinput + + + + diff --git a/support/TeX4ht/source/tex4ht-html0.tex b/support/TeX4ht/source/tex4ht-html0.tex new file mode 100644 index 0000000000..dae0cb3296 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-html0.tex @@ -0,0 +1,3863 @@ +% $Id: tex4ht-html0.tex 414 2018-06-12 23:04:41Z karl $ +% latex tex4ht-html0 +% or xhlatex tex4ht-html0 "html,3,sections+" +% +% Copyright 2009-2018 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{html0} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +\def\.{\string\a:mathml:\space} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{The Calling Tree for 4ht Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<0,32,4 tex4ht\><<< +\if:latex |<Hinclude latex|> +\else |<Hinclude plain|> \fi +>>> + + +\<0,32,4 plain\><<< +|<Hinclude plain lib|> +|<Hinclude plain + latex lib|> +>>> + +\<0,32,4 latex\><<< +|<Hinclude latex lib|> +|<Hinclude plain + latex lib|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{HTML4 and XHTML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<0,32,4 preambles\><<< +|<date utility|> +|<cascade style sheets|> +\Configure{Preamble} + {|<default cascade style sheets|>} {} +>>> + + +\<default cascade style sheets\><<< +{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@ +\leavevmode}% +\writesixteen{--- file \aa:CssFile\space ---}% +\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}% +\ht:special{t4ht<\aa:CssFile}% +>>> + + + + + + + + + +\verb'\special' are like \verb'\hbox', and they so they may introduve empty lines in +vertical mode. That might be a problem if we don't want empty lines at +the start of the files. Hence, in latex we give them special treatment. + + + +\<cascade style sheets\><<< +\ScriptCommand{\CssFile}{% + \writesixteen{--- file \aa:CssFile\space ---}% + \def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}% + \def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}% + \def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special + {t4ht>\aa:CssFile}}% + \ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}\bb:CssFile + \hfil\break\NoFonts}{\EndNoFonts + \ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}} +\let\Css:File|=\CssFile +\def\CssFile{\futurelet\:temp\Css:Fl} +\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl + \else \expand:after{\Css:File \space}\fi} +\def\Css:fl[#1]{\Css:File\space \css:files #1,,|<par del|>} +\def\css:files#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty + \else \def\:temp{\in:css#1.|<par del|>\css:files#2,,|<par del|>}\fi + \:temp } +\def\in:css#1.#2|<par del|>{\def\:temp{#2}\ifx \:temp\empty \input #1.css + \else \inc:ss#1.#2|<par del|>\fi} +\def\inc:ss#1.|<par del|>{\input #1 } +\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} +>>> + +\verb'\CssFile[file-name,filename.ext,..]...\EndCssFile'. + +Default file, just in case the user doesn't provide one. If +the user does, the following file will be overwritten. + +Can't use below \verb'\a:CssFile' and \verb'\b:CssFile', because +\verb'\ScriptFile{\CssFile}' also needs them. + + + +\verb'\Css' changes its definition upon reachin \verb'\CssFile'. The +first definition is needed within the sty files, and the info is +sent to the lg file (where else it can be sent?). + + +\<cascade style sheets\><<< +\def\Css#1{{\def\:temp{\Configure{Needs}}% + \expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}} +\let\send:css|=\Css +\ScriptCommand{\Css}{\HCode{<style + type="text/css">\Hnewline\NoFonts}}{\EndNoFonts\HCode{</style>}} +\let\loc:css|=\Css +\def\Css{\futurelet\:temp\:Css} +\def\:Css{\ifx \:temp\bgroup \expandafter\send:css + \else \expandafter\loc:css\fi} +>>> + + + +\<date utility\><<< +\tmp:cnt|=\time \divide\tmp:cnt |by 60 +\edef\:temp{\the\tmp:cnt} +\multiply\tmp:cnt |by -60 \advance\tmp:cnt |by \time +\edef\:today{\the\year-\ifnum \month<10 0\fi + \the\month-\ifnum \day<10 0\fi\the\day + \space\ifnum \:temp<10 0\fi \:temp + :\ifnum \tmp:cnt<10 0\fi\the\tmp:cnt :00} +>>> + + +\<date utility\><<< +\:CheckOption{hooks++} \if:Option + \else \:CheckOption{hooks+} + \if:Option \else \:CheckOption{hooks}\fi + \fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi +>>> + + + +\<xhtml.4ht\><<< +\:CheckOption{0.0}\if:Option +\else \:CheckOption{core} \fi +\if:Option \else \ifx \a:DOCTYPE\relax + \Configure{DOCTYPE}{|<xhtml dtd|>} +\fi\fi +>>> + + +\<xhtml dtd\><<< +\IgnorePar\HCode{\Hnewline + <?xml version="1.1"?>\Hnewline + <!DOCTYPE html SYSTEM "xhtml.dtd">\Hnewline}\Hnewline +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +>>> + + + +The following provides a faster version +than \verb'\LinkCommand\Link{a,href,name,}' for the \verb'\Link' +command + + + + + +\section{article} + + + + +\<configure html0 Preamble\><<< +\Configure{PROLOG}{} +>>> + + + + +\section{latex.ltx} + + + + + + + + + + +\<latex options 1, 2, 3\><<< +|<options for cutoff points|> +\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \:tempd \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax \:tempa \:tempc + \else \:tempa \:tempb \fi +\else\:CheckOption{1} \if:Option + \:tempa +\fi \fi \fi \fi +>>> + + +\<options for cutoff points\><<< +\def\:tempa{ + \CutAt{part} + \CutAt{likepart} + \Configure{tableofcontents*} + {part,likepart,chapter,likechapter,appendix} +} +\def\:tempb{ + \TocAt*{part,/likepart,chapter,likechapter,appendix,% + section,likesection} + \TocAt*{likepart,/part,chapter,likechapter,appendix,% + section,likesection} + \CutAt{chapter,likechapter,appendix,part} + \CutAt{likechapter,appendix,part} + \CutAt{appendix,chapter,likechapter,part} + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,appendix,% + section,likesection\expandafter\ifx \csname @chapter\endcsname\relax + ,subsection,likesubsection\fi + } +} +\def\:tempc{ + \TocAt*{chapter,/likechapter,/appendix,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{likechapter,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{appendix,/chapter,/likechapter,/part,% + section,likesection,subsection,likesubsection} + \CutAt{section,likesection,chapter,likechapter,appendix,part} + \CutAt{likesection,chapter,likechapter,appendix,part} + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,% + likesection\expandafter\ifx \csname @chapter\endcsname\relax + ,subsection,likesubsection\fi} +} +\def\:tempd{ + \TocAt*{section,/likesection,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \TocAt*{likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} + \CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,likesubsection,subsection} +} +>>> + + + + + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltoutenc.dtx + %%%%%%%%%%%%%%%%%%%%%%% + + + +\<0,32,4 plain,latex accents\><<< +\:CheckOption{new-accents} \if:Option + |<new accents|> +\else + |<old accents|> +\fi +\let\^^_|=\v +>>> + + +\<0,32,4 latex\><<< +|<0,32,4 plain,latex accents|> +\let\@acci|=\' \let\@accii|=\` \let\@acciii|=\= +>>> + +\<0,32,4 plain\><<< +|<0,32,4 plain,latex accents|> +>>> + + +\<new accents\><<< +\:CheckOption{accent-} \if:Option + \Configure{HAccent}\acute{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\check{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\ddot{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\grave{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture} +\fi +\:CheckOption{mathaccent-} \if:Option + \Configure{HAccent}\"{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\'{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\.{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\={}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\H{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\^{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\`{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\b{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\d{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\t{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\u{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\v{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\~{AOaoNn{}}{\Picture+{}}{\EndPicture} +\fi +>>> + +\<new accents\><<< +\Configure{accent}{*} + {<!--tex4ht:accent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accent-->} +\Configure{mathaccent}{*} + {<!--tex4ht:mathaccent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end mathaccent-->} +\Configure{accented}{*} + {<!--tex4ht:accented\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accented-->} +\Configure{accenting}{*} + {<!--tex4ht:accenting\Hnewline-->} + {<!--tex4ht:end accenting-->} +>>> + + +\<old accents\><<< +\Configure{accent}\`\grave{A{A}E{E}I{I}O{O}U{U}% + a{a}e{e}i{i}\i{i}o{o}u{u}{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{A{A}E{E}I{I}O{O}U{U}a{a}% + e{e}i{i}\i{i}o{o}u{u}{}{}} + {\a:accents{circ}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{A{A}O{O}a{a}o{o}N{N}n{n}{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + + + + +The following are also placed under accents configuration. + +\<old accents\><<< +\Configure{accent}\c\c{C{C}c{c}{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{{}{}} {}{\b:accents{Huml}{#1}{#2}} +>>> + +The following originally have been defined to be parameter-less. + + + +\<old accents\><<< +\Configure{accent}\.\dot{{}{}} {}{\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{{}{}}{}{\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}}{}{\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\check{{}{}}{}{\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} {}{\b:accents{bar}{#1}{#2}} +>>> + + +% \= macron + +\<old accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {}{\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {}{\b:accents{widehat}{#1}{#2}} +>>> + + +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltfssini.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{tt Font} + +\<0,32,4 latex\><<< +\ifx \ttfamily\:UnDef \else \Configure{tt}{\ttfamily} \fi +>>> + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmath.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Math Setup} + + + + + + + + +\<PIC eqnarray Config\><<< +\ConfigureEnv{eqnarray} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray {text-align:center;}} +\ConfigureEnv{eqnarray*} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray-star">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray-star {text-align:center;}} +>>> + + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % lttab.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Tabbing, Tabular and Array Environments} + + + + + + + + + + + + +\<vspace body for array/tabular\><<< +\append:def\vspc:s{\h:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\vspc:s{\i:HBorder}% + \expandafter\:tempb + \fi } +\tmp:cnt|=0 \:tempb +\append:def\vspc:s{\j:HBorder}\global\let\vspc:s|=\vspc:s +>>> + + +\<0,32,4 latex\><<< +\Configure{hline}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<hline body for array/tabular|>}\fi} +\Configure{//[]}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<vspace body for array/tabular|>}\fi} +>>> + + + +\<hline body for array/tabular\><<< +\append:def\hline:s{\a:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\hline:s{\b:HBorder}% + \expandafter\:tempb + \fi } +\tmp:cnt|=0 \:tempb +\append:def\hline:s{\c:HBorder}\global\let\hline:s|=\hline:s +>>> + + + + + +\<configure clear noalign\><<< +\Configure{noalign}{}{} +>>> + +\<configure tabular noalign\><<< +\Configure{noalign}% + {\f:tabular\d:tabular \HCode{<tr><td colspan="\ar:cnt">}} + {\HCode{</td></tr>}\pend:def\TableNo{0}\c:tabular\e:tabular}% +>>> + + + + + + +\verb'\AllColMargins' Return a binary string in which 1 represents +a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the +zeros before the 1's that represent the current and following 1's. + + + + + + + + + + + +\subsection{The option @()} + + + + + + + + +\<configuring @()\><<< +\Configure{@{}}{} +>>> + + + + + + +We force border around the full table whenever a vertical line is +requested, because it makes the tables better looking within the +existing capabilities. + + + +Currently, we either have empty \verb'\VBorder', or one defined to +\verb'\def\VBorder{border="1"}'. + + + +When \verb'\putVBorder' is call in \verb'\VBorder' +we have a sequence of the form +\verb'<COLGROUP><COL ...">...</COLGROUP>...' with the last +tag possibly missing. + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} +%%%%%%%%%%%%%%%%%%% + + + + +\<0,32,4 plain,latex\><<< +\Configure{ }{\:nbsp} +>>> + + + + + + + + + + + + + + + + +\<0,32,4 latex\><<< +\Configure{framebox} + {\Picture+[]{ \a:@Picture{framebox}}} {\EndPicture} +\Configure{InsertTitle}{\let\label|=\lb:l + \let\ref|=\o:ref \Configure{ref}{}{}{}} +\Configure{AfterTitle}{\let\index|=\:index + \let\ref|=\:ref \let\label|=\lb:l } +\Configure{NoSection} + {\let\sv:index|=\index \let\sv:label|=\label \let\sv:ref|=\ref + \let\sv:newline|=\newline \def\newline{ }% + \let\sv:setfontsize|=\@setfontsize \let\@setfontsize|=\:gobbleIII + \let\index|=\@gobble \let\label|=\@gobble \let\ref|=\@gobble + } + {\let\index|=\sv:index \let\label|=\sv:label \let\ref|=\sv:ref + \let\newline|=\sv:newline \let\@setfontsize|=\sv:setfontsize + } +\Configure{oalign}{\Picture+{ \a:@Picture{oalign}}}{\EndPicture} + +\Configure{TocLink} + {\Link{#2}{#3}{\Configure{ref}{}{}{}\Configure{cite}{}{}{}{}#4}\EndLink} +>>> + + + + + + + + + +\<0,32,4 latex\><<< +\Configure{picture} + {\Picture+[PICT]{}} + {\EndPicture} +>>> + + + +\<config book-report-article 0.0\><<< +\Configure{section}{}{}{\thesection\space}{} +\Configure{likesection}{}{}{}{} +>>> + +\<latex shared div config\><<< +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +>>> + +\<config book-report-article 0.0\><<< +\Configure{subsection}{}{}{\thesubsection\space}{} +\Configure{likesubsection}{}{}{}{} +>>> + + + +\<latex shared div config\><<< +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likpart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likpart} +>>> + +\<latex shared div config\><<< +\Configure{subsubsection}{}{}{\thesubsubsection\space}{} +>>> + +\<latex shared div config\><<< +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +>>> + +\<latex shared div config\><<< +\ConfigureEnv{thebibliography}{\IgnorePar}{\IgnorePar\par}{}{} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi +>>> + + + + + + + + +\<latex shared part config\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +>>> + + + +\<latex shared part config\><<< +\Configure{part}{}{} + {\IgnorePar \IgnorePar\HCode{<h1 class="partHead">}% + \partname \ \thepart\HCode{<br\xml:empty>}} + {\HCode{</h1>}\IgnoreIndent} +\Configure{likepart}{}{} + {\IgnorePar\IgnorePar\HCode{<h1 class="likepartHead">}} + {\HCode{</h1>}\IgnoreIndent} +\Configure{partTITLE+}{\thepart\space #1} +>>> + + + + + + + + + + + + + + + +It is better to put the LI in the third field to avoid extra space +to the following text. + + + + + + + + + + + + + +\<save configure tableofcontents\><<< +\let\sv:atoc|=\a:tableofcontents +\let\sv:btoc|=\b:tableofcontents +\let\sv:ctoc|=\c:tableofcontents +\let\sv:dtoc|=\d:tableofcontents +\let\sv:etoc|=\e:tableofcontents +>>> + + +\<recall configure tableofcontents\><<< +\let\a:tableofcontents|=\sv:atoc +\let\b:tableofcontents|=\sv:btoc +\let\c:tableofcontents|=\sv:ctoc +\let\d:tableofcontents|=\sv:dtoc +\let\e:tableofcontents|=\sv:etoc +>>> + + + + +Earlier we had +\verb'\:CheckOption{no-halign} \if:Option \else |<pic array|> \fi', +and the same for pic tabular. Why? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The \verb'<TABLE>' is needed as a grouping mechanism for \verb'<CENTER>'. + + + +\section{Shared} + + + + + +\<0,32,4 article,report,book\><<< +|<latex options 1, 2, 3|> +>>> + + + + + + + +\<description 4\><<< +\ConfigureList{description}% + {\EndP\HCode{<dl class="description">}\let\end:itm=\empty} + {\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="description">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="description">}} +>>> + + + + +\<thebib 4\><<< +\ConfigureList{thebibliography}% + {\:xhtml{\IgnorePar\EndP}\HCode{<div + class="thebibliography">}\let\en:bib=\empty} + {\en:bib\HCode{</div>}} + {\en:bib\def\en:bib{\HCode{</p>}}\HCode{<p class="bibitem">}} {~~~} +\Css{p.bibitem { text-indent: -2em; margin-left: 2em; }} + |<latex config div 4.0t|> +>>> + + + + + + + + + +\<0,32,4 article,report,book\><<< +|<latex shared div config|> +>>> + + + +\<maketitle 4\><<< +\Configure{maketitle} + {|<title for TITLE|>% + \HCode{<div align="center" class="maketitle">}} + {\HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead">}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Configure{thanks author date and}{}{} + {\HCode{<div class="author" align="center">}}{\HCode{</div>}} + {\HCode{<div class="date" align="center">}}{\HCode{</div>}} + {\SPAN:{and}\:nbsp\:nbsp\:nbsp\EndSPAN:} + {\HCode{<br\xml:empty>}} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; }} +>>> + + + +\<maketitle amsart 4\><<< +\Configure{maketitle} + {\HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead">}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{div.maketitle{text-align:center;}} +>>> + +\section{amsart.cls} + + + + + + + + + + + +\section{aa} + + + + + +\subsection{Sizes of Fonts} + + + +pages should honor the base font sizes the +readers choose for their browsers. Hence, under this assumption, all +tex4ht should do is just assure appropriate relative dimensions for +fonts of other sizes. To meet this end, I modified latex.4ht to +automatically include + + \verb'{\Configure{Needs}{Font\string_Size: #1}\Needs{1...}}' + +when options 11pt and 12pt are listed in \verb'\documentclass'. + + + + + +\<ams art,proc,book 32\><<< +|<base font size|> +>>>> + + + +\<base font size\><<< +{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize + \or \Needs{11}\or \Needs{12}\else \fi} +>>> + + + + + + + +\<configure aa 3.2/4.0t\><<< +\Configure{subtitle institute} + {\HCode{<br\xml:empty><span class="subtitle">}}{\HCode{</span>}} + {\HCode{<div class="institute">}}{\HCode{</div>}} + {\Tg<sup>}{\Tg</sup>} + {\HCode{<br\xml:empty>}} + +\Configure{maketitle} + {\HCode{<div align="center" class="maketitle">}} + {\HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="maketitleHead">}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Configure{thanks author date and}{}{} + {\HCode{<div class="author" align="center">}}{\HCode{</div>}} + {\HCode{<div class="date" align="center">}}{\HCode{</div>}} + {\SPAN:{and}and\EndSPAN:} + {\HCode{<br\xml:empty>}} +>>> + + + +\<configure aa 3.2/4.0t\><<< +\ConfigureEnv{abstract} + {\:xhtml{\IgnorePar\EndP}\HCode {<div class="abstract">}} + {\HCode{</div>}}{}{} + +\Css{div.abstract{text-align:center;}} + +\Configure{makeheadbox} + {\HCode{<table class="makeheadbox" + width="100\%"><tr><td><table><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr></table></td><td class="AALogo" width="10\%">}} + {\HCode{</td></tr></table>}} +\Css{.AALogo{font-size:120\%;font-weight: bold; text-align:right;}} +>>> + +\section{plain} + + + + + + + + + + + +\<0,32,4 plain\><<< +\Configure{settabs}[1.5]{}{}{}{}{} +\Configure{line}{\HCode{<br\xml:empty>}} +>>> + + +\<html plain+ 0\><<< + |<plain+ 4.0t|> +>>> + + + + + +\<under/over line css\><<< +\Configure{underline} + {\HCode{<span class="underline">}} {\HCode{</span>}} +\Configure{overline} + {\HCode{<span class="overline">}} {\HCode{</span>}} +\Css{.underline{ text-decoration:underline; }} +\Css{.overline{ text-decoration:overline; }} +>>> + + + + + +\section{babel.sty} + + + + + + + + +\<configure html0 babel\><<< +|<0,32,4 babel|> +>>> + +\<0,32,4 babel.def\><<< +\Configure{quotedblbase}{\HCode{&\#132;}} +\Configure{quotesinglbase}{\HCode{&\#130;}} +>>> + + + + +\<configure html0 tcilatex\><<< +|<0,32,4 tcilatex|> +>>> + + + +\<0,32,4 tcilatex\><<< +\Configure{GRAPHICSPS} + {\Picture+[PICT]{}} {\EndPicture} +\Configure{GRAPHICSHP} + {\Picture+[PICT]{}} {\EndPicture} +>>> + + + + +\<0,32,4 babel\><<< +|<0,32,4 babel.def|> +\ifx \@begindocumenthook\:UnDef\else + \:CheckOption{new-accents} \if:Option \else + \def\:temp{russian}\ifx \languagename\:temp + |<russian|> + \fi +\fi\fi +>>> + +We had also \verb'\append:def\@begindocumenthook{\HLet\"|=\ddot}' in +babel. It gets russian and brazil into infinite loop. Why it was +inserted. + + +\<russian\><<< +\Configure{accent}\"\ddot{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}å{e}{}{34}} + {\a:accents{uml}{#1}} + {\def\:temp{>}\def\:tempa{#2}\ifx \:temp\:tempa\HCode{»}% + \else \def\:temp{<}\ifx \:temp\:tempa\HCode{«}% + \else \b:accents{uml}{#1}{#2}\fi\fi} +>>> + + + + + +\section{fontmath} + + + + + + + + + + + + + + + + + + +\subsection{1: Large Operators} + +\begin{verbatim} +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 +\end{verbatim} + + + + + + + +\<plain tex classes\><<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 +} +>>> + + +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<plain tex classes\><<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +} +>>> + + +\subsection{3: Relational Operations} + + + + + +The catcode is needed because 303A is \verb':'. + +\<plain tex classes\><<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + + + + + + + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} + + +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + + + +\<plain tex classes\><<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + + + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + + + + + + +\subsection{6: Punctuation Marks} + +\begin{verbatim} +\mathchardef\ldotp="613A % ldot as a punctuation mark +\mathchardef\cdotp="6201 % cdot as a punctuation mark +\mathchardef\colon="603A % colon as a punctuation mark +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + + + + + + + +\<plain tex classes\><<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A +\mathchar"6201 +\mathchar"603A +?; , +} +>>> + + + + +\subsection{Questions} + +\begin{verbatim} + + +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + + + + +\section{amsppt.sty} + + + + + + + + + + + + + + + +\<dagger\><<< +\HChar{167}>>> + + + + + +\<32 amsppt, 32,4 vanilla\><<< +\Configure{title} + {\IgnorePar\EndP\HCode{<div class="title">}\begingroup\bf} + {\endgroup\IgnorePar\HCode{</div>}} +\Css{div.title {margin-top: 0.5em;}} +\Configure{author} + {\IgnorePar\EndP\HCode{<br\xml:empty><center>}\IgnorePar\par} + {\IgnorePar\EndP\HCode{</center>}} + +>>> + +\<32 amsppt\><<< +\Configure{affil}{\IgnorePar\HCode{<br\xml:empty><center>}\IgnorePar} + {\IgnorePar\HCode{</center>}} +\Configure{abstract} {\HCode{<br\xml:empty><center>}} {\HCode{</center>}} + {\IgnorePar\HCode{<table cellpadding="15"><tr><td>}\IgnorePar\par} + {\IgnorePar\HCode{</td></tr></table>}\IgnorePar\par} +\Configure{date}{\IgnorePar\HCode{<center>}\IgnorePar} + {\IgnorePar\HCode{</center>}} +|<32 amsppt, 32,4 vanilla|> +>>> + + + + + +\<bib in amsppt.sty\><<< +\Configure{vol}{\HCode{<strong>}}{\HCode{</strong>}} +\Configure{book}{\HCode{<em>}}{\HCode{</em>}} +\Configure{paper}{\HCode{<em>}}{\HCode{</em>}} +\Configure{Refs}{\IgnorePar\EndP\HCode{<table class="Refs">}} + {\HCode{</table>}} +\Configure{ref}{\HCode{<tr valign="top"><td align="right">}} + {\EndP\HCode{</td></tr>}}{} +\Configure{keyformat}{}{\EndP\HCode{</td><td>}} +>>> + + + + + + +\section{amstex.tex} + + +\<amstex.tex m:env\><<< +|<amsmath / amstex1 m:env|> +>>> + + +\<NO\><<< +\def\m:env#1{\:xhtml{\IgnorePar\EndP}\HCode{<center><table class="#1" + border="0" cellpadding="0" cellspacing="15"><tr><td>}} +\def\endm:env{\HCode + {</td></tr></table></center>}\IgnorePar} +>>> + +\<amsmath / amstex1 m:env\><<< +\def\m:env#1{\relax\ifmmode\else\par\fi\:xhtml{\IgnorePar\EndP}% + \HCode{<center class="#1"><table class="#1"\Hnewline + border="0" cellpadding="0" cellspacing="15"><tr><td>}} +\def\endm:env{\:xhtml{\IgnorePar\EndP}% + \HCode{</td></tr></table></center>}\IgnorePar + \ifmmode\else\par\fi} +>>> + + + + + + + + + +\section{tex4ht} + + + +\<title for TITLE\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection |<disable latex fonts|>\more:no \let\thanks|=\:gobble +\let\\|=\empty \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\Tag{TITLE+}{\@title}} +>>> + + +Old latex files need \verb'\no:fonts', but not new ones.---wrong, as far as writing to toc in 0.0? + + +\<disable latex fonts\><<< +\let\leavevmode|=\empty \let\not@math@alphabet|=\:gobbleII +\def\text@command##1{##1}\let\selectfont|=\empty +\def\check@icl ##1\check@icr{}% +>>> + + + + + + + + + + +\<0,32,4 tex4ht\><<< +\Configure{HVerbatim+}{\z@}{\:nbsp} +\:CheckOption{jpg} \if:Option \Configure{Picture}{.jpg} \fi +\:CheckOption{gif} \if:Option \Configure{Picture}{.gif} \fi +\Configure{Link}{!--}{class=}{id=}{X} +>>> + + + + +\<doc xhtml\><<< +\Configure{DOCTYPE}{\HCode{<?xml version="1.1"?>\Hnewline + <!DOCTYPE html PUBLIC + "-//W3C//DTD XHTML 1.0 Transitional//EN"\Hnewline + \space\space + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + \Hnewline}} +>>> + + + + + + + + + + + + +\verb'\Hnewline' is needed at end of file to avoid loosing the +last line under some applications. + + + + + + +\section{th4} + + +\<0 th4\><<< +\Configure{Chapter} + {}{} {Chapter \theChapterCounter} {} +\Configure{Appendix} + {}{} {Appendix \theChapterCounter} {} +\Configure{LikeChapter} + {}{} {} {} +>>> + + + + + + + + + + + + +\section{epsfig} + + + +\<0,32,4 epsfig\><<< +\Configure{epsfig} {\Picture+[epsfig]{}}{\EndPicture} +>>> + +\section{psfig} + + + +\<0,32,4 psfig\><<< +\Configure{psfig} {\Picture+[psfig]{}}{\EndPicture} +>>> + +\section{graphics} + + + +\<0,32,4 graphics\><<< +\Configure{graphics}{\Picture+[PIC]{}}{\EndPicture} +\Configure{graphics*} + {gif} + {\Picture[pict]{\csname Gin@base\endcsname.gif}} +\Configure{graphics*} + {png} + {\Picture[pict]{\csname Gin@base\endcsname.png}} +\Configure{graphics*} + {jpeg} + {\Picture[pict]{\csname Gin@base\endcsname.jpeg}} +\Configure{graphics*} + {jpg} + {\Picture[pict]{\csname Gin@base\endcsname.jpg}} +>>> + + + + + + +\section{index} + + + +\<configure html0 index\><<< +\Configure{NoSection} + {\let\sv:index|=\p@index \let\sv:label|=\label \let\sv:ref|=\ref + \let\sv:newline|=\newline \def\newline{ }% + \def\p@index[##1]{\@gobble}\let\label|=\@gobble \let\ref|=\@gobble + } + {\let\p@index|=\sv:index \let\label|=\sv:label \let\ref|=\sv:ref + \let\newline|=\sv:newline + } +>>> + + + + +\section{hyperref} + +\<config hyperref form 4\><<< +\Configure{Form} + {\IgnorePar\EndP\leavevmode \Tg<form \Hnewline \Attributes>} + {\IgnorePar\EndP\Tg</form>} +>>> + + + +\<hyperref shared\><<< +\NewConfigure{::value}{1} +\Configure{::value} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +\NewConfigure{::name}{1} +\Configure{::name} + {\edef\Attributes{\Attributes\space name="\AttributeVal"}} +\NewConfigure{::default}{1} +\Configure{::default} + {\let\::default=\AttributeVal} +\def\get:int#1.#2//{\tmp:cnt=#1 } +>>> + +\<\><<< +\NewConfigure{::borderwidth}{1} +\Configure{::borderwidth} + {\Css{div\#form-\form:id {border-width: \AttributeVal; + border-style:solid;}}} +\NewConfigure{::bordercolor}{1} +\Configure{::bordercolor} + {\expandafter\get:colors\AttributeVal//% + \Css{div\#form-\form:id {border-color:\AttributeVal}}} +\def\get:colors#1 #2 #3//{% + \get:color{#1}\edef\AttributeVal{\the\tmp:cnt\%}% + \get:color{#2}\edef\AttributeVal{\AttributeVal, + \the\tmp:cnt\%}% + \get:color{#3}\edef\AttributeVal{rgb(\AttributeVal, + \the\tmp:cnt\%)}% +} +\def\get:color#1{% + \tmp:dim=#1pt \multiply\tmp:dim by 100 + \expandafter\get:int\the\tmp:dim//} +>>> + + + + + + + + + +\<hyperref on...\><<< +\def\:tempc#1{% + \NewConfigure{::#1}{1}% + \Configure{::#1}% + {\edef\Attributes{\Attributes\space #1="\AttributeVal"}}} +\:tempc{onclick} +\:tempc{onblur} +\:tempc{onchange} +\:tempc{onclick} +\:tempc{ondblclick} +\:tempc{onfocus} +\:tempc{onkeydown} +\:tempc{onkeypress} +\:tempc{onkeyup} +\:tempc{onmousedown} +\:tempc{onmousemove} +\:tempc{onmouseout} +\:tempc{onmouseover} +\:tempc{onmouseup} +\:tempc{onselect} +>>> + + + +\<hyperref TextField\><<< +\NewConfigure{TextField::}{2} +\Configure{TextField::}{}{ \Tg<input type="text" \Attributes />} +\NewConfigure{TextField::width}{1} +\Configure{TextField::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space size="\the\tmp:cnt"}} +\NewConfigure{TextField::default}{1} +\Configure{TextField::default} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +>>> + + +\<hyperref multiline\><<< +\NewConfigure{TextField::multiline}{2} +\Configure{TextField::multiline} + {} + { \Tg<textarea + \Attributes>\expandafter\set:ln\multiline:value,|<par del|>% + \global\let\multiline:value=\empty \Tg</textarea>} + +\let\multiline:value=\empty +\def\set:ln#1,#2|<par del|>{#1% + \def\:temp{#2}\ifx \:temp\empty \else + \hfil\break \def\:temp{\set:ln#2|<par del|>}% + \fi \:temp} + +\NewConfigure{multiline::value}{1} +\Configure{multiline::value} + {\let\multiline:value=\AttributeVal} + +\NewConfigure{multiline::width}{1} +\Configure{multiline::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space cols="\the\tmp:cnt"}} +>>> + + +\<hyperref password\><<< +\NewConfigure{TextField::password}{2} +\Configure{TextField::password} + {}{\Tg<input type="password" \Attributes />} +>>> + +\<hyperref shared\><<< +\def\Default:Checked#1{% + \let\:temp=\relax + \let\:tempa=\relax + \edef\:temp{\def\:temp####1#1#1####2//{\def\:temp{####2}}% + \:temp \AttributeVal #1=#1#1//% + \def\:tempa####1=####2//{\def\noexpand\AttributeVal{####1}}% + \:tempa\AttributeVal=//}% + \:temp} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::radio}{5} +\Configure{ChoiceMenu::radio} + {\IgnorePar\EndP\leavevmode + \Tg<div id="form-\form:id">\gHAdvance\form:id by 1 } + { }{\IgnorePar\EndP\Tg</div>} + {\Default:Checked\radio::default + \Tg<input\Hnewline type="radio" + \ifx \:temp\empty\else checked="checked" \fi + \Attributes\space />} + {} +\NewConfigure{radio::default}{1} +\Configure{radio::default} + {\let\radio::default=\AttributeVal} +>>> + + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::combo}{5} +\Configure{ChoiceMenu::combo} + {} + {~\Tg<select\Hnewline \Attributes \Hnewline size="1">} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} + {\Tg</option>} +\NewConfigure{combo::default}{1} +\Configure{combo::default} + {\let\radio::default=\AttributeVal} +>>> + + + + + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::popdown}{5} +\Configure{ChoiceMenu::popdown} + {}{\HCode{\Hnewline <select \Attributes \Hnewline size="1">}} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +>>> + +The \verb'size="1"' makes the select a popout memnu + + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::}{5} +\Configure{ChoiceMenu::} + {}{\HCode{\Hnewline <select\Hnewline \Attributes>}}{\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +\NewConfigure{::menulength}{1} +\Configure{::menulength} + {\edef\Attributes{\Attributes\space size="\AttributeVal"}} +>>> + + + + +\section{exerquiz} + + + + + + + + +\<-NOPE\><<< +\Configure{quiz*} + {qthis=this; + ProcessQuestion(\ANS,"\alph{quizno}",\thequestionno, + 0,"\eq@bqlabel",\Quiz:N)} +>>> + + + + + + + + + + + + + + + + + + +\<exerqz\><<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% exerqz.4ht |version % +% Copyright (C) |CopyYear.1999. % +% Donald P. Story & Eitan M. Gurari % +|<TeX4ht copyright|> +|<exerqz's vars|> +|<predefined exerquiz javascript|> +>>> + + + +\<predefined exerquiz javascript\><<< +\JavaScript-$ +var QuizInitialized; +var EndQuizPushed; +var CurrentQuizNo; +var Responses; +var ResponsesAddr; +var Cor; +var CorAddr; +var qthis; +var prev_notify; +function InitializeQuiz(qtfield,mark,quizN,ansN,lbrc,rbrc) { + Score=0; + QuizInitialized=1; + CurrentQuizNo=quizN; + eval( 'document.form'+qtfield+'.'+qtfield+'.value="$eqScore";' ) + RightWrong=new Array(); + |<hide sol|> + Responses=new Array(); + ResponsesAddr=new Array(); + |<hide cor|> + Cor=new Array(); + CorAddr=new Array(); + EndQuizPushed=0; + for(var i=1; i<=ansN; i++){ + RightWrong[i]=0; + } +} +\EndJavaScript +>>> + + + +\<show sol\><<< +if( ResponsesAddr[probno] != null ){ + if (notify == 0 ) { + ResponsesAddr[probno].value=Responses[probno]; + } else { + ResponsesAddr[probno].value="("+Responses[probno]+")"; +} } +qthis.value = "#"; ResponsesAddr[probno]=qthis; +>>> + +\<hide sol\><<< +for(var i in Responses){ + if (prev_notify == 0 ) { + ResponsesAddr[i].value=Responses[i]; + } else { + ResponsesAddr[i].value="("+Responses[i]+")"; +} } +>>> + +% if( Responses != null ){ + + +\<record cor\><<< +var k=Cor.length; +eval('Cor[k]=thisform'+quizN+'.ans'+quizN+'x'+i+'.value'); +eval('CorAddr[k]=thisform'+quizN+'.ans'+quizN+'x'+i); +>>> + + +\<hide cor\><<< +for(var i in Cor){ + CorAddr[i].value=Cor[i]; +} +>>> + +% if( Cor != null ){ + + + +\<predefined exerquiz javascript\><<< +\JavaScript +function href(addr) { top.location.href=addr; } +\EndJavaScript +>>> + +% function href(addr) { window.navigate(addr); } + + + + +\<predefined exerquiz javascript\><<< +\JavaScript +function Corrections(lbl1,lbl2,quizN) { + if ( (EndQuizPushed == 1) && ( CurrentQuizNo == quizN ) ){ + for(var i in RightWrong){ + if( (RightWrong[i]==0) ){ + |<record cor|> + eval('thisform'+quizN+'.ans'+quizN+'x'+i+'.value= "*"'); + } } +} } +\EndJavaScript +>>> + + + + + + + + +\<predefined exerquiz javascript\><<< +\JavaScript +function LinkTo(addr) { +} +\EndJavaScript +>>> + +\<exerqz's vars\><<< +\def\eqXInitQuizMsg{\hbox{% + \let\noexpand|=\string + \csname eq@InitQuizMsg\endcsname}} +\expandafter\ifx \csname eq@InitQuizMsg\endcsname\relax + \expandafter\def\csname eq@InitQuizMsg\endcsname{ + "You must initialize the Quiz! Click on "+bqlabel} +\fi +\def\eqXQuizTotalMsg{\hbox{% + \let\noexpand|=\string + \def\thequestionno{"+thequestionno+"}% + \csname eq@QuizTotalMsg\endcsname}} +\expandafter\ifx \csname eq@QuizTotalMsg\endcsname\relax + \expandafter\def\csname eq@QuizTotalMsg\endcsname{"Score: ' + +Score +' out of '+thequestionno+'"} +\fi +\def\eqXMadeChoice{\hbox{% + \let\noexpand|=\string + \csname eq@MadeChoice\endcsname}} +\expandafter\ifx \csname eq@MadeChoice\endcsname\relax + \expandafter\def\csname eq@MadeChoice\endcsname{ + "You have already made a choice. Your choice was (" + +Responses[probno]+")." + +" Do you want to change it?"} +\fi +\expandafter\ifx \csname eqScore\endcsname\relax + \def\eqScore{Score:} +\fi +>>> + +The \verb'Wollen Sie dies \noexpand\344ndern?' is a problem because it +takes the \verb'\344' into \verb'44'. A \verb'\string' will properly +produce \verb'\344'; hence, the above dirty trick. + +\begin{verbatim} +Doesn't IE escape in the way that Acrobat JavaScript does? + +Another possibility is to use String.fromCharCode() + +Convert Octal \344 to decimal 228, then use +String.fromCharCode(228) + + + + + How to deliver browser specific content using JavaScript + + +<SCRIPT LANGUAGE="JavaScript"> +<!-- + if( -1 != navigator.userAgent. + indexOf ("AOL") ) + { + // load America Online version + location.href="aol.htm"; + } + else + if( -1 != navigator.userAgent. + indexOf ("MSIE") ) + { + // load Microsoft Internet + // Explorer version + location.href="msie.htm"; + } + else + if( -1 != navigator.userAgent. + indexOf ("Mozilla") ) + { + // load Netscape version + location.href="netscape.htm"; + } + else + { + // load other version + location.href="other.htm"; + } +--> +</SCRIPT> + +\end{verbatim} + + + +\<predefined exerquiz javascript\><<< +\JavaScript-$ +function QuizEnd(bqlabel,thequestionno,quiztotal,quizN){ + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + eval( 'document.form'+quiztotal+'.'+quiztotal+ + '.value=$eqXQuizTotalMsg'); + QuizInitialized=-1; + EndQuizPushed=1; +} } +\EndJavaScript + +\JavaScript-$ +function ProcessQuestion + (key,letterresp,probno,notify,bqlabel,quizN) { + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + |<function ProcUserResp(key,letterresp,probno,notify)|> + prev_notify = notify; +} } +\EndJavaScript +>>> + + + + + +\<function ProcUserResp(key,letterresp,probno,notify)\><<< +if (Responses[probno] == null) { + if (key==1) { + Score++; + RightWrong[probno]=1; + } + else + RightWrong[probno]=0; + |<show sol|> + Responses[probno]=letterresp; +} +else { + if (notify==0) + User=true; + else + User=confirm($eqXMadeChoice); + if (User) { + if (RightWrong[probno]==1) { + if (key==0) { + Score -= 1; + RightWrong[probno]=0; + |<show sol|> + Responses[probno]=letterresp; + } + } + else { + if (key==1) { + Score++; + RightWrong[probno]=1; + |<show sol|> + Responses[probno]=letterresp; + } + else { + RightWrong[probno]=0; + |<show sol|> + Responses[probno]=letterresp; + } + } + } +} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{html0} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<html0\><<< +% html0.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2016 TeX Users Group +% Copyright (C) |CopyYear.1996. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + + + + + +\section{latex} + + +\<configure html0 latex\><<< +|<0,32,4 latex|> +|<0 latex|> +|<0,32,4 plain,latex|> +|<config latex.ltx 0.0|> +|<0 plain,latex|> +|<0 th4,latex|> +>>> + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltplain.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{obeylines} + +\<0 plain,latex\><<< +\Configure{obeylines}{}{}{} +>>> + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmiscen.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Miscellaneous Environments} + + + +\<config latex.ltx 0.0\><<< +\Configure{verbatim}{}{ } +\Configure{verb}{}{} +>>> + + +\<config latex.ltx 0.0\><<< +\let\env:verb|=\:gobble +>>> + + + +\<config latex.ltx 0.0\><<< +\ConfigureEnv{verbatim}{}{\null}{}{} +\ConfigureEnv{verbatim*}{}{\null}{}{} +>>> + +\<config latex.ltx 0.0\><<< +\ConfigureEnv{center}{}{}{}{} +>>> + + + + +\<config latex.ltx 0.0\><<< +\Configure{centercr}{}{} +>>> + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmath.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Math Setup} + +\<config latex.ltx 0.0\><<< +\:CheckOption{pic-eqnarray} +\if:Option + \ConfigureEnv{eqnarray} {\Picture*{}} {\EndPicture}{}{} + \ConfigureEnv{eqnarray*} {\Picture*{}} {\EndPicture}{}{} +\else + \Configure{eqnarray}{}{}{}{}{}{} +\fi +>>> + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % lttab.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Tabbing, Tabular and Array Environments} + + +\<config latex.ltx 0.0\><<< +\Configure{array} {}{}{}{}{}{} +\Configure{tabular} {}{}{}{}{}{} +>>> + + + + +\<config latex.ltx 0.0\><<< +\:CheckOption{no-array}\if:Option \else + \:ifpackageloaded{array}{\:Optiontrue}{} +\fi +\if:Option \else + |<html latex array/tabular Config tty|> +\fi +>>> + + + + +\<html latex array/tabular Config tty\><<< +\def\:array:{<>} +\def\:tabular:{<>} +\Configure{array}{}{}{}{}{}{} +\Configure{tabular}{}{}{}{}{}{} +\ConfigureEnv{array}{}{}{}{} +\ConfigureEnv{tabular}{}{}{}{} +>>> + + + +\<html latex array/tabular Config tty\><<< +\:ifpackageloaded{array}{\:Optiontrue}{\:Optionfalse} +\if:Option + |<array.sty Configure tty|> +\else + \Configure{VBorder}{}{}{}{} +\fi +>>> + +\<array.sty Configure tty\><<< +\Configure{VBorder}{}{}{}{} +>>> + + + +\<config latex.ltx 0.0\><<< +\:CheckOption{pic-tabbing} \if:Option + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} +\else + |<TABLE tabbing Config tty|> + \:CheckOption{pic-tabbing'} \if:Option + |<PICT tabbing Config 0.0|> + |<PICT dot tabbing|> + \fi +\fi +>>> + + + +\<TABLE tabbing Config tty\><<< +\Configure{tabbing}[1.5]{} + {} + {} + {} +>>> + +\<PICT tabbing Config 0.0\><<< +\expandafter\def\csname + c:pic-tabbing:\endcsname#1{\def\p:tabbing{#1}} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} + + + + +\<0 th4,latex\><<< +\Configure{()}{$}{$} +\Configure{[]}{\:xhtml{\IgnorePar\EndP}$$}{$$} +>>> + + + + + +\<config latex.ltx 0.0\><<< +\ConfigureList{trivlist}{}{}{}{} +\ConfigureList{list}{}{}{}{} +\ConfigureList{itemize}{}{}{}{}{}{} +\ConfigureList{enumerate}{}{}{}{}{}{} +>>> + + + + + +\<config latex.ltx 0.0\><<< +\Configure{tableofcontents}{}{}{}{}{} +>>> + +\<config latex.ltx 0.0\><<< +\Configure{TocAt}{}{} +\Configure{TocAt*}{}{} +>>> + + + + + +\<config latex.ltx 0.0\><<< +\ConfigureEnv{minipage}{}{}{}{} +>>> + + +\<config latex.ltx 0.0\><<< +\Configure{float}{}{}{} +>>> + + +\<config latex.ltx 0.0\><<< +\Configure{newline}{} +>>> + + + + +\<0 plain,latex\><<< +\Configure{ }{ } +>>> + + +\<0 plain,latex\><<< +\def\:zbsp#1{cellpadding="0" border="0" cellspacing="0"\Hnewline + class="#1"} +>>> + + +\<0 plain,latex\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accents}{(#1 #2)}{(#1 #3)} + \immediate\write-1{\string\Configure{accents}{found-case}{missing-case}} +\fi +\Configure{centerline}{}{} +\Configure{leftline}{}{} +\Configure{rightline}{}{} +>>> + +\<0 plain,latexNO\><<< +\Configure{choose}{}{} +>>> + + + + + + + +\section{tex4ht} + + + +\<title for hypertext page\><<< +\Configure{TITLE+}{\HCode{\jobname.\:html}} +>>> + +\<0,32,4 latex\><<< +\ifTag{TITLE+} + {\Configure{TITLE+}{\HCode{\LikeRef{TITLE+}}}}{} +>>> + + + + + + +\<configure html0 tex4ht\><<< +|<0,32,4 tex4ht|> +\Configure{HtmlPar}{}{}{}{} +\ifx \a:HTML\:UnDef \Configure{HTML}{}{} \fi +\ifx \a:HEAD\:UnDef \Configure{HEAD}{}{} \fi +\ifx \a:BODY\:UnDef \Configure{BODY}{}{} \fi +\ifx \a:TITLE\:UnDef \Configure{TITLE}{}{} \fi +\Configure{TITLE+}{} +|<no css|> +>>> + + +\<configure html0 tex4ht\><<< +\Configure{crosslinks+}{\IgnorePar}{\par\ShowPar}{\IgnorePar}{} +\Configure{IMG}{}{ }{}{}{} +\Configure{Picture*}{}{} +\Configure{SUB}{}{} +\Configure{SUP}{}{} +\Configure{MkHalign}{}{}{}{}{}{} +\Configure{halignTD} {}{} {}{}{}{}{}{}{}{} +\Configure{halign}{}{}{}{}{}{}{} +\Configure{pic-halign}{} +>>> + + + + + + + + + + + +\<0,32,4 tex4ht\><<< +|<0,32,4 preambles|> +\ifx \a:FontCss:\:UnDef + \Configure{FontCss}{Font\string_Css##1} + {Font\string_Css\string_Plus\space##1} +\fi +\expandafter\ifx \csname aa:Css\endcsname\relax + \Configure{Css}{Css: ##1} +\fi +\:CheckOption{edit} \if:Option + \Configure{edit}{\HCode{<strong><}}{\HCode{></strong>}} + {<strong><}{></strong>} +\fi +\:CheckOption{hooks++} \if:Option +\else \:CheckOption{hooks+} \if:Option +\else \:CheckOption{hooks} \if:Option +\fi\fi\fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi + + +\Configure{ExitHPage}{exit}{exit }{} +\Configure{TocLink}{\Link{#2}{#3}#4\EndLink} +\Configure{MiniHalign}{\hlg:a}{\hlg:b}\hlg:c\hlg:d{\hlg:e}\hlg:f +\:CheckOption{no-halign} \if:Option \else + \Configure{noalign-}{}{} +\fi +\Configure{PictureAlt*+} + {\let\sv:HtmlPar|=\HtmlPar \let\HtmlPar|=\empty + |<postscript for /Picture|>% + |<tex halign and cr/crcr|>% + \NoFonts\csname PauseMathClass\endcsname \SUBOff \SUPOff + \let\HCode|=\:gobble |%\offinterlineskip|% + \let\EndPicture|=\empty} + {\let\HCode|=\:HCode + \let\EndPicture|=\:UnDef \let\HtmlPar|=\sv:HtmlPar \SUBOn \SUPOn + \csname EndPauseMathClass\endcsname \EndNoFonts + |<tex4ht halign and cr/crcr|>% + |<delay postscript|>}% +>>> + +\<postscript for /Picture\><<< +\def\PsCode##1{{\ht:special{\PsCodeSpecial##1}}}% +>>> + +\<tex halign and cr/crcr\><<< +\iffalse{\fi +\let\sv:halign|=\halign +\let\sv:cr|=\cr +\let\sv:crcr|=\crcr +\iffalse}\fi +\RecallTeXcr \let\halign |=\TeXhalign +>>> + + +\<tex4ht halign and cr/crcr\><<< +\iffalse{\fi +\let\halign|=\sv:halign +\let\cr|=\sv:cr +\let\crcr|=\sv:crcr +\iffalse}\fi +>>> + + +\<delay postscript\><<< +\let\PsCode|=\relax +>>> + + + + + +\<0,32,4 tex4ht\><<< +\Configure{CutAtTITLE+}{} +\Configure{HPageTITLE+}{} +\Configure{AtBeginDocument} + {\edef\recallcatcodes{% + \catcode`\noexpand\_|=\the\catcode`\_ + \catcode`\noexpand\^|=\the\catcode`\^ }% + \catcode`\_=8\catcode`\^=7} + {\recallcatcodes} +>>> + +\<0,32,4 tex4ht\><<< +\Configure{crosslinks}{[}{] + }{next}{prev}{prev-|<tail|>}{front}{tail}{up} +\:CheckOption{next} \if:Option + \Configure{next+}{\ShowPar\par\noindent [}{]} +\fi +\Configure{TocAt*}{}{} +\Configure{TocAt}{}{} + +\Configure{halignTB}{\HCode{<table }}{\HCode{>}} +\def\t:HA{\HCode{</table>}} +\def\R:HA{\HCode{<tr \Hnewline valign="baseline">}} +\def\r:HA{\HCode{</tr>}} +\def\D:HA{\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}} +\def\d:HA{\HCode{</td>}} +\Configure{HVerbatim+}{\z@}{\:nbsp} +\Configure{CssFile}{\jobname.css} + {/* \aa:CssFile\space from \jobname.tex (TeX4ht) */} +\Configure{Picture+}{}{} +\Configure{Picture*}{}{} +\Configure{Needs}{l. + \the\inputlineno\space--- needs --- #1 ---} +\Configure{Needs-}{l. + \the\inputlineno\space--- needs --- #1 ---} +|<yes css|> +>>> + +\<0,32,4 tex4ht\><<< +\Configure{moveright}{\leavevmode\endgraf } +\Configure{HChar}{x} +>>> + + + + +\<yes css\><<< + \def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} + \def\SPAN:#1{\HCode{<span class="#1">}} + \def\EndSPAN:{\HCode{</span>}} + \def\DIV:#1{\HCode{<div class="#1">}} + \def\EndDIV:{\HCode{</div>}} +>>> + +\<no css\><<< + \def\:SPAN#1#2{#2} + \let\SPAN:|=\:gobble \let\EndSPAN:|=\empty + \let\DIV:|=\:gobble \let\EndDIV:|=\empty +>>> + + + + + +\section{plain} + + +\<configure html0 plain\><<< +|<0,32,4 plain|> +|<0,32,4 plain,latex|> +|<0 plain|> +|<0 plain,latex|> +|<0 plain+|> |%keep last in html mode|% +>>> + +\<0 plain\><<< +\Configure{centerline}{}{} +\Configure{leftline}{}{} +\Configure{rightline}{}{} +\Configure{insert}{}{} +>>> + +\<0 plain\><<< +\:CheckOption{pic-eqalign} \if:Option + \:CheckOption{no-halign} \if:Option \else + \fi +\else |<TABLE eqalign shared Configure tty|> +\fi +>>> + + +\<TABLE eqalign shared Configure tty\><<< +\Configure{eqalign}{}{}{}{}{}{} +>>> + +\<TABLE eqalign shared Configure tty\><<< +\Configure{eqalignno}{}{}{}{}{}{} +>>> + +\<TABLE eqalign shared Configure tty\><<< +\Configure{leqalignno}{}{}{}{}{}{} +>>> + + + + + +\<0 plain\><<< +\Configure{narrower}{}{} +>>> + + +\<0 plain\><<< +\Configure{proclaim}{}{}{} +>>> + + +\<0 plain\><<< +\Configure{line}{} +>>> + + + + + + + + + +\<0 plain+\><<< +|<plain+ 0.0|> +\:CheckOption{plain-} \if:Option \else + |<itemitem 0.0|> +\fi +>>> + +\<plain+ 0.0\><<< +\Configure{item}{}{}{\par\leavevmode}{} +>>> + + + + + +\section{article, book, report} + +\<configure html0 article\><<< + |<config report / article 0.0|> + |<config book-report-article 0.0|> +>>> + + + + + + +\<configure html0 report\><<< + |<config book-report 0.0|> + |<config report / article 0.0|> + |<config book-report-article 0.0|> +>>> + + + + + + +\<configure html0 book\><<< + |<config book-report-article 0.0|> + |<config book-report 0.0|> +>>> + + + +\<config report / article 0.0\><<< +\ConfigureEnv{abstract}{}{}{}{} +>>> + + +\<config book-report-article 0.0\><<< +|<0,32,4 article,report,book|> +|<article,report,book tocs|> + \ConfigureToc{lof}{\empty}{ }{}{} + \ConfigureToc{lot}{\empty}{ }{}{} +\ConfigureEnv{quote}{}{}{}{} +\ConfigureList{description}{}{}{}{}{}{} +\Configure{maketitle}{}{}{}{} +\Configure{thanks author date and} {}{} {}{} {}{} {}{} +\Configure{theindex}{}{}{}{}{}{}{}{}{} +\Configure{paragraph}{}{}{}{} +\Configure{likeparagraph}{}{}{}{} +\Configure{subparagraph}{}{}{\thesubparagraph\space}{} +\Configure{likesubparagraph}{}{}{}{} + + + \ifx \part\:UnDef \else +\Configure{part}{}{} {\partname \ \thepart\space} {} +\Configure{likepart}{}{}{\empty}{} + \fi +>>> + + +\<report,book tocsNO\><<< +\ConfigureToc{appendix} {\empty}{\ }{}{\ } +\ConfigureToc{chapter} {\empty}{\ }{}{\ } +\ConfigureToc{likechapter} {\empty}{\ }{}{\ } +>>> + + +\<article,report,book tocsNO\><<< +\ConfigureToc{likeparagraph} {}{\empty}{}{\ } +\ConfigureToc{likepart} {}{\empty}{}{\ } +\ConfigureToc{likesection} {}{\empty}{}{\ } +\ConfigureToc{likesubparagraph} {}{\empty}{}{\ } +\ConfigureToc{likesubsection} {}{\empty}{}{\ } +\ConfigureToc{likesubsubsection} {}{\empty}{}{\ } +\ConfigureToc{paragraph} {\empty}{\ }{}{\ } +\ConfigureToc{part} {\empty}{\ }{}{\ } +\ConfigureToc{section} {\empty}{\ }{}{\ } +\ConfigureToc{subparagraph} {\empty}{\ }{}{\ } +\ConfigureToc{subsection} {\empty}{\ }{}{\ } +\ConfigureToc{subsubsection} {\empty}{\ }{}{\ } +>>> + + + +\<config book-report 0.0\><<< +|<report,book tocs|> +\Configure{chapter}{}{} {\chaptername \ \thechapter} {} +\Configure{chapterTITLE+}{} +\Configure{likechapter}{}{}{\empty}{} +\Configure{appendix}{}{}{\appendixname \ \thechapter}{} +\Configure{appendixTITLE+}{} +>>> + + + +\section{emulateapj} + + +\<configure html0 emulateapj\><<< +|<config emulateapj.clo 0.0|> +>>> + + + +\<config emulateapj.clo 0.0\><<< +\Configure{slugcomment}{}{} +>>> + +\<config emulateapj.clo 0.0\><<< +\Configure{subtitle}{}{} +>>> + +\<config emulateapj.clo 0.0\><<< +\Configure{submitted}{}{} +>>> + +\<config emulateapj.clo 0.0\><<< +\Configure{title}{}{} +>>> + +\<config emulateapj.clo 0.0\><<< +\Configure{author}{}{} +>>> + +\<config emulateapj.clo 0.0\><<< +\Configure{affil}{}{} +>>> + + +\<config emulateapj.clo 0.0\><<< +\Configure{keywords}{}{} +>>> + +\<config emulateapj.clo 0.0\><<< +\Configure{subjectheadings}{}{} +>>> + + + + + +\section{aa} + + +\<configure html0 aa\><<< +|<configure aa 0.0|> +|<makeketitle config 0.0|> +|<latex shared div config|> +>>> + +\<configure aa 0.0\><<< +\Configure{subtitle institute}{}{}{}{}{}{}{} +\Configure{maketitle}{}{}{}{} +\Configure{thanks author date and}{}{}{}{}{}{}{}{} +>>> + + + + + + + +\section{vanilla} + + +\<configure html0 vanilla\><<< +|<config vanilla.sty 0.0|> +|<config amsppt + vanilla 0.0|> +>>> + + +\<config vanilla.sty 0.0\><<< +\Configure{heading}{}{}{}{} +\ConfigureToc{heading}{}{}{}{} +\Configure{subheading}{}{}{}{} +\ConfigureToc{subheading}{}{}{}{} +\Configure{demo}{}{}{}{} +>>> + + +\<config vanilla.sty 0.0\><<< +\Configure{aligned}{}{}{}{}{}{} +>>> + +\<config vanilla.sty 0.0\><<< +\Configure{align}{}{}{}{}{}{} +>>> + + + + + + + + + + + +\section{amsart, amsproc, amsbook} + + +\<configure html0 amsart\><<< +|<ams art,proc,book 0|> +>>> + + + +\<configure html0 amsproc\><<< +|<ams art,proc,book 0|> +>>> + + + +\<configure html0 amsbook\><<< +|<ams art,proc,book 0|> +>>> + + + + +\section{amstex} + + +\<configure picmath0 amstex\><<< +\:CheckOption{no-matrix} \if:Option \else +\:CheckOption{pic-matrix} \if:Option + |<pic amstex.tex matrix 0.0|> +\else + |<tabular amstex.tex matrix 0.0|> +\fi\fi +\:CheckOption{no-align} \if:Option \else +\:CheckOption{pic-align} \if:Option + |<pic amstex.tex align 0.0|> +\else + |<tabular amstex.tex align 0.0|> +\fi\fi +>>> + + + + + + + + + + +Do we need the following? Don't those of plain.sty are good here? + +\<pic amstex.tex matrix 0.0\><<< +\Configure{matrix}{}{} +>>> + + +\<pic amstex.tex matrix 0.0\><<< +\Configure{pmatrix}{}{} +>>> + + +\<tabular amstex.tex matrix 0.0\><<< +\Configure{matrix}{}{}{}{}{}{} +>>> + +\<tabular amstex.tex matrix 0.0\><<< +\Configure{pmatrix}{}{} +>>> + + + + + + + + +\section{amsppt} + + +\<configure html0 amsppt\><<< + |<config amsppt + vanilla 0.0|> +>>> + + + + +\section{moreverb.sty} + + +\<configure html0 moreverb\><<< +\ConfigureEnv{verbatimtab}{}{}{}{\null} +\ConfigureEnv{verbatimtab*}{}{}{}{\null} +\ConfigureEnv{boxedverbatim}{}{}{}{\null} +\ConfigureEnv{boxedverbatim*}{}{}{}{\null} +>>> + + +\section{url} + + +\<configure html0 url\><<< +\Configure{url}{#1} +>>> + + +\section{array.sty} + + +\<configure html0 array\><<< + \Configure{VBorder}{}{}{}{} + \Configure{array}{}{}{}{}{}{} + \Configure{tabular}{}{}{}{}{}{} +>>> + + +\section{slidesec} + + +\<configure html0 slidesec\><<< + \ConfigureToc{slidesection}{\empty}{ }{}{} +>>> + + + +\section{epsfig} + +\<configure html0 epsfig\><<< +|<0,32,4 epsfig|> +>>> + +\section{psfig} + +\<configure html0 psfig\><<< +|<0,32,4 psfig|> +>>> + +\section{graphics} + +\<configure html0 graphics\><<< +|<0,32,4 graphics|> +>>> + + +\section{th4} + +\<configure html0 th4\><<< +\Configure{Verbatim}{}{}{}{} +|<0 th4,latex|> +|<0 th4|> +>>> + + + + + + + + +\section{Shared in html0} + + + +\<ams art,proc,book 0\><<< +|<makeketitle config 0.0|> +>>> + + +\<config book-report-article 0.0\><<< +|<makeketitle config 0.0|> +>>> + + +\<makeketitle config 0.0\><<< +\Configure{caption}{}{}{}{} +>>> + + +\<itemitem 0.0\><<< +\Configure{itemitem}{}{}{\par\leavevmode}{} +>>> + + +\<config amsppt + vanilla 0.0\><<< +\Configure{title}{}{} +>>> + +\<config amsppt + vanilla 0.0\><<< +\Configure{author}{}{} +>>> + +\section{amsart} + + + + + +\<ams art,proc,book 32\><<< + |<config sections 3.2|> +|<book-report-article caption 3.2|> + |<latex report,... config 3.2|> +|<32,4 ams art,proc,book|> +>>> + + + + + + + + +\section{latex.ltx} + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltplain.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{obeylines} + + + + + + +\<obeylines confg\><<< +\Configure{obeylines} + {} {} {\hbox{\HCode{<br>}}} +>>> + +Typically, \verb'\obeylines' appears in a separate line before the +content. The following option is introduced to avoid an extra leading +empty line. + +\<delayed obeylines confg\><<< +\Configure{obeylines} + {\def\Line:Break{\def\Line:Break{\hbox{\HCode{<br>}}}}} {} + {\Line:Break} +>>> + + + + + +\subsection{Tabbing, Tabular and Array Environments} + + + + + + +\<PICT dot tabbing\><<< +\:CheckOption{pic-tabbing'} \if:Option + \edef\:temp{\LikeRef{|<tabbing tag|>.}}% + \def\:tempa{.}\ifx \:temp\:tempa + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} + \fi +\fi +>>> + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} + + +\<32 picmath th4,latex\><<< +\Configure{[]} + {\PicDisplay$$\everymath{}\everydisplay{}} + {$$\EndPicDisplay} +\Configure{()}{\PicMath$}{$\EndPicMath} +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\section{plain} + + + + + + +A `\verb'\begin{multline}...\end{multline}' is not a standard environment +in the sense that the environment as a whole is read in one piece and +then processed, instead of reading it piecewise and process it as it +goes. That is, we have a behavior similar to that in verbatim +environments. The behavior is due to multline being implemented in +terms of \verb'\gather@#1{..}'. Hence, for the picture environment, we +need to change early the catcodes of `\verb'_' and `\verb'^'. + + + + +\<extract amsmath labels\><<< +\def\ExtractHLabel{% + \def\tagform@##1{{\xdef\:HLabel{\noexpand\tagform@{##1}}}}} +\def\PutHLabel{\:HLabel} +>>> + + + + + + + + +\section{tex4ht} + + + + + + + +\<src note\><<< +<!--\FileName\space from \jobname.tex +(TeX4ht)-->% +>>> + + + +\section{tex4ht} + + + + +\<try inline par\><<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + + + + + + + + + + + + + +\verb'\endgraf' is safer than \verb'\par', because the latter may be redefined. +For instance, see p 262 in texbook. + + + + +\section{latex} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\<0 plain,latex\><<< +\Configure{l} {} +\Configure{L} {} +>>> + + + + + +\<0 latex\><<< +\Configure{mathellipsis} {} +>>> + + +\<0 plain\><<< +\Configure{ldots} {} +>>> + +\<configure html4-math amsmath\><<< +\Configure{@cdots} {} +\Configure{iint} {} +\Configure{iiint} {} +\Configure{iiiint} {} +\Configure{idotsint} {} +\Configure{doteq} {} +>>> + + +\section{amsmath} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\<temp hcode accents\><<< +\HCode{&\expandafter \ifx\csname U#2#1\endcsname\relax + #2#1\else \#x\csname U#2#1\endcsname\fi;}% +>>> + + + + + + + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + + + + + + + + + + + + + + +\subsection{TeX Engine} + + + + + + + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + + + + + + + + + + +\<?\><<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {<|.mrow\Hnewline + class="\expandafter\:gobble\string#1">}{</|.mrow>}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> + + +\<recall dvimath par\><<< +\sv:ignore +>>> + + + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + + + +The \verb'\MathRow' requests a \verb'<|.mrow\Hnewline>...</|.mrow>', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + + + + + + + + + + + + + + + + +\subsection{latex.ltx} + + + + + + + + + + + + + + + + + + +Definitions like \verb'\def\mathbf#1{\a:mathbf#1\b:mathbf}' +can't be done on a global level, because \verb'\mathbf' is just +a name of a font. So, for instance, \verb'\bf' expands to \verb'\mathbf', +and so \verb'$\bf R$' indirectly brings up the latter command. + + + + + +\subsection{plain.sty} + + + + + + + +\subsection{Palin + LaTeX} + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + + + + + + + + + + + + + +% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else +% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else +% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else +% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}% +% \fi\fi\fi\fi } +% \edef\lbrc:{\string{} \edef\rbrc:{\string}} + + + + + +% \HCode{\string#1;}% + + + + + + + + + + + + + + + + + + + + + + + + The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts + + + + + + +\section{Eqnarray} + + + + + +Had `BASELINE' before `MIDDLE', but changed to conform with math +in page 252-- in intro to theory book. + + + + + + + + + +\section{Big, BIG, ....} + + + +The +\verb'\special{t4ht@[}...\special{t4ht@]}' gobble the enclosed stuff. +The external pair is provided as grouping mechanism for +sub/super-scripts cases like \verb'\bigl(...\bigr)^x' within dvimath +mode. The \verb'{\HCode{}}' is neded for creating content delimiters +\verb'.' delimiters like in \verb'$\bigl. a_b \bigr)$'; without that mathml +gets something wrong there. + + + +\verb+\bigl{.}+ et al produce empty para,etr , hence the \verb+\:EMPTY+ is a ompensation for such cases. + + + + + + + + + + + + + + + + + +\section{Accents through `accents' Configurations} + + + + + +Why originally the accents are defined within a group? (knuth answer +this in the texbook.) + + + + +\section{Underline and Overline} + + + + + + + + + +\section{Space Characters} + + + + + +\subsection{Cases} + + + + +\subsection{matrix} + + + +\subsection{pmatrix} + + +The grouping below is handle the case that the matrix is a base of an exponent. + + + +\section{TeX} + + + + + + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<par del\><<< +!*?: >>> + + +\<tag of Tag\><<< + cw:>>> + +\<tail\><<< +tail>>> + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + + + + + + + +\<redefine Configure\><<< +\let\:tempd|=\Configure +\def\Configure#1#2{% + \:CheckOption{#1}\if:Option \def\:tempc{#2}\fi} +>>> + +\<recall Configure\><<< +\let\Configure|=\:tempd +>>> + + +\<user's configuration files\><<< +\openin15=tex4ht.usr \ifeof15 \else \closein15 + \input tex4ht.usr +\fi +>>> + + + + + + + +\<save catcodes\><<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \ifnum \the\catcode`\#=6 \else + \catcode`\noexpand \#|=\the\catcode`\#\fi + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 \catcode`\#|=6 +>>> + +\endinput diff --git a/support/TeX4ht/source/tex4ht-html32.tex b/support/TeX4ht/source/tex4ht-html32.tex new file mode 100644 index 0000000000..ec6f767bde --- /dev/null +++ b/support/TeX4ht/source/tex4ht-html32.tex @@ -0,0 +1,7429 @@ +% $Id: tex4ht-html32.tex 414 2018-06-12 23:04:41Z karl $ +% latex tex4ht-html32 +% or xhlatex tex4ht-html32 "html,3,sections+" +% +% Copyright 2009-2018 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{html32,html32-math} + \def\CONFIG{\jobname} + \def\PREAMBLE{% + \usepackage{url}% + } + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + + + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +\def\.{\string\a:mathml:\space} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{The Calling Tree for 4ht Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<0,32,4 tex4ht\><<< +\if:latex |<Hinclude latex|> +\else |<Hinclude plain|> \fi +>>> + + +\<0,32,4 plain\><<< +|<Hinclude plain lib|> +|<Hinclude plain + latex lib|> +>>> + +\<0,32,4 latex\><<< +|<Hinclude latex lib|> +|<Hinclude plain + latex lib|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Structures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Front} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<book-report-article make title\><<< +\Configure{maketitle} + {|<title for TITLE|>% + \HCode{<div align="center">}}{\HCode{</div>}} + {\IgnorePar\HCode{<h2 class="maketitleHead">}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent} +\Configure{thanks author date and} + {\HCode{<div align="left"><i>}}{\HCode{</i></div>}} + {\HCode{<div align="center">}}{\HCode{</div>}} + {\HCode{<div align="center">}}{\HCode{</div>}} + {\:nbsp\:nbsp\:nbsp}{\HCode{<br\xml:empty>}} +\Configure{thank} + {\HCode{<sup>}\Link{tk-\the\c@footnote}{}} + {\EndLink\HCode{</sup>}} + {\HCode{<br\xml:empty>}\protect\Link{}{tk-\the\c@footnote}\protect + \EndLink\HCode{<sup>}} + {\HCode{</sup>}} {} +>>> + + + + + +\<configure aa 3.2/4.0t\><<< +\Configure{subtitle institute} + {\HCode{<br\xml:empty><span class="subtitle">}}{\HCode{</span>}} + {\HCode{<div class="institute">}}{\HCode{</div>}} + {\Tg<sup>}{\Tg</sup>} + {\HCode{<br\xml:empty>}} + +\Configure{maketitle} + {\HCode{<div align="center" class="maketitle">}} + {\HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="maketitleHead">}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Configure{thanks author date and}{}{} + {\HCode{<div class="author" align="center">}}{\HCode{</div>}} + {\HCode{<div class="date" align="center">}}{\HCode{</div>}} + {\SPAN:{and}and\EndSPAN:} + {\HCode{<br\xml:empty>}} +>>> + + + +\<configure aa 3.2/4.0t\><<< +\ConfigureEnv{abstract} + {\:xhtml{\IgnorePar\EndP}\HCode {<div class="abstract">}} + {\HCode{</div>}}{}{} + +\Css{div.abstract{text-align:center;}} + +\Configure{makeheadbox} + {\HCode{<table class="makeheadbox" + width="100\%"><tr><td><table><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr></table></td><td class="AALogo" width="10\%">}} + {\HCode{</td></tr></table>}} +>>> + +% \Css{.AALogo{font-size:120\%;font-weight: bold; text-align:right;}} + +\<32,4 amsbook\><<< +\Configure{authors}{\HCode{<center>}}{\HCode{</center>}} +\Configure{title} + {\HCode{<center>}\IgnorePar\HCode{<h2 class="titleHead">}} + {\HCode{</h2>}\IgnoreIndent\HCode{</center>}} +\Configure{addresses}{\HCode{<center>}\IgnorePar} + {\IgnorePar\HCode{</center>}} +\Configure{date}{\HCode{<center>}}{\HCode{</center>}} +\Configure{keywords}{\HCode{<center>}}{\HCode{</center>}} +\Configure{abstract}{\HCode{<div><\tbl:XV><tr><td\Hnewline + >}\IgnorePar}{\end:env} +\ConfigureEnv{abstract}{}{}{}{} +\Configure{thanks}{\HCode{<center>}}{\HCode{</center>}} +\Configure{subjclass} + {\ShowPar\par\HCode{<center>}\bgroup + \Configure{HtmlPar}{\HCode{<br\xml:empty>}} + {\HCode{<br\xml:empty>}}{}{}} + {\egroup\HCode{</center>}} +\Configure{translators}{\HCode{<center>}}{\HCode{</center>}} + +>>> + + + + +\<title for TITLE\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection |<disable latex fonts|>\more:no \let\thanks|=\:gobble +\let\\|=\empty \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\Tag{TITLE+}{\@title}} +>>> + +\<disable latex fonts\><<< +\let\leavevmode|=\empty \let\not@math@alphabet|=\:gobbleII +\def\text@command##1{##1}\let\selectfont|=\empty +\def\check@icl ##1\check@icr{}% +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Plain} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<32,4 plain\><<< +\Configure{vfootnote} + {\HPageButton[fn\FNnum]{\FNmark}} + {\BeginHPage[fn\FNnum]{ }} + {\EndHPage{}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<latex footnotes\><<< +|<footnote mark|> +|<footnote text|> +>>> + + + +\<footnote text\><<< +\Configure{footnotetext} + {|<open footnote page|>% + \leavevmode \Link{}{|<footnote id|>}% + \NoFonts + } + {\EndNoFonts \EndLink} + {|<close footnote page|>} +>>> + +\<footnote mark\><<< +\Configure{footnotemark} + {\leavevmode |<footnotemark link|>\NoFonts + \Tag{|<footnote id|>}{}} + {\EndNoFonts |<end footnotemark link|>} +>>> + + +\<open footnote page\><<< +\ifTag{|<footnote id|>} + {\expandafter\ifx\csname (|<footnote id|>)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \else \HPage{}\fi + } + {}% +>>> + +\<close footnote page\><<< +\ifTag{|<footnote id|>} + {\expandafter\ifx\csname (|<footnote id|>)\endcsname\def + \else \EndHPage{}\fi + } + {}% +\expandafter\global\expandafter + \let\csname (|<footnote id|>)\endcsname\def +>>> + +\<footnotemark link\><<< +\ifTag{|<link tag to footnotetext|>|<footnote id|>} + {\Link{|<footnote id|>}{}} + {}% +>>> + +\<end footnotemark link\><<< +\ifTag{|<link tag to footnotetext|>|<footnote id|>} + {\EndLink} + {}% +>>> + + + +\<footnote id\><<< +fn\FNnum x\minipageNum +>>> + +\<link tag to footnotetext\><<< +)Q>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{AMS} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<ams footnotes\><<< +|<ams footnote mark|> +|<ams footnote text|> +>>> + + + +\<ams footnote text\><<< +\Configure{footnotetext} + {|<open footnote page|>% + \HCode{<sup>}\Link{}{|<footnote id|>}% + \NoFonts + } + {\EndNoFonts \EndLink \HCode{</sup>}} + {|<close footnote page|>} +>>> + +\<ams footnote mark\><<< +\Configure{footnotemark} + {\HCode{<sup>}|<footnotemark link|>\NoFonts + \Tag{|<footnote id|>}{}} + {\EndNoFonts |<end footnotemark link|>\HCode{</sup>}} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Floating} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%% +\section{Wrapfig} +%%%%%%%%%%%%%%%%% + +\<configure html32 wrapfig\><<< +\Configure{wrapfloat} + {\getWFplace + \ifvmode\IgnorePar\EndP + \HCode{<div \WFplace>}% + \def\endWrap{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par}% + \else + \HCode{<span \WFplace>}\bgroup + |<config span caption|>% + \def\endWrap{\egroup\HCode{</span>}}% + \fi + } + {\endWrap} +\def\getWFplace{% + \let\:tempa=\empty + \def\:temp##1r##2//{\if !##2!\else + \def\:tempa{align="left"}\fi}% + \expandafter\:temp\WFplace l//% + \def\:temp##1r##2//{\if !##2!\else + \def\:tempa{align="right"}\fi}% + \expandafter\:temp\WFplace r//% + \let\WFplace=\:tempa } +>>> + +\<config span caption\><<< +\Configure{caption} + {\HCode{<br\xml:empty><span class="caption"><b>}} + {\HCode{</b>}: }{}{\HCode{</span><br\xml:empty>}}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Etc} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +\<0,32,4 preambles\><<< +|<date utility|> +|<cascade style sheets|> +\Configure{Preamble} + {|<default cascade style sheets|>} {} +>>> + + +\<default cascade style sheets\><<< +{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@ +\leavevmode}% +\writesixteen{--- file \aa:CssFile\space ---}% +\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}% +\ht:special{t4ht<\aa:CssFile}% +>>> + + + + + + + + + +\verb'\special' are like \verb'\hbox', and they so they may introduve empty lines in +vertical mode. That might be a problem if we don't want empty lines at +the start of the files. Hence, in latex we give them special treatment. + + + +\<cascade style sheets\><<< +\ScriptCommand{\CssFile}{% + \writesixteen{--- file \aa:CssFile\space ---}% + \def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}% + \def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}% + \def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special + {t4ht>\aa:CssFile}}% + \ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}\bb:CssFile + \hfil\break\NoFonts}{\EndNoFonts + \ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}} +\let\Css:File|=\CssFile +\def\CssFile{\futurelet\:temp\Css:Fl} +\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl + \else \expand:after{\Css:File \space}\fi} +\def\Css:fl[#1]{\Css:File\space \css:files #1,,|<par del|>} +\def\css:files#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty + \else \def\:temp{\in:css#1.|<par del|>\css:files#2,,|<par del|>}\fi + \:temp } +\def\in:css#1.#2|<par del|>{\def\:temp{#2}\ifx \:temp\empty \input #1.css + \else \inc:ss#1.#2|<par del|>\fi} +\def\inc:ss#1.|<par del|>{\input #1 } +\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} +>>> + +\verb'\CssFile[file-name,filename.ext,..]...\EndCssFile'. + +Default file, just in case the user doesn't provide one. If +the user does, the following file will be overwritten. + +Can't use below \verb'\a:CssFile' and \verb'\b:CssFile', because +\verb'\ScriptFile{\CssFile}' also needs them. + + + +\verb'\Css' changes its definition upon reachin \verb'\CssFile'. The +first definition is needed within the sty files, and the info is +sent to the lg file (where else it can be sent?). + + +\<cascade style sheets\><<< +\def\Css#1{{\def\:temp{\Configure{Needs}}% + \expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}} +\let\send:css|=\Css +\ScriptCommand{\Css}{\HCode{<style + type="text/css">\Hnewline}\NoFonts}{\EndNoFonts\HCode{</style>}} +\let\loc:css|=\Css +\def\Css{\futurelet\:temp\:Css} +\def\:Css{\ifx \:temp\bgroup \expandafter\send:css + \else \expandafter\loc:css\fi} +>>> + + + +\<date utility\><<< +\tmp:cnt|=\time \divide\tmp:cnt |by 60 +\edef\:temp{\the\tmp:cnt} +\multiply\tmp:cnt |by -60 \advance\tmp:cnt |by \time +\edef\:today{\the\year-\ifnum \month<10 0\fi + \the\month-\ifnum \day<10 0\fi\the\day + \space\ifnum \:temp<10 0\fi \:temp + :\ifnum \tmp:cnt<10 0\fi\the\tmp:cnt :00} +>>> + + +\<date utility\><<< +\:CheckOption{hooks++} \if:Option + \else \:CheckOption{hooks+} + \if:Option \else \:CheckOption{hooks}\fi + \fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi +>>> + + + + + + +The following provides a faster version +than \verb'\LinkCommand\Link{a,href,name,}' for the \verb'\Link' +command + +\<32,4 tex4ht\><<< +\Configure{Link}{a}{href=}{name=}{} +>>> + + + +\section{article} + +\<config book-report-article 3.2\><<< +|<book-report-article make title|> +|<book-report-article caption 3.2|> +|<latex report,... config 3.2|> +|<latex config div|> +|<latex config like div 3.2|> +>>> + + + +\<32,4 report,book\><<< +\ConfigureEnv{description}{\IgnorePar}{}{}{} + +>>> + + + +\section{alsart} + + + +\<configure html32 elsart\><<< +|<32,4 elsart|> +\Configure{abstract}{\HCode{<\tbl:XV{abstract}><tr><td\Hnewline + >}}{\end:env} +\Configure{keyword}{\HCode{<\tbl:XV{keyword}><tr><td\Hnewline + >}}{\end:env} +\Configure{title} + {\IgnorePar\EndP\Tg<h2 class="title">\NoFonts} + {\EndNoFonts\Tg</h2>} +>>> + + +\<32,4 elsart\><<< +\ConfigureEnv{frontmatter} + {\EndP\IgnorePar + \HCode{<\tbl:XV{frontmatter}><tr><td><div align="center"\Hnewline>}} + {\IgnorePar\EndP\HCode{</div>}\end:TTT\IgnorePar} + {}{} +>>> + +\section{report} + + + +\<32,4 report\><<< +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead">}% + \chaptername \ \thechapter\HCode{<br\xml:empty>}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{chapterTITLE+}{\thechapter\space#1} +>>> + + +\<32,4 report,book\><<< +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead">} + \appendixname \ \thechapter\HCode{<br\xml:empty>}} + {\HCode{</h2>}\IgnoreIndent} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead">}} + {\HCode{</h2>}\IgnoreIndent} + +\Configure{endchapter}{likechapter,appendix,part,likepart} +\Configure{endlikechapter}{chapter,appendix,part,likepart} +\Configure{endappendix}{chapter,likechapter,part,likepart} +>>> + +\section{book} + + + + + + + +\<32,4 book\><<< +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead">} + \if@mainmatter \chaptername \ \thechapter\HCode{<br\xml:empty>}\fi} + {\HCode{</h2>}\IgnoreIndent} +\Configure{chapterTITLE+}{\if@mainmatter\thechapter\space\fi#1} +\renewcommand\thechapter {\if@mainmatter\@arabic\c@chapter\fi} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\section{latex.ltx} +%%%%%%%%%%%%%%%%%%%% + + +\<latex options 1, 2, 3\><<< +\:CheckOption{7} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<cut toc: subsubsec|> + |<cutat: subsubsection|> + |<cut toc: paragraph|> + |<cutat: paragraph|> + |<cut toc: subparagraph|> + |<cutat: subparagraph|> + |<tocat: part|> + |<tocat: section|> + |<tocat: subsection|> + |<tocat: subsubsection|> + |<tocat: paragraph|> + \else + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: ch|> + |<cutat: chapter|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<cut toc: subsubsec|> + |<cutat: subsubsection|> + |<cut toc: paragraph|> + |<cutat: paragraph|> + |<cut toc: subparagraph|> + |<cutat: subparagraph|> + |<tocat: part|> + |<tocat: ch|> + |<tocat: section|> + |<tocat: subsection|> + |<tocat: subsubsection|> + |<tocat: paragraph|> + \fi +\else\:CheckOption{6} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<cut toc: subsubsec|> + |<cutat: subsubsection|> + |<cut toc: paragraph|> + |<cutat: paragraph|> + |<tocat: part|> + |<tocat: section|> + |<tocat: subsection|> + |<tocat: subsubsection|> + \else + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: ch|> + |<cutat: chapter|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<cut toc: subsubsec|> + |<cutat: subsubsection|> + |<cut toc: paragraph|> + |<cutat: paragraph|> + |<tocat: part|> + |<tocat: ch|> + |<tocat: section|> + |<tocat: subsection|> + |<tocat: subsubsection|> + \fi +\else \:CheckOption{5} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<cut toc: subsubsec|> + |<cutat: subsubsection|> + |<tocat: part|> + |<tocat: section|> + |<tocat: subsection|> + \else + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: ch|> + |<cutat: chapter|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<cut toc: subsubsec|> + |<cutat: subsubsection|> + |<tocat: part|> + |<tocat: ch|> + |<tocat: section|> + |<tocat: subsection|> + \fi +\else\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<tocat: part|> + |<tocat: section|> + \else + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: ch|> + |<cutat: chapter|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<tocat: part|> + |<tocat: ch|> + |<tocat: section|> + \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: sec|> + |<cutat: sec|> + |<cut toc: subsec|> + |<cutat: subsection|> + |<tocat: part|> + |<tocat: section|> + \else + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: ch|> + |<cutat: chapter|> + |<cut toc: sec|> + |<cutat: sec|> + |<tocat: part|> + |<tocat: ch|> + \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: sec|> + |<cutat: sec|> + |<tocat: part|> + \else + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> + |<cut toc: ch|> + |<cutat: chapter|> + |<tocat: part|> + \fi +\else\:CheckOption{1} \if:Option + |<cut toc: part|> |%cut toc before cutat|% + |<cutat: part|> +\else + \Log:Note{for automatic sectioning + pagination, use the command line option + `1', `2', `3', '4', '5', '6', or '7'}% +\fi \fi \fi \fi \fi \fi \fi +>>> + + + + +\<cut toc: part\><<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*} + {part,chapter,appendix} +\else + |<notoc* note|> + \Configure{tableofcontents*} + {part,likepart,chapter,likechapter,appendix} +\fi +>>> + + + +\<cutat: part\><<< +\CutAt{part} +\CutAt{likepart} +>>> + + + + +\<tocat: part\><<< +\:CheckOption{notoc*} \if:Option +\else + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{part,/likepart,chapter,likechapter,appendix,% + section,likesection} + \TocAt*{likepart,/part,chapter,likechapter,appendix,% + section,likesection} + \fi +\fi +>>> + +\<note nominitoc\><<< +\Log:Note{to eliminate mini tables of + contents, use the command line option `nominitoc'} +>>> + + +\<cut toc: ch\><<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section\expandafter\ifx + \csname @chapter\endcsname\relax ,subsection\fi} +\else + |<notoc* note|> + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection\expandafter\ifx + \csname @chapter\endcsname\relax ,subsection,likesubsection\fi} +\fi +>>> + + + + + +\<cutat: chapter\><<< +\CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} +>>> + +\<cut toc: sec\><<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,appendix,section% + \expandafter\ifx \csname @chapter\endcsname\relax + ,subsection\fi} +\else + |<notoc* note|> + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection% + \expandafter\ifx \csname @chapter\endcsname\relax + ,subsection,likesubsection\fi} +\fi +>>> + + +\<tocat: section\><<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{section,/likesection,/chapter,/likechapter,/appendix,/part,% + subsection,subsubsection} + \TocAt*{likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsection,subsubsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{section,/likesection,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \TocAt*{likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \fi +\fi +>>> + +\<cutat: sec\><<< +\CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +>>> + +\<tocat: ch\><<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{chapter,/likechapter,/appendix,/part,% + section,subsection} + \TocAt*{likechapter,/appendix,/chapter,/part,% + section,subsection} + \TocAt*{appendix,/chapter,/likechapter,/part,% + section,subsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{chapter,/likechapter,/appendix,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{likechapter,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \TocAt*{appendix,/chapter,/likechapter,/part,% + section,likesection,subsection,likesubsection} + \fi +\fi +>>> + + +\<cut toc: subsec\><<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection} +\else + |<notoc* note|> + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,likesubsection,subsection} +\fi +>>> + + +\<cutat: subsection\><<< +\CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +>>> + + + +\<tocat: subsection\><<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + subsubsection,paragraph} + \TocAt*{likesubsection,/subsection,/likesection,% + /section,/chapter,/likechapter,/appendix,/part,% + subsubsection,paragraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + subsubsection,likesubsubsection,% + paragraph} + \TocAt*{likesubsection,/subsection,% + /likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsubsection,likesubsubsection,% + paragraph} + \fi +\fi +>>> + + +\<cut toc: subsubsec\><<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection} +\else + |<notoc* note|> + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection} +\fi +>>> + + + + +\<tocat: subsubsection\><<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{subsubsection,/likesubsubsection,/subsection,% + /likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + paragraph,subparagraph} + \TocAt*{likesubsubsection,/subsubsection,/likesubsection,% + /subsection,/likesection,% + /section,/chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{subsubsection,/likesubsubsection,% + /subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \TocAt*{likesubsubsection,/subsubsection,/likesubsection,/subsection,% + /likesection,/section,/chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \fi +\fi +>>> + + + + + + +\<cut toc: paragraph\><<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection,paragraph} +\else + |<notoc* note|> + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection,% + paragraph} +\fi +>>> + + +\<tocat: paragraph\><<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{paragraph,/subsubsection,/likesubsubsection,/subsection,% + /likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + subparagraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + |<note nominitoc|> + \TocAt*{paragraph,/subsubsection,/likesubsubsection,% + /subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + subparagraph} + \fi +\fi +>>> + + + + + + + + +\<cut toc: subparagraph\><<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection,% + paragraph,subparagraph} +\else + |<notoc* note|> + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection,% + paragraph,subparagraph} +\fi +>>> + + +\<cutat: subsubsection\><<< +\CutAt{subsubsection,subsection,likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsubsection,subsection,likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +>>> + +\<cutat: paragraph\><<< +\CutAt{paragraph,subsubsection,likesubsubsection,subsection,likesubsection,% + section,likesection,chapter,likechapter,appendix,part} +>>> + +\<cutat: subparagraph\><<< +\CutAt{subparagraph,paragraph,subsubsection,likesubsubsection,% + subsection,likesubsection,% + section,likesection,chapter,likechapter,appendix,part} +>>> + + + + + + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltplain.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{obeylines} + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltspace.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Spaces} + +\<32,4 latex\><<< +\Configure{hspace}{}{}{\:nbsp} +>>> + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltlogos.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Logos} + + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltoutenc.dtx + %%%%%%%%%%%%%%%%%%%%%%% + + + +\<0,32,4 plain,latex accents\><<< +\:CheckOption{new-accents} \if:Option + |<new accents|> +\else + |<old accents |> + |<old plain,latex accents|> +\fi +\let\^^_|=\v +>>> + + +\<0,32,4 latex\><<< +|<0,32,4 plain,latex accents|> +\let\@acci|=\' \let\@accii|=\` \let\@acciii|=\= +>>> + +\<0,32,4 plain\><<< +|<0,32,4 plain,latex accents|> +>>> + + +\<new accents\><<< +\:CheckOption{accent-} \if:Option + \Configure{HAccent}\acute{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\check{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\ddot{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\grave{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture} +\fi +\:CheckOption{mathaccent-} \if:Option + \Configure{HAccent}\"{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\'{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\.{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\={}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\H{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\^{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\`{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\b{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\d{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\t{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\u{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\v{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\~{AOaoNn{}}{\Picture+{}}{\EndPicture} +\fi +>>> + +\<new accents\><<< +\Configure{accent}{*} + {<!--tex4ht:accent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accent-->} +\Configure{mathaccent}{*} + {<!--tex4ht:mathaccent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end mathaccent-->} +\Configure{accented}{*} + {<!--tex4ht:accented\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accented-->} +\Configure{accenting}{*} + {<!--tex4ht:accenting\Hnewline-->} + {<!--tex4ht:end accenting-->} +>>> + + +\<old accents\><<< +\Configure{accent}\`\grave{A{A}E{E}I{I}O{O}U{U}% + a{a}e{e}i{i}\i{i}o{o}u{u}{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{A{A}E{E}I{I}O{O}U{U}a{a}% + e{e}i{i}\i{i}o{o}u{u}{}{}} + {\a:accents{circ}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{A{A}O{O}a{a}o{o}N{N}n{n}{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + + + + +The following are also placed under accents configuration. + +\<old accents\><<< +\Configure{accent}\c\c{C{C}c{c}{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{{}{}} {}{\b:accents{Huml}{#1}{#2}} +>>> + +The following originally have been defined to be parameter-less. + + + +\<old accents\><<< +\Configure{accent}\.\dot{{}{}} {}{\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{{}{}}{}{\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}}{}{\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\check{{}{}}{}{\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} {}{\b:accents{bar}{#1}{#2}} +>>> + + +% \= macron + +\<old accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {}{\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {}{\b:accents{widehat}{#1}{#2}} +>>> + + +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + + + + +%%%%%%%%%%%%% +\subsection{accents from html4} +%%%%%%%%%%%%% + + + +\<latex accents\><<< +\Configure{add accent}{T1:2} + {}{\ht:special{t4ht@+\string&\#x005E;}x} + {}{} +>>> + + + + +\<babel accents\><<< +|<optional iso-8859-2 accents|> +>>> + + + +\<old plain,latex accents\><<< +|<old iso-8859-1 accents|> +|<OT1 old iso-8859-1 accents|> +|<optional iso-8859-2 accents|> +>>> + + +\<old iso-8859-1 accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} +>>> + + + +\<configure html32 latex\><<< +\ifOption{charset=iso-8859-7} + {|<T1 greek ldf iso-8859-7|>} + {} +\:CheckOption{new-accents} \if:Option +\else + |<T1 old iso-8859-1 accents|> +\fi +\let\^^_|=\v +>>> + + + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter\endcsname + \csname T1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\r\endcsname + \mathring{|<ring codes|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\b\endcsname}% + \csname T1\string\b\endcsname{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname + {|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname + {|<breve codes|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\vec\expandafter\endcsname + \csname T1\string\vec\endcsname + {|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname + {|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname + {|<macron codes|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname + OT1\string\"\expandafter\endcsname + \csname OT1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\Configure{accent}\ddot\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\r\endcsname + \mathring{|<ring codes|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\c\endcsname}% + \csname OT1\string\c\endcsname{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\t\endcsname}% + \csname OT1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\H\endcsname}% + \csname OT1\string\H\endcsname{{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\b\endcsname}% + \csname OT1\string\b\endcsname{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\.\endcsname + \dot{|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\u\endcsname + \breve{|<breve codes|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\vec\endcsname + \vec{|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\v\endcsname + \check{|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\=\endcsname + \bar{|<bar iso-8859-1|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + + +\<OT1 old iso-8859-1 accents\><<< +|<ot1enc.def unicode|> +>>> + + + +\<ot1enc.def unicode\><<< +\expandafter\def + \csname OT1\string\l\endcsname{\ht:special{t4ht@+\string&{35}x0142{59}}x} +\expandafter\def + \csname OT1\string\L\endcsname{\ht:special{t4ht@+\string&{35}x0141{59}}x} +>>> + + + + +\<optional iso-8859-2 accents\><<< +\def\:temp{charset=iso-8859-2} +\ifx \a:charset\:UnDef + \ifx \A:charset\:temp \let\:temp=\def \fi +\else \ifx \a:charset\:temp \let\:temp=\def \fi +\fi +\ifx \:temp\def + \:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi \fi +>>> + + +\<old iso-8859-2 accents\><<< +|<T1 old iso-8859-2 accents|> +>>> + + + +\<old iso-8859-2 accents\><<< +\Configure{accent}\`\grave{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{|<circumflex codes|>{}{}} + {\a:accents{hat}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + +\<old iso-8859-2 accents\><<< +\Configure{accent}\c\c{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{|<double acute iso-8859-2|>{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\Configure{accent}\b\b{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\Configure{accent}\d\d{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + +\<old iso-8859-2 accents\><<< +\Configure{accent}\.\.{|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\dot\dot{|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{|<breve codes|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\v{|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\check\check{|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + +\<configure html4 romanian\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + +\<configure html4 croatian\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + +\<configure html4 slovak\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + +\<configure html4 slovene\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter\endcsname + \csname T1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\r\endcsname}% + \csname T1\string\r\endcsname{|<ring codes|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{|<double acute iso-8859-2|>{}{}} + {\a:accents{Huml}{#1}}{\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\b\endcsname}% + \csname T1\string\b\endcsname{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname + {|<dot iso-8859-2|>{}{}} + {\a:accents{dot}{#1}}{\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname + {|<breve codes|>{}{}} + {\a:accents{breve}{#1}}{\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\vec\expandafter\endcsname + \csname T1\string\vec\endcsname + {|<vec iso-8859-2|>{}{}} + {\a:accents{vec}{#1}}{\b:accents{vec}{#1}{#2}} +\expandafter\let\csname T1\string\v\endcsname\:UnDef +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname + {|<caron codes|>{}{}} + {\a:accents{check}{#1}}{\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname + {|<bar iso-8859-2|>{}{}} + {\a:accents{bar}{#1}}{\b:accents{bar}{#1}{#2}} +>>> + + + + + + + +\<grave codes\><<< +A{00C0}E{00C8}I{00CC}N{01F8}O{00D2}U{00D9}W{1E80}% +Y{1EF2}a{00E0}e{00E8}i{00EC}n{01F9}o{00F2}u{00F9}% +w{1E81}y{1EF3}\i{00EC}% +>>> + + +\<acute codes\><<< +A{00C1}C{0106}D{010E}E{00C9}G{01F4}I{00CD}L{0139}N{0143}% +O{00D3}R{0154}S{015A}U{00DA}Y{00DD}Z{0179}a{00E1}c{0107}% +d{010F}e{00E9}g{01F5}i{00ED}l{013A}n{0144}o{00F3}r{0155}% +s{015B}u{00FA}y{00FD}z{017A}j{FFFD}J{FFDD}\i{00ED}\j{FFFD}% +>>> + + + + + +\<circumflex codes\><<< +A{00C2}E{00CA}I{00CE}O{00D4}U{00DB}a{00E2}e{00EA}% +i{00EE}o{00F4}u{00FB}C{0108}c{0109}G{011C}g{011D}% +H{0124}h{0125}J{0134}j{0135}S{015C}s{015D}W{0174}% +w{0175}Y{0176}y{0177}Z{1E90}z{1E91}\i{00EE}\j{0135}% +>>> + + + +\<tilde codes\><<< +A{00C3}N{00D1}O{00D5}a{00E3}n{00F1}o{00F5}I{0128}% +i{0129}U{0168}u{0169}V{1E7C}v{1E7D}E{1EBC}e{1EBD}% +Y{1EF8}y{1EF9}\i{0129}% +>>> + + + + + + +\<diaeresis codes\><<< +H{1E26}h{1E27}W{1E84}w{1E85}X{1E8C}x{1E8D}% +t{1E97}A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +>>> + + + + +\<ring codes\><<< +A{00C5}a{00E5}U{016E}u{016F}% +>>> + + + + + + + +\<cedilla codes\><<< +K{0136}k{0137}L{013B}l{013C}N{0145}n{0146}% +R{0156}r{0157}S{015E}s{015F}T{0162}t{0163}% +E{0228}e{0229}D{1E10}d{1E11}H{1E28}h{1E29}% +C{00C7}c{00E7}G{0122}g{0123}% +>>> + + + + + + +\<dot above codes\><<< +C{010A}c{010B}E{0116}e{0117}G{0120}g{0121}% +I{0130}Z{017B}z{017C}A{0226}a{0227}O{022E}% +o{022F}B{1E02}b{1E03}D{1E0A}d{1E0B}F{1E1E}% +f{1E1F}H{1E22}h{1E23}M{1E40}m{1E41}N{1E44}% +n{1E45}P{1E56}p{1E57}R{1E58}r{1E59}S{1E60}% +s{1E61}T{1E6A}t{1E6B}W{1E86}w{1E87}X{1E8A}% +x{1E8B}Y{1E8E}y{1E8F}% +>>> + + + + + + + + + +\<breve codes\><<< +g{011F}I{012C}i{012D}O{014E}o{014F}% +U{016C}u{016D}A{0102}a{0103}E{0114}% +e{0115}G{011E}\i{012D}% +>>> + + + + + +\<vec iso-8859-1\><<< +>>> + +\<bar iso-8859-1\><<< +>>> + + + + +\<caron codes\><<< +C{010C}c{010D}D{010E}d{010F}% +E{011A}e{011B}L{013D}l{013E}N{0147}n{0148}R{0158}r{0159}% +S{0160}s{0161}T{0164}t{0165}Z{017D}z{017E}A{01CD}a{01CE}I{01CF}% +i{01D0}O{01D1}o{01D2}U{01D3}u{01D4}G{01E6}g{01E7}K{01E8}k{01E9}% +j{01F0}H{021E}h{021F}\i{01D0}\j{01F0}% +>>> + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltfssini.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{tt Font} + +\<0,32,4 latex\><<< +\ifx \ttfamily\:UnDef \else \Configure{tt}{\ttfamily} \fi +>>> + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltxref.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Cross References} + + +\<32,4 latex\><<< +\Configure{ref}{\Link}{\EndLink}{} +>>> + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmiscen.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Miscellaneous Environments} + + +\<32,4 plain,latex\><<< +\def\end:TTT{\EndP\HCode{</td></tr></table>}} +>>> + +\<32 latex\><<< +\ConfigureEnv{center}{\EndP}{\par \ShowPar} + {\EndP\IgnorePar + \HCode{<\tbl:XV{center}><tr><td><div align="center"\Hnewline>}} + {\IgnorePar\EndP\HCode{</div>}\end:TTT\IgnorePar} +\ConfigureEnv{flushleft}{\par\leavevmode\IgnorePar}{\par \ShowPar} + {\start:fenv{left}}{\end:fenv} +\ConfigureEnv{flushright}{\par\leavevmode\IgnorePar}{\par \ShowPar} + {\start:fenv{right}}{\end:fenv} +>>> + + + +\<32,4 latex\><<< +\ConfigureEnv{verbatim}{\env:verb{verbatim}}{\endenv:verb}{}{} +\ConfigureEnv{verbatim*}{\env:verb{verbatim}}{\endenv:verb}{}{} +\def\env:verb#1{\ifvmode \IgnorePar \fi\EndP\HCode{<\tbl:XV{#1}><tr + class="#1"><td\Hnewline + class="#1">}\HCode{<pre class="#1">}\EndNoFonts} +\def\endenv:verb{\NoFonts + \ifvmode \IgnorePar\fi \EndP + \ht:special{t4ht=</pre>}\end:TTT \ShowPar\:xhtml{\par}} +\def\start:fenv#1{\:xhtml{\IgnorePar\EndP}\HCode{<table + \Hnewline width="100\%" + \:zbsp{flush#1}><tr><td><div align="#1"\Hnewline>}} +\def\end:fenv{\IgnorePar\HCode{</div>}\end:TTT\IgnorePar} +>>> + + + + + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmath.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Math Setup} + + + + + +\<configure html32-math latex\><<< +\:CheckOption{pic-eqnarray} \if:Option + |<PIC eqnarray Config|> +\fi +>>> + + +\<PIC eqnarray Config\><<< +\ConfigureEnv{eqnarray} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray {text-align:center;}} +\ConfigureEnv{eqnarray*} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray-star">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray-star {text-align:center;}} +>>> + + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % lttab.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Tabbing, Tabular and Array Environments} + + + + +\<32,4 picmath latex\><<< +\:CheckOption{pic-array} \if:Option + \ConfigureEnv{array} + {\IgnorePar\EndP\Tg<div class="pic-array">\Picture*{}$$} + {$$\EndPicture\Tg</div>}{}{} + \Css{div.pic-array {text-align:center;}} +\fi +>>> + + +\<32,4 latex\><<< +\:CheckOption{pic-tabular} \if:Option + \ConfigureEnv{tabular} + {\IgnorePar\EndP\Tg<div class="pic-tabular">\Picture*{}} + {\EndPicture\Tg</div>}{}{} + \Css{div.pic-tabular {text-align:center;}} +\fi +>>> + + + + +\<vspace body for array/tabular\><<< +\append:def\vspc:s{\h:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\vspc:s{\i:HBorder}% + \expandafter\:tempb + \fi } +\tmp:cnt|=0 \:tempb +\append:def\vspc:s{\j:HBorder}\global\let\vspc:s|=\vspc:s +>>> + + +\<0,32,4 latex\><<< +\Configure{hline}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<hline body for array/tabular|>}\fi} +\Configure{//[]}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<vspace body for array/tabular|>}\fi} +>>> + + + +\<hline body for array/tabular\><<< +\append:def\hline:s{\a:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\hline:s{\b:HBorder}% + \expandafter\:tempb + \fi } +\tmp:cnt|=0 \:tempb +\append:def\hline:s{\c:HBorder}\global\let\hline:s|=\hline:s +>>> + + + + + +\<configure clear noalign\><<< +\Configure{noalign}{}{} +>>> + +\<configure tabular noalign\><<< +\Configure{noalign}% + {\f:tabular\d:tabular \HCode{<tr><td colspan="\ar:cnt">}} + {\HCode{</td></tr>}\pend:def\TableNo{0}\c:tabular\e:tabular}% +>>> + + + + + + +\verb'\AllColMargins' Return a binary string in which 1 represents +a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the +zeros before the 1's that represent the current and following 1's. + + + + + + + + + + + +\subsection{The option @()} + + + + + + + + +\<configuring @()\><<< +\Configure{@{}}{} +>>> + + + + + + +We force border around the full table whenever a vertical line is +requested, because it makes the tables better looking within the +existing capabilities. + + + +Currently, we either have empty \verb'\VBorder', or one defined to +\verb'\def\VBorder{border="1"}'. + + + +When \verb'\putVBorder' is call in \verb'\VBorder' +we have a sequence of the form +\verb'<COLGROUP><COL ...">...</COLGROUP>...' with the last +tag possibly missing. + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} +%%%%%%%%%%%%%%%%%%% + + + + + + + + + + + + + + + + +\<0,32,4 plain,latex\><<< +\Configure{ }{\:nbsp} +>>> + + + + + + + + + + + + + + + + +\<0,32,4 latex\><<< +\Configure{framebox} + {\Picture+[]{ \a:@Picture{framebox}}} {\EndPicture} +\Configure{InsertTitle}{\let\label|=\lb:l + \let\ref|=\o:ref \Configure{ref}{}{}{}} +\Configure{AfterTitle}{\let\index|=\:index + \let\ref|=\:ref \let\label|=\lb:l } +\Configure{NoSection} + {\let\sv:index|=\index \let\sv:label|=\label \let\sv:ref|=\ref + \let\sv:newline|=\newline \def\newline{ }% + \let\sv:setfontsize|=\@setfontsize \let\@setfontsize|=\:gobbleIII + \let\index|=\@gobble \let\label|=\@gobble \let\ref|=\@gobble + } + {\let\index|=\sv:index \let\label|=\sv:label \let\ref|=\sv:ref + \let\newline|=\sv:newline \let\@setfontsize|=\sv:setfontsize + } +\Configure{oalign}{\Picture+{ \a:@Picture{oalign}}}{\EndPicture} + +\Configure{TocLink} + {\Link{#2}{#3}{\Configure{ref}{}{}{}\Configure{cite}{}{}{}{}#4}\EndLink} +>>> + + + + + + + + +\<configure html32-math latex\><<< +\Configure{stackrel}{\Picture+{ class="stackrel"}\mathrel} + {\limits ^}{\EndPicture} +>>> + + + + + + + +Don't put \verb'\:xhtml{\IgnorePar\EndP}' on the following; \verb'\PicDisplay' +should handle it. + + +\<4 picmath th4,latex\><<< +\Configure{[]} + {\PicDisplay $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay |<try inline par|>} +\Configure{()}{\protect\PicMath$}{$\protect\EndPicMath} +>>> + + + +\<0,32,4 latex\><<< +\Configure{picture} + {\Picture+[PICT]{}} + {\EndPicture} +>>> + +\<32,4 latex\><<< +\Configure{cite}{}{}{\Link}{\EndLink} +\Configure{bibitem}{\Link}{\EndLink} +\ConfigureEnv{minipage} + {\IgnorePar\EndP + \HCode{<center class="minipage">}% + {\ifnum 0=`}\fi + } + {\ifnum 0=`{\fi}% + \EndP\HCode{</center>}} + {}{} +\Configure{fbox} + {\leavevmode\Picture+[]{ \a:@Picture{fbox}}} {\EndPicture} +>>> + + + +\<shared sec div config\><<< +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +>>> + + + + + +\<shared subsec div config\><<< +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likpart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likpart} +>>> + + + + + +\<shared sub end div config\><<< +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +>>> + +\<latex shared div config\><<< +\ConfigureEnv{thebibliography}{\IgnorePar}{\IgnorePar\par}{}{} +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi +>>> + + + + + + + + + + + +\<shared part div config\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +>>> + + + +\<latex shared part config\><<< +\Configure{part}{}{} + {\IgnorePar \IgnorePar\HCode{<h1 class="partHead">}% + \partname \ \thepart\HCode{<br\xml:empty>}} + {\HCode{</h1>}\IgnoreIndent} +\Configure{partTITLE+}{\thepart\space #1} +>>> + + +\<latex shared likepart config\><<< +\Configure{likepart}{}{} + {\IgnorePar\IgnorePar\HCode{<h1 class="likepartHead">}} + {\HCode{</h1>}\IgnoreIndent} +>>> + + + + + + + + + + + + + +It is better to put the LI in the third field to avoid extra space +to the following text. + + + + + + + + + + + + + +\<save configure tableofcontents\><<< +\let\sv:atoc|=\a:tableofcontents +\let\sv:btoc|=\b:tableofcontents +\let\sv:ctoc|=\c:tableofcontents +\let\sv:dtoc|=\d:tableofcontents +\let\sv:etoc|=\e:tableofcontents +>>> + + +\<recall configure tableofcontents\><<< +\let\a:tableofcontents|=\sv:atoc +\let\b:tableofcontents|=\sv:btoc +\let\c:tableofcontents|=\sv:ctoc +\let\d:tableofcontents|=\sv:dtoc +\let\e:tableofcontents|=\sv:etoc +>>> + + + + +Earlier we had +\verb'\:CheckOption{no-halign} \if:Option \else |<pic array|> \fi', +and the same for pic tabular. Why? + + +\<no wrap\><<< +nowrap="nowrap" >>> + + + +\<32 plain,latex\><<< +\Configure{displaylines} + {\HCode{<table \Hnewline border="0" width="100\%">}} + {\HCode{</table>}} + {\HCode{<tr><td\Hnewline valign="bottom" align="center" |<no wrap|> >}} + {\HCode{</td></tr>}} +>>> + + + +\<picmath plain,latex\><<< +\let\A:displaylines|=\a:displaylines +\let\B:displaylines|=\b:displaylines +\let\C:displaylines|=\c:displaylines +\let\D:displaylines|=\d:displaylines +\Configure{displaylines} + {\ifmmode + \def\A:displaylines{\Picture*{}}% + \def\B:displaylines{\EndPicture}% + \fi + \A:displaylines} + {\B:displaylines} {\C:displaylines}{\D:displaylines} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Long Tables} +%%%%%%%%%%%%%%%%%% + +\<configure html32 tex4ht\><<< +\HAssign\TableNo=0 +\newif\ifHCond +>>> + +\<configure html32 longtable\><<< +\:CheckOption{old-longtable}\if:Option + |<config old longtable|> +\else + |<config new longtable|> +\fi +\:CheckOption{pic-longtable} \if:Option + \ConfigureEnv{longtable} + {\IgnorePar\EndP + \Tg<div class="pic-longtable">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +% \Css{div.pic-longtable {text-align:center;}} +\else + \Log:Note{for pictorial longtable, + use the command line option `pic-longtable'} +\fi +>>> + + +\<config new longtable\><<< +\Configure{halignTB<>}{longtable}{\HCode{id="TBL-\TableNo" + class="longtable" cellpadding="5" \VBorder}<>\HAlign} +\Configure{longtable} + {\IgnorePar\EndP + \gHAdvance\TableNo by 1 + \HCode{|<show input line no|><div class="longtable">}% + \halignTB{longtable}% + } + {\HCode{</table></div>}} + {\HCode{<tr \Hnewline}\halignTR\HCode{ id="TBL-\TableNo-\HRow-">}} + {\r:HA} + {\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan" \fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}|<tabular td align|>% + \HCode{">}|<td save EndP|>% + |<start array par box|>\PushStack\Table:Stck\TableNo} + {\PopStack\Table:Stck\TableNo |<end array par box|>\d:HA} +\Configure{longtableparbox}{\IgnorePar\leavevmode\ShowPar\par} +>>> + +\<config old longtable\><<< +\let\a:longtable=\a:tabular +\let\b:longtable=\b:tabular +\let\c:longtable=\c:tabular +\let\d:longtable=\d:tabular +\let\e:longtable=\e:tabular +\let\f:longtable=\f:tabular +>>> + + +\<show input line no\><<< +<!--l. \the\inputlineno-->% +>>> + +\<tabular td align\><<< +\NoFonts + \bgroup + \ifx \ttfamily\:UnDef \else \ttfamily\fi + \ColMargins + \egroup +\EndNoFonts +>>> + +\<td save EndP\><<< +\SaveEndP +>>> + +\<td recall EndP\><<< +\RecallEndP +>>> +\<start array par box\><<< +\par \ShowPar +>>> + +\<end array par box\><<< +\IgnorePar \EndP +>>> + +\<html latex array/tabular Config 3.2\><<<< +\let\AllColMargins|=\empty +\Configure{VBorder}{\global\let\VBorder|=\empty}{\gdef\VBorder{border="1"}}{}{} + + \Configure{HBorder} + {<tr\Hnewline class="hline">} + {<td><hr\xml:empty></td>} {</tr>} + {<tr\Hnewline class="cline">} + {<td></td>} {<td><hr\xml:empty></td>} {</tr>} + {<tr\Hnewline class="vspace" style="font-size:\HBorderspace">} + {<td\Hnewline>\string </td>} {</tr>} +%\Configure{putHBorder}{\HCode{\HBorder}} +\Configure{putHBorder}{\HCode{}} +\HAssign\Next:TableNo|=0 \global\let\TableNo=\Next:TableNo +% \Css{.hline hr, .cline hr{ height : 1px; margin:0px; }} +>>> + + + + + + +\<html latex array/tabular Config 3.2\><<<< +\def\ColMargins{} +\def\nosp:hbr#11#2//{\ifnum \tmp:cnt>1 \advance\tmp:cnt by -1 + \nosp:hbr#2//\else\nosp:gt#11#2//\fi} +\def\nosp:gt#11#21#3//{% + \def\:temp{#1}\ifx \:temp\empty 1\else 0\fi + \def\:temp{#2}\ifx \:temp\empty 1\else 0\fi} +% \Css{div.td00{ margin-left:0pt; margin-right:0pt; }} +% \Css{div.td01{ margin-left:0pt; margin-right:5pt; }} +% \Css{div.td10{ margin-left:5pt; margin-right:0pt; }} +% \Css{div.td11{ margin-left:5pt; margin-right:5pt; }} +>>> + + + + +\<html latex array/tabular Config 3.2\><<<< +\Configure{multicolumn} + {\let\col:Css\empty +% \Configure{VBorder} +% {\let\VBorder|=\empty}{\def\VBorder{border="1"}}{}{} + } + {} + {\ifvmode\IgnorePar\fi + \HCode{<div class="multicolumn" }\HColAlign\HCode{>}% + } + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}} +>>> + +The \verb'<TABLE>' is needed as a grouping mechanism for \verb'<CENTER>'. + + +%%%%%%%%%%%%%%%%%% +\section{Ams Math} +%%%%%%%%%%%%%%%%%% + + +\<configure html32-math amsmath\><<< +\Configure{overset} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{underset} {\Picture+{ \a:@Picture{}}} {\EndPicture} +>>> + + +\<configure html32-math amsmath\><<< +\Configure{xrightarrow} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{xleftarrow} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{genfrac} + {\Picture+{}\bgroup} {}{}{}{}{\egroup\EndPicture} +>>> + + +%%%%%%%%%%%%%%%%%%%%% +\section{Shared} +%%%%%%%%%%%%%%%%%%% + + + + + +\<0,32,4 article,report,book\><<< +|<html latex tocs|> |%should appear before TocAt|% +|<latex options 1, 2, 3|> +>>> + + + + + + + + + + +\<0,32,4 article,report,book\><<< +|<latex shared div config|> +|<shared sec div config|> +|<shared subsec div config|> +|<shared sub end div config|> +\ifx \part\:UnDef \else + |<shared part div config|> + |<latex shared likepart config|> +\fi +>>> + + + + +\section{aa} + + + + + +\subsection{Sizes of Fonts} + + + +pages should honor the base font sizes the +readers choose for their browsers. Hence, under this assumption, all +tex4ht should do is just assure appropriate relative dimensions for +fonts of other sizes. To meet this end, I modified latex.4ht to +automatically include + + \verb'{\Configure{Needs}{Font\string_Size: #1}\Needs{1...}}' + +when options 11pt and 12pt are listed in \verb'\documentclass'. + + +\<32,4 article,report,book\><<< +|<base font size|> +>>> + + +\<ams art,proc,book\><<< +|<base font size|> +|<ams footnotes|> +>>>> + + + +\<base font size\><<< +{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize + \or \Needs{11}\or \Needs{12}\else \fi} +>>> + + +\section{plain} + + + + + + + +\<picmath plain,latex\><<< +\Configure{$$}{\:xhtml{\EndP}\PicDisplay}{\EndPicDisplay} + {\everymath{}\everydisplay{}} +>>> + + + +\<0,32,4 plain\><<< +\Configure{settabs}[1.5]{}{}{}{}{} +\Configure{line}{\HCode{<br\xml:empty>}} +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\<math plain,fontmathNO\><<< +\Configure{big}{\HCode{<span class="big">}}{\HCode{</span>}}{}{} +\Configure{Big}{\HCode{<span class="bbig">}}{\HCode{</span>}}{}{} +\Configure{bigg}{\HCode{<span class="bigg">}}{\HCode{</span>}}{}{} +\Configure{Bigg}{\HCode{<span class="bbigg">}}{\HCode{</span>}}{}{} +>>> + + + + + + + +\<under/over line css\><<< +\Configure{underline} + {\HCode{<span class="underline">}} {\HCode{</span>}} +\Configure{overline} + {\HCode{<span class="overline">}} {\HCode{</span>}} +\Css{.underline{ text-decoration:underline; }} +\Css{.overline{ text-decoration:overline; }} +>>> + + + + + + + + +The \verb'100%' is to allow centering of stuff on the page. +The table is a grouping mechanism to protect internal stuff +from external centering operations. + + + + +The \verb'special{t4ht=' is superior to \verb'\HCode{' because it can +prevent \verb'<p>'s from entering before \verb'<NOBR>'. + + + + +The hbox is for avoiding the start of a new paragraph, if in vmode. + + +\<configure html32 latex\><<< +\ifOption{charset=iso-8859-7} + {|<T1 greek ldf iso-8859-7|>} + {} +\:CheckOption{new-accents} \if:Option +\else + |<T1 old iso-8859-1 accents|> +\fi +\let\^^_|=\v +>>> + + + +\<32,4 plain,latex\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accents} + {\expandafter\ifx \csname #1-num\endcsname\relax + \ht:special{t4ht@+\string&{35}x#2{59}}x% + \else + \ht:special{t4ht@+\string&\#x#2;}X% + \fi + } + {\Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture} + \expandafter\let\csname ring-num\endcsname=\def +\fi +>>> + + +\<configure html32 plain\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\Picture+{ \:Picture:{#1}}#2{#3}\EndPicture} +\fi +>>> + + +\<32,4 plain,latexNO\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accents} + {\ht:special{t4ht@+\string#1;}#2} + {\Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture} +\fi +>>> + +\<32,4 latexPRE-CSS\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{textscaccent} + {\Tg<small class="small-caps">}{\Tg</small>} +\fi +>>> + + + + + + + + +\section{amsart} + + + + + + + +\section{amsproc} + + + + +\section{amsbook} + + + + + + + + +\section{babel.sty} + + + + + + +\<configure html32 babel\><<< +|<0,32,4 babel|> +>>> + + + +\<0,32,4 babel.def\><<< +\Configure{quotedblbase}{\leavevmode\special{t4ht@+&{35}8222;}x} +\Configure{quotesinglbase}{\leavevmode\special{t4ht@+&{35}8218;}x} +>>> + + + + + +\<configure html32 frenchb\><<< +\def\A:charset{charset=iso-8859-1} +\Configure{frenchb-thinspace} + {\ht:special{t4ht@?unhskip}} + {} +\Configure{frenchb-nbsp} + {\ht:special{t4ht@?unhskip}}{} +\Configure{system-nbsp} + {\ht:special{t4ht@[unhskip}} + {\ht:special{t4ht@]unhskip}} +\Configure{frenchb-thinspace} + {\ht:special{t4ht@[unhskip}} + {\ht:special{t4ht@]unhskip}} +\Configure{@TITLE}{\Configure{frenchb-thinspace}{}{}} +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Scientific Word} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html32 tcilatex\><<< +\Configure{GRAPHICSPS} + {\Picture+[PICT]{}} {\EndPicture} +\Configure{GRAPHICSHP} + {\Picture+[PICT]{}} {\EndPicture} +>>> + +\<configure html32 seslideb\><<< +\ConfigureEnv{center} + {\IgnorePar \par \EndP \HCode{<div class="center"\Hnewline>}} + {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} + {} {} +{\Configure{Needs}{Font\string_Size: #1}% + \expandafter\Needs\expandafter{\csname normalsize@fsize\endcsname}} +>>> + +\<configure html32 seslideb\><<< +\ConfigureToc{swSlide} + {} {\relax } {} { } +\:CheckOption{0} + \if:Option \else \:CheckOption{1} \fi +\if:Option + \:CheckOption{1} \if:Option + \CutAt{swSlide} + \Configure{crosslinks}{}{}{}{}{}{}{}{} + \fi + |<seslideb toc|> + |<seslideb page break|> +\else + \Log:Note{pagination may be obtained + through the option `0' or `1', at locations marked with + \noexpand\csname PageBreak\string\endcsname} + |<handle my missing sw fonts|> +\fi +>>> + +\<handle my missing sw fonts\><<< +\Configure{swSlide}{}{}{\bgroup\bf}{\egroup} +>>> + +\<seslideb toc\><<< +\def\:temp{% + \ifOption{1}{\par\IgnorePar\EndP\HCode{<hr />}\par}{} + \HAssign\TocN=1 + \def\swTitle{\gHAdvance\TocN by 1 \TocN}\:TableOfContents[swSlide] + \let\swTitle=\relax + \ifOption{0}{\par\IgnorePar\EndP\HCode{<hr />}\par}{} + \let\swSlide=\o:swSlide: \let\o:swSlide:=\empty \swSlide} +\HLet\swSlide=\:temp +>>> + + +\<seslideb page break\><<< +\Configure{swSlide} + {\gHAdvance\swSlideN by 1 \Link{}{s-\swSlideN}\EndLink } + {\rightline{ + {\HAdvance\swSlideN by -1 \Link{s-\swSlideN}{}\swSlideN\EndLink} + \Link[\jobname.html]{}{}\HCode{<>}\EndLink{} + {\HAdvance\swSlideN by 1 + \ifTag{)Qs-\swSlideN}{\Link{s-\swSlideN}{}\swSlideN\EndLink}{}} + } + \ifOption{0}{\par \IgnorePar\EndP\HCode{<hr />}\par}{} + } + {\IgnorePar\bgroup \bf } + {\egroup \ShowPar\IgnoreIndent\par} +\HAssign\swSlideN=1 +>>> + + + + +%%%%%%%%%%%%%%%%% +\section{Babel} +%%%%%%%%%%%%%%% + +\<0,32,4 babel\><<< +|<0,32,4 babel.def|> +\ifx \@begindocumenthook\:UnDef\else + \:CheckOption{new-accents} \if:Option \else + \def\:temp{russian}\ifx \languagename\:temp + |<russian|> + \fi +\fi\fi +>>> + +We had also \verb'\append:def\@begindocumenthook{\HLet\"|=\ddot}' in +babel. It gets russian and brazil into infinite loop. Why it was +inserted. + + +\<russian\><<< +\Configure{accent}\"\ddot{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}å{e}{}{34}} + {\a:accents{uml}{#1}} + {\def\:temp{>}\def\:tempa{#2}\ifx \:temp\:tempa\HCode{»}% + \else \def\:temp{<}\ifx \:temp\:tempa\HCode{«}% + \else \b:accents{uml}{#1}{#2}\fi\fi} +>>> + + + + + + +\section{babel.sty} + +\<32,4 tex4ht\><<< +\NewConfigure{charset}[1]{\def\a:charset{#1}} +\def\:temp#1charset=#2,#3|<par del|>{% + \if !#2!\else \Configure{charset}{#2}\fi} +\expandafter\:temp\Preamble charset=,|<par del|> +>>> + + + + + +\<configure html32 CJK\><<< +\Configure{charset}{charset=big5} +>>> + + + + + + + + + + + + +\section{moreverb} + + + + +\<32,4 moreverb\><<< +\ConfigureEnv{verbatimtab}{\env:verb{verbatim}}{\endenv:verb}{}{} +\ConfigureEnv{verbatimtab*}{\env:verb{verbatim}}{\endenv:verb}{}{} +\ConfigureEnv{boxedverbatim} + {\env:verb{boxedverbatim}}{\endenv:verb}{}{} +\ConfigureEnv{boxedverbatim*} + {\env:verb{boxedverbatim}}{\endenv:verb}{}{} +>>> + + + + +\section{color} + + + +\<configure html32 color\><<< +\Configure{HColor}{red}{\#FF0000} +\Configure{HColor}{rgb 1 0 0}{\#FF0000} +\Configure{HColor}{blue}{\#0000FF} +\Configure{HColor}{rgb 0 0 1}{\#0000FF} +\Configure{HColor}{green}{\#00FF00} +\Configure{HColor}{rgb 0 1 0}{\#00FF00} +\Configure{HColor}{white}{\#FFFFFF} +\Configure{HColor}{gray 1}{\#FFFFFF} +\Configure{HColor}{rgb 1 1 1}{\#FFFFFF} +\Configure{HColor}{black}{\#000000} +\Configure{HColor}{gray 0}{\#000000} +\Configure{HColor}{rgb 0 0 0}{\#000000} +\Configure{HColor}{cyan}{\#00FFFF} +\Configure{HColor}{cmyk 1 0 0 0}{\#00FFFF} +\Configure{HColor}{magenta}{\#FF00FF} +\Configure{HColor}{cmyk 0 1 0 0}{\#FF00FF} +\Configure{HColor}{yellow}{\#FFFF00} +\Configure{HColor}{cmyk 0 0 1 0}{\#FFFF00} +\Configure{color}{\:gobble} +>>> + + + + +\<configure html32 color\><<< +\Configure{HColor:gray}{% + \int:of\:tempa{255}{#1}% + \Configure{HColor}{}{rgb(\:tempa,\:tempa,\:tempa)}% +} +\Configure{HColor:rgb}{% + \int:of\:tempa{255}{#1}% + \int:of\:tempb{255}{#2}% + \int:of\:tempc{255}{#3}% + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +\Configure{HColor:cmyk}{% + \int:of\:Cyan{255}{#1}% + \int:of\:Magenta{255}{#2}% + \int:of\:Yellow{255}{#3}% + \int:of\:Black{255}{#4}% + \:cmyk\:tempa\:Cyan + \:cmyk\:tempb\:Magenta + \:cmyk\:tempc\:Yellow + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +|<HColor util|> +>>> + + +\<HColor util\><<< +\def\int:of#1#2#3{% + \tmp:dim=#3pt \tmp:dim=#2\tmp:dim + \edef\:temp{\tmp:cnt\the\tmp:dim//}% + \def#1##1//{}\afterassignment#1\:temp + \edef#1{\the\tmp:cnt}% +} +>>> + + +\<HColor util\><<< +\def\:cmyk#1#2{% + \tmp:cnt=255 \advance\tmp:cnt by -\:Black + \multiply\tmp:cnt by#2 \advance\tmp:cnt by \:Black + \advance\tmp:cnt by -255 \tmp:cnt=-\tmp:cnt + \ifnum \tmp:cnt<0 \tmp:cnt=0 \fi + \edef#1{\the\tmp:cnt}% +} +>>> + + + + + + +\<plain tex classes\><<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 +} +>>> + + +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<plain tex classes\><<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +} +>>> + + +\subsection{3: Relational Operations} + + + + + +The catcode is needed because 303A is \verb':'. + +\<plain tex classes\><<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + + + + + + + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} + + +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + + + +\<plain tex classes\><<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + + + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + + + + + + +\subsection{6: Punctuation Marks} + +\begin{verbatim} +\mathchardef\ldotp="613A % ldot as a punctuation mark +\mathchardef\cdotp="6201 % cdot as a punctuation mark +\mathchardef\colon="603A % colon as a punctuation mark +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + + + + + + + +\<plain tex classes\><<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A +\mathchar"6201 +\mathchar"603A +?; , +} +>>> + + + + +\subsection{Questions} + +\begin{verbatim} + + +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + + + + + + +\subsection{Type 4: Math Open} + + +latex.ltx, fontmath.ltx, plain.tex + + + + + + + +\section{fleqn.sty} + + + + + +\section{amsppt.sty} + + +\<32 amsppt, 32,4 vanilla\><<< +\Configure{title} + {\IgnorePar\EndP\HCode{<div class="title">}\begingroup\bf} + {\endgroup\IgnorePar\HCode{</div>}} +\Css{div.title {margin-top: 0.5em;}} +\Configure{author} + {\IgnorePar\EndP\HCode{<br\xml:empty><center>}\IgnorePar\par} + {\IgnorePar\EndP\HCode{</center>}} + +>>> + +\<32 amsppt\><<< +\Configure{affil}{\IgnorePar\HCode{<br\xml:empty><center>}\IgnorePar} + {\IgnorePar\HCode{</center>}} +\Configure{abstract} {\HCode{<br\xml:empty><center>}} {\HCode{</center>}} + {\IgnorePar\HCode{<table cellpadding="15"><tr><td>}\IgnorePar\par} + {\IgnorePar\HCode{</td></tr></table>}\IgnorePar\par} +\Configure{date}{\IgnorePar\HCode{<center>}\IgnorePar} + {\IgnorePar\HCode{</center>}} +|<32 amsppt, 32,4 vanilla|> +>>> + + +\<32,4 amsppt\><<< +\Configure{specialhead}{}{} + {\IgnorePar\EndP\HCode{<h1 class="amsspecialheadHead">}} + {\HCode{</h1>}\IgnoreIndent} +\ConfigureToc{specialhead} + {\HCode{<center>}\ignorespaces}{ } + {}{\HCode{</center>}} +\Configure{head}{}{} + {\IgnorePar\EndP\HCode{<h2 class="amsheadHead">}} + {\HCode{</h2>}\IgnoreIndent} +\ConfigureToc{head} + {\ignorespaces}{ }{}{\HCode{<br\xml:empty>}} +\Configure{subhead}{}{} + {\IgnorePar\EndP\HCode{<h3 class="amssubheadHead">}} + {\HCode{</h3>}\IgnoreIndent} +\ConfigureToc{subhead} + {\:nbsp\:nbsp\:nbsp\:nbsp\ignorespaces} { } + {} {\HCode{<br\xml:empty>}} +\Configure{subsubhead}{}{} + {\IgnorePar\EndP\HCode{<h4 class="amssubsubheadHead">}} + {\HCode{</h4>}\IgnoreIndent} +\ConfigureToc{subsubhead} + {\:nbsp\:nbsp\:nbsp\:nbsp\:nbsp% + \:nbsp\:nbsp\:nbsp\ignorespaces} { } {} {\HCode{<br\xml:empty>}} +\Configure{block} + {\IgnorePar\EndP + \HCode{<table cellpadding="15"><tr><td>}\IgnorePar\par} + {\IgnorePar\HCode{</td></tr></table>}\IgnorePar\par} +\Configure{caption} + {\:xhtml{\IgnorePar\EndP}\HCode{<center>}}{}{\HCode{</center>}} +\Configure{roster} + {\IgnorePar\EndP\HCode{<table>}\let\end:item|=\empty} + {\IgnorePar\end:item\HCode{</table>}\IgnorePar\par} + {\IgnorePar\end:item \HCode{<tr valign="top"><td>} + \def\end:item{\EndP\HCode{</td></tr>}}} + {\:nbsp\EndP\HCode{</td><td>}\ShowPar} + {\IgnorePar\EndP\HCode{<table>}\let\end:iitem|=\empty} + {\IgnorePar\end:iitem\HCode{</table>}\IgnorePar\par} + {\IgnorePar\end:iitem\HCode{<tr valign="top"><td>}} + {\HCode{</td><td>} + \def\end:iitem{\EndP\HCode{</td></tr>}}} +|<bib in amsppt.sty|> +>>> + + +\<bib in amsppt.sty\><<< +\Configure{vol}{\HCode{<strong>}}{\HCode{</strong>}} +\Configure{book}{\HCode{<em>}}{\HCode{</em>}} +\Configure{paper}{\HCode{<em>}}{\HCode{</em>}} +\Configure{Refs}{\IgnorePar\EndP\HCode{<table class="Refs">}} + {\HCode{</table>}} +\Configure{ref}{\HCode{<tr valign="top"><td align="right">}} + {\EndP\HCode{</td></tr>}}{} +\Configure{keyformat}{}{\EndP\HCode{</td><td>}} +>>> + + + +\section{amsmath.sty} + + + + + +\<configure html32-math amsmath\><<< +\Configure{equation} + {\Configure{gather} + {\HCode{<\tbl:XV{equation}><tr><td><center>}\IgnorePar} + {\end:TTT\IgnorePar\par} + {}{} + {\ifnum\HCol=2 \IgnorePar\HCode{</center></td><td width="5\%">}\fi} + {} + }{}{} +>>> + + + + + +\<configure html32-math amsmath\><<< +\Configure{equation} + {\NoHtmlEnv \Configure{gather} + {\HCode{<\tbl:XV{equation}><tr><td><center>}\IgnorePar} + {\end:TTT\IgnorePar\par} + {\Configure{$}{\PicMath}{\EndPicMath}{}} + {} + {\ifnum\HCol=2 \IgnorePar\HCode{</center></td><td width="5\%">}\fi} + {} + }{}{} +>>> + + +Equations in amsmath.sty are defined in term of gather, and +gather is a one parameter macro. Unlike laktex where the body is +read within the environment, in gather it is read at the \verb'\begin{equation}' point under the conditions that exist there. + + +\<32,4 pic amsmath\><<< +\Configure{substack}{\Picture+{}}{\EndPicture} +>>> + + + + +\section{amstex.sty (amstex1)} + + + + +\section{amstex.tex} + + +\<amstex.tex m:env\><<< +|<amsmath / amstex1 m:env|> +>>> + + +\<NO\><<< +\def\m:env#1{\:xhtml{\IgnorePar\EndP}\HCode{<center><table class="#1" + border="0" cellpadding="0" cellspacing="15"><tr><td>}} +\def\endm:env{\HCode + {</td></tr></table></center>}\IgnorePar} +>>> + +\<amsmath / amstex1 m:env\><<< +\def\m:env#1{\relax\ifmmode\else\par\fi\:xhtml{\IgnorePar\EndP}% + \HCode{<center class="#1"><table class="#1"\Hnewline + border="0" cellpadding="0" cellspacing="15"><tr><td>}} +\def\endm:env{\:xhtml{\IgnorePar\EndP}% + \HCode{</td></tr></table></center>}\IgnorePar + \ifmmode\else\par\fi} +>>> + + + + + + + + + + + + + +% \Configure{topaligned}{\m:env{topaligned}}{\endm:env} +% \Configure{botaligned}{\m:env{botaligned}}{\endm:env} + + + + + + + +\<32,4 picmath amstex.tex\><<< +\Configure{frac}{\Picture+{}}{\EndPicture} +\Configure{dfrac}{\Picture+{}}{\EndPicture} +\Configure{tfrac}{\Picture+{}}{\EndPicture} +\Configure{binom}{\Picture+{}}{\EndPicture} +\Configure{dbinom}{\Picture+{}}{\EndPicture} +\Configure{tbinom}{\Picture+{}}{\EndPicture} +\Configure{boxed}{\Picture+{}}{\EndPicture} +>>> + + + + + + +\section{vanilla} + + + + + + +\<32,4 vanilla\><<< +\Configure{matrix} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="matrix">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline valign="top">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +\Configure{align} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="align">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline valign="top">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> + + +\section{slidesec} + + + + +\section{ltugboat} + + + + +%%%%%%%%%%%%%%%%%%% +\section{tex4ht} +%%%%%%%%%%%%%%%%%%% + + + + + + + + + +\<0,32,4 tex4ht\><<< +\Configure{HVerbatim+}{\z@}{\:nbsp} +\:CheckOption{jpg} \if:Option + \Configure{Picture}{.jpg} +\else + \Log:Note{for jpg bitmaps of pictures, use the `jpg' + command line option. |<ch bitmaps|>} +\fi +\:CheckOption{gif} \if:Option + \Configure{Picture}{.gif} +\else + \Log:Note{for gif bitmaps of pictures, use the `gif' + command line option. |<ch bitmaps|>} +\fi +>>> + + + +\<ch bitmaps\><<< +(Character bitmaps are controled only by `g' records of tex4ht.env and `-g' +switches of tex4ht.c) +>>> + + + + +\<32,4 th4\><<< +\:CheckOption{javascript} + \if:Option \else\:CheckOption{th4}\fi +\if:Option + \Configure{JavaScript} + {\HCode{<script type="text/JavaScript" ><!--\Hnewline}} + {\HCode{//-->\Hnewline </script>}} +\fi +>>> + + + + + + + +\verb'\Hnewline' is needed at end of file to avoid loosing the +last line under some applications. + + + + + + + + + + + + + + + + + + +\<configure html32 latex\><<< +\Configure{htf}{4}{+}{<small\Hnewline + class="}{}{}{}{}{small-caps">}{</small>} +\Configure{htf}{6}{+}{<u\Hnewline + class="}{}{}{}{}{underline">}{</u>} +\Configure{htf}{8}{+} + {<sup class="htf"><strong>}{}{}{}{}{}{</strong></sup>} +\Configure{htf}{10}{+} + {<tt>}{}{}{}{}{}{</tt>} +\Configure{htf}{14}{+}{<i>}{}{}{}{}{}{</i>} +>>> + +\verb'\Configure{htf}{0}{+}{<!--span class="}{\%s}{-\%s}{--\%d}{}{"-->}{<!--/span-->}' caused netscape to +loose spaces between comments. +\verb'\Configure{htf}{0}{+}{<!--span\Hnewline class="}{\%s}{-\%s}{ - -\%d}{}{"-->}{<!--/span-->}' caused netscape +to misbehave on \verb'<pre>' + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\section{th4} + + +\<0 th4\><<< +\Configure{Chapter} + {}{} {Chapter \theChapterCounter} {} +\Configure{Appendix} + {}{} {Appendix \theChapterCounter} {} +\Configure{LikeChapter} + {}{} {} {} +>>> + +\<32,4 th4\><<< +\Configure{Columns} + {\IgnorePar\EndP + \HCode{<table \Hnewline cellspacing="15"><tr valign="top">}} + {\HCode{</tr></table>}} + {\HCode{<td>}\ColMag{1.03}} + {\IgnorePar\EndP\HCode{</td>}} +>>> + + + +\<32,4 th4\><<< +\:CheckOption{index}\if:Option + \Configure{index} + {\bgroup + \Configure{Columns} + {\IgnorePar\EndP + \HCode{<table \Hnewline class="index" width="100\%" + cellspacing="15"><tr valign="top">}} + {\HCode{</tr></table>}} + {\HCode{<td>}\ColMag{1.1}} + {\IgnorePar\EndP\HCode{</td>}} + \Columns{2}\IndexFonts} + {\EndColumns \egroup} + {\bgroup\IgnorePar\EndP\expandafter\ifx \csname prev:A\endcsname\relax + \else \hfil\break \Tg<br\xml:empty>\par\IgnorePar \fi \IndexSec} + {\egroup~~~~} + {\bgroup\hfil\break\Tg<br\xml:empty>~~~}{\egroup~~~~} + {~}{} + \def\Idx:ch{0} + \def\IndexSec#1{% + \tmp:cnt=`#1\relax + \ifnum \tmp:cnt>`Z\advance\tmp:cnt by -32 \fi + \ifnum \tmp:cnt<`A\else \ifnum \tmp:cnt>`Z \else + \ifnum \Idx:ch<\tmp:cnt + \bgroup + \Configure{centerline} + {\HCode{<div\Hnewline class="IndexSec">}}{\HCode{</div>}} + \leftline{\bf \char\tmp:cnt }% + \global\let\prev:A|=\:UnDef + \xdef\Idx:ch{\the\tmp:cnt}% + \egroup + \fi + \fi \fi #1% + } + \Css{.IndexSec {margin-top:1em; margin-bottom:0.5em;}} +\fi +>>> + +\<32,4 th4\><<< +\Configure{Chapter} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="ChapterHead">}% + Chapter \theChapterCounter \HCode{<br\xml:empty>}} + {\HCode{</h2>}\IgnoreIndent\IgnorePar} +\Configure{Appendix} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="AppendixHead">}% + Appendix \theChapterCounter \HCode{<br\xml:empty>}} + {\HCode{</h2>}\IgnoreIndent\IgnorePar} +\Configure{LikeChapter} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="LikeChapterHead">}\noindent + \bgroup \def\uppercase##1{##1}} + {\egroup \HCode{</h2>}\IgnoreIndent\IgnorePar } +>>> + + + + + + +\<32,4 th4\><<< +\Configure{UList} + {\IgnorePar\EndP\def\:tempB{disc}% + \ifx\:tempA\:tempB \else \def\:tempB{square}\fi + \ifx\:tempA\:tempB \else \def\:tempB{circle}\fi + \hbox{\IgnorePar\EndP\HCode{<ul + \ifx\:tempA\:tempB type="\:tempA" \fi \:UL:>}}} + {\everypar{}\EndP\HCode{</li></ul>}} + {\ifnum \ListCounter>1 \EndP\HCode{</li>}\fi \hfil\break \HCode{<li>}} +\Configure{OList} + {\IgnorePar\EndP\hbox{\HCode{<ol + \ifx \:temp\empty \else type="\:temp" \fi + \:OL:>}}} + {\everypar{}\EndP\HCode{</li></ol>}} + {\ifnum \ListCounter>1 \EndP\HCode{</li>}\fi \hfil\break \HCode{<li>}} +>>> + + + + +\<32,4 th4\><<< +\Configure{HTable} + {\everypar{}\EndP\HCode{<table \Hnewline\TABLE:\:HTable:>}% + \def\BR{\HCode{<br\xml:empty>}}} + {\HCode{</table>}} + {\HCode{<tr \:TR>}}{\HCode{</tr>}} + {\everypar{}\HCode{<\TD:typ\TD:more\Hnewline>}} + {\everypar{}\HCode{</\TD:typ>}} +\let\:HTable:|=\empty +>>> + + + + +\<32,4 th4\><<< +\Configure{Item}{}{\par}% +\Configure{DList} + {\IgnorePar\EndP\HCode{<dl \:DL:>}} + {\everypar{}\EndP\HCode{\End:dd</dl>}} + {\IgnorePar\EndP\ifnum \ListCounter>1 \HCode{</dd>}\fi + \HCode{<dt>}} + {\HCode{</dt><dd>}\ShowPar \def\End:dd{</dd>}\hfil\break} +\Configure{buttonList}{}{} + {}{.\ #1 }{\ListCounter} +>>> + + +\<32,4 th4\><<< +\Configure{Part}{}{}{% + \html:rightskip + \bgroup + \html:rightskip \everypar{} + \IgnorePar\EndP\HCode{<h1 class="PartHead">}} + {\HCode{</h1>}\IgnoreIndent \egroup \IgnoreIndent} +\Configure{LikeSection}{}{} + {\IgnorePar \EndP\HCode{<h3 class="LikeSectionHead">}} + {\HCode{</h3>}\IgnoreIndent + |<addr for Tag and Ref of Sec|>% + \par \IgnoreIndent + } +\ConfigureMark{Section}{\theSection} +\Configure{Section} + {}{} + {\IgnorePar\EndP\HCode{<h3 class="SectionHead">}% + \gHAdvance\SectionCounter |by 1 + \TitleMark\space + }{\HCode{</h3>}\IgnoreIndent + |<addr for Tag and Ref of Sec|>% + \par \IgnoreIndent + } +\Configure{SubSection} + {}{} + {\par \IgnorePar\EndP\HCode{<h3 class="SubSectionHead">}} + {\HCode{</h3>}\IgnoreIndent \ShowPar} +>>> + +\<32,4 th4\><<< +\ConfigureToc{Chapter} + {\HCode{<span class="ChapterToc">}} + {~} + {} + {\HCode{</span><br\xml:empty>}} +\ConfigureToc{Section} + {\HCode{<span class="SectionToc">}~~~} + {~} + {} + {\HCode{</span><br\xml:empty>}} +\ConfigureToc{LikeSection} + {} + {\HCode{<span class="LikeSectionToc">}~~~} + {} + {\HCode{</span><br\xml:empty>}} +\ConfigureToc{SubSection} + {} + {\HCode{<span class="SubSectionToc">}~~~~~~} + {} + {\HCode{</span><br\xml:empty>}} +>>> + + + + + +\section{seminar} + + + + + + +\section{slides} + + + + + + + + +\section{amsthm.sty} + + + + + +\section{colortbl.sty} + + + + + +\section{epsfig} + + + +\<0,32,4 epsfig\><<< +\Configure{epsfig} {\Picture+[epsfig]{}}{\EndPicture} +>>> + +\section{psfig} + + + +\<0,32,4 psfig\><<< +\Configure{psfig} {\Picture+[psfig]{}}{\EndPicture} +>>> + +\section{graphics} + + + +\<0,32,4 graphics\><<< +\Configure{graphics}{\Picture+[PIC]{}}{\EndPicture} +\Configure{graphics*} + {gif} + {\Picture[pict]{\csname Gin@base\endcsname.gif}} +\Configure{graphics*} + {png} + {\Picture[pict]{\csname Gin@base\endcsname.png}} +\Configure{graphics*} + {jpeg} + {\Picture[pict]{\csname Gin@base\endcsname.jpeg}} +\Configure{graphics*} + {jpg} + {\Picture[pict]{\csname Gin@base\endcsname.jpg}} +>>> + + + + + +\section{foils} + + + +\<32,4 foils\><<< +\Configure{foilheads} {}{} + {\IgnorePar\EndP\HCode{<h1 class="foilheadsHead">}} + {\HCode{</h1>}\IgnorePar} +\ConfigureEnv{Theorem}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Lemma}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Corollary}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Corollary*}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Proposition}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Definition}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Proof}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{thebibliography}{\par\leavevmode}{\ShowPar}{}{} +\:CheckOption{1} \if:Option + \CutAt{foilheads} + \ConfigureToc{foilheads}{}{ *\ }{}{} + \Configure{tableofcontents*}{foilheads} +\fi +>>> + +\section{index} + + + +\<configure html32 index\><<< +\Configure{NoSection} + {\let\sv:index|=\p@index \let\sv:label|=\label \let\sv:ref|=\ref + \let\sv:newline|=\newline \def\newline{ }% + \def\p@index[##1]{\@gobble}\let\label|=\@gobble \let\ref|=\@gobble + } + {\let\p@index|=\sv:index \let\label|=\sv:label \let\ref|=\sv:ref + \let\newline|=\sv:newline + } +>>> + + + +\section{} + + + + +\section{ntheorem} + + + +\<32,4 ntheorem\><<< +\ConfigureEnv{Anmerkung} + {\HCode{<div class="Anmerkung">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Beispiel} + {\HCode{<div class="Beispiel">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Bemerkung} + {\HCode{<div class="Bemerkung">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Beweis} + {\HCode{<div class="Beweis">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Corollary} + {\HCode{<div class="Corollary">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Definition} + {\HCode{<div class="Definition">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Example} + {\HCode{<div class="Example">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Korollar} + {\HCode{<div class="Korollar">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Lemma} + {\HCode{<div class="Lemma">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Proof} + {\HCode{<div class="Proof">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Proposition} + {\HCode{<div class="Proposition">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Remark} + {\HCode{<div class="Remark">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Satz} + {\HCode{<div class="Satz">}} {\HCode{</div>}} {}{} +\ConfigureEnv{Theorem} + {\HCode{<div class="Theorem">}} {\HCode{</div>}} {}{} +\ConfigureEnv{anmerkung} + {\HCode{<div class="anmerkung">}} {\HCode{</div>}} {}{} +\ConfigureEnv{beispiel} + {\HCode{<div class="beispiel">}} {\HCode{</div>}} {}{} +\ConfigureEnv{bemerkung} + {\HCode{<div class="bemerkung">}} {\HCode{</div>}} {}{} +\ConfigureEnv{beweis} + {\HCode{<div class="beweis">}} {\HCode{</div>}} {}{} +\ConfigureEnv{corollary} + {\HCode{<div class="corollary">}} {\HCode{</div>}} {}{} +\ConfigureEnv{definition} + {\HCode{<div class="definition">}} {\HCode{</div>}} {}{} +\ConfigureEnv{example} + {\HCode{<div class="example">}} {\HCode{</div>}} {}{} +\ConfigureEnv{korollar} + {\HCode{<div class="korollar">}} {\HCode{</div>}} {}{} +\ConfigureEnv{lemma} + {\HCode{<div class="lemma">}} {\HCode{</div>}} {}{} +\ConfigureEnv{proof} + {\HCode{<div class="proof">}} {\HCode{</div>}} {}{} +\ConfigureEnv{proposition} + {\HCode{<div class="proposition">}} {\HCode{</div>}} {}{} +\ConfigureEnv{remark} + {\HCode{<div class="remark">}} {\HCode{</div>}} {}{} +\ConfigureEnv{satz} + {\HCode{<div class="satz">}} {\HCode{</div>}} {}{} +\ConfigureEnv{theorem} + {\HCode{<div class="theorem">}} {\HCode{</div>}} {}{} +>>> + + + + + +\section{hyperref} + +\<configure html32 hyperref\><<< +\Configure{Form} + {\IgnorePar\EndP\leavevmode \Tg<form \Hnewline \Attributes>} + {\IgnorePar\EndP\Tg</form>} +>>> + +\<configure html32 hyperref\><<< +|<hyperref shared|> +|<hyperref TextField|> +|<hyperref multiline|> +|<hyperref password|> +|<hyperref radio|> +|<hyperref on...|> +\NewConfigure{::action}{1} +\Configure{::action} + {\edef\Attributes{\Attributes\space action="\AttributeVal"}} +\NewConfigure{::method}{1} +\Configure{::method} + {\edef\Attributes{\Attributes\space method="\AttributeVal"}} +\NewConfigure{PushButton::}{1} +\Configure{PushButton::} + {\leavevmode\Tg<input type="button" \Attributes\space/>} +\NewConfigure{Reset::}{1} +\Configure{Reset::} + {\leavevmode\Tg<input type="reset" \Attributes\space/>} +\NewConfigure{Submit::}{1} +\Configure{Submit::} + {\leavevmode\Tg<input type="submit" \Attributes\space/>} +\NewConfigure{CheckBox::}{2} +\Configure{CheckBox::} + {\leavevmode\Tg<input type="checkbox" \Attributes\space/>}{} +\NewConfigure{CheckBox::checked}{2} +\Configure{CheckBox::checked} + {\leavevmode\Tg<input type="checkbox" checked="checked" + \Attributes\space/>}{} +\HAssign\form:id=0 +>>> + + +\<hyperref shared\><<< +\NewConfigure{::value}{1} +\Configure{::value} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +\NewConfigure{::name}{1} +\Configure{::name} + {\edef\Attributes{\Attributes\space name="\AttributeVal"}} +\NewConfigure{::default}{1} +\Configure{::default} + {\let\::default=\AttributeVal} +\def\get:int#1.#2//{\tmp:cnt=#1 } +>>> + +\<\><<< +\NewConfigure{::borderwidth}{1} +\Configure{::borderwidth} + {\Css{div\#form-\form:id {border-width: \AttributeVal; + border-style:solid;}}} +\NewConfigure{::bordercolor}{1} +\Configure{::bordercolor} + {\expandafter\get:colors\AttributeVal//% + \Css{div\#form-\form:id {border-color:\AttributeVal}}} +\def\get:colors#1 #2 #3//{% + \get:color{#1}\edef\AttributeVal{\the\tmp:cnt\%}% + \get:color{#2}\edef\AttributeVal{\AttributeVal, + \the\tmp:cnt\%}% + \get:color{#3}\edef\AttributeVal{rgb(\AttributeVal, + \the\tmp:cnt\%)}% +} +\def\get:color#1{% + \tmp:dim=#1pt \multiply\tmp:dim by 100 + \expandafter\get:int\the\tmp:dim//} +>>> + + + + + + + + + +\<hyperref on...\><<< +\def\:tempc#1{% + \NewConfigure{::#1}{1}% + \Configure{::#1}% + {\edef\Attributes{\Attributes\space #1="\AttributeVal"}}} +\:tempc{onclick} +\:tempc{onblur} +\:tempc{onchange} +\:tempc{onclick} +\:tempc{ondblclick} +\:tempc{onfocus} +\:tempc{onkeydown} +\:tempc{onkeypress} +\:tempc{onkeyup} +\:tempc{onmousedown} +\:tempc{onmousemove} +\:tempc{onmouseout} +\:tempc{onmouseover} +\:tempc{onmouseup} +\:tempc{onselect} +>>> + + + +\<hyperref TextField\><<< +\NewConfigure{TextField::}{2} +\Configure{TextField::}{}{ \Tg<input type="text" \Attributes />} +\NewConfigure{TextField::width}{1} +\Configure{TextField::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space size="\the\tmp:cnt"}} +\NewConfigure{TextField::default}{1} +\Configure{TextField::default} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +>>> + + +\<hyperref multiline\><<< +\NewConfigure{TextField::multiline}{2} +\Configure{TextField::multiline} + {} + { \Tg<textarea + \Attributes>\expandafter\set:ln\multiline:value,|<par del|>% + \global\let\multiline:value=\empty \Tg</textarea>} + +\let\multiline:value=\empty +\def\set:ln#1,#2|<par del|>{#1% + \def\:temp{#2}\ifx \:temp\empty \else + \hfil\break \def\:temp{\set:ln#2|<par del|>}% + \fi \:temp} + +\NewConfigure{multiline::value}{1} +\Configure{multiline::value} + {\let\multiline:value=\AttributeVal} + +\NewConfigure{multiline::width}{1} +\Configure{multiline::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space cols="\the\tmp:cnt"}} +>>> + + +\<hyperref password\><<< +\NewConfigure{TextField::password}{2} +\Configure{TextField::password} + {}{\Tg<input type="password" \Attributes />} +>>> + +\<hyperref shared\><<< +\def\Default:Checked#1{% + \let\:temp=\relax + \let\:tempa=\relax + \edef\:temp{\def\:temp####1#1#1####2//{\def\:temp{####2}}% + \:temp \AttributeVal #1=#1#1//% + \def\:tempa####1=####2//{\def\noexpand\AttributeVal{####1}}% + \:tempa\AttributeVal=//}% + \:temp} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::radio}{5} +\Configure{ChoiceMenu::radio} + {\IgnorePar\EndP\leavevmode + \Tg<div id="form-\form:id">\gHAdvance\form:id by 1 } + { }{\IgnorePar\EndP\Tg</div>} + {\Default:Checked\radio::default + \Tg<input\Hnewline type="radio" + \ifx \:temp\empty\else checked="checked" \fi + \Attributes\space />} + {} +\NewConfigure{radio::default}{1} +\Configure{radio::default} + {\let\radio::default=\AttributeVal} +>>> + + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::combo}{5} +\Configure{ChoiceMenu::combo} + {} + {~\Tg<select\Hnewline \Attributes \Hnewline size="1">} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} + {\Tg</option>} +\NewConfigure{combo::default}{1} +\Configure{combo::default} + {\let\radio::default=\AttributeVal} +>>> + + + + + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::popdown}{5} +\Configure{ChoiceMenu::popdown} + {}{\HCode{\Hnewline <select \Attributes \Hnewline size="1">}} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +>>> + +The \verb'size="1"' makes the select a popout memnu + + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::}{5} +\Configure{ChoiceMenu::} + {}{\HCode{\Hnewline <select\Hnewline \Attributes>}}{\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +\NewConfigure{::menulength}{1} +\Configure{::menulength} + {\edef\Attributes{\Attributes\space size="\AttributeVal"}} +>>> + + + +\section{web} + + + +\section{exerquiz} + + + + +\<32,4 exerquiz\><<< +\Configure{Form}{}{} +\Configure{@HEAD}{\input exerqz.4ht } +\Css{.onClick {color:green;}} +\Configure{TextField::}{}{% + \IgnorePar \EndP + \HCode{<form action="." name="form\quiz@total"><input + type="text"\Hnewline \Attributes /></form>}% +} +\Configure{javascript}{JavaScript:} +>>> + +\<32,4 exerquiz\><<< +\ifx \eq@sqrtmsg\:UnDef + \def\eq@sqrtmsg{"Right!"} +\fi +\ifx \eq@sqwgmsg\:UnDef + \def\eq@sqwgmsg{"Wrong!"} +\fi +\Configure{shortquiz} + {(\alph{quizno})} + {alert(\eq@sqrtmsg,3);} + {alert(\eq@sqwgmsg,3);} +\Configure{quiz} + {(\alph{quizno})} + {qthis=this; + ProcessQuestion (\ANS,"\alph{quizno}",\thequestionno, + 1,"\eq@bqlabel",\Quiz:N)} + {InitializeQuiz("\quiz@total", + \ifeq@nocorrections0\else1\fi,\Quiz:N,\LikeRef{ans-\Quiz:N}, + "(",")")} + {QuizEnd("\:bqlabel",\thequestionno,"\quiz@total",\Quiz:N)} + {Corrections("\eq@RC","\eq@AC",\Quiz:N)} +\Configure{quiz*} + {[]} + {qthis=this; + ProcessQuestion (\ANS,"[]",\thequestionno, + 0,"\eq@bqlabel",\Quiz:N)} + {InitializeQuiz("\quiz@total", + \ifeq@nocorrections0\else1\fi,\Quiz:N, + \LikeRef{ans-\Quiz:N},"","")} +>>> + +\<-NOPE\><<< +\Configure{quiz*} + {qthis=this; + ProcessQuestion(\ANS,"\alph{quizno}",\thequestionno, + 0,"\eq@bqlabel",\Quiz:N)} +>>> + + +\<32,4 exerquiz\><<< +\ConfigureEnv{shortquiz} + {\IgnorePar\EndP\leavevmode} {} {}{} +\Configure{ReturnTo}{\begin{flushright}}{\end{flushright}} +>>> + + + +\<configure html32 exerquiz\><<< +\ConfigureList{questions}% + {\HCode{<ol type="1"\Hnewline>}} + {\HCode{</ol>}\ShowPar} + {\DeleteMark} + {\HCode{<li>}\AnchorLabel} +>>> + + + + + + + +\<exerqz\><<< +% exerqz.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.1999. Eitan M. Gurari & Donald P. Story +|<exerqz's vars|> +|<predefined exerquiz javascript|> +>>> + + + +\<predefined exerquiz javascript\><<< +\JavaScript-$ +var QuizInitialized; +var EndQuizPushed; +var CurrentQuizNo; +var Responses; +var ResponsesAddr; +var Cor; +var CorAddr; +var qthis; +var prev_notify; +function InitializeQuiz(qtfield,mark,quizN,ansN,lbrc,rbrc) { + Score=0; + QuizInitialized=1; + CurrentQuizNo=quizN; + eval( 'document.form'+qtfield+'.'+qtfield+'.value="$eqScore";' ) + RightWrong=new Array(); + |<hide sol|> + Responses=new Array(); + ResponsesAddr=new Array(); + |<hide cor|> + Cor=new Array(); + CorAddr=new Array(); + EndQuizPushed=0; + for(var i=1; i<=ansN; i++){ + RightWrong[i]=0; + } +} +\EndJavaScript +>>> + + + +\<show sol\><<< +if( ResponsesAddr[probno] != null ){ + if (notify == 0 ) { + ResponsesAddr[probno].value=Responses[probno]; + } else { + ResponsesAddr[probno].value="("+Responses[probno]+")"; +} } +qthis.value = "#"; ResponsesAddr[probno]=qthis; +>>> + +\<hide sol\><<< +for(var i in Responses){ + if (prev_notify == 0 ) { + ResponsesAddr[i].value=Responses[i]; + } else { + ResponsesAddr[i].value="("+Responses[i]+")"; +} } +>>> + +% if( Responses != null ){ + + +\<record cor\><<< +var k=Cor.length; +eval('Cor[k]=thisform'+quizN+'.ans'+quizN+'x'+i+'.value'); +eval('CorAddr[k]=thisform'+quizN+'.ans'+quizN+'x'+i); +>>> + + +\<hide cor\><<< +for(var i in Cor){ + CorAddr[i].value=Cor[i]; +} +>>> + +% if( Cor != null ){ + + + +\<predefined exerquiz javascript\><<< +\JavaScript +function href(addr) { top.location.href=addr; } +\EndJavaScript +>>> + +% function href(addr) { window.navigate(addr); } + + + + +\<predefined exerquiz javascript\><<< +\JavaScript +function Corrections(lbl1,lbl2,quizN) { + if ( (EndQuizPushed == 1) && ( CurrentQuizNo == quizN ) ){ + for(var i in RightWrong){ + if( (RightWrong[i]==0) ){ + |<record cor|> + eval('thisform'+quizN+'.ans'+quizN+'x'+i+'.value= "*"'); + } } +} } +\EndJavaScript +>>> + + + + + +\<32,4 exerquiz\><<< +\writesixteen{% +***********************************************************\Hnewline +The `\eq@CA' button fails under Netscape, \Hnewline +due to a code of the following form.\Hnewline +\Hnewline +<html><head><title>?\Hnewline +\space \Hnewline +\space \space \space \Hnewline +\Hnewline +\space \space \Hnewline +\space \space \space \Hnewline +\space \space \space \Hnewline +\space \space \space \Hnewline +\Hnewline + \Hnewline + \Hnewline + \Hnewline +\Hnewline +If you know how to fix the function f() above for Netscape,\Hnewline +without changing the id attribute names, please consider\Hnewline +emailing the fix to tex4ht@tug.org. Thanks\Hnewline +***********************************************************} +>>> + + +\<<< +\JavaScript +function LinkTo(addr) { +} +\EndJavaScript +>>> + +\<<< +\def\eqXInitQuizMsg{\hbox{% + \let\noexpand|=\string + \csname eq@InitQuizMsg\endcsname}} +\expandafter\ifx \csname eq@InitQuizMsg\endcsname\relax + \expandafter\def\csname eq@InitQuizMsg\endcsname{ + "You must initialize the Quiz! Click on "+bqlabel} +\fi +\def\eqXQuizTotalMsg{\hbox{% + \let\noexpand|=\string + \def\thequestionno{"+thequestionno+"}% + \csname eq@QuizTotalMsg\endcsname}} +\expandafter\ifx \csname eq@QuizTotalMsg\endcsname\relax + \expandafter\def\csname eq@QuizTotalMsg\endcsname{"Score: ' + +Score +' out of '+thequestionno+'"} +\fi +\def\eqXMadeChoice{\hbox{% + \let\noexpand|=\string + \csname eq@MadeChoice\endcsname}} +\expandafter\ifx \csname eq@MadeChoice\endcsname\relax + \expandafter\def\csname eq@MadeChoice\endcsname{ + "You have already made a choice. Your choice was (" + +Responses[probno]+")." + +" Do you want to change it?"} +\fi +\expandafter\ifx \csname eqScore\endcsname\relax + \def\eqScore{Score:} +\fi +>>> + +The \verb'Wollen Sie dies \noexpand\344ndern?' is a problem because it +takes the \verb'\344' into \verb'44'. A \verb'\string' will properly +produce \verb'\344'; hence, the above dirty trick. + +\begin{verbatim} +Doesn't IE escape in the way that Acrobat JavaScript does? + +Another possibility is to use String.fromCharCode() + +Convert Octal \344 to decimal 228, then use +String.fromCharCode(228) + + + + + How to deliver browser specific content using JavaScript + + + + +\end{verbatim} + + + +\<<< +\JavaScript-$ +function QuizEnd(bqlabel,thequestionno,quiztotal,quizN){ + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + eval( 'document.form'+quiztotal+'.'+quiztotal+ + '.value=$eqXQuizTotalMsg'); + QuizInitialized=-1; + EndQuizPushed=1; +} } +\EndJavaScript + +\JavaScript-$ +function ProcessQuestion + (key,letterresp,probno,notify,bqlabel,quizN) { + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + | + prev_notify = notify; +} } +\EndJavaScript +>>> + + + + + +\<<< +if (Responses[probno] == null) { + if (key==1) { + Score++; + RightWrong[probno]=1; + } + else + RightWrong[probno]=0; + | + Responses[probno]=letterresp; +} +else { + if (notify==0) + User=true; + else + User=confirm($eqXMadeChoice); + if (User) { + if (RightWrong[probno]==1) { + if (key==0) { + Score -= 1; + RightWrong[probno]=0; + | + Responses[probno]=letterresp; + } + } + else { + if (key==1) { + Score++; + RightWrong[probno]=1; + | + Responses[probno]=letterresp; + } + else { + RightWrong[probno]=0; + | + Responses[probno]=letterresp; + } + } + } +} +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} + + + + +\<0 th4,latex\><<< +\Configure{()}{$}{$} +\Configure{[]}{\:xhtml{\IgnorePar\EndP}$$}{$$} +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\section{tex4ht} + + + +\<<< +\Configure{TITLE+}{\HCode{\jobname.\:html}} +>>> + +\<0,32,4 latex\><<< +\ifTag{TITLE+}{\Configure{TITLE+}{\LikeRef{TITLE+}}}{} +>>> + + + + + + + + + + + + + + + + + + + + + +\<0,32,4 tex4ht\><<< +|<0,32,4 preambles|> +\ifx \a:FontCss:\:UnDef + \Configure{FontCss}{Font\string_Css##1} + {Font\string_Css\string_Plus\space##1} +\fi +\expandafter\ifx \csname aa:Css\endcsname\relax + \Configure{Css}{Css: ##1} +\fi +\:CheckOption{edit} \if:Option + \Configure{edit}{\HCode{<strong><}}{\HCode{></strong>}} + {<strong><}{></strong>} +\fi +\:CheckOption{hooks++} \if:Option +\else \:CheckOption{hooks+} \if:Option +\else \:CheckOption{hooks} \if:Option +\fi\fi\fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi + + +\Configure{ExitHPage}{exit}{exit }{} +\Configure{TocLink}{\Link{#2}{#3}#4\EndLink} +\Configure{MiniHalign}{\hlg:a}{\hlg:b}\hlg:c\hlg:d{\hlg:e}\hlg:f +\:CheckOption{no-halign} \if:Option \else + \Configure{noalign-}{}{} +\fi +\Configure{PictureAlt*+} + {\let\sv:HtmlPar|=\HtmlPar \let\HtmlPar|=\empty + |<postscript for /Picture|>% + |<tex halign and cr/crcr|>% + \NoFonts\csname PauseMathClass\endcsname \SUBOff \SUPOff + \let\HCode|=\:gobble |%\offinterlineskip|% + \let\EndPicture|=\empty} + {\let\HCode|=\:HCode + \let\EndPicture|=\:UnDef \let\HtmlPar|=\sv:HtmlPar \SUBOn \SUPOn + \csname EndPauseMathClass\endcsname \EndNoFonts + |<tex4ht halign and cr/crcr|>% + |<delay postscript|>} +>>> + +\<postscript for /Picture\><<< +\def\PsCode##1{{\ht:special{\PsCodeSpecial##1}}}% +>>> + +\<tex halign and cr/crcr\><<< +\iffalse{\fi +\let\sv:halign|=\halign +\let\sv:cr|=\cr +\let\sv:crcr|=\crcr +\iffalse}\fi +\RecallTeXcr \let\halign |=\TeXhalign +>>> + + +\<tex4ht halign and cr/crcr\><<< +\iffalse{\fi +\let\halign|=\sv:halign +\let\cr|=\sv:cr +\let\crcr|=\sv:crcr +\iffalse}\fi +>>> + + +\<delay postscript\><<< +\let\PsCode|=\relax +>>> + + +\<32,4 tex4ht\><<< + \Configure{writetoc}{} +>>> + + +\<0,32,4 tex4ht\><<< +\Configure{CutAtTITLE+}{} +\Configure{HPageTITLE+}{} +\Configure{AtBeginDocument} + {\edef\recallcatcodes{% + \catcode`\noexpand\_|=\the\catcode`\_ + \catcode`\noexpand\^|=\the\catcode`\^ }% + \catcode`\_=8\catcode`\^=7} + {\recallcatcodes} +>>> + + + +\<0,32,4 tex4ht\><<< +\Configure{crosslinks}{[}{] + }{next}{prev}{prev-|<tail|>}{front}{tail}{up} +\:CheckOption{next} \if:Option + \Configure{next+}{\ShowPar\par\noindent [}{]} +\fi +\Configure{TocAt*}{}{} +\Configure{TocAt}{}{} + +\Configure{halignTB}{\HCode{<table }}{\HCode{>}} +\def\t:HA{\HCode{</table>}} +\def\R:HA{\HCode{<tr \Hnewline valign="baseline">}} +\def\r:HA{\HCode{</tr>}} +\def\D:HA{\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan" \fi}% + \halignTD \HCode{\Hnewline>}} +\def\d:HA{\HCode{</td>}} +\Configure{HVerbatim+}{\z@}{\:nbsp} +\Configure{CssFile}{\jobname.css} + {/* \aa:CssFile\space from \jobname.tex (TeX4ht) */} +\Configure{Picture+}{}{} +\Configure{Picture*}{}{} +\Configure{Needs}{l. + \the\inputlineno\space--- needs --- #1 ---} +\Configure{Needs-}{l. + \the\inputlineno\space--- needs --- #1 ---} +|<yes css|> +>>> +\<0,32,4 tex4ht\><<< +\Configure{moveright}{\leavevmode\endgraf } +\Configure{HChar}{x} +>>> + + + + +\<yes css\><<< + \def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} + \def\SPAN:#1{\HCode{<span class="#1">}} + \def\EndSPAN:{\HCode{</span>}} + \def\DIV:#1{\HCode{<div class="#1">}} + \def\EndDIV:{\HCode{</div>}} +>>> + +\<no css\><<< + \def\:SPAN#1#2{#2} + \let\SPAN:|=\:gobble \let\EndSPAN:|=\empty + \let\DIV:|=\:gobble \let\EndDIV:|=\empty +>>> + + + + + +\section{Interpretation for the Entries} + + + + +Use \verb'\ ', and not \verb'~', in style files, because some +users redefine the latter macro. + +\<html latex tocs\><<< +\def\tocpart#1#2#3{\par\toc:SPAN{partToc}{#2}\par}% +\def\toclikepart#1#2#3{\par\toc:SPAN{likepartToc}{#2}\par}% +\expandafter\ifx \csname @chapter\endcsname\relax + \def\tocsection#1#2#3{\par + \toc:SPAN{sectionToc}{\def\:temp{#1}\ifx \:temp\empty\else + #1 \fi #2}\par} + \def\toclikesection#1#2#3{\par\toc:SPAN{likesectionToc}{#2}\par}% + \def\tocsubsection#1#2#3{\par\ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par\ \toc:SPAN{likesubsectionToc}{#2}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \toc:SPAN{likesubsubsectionToc}{#2}\par} + \def\tocparagraph#1#2#3{\par\ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par\ \ \toc:SPAN{likeparagraphToc}{#2}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \toc:SPAN{likesubparagraphToc}{#2}\par} +\else + \def\tocchapter#1#2#3{\par\toc:SPAN{chapterToc}{#1 #2}\par} + \def\toclikechapter#1#2#3{\par\toc:SPAN{likechapterToc}{#2}\par}% + \def\tocappendix#1#2#3{\par\toc:SPAN{appendixToc}{#1 #2}\par} + \def\tocsection#1#2#3{\par\ \toc:num{section}{#1}{#2}\par} + \def\toclikesection#1#2#3{\par\ \toc:SPAN{likesectionToc}{#2}\par} + \def\tocsubsection#1#2#3{\par\ \ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par + \ \ \toc:SPAN{likesubsectionToc}{#2}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \ \toc:SPAN{likesubsubsectionToc}{#2}\par} + \def\tocparagraph#1#2#3{\par\ \ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par + \ \ \ \toc:SPAN{likeparagraphToc}{#2}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \ \toc:SPAN{likesubparagraphToc}{#2}\par} +\fi +\def\toc:num#1#2#3{\def\:temp{#1#2}\toc:SPAN{#1Toc}{\ifx \:temp\empty \else + #2 \fi #3}} +\def\toc:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +>>> + + + + + + + + +\section{amstex} + + +\<configure picmath0 amstex\><<< +\:CheckOption{no-matrix} \if:Option \else +\:CheckOption{pic-matrix} \if:Option + |<pic amstex.tex matrix 0.0|> +\else + |<tabular amstex.tex matrix 0.0|> +\fi\fi +\:CheckOption{no-align} \if:Option \else +\:CheckOption{pic-align} \if:Option + |<pic amstex.tex align 0.0|> +\else + |<tabular amstex.tex align 0.0|> +\fi\fi +>>> + + + + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{HTML3.2} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<html32\><<< +% html32.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2016 TeX Users Group +% Copyright (C) |CopyYear.1997. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + + +\section{article, report, book} + +\<config book-report-article 3.2\><<< +|<32,4 article,report,book|> +|<0,32,4 article,report,book|> +>>> + + + +\<32 latex\><<< +\ConfigureList{description}% + {\EndP\HCode{<dl class="description">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="description">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="description">}} +>>> + + +\<32,4 article,report,book\><<< +|<quotations 32,4|> +\Configure{listof}{}{}{}{\HCode{<br\xml:empty>}}{}{} +>>> + +\<quotations 32,4\><<< +\ConfigureEnv{quotation}{}{}{\start:env{quotation}}{\end:env} +>>> + +\<config book-report-article 3.2\><<< +\ConfigureList{thebibliography}% + {\HCode{<dl class="thebibliography">}} + {\HCode{</dl>}\ShowPar} + {\HCode{<dt class="thebibliography">}\bgroup \bf} + {\egroup\HCode{<dd\Hnewline class="thebibliography">}} +\:CheckOption{/bib} \if:Option \else + \ConfigureList{thebibliography}% + {\HCode{<table border="0" cellpadding="0" + cellspacing="0"><tr><td>}}% + {\HCode{</td></tr></table>}}% + {\HCode{</td></tr><tr valign="top"><td>}}% + {\AnchorLabel \:nbsp\HCode{</td><td>}} +\fi +>>> + +\<config book-report-article 3.2\><<< +\ConfigureEnv{quote}{}{}{\start:env{quote}}{\end:env} +>>> + + +\<config book-report-article 3.2\><<< +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="theindex">}\let\end:theidx|=\empty} + {\end:theidx\HCode{</div>}} + {} {\hfil\break\HCode{<br\xml:empty>}} + {\ \ \ \ } {\hfil\break\HCode{<br\xml:empty>}} + {\ \ \ \ \ \ \ \ } {\hfil\break\HCode{<br\xml:empty>}} + {\hbox{\end:theidx\HCode{<p class="theindex">}}% + \def\end:theidx{\HCode{</p>}}} +>>> + + +\<32,4 report,book\><<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \chapter*{\indexname}\fi} +>>> + +\<configure html32 article\><<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \section*{\indexname}\fi} +>>> + + + + +\<latex config div\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \thesection\fi} +\Configure{section}{}{} + {\ifvmode\IgnorePar\fi \EndP \HCode{<h3 class="sectionHead">}% + \TitleMark\space} + {\HCode{</h3>}\IgnoreIndent \par} +\Configure{sectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesection\space + \fi\fi #1} +>>> + + +\<latex config like div 3.2\><<< +\Configure{likesection}{}{} + {\ifvmode\IgnorePar\fi \EndP \HCode{<h3 class="likesectionHead">}} + {\HCode{</h3>}\IgnoreIndent \ShowPar \par} +\Configure{likesubsection}{}{} + {\bgroup \IgnorePar\HCode{<h4 class="likesubsectionHead">}} + {\HCode{</h4>}\IgnoreIndent\egroup} +\Configure{likesubsubsection}{}{} + {\bgroup\IgnorePar\HCode{<h5 class="likesubsubsectionHead">}} + {\HCode{</h5>}\IgnoreIndent\egroup} +>>> + + +\<latex config div\><<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \thesubsection \fi} +\Configure{subsection}{}{} + {\bgroup \IgnorePar\HCode{<h4 class="subsectionHead">}% + \TitleMark\space} + {\HCode{</h4>}\IgnoreIndent\egroup} +\Configure{subsectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesubsection\space + \fi\fi #1} +>>> + + +\<latex config div\><<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \thesubsubsection \fi} +\Configure{subsubsection}{}{} + {\bgroup \IgnorePar\HCode{<h5 class="subsubsectionHead">}% + \TitleMark\space} + {\HCode{</h5>}\IgnoreIndent\egroup} +\Configure{subsubsectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesubsubsection\space + \fi\fi #1} +>>> + + + +\<latex config div\><<< +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<strong class="paragraphHead">}} + {\HCode{</strong>}\IgnorePar} +\Configure{subparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<strong class="subparagraphHead">}} + {\HCode{</strong>}\IgnorePar} +>>> + + + + + + +\<config book-report-article 3.2\><<< +|<config sections 3.2|> +>>> + + + +\section{article} + +\<configure html32 article\><<< +|<config book-report-article 3.2|> +|<config report / article 3.2|> +>>> + + + + +\section{report} + +\<configure html32 report\><<< +|<config book-report-article 3.2|> + |<config report / article 3.2|> +|<32,4 report,book|> +|<32,4 report|> +>>> + + + + +\<config report / article 3.2\><<< +\ConfigureEnv{abstract}{\HCode{<\tbl:XV{abstract}><tr><td\Hnewline + >}}{\end:env}{}{} +>>> + + +\section{book} + +\<configure html32 book\><<< +|<config book-report-article 3.2|> +|<32,4 report,book|> +|<32,4 book|> +>>> + + + +\section{amsart} + + + +\<ams art,proc\><<< +\Configure{endsection} + {part} +\Configure{endsubsection} + {section,part} +\Configure{endsubsubsection} + {subsection,section,part} +\Configure{endparagraph} + {subsubsection,subsection,section,part} +>>> + + +\<configure html32 amsart\><<< +|<config sections 3.2|> +|<book-report-article caption 3.2|> +|<latex report,... config 3.2|> +|<latex shared div config|> +|<ams art,proc,book|> +|<latex config div|> +|<ams art,proc|> +>>> + + +\<ams art,proc,book\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}% + \ConfigureEnv{center} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi}% + |<footnote for ams title|>% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar \EndP + \HCode{<h2>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +>>> + +\<footnote for ams title\><<< +\Configure{footnotetext} + {\HCode{<sup>}\HPage{\FNnum}\HCode{<div>}\NoFonts} + {\EndNoFonts} + {\HCode{</div>}\EndHPage{}\HCode{</sup>}}% +>>> + + + +\<ams art,proc\><<< +\Configure{|<thanks author date and|>} + {\par\IgnorePar\EndP \HCode{<div class="thanks">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<div class="authors"><span class="author">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</span></div>}} + {\par\IgnorePar\EndP \HCode{<div class="date">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\lowercase{\HCode{</span><span class="and">}}and~% + \lowercase{\HCode{</span><span>}}} + {\HCode{<br\xml:empty>}} +>>> + + + +\<config book-report-article 3.2\><<< +\Configure{|<thanks author date and|>} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and" \xml:empty>}} + {\HCode{<br \xml:empty>}} +>>> + +\<thanks author date and\><<< +thanks author date and>>> + + + + + + +\<book-report-article caption 3.2\><<< + |<makeketitle config 3.2|> +>>> + +\<makeketitle config 3.2\><<< +\Configure{caption}{\HCode{\if:nopar \else <br\xml:empty>\fi + <div align="center"><table\Hnewline + ><tr valign="bottom"><td |<no wrap|> ><strong>}} + {} {\HCode{</strong></td><td \Hnewline>}} + {\HCode{</td></tr></table></div>}} +>>> + + + + + + + + +\section{aa} + +\<configure html32 aa\><<< +|<config sections 3.2|> +|<book-report-article caption 3.2|> +|<latex report,... config 3.2|> +|<latex config div|> +|<latex config like div 3.2|> +|<configure aa 3.2/4.0t|> +|<latex shared div config|> +|<shared sec div config|> +|<shared subsec div config|> +|<shared sub end div config|> +\ifx \part\:UnDef \else + |<shared part div config|> + |<latex shared likepart config|> +\fi +>>> + + + + +\<latex report,... config 3.2\><<< +\ConfigureToc{lof} {\empty}{\ }{}{\HCode{<br\xml:empty>}} +\ConfigureToc{lot} {\empty}{\ }{}{\HCode{<br\xml:empty>}} +>>> + + + + + +\section{pictex} + +\<configure html32 pictex\><<< +\Configure{pictex}{\HCode{<div align="center" + >}}{\HCode{</div>}}{+[PICT]} +>>> + +\section{array} + +\<configure html32 array\><<< +|<array.sty Configure 3.2|> +|<html latex array/tabular Config 3.2|> +>>> + + +\<html latex array/tabular Config 3.2\><<< +\Configure{array} + {\halignTB{array}} + \t:HA + \R:HA\r:HA\D:HA\d:HA +\Configure{halignTB<>}{array}{<>\HAlign} +\Configure{tabular} + {\halignTB{tabular}} + \t:HA + \R:HA\r:HA\D:HA\d:HA +\Configure{halignTB<>}{tabular}{\HCode{cellpadding="5" \VBorder}<>\HAlign} +\ConfigureEnv{array}{\IgnorePar\HCode{<div align="center">}} + {\HCode{</div>}\ShowPar}{}{} +\ConfigureEnv{tabular}{\IgnorePar\HCode{<div align="center">}} + {\HCode{</div>}\ShowPar}{}{} +>>> +\<array.sty Configure 3.2\><<< +\Configure{VBorder}{\let\VBorder|=\empty}{\gdef\VBorder{border="1"}}{}{} +>>> + + + +\section{latex.ltx} + +\<configure html32 latex\><<< +|<0,32,4 plain,latex|> +|<32,4 plain,latex|> +|<32 plain,latex|> +|<32 picmath th4,latex|> +|<0,32,4 latex|> +|<32,4 latex|> +|<32 latex|> +|<latex footnotes|> +% \:CheckOption{javahelp} \if:Option +% \input javahelp.4ht +% \else +% \Log:Note{for a JavaHelp output format, +% use the command line option `javahelp'} +% \fi +>>> + + %%%%%%%%%%%%%%%%%%%%%%% + % ltplain.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{obeylines} + + + +\<32 plain,latex\><<< +\:CheckOption{/obeylines} \if:Option + |<delayed obeylines confg|> +\else |<obeylines confg|> \fi +>>> + + +\<obeylines confg\><<< +\Configure{obeylines} + {} {} {\hbox{\HCode{<br\xml:empty>}}} +>>> + +Typically, \verb'\obeylines' appears in a separate line before the +content. The following option is introduced to avoid an extra leading +empty line. + +\<delayed obeylines confg\><<< +\Configure{obeylines} + {\def\Line:Break{\def\Line:Break{\hbox{\HCode{<br\xml:empty>}}}}} {} + {\Line:Break} +>>> + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltlogos.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Logos} + + +If we redefine the following we get LaTeX in hypertext, and protection +within titles. Without this definition we get LATEX. + +\<32 latex\><<< +|</TeX for 3.2|> +\def\:temp{LaTeX} +\HLet\LaTeX|=\:temp +>>> + +\</TeX for 3.2\><<< +\def\:temp{TeX} +\HLet\TeX|=\:temp +>>> + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmisc.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Miscellaneous Environments} + + + + +\<32 latex\><<< +\Configure{centercr}{\ht:special{t4ht=<br\xml:empty>}} + {\everypar{\everypar{\HCode{<p>}}}} +>>> + +\<32 latex\><<< +\def\start:env#1{\IgnorePar\HCode{<\tbl:XV{#1}><tr><td\Hnewline>}} +\def\tbl:XV#1{table \Hnewline border="0" width="100\%"} +\def\end:env{\IgnorePar \end:TTT\ShowPar} +>>> + + cellpadding="0" cellspacing="15" + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmath.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Math Setup} + + +\<32 latex\><<< +\:CheckOption{pic-eqnarray} \if:Option +\else |<TABLE eqnarray Config 3.2|>\fi +>>> + + +\<TABLE eqnarray Config 3.2\><<< +\Configure{eqnarray}{\HCode{<table\Hnewline>}}{\HCode{</table>}} + {\HCode{<tr valign="middle">}}{\HCode{</tr>}} + {\HCode{\ifnum \HCol=4 <td\Hnewline width="10"></td>\fi + <td\Hnewline |<no wrap|> align="\ifcase\HCol \or right\or center\or + left\else right\fi" \Hnewline>}}{\HCode{</td>}} +\ConfigureEnv{eqnarray}{\HCode{<div align="center">}} + {\HCode{</div>}}{}{} +\ConfigureEnv{eqnarray*}{\HCode{<div align="center">}} + {\HCode{</div>}}{}{} +>>> + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % lttab.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Tabbing, Tabular and Array Environments} + + + + + +\<32 latex\><<< +\Configure{VBorder}{\let\VBorder|=\empty}{\def\VBorder{border="1"}}{}{} +|<html latex array/tabular Config 3.2|> +>>> + + + + +\<PICT dot tabbing\><<< +\:CheckOption{pic-tabbing'} \if:Option + \edef\:temp{\LikeRef{|<tabbing tag|>.}}% + \def\:tempa{.}\ifx \:temp\:tempa + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} + \fi +\fi +>>> + + +\<32 latex\><<< +\:CheckOption{pic-tabbing} \if:Option + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} +\else + |<TABLE tabbing Config 3.2|> + |<PICT dot tabbing|> +\fi +>>> + + + +\<TABLE tabbing Config 3.2\><<< +\Configure{tabbing}[1.5]{\IgnorePar\leavevmode \ht:special{t4ht=<table + \Hnewline\:zbsp{tabbing}><tr \Hnewline valign="bottom">}} + {\ht:special{t4ht=</tr></table>}} + {\gt:tab \ht:special{t4ht=<td \:tempa\Hnewline>}} + {\ht:special{t4ht=</td>}} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} + + +\<32 picmath th4,latex\><<< +\Configure{[]} + {\PicDisplay$$\everymath{}\everydisplay{}} + {$$\EndPicDisplay} +\Configure{()}{\protect\PicMath$}{$\protect\EndPicMath} +>>> + + +\<32 latex\><<< +\ifx\bf\:UnDef + \def\bf{\normalfont\bfseries} +\fi +\ConfigureList{trivlist}% + {\HCode{<dl>}} {\HCode{</dl>}\ShowPar} + {\HCode{<dt>}\bgroup \bf}{\egroup\HCode{<dd\Hnewline>}} +\ConfigureList{list}% + {\HCode{<dl>}} {\HCode{</dl>}\ShowPar} + {\HCode{<dt>}\bgroup \bf}{\egroup\HCode{<dd\Hnewline>}} +>>> + + + + +\<32 latex\><<< +\ConfigureEnv{enumerate} + {}{|<try env inline par|>}{}{} +\ConfigureList{enumerate}% + {|<enumerate I|>} + {|<enumerate II|>} + {|<enumerate III|>} + {|<enumerate IV-|>} +>>> + + +\<enumerate I\><<< +\EndP\HCode{<ol + class="enumerate\expandafter\the\csname @enumdepth\endcsname" + >}|<save end:itm|>\global\let\end:itm=\empty +>>> + +\<enumerate II\><<< +|<recall end:itm|>% +\EndP\HCode{</li></ol>}\ShowPar +>>> + + +\<enumerate III\><<< +\end:itm \gdef\end:itm{\EndP\Tg</li>}\DeleteMark +>>> + +\<enumerate IV-\><<< +\HCode{<li class="enumerate">}\AnchorLabel +>>> + + + + +\<32 latex\><<< +\ConfigureEnv{itemize} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {}{} +\ConfigureList{itemize}% + {\EndP\HCode{<ul class="itemize\expandafter\the + \csname @itemdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\ifvmode \IgnorePar\fi + \EndP\HCode{</li></ul>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="itemize">}} +>>> + + +\<save end:itm\><<< +\PushMacro\end:itm +>>> + + +\<recall end:itm\><<< +\PopMacro\end:itm \global\let\end:itm \end:itm +>>> + + + +\<try env inline par\><<< +\ShowPar +>>> + + + + +\<32 latex\><<< +\NewConfigure{enumerate}[1]{\c:enu #1|<par del|>} +\def\c:enu#1#2#3#4#5|<par del|>{% + \def\OLStyle{\ifcase \@enumdepth \or + type="#1"\or type="#2"\or type="#3"\or type="#4"\else\fi #5}} +>>> + +\<32 latex\><<< +\Configure{enumerate}{1aiA} +>>> + + +% \Configure{tableofcontents}{}{}{\ShowPar}{\HCode{<br\xml:empty>}}{} + +\<32 latex\><<< +\Configure{tableofcontents} + {\IgnorePar\EndP\HCode{<div class="tableofcontents">}\IgnorePar} + {} + {\IgnorePar\EndP\HCode{</div>}\ShowPar} + {\HCode{<br\xml:empty>}} {} +>>> + +\<32 latex\><<< +\Configure{TocAt} + {|<save configure tableofcontents|>% + \Configure{tableofcontents} + {\IgnorePar\EndP\HCode{<div class="\sec:typ TOCS">}} + {}{\IgnorePar\HCode{</div>}\ShowPar}{\HCode{<br\xml:empty>}}{}% + \ifvmode \IgnorePar\fi \EndP + } + {|<recall configure tableofcontents|>\par\ShowPar} +\Configure{TocAt*} + {|<save configure tableofcontents|>% + \Configure{tableofcontents} + {\IgnorePar\EndP\HCode{<div class="\sec:typ TOCS">}} + {}{\IgnorePar\HCode{</div>}\ShowPar}{\HCode{<br\xml:empty>}}{}% + \ifvmode \IgnorePar\fi \EndP + } + {|<recall configure tableofcontents|>\par\ShowPar} +>>> + + +% \Configure{TocAt} +% {|<save configure tableofcontents|>% +% \Configure{tableofcontents} +% {\IgnorePar}{}{\ShowPar} {\HCode{<br\xml:empty>}}{}} +% {|<recall configure tableofcontents|>} +% \Configure{TocAt*} +% {|<save configure tableofcontents|>% +% \Configure{tableofcontents} +% {\IgnorePar}{}{\ShowPar}{\HCode{<br\xml:empty>}}{}} +% {|<recall configure tableofcontents|>} +% + + + +\<32 latex\><<< +\Configure{newtheorem} + {\HCode{<div class="newtheorem"><b class="head">}} + {\HCode{</b>}} + {\HCode{</div>}} +>>> + +\<32 latex\><<< +\Configure{verbatim}{\:nbsp}{\a:sp} +\Configure{verb}{\HCode{<code>}}{\HCode{</code>}} +>>> + +\<32 latex\><<< +\def\env:verb#1{\ifvmode \IgnorePar \fi\EndP + \HCode{<\tbl:XV{#1}><tr><td\Hnewline + >}\HCode{<pre>}\EndNoFonts} +>>> + + + +\<32 latex\><<< +\Configure{marginpar} + {\HCode{<table \Hnewline align="right"><tr><td \Hnewline><u><small>}} + {\HCode{</small></u></td></tr></table>}} +>>> + +\<32 latex\><<< +\Configure{equation} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{equation}><tr><td><div align="center">}\IgnorePar + \Configure{$$}{\PicDisplay}{\EndPicDisplay} + {\everymath{}\everydisplay{}} + } + {\IgnorePar\HCode{</div></td><td width="5\%">}} + {\end:TTT\IgnorePar\par} +>>> + + +\<32 latex\><<< +\ConfigureEnv{picture} + {\ifvmode \IgnorePar\leavevmode\HCode{<p align="center">}\fi} + {}{}{} +>>> + + +\<32 latex\><<< +\Configure{float}{} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<hr\xml:empty><div align="center"\Hnewline><table><tr><td\Hnewline>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</td></tr></table></div><hr\xml:empty>}\csname par\endcsname} +>>> + + +\<32 latex\><<< +\Configure{newline}{\HCode{<br\xml:empty>}} +>>> + + + + + + +\section{plain latex} + + + +\<32 plain,latex\><<< +\def\:zbsp#1{cellpadding="0" border="0" cellspacing="0"\Hnewline} +>>> + + + + +\<pic plain/latex math 3.2NO\><<< +\Configure{big}{\HCode{<big>}}{\HCode{</big>}} +\Configure{Big}{\HCode{<big><big>}}{\HCode{</big></big>}} +\Configure{bigg}{\HCode{<big><big><big>}} + {\HCode{</big></big></big>}} +\Configure{Bigg}{\HCode{<big><big><big><big>}} + {\HCode{</big></big></big></big>}} +>>> + +\<pic plain math 3.2\><<< +\Contribute{underbrace}{align="middle"} +>>> + + +\<pic plain/latex math 3.2\><<< +\Configure{underline} + {\Tg<u>}{\Tg</u>} +\newbox\tmp:bx +\Configure{overline}{\Picture+{ + \a:@Picture{overline}}\setbox\tmp:bx|=\hbox + \bgroup\everypar{}}{\egroup\o:overline:{\box\tmp:bx}\EndPicture} +>>> + + +\<pic plain/latex math 3.2\><<< +\NewConfigure{@root}{1} +\Configure{@root}{align="middle" } +>>> + + + + + +\section{plain} + +\<configure html32 plain\><<< +|<0,32,4 plain,latex|> +|<32 plain,latex|> +|<0,32,4 plain|> +|<32,4 plain|> +|</TeX for 3.2|> +|<32 plain|> +\:CheckOption{plain-} \if:Option \else + \Configure{item}{}{}{\par\leavevmode}{} +\fi +>>> + + + +\<32 plain,latex\><<< +\Configure{centerline}{\HCode{<div align="center"\Hnewline + class="centerline">}}{\HCode{</div>}} +\Configure{leftline}{\HCode{<p\Hnewline class="leftline">}}{} +\Configure{rightline}{\HCode{<p align="right"\Hnewline + class="rightline">}}{} +>>> + + + + + +\<picmath plain,latex\><<< +\Configure{pmatrix} + {\ifvmode + \def\end:pmatrix{\IgnorePar\HCode{</div>}\end:TTT}% + \:xhtml{\IgnorePar\EndP}\HCode + {<\tbl:XV{pmatrix}><tr><td><div align="center"\Hnewline>}% + \else \HCode{<span class="pmatrix">}% + \def \end:pmatrix{\HCode{</span>}}% + \fi} + {\end:pmatrix} +>>> + + + + + + +\<32 plain\><<< +\:CheckOption{pic-eqalign} \if:Option + \:CheckOption{no-halign} \if:Option \else + \fi +\else |<TABLE eqalign shared Configure 3.2|> +\fi +>>> + + + + + +\<TABLE eqalign shared Configure 3.2\><<< +\Configure{eqalign} + {\HCode{<div align="center"><table>}} + {\HCode{</table></div>}} + {\HCode{<tr \Hnewline + valign="midlle">}}{\IgnorePar\HCode{</tr>}} + {\HCode{\ifnum \HCol=3 <td\Hnewline width="30"></td>\fi + <td align="\ifnum \HCol=2 + left\else right\fi" |<no wrap|> \Hnewline>}} + {\HCode{</td>}} +\def\:eqalign:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} +>>> + + +\<TABLE eqalign shared Configure 3.2\><<< +\Configure{eqalignno} + {\HCode{<div align="center"><table>}} + {\HCode{</table></div>}} + {\HCode{<tr \Hnewline + valign="bottom">}}{\IgnorePar\HCode{</tr>}} + {\HCode{\ifnum \HCol=3 <td\Hnewline width="10"></td>\fi + <td align="\ifnum \HCol=2 + left\else right\fi" |<no wrap|> \Hnewline>}} + {\HCode{</td>}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} +>>> + + + + +\<TABLE eqalign shared Configure 3.2\><<< +\Configure{leqalignno} + {\HCode{<div align="center"><table>}} + {\HCode{</table></div>}} + {\HCode{<tr \Hnewline + valign="middle">}}{\IgnorePar\HCode{</tr>}} + {\HCode{\ifnum \HCol=3 <td\Hnewline width="10"></td>\fi + <td align="\ifnum \HCol=2 + left\else right\fi" |<no wrap|> \Hnewline>}} + {\HCode{</td>}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} +>>> + + + + + + + +\<32 plain\><<< +\Configure{settabs}[1.5]{\IgnorePar\leavevmode \ht:special{t4ht=<table + \Hnewline\:zbsp{settabs}><tr \Hnewline valign="bottom">}} + {\ht:special{t4ht=</tr></table>}} + {\gt:tab \ht:special{t4ht=<td \:tempa\Hnewline>}} + {\ht:special{t4ht=</td>}} +>>> + + + +\<32 plain\><<< +\Configure{narrower}{\ifvmode \IgnorePar\fi + \HCode{<table cellpadding="15" class="narrower"><tr + class="narrower"><td class="narrower">}\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi + \HCode{</td></tr></table>}\ifvmode \IgnorePar\fi} +>>> + + + +\<32 plain\><<< +\Configure{proclaim} + {\IgnorePar\HCode{<div class="proclaim"><strong class="proclaim">}} + {\HCode{</strong>}} {\IgnorePar\HCode{</div>}} +\Configure{beginsection} + {}{} + {\ifvmode \IgnorePar\fi + \HCode{<h3 class="beginsection">}} + {\HCode{</h3>}\par\ShowPar} +\ConfigureToc{beginsection} + {} {\relax} {} { } +>>> + + + + + +\<32 plain\><<< +\Configure{TableOfContents} {}{}{\ShowPar}{\HCode{<br\xml:empty>}}{} +>>> + + + +\<32 plain\><<< +\Configure{insert} + {\IgnorePar\HCode{<hr\xml:empty>}\IgnorePar} + {\IgnorePar\HCode{<hr\xml:empty>}\IgnorePar} +>>> + + + + +\section{amsmath} + + + +\<32,4 pic amsmath\><<< +|<amsmath / amstex1 m:env|> +\ConfigureEnv{eqxample}{\m:env{eqxample}}{\endm:env}{}{} +>>> + + + + + + + + +\<configure html32-math amsmath\><<< +\ConfigureEnv{align*}{\m:env{align*}}{\endm:env}{}{} +\ConfigureEnv{align}{\m:env{align}}{\endm:env}{}{} +\ConfigureEnv{alignat*}{\m:env{alignat*}}{\endm:env}{}{} +\ConfigureEnv{alignat}{\m:env{alignat}}{\endm:env}{}{} +\ConfigureEnv{flalign*}{\m:env{flalign*}}{\endm:env}{}{} +\ConfigureEnv{flalign}{\m:env{flalign}}{\endm:env}{}{} +\ConfigureEnv{xalignat*}{\m:env{xalignat*}}{\endm:env}{}{} +\ConfigureEnv{xalignat}{\m:env{xalignat}}{\endm:env}{}{} +\ConfigureEnv{xxalignat}{\m:env{xxalignat}}{\endm:env}{}{} +>>> + + + + +\<32,4 pic amsmath\><<< +\ConfigureEnv{gather*}{\m:env{gather*}}{\endm:env}{}{} +\ConfigureEnv{gathered}{\m:env{gathered}}{\endm:env}{}{} +\ConfigureEnv{matrix}{\m:env{matrix}}{\endm:env}{}{} +\ConfigureEnv{quotation}{\m:env{quotation}}{\endm:env}{}{} +\Configure{equations}{*}{} +>>> + + + + +A `\verb'\begin{multline}...\end{multline}' is not a standard environment +in the sense that the environment as a whole is read in one piece and +then processed, instead of reading it piecewise and process it as it +goes. That is, we have a behavior similar to that in verbatim +environments. The behavior is due to multline being implemented in +terms of \verb'\gather@#1{..}'. Hence, for the picture environment, we +need to change early the catcodes of `\verb'_' and `\verb'^'. + +\<32,4 pic amsmath\><<< +\ConfigureEnv{multline} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{multline}><tr><td>}\Picture*{}\ExtractHLabel + } + {\EndPicture \HCode{</td><td width="5\%">}\PutHLabel\end:TTT} + {}{} {}{} +\ConfigureEnv{multline*} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{multline-star}><tr><td>}\Picture*{}% + } + {\EndPicture \end:TTT} + {}{} +|<extract amsmath labels|> +>>> + + +\<extract amsmath labels\><<< +\def\ExtractHLabel{% + \def\tagform@##1{{\xdef\:HLabel{\noexpand\tagform@{##1}}}}} +\def\PutHLabel{\:HLabel} +>>> + + + + + +\<configure html32-math amsmath\><<< +|<32,4 pic amsmath|> +>>> + +\<32,4 pic amsmath\><<< +\ConfigureEnv{gather} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{gather}><tr><td + class="gather1">}\Picture*{}\ExtractHLabel + } + {\EndPicture \HCode{</td><td width="5\%">}\PutHLabel\end:TTT} + {}{} +\ConfigureEnv{gather*} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<\tbl:XV{gather-star}><tr><td>}\Picture*{}% + } + {\EndPicture \end:TTT} + {}{} +\Css{td.gather-star, td.gather1 {text-align:center; }} +>>> + +\section{amstex.sty} + +\<configure html32 amstex1\><<< +\ConfigureEnv{aligned}{\m:env{aligned}}{\endm:env}{}{} +|<32,4 amstex1|> +>>> + + +\<32,4 amstex1\><<< +|<amsmath / amstex1 m:env|> +\ConfigureEnv{equation*}{\m:env{equation*}}{\endm:env}{}{} +\ConfigureEnv{equation}{\m:env{equation}}{\endm:env}{}{} +\Configure{eqn}{\HCode{</td><td>}} +\ConfigureEnv{align}{\m:env{align}}{\endm:env}{}{} +\ConfigureEnv{align*}{\m:env{align*}}{\endm:env}{}{} +\ConfigureEnv{alignat}{\m:env{alignat}}{\endm:env}{}{} +\ConfigureEnv{alignat*}{\m:env{alignat*}}{\endm:env}{}{} +\ConfigureEnv{xalignat}{\m:env{xalignat}}{\endm:env}{}{} +\ConfigureEnv{xxalignat}{\m:env{xxalignat}}{\endm:env}{}{} +\ConfigureEnv{xalignat*}{\m:env{xalignat*}}{\endm:env}{}{} +\ConfigureEnv{aligned}{\m:env{aligned}}{\endm:env}{}{} +\ConfigureEnv{alignedat}{\m:env{alignedat}}{\endm:env}{}{} +\ConfigureEnv{gather}{\m:env{gather}}{\endm:env}{}{} +\ConfigureEnv{gather*}{\m:env{gather*}}{\endm:env}{}{} +\ConfigureEnv{gathered}{\m:env{gathered}}{\endm:env}{}{} +\ConfigureEnv{matrix}{\m:env{matrix}}{\endm:env}{}{} +\ConfigureEnv{multline}{\m:env{multline}}{\endm:env}{}{} +\ConfigureEnv{multline*}{\m:env{multline*}}{\endm:env}{}{} +\ConfigureEnv{pmatrix}{\m:env{pmatrix}}{\endm:env}{}{} +\ConfigureEnv{bmatrix}{\m:env{bmatrix}}{\endm:env}{}{} +\ConfigureEnv{vmatrix}{\m:env{vmatrix}}{\endm:env}{}{} +\ConfigureEnv{Vmatrix}{\m:env{Vmatrix}}{\endm:env}{}{} +\Configure{gather}{\Picture*{}}{\EndPicture} +>>> + + + +\section{amstex.tex} + +\<configure html32-math amstex\><<< +|<32,4 picmath amstex.tex|> + \:CheckOption{no-matrix} \if:Option \else + \:CheckOption{pic-matrix} \if:Option + |<pic amstex.tex matrix 3.2|> + \else + |<tabular amstex.tex matrix 3.2|> + \fi\fi + \:CheckOption{no-align} \if:Option \else + \:CheckOption{pic-align} \if:Option + |<pic amstex.tex align 3.2|> + \else + |<tabular amstex.tex align 3.2|> + \fi\fi + \:CheckOption{no-cases} \if:Option \else + \:CheckOption{pic-cases} \if:Option + |<pic amstex.tex cases 3.2|> + \else + |<nonpic amstex.tex cases 3.2|> + \fi\fi + +>>> + + +\<pic amstex.tex cases 3.2\><<< +\Configure{cases}{\m:env{cases}}{\endm:env} +>>> + +\<nonpic amstex.tex cases 3.2\><<< +\Configure{cases}{\m:env{cases}}{\endm:env} +>>> + + + +\<pic amstex.tex align 3.2\><<< +\Configure{align}{\m:env{align}}{\endm:env} +>>> + + +\<tabular amstex.tex align 3.2\><<< +\Configure{align} + {\HCode{<table\Hnewline class="align">}} {\HCode{</table>}} + {\HCode{<tr\Hnewline>}} {\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> + + + + + +\<pic amstex.tex matrix 3.2\><<< +\Configure{matrix}{\m:env{matrix}}{\endm:env} +>>> + +\<tabular amstex.tex matrix 3.2\><<< +\Configure{matrix} + {\HCode{<table\Hnewline class="matrix">}} {\HCode{</table>}} + {\HCode{<tr\Hnewline>}} {\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> + + + + +\section{vanilla} + +\<configure html32 vanilla\><<< +|<32,4 vanilla|> +|<32 amsppt, 32,4 vanilla|> +\Configure{heading} + {}{}{\IgnorePar\EndP\HCode{<h2 class="heading">}}{\HCode{</h2>}} +\ConfigureToc{heading} + {}{\HCode{<span class="heading">}}{}{\HCode{</span><br\xml:empty>}} +\Configure{subheading} + {}{}{\EndP\HCode{<h3 class="subheading">}}{.\HCode{</h3>}} +\ConfigureToc{subheading} + {}{\HCode{<span class="subheading">}}{}{\HCode{</span><br\xml:empty>}} +\Configure{demo} + {\IgnorePar\EndP\HCode{<div class="demo"><span class="demo">}} + {\HCode{</span>}} {\IgnorePar\EndP\HCode{</div>}} +\Configure{aligned} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="aligned">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline valign="top">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> + +\section{minitoc} + +\<configure html32 minitoc\><<< +\Configure{minitoc}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{parttoc}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{secttoc}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{minilof}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{partlof}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{sectlof}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{minilot}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{partlot}{\HCode{<div>}}{\HCode{</div>}}{}{} +\Configure{sectlot}{\HCode{<div>}}{\HCode{</div>}}{}{} +>>> + +\section{fancyvrb} + +\<configure html32 fancyvrb\><<< +\Configure{fancyvrb} + {\HCode{<div class="fancyvrb">}} {\HCode{</div>}} + {} {\HCode{<br\xml:empty>}} + {}{} +>>> + + + + + + + + +\section{url} + +\<configure html32 url\><<< +\Configure{url}{\Link[#1]{}{}#1\EndLink} +>>> + + + +\section{amsfonts} + +\<configure html32 amsfonts\><<< +\:CheckOption{fonts} \if:Option + \Configure{mathbb}{\Protect\HCode{<b>}} + {\Protect\HCode{</b>}} + \Configure{mathfrak}{\Protect\HCode{<span class="mathfrak">}} + {\Protect\HCode{</span>}} +\fi +>>> + + + + + +\section{amsppt} + +\<configure html32 amsppt\><<< +|<sectioning in amsppt.sty|> +|<32,4 amsppt|> +|<32 amsppt|> +\ifx \EnditemitemList\:UnDef +\Configure{itemitem}{}{} + {\par\leavevmode\:nbsp\:nbsp\:nbsp}{} +\fi +>>> + +\section{fontmath.ltx} + +\<configure html32-math fontmath\><<< +|<32,4 picmath: plain, fontmath, amsmath, amstex1|> +|<math plain,fontmath|> +>>> + + + + + +\<configure html32 fontmath\><<< +\Configure{mathit}{\Protect\HCode{<i>}}{\Protect\HCode{</i>}} +\Configure{mathbf}{\Protect\HCode{<b>}}{\Protect\HCode{</b>}} +\Configure{mathtt}{\Protect\HCode{<tt>}}{\Protect\HCode{</tt>}} +\Configure{mathsf}{}{} +\Configure{mathrm}{}{} +\Configure{textbf}{\Protect\HCode{<b>}}{\Protect\HCode{</b>}} +\Configure{textit}{\Protect\HCode{<i>}}{\Protect\HCode{</i>}} +\Configure{textrm}{}{} +\Configure{textup}{}{} +\Configure{textsc}{}{} +\Configure{textsf}{}{} +\Configure{textsl}{\Protect\HCode{<i>}}{\Protect\HCode{</i>}} +\Configure{texttt}{\Protect\HCode{<tt>}}{\Protect\HCode{</tt>}} +\Configure{emph}{\Protect\HCode{<em>}}{\Protect\HCode{</em>}} +>>> + +\section{emulateapj} + +\<configure html32 emulateapj\><<< +\Configure{affil}{\HCode{<center>}}{\HCode{</center>}} +\Configure{author}{\HCode{<center>}}{\HCode{</center>}} +\Configure{keywords}{\HCode{<center><div>}}{\HCode{</div></center>}} +\Configure{subjectheadings} + {\HCode{<center><div>}}{\HCode{</div></center>}} +\Configure{slugcomment} + {\HCode{<center><i>}} {\HCode{</i></center>}} +\Configure{subtitle}{}{} +\Configure{submitted}{}{\HCode{<br\xml:empty>}} +\Configure{title} + {\HCode{<h1 class="titleHead">}} + {\HCode{</h1>}} +>>> + + + +\section{slidesec} + +\<configure html32 slidesec\><<< +\ConfigureToc{tocslidesection} {\empty}{\ }{}{\HCode{<br\xml:empty>}} +>>> + + + +\section{seminar} + +\<configure html32 seminar\><<< +\ConfigureEnv{slide} + {\HCode{<hr />}} {\rightline{\the\c@slide}}{}{} +>>> + + +\section{tex4ht} + + +\<configure html32 Preamble\><<< +\Configure{PROLOG}{DOCTYPE} +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{} +\else + \Log:Note{to remove the DOCTYPE declaration + use the command line option `no-DOCTYPE'} +\fi +>>> + + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi >>> + + +\<configure html32 tex4ht\><<< +|<0,32,4 tex4ht|> +|<32,4 tex4ht|> +|<32 tex4ht|> +|<title for hypertext page|> +\ifx \a:DOCTYPE\relax + \Configure{DOCTYPE}{\IgnorePar\HCode{<!DOCTYPE + html PUBLIC "-//W3C//DTD HTML 3.2//|<dtd lang|>" + \Hnewline\space\space + "http://www.w3.org/pub/WWW/MarkUp/Wilbur/HTML32.dtd">\Hnewline + }} + |<xml html32|> +\fi +\def\:gobbleM#1->{} +\Configure{@HEAD} + {\HCode{<!--\space\expandafter\:gobbleM\meaning + \Preamble\space-->\Hnewline}} +\immediate\write-1{TeX4ht package options: + \expandafter\:gobbleM\meaning\Preamble} +>>> + + +\<xml html32\><<< +\:CheckOption{xmldtd} \if:Option + \Configure{DOCTYPE} + {\HCode{<!DOCTYPE html \xhtml:DOCTYPE> \Hnewline + <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> + \Hnewline}} + \def\xhtml:DOCTYPE{PUBLIC + "-//W3C//DTD XHTML 1.0 Transitional//|<dtd lang|>"\Hnewline + \space\space + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"} +\fi +>>> + + + +\<configure html32 tex4ht\><<< +\Configure{HtmlPar} + {\EndP\HCode{<!--l. \the\inputlineno-->}\HCode{<p>}} + {\EndP\HCode{<!--l. \the\inputlineno-->}\HCode{<p>}} + {\:xhtml{\Tg</p>}} + {\:xhtml{\Tg</p>}} +\ifx \a:HTML\:UnDef + \Configure{HTML} + {\IgnorePar\HCode{<html \a:@HTML\Hnewline >}} + {\HCode{\Hnewline</html>\Hnewline}} +\fi +\ifx \a:HEAD\:UnDef + \Configure{HEAD} + {\IgnorePar\NoFonts\HCode + {<head>|<src note|>\Hnewline}} + {\HCode{</head>}\EndNoFonts} +\fi +\ifx \a:BODY\:UnDef + \Configure{BODY} + {\IgnorePar\HCode{<body\Hnewline >}\ShowPar} + {\ifvmode\IgnorePar\fi \EndP\HCode{\Hnewline </body>}} +\fi +\ifx \a:TITLE\:UnDef + \Configure{TITLE}{\Protect\IgnorePar + \HCode{<title>}}{\HCode{\Hnewline}} +\fi +| +>>> + + + +\<<< +% +>>> + +\<4 src note\><<< +% +>>> + + + + +\<<< +\Configure{crosslinks+} + {\IgnorePar\EndP\HCode{

      }} + {\HCode{

      }\par\ShowPar} + {\IgnorePar\EndP\HCode{

      }} + {\HCode{

      }\par\ShowPar} +\Configure{MkHalign} + {\halignTB{MkHalign}} + \t:HA + \R:HA\r:HA\D:HA\d:HA +\Configure{halignTD} {}{} + {<}{\HCode{align="left" | }} + {-}{\HCode{align="center" | }} + {>}{\HCode{align="right" | }} + {^}{\HCode{valign="top" | }} + {=}{\HCode{valign="baseline" | }} + {||}{\HCode{valign="middle" | }} + {_}{\HCode{valign="bottom" | }} + {p}{\HCode{align="left"}} + {} +\def\R:HA{\HCode{}} +\Configure{halign} + {\halignTB{halign}} + \t:HA + \R:HA\r:HA\D:HA\d:HA +\Configure{pic-halign}{} +\Configure{IMG} + {\ht:special{t4ht=>> + + + + + + +\<<< +\Configure{htf}{1}{+}{}{}{}{}{}{} +\Configure{htf}{3}{+}{}{}{}{}{}{} +\Configure{htf}{4}{+}{}{}{}{}{}{}{} +\Configure{htf}{6}{+}{}{}{}{}{}{}{} +>>> + + + + + + + + +\section{th4} + +\<<< +\Configure{Verbatim}{\HCode{
      }} {\HCode{
      }} {}{\:nbsp} +|<32,4 th4|> +|<32 th4|> +>>> + + + + + +\section{amsthm.sty} + +\<<< +\ConfigureEnv{proof}{\par\leavevmode}{\par\ShowPar}{}{} +>>> + +\section{foils} + +\<<< +|<32,4 foils|> +>>> + + + + + +\section{epsfig} + +\<<< +|<0,32,4 epsfig|> +>>> + +\section{psfig} + +\<<< +|<0,32,4 psfig|> +>>> + +\section{graphics} + +\<<< +|<0,32,4 graphics|> +>>> + + + + + + +\section{moreverb} + +\<<< +|<32,4 moreverb|> +>>> + + + +\section{xy} + + + +\<<< +|<32,4 xy|> +>>> + +\<32,4 xy\><<< +\Configure{xypic} + {\Picture*{}} {\EndPicture} +>>> + + + + + + +\section{pb-diagram} + + + + +\<<< +\ConfigureEnv{diagram} + {\Picture*{}$} {$\EndPicture} {}{} +>>> + + + + +\section{amscd} + + + + +\<<< +\ConfigureEnv{CD} + {\Picture*{}$} {$\EndPicture} {}{} +>>> + + + + + + + + + + + + + +\section{ntheorem} + +\<<< +|<32,4 ntheorem|> +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Picmath 3.2 \& 4} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% html32-math.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.1999. Eitan M. Gurari +| +>>> + + +\section{tex4ht} + + + + +\<<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + + + + +\<<< +|<32,4 picmath tex4ht|> +\Configure{PicMath}{}{}{}{} +| +>>> + +\<32,4 picmath tex4ht\><<< +\:CheckOption{no_^} +\if:Option \else \:CheckOption{no_}\fi +\if:Option \else + \Configure{SUB} + {\HCode{}}{\HCode{}} +\fi +\:CheckOption{no_^} +\if:Option \else \:CheckOption{no^}\fi +\if:Option \else + \Configure{SUP} + {\HCode{}}{\HCode{}} +\fi +\:CheckOption{no_^} + \if:Option \else \:CheckOption{no_}\fi + \if:Option \else \:CheckOption{no^}\fi +\if:Option \else + \Configure{SUBSUP} + {\HCode{}}{\HCode{}}{\HCode{}} +\fi +\Configure{left} + {\Picture+{ \a:@Picture{left}}} + {\aftergroup\EndPicture } +\Configure{mathchoice}{\PictureOff}{\PictureOn} +>>> + + + + + + +\verb'\endgraf' is safer than \verb'\par', because the latter may be redefined. +For instance, see p 262 in texbook. + + + + + + + +\<<< +\Configure{PicDisplay}{\HCode{
      }}{\HCode{
      }}{}{} +>>> + + + + + + + + +\section{plain} + + + +\<<< +| +| +| +|<32,4 picmath plain|> +>>> + +\<32,4 picmath plain\><<< +\Configure{sqrt} + {\Picture+{ \a:@Picture{sqrt}}} + {\EndPicture} +|<32,4 picmath: plain, fontmath, amsmath, amstex1|> +>>> + + +\section{latex} + + + + + + + + + + + + +\<<< +| +| +|<32,4 picmath latex|> +|<32 picmath th4,latex|> +>>> + + +\<<< +| +\def\A:root#1\b:root#2\c:root{\o:root:#1\of{#2}\c:root} +\Configure{root} + {\Picture+{ \a:@Picture{root}}\A:root} + {} + {\EndPicture} +\Configure{mathpalette} + {\Picture+{ \a:@Picture{mathpalette}}} {\EndPicture} +>>> + + +\<32,4 picmath latex\><<< +\Configure{pmatrix} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{bordermatrix} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{frac} + {\Picture+{ \a:@Picture{frac}}\bgroup} + {} {} + {\egroup\EndPicture} +>>> + + + + +\<32,4 picmath latex\><<< +\Configure{sqrtsign} + {\Picture+{ \a:@Picture{sqrt}}} + {\EndPicture} +\Configure{matrix} + {\Picture+{ \a:@Picture{matrix}}} {\EndPicture} + {}{}{}{} +>>> + + + + +\<<< +\Configure{L} {\pic:sym{L}} +\Configure{l} {\pic:sym{l}} +\def\pic:sym#1{\Protect\Picture+{ \a:@Picture{#1}}\csname + o:#1:\endcsname\Protect\EndPicture} +>>> + +\<<< +\Configure{Longrightarrow} {\pic:sym{Longrightarrow}} +\Configure{bowtie} {\pic:sym{bowtie}} +\Configure{cong} {\pic:sym{cong}} +\Configure{ddots} {\pic:sym{ddots}} +\Configure{doteq} {\pic:sym{doteq}} +\Configure{hookleftarrow} {\pic:sym{hookleftarrow}} +\Configure{hookrightarrow} {\pic:sym{hookrightarrow}} +\Configure{longmapsto} {\pic:sym{longmapsto}} +\Configure{mapsto} {\pic:sym{mapsto}} +\Configure{models} {\pic:sym{models}} +\Configure{neq} {\pic:sym{neq}} +\Configure{notin} {\pic:sym{notin}} +\Configure{vdots} {\pic:sym{vdots}} +\Configure{angle} {\pic:sym{angle}} +\Configure{rightleftharpoons} {\pic:sym{rightleftharpoons}} +\Configure{leftrightharpoons} {\pic:sym{leftrightharpoons}} +>>> + + +\<<< +\Configure{mathellipsis} {...} +>>> + + +\<<< +\Configure{ldots} {...} +\Configure{cdots} {\pic:sym{cdots}} +>>> + + +\<<< +\Configure{cdots} {\pic:sym{cdots}} +>>> + + +\<<< +\Configure{@cdots} {\pic:sym{@cdots}} +\Configure{iint} {\pic:sym{iint}} +\Configure{iiint} {\pic:sym{iiint}} +\Configure{iiiint} {\pic:sym{iiint}} +\Configure{idotsint} {\pic:sym{tsint}} +\Configure{doteq} {\pic:sym{tsint}} +>>> + + + + + + + +\section{amsmath} + +\<<< +|<32,4 picmath amsmath,amstex1|> +|<32,4 picmath amsmath|> +>>> + + + +\<32,4 picmath amsmath,amstex1\><<< +|<32,4 picmath: plain, fontmath, amsmath, amstex1|> +\Configure{dotsc} {\pic:sym{dotsc}} +\Configure{dotso} {\pic:sym{dotso}} +>>> + + + + +\<32,4 picmath amsmath\><<< +\Configure{overset} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{underset} {\Picture+{ \a:@Picture{}}} {\EndPicture} +>>> + + + + +\<32,4 picmath amsmath\><<< +\Configure{xrightarrow} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{xleftarrow} {\Picture+{ \a:@Picture{}}} {\EndPicture} +>>> + + + +\section{amstex1 (amstex.sty)} + +\<<< +|<32,4 picmath amsmath,amstex1|> +>>> + + + + +\section{th4} + + + + +\<<< +|<32 picmath th4,latex|> +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\<<< +\HCode{&\expandafter \ifx\csname U#2#1\endcsname\relax + #2#1\else \#x\csname U#2#1\endcsname\fi;}% +>>> + + +\<<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + + + + + + + + + + + + + + +\subsection{TeX Engine} + + + + + + + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + + + + + + + + + + +\<<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {<|.mrow\Hnewline + class="\expandafter\:gobble\string#1">}{}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> + + +\<<< +\sv:ignore +>>> + + + +\<<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + + + +The \verb'\MathRow' requests a \verb'<|.mrow\Hnewline>...', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + + + + + + + + + + + + + + + + +\subsection{latex.ltx} + + + + + + + + + + + + + + + + + + +Definitions like \verb'\def\mathbf#1{\a:mathbf#1\b:mathbf}' +can't be done on a global level, because \verb'\mathbf' is just +a name of a font. So, for instance, \verb'\bf' expands to \verb'\mathbf', +and so \verb'$\bf R$' indirectly brings up the latter command. + + + + + +\subsection{plain.sty} + + + + + + + +\subsection{Palin + LaTeX} + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + + + + + + + + + + + + + +\subsection{Amsmath} + + + The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts + + + + + + +\section{Eqnarray} + + + + + +Had `BASELINE' before `MIDDLE', but changed to conform with math +in page 252-- in intro to theory book. + + + + + + + + + + + + + + + + + + +\section{Accents through `accents' Configurations} + + + + + +Why originally the accents are defined within a group? (knuth answer +this in the texbook.) + + + + + + + +\section{PsTricks} + + + + +\<<< +\Configure{pspicture} + {\ifvmode \ifinner\else \vfill\break\fi + \leavevmode\fi \Picture+{ class="pspicture"}} + {\EndPicture\HCode{}} +>>> + + + + + + + + +\section{Fractions} + + + + + + + + + + + +\<<< +\ConfigureEnv{aligned}{}{}{}{} +\Configure{aligned} + {\HCode{<|.mtable\Hnewline class="aligned">}} + {\HCode{}} + {\HCode{<|.mtr\Hnewline>}} {\HCode{}} + {\HCode{<|.mtd>}} {\HCode{}} +>>> + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Sty Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%% +\section{ProTex} +%%%%%%%%%%%%%%%%%%% + +\<<< +\:CheckProtexOption{[[]]}\if:Option + |
      \ifx \:test\:minus + \else
      \fi}\par\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} +\Configure{ShowCode} + {\HCode{\ifx \:test\:minus \else
      \fi + \html:src
      + >\html:invisible}% + \nobreak + } + {\special{t4ht=\html:src% + \ifx \:test\:minus \else +
      \html:BackTitle\fi}} + {\HCode{\html:invisible}} + {\HCode{}} + {\HCode{}} + {\HCode{\string }} +\Css{div.ShowCode{background:\#EEEEEE; border: 1px white solid;}} +\Css{div.ShowCode div.head{background:\#E0E0E0;}} +\Css{div.ShowCode div.tail{background:\#E0E0E0;}} +>>> + + +\<<< +\ifx \par:end\empty \HCode{

      }\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +!*?: >>> + + +\<<< + cw:>>> + +\<<< +tail>>> + +\<<< +\xdef\:cursec{|
      }% +>>> + + + + + + +\<<< +\let\:tempd|=\Configure +\def\Configure#1#2{% + \:CheckOption{#1}\if:Option \def\:tempc{#2}\fi} +>>> + +\<<< +\let\Configure|=\:tempd +>>> + + +\<<< +\openin15=tex4ht.usr \ifeof15 \else \closein15 + \input tex4ht.usr +\fi +>>> + + + + + + + +\<<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \ifnum \the\catcode`\#=6 \else + \catcode`\noexpand \#|=\the\catcode`\#\fi + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 \catcode`\#|=6 +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{thebibliography}{9} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\bibitem{val} +\url{http://htmlhelp.com/tools/validator/index.html.en} +\end{thebibliography} + + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-html4.tex b/support/TeX4ht/source/tex4ht-html4.tex new file mode 100644 index 0000000000..fd6ae865e9 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-html4.tex @@ -0,0 +1,22317 @@ +% $Id: tex4ht-html4.tex 928 2021-05-04 17:53:52Z michal_h21 $ +% Compile 4 times: latex tex4ht-html4 +% Copy html4.4ht into the work directory before all but the last compilation. +% +% Copyright 2009-2021 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{html4,html4-math,html4-uni,html4-l2-url,html4-russian-accents} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \def\OPTIONS{xhtml,3,sections+} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +\def\.{\string\a:mathml:\space} + + +\TocAt{section,subsection,likesubsection} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Needs{"ls -l tex4ht-*.tex > ls-links.log"} +\openin15=ls-links.log +\ifeof15 \else \closein15 +\bgroup + \catcode`\-=13 + \def-#1tex4ht-{\bgroup \catcode`\-=12 + \def-##1.tex{\egroup + [\Link[tex4ht\string-##1.html]{}{}##1\EndLink]} + -} + \input ls\string-links.log +\egroup +\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{The Calling Tree for 4ht Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\if:latex | +\else | \fi +>>> + +\<0,32,4 plain\><<< +| +| +>>> + +\<0,32,4 latex\><<< +| +| +>>> + + + +\<<< +% html4.4ht (|version), generated from |jobname.tex +% Copyright 2009-2021 TeX Users Group +% Copyright |CopyYear.1997. Eitan M. Gurari +| +>>> + + +\<<< +% html4-math.4ht (|version), generated from |jobname.tex +% Copyright 2009-2021 TeX Users Group +% Copyright |CopyYear.1999. Eitan M. Gurari +| +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Front part} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%% +\section{HTML} +%%%%%%%%%%%%%%%% + +\<<< +\ifx \a:HTML\:UnDef + \Configure{HTML} + {\IgnorePar\HCode{\Hnewline}>\Hnewline}} + {\ifvmode\IgnorePar\fi\HCode{\Hnewline}} +\fi +\ifx \a:HEAD\:UnDef + \Configure{HEAD} + {\IgnorePar\NoFonts\HCode {}} + {\HCode{}\EndNoFonts} +\fi +\ifx \a:BODY\:UnDef + \:CheckOption{frames} \if:Option + | + \else + \Log:Note{for content and toc + in 2 frames, use the command line option `frames'} + \Log:Note{for content, toc, and footnotes + in 3 frames, use the command line option `frames-fn'} + | +\fi\fi +\ifx \a:TITLE\:UnDef + \Configure{TITLE}{\Protect\IgnorePar + \HCode{}}{\HCode{\Hnewline}} +\fi +\ifx \a:@HEAD\relax \let\a:@HEAD=\empty\fi +\ifx \a:@HEAD\empty + | + | + | +\fi +\:CheckOption{mouseover} \if:Option + | +\else + \Log:Note{for pop ups on mouse over, + use the command line option `mouseover'} +\fi +>>> + +\<<< +\openin15=\jobname .css +\ifeof15 \:warning{Missing file: \jobname .css }% +\else +\bgroup + \catcode`\{=12 \catcode`\}=12 \catcode`\%=12 \catcode`\#=12 + \HCode{\Hnewline\Hnewline}% +\egroup +\fi +\closein15 +>>> + + +Should we go for + +\begin{verbatim} + +\end{verbatim} +\Link[http://www.hixie.ch/advocacy/xhtml]{}{}http://www.hixie.ch/advocacy/xhtml\EndLink + + + +\<<< +\:CheckOption{uni-html4} \if:Option + \def\A:charset{charset=utf-8} + \def\a:charset{charset=utf-8} +\else + \def\A:charset{charset=iso-8859-1} +\fi +>>> + +\verb'\a:charset' can come from a private configuration file, and from +a poackage option. It takes precedence over \verb'\A:charset'. + + + +%%%%%%%%%%%%%%%% +\section{XML Version} +%%%%%%%%%%%%%%%% + +\<<< +| +\Configure{VERSION} + {\HCode{ ?>\Hnewline}} +>>> + +%%%%%%%%%%%%%%%% +\section{DOCTYPE} +%%%%%%%%%%%%%%%% + +\<<< +\ifx \a:DOCTYPE\relax + \:CheckOption{frames} \if:Option + | + \else + | + | + \fi +\fi +>>> + + +\<<< +\:CheckOption{xhtml} \if:Option + \NewConfigure{@DOCTYPE}[1]{\def\:temp{#1}% + \ifx \:temp\empty \let\a:@DOCTYPE|=\empty + \else \ifx \a:@DOCTYPE\relax \let\a:@DOCTYPE|=\empty\fi + \pend:def\a:@DOCTYPE{#1}\fi} + \let\a:@DOCTYPE|=\relax +\fi +>>> + +\<<< +|
      +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET}
      +\:CheckOption{mouseover} \if:Option
      +   |
      +\fi
      +\:CheckOption{no-DOCTYPE} \if:Option
      +  \:CheckOption{no-VERSION} \if:Option
      +     \Configure{PROLOG}{*XML-STYLESHEET}
      +  \else
      +     \Configure{PROLOG}{VERSION,*XML-STYLESHEET}
      +     |
      +  \fi   
      +\else
      +  \:CheckOption{no-VERSION} \if:Option
      +     \Configure{PROLOG}{DOCTYPE,*XML-STYLESHEET}
      +  \else
      +     |
      +  \fi
      +  \Log:Note{to remove the DOCTYPE declaration
      +          use the command line option `no-DOCTYPE'}   
      +\fi
      +>>>
      +
      +\<<<
      +\Log:Note{to remove the   processing instruction
      +          use the command line option `no-VERSION'}   
      +>>>
      +   
      +\<<<
      +\:CheckOption{xhtml}  \if:Option
      +   |%
      +   \def\:DTD{xhtml}
      +\else
      +   |%
      +\fi
      +>>>
      +
      +
      +\<<<
      +\csname a:frames-altDOCTYPE\endcsname
      +>>>
      +
      +\<<<
      +\NewConfigure{frames-altDOCTYPE}{1}
      +\Configure{frames-altDOCTYPE}
      +   {|}
      +>>>
      +
      +
      +Don't place the full address
      + \''http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' 
      +within DOCTYPE. It can stop tools like xt when the server doesn't respond
      +
      +
      +\<<<
      +|%
      +\Configure{DOCTYPE}
      +  {\HCode{            \Hnewline
      +    
      +    \Hnewline}}
      +\def\xhtml:DOCTYPE{PUBLIC
      +    "-//W3C//DTD XHTML 1.0 Transitional//|"\Hnewline
      +    \space\space
      +    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"}
      +>>>
      +
      +
      +\<<<
      +\expandafter
      +\ifx \csname a:dtd-lang\endcsname\relax EN\else
      +  \csname a:dtd-lang\endcsname
      +\fi
      +>>>
      +
      +
      +\<<<
      +\Configure{@DOCTYPE}
      +  {\Hnewline\%xhtml.dtd; \Hnewline}
      +>>>
      +
      +\<<<
      +\Configure{DOCTYPE}{\IgnorePar\HCode
      +   {"
      +    \Hnewline\space\space "http://www.w3.org/TR/html4/loose.dtd">
      +    \Hnewline}}
      +>>>
      +
      +
      + 
      +\<<<
      +\:CheckOption{xhtml} \if:Option  
      +   |%
      +   \Configure{DOCTYPE}
      +   {\HCode{"
      +    \Hnewline
      +     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\Hnewline}}
      +\else
      +   \Configure{DOCTYPE}
      +   {\HCode{"
      +    \Hnewline "http://www.w3.org/TR/html4/frameset.dtd">\Hnewline}}
      +\fi
      +>>>
      +
      +
      +
      +
      +
      +
      +Xerces reqires the following encoding.
      +
      +\<<<
      +\def\:encoding#1={}
      +>>>
      +
      +\<<<
      +encoding="\expandafter\ifx \csname a:charset\endcsname\relax
      +         \expandafter\:encoding\A:charset
      +   \else \expandafter\:encoding\a:charset\fi"
      +>>>
      +
      +%%%%%%%%%%%%%%%%
      +\section{BODY}
      +%%%%%%%%%%%%%%%%
      +
      +\<<<
      +\:CheckOption{mouseover} \if:Option
      +   \Configure{BODY}
      +      {\:xhtml{\SaveEndP}\IgnorePar\HCode{}|\ShowPar\par}
      +      {\IgnorePar\:xhtml{\EndP}\HCode{\Hnewline
      +        }\:xhtml{\RecallEndP}}%
      +\else
      +   \Configure{BODY}
      +      {\:xhtml{\SaveEndP}\IgnorePar\HCode{}\ShowPar\par }
      +      {\IgnorePar\:xhtml{\EndP}\HCode{\Hnewline
      +        }\:xhtml{\RecallEndP}}%
      +\fi
      +>>>
      +
      +\<<<
      +\def\Frame:Name{menu}
      +|%
      +\Configure{BODY}
      +   {%
      +    \a:frames    \NoFrames    \PushStack\BODY:stack{}
      +    |%
      +    |%
      +    \HPage[tex4ht-p1]{table of contents}%
      +       \par \ShowPar \Link{}{|}\EndLink 
      +       \bgroup
      +         \Configure{Link}{a}{target="|"  href=}{ id=}{}
      +         \b:frames
      +       \egroup   
      +       \def\Frame:Name{main}
      +    \EndHPage{tex4ht-p1} \expandafter\Tg
      + \HPage[tex4ht-p2]{text}\par\ShowPar + \Link{}{|}\EndLink + } + {\EndHPage{tex4ht-p2}} +\NewConfigure{frames}{2} +\Css{body\#| {white-space: nowrap; }} +>>> + + +\<<< +\:CheckOption{mouseover} \if:Option + \Configure{BODY} + {\PushStack\BODY:stack{x}% + \:xhtml{\SaveEndP}\IgnorePar\HCode{}|\ShowPar\par \let\Frame:Name=\empty} + {\IgnorePar\:xhtml{\EndP}\PopStack\BODY:stack\:temp + \ifx \:temp\empty \EndFrames \else + \HCode{\Hnewline }\fi + \:xhtml{\RecallEndP}}% +\else + \Configure{BODY} + {\PushStack\BODY:stack{x}% + \:xhtml{\SaveEndP}\IgnorePar\HCode{}\ShowPar\par \let\Frame:Name\empty} + {\IgnorePar\:xhtml{\EndP}\PopStack\BODY:stack\:temp + \ifx \:temp\empty \EndFrames + \else \HCode{\Hnewline }\fi + \:xhtml{\RecallEndP}}% +\fi +>>> + + + +\<<< +tex4ht-main>>> + + +\<<< +tex4ht-fn>>> + +\<<< +tex4ht-menu>>> + + +%%%%%%%%%%%%%%%% +\section{Meta} +%%%%%%%%%%%%%%%% + + +\<<< +\:CheckOption{xht} \if:Option + \:CheckOption{xhtml}\if:Option \else \:CheckOption{xml}\fi +\fi +\if:Option | +\else |\fi +\def\:gobbleM#1->{} +| +\immediate\write-1{TeX4ht package options: + \expandafter\:gobbleM\meaning\Preamble} +\Configure{@HEAD} + {\HCode{\Hnewline}} +\:CheckOption{timestamp}\if:Option +\Configure{@HEAD} + {\HCode{\Hnewline}} +\else + \Log:Note{To print a timestamp, use the command line option timestamp} +\fi +>>> + + +\<<< +\:CheckOption{mathplayer} \if:Option + \Configure{@HEAD}{\HCode{\Hnewline}} +\else + \Configure{@HEAD}{\HCode{\Hnewline}} +\fi +\Configure{ext}{xht} +>>> + +\<<< +\Log:Note{for file extension name xht, use the command line option `xht'}% +\Configure{@HEAD}{\HCode{\Hnewline}} +>>> + + +\verb'\Hnewline' is needed at end of file to avoid loosing the +last line under some applications. + + + + + +Tex4ht pages published through FrontPage loose the generator metas, +but not the originator-metas. + +% +% 'generator' attribute changed from Eitan's Url to TUG/tex4ht. +% CVR 2010/10/02 +% \item + + +\<<< +\Configure{@HEAD}{\HCode{\Hnewline}} +\Configure{@HEAD}{\HCode{\Hnewline + \Hnewline}} +>>> + + + +%%%%%%%%%%%%%%%% +\section{Frames} +%%%%%%%%%%%%%%%% + +\<<< +tex4ht-toc>>> + +\<<< +tex4ht-body>>> + +\<4 latex\><<< +\:CheckOption{frames} \if:Option + \:CheckOption{frames-fn} \if:Option + \Configure{frames} + {\HorFrames[rows="*"]{*,3*} + \VerFrames[cols="*"]{3*,*} + \Frame[ name="|" + frameborder="0" ]{|} + \Frame[ name="|" + frameborder="0" ]{} + \EndFrames + \Frame[ name="|" + frameborder="0" ]{|}} + {\let\contentsname=\empty \tableofcontents} + \else + \Configure{frames} + {\HorFrames[rows="*"]{*,3*} + \Frame[ name="|" + frameborder="0" ]{|} + \Frame[ name="|" + frameborder="0" ]{|}} + {\let\contentsname=\empty \tableofcontents} + \fi +\fi +>>> + +% frameborder="no" +% border="0" +% framespacing="0" + + +\<<< +\:CheckOption{frames-fn} \if:Option + \edef\Preamble{\Preamble,frames} +\fi +>>> + + + +\<<< +\Configure{frames} + {\VerFrames[ cols="*"]{4*,*} + \Frame[ name="|" + frameborder="1" ]{|} + \Frame[ name="|" + frameborder="1" ]{|}} + {\beamer:bookmarks \tableofcontents} +>>> + +\<<< +\Configure{frames} + {\HorFrames[ rows="*"]{*,3*} + \Frame[ name="|" + frameborder="1" ]{|} + \Frame[ name="|" + frameborder="1" ]{|}} + {\beamer:bookmarks \tableofcontents} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Object Tocs} +%%%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{obj-toc} \if:Option + \Css{object.toc { float: left; + width: 25\%; + height: 100\%; + border: 1px solid \#888888; + margin-left:0em; + margin-top:0em; + margin-bottom:1em; + margin-right:1em; + padding-right:1em; + }} + \Css{body\#jobname-toc{margin:0em;}} + \Css{body\#jobname-toc .tableofcontents{ white-space: nowrap; }} + \Configure{@BODY} + {\edef\:temp{\jobname-toc.\:html} + \edef\:tempa{\FileName} + \edef\:temp{\expandafter\string\csname\:temp\endcsname} + \edef\:tempa{\expandafter\string\csname\:tempa\endcsname} + \ifx\:temp\:tempa\else + \hbox{ + \HCode{} + [\Link[\jobname-toc.\:html]{}{}table of contents\EndLink] + \HCode{}} + \fi + } + {} + \pend:defI\Auto:ent{% + \bgroup + \let\contentsname=\empty + \Configure{!BODY}{ id="jobname-toc"}% + \Configure{Link}{a}{target="\string _top" href=}{id=}{}% + \NextFile{\jobname-toc.\csname :html\endcsname}% + \HPage{}% + } + \append:defI\Auto:ent{% + \EndHPage{}% + \egroup + } +\else + \Log:Note{for frames-like object-based table of contents, + use the command line option `obj-toc'} +\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Structures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sectioning} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Sub Sections} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}\@seccntformat{subsection}% + \HCode{}\fi } +| +\Configure{subsection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

      }% + \TitleMark\space \HtmlParOff} + {\HCode{

      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsection}{}{}{\EndP\bgroup + \ifvmode \IgnorePar\fi + \HCode{

      }\HtmlParOff } + {\HCode{

      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsectionTITLE+}{#1} +>>> + + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}\@seccntformat{section}% + \thesubsection\HCode{}\fi} +\Configure{subsection}{}{} + {\EndP\bgroup \IgnorePar\HCode{

      }% + \TitleMark{. \space}} + {\HCode{

      }\IgnoreIndent\egroup} +>>> + + + + +\
      <<<
      +\ConfigureMark{subsection}
      +   {\ifnum \c:secnumdepth>\c@secnumdepth  \expandafter\:gobble \else
      +    \csname thetitlesubsection\endcsname\fi}
      +\Configure{subsection}{}{}
      +   {\EndP\bgroup \IgnorePar\HCode{

      }% + \TitleMark\space} + {\HCode{

      }\IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsection}{}{} + {\EndP\bgroup \IgnorePar\HCode{

      }} + {\HCode{

      }\IgnoreIndent\egroup\par\ShowPar} +>>> + + +\<<< +\ConfigureMark{subsection} + {\ifHeadingNumbered \HCode{}\mw@seccntformat + \HeadingNumber \HCode{}\fi} +\Configure{subsection}{}{} + {\NoFonts \ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

      }% + \TitleMark \HtmlParOff} + {\HCode{

      }\HtmlParOn \EndNoFonts \IgnoreIndent\egroup\par\ShowPar} +\Configure{subsectionTITLE+}{\thesubsection \space#1} +>>> + +\<<< +\Configure{likesubsection}{}{}{\EndP\bgroup + \ifvmode \IgnorePar\fi + \HCode{

      }\HtmlParOff } + {\HCode{

      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsectionTITLE+}{#1} +>>> + + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}% + \@ifundefined{subsectionname}{}{% + \ignorespaces\subsectionname\space}% + \@seccntformat{subsection}% + \HCode{}\fi } +| +>>> + + +\<<< +\Configure{subsection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

      }% + \TitleMark\space \HtmlParOff} + {\HCode{

      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +>>> + +\<<< +\Configure{subsection}{}{} + {\ShowPar\noindent + \HCode{}\begingroup\bf + \TitleMark\space} + {.\endgroup\HCode{}\IgnorePar} +>>> + + + +\<<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}\thesubsection + \HCode{}\fi } +| +\Configure{subsection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{

      }% + \TitleMark\ \ \HtmlParOff} + {\HCode{

      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsection}{}{}{\EndP\bgroup + \ifvmode \IgnorePar\fi + \HCode{

      }\HtmlParOff } + {\HCode{

      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsectionTITLE+}{#1} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Sub Sub Sections} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}% + \@ifundefined{subsubsectionname}{}{% + \ignorespaces\subsubsectionname\space}% + \@seccntformat{subsubsection}% + \HCode{}\fi} +| +>>> + + +\<<< +\Configure{subsubsection}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{
      }% + \TitleMark\space \HtmlParOff} + {\HCode{
      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +>>> + +\<<< +\Configure{subsubsection}{}{} + {\ShowPar\noindent + \HCode{}\begingroup\it + \TitleMark\space} + {.\endgroup\HCode{}\IgnorePar} +>>> + + +\<<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{}\@seccntformat{subsubsection}% + \HCode{}\fi} +| +\Configure{subsubsection}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{
      }% + \TitleMark\space \HtmlParOff} + {\HCode{
      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsubsection}{}{} + {\ifvmode \IgnorePar\fi \EndP\bgroup\IgnorePar + \HCode{
      }\HtmlParOff} + {\HCode{
      }\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +>>> + + + +\<<< +\ConfigureMark{subsubsection} + {\ifHeadingNumbered \HCode{}\mw@seccntformat + \HeadingNumber \HCode{}\fi} +\Configure{subsubsection}{}{} + {\NoFonts \ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{
      }% + \TitleMark \HtmlParOff} + {\HCode{
      }\HtmlParOn \EndNoFonts \IgnoreIndent\egroup + \par\ShowPar} +\Configure{subsubsectionTITLE+}{\thesubsubsection \space#1} +>>> + + + +\<<< +\Configure{likesubsubsection}{}{} + {\ifvmode \IgnorePar\fi \EndP\bgroup\IgnorePar + \HCode{
      }\HtmlParOff} + {\HCode{
      }\HtmlParOn \IgnoreIndent\egroup \par\ShowPar} +>>> + + + + +\
      <<<
      +\ConfigureMark{subsubsection}
      +   {\ifnum \c:secnumdepth>\c@secnumdepth   \expandafter\:gobble \else
      +    \csname thetitlesubsubsection\endcsname\fi}
      +\Configure{subsubsection}{}{}
      +   {\EndP\bgroup \IgnorePar\HCode{
      }% + \TitleMark\space} + {\HCode{
      }\IgnoreIndent\egroup \par\ShowPar} +\Configure{likesubsubsection}{}{} + {\EndP\bgroup \IgnorePar\HCode{
      }% + \TitleMark\space} + {\HCode{
      }\IgnoreIndent\egroup \par\ShowPar} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sectioning Pagination} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{article,report,book} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +| |%should appear before TocAt|% +| +>>> + + + + + +\<<< +\:CheckOption{7} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + \fi + | +\else\:CheckOption{6} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + \fi + | +\else \:CheckOption{5} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + | + | + | + \fi + | +\else\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + | + | + | + \fi + | +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + | + | + | + \fi + | +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + | |%cut toc before cutat|% + | + | + | + | + \else + | |%cut toc before cutat|% + | + | + | + | + \fi + | +\else\:CheckOption{1} \if:Option + | |%cut toc before cutat|% + | + | +\else + \Log:Note{for automatic sectioning + pagination, use the command line option + `1', `2', `3', '4', '5', '6', or '7'}% +\fi \fi \fi \fi \fi \fi \fi +>>> + +% + +\<<< +\CutAt{part} +\CutAt{likepart} +>>> + + + + +\<<< +\CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} +>>> + + + +\<<< +\CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +>>> + + +\<<< +\CutAt{section,likesection,part} +\CutAt{likesection,part} +>>> + + +\<<< +\CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +>>> + + +\<<< +\CutAt{subsection,section,likesection,part} +\CutAt{likesubsection,section,likesection,part} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{AMS} +%%%%%%%%%%%%%%%%%%% + + + +\<<< +| +>>> + + + + +%%%%%%%%%%%%% +\subsection{File Naming} +%%%%%%%%%%%%% + +\<<< +\:CheckOption{sec-filename} \if:Option \else + \Log:Note{for files named derived from section + titles, use the command line option `sec-filename'}% +\fi +>>> + + +\<<< +\:CheckOption{7} + \if:Option \else \:CheckOption{6}\fi + \if:Option \else \:CheckOption{5}\fi + \if:Option \else \:CheckOption{4}\fi + \if:Option \else \:CheckOption{3}\fi + \if:Option \else \:CheckOption{2}\fi + \if:Option \else \:CheckOption{1}\fi +\if:Option + \:CheckOption{sec-filename} + \if:Option + |
      + \else + \Log:Note{For section filenames that reflect on + their titles use the command line + option `sec-filename'} + \fi +\fi +>>> + +\
      <<< +\Configure{CutAt-filename}{% + \ifx \:NxtNwFN\:Undef + |% + |% + \tmp:cnt=0 \uniq:fn + \fi +} +\def\uniq:fn{% + \expandafter\ifx + \csname ct:fn\:temp + \ifnum \tmp:cnt>0 \the\tmp:cnt\fi\endcsname\relax + \expandafter\global\expandafter\let + \csname ct:fn\:temp + \ifnum\tmp:cnt>0 \the\tmp:cnt\fi + \endcsname=\def + \ifx \:temp\empty \else + \NextFile{\:temp + \ifnum \tmp:cnt>0 \the\tmp:cnt\fi .\:html}% + \fi + \else + \advance\tmp:cnt by 1 \expandafter\uniq:fn + \fi +} +\NewConfigure{sec-filename*}{1} +>>> + +\<<< +\tmp:toks={#2}% +\immediate\openout15=\jobname .tmp +\immediate\write15{\string\next{\the\tmp:toks}}% +\immediate\closeout15 +\bgroup + \def\next{\csname no:catcodes\endcsname{92}{92}{9}% + \xdef\:temp}% + \csname no:catcodes\endcsname{32}{47}{9}% + \csname no:catcodes\endcsname{58}{64}{9}% + \csname no:catcodes\endcsname{91}{91}{9}% + \csname no:catcodes\endcsname{93}{96}{9}% + \csname no:catcodes\endcsname{126}{126}{9}% + \csname a:sec-filename*\endcsname + \input \jobname .tmp +\egroup +>>> + + + +\<<< +\immediate\openout15=\jobname .tmp +\immediate\write15{\string\next[\:temp]}% +\immediate\closeout15 +\bgroup + \def\next{\xdef\:temp}% + \csname no:catcodes\endcsname{91}{91}{1}% + \csname no:catcodes\endcsname{93}{93}{2}% + \csname no:catcodes\endcsname{123}{123}{9}% + \csname no:catcodes\endcsname{125}{125}{9}% + \input \jobname .tmp +\egroup +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables of Contents: Choice of Entries} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,section,subsection} + \fi + \Configure{tableofcontents*}{part,section} +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,section,likesection,% + subsection,likesubsection} + \fi + | + \Configure{tableofcontents*}{part,likepart,section,likesection} +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,appendix,section} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,likechapter,appendix,% + section,likesection} + \fi +\fi +>>> + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*} + {part,chapter,appendix} +\else + | + \Configure{tableofcontents*} + {part,likepart,chapter,likechapter,appendix} +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,likechapter,appendix,% + section,likesection} + \MiniToc:At{likepart,/part,chapter,likechapter,appendix,% + section,likesection} + \fi +\fi +>>> + + + + +\<<< +\:CheckOption{notoc*} \if:Option +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,% + section,likesection,subsection,likesubsection} + \MiniToc:At{likepart,/part,% + section,likesection,subsection,likesubsection} + \fi +\fi +>>> + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section\expandafter\ifx + \csname @chapter\endcsname\relax ,subsection\fi} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection\expandafter\ifx + \csname @chapter\endcsname\relax ,subsection,likesubsection\fi} +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{chapter,/likechapter,/appendix,/part,% + section,subsection} + \MiniToc:At{likechapter,/appendix,/chapter,/part,% + section,subsection} + \MiniToc:At{appendix,/chapter,/likechapter,/part,% + section,subsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{chapter,/likechapter,/appendix,/part,% + section,likesection,subsection,likesubsection} + \MiniToc:At{likechapter,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \MiniToc:At{appendix,/chapter,/likechapter,/part,% + section,likesection,subsection,likesubsection} + \fi +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,appendix,section% + \expandafter\ifx \csname @chapter\endcsname\relax + ,subsection\fi} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection% + \expandafter\ifx \csname @chapter\endcsname\relax + ,subsection,likesubsection\fi} +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{section,/likesection,/chapter,/likechapter,/appendix,/part,% + subsection,subsubsection} + \MiniToc:At{likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsection,subsubsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{section,/likesection,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \MiniToc:At{likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,likesubsection,subsection} +\fi +>>> + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + subsubsection,paragraph} + \MiniToc:At{likesubsection,/subsection,/likesection,% + /section,/chapter,/likechapter,/appendix,/part,% + subsubsection,paragraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + subsubsection,likesubsubsection,% + paragraph} + \MiniToc:At{likesubsection,/subsection,% + /likesection,/section,/chapter,/likechapter,/appendix,/part,% + subsubsection,likesubsubsection,% + paragraph} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection} +\fi +>>> + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{subsubsection,/likesubsubsection,/subsection,% + /likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + paragraph,subparagraph} + \MiniToc:At{likesubsubsection,/subsubsection,/likesubsection,% + /subsection,/likesection,% + /section,/chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{subsubsection,/likesubsubsection,% + /subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \MiniToc:At{likesubsubsection,/subsubsection,/likesubsection,/subsection,% + /likesection,/section,/chapter,/likechapter,/appendix,/part,% + paragraph,subparagraph} + \fi +\fi +>>> + + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection,paragraph} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection,% + paragraph} +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{paragraph,/subsubsection,/likesubsubsection,/subsection,% + /likesubsection,/section,/likesection,% + /chapter,/likechapter,% + /appendix,/part,% + subparagraph} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{paragraph,/subsubsection,/likesubsubsection,% + /subsection,/likesubsection,/section,/likesection,% + /chapter,/likechapter,/appendix,/part,% + subparagraph} + \fi +\fi +>>> + + + + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*}{part,chapter,% + appendix,section,subsection,subsubsection,% + paragraph,subparagraph} +\else + | + \Configure{tableofcontents*}{part,likepart,chapter,likechapter,% + appendix,section,likesection,% + likesubsection,subsection,likesubsubsection,subsubsection,% + paragraph,subparagraph} +\fi +>>> + + +\<<< +\CutAt{subsubsection,subsection,likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsubsection,subsection,likesubsection,section,likesection,% + chapter,likechapter,appendix,part} +>>> + +\<<< +\CutAt{subsubsection,subsection,likesubsection,section,likesection,part} +\CutAt{likesubsubsection,subsection,likesubsection,section,likesection,part} +>>> + + + +\<<< +\CutAt{paragraph,subsubsection,likesubsubsection,subsection,likesubsection,% + section,likesection,chapter,likechapter,appendix,part} +>>> + +\<<< +\CutAt{paragraph,subsubsection,likesubsubsection,subsection,likesubsection,% + section,likesection,part} +>>> + + + +\<<< +\CutAt{subparagraph,paragraph,subsubsection,likesubsubsection,% + subsection,likesubsection,% + section,likesection,chapter,likechapter,appendix,part} +>>> + +\<<< +\CutAt{subparagraph,paragraph,subsubsection,likesubsubsection,% + subsection,likesubsection,% + section,likesection,part} +>>> + + + + + + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,addchap,appendix,section} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,likechapter,addchap,appendix,% + section,likesection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \Configure{tableofcontents*} + {part,chapter,addchap,appendix} +\else + | + \Configure{tableofcontents*} + {part,likepart,chapter,likechapter,addchap,appendix} +\fi +>>> + + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,addchap,appendix,section} + \MiniToc:At{likepart,/part,chapter,addchap,appendix,section} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{part,/likepart,chapter,likechapter,addchap,appendix,% + section,likesection} + \MiniToc:At{likepart,/part,chapter,likechapter,addchap,appendix,% + section,likesection} + \fi +\fi +>>> + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{chapter,/likechapter,/addchap,/appendix,/part,% + section,subsection} + \MiniToc:At{likechapter,/addchap,/appendix,/chapter,/part,% + section,subsection} + \MiniToc:At{addchap,/likechapter,/appendix,/chapter,/part,% + section,subsection} + \MiniToc:At{appendix,/chapter,/likechapter,/addchap,/part,% + section,subsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{chapter,/likechapter,/addchap,/appendix,/part,% + section,likesection,subsection,likesubsection} + \MiniToc:At{likechapter,/addchap,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \MiniToc:At{addchap,/likechapter,/appendix,/chapter,/part,% + section,likesection,subsection,likesubsection} + \MiniToc:At{appendix,/chapter,/likechapter,/addchap,/part,% + section,likesection,subsection,likesubsection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{section,/likesection,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,subsubsection} + \MiniToc:At{likesection,/section,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,subsubsection} + \fi +\else + \:CheckOption{nominitoc} \if:Option + \else + | + \MiniToc:At{section,/likesection,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \MiniToc:At{likesection,/section,/chapter,/likechapter,% + /addchap,/appendix,/part,% + subsection,likesubsection,subsubsection,likesubsubsection} + \fi +\fi +>>> + + +\<<< +\:CheckOption{notoc*} \if:Option + \CutAt{subsection,section,chapter,addchap,appendix,part} + \CutAt{likesubsection,section,chapter,addchap,appendix,part} +\else + \CutAt{subsection,section,likesection,% + chapter,likechapter,addchap,appendix,part} + \CutAt{likesubsection,section,likesection,% + chapter,likechapter,addchap,appendix,part} +\fi +>>> + + + +\<<< +\ConfigureToc{foilhead}{}{ *\ }{}{} +\Configure{tableofcontents*}{foilhead} +\Css{div.tableofcontents{margin-top:2em;}} +>>> + + +The `notoc*' is applicable only to pages that are automatically +decomposed into separate web pages along section divides. It +should be used whe addcontentline instructions are present. + +\begin{verbatim} +\section*{....} +\addcontentsline{toc}{section}{....} +\end{verbatim} + + + +\<<< +\Log:Note{for tocs without * entries, use + command line option `notoc*'} +>>> + + + +\<<< +\:CheckOption{1} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else \:CheckOption{2} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else \:CheckOption{3} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else \:CheckOption{4} \if:Option + \:CheckOption{notoc*} \if:Option + \addcontentsline{toc}{section}{\indexname}% + \fi +\else + \addcontentsline{toc}{section}{\indexname}% +\fi \fi \fi \fi +>>> + + + +\<<< +\Log:Note{to eliminate mini tables of + contents, use the command line option `nominitoc'} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables of Contents: Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{TocAt} + {|% + \Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
      }\IgnorePar} + {}{\IgnorePar\HCode{
      }\ShowPar}{\HCode{
      }}{}% + \ifvmode \IgnorePar\fi \EndP + } + {|\par\ShowPar} +\Configure{TocAt*} + {|% + \Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
      }\IgnorePar} + {}{\IgnorePar\HCode{
      }\ShowPar}{\HCode{
      }}{}% + \ifvmode \IgnorePar\fi \EndP + } + {|\par\ShowPar} +\:CheckOption{minitoc<} \if:Option + \def\MiniToc:At{\TocAt} +\else + \Log:Note{For mini tocs immediately aftter the header use the + command line option `minitoc<'} + \def\MiniToc:At{\TocAt*} +\fi +>>> + + + + +\<<< +\Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
      }\IgnorePar} + {\ifTag{tex4ht-body}{\HCode{
      }\Link{tex4ht-body}{}Home\EndLink}{}} + {\IgnorePar\EndP\HCode{
      }\ShowPar} + {\HCode{
      }} {} +>>> + +\<<< +\let\sv:atoc|=\a:tableofcontents +\let\sv:btoc|=\b:tableofcontents +\let\sv:ctoc|=\c:tableofcontents +\let\sv:dtoc|=\d:tableofcontents +\let\sv:etoc|=\e:tableofcontents +>>> + + +\<<< +\let\a:tableofcontents|=\sv:atoc +\let\b:tableofcontents|=\sv:btoc +\let\c:tableofcontents|=\sv:ctoc +\let\d:tableofcontents|=\sv:dtoc +\let\e:tableofcontents|=\sv:etoc +>>> + + +\<<< +\def\tocpart#1#2#3{\par + \HCode{}\if !#1!\else #1\ \ \fi #2\HCode{}\par}% +\def\toclikepart#1#2#3{\par + \HCode{}#2\HCode{}\par}% +|% +\expandafter\ifx \csname @chapter\endcsname\relax + \def\tocsection#1#2#3{\par + \HCode{}\def\:temp{#1}\ifx \:temp\empty\else + #1 \fi #2\HCode{}\par} + \def\toclikesection#1#2#3{\par + \HCode{}#2\HCode{}\par}% + \def\tocsubsection#1#2#3{\par\ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par\ + \HCode{}#2\HCode{}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \HCode{}#2\HCode{}\par} + \def\tocparagraph#1#2#3{\par\ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par\ \ + \HCode{}#2\HCode{}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \HCode{}#2\HCode{}\par} +\else + |% + \def\tocchapter#1#2#3{\par + \HCode{}\ifnum \c@secnumdepth >\m@ne + #1 \fi #2\HCode{}\par} + \def\toclikechapter#1#2#3{\par + \HCode{}#2\HCode{}\par}% + \def\tocappendix#1#2#3{\par + \HCode{}#1 #2\HCode{}\par} + \def\tocsection#1#2#3{\par\ \toc:num{section}{#1}{#2}\par} + \def\toclikesection#1#2#3{\par\ \HCode{}#2\HCode{}\par} + \def\tocsubsection#1#2#3{\par\ \ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par + \ \ \HCode{}#2\HCode{}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \ \HCode{}#2\HCode{}\par} + \def\tocparagraph#1#2#3{\par\ \ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par + \ \ \ \HCode{}#2\HCode{}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \ \HCode{}#2\HCode{}\par} +\fi +\def\toc:num#1#2#3{\def\:temp{#1#2}% + \HCode{}\ifx \:temp\empty + \else \def\:temp{#2}\ifx\:temp\empty\else #2 \fi \fi #3\HCode{}} +>>> + + + +\<<< +\def\tocpart#1#2#3{\par + \HCode{}\if !#1!\else + #1\ \ \fi #2\HCode{}\par}% +\def\toclikepart#1#2#3{\par + \HCode{}#2\HCode{}\par}% +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} + \Css{.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, + .appendixToc a, .appendixToc, .addchapToc a + {line-height: 200\%; font-weight:bold;}} + \def\tocchapter#1#2#3{\par + \HCode{}#1\ \ #2\HCode{}\par} + \def\toclikechapter#1#2#3{\par + \HCode{}#2\HCode{}\par}% + \def\tocaddchap#1#2#3{\par + \HCode{}#2\HCode{}\par}% + \def\tocappendix#1#2#3{\par + \HCode{}#1\ \ #2\HCode{}\par} + \def\tocsection#1#2#3{\par\ \toc:num{section}{#1}{#2}\par} + \def\toclikesection#1#2#3{\par\ + \HCode{}#2\HCode{}\par} + \def\tocsubsection#1#2#3{\par\ \ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par + \ \ \HCode{}#2\HCode{}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \ \HCode{}#2\HCode{}\par} + \def\tocparagraph#1#2#3{\par\ \ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par + \ \ \ \HCode{}#2\HCode{}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \ \HCode{}#2\HCode{}\par} +\def\toc:num#1#2#3{\def\:temp{#1#2}% + \HCode{}\ifx \:temp\empty + \else \def\:temp{#2}\ifx\:temp\empty\else #2\ \ \fi\fi #3\HCode{}} +>>> + + +\<<< +\def\tocpart#1#2#3{\par + \HCode{}\if !#1!\else #1\ \ \fi #2\HCode{}\par}% +\def\toclikepart#1#2#3{\\HCode{}#2\HCode{}\par}% +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +% +\expandafter\ifx \csname @chapter\endcsname\relax + \def\tocsection#1#2#3{\par + \HCode{}\def\:temp{#1}\ifx \:temp\empty\else + #1 \fi #2\HCode{}\par} + \def\toclikesection#1#2#3{\par + \HCode{}#2\HCode{}\par}% + \def\tocsubsection#1#2#3{\par\ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par\ + \HCode{}#2\HCode{}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \HCode{}#2\HCode{}\par} + \def\tocparagraph#1#2#3{\par\ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par\ \ + \HCode{}#2\HCode{}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \HCode{}#2\HCode{}\par} +\else + \Css{.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, + .appendixToc a, .appendixToc + {line-height: 200\%; font-weight:bold;}} +% + \def\tocchapter#1#2#3{\par + \HCode{}#1 #2\HCode{}\par} + \def\toclikechapter#1#2#3{\par + \HCode{}#2\HCode{}\par}% + \def\tocappendix#1#2#3{\par + \HCode{}#1 #2\HCode{}\par} + \def\tocsection#1#2#3{\par\ \toc:num{section}{#1}{#2}\par} + \def\toclikesection#1#2#3{\par\ + \HCode{}#2\HCode{}\par} + \def\tocsubsection#1#2#3{\par\ \ \toc:num{subsection}{#1}{#2}\par} + \def\toclikesubsection#1#2#3{\par + \ \ \HCode{}#2\HCode{}\par} + \def\tocsubsubsection#1#2#3{\par + \ \ \ \toc:num{subsubsection}{#1}{#2}\par} + \def\toclikesubsubsection#1#2#3{\par + \ \ \ \HCode{}#2\HCode{}\par} + \def\tocparagraph#1#2#3{\par\ \ \ \toc:num{paragraph}{#1}{#2}\par} + \def\toclikeparagraph#1#2#3{\par + \ \ \ \HCode{}#2\HCode{}\par} + \def\tocsubparagraph#1#2#3{\par + \ \ \ \ \ \toc:num{subparagraph}{#1}{#2}\par} + \def\toclikesubparagraph#1#2#3{\par + \ \ \ \ \ \HCode{}#2\HCode{}\par} +\fi +\def\toc:num#1#2#3{\def\:temp{#1#2}% + \HCode{}\ifx \:temp\empty + \else \def\:temp{#2}\ifx\:temp\empty\else #2 \fi \fi #3\HCode{}} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Tables of Contents} +%%%%%%%%%%%%%%%%%%% + + +\<<< +\ConfigureToc{part} + {\HCode{}\toc:Mark{part}} + {\End:Mark} + {} + {\HCode{
      }} +\ConfigureToc{section} + {\HCode{}\toc:Mark{section}} + {\End:Mark} + {} + {\HCode{
      }} +\ConfigureToc{subsection} + {\HCode{}\ \ \toc:Mark{subsection}} + {\End:Mark} + {} + {\HCode{
      }} +\ConfigureToc{subsubsection} + {\HCode{}\ \ \ \ \toc:Mark{subsubsection}} + {\End:Mark} + {} + {\HCode{
      }} +\def\toc:Mark#1#2\End:Mark{\if !#2!\else + \expandafter\ifx \csname #1name\endcsname\relax\else + \csname #1name\endcsname\ \fi #2.\ \ \fi} +>>> + + +\<<< +\ConfigureToc{likepart} + {\HCode{}} + {\empty} + {} + {\HCode{
      }} +\ConfigureToc{chapter} + {\HCode{}% + \ifx \chaptername\:UnDef\else \chaptername\ \fi} + {.\ \ } + {} + {\HCode{
      }} +\ConfigureToc{likechapter} + {\HCode{}} + {\ \ } + {} + {\HCode{
      }} +\ConfigureToc{appendix} + {\HCode{}% + \ifx \appendixname\:UnDef\else \appendixname\ \fi} + {.\ \ } + {} + {\HCode{
      }} +>>> + +\<<< +\Css{.chapterToc a, .chapterToc, .appendixToc a, .appendixToc + {line-height: 200\%; font-weight:bold;}} +>>> + + +\<<< +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables and Arrays} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX Tabular and Array} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<32,4 latex\><<< +\:CheckOption{pic-tabular} \if:Option + \ConfigureEnv{tabular} + {\IgnorePar\EndP\Tg
      \Picture*{}} + {\EndPicture\Tg
      }{}{} + \Css{div.pic-tabular {text-align:center;}} +\else + \Log:Note{for pictorial tabular, + use the command line option `pic-tabular'} +\fi +>>> + + + +\<<< +\:CheckOption{pic-array} \if:Option \else + \Log:Note{for pictorial array, + use the command line option `pic-array'} + \ConfigureEnv{array} + {\IgnorePar\EndP\PushStack\Col:Marg\AllColMargins + \HCode{
      }} + {\HCode{
      }\PopStack\Col:Marg\AllColMargins\ShowPar}{}{} + \Css{div.array {text-align:center;}} +\fi +>>> + + +\<<< +\:CheckOption{pic-tabular} \if:Option \else + \ConfigureEnv{tabular} + {|% + \IgnorePar|\EndP\HCode{
      }% + \PushStack\Col:Marg\AllColMargins + } + {\HCode{
      }\PopStack\Col:Marg\AllColMargins\ShowPar + |% + |% + }{}{} + \Css{div.tabular, div.center div.tabular {text-align: center; + margin-top:0.5em; margin-bottom:0.5em; }} + \Css{table.tabular td p{margin-top:0em;}} + \Css{table.tabular {margin-left: auto; + margin-right: auto;}} |% centering |% +\fi +\Css{td p:first-child{ margin-top:0em; }} +\Css{td p:last-child{ margin-bottom:0em; }} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX Tabule} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\ConfigureEnv{table} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }\par\ShowPar} + {}{} +>>> + +%%%%%%%%%%%%% +\subsection{multirow} +%%%%%%%%%%%%% + +\<<< +\Configure{multirow} + {\HCode{
      }} + {\HCode{
      }} +>>> + +%%%%%%%%%%%%% +\subsection{tabularx} +%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{tabularx}{\ifvmode\IgnorePar\fi\EndP}{}{}{} +>>> + +%%%%%%%%%%%%% +\subsection{tabulary} +%%%%%%%%%%%%% + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {l}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {c}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {r}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ style="white-space:nowrap; vertical-align:top";}} + {=}{\HCode{ style="vertical-align:baseline; white-space:nowrap;"}} + {||}{\HCode{ style="vertical-align:middle; white-space:nowrap;"}} + {_}{\HCode{ style="vertical-align:bottom; white-space:nowrap;"}} + {p}{\HCode{ style="white-space:normal; text-align:left;"}} + {m}{\HCode{ style="white-space:nowrap; text-align:left; vertical-align:middle;"}} + {b}{\HCode{ style="white-space:normal; text-align:left; vertical-align:baseline;"}} + {L}{\HCode{ style="white-space:normal; text-align:left;"}} + {R}{\HCode{ style="white-space:normal; text-align:right;"}} + {C}{\HCode{ style="white-space:normal; text-align:center;"}} + {J}{\HCode{ style="white-space:normal;"}} + {} +>>> + +\<<< +\ConfigureEnv{tabulary} + {|% + \IgnorePar|\EndP\HCode{
      }% + \PushStack\Col:Marg\AllColMargins + } + {\HCode{
      }\PopStack\Col:Marg\AllColMargins\ShowPar + |% + |% + }{}{} +>>> + + +\<<< + \Configure{tabulary} + {\ifvmode \IgnorePar\fi \EndP \halignTB{tabulary}\putVBorder } + {|\HCode{}} + {\HCode{}} + {\r:HA} + {\HCode{1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}|% + \HCode{">}|\PushStack\Table:Stck\TableNo} + {|\PopStack\Table:Stck\TableNo \d:HA} +>>> + + + +\<<< +\NoFonts + \bgroup + \ifx \ttfamily\:UnDef \else \ttfamily\fi + \ColMargins + \egroup +\EndNoFonts +>>> + +\<<< +\Configure{halignTB<>}{tabulary}{\HCode{id="TBL-\TableNo" class="tabulary"\Hnewline + \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +>>> + + +%%%%%%%%%%%%% +\subsection{Mdwtab} +%%%%%%%%%%%%% + +\<<< +\Configure{smarray} + {\ifvmode \IgnorePar\fi \EndP\halignTB{smarray}\putVBorder} + {|\HCode{}} + {\R:HA} + {\r:HA} + {\D:HA\HCode{
      }|\pic:env} + {|\HCode{
      }\d:HA} +\Configure{halignTB<>} + {smarray} + {\HCode{id="TBL-\TableNo" class="smarray"\Hnewline + \GROUPS\Hnewline + }<>\HAlign + } +>>> + +\<<< +\Configure{tabular*} + {\a:tabular} + {\b:tabular} + {\c:tabular} + {\d:tabular} + {\e:tabular} + {\f:tabular} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Bibliography} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Cite} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{cite} + {\HCode{}} + {\HCode{}} + {\Link[ |]} + {\EndLink } +\expandafter\def\csname c:mouseover-cite:\endcsname{% + \def\:tempb{cite}\csname c:mouseover-?:\endcsname} +\Configure{mouseover-cite}{tex4ht.body,FULLHTML} +>>> + + +\<<< +\mo:args{cite}{\@citeb}{\expandafter + \jsHash\expandafter{\expandafter X\@citeb}}% +>>> + +\<<< +\Configure{cite} + {\HCode{}} {\HCode{}} + {\Link} {\EndLink} +>>> + +\<<< +\Configure{cite}{}{}{}{}% +>>> + + +\<<< +\string\Configure{mouseover-vars}{cite}{Author,Title}% +>>> + + +\<<< +\string\Configure {mouseover-cite} + {tex4ht.body,CAPTION,tex4ht.caption+tex4ht.var,FULLHTML}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Bib Item} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{bibitem}{\Link}{\EndLink} +>>> + +\<<< +\Configure{bibitem} + {\bibitem:link} + {\EndLink|} +\def\bibitem:link#1#2{|\HCode + {}\Link{#1}{#2}} +>>> + + + +\<<< +\Configure{HtmlPar} + {\EndP\HCode{

      }} + {\EndP\HCode{

      }} + {\Tg

      } {\Tg

      }% +>>> + + + +\<<< +\Configure{HtmlPar} + {\EndP\HCode{

      }} + {\EndP\HCode{

      }} + {\Tg

      } {\Tg

      }% +>>> + + + +\<<< +\Configure{HtmlPar} + {\HCode{

      }} + {\HCode{

      }} + {} {}% +>>> + + +\<<< +\Css{p.bibitem { text-indent: -2em; margin-left: 2em; + margin-top:0.6em; margin-bottom:0.6em; }} +\Css{p.bibitem-p { text-indent: 0em; margin-left: 2em; + margin-top:0.6em; margin-bottom:0.6em; }} +>>> + +\<<< + \Configure{bibitem2} + {|\par\ShowPar + \HCode{}% + |% + } + {\EndP} + {\HCode{}\ \ \ \HCode{}} +>>> + + +\<<< +\HCode{}% +|% +>>> + +\<<< +|% +\HCode{} +>>> + +\<<< +.js p.bibitem-p +>>> + +\<<< +js p.bibitem +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The Bibliography} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The bibliography environment is prooblematic because +it carries a definition that implies an environment similar +to + +\begin{verbatim} + \begin{....} + \section*{...} + ... + \end{....} +\end{verbatim} + +The \verb+\begin{...}+ has a \verb+\SaveEverypar+, and + \verb+\end{...}+ has a \verb+\RecallEverypar+. In the case of +paginations across sectioning commands, we have also the saving and +recalling also at the start and end of each section (each page). In +such a case, we don't have proper nestings of environments. + + + + + +\<<< +\ConfigureEnv{thebibliography}{\IgnorePar}{\ShowPar\par}{}{} +>>> + +\<<< +\ConfigureEnv{thebibliography}{\par\leavevmode}{\ShowPar}{}{} +>>> + + +\<<< +\ConfigureList{thebibliography}% + {\ifvmode\IgnorePar\fi \EndP \HCode{

      }\let\en:bib=\empty} + {\en:bib \ifvmode\IgnorePar\fi \EndP \HCode{
      }} + {\en:bib\def\en:bib{|\EndP}% + |\par\ShowPar + \HCode{}|} + {\HCode{}\:nbsp + \:nbsp\:nbsp\HCode{}} +>>> + + + + + + + + + + +\<<< +\ConfigureList{thebibliography}% + {\ifvmode\IgnorePar\fi\EndP |\HCode{
      }\let\en:bib=\empty} + {\en:bib \ifvmode\IgnorePar\fi\EndP \HCode{
      }} + {\en:bib\def\en:bib{|% + \EndP|}|% + |\par\ShowPar + \leavevmode |\HCode{}|} + {\HCode{}\:nbsp + \:nbsp\:nbsp\HCode{}|} +>>> + + +\<<< +\:CheckOption{bibtex2} \if:Option + \Configure{bibliography2} + {~~[} {more} {]} + |% +\fi +>>> + + + + + +\<<< +\:CheckOption{no-bib} \if:Option\else + \:CheckOption{mouseover} \if:Option + | + | + \else + | + | + \fi +\fi +>>> + + +\<<< +\:CheckOption{no-bib} \if:Option\else + \:CheckOption{mouseover} \if:Option + | + \else + | + \fi + | +\fi +>>> + +\<<< +\csname bibliography2\endcsname +>>> + +\<<< +|\csname bibliography2\endcsname +|% +>>> + + + + + +% \HCode{\Hnewline\string\jselement{footnote}% +% \string\jselement{bibitem}\Hnewline}% + + + + + +\<<< +\Configure{vol}{\HCode{}}{\HCode{}} +\Configure{book}{\HCode{}}{\HCode{}} +\Configure{paper}{\HCode{}}{\HCode{}} +\Configure{Refs}{\IgnorePar\EndP\HCode{}} + {\HCode{
      }} +\Configure{ref}{\HCode{}} + {\EndP\HCode{}}{} +\Configure{keyformat}{}{\EndP\HCode{}} +>>> + + + + +\<<< +\HAssign\bibN=0 +\Configure{thebibliography}% + {\ifvmode \IgnorePar\fi \EndP + \EndP\HCode{
      }% + \PushMacro\end:itm + \global\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \EndP + \PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{
      }\ShowPar} + {\ifvmode \IgnorePar\fi \EndP + \gHAdvance\bibN by 1 + \end:itm \global\def\end:itm{\EndP\Tg}\HCode{
      }\bgroup \bf} + {\ifvmode \IgnorePar\fi \EndP + \gHAdvance\bibN by 1 + \egroup\HCode{
      }\par\ShowPar} +>>> + + +\<<< +\Configure{printshorthands} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
      }} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
      }} + {\HCode{
      }\par\ShowPar} +\Css{dt.printshorthands{float:left; clear:left; margin-right:1em;}} +>>> + +\<<< +\Configure{finentry} + {\hbox{\HCode{}}} + {\hbox{\HCode{}}} +>>> + +\<<< +\NewConfigure{printfield-annotation}{2} +\NewConfigure{printfield-file}{2} +\Configure{printfield-annotation} + {\HCode{
      }} + {\HCode{}} +\Configure{printfield-file} + {\HCode{
      }} + {\HCode{}} +\Css{div.bibitem br.annotation, + div.bibitem br.file + {margin-bottom:0.5em}} +>>> + + + +\<<< +\NewConfigure{printfield-entrykey}{2} +\Configure{printfield-entrykey} + {\HCode{}} + {\HCode{}} +>>> + + +\<<< +\Configure{entryhead:name} + {\hbox{\HCode{}% + \Css{dd\#bib-\bibN\space p:last-child + {border-bottom:solid black 1px}}% + }} + {\hbox{\HCode{}}} +\Configure{entryhead:full} + {\hbox{\HCode{}% + \Css{dd\#bib-\bibN\space p:last-child + {border-bottom:solid black 1px}}% + }} + {\hbox{\HCode{}}} +>>> + + +\<<< +\Configure{biblatex-style} + {authortitle} + {|} +\Configure{biblatex-style} + {authortitle-comp} + {|} +\Configure{biblatex-style} + {authortitle-tcomp} + {|} +\Configure{biblatex-style} + {authortitle-icomp} + {|} +\Configure{biblatex-style} + {authortitle-ibid} + {|} +\Configure{biblatex-style} + {authoryear} + {|} +\Configure{biblatex-style} + {authoryear-ibid} + {|} +\Configure{biblatex-style} + {authoryear-comp} + {|} +\Configure{biblatex-style} + {verbose} + {|} +\Configure{biblatex-style} + {verbose-ibid} + {|} +\Configure{biblatex-style} + {verbose-note} + {|} +\Configure{biblatex-style} + {alphabetic-verb} + {|
      } +\Configure{biblatex-style} + {alphabetic} + {|
      } +\Configure{biblatex-style} + {numeric} + {|
      } +\Configure{biblatex-style} + {numeric-verb} + {|
      } +\Configure{biblatex-style} + {numeric-comp} + {|
      } +\Configure{biblatex-style} + {draft} + { + \Css{dd.thebibliography {margin-left: 2.5em;}} + \Css{dt.thebibliography {float:left; clear:left; margin-right:1em;}} + } +\Configure{biblatex-style} + {reading} + { + \Css{.entrykey {float:right; margin-top:-1.25em;}} + } +\Configure{biblatex-style}{verbose-trad1}{} +\Configure{biblatex-style}{verbose-trad2}{} +>>> + + + + +\<<< +\Css{dd.thebibliography { text-indent: -2em; margin-left: 2em;}} +\Css{dd.thebibliography p:first-child{ text-indent: -2em; }} +\Css{dt.thebibliography{float:left; clear:left; margin-right:1em;}} +>>> + +\
      <<< +\Css{dd.thebibliography {margin-left: 5em;}} +\Css{dt.thebibliography {float:left; clear:left; margin-right:1em;}} +>>> + + +\
      <<< +\Css{dd.thebibliography {margin-left: 2.5em;}} +\Css{dt.thebibliography {float:left; clear:left; margin-right:1em;}} +>>> + +\<<< +\Css{dd.thebibliography {margin-left: 7em;}} +\Css{dt.thebibliography {float:left; clear:left; margin-right:1em;}} +\Configure{subfieldlabel} + {\HCode{}} + {\HCode{}} +>>> + + + + +%%%%%%%%%%%%%%%% +\subsection{acm-proc-article-sp} +%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{no-bib} \if:Option\else + \:CheckOption{mouseover} \if:Option + | + \else + | + \fi + | +\fi +>>> + + +\<<< +\ConfigureEnv{thebibliography}% + {\ifvmode\IgnorePar\fi \EndP \HCode{
      }\let\en:bib=\empty} + {\en:bib \ifvmode\IgnorePar\fi \EndP \HCode{
      }} + {}{} +\ConfigureList{thebibliography}% + {}{} + {\en:bib\def\en:bib{|\EndP}% + |\par\ShowPar + \HCode{}|} + {\HCode{}\:nbsp + \:nbsp\:nbsp\HCode{}} +>>> + + +\<<< +\ConfigureEnv{thebibliography}% + {\ifvmode\IgnorePar\fi\EndP |\HCode{
      }\let\en:bib=\empty} + {\en:bib \ifvmode\IgnorePar\fi\EndP \HCode{
      }} + {}{} +\ConfigureList{thebibliography}% + {}{} + {\en:bib\def\en:bib{|% + \EndP}||% + |\par\ShowPar + \leavevmode |\HCode{}|} + {\HCode{}\:nbsp + \:nbsp\:nbsp\HCode{}|} +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{JS Contributions} +%%%%%%%%%%%%%%%% + + + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Cont bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Set1 bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Set2 bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Addr1 bib }% +>>> + +\<<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Addr2 bib }% +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Lists} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Css{li p.indent { text-indent: 0em }} +\Css{li p:first-child{ margin-top:0em; }} +\Css{li p:last-child, li div:last-child { margin-bottom:0.5em; }} +\Css{li p\string ~ul:last-child, + li p\string ~ol:last-child{ margin-bottom:0.5em; }} +>>> + +\<<< +\ConfigureEnv{trivlist} + {}{|}{}{} +\ConfigureList{trivlist}% + {\EndP\HCode{
      }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
      }\bgroup \bf} + {\egroup\HCode{
      }} +\ConfigureEnv{list} + {}{|}{}{} +\ConfigureList{list}% + {\EndP\HCode{
      }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
      }\bgroup \bf} + {\egroup\HCode{
      }\par\ShowPar} +\ConfigureEnv{itemize} + {\ifvmode \IgnorePar\fi \EndP}{|} + {}{} +\ConfigureList{itemize}% + {\EndP\HCode{
        }% + \afterGetClass{itemize}% + |\global\let\end:itm=\empty} + {|\ifvmode \IgnorePar\fi + \EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\DeleteMark} + {\HCode{
    2. }\afterGetClass{li}} +\NewConfigure{itemizeClass}{2} +\Configure{itemizeClass}{}{} +\NewConfigure{liClass}{2} +\Configure{liClass}{}{} +>>> + +\<<< +\ConfigureEnv{enumerate} + {}{|}{}{} +\:CheckOption{enumerate-} \if:Option + \ConfigureList{enumerate}% + {|} + {|} + {|} + {|} +\else + \:CheckOption{enumerate+} \if:Option + | + \else + \ConfigureList{enumerate}% + {|} + {|} + {|} + {|} + | + \fi + \Log:Note{for enumerated list elements li's with value attributes, + use the command line option `enumerate-'} +\fi +\:CheckOption{css2} \if:Option + | +\else + \Log:Note{for CSS2 code, use the command line option `css2'} +\fi +>>> + + + +\<<< +| +>>> + + +\<<< +\ConfigureList{enumerate}% + {\EndP\HCode{
      }% + \PushMacro\end:itm + \global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
      }\bgroup \bf} + {\egroup\EndP\HCode{
      }} +\Css{dd.enumerate {margin-left: 2em;}} +\Css{dt.enumerate {float:left; + clear:left; + margin-right:0.5em; + margin-left:0.5em; + text-align:right; }} +>>> + +\<<< +\Log:Note{for enumerated list elements with valued data, + use the command line option `enumerate+'} +>>> + + +\<<< +\bgroup + \def\textbullet{&\#x2219;} + \def\textasteriskcentered{&\#x2217;} + \Css{ul.itemize1 {list-style-type: none;}} + \Css{ul.itemize1 li.itemize:before { display: marker; + marker-offset: 0.5em; + content: "\labelitemi\space" }} + \Css{ul.itemize2 {list-style-type: none;}} + \Css{ul.itemize2 li.itemize:before { display: marker; + marker-offset: 0.5em; + content: "\labelitemii\space" }} + \Css{ul.itemize3 {list-style-type: none;}} + \Css{ul.itemize3 li.itemize:before { display: marker; + marker-offset: 0.5em; + content: "\labelitemiii\space" }} +\egroup +>>> + + + +\<<< +\EndP\HCode{
        }|\global\let\end:itm=\empty +>>> + +\<<< +|% +\EndP\HCode{
      }\ShowPar +>>> + + +\<<< +\end:itm \gdef\end:itm{\EndP\Tg
    3. }\DeleteMark +>>> + +\<<< +\HCode{
    4. }\AnchorLabel +>>> + + + + + +\<<< +{\Configure{Link}{li}{}{ class="enumerate" id=}{}% + \let\EndLink=\empty \AnchorLabel }% +>>> + + +% \HCode{
    5. }\AnchorLabel + + +It is better to put the LI in the third field to avoid extra space +to the following text. + +\<<< +\def\c:enumerate:#1{\c:enu #1|} +\def\c:enu#1#2#3#4#5|{% +\def\a:enumerate:{\ifcase \@enumdepth \or + #1\or #2\or #3\or #4\else\fi #5}} +>>> + +\<<< +\Configure{enumerate}{{}{}{}{}} +\Css{.enumerate1 {list-style-type:decimal;}} +\Css{.enumerate2 {list-style-type:lower-alpha;}} +\Css{.enumerate3 {list-style-type:lower-roman;}} +\Css{.enumerate4 {list-style-type:upper-alpha;}} +>>> + +\<\><<< +\:CheckOption{html+} \if:Option + \Configure{enumerate} + {% + {style="list-style-type:decimal"}% + {style="list-style-type:lower-alpha"}% + {style="list-style-type:lower-roman"}% + {style="list-style-type:upper-alpha"}% + } +\else + \Log:Note{for stricter html code, + use the command line option `html+'} + \Configure{enumerate}{% + {type="\theenumi"}% + {type="\theenumii"}% + {type="\theenumiii"}% + {type="\theenumiv"}} +\fi +>>> + +% \Configure{enumerate}{{type="1"}{type="a"}{type="i"}{type="A"}} + + + +\<<< +\Configure{enumiii} + {\HCode{}} + {\HCode{}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Prosper} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{Itemize} + {\ifvmode \IgnorePar\fi \EndP}{|} + {}{} +\ConfigureList{Itemize}% + {\EndP\HCode{
        }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
      }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg
    6. }\DeleteMark} + {\HCode{
    7. }} +>>> + +\<<< +\ConfigureEnv{itemstep} + {\ifvmode \IgnorePar\fi + \EndP\HCode{
        }% + |\global\let\end:itm=\empty} + {|\ifvmode \IgnorePar\fi\EndP + \HCode{
      }\ShowPar} + {} + {} +\ConfigureList{itemstep} + {} + {} + {\end:itm \global\def\end:itm{\EndP\Tg
    8. }\DeleteMark} + {\HCode{
    9. }} +\Css{li.itemize-hide {visibility:hidden;}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Jeep} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<<< +\ConfigureEnv{outline} + {}{|}{}{} +\ConfigureList{outline}% + {|} + {|} + {|} + {|} +>>> + +\<<< +\EndP\HCode{
        }|\global\let\end:itm=\empty +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Description} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\ConfigureList{description}% + {\EndP\HCode{
        }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
        }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
        }\bgroup \bf} + {\egroup\EndP\HCode{
        }} +>>> + +\<32,4 report,book\><<< +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +\<<< +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +\<<< +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +\<<< +| +\ConfigureEnv{description}{\IgnorePar}{}{}{} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{List Utilities} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +Latex allows groups like the following, so we need global \verb+\end:itm+ + +\begin{verbatim} +\begin{enumerate} +{\item Line 1} +{\item Line 2} +\end{enumerate} +\end{verbatim} + + +\<<< +\PushMacro\end:itm +>>> + + +\<<< +\PopMacro\end:itm \global\let\end:itm \end:itm +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{mdwlist} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{itemize*} + {\ifvmode \IgnorePar\fi \EndP}{|} + {}{} +\ConfigureList{itemize*}% + {\EndP\HCode{
          }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
        }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\DeleteMark} + {\HCode{
      1. }} +\ConfigureEnv{enumerate*} + {}{|}{}{} +\ConfigureList{enumerate*}% + {|} + {|} + {|} + {|} +\ConfigureList{description*}% + {\EndP\HCode{
        }% + |\global\let\end:itm=\empty} + {|\EndP\HCode{
        }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
        }\bgroup \bf} + {\egroup\EndP\HCode{
        }} +\ConfigureList{basedescript} + {\EndP\HCode{
        }% + \PushMacro\end:itm \global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{
        }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
        }\bgroup \bf} + {\egroup\EndP\HCode{
        }} +>>> + + +%%%%%%%%%%%%% +\subsection{nomencl} +%%%%%%%%%%%%% + +\<<< +\ConfigureList{thenomenclature}% + {\EndP\HCode{
        }% + \PushMacro\end:itm + \global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{
        }\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{
        }\bgroup \bf} + {\egroup\EndP\HCode{
        }} +\Css{dt.thenomenclature{float:left; clear:left;}} +>>> + +\<<< +\:CheckOption{2} \if:Option \else + \:CheckOption{3} \if:Option \else + \:CheckOption{4} \if:Option \else + \:CheckOption{5} \if:Option \else + \:CheckOption{6} \if:Option \else + \:CheckOption{7} + \fi + \fi + \fi + \fi +\fi +\if:Option + \pend:def\thenomenclature{% + \if@intoc + |% + \fi + |% + } +\fi +>>> + +\<<< +\expandafter\let\csname if:intoc\expandafter\endcsname\csname if@intoc\endcsname +\expandafter\edef\csname if@intoc\endcsname{% + \expandafter\noexpand\csname iftrue\endcsname + \let\expandafter\noexpand \csname if@intoc\endcsname + \expandafter\noexpand \csname if:intoc\endcsname + \expandafter\noexpand\csname else\endcsname}% +>>> + + +\<<< +\def\:temp{thenomenclature}\ifx\:temp\@currenvir + \RecallEverypar +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Index} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +| +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Scr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<32,4 report,book\><<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \chapter*{\indexname}\fi} +>>> + +\<<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \section*{\indexname}\fi} +>>> + + +\<<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \chapter*{\indexname}\fi} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{multiind} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\Configure{@begin}{theindex} + {\ifx \indexname\empty \else|\fi} +>>> + + +% \ifx \indexname\empty \else +% \ifx\chapter\:Undef \section*{\indexname}\else +% \chapter*{\indexname}\fi +% \let\indexname=\empty +% \fi +% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Index} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{NoSection} + {\let\sv:index|=\p@index \let\sv:label|=\label + \let\sv:newline|=\newline \def\newline{ }% + \def\p@index[##1]{\@gobble}\let\label|=\@gobble + |% + } + {\let\p@index|=\sv:index \let\label|=\sv:label + |% + \let\newline|=\sv:newline + } +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{texinfo} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{index} + {\IgnorePar\leavevmode\EndP\Tg
        } + {\IgnorePar\EndP\Tg
        } + {\leavevmode\Tg} + {\Tg\expandafter\Tg
        \IgnorePar} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{ConTeXt} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\catcode`\!=11 +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +| +\catcode`\!=12 +>>> + +\<<< +\Configure{-@@fm} + {\ifvmode + \IgnorePar\EndP\HCode{
        }% + \def\end:margp{\ifvmode \IgnorePar\fi \EndP \HCode{
        }}% + \par + \else + \SaveEndP + \HCode{}% + \bgroup + \Configure{HtmlPar}{\HCode{
        }}{\HCode{
        }}{}{}% + \def\end:margp{\egroup\HCode{
        }\RecallEndP}% + \fi + } + {\end:margp} +\Css{.formula-no {width:5\%; float:right; text-align:right; + margin-right:auto; }} +>>> + + + + +\<<< +\Configure{mtable} + {\ifvmode \IgnorePar\fi \EndP + \HCode{}} + {\HCode{
        }} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{mathalignment} + {\ifvmode \IgnorePar\fi \EndP + \Css{table.\currentmathalignment { margin-left:5\%; }}% + \Css{td.\currentmathalignment { text-align:left; }}% + \HCode{}} + {\HCode{
        }} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\NewConfigure{align}{6} +\Configure{align} + {\ifvmode \IgnorePar\fi \EndP + \HCode{}} + {\HCode{
        }} + {\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Css{table.align { margin-left:5\%; }} +\Css{td.align { text-align:left; }} +>>> + +\<<< +\Configure{intertext} + {\f:mtable\d:mtable\c:mtable\HCode{}} + {\f:mtable\d:mtable\c:mtable\e:mtable} +\Css{.intertext {text-align:left;}} +>>> + +\<<< +\Configure{frac} + {\Picture+{ class="frac"}\bgroup} + {}{} + {\egroup\EndPicture} +\Css{.frac {vertical-align:middle;}} +>>> + +\<<< +\Configure{MPcode} + {\Picture*[pic]{}} + {\EndPicture} +>>> + + + + + + +\<<< +\def\:temp{LaTeX} +\HLet\LaTeX\:temp +>>> + + + + +\<<< +{ + \def\:tempc{% + \catcode`\.=12 + \gdef\:tempc} + \:tempc#1.#2.{#1} +} +{\Configure{Needs}{Font\string_Size: #1}% + \Needs{\expandafter\:tempc\the\bodyfontsize .}} +>>> + + + +\<<< +\Configure{crlf}{\HCode{
        }} +>>> + + +\<<< +\Configure{externaldocument}{\Link}{\EndLink} +\Configure{-@@ur} + {\HCode{}} + {\HCode{}} +>>> + + + + + + +\<<< +\Configure{framed} + {\ifvmode + \def\end:framed{\ifvmode \IgnorePar\fi\EndP\HCode{}}% + \IgnorePar \EndP + \HCode{
        >}% + \else + \def\end:framed{\HCode{}}% + \HCode{>}% + \fi + } + {\end:framed} +\Css{.framed-border{border: solid black 1px; }} +\Css{.framed-background{background-color: \#CCCCCC; }} +>>> + + +\<<< +class="framed-\ifdim\ruledlinewidth>0em + border% + \else + background% + \fi +" +>>> + + + +% \hshow{x-\framedparameter\c!framecolor}% +% \hshow{x-\the\ruledlinewidth}% +% \hshow{x-\framedparameter\c!bottomframe}% +% \hshow{x-\framedparameter\c!topframe}% +% \hshow{x-\framedparameter\c!leftframe}% +% \hshow{x-\framedparameter\c!rightframe}% +% \hshow{x-\framedparameter\c!backgroundcolor}% +% \hshow{x-\framedparameter\c!foregroundcolor} +% \hshow{\framedparameter\c!backgroundcolor} + + + + + + + + + + + + + + +\<<< +\NewConfigure{-@@ly}{2} +>>> + + + +\<<< +\v!chapter +>>> + +\<<< +\v!section +>>> + +\<<< +\v!subsection +>>> + +\<<< +\v!subsubsection +>>> + +\<<< +\v!subsubsubsection +>>> + +\<<< +\v!subsubsubsubsection +>>> + + + + + + + +\<<< +\v!hoofdstuk +>>> + +\<<< +\v!paragraaf +>>> + +\<<< +\v!sub \v!paragraaf +>>> + +\<<< +\v!sub \v!sub \v!paragraaf +>>> + +\<<< +\v!sub \v!sub \v!sub \v!paragraaf +>>> + +\<<< +\v!sub \v!sub \v!sub \v!sub \v!paragraaf +>>> + + + +\<<< +\Configure{sectie} + {\gHAdvance \sec:Level by 1\relax + \ifnum \sec:Level=1 + \ifvmode \IgnorePar\fi \EndP + \HCode{
        }% + \else + \ifvmode \IgnorePar\fi + \HCode{}% + \fi + } + {\ifnum \sec:Level=1 + \ifvmode \IgnorePar\fi \EndP + \HCode{
        }% + \else + \ifvmode \IgnorePar\fi + \HCode{
        }% + \fi + \gHAdvance \sec:Level by -1\relax + } +\HAssign\sec:Level=0 +>>> + + + + +\<<< +\def\:tmp#1#2{% + \ConfigureMark{#1} + {\HCode{}\finalsectionnumber + \HCode{}} + \Configure{#1}% + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<#2 class="#1Head"\a:LRdir>}\NoFonts + \TitleMark\space\HtmlParOff + \bgroup + \let\setstrut=\empty + \let\begstrut=\empty + \let\endstrut=\empty + } + {\egroup + \EndNoFonts \HCode{}\HtmlParOn + \IgnoreIndent \par \ShowPar} + \Configure{#1TITLE+}{\finalsectionnumber\space##1} + \ifx \end:secs\empty \else + \edef\:temp{\noexpand\Configure{end#1}{\end:secs}}\:temp + \fi + \edef\end:secs{\end:secs,#1}% + \NewConfigure{#1-ko}{2} +} +\def\end:secs{} +\def\:tempd#1{\edef\:temp{\noexpand\:tmp{#1}}\:temp} + + \:tempd{|}{h1} + \:tempd{|}{h2} + \:tempd{|}{h3} + \:tempd{|}{h4} + \:tempd{|}{h5} + \:tempd{|}{h5} +>>> + + + + +\<<< +\Configure{placecontent} + {\ifvmode \IgnorePar\fi \EndP + \def\toc:br{\def\toc:br{\HCode{
        }}}% + \HCode{
        }\IgnorePar} + {} + {\IgnorePar\EndP\HCode{
        }\ShowPar} + {} {} +\Configure{contenthead} + {\ifvmode \IgnorePar\fi \EndP \HCode{

        }\NoFonts} + {\ifvmode \IgnorePar\fi \EndNoFonts \HCode{

        }\par} +>>> + + + +\<<< +\ConfigureToc{part} + {\toc:br + \HCode{}} + {\HCode{}\ } + {} + {\HCode{}} +>>> + + + + +\<<< +\ConfigureToc{chapter} + {\toc:br + \HCode{}} + {\HCode{}\ } + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{section} + {\toc:br + \HCode{}} + {\HCode{}\ } + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsection} + {\toc:br + \HCode{}} + {\HCode{}\ } + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsubsection} + {\toc:br + \HCode{}} + {\HCode{}\ } + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsubsubsection} + {\toc:br + \HCode{}} + {\HCode{}\ } + {} + {\HCode{}} +>>> + + +\<<< +\ConfigureToc{subsubsubsubsection} + {\toc:br + \HCode{}} + {\HCode{}\ } + {} + {\HCode{}} +>>> + + + +\<<< +\Configure{narrower} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} +\Css{div.narrower {margin-left:2em; margin-right:2em;}} +>>> + + + +\<<< +\Configure{midaligned} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }\par} +\Configure{leftaligned} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }\par} +\Configure{rightaligned} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }\par} +\Css{div.midaligned {text-align:center;}} +\Css{div.leftaligned {text-align:left;}} +\Css{div.rightaligned {text-align:right;}} +>>> + + +\<<< +\Configure{startstop} + {\ifvmode \IgnorePar \EndP + \HCode{
        }\par + \def\end:startstop{\ifvmode \IgnorePar \EndP \fi + \HCode{
        }\par}% + \else + \HCode{}% + \def\end:startstop{\ifvmode \IgnorePar \HCode{}\par + \else \HCode{}\fi}% + \fi} + {\end:startstop} +>>> + + +\<<< +\Configure{description-item} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        +
        }\everypar{}} + {\HCode{
        }\everypar{\HtmlPar}\par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} +>>> + +\<<< +\Configure{description-word} + {\HCode{}} + {\ifvmode \IgnorePar \HCode{}\par + \else \HCode{}\fi} +>>> + + + + + +\<<< +\Configure{dolist} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} +>>> + +\<<< +\Configure{itemgroup} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
        }\let\end:dd=\empty} + {\ifvmode\IgnorePar\fi \EndP \end:dd \HCode{
        }} +\Configure{head-listitem} + {\ifvmode\IgnorePar\fi \EndP + \end:dd \HCode{
        }} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
        }\def\end:dd{\HCode{
        }}} +\Configure{symbol-listitem} + {\ifvmode\IgnorePar\fi \EndP + \end:dd \HCode{
        }} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
        }\def\end:dd{\HCode{
        }}} +\Configure{other-listitem} + {\ifvmode\IgnorePar\fi \EndP + \end:dd \HCode{
        }} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
        }\def\end:dd{\HCode{
        }}} +>>> + + + + +\<<< +\Configure{itemize-group} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }\global\let\end:dd=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} +\Configure{itemize-other-item} + {\ifvmode \IgnorePar\fi \EndP + \HCode{\ifx\end:dd\empty\else \fi
        }\global\let\end:dd=\relax} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }\par} +\Css{dd p{margin-top:-1.2em; margin-bottom:1.7em;}} +>>> + + +\<<< +\HAssign\fn:c=0 +\Configure{footnote} + {\HPage{}} + {\EndHPage{}} + {\HCode{}\Link{}{fnc-\fn:c}} + {\EndLink\HCode{}} +\Configure{footnotemark} + {\HCode{}\gHAdvance\fn:c by 1 \Link{fnc-\fn:c}{}} + {\ifvmode\IgnorePar\fi \EndLink\HCode{}} +>>> + + +\<<< +\Configure{typing} + {\ifvmode \IgnorePar\fi \EndP \par \ShowPar + \def\verb:par{% + \HCode{|
        }% + \gdef\verb:par{\HCode{
        }}}% + } + {\ifvmode \IgnorePar\fi \HCode{
        }\par} + {\verb:par} + {\HCode{\string&}\HChar{-35}\HCode{x00A0;}} +\Css{div.typing + {font-family: monospace,monospace; white-space: nowrap; }} +>>> + + +\<<< +\Configure{plaatsblok} + {\ifvmode \IgnorePar\fi \EndP\HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP\HCode{
        }} +\Configure{caption} + {\HCode{}} {\HCode{}} + {\HCode{}} {\HCode{}} +>>> + +Q. Where placefigure is declared? + +\<<< +\NewConfigure{figure}{2} +\Configure{figure} + {\ifvmode \IgnorePar\fi \EndP\HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP\HCode{
        }} +\Css{div.figure {border-top:solid black 1px; border-bottom:solid black 1px;}} +>>> + + +\<<< +\Configure{externalfigure}{\Picture[fig]} +\Configure{placefloat} + {\ifvmode\IgnorePar\fi \EndP + \HCode{
        }\IgnorePar } + {\ifvmode\IgnorePar\fi \EndP\HCode{
        }} +\Css{.place-float .framed-border{ border:0px;}} +\Css{.place-float .framed-border .framed-border{ border:1px solid black;}} +\Css{.place-float { border-top:1px black solid; + border-bottom:1px black solid; + margin: 1em; + padding-top: 5px; + padding-bottom: 5px; + }} +>>> + +\<<< +\Configure{figure-li} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }\par\IgnorePar} + {\HCode{}} + {\HCode{
        }} +>>> + +% \Configure{-@@kjfigure} +% {\HCode{}} +% {\HCode{}} + + + +\<<< +\Configure{title-ko} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }% + \def\end:ko{\ifvmode \IgnorePar\fi \EndP \HCode{
        }}\bgroup + \aftergroup\end:ko + \Configure{title-ko}{\bgroup}{\egroup}% + } + {\egroup } +>>> + + + +%%%%%%%%%%%%% +\subsection{Tables} +%%%%%%%%%%%%% + + + + +\<<< +\Configure{\v!tabulate} + {\ifvmode \IgnorePar\fi + \EndP \HCode{}} + {\ifvmode\IgnorePar\fi\HCode{
        }\par} + {\HCode{}} + {\ifvmode \IgnorePar\fi \HCode{}} + {\HCode{}} + {\HCode{}} +\Css{table.tabulate td {padding-left:0.4em; padding-right:0.4em;}} +>>> + + +\<<< +\Configure{bTABLE} + {\ifvmode \IgnorePar \fi \EndP + \PushStack\Table:Stck\TableNo + \gHAdvance\Next:TableNo by 1 + \global\let\TableNo=\Next:TableNo + \HCode{}} + {\ifvmode \IgnorePar \fi + \HCode{
        }\PopStack\Table:Stck\TableNo } + {\ifvmode \IgnorePar \fi \HCode{}} + {\ifvmode \IgnorePar \fi \HCode{}} + {\expandafter\ifx \csname bTBL\rowTBL,\colTBL\endcsname\relax + \let\need:endTD\relax + \ifvmode \IgnorePar \fi \HCode{}% + \Configure{framed} + {\Css{td\#TBL-\TableNo-\rowTBL-\colTBL{ + padding-left:5pt; padding-right:5pt; border:solid black 1px; + }}}% + {}% + \fi + } + {\ifvmode \IgnorePar \fi \EndP + \ifx \need:endTD\def + \HCode{} + \else + \HCode{-->} + \fi + } +\def\bTBL:sty#1#2{% + \ifnum #1>1 \space rowspan="#1"\fi + \ifnum #2>1 \space colspan="#2" style="text-align:center;"\fi +} +\Css{table.bTABLE p{margin-top:0em; margin-bottom:0em;}} +\Css{table.bTABLE{margin-left:10\%; margin-right:10\%; + margin-top:1em; margin-bottom:1em; + }} +\Css{table.bTABLE {border-spacing:0px; + border-top: solid black 1px; + border-bottom: solid black 1px; }} + +>>> + + +\<\><<< +\Configure{bTABLE} + {\ifvmode \IgnorePar \fi \EndP + \PushStack\Table:Stck\TableNo + \gHAdvance\Next:TableNo by 1 + \global\let\TableNo=\Next:TableNo + \HCode{}} + {\ifvmode \IgnorePar \fi + \HCode{
        }\PopStack\Table:Stck\TableNo } + {\ifvmode \IgnorePar \fi \HCode{}} + {\ifvmode \IgnorePar \fi \HCode{}} + {\ifTag{cell-\TableNo-\rowTBL-\colTBL}% + {\tmp:cnt=\LikeRef{cell-\TableNo-\rowTBL-\colTBL}}{\tmp:cnt=1}% + \HCode{1 + colspan="\the\tmp:cnt" + style="text-align:center;" + \fi>}% + \let\col:TBL\colTBL + \Configure{framed} + {\Css{td\#TBL-\TableNo-\rowTBL-\colTBL{ + padding-left:5pt; padding-right:5pt; border:solid black 1px; + }}}% + {}% + } + {\tmp:cnt=\colTBL + \advance\tmp:cnt by - \col:TBL + \ifnum \tmp:cnt>1 + \Tag{cell-\TableNo-\rowTBL-\col:TBL}{\the\tmp:cnt}% + \fi + \ifvmode \IgnorePar \fi \EndP + \HCode{}} +\Css{table.bTABLE {border-spacing:0px; + border-top: solid black 1px; + border-bottom: solid black 1px; }} +>>> + + + + + + +\<<< +\Configure{table} + {\PushStack\Table:Stck\TableNo + \PushStack\Row:Stck\HRow \HAssign\HRow=0\relax + \PushStack\Col:Stck\Prev:Col + \gHAdvance\Table:No by 1\relax + \HAssign\TableNo=\Table:No\relax + \ifvmode \IgnorePar\fi \EndP\halignTB{table}\putVBorder +} + {\HCode{}% + \PopStack\Table:Stck\TableNo + \PopStack\Row:Stck\HRow + \PopStack\Col:Stck\Prev:Col + } + {\gHAdvance\HRow by 1 + \HCode{}% + \currentTABLEcolumn=0 \gHAssign\Prev:Col=0 } + {\HCode{}} + {\HAssign\HCol=\the\currentTABLEcolumn\relax + \HAssign\HMultispan=\HCol\relax + \HAdvance\HMultispan by -\Prev:Col\relax + \gHAssign\Prev:Col=\HCol\relax + \HAdvance\HCol by 1\relax + \ifnum \HMultispan>1 \HAdvance\HCol by 1 + \HAdvance\HCol by -\HMultispan\relax \fi + \HCode{\Hnewline1 colspan="\HMultispan" \fi >}% +\gdef\dd:table{% + \gdef\dd:table{}% + \x:tableCell + \d:table}% +\def\x:tableCell{\e:tableCell \global\let\x:tableCell=\empty}% +} + {\HCode{}} + +\HAssign\Table:No=0 +\HAssign\TableNo=0 +\HAssign\Prev:Col=0 +\HAssign\HRow=0 +>>> + + +\<<< +\Configure{tableCell} + {\e:table\HCode{
        }\ShowPar\par} + {\e:table\HCode{
        }\ShowPar\par} + {\e:table\HCode{
        }\ShowPar\par} + {\e:table\HCode{
        }\ShowPar\par} + {\ifvmode \IgnorePar\fi \EndP\HCode{
        }\f:table} +>>> + + +\<<< +\let\VBorder\empty \let\AllColMargins\empty +\Configure{VBorder} + {\let\VBorder\empty + \let\AllColMargins\empty + \global\let\GROUPS\empty + \HAssign\NewGroup = 0 + } + {% + \let\:temp\TableNo \let\TableNo=\relax + \edef\VBorder{\VBorder\ifnum \NewGroup> 0 \fi}% + \let\TableNo\:temp + \HAssign\NewGroup = 0 + \gdef\GROUPS{rules="groups"}% + } + {\Advance:\NewGroup by 1 + \let\:temp\TableNo \let\TableNo=\relax + \ifnum \NewGroup=1 \edef\VBorder{\VBorder}\fi + \edef\VBorder{\VBorder}\xdef\AllColMargins{\AllColMargins1}% + \let\TableNo\:temp + } + {% + \let\:temp\TableNo \let\TableNo=\relax + \edef\AllColMargins{\AllColMargins 0}% + \let\TableNo\:temp + } +\Css{table.table td {vertical-align:top;}} +>>> + +\<<< +\Css{table.table td { padding-left:3pt; padding-right:3pt; }} + +\Configure{halignTB}{\HCode{}} +\Configure{halignTB<>}{table}{\HCode{id="TBL-\TableNo" class="table"\Hnewline + \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +>>> + +\<<< +\Configure{TABLElongrule}{\HCode{
        }} +\Configure{TableHL} + {\TABLEnoalign{% + \HCode{
        }% +\tmp:cnt=\maxTABLEcolumn +\advance\tmp:cnt by 2 +\HCode{}% + \HCode{}}% +} +>>> + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {l}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {c}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {r}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ style="vertical-align:top; white-space:nowrap;"}} + {=}{\HCode{ style="vertical-align:baseline; white-space:nowrap;"}} + {||}{\HCode{ style="vertical-align:middle; white-space:nowrap;"}} + {_}{\HCode{ style="vertical-align:bottom; white-space:nowrap;"}} + {p}{\HCode{ style="white-space:normal; text-align:left;"}% + \Protect\a:HColWidth} + {m}{\HCode{ style="white-space:nowrap; + text-align:left; vertical-align:middle;"}} + {b}{\HCode{ style="white-space:nowrap; text-align:left; + vertical-align:baseline;"}} + {} +>>> + + +\<<< +\Configure{index} + {\Link{}{in-\nextinternalreference}\EndLink} +\Configure{indexpage}{% + \gHAdvance\Idx:No by 1 #1% + {#2}% + {#3}% + {#4}% + {\Link{in-#3}{}\Idx:No\EndLink}} +\HAssign\Idx:No = 0 +>>> + +\<<< +\Configure{indexchar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + {\HCode{
        }\par} +\Css{div.indexchar{margin-top:0.2em; margin-bottom:0.1pt;}} +>>> + +\<<< +\Configure{index-env} + {\ifvmode \IgnorePar\fi \EndP\HCode{
        }\par} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }\par} +\Css{div.index-env p{margin-top:0em; margin-bottom:0em;}} +\NewConfigure{-@@idindex}{2} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{letters} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{g-brief} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }% + \let\sv:@imakebox\@imakebox + \let\sv:br=\\ \def\\{\HCode{
        }}% + \let\:clearpage\clearpage + \def\clearpage{\let\clearpage\:clearpage + \ifvmode \IgnorePar\fi \EndP + \HCode{

        }% + \IgnorePar + }% + \let\brf:par\par + \def\@imakebox[##1][##2]##3{% + \HCode{}% + \def\par{\let\par\brf:par + \ifvmode \IgnorePar\fi \EndP + \HCode{
        }% + \bgroup \let\\=\sv:br \let\@imakebox\sv:@imakebox + \let\par\sv:par + ##3% + \egroup + \HCode{
        }}% + }% + } + {\let\\=\sv:br \let\@imakebox\sv:@imakebox + \ifvmode \IgnorePar\fi \EndP \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} +\Css{table.date {width:100\%; margin-top:2em;}} +\Css{table.date td{white-space: nowrap;}} +>>> + +\<<< +\Configure{letterfoot} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} + {} + {\HCode{
        }} +\Configure{letterhead} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + {\HCode{}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} + {\HCode{
        }} +\Css{.letterfoot .tabular {text-align: left; margin-top:4em; }} +\Css{table.from {width:100\%; margin-bottom:2em;}} +\Css{table.from .address table {width:100\%;}} +\Css{.makebox-r {text-align:right;}} +>>> + +\<<< +\Configure{datumtext} + {\HCode{}} + {\HCode{}} +\Configure{datum} + {\HCode{}} + {\HCode{}\IgnorePar} +\Configure{anrede} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} + {\HCode{
        }} +\Configure{betreff} + {\ifvmode \IgnorePar\fi \EndP\HCode{
        }} + {\HCode{
        }} +\Css{.betreff{margin-top:2em; margin-bottom:1em;}} +\Configure{gruss} + {\HCode{}} + {\HCode{}} +\Configure{unterschrift} + {\HCode{}} + {\HCode{}} +\Configure{anlagen} + {\HCode{}} + {\HCode{}} +\Configure{verteiler} + {\HCode{}} + {\HCode{}} +\Configure{sprache} + {\HCode{}} + {\HCode{}} +\Configure{telefontex} + {\HCode{}} + {\HCode{}} +\Configure{telefaxtext} + {\HCode{}} + {\HCode{}} +\Configure{telextext} + {\HCode{}} + {\HCode{}} +\Configure{emailtext} + {\HCode{}} + {\HCode{}} +\Configure{httptext} + {\HCode{}} + {\HCode{}} +\Configure{banktext} + {\HCode{}} + {\HCode{}} +\Configure{blztext} + {\HCode{}} + {\HCode{}} +\Configure{betrefftext} + {\HCode{}} + {\HCode{}} +\Configure{ihrzeichentext} + {\HCode{}} + {\HCode{}} +\Configure{ihrschreibentext} + {\HCode{}} + {\HCode{}} +\Configure{meinzeichentext} + {\HCode{}} + {\HCode{}} +\Configure{unserzeichentext} + {\HCode{}} + {\HCode{}} +\Configure{anlagen} + {\HCode{}} + {\HCode{}} +\Configure{adresse} + {\HCode{}} + {\HCode{}} +\Configure{bank} + {\HCode{}} + {\HCode{}} +\Configure{blz} + {\HCode{}} + {\HCode{}} +\Configure{email} + {\HCode{}} +\Configure{gruss} + {\HCode{}} + {\HCode{}} +\Configure{grussskip} + {\HCode{}} + {\HCode{}} +\Configure{http} + {\HCode{}} + {\HCode{}} +\Configure{ihrschreiben} + {\HCode{}} + {\HCode{}} +\Configure{ihrzeichen} + {\HCode{}} + {\HCode{}} +\Configure{konto} + {\HCode{}} + {\HCode{}} +\Configure{land} + {\HCode{}} + {\HCode{}} +\Configure{meinzeichen} + {\HCode{}} + {\HCode{}} +\Configure{name} + {\HCode{}} + {\HCode{}} +\Configure{ort} + {\HCode{}} + {\HCode{}} +\Configure{postvermerk} + {\HCode{}} + {\HCode{}} +\Configure{retouradresse} + {\HCode{}} + {\HCode{}} +\Css{div.retouradresse { margin-bottom:2em; }} +\Configure{strasse} + {\HCode{}} + {\HCode{}} +\Configure{telefax} + {\HCode{}} + {\HCode{}} +\Configure{telefon} + {\HCode{}} + {\HCode{}} +\Configure{telex} + {\HCode{}} + {\HCode{}} +\Configure{unterschrift} + {\HCode{}} + {\HCode{}} +\Configure{verteiler} + {\HCode{}} + {\HCode{}} +\Configure{zusatz} + {\HCode{}} + {\HCode{}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{mwcls} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{@begin}{theindex}{\section*{\indexname}} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }\let\end:theidx\empty} + {\end:theidx\HCode{
        }} + {} {\HCode{
        }\hfil\break} + {\ \ \ \ } {\HCode{
        }\hfil\break} + {\ \ \ \ \ \ \ \ } {\HCode{
        }\hfil\break} + {\hbox{\end:theidx\HCode{

        }}% + \def\end:theidx{\HCode{

        }}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Into Columns} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\def\:temp#1index=#2,#3|{% + \ifnum #2>1 |\fi + \def\:temp{#2}% +} +\expandafter\:temp\Preamble,index=0,| +\ifnum \:temp<2 + | +\else + | +\fi +>>> + + +The \verb=\Configure{IndexColumns}= instruction is to allow documents +that have more than one index to employ different number of columns. +The `index=i' provides the initial setting. + + +\<<< +\Log:Note{for i-columns index, + use the command line option `index=i' (e.g., index=2)} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }\let\end:theidx|=\empty} + {\end:theidx\HCode{
        }} + {\hbox\bgroup\HCode{}} + {\HCode{
        }\egroup\hfill\break} + {\hbox\bgroup\HCode{}\ \ \ \ } + {\HCode{
        }\egroup\hfill\break} + {\hbox\bgroup\HCode{}\ \ \ \ \ \ \ \ } + {\HCode{
        }\egroup\hfill\break} + {\hbox{\end:theidx\HCode{

        }}% + \def\end:theidx{\HCode{

        }}} +\Css{.index-item, .index-subitem, .index-subsubitem {display:block}} +>>> + + + +\<<< +\Log:Note{for i-columns index, + use the command line option `index=i' (e.g., index=2)} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }\let\end:theidx|=\empty} + {\end:theidx\HCode{
        }} + {} {\hfil\break\HCode{
        }} + {\ \ \ \ } {\hfil\break\HCode{
        }} + {\ \ \ \ \ \ \ \ } {\hfil\break\HCode{
        }} + {\hbox{\end:theidx\HCode{

        }}% + \def\end:theidx{\HCode{

        }}} +>>> + +\<<< +\NewConfigure{IndexColumns}{1} +\Configure{IndexColumns}{#2} +>>> + + +\<<< +\Log:Note{the number of columns + requested by the option `index=\a:IndexColumns' can + be modified through the command \string\Configure{IndexColumns}{i}} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }% + |\let\end:theidx|=\empty} + {\end:theidx + |\HCode{
        }} + {\hbox\bgroup\HCode{}} + {\HCode{
        }\egroup\hfill\break} + {\hbox\bgroup\HCode{}\ \ \ \ } + {\HCode{
        }\egroup\hfill\break} + {\hbox\bgroup\HCode{}\ \ \ \ \ \ \ \ } + {\HCode{
        }\egroup\hfill\break} + {%\ifvmode \EndP\fi + % \hbox{\end:theidx\HCode{

        }}% + % \def\end:theidx{\HCode{

        }} + \parindent=0pt + }% +\Css{.index-item, .index-subitem, .index-subsubitem {display:block}} +\Css{br.index-segment:first-child {display:none}} +\Css{.index-item br, + .index-subitem br, + .index-subsubitem br {display:none}} +>>> + + + + + +\<<< +\Log:Note{the number of columns + requested by the option `index=\a:IndexColumns' can + be modified through the command \string\Configure{IndexColumns}{i}} +\Configure{theindex} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }% + |\let\end:theidx|=\empty} + {\end:theidx + |\HCode{
        }} + {} {\hfil\break\HCode{
        }} + {\ \ \ \ } {\hfil\break\HCode{
        }} + {\ \ \ \ \ \ \ \ } {\hfil\break\HCode{
        }} + {%\ifvmode \EndP\fi + % \hbox{\end:theidx\HCode{

        }}% + % \def\end:theidx{\HCode{

        }} + \parindent=0pt + }% +>>> + + +\<<< +\Configure{HColumns} + {\IgnorePar\EndP + \HCode{}} + {\HCode{
        }} + {\HCode{}\ColMag{1.1}} + {\IgnorePar\EndP\HCode{}} + \HColumns{\a:IndexColumns}% + \everypar{\HtmlPar}% + \Configure{HtmlPar}{}{\HCode{
        }}{}{}% + \par\ShowPar +>>> + +\<<< +\ifvmode\IgnorePar\fi \EndP\EndHColumns +>>> + +\<<< +\def\add:col{\Advance:\:cols -1 \HAdvance\HCol 1\relax + \ifnum \:cols>0 + \c:Cols \vsplit0 to \tmp:dim \d:Cols \expandafter\add:col + \fi} +\NewConfigure{HColumns}{4} +\def\c:Cols{\edef\sv:dim{\the\tmp:dim}\c:HColumns} +\def\d:Cols{\d:HColumns \tmp:dim\sv:dim } +\def\ColMag#1{\tmp:dim #1\tmp:dim} +\def\HColumns#1{% + \a:HColumns + \HAssign\:cols#1 \setbox0=\vbox\bgroup + \divide\hsize #1 } +\def\EndHColumns{\egroup \HAssign\HCol0 + \tmp:dim\ht0 \advance\tmp:dim \dp0 \divide\tmp:dim \:cols + \add:col \c:Cols \box0 \d:Cols \b:HColumns} +>>> + + + +%%%%%%%%%%%%% +\section{Glossary} +%%%%%%%%%%%%% + +\<<< +\Configure{gloskip}{list}{\item[]\HCode{

        }} +\Configure{gloskip}{altlist}{\item[]\HCode{

        }} +\Configure{gloskip}{super}{\cr\HCode{

        }} +\Configure{gloskip}{long}{\cr\HCode{

        }} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Captions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{caption}{\HCode{\if:nopar \else
        \fi} + \:xhtml{\IgnorePar\EndP}\HCode{
        }} + {: } {\HCode{}} + {\HCode{
        }\HCode{}% +} +\Css{div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; + text-align:left;}} +\Css{div.caption span.id{font-weight: bold; white-space: nowrap; }} +>>> + +\<\><<< +\Configure{caption}{\HCode{\if:nopar \else
        \fi} + \:xhtml{\IgnorePar\EndP}\HCode{
        }} + {: } {\HCode{}} + {\HCode{
        }|} +\Css{.caption td.id{font-weight: bold; white-space: nowrap; }} +\Css{table.caption {text-align:center;}} +>>> + + +\<<< +\Configure{caption}{\HCode{\if:nopar \else
        \fi} + \:xhtml{\IgnorePar\EndP}\HCode{
        }} + { } {\HCode{}} + {\HCode{
        }|} +\Css{table.caption {text-align:left;}} +>>> + +\<<< +\Configure{caption}{\HCode{\if:nopar \else
        \fi} + \:xhtml{\IgnorePar\EndP}\HCode{
        }} + {: } {\HCode{}} + {\HCode{
        }|% +} +\Css{.caption td.id{font-weight: bold; white-space: nowrap; }} +\Css{div.caption {text-align:center;}} +>>> + +\<<< +\Configure{caption} + {\:xhtml{\IgnorePar\EndP}\HCode{
        }}{}{\HCode{
        }} +\Css{div.caption {text-align:center;}} +>>> + +\<<< +\Configure{caption} + {\HCode{
        }} + {\HCode{}: }{}{\HCode{
        }}% +>>> + + +\<<< +\HCode{}% +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Originating Packages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +| +\:CheckOption{fn-in}\if:Option + | +\else + \Log:Note{for inline footnotes use + command line option `fn-in'} + | +\fi +>>> + + + + + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + \Log:Note{for inline footnotes, use + the command line option `fn-in'} + | +\fi +>>> + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + + + + + +%%%%%%%%%%%%%%%% +\subsection{In-Line LaTeX} +%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{mouseover} \if:Option + | + | + | + | +\else + | + | + | +\fi +>>> + + +\<<< +\Configure{footnotetext} + {|% + ||% + \NoFonts + \Tag{|-bk}{}% + \special{t4ht@(}% + } + {\special{t4ht@)}\EndNoFonts + ||} + {\expandafter\global\expandafter + \let\csname (|)\endcsname\def + |} +>>> + +\<<< +\Configure{footnotemark} + {||% + \NoFonts + \Tag{|}{}} + {\EndNoFonts + ||% + \expandafter\global\expandafter + \let\csname (|-bk)\endcsname\def} +>>> + + + + +\<<< +\Configure{footnotetext} + {|% + |% + ||% + \NoFonts \Tag{|-bk}{}% + } + {\EndNoFonts ||} + {\expandafter\global\expandafter + \let\csname (|)\endcsname\def + |% + |} +>>> + +\<<< +\Configure{footnotemark} + {||% + \NoFonts + \Tag{|}{}} + {\EndNoFonts + ||% + \expandafter\global\expandafter + \let\csname (|-bk)\endcsname\def} +>>> + + + + + + + + + + + + + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \Link{|-bk}{}% + \else + \Link{|-bk}{|}% + \fi + } + {\expandafter\ifx\csname (|)\endcsname\def + \else \Link{}{|}\fi + }% +>>> + +\<<< +\ifTag{|} + {\EndLink} + {\expandafter\ifx\csname (|)\endcsname\def + \else \EndLink\fi + }% +>>> + + + +\<<< +|% +\ifTag{|-bk} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \Link[ |\Hnewline + ]{|}{}% + \else + \Link[ |\Hnewline + ]{|}{|-bk}% + \fi + } + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \Link[ |\Hnewline + ]{}{|-bk}\fi + }% +>>> + + + + + + + +\<<< +\ifTag{|-bk} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \Link{|}{}% + \else + \Link{|}{|-bk}% + \fi + } + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \Link{}{|-bk}\fi + }% +>>> + +\<<< +\ifTag{|-bk} + {\EndLink} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \EndLink\fi + }% +>>> + + + + +\<<< +\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi +>>> + +\<<< +\EndP\egroup\RecallEndP +>>> + + +\<<< +\ifvoid \fn:box \else + \expandafter \ifx \csname fn:box\body:level\endcsname\relax + \csname newbox\expandafter\endcsname + \csname fn:box\body:level\endcsname + \fi + \global\expandafter\setbox\csname fn:box\body:level\endcsname= + \vbox{\csname unvbox\endcsname\fn:box}% +\fi +\gHAdvance\body:level by 1 +>>> + +\<<< +\gHAdvance\body:level by -1 +\expandafter \ifx \csname fn:box\body:level\endcsname\relax \else + \global\setbox\fn:box= + \vbox{\expandafter\ifvoid \csname fn:box\body:level\endcsname \else + \csname unvbox\expandafter\endcsname + \csname fn:box\body:level\endcsname\fi}% +\fi +>>> + +\<<< +\ifvmode \IgnorePar\fi\EndP +\ifvoid \fn:box\else + \HCode{
        }\box\fn:box\HCode{
        } + \IgnorePar\EndP +\fi +>>> + + +\<<< +(L >>> + +\<<< +)Q>>> + + + +\<<< +\Configure{BODY} + {|\:xhtml{\SaveEndP}\IgnorePar + \HCode{}|\ShowPar\par} + {|% + \relax \ifnum \FileNumber=1 + |% + \fi + \HCode{\Hnewline + }\:xhtml{\RecallEndP}|}% +>>> + +\<<< +\Configure{BODY} + {|\:xhtml{\SaveEndP}\IgnorePar + \HCode{}\ShowPar\par} + {|\HCode{\Hnewline + }\:xhtml{\RecallEndP}|}% +>>> + + +\<<< +\Configure{crosslinks+} + {\IgnorePar\EndP\HCode{|% + }\par\ShowPar} + {|% + \ifvmode \IgnorePar\fi \EndP + \HCode{|% + }\par\ShowPar} +>>> + +\<<< +\Css{div.footnotes{border-top:solid 1px black; + border-bottom:solid 1px black; + padding-bottom:1ex; + padding-top:0.5ex; + margin-right:15\%; margin-top:2ex; + font-style:italic; font-size:85\%;}} +\Css{div.footnotes p{margin-top:0; margin-bottom:0; text-indent:0;}} +\ifx \fn:box\:UnDef \csname newbox\endcsname\fn:box \fi +\HAssign\body:level=0 +>>> + + + + +%%%%%%%%%%%%%%%% +\subsection{Off-Line in latex} +%%%%%%%%%%%%%%%% + + +\<<< +\:CheckOption{mouseover} \if:Option + | + | + | + \AtEndDocument{|} +\else \:CheckOption{frames-fn} \if:Option + | + | + \else + | + | +\fi \fi +>>> + +\<<< +\Configure{footnotetext} + {|% + |\Link{}{|}% + \NoFonts + } + {\EndNoFonts \EndLink|} + {|} +>>> + +\<<< +\Configure{footnotemark} + {||\NoFonts + \Tag{|}{}} + {\EndNoFonts ||} +>>> + +\<<< +\Configure{footnotetext} + {|% + |\Link{}{|}% + \NoFonts + } + {\EndNoFonts \EndLink|} + {|} +>>> + + +\<<< +\Configure{footnotemark} + {||\NoFonts + \Tag{|}{}} + {\EndNoFonts + ||} +>>> + + + +\<<< +\Configure{footnotetext} + {|% + |\Link{}{|}\NoFonts + } + {\EndNoFonts\EndLink|} + {|} +>>> + +\<<< +\Configure{footnotemark} + {||\NoFonts + \Tag{|}{}} + {\EndNoFonts + ||} +>>> + + + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \else \csname a:footnote-text\endcsname\fi + } + {}% +>>> + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \else \csname b:footnote-text\endcsname\fi + } + {}% +\expandafter\global\expandafter + \let\csname (|)\endcsname\def +>>> + + + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \else \csname a:footnote-text\endcsname\fi + } + {}% +>>> + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \else \csname b:footnote-text\endcsname\fi + } + {}% +\expandafter\global\expandafter + \let\csname (|)\endcsname\def +>>> + + +\<<< +\ifTag{||} + {\Link{|}{}} + {}% +>>> + +\<<< +\ifTag{||} + {\EndLink} + {}% +>>> + + +\<<< +\ifTag{||} + {|% + \leavevmode \Link[ |% + \Hnewline]{|}{}} + {}% +>>> + +\<<< +\ifTag{||} + {\EndLink} + {}% +>>> + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \else + \Configure{!BODY}{id="|" }% + \BeginHPage[|]{ }% + \Configure{!BODY}{}% + \fi + } + {}% +>>> + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \else + \close:fn\EndHPage{} + \fi + } + {}% +\expandafter\global\expandafter + \let\csname (|)\endcsname\def +>>> + + +\<<< +\def\close:fn{\HPage{}\Link{}{hide-fn}\EndLink\EndHPage{}% + \gdef\close:fn{\rightline{\Link{hide-fn}{}@\EndLink}}\close:fn} +>>> + +% \Css{body\#|{font-size:80\%;}}% + + +\<<< +\ifTag{||} + {\Link[\RefFile{|} + target="|"]{}{}} + {}% +>>> + +\<<< +\ifTag{||} + {\EndLink} + {}% +>>> + + + + + + + +\<<< +fn\FNnum x\minipageNum +>>> + + + +\<<< +\csname a:footnote-mark\endcsname +>>> + +\<<< +\csname b:footnote-mark\endcsname +>>> + +\<<< +\csname a:thank-mark\endcsname +>>> + +\<<< +\csname b:thank-mark\endcsname +>>> + +\<<< +\NewConfigure{footnote-mark}{2} +\NewConfigure{thank-mark}{2} +\Configure{footnote-mark} + {\HCode{}} + {\HCode{}} +\Configure{thank-mark} + {\HCode{}} + {\HCode{}} +\Css{span.thank-mark{ vertical-align: super }} +>>> + + + +\<<< +\NewConfigure{footnote-text}{2} +>>> + +\<<< +\Configure{footnote-text} + {\HPage{}\HCode{
        }\par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }\EndHPage{}} +>>> + +\<<< +\Configure{footnote-text} + {\HPage{}\HCode{
        }|} + {\ifvmode \IgnorePar\fi \EndP + |\HCode{
        }\EndHPage{}} +>>> + +\<<< +% \Css{span.footnote-mark{ vertical-align: super }} +\Css{span.footnote-mark sup.textsuperscript, + span.footnote-mark a sup.textsuperscript{ font-size:80\%; }} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{AMS} +%%%%%%%%%%%%%%%% + + +\<<< +\:CheckOption{fn-in}\if:Option + \:CheckOption{mouseover}\if:Option + |% + \else + |% + \fi +\else + \:CheckOption{mouseover}\if:Option + |% + \else \:CheckOption{frames-fn}\if:Option + |% + \else + |% + \fi \fi +\fi +>>> + +\<<< +\Configure{footnotetext} + {|\HPage{\FNnum}\HCode{
        }\NoFonts} + {\EndNoFonts} + {\HCode{
        }\EndHPage{}|}% +>>> + + +\<<< +|% +>>> + +\<<< +|% +>>> + +\<<< +|% +>>> + +\<<< +|% +>>> + +\<<< +\Css{span.footnote-mark{ vertical-align: super; font-size:80\%; }} +% \Css{span.footnote-mark sup.textsuperscript, +% span.footnote-mark a sup.textsuperscript{ font-size:80\%; }} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{SCR *} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + + +\<<< +\:CheckOption{fn-in}\if:Option + | +\else + | +\fi +>>> + + + +\<<< +% \Css{span.footnote-mark{ vertical-align: super }} +\Css{span.footnote-mark sup.textsuperscript, + span.footnote-mark a sup.textsuperscript{ font-size:80\%; }} +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{Plain} +%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{vfootnote} + {|} + {|} + {|} +>>> + + + + +\<<< +\HCode{}\Link{fn\FNnum}{fn\FNnum-bk}% + \ifx \FNmark\empty +\else \FNmark\fi\EndLink +\HCode{}% +>>> + +\<<< +|% +\HCode{}\Link{fn\FNnum-bk}{fn\FNnum}% +\ifx \FNmark\empty +\else \FNmark\fi +\EndLink\space\HCode{}% +>>> + +\<<< +| +>>> + + + +\<<< +\Configure{vfootnote} + {\HPageButton[fn\FNnum]{\FNmark}} + {\BeginHPage[fn\FNnum]{ }} + {\EndHPage{}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{On Mouse Over} +%%%%%%%%%%%%%%%% + + +\<<< +\expandafter\def\csname c:mouseover-footnote:\endcsname{% + \def\:tempb{footnote}\csname c:mouseover-?:\endcsname} +\Configure{mouseover-footnote} {tex4ht.body,FULLHTML} +>>> + + + + +\<<< +|\let\sv:link=\Link +\def\Link[##1]{\let\Link=\sv:link + \Link[##1 |\Hnewline]}% +>>> + + +\<<< +\mo:args{footnote}{\FNnum}{|}% +>>> + + +\<<< +|% +\HCode{}% +|% +>>> + +\<<< +|% +\HCode{}% +>>> + + + + + + +An alternative css-based approach: + +\begin{verbatim} +\Configure{tableofcontents} + {\IgnorePar\EndP\HCode{
        }\IgnorePar} + {} + {\IgnorePar\EndP\HCode{
        }\ShowPar} + {\HCode{
        }} {} + +\ConfigureToc{section} + {\HCode{
        }} + { \HCode{}} + {} + {\HCode{
        }} +\ConfigureToc{subsection} + {\HCode{
        }} + { \HCode{}} + {} + {\HCode{
        }} +\ConfigureToc{subsubsection} + {\HCode{
        }} + { \HCode{}} + {} + {\HCode{
        }} + +\ConfigureToc{likesection} + {} + {\HCode{
        }} + {} + {\HCode{
        }} +\ConfigureToc{likesubsection} + {} + {\HCode{
        }} + {} + {\HCode{
        }} +\ConfigureToc{likesubsubsection} + {} + {\HCode{
        }} + {} + {\HCode{
        }} + + + +\Css{div.sectionToc { margin-left: 1em; text-indent: -1em; }} +\Css{div.sectionToc span.mark { text-align:right; width: 1em; + padding-right:0.25em; }} + +\Css{div.subsectionToc { margin-left:2.5em; text-indent: -2.5em; }} +\Css{div.subsectionToc span.mark { text-align:right; width: 2.5em; + padding-right:0.25em; }} +\Css{div.likesubsectionToc { margin-left: 2.5em; text-indent: -1.5em; }} + +\Css{div.subsubsectionToc { margin-left: 4.5em; text-indent: -4.5em; }} +\Css{div.subsubsectionToc span.mark { text-align:right; width: 4.5em; + padding-right:0.25em; }} +\Css{div.likesubsubsectionToc { margin-left: 4.5em; text-indent: -2em; }} +\end{verbatim} + +%%%%%%%%%%%%% +\subsection{Other} +%%%%%%%%%%%%% + + +\<<< +\Configure{textsuperscript} + {\HCode{}\bgroup \small} + {\egroup \HCode{}} + +\Configure{textsubscript} + {\HCode{}\bgroup\small} + {\egroup \HCode{}} +>>> + +\<<< +\Configure{textsubscript} + {\HCode{}\bgroup\small} + {\egroup \HCode{}} +>>> + +%%%%%%%%%%%%%%%% +\section{Floats} +%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{subfigure} +%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{subfigure} + {\ifvmode \IgnorePar \fi \EndP + \HCode{
        }} + {\ifvmode \IgnorePar \fi \EndP \HCode{
        }} +\Configure{subfigurecaption} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} + {}{} + {\ifvmode \IgnorePar\fi \EndP \HCode{
        }} +\Css{.subfigcaption {margin-top:1em; + margin-left:1em; text-align:center;}} +\Css{div.subfigure {text-align:center;display:inline-block;}} +>>> + +\subsection{subcaption} + +\<<< +\Configure{subfigure} +{\ifvmode\IgnorePar\fi\EndP% +\HCode{
        }\par\ShowPar% +\Configure{caption}{\ifvmode\IgnorePar\fi\EndP\HCode{
        }}% + {:} {\HCode{}}% + {\HCode{
        }}% +}% +{\ifvmode\IgnorePar\fi\EndP\HCode{
        }}% +\Css{div.subfigure {text-align:center;display:inline-block; max-width:45\%;}} +>>> + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Wrapfig} +%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item + r R - the right side of the text +\item + l L - the left side of the text +\item + i I - the inside edge--near the binding (if ``[twoside]'' document) +\item + o O - the outside edge--far from the binding +\end{itemize} + + +\<<< +\Configure{wrapfloat} + {\ifvmode\IgnorePar\EndP + \HCode{
        }% + \def\endWrap{\ifvmode\IgnorePar\fi\EndP\HCode{
        }\par}% + \else + \HCode{}\bgroup + |% + \def\endWrap{\egroup\HCode{}}% + \fi + } + {\endWrap} +\Css{.caption span.id{font-weight: bold;}} +\Css{ + .wrapfig-r, + .wrapfig-ri, + .wrapfig-ir, + .wrapfig-ro, + .wrapfig-or + {float:right; text-align:left; + margin-left:auto; margin-top:0.5em;} +} +\Css{ + .wrapfig-l, + .wrapfig-li, + .wrapfig-il, + .wrapfig-lo, + .wrapfig-ol + {float:left; text-align:left; + margin-right:auto; margin-top:0.5em;} +} +\Css{.wrapfig-r .caption td.content, + .wrapfig-ri .caption td.content, + .wrapfig-ir .caption td.content, + .wrapfig-ro .caption td.content, + .wrapfig-or .caption td.content, + .wrapfig-l .caption td.content, + .wrapfig-li .caption td.content, + .wrapfig-il .caption td.content, + .wrapfig-lo .caption td.content, + .wrapfig-ol .caption td.content + {white-space: normal; }} +\Css{.wrapfig-r .caption, + .wrapfig-ri .caption, + .wrapfig-ir .caption, + .wrapfig-ro .caption, + .wrapfig-or .caption, + .wrapfig-l .caption, + .wrapfig-li .caption, + .wrapfig-il .caption, + .wrapfig-lo .caption, + .wrapfig-ol .caption + {width:30\%; }} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%% +\subsection{endfloat} +%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{figure}{}{}{}{} +>>> + +\<<< +\Configure{floatingfigure} + {\HCode{}% + \bgroup \Configure{HtmlPar}{}{}{}{}% + \ConfigureEnv{minipage}{\IgnorePar}{}{\IgnorePar}{}% + |% + } + {\egroup \HCode{}} +\Css{.floatingfigure-r { float:right; text-align:left; + margin-top:0.5em; margin-bottom:0.5em; margin-left:0em;}} +\Css{.floatingfigure-l { float:left; text-align:left; + margin-top:0.5em; margin-bottom:0.5em; margin-right:0em; }} +\Css{.caption span.id{font-weight: bold;}} +>>> + + + +%%%%%%%%%%%%%%%% +\section{Make Title} +%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{book-report-article} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +thanks author date and>>> + +\<<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{div.maketitle {text-align:center;}} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; }} +|<maketitle footnote|> +>>> + + + +\<config thanks author date and\><<< +\Configure{|<thanks author date and|>} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +\Css{div.author{white-space: nowrap;}} +>>> + +\<thank for thanks\><<< +\Configure{thank} + {|<thank mark sup|>\Link{tk-\the\c@footnote}{}} + {\EndLink |<thank mark end sup|>} + {\HCode{<br />}\protect\Link{}{tk-\the\c@footnote}\protect + \EndLink |<thank mark sup|>} + {|<thank mark end sup|>} {} +>>> + +\<thanks for thanks p\><<< +\Configure{thank} + {|<thank mark sup|>\Link{tk-\the\c@footnote}{\ifx + \footnote\thanks kt-\the\c@footnote\fi}} + {\EndLink |<thank mark end sup|>} + {\HCode{<p>}\protect\Link{\ifx \footnote\thanks kt-\the\c@footnote + \fi}{tk-\the\c@footnote}|<thank mark sup|>} + {|<thank mark end sup|>\protect\EndLink} + {\HCode{</p>}} +>>> + +\<thanks for thanks EndP\><<< +\Configure{thank} + {\HCode{<sup>}\Link{tk-\the\c@footnote}{\ifx + \footnote\thanks kt-\the\c@footnote\fi}} + {\EndLink\HCode{</sup>}} + {\protect\Link{\ifx \footnote\thanks kt-\the\c@footnote + \fi}{tk-\the\c@footnote}\HCode{<sup>}} + {\HCode{</sup>}\protect\EndLink} + {\ifvmode\IgnorePar\fi\EndP} +>>> + + +\<end-thanks author date and\><<< +\Configure{|<thanks author date and|>} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{RevTeX} +%%%%%%%%%%%%%%%%%%%% + +\<revtex title page\><<< +\ConfigureEnv{abstract}{\:xhtml{\IgnorePar\EndP}\HCode + {<table\Hnewline class="abstract"><tr><td\Hnewline>}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</td></tr></table>}}{}{} +\Css{.abstract p {margin-left:5\%; margin-right:5\%;}} +\Css{table.abstrac {width:100\%;}} + + +|<revtex maketitle footnote|> +\Configure{address} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="address">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} +>>> + + + + + +\<revtex end-thanks author date and\><<< +\Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<br class="and" \a:LRdir/>}} + {\HCode{<br />}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + +\<revtex config thanks author date and\><<< +\Configure{thanks author date and} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +\Css{div.author{white-space: nowrap;}} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{TUG LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<tug proc maketitle\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + |<global HtmlPar|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +>>> + + +\<tug boat maketitle\><<< +\@ifclassloaded{ltugproc}{}{% + \@ifpackageloaded{ltugproc}{}{\Configure{@BODY}{\rtitlex}} +} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP + \def\textSMC##1{##1}% + |<title for TITLE|>% + |<global HtmlPar|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +>>> + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{lncse} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 lncse\><<< +\Configure{institute}{}{}{\HCode{<br />}} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:left;}} +\:CheckOption{fn-in}\if:Option + \Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<brclass="and" />}} + {\HCode{<br />}} +\else + \Configure{thanks author date and} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +\fi + +>>> + +%%%%%%%%%%%%%%%%%%%% +\subsection{Prosper} +%%%%%%%%%%%%%%%%%%%% + + +\<prosper maketitle\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP + {\def\@title{\@Title}|<title for TITLE|>}% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {\NoFonts\IgnorePar \EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{AMS} +%%%%%%%%%%%%%%%%%%% + + + +\<ams art,proc,book\><<< +\Configure{translators} + {\par\IgnorePar\EndP \HCode{<div class="translators">}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP \HCode{</div>}} + {\HCode{<span class="translator">}} + {\HCode{</span>}} +>>> + +\<ams art,proc\><<< +\Css{div.translators {text-align:right; margin-bottom:0.7em;}} +>>> + + + +\<ams art,proc,book\><<< +\Configure{keywords} + {\par\IgnorePar\EndP \HCode{<div class="keywords">}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP\HCode{</div>}} +\Configure{subjclass} + {\par\IgnorePar\HCode{<div class="subjclass">}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP\HCode{</div>}} +\Configure{@maketitle} + {\ifvmode \IgnorePar\fi \EndP + \Tg<div class="submaketitle">\IgnoreIndent} + {\ifvmode \IgnorePar \fi\EndP\Tg</div>} +\Css{div.submaketitle{ text-align:left; margin-top:2em; + border-top: 1px solid black; + border-bottom: 1px solid black; + margin-left:5\%; margin-right:5\%; + font-size:85\%; line-height: 95\%;}} +\Css{div.submaketitle div {margin-top:0.5em; margin-bottom:0.5em; }} +\Css{div.submaketitle p { margin-top:0em; margin-bottom:0em; }} +>>> + +\<ams art,proc,book\><<< +\ConfigureEnv{abstract} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +\ConfigureList{abstract} + {\ifvmode \IgnorePar\fi \EndP \Tg<div class="abstract">\ShowPar} + {\ifvmode \IgnorePar\fi \EndP\Tg</div>} + {\ShowPar\par\HCode{<span class="title">}} + {\HCode{</span>}} +\Configure{setabstract} + {\ifvmode \IgnorePar \fi \EndP} + {\ifvmode \IgnorePar \fi \EndP} +\Css{div.abstract{ margin-top: 2em; text-align:left; + margin-right:15pt; margin-left:15pt; }} +>>> + +\<ams art,proc,book\><<< +\Configure{addresses} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="addresses">}\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{address} + {\HCode{<span class="address-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="address">}} + {\HCode{</span>}} +\Configure{curraddr} + {\HCode{<span class="curraddr-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="curraddr">}} + {\HCode{</span>}} +\Configure{email} + {\HCode{<span class="email-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="email">}} + {\HCode{</span>}} +\Configure{urladdr} + {\HCode{<span class="urladdr-title">}} + {\ifvmode \IgnorePar\fi \HCode{</span><span class="urladdr">}} + {\HCode{</span>}} +\Css{div.addresses p {margin-top:0em; margin-bottom:0em; }} +>>> + + +\<ams art,proc,book\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<ams title for TITLE|>% + \HCode{<div class="maketitle">}% + \ConfigureEnv{center} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi}% + |<footnote for ams title|>% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar \EndP + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar + \bgroup \Configure{HtmlPar}{}{}{}{}} + {\egroup \HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +>>> + + + + +\<ams art,proc\><<< +\Configure{|<thanks author date and|>} + {\par\IgnorePar\EndP \HCode{<div class="thanks" \a:LRdir>}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<div class="authors"><span class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</span></div>}} + {\par\IgnorePar\EndP \HCode{<div class="date" \a:LRdir>}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\lowercase{\HCode{</span><span class="and">}}and~% + \lowercase{\HCode{</span><span>}}} + {\HCode{<br />}} +>>> + +\<ams book\><<< +\Configure{|<thanks author date and|>} + {\par\IgnorePar\EndP \HCode{<div class="thanks" \a:LRdir>}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<div class="authors"><div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div></div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\lowercase{\HCode{</div><div>}}} + {\HCode{<br />}} +\Css{div.addresses{ margin-top:0.5em; }} +>>> + +\<amsdtx maketitle\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\NoFonts\HCode{<h2 class="titleHead"\a:LRdir>}} + {\HCode{</h2>}\EndNoFonts} +\Css{div.maketitle {text-align:center;}} +>>> + +%%%%%%%%%%%%%%%% +\subsection{llncs} +%%%%%%%%%%%%%%%% + +\<configure html4 llncs\><<< +\Configure{email} + {\HCode{<span class="email">}} + {\HCode{</span>}} +\Configure{institute} + {\HCode{<div class="institute">}} + {\HCode{</div>}} +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{aa} +%%%%%%%%%%%%%%%% + +\<configure aa 3.2/4.0t\><<< +\Configure{subtitle institute} + {\HCode{<br /><span class="subtitle">}}{\HCode{</span>}} + {\HCode{<div class="institute">}}{\HCode{</div>}} + {\Tg<sup>}{\Tg</sup>} + {\HCode{<br />}} + +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div style="text-align:center;" >}} + {\HCode{</div>}} + {\NoFonts\IgnorePar \HCode{<h2 class="maketitleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Configure{|<thanks author date and|>} {}{} + {\HCode{<div class="author" style="text-align:center;" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" style="text-align:center;" \a:LRdir>}}{\HCode{</div>}} + {\SPAN:{and}and\EndSPAN:} + {\HCode{<br />}} +\Css{div.maketitle {text-align:center;}} +>>> + +\<configure aa 3.2/4.0t\><<< +\ConfigureEnv{abstract} + {\:xhtml{\IgnorePar\EndP}\HCode {<div class="abstract">}} + {\HCode{</div>}}{}{} + +\Css{div.abstract{text-align:center;}} + +\Configure{makeheadbox} + {\HCode{<table class="makeheadbox" + width="100\%"><tr><td><table><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr><tr><td>}} + {\HCode{</td></tr></table></td><td class="AALogo" width="10\%">}} + {\HCode{</td></tr></table>}} +\Css{.AALogo{font-size:120\%;font-weight: bold; text-align:right;}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{MWC} +%%%%%%%%%%%%%%%% + +\<mwcls configs\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 2|>% + \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{div.maketitle {text-align:center;}} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; }} +\:CheckOption{fn-in}\if:Option + \Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} + +\else + \Configure{thanks author date and} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +\Css{div.author{white-space: nowrap;}} + +\fi +>>> + + +%%%%%%%%%%%%%%%% +\subsection{scr} +%%%%%%%%%%%%%%%% + +\<configure html4 scrbook\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 3|>% + \HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\IgnorePar \EndP + \NoFonts\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +|<maketitle footnote|> +|<scr title page|> +>>> + + +\<configure html4 scrreprt\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 3|>%% + \HCode{<div class="maketitle">}} + {\HCode{</div>}} + {\IgnorePar \EndP + \NoFonts\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +|<scrreprt maketitle footnote|> +|<scr title page|> +>>> + + +\<scr title page\><<< +\ConfigureEnv{titlepage} + {\bgroup + \ifvmode \IgnorePar\fi \EndP + \HCode{<div class="titlepage">}% + \ConfigureEnv{center}{}{}{}{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}% + \egroup} + {} {} +\Configure{dedication} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="dedication" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} +\Css{div.dedication {text-align:center;}} +>>> + + +%%%%%%%%%%%%%%%% +\subsection{ACM} +%%%%%%%%%%%%%%%% + + +\<configure html4 acm-proc-article-sp\><<< +\Configure{toappear} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="toappear">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Configure{boilerplate} + {\HCode{<div class="boilerplate">}} {\HCode{</div>}} +\Configure{conf} + {\HCode{<div class="conf">}} {\HCode{</div>}} +\Configure{confinfo} + {\HCode{<div class="confinfo">}} {\HCode{</div>}} +\Configure{copyrightetc} + {\HCode{<div class="copyrightetc">}} {\HCode{</div>}} +>>> + +\<configure html4 acm-proc-article-sp\><<< +\Configure{thanks} + {\IgnorePar\HCode{<div class="thanks">}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\IgnoreIndent} +\Css{div.thanks{text-align:left; margin-top:1em; margin-bottom:1em;}} +\Configure{subtitle} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h4 class="subtitleHead"\a:LRdir>}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h4>}\IgnoreIndent} +\Css{.subtitleHead{text-align:center;}} +\Configure{title} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h3 class="titleHead"\a:LRdir>}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h3>}\IgnoreIndent} +\Css{.titleHead{text-align:center;}} +\Configure{email}{\HCode{<span class="email">}\IgnorePar\o:email:{#1}\HCode{</span>}} +\Configure{@TITLE}{\let\titlenote=\:gobble} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>} + {} +\Configure{author} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="author">}\ShowPar\par} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\IgnoreIndent} +\Css{div.author{text-align:center; margin-top:1em; margin-bottom:1em;}} +>>> + + + +\begin{verbatim} +\documentclass{sig-alternate} +\begin{document} +\title{My Title} +\numberofauthors{1} +\author{\alignauthor Alice Smith and Robert Lu\\ + \email{"Alice Smith" <alice@somewhere.com>}\\ + \email{\{alice, bob\}@somewhere.com}\\ + \email{alice@somewhere.com, bob@somewhere.com} +} +\maketitle +\end{document} +\end{verbatim} + +%%%%%%%%%%%%%%%% +\subsection{APA} +%%%%%%%%%%%%%%%% + +\<apa maketitle\><<< +\Configure{affil} + {\HCode{<div class="affil">}\bgroup + |<apa maketitle br cr|>% + } + {\egroup \HCode{</div>}} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}\bgroup + |<apa maketitle no-br cr|>% + } + {\egroup\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\apa:title} {\apa:endtitle} +\def\apa:title{\NoFonts\IgnorePar + \HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar + \global\let\apa:title=\empty } +\def\apa:endtitle{\HCode{</h2>}\IgnoreIndent\EndNoFonts + \global\let\apa:endtitle=\empty } +>>> + + +\<apa maketitle br cr\><<< +\Configure{centercr} + {\ht:special{t4ht=<br />}} + {\ht:everypar{\ht:everypar{\HtmlPar}}} +>>> + +\<apa maketitle no-br cr\><<< +\Configure{centercr} + {} {\ht:everypar{\ht:everypar{\HtmlPar}}}% +>>> + + +%%%%%%%%%%%%%%%% +\subsection{Shared} +%%%%%%%%%%%%%%%% + + + +\<title for TITLE\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection |<disable latex fonts|>\let\thanks|=\:gobble +\def\TeX{TeX}% +\def\mbox{\hbox}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\def\footnotemark[##1]{}% +\Tag{TITLE+}{\@title}} +>>> + + +Removed \@\let\\\space@ from the above due to cases like the following one. + +\begin{verbatim} +\documentclass{article} +\begin{document} +\title{a\\[3ex]b} +\maketitle +\end{document} +\end{verbatim} + + +Old latex files need \verb'\no:fonts', but not new ones.---wrong, as far as writing to toc in 0.0? + +\<ams title for TITLE\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection |<disable latex fonts|>\let\thanks|=\:gobble +\let\\|=\space \def\TeX{TeX}% +\def\mbox{\hbox}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\def\footnotemark[##1]{}% +\Tag{TITLE+}{\shorttitle}} +>>> + + + +\<disable latex fonts\><<< +\let\leavevmode|=\empty \let\not@math@alphabet|=\:gobbleII +\def\text@command##1{##1}\let\selectfont|=\empty +\def\check@icl ##1\check@icr{}% +>>> + +\<title for TITLE 2\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection \let\leavevmode\empty \let\not@math@alphabet\:gobbleII +\def\text@command##1{##1}\let\selectfont\empty +\def\check@icl ##1\check@icr{}% +\let\thanks\:gobble +\def\mbox{\hbox}% +\let\\\space \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\def\footnotemark[##1]{}% +\def\a:ttl##1##2//{##1//}% +\let\large=\empty +\let \bf=\empty +\let \centering=\empty +\def \ignorespaces##1\vskip##2//{##1}% +\Tag{TITLE+}{\@title//}% +}% +>>> + +\<title for TITLE 3\><<< +{\Configure{maketitle}{}{}{}{}% +\a:NoSection \let\leavevmode\empty \let\not@math@alphabet\:gobbleII +\def\text@command##1{##1}\let\selectfont\empty +\def\check@icl ##1\check@icr{}% +\let\thanks\:gobble +\def\mbox{\hbox}% +\let\\\space \def\TeX{TeX}% +\def\gobble:font##1##2{##2}\:TITLE: \no:fonts +\Tag{TITLE+}{\@title}}% +>>> + + + +%%%%%%%%%%%%%%%% +\section{Abstracts} +%%%%%%%%%%%%%%%% + +\<apa abstract\><<< +\Configure{abstract} + {\HCode{<div class="abstract">}\bgroup + |<apa maketitle br cr|>% + } + {\egroup \HCode{</div>}} +\Css{div.abstract{text-align:left; margin-left:10\%; margin-top:1em; }} +>>> + + + + + +%%%%%%%%%%%%%%%% +\section{Math} +%%%%%%%%%%%%%%%% + + + + +Don't put \verb'\:xhtml{\IgnorePar\EndP}' on the following; \verb'\PicDisplay' +should handle it. + + + +\<configure html4-math latex\><<< +\Configure{[]} + {\bgroup + \protect\nested:math + \PicDisplay + $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay \egroup |<try inline par|>} +\Configure{()}{\bgroup + \protect\nested:math + \protect\PicMath + $} + {$ \protect\EndPicMath \egroup} +\def\nested:math{|<nested pic math|>} +>>> + +The above should be sensitive to cases like the following one. + +\begin{verbatim} +\[ \parbox[t]{2in} { \[.\] }\] +\end{verbatim} + + +\<nested pic math\><<< +\def\[{\bgroup \def\]{$$\egroup}$$}% +\def\({\bgroup \def\){$\egroup}$}% +>>> + + + + +\<configure html4-math latex\><<< +\Configure{@TITLE}{\Configure{()}{$}{$}} +>>> + +\<configure html4-math th4\><<< +\:CheckOption{th4}\if:Option + \Configure{[]} + {\PicDisplay $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay |<try inline par|>} + \Configure{()}{\PicMath$}{$\EndPicMath} +\fi +>>> + + + + +\<picmath plain,latex\><<< +\Configure{$$}{\:xhtml{\EndP}\PicDisplay}{\EndPicDisplay} + {\everymath{}\everydisplay{}} +|<pic math formulas|> +|<pic math + tex formulas|> +>>> + +\<pic math formulas\><<< +\:CheckOption{pic-m} \if:Option + \Configure{$}{\PicMath}{\EndPicMath}{} +\else + \Log:Note{for pictorial $...$ environments, + use the command line option `pic-m' (not recommended!!)} +\fi +>>> + +\<pic math + tex formulas\><<< +\:CheckOption{pic-m+} \if:Option + \def\Alt:Math#1${\tmp:toks{$#1$}% + \Picture*[|<pic math alt|>]{ style="text-align:middle"}$#1$\EndPicture$} + \def\Alt:Display#1$${\tmp:toks{$$#1$$}% + \Picture*[|<pic math alt|>]{}$$#1$$\EndPicture$$} + \def\Alt:lMath#1\){\tmp:toks{\(#1\)}% + \Picture*[|<pic math alt|>]{ style="text-align:middle"}$#1$\EndPicture} + \def\Alt:lDisplay#1\]{\tmp:toks{\[#1\]}% + \Picture*[|<pic math alt|>]{}$$#1$$\EndPicture} + \Configure{$}{}{}{\expandafter\Alt:Math} + \Configure{$$}{}{}{\expandafter\Alt:Display} +% \Configure{()}{\Alt:lMath}{} +% \Configure{[]}{\Alt:lDisplay}{} +\else + \Log:Note{for pictorial $...$ and + $$...$$ environments with latex alt, + use the command line option `pic-m+' (not safe!!)} +\fi +>>> + + +\<configure html4 latex\><<< +\def\PictureAltex{\afterassignment\set:Img\tmp:toks} +\def\set:Img{\Picture*[|<pic math alt|>]{}\the\tmp:toks\EndPicture} +>>> + +\<pic math alt\><<< +\special{t4ht*=&&}% +\special{t4ht*=""}% +\special{t4ht*=<<}% +\special{t4ht*=>>}% + \HCode{\the\tmp:toks}% +\special{t4ht*=}% +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Cross References} +%%%%%%%%%%%%%%%%%% + +\<configure html4 latex\><<< +\Configure{pageref} + {\HCode{<span class="pageref">}} + {\HCode{</span>}} + {\S} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Theorems} +%%%%%%%%%%%%%%%%%% + + +\<configure html4 latex\><<< +\Configure{newtheorem} + {\ifvmode\IgnorePar\fi\EndP + \HCode{<div class="newtheorem">}\par\noindent\HCode{<span + class="head">}} + {\HCode{</span>}} + {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par\indent\ShowPar} +\Css{div.newtheorem { margin-bottom: 2em; margin-top: 2em;}} +>>> + +\<acm proof\><<< +\Configure{proof} + {\ifvmode\IgnorePar\fi\EndP + \HCode{<div class="proof">}\par\noindent\HCode{<span + class="head">}} + {\HCode{</span>}} + {\:xhtml{\EndP}\IgnorePar\HCode{</div>}\ShowPar\par} +\Css{div.proof { margin-bottom: 2em; margin-top: 2em;}} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Features} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%% +\section{Javascript: Pop-ups On Mouse Over} +%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%% +\subsection{Background} +%%%%%%%%%%%%%%%% + + +There are 6 supporting dvi variations of the +`CopyTo to-file op group' + dvi command: + +\begin{description} +\item[From] Start copying (at current address) +\item[Until] End copying (at current address) +\item[Skip] Start skipping (from current address) +\item[Cont] End skipping (at current-address) +\item[Addr integer-label] Associate current + address with the integer-label of the given group +\item[Set integer-label] + Replace the `current address' in the following Skip/Cont (and + From/Until ?) commands with the address associated to the + integer-label of the given group by an Addr command +\end{description} + +The code +\begin{verbatim} +B0 + \ht:special {t4ht@DCopyTo: \jobname-js.tex From bib } +B1 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib } +B2 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr1 bib } +B3 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr2 bib } +B4 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Set1 bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Cont bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Set2 bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib } +B5 +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until bib } +B6 +\end{verbatim} + +produces the string ` B1 B3 '. + + +%%%%%%%%%%%%%%%% +\subsection{End Points of the Jobname-js.tex File} +%%%%%%%%%%%%%%%% + + + +\<start js\><<< +\js:on +>>> + + + +\<onmouseover utilities\><<< +\def\js:on{% + \global\let\js:on=\relax + \HCode{<!--}% + |<js From js|>% + \HCode{\string\def\string\jstoday{\:today} }% + \HCode{\string\input\space onmouseover.4ht }% + \:CheckOption{trace-onmo} \if:Option + \HCode{<js trace="on">}% + \else + \Log:Note{for mouseover tracing of + compilation, use the command line option `trace-onmo'} + \HCode{<js>}% + \fi + |<js Until js|>% + \HCode{-->}% + |<end js|>} +>>> + + +\<end js\><<< +\csname a:mouseover-Needs\endcsname +\Css{.js {text-indent:0; background-color:aqua; color:black; + border:solid 1px black; margin:2pt; width:99\%;}} +\Css{.js p, .|<js p.bibitem css|>, |<js p.bibitem-p css|> {text-indent:0; + background-color:aqua; color:black; margin:2pt;}} +\AtEndDocument{{\HCode{<!--}% + |<js From js|>% + \HCode{</js>}% + |<js Until js|>% + \HCode{-->}}}% +>>> + + +Was \verb'\Css{.js p {margin:0; text-indent:0;}}' but javascript under +netscape had problems dealing with 0 left margins. + + + + +\<js From js\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From js }% +>>> + +\<js Until js\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until js }% +>>> + + + + + +%%%%%%%%%%%%%%%% +\subsection{Configuration Commands} +%%%%%%%%%%%%%%%% + + + + +\<onmouseover utilities\><<< +\HAssign\MO:script = 0 +\NewConfigure{mouseover-script}[1]{\bgroup + \gHAdvance\MO:script by 1 + \expandafter\NextFile \expandafter{\jobname\MO:script.tmp}% + \HPage{}\IgnorePar |<js From var|>% + \HCode{<\if !#1!\else mouseover-script\fi>#1\if !#1!\else =\fi}% + \everyvbox{\IgnorePar\everyvbox{}\aftergroup\end:movar}% + \def\end:movar{\everyvbox{}\HCode + {</\if !#1!\else mouseover-script\fi>}% + |<js Until var|>\EndHPage{}% + \egroup}% + \vbox} +>>> + +\<ol-hauto mouseover-script\><<< +\Configure {mouseover-script}{}{\HCode{ol\string_hauto = 1;}}% +>>> + + +\<js From var\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From var }% +>>> + +\<js Until var\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until var }% +>>> + + + + +\<onmouseover utilities\><<< +\expandafter\def\csname c:mouseover-vars:\endcsname#1#2{% + \expandafter\def\csname mouseover-#1-init\endcsname##1{}% + \def\:tempc##1{\expandafter\append:defI\csname + mouseover-#1-init\endcsname{tex4ht.##1=tex4ht.\expandafter\jsHash + \expandafter{\expandafter v####1.##1};}}% + \Mo:vars#2,<>} +\def\Mo:vars#1,#2<>{% + \if !#1!\else + \expandafter\def\csname mo#1\endcsname##1{% + \HCode{<!--}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex From #1 }% + \HCode{<#1-var>\jsHash{v##1.#1}=}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Skip #1 }% + \HCode{-->}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Cont #1 }% + }% + \expandafter\def\csname endmo#1\endcsname{% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Skip #1 }% + \HCode{<!--}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Cont #1 }% + \HCode{</#1-var>}% + \ht:special{t4ht@DCopyTo: \jobname-js.tex Until #1 }% + \HCode{-->}% + }% + \:tempc{#1}% + \fi + \if !#2!\else \expand:after{\Mo:vars#2<>}\fi +} +>>> + + + + +%%%%%%%%%%%%%%%% +\subsection{Footnotes Contributions} +%%%%%%%%%%%%%%%% + + + + +\<js From fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex From fn }% +>>> + +\<js Skip fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Skip fn }% +>>> + +\<js Cont fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Cont fn }% +>>> + +\<js Until fn\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until fn }% +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Overlib} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Link[http://www.egroups.com/group/overlib]{}{}egroup for overlib\EndLink, +\Link[http://www.bosrup.com/web/overlib/]{}{}home over overlib\EndLink + + +\<overDiv\><<< +\HCode{<div id="overDiv" + style="position:absolute; + visibility:hidden; z-index:1000;"></div> +}% +>>> + + +\<onmouseover @HEAD\><<< +\Configure{@HEAD} + {\HCode{%|% natural place for <overlib src>, but netscape 4.7...|% + <script type="text/javascript" + src="\jobname-js.js"></script>\Hnewline + |<overlib src|>}} +|<onmouseover utilities|> +\:CheckOption{info} \if:Option + |<overlib info|> +\fi +>>> + + +\<overlib info\><<< +\Log:Note{Option `mouseover' is powered + by the overlib.js utility of Erik Bosrup + (http://www.bosrup.com/web/overlib/).} +\immediate\write-1{} +\immediate\write-1{The option requires two compilations of + the source file.} +\immediate\write-1{} +\immediate\write-1{Use \string\Configure + {mouseover-XXX}{...} to introduce extra arguments into the overlib + function call `return overlib(...)'. XXX stands for + `cite', `footnote', or 'gloss'. The default body is at tex4ht.body, + and the default caption at tex4ht.caption. An empty parameter + requests no sensitivity of the mouse for the + specified type of entries.} +\immediate\write-1{} +\immediate\write-1{The variant \string\Configure + {mouseover-XXX}[labels]{...} of the above command restricts the + outcome just to the listed labels (i.e., the values listed + in tex4ht.caption).} +\immediate\write-1{} +\immediate\write-1{The \string\Configure{mouseover-script}{variable-name} + {javascript-code} command may be used to introduce code into the + javascript file, as a content of a global variable when a name is + given and as a bare code when the name is not given. To be referenced, + the name must be prefixed by ``tex4ht.'.} +\immediate\write-1{} +\immediate\write-1{The \string\Configure{mouseover-vars}{XXX} + {variable-list} command introduces local variables, to be referenced + with the prefix ``tex4ht.' on their names. In addition, for each + variable YYY it introduces a construct \string\moYYY + {label}...\string\endmoYYY\space for selecting a value for the variable + at the specified label.} +\immediate\write-1{} +\immediate\write-1{Example:} +\immediate\write-1{ + \string\Configure{mouseover-script}{var}{\HCode{<hr />}}} +\immediate\write-1{|<mouseover cite config|>} +\immediate\write-1{|<mouseover cite css|>.} +\immediate\write-1{ + \string\moAuthor{bb}A name\string\endmoAuthor } +\immediate\write-1{} +\immediate\write-1{The compilation indirectly invokes the + command 'xhtex \string\jobname-js'. An alternative format for + the command can be requested within a configuration of + the form \string\Configure{mouseover-Needs}{\string\Needs{"..."}}. + The default setting is due to + \string\Configure{mouseover-Needs}{\string\Needs{"xhtex + \string\jobname-js"}}} +\immediate\write-1{In case \string\Configure{mouseover-Needs} is + undefined, introduce the instruction + \string\NewConfigure{mouseover-Needs}{1} before that command. +} +>>> + +\<onmouseover utilities\><<< +\expandafter\ifx \csname mouseover-Needs\endcsname\relax + \NewConfigure{mouseover-Needs}{1} + \Configure{mouseover-Needs}{\Needs{"mk4ht xhtex \jobname-js"}} +\fi +\def\mo:args#1#2#3{\expandafter + \ifx \csname a:mouseover-#1-#2\endcsname\empty\else + \expandafter \ifx \csname a:mouseover-#1-#2\endcsname\relax + |<global mouseover-type|>\else + |<private mouseover-type|>\fi\fi} +>>> + +\<global mouseover-type\><<< +\expandafter \ifx \csname a:mouseover-#1\endcsname\empty + \else + \Hnewline + onmouseover="tex4ht.body=tex4ht.#3; tex4ht.caption='#2'; + |<init mouseover vars|>% + return overlib(\csname a:mouseover-#1\endcsname);" + \Hnewline onmouseout="nd();"\Hnewline\fi +>>> + +\<private mouseover-type\><<< +\Hnewline + onmouseover="tex4ht.body=tex4ht.#3; tex4ht.caption='#2'; + |<init mouseover vars|>% + return overlib(\csname a:mouseover-#1-#2\endcsname);" +\Hnewline onmouseout="nd();"\Hnewline +>>> + +\<init mouseover vars\><<< +\expandafter\ifx \csname mouseover-#1-init\endcsname\relax + \else \csname mouseover-#1-init\endcsname{#2}\fi +>>> + + + +%%%%%%%%%%%%%%%% +\subsection{Boundary Cases for mouseover} +%%%%%%%%%%%%%%%% + + + + +\<DOCTYPE in PROLOG under mouseover\><<< +\:CheckOption{xhtml} \if:Option \else + \:CheckOption{DOCTYPE} \if:Option + \Log:Note{to request a DOCTYPE declaration + use the command line option `DOCTYPE'} + \else + \edef\Preamble{\Preamble,no-DOCTYPE} + \fi +\fi +>>> + + + + + +\<overlib src\><<< +<script type="text/javascript" src="overlib.js"><!-- overLIB (c) Erik Bosrup --></script> +<!--https://github.com/overlib/overlib-->% +>>> + + + +% <script language="JavaScript" src="overlib.js" +% type="text/javascript" ></script>\Hnewline + + +\begin{itemize} +\item +\begin{verbatim} +THE DOCUMENT DECLARATION GIVES TROUBLE IN CONNECTION WITH OVERLIB. It +would be hardly noticeable in small pages, requiring no scrolling - +the only symptom then is that the browser suddenly warns about errors +- those ones in overlib, and as a matter of fact, apparently in the +part of the script that ensures compatibility with Netscape. However, +in a large page, the pop-ups seem to disappear - making them STICKY +and scrolling up, one can find them in the upper right corner. One +has only to remove <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 +Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> however, to +put an end to the browser complaints and get back the pop-ups into +their proper places. \end{verbatim} + +\item +\begin{verbatim} + I +have just found a reference to the trouble, together with a very easy +way to go round it: it is enough to add <?xml version="1.1"?> BEFORE +the Document declaration. I have checked it, and it is all right - +both for Explorer6 and Netscape 4.7 and 6. + +By the way: for the Mouseover option to work under Netscape4.x, the call to +<script type="text/JavaScript" src="overlib.js"></script> +<!--http://www.bosrup.com/web/overlib/ (Erik Bosrup)--> +MUST appear in the <BODY> section, NOT in the <HEAD>: absurd, but true (it +is reported in Overlib's page). +\end{verbatim} + +\end{itemize} + + +%%%%%%%%%%%%%%%% +\subsection{The Configuration File onmouseover.4ht} +%%%%%%%%%%%%%%%% + + + + +\<onmouseover.4ht\><<< +\ifnum\the\catcode`\%=14\else\expandafter\edef\csname + \string:RestoreCatcodes\endcsname{\catcode`\%|=\the + \catcode`\%}\catcode`\%|=14\fi +% onmouseover.4ht (|version), generated from |jobname.tex +% Copyright 2009-2015 TeX Users Group +% Copyright |CopyYear.2001. Eitan M. Gurari +|<TeX4ht copywrite|> + +\hbadness=10000 \vbadness=10000 \hfuzz=99in \vfuzz=\hfuzz +\overfullrule=0pt \let\makefootline\empty +\special{t4ht.js} + +\newcount\CodeNumber +\def\NoSpecials#1#2#3{\edef\temp{\the\CodeNumber}% + \global\CodeNumber=#3 + \def\next{\catcode\CodeNumber=#1 + \ifnum \CodeNumber=#2 \let\next=\relax \fi + \global\advance\CodeNumber by -1 \next}\next + \global\CodeNumber=\temp }% + +\expandafter\def\csname js js\endcsname{\egroup \special{t4ht@@}% + tex4ht=new Array() ; //\jstoday} +\expandafter\def\csname js js trace="on"\endcsname{\global + \let\TagTrace=\empty \csname js js\endcsname} +\expandafter\def\csname js /js\endcsname{\egroup \special{t4ht@@}% + \csname bye\endcsname\endinput} + +|<hash for onmouseover.4ht|> +|<escape backslashes|> +\catcode`\<=13 +\def\jselement#1{\expandafter\def\csname js #1\endcsname##1=##2</#1>{% + \hfill\break tex4ht.\jsHash{##1}=\hbox{"##2";}\egroup}} +|<escape double quotes|> +\expandafter\def\csname js \endcsname#1</>{% + \hfill\break \hbox{#1}\egroup} + +\def<#1>{\bgroup + \expandafter \ifx \csname js #1\endcsname \relax \jselement{#1}\fi + \def<##1>{\TagTrace{\def\x{##1}\def\y####1:->{}% + \writesixteen{...\string<\expandafter\y\meaning\x>}}% + \string<\scan ##1"<>>}% + \NoSpecials{12}{0}{255}\NoSpecials{11}{65}{90}\NoSpecials{11}{97}{122}% + \catcode`\ =10 \catcode`\^^M=10 \catcode`\^^I=10 \catcode`\<=13 + \catcode`\\=13 + \tt \csname js #1\endcsname} +\def\TagTrace#1{} +\catcode`\&=12 \catcode`\#=12 +\endinput +>>> + +\<escape double quotes\><<< +\def\scan#1"#2<>{#1\if !#2!\expandafter\done\else + \string\"\expandafter\scan +\fi#2<>} +\def\done#1>{} +>>> + +\<escape backslashes\><<< +\catcode`/=0 \catcode`\\=13 +/def\{/string\/string\} +/catcode`/\=0 \catcode`\/=12 +>>> + + + +\<onmouseover utilities\><<< +\def\jsHash#1{\jsHash:a #1<>} +\def\jsHash:a#1#2<>{% + \ifnum `#1<`0 JjV\else + \ifnum `#1>`z jJv\else + \ifnum `#1>`9 + \ifnum `#1<`A jJV\else + \ifnum `#1>`Z + \ifnum `#1<`a jVV\else #1\fi + \else #1\fi\fi + \else #1\fi\fi\fi + \if !#2!\expandafter\done:hash + \else\expandafter\jsHash:a\fi#2<>} +\def\done:hash#1>{} +>>> + +\<hash for onmouseover.4ht\><<< +\def\jsHash#1{\jsHasha #1<>} +\def\jsHasha#1#2<>{% + \ifnum `#1<`0 JjV\else + \ifnum `#1>`z jJv\else + \ifnum `#1>`9 + \ifnum `#1<`A jJV\else + \ifnum `#1>`Z + \ifnum `#1<`a jVV\else #1\fi + \else #1\fi\fi + \else #1\fi\fi\fi + \if !#2!\expandafter\done + \else\expandafter\jsHasha\fi#2<>} +>>> + + + +\<onmouseover utilities\><<< +\expandafter\Odef\csname c:mouseover-?:\endcsname[#1]#2{% + \def\:temp{#2}% + \if !#1!\expandafter\let\csname a:mouseover-\:tempb\endcsname=\:temp + \else \om:type#1,|<par del|>\fi} +\def\om:type#1,#2|<par del|>{% + \if !#1!\else\expandafter + \let\csname a:mouseover-\:tempb-#1\endcsname=\:temp\fi + \ifx !#2!\else \def\:tempa{\om:type#2|<par del|>}\expandafter\:tempa \fi +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Formats} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%% +\section{latex.ltx} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 latex\><<< +|<0,32,4 plain,latex|> +|<32,4 plain,latex|> +|<config plain,latex|> +|<32,4 latex|> +|<4 latex|> +|<0,32,4 latex|> +|<latex ltsec|> +|<latex lttab|> +|<latex ltbibl|> +|<latex ltoutenc|> +|<latex ltfloat (footnotes)|> +% \:CheckOption{javahelp} \if:Option +% \input javahelp.4ht +% \else +% \Log:Note{for a JavaHelp output format, +% use the command line option `javahelp'} +% \fi +>>> + +\<latex lttab\><<< +\Configure{extracolsep} + {~\tmp:dim=#1\relax\ifdim \tmp:dim>1em ~\fi} +>>> + + + +\<configure html4-math amsmath\><<< +\Configure{tmspace} + {\ifdim \textspace>0.2em + \HCode{<span style="margin-left:\textspace" class="tmspace">}% + \else \HCode{<span style="margin-left:0.3em" class="thinspace">}\fi + \HCode{</span>}% + } +>>> + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltplain.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{obeylines} + +\<config plain,latex\><<< +\Configure{obeylines} + {\ifvmode \:xhtml{\IgnorePar\EndP}\IgnoreIndent + \HCode{<div class="obeylines-v">}% + \gdef\ob:ln{\ht:special{t4ht=</div>}}% + \else + \SaveEndP \HCode{<span class="obeylines-h">}% + \gdef\ob:ln{\ht:special{t4ht=</span>}\RecallEndP}% + \fi + } + {\EndP\ob:ln\ShowPar} + {\hbox{\HCode{<br />}}} +\Css{.obeylines-h,.obeylines-v {white-space: nowrap; }} +\Css{div.obeylines-v p { margin-top:0; margin-bottom:0; }} +>>> + %%%%%%%%%%%%%%%%%%%%%%% + % ltspace.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Spaces} + +\<32,4 latex\><<< +\Configure{hspace}{}{}{\:nbsp} +>>> + + %%%%%%%%%%%%%%%%%%%%%%% + % ltlogos.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Logos} +\<config plain\><<< +|</TeX for 4.0t|> +>>> + + +\</TeX for 4.0t\><<< +\:CheckOption{fancylogo}\if:Option +\def\TeX{\HCode{<span class="TEX">}T\HCode{<span\Hnewline + class="E">}E\HCode{</span>}X\HCode{</span>}} +\Css{span.TEX {letter-spacing: -0.125em; margin-right:0.125em;}} +\Css{span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}} +\Css{a span.TEX span.E {text-decoration: none; }} +\else +\def\TeX{TeX} +\fi +>>> + +\verb'\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\@}' + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltfssini.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{tt Font} + +\<0,32,4 latex\><<< +\ifx \ttfamily\:UnDef \else \Configure{tt}{\ttfamily} \fi +>>> + + %%%%%%%%%%%%%%%%%%%%%%% + % ltxref.dtx + %%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Cross References} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<32,4 latex\><<< +\Configure{ref} + {\Link} + {\ifx \RefArg\:UnDef\else + \Tg<!--tex4ht:ref: \RefArg\space-->\fi\EndLink} + {} +>>> + +The comments lets us relate the automatically created label with that +offered by the user. The space is needed for cases that the label ends with a dash. + + +\begin{itemize} +\item + LaTeX allows labels almost everywhere. +\item +Different labels may be associated to a common object in LaTex. +\item + There are almost no restrictions on the kind of characters + allowed within the labels of LaTeX. +\end{itemize} + + + + + + + + %%%%%%%%%%%%%%%%%%%%%%% + % ltmiscen.dtx + %%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Miscellaneous Environments} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<32,4 plain,latex\><<< +\def\end:TTT{\ifvmode\IgnorePar\fi \EndP\HCode{</td></tr></table>}} +>>> + +\<4 latex\><<< +\append:def\center{\par} +\ConfigureEnv{center} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {\EndP\IgnorePar + \HCode{<div class="\getClass{center}"\Hnewline>}\ShowPar\endgraf + \afterGetClass{center}} + {\IgnorePar\EndP\HCode{</div>}} +\ConfigureEnv{flushleft} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {\EndP\IgnorePar + \HCode{<div class="flushleft"\Hnewline>}\ShowPar\endgraf} + {\IgnorePar\EndP\HCode{</div>}} +\ConfigureEnv{flushright} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {\EndP\IgnorePar + \HCode{<div class="flushright"\Hnewline>}\ShowPar\endgraf} + {\IgnorePar\EndP\HCode{</div>}} +\Css{div.center, + div.center div.center {text-align: center; + margin-left:1em; margin-right:1em;}} +\NewConfigure{centerClass}{2} +\Configure{centerClass}{center}{} +\Css{div.center div {text-align: left;}} +\Css{div.flushright, + div.flushright div.flushright {text-align: right;}} +\Css{div.flushright div {text-align: left;}} +\Css{div.flushleft {text-align: left;}} +>>> + + + + +\<32,4 latex\><<< +\ConfigureEnv{verbatim}{\env:verb{verbatim}}{\endenv:verb}{}{} +\ConfigureEnv{verbatim*}{\env:verb{verbatim}}{\endenv:verb}{}{} +\HAssign\verbatimN 0 +\def\env:verb#1{\ifinner\else \vfill\break\fi + \IgnorePar\EndP \HAssign\Verb:N=0 + \gHAdvance\verbatimN by 1 + \HCode{<pre class="#1" id="verbatim-\verbatimN"\a:LRdir>}\EndNoFonts} +\def\endenv:verb{\NoFonts + \EndP \ht:special{t4ht=</pre>}|<try inline par|>} +\HAssign\Verb:N=0 +\Css{pre.verbatim {font-family: monospace,monospace; + text-align:left; + clear:both; + }} +>>> + + + + + +\<configure html4 latex\><<< +\Configure{verbatim} + {\HCode{}} + {\a:sp} +\Configure{verb} + {\HCode{<span class="verb"\a:LRdir>}} + {\HCode{</span>}} +>>> + + + +The \verb+\:nbsp+ above is because lynx collapses +consecutive \verb+<br />+ tags. + + + + +\<configure html4 latex\><<< +\Configure{centercr}{\ht:special{t4ht=<br />}} + {\ht:everypar{\ht:everypar{\HtmlPar}}} +>>> + + + % ltmath.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Math Setup} + +\<configure html4-math latex\><<< +\:CheckOption{pic-equation}\if:Option + \Configure{equation} + {\:xhtml{\ifvmode \IgnorePar\fi\EndP}% + \HCode{<table\Hnewline class="equation"><tr><td>}\IgnorePar + \Configure{$$}{\PicDisplay}{\EndPicDisplay} + {\everymath{}\everydisplay{}} + } + {\ifvmode \IgnorePar\fi\HCode{</td><td class="equation-label">}} + {\end:TTT |<try inline par|>} |% was: \IgnorePar\par|% +\else + \Configure{equation} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<table\Hnewline class="equation"><tr><td>}\IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP\HCode{</td><td class="equation-label">}} + {\end:TTT\ifmmode\else |<try inline par|>\fi} +\fi +\Css{table.equation {width:100\%;}} +\Css{.equation td{text-align:center; }} +\Css{td.equation { margin-top:1em; margin-bottom:1em; } } +\Css{td.equation-label { width:5\%; text-align:center; }} +>>> + +\<configure html4-math latex\><<< +|<pic plain/latex math 4.0t|> +\:CheckOption{pic-eqnarray} \if:Option + |<PIC eqnarray Config|> +\else |<TABLE eqnarray Config 4.0t|>\fi +>>> + + +\<PIC eqnarray Config\><<< +\ConfigureEnv{eqnarray} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray {text-align:center;}} +\ConfigureEnv{eqnarray*} + {\IgnorePar\EndP\Tg<div class="pic-eqnarray-star">\Picture*{}} + {\EndPicture\Tg</div>}{}{} +\Css{div.pic-eqnarray-star {text-align:center;}} +>>> + +\<TABLE eqnarray Config 4.0t\><<< +\Log:Note{for pictorial eqnarray, + use the command line option `pic-eqnarray'} + +\Configure{eqnarray}{\HCode{<table\Hnewline + class="eqnarray\ifx \@seqncr\@eqncr\else-star\fi ">}} + {\HCode{</table>}} + {\HCode{<tr style="vertical-align:middle;" + class="eqnarray\ifx \@seqncr\@eqncr\else-star\fi">}} + {\HCode{</tr>}} + {\HCode{\ifnum \HCol=4 <td\Hnewline width="10" + class="eqnarray4"></td>\fi + <td\Hnewline style="text-align:\ifcase\HCol \or right\or center\or + left\else right\fi ; white-space:nowrap;"\Hnewline + class="eqnarray\HCol">}} + {\EndP\HCode{</td>}} +\Css{td.eqnarray4 { width:5\%; white-space: normal; }} +\Css{td.eqnarray2 { width:5\%; }} +\Css{table.eqnarray-star, table.eqnarray {width:100\%;}} +>>> + +\<TABLE eqnarray Config 4.0t\><<< +\ConfigureEnv{eqnarray} + {\ifvmode\IgnorePar\fi\EndP\HCode{<div class="eqnarray">}} + {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par}{}{} +\ConfigureEnv{eqnarray*} + {\ifvmode\IgnorePar\fi\EndP\HCode{<div class="eqnarray">}} + {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par}{}{} + +\Css{div.eqnarray{text-align:center;}} +>>> + %%%%%%%%%%%%%%%%%%%%%%% + % lttab.dtx + %%%%%%%%%%%%%%%%%%%%%%% + +\subsection{Tabbing, Tabular and Array Environments} + +\<configure html4 latex\><<< +\:CheckOption{no-array}\if:Option \else + |<html latex array/tabular Config 4.0t|> +\fi +>>> + + +\<configure html4-math latex\><<< +\:CheckOption{no-array}\if:Option \else + |<math html latex array/tabular|> +\fi +>>> + +\<32,4 picmath latex\><<< +\:CheckOption{pic-array} \if:Option + \ConfigureEnv{array} + {\IgnorePar\EndP\Tg<div class="pic-array">\Picture*{}$$} + {$$\EndPicture\Tg</div>}{}{} + \Css{div.pic-array {text-align:center;}} +\else + \Log:Note{for pictorial array, + use the command line option `pic-array'} +\fi +>>> + + +\<vspace body for array/tabular\><<< +\append:def\vspc:s{\h:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\vspc:s{\i:HBorder}% + \expandafter\:tempb + \fi } +\tmp:cnt|=0 \:tempb +\append:def\vspc:s{\j:HBorder}\global\let\vspc:s|=\vspc:s +>>> + +\<0,32,4 latex\><<< +\Configure{hline}{\ifx \ar:cnt\:UnDef\else + \o:noalign:{|<hline body for array/tabular|>}% + \expandafter\ignoreEndTr + \fi} +\Configure{//[]}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<vspace body for array/tabular|>}\fi} +>>> + + + +\<hline body for array/tabular\><<< +\append:def\hline:s{\a:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\hline:s{\b:HBorder}% + \expandafter\:tempb + \fi }% +\tmp:cnt|=0 \:tempb +\append:def\hline:s{\c:HBorder}\global\let\hline:s|=\hline:s +>>> + +\<inline comment\><<< +\ifvmode\else\HCode{<!--tex4ht:inline-->}\fi +>>> + +\<html latex array/tabular Config 4.0t\><<< +\Configure{multicolumn} + {\let\col:Css\empty + \Configure{VBorder} + {} + {\edef\col:Css{\col:Css + border-\ifnum \ar:cnt=0 left\else right\fi + :solid black 0.4pt;}% + }{}{}% + } + {\ifx \col:Css\empty \else + \Css{td\#TBL-\TableNo-\HRow-\HCol{\col:Css}}% + \fi + } + {\ifvmode\IgnorePar\fi + \HCode{<div class="multicolumn" }\HColAlign\HCode{>}% + \ifx \col:Css\empty \else + \Css{td\#TBL-\TableNo-\HRow-\HCol{\col:Css}}% + \fi + } + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}} +>>> + +\<configure clear noalign\><<< +\Configure{noalign}{}{}% +>>> + +\<configure tabular noalign\><<< +\Configure{noalign}% + {\f:tabular\d:tabular \HCode{<tr><td colspan="\ar:cnt">}} + {\HCode{</td></tr>}\pend:def\TableNo{0}\c:tabular\e:tabular}% +>>> + +\<html latex array/tabular Config 4.0t\><<< +\def\pic:env{% + \def\begin##1{\bgroup + \def\end####1{\o:end:{####1}\EndPicture\egroup}% + \ifx \EndPicture\:UnDef + \Picture+{ class="##1" style="text-align:middle"}% + \else \let\EndPicture|=\empty\fi + \o:begin:{##1}}% +} +>>> + +\verb'\AllColMargins' Return a binary string in which 1 represents +a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the +zeros before the 1's that represent the current and following 1's. + +\<html latex array/tabular Config 4.0t\><<< +\def\ColMargins{% + \ifx \AllColMargins\empty + \:warning{Empty \string\AllColMargins}% + \else + \tmp:cnt|=\HCol\relax + \expandafter\nosp:hbr\AllColMargins 1//% + \fi } +\def\nosp:hbr#11#2//{\ifnum \tmp:cnt>1 \advance\tmp:cnt by -1 + \nosp:hbr#2//\else\nosp:gt#11#2//\fi} +\def\nosp:gt#11#21#3//{% + \def\:temp{#1}\ifx \:temp\empty 1\else 0\fi + \def\:temp{#2}\ifx \:temp\empty 1\else 0\fi} +\Css{div.td00{ margin-left:0pt; margin-right:0pt; }} +\Css{div.td01{ margin-left:0pt; margin-right:5pt; }} +\Css{div.td10{ margin-left:5pt; margin-right:0pt; }} +\Css{div.td11{ margin-left:5pt; margin-right:5pt; }} +>>> + + +\<html latex array/tabular Config 4.0t\><<< +\Configure{halignTB<>}{tabular}{\HCode{id="TBL-\TableNo" + class="tabular"\Hnewline + \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +\:CheckOption{pic-tabular} \if:Option \else + \Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \halignTB{tabular}\putVBorder } + {|<insert Clr|>\HCode{</table>}} + {\HCode{<tr \Hnewline}\halignTR + \HCode{ id="TBL-\TableNo-\HRow-">}} + {\r:HA} + {\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}|<tabular td align|>% + \HCode{">}|<td save EndP|>% + |<start array par box|>\PushStack\Table:Stck\TableNo} + {|<end array par box|>\PopStack\Table:Stck\TableNo \d:HA} +\fi +|<configuring @()|> +\Css{td.td00{ padding-left:0pt; padding-right:0pt; }} +\Css{td.td01{ padding-left:0pt; padding-right:5pt; }} +\Css{td.td10{ padding-left:5pt; padding-right:0pt; }} +\Css{td.td11{ padding-left:5pt; padding-right:5pt; }} +>>> + +\<insert ClrNO\><<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{<!--"\the\tmp:toks"-->}% +>>> + +The quotes above hide \verb+>+ from IE within the comment. Otherwise, the +browser inappropriately get confused. + +On the other hand, the above doesn't work, for instance on +`\verb+|r||r@{--}l|p{1.25in}|+' due to the extra \verb+--+. + + +\subsection{The option @()} + + +\<configuring @()\><<< +\Configure{@{}}{} +>>> + + +\<html latex array/tabular Config 4.0t\><<< +\Configure{halignTB<>}{array}{\HCode{id="TBL-\TableNo" class="array"\Hnewline + \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +\:CheckOption{pic-array} \if:Option \else + \Configure{array} + {\ifvmode \IgnorePar\fi \EndP\halignTB{array}\putVBorder} + {|<insert Clr|>\HCode{</table>}} + {\R:HA} + {\r:HA} + {\D:HA\HCode{<div class="td}|<tabular td align|>% + \HCode{">}|<start array par box|>\pic:env} + {|<end array par box|>\HCode{</div>}\d:HA} + \Configure{arrayparbox}{\ShowPar} +\fi +>>> + +\verb|\par| is empty if not in par box. + +\<start array par box\><<< +\par \ShowPar +>>> + +\<end array par box\><<< +\IgnorePar \EndP +>>> + + +We force border around the full table whenever a vertical line is +requested, because it makes the tables better looking within the +existing capabilities. + +Currently, we either have empty \verb'\VBorder', or one defined to +\verb'\def\VBorder{border="1"}'. + +\<html latex array/tabular Config 4.0t\><<< +\let\VBorder|=\empty \let\AllColMargins|=\empty +\Configure{VBorder} + {\let\VBorder|=\empty \let\AllColMargins|=\empty + \global\let\GROUPS|=\empty \HAssign\NewGroup = 0 + \gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo } + {\xdef\VBorder{\VBorder\ifnum \NewGroup> 0 </colgroup>\fi} + \HAssign\NewGroup = 0 % \gdef\GROUPS{rules="groups"}} + \Css{\#TBL-\TableNo\space colgroup{border-left: 1px solid black;border-right:1px solid black;}} + \Css{\#TBL-\TableNo{border-collapse:collapse;}}} + {\Advance:\NewGroup by 1 + \ifnum \NewGroup=1 \xdef\VBorder{\VBorder<colgroup + id="TBL-\TableNo-\ar:cnt g">}\fi + \xdef\VBorder{\VBorder<col\Hnewline id="TBL-\TableNo + -\ar:cnt"\xml:empty>}\xdef\AllColMargins{\AllColMargins1}} + {\xdef\AllColMargins{\AllColMargins 0}} +\Configure{HBorder} + {<tr\Hnewline class="hline">} {<td><hr\xml:empty></td>} {</tr>} + {<tr\Hnewline class="cline">} + {<td></td>} {<td><hr\xml:empty></td>} {</tr>} + {<tr\Hnewline class="vspace" style="font-size:\HBorderspace">} + {<td\Hnewline>\string </td>} + {</tr>} +\Configure{putHBorder}{\HCode{\HBorder}} +\HAssign\Next:TableNo|=0 \global\let\TableNo=\Next:TableNo +\Css{.hline hr, .cline hr{ height : 0px; margin:0px; }} +\Css{.hline td, .cline td{ padding: 0; }} +\Css{.hline hr, .cline hr{border:none;border-top:1px solid black;}} +>>> + +When \verb'\putVBorder' is call in \verb'\VBorder' +we have a sequence of the form +\verb'<COLGROUP><COL ...">...</COLGROUP>...' with the last +tag possibly missing. + +\<html latex array/tabular Config 4.0t\><<< +\def\putVBorder{\expandafter\put:VBorder\VBorder</>|<par del|>} +\def\put:VBorder#1</#2>#3|<par del|>{\def\:temp{#2}\ifx\:temp\empty + \HCode{\VBorder}% + \def\:temp{#1}\ifx\:temp\empty \else\HCode{</colgroup>}\fi + \else \def\:temp{\put:VBorder#3|<par del|>}\expandafter\:temp\fi +} +>>> + +\<configure html4 latex\><<< +\:CheckOption{pic-tabbing} \if:Option + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} +\else + |<TABLE tabbing Config 4.0t|> + \:CheckOption{pic-tabbing'} \if:Option + |<PICT dot tabbing|> + \fi +\fi +>>> + +\<TABLE tabbing Config 4.0t\><<< +\Configure{tabbing}[1.5]{% + \ifvmode \IgnorePar\fi\EndP \leavevmode\ht:special{t4ht=<table + \Hnewline\:zbsp{tabbing}><tr \Hnewline style="vertical-align:baseline;" + class="tabbing">}} + {\ht:special{t4ht=</tr></table>}\ShowPar \csname par\endcsname + |<global HtmlPar|>% + } + {\ht:special{t4ht=<td \ifx \TabWidth\empty \else + style="width:\TabWidth;"\fi \Hnewline + class="tabbing\ifx \`\TabType -right\fi">}} + {\ht:special{t4ht=</td>}} +\ConfigureEnv{tabbing}{\IgnorePar\EndP}{}{}{} +\Css{.tabbing-right {text-align:right;}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{to be placed} +%%%%%%%%%%%%%%%%%%% + + + +\<4 latex\><<< +\Configure{underline} + {\HCode{<span class="underline">}\:gobble} + {\HCode{</span>}} +\Css{.underline{ text-decoration:underline; }} +\Css{.underline img{ border-bottom: 1px solid black; + margin-bottom:1pt; }} +>>> + +\<config plain\><<< +\Configure{underline} + {\HCode{<span class="underline">}\hbox\bgroup \:gobble} + {\egroup \HCode{</span>}} +\Css{.underline{ text-decoration:underline; }} +\Css{.underline img{ border-bottom: 1px solid black; + margin-bottom:1pt; }} +>>> + + + +\<config plain,latex\><<< +\Configure{overline} + {\HCode{<span class="overline">}} + {\HCode{</span>}} +\Css{.overline{ text-decoration:overline; }} +\Css{.overline img{ border-top: 1px solid black; }} +>>> + +\<0,32,4 plain,latex\><<< +\Configure{ }{\:nbsp} +>>> + + + + + + +\<0,32,4 latex\><<< +\:CheckOption{pic-framebox} \if:Option + \Configure{framebox} + {\Picture+[]{ \a:@Picture{framebox}}} {\EndPicture} +\else + \Log:Note{for bitmap framebox'es, use + the command line option `pic-framebox'} + \Configure{framebox} + {\HCode{<span class="framebox-\frameboxAlign"\Hnewline + style="width:\frameboxWidth;">}} + {\HCode{</span>}} + |<shared framebox style|> +\fi +>>> + +% \bgroup +% \fboxrule=0pt \fboxsep=0pt +% \HAssign\frameboxN=0 +% \gHAdvance\frameboxN by 1 +% id="framebox-\frameboxN" + + +\<shared framebox style\><<< +\Css{.framebox-c, .framebox-l, .framebox-r { + padding-left:\the\fboxsep; + padding-right:\the\fboxsep; + text-indent:0pt; + border:solid black \the\fboxrule; +}} +\Css{.framebox-c {text-align:center;}} +\Css{.framebox-l {text-align:left;}} +\Css{.framebox-r {text-align:right;}} +>>> + +\<32,4 latex\><<< +\:CheckOption{pic-fbox} \if:Option + \Configure{fbox} + {\leavevmode\Picture+[]{ \a:@Picture{fbox}}} {\EndPicture} +\else + \Log:Note{for bitmap fbox'es, use + the command line option `pic-fbox'} + \Configure{fbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="fbox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="fbox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.fbox {padding-left:\the\fboxsep; + padding-right:\the\fboxsep; + text-indent:0pt; + border:solid black \the\fboxrule; + }} + \Css{div.fbox {display:table}} + \Css{div.center div.fbox {text-align:center; clear:both; + padding-left:3.0pt; padding-right:3.0pt; + text-indent:0pt; border:solid black 0.4pt; }} +\fi +>>> + +The property 'display:table' is introduced so borders will be tight on +the content instead of expanding to the surrounding box size. + + + +\<latex ltsec\><<< +\Configure{InsertTitle}{\let\label|=\lb:l + \let\ref|=\o:ref \Configure{ref}{}{}{}} +\Configure{AfterTitle}{\let\index|=\:index + \let\ref|=\:ref \let\label|=\lb:l } +\Configure{NoSection} + {\let\sv:index|=\index \let\sv:label|=\label + \let\sv:newline|=\newline \def\newline{ }% + \let\sv:setfontsize|=\@setfontsize \let\@setfontsize|=\:gobbleIII + \let\index|=\@gobble \let\label|=\@gobble + |<nolink ref|>% + } + {\let\index|=\sv:index \let\label|=\sv:label + |<restore ref|>% + \let\newline|=\sv:newline \let\@setfontsize|=\sv:setfontsize + } +>>> + +\<nolink ref\><<< +\let\sva:rEfLiNK|=\a:rEfLiNK +\let\svb:rEfLiNK|=\b:rEfLiNK +\let\svc:rEfLiNK|=\c:rEfLiNK +\expandafter\let\expandafter\svC:rEfLiNK\c:rEfLiNK +\Configure{ref}{}{}{}% \let\sv:ref|=\ref \let\ref|=\@gobble +>>> + +\<restore ref\><<< +\let\a:rEfLiNK|=\sva:rEfLiNK +\let\b:rEfLiNK|=\svb:rEfLiNK +\let\c:rEfLiNK|=\svc:rEfLiNK +\expandafter\let\c:rEfLiNK\svC:rEfLiNK % \let\ref\sv:ref +>>> + +\<0,32,4 latex\><<< +\Configure{oalign}{\Picture+{ \a:@Picture{oalign}}}{\EndPicture} +\Configure{TocLink} + {\expandafter\ifx \csname #3-def\endcsname\relax + \global\expandafter\let \csname #3-def\endcsname\def + \Link{#2}{#3}% + \else + \Link{#2}{}% + \fi + {|<config TocLink anchor|>#4}\ifvmode\IgnorePar\fi\EndLink} +>>> + + + +\<config TocLink anchor\><<< +\Configure{ref}{}{}{}% +\let\EndLink=\empty +\let\H:Tag:attr\:gobbleII +\let\:::HRef\empty +\def\::hRef[##1]##2{}% +\def\::hRefTag[##1]##2##3{}% +\def\:::HRefTag##1##2{}% +|<cite in TocLink|>% +>>> + +\<configure html4-math latex\><<< +\Configure{stackrel}{\Picture+{ class="stackrel"}\mathrel} + {\limits ^}{\EndPicture} +>>> + + +\<0,32,4 latex\><<< +\Configure{picture} + {\Picture+[PICT]{}} + {\EndPicture} +>>> + + +\<32,4 latex\><<< +\ConfigureEnv{minipage} + {\IgnorePar\EndP + \HCode{<div class="minipage">}% + {\ifnum 0=`}\fi + } + {\ifnum 0=`{\fi}% + \EndP\HCode{</div>}} + {}{} +\Css{div.minipage{width:100\%;}} +>>> + +The extra braces in the minipage configurations are to allow the +compilation of cases similar to the following one. + +\begin{verbatim} +\documentclass{article} +\begin{document} +\begin{tabular}{c} +\begin{minipage}{4in} +\begin{eqnarray} +x & = & y +\end{eqnarray} +\end{minipage} +\end{tabular} +\end{document} +\end{verbatim} + +Tried the following for minipage +\begin{verbatim} +\ConfigureEnv{minipage} + {\IgnorePar\EndP\HCode{<div class="minipage">}} + {\EndP\HCode{</div>}} + {\IgnoreIndent\HtmlEnv}{} +\end{verbatim} +but was not able to find an appropriate css code for centered pages +\begin{verbatim} +Es ist ganz einfach: + +\begin{center} + \raisebox{0cm}{\begin{minipage}{10cm}\sc Jesus Christus\\ +erbarme dich meiner!\end{minipage}} +\end{center} + +Varianten sind: +\end{verbatim} + + + + +\<latex shared section config\><<< +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +>>> + +\<latex shared subsection config\><<< +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +>>> + +\<latex shared subsubsection config\><<< +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + + + + +\<latex shared div config\><<< +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + +\<latex shared paragraph config\><<< +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + + + +\<latex shared part config\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +>>> + + +\<latex shared part config\><<< +\Configure{part}{}{} + {\IgnorePar \EndP\HCode{<h1 class="partHead"\a:LRdir>}% + \HCode{<span class="titlemark">}\partname \ \thepart + \HCode{<br /></span>}} + {\HCode{</h1>}\IgnoreIndent\par} +\Configure{likepart}{}{} + {\IgnorePar\EndP\HCode{<h1 class="likepartHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent\par} +\Configure{partTITLE+}{\thepart\space #1} +\Configure{likepartTITLE+}{#1} +\Css{h1.partHead{text-align: center}} +>>> + + + +\<configure html4 latex\><<< +\ifx\bf\:UnDef + \def\bf{\normalfont\bfseries} +\fi +>>> +Earlier we had +\verb'\:CheckOption{no-halign} \if:Option \else |<pic array|> \fi', +and the same for pic tabular. Why? + + + +\<config plain,latex\><<< +\Configure{displaylines} + {\IgnorePar \EndP + \HCode{<table \Hnewline border="0" width="100\%" + class="displaylines">}\IgnorePar} + {\HCode{</table>}} + {\HCode{<tr class="displaylines"><td \Hnewline + style="vertical-align:baseline;" class="displaylines" + >}}{\HCode{</td></tr>}} +\Css{td.displaylines {text-align:center; white-space:nowrap;}} +>>> + +\<picmath plain,latex\><<< +\let\A:displaylines|=\a:displaylines +\let\B:displaylines|=\b:displaylines +\let\C:displaylines|=\c:displaylines +\let\D:displaylines|=\d:displaylines +\Configure{displaylines} + {\ifmmode + \def\A:displaylines{\Picture*{}}% + \def\B:displaylines{\EndPicture}% + \fi + \A:displaylines} + {\B:displaylines} {\C:displaylines}{\D:displaylines} +>>> + + +\<show input line no\><<< +<!--l. \the\inputlineno-->% +>>> + + + + + + + + + + + +\<configure html4 latex\><<< +|</TeX for 4.0t|> +\:CheckOption{fancylogo}\if:Option +\def\:temp{\HCode{<span class="LATEX">}L\HCode{<span + class="A">}A\HCode{</span>}\TeX\HCode{</span>}} +\HLet\LaTeX|=\:temp +\def\:temp{\mbox{% + \if b\expandafter\@car\f@series\@nil\boldmath\fi + \LaTeX2$_{\textstyle\varepsilon}$}} +\expandafter\HLet\csname LaTeXe\endcsname|=\:temp +\Css{span.LATEX span.A{ position:relative; top:-0.5ex; + left:-0.4em; font-size:85\%;}} +\Css{span.LATEX span.TEX{ position:relative; margin-left: -0.4em; margin-right:0.125em; }} +\else +\def\LaTeX{LaTeX} +\def\LaTeXe{LaTeX2e} +\fi +\Configure{@TITLE}{\def\LaTeX{LaTeX}\let\fontencoding|=\:gobble + \let\fontfamily|=\:gobble \let\fontseries|=\:gobble + \let\fontshape|=\:gobble \let\usefont|=\:gobbleIV } +>>> + + + + + +\<configure html4 latex\><<< +\Configure{newline}{\HCode{<br\Hnewline class="newline" />}} +>>> + + + + +\<configure html4 supertabular\><<< +\Configure{SpBorder} + {<tr\Hnewline class="vspace"><!--\SpBorder-->} + {<td>\string </td>} + {</tr>} +\ConfigureEnv{supertabular} + {\par \IgnorePar \EndP \HCode{<div class="supertabular">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\par} + {} {} +\Css{.supertabular {text-align:center}} +>>> + +\<configure html4 longtable\><<< +\:CheckOption{old-longtable}\if:Option + |<config old longtable|> +\else + |<config new longtable|> +\fi +>>> + + +\<configure html4 longtable\><<< +\:CheckOption{pic-longtable} \if:Option + \ConfigureEnv{longtable} + {\IgnorePar\EndP\Tg<div class="pic-longtable">\Picture*{}} + {\EndPicture\Tg</div>}{}{} + \Css{div.pic-longtable {text-align:center;}} +\else + \Log:Note{for pictorial longtable, + use the command line option `pic-longtable'} +\fi +>>> + + + +\<config new longtable\><<< +\Configure{halignTB<>}{longtable}{\HCode{id="TBL-\TableNo" class="longtable"\Hnewline + \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +\Configure{longtable} + {\IgnorePar\EndP + \HCode{|<show input line no|><div class="longtable">}% + \halignTB{longtable}\putVBorder } + {|<insert Clr|>\HCode{</table></div>}} + {\HCode{<tr \Hnewline}\halignTR\HCode{ id="TBL-\TableNo-\HRow-">}} + {\r:HA} + {\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}|<tabular td align|>% + \HCode{">}|<td save EndP|>% + |<start array par box|>\PushStack\Table:Stck\TableNo} + {\PopStack\Table:Stck\TableNo |<end array par box|>\d:HA} +\Css{div.longtable{text-align:center;}} +\Css{table.longtable{margin-left:auto; margin-right: auto;}} +\Configure{longtableparbox}{\IgnorePar\leavevmode\ShowPar\par} +>>> + + +\<config old longtable\><<< +\let\a:longtable=\a:tabular +\let\b:longtable=\b:tabular +\let\c:longtable=\c:tabular +\let\d:longtable=\d:tabular +\let\e:longtable=\e:tabular +\let\f:longtable=\f:tabular +>>> + +\<configure html4 latex\><<< +\Configure{float} + {\ifOption{refcaption}{}{\csname par\endcsname\ShowPar \leavevmode}} + {\:xhtml{\IgnorePar\EndP}\HCode{<hr class="float"\xml:empty><div + class="float"\Hnewline>}} + {\ifvmode \IgnorePar \fi\EndP + \HCode{</div><hr + class="endfloat" />}\csname par\endcsname\ShowPar} +\ConfigureEnv{figure} + {\:xhtml{\IgnorePar\EndP}\HCode{<hr class="figure"\xml:empty><div + class="figure"\Hnewline>}% + \bgroup \Configure{float}{\ShowPar}{}{}% + } + {\egroup + \:xhtml{\IgnorePar\EndP}\HCode{</div><hr + class="endfigure"\xml:empty>}|<try env inline par|>\par} + {}{} +\Css{div.float, div.figure {margin-left: auto; margin-right: auto;}} +\Css{div.float img {text-align:center;}} +\Css{div.figure img {text-align:center;}} +>>> +The \verb'<TABLE>' is needed as a grouping mechanism for \verb'<CENTER>'. + + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{Plain} +%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{General} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 plain\><<< +|<config plain,latex|> +|<0,32,4 plain|> +|<0,32,4 plain,latex|> +|<32,4 plain,latex|> +|<32,4 plain|> +|<config plain|> +|<plain items|> |%keep last in html mode?|% +>>> + + +\<config plain\><<< +\def\plain:indent{\ShowIndent \global\let\plain:indent\empty} +\Configure{@BODY}{\plain:indent} +>>> + + + +\<plain items\><<< +\Configure{item} + {}{} + {\par\Configure{items}{\item:class}\HCode{<span class="item">}} + {\HCode{</span>}\Configure{items}{}} +\Configure{itemitem} + {}{} + {\par\Configure{items}{\itemitem:class}\HCode{<span class="itemitem">}} + {\HCode{</span>}\Configure{items}{}} +\Css{p.item {text-indent:-2em; margin-left:2em;}} +\Css{p.itemitem {text-indent:-2em; margin-left:4em;}} +\Css{span.item, span.itemitem {width:2em; margin-right:0.4em;}} +\Configure{!P}{\a:items} +\NewConfigure{items}{1} +\Configure{items}{} +\def\item:class#1class#2"#3"{#1class="item"} +\def\itemitem:class#1class#2"#3"{#1class="itemitem"} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Math} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 plain\><<< +|<TABLE eqalign shared Configure 4.0t|> +>>> +\<TABLE eqalign shared Configure 4.0t\><<< +\Configure{eqalign} + {\:xhtml{\IgnorePar\EndP}\HCode + {<div class="eqalign"><table class="eqalign">}} + {\HCode{</table></div>}} + {\HCode{<tr \Hnewline class="eqalign" + style="vertical-align:middle;">}}{\IgnorePar\HCode{</tr>}} + {\HCode{<td style="white-space:nowrap;text-align:\ifnum \HCol=2 + left\else right\fi"\Hnewline class="eqalign\HCol" + >}} + {\HCode{</td>}} +\def\:eqalign:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} +\Css{td.eqalign3 { text-align:right; margin-left:10em;}} +\Css{.eqalign td { white-space: nowrap; }} +\Css{div.eqalign {text-align:center;}} +>>> + + + + + +\<TABLE eqalign shared Configure 4.0t\><<< +\Configure{eqalignno} + {\:xhtml{\IgnorePar\EndP}\HCode{<table class="eqalignno">}} + {\HCode{</table>}} + {\HCode{<tr\Hnewline class="eqalignno">}}{\IgnorePar\HCode{</tr>}} + {\HCode{\ifnum \HCol=3 <td\Hnewline width="10" + class="eqalignno-sp"></td>\fi + <td style="text-align:\ifnum \HCol=2 left\else right\fi"\Hnewline + class="eqalignno\HCol">}} + {\HCode{</td>}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} +\Css{td.eqalignno3, td.leqalignno3 + { text-align:right; margin-left:10em;}} +\Css{.leqalignno td, .eqalignno td + { white-space: nowrap; }} +\Css{.leqalignno td.noalign, .eqalignno td.noalign + { width:5\%; white-space: normal; }} +\Css{table.leqalignno, table.eqalignno {width:100\%;}} +>>> + +\<TABLE eqalign shared Configure 4.0t\><<< +\Configure{leqalignno} + {\:xhtml{\IgnorePar\EndP}\HCode{<table class="leqalignno">}} + {\HCode{</table>}} + {\HCode{<tr \Hnewline + class="leqalignno">}}{\IgnorePar\HCode{</tr>}} + {\HCode{\ifnum \HCol=3 <td\Hnewline width="30" + class="eqalignno-sp"></td>\fi + <td style="text-align:\ifnum \HCol=2 left\else right\fi"\Hnewline + class="leqalignno\HCol">}} + {\HCode{</td>}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} +>>> + + + + +\<shared plain/latex pmatrix 4.0t\><<< +\Configure{pmatrix} + {\ifvmode + \def\end:pmatrix{\IgnorePar\HCode{</div>}\end:TTT}% + \:xhtml{\IgnorePar\EndP}\HCode + {<table\Hnewline class="pmatrix"><tr><td><div + class="pmatrix"\Hnewline>}% + \else \HCode{<span class="pmatrix">}% + \def \end:pmatrix{\HCode{</span>}}% + \fi} + {\end:pmatrix} +\Css{span.pmatrix img{vertical-align:middle;}} +\Css{div.pmatrix {text-align:center;}} +\Css{table.pmatrix {width:100\%;}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Environments} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<config plain\><<< +\Configure{settabs}[1.5]{\IgnorePar\EndP\leavevmode + \ht:special{t4ht=<table + \Hnewline\:zbsp{settabs}><tr \Hnewline style="vertical-align:baseline;" + class="settabs">}} + {\ht:special{t4ht=</tr></table>}} + {\ht:special{t4ht=<td \ifx \TabWidth\empty \else + width="\TabWidth"\fi \Hnewline class="settabs">}} + {\ht:special{t4ht=</td>}} +>>> + +\<config plain\><<< +\Configure{narrower}{\ifvmode \IgnorePar\fi \EndP% + \HCode{<table cellpadding="15" class="narrower"><tr + class="narrower"><td class="narrower">}\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</td></tr></table>}\ifvmode \IgnorePar\fi} +>>> + + + +\<0,32,4 plain\><<< +\Configure{settabs}[1.5]{}{}{}{}{} +\Configure{line}{\HCode{<br />}} +>>> + +\<config plain\><<< +\Configure{proclaim} + {\IgnorePar\EndP\HCode{<div class="proclaim"><span class="proclaim">}} + {\HCode{</span>}} {\IgnorePar\EndP\HCode{</div>}} +\Css{div.proclaim { margin-top: 1em; margin-bottom: 1em; }} +>>> + +\<config plain\><<< +\Configure{beginsection} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="beginsection">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{<h3 class="beginsection">}} + {\HCode{</h3>}\par\ShowPar} +\ConfigureToc{beginsection} + {} {\relax} {} { } +>>> + +% \Css{div.beginsection { margin-top: 1em; margin-bottom: 1em; }} + + + + +\<config plain\><<< +\Configure{TableOfContents} + {\IgnorePar\EndP \HCode{<div class="TableOfContents"\a:LRdir>}}{} + {\ifvmode \IgnorePar\fi\EndP + \HCode{</div>}\ShowPar}{\HCode{<br />}}{} +>>> + +\<config plain\><<< +\:CheckOption{1} \if:Option + \CutAt{beginsection} + \Configure{beginsectionTITLE+}{#1} + \ConfigureToc{beginsection} + {\HCode{<span class="beginsectionToc" \a:LRdir>}} + {\empty} + {} + {\HCode{</span><br />}} + \let\au:StartSec\:StartSec + \def\:StartSec{\TableOfContents[beginsection]% + \global\let\:StartSec\au:StartSec + \:StartSec}% +\else + \Log:Note{for automatic sectioning + pagination, use the command line option `1'}% +\fi +>>> + + + +\<config plain\><<< +\Configure{insert} + {\IgnorePar\EndP\HCode{<hr class="insert"\xml:empty>}\IgnorePar} + {\IgnorePar\EndP\HCode{<hr class="endinsert"\xml:empty>}\IgnorePar} +>>> + +\<pic plain/latex math 4.0t\><<< +\NewConfigure{@root}{1} +\Configure{@root}{align="middle" } +>>> + +\<html4-math plain,fontmath\><<< +\Configure{big}{\HCode{<span class="big">}}{\HCode{</span>}}{}{} +\Configure{Big}{\HCode{<span class="bbig">}}{\HCode{</span>}}{}{} +\Configure{bigg}{\HCode{<span class="bigg">}}{\HCode{</span>}}{}{} +\Configure{Bigg}{\HCode{<span class="bbigg">}}{\HCode{</span>}}{}{} +>>> + +\<pic plain math 4.0t\><<< +\Configure{@underbrace}{align="middle"} +>>> + +\<config plain,latex\><<< +\def\:zbsp#1{cellpadding="0" border="0" \Hnewline + class="#1"} +>>> + +\<config plain,latex\><<< +\Configure{centerline}{\ifvmode \IgnorePar + \fi \EndP\HCode{<div \Hnewline + class="centerline">}}{\EndP\HCode{</div>}\ShowPar} +\Configure{leftline}{\ifvmode \IgnorePar + \fi \EndP \HCode{<p\Hnewline class="leftline">}} + {\HCode{</p>}\ShowPar} +\Configure{rightline} + {\IgnorePar\EndP\HCode{<p class="rightline">}} + {\HCode{</p>}\ShowPar} +\Css{.centerline {text-align:center;}} +\Css{.rightline {text-align:right;}} +>>> + +% \<config plain,latex\><<< +% \def\tbl:XV#1{table width="100\%"\Hnewline class="#1"} +% >>> + + +The \verb'100%' is to allow centering of stuff on the page. +The table is a grouping mechanism to protect internal stuff +from external centering operations. + + +The \verb'special{t4ht=' is superior to \verb'\HCode{' because it can +prevent \verb'<p>'s from entering before \verb'<NOBR>'. + + +The hbox is for avoiding the start of a new paragraph, if in vmode. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Latex Math} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4-math latex\><<< +|<picmath plain,latex|> +|<picmath latex|> +|<32,4 picmath latex|> +|<shared plain/latex pmatrix 4.0t|> +|<mathjax|> +>>> + + + + + +\<picmath plain,latex\><<< +|<pic plain/latex math 3.2|> +\def\A:root#1\b:root#2\c:root{\o:root:#1\of{#2}\c:root} +\Configure{root} + {\Picture+{ \a:@Picture{root}}\A:root} + {} + {\EndPicture} +\Configure{mathpalette} + {\Picture+{ \a:@Picture{mathpalette}}} {\EndPicture} +>>> + +\<\><<< +\Configure{choose}{}{} +>>> + + +\<32,4 picmath latex\><<< +\Configure{pmatrix} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{bordermatrix} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{frac} + {\Picture+{ \a:@Picture{frac}}\bgroup} + {} {} + {\egroup\EndPicture} +>>> + + +\<32,4 picmath latex\><<< +\Configure{sqrtsign} + {\Picture+{ \a:@Picture{sqrt}}} + {\EndPicture} +\Configure{matrix} + {\Picture+{ \a:@Picture{matrix}}} {\EndPicture} + {}{}{}{} +>>> + + +\<picmath plain,latex\><<< +% \Configure{L} {\pic:sym{L}} +% \Configure{l} {\pic:sym{l}} +\def\pic:sym#1{\Protect\Picture+{ \a:@Picture{#1}}\csname + o:#1:\endcsname\Protect\EndPicture} +>>> + +\<picmath plain,fontmath\><<< +\Configure{Longrightarrow} {\pic:sym{Longrightarrow}} +\Configure{bowtie} {\pic:sym{bowtie}} +\Configure{cong} {\pic:sym{cong}} +\Configure{ddots} {\pic:sym{ddots}} +\Configure{doteq} {\pic:sym{doteq}} +\Configure{hookleftarrow} {\pic:sym{hookleftarrow}} +\Configure{hookrightarrow} {\pic:sym{hookrightarrow}} +\Configure{longmapsto} {\pic:sym{longmapsto}} +\Configure{mapsto} {\pic:sym{mapsto}} +\Configure{models} {\pic:sym{models}} +\Configure{neq} {\ht:special{t4ht@+\string&{35}x2260{59}}x} +\Configure{notin} {\pic:sym{notin}} +\Configure{vdots} {\pic:sym{vdots}} +\Configure{angle} {\pic:sym{angle}} +\Configure{rightleftharpoons} {\pic:sym{rightleftharpoons}} +\Configure{leftrightharpoons} {\pic:sym{leftrightharpoons}} +\Configure{mid} {\ht:special{t4ht@+\string&{35}x2223{59}}||} +>>> + +% + +\<picmath latex\><<< +\Configure{mathellipsis} {\ht:special{t4ht@+\string&{35}x2026{59}}x} +\Configure{hbar} {\ht:special{t4ht@+\string&{35}x210F{59}}x} +>>> + +\<configure html4 latex\><<< +\Configure{textellipsis} {\ht:special{t4ht@+\string&{35}x2026{59}}x} +>>> + + +\<picmath plain\><<< +\Configure{ldots} {\ht:special{t4ht@+\string&{35}x2026{59}}x} +>>> + + +\<configure html4-math fontmath\><<< +\Configure{cdots} {\pic:sym{cdots}} +\Css{img.cdots{vertical-align:middle;}} +>>> + +\<configure html4-math plain\><<< +\Configure{cdots} {\pic:sym{cdots}} +\Css{img.cdots{vertical-align:middle;}} +>>> + + + +\<configure html4-math amsmath\><<< +\Configure{@cdots} {\pic:sym{@cdots}} +\Configure{iint} {\pic:sym{iint}} +\Configure{iiint} {\pic:sym{iiint}} +\Configure{iiiint} {\pic:sym{iiint}} +\Configure{idotsint} {\pic:sym{tsint}} +\Configure{doteq} {\pic:sym{tsint}} +>>> + +% \Configure{overrightarrow} {\Picture+{}}{\EndPicture} +% \Configure{overleftarrow} {\Picture+{}}{\EndPicture} + +\<32,4 picmath: plain, fontmath, amsmath, amstex1\><<< +\Configure{overbrace} {}{\Picture+{}}{\EndPicture} +\Configure{underbrace} {}{\Picture+{}}{\EndPicture} +>>> + +\<mathjax\><<< +\:CheckOption{mathjax}\if:Option +\input{mathjax-latex-4ht.4ht} +\ifx\a:MathJaxConfig\relax +\Configure{MathJaxConfig}{{ + tex: { + tags: "ams", + }, +}; +} +\fi +\Configure{@HEAD}{\HCode{<script>window.MathJax = \a:MathJaxConfig</script>\Hnewline}} +\Configure{MathjaxSource}{https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js} +\Configure{@HEAD}{\HCode{ <script type="text/javascript" async="async" id="MathJax-script" src="\a:MathjaxSource"></script> \Hnewline}} +\edef\:RestoreMathjaxCatcodes{\catcode`\noexpand \&=\the\catcode`\&} +\def\:HandleMathjaxCatcodes{\edef\:RestoreMathjaxCatcodes{\catcode`\noexpand \&=\the\catcode`\&}\catcode`\&=11} +\Configure{$}{\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes}{\expandafter\AltMathOne} +% for some reason, it is necessary to specify the catcode change directly in the configuration +\Configure{()}{\:HandleMathjaxCatcodes\catcode`\&=11\AltlMath}{\:RestoreMathjaxCatcodes} +\Configure{[]}{\:HandleMathjaxCatcodes\catcode`\&=11\AltlDisplay}{\:RestoreMathjaxCatcodes} +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Shared plain latex Math} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<picmath plain,latex\><<< +\Configure{pmatrix} + {\ifvmode + \def\end:pmatrix{\IgnorePar\HCode{</div>}\end:TTT}% + \:xhtml{\IgnorePar\EndP}\HCode + {<table\Hnewline class="pmatrix"><tr><td><div + class="pmatrix"\Hnewline>}% + \else \HCode{<span class="pmatrix">}% + \def \end:pmatrix{\HCode{</span>}}% + \fi} + {\end:pmatrix} +\Css{div.pmatrix {text-align:center;}} +\Css{table.pmatrix {width:100\%;}} +>>> + + + + +\<configure html4-math plain\><<< +|<picmath plain,latex|> +|<picmath plain,fontmath|> +|<picmath plain|> +|<pic plain/latex math 4.0t|> +|<32,4 picmath plain|> +|<pic plain math 4.0t|> +|<html4-math plain,fontmath|> +>>> + +\<32,4 picmath plain\><<< +\Configure{sqrt} + {\Picture+{ \a:@Picture{sqrt}}} + {\EndPicture} +|<32,4 picmath: plain, fontmath, amsmath, amstex1|> +>>> + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Classes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%% +\section{article} +%%%%%%%%%%%%%%%%% + +\<configure html4 article\><<< +|<article,report,book options 1, 2, 3|> +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<config book-report-article|> +|<config report / article 4.0t|> +\:CheckOption{1} \if:Option +\else + \:CheckOption{2} \if:Option \else + \:CheckOption{3} \if:Option \else + \:CheckOption{4} \if:Option \else + \:CheckOption{5} \if:Option \else + \:CheckOption{6} \if:Option \else + \:CheckOption{7} \if:Option \else + \fi + \fi + \fi + \fi + \fi + \fi + \if:Option + \Css{.subsectionToc, .likesubsectionToc {margin-left:2em;}} + \Css{.subsubsectionToc, .likesubsubsectionToc {margin-left:4em;}} + \fi +\fi +>>> + + +\<config report / article 4.0t\><<< +|<abstract|> +>>> + + +\<abstract\><<< +\ConfigureEnv{abstract} + {\IgnorePar\EndP + \HCode{<div\Hnewline class="abstract"\Hnewline>}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}\par}{}{} + + +\Configure{abstracttitle}{\ifvmode\IgnorePar\fi\EndP\HCode{<h3 class="abstracttitle">}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn} + +\Css{div.abstract p {margin-left:5\%; margin-right:5\%;}} +\Css{div.abstract {width:100\%;}} +\Css{.abstracttitle{text-align:center;margin-bottom:1em;}} +>>> + + + +%%%%%%%%%%%%%%%% +\section{report} +%%%%%%%%%%%%%%%%% + +\<configure html4 report\><<< +|<article,report,book options 1, 2, 3|> +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<config book-report-article|> +|<latex shared part config|> +|<config book-report 4.0t|> +|<config report / article 4.0t|> +|<32,4 report,book|> +|<32,4 report|> +>>> + +\<32,4 report\><<< +\ConfigureMark{chapter} + {\HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\thechapter\space#1} +\Configure{likechapterTITLE+}{#1} +>>> + + +\<32,4 report\><<< +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +>>> + +\<32,4 report,book\><<< +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \appendixname \ \thechapter\HCode{</span>}} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapterTITLE+}{#1} +>>> + +\<32,4 report,book\><<< +\Configure{endchapter}{likechapter,appendix,part,likepart} +\Configure{endlikechapter}{chapter,appendix,part,likepart} +\Configure{endappendix}{chapter,likechapter,part,likepart} +>>> + + +%%%%%%%%%%%%%% +\section{book} +%%%%%%%%%%%%%% + +\<configure html4 book\><<< +|<article,report,book options 1, 2, 3|> +\:CheckOption{1} \if:Option + |<toc book options 1|> +\fi +|<config book-report-article|> +|<latex shared part config|> +|<config book-report 4.0t|> +|<32,4 report,book|> +|<32,4 book|> +% \:CheckOption{2} \if:Option +% \else +% \:CheckOption{3} \if:Option \else +% \:CheckOption{4} \if:Option \else +% \:CheckOption{5} \if:Option \else +% \:CheckOption{6} \if:Option \else +% \:CheckOption{7} \if:Option \else +% \fi +% \fi +% \fi +% \fi +% \fi +% \if:Option +% \Css{.sectionToc, .likesectionToc {margin-left:2em;}} +% \Css{.subsectionToc, .likesubsectionToc {margin-left:4em;}} +% \Css{.subsubsectionToc, .likesubsubsectionToc {margin-left:6em;}} +% \fi +% \fi +|<book: css|> +>>> + + +\<book: css\><<< +\Css{ +.chapterToc, +.likechapterToc + {margin-left:0em;}} +\Css{ +.chapterToc \string~ .likesectionToc, +.chapterToc \string~ .sectionToc, +.likechapterToc \string~ .likesectionToc, +.likechapterToc \string~ .sectionToc + {margin-left:2em;}} +\Css{ +.chapterToc \string~ .likesectionToc \string~ .likesubsectionToc, +.chapterToc \string~ .likesectionToc \string~ .subsectionToc, +.chapterToc \string~ .sectionToc \string~ .likesubsectionToc, +.chapterToc \string~ .sectionToc \string~ .subsectionToc, +.likechapterToc \string~ .likesectionToc \string~ .likesubsectionToc, +.likechapterToc \string~ .likesectionToc \string~ .subsectionToc, +.likechapterToc \string~ .sectionToc \string~ .likesubsectionToc, +.likechapterToc \string~ .sectionToc \string~ .subsectionToc + {margin-left:4em;}} +\Css{.chapterToc \string~ .likesectionToc \string~ .likesubsectionToc \string~ .likesubsubsectionToc, +.chapterToc \string~ .likesectionToc \string~ .likesubsectionToc \string~ .subsubsectionToc, +.chapterToc \string~ .likesectionToc \string~ .subsectionToc \string~ .likesubsubsectionToc, +.chapterToc \string~ .likesectionToc \string~ .subsectionToc \string~ .subsubsectionToc, +.chapterToc \string~ .sectionToc \string~ .likesubsectionToc \string~ .likesubsubsectionToc, +.chapterToc \string~ .sectionToc \string~ .likesubsectionToc \string~ .subsubsectionToc, +.chapterToc \string~ .sectionToc \string~ .subsectionToc \string~ .likesubsubsectionToc, +.chapterToc \string~ .sectionToc \string~ .subsectionToc \string~ .subsubsectionToc, +.likechapterToc \string~ .likesectionToc \string~ .likesubsectionToc \string~ .likesubsubsectionToc, +.likechapterToc \string~ .likesectionToc \string~ .likesubsectionToc \string~ .subsubsectionToc, +.likechapterToc \string~ .likesectionToc \string~ .subsectionToc \string~ .likesubsubsectionToc, +.likechapterToc \string~ .likesectionToc \string~ .subsectionToc \string~ .subsubsectionToc, +.likechapterToc \string~ .sectionToc \string~ .likesubsectionToc \string~ .likesubsubsectionToc, +.likechapterToc \string~ .sectionToc \string~ .likesubsectionToc \string~ .subsubsectionToc, +.likechapterToc \string~ .sectionToc \string~ .subsectionToc \string~ .likesubsubsectionToc +.likechapterToc \string~ .sectionToc \string~ .subsectionToc \string~ .subsubsectionToc + {margin-left:6em;}} + +\Css{ +.likesectionToc , +.sectionToc + {margin-left:0em;}} +\Css{ +.likesectionToc \string~ .likesubsectionToc, +.likesectionToc \string~ .subsectionToc, +.sectionToc \string~ .likesubsectionToc, +.sectionToc \string~ .subsectionToc + {margin-left:2em;}} +\Css{.likesectionToc \string~ .likesubsectionToc \string~ .likesubsubsectionToc, +.likesectionToc \string~ .likesubsectionToc \string~ .subsubsectionToc, +.likesectionToc \string~ .subsectionToc \string~ .likesubsubsectionToc, +.likesectionToc \string~ .subsectionToc \string~ .subsubsectionToc, +.sectionToc \string~ .likesubsectionToc \string~ .likesubsubsectionToc, +.sectionToc \string~ .likesubsectionToc \string~ .subsubsectionToc, +.sectionToc \string~ .subsectionToc \string~ .likesubsubsectionToc, +.sectionToc \string~ .subsectionToc \string~ .subsubsectionToc + {margin-left:4em;}} +\Css{ +.likesubsectionToc, +.subsectionToc + {margin-left:0em;}} +\Css{ +.likesubsectionToc \string~ .subsubsectionToc, +.subsectionToc \string~ .subsubsectionToc + {margin-left:2em;}} +>>> + + +\<32,4 book\><<< +\ConfigureMark{chapter} + {\if@mainmatter \ifnum \c@secnumdepth >\m@ne + \HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}\fi \fi} +\Configure{chapterTITLE+}{\if@mainmatter\thechapter\space\fi#1} +\renewcommand\thechapter {\if@mainmatter\@arabic\c@chapter\fi} +>>> + +\<32,4 book\><<< +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \if@mainmatter \TitleMark{\HCode{<br />}}\fi } + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \if@mainmatter \TitleMark{\HCode{<br />}}\fi } + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +>>> + + +\<chapter toc css\><<< +\Css{.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, + .appendixToc a, .appendixToc + {line-height: 200\%; font-weight:bold;}} +>>> + + +\<part toc css\><<< +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{letter} +%%%%%%%%%%%%%%%%%% + + +\<configure html4 letter\><<< +|<quote config|> +|<quotations|> +|<description 4|> +|<roman enumeiii|> +|<base font size|> +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>\par\ShowPar} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +>>> + + + + +\<configure html4 letter\><<< +\Configure{opening} + {\bgroup + \ConfigureEnv{tabular}{}{}{}{}% + \Configure{tabular} + {\EndP\ifvmode \IgnorePar \fi + \HCode{<div class="opening"\a:LRdir>}} + {\HCode{</div><p class="clear-both" />}} + {} + {\HCode{<br />}} + {}{}% + \Configure{HBorder} + {<br class="hline" />} {}{} + {<br class="cline" />} {}{} {} + {<br class="vspace" />} {}{}% + } + {\egroup} +\Configure{closing} + {\EndP\ifvmode \IgnorePar\fi + \HCode{<div class="closing">}} + {\EndP\ifvmode \IgnorePar\fi + \HCode{</div><p class="clear-both" />}} +\longindentation=0pt +\Css{div.opening{float:right;}} +\Css{div.closing {float:right; margin-right:2em;}} +\Css{p.clear-both{clear:both;}} +>>> + +\<configure html4 letter\><<< +\Configure{address} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="address">}} + {\HCode{</span>}} +\Configure{toaddress} + {\HCode{<div class="toaddress">}} + {\HCode{</div>}} +\Configure{toname} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="toname">}} + {\HCode{</div>}} +\Configure{date} + {\HCode{<span class="date" \a:LRdir>}} + {\HCode{</span>}} +\Configure{dear} + {\HCode{<span class="dear">}} + {\HCode{</span>}} +\Configure{sincerely} + {\HCode{<span class="sincerely">}} + {\HCode{</span>}} +\Configure{signature} + {\HCode{<span class="signature">}} + {\HCode{</span>}} +\Configure{cc} + {\HCode{<div class="cc">}\IgnorePar} + {\ifvmode\IgnorePar\fi\HCode{</div>}} +\Configure{encl} + {\HCode{<div class="encl">}\IgnorePar} + {\ifvmode\IgnorePar\fi\HCode{</div>}} +>>> + + +%%%%%%%%%%%%%%%%% +\section{AMS Art, Proc, Book} +%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%% +\subsection{amsart} +%%%%%%%%%%%%%%%% + + + +\<configure html4 amsart\><<< +|<ams art,proc,book|> +|<ams art,proc|> +|<ams art|> +>>> + + + + +\<ams art,proc,book\><<< +|<ams maketitle|> +|<makeketitle config 4.0t|> +|<thebib config|> +>>> + +\<makeketitle config 4.0t\><<< +|<config captions|> +>>> + + + + + + + +\<ams art,proc,book\><<< +\ifx \deferred@thm@head\:UnDef\else + |<shared ams thm/cls|> + |<ams 2000 art + book + proc|> +\fi +>>> + +\<ams 2000 art + book + proc\><<< +\Configure{qed} + {\HCode{<span class="qed">}} {\HCode{</span>}} +\Css{.qed {width:2ex; float:right; text-align:right;}} +>>> + +\<shared ams thm/cls\><<< +\Configure{proof} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="proof">}\par\ShowPar + \HCode{<span class="head">}\IgnorePar} + {\HCode{</span>}\ShowPar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\par} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{amsproc} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 amsproc\><<< +|<ams art,proc,book|> +|<ams proc,book|> +|<ams art,proc|> +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{amsdtx} +%%%%%%%%%%%%%%%%%%% + + +\<configure html4 amsdtx\><<< +|<amsdtx maketitle|> +>>> + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{amsbook} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 amsbook\><<< +|<ams art,proc,book|> +|<ams proc,book|> +|<ams book|> +>>> + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Divisions} +%%%%%%%%%%%%%%%%%%% + + +\<ams art,proc,book\><<< +|<ams art,proc,book div|> +|<ams art,proc,book toc|> |%should appear before TocAt|% +|<ams options 1, 2, 3|> +>>> + + +\<ams art,proc,book div\><<< +\ConfigureMark{part} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@ifundefined{partname}{}{% + \ignorespaces\partname\space}% + \@seccntformat{part}% + \HCode{</span>}\fi } +\Configure{part}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h1 class="partHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h1>}\HtmlParOn \IgnoreIndent \par} +\Configure{partTITLE+}{\thepart\space#1} +>>> + + +\<ams book\><<< +\Configure{likepart}{}{} + {\IgnorePar\EndP\HCode{<h1 class="likepartHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent\par} +\Configure{likepartTITLE+}{#1} +>>> + + + + +\<ams art,proc,book div\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@ifundefined{sectionname}{}{% + \ignorespaces\sectionname\space}% + \@seccntformat{section}% + \HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \ShowPar\par} +>>> + +\<section TITLE+\><<< +\Configure{sectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesection\space + \fi\fi #1} +>>> + + +\<subsection TITLE+\><<< +\Configure{subsectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesubsection\space + \fi\fi #1} +>>> + +\<subsubsection TITLE+\><<< +\Configure{subsubsectionTITLE+}{\ifnum \c:secnumdepth>\c@secnumdepth + \ifnum \c@secnumdepth > 0 + \thesubsubsection\space + \fi\fi #1} +>>> + + +\<ams art\><<< +\Css{.sectionHead{text-align:center;}} +>>> + + + + +\<ams proc,book\><<< +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\ConfigureMark{subparagraph}{\thesubparagraph} +\Css{.paragraphHead { margin-top:2em; font-weight: bold;}} +>>> + + + + +\<ams art\><<< +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}} + {.\HCode{</span>}\IgnorePar} +\ConfigureMark{subparagraph}{} +>>> + + +\<ams proc,book\><<< +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead { font-weight: bold;}} +>>> + +\<ams art\><<< +\Configure{subparagraph}{}{} + {\ShowPar\noindent\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup + \TitleMark\space} + {.\endgroup\HCode{</span>}\IgnorePar} +>>>> + + + +\<ams book\><<< +\ConfigureMark{chapter} + {\HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\thechapter\space#1} +>>> + +\<ams book\><<< +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \appendixname \ \thechapter\HCode{</span>}} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{likechapterTITLE+}{#1} +>>> + + +\<ams art,proc\><<< +\Configure{endsection} + {part} +\Configure{endsubsection} + {section,part} +\Configure{endsubsubsection} + {subsection,section,part} +\Configure{endparagraph} + {subsubsection,subsection,section,part} +>>> + + + +\<ams book\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +\Configure{endchapter}{likechapter,appendix,part,likepart} +\Configure{endlikechapter}{chapter,appendix,part,likepart} +\Configure{endappendix}{chapter,likechapter,part,likepart} +\Configure{endsection} + {chapter,likechapter,appendix,part,likepart} +\Configure{endsubsection} + {section,chapter,likechapter,appendix,part,likepart} +\Configure{endsubsubsection} + {subsection,section,chapter,likechapter,appendix,part,likepart} +\Configure{endparagraph} + {subsubsection,subsection,section,chapter,likechapter,% + appendix,part,likepart} +>>> + + + + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Tocs at Cut Points} +%%%%%%%%%%%%%%%%%%% + + +\<ams art,proc\><<< +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +>>> + +\<ams book\><<< +\:CheckOption{1} \if:Option + |<toc book options 1|> +\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{amsppt.sty} +%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure html4 amsppt\><<< +\ifx \EnditemitemList\:UnDef + \Configure{itemitem} + {}{} + {\par{\Configure{HtmlPar}{\Tg<p class="itemitem" \a:LRdir>} + {\Tg<p class="itemitem" \a:LRdir>} {}{}% + \:xhtml{\Configure{HtmlPar}{\EndP\Tg<div class="itemitem" \a:LRdir>} + {\EndP\Tg<div class="itemitem" \a:LRdir>} + {\Tg</div>}{\Tg</div>}}% + \noindent}} + {} + \Css{.itemitem {margin-left: 5em; text-indent: -2em; + margin-top: 0.5em; margin-bottom: 0.5em;}} +\fi +|<32,4 amsppt|> +|<4 amsppt|> +>>> + + + + + +\<4 amsppt\><<< +\Configure{title} + {\IgnorePar\par\HCode{<div\Hnewline class="title">}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{div.title {margin-top: 0.5em; + font-weight: bold; text-align:center;}} + +\Configure{author} + {\IgnorePar\par\HCode{<div\Hnewline class="author">}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{div.author {text-align:center}} + +\Configure{affil} + {\IgnorePar\par\HCode{<div\Hnewline class="affil">}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{.affil {text-align:center}} + +\Configure{date} + {\IgnorePar\par\HCode{<div\Hnewline class="date" \a:LRdir>}} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar + \append:def\c:footnote{ }% + } +\Css{.date {text-align:center}} + +\Configure{abstract} + {\IgnorePar\par + \HCode{<div\Hnewline class="abstract">}\ShowPar\IgnoreIndent\par} + {} + {} + {\IgnorePar\EndP\HCode{</div>}\IgnorePar} +\Css{.abstract, .subjclass, .thanks, .keywords + {margin-left:5\%; margin-right:5\%;}} + +\Configure{subjclass} + {\ifx \m:top\:Undef + \let\m:top|=\relax \Css{.subjclass {margin-top:1em; }}% + \fi \Tg<div class="subjclass">} + {\Tg</div>} +\Configure{thanks} + {\ifx \m:top\:Undef + \let\m:top|=\relax \Css{.thanks {margin-top:1em; }}% + \fi \Tg<div class="thanks">} + {\Tg</div>} +\Configure{keywords} + {\ifx \m:top\:Undef + \let\m:top|=\relax \Css{.keywords {margin-top:1em; }}% + \fi \ifvmode \IgnorePar\fi\EndP\Tg<div class="keywords">} + {\ifvmode \IgnorePar\fi \EndP\Tg</div>} +>>> + +\<32 amsppt, 32,4 vanilla\><<< +\Configure{title} + {\IgnorePar\EndP\HCode{<div class="title">}\begingroup\bf} + {\endgroup\IgnorePar\HCode{</div>}} +\Css{div.title {margin-top: 0.5em;}} +\Configure{author} + {\IgnorePar\EndP\HCode{<br /><div class="author">}\IgnorePar\par} + {\IgnorePar\EndP\HCode{</div>}} + \Css{div.author{text-align:center;}} +>>> + +\<32,4 amsppt\><<< +\Configure{specialhead}{}{} + {\IgnorePar\EndP\HCode{<h1 class="amsspecialheadHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent} +\ConfigureToc{specialhead} + {\HCode{<div class="center">}\ignorespaces}{ } + {}{\HCode{</div>}} +\Configure{head}{}{} + {\IgnorePar\EndP\HCode{<h2 class="amsheadHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent} +\ConfigureToc{head} + {\ignorespaces}{ }{}{\HCode{<br />}} +\Configure{subhead}{}{} + {\IgnorePar\EndP\HCode{<h3 class="amssubheadHead"\a:LRdir>}} + {\HCode{</h3>}\IgnoreIndent} +\ConfigureToc{subhead} + {\:nbsp\:nbsp\:nbsp\:nbsp\ignorespaces} { } + {} {\HCode{<br />}} +\Configure{subsubhead}{}{} + {\IgnorePar\EndP\HCode{<h4 class="amssubsubheadHead"\a:LRdir>}} + {\HCode{</h4>}\IgnoreIndent} +\ConfigureToc{subsubhead} + {\:nbsp\:nbsp\:nbsp\:nbsp\:nbsp% + \:nbsp\:nbsp\:nbsp\ignorespaces} { } {} {\HCode{<br />}} +\Configure{block} + {\IgnorePar\EndP + \HCode{<table cellpadding="15"><tr><td>}\IgnorePar\par} + {\IgnorePar\HCode{</td></tr></table>}\IgnorePar\par} +|<amsppt captions|> +\Configure{roster} + {\IgnorePar\EndP\HCode{<table>}\let\end:item|=\empty} + {\IgnorePar\end:item\HCode{</table>}\IgnorePar\par} + {\IgnorePar\end:item \HCode{<tr style="vertical-align:top;"><td>} + \def\end:item{\EndP\HCode{</td></tr>}}} + {\:nbsp\EndP\HCode{</td><td>}\ShowPar} + {\IgnorePar\EndP\HCode{<table>}\let\end:iitem|=\empty} + {\IgnorePar\end:iitem\HCode{</table>}\IgnorePar\par} + {\IgnorePar\end:iitem\HCode{<tr style="vertical-align:top;"><td>}} + {\HCode{</td><td>} + \def\end:iitem{\EndP\HCode{</td></tr>}}} +|<bib in amsppt.sty|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%% +\section{amstex.tex} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<amstex.tex m:env\><<< +|<amsmath / amstex1 m:env|> +>>> + +\<NO\><<< +\def\m:env#1{\:xhtml{\IgnorePar\EndP}\HCode{<div class="center"><table class="#1" + border="0" cellpadding="0" cellspacing="15"><tr><td>}} +\def\endm:env{\HCode + {</td></tr></table></center>}\IgnorePar} + \Css{div.center{text-align:center;}} +>>> + +\<amsmath / amstex1 m:env\><<< +\def\m:env#1{\relax\ifmmode\else\par\fi\:xhtml{\IgnorePar\EndP}% + \HCode{<div class="center-#1"><table class="#1"\Hnewline + border="0" cellpadding="0" cellspacing="15"><tr><td>} + \Css{div.center-#1{text-align: center;}} + } +\def\endm:env{\:xhtml{\IgnorePar\EndP}% + \HCode{</td></tr></table></center>}\IgnorePar + \ifmmode\else\par\fi} +>>> + + +\<shared amstex.tex matrix 4.0t\><<< +\Configure{linebreak}{\HCode{<br />}} +|<amstex.tex m:env|> +>>> + +\<configure html4-math amstex\><<< +\Configure{pmatrix} + {\bgroup\m:env{pmatrix}} + {\endm:env\egroup} +\Configure{smallmatrix} + {\bgroup\m:env{smallmatrix}\Picture+{}} + {\EndPicture\endm:env\egroup} + {}{} {}{} +\Configure{bmatrix} + {\bgroup\m:env{bmatrix}} + {\endm:env\egroup} +\Configure{vmatrix}{\bgroup\m:env{vmatrix}}{\endm:env\egroup} +\Configure{Vmatrix}{\bgroup\m:env{Vmatrix}}{\endm:env\egroup} +\Configure{aligned} + {\bgroup\m:env{aligned}\Picture+{}} + {\EndPicture\endm:env\egroup} + {}{}{}{} +\Configure{xalignat} + {\bgroup\m:env{xalignat}} + {\endm:env\egroup} + {}{}{}{} +\Configure{xxalignat} + {\bgroup\m:env{xxalignat}} + {\endm:env\egroup} + {}{}{}{} +\Configure{multline} + {\bgroup\m:env{multline}\Picture+{}\vtop\bgroup$$} + {$$\egroup\EndPicture\endm:env\egroup} + {}{} +\Configure{alignedat} + {\bgroup\m:env{alignedat}\Picture+{}} + {\EndPicture\endm:env\egroup} + {}{}{}{} +\Configure{gathered} + {\bgroup\m:env{gathered}\Picture+{}} + {\EndPicture\endm:env\egroup} + {}{}{}{} +>>> + +% \Configure{topaligned}{\m:env{topaligned}}{\endm:env} +% \Configure{botaligned}{\m:env{botaligned}}{\endm:env} + +\<configure html4-math amstex\><<< +|<shared amstex.tex matrix 4.0t|> +|<tabular amstex.tex matrix 4.0t|> +|<tabular amstex.tex align 4.0t|> +|<nonpic amstex.tex cases 4.0t|> +\:CheckOption{pic-matrix} \if:Option + \Configure{matrix} + {\m:env{matrix}\Picture+{}} {\EndPicture\endm:env} + {}{} {}{} +\else + \Log:Note{for pictorial matrix, + use the command line option `pic-matrix'} +\fi +\:CheckOption{pic-align} \if:Option + \Configure{align} + {\m:env{align}\Picture+{}} \EndPicture{\endm:env} + {} {} {} {} +\else + \Log:Note{for pictorial align, + use the command line option `pic-align'} + \Configure{align} + {\HCode{<table\Hnewline class="align">}} {\HCode{</table>}} + {\HCode{<tr\Hnewline>}} {\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +\fi +\:CheckOption{pic-cases} \if:Option + \Configure{cases} + {\m:env{cases}\Picture+{}}{\EndPicture\endm:env} +\else + \Log:Note{for pictorial cases, + use the command line option `pic-cases'} +\fi +\Configure{alignat} + {\bgroup\m:env{alignat}\Picture+{}} + {\EndPicture\endm:env \egroup} + {}{} {}{} +\Configure{gather} + {\bgroup\m:env{gather}\Picture+{}} + {\EndPicture\endm:env\egroup} + {}{} {}{} +|<32,4 picmath amstex.tex|> +>>> + +\<32,4 picmath amstex.tex\><<< +\Configure{frac}{\Picture+{ style="text-align:middle"}}{\EndPicture} +\Configure{dfrac}{\Picture+{ style="text-align:middle"}}{\EndPicture} +\Configure{tfrac}{\Picture+{ style="text-align:middle"}}{\EndPicture} +\Configure{binom}{\Picture+{ style="text-align:middle"}}{\EndPicture} +\Configure{dbinom}{\Picture+{ style="text-align:middle"}}{\EndPicture} +\Configure{tbinom}{\Picture+{ style="text-align:middle"}}{\EndPicture} +\Configure{boxed}{\Picture+{ style="text-align:middle"}}{\EndPicture} +>>> + +\<tabular amstex.tex matrix 4.0t\><<< +\Configure{matrix} + {\HCode{<table\Hnewline class="matrix">}} {\HCode{</table>}} + {\HCode{<tr\Hnewline>}} {\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +\Configure{cases}{\m:env{cases}}{\endm:env} +>>> + + + +\section{amsthm.sty} + +\<configure html4 amsthm\><<< +\ConfigureEnv{proof}{\par\leavevmode}{\par\ShowPar}{}{} +|<shared ams thm/cls|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{amsmath} +%%%%%%%%%%%%%%%%%%%% + +AmsMath redefines display math to equation*. We should follow it, but not in the MathJax mode. + +\<configure html4-math amsmath\><<< +\ifOption{mathjax}{}{% +\DeclareRobustCommand\[{% +\bgroup% + \mathdisplay@push% + \st@rredtrue \global\@eqnswfalse% + \mathdisplay{equation*}% +\csname st:Math\endcsname +} + +\DeclareRobustCommand\]{% +\csname ed:Math\endcsname + \endmathdisplay{equation*}% + \mathdisplay@pop% + \ignorespacesafterend% +\egroup +} +\Configure{[]}{\protect\nested:math}{} +}% +>>> + +\<configure html4-math amsmath\><<< +\Configure{equation} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<table\Hnewline class="equation"><tr><td>}\IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP\HCode{</td><td class="equation-label">}} + {\end:TTT\ifmmode\else |<try inline par|>\fi} +\Configure{equation*} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<table\Hnewline class="equation-star"><tr><td>}\IgnorePar + } + {\end:TTT\ifmmode\else |<try inline par|>\fi} +\Css{.equation td{text-align:center; }} +\Css{.equation-star td{text-align:center; }} +\Css{table.equation-star { width:100\%; }} +\Css{table.equation { width:100\%; }} +>>> + +\<configure html4-math amsmath\><<< +\Configure{equation*} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<table\Hnewline class="equation-star"><tr><td>}\IgnorePar + } + {\end:TTT\ifmmode\else |<try inline par|>\fi} +>>> + + +Equations in amsmath.sty are defined in term of gather, and +gather is a one parameter macro. Unlike laktex where the body is +read within the environment, in gather it is read at the \verb'\begin{equation}' point under the conditions that exist there. + +\<configure html4-math amsmath\><<< +\Configure{substack}{\Picture+{}}{\EndPicture} +>>> + + + +\<configure html4-math amsmath\><<< +|<amsmath / amstex1 m:env|> +>>> + +\<configure html4-math amsmath\><<< +\:CheckOption{pic-align} \if:Option + |<amsmath pic-align css|> +\else + |<amsmath align css|> +\fi +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align-star} +\:tempc{alignat*}{alignat-star} +\:tempc{xalignat*}{xalignat-star} +\:tempc{flalign*}{flalign-star} +>>> + +\<amsmath align css\><<< +\def\:tempc#1#2{% + \Configure{#1} + {\IgnorePar\EndP \HCode{<table\Hnewline class="#2">}} + {\HCode{</table>}} {\HCode{<tr>}} {\HCode{</tr>}} + {\HCode{<td\Hnewline + class="align-\ifnum \HCol>\maxfields@ label\else + \ifodd\HCol\space odd\else even\fi + \fi">}} + {\HCode{</td>}} + \ConfigureEnv{#1}{}{\par}{}{} + } +\Css{table.align, table.alignat, table.xalignat, table.xxalignat, + table.flalign + {width:95\%; margin-left:5\%; white-space: nowrap;}} +\Css{table.align-star, table.alignat-star, + table.xalignat-star, table.flalign-star + {margin-left:auto; margin-right:auto; white-space: nowrap;}} +\Css{td.align-label { width:5\%; text-align:center; }} +\Css{td.align-odd { text-align:right; padding-right:0.3em;}} +\Css{td.align-even { text-align:left; padding-right:0.6em;}} +>>> + +\<amsmath pic-align css\><<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\par\IgnorePar\EndP\HCode{<div class="align">}\Picture*[pict]{}} + {\EndPicture\EndP\HCode{</div>}\par} + {} {}} +\Css{div.align {text-align: center;}} +>>> + +\<configure html4-math amsmath\><<< +\Configure{split} + {\HCode{<table\Hnewline class="split"><tr><td>}} + {\ifvmode \IgnorePar\fi \HCode{</td></tr></table>}} + {\HCode{<br\Hnewline class="split-tr" />}} {} + {\HCode{<br\Hnewline class="split-td" />}} {} +\Configure{smallmatrix} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<table\Hnewline class="smallmatrix">}} {\HCode{</table>}} + {\HCode{<tr>}} {\HCode{</tr>}} + {\HCode{<td\Hnewline>}} {\HCode{</td>}} +>>> + + + +\<configure html4-math amsmath\><<< +\ConfigureEnv{gather*}{\m:env{gather*}}{\endm:env}{}{} +\ConfigureEnv{gathered}{\m:env{gathered}}{\endm:env}{}{} +\ConfigureEnv{matrix}{\m:env{matrix}}{\endm:env}{}{} +\ConfigureEnv{quotation}{\m:env{quotation}}{\endm:env}{}{} +\Configure{equations}{*}{} +>>> + + +A `\verb'\begin{multline}...\end{multline}' is not a standard environment +in the sense that the environment as a whole is read in one piece and +then processed, instead of reading it piecewise and process it as it +goes. That is, we have a behavior similar to that in verbatim +environments. The behavior is due to multline being implemented in +terms of \verb'\gather@#1{..}'. Hence, for the picture environment, we +need to change early the catcodes of `\verb'_' and `\verb'^'. + +\<configure html4-math amsmath\><<< +\ConfigureEnv{multline} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<table\Hnewline class="multline"><tr><td>}\Picture*{}\ExtractHLabel + } + {\EndPicture |<put HLabel|>\end:TTT} + {}{} + {}{} +\ConfigureEnv{multline*} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<table\Hnewline class="multline-star"><tr><td>}\Picture*{}% + } + {\EndPicture \end:TTT} + {}{} +|<extract amsmath labels|> +\Css{table.multline, table.multline-star {width:100\%;}} +>>> + +\<extract amsmath labels\><<< +\def\ExtractHLabel{% + \def\tagform@##1{{% + \ifx \:HLabel\:UnDef \let\:HLabel=\empty \fi + \def\tagform@####1{\expandafter\let\csname ####1\endcsname\def}% + \:HLabel + \expandafter\ifx\csname ##1\endcsname\relax + \let\tagform@=\relax + \let\HCode=\relax + \edef\:temp{\noexpand\append:def\noexpand + \:HLabel{\HCode{<br />}\tagform@{##1}\HCode{<br />}}}% + \:temp + \global\let\:HLabel=\:HLabel + \fi + }}} +\def\PutHLabel{\:HLabel} +>>> + +\<put HLabel\><<< +\ifx \:HLabel\:Undef \else + \HCode{</td><td class="equation-label">}\PutHLabel + \global\let\:HLabel\:Undef +\fi +>>> + + + + +\<configure html4-math amsmath\><<< +\ConfigureEnv{gather} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<table\Hnewline class="gather"><tr><td + class="gather1">}\Picture*{}\ExtractHLabel + } + {\EndPicture |<put HLabel|>\end:TTT} + {}{} +\Css{td.gather {text-align:center; }} +\Css{table.gather {width:100\%;}} +\ConfigureEnv{gather*} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<div\Hnewline class="gather-star">}\Picture*{}% + } + {\EndPicture \HCode{</div>}} + {}{} +\Css{div.gather-star {text-align:center;}} +>>> + + + + + +\<mathml: plain, amsmath, amstex1\><<< +\def\underarrow@#1#2#3{% + \Tg<|.munder>\Tg<|.mrow\Hnewline>#1\Tg</|.mrow>% + \Tg<|.mrow\Hnewline>#2\Tg</|.mrow>% + \Tg</|.munder>}% + +\def\overarrow@#1#2#3{% + \Tg<|.mover>\Tg<|.mrow + class="fill">#1\Tg</|.mrow>% + \Tg<|.mrow\Hnewline>{#2#3}\Tg</|.mrow>% + \Tg</|.mover>}% +>>> + +\<mathml: plain, fontmath, amsmath, amstex1\><<< +\def\overrightarrow{\mathpalette{\overarrow@\rightarrow}} +\def\overleftarrow{\mathpalette{\overarrow@\leftarrow}} +\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrow}} + +\def\underrightarrow{\mathpalette{\underarrow@\rightarrow}} +\def\underleftarrow{\mathpalette{\underarrow@\leftarrow}} +\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrow}} +>>> + + +\<mathml: plain, fontmath, amsmath, amstex1NO\><<< +\def\overrightarrow{\mathpalette{\overarrow@\rightarrow}} +\def\overleftarrow{\mathpalette{\overarrow@\leftarrow}} +\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrow}} + +\def\underrightarrow{\mathpalette{\underarrow@\rightarrow}} +\def\underleftarrow{\mathpalette{\underarrow@\leftarrow}} +\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrow}} +>>> + + The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts + + +\<32,4 picmath amsmath,amstex1\><<< +|<32,4 picmath: plain, fontmath, amsmath, amstex1|> +>>> + +\<configure html4-math amsmath\><<< +|<32,4 picmath amsmath,amstex1|> +>>> + +\<configure html4-math amsmath\><<< +\Configure{overset} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{underset} {\Picture+{ \a:@Picture{}}} {\EndPicture} +>>> + + +\<configure html4-math amsmath\><<< +\Configure{xrightarrow} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{xleftarrow} {\Picture+{ \a:@Picture{}}} {\EndPicture} +\Configure{genfrac} + {\Picture+{}\bgroup} {}{}{}{}{\egroup\EndPicture} +>>> + +\section{amstex.sty (amstex1)} + +\<configure html4 amstex1\><<< +\ConfigureEnv{aligned}{\m:env{aligned}}{\endm:env}{}{} +|<amsmath / amstex1 m:env|> +>>> + + +\<configure html4-math amstex1\><<< +|<32,4 picmath amsmath,amstex1|> +\ConfigureEnv{equation*}{\m:env{equation*}}{\endm:env}{}{} +\ConfigureEnv{equation}{\m:env{equation}}{\endm:env}{}{} +\Configure{eqn}{\HCode{</td><td>}} +\ConfigureEnv{align}{\m:env{align}}{\endm:env}{}{} +\ConfigureEnv{align*}{\m:env{align*}}{\endm:env}{}{} +\ConfigureEnv{alignat}{\m:env{alignat}}{\endm:env}{}{} +\ConfigureEnv{alignat*}{\m:env{alignat*}}{\endm:env}{}{} +\ConfigureEnv{xalignat}{\m:env{xalignat}}{\endm:env}{}{} +\ConfigureEnv{xxalignat}{\m:env{xxalignat}}{\endm:env}{}{} +\ConfigureEnv{xalignat*}{\m:env{xalignat*}}{\endm:env}{}{} +\ConfigureEnv{aligned}{\m:env{aligned}}{\endm:env}{}{} +\ConfigureEnv{alignedat}{\m:env{alignedat}}{\endm:env}{}{} +\ConfigureEnv{gather}{\m:env{gather}}{\endm:env}{}{} +\ConfigureEnv{gather*}{\m:env{gather*}}{\endm:env}{}{} +\ConfigureEnv{gathered}{\m:env{gathered}}{\endm:env}{}{} +\ConfigureEnv{matrix}{\m:env{matrix}}{\endm:env}{}{} +\ConfigureEnv{multline}{\m:env{multline}}{\endm:env}{}{} +\ConfigureEnv{multline*}{\m:env{multline*}}{\endm:env}{}{} +\ConfigureEnv{pmatrix}{\m:env{pmatrix}}{\endm:env}{}{} +\ConfigureEnv{bmatrix}{\m:env{bmatrix}}{\endm:env}{}{} +\ConfigureEnv{vmatrix}{\m:env{vmatrix}}{\endm:env}{}{} +\ConfigureEnv{Vmatrix}{\m:env{Vmatrix}}{\endm:env}{}{} +\Configure{gather}{\Picture*{}}{\EndPicture} +>>> + + + + + +\<config amstex1 pic-math utilities\><<< +\Configure{aligned} + {\Picture*{}}{\EndPicture} {}{}{}{} +>>> + +\<configure html4-math amstex1\><<< +\Configure{dotsc} {\pic:sym{dotsc}} +\Configure{dotso} {\pic:sym{dotso}} +>>> + + + +\<configure html4-math amsmath\><<< +\Configure{intertext} + {\IgnorePar \ifinalign@ + \HCode{\ifnum \HRow>0 </td></tr>\fi<tr><td + colspan="\ifnum \HRow>0 \HCol\else 15\fi" + class="intertext">}% + \else \ifingather@ + \HCode{<tr><td colspan="\HCol" class="intertext">}% + \fi\fi + } + {\ifvmode \IgnorePar \fi \EndP\ifinalign@ + \HCode{</td></tr>\ifnum \HRow>0 <tr><td>\fi}% + \else \ifingather@ + \HCode{</td></tr>}% + \fi\fi + } +>>> + + + +\<configure html4-math amsmath\><<< +\Configure{@begin} + {split} + {\ifx \EndPicture \:UnDef \else \let\tagform@=\:gobble \fi} +>>> + + + + + +%%%%%%%%%%%%%%%%% +\section{amscd} +%%%%%%%%%%%%%%%%%% + +\<configure html4 amscd\><<< +\ConfigureEnv{CD} + {\Picture*{ class="CD"}$} {$\EndPicture} {}{} +\Css{.CD {text-align:center}} +>>> + + + + + + + +%%%%%%%%%%%%%%%% +\section{Memoir} +%%%%%%%%%%%%%%%%% + +\<configure html4 memoir\><<< +\Configure{poemline} + {\HCode{<span class="poemline">}} {\HCode{</span>}} +\Css{.poemline {text-align:right; width:6em;}} + +\Configure{legend}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="legend">}}{\HCode{</div>}} + +\Configure{book} +{\ifvmode\IgnorePar\fi\EndP\HCode{<h2 class="bookHead"><span class="booknumber">}% +\bookname\refstepcounter{book}\space\thebook\HtmlParOff\HCode{</span><span class="booktitle">}} +{\HCode{</span></h2>}\HtmlParOn}{}{} +\Css{.booknumber{display:block;}} +\Configure{toToc}{book}{part} + +|<abstract|> +>>> + + +%%%%%%%%%%%%%%%% +\section{Elsvier Articles (elsart)} +%%%%%%%%%%%%%%%%% + +\<configure html4 elsart\><<< +\Configure{abstract} + {\HCode{<div\Hnewline class="abstract">}\par\ShowPar} + {} + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}} +\Configure{keyword} + {\HCode{<div\Hnewline class="keyword">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} +\ConfigureEnv{abstract} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +\ConfigureEnv{keyword} + {\ifvmode \IgnorePar\fi \EndP} + {\ifvmode \IgnorePar\fi \EndP} + {}{} +\Css{div.abstract, div.abstract p, div.keyword {width:100\%; + text-align:left; margin-left:0em; margin-right:0em; +}} +\Css{div.abstract { border-top: 1px solid black; }} +\Css{div.keyword{ border-bottom: 1px solid black;}} +>>> + +\<configure html4 elsart\><<< +\ConfigureEnv{frontmatter} + {\EndP\IgnorePar + \HCode{<div class="frontmatter"\Hnewline>}} + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}\IgnorePar} + {}{} +\Css{div.frontmatter {text-align:center; width:100\%;}} +>>> + +\<configure html4 elsart\><<< +\Configure{address} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div\Hnewline class="address">}} + {\ifvmode\IgnorePar\fi \EndP + \HCode{</div>}\ShowPar} +>>> + + +%%%%%%%%%%%%%%%%%%%%% +\section{American Psychological Association (APA)} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 apa\><<< +|<apa maketitle|> +|<apa abstract|> +|<apa captions|> +|<apa lists|> +\Configure{note} + {\HCode{<div class="note">}\bgroup + |<apa maketitle br cr|>% + } + {\egroup \HCode{</div>}} +\Css{div.note{text-align:left; margin-top:1em; }} +>>> + + +\<apa lists\><<< +\ConfigureList{enumerate}% + {|<enumerate I|>} + {|<enumerate II|>} + {|<enumerate III|>} + {|<enumerate IV|>} +\ConfigureList{APAenumerate}% + {|<enumerate I|>} + {|<enumerate II|>} + {|<enumerate III|>} + {|<enumerate IV|>} +\Configure{seriate} + {\HCode{<span class="seriate">}\let\end:seriate=\empty} + {\end:seriate\HCode{</span>}} + {\end:seriate \def\end:seriate{\HCode{</span>}}% + \HCode{<span class="seriate-item">}\HCode{<span class="seriate-label">}} + {\HCode{</span>}} +\ConfigureList{APAitemize}% + {\EndP\HCode{<ul class="itemize" \a:LRdir >}\PushMacro\end:itm + \global\let\end:itm=\empty + } + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{</li></ul>}\ShowPar + } + {\end:itm \gdef\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="itemize">}\AnchorLabel } +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{JHEP} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 JHEP\><<< +|<latex shared part config|> +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<acm paragraph config|> +\Css{.sectionHead, .partHead{text-transform:uppercase}} +\Css{.subsubsectionHead, .likesubsubsectionHead {font-style: italic;}} +>>> + +\<configure html4 JHEP\><<< +\Configure{abstract} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="abstract">}\IgnoreIndent} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{accepted} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="accepted">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{author} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="author">}\par \ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{conference} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="conference">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{dedicated} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="dedicated">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{keywords} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="keywords">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{preprint} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="preprint">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{received} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="received">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{title} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="title">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{.abstract{margin-top:1em; margin-bottom:1em;}} +\Css{.accepted{margin-top:1em; margin-bottom:1em; text-align:right;}} +\Css{div.author{margin-top:1em; margin-bottom:1em; margin-left:2em;}} +\Css{.conference{margin-top:1em; margin-bottom:1em;}} +\Css{.dedicated{margin-top:1em; margin-bottom:1em;}} +\Css{.keywords{margin-top:1em; margin-bottom:1em;}} +\Css{.preprint{margin-top:1em; margin-bottom:1em;}} +\Css{.received{margin-top:1em; margin-bottom:1em; text-align:right;}} +\Css{.title{margin-top:1em; margin-bottom:1em;}} +>>> + +\<configure html4 JHEP\><<< +|<config bibitem|> +|<thebib config|> +|<JHEP maketitle footnote|> +>>> + +\<JHEP thanks author date and\><<< +\Configure{thanks} + {\HCode{<div class="thanks">}}{\HCode{</div>}} +|<thank for thanks|> +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + +\<JHEP end-thanks author date and\><<< +\Configure{thanks} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\ifvmode\IgnorePar\fi\EndP\egroup\RecallEndP } +|<thanks for thanks EndP|> +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{acm-proc-article-sp} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html4 acm-proc-article-sp\><<< +|<config bibitem|> +|<acm-proc-article-sp thebib config|> +|<config captions|> +|<acm proof|> +>>> + + + +\<configure html4 acm-proc-article-sp\><<< +\Configure{qed} + {\Picture+[Q.E.D.]{}\o:qed:\EndPicture + \SavePicture\qed:sym[Q.E.D.]} +>>> + +\<configure html4 acm-proc-article-sp\><<< +|<latex shared part config|> +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<acm paragraph config|> +\Css{.sectionHead, .partHead{text-transform:uppercase}} +\Css{.subsubsectionHead, .likesubsubsectionHead {font-style: italic;}} +>>> + +\<acm paragraph config\><<< +\ConfigureMark{paragraph} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\theparagraph\space + \HCode{</span>}\fi} +\Configure{paragraph}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{<h5 class="paragraphHead"\a:LRdir>}% + \TitleMark\space \HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent\egroup} +\Configure{likeparagraph}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{<h5 class="likeparagraphHead"\a:LRdir>}% + \HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent\egroup} +\Css{.paragraphHead, .likeparagraphHead { font-style:italic; }} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{scrbook} +%%%%%%%%%%%%%%%%%%%% + +\<configure html4 scrbook\><<< +|<scr article,report,book|> +|<scr report,book|> +|<shared bib env|> +|<thebib config|> +|<description 4|> +%\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +\def\:tempa{ + \CutAt{part} + \CutAt{likepart} + |<cut toc scr: part|>% +} +\def\:tempb{ + |<tocat scr: part|> + \CutAt{chapter,likechapter,addchap,appendix,part} + \CutAt{likechapter,addchap,appendix,part} + \CutAt{addchap,chapter,likechapter,appendix,part} + \CutAt{appendix,chapter,likechapter,addchap,part} + |<tocat: ch|>% +} +\def\:tempc{ + |<tocat scr: ch|>% + \CutAt{section,likesection,chapter,likechapter,addchap,appendix,part} + \CutAt{likesection,chapter,likechapter,addchap,appendix,part} + |<cut toc: sec|>% +} +\def\:tempd{ + |<tocat scr: section|>% + |<tocat scr: subsection|>% + |<cut toc: subsec|>% +} + +\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \:tempd \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax \:tempa \:tempc + \else \:tempa \:tempb \fi +\else\:CheckOption{1} \if:Option + \:tempa +\else + \Log:Note{for sectioning pagination, + use the command line option `1', `2', or `3'}% +\fi \fi \fi \fi + +\:CheckOption{1} \if:Option + |<toc scrbook options 1|> +\fi + +|<scrbook end units|> +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi + +|<config lists of figures and tables|> + +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} + +\ConfigureMark{subparagraph}{\thesubparagraph} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +\ConfigureEnv{picture} + {\bgroup\ifvmode \Configure{HtmlPar} + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center" \a:LRdir>}}% + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center" \a:LRdir>}}% + {\:xhtml{\Tg</p>}}{\:xhtml{\Tg</p>}} \ShowPar\leavevmode + \fi} + {\egroup}{}{} +|<quote config|> +|<book-report-article index|> +|<scr reprt/book captions|> +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>\par\ShowPar} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +|<base font size|> +|<quotations|> +\Configure{listof}{}{}{}{\HCode{<br />}}{}{ } +|<latex shared part config|> +>>> + +\<scrbook end-thanks author date and\><<< +\Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<br class="and" \a:LRdir/>}} + {\HCode{<br />}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + + + +\<scrbook thanks author date and\><<< +\Configure{thanks author date and} + {\HCode{<div class="thanks" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} + +>>> + + +\<scr report,book\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\thesection\HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark\ \ \HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \ShowPar \par} +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \ShowPar\par} +\Configure{likesectionTITLE+}{#1} +>>> + + + + +\<scr report,book\><<< +|<shared h5 subsubsection|> +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \thechapter\HCode{</span>}} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}\TitleMark{}.\ \ } + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{likechapterTITLE+}{#1} +\Configure{addchap}{}{} + {\IgnorePar\EndP\HCode{<h2 class="addchapHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +>>> + +\<configure html4 scrbook\><<< +\ConfigureMark{chapter} + {\if@mainmatter + \HCode{<span class="titlemark">}\thechapter\HCode{</span>}\ \ \fi} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark{}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\if@mainmatter\thechapter\space\fi#1} +\renewcommand\thechapter {\if@mainmatter\@arabic\c@chapter\fi} +>>> + +\<configure html4 scrreprt\><<< +\ConfigureMark{chapter} + {\HCode{<span class="titlemark">}\thechapter\HCode{</span>}\ \ } +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark{}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\thechapter\space#1} +>>> + +\<scr article,report,book\><<< +\ConfigureMark{minisec}{} +\Configure{minisec}{}{} + {\ifvmode \IgnorePar \fi \EndP + \bgroup \IgnorePar\HCode{<h5 class="minisecHead"\a:LRdir>}% + \TitleMark\space \HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent\egroup\par\ShowPar} +>>> + +\<scrbook end units\><<< +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsection} + {likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endchapter}{likechapter,addchap,appendix,part,likepart} +\Configure{endlikechapter}{chapter,appendix,part,likeparaddchap,addchap} +\Configure{endaddchap}{chapter,likechapter,appendix,part,likepart} +\Configure{endappendix}{chapter,likechapter,addchap,part,likepart} +>>> + + +%%%%%%%%%%%%%%%%%%% +\section{scrreprt} +%%%%%%%%%%%%%%%%%%% + + + + +\<configure html4 scrreprt\><<< +%\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} + +|<shared bib env|> +|<thebib config|> + +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi + +|<config lists of figures and tables|> +\ConfigureEnv{picture} + {\bgroup\ifvmode \Configure{HtmlPar} + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center" \a:LRdir>}}% + {\EndP\HCode{<!--l. \the\inputlineno-->% +}\HCode{<p + class="center" \a:LRdir>}}% + {\:xhtml{\Tg</p>}}{\:xhtml{\Tg</p>}} \ShowPar\leavevmode + \fi} + {\egroup}{}{} + +|<quote config|> +|<book-report-article index|> +|<scr reprt/book captions|> + +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>\par\ShowPar} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +|<base font size|> +|<quotations|> + +\Configure{listof}{}{}{}{\HCode{<br />}}{}{ } + + +|<latex shared part config|> + +\ConfigureEnv{abstract}{\:xhtml{\IgnorePar\EndP}\HCode + {<table\Hnewline class="abstract"><tr><td\Hnewline>}} + {\EndP\HCode{</td></tr></table>}}{}{} +\Css{.abstract p {margin-left:5\%; margin-right:5\%;}} +\Css{table.abstract {width:100\%;}} + +\def\:tempa{ + \CutAt{part} + \CutAt{likepart} + |<cut toc scr: part|>% +} +\def\:tempb{ + |<tocat scr: part|>% + \CutAt{chapter,likechapter,addchap,appendix,part} + \CutAt{likechapter,addchap,appendix,part} + \CutAt{addchap,chapter,likechapter,appendix,part} + \CutAt{appendix,chapter,likechapter,addchap,part} + |<tocat: ch|>% +} +\def\:tempc{ + |<tocat scr: ch|>% + \CutAt{section,likesection,chapter,likechapter,addchap,appendix,part} + \CutAt{likesection,chapter,likechapter,addchap,appendix,part} + |<cut toc: sec|>% +} +\def\:tempd{ + |<tocat scr: section|>% + |<tocat scr: subsection|>% + |<cut toc: subsec|>% +} + +\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \:tempd \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \:tempa \:tempc \:tempd + \else \:tempa \:tempb \:tempc \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax \:tempa \:tempc + \else \:tempa \:tempb \fi +\else\:CheckOption{1} \if:Option + \:tempa +\else + \Log:Note{for sectioning pagination, + use the command line option `1', `2', or `3'}% +\fi \fi \fi \fi + +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<scrreprt end units|> +\Configure{addchapTITLE+}{#1} +\def\tocaddchap#1#2#3{\par + \HCode{<span class="addchapToc" \a:LRdir>}#2\HCode{</span>}\par}% +>>> + + +\<scrreprt end-thanks author date and\><<< +\Configure{thanks author date and} + {\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi} + {\EndP\egroup\RecallEndP } + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<br class="and" \a:LRdir/>}} + {\HCode{<br />}} +|<thanks for thanks p|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + +\<scrreprt thanks author date and\><<< +\Configure{thanks author date and} + {\HCode{<div class="thanks" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="author" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<div class="date" \a:LRdir>}}{\HCode{</div>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +|<thank for thanks|> +\Css{div.author, div.date {text-align:center;}} +\Css{div.thanks{text-align:left; margin-left:10\%; font-size:85\%; + font-style:italic; }} +>>> + +\<configure html4 scrartcl\><<< +|<scr article,report,book|> +>>> + +\<configure html4 scrreprt\><<< +|<scr article,report,book|> +|<scr report,book|> +|<description 4|> +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} + +\ConfigureMark{subparagraph}{\thesubparagraph} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + +\<scrreprt end units\><<< +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} + +\Configure{endsection} + {likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,addchap,appendix,part,likepart} + +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} + +\Configure{endaddchap}{likechapter,appendix,part,likepart,chapter} +\Configure{endchapter}{likechapter,appendix,part,likepart,addchap} +\Configure{endlikechapter}{chapter,appendix,part,likepart,addchap} +\Configure{endappendix}{chapter,likechapter,part,likepart,addchap} +>>> + + +%%%%%%%%%%%%%% +\section{Europe CV} +%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{General} +%%%%%%%%%%%%% + +The following configuration is for the main page which is typeset as a +longtable + +\<configure html4 europecv\><<< +\Css{table.longtable[rules] {border-left:0pt; border-right:0pt; }} +\Css{table.longtable td.td00{ padding-left:5pt; padding-right:5pt; }} +>>> + +\<configure html4 europecv\><<< +\Configure{telephone} + {\HCode{<span class="phone">}} + {\HCode{</span>}} + {\HCode{<span class="mobile">}} + {\HCode{</span>}} +\Css{span.phone{margin-right:2em;}} +>>> + + +%%%%%%%%%%%%% +\subsection{Language} +%%%%%%%%%%%%% + + + +\<configure html4 europecv\><<< +\Configure{languageheader} + {\hbox{\HCode{<div class="languageheader">}}% + \Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table>}} + {\HCode{</table>}} + {\HCode{<tr class="languageheader-tr-\HRow">}} + {\HCode{</tr>}} + {\HCode{<td class="languageheader-\HCol" + \ifnum \HMultispan>1 colspan="\HMultispan"\fi>}% + \Configure{HtmlPar}{}{}{}{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td>}}% + } + {\hbox{\HCode{</div>}}} +\Css{.languageheader-tr-1 .languageheader-1 td, + .languageheader-tr-1 .languageheader-3 td + { width:40\%; text-align:center; }} +\Css{.languageheader-tr-1 .languageheader-5 td + { width:20\%; text-align:center; }} +\Css{.languageheader-tr-2 td + { width:20\%; text-align:center; + white-space:normal; }} +\Css{.languageheader {border-top:solid black 2pt; + border-bottom:solid black 1pt; }} +>>> + + +\<configure html4 europecv\><<< +\Configure{ecvCEF} + {\hbox{\HCode{<div class="language-cell">}}% + \Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table>}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td class="language-cell-\HCol" + \ifnum \HMultispan>1 colspan="\HMultispan"\fi >}% + \Configure{HtmlPar}{}{}{}{}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td>}}% + } + {\hbox{\HCode{</div>}}} +>>> + + +\<configure html4 europecv\><<< +\Configure{language} + {\hbox{\HCode{<div class="language">}}% + \Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table>}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td class="language-\HCol" + \ifnum \HMultispan>1 colspan="\HMultispan"\fi >}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td>}}% + } + {\hbox{\HCode{</div>}}} +>>> + + +\<configure html4 europecv\><<< +\Configure{lastlanguage} + {\hbox{\HCode{<div class="lastlanguage">}}% + \Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table>}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td class="lastlanguage-\HCol" + \ifnum \HMultispan>1 colspan="\HMultispan"\fi >}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td>}}% + } + {\hbox{\HCode{</div>}}} +>>> + + +\<configure html4 europecv\><<< +\Css{.lastlanguage-1, .lastlanguage-2, .lastlanguage-3, + .lastlanguage-4, .lastlanguage-5, + .language-1, .language-2, .language-3, .language-4, .language-5 + { width: 20\%; white-space:normal; }} +\Css{div.language {border-bottom:solid black 1pt;} } +\Css{div.lastlanguage {border-bottom:solid black 2pt;} } +\Css{.language td{ padding-top:0pt; padding-bottom:0pt; } } +\Css{div.languageheader table, + div.lastlanguage table, + div.language table { width:100\%; }} +\Css{div.language-cell td { text-align:center; }} +\Css{div.language-cell td.language-cell-1 { width:3em; }} +>>> + + + + + + + + +%%%%%%%%%%%%%% +\section{Res} +%%%%%%%%%%%%%% + +\<configure html4 res\><<< +\ConfigureEnv{resume} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="resume">}\let\endHR=\empty} + {\ifvmode \IgnorePar\fi \EndP + \HCode{\endHR</div>}} + {} {} +\def\c:secnumdepth{-1} + +\Configure{overlapped-section} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar } + {\ifvmode \IgnorePar\fi \EndP\IgnorePar \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h4 class="sectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h4>}% + \HCode{<div class="section">}% + \HtmlParOn \ShowPar \IgnoreIndent \csname par\endcsname} + +\ConfigureEnv{tabbing} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table class="tabbing">}} + {\ifvmode \IgnorePar\fi \HCode{</table>}\par\ShowPar} + {} {} + +\Configure{tabbing} + {\ifvmode \IgnorePar\fi \HCode{<tr>}} + {\HCode{</tr>}} + {\ifvmode \IgnorePar\fi \HCode{<td class="tabbing">}} + {\ifvmode \IgnorePar\fi \HCode{</td>}} + +\Css{table.tabbing {width:100\%; margin-top:1em;}} +\Css{td.tabbing {width:33\%;}} +\Css{div.section {margin-left:3em;}} +>>> + + +\<configure html4 res\><<< +\Configure{centeraddresses} + {} {} + {\HCode{<table class="center-addresses"><tr><td class="first-address">}} + {\HCode{</td><td class="second-address">}} + {\HCode{</td></tr></table>}} +\Css{.center-addresses {width:100\%}} +>>> + +\<configure html4 res\><<< +\Configure{linename} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="linename">}} + {\HCode{</div><hr />}\par} +\Configure{lineaddress} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="line-address">}} + {\HCode{<br />}} + {\HCode{</div>}} +\Css{.line-address {text-align:right;}} +>>> + +\<configure html4 res\><<< +\Configure{boxed-section} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="section"><tr><td class="section">}\par + } + {\ifvmode \IgnorePar\fi \EndP + \HCode{</td></tr></table>}\par} + {\ifvmode \IgnorePar\fi \HtmlParOff} + {\HCode{</td><td class="section-body">}\HtmlParOn\par\ShowPar} +\Css{table.section td{ vertical-align:top;}} +\Css{td.section {padding-right:2em; width:20\%;}} +\Css{table.section {margin-top:1em;}} +>>> + +\<configure html4 res\><<< +\ConfigureEnv{position} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="position">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {}{} +\Css{.position table {width:100\%;}} +>>> + +%%%%%%%%%%%%%% +\section{aa} +%%%%%%%%%%%%%% + +\<configure html4 aa\><<< + |<makeketitle config 4.0t|> + |<configure aa 3.2/4.0t|> +|<latex shared part config|> +|<latex config div 4.0t|> +|<latex shared div config|> +|<shared bib env|> +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi +>>> + +\subsection{Sizes of Fonts} + +pages should honor the base font sizes the +readers choose for their browsers. Hence, under this assumption, all +tex4ht should do is just assure appropriate relative dimensions for +fonts of other sizes. To meet this end, I modified latex.4ht to +automatically include + + \verb'{\Configure{Needs}{Font\string_Size: #1}\Needs{1...}}' + +when options 11pt and 12pt are listed in \verb'\documentclass'. +\<article,report,book\><<< +|<base font size|> +>>> +> + +\<base font size\><<< +{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize + \or \Needs{11}\or \Needs{12}\else \fi} +>>> + + +\<ams art,proc,book\><<< +|<base font size|> +>>> + + + + + + + +\<latex config div 4.0t\><<< +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<latex shared paragraph config|> +>>> + + + +% \Css{.titlemark{margin-right:0.7em;}} abuses NS 4.7 + +\<latex shared section config\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@seccntformat{section}% + \HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h3>}\HtmlParOn\ShowPar \IgnoreIndent \par} +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \ShowPar \par} +\Configure{likesectionTITLE+}{#1} +>>> +% \def\HCode{<#1>}{\HCode{<#1>}} + + + +The \verb=\ShowPar= is required for examples like below. + +\begin{verbatim} +\documentclass{book} + \usepackage{titlesec} +\begin{document} + +\section*{foobar} +a \par b +\end{document} +\end{verbatim} + + + + + +\<latex shared subsection config\><<< +|<shared h5 subsubsection|> +|<shared h4 subsection|> +>>> + + +\<latex shared paragraph config\><<< +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\par\IgnorePar} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\par\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} +>>> + +\<latex config div 4.0t\><<< +\ConfigureMark{subparagraph}{} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + +\<32,4 latex\><<< +\ConfigureEnv{picture} + {\bgroup\ifvmode \Configure{HtmlPar} + {\EndP\HCode{|<show input line no|>}\HCode{<p + class="center" \a:LRdir>}}% + {\EndP\HCode{|<show input line no|>}\HCode{<p + class="center" \a:LRdir>}}% + {\:xhtml{\Tg</p>}}{\:xhtml{\Tg</p>}} \ShowPar\leavevmode + \fi} + {\egroup}{}{} +>>> + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{ltxguide} +%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 ltxguide\><<< +\Configure{m} + {\HCode{\string&\#x2329;}} + {\HCode{\string&\#x232A;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Polish: mwart.cls, mwrep.cls, mwbk.cls} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 mwart\><<< +|<mwcls divs|> +|<mwcls tocs|> +|<mwart tocs|> +|<cut and toc at for options 1, 2, 3|> |%should be after mw ... tocs|% +|<mwcls configs|> +>>> + + +\<configure html4 mwrep\><<< +|<mwcls divs|> +|<mw rep/bk divs|> +|<mwcls tocs|> +|<mw rep/bk tocs|> +|<cut and toc at for options 1, 2, 3|> |%should be after mw ... tocs|% +|<mwcls configs|> +>>> + +\<configure html4 mwbk\><<< +|<mwcls divs|> +|<mw rep/bk divs|> +|<mwcls tocs|> +|<mw rep/bk tocs|> +|<cut and toc at for options 1, 2, 3|> |%should be after mw ... tocs|% +|<mwcls configs|> +>>> + +\<mwcls configs\><<< +|<mwcls index|> +|<config captions|> +|<shared bib env|> +|<thebib config|> +%\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +|<config lists of figures and tables|> +\ConfigureList{description}% + {\EndP\HCode{<dl \a:LRdir class="description">}% + \PushMacro\end:itm +\global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm +\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="description">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="description">}} + +|<quote config|> +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>\par\ShowPar} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} + +{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize + \or \Needs{11}\or \Needs{12}\else \fi} + +|<quotations|> +\Configure{listof}{}{}{}{\HCode{<br />}}{}{ } + +\ConfigureEnv{abstract} + {\IgnorePar\EndP + \HCode{<table\Hnewline class="abstract"><tr><td\Hnewline>}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP\HCode{</td></tr></table>}}{}{} +\Css{.abstract p {margin-left:5\%; margin-right:5\%;}} +\Css{table.abstract {width:100\%;}} +>>> + + +\<mwcls divs\><<< +\ConfigureMark{part} + {\ifHeadingNumbered \HCode{<span class="titlemark">}\partname + \space \HeadingNumber \HCode{</span>}\fi} +\Configure{part}{}{} + {\NoFonts\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h1 class="partHead"\a:LRdir>}\TitleMark + \HCode{<br />}\HtmlParOff} + {\HCode{</h1>}\HtmlParOn \EndNoFonts \IgnoreIndent \par} +\Configure{partTITLE+}{\thepart\space #1} +\Css{h1.partHead{text-align: left}} +>>> + +\<mwcls divs\><<< +\Configure{likepart}{}{} + {\IgnorePar\EndP\HCode{<h1 class="likepartHead"\a:LRdir>}} + {\HCode{</h1>}\IgnoreIndent\par} +\Configure{likepartTITLE+}{#1} +>>> + +\<mw rep/bk divs\><<< +\ConfigureMark{chapter} + {\ifHeadingNumbered \HCode{<span class="titlemark">}\mw@seccntformat + \HeadingNumber \HCode{</span>}\fi} +\Configure{chapter}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark\HtmlParOff} + {\HCode{</h2>}\HtmlParOn \EndNoFonts \IgnoreIndent \par} +\Configure{chapterTITLE+}{\thesection\space#1} +>>> + +\<mw rep/bk divs\><<< +\Configure{likechapter}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h2 class="likechapterHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h2>}\HtmlParOn \IgnoreIndent \par} +\Configure{likechapterTITLE+}{#1} +>>> + +\<mwcls divs\><<< +\ConfigureMark{section} + {\ifHeadingNumbered \HCode{<span class="titlemark">}\mw@seccntformat + \HeadingNumber \HCode{</span>}\fi} +\Configure{section}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \EndNoFonts \ShowPar \IgnoreIndent \par} +\Configure{sectionTITLE+}{\thesection\space#1} +>>> + +\<mwcls divs\><<< +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \par} +\Configure{likesectionTITLE+}{#1} +>>> + + +\<mwcls divs\><<< +\Configure{paragraph}{}{} + {\par\ShowPar\IgnoreIndent\HCode{<span + class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} +>>> + +\<mwcls divs\><<< +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\IgnorePar} +>>> + +\<mwcls divs\><<< +\ConfigureMark{subparagraph}{} +\Configure{subparagraph}{}{} + {\par\ShowPar\IgnoreIndent + \HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + +\<mwcls divs\><<< +\Configure{likesubparagraph}{}{} + {\par\ShowPar\IgnoreIndent + \HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +>>> + +\<mwcls divs\><<< +\Configure{endpart}{likepart} +\Configure{endlikepart}{endpart} +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +>>> + + + + + +\<mwcls tocs\><<< +\ConfigureToc{part} + {\HCode{<div class="partToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likepart} + {\HCode{<div class="likepartToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{section} + {\HCode{<div class="sectionToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesection} + {\HCode{<div class="likesectionToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{subsection} + {\HCode{<div class="subsectionToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesubsection} + {\HCode{<div class="likesubsectionToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{subsubsection} + {\HCode{<div class="subsubsectionToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesubsubsection} + {\HCode{<div class="likesubsubsectionToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{paragraph} + {\HCode{<div class="paragraphToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likeparagraph} + {\HCode{<div class="likeparagraphToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +\ConfigureToc{subparagraph} + {\HCode{<div class="subparagraphToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likesubparagraph} + {\HCode{<div class="likesubparagraphToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +>>> + +\<mw rep/bk tocs\><<< +\ConfigureToc{chapter} + {\HCode{<div class="chapterToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}. } + {} + {\HCode{</div>}} +\ConfigureToc{likechapter} + {\HCode{<div class="likechapterToc" \a:LRdir><span class="mark">}} + {\HCode{</span>}} + {} + {\HCode{</div>}} +>>> + + +\<mwcls tocs\><<< +\Css{.partToc a, .partToc, .likepartToc a, .likepartToc + {line-height: 200\%; font-weight:bold; font-size:110\%;}} +\Css{.partToc, .likepartToc{text-align:center;margin-bottom:0.25em; + margin-top:0.25em;}} +>>> + +\<mwart tocs\><<< +\Css{.sectionToc, .likesectionToc {white-space: nowrap;}} +\Css{.subsectionToc, .likesubsectionToc + {margin-left:1em; white-space: nowrap;}} +\Css{.subsubsectionToc, .likesubsubsectionToc + {margin-left:2em; white-space: nowrap;}} +\Css{.paragraphToc, .likeparagraphToc + {margin-left:3em; white-space: nowrap;}} +\Css{.subparagraphToc, .likesubparagraphToc + {margin-left:4em; white-space: nowrap;}} +>>> + +\<mw rep/bk tocs\><<< +\Css{.chapterToc, .likechapterToc {white-space: nowrap;}} +\Css{.sectionToc, .likesectionToc + {margin-left:1em; white-space: nowrap;}} +\Css{.subsectionToc, .likesubsectionToc + {margin-left:2em; white-space: nowrap;}} +\Css{.subsubsectionToc, .likesubsubsectionToc + {margin-left:3em; white-space: nowrap;}} +\Css{.paragraphToc, .likeparagraphToc + {margin-left:4em; white-space: nowrap;}} +\Css{.subparagraphToc, .likesubparagraphToc + {margin-left:5em; white-space: nowrap;}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%% +\section{texinfo} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure html4 texinfo\><<< +\Configure{group} + {\IgnorePar\EndP\HCode{<div class="group">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} +\Css{div.obeylines-v div.group p { margin-top:0; margin-bottom:0; }} +\Configure{multitable} + {\IgnorePar \EndP\HCode{<table\Hnewline class="multitable">}\IgnorePar} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td \Hnewline class="multitabl\the\colcount">}} + {\IgnorePar \EndP\HCode{</td>}} +\Css{.multitable td{padding-left:1em; padding-right:1em;}} +>>> + + +\<configure html4 texinfo\><<< +\Configure{example} + {\IgnorePar\EndP\HCode{<div class="example">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} +\Css{div.example { margin-left:2em; }} +\Configure{smallexample} + {\IgnorePar\EndP\HCode{<div class="smallexample">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} +\Css{div.smallexample { margin-left:2em; }} +>>> + + +\<configure html4 texinfo\><<< +\ConfigureMark{chapter}{\the\chapno} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h2>}\IgnoreIndent\par} +\ConfigureMark{appendix}{\appendixletter} +\Configure{appendix}{}{} + {\IgnorePar\EndP + \HCode{<h2 class="appendixHead"\a:LRdir>}Appendix \TitleMark\space} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{unnumbered}{}{} + {\IgnorePar\EndP\HCode{<h2 class="unnumberedHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +\ConfigureMark{numberedsec}{\the\chapno.\the\secno} +\Configure{numberedsec}{}{} + {\IgnorePar\EndP\HCode{<h3 + class="numberedsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h3>}\IgnoreIndent\par} +\ConfigureMark{appendixsec}{\appendixletter.\the\secno} +\Configure{appendixsec}{}{} + {\IgnorePar\EndP\HCode{<h3 + class="appendixsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h3>}\IgnoreIndent\par} +\Configure{unnumberedsec}{}{} + {\IgnorePar\EndP\HCode{<h3 class="unnumberedsecHead"\a:LRdir>}} + {\HCode{</h3>}\IgnoreIndent\par} +\ConfigureMark{numberedsubsec}{\the\chapno.\the\secno .\the\subsecno} +\Configure{numberedsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 + class="numberedsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h4>}\IgnoreIndent\par} +\ConfigureMark{appendixsubsec}{\appendixletter .\the\secno.\the\subsecno} +\Configure{appendixsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 + class="appendixsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h4>}\IgnoreIndent\par} +\ConfigureMark{appendixsubsec}{\appendixletter.\the\secno + .\the\subsecno} +\Configure{appendixsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 + class="appendixsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h4>}\IgnoreIndent\par} +\Configure{unnumberedsubsec}{}{} + {\IgnorePar\EndP\HCode{<h4 class="unnumberedsubsecHead"\a:LRdir>}} + {\HCode{</h4>}\IgnoreIndent\par} +\ConfigureMark{numberedsubsubsec}{\the\chapno.\the\secno + .\the\subsecno.\the\subsubsecno} +\Configure{numberedsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 + class="numberedsubsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h5>}\IgnoreIndent\par} +\ConfigureMark{appendixsubsubsec}{\appendixletter + .\the\secno.\the\subsecno.\the\subsubsecno} +\Configure{appendixsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 + class="appendixsubsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h5>}\IgnoreIndent\par} +\ConfigureMark{appendixsubsubsec}{\appendixletter.\the\secno + .\the\subsecno.\the\subsubsecno} +\Configure{appendixsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 + class="appendixsubsubsecHead"\a:LRdir>}\TitleMark\space} + {\HCode{</h5>}\IgnoreIndent\par} +\Configure{unnumberedsubsubsec}{}{} + {\IgnorePar\EndP\HCode{<h5 class="unnumberedsubsubsecHead"\a:LRdir>}} + {\HCode{</h5>}\IgnoreIndent\par} +>>> + +\<configure html4 texinfo\><<< +\ConfigureToc{chapter} + {\Tg<span class="chapterToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{appendix} + {\Tg<span class="appendixToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{unnumbered} + {\Tg<span class="unnumberedToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{numberedsec} + {\Tg<span class="numberedsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{appendixsec} + {\Tg<span class="appendixsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{unnumberedsec} + {\Tg<span class="unnumberedsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{numberedsubsec} + {\Tg<span class="numberedsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{appendixsubsec} + {\Tg<span class="appendixsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{appendixsubsec} + {\Tg<span class="appendixsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{unnumberedsubsec} + {\Tg<span class="unnumberedsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{numberedsubsubsec} + {\Tg<span class="numberedsubsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{appendixsubsubsec} + {\Tg<span class="appendixsubsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{appendixsubsubsec} + {\Tg<span class="appendixsubsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +\ConfigureToc{unnumberedsubsubsec} + {\Tg<span class="unnumberedsubsubsecToc" \a:LRdir>}{ }{}{\Tg</span>\expandafter\Tg<br />} +>>> + + + +\<configure html4 texinfo\><<< +\Configure{enumerate} + {\IgnorePar\EndP\HCode{<ol\space class="enumerate"\Hnewline>}} + {\IgnorePar\EndP\HCode{</li></ol>}\ShowPar} + {\IgnorePar\EndP\ifnum \itemno>1 \Tg</li>\fi\DeleteMark} + {\HCode{<li class="enumerate">}} +\Configure{itemize} + {\IgnorePar\EndP\HCode{<ul\space\a:LRdir class="itemize"\Hnewline>}} + {\IgnorePar\EndP\HCode{</li></ul>}\ShowPar} + {\IgnorePar\EndP\ifnum \itemno>1 \Tg</li>\fi\DeleteMark} + {\HCode{<li class="itemize">}} +\Configure{table}% + {\IgnorePar\EndP\HCode{<dl \a:LRdir class="description">}% + |<save end:itm|>\global\let\end:itm|=\empty} + {|<recall end:itm|>\IgnorePar\EndP\HCode{</dd></dl>}} + {\IgnorePar\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="description">}\bgroup \bf} + {\egroup\IgnorePar\EndP\HCode{</dt><dd\Hnewline class="description">}} +>>> + +\<configure html4 texinfo\><<< +\Configure{titlepage} + {\IgnorePar\EndP\HCode{<div class="titlepage">}} + {\IgnorePar\EndP\HCode{</div>}} +\Configure{title} + {\IgnorePar\EndP\HCode{<div class="title">}} + {\IgnorePar\EndP\HCode{</div>}} +\Configure{subtitle} + {\IgnorePar\EndP\HCode{<div class="subtitle">}} + {\IgnorePar\EndP\HCode{</div>}} +\Configure{author} + {\IgnorePar\EndP\HCode{<div class="author">}} + {\IgnorePar\EndP\HCode{</div>}} +>>> + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Accents, encodings, and Languages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\Link[http://lycos.basistech.com/info/standards/ISO-8859.txt]{}{}iso + text\EndLink, +\Link[http://titus.uni-frankfurt.de/unicode/iso8859/iso8859.htm]{}{}titus glyphs\EndLink, +satto glyphs: +\Link[http://www.satto.co.yu/podrska/iso/iso8859-1.htm]{}{}1\EndLink{} +\Link[http://www.satto.co.yu/podrska/iso/iso8859-2.htm]{}{}2\EndLink{} ..., +microsoft glyphs: +\Link[http://www.microsoft.com/globaldev/reference/iso/28591.htm]{}{}1\EndLink{} +\Link[http://www.microsoft.com/globaldev/reference/iso/28592.htm]{}{}2\EndLink{} ... + + + +\<configure html4 latex\><<< +\ifOption{charset=iso-8859-7} + {|<T1 greek ldf iso-8859-7|>} + {} +\:CheckOption{new-accents} \if:Option +\else + |<T1 old iso-8859-1 accents|> +\fi +\let\^^_|=\v +>>> + + +\<old plain,latex accents\><<< +|<old iso-8859-1 accents|> +|<OT1 old iso-8859-1 accents|> +|<optional iso-8859-2 accents|> +>>> + +\<babel accents\><<< +|<optional iso-8859-2 accents|> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Group Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{8859-1} +%%%%%%%%%%%%%%%%%%%% + +\<acute codes\><<< +A{00C1}C{0106}D{010E}E{00C9}G{01F4}I{00CD}L{0139}N{0143}% +O{00D3}R{0154}S{015A}U{00DA}Y{00DD}Z{0179}a{00E1}c{0107}% +d{010F}e{00E9}g{01F5}i{00ED}l{013A}n{0144}o{00F3}r{0155}% +s{015B}u{00FA}y{00FD}z{017A}j{FFFD}J{FFDD}\i{00ED}\j{FFFD}% +>>> + +\<add acute codes\><<< + {A}{\add:acc{00C1}} + {C}{\add:acc{0106}} + {D}{\add:acc{010E}} + {E}{\add:acc{00C9}} + {G}{\add:acc{01F4}} + {I}{\add:acc{00CD}} + {L}{\add:acc{0139}} + {N}{\add:acc{0143}} + {O}{\add:acc{00D3}} + {R}{\add:acc{0154}} + {S}{\add:acc{015A}} + {U}{\add:acc{00DA}} + {Y}{\add:acc{00DD}} + {Z}{\add:acc{0179}} + {a}{\add:acc{00E1}} + {c}{\add:acc{0107}} + {d}{\add:acc{010F}} + {e}{\add:acc{00E9}} + {g}{\add:acc{01F5}} + {i}{\add:acc{00ED}} + {l}{\add:acc{013A}} + {n}{\add:acc{0144}} + {o}{\add:acc{00F3}} + {r}{\add:acc{0155}} + {s}{\add:acc{015B}} + {u}{\add:acc{00FA}} + {y}{\add:acc{00FD}} + {z}{\add:acc{017A}} + {j}{\add:acc{FFFD}} + {J}{\add:acc{FFDD}} + {\i}{\add:acc{00ED}} + {\j}{\add:acc{FFFD}} +>>> + + + + +\<double acute code\><<< +o{0151}O{0150}U{0170}u{0171}% +>>> + +\<add double acute code\><<< + {o}{\add:acc{0151}} + {O}{\add:acc{0150}} + {U}{\add:acc{0170}} + {u}{\add:acc{0171}} +>>> + + + + + + +\<cedilla codes\><<< +K{0136}k{0137}L{013B}l{013C}N{0145}n{0146}% +R{0156}r{0157}S{015E}s{015F}T{0162}t{0163}% +E{0228}e{0229}D{1E10}d{1E11}H{1E28}h{1E29}% +C{00C7}c{00E7}G{0122}g{0123}% +>>> + +\<add cedilla codes\><<< + {K}{\add:acc{0136}} + {k}{\add:acc{0137}} + {L}{\add:acc{013B}} + {l}{\add:acc{013C}} + {N}{\add:acc{0145}} + {n}{\add:acc{0146}} + {R}{\add:acc{0156}} + {r}{\add:acc{0157}} + {S}{\add:acc{015E}} + {s}{\add:acc{015F}} + {T}{\add:acc{0162}} + {t}{\add:acc{0163}} + {E}{\add:acc{0228}} + {e}{\add:acc{0229}} + {D}{\add:acc{1E10}} + {d}{\add:acc{1E11}} + {H}{\add:acc{1E28}} + {h}{\add:acc{1E29}} + {C}{\add:acc{00C7}} + {c}{\add:acc{00E7}} + {G}{\add:acc{0122}} + {g}{\add:acc{0123}} +>>> + + + + + + +\<dot above codes\><<< +C{010A}c{010B}E{0116}e{0117}G{0120}g{0121}% +I{0130}Z{017B}z{017C}A{0226}a{0227}O{022E}% +o{022F}B{1E02}b{1E03}D{1E0A}d{1E0B}F{1E1E}% +f{1E1F}H{1E22}h{1E23}M{1E40}m{1E41}N{1E44}% +n{1E45}P{1E56}p{1E57}R{1E58}r{1E59}S{1E60}% +s{1E61}T{1E6A}t{1E6B}W{1E86}w{1E87}X{1E8A}% +x{1E8B}Y{1E8E}y{1E8F}% +>>> + +\<add dot above codes\><<< + {C}{\add:acc{010A}} + {c}{\add:acc{010B}} + {E}{\add:acc{0116}} + {e}{\add:acc{0117}} + {G}{\add:acc{0120}} + {g}{\add:acc{0121}} + {I}{\add:acc{0130}} + {Z}{\add:acc{017B}} + {z}{\add:acc{017C}} + {A}{\add:acc{0226}} + {a}{\add:acc{0227}} + {O}{\add:acc{022E}} + {o}{\add:acc{022F}} + {B}{\add:acc{1E02}} + {b}{\add:acc{1E03}} + {D}{\add:acc{1E0A}} + {d}{\add:acc{1E0B}} + {F}{\add:acc{1E1E}} + {f}{\add:acc{1E1F}} + {H}{\add:acc{1E22}} + {h}{\add:acc{1E23}} + {M}{\add:acc{1E40}} + {m}{\add:acc{1E41}} + {N}{\add:acc{1E44}} + {n}{\add:acc{1E45}} + {P}{\add:acc{1E56}} + {p}{\add:acc{1E57}} + {R}{\add:acc{1E58}} + {r}{\add:acc{1E59}} + {S}{\add:acc{1E60}} + {s}{\add:acc{1E61}} + {T}{\add:acc{1E6A}} + {t}{\add:acc{1E6B}} + {W}{\add:acc{1E86}} + {w}{\add:acc{1E87}} + {X}{\add:acc{1E8A}} + {x}{\add:acc{1E8B}} + {Y}{\add:acc{1E8E}} + {y}{\add:acc{1E8F}} +>>> + + + + + + +\<breve codes\><<< +g{011F}I{012C}i{012D}O{014E}o{014F}% +U{016C}u{016D}A{0102}a{0103}E{0114}% +e{0115}G{011E}\i{012D}% +>>> + +\<add breve codes\><<< + {g}{\add:acc{011F}} + {I}{\add:acc{012C}} + {i}{\add:acc{012D}} + {O}{\add:acc{014E}} + {o}{\add:acc{014F}} + {U}{\add:acc{016C}} + {u}{\add:acc{016D}} + {A}{\add:acc{0102}} + {a}{\add:acc{0103}} + {E}{\add:acc{0114}} + {e}{\add:acc{0115}} + {G}{\add:acc{011E}} + {\i}{\add:acc{012D}} + {y}{y\add:acc{0306}} +>>> + + + + + + + + + +\<caron codes\><<< +C{010C}c{010D}D{010E}d{010F}% +E{011A}e{011B}L{013D}l{013E}N{0147}n{0148}R{0158}r{0159}% +S{0160}s{0161}T{0164}t{0165}Z{017D}z{017E}A{01CD}a{01CE}I{01CF}% +i{01D0}O{01D1}o{01D2}U{01D3}u{01D4}G{01E6}g{01E7}K{01E8}k{01E9}% +j{01F0}H{021E}h{021F}\i{01D0}\j{01F0}% +>>> + +\<add caron codes\><<< + {C}{\add:acc{010C}} + {c}{\add:acc{010D}} + {D}{\add:acc{010E}} + {d}{\add:acc{010F}} + {E}{\add:acc{011A}} + {e}{\add:acc{011B}} + {L}{\add:acc{013D}} + {l}{\add:acc{013E}} + {N}{\add:acc{0147}} + {n}{\add:acc{0148}} + {R}{\add:acc{0158}} + {r}{\add:acc{0159}} + {S}{\add:acc{0160}} + {s}{\add:acc{0161}} + {T}{\add:acc{0164}} + {t}{\add:acc{0165}} + {Z}{\add:acc{017D}} + {z}{\add:acc{017E}} + {A}{\add:acc{01CD}} + {a}{\add:acc{01CE}} + {I}{\add:acc{01CF}} + {i}{\add:acc{01D0}} + {O}{\add:acc{01D1}} + {o}{\add:acc{01D2}} + {U}{\add:acc{01D3}} + {u}{\add:acc{01D4}} + {G}{\add:acc{01E6}} + {g}{\add:acc{01E7}} + {K}{\add:acc{01E8}} + {k}{\add:acc{01E9}} + {j}{\add:acc{01F0}} + {H}{\add:acc{021E}} + {h}{\add:acc{021F}} + {\i}{\add:acc{01D0}} + {\j}{\add:acc{01F0}} +>>> +% + + + + + +\<ring codes\><<< +A{00C5}a{00E5}U{016E}u{016F}% +>>> + +\<add ring codes\><<< + {A}{\add:acc{00C5}} + {a}{\add:acc{00E5}} + {U}{\add:acc{016E}} + {u}{\add:acc{016F}} +>>> + + + + + + + + + + + + + + + +\<diaeresis codes\><<< +H{1E26}h{1E27}W{1E84}w{1E85}X{1E8C}x{1E8D}% +t{1E97}A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +>>> + +\<add diaeresis codes\><<< + {H}{\add:acc{1E26}} + {h}{\add:acc{1E27}} + {W}{\add:acc{1E84}} + {w}{\add:acc{1E85}} + {X}{\add:acc{1E8C}} + {x}{\add:acc{1E8D}} + {t}{\add:acc{1E97}} + {A}{\add:acc{00C4}} + {E}{\add:acc{00CB}} + {I}{\add:acc{00CF}} + {O}{\add:acc{00D6}} + {U}{\add:acc{00DC}} + {a}{\add:acc{00E4}} + {e}{\add:acc{00EB}} + {i}{\add:acc{00EF}} + {o}{\add:acc{00F6}} + {u}{\add:acc{00FC}} + {y}{\add:acc{00FF}} + {Y}{\add:acc{0178}} + {\i}{\add:acc{00EF}} + {m}{m\add:acc{0308}} +>>> + + + + + + + + + + +\<circumflex codes\><<< +A{00C2}E{00CA}I{00CE}O{00D4}U{00DB}a{00E2}e{00EA}% +i{00EE}o{00F4}u{00FB}C{0108}c{0109}G{011C}g{011D}% +H{0124}h{0125}J{0134}j{0135}S{015C}s{015D}W{0174}% +w{0175}Y{0176}y{0177}Z{1E90}z{1E91}\i{00EE}\j{0135}% +>>> + +\<add circumflex codes\><<< + {A}{\add:acc{00C2}} + {E}{\add:acc{00CA}} + {I}{\add:acc{00CE}} + {O}{\add:acc{00D4}} + {U}{\add:acc{00DB}} + {a}{\add:acc{00E2}} + {e}{\add:acc{00EA}} + {i}{\add:acc{00EE}} + {o}{\add:acc{00F4}} + {u}{\add:acc{00FB}} + {C}{\add:acc{0108}} + {c}{\add:acc{0109}} + {G}{\add:acc{011C}} + {g}{\add:acc{011D}} + {H}{\add:acc{0124}} + {h}{\add:acc{0125}} + {J}{\add:acc{0134}} + {j}{\add:acc{0135}} + {S}{\add:acc{015C}} + {s}{\add:acc{015D}} + {W}{\add:acc{0174}} + {w}{\add:acc{0175}} + {Y}{\add:acc{0176}} + {y}{\add:acc{0177}} + {Z}{\add:acc{1E90}} + {z}{\add:acc{1E91}} + {\i}{\add:acc{00EE}} + {\j}{\add:acc{0135}} +>>> + + + + + + +\<grave codes\><<< +A{00C0}E{00C8}I{00CC}N{01F8}O{00D2}U{00D9}W{1E80}% +Y{1EF2}a{00E0}e{00E8}i{00EC}n{01F9}o{00F2}u{00F9}% +w{1E81}y{1EF3}\i{00EC}% +>>> + + +\<add grave codes\><<< +{A}{\add:acc{00C0}} + {E}{\add:acc{00C8}} + {I}{\add:acc{00CC}} + {N}{\add:acc{01F8}} + {O}{\add:acc{00D2}} + {U}{\add:acc{00D9}} + {W}{\add:acc{1E80}} + {Y}{\add:acc{1EF2}} + {a}{\add:acc{00E0}} + {e}{\add:acc{00E8}} + {i}{\add:acc{00EC}} + {n}{\add:acc{01F9}} + {o}{\add:acc{00F2}} + {u}{\add:acc{00F9}} + {w}{\add:acc{1E81}} + {y}{\add:acc{1EF3}} + {\i}{\add:acc{00EC}} +>>> + + + +\<tilde codes\><<< +A{00C3}N{00D1}O{00D5}a{00E3}n{00F1}o{00F5}I{0128}% +i{0129}U{0168}u{0169}V{1E7C}v{1E7D}E{1EBC}e{1EBD}% +Y{1EF8}y{1EF9}\i{0129}% +>>> + +\<add tilde codes\><<< + {A}{\add:acc{00C3}} + {N}{\add:acc{00D1}} + {O}{\add:acc{00D5}} + {a}{\add:acc{00E3}} + {n}{\add:acc{00F1}} + {o}{\add:acc{00F5}} + {I}{\add:acc{0128}} + {i}{\add:acc{0129}} + {U}{\add:acc{0168}} + {u}{\add:acc{0169}} + {V}{\add:acc{1E7C}} + {v}{\add:acc{1E7D}} + {E}{\add:acc{1EBC}} + {e}{\add:acc{1EBD}} + {Y}{\add:acc{1EF8}} + {y}{\add:acc{1EF9}} + {\i}{\add:acc{0129}} +>>> + + + +\<vec iso-8859-1\><<< +>>> + + + +\<old iso-8859-1 accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} +>>> + +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + + + + + + + + + + + + + + + +It wasn't used, but why? + +\<bar below codes\><<< +B{1E06}b{1E07}% +D{1E0E}d{1E0F}K{1E34}k{1E35}L{1E3A}l{1E3B}N{1E48}n{1E49}% +R{1E5E}r{1E5F}T{1E6E}t{1E6F}Z{1E94}z{1E95}h{1E96}% +>>> + + + + +\<dot below codes\><<< +A{1EA0}a{1Ea1}B{1E04}b{1E05}D{1E0C}d{1E0D}% +E{1EB8}e{1EB9}H{1E24}h{1E25}I{1ECA}i{1ECB}% +K{1E32}k{1E33}L{1E36}l{1E37}M{1E42}m{1E43}% +N{1E46}n{1E47}O{1ECC}o{1ECD}R{1E5A}r{1E5B}% +S{1E62}s{1E63}T{1E6C}t{1E6D}U{1EE4}u{1EE5}% +V{1E7E}v{1E7F}W{1E88}w{1E89}Y{1EF4}y{1EF5}% +>>> + + + +\<macron codes \><<< +A{0100}a{0101}E{0112}% +e{0113}I{012A}i{012B}O{014C}o{014D}U{016A}u{016B}Y{0232}% +y{0233}G{1E20}g{1E21}% +>>> + +\<hungarian umlaut codes\><<< +O{0150}o{0151}U{0170}u{0171}% +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{T1 8859-1} +%%%%%%%%%%%%%%%%%%%% + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter\endcsname + \csname T1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\r\endcsname + \mathring{|<ring codes|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{|<double acute code|>{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\b\endcsname}% + \csname T1\string\b\endcsname{|<bar below codes|>{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{|<dot below codes|>{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname + {|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname + {|<breve codes|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\vec\expandafter\endcsname + \csname T1\string\vec\endcsname + {|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname + {|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname + {|<macron codes|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{T1 on Empty Base} +%%%%%%%%%%%%%%%%%%%% + +\<latex accents\><<< +\Configure{add accent}{T1:2} + {}{\ht:special{t4ht@+\string&\#x005E;}x} + {}{} +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{OT1 8859-1} +%%%%%%%%%%%%%%%%%%%% + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname + OT1\string\"\expandafter\endcsname + \csname OT1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\Configure{accent}\ddot\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\r\endcsname + \mathring{|<ring codes|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + + + + + + +The following are also placed under accents configuration. + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\c\endcsname}% + \csname OT1\string\c\endcsname{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\t\endcsname}% + \csname OT1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\H\endcsname}% + \csname OT1\string\H\endcsname{|<double acute code|>{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\b\endcsname}% + \csname OT1\string\b\endcsname{|<bar below codes|>{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{|<dot below codes|>{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +The following originally have been defined to be parameter-less. + +\<OT1 old iso-8859-1 accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\.\endcsname + \dot{|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\u\endcsname + \breve{|<breve codes|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\vec\endcsname + \vec{|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\v\endcsname + \check{|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\=\endcsname + \bar{|<macron codes|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + +\<OT1 old iso-8859-1 accents\><<< +|<ot1enc.def unicode|> +>>> + +\<ot1enc.def unicode\><<< +\expandafter\def + \csname OT1\string\l\endcsname{\ht:special{t4ht@+\string&{35}x0142{59}}x} +\expandafter\def + \csname OT1\string\L\endcsname{\ht:special{t4ht@+\string&{35}x0141{59}}x} +>>> + + +\<configure html4 plain\><<< +\Configure{l}{\ht:special{t4ht@+\string&{35}x0142{59}}x} +\Configure{L}{\ht:special{t4ht@+\string&{35}x0141{59}}x} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{8859-2} +%%%%%%%%%%%%%%%%%%%% + + + +\<optional iso-8859-2 accents\><<< +\def\:temp{charset=iso-8859-2} +\ifx \a:charset\:UnDef + \ifx \A:charset\:temp \let\:temp=\def \fi +\else \ifx \a:charset\:temp \let\:temp=\def \fi +\fi +\ifx \:temp\def + \:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi \fi +>>> + +\<old iso-8859-2 accents\><<< +|<T1 old iso-8859-2 accents|> +>>> + + + + + + + + + + + +% d{239} + + + + + + + + + + + + + + + + + + + + + + + + +\<old iso-8859-2 accents\><<< +\Configure{accent}\`\grave{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{|<circumflex codes|>{}{}} + {\a:accents{hat}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + + + + +The following are also placed under accents configuration. + +\<old iso-8859-2 accents\><<< +\Configure{accent}\c\c{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{|<double acute code|>{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\Configure{accent}\b\b{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\Configure{accent}\d\d{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + +The following originally have been defined to be parameter-less. + +\<old iso-8859-2 accents\><<< +\Configure{accent}\.\.{|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\dot\dot{|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{|<breve codes|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\v{|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\check\check{|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + +\<old 8859-2 accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} +>>> + +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + +%%%%%%%%%%%%%%%%%%%% +\section{T1 8859-2} +%%%%%%%%%%%%%%%%%%%% + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter\endcsname + \csname T1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\r\endcsname + \mathring{|<ring codes|>{}{}} + {\a:accents{ring}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|<cedilla codes|>{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{|<double acute code|>{}{}} + {\a:accents{Huml}{#1}}{\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\b\endcsname}% + \csname T1\string\b\endcsname{|<bar below codes|>{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{|<dot below codes|>{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname + {|<dot iso-8859-2|>{}{}} + {\a:accents{dot}{#1}}{\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname + {|<breve codes|>{}{}} + {\a:accents{breve}{#1}}{\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\vec\expandafter\endcsname + \csname T1\string\vec\endcsname + {|<vec iso-8859-2|>{}{}} + {\a:accents{vec}{#1}}{\b:accents{vec}{#1}{#2}} +\expandafter\let\csname T1\string\v\endcsname\:UnDef +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname + {|<caron codes|>{}{}} + {\a:accents{check}{#1}}{\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname + {|<bar iso-8859-2|>{}{}} + {\a:accents{bar}{#1}}{\b:accents{bar}{#1}{#2}} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{T1, OT1 8859-7} +%%%%%%%%%%%%%%%%%%%% + + + +\<T1 greek ldf iso-8859-7\><<< +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname + {|<acute iso-8859-7|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +>>> + +\<greek ldf iso-8859-7\><<< +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|<acute iso-8859-7|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +>>> + +\<acute iso-8859-7\><<< +A{\ht:special{t4ht@+\string&{35}x00C1{59}}A}% +E{\ht:special{t4ht@+\string&{35}x00C9{59}}E}% +I{\ht:special{t4ht@+\string&{35}x00CD{59}}I}% +O{\ht:special{t4ht@+\string&{35}x00D3{59}}O}% +U{\ht:special{t4ht@+\string&{35}x00DA{59}}U}% +Y{\ht:special{t4ht@+\string&{35}x00DD{59}}Y}% +a{\ht:special{t4ht@+\string&{35}x00E1{59}}a}% +e{\ht:special{t4ht@+\string&{35}x00E9{59}}e}% +i{\ht:special{t4ht@+\string&{35}x00ED{59}}i}% +\i{\ht:special{t4ht@+\string&{35}x00ED{59}}i}% +o{\ht:special{t4ht@+\string&{35}x00F3{59}}o}% +u{\ht:special{t4ht@+\string&{35}x00FA{59}}u}% +y{\ht:special{t4ht@+\string&{35}x00FD{59}}y}% +{\@use@text@encoding \@curr@enc a}{\ht:special{t4ht@220}a}% +{\@use@text@encoding \@curr@enc e}{\ht:special{t4ht@221}e}% +{\@use@text@encoding \@curr@enc h}{\ht:special{t4ht@222}h}% +{\@use@text@encoding \@curr@enc i}{\ht:special{t4ht@223}i}% +{\@use@text@encoding \@curr@enc o}{\ht:special{t4ht@252}o}% +{\@use@text@encoding \@curr@enc u}{\ht:special{t4ht@253}u}% +{\@use@text@encoding \@curr@enc w}{\ht:special{t4ht@254}w}% +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\section{LaTeX Encodings} +%%%%%%%%%%%%%%%%%%%%%%% + + + +\<32,4 plain,latex\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accents} + {\expandafter\ifx \csname #1-num\endcsname\relax + \ht:special{t4ht@+\string&{35}x#2{59}}x% + \else + \ht:special{t4ht@+\string&\#x#2;}X% + \fi + } + {\expandafter\ifx \csname a:#1-css\endcsname\relax + \Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture + \else + \csname a:#1-css\endcsname #3\csname b:#1-css\endcsname + \fi + } + \expandafter\let\csname ring-num\endcsname=\def +\fi +>>> + +\<configure html4-math latex\><<< +\NewConfigure{bar-css}{2} +\Configure{bar-css} + {\HCode{<span class="bar-css">}} + {\HCode{</span>}} +\Css{span.bar-css {text-decoration:overline;}} +>>> + + +\<32,4 latexPRE-CSS\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{textscaccent} + {\Tg<small class="small-caps">}{\Tg</small>} +\fi +>>> + +\<latex ltoutenc\><<< +\Configure{textcircled} + {\@use@text@encoding \@curr@enc c} + {\leavevmode \special{t4ht@+\string&\#x00A9;}c} + {\@use@text@encoding \@curr@enc \scshape r} + {\leavevmode \special{t4ht@+\string&\#x00AE;}r} + {} +>>> + +\<latex accents\><<< +\:CheckOption{new-accents} \if:Option + |<new accents|> +\else + |<old plain,latex accents|> +\fi +\let\^^_|=\v +>>> + +\<latex accents\><<< +\Configure{@TITLE}{|<env for titles|>} +>>> + +\<env for titles\><<< +\let\"=\:same \let\~=\:same \let\^=\:same +\let\v=\:same \let\'=\:same \let\r=\:same +\PictureOff +>>> + + + + +\<0,32,4 latex\><<< +|<latex accents|> +\let\@acci|=\' \let\@accii|=\` \let\@acciii|=\= +>>> + +\<new accents\><<< +\:CheckOption{accent-} \if:Option + \Configure{HAccent}\acute{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\check{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\ddot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\grave{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\hat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\tilde{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture} +\fi +\:CheckOption{mathaccent-} \if:Option + \Configure{HAccent}\"{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\'{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\.{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\={}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\H{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\^{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\`{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\b{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\d{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\t{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\u{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\v{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\~{}{\Picture+{}}{\EndPicture} +\fi +>>> + +\<new accents\><<< +\Configure{accent}{*} + {<!--tex4ht:accent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accent-->} +\Configure{mathaccent}{*} + {<!--tex4ht:mathaccent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end mathaccent-->} +\Configure{accented}{*} + {<!--tex4ht:accented\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accented-->} +\Configure{accenting}{*} + {<!--tex4ht:accenting\Hnewline-->} + {<!--tex4ht:end accenting-->} +>>> + + + + + + + +\<0,32,4 plain\><<< +\:CheckOption{new-accents} \if:Option + |<new plain accents|> +\else + |<old plain accents|> + \Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\Picture+{ \:Picture:{#1}}#2{#3}\EndPicture} +\fi +\let\^^_|=\v +>>> + + + +\<new plain accents\><<< +\:CheckOption{accent-} \if:Option + \Configure{HAccent}\acute{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\check{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\ddot{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\grave{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture} +\fi +\:CheckOption{mathaccent-} \if:Option + \Configure{HAccent}\"{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\'{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\.{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\={}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\H{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\^{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\`{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\b{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\d{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\t{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\u{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\v{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\~{AOaoNn{}}{\Picture+{}}{\EndPicture} +\fi +>>> + +\<new plain accents\><<< +\Configure{accent}{*} + {<!--tex4ht:accent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accent-->} +\Configure{mathaccent}{*} + {<!--tex4ht:mathaccent\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end mathaccent-->} +\Configure{accented}{*} + {<!--tex4ht:accented\Hnewline font="}{" char="}{" type="}{"-->} + {<!--tex4ht:end accented-->} +\Configure{accenting}{*} + {<!--tex4ht:accenting\Hnewline-->} + {<!--tex4ht:end accenting-->} +>>> + + + + + +\<old plain accents\><<< +\Configure{accent}\`\grave{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{|<circumflex codes|>{}{}} + {\a:accents{circ}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + +The following are also placed under accents configuration. + +\<old plain accents\><<< +\Configure{accent}\c\c{C{C}c{c}{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{O{0150}o{0151}U{0170}u{0171}Y{04F2}y{04F3}{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\Configure{accent}\b\b{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\Configure{accent}\d\d{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +>>> + +The following originally have been defined to be parameter-less. + +\<old plain accents\><<< +\Configure{accent}\.\.{{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\dot\dot{{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{{}{}}{\a:accents{breve}{#1}} + {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}}{\a:accents{vec}{#1}} + {\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\v{{}{}}{\a:accents{check}{#1}} + {\b:accents{check}{#1}{#2}} +\Configure{accent}\check\check{{}{}}{\a:accents{check}{#1}} + {\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +>>> +% \= macron + +\<old plain accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} +>>> +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + +%%%%%%%%%%%%%%%%%%% +\section{AMS Encodings} +%%%%%%%%%%%%%%%%%%% + + + + +\<ams 2000 art + book + proc\><<< +\def\:tempc#1#2#3#4#5{% + \expandafter\ifx \csname #1mathaccentV\endcsname\relax + \o:mathaccentV:{#1}{#2}{#3}{#4}{#5}% + \else \csname #1mathaccentV\endcsname{#5}\fi} +\HLet\mathaccentV\:tempc +\:CheckOption{new-accents} \if:Option \else + |<ams 2000 iso-8859-1 accents|> +\fi +\def\:temp{charset=iso-8859-2} +\ifx \a:charset\:UnDef + \ifx \A:charset\:temp \let\:temp=\def \fi +\else \ifx \a:charset\:temp \let\:temp=\def \fi +\fi +\ifx \:temp\def + \:CheckOption{new-accents} \if:Option \else + |<old ams 2000 iso-8859-2 accents|> +\fi \fi +>>> + + +\<ams 2000 iso-8859-1 accents\><<< +\HRestore\grave +\expandafter\let\csname gravemathaccentV\endcsname=\grave +\expandafter\let\csname GRAVEmathaccentV\endcsname=\grave +\expand:after{\Configure{accent}}\csname + gravemathaccentV\expandafter\endcsname + \csname GRAVEmathaccentV\endcsname{|<grave codes|>{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\HRestore\acute +\expandafter\let\csname acutemathaccentV\endcsname=\acute +\expandafter\let\csname ACUTEmathaccentV\endcsname=\acute +\expand:after{\Configure{accent}}\csname + acutemathaccentV\expandafter\endcsname + \csname ACUTEmathaccentV\endcsname{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\HRestore\hat +\expandafter\let\csname hatmathaccentV\endcsname=\hat +\expandafter\let\csname HATmathaccentV\endcsname=\hat +\expand:after{\Configure{accent}}\csname + hatmathaccentV\expandafter\endcsname + \csname HATmathaccentV\endcsname{|<hat iso-8859-1|>{}{}} + {\a:accents{hat}{#1}} {\b:accents{hat}{#1}{#2}} +\HRestore\tilde +\expandafter\let\csname tildemathaccentV\endcsname=\tilde +\expandafter\let\csname TILDEmathaccentV\endcsname=\tilde +\expand:after{\Configure{accent}}\csname + tildemathaccentV\expandafter\endcsname + \csname TILDEmathaccentV\endcsname{|<tilde codes|>{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\HRestore\ddot +\expandafter\let\csname DDOTmathaccentV\endcsname=\ddot +\expand:after{\Configure{accent}}\csname + DDOTmathaccentV\expandafter\endcsname + \csname DDOTmathaccentV\endcsname{|<ddot iso-8859-1|>{}{}} + {\a:accents{ddot}{#1}} {\b:accents{ddot}{#1}{#2}} +\expandafter\let\csname ddotmathaccentV\endcsname=\ddot +\expand:after{\Configure{accent}}\csname + ddotmathaccentV\expandafter\endcsname + \csname ddotmathaccentv\endcsname{|<ddot iso-8859-1|>{}{}} + {\a:accents{ddot}{#1}} {\b:accents{ddot}{#1}{#2}} +\HRestore\check +\expandafter\let\csname checkmathaccentV\endcsname=\check +\expandafter\let\csname CHECKmathaccentV\endcsname=\check +\expand:after{\Configure{accent}}\csname + checkmathaccentV\expandafter\endcsname + \csname CHECKmathaccentV\endcsname{|<caron codes|>{}{}} + {\a:accents{check}{#1}} {\b:accents{check}{#1}{#2}} +\HRestore\dot +\expandafter\let\csname dotmathaccentV\endcsname=\dot +\expandafter\let\csname DOTmathaccentV\endcsname=\dot +\expand:after{\Configure{accent}}\csname + dotmathaccentV\expandafter\endcsname + \csname DOTmathaccentV\endcsname{|<dot above codes|>{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\HRestore\breve +\expandafter\let\csname brevemathaccentV\endcsname=\breve +\expandafter\let\csname BREVEmathaccentV\endcsname=\breve +\expand:after{\Configure{accent}}\csname + brevemathaccentV\expandafter\endcsname + \csname BREVEmathaccentV\endcsname{|<breve codes|>{}{}} + {\a:accents{breve}{#1}} {\b:accents{breve}{#1}{#2}} +\HRestore\bar +\expandafter\let\csname barmathaccentV\endcsname=\bar +\expandafter\let\csname BARmathaccentV\endcsname=\bar +\expand:after{\Configure{accent}}\csname + barmathaccentV\expandafter\endcsname + \csname BARmathaccentV\endcsname{|<macron codes|>{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +\HRestore\vec +\expandafter\let\csname vecmathaccentV\endcsname=\vec +\expandafter\let\csname VECmathaccentV\endcsname=\vec +\expand:after{\Configure{accent}}\csname + vecmathaccentV\expandafter\endcsname + \csname VECmathaccentV\endcsname{|<vec iso-8859-1|>{}{}} + {\a:accents{vec}{#1}} {\b:accents{vec}{#1}{#2}} +>>> + +\<old ams 2000 iso-8859-2 accents\><<< +\HRestore\acute +\expandafter\let\csname acutemathaccentV\endcsname=\acute +\expandafter\let\csname ACUTEmathaccentV\endcsname=\acute +\expand:after{\Configure{accent}}\csname + acutemathaccentV\expandafter\endcsname + \csname ACUTEmathaccentV\endcsname{|<acute codes|>{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +>>> + +The upper case is needed for cases like + +\begin{verbatim} +\documentclass[12pt]{amsart} +\begin{document} +\title{BUDOWA J''ADER ATOM{O}W PIERWIASTK{O}W} +\author{Rafa''l ``Raba--P{o}''lg''l{o}wek\'o$\acute{o}$} +\def\datename{Wersja z} +\date{\today} +\maketitle +\end{document} +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{ot4enc} +%%%%%%%%%%%%%%%%%% + +\<configure html4 ot4enc\><<< +\def\add:acc#1{\ht:special{t4ht@+\string&\#x#1;}x} +\Configure{add accent}{OT4:18} %\` + |<add grave codes|> {}{} +\Configure{add accent}{OT4:127} %\" + |<add diaeresis codes|> {}{} +\Configure{add accent}{OT4:19} %\' + |<add acute codes|> {}{} +\Configure{add accent}{OT4:95} %\. + |<add dot above codes|> {}{} +\Configure{add accent}{OT4:22} %\= + {}{} +\Configure{add accent}{OT4:94} %\^ + |<add circumflex codes|> {}{} +\Configure{add accent}{OT4:126} %\~ + |<add tilde codes|> {}{} +\Configure{add accent}{OT4:125} %\H + |<add double acute code|> {}{} +\Configure{add accent}{OT4:21} %\u + |<add breve codes|> {}{} +\Configure{add accent}{OT4:20} %\v + |<add caron codes|> {}{} +\Configure{add accent}{OT4:23} %\r + |<add ring codes|> {}{} +\Configure{add accent}{OT4:24} %\c + |<add cedilla codes|> {}{} +>>> + +%%%%%%%%%%%%%%%%%% +\section{pd1enc} +%%%%%%%%%%%%%%%%%% + +\<configure html4 pd1enc\><<< +\def\add:acc#1{\ht:special{t4ht@+\string&\#x#1;}x} +\Configure{add accent}{PD1:96} %\` + |<add grave codes|> {}{} +\Configure{add accent}{PD1:168} %\" + |<add diaeresis codes|> {}{} +\Configure{add accent}{PD1:180} %\' + |<add acute codes|> {}{} +\Configure{add accent}{PD1:27} %\. + |<add dot above codes|> {}{} +\Configure{add accent}{PD1:26} %\^ + |<add circumflex codes|> {}{} +\Configure{add accent}{PD1:31} %\~ + |<add tilde codes|> {}{} +\Configure{add accent}{PD1:24} %\u + |<add breve codes|> {}{} +\Configure{add accent}{PD1:20} %\v + |<add caron codes|> {}{} +\Configure{add accent}{PD1:21} %\r + |<add ring codes|> {}{} +\Configure{add accent}{PD1:184} %\c + |<add cedilla codes|> {}{} +>>> + +% \Configure{add accent}{PD1:22} %\= {}{} + +% \Configure{add accent}{PD1:125} %\H +% |<add double acute code|> {}{} + + +%%%%%%%%%%%%%%%%%%% +\section{Languages} +%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%% +\subsection{Babel} +%%%%%%%%%%%%%%%%%%% + + +\<babel.def\><<< +|<quotedblbase|> +>>> + + +\<babel macros\><<< +|<babel.def|> +>>> + + + + +\<config tex4ht\><<< +\NewConfigure{charset}[1]{\def\a:charset{#1}} +\def\:temp#1charset=#2,#3|<par del|>{% + \if !#2!% + \Log:Note{for alternative charset, use + the command line option `charset=...'} + \else \Configure{charset}{charset=#2}\fi} +\expandafter\:temp\Preamble ,charset=,|<par del|> +>>> + + + + +\<configure html4 CJK\><<< +\def\A:charset{charset=utf-8} +|<simplified chinese (mainland)|> +|<traditional chinese (taiwanese)|> +|<japanese charset|> +|<korean charset|> +\Configure{CJKbold}{\HCode{<b>}}{\HCode{</b>}} +>>> + + + +The following are from CJK.enc +\begin{verbatim} +% CEF: CEFX C80 +% CEFY C81 +\end{verbatim} + + +\<traditional chinese (taiwanese)\><<< +\Configure{CJK.enc}{Bg5}{\def\A:charset{charset=big5}} +\Configure{CJK.enc}{Bg5pmC}{\def\A:charset{charset=big5}} +\Configure{CJK.enc}{Bg5+}{\def\A:charset{charset=big5}} +>>> + + +GB2312 (1980) has been superceded by GBK (circa 1993?) and GB18030 (2000). + +\<simplified chinese (mainland)\><<< +\Configure{CJK.enc}{GBpmC}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{GBK}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{GBt}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{GBtpmC}{\def\A:charset{charset=gbk}} +\Configure{CJK.enc}{CNS1-7}{\def\A:charset{charset=gbk}} +>>> + + +\<japanese charset\><<< +\Configure{CJK.enc}{JIS}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JISpmC}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JISdnp}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JISwn}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JIS2}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{JIS2dnp}{\def\A:charset{charset=iso-2022-jp}} +\Configure{CJK.enc}{SJIS}{\def\A:charset{charset=iso-2022-jp}} +>>> + +\<korean charset\><<< +\Configure{CJK.enc}{KS}{\def\A:charset{charset=iso-2022-kr}} +\Configure{CJK.enc}{KSpmC}{\def\A:charset{charset=iso-2022-kr}} +\Configure{CJK.enc}{KSHL}{\def\A:charset{charset=iso-2022-kr}} +>>> + + + + + +\<configure html4 hebtex\><<< +\def\A:charset{charset=iso-8859-8} +\Configure{arabtext} + {\ifhmode \let\end:arabtex=\empty \IgnorePar + \else + \HCode{<div style="text-align:right"><table class="arabtex"><tr><td\Hnewline + style="white-space:nowrap; text-align:right">}% + \def\end:arabtex{\HCode{</td></tr></table></div>}}% + \fi + \global\let\start:arab=\relax} + {\end:arabtex} + {\ifx \start:arab\relax \global\let\start:arab=\empty + \else \expandafter\Tg<br />\fi} + {} +\:CheckOption{nikud} \if:Option + \Configure{chireq}{\char5 } + \Configure{cholem}{\char3 } + \Configure{chpatach}{\char1\char7 } + \Configure{chqames}{\char2\char7 } + \Configure{chsegol}{\char3\char7 } + \Configure{dagesh}{\char46 } + \Configure{meteg}{\char44 } + \Configure{patachf}{\char1 } + \Configure{patach}{\char1 } + \Configure{qameschat}{\char6\char7 } + \Configure{qames}{\char6 } + \Configure{qibbus}{\HCode{<!--qibbus-->}} + \Configure{rdot}{\HCode{<!--rdot-->}} + \Configure{segol}{\char3 } + \Configure{sere}{\char9 } + \Configure{shindot}{\HCode{<!--shindot-->}} + \Configure{shwa}{\char7 } + \Configure{sindot}{\HCode{<!--sindot-->}} +\else + \Log:Note{for hebrew vowels, use + the command line option `nikud'} + \Configure{chireq}{\HCode{<!--chireq-->}} + \Configure{cholem}{\HCode{<!--cholem-->}} + \Configure{chpatach}{\HCode{<!--chpatach-->}} + \Configure{chqames}{\HCode{<!--chqames-->}} + \Configure{chsegol}{\HCode{<!--chsegol-->}} + \Configure{dagesh}{\HCode{<!--dagesh-->}} + \Configure{meteg}{\HCode{<!--meteg-->}} + \Configure{patachf}{\HCode{<!--patachf-->}} + \Configure{patach}{\HCode{<!--patach-->}} + \Configure{qameschat}{\HCode{<!--qameschat-->}} + \Configure{qames}{\HCode{<!--qames-->}} + \Configure{qibbus}{\HCode{<!--qibbus-->}} + \Configure{rdot}{\HCode{<!--rdot-->}} + \Configure{segol}{\HCode{<!--segol-->}} + \Configure{sere}{\HCode{<!--sere-->}} + \Configure{shindot}{\HCode{<!--shindot-->}} + \Configure{shwa}{\HCode{<!--shwa-->}} + \Configure{sindot}{\HCode{<!--sindot-->}} +\fi +>>> + + +\<configure html4 abidir\><<< +\:CheckOption{pic-RL}\if:Option + \Configure{RL} + {\ifvmode \IgnorePar\EndP \def\RL:tag{div}\else \def\RL:tag{span}\fi + \HCode{<\RL:tag\space class="pic-RL">}\Picture*{}} + {\EndPicture\HCode{</\RL:tag>}} + {} {} {} {} + \Css{div.pic-RL{text-align:right;}} +\else + \Log:Note{for pictorial RL, use + the command line option `pic-RL'} + \Configure{RL} + {\HCode{<span class="RL">}} {\HCode{</span>}} + {} {\HCode{<br />}} {} {} + +\fi +>>> + +% \:CheckOption{RL2LR}\if:Option +% \Configure{RL} +% {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="RL" +% dir="rtl" >}} +% {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +% {} {} {} {} +% \else +% \Configure{RL} +% {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="RL" +% dir="rtl" >}} +% {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +% {} {\HCode{<br />}} {} {} +% \fi + + + + + + + + + + + +\<configure html4 romanian\><<< +\def\A:charset{charset=iso-8859-2} +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{Umlaut} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 german\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\grmn@OTumlaut + \grmn@OTumlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + + +\<configure html4 ngerman\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\grmn@OTumlaut + \grmn@OTumlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + +\<babel.def\><<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\lower@umlaut\lower@umlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + + + +\<u mlaut\><<< +\:CheckOption{new-accents} \if:Option \else +\Configure{accent}\bbl@umlauta + \bbl@umlaute{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{Russian and Cyrillic} +%%%%%%%%%%%%%%%%%%% + + + +\<configure html4 t2benc\><<< +\def\:temp{charset=koi8-r}\ifx \A:charset\:temp \else + \def\A:charset{charset=iso-8859-5} +\fi +>>> + + + +\<configure html4 koi8-r\><<< +\def\A:charset{charset=koi8-r} +>>> + + + +\<set babel charset\><<< +\def\:temp{charset=koi8-r}\ifx \A:charset\:temp \else + \a:temp{russian}{iso-8859-5}{ru} +\fi +>>> + + + + +\<configure html4 russianb\><<< +\NewConfigure{dtd-lang}{1} \Configure{dtd-lang}{RU} +\def\:temp{charset=koi8-r}\ifx \A:charset\:temp \else + \def\A:charset{charset=iso-8859-5} +\fi +\ifx \@begindocumenthook\:UnDef\else + \:CheckOption{new-accents} \if:Option \else +% \def\:temp{russian}\ifx \languagename\:temp + |<russian|> +% \fi +\fi\fi +>>> + + +We had also \verb'\append:def\@begindocumenthook{\HLet\"|=\ddot}' in +babel. It gets russian and brazil into infinite loop. Why it was +inserted. + +ERROR: The non ascii characters might translate wrongly in the 4ht +file (e.g., \verb'^^e5' for 00EB below). They also not show in the +documentation since a cmtt10 font is in use and it doesn't covet those +symbols. The problem will probably vanish once the new accent approach +will kick in. + +We definitely don't want to use it with XeLaTeX and LuaLaTeX. + + +\<russian\><<< +\ifdefined\XeTeXrevision\else +\ifdefined\luatexversion\else +\input{html4-russian-accents.4ht} +\fi\fi +>>> + +\<html4-russian-accents\><<< +% html4-russian-accents.4ht (|version), generated from |jobname.tex +% Copyright 2009-2015 TeX Users Group +% Copyright |CopyYear.1999. Eitan M. Gurari +% +% Extracted to a separate file so the main file has a consistent +% (and UTF-8 compatible) encoding. +|<TeX4ht copywrite|> +\Configure{accent}\"\ddot{|<diaeresis codes|>å{00EB}% + {\@use@text@encoding \@curr@enc A}{00C4}% + {\@use@text@encoding \@curr@enc E}{00CB}% + {\@use@text@encoding \@curr@enc I}{00CF}% + {\@use@text@encoding \@curr@enc O}{00D6}% + {\@use@text@encoding \@curr@enc U}{00DC}% + {\@use@text@encoding \@curr@enc Y}{0178}% + {\@use@text@encoding \@curr@enc a}{00E4}% + {\@use@text@encoding \@curr@enc e}{00EB}% + {\@use@text@encoding \@curr@enc i}{00EF}% + {\@use@text@encoding \@curr@enc \i}{00EF}% + {\@use@text@encoding \@curr@enc o}{00F6}% + {\@use@text@encoding \@curr@enc u}{00FC}% + {\@use@text@encoding \@curr@enc y}{00FF}% + {\@use@text@encoding \@curr@enc å}{00EB}% + {}{34}} + {\a:accents{uml}{#1}} + {\def\:temp{>}\def\:tempa{#2}\ifx \:temp\:tempa\HCode{»}% + \else \def\:temp{<}\ifx \:temp\:tempa\HCode{«}% + \else \b:accents{uml}{#1}{#2}\fi\fi} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Accents Style} +%%%%%%%%%%%%%%%%%% + +\<configure html4-math accents\><<< +\Configure{accentset} + {\HCode{<span class="accentset">}} + {\HCode{<span class="accent">}} + {\HCode{</span></span>}} +\Configure{underaccent} + {\HCode{<span class="underaccent">}} + {\HCode{<span class="accent">}} + {\HCode{</span></span>}} +\Css{span.accentset span.accent{font-size:80\%; + position:relative; top:-1.7ex; left:-0.6em;}} +\Css{span.underaccent span.accent{font-size:80\%; + position:relative; top:1.6ex; left:-0.6em;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Features} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Margin Comments} +%%%%%%%%%%%%%%%%%% + + +We need to consider cases like + \verb+\marginpar{ Consider: \par *one \par *two}+ +for margin pars. + + + +\<configure html4 latex\><<< +\Configure{marginpar} + {% + \def\marginpar:class{marginpar}% + \if@reversemargin\def\marginpar:class{reversemarginpar}\fi% + \ifvmode\IgnorePar\EndP\HCode{<div class="\marginpar:class">}% + \def\end:margp{\ifvmode \IgnorePar\fi \EndP \HCode{</div>}}% + \par + \else + \SaveEndP + \HCode{<span class="\marginpar:class">}% + \bgroup + \Configure{HtmlPar}{\HCode{<br />}}{\HCode{<br />}}{}{}% + \def\end:margp{\egroup\HCode{</span>}\RecallEndP}% + \fi + } + {\end:margp} +\Css{.marginpar,.reversemarginpar {width:20\%; float:right; text-align:left; + margin-left:auto; margin-top:0.5em; font-size:85\%; + text-decoration:underline;}} +\Css{.marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;}} +\Css{.reversemarginpar{float:left;}} +>>> + +\verb'margin-left:auto' instead of \verb'margin-left:1em' +-- this makes margin paragraphs float correctly in Netscape 4.06 + browser + + +%%%%%%%%%%%%%%%%%% +\section{Pictures in Margins} +%%%%%%%%%%%%%%%%%% + +\<configure html4 picins\><<< +\Configure{parpic} + {\IgnorePar\EndP\HCode{<div class="picins-\parpicOpt">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +>>> + +\<configure html4 picins\><<< +\Css{.picins-dr, .picins-rd { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border: 1px dashed black; + }} +\Css{.picins-dl, .picins-ld, .picins-d { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border: 1px dashed black; + }} +\Css{.picins-fr, .picins-rf { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border: 1px dashed black; + }} +\Css{.picins-fl, .picins-lf, .picins-f { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border: 1px solid black; + }} +\Css{.picins-sr, .picins-rs { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 4px solid black; + border-bottom: 4px solid black; + }} +\Css{.picins-sl, .picins-ls, .picins-s { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 4px solid black; + border-bottom: 4px solid black; + }} +\Css{.picins-xr, .picins-rx { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 1px solid black; + border-bottom: 1px solid black; + }} +\Css{.picins-xl, .picins-lx, .picins-x { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + border-left: 1px solid black; + border-top: 1px solid black; + border-right: 1px solid black; + border-bottom: 1px solid black; + }} +\Css{.picins-r { float:right; + padding: 2px; margin-left:5px; margin-bottom:3px; + }} +\Css{.picins-l, .picins- { float:left; + padding: 2px; margin-right:5px; margin-bottom:3px; + }} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Style Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%% +\subsection{subequations} +%%%%%%%%%%%%% + + +\<configure html4 amsmath\><<< +\ConfigureEnv{subequations} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="subequations">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {}{} +>>> + + + +%%%%%%%%%%%%% +\subsection{subeqnarray} +%%%%%%%%%%%%% + + +\<configure html4 subeqnarray\><<< +\ConfigureEnv{subeqnarray} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="subeqnarray">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par\ShowPar} + {}{} +>>> + +%%%%%%%%%%%%% +\subsection{Ushort} +%%%%%%%%%%%%% + + +\<configure html4-math ushort\><<< +\Configure{ushort} + {\HCode{<span class="underline">}\hbox\bgroup \:gobble} + {\egroup \HCode{</span>}} +\Configure{ushortw} + {\HCode{<span class="underline">}\hbox\bgroup \:gobble} + {\egroup \HCode{</span>}} +\Configure{ushortd} + {\HCode{<span class="underline-d">}\hbox\bgroup \:gobble} + {\egroup \HCode{</span>}} +\Configure{ushortdw} + {\HCode{<span class="underline-d">}\hbox\bgroup \:gobble} + {\egroup \HCode{</span>}} +\Configure{ushortdline} + {\HCode{<span class="underline-d">}\hbox\bgroup \:gobble} + {\egroup \HCode{</span>}} +\Css{.underline-d{ border-bottom: 3px double black; + margin-bottom:1pt; }} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\subsection{MeX} +%%%%%%%%%%%%%%%%%% + + +\<configure html4 mex\><<< +\def\MeX{\HCode{<span class="MeX">}MeX\HCode{</span>}} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{eplain} +%%%%%%%%%%%%%%%%%% + + +\<configure html4 eplain\><<< +\Configure{columns} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="columns"><!--cols=\NumColumns-->}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.columns { margin-left:2em; margin-right:2em; }} +>>> + + +\<configure html4 eplain\><<< +\Configure{bibliography} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="bibliography">}\par} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +>>> + + + +\<configure html4 eplain\><<< +\Configure{makecolumns} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="makecolumns"><tr><td>}% + \gdef\make:col{\gdef\make:col{\HCode{<br />}}}} + {\HCode{</td></tr></table>}} + {\HCode{</td><td>}% + \gdef\make:col{\gdef\make:col{\HCode{<br />}}}} + {\make:col} + {} +\Css{table.makecolumns{width:100\%;}} +\Css{table.makecolumns td {vertical-align:top;}} +>>> + + +\<configure html4 eplain\><<< +\Configure{flushleft} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="flushleft">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}} + {\HCode{<br />}} +\Configure{flushright} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="flushright">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}} + {\HCode{<br />}} +\Configure{center} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="center">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}} + {\HCode{<br />}} +\Css{div.center {text-align:center;}} +\Css{div.flushright {text-align:right;}} +\Css{div.flushleft {text-align:left;}} +>>> + + + +\<configure html4 eplain\><<< +|<eplain dates|> +\Configure{numberedlist} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<ol>}\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \end:itm \HCode{</ol>}} + {\end:itm \def\end:itm{\EndP\Tg</li>}\HCode{<li>}\special{t4ht@[}\IgnorePar} + {\special{t4ht@]}} +\Configure{orderedlist} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<ol>}\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \end:itm \HCode{</ol>}} + {\end:itm \def\end:itm{\EndP\Tg</li>}\HCode{<li>}\special{t4ht@[}\IgnorePar} + {\special{t4ht@]}} +\Configure{unorderedlist} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<ul>}\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \end:itm \HCode{</ul>}} + {\ifvmode \IgnorePar\fi \EndP + \end:itm \def\end:itm{\EndP\Tg</li>}% + \HCode{<li>}\special{t4ht@[}\IgnorePar} + {\special{t4ht@]}} +>>> + +\<configure html4 eplain\><<< +\Configure{listing} + {\IgnorePar\EndP \HCode{<div class="listing">}\par + \Configure{HtmlPar} + {\EndP} + {\EndP} + {~\HCode{<br />}} + {~\HCode{<br />}} + } + {\HCode{</div>}\par} +>>> + + +\<configure html4-math eplain\><<< +\Configure{PicDisplay} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{<div class="\if@leftdisplays leftdisplay\else centereddisplay\fi">}} + {\HCode{</div>}} {} {class="\MathPar math-display" } +\Css{div.lsftdisplay {text-align:left;}} +\Css{div.centereddisplay {text-align:center;}} +>>> + + +\<configure html4-math eplain\><<< +\Configure{contents} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="contents">}} + {\HCode{</div>}} +\Configure{tocchapterentry} + {\HCode{<span class="tocchapterentry">}} + {\HCode{</span><span class="toc-num">}} + {\HCode{</span>}} +\Configure{tocsectionentry} + {\HCode{<span class="tocsectionentry">}} + {\HCode{</span><span class="toc-num">}} + {\HCode{</span>}} +\Configure{tocsubsectionentry} + {\HCode{<span class="tocsubsectionentry">}} + {\HCode{</span><span class="toc-num">}} + {\HCode{</span>}} +\Css{span.tocchapterentry{width:30em}} +\Css{span.tocsectionentry{width:30em; padding-left:1.5em}} +\Css{span.tocsectionentry{width:30em; padding-left:3em}} +\Css{span.toc-num{width:6em; padding-left:2em}} +>>> + + + +\<eplain dates\><<< +\Configure{monthname} + {\HCode{<span class="month">}} + {\HCode{</span>}} +\Configure{timestring} + {\HCode{<span class="time">}} + {\HCode{</span>}} +\Configure{timestamp} + {\HCode{<span class="timestamp">}} + {\HCode{</span>}} +\Configure{today} + {\HCode{<span class="today">}} + {\HCode{</span>}} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{Drawing Utilitis} +%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Diagrams} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 epsf\><<< +\Configure{epsfsetgraph} + {\Picture+[\PicName]{}} + {\EndPicture} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Diagrams} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 diagrams\><<< +\ConfigureEnv{diagram} + {\ifvmode \IgnorePar \EndP + \Tg<div class="diagrams">\def\End:Diagrams{\Tg</div>}% + \else \let\End:Diagrams\empty + \fi } + {\End:Diagrams} + {}{} +\Configure{diagram} + {\Picture*{}$} {$\EndPicture} +\Css{.diagrams {text-align: center;}} +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{dratex} +%%%%%%%%%%%%%%%%%%% + + \<configure html4 dratex\><<< +\Css{div.Draw{text-align:center}} +>>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{pgf} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 pgf\><<< +\ConfigureEnv{pgfpicture} + {\hbox\bgroup\Picture+[picture]{}} + {\EndPicture\egroup} + {}{} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{pgf} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 overpic\><<< +\ConfigureEnv{overpic} + {\Picture*[pic]{}} + {\EndPicture} + {}{} +>>> + + + + +%%%%%%%%%%%%%% +\subsection{psfig} +%%%%%%%%%%%%%% + +\<configure html4 psfig\><<< +|<0,32,4 psfig|> +>>> + +\<0,32,4 psfig\><<< +\Configure{psfig} {\Picture+[psfig]{}}{\EndPicture} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{graphics} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 graphics\><<< +\:CheckOption{graphics-} \if:Option + \Configure{graphics} + {\bgroup + \let\E:IMG=\e:IMG \let\e:IMG=\empty + \Picture+[\a:GraphicsAlt]{ class="graphics"}} + {\EndPicture + \E:IMG\HCode{<!--tex4ht:graphics + \Hnewline name="\PictureFile" src="\Gin@base\Gin@ext" + \Hnewline -->}% + \egroup} +\else + |<graphics quality|> + \Configure{graphics} + {\bgroup + \let\E:IMG=\e:IMG \let\e:IMG=\empty + \Picture+[\a:GraphicsAlt]{ class="graphics"}} + {\EndPicture \ifx\noBoundingBox\UnDefined + |<pixels graphics width/height|>\fi + \E:IMG\HCode{<!--tex4ht:graphics + \Hnewline name="\PictureFile" src="\Gin@base\Gin@ext" + \Hnewline -->}% + \egroup} +\fi +\Configure{graphics*} + {gif} + {{\Configure{Needs}{File: \Gin@base.gif}\Needs{}}% + \Picture[\a:GraphicsAlt]{{\Gin@base.gif} |<graphics dim|>}} +\Configure{graphics*} + {png} + {{\Configure{Needs}{File: \Gin@base.png}\Needs{}}% + \Picture[\a:GraphicsAlt]{{\Gin@base.png} |<graphics dim|>}} +\Configure{graphics*} + {jpg} + {{\Configure{Needs}{File: \Gin@base.jpg}\Needs{}}% + \Picture[\a:GraphicsAlt]{{\Gin@base.jpg} |<graphics dim|>}} +\Configure{graphics*} + {jpeg} + {{\Configure{Needs}{File: \Gin@base.jpeg}\Needs{}}% + \Picture[\a:GraphicsAlt]{{\Gin@base.jpeg} |<graphics dim|>}} +\Configure{graphics*} + {svg} + {{\Configure{Needs}{File: \Gin@base.svg}\Needs{}}% + \Picture[\a:GraphicsAlt]{{\Gin@base.svg} |<graphics dim|>}} +\Configure{graphics*} + {eps} + {\openin15=\csname Gin@base\endcsname\PictExt\relax% + \ifeof15% + \Needs{\a:EpsConvert}% + \fi% + \closein15% + {\Configure{Needs}{File: \Gin@base\PictExt}\Needs{}}% + \Picture[\a:GraphicsAlt]{{\Gin@base\PictExt} |<graphics dim|>}} + +|<graphics default extensions|> + +\edef\svg:ext{.svg} + +\NewConfigure{ImageMagick}{1} +\NewConfigure{Ghostscript}{1} + +\Configure{ImageMagick}{convert} +\Configure{Ghostscript}{rungs} + +\ifx\gr:density\empty +\gdef\gr:density{300} +\fi + +\NewConfigure{EpsConvert}{1} +\NewConfigure{PdfConvert}{2} + +% test the picture output format +\ifx\PictExt\svg:ext +\Configure{PdfConvert}{svg}{"pdf2svg "\Gin@base.pdf" "\Gin@base-\Gin@page.\a:PdfConvert" \Gin@page"} +% the quality of conversion using ImageMagick is quite bad, it rasterizes the vectors and +% the resulting SVG is basically PNG encapsulated in SVG +% \Configure{EpsConvert}{"\a:ImageMagick\space '\Gin@base.eps' '\Gin@base.svg'"} +% it is better to use the following command. pdf2svg must be installed separately. +\Configure{EpsConvert}{"epstopdf "\Gin@base.eps" && pdf2svg "\Gin@base.pdf" "\Gin@base.svg""} +\else +\Configure{PdfConvert}{png}{"\a:Ghostscript\space -q -dNOPAUSE -dBATCH -dusecropbox -sDEVICE=pngalpha -r\gr:density\space \ifx\Gin@page\@empty\else -dFirstPage="\Gin@page" -dLastPage="\Gin@page"\fi\space -sOutputFile="\Gin@base-\Gin@page.\a:PdfConvert" "\Gin@base.pdf" "} +\Configure{EpsConvert}{"\a:Ghostscript\space -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -r\gr:density\space -sDEVICE=pngalpha -sOutputFile="\Gin@base.png" "\Gin@base.eps" "} +\fi +\Configure{graphics*} + {pdf} + {\ifdefined\Gin@page\else\def\Gin@page{1}\fi% + \edef\svg:filename{\Gin@base-\Gin@page.\a:PdfConvert}% + % test for existence of the converted file + \openin15=\svg:filename\relax + \ifeof15 + \Needs{\b:PdfConvert}% + \fi + \closein15 + { \Configure{Needs}{File: \svg:filename}\Needs{}}% + \Picture[\a:GraphicsAlt]{{\svg:filename} |<graphics dim|>}} + +\NewConfigure{GraphicsAlt}{1} +\Configure{GraphicsAlt}{PIC} +|<includegraphics dim|> +>>> + +\<graphics quality\><<< +\def\:temp#1graphics-#2,#3|<par del|>{\def\gr:density{#2}} +\expandafter\:temp\Preamble,graphics-,|<par del|> +\ifx \gr:density\empty + \Log:Note{if included graphics are + of degraded quality, try the command line options + `graphics-num' or `graphics-'. The `num' should provide + the density of pixels in the bitmaps (e.g., 110). + } +\fi +\def\int:pt#1.#2|<par del|>{#1} +>>> + + + +\<graphics dim\><<< +\csname a:Gin-dim\endcsname +>>> + + +\<includegraphics dim\><<< +\NewConfigure{Gin-dim}{1} +\:CheckOption{Gin-dim} \if:Option + \Configure{Gin-dim} + {\ifx\noBoundingBox\UnDefined + |<graphics width/height|>% + \else + |<graphicx width/height|>% + \fi + class="includegraphics" + } +\else \:CheckOption{Gin-dim+} \if:Option + \Configure{Gin-dim} + {\ifx \Gin:ewidth\Gin@exclamation + \ifx \Gin:eheight\Gin@exclamation + \ifx\noBoundingBox\UnDefined + |<graphics width/height|>% + \fi + \else + height="\expandafter\int:pt\Gin:eheight|<par del|>" + \fi + \else + width="\expandafter\int:pt\Gin:ewidth|<par del|>" + \ifx \Gin:eheight\Gin@exclamation \else + height="\expandafter\int:pt\Gin:eheight|<par del|>" + \fi + \fi + class="includegraphics" + } +\else + \Log:Note{for key dimensions try the option + `Gin-dim'; for key dimensions when bounding box is unavailable + try `Gin-dim+'; neither is recommended} + \Configure{Gin-dim} + {\if:boundingbox{|<graphics width/height|>}{}} +\fi \fi +>>> + +\<pixels graphics width/height\><<< +\ifx \gr:density\empty + \HCode{ + width="\expandafter\int:pt\the\Gin@req@width|<par del|>" + height="\expandafter\int:pt\the\Gin@req@height|<par del|>" + }% +\else + \bgroup + \divide\Gin@req@width by 72 + \multiply\Gin@req@width by \gr:density \relax + \divide\Gin@req@height by 72 + \multiply\Gin@req@height by \gr:density \relax + \HCode{ + width="\expandafter\int:pt\the\Gin@req@width|<par del|>" + height="\expandafter\int:pt\the\Gin@req@height|<par del|>" + }% + \egroup +\fi +>>> + + +\<graphics width/height\><<< +width="\expandafter\int:pt\the\Gin@req@width|<par del|>" +height="\expandafter\int:pt\the\Gin@req@height|<par del|>" +>>> + +\<graphicx width/height\><<< +\ifx \Gin:ewidth\Gin@exclamation \else + width="\expandafter\int:pt\Gin:ewidth|<par del|>" +\fi +\ifx \Gin:eheight\Gin@exclamation \else + height="\expandafter\int:pt\Gin:eheight|<par del|>" +\fi +>>> + +Declare default graphics extensions supported in HTML or converted to these +supported formats by tex4ht. + +\<graphics default extensions\><<< +\DeclareGraphicsExtensions{.png,.svg,.jpg,.eps,.pdf} +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{graphicx} + +\<configure html4 graphicx\><<< +\Configure{rotatebox}{\HCode{<span class="rotatebox" style="transform: rotate(-\Grot@angle deg);">}}{\HCode{</span>}} +\Css{.rotatebox{display: inline-block;}} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{xy} +%%%%%%%%%%%%%%%%%% + +\<configure html4 xy\><<< +|<32,4 xy|> +>>> + +\<32,4 xy\><<< +\Configure{xypic} + {\Picture*{}} {\EndPicture} +\def\:tempc{\HCode{<span class="Xy">}X\HCode{<span + class="Y">}Y\HCode{</span>}} +\HLet\Xy\:tempc +\Css{span.Xy span.Y{ position:relative; top:0.35ex;left:-0.25em;}} +>>> + + + +%%%%%%%%%%%%%%%%%% +\subsection{pstricks} +%%%%%%%%%%%%%%%%%% + + +\<configure html4 pst-all\><<< +\ConfigureEnv{psmatrix} + {\Picture*{}} + {\EndPicture} + {}{} +>>> + +\<configure html4 pstricks\><<< +\Configure{pspicture} + {\ifvmode \ifinner\else \vfill\break\fi + \leavevmode\fi + \bgroup + \ifdim \pst@dimh<\z@ \pst@dimh=-\pst@dimh \fi + \HCode{<!--width="\ifdim \wd\pst@hbox=\z@ \the\pst@dimg + \else\the\wd\pst@hbox\fi" + height="\ifdim \ht\pst@hbox=\z@ \the\pst@dimh + \else \the\ht\pst@hbox\fi"-->}% + \egroup + \Picture+[\a:pspictureAlt]{ class="pspicture"}} + {\EndPicture} +\NewConfigure{pspictureAlt}{1} +\Configure{pspictureAlt}{PIC} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{pb-diagram} +%%%%%%%%%%%%%%%%%% + +\<configure html4 pb-diagram\><<< +\ConfigureEnv{diagram} + {\Picture*{ class="pb-diagram"}$} {$\EndPicture} {}{} +\Css{.pb-diagram {align:center}} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{pictex} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 pictex\><<< +\Configure{pictex} + {\:xhtml{\IgnorePar\EndP}\HCode{<div + class="pictex">}}{\HCode{</div>}}{+[PICT]} +\Css{div.pictex {text-align:center;}} +>>> + + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{mfpic} +%%%%%%%%%%%%%%%%%%%% + +\<configure html4 mfpic\><<< +\expandafter \ifx\csname if@mfp@latexe\endcsname\relax + |<non 2005 latex mpic|> +\else + |<2005 latex mpic|> +\fi +>>> + +\<non 2005 latex mpic\><<< +\Configure{mfpic} {\Picture+{}} {\EndPicture} +>>> + +\<2005 latex mpic\><<< +\ConfigureEnv{mfpic} {\Picture+{}} {\EndPicture}{}{} +>>> + + + + + +%%%%%%%%%%%%%%%%%%% +\section{Slides} +%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%% +\subsection{powerdot} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 powerdot\><<< +|<powerdot fields|> +\Configure{@HEAD} + {\HCode{\Hnewline<!-- + http://www.w3.org/Talks/Tools/Slidy/slidy.js -->\Hnewline + <script src="Slidy/slidy.js" + type="text/javascript"><![CDATA[ \Hnewline + ]]></script>\Hnewline}} +\Log:Note{Requires the slidy.js and *.css files from + http://www.w3.org/Talks/Tools/Slidy/slidy.zip + in subdirectory Slidy} +>>> + +\<configure html4 powerdot\><<< +\def\:temp#1font=#2,#3|<par del|>{% + \if !#2!% + \Log:Note{for adjusted font size, use + the command line option `font=...' (e.g., font=-2)} + \else + \Configure{@HEAD} + {\HCode{<meta name="font-size-adjustment" + content="#2" />}\Hnewline} + \fi} +\expandafter\:temp\Preamble ,font=,|<par del|> +>>> + + + +\<configure html4 powerdot\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="slide cover"><div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div></div>}} + {\NoFonts\IgnorePar\HCode{<h1 class="slideTitle"\a:LRdir>}\IgnorePar} + {\HCode{</h1>}\IgnoreIndent\EndNoFonts} +\Css{div.slide.cover{width:100\%;}} +>>> + +\<configure html4 powerdot\><<< +\ConfigureEnv{titleslide}{}{}{}{} +\ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="slide">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +\ConfigureEnv{sectionslide} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="slide">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +>>> + +\<configure html4 powerdot\><<< +\Configure{slidetitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<h1 class="slideTitle">}\IgnorePar\bgroup + \ConfigureEnv{minipage}{}{}{}{}} + {\egroup\ifvmode \IgnorePar\fi \EndP \HCode{</h1>}\ShowPar\par} +>>> + +\<configure html4 powerdot\><<< +\Css{div.toolbar { + position: fixed; z-index: 200; + top: auto; bottom: 0; left: 0; right: 0; + height: 1.2em; text-align: right; + padding-left: 1em; + padding-right: 1em; + font-size: 60\%; + color: \#FF0000; background: \#EEEEEE; +} } +>>> + + +\<configure html4 powerdot\><<< +\ConfigureList{itemize}% + {|<start pause region|>% + \EndP\HCode{<ul \a:LRdir + class="|<cond incremental|>itemize\expandafter\the + \csname @itemdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\ifvmode \IgnorePar\fi + \EndP\HCode{</li></ul>}\ShowPar + |<end pause region|>} + {\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="itemize">}} +>>> + +\<configure html4 powerdot\><<< + \ConfigureList{enumerate}% + {|<start pause region|>|<powerdot enumerate I|>} + {|<enumerate II|>} + {|<enumerate III|>} + {|<enumerate IV-|>|<end pause region|>} +>>> + +\<powerdot enumerate I\><<< +\EndP\HCode{<ol \a:enumerate:\space + class="|<cond incremental|>enumerate\expandafter + \the\csname @enumdepth\endcsname" + \a:LRdir + >}|<save end:itm|>\global\let\end:itm=\empty +>>> + + +\<configure html4 powerdot\><<< +\ConfigureList{description}% + {|<start pause region|>\EndP\HCode{<dl \a:LRdir + class="|<cond incremental|>description">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar + |<end pause region|>} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="description">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="description">}} +>>> + + + +\<configure html4 powerdot\><<< +\def\pause{\hbox{\expandafter\global\expandafter\let\csname + pi-\pauseId\endcsname=\def}} +\let\pd:item\pd@item +\def\pd@item[#1]<#2>{\pd:item[#1]<>\pause} +>>> + + +\<cond incremental\><<< +\ifTag{pi-\pauseId}{incremental }% +>>> + +\<powerdot fields\><<< +\HAssign\PauseId = 0 +\HAssign\pauseId = 0 +>>> + + +\<start pause region\><<< +\PushStack\Table:Stck\pauseId +\gHAdvance\PauseId by 1 +\global\let\pauseId=\PauseId +>>> + +\<end pause region\><<< +\expandafter\ifx\csname pi-\pauseId\endcsname\relax \else + \expandafter\global\expandafter\let\csname + pi-\pauseId\endcsname=\:UnDef + \Tag{pi-\pauseId}{}% +\fi +\PopStack\Table:Stck\pauseId +\global\let\pauseId=\pauseId +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Beamer} +%%%%%%%%%%%%%%%%%%% + + + + +\<configure html4 beamer\><<< +|<beamer slides|> +|<beamer environments|> +\ifx \beamer@version\:UnDef + |<beamer toc 0.8 and 0.3|> +\fi +>>> + +\<beamer environments\><<< +\let\block:Name=\empty +\ConfigureEnv{block} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{block}\fi + \HCode{<div class="\block:Name">}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +\ConfigureEnv{alertblock} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{alertblock}\fi + \HCode{<div class="\block:Name">}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +\ConfigureEnv{Problem} + {\def\block:Name{Problem}} {} {} {} +\ConfigureEnv{Loesung} + {\def\block:Name{Loesung}} {} {} {} +\ConfigureEnv{Definition} + {\def\block:Name{Definition}} {} {} {} +\ConfigureEnv{Satz} + {\def\block:Name{Satz}} {} {} {} +\ConfigureEnv{Beweis} + {\def\block:Name{Beweis}} {} {} {} +\ConfigureEnv{Folgerung} + {\def\block:Name{Folgerung}} {} {} {} +\ConfigureEnv{Lemma} + {\def\block:Name{Lemma}} {} {} {} +\ConfigureEnv{Fakt} + {\def\block:Name{Fakt}} {} {} {} +\ConfigureEnv{Theorem} + {\def\block:Name{Theorem}} {} {} {} +\ConfigureEnv{Proof} + {\def\block:Name{Proof}} {} {} {} +\ConfigureEnv{Corollary} + {\def\block:Name{Corollary}} {} {} {} +\ConfigureEnv{Fact} + {\def\block:Name{Fact}} {} {} {} +\ConfigureEnv{definition} + {\def\block:Name{definition}} {} {} {} +\ConfigureEnv{definitions} + {\def\block:Name{definitions}} {} {} {} +\ConfigureEnv{theorem} + {\def\block:Name{theorem}} {} {} {} +\ConfigureEnv{proof} + {\def\block:Name{proof}} {} {} {} +\ConfigureEnv{corollary} + {\def\block:Name{corollary}} {} {} {} +\ConfigureEnv{fact} + {\def\block:Name{fact}} {} {} {} +>>> + +\<beamer toc 0.8 and 0.3\><<< +\ConfigureEnv{exampleblock} + {\par\IgnorePar\EndP + \ifx \block:Name\empty \def\block:Name{exampleblock}\fi + \HCode{<div class="\block:Name">}\global\let\block:Name=\empty} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +>>> + + +\<beamer environments\><<< +\ConfigureEnv{Beispiel} + {\def\block:Name{Beispiel}} {} {} {} +\ConfigureEnv{Beispiele} + {\def\block:Name{Beispiele}} {} {} {} +\ConfigureEnv{Example} + {\def\block:Name{Example}} {} {} {} +\ConfigureEnv{Examples} + {\def\block:Name{Examples}} {} {} {} +\ConfigureEnv{example} + {\def\block:Name{example}} {} {} {} +\ConfigureEnv{examples} + {\def\block:Name{examples}} {} {} {} +\Css{div.Example, div.examplblock, div.Beispiele, + div.Beispiel, div.Examples, div.example, div.examples{color:green;}} +>>> + +\<beamer slides\><<< +\:CheckOption{1} \if:Option + \ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP + \ifnum \Slide:cnt>0 \HPage{}\fi + \ifvmode \IgnorePar\fi \EndP + |<beamer header|>% + \HCode{<div class="slide">}\par + } + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}\ifnum \Slide:cnt>1\relax \EndHPage{}\fi} + {} {} + \Css{div.slide {border-top:solid black 0.4pt;}} +\else + \Log:Note{for pagination of slides, + use the command line option `1'} + \ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<hr class="hidden" />}% + |<beamer header|>% + \HCode{<div class="slide">}\par + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} + \Css{div.slide {border:solid black 0.4pt;}} +\fi +>>> + +This is code for the moder Beamer + +\<beamer slides\><<< + +\Configure{frame}{\ifvmode\IgnorePar\fi\EndP + \HCode{<div class="slide">} +}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} +\Configure{frametitle}{\ifvmode\IgnorePar\fi\EndP\HCode{<h2>}\NoFonts}{\EndNoFonts\ifvmode\IgnorePar\fi\EndP\HCode{</h2>}\par\ShowPar} +\Css{div.slide {border:solid black 0.4pt;margin-bottom:1em;}} + +>>> + + + + + +\<beamer toc 0.8 and 0.3\><<< +\Configure{frametitle} + {\ifvmode \IgnorePar\fi \EndP \HCode{<h2 class="frametitle">}\bgroup + \Configure{HtmlPar}{ }{ }{}{}% + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</h2>}} +>>> + +\<configure html4 beamer\><<< +\Css{h1, h2, span.inst sup{font-size:100\%;}} + +\ConfigureEnv{overlayarea} + {\bgroup + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \HCode{<table class="minipage"><tr><td>}} + {\EndP\HCode{</td></tr></table>}\egroup } + {}{}% + } + {\EndP\egroup } + {}{} + } + {\egroup} {}{} +>>> + + +\<configure html4 beamer\><<< +\Configure{sec@slide} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="hidden">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par + |<beamer cross links|>\par} +\Css{.hidden {visibility:hidden;}} + +\Css{table.columns {width:100\%;}} +\Css{td.column {vertical-align:top;}} +>>> + + +\<configure html4 beamer\><<< +\Configure{inst} + {\HCode{<span class="inst">}} + {\HCode{</span>}} + +\Configure{titlepage} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="titlepage">}% + \gHAdvance\Slide:cnt by 1 + \Link{}{sl1}\EndLink + |<beamer cross links|>% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{title} + {\ifvmode \IgnorePar\fi \EndP \HCode{<h1 class="title">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</h1>}} +\Configure{author} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="author">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{institute} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="institute">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{date} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{andtitle}{\HCode{<br />}} +\Css{div.titlepage {text-align:center;}} +\Css{div.institute { margin-bottom: 1em; margin-top: 1em;}} +>>> + + +\<configure html4 beamer\><<< +\ConfigureEnv{columns} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="columns"><tr>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</tr></table>}} + {}{} + +\ConfigureEnv{column} + {\bgroup + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \ConfigureEnv{minipage} + {\bgroup \IgnorePar\EndP + \HCode{<table class="minipage"><tr><td>}} + {\EndP\HCode{</td></tr></table>}\egroup } + {}{}% + } + {\EndP\egroup } + {}{}% + \HCode{<td class="column">}% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</td>}\egroup} + {}{} +>>> + + +\<configure html4 beamer\><<< +\ifx \beamer@version\:UnDef + |<shared conf beamer 0.8 and 0.3|> + \ifx \insertinstituteshort\:UnDef + |<conf beamer 0.8|> + \else + |<conf beamer 0.3|> + \fi +\else + |<conf beamer 3.01|> +\fi +>>> + +\<shared conf beamer 0.8 and 0.3\><<< +\Configure{sectionshadedintoc} + {\HCode{<div class="sectionshadedintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Configure{sectionintoc} + {\HCode{<div class="sectionintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Configure{subsectionshadedintoc} + {\HCode{<div class="subsectionshadedintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Configure{subsectionintoc} + {\HCode{<div class="subsectionintoc">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} +\Css{div.sectionintoc, div.sectionshadedintoc{ margin-top:1em; }} +\Css{div.tableofcontents + { padding-left:1em; padding-right:1em; padding-bottom:1em; }} +\Css{.tableofcontents div.subsectionintoc, + .tableofcontents div.subsectionshadedintoc{ margin-left:1em; }} +>>> + +\<configure html4 beamer\><<< +\ConfigureToc{toc} + {} + {\Configure{TocLink} + {\def\hyperlink########1########2{\Link{####2}{}########2\EndLink}####4}% + \leavevmode} + {}{\par} +\Configure{tableofcontents} + {\IgnorePar\EndP \HCode{<div class="TableOfContents"\a:LRdir>}}{} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\ShowPar} + {}{} +>>> + + +\<beamer cross links\><<< +\slides:toc +>>> + +\<beamer header\><<< +\gHAdvance\Slide:cnt by 1 +\ifx \sec:name\empty + \HCode{<div class="hidden">}\Link{}{sl\Slide:cnt}\EndLink + \HCode{</div>}% +\else + \HCode{<div class="header">}\Link{}{sl\Slide:cnt}\EndLink + \sec:name + \ifx \subsec:name\empty \else \HCode{<br />}\subsec:name\fi + \HCode{</div>}% +\fi +>>> + +\<configure html4 beamer\><<< +\let\beamer:section=\@section +\def\@section[#1]#2{\beamer:section[#1]{#2}% + \gHAdvance\:bookmarkN by 1 + \def\sec:name{#2}\let\subsec:name=\empty} +\append:defI\subsection{% + \gHAdvance\:bookmarkN by 1 + \def\subsec:name{#1}} +\HAssign\:bookmarkN=0 +\let\sec:name=\empty +\let\subsec:name=\empty +\Css{div.header{ margin:0; text-align:right; font-size:70\%; }} +>>> + + + + + +\<configure html4 beamer\><<< +\gHAssign\Slide:cnt=0 +\def\slides:toc{% + |<beamer bookmarks|>% + |<beamer toc frames|>% + \gdef\slides:toc{\ifvmode \IgnorePar\fi \EndP + \HCode{<p class="links">}|<set beamer cross links|>% + \HCode{</p>}\par}% + \slides:toc +} +\Css{p.links{ margin:0; float:right; text-align:right; + font-size:70\%; }} +>>> + + +\<set beamer cross links\><<< +\bgroup + \HAdvance\Slide:cnt by 1\relax + \ifTag{)Qsl\Slide:cnt}{\Link{sl\Slide:cnt}{}next\EndLink\HCode{<br />}}{}% +\egroup +\ifnum \Slide:cnt>1 + \bgroup + \HAdvance\Slide:cnt by -1 + \Link{sl\Slide:cnt}{}prev\EndLink\HCode{<br />}% + \ifnum \:bookmarkN>0\relax + \Link[ target="|<tex4ht-menu|>" + ]{tc-\:bookmarkN}{}toc\EndLink\HCode{<br />}% + \fi + \Link{sl1}{}top\EndLink\HCode{<br />}% + {\HAdvance\Slide:cnt by 1\relax \Slide:cnt}% + \egroup +\else + \Link[ target="|<tex4ht-menu|>"]{bookmark}{}toc\EndLink +\fi +>>> + + + + + + + +\<beamer bookmarks\><<< +\:CheckOption{frames}\if:Option\else + \bgroup + \HPage{}{\beamer:bookmarks\tableofcontents}\EndHPage{}% + \egroup +\fi +>>> + + +\<configure html4 beamer\><<< +\:CheckOption{frames}\if:Option + \:CheckOption{ver}\if:Option + |<beamer ver frames|> + \else + \Log:Note{for vertically stacked frames, + use the command line options `frames' and `ver'} + |<beamer hor frames|> + \fi + \Css{body\#tex4ht-menu{ background-color:\#EEEEEE; }} +\fi +\def\beamer:bookmarks{% + \Link{}{bookmark}\EndLink + \HAssign\:bookmarkN=0 + |<beamer bookmark config|>% + \Configure{tableofcontents} + {\IgnorePar\EndP \HCode{<div class="bookmarks">}}{} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\ShowPar} + {}{} + \let\std:tableofcontents\tableofcontents + \def\tableofcontents{\std:tableofcontents[section,subsection]}% + } +>>> + + +\<beamer bookmark config\><<< +\:CheckOption{frames}\if:Option + \Configure{TocLink} + {\HAdvance\:bookmarkN by 1\relax + \Link{##2}{tc-\:bookmarkN}##4\ifvmode + \IgnorePar\fi \EndLink} +\else + \Configure{TocLink} + {\HAdvance\:bookmarkN by 1\relax + \Link[ target="|<tex4ht-main|>"]{##2}{tc-\:bookmarkN}##4\ifvmode + \IgnorePar\fi \EndLink} +\fi +>>> + + + +\<configure html4 beamer\><<< +\ConfigureToc{section} + {}{\HCode{<div class="sectionintoc">}} {\HCode{</div>}} {}{} +\ConfigureToc{subsection} + {} + {\HCode{<div class="subsectionintoc">}} + {\HCode{</div>}} {}{} +\Css{div.bookmarks {white-space: nowrap;}} +\Css{div.bookmarks div.subsectionintoc a { text-decoration: none; + font-size:85\%;}} +>>> + + +\<configure html4 beamer\><<< +\Configure{alert} + {\HCode{<span class="alert">}} + {\HCode{</span>}} +\Css{span.alert {color:\#FF0000;}} +\Hinclude{% + \Configure{HColor}{alert}{rgb(100\%,0\%,0\%)}% + \Configure{HColor}{blockstructure}{rgb(20\%,20\%,70\%)}% + \Configure{HColor}{darkgreen}{rgb(15\%,60\%,15\%)}% + \Configure{HColor}{lightgray}{rgb(90\%,90\%,90\%)}% + \Configure{HColor}{shaded}{rgb(60\%,60\%,60\%)}% + \Configure{HColor}{structuremedium}{rgb(30\%,30\%,30\%)}% + \Configure{HColor}{structureshaded}{rgb(75\%,75\%,75\%)}% + \Configure{HColor}{structure}{rgb(0\%,0\%,0\%)}% +}{color} +>>> + +The following is problematic when used on titles. + +\begin{verbatim} +\Configure{structure} + {\HCode{<span class="structure">}} + {\HCode{</span>}} +\Css{span.structure {color:\#000000;}} +\end{verbatim} + + + +%%%%%%%%%%%%%%% +\subsection{foils} +%%%%%%%%%%%%%%% + +\<configure html4 foils\><<< +\Configure{foilhead} {}{} + {\IgnorePar\EndP\HCode{<h2 class="foilheadHead" \a:LRdir>}} + {\HCode{</h2>}\par\ShowPar} +\ConfigureEnv{Theorem}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Lemma}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Corollary}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Corollary*}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Proposition}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Definition}{\par\leavevmode}{\ShowPar}{}{} +\ConfigureEnv{Proof}{\par\leavevmode}{\ShowPar}{}{} +|<foils bib|> +\:CheckOption{1} \if:Option + \CutAt{foilhead} + |<foils toc 1|>% +\else + \Log:Note{for pagination of slides, + use the command line option `1'} +\fi +{\Configure{Needs}{Font\string_Size: #1}\Needs{\@ptsize}} +\Css{h2.foilheadHead{text-align:center;}} +>>> + + + +\<configure html4 foils\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<div class="maketitle">}% + \bgroup + \Configure{tabular}{}{}{}{}{\ifnum \HRow>1 \HCode{<br />}\fi}{}% + \ConfigureEnv{tabular}{}{}{}{}% + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts + \IgnorePar \EndP + \HCode{<h1 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h1>}\IgnoreIndent\EndNoFonts} +\Configure{author date} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} +\Configure{thank} + {|<thank mark sup|>\Link{tk-\the\c@footnote}{}} + {\EndLink |<thank mark end sup|>} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="thank">}% + \IgnorePar + \protect\Link{}{tk-\the\c@footnote}\protect + \EndLink |<thank mark sup|>} + {|<thank mark end sup|>} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} +\Css{h1.titleHead{text-align:center;}} +\Css{div.author{margin-top:3em;text-align:center;}} +\Css{div.date{margin-top:2em;text-align:center;}} +\Css{div.thank{margin-top:3em;}} +\Css{div.thank + div.thank{margin-top:0em;}} +>>> + +\<configure html4 foils\><<< +\Configure{crosslinks+} + {\IgnorePar\EndP \NoFonts + \HCode{|<show input line no|>% + <div class="crosslinks"><p class="noindent">}} + {\HCode{</p></div>}\par\ShowPar \EndNoFonts} + {|<insert inline footnotes |>% + \ifvmode \IgnorePar\fi \EndP + \HCode{|<show input line no|>% + <div class="crosslinks"><p class="noindent">}\NoFonts } + {\EndNoFonts\HCode{</p></div>}\par\ShowPar} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%% +\section{epigraph.sty} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 epigraph\><<< +\Configure{epigraphhead} + {\IgnorePar\EndP\HCode{<div class="epigraphhead">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} + +\Configure{epigraph} + {\IgnorePar\EndP\HCode{<div class="epigraph">}} + {\IgnorePar\EndP\HCode{<div class="episource">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div></div>}} + + +\ConfigureEnv{epigraphs} + {\IgnorePar\EndP\HCode{<div class="epigraphs">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} {}{} + +\Configure{qitem} + {\IgnorePar\EndP\HCode{<div class="qitem">}} + {\IgnorePar\EndP\HCode{<div class="episource">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div></div>}} + +\Css{.epigraph, .epigraphhead, epigraphs {margin-left:60\%}} +\Css{.epigraphhead .epigraph {margin-left:0\%}} + +\Css{.episource {text-align:right}} +\Configure{epirule} {\ifvmode \IgnorePar\fi \EndP\Tg<hr />\par} + +\Css{.epigraphs table { width:40\% ;}} +\Css{.epigraphs table div .episource { text-align:right; width:100\%;}} +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{slides} +%%%%%%%%%%%%%%%%%% + +\<configure html4 slides\><<< +\:CheckOption{1} \if:Option + |<multi slides|> +\else + \Log:Note{for pagination of slides, + use the command line option `1'} + \ConfigureEnv{slide} + {\ifnum \c@slide=0 + \IgnorePar\EndP\HCode{<hr />}\fi} + {\rightline{\a:slidename}% + \IgnorePar\EndP\par\HCode{<hr />}} + {}{} +\fi +>>> + +\<multi slides\><<< +\ConfigureEnv{slide} + {\ifnum \c@slide=0 \EndP\ShowPar\else\IgnorePar\fi} + {} + {}{} +\CutAt{slide} +\Configure{crosslinks}{[}{] }{next}{prev}{}{}{}{up} +\Configure{crosslinks+} + {}{} + {\IgnorePar\EndP \HCode{<div + class="crosslinks"><p class="noindent">}% + {\advance\c@slide by -1 \the\c@slide}: } + {\HCode{</p></div>}\par} +\Css{.crosslinks{text-align:right;font-size:85\%;}} +>>> + +\<configure html4 slides\><<< +|<quote config|> +|<quotations|> +|<description 4|> +|<roman enumeiii|> +\ConfigureEnv{verse} + {\Tg<div class="verse">} + {\Tg</div>} + {}{} +\ConfigureEnv{note} + {\Tg<div class="note">} + {\Tg</div>} + {}{} +\ConfigureEnv{titlepage} + {\Tg<div class="titlepage">} + {\Tg</div>} + {}{} +>>> + + +\<configure html4 slides\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \vtop\bgroup \IgnorePar \EndP \HCode{<div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\egroup} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em; text-align:center; }} +\Configure{author date} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="date" \a:LRdir>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.author, div.date {text-align:center;}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Prosper} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<configure html4 prosper\><<< +|<prosper maketitle|> +|<prosper lists|> +>>> + + + +\<configure html4 prosper\><<< +\Configure{slidetitle} + {\NoFonts \ifvmode \IgnorePar\fi \EndP + \HCode{<h2 class="slidetitle">} } + {\ifvmode \IgnorePar\fi \EndP \HCode{</h2>}\EndNoFonts} +\Css{h2.slidetitle {text-align:center;}} +>>> + +\<configure html4 prosper\><<< +\Configure{Subtitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="Subtitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{email} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="email">}\Link[mailto:\@email]{}{}} + {\EndLink \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{institution} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="institution">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.email, div.institution {text-align:center;}} +>>> + + +\<configure html4 prosper\><<< +\:CheckOption{1} \if:Option + |<paginated prosper|> +\else + \Log:Note{for pagination of slides, + use the command line option `1'} + |<non paginated prosper|> +\fi +\:CheckOption{nolayers} \if:Option + \def\itemstep{\itemize} + \def\enditemstep{\enditemize} + \let\overlays=\:gobble +\else + \Log:Note{to remove overlays of slides, + use the command line option `nolayers'} +\fi +>>> + + +\<non paginated prosper\><<< +\ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP\HCode{<hr />}\par} + {\rightline{\bgroup + \ifx \slide\SlideNormal \advance\c@slide by -1 \fi + \ifnum \c@slide>0 + \the\c@slide + \ifx \slide\SlideOverlay .\the\c@overlaysCount\fi + \fi + \egroup + }}{}{} +>>> + + +\<paginated prosper\><<< +\HAssign\Slide:cnt=0 +\ConfigureEnv{slide} + {\ifnum \Slide:cnt>0 + \ifnum \Slide:cnt>1 + \ifvmode\IgnorePar\fi + \fi |<start prosper page|>% + } + {\ifnum \Slide:cnt=1 + \else |<end prosper page|>\fi + } + {}{} +>>> + + + +\<start prosper page\><<< +\ifnum \Slide:cnt=1 + \IgnorePar \par\EndP \HCode{<hr />}\par +\fi +\noindent +\HPage{\the\c@slide + \ifx \slide\SlideOverlay .\the\c@overlaysCount\fi + }\fi +\gHAdvance\Slide:cnt by 1 +\Tag{f-\Slide:cnt}{\FileName}% +>>> + + +\<end prosper page\><<< +\rightline{|<foot paginated prosper|>}% +\EndHPage{}~~ +>>> + + +\<foot paginated prosper\><<< +\bgroup + \ifx \slide\SlideNormal \advance\c@slide by -1 \fi + \the\c@slide +\egroup +\ifx \slide\SlideOverlay .\the\c@overlaysCount\fi, +\bgroup + \HAdvance\Slide:cnt by 1 + \ifTag{f-\Slide:cnt}{\Link + [\LikeRef{f-\Slide:cnt}]{}{}next\EndLink, }{}% +\egroup +\bgroup +\ifnum \Slide:cnt>1 + \HAdvance\Slide:cnt by -1 + \Link[\LikeRef{f-\Slide:cnt}]{}{}prev\EndLink, +\fi +\egroup +\Link[\LikeRef{f-1}]{}{}up\EndLink% +\ifTag{prosperTOC}{% + \edef\:temp{\FileName}\edef\:tempa{\LikeRef{prosperTOC}}% + \ifx \:temp\:tempa \else, + \Link[\LikeRef{prosperTOC}]{}{}toc\EndLink}{}\fi +>>> + +\<paginated prosper\><<< +\Configure{tableofcontents} + {\ifx \prosperTOCtag\:UnDef + \global\let\prosperTOCtag\def + \Tag{prosperTOC}{\FileName}% + \fi + \IgnorePar\EndP + \HCode{<div class="tableofcontents"\a:LRdir>}\IgnorePar} + {} + {\IgnorePar\EndP\HCode{</div>}\ShowPar} + {\HCode{<br />}} {} +>>> + +FROM MANUAL: +When translated into PDF files, \texttt{prosper} slides benefit from +additional possibilities such as transition effects between slides and +incremental display of a slide with several animation effects. The +currently supported transitions are: +\begin{itemize} +\item {Split}: two lines sweep across the screen revealing the + new slide; +\item {Blinds}: multiple lines, evenly distributed across the + screen, appear and synchronously sweep in the same direction to + reveal the new slide; +\item {Box}: a box sweeps from the center, revealing the new slide; +\item {Wipe}: a single line sweeps across the screen from one + edge to the other, revealing the new slide; +\item {Dissolve}: the old page image dissolves to reveal the new slide; +\item {Glitter}: similar to \texttt{Dissolve}, except the + effect sweeps across the image in a wide band moving from one side + of the screen to the other; +\item {Replace}: the effect is simply to replace the old page + with the new page. +\end{itemize} + + + +%%%%%%%%%%%%%%%%%% +\subsection{seminar} +%%%%%%%%%%%%%%%%%% + + + + + + +\<configure html4 seminar\><<< +\ConfigureEnv{slide} + {\ifvmode \IgnorePar\fi \EndP\HCode{<hr />}\par} + {\rightline{\the\c@slide}}{}{} +>>> +%%%%%%%%%%%%%%%%%%% +\subsection{slidesec} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 slidesec\><<< + \ConfigureToc{slidesection} + {\HCode{<span class="tocslidesection">}}{\ }{}{\HCode + {</span><br />}} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{Lit Prog and Verbatim} +%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%% +\subsection{ProTex} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 ProTex\><<< +\def\NAME:{ id=} +\:CheckProtexOption{[[]]}\if:Option + |<frame protex code|> +\fi +>>> + +\<frame protex code\><<< +\HAssign\ShowCodeN = 0 +\Configure{FrameCode} + {\ifvmode \IgnorePar\fi \EndP + \gHAdvance\ShowCodeN by 1 + |<lynx separator|>% + \HCode{<div class="ShowCode" + id="ShowCode-\ShowCodeN">\ifx \:test\:minus + \else<div class="head">\fi}\par\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div></div>}} +\Configure{ShowCode} + {\HCode{\ifx \:test\:minus \else </div>\fi + \html:src<div class="body"><span class="ShowCode" + style="font-family:monospace,monospace;white-space:nowrap;" + >\html:invisible}% + \nobreak + } + {\special{t4ht=\html:src</span>% + \ifx \:test\:minus \else + </div><div class="tail">\html:BackTitle\fi}} + {\HCode{<br />\html:invisible}} + {\HCode{<i>}} + {\HCode{</i>}} + {|<nbsp|>} +\Css{div.ShowCode{background-color:\#EEEEEE; border: 1px white solid;}} +\Css{div.ShowCode div.head{background-color:\#E0E0E0;}} +\Css{div.ShowCode div.tail{background-color:\#E0E0E0;}} +>>> + +\<nbsp\><<< +\:nbsp% +>>> + +There used to be this code: + +\verb|\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x| + +The \verb|\:nbsp| is universal non breaking spacing macro for TeX4ht. It +handles cases when it is used inside pictures, so it should be used instead of +explicit specials. + +The `59' stands for semicolon. Explicit character might be problematic +for languages (e.g., French) where the cahacter is active and may be +imported from aux or another file. + + +\<lynx separator\><<< +\ifx \par:end\empty \HCode{<p></p>}\fi +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{moreverb} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 moreverb\><<< +|<moreverb.sty config 4.0t|> +>>> + +\<moreverb.sty config 4.0t\><<< +\ConfigureEnv{verbatimtab} + {\env:verb{verbatim}} + {\endenv:verb}{}{} +\Configure{verbatimtab} + {\HAdvance\Verb:N by 1 \ifnum \Verb:N>1 \:nbsp \HCode{<br />}\fi} + {\a:sp} +\ConfigureEnv{boxedverbatim} + {\env:verb{boxedverbatim}}{\endenv:verb}{}{} +\ConfigureEnv{boxedverbatim*} + {\env:verb{boxedverbatim}}{\endenv:verb}{}{} +\Css{table.boxedverbatim {width:100\%;}} +>>> + +\<moreverb.sty config 4.0t\><<< +\ConfigureEnv{boxedverbatim} + {\env:verB{boxedverbatim}}{\endenv:verb}{}{} +\ConfigureEnv{boxedverbatim*} + {\env:verB{boxedverbatim}}{\endenv:verb}{}{} +\def\env:verB#1{\IgnorePar\HCode{<table \Hnewline + class="#1"><tr class="#1"><td \Hnewline + class="#1"><pre class="#1">}\EndNoFonts} +\Css{ pre.boxedverbatim{border:solid 1px; padding-right:1em;} } +\Css{table.boxedverbatim {text-align:center;}} +>>> + + +\<moreverb.sty config 4.0t\><<< +\Configure{listinginput} + {\HCode{<div class="listinginput">}} + {\IgnorePar\HCode{</div>}} +\Css{.listinginput p{ margin-bottom:0em; margin-top:0em; }} +>>> + + +\<moreverb.sty config 4.0t\><<< +\Configure{verbatimtabinput} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="verbatimtabinput"\a:LRdir>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{fancyvrb} +%%%%%%%%%%%%%%%%%%% + + +\<configure html4 fancyvrb\><<< +\HAssign\fancyvrbNo|=0 +\Configure{fancyvrb} + {\IgnorePar \EndP \gHAdvance\fancyvrbNo by 1 + \gHAssign\fancyvrb:cnt0 + \HCode{<pre class="fancyvrb" id="fancyvrb\fancyvrbNo">}} + {\EndP\HCode{</pre>}} + {\gHAdvance\fancyvrb:cnt by 1 + \ifnum \fancyvrb:cnt>1 + \HCode{\Hnewline}\fi} {} + {}{} +\Css{pre.fancyvrb {white-space: pre-wrap; margin:0em;font-family:monospace,monospace;}} +>>> + + + +The following is harmful at the start of section 1.1 in +listings.dtx. + +\begin{verbatim} +\ConfigureEnv{verbatim}{\HAssign\Verb:N=0\relax}{\empty}{}{} +\ConfigureEnv{verbatim*}{\HAssign\Verb:N=0\relax}{\empty}{}{} +\end{verbatim} + + + + + +\<configure html4 fancyvrb\><<< +\Configure{fancyvrbcolor} + {\Css{pre\#fancyvrb\fancyvrbNo { color: \HColor; }}} + {\Css{pre\#fancyvrb\fancyvrbNo { background-color: \HColor;}}} + {\Css{pre\#fancyvrb\fancyvrbNo { border-color: \HColor;}}} +>>> + +\<configure html4 fancyvrb\><<< +\Configure{fancyvrbframe} + {\Css{pre\#fancyvrb\fancyvrbNo { border-top: solid \HSize; }}} + {\Css{pre\#fancyvrb\fancyvrbNo { border-left: solid \HSize; }}} + {\Css{pre\#fancyvrb\fancyvrbNo { border-bottom: solid \HSize; }}} + {\Css{pre\#fancyvrb\fancyvrbNo { border-right: solid \HSize; }}} + {\Css{pre\#fancyvrb\fancyvrbNo {border-width:\HSize;}}} + {\Css{pre\#fancyvrb\fancyvrbNo {padding:\HSize;}}} +>>> + +\<configure html4 fancyvrb\><<< +\Configure{BVerbatimInput} + {\ifvmode \IgnorePar \fi \EndP + \gHAssign\HRow=0 + \HCode{<div class="BVerbatimInput">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {\gHAdvance\HRow by 1 \ifnum \HRow>1 \HCode{<br />}\fi}{} +>>> + +%%%%%%%%%%%%%%%%%%%% +\subsection{minted} +%%%%%%%%%%%%%%%%%%%% + +Configuration for the inline code +\<configure html4 minted\><<< +\Configure{InlineCode}{\HCode{<code>}}{\HCode{</code>}} +>>> + +Configuration for listings with colored backgrounds +\<configure html4 minted\><<< +\Configure{MintedColorbg} + {\ifvmode\IgnorePar\fi\EndP\HCode{<div class="minted-color-box" style="background-color:\#\minted:bgcolor">}} + {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{pythontex} +%%%%%%%%%%%%%%%%%%%% + +Configuration for the inline code +\<configure html4 pythontex\><<< +\Configure{InlineCode}{\HCode{<code>}}{\HCode{</code>}} +>>> + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Listings} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 listings\><<< +\Configure{lstinline} + {\HCode{<span class="lstinline">}} + {\HCode{</span>}} +>>> + +\<configure html4 listings\><<< +\Log:Note{to ensure proper alignments use + fixed size fonts (see listings.dtx)} +>>> + +\<configure html4 listings\><<< +\HAssign\listings:Depth = 0 +\Configure{listings} + {\ifvmode \IgnorePar\fi \EndP + {\everypar{}\leavevmode}\HCode{<!--l. \the\inputlineno-->}% + \ifnum \listings:Depth=0 \HCode{<pre class="listings">}\else + \HCode{<span class="listings-nested">}\fi + \gHAdvance\listings:Depth by 1 + } + {\gHAdvance\listings:Depth by -1 + \ifnum \listings:Depth=0 \HCode{</pre>}\else + \HCode{</span>}\fi + } + {|<nbsp|>\HCode{<br /><span class="label">}} + {\HCode{</span>}}% +>>> + +\<configure html4 listings\><<< +\Configure{listings-init}{\ttfamily\special{t4ht@(}}{\special{t4ht@)}} +>>> + + +% \start:LstLn <---added +% \bgroup +% \Configure{listings} +% {{\everypar{}\leavevmode}} +% {{\everypar{}\leavevmode}} +% %{\start:LstLn \HCode{<span class=''label''>}} <---- removed +% {\HCode{<br /><span class=''label''>}} <---- added +% {\HCode{</span>}}% +% } +% +% +% \bgroup +% \Configure{listings} +% {{\everypar{}\leavevmode}} +% {{\everypar{}\leavevmode}} +% {\start:LstLn \HCode{<span class=''label''>}} <---- removed +% {\HCode{</span>}}% +% } + + + +\<configure html4 listings\><<< +\HAssign\listingN=0 +\ConfigureEnv{lstlisting} + {\ifvmode \IgnorePar\fi \EndP + \gHAdvance\listingN by 1 + \HCode{<!--l. \the\inputlineno-->}% + \gdef\start:LstLn{% + \HCode{<div class="lstlisting" id="listing-\listingN">}% + \gdef\start:LstLn{|<nbsp|>\HCode{<br />\Hnewline}}} + \bgroup + \Configure{listings} + {{\everypar{}\leavevmode}} + {{\everypar{}\leavevmode}} + {\start:LstLn \HCode{<span class="label">}} + {\HCode{</span>}}% + } + {\egroup + \ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {} {} +\Css{.lstlisting .label{margin-right:0.5em; }} +\Css{div.lstlisting{font-family: monospace,monospace; white-space: nowrap; + margin-top:0.5em; margin-bottom:0.5em; + }} +>>> + +\<configure html4 listings\><<< +\Configure{lstinputlisting} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno-->}% + \HCode{<div class="lstinputlisting">}% + \bgroup \tt %\special{t4ht@(}% + \Configure{listings} + {{\everypar{}\leavevmode}} + {{\everypar{}\leavevmode}} + {|<nbsp|>% + \HCode{<br /><span class="label">}} + {\HCode{</span>}}% + } + {%\special{t4ht@)} + \egroup + \ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Css{div.lstinputlisting{ + font-family: monospace,monospace; + white-space: nowrap; +}} +\Css{.lstinputlisting .label{margin-right:0.5em;}} +>>> + + +% \Configure{lstinputlisting} +% {\ifvmode \IgnorePar\fi \EndP +% \HCode{<!--l. \the\inputlineno-->}% +% \HCode{<div class="lstinputlisting">}% +% \bgroup \tt \special{t4ht@(}% +% \Configure{listings} +% {{\everypar{}\leavevmode}} +% {{\everypar{}\leavevmode}} +% {|<nbsp|>\HCode{<br /><span class="label">}} +% {\HCode{</span>}}% +% } +% {\special{t4ht@)}\egroup +% \ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Verbatim} +%%%%%%%%%%%%%%%%%%%%% + + + + + +\<configure html4 verbatim\><<< +\Configure{verbatiminput} + {\HAssign\Verb:N=0 \ifvmode \IgnorePar\fi \EndP + \HCode{<div class="verbatiminput"\a:LRdir>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.verbatiminput + {font-family: monospace,monospace; white-space: nowrap; }} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{mdwlist} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 sverb\><<< +\HAssign\demoN=0 +\Configure{demo} + {\HAdvance\demoN by 1 + \ifvmode \IgnorePar \fi \EndP + \ifnum \demoN=1 + \HCode{<table class="demo"><tr>}% + \fi + \HCode{<td>}% + } + {\ifvmode \IgnorePar \fi \EndP + \HCode{</td>} + \ifnum \demoN=2 + \HAssign\demoN=0 + \HCode{</tr></table>}% + \fi + } +>>> + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{verbatimlisting} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure html4 verbatimlisting\><<< +\Configure{verbatimlisting} + {\ifvmode \EndP\fi \EndP\HCode{<div class="verbatimlisting"\a:LRdir>}} + {\HCode{</div>}} + {\ifnum \c@lineno > 1 \HCode{<br />}\fi + \ifnum \c@lineno<10 ~\fi + \ifnum \c@lineno<100 ~\fi + \ifnum \c@lineno<1000 ~\fi + } + {} +>>> + + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{doc} +%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 doc\><<< +\ConfigureEnv{macrocode} + {\ifvmode \IgnorePar\fi\EndP\HCode{<pre class="macrocode">}} + {\ifvmode \IgnorePar \HCode{</pre>}\par\else \HCode{</pre>}\fi} + {}{} +>>> + + +%%%%%%%%%%%%%%%%%%% +\section{Boxes and Multiple columns} +%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%% +\subsection{fancybox} +%%%%%%%%%%%%%%%%%%% + + + + + + + + + + + +\<configure html4 fancybox\><<< + \Configure{ovalbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="ovalbox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="ovalbox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.ovalbox { + padding-left:3pt; + padding-right:3pt; + border:solid thin; + }} +>>> + +\<configure html4 fancybox\><<< + \Configure{Ovalbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="Ovalbox-thick">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="Ovalbox-thick">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.Ovalbox-thick { + padding-left:3pt; + padding-right:3pt; + border:solid thick; + }} +>>> + + +IE doesn't distinguish between upper and lower case characters in css + + + +\<configure html4 fancybox\><<< + \Configure{shadowbox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="shadowbox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="shadowbox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.shadowbox { + padding-left:3pt; + padding-right:3pt; + border:solid thin; + border-right:solid thick; + border-bottom:solid thick; + }} +>>> + + + + +\<configure html4 fancybox\><<< + \Configure{doublebox} + {\ifvmode \IgnorePar\EndP + \HCode{<div class="doublebox">}% + \def\end:bx{\HCode{</div>}\par}% + \else + \HCode{<span class="doublebox">}% + \def\end:bx{\HCode{</span>}}% + \fi} + {\end:bx} + \Css{.doublebox { + padding-left:3pt; + padding-right:3pt; + border-style:double; + border:solid thick; + }} +>>> + +\<configure html4 fancybox\><<< +\Configure{Btrivlist} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table>}} + {\HCode{</table>}} + {\HCode{<tr><td \csname Btrivlist-dir\endcsname>}} + {\HCode{</td></tr>}} +\Configure{Btrivlist-dir} + {l}{style="white-space:normal; text-align:left;" } + {c}{style="white-space:normal; text-align:center;" } + {r}{style="white-space:normal; text-align:right;" } + {} +\Configure{Blist} + {\ifvmode \IgnorePar\fi \EndP \HCode{<table>}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{adjustbox} +%%%%%%%%%%%%%%%%%% + +\<configure html4 adjustbox\><<< +% add support for vertical alignment of table rows +\Configure{halignTR}{} +\Configure{AdjustboxValignTop}{\Css{\#TBL-\TableNo-\HRow-{vertical-align:top;}}} +\Configure{AdjustboxValignMiddle}{\Css{\#TBL-\TableNo-\HRow-{vertical-align:middle;}}} +\Configure{AdjustboxValignCenter}{\Css{\#TBL-\TableNo-\HRow-{vertical-align:middle;}}} +\Configure{AdjustboxValignBottom}{\Css{\#TBL-\TableNo-\HRow-{vertical-align:bottom;}}} +% convert size in pt to em, based on the current font size +\def\pt:to:em#1{\strip@pt\dimexpr#1/\f@size em} +\Configure{Adjustbox} +{\IgnorePar\EndP\IgnorePar\HCode{<div class="adjustbox" id="\AdjustboxId">}} +{\Css{\#\AdjustboxId{border: \pt:to:em{\fboxrule} solid black;padding: \pt:to:em{\fboxsep};}}% +\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} +>>> + +%%%%%%%%%%%%%%%%% +\subsection{awesomebox} +%%%%%%%%%%%%%%%%% +\<configure html4 awesomebox\><<< +\Configure{awesomebox}{% + \Css{\#\awesomebox@id\space .icon{border-right:4px solid \#\awesomebox@rule@color;}} + \ifvmode\IgnorePar\fi\EndP% + \HCode{<div class="awesomebox" id="\awesomebox@id"><div class="icon">}% + \Picture+{}% +}{\EndPicture% + \HCode{</div><div class="boxcontent">}% + \par% +}{% + \ifvmode\IgnorePar\fi\EndP% + \HCode{</div></div>}% +} + +\Css{.awesomebox{display:grid; grid-template-columns: 90px auto;margin-top:1rem;margin-bottom:1rem;}} +\Css{.awesomebox .icon{padding-right:0.5rem;margin-right:0.5rem;text-align:center;}} +\Css{.awesomebox .boxcontent{vertical-align:top;}} +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{boxedminipage} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 boxedminipage\><<< +\ConfigureEnv{boxedminipage} + {\ifvmode \IgnorePar \EndP + \def\after:bmp{\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par\ShowPar}% + \HCode{<div class="boxedminipage">}% + \expandafter\everymath\expandafter{\expandafter + \everymath\expandafter{\the\everymath}}% + \else \def\after:bmp{\HCode{</span>}}% + \HCode{<span class="boxedminipage">}% + \fi + \bgroup \fboxrule=\z@} + {\egroup \after:bmp} + {}{} +\Css{div.boxedminipage{border : 1px solid; + margin-top:1pt; margin-bottom:1pt;}} +>>> + +%%%%%%%%%%%%%%%%%%% +\subsection{Multicol} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 multicol\><<< +\HAssign\MultiCols=0 +\ConfigureEnv{multicols}{}{}{}{} +% {\par\IgnorePar\EndP +% \gHAdvance\MultiCols by 1\relax +% \HCode{<table class="multicols" +% id="multicols-\MultiCols"><tr><td class="multicol-1">}% +% \let\sv:HCol=\HCol +% \bgroup \gHAssign\HCol=1\relax +% } +% {\egroup +% \global\let\HCol=\sv:HCol +% \ifvmode\IgnorePar\fi\EndP +% \HCode{</td></tr></table>}\par +% } +% {}{} +% \Configure{columnbreak} +% {\gHAdvance\HCol by 1\relax +% \par \IgnorePar \EndP +% \HCode{</td><td class="multicol-\HCol">}} +% \Css{table.multicols { +% width:100\%; margin-left:1em; margin-top:1em; margin-bottom:1em; +% }} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{gmatrix.sty} +%%%%%%%%%%%%%%%%%% + +\<configure html4-math gauss\><<< +\ConfigureEnv{gmatrix} + {\IgnorePar\EndP + \Tg<div class="gmatix">\Picture*{}$$} + {$$\EndPicture\Tg</div>}{}{} +\Css{div.gmatrix {text-align:center;}} +>>> + +%%%%%%%%%%%%%%%% +\section{array.sty} +%%%%%%%%%%%%%%%% + +\<configure html4 array\><<< +|<html latex array/tabular Config 4.0t|> +>>> + + +\<configure html4-math array\><<< +|<math html latex array/tabular|> +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{algorithmic} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 algorithmic\><<< +\ConfigureEnv{algorithmic} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="algorithmic">}% + \bgroup + \Configure{HtmlPar}{}{}{}{}} + {\egroup \ifvmode \IgnorePar\fi \HCode{</div>}} + {}{} +\Configure{ALCitem} + {\NoFonts\HCode{\ifnum \c@ALC@line>1 <br />\fi <span class="ALCitem">}} + {\HCode{</span><span class="ALIndent" style="width:\the\ALC@tlm ;"> </span>}\EndNoFonts} +\Css{.ALCitem {width:2em; text-align:right;display:inline-block;font-size:0.8em;}} +\Css{.ALIndent{display:inline-block;}} + +>>> + + +\<configure html4 algorithmic\><<< +\ConfigureEnv{ALC@for} + {\HCode{<span class="for-body">}} + {\HCode{</span>}} + {}{} +\ConfigureEnv{ALC@whl} + {\HCode{<span class="while-body">}} + {\HCode{</span>}} + {}{} +\ConfigureEnv{ALC@loop} + {\HCode{<span class="loop-body">}} + {\HCode{</span>}} + {}{} +\ConfigureEnv{ALC@rpt} + {\HCode{<span class="repeat-body">}} + {\HCode{</span>}} + {}{} +\Configure{ALCif} + {\HCode{<span class="if-body">}} + {\HCode{</span>}} + {\HCode{<span class="else-body">}} + {\HCode{</span>}} +\Configure{algorithmiccomment} + {\HCode{<span class="ALC-comment">}} + {\HCode{</span>}} + {}{} +>>> + + + + +%%%%%%%%%%%%%%%%%%% +\section{algorithmicx} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 algorithmicx\><<< +\ConfigureEnv{algorithmic} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div \a:LRdir class="algorithmic">}% + \bgroup + \Configure{HtmlPar} + {\EndP} + {\EndP} + {} + {}% + } + {\egroup + \HCode{</div>}\par\ShowPar + } + {}{} +>>> + +\<configure html4 algorithmicx\><<< +\ConfigureList{algorithmic}% + {\EndP + \PushMacro\end:itm + \global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP + \special{t4ht@.}% + \HCode{</span>}% + } + {\end:itm + \HCode{\ifx \end:itm\empty\else <br class="algorithmic"/>\fi + <span class="label-\the\labelwidth">}% + \global\def\end:itm{\EndP\special{t4ht@,}\Tg</span>}% + \ifnum \c@ALG@line=10 + \Css{.algorithmic span.label{width:3em; text-align:right;}}\fi + } + {\HCode{</span>&\#xA0;<span\Hnewline class="algorithmic">}~% + \special{t4ht@. }} +\Css{div.algorithmic span.algorithmic{white-space:pre}} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{algorithm} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 algorithm\><<< +\ConfigureEnv{algorithm} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div \a:LRdir class="algorithm">}% + \par\ShowPar + } + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}\par\ShowPar + } + {}{} +\Css{div.algorithm table.caption { + border-bottom: 1px solid black; margin-bottom:1pt; }} +>>> + +%%%%%%%%%%%%%%%%%% +\section{scrjura} +%%%%%%%%%%%%%%%%%% + +\<configure html4 scrjura\><<< +\ConfigureEnv{contract} +{\ifvmode\IgnorePar\fi\EndP\HCode{<div class=\:qtchr contract\:qtchr>}} +{\ifvmode\IgnorePar\fi\end:prevpara\HCode{</div>}} +{}{} + +\Configure{contract@paragraph@font} + {\ifvmode\IgnorePar\fi\end:prevpara\HCode{<div class=\:qtchr paragraph\:qtchr>}} + {\Tg</div>} + +\Configure{parformat} +{\EndP\HCode{<p class=\:qtchr para\:qtchr>\Hnewline +<span class=\:qtchr sentence\:qtchr>}} + {\Tg</span>}{\Tg</p>} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{Bibliography} +%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%% +\subsection{jurabib} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 jurabib\><<< +\HAssign\jbancorDepth=0 +\Configure{jblink} + {\HAdvance\jbancorDepth by 1 \Link} + {\EndLink \HAdvance\jbancorDepth by -1 } +\Configure{jbanchor} + {\bgroup + \ifnum \jbancorDepth=0 + \Configure{Link}{a}{href=}{id=}{}% + \else + \Configure{Link}{span}{}{id=}{}% + \fi + \Link} + {\EndLink \egroup} +>>> + +The code \verb+\Configure{jbanchor}{\Link}{\EndLink}+ doen't work +because anchors can in jurabib reside within links. + + + + +\begin{verbatim} +Definition of \@citex +--------------------- + \hyper@jblinkstart{\@citeb} + \jb@firstcitefull + \hyper@jblinkend + +Definiton of \jb@firstcitefull +------------------------------ + \hyper@jbanchorstart{look@\@citeb:\jb@reset@look@label@for}\hyper@jbanchorend + + \jbincollcrossref + +Definition of \jbincollcrossref +------------------------------- + \hyper@jblinkstart{#1}% + + \hyper@jblinkend +\end{verbatim} + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Harvard} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 harvard\><<< +\Configure{harvardyear} + {\HCode{<span class="bib-year">}} + {\HCode{</span>}} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Text Decoration} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%% +\subsection{color} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 color\><<< +\Configure{HColor}{red}{\#FF0000} +\Configure{HColor}{rgb 1 0 0}{\#FF0000} +\Configure{HColor}{blue}{\#0000FF} +\Configure{HColor}{rgb 0 0 1}{\#0000FF} +\Configure{HColor}{green}{\#00FF00} +\Configure{HColor}{rgb 0 1 0}{\#00FF00} +\Configure{HColor}{white}{\#FFFFFF} +\Configure{HColor}{gray 1}{\#FFFFFF} +\Configure{HColor}{rgb 1 1 1}{\#FFFFFF} +\Configure{HColor}{black}{\#000000} +\Configure{HColor}{gray 0}{\#000000} +\Configure{HColor}{rgb 0 0 0}{\#000000} +\Configure{HColor}{cyan}{\#00FFFF} +\Configure{HColor}{cmyk 1 0 0 0}{\#00FFFF} +\Configure{HColor}{magenta}{\#FF00FF} +\Configure{HColor}{cmyk 0 1 0 0}{\#FF00FF} +\Configure{HColor}{yellow}{\#FFFF00} +\Configure{HColor}{cmyk 0 0 1 0}{\#FFFF00} +\Configure{color}{\:gobble} +|<color.sty config 4.0t|> +>>> + + + + + +% \Configure{pagecolor} +% {\Configure{color} +% {\Configure{SetHColor}{\Css{body {background-color:\HColor}}}}} + +Configurations for saving colors to CSS. When the color declaration specified +by the user contains spaces, the parameter for the last color is empty and +we may get compilation errors. This is why it is necessary to test the +argument for content. If it is empty, then the next argument contains the +actual color. + +\<configure html4 color\><<< +\Configure{HColor:gray}{% + \if :#1:% + \int:of\:tempa{255}{#2}% + \else% + \int:of\:tempa{255}{#1}% + \fi% + \Configure{HColor}{}{rgb(\:tempa,\:tempa,\:tempa)}% +} +\Configure{HColor:rgb}{% + \int:of\:tempa{255}{#1}% + \int:of\:tempb{255}{#2}% + \if :#3: + \int:of\:tempc{255}{#4}% + \else% + \int:of\:tempc{255}{#3}% + \fi% + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +\Configure{HColor:cmyk}{% + \int:of\:Cyan{255}{#1}% + \int:of\:Magenta{255}{#2}% + \int:of\:Yellow{255}{#3}% + \if :#4:% + \int:of\:Black{255}{#5}% + \else% + \int:of\:Black{255}{#4}% + \fi% + \:cmyk\:tempa\:Cyan + \:cmyk\:tempb\:Magenta + \:cmyk\:tempc\:Yellow + \Configure{HColor}{}{rgb(\:tempa,\:tempb,\:tempc)}% +} +|<HColor util|> +>>> + + +\<HColor util\><<< +\def\int:of#1#2#3{% + \tmp:dim=#3pt \tmp:dim=#2\tmp:dim + \edef\:temp{\tmp:cnt\the\tmp:dim//}% + \def#1##1//{}\afterassignment#1\:temp + \edef#1{\the\tmp:cnt}% +} +>>> + + +\begin{verbatim} +cmyk -> gray +(1 - 0.299c - 0.587m - 0.114y)(1 - k) + +cmyk -> rgb +Red = 1-minimum(1,Cyan *(1-Black)+Black) +Green = 1-minimum(1,Magenta*(1-Black)+Black) +Blue = 1-minimum(1,Yellow *(1-Black)+Black) +\end{verbatim} + + + +\<HColor util\><<< +\def\:cmyk#1#2{% + \tmp:cnt=255 \advance\tmp:cnt by -\:Black + \multiply\tmp:cnt by#2 \advance\tmp:cnt by \:Black + \advance\tmp:cnt by -255 \tmp:cnt=-\tmp:cnt + \ifnum \tmp:cnt<0 \tmp:cnt=0 \fi + \edef#1{\the\tmp:cnt}% +} +>>> + + + + +\<color.sty config 4.0t\><<< +\HAssign\textcolorN=0 +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor} + {\Css{span\#textcolor\textcolorN{color:\HColor}}}}% + \HCode{<span id="textcolor\textcolorN">}}% + {\HCode{</span>}} +>>> + +\<color.sty config 4.0t\><<< +\Configure{colorbox} + {\bgroup + \gHAdvance\textcolorN by 1 + \ifvmode \let\v:colorbox\def \IgnorePar \EndP + \else \let\v:colorbox=\relax \fi + |<colorbox background|>% + \HCode{<\ifx \v:colorbox\def div\else span\fi \Hnewline + class="colorbox" id="colorbox\textcolorN">}}% + {\ifx \v:colorbox\def \EndP\HCode{</div>}\par + \else \HCode{</span>}\fi + \egroup + } +>>> + + +\<colorbox background\><<< +\let\A:color=\a:color +\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor} + {\Css{\ifx \v:colorbox\def div\else span\fi + \#colorbox\textcolorN{background-color:\HColor;}}}}% +>>> + + +\<\><<< +\Configure{fcolorbox} + {\gHAdvance\textcolorN by 1 + \let\A:color=\a:color + \Configure{color}% + {\Configure{SetHColor}{\Css{\#colorbox\textcolorN{border: + solid 1px \HColor;}}}}% + \Configure{fbox}{\leavevmode + \gHAdvance\textcolorN by -1 \let\a:color=\A:color}{}} + {} +>>> + + +\<color.sty config 4.0t\><<< +\Configure{fcolorbox} + {\bgroup\gHAdvance\textcolorN by 1 + \ifvmode \let\v:colorbox\def \IgnorePar \EndP + \else \let\v:colorbox=\relax \fi + \HCode{<\ifx \v:colorbox\def div\else span\fi \Hnewline + class="colorbox" id="colorbox\textcolorN">}% + |<fcolorbox border|>% + \Configure{fbox}{\leavevmode }{}% +} +{\ifx \v:colorbox\def \EndP\HCode{</div>}\par + \else \HCode{</span>}\fi \egroup} +>>> + +\<fcolorbox border\><<< +\let\A:color=\a:color +\Configure{color}% + {|<fcolor background|>% + \Configure{SetHColor}{% + \Css{\#colorbox\textcolorN{border: solid 1px \HColor;}}}% + }% +>>> + +\<fcolor background\><<< +\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor}{% + \Css{\#colorbox\textcolorN{background-color: \HColor;}}% + }}% +>>> + + +%%%%%%%%%%%%%%%%%%% +\subsection{xcolor} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 xcolor\><<< +\Configure{rowcolors} + {\Configure{SetHColor}{% + \expandafter\ifx \csname HColor\endcsname\relax \else + \Css{tr\#TBL-\TableNo-\the\rownum-{background-color:\HColor}}% + \fi + }} +>>> + +\<configure html4 xcolor\><<< +\Configure{HColor!gray}{% + \XC@c@lcD\rangeGray{}{#1}\@@tmp + \int:of\:tempa{255}{\@@tmp}% + \Configure{HColor}{}{rgb(\:tempa,\:tempa,\:tempa)}% +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%% +\subsection{colortbl.sty} +%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 colortbl\><<< +\Configure{@classz} + {\let\begin:current@color|=\relax + \let\end:current@color|=\relax } + {% + \ifx \CT@column@color\relax \else + \ifx \CT@column@color\empty \else{% + \def\CT@color{\@ifnextchar[\color:ii\color:i}% + \CT@column@color|<par del|>% + \edef\:temp{\noexpand\add:color + {background-color}{\:temp}{\ar:cnt}}\:temp + }\fi \fi + } + {\begin:current@color} + {\end:current@color} +\Configure{rowcolor}{\row:clr} +\def\row:clr#1{{% + \HAdvance\HRow by 1 + \add:color{background-color}{#1}{\HRow- td}}} +\Configure{text-colortbl} + {\add:color{color}{\current@color}{\HRow-\HCol}} +\Configure{cell-colortbl} + {\add:color{background-color}{\current@color}{\HRow-\HCol}} +\def\add:color#1#2#3{% + \Configure{SetHColor}{\Css{ \#TBL-\TableNo-#3{ #1:\HColor }}}{#2}} + +% redefine default table configuration and put the color rule +\def\a:HBorder{<tr class="hline" style="border-top:1px solid \#\hline:color">} +% don't display <hr> elements in colored \hline +\Css{tr.hline td hr{display:none}} +>>> + +[\HPage{test file} +\begin{verbatim} +\documentclass{article} +\usepackage{colortbl} +\usepackage{color} + +\definecolor {tablehead}{rgb}{0.4,0.569,0.929} +\definecolor {aliceblue}{rgb}{0.94,0.97,1} + +\begin{document} + +\begin{tabular}{p{2cm}|p{2.25cm}} +\rowcolor{tablehead} + \color{white}\textbf{A} & + \color{white}\textbf{B}\\ +\hline +\rowcolor{aliceblue} + C & + D\\ +\end{tabular} + +\end{document} +\end{verbatim} +\EndHPage{}] +%%%%%%%%%%%%% +\subsection{Soul} +%%%%%%%%%%%%% + +\<configure html4 soul\><<< +\Configure{textcaps} + {\HCode{<span class="textcaps">}} + {\HCode{</span>}} +\Configure{texthl} + {\HCode{<span class="texthl">}\bgroup + \ifx\sethlcolor\:gobble\else |<soul color|>\fi} + {\egroup \HCode{</span>}} +\Configure{textso} + {\HCode{<span class="textso">}} + {\HCode{</span>}} +\Configure{textst} + {\HCode{<span class="textst">}\bgroup + \ifx\setstcolor\:gobble\else |<soul color|>\fi} + {\egroup \HCode{</span>}} +\Configure{textul} + {\HCode{<span class="textul">}\bgroup + \ifx\setulcolor\:gobble\else |<soul color|>\fi} + {\egroup \HCode{</span>}} +\Css{span.textso{letter-spacing: 0.3em; word-spacing: 0.3em}} +\Css{span.textul{text-decoration:underline}} +\Css{span.textst{text-decoration:line-through}} +\Css{span.textcaps{font-variant:small-caps}} +>>> + +\<soul color\><<< +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor} + {\Css{span\#textcolor\textcolorN{background-color:\HColor}}}}% + \HCode{<span id="textcolor\textcolorN">}}% + {\HCode{</span>}}% +>>> + +%%%%%%%%%%%%%%%% +\section{framed} + +\<configure html4 framed\><<< +\newcount\framed:cnt +\Configure{makeframed}{\advance\framed:cnt by 1\relax\def\framed@id{\@currenvir-\the\framed:cnt}\ifvmode\IgnorePar\fi\EndP\HCode{<div class="framedenv" id="\framed@id">}\par} +{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} +\Css{.framedenv{border: 1px solid black;}} + +>>> + +%%%%%%%%%%%%%%%% +\section{mdframed} +%%%%%%%%%%%%%%%% + + +\<configure html4 mdframed\><<< +\Configure{mdframed}{% + \ifvmode\IgnorePar\fi\EndP\HCode{<div class="mdframed" id="\mdf:id">}\par +}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par} + +\Css{.mdframed{margin-top:1em;margin-bottom:1em;}} + +% use fallback macro when xcolor package haven't been loaded +\ifdefined\get:xcolorcss\else\def\get:xcolorcss#1#2{\def#2{#1}}\fi + +\Configure{mdframedstyle}{% + \get:xcolorcss{\mdf@backgroundcolor}\mdf:bgcolor + \get:xcolorcss{\mdf@linecolor}\mdf:bordercolor + \get:xcolorcss{\mdf@fontcolor}\mdf:fontcolor + \def\mdf:border{\ifdefined\mdfl@linewidth\mdfl@linewidth\else 1px\fi\space solid \mdf:bordercolor} + \Css{\#\mdf:id{border:\mdf:border; background-color: \mdf:bgcolor; color:\mdf:fontcolor;}} + \global\let\mdfl@linewidth\relax +} +>>> + +%%%%%%%%%%%%%%%%% +\section{tcolorbox} +%%%%%%%%%%%%%%%%% + + + +\<configure html4 tcolorbox\><<< +\Configure{tcolorbox} +{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="tcolorbox \@currenvir" id="\:tcbcolid">} + % \tcbcolid and colors are defined in tcolorbox.4ht + \Css{\#\:tcbcolid\space .tcolorbox-title{color: \:tcbcoltitle; background-color: \:tcbcolframe;}} + \Css{\#\:tcbcolid\space .tcolorbox-content{color: \:tcbcolupper; background-color: \:tcbcolback; border: 1px solid \:tcbcolframe;}} +} +{\HCode{\Hnewline<div class="tcolorbox-title">}\par} +{\ifvmode\IgnorePar\fi\EndP\HCode{</div>\Hnewline<div class="tcolorbox-content">}} +{\ifvmode\IgnorePar\fi\EndP\HCode{\Hnewline</div>\Hnewline</div>}\par} + +\Css{.tcolorbox{margin-top:0.5em;margin-bottom: 0.5em;}} + +\Configure{tcolorlowerbox}{\ifvmode\IgnorePar\fi\EndP\HCode{\Hnewline<div class="lowerbox">} + \Css{\#\:tcbcolid\space .lowerbox{border-top: 1px dashed \:tcbcolframe;}} +} +{\ifvmode\IgnorePar\fi\EndP\HCode{\Hnewline</div>}} + +% there is rule p + div elsewhere in TeX4ht. we want to nullify it. +\Css{.tcolorbox .lowerbox{margin-top:0pt;}} +>>> + +%%%%%%%%%%%%%%%% +\section{verse} +%%%%%%%%%%%%%%%%% + +\<configure html4 verse\><<< +\Configure{poemtitle} + {\par\IgnorePar\EndP + \HCode{<div class="poemtitle"><span class="poemtitlemark">}} + {\HCode{</span>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Configure{likepoemtitle} + {\par\IgnorePar\EndP \HCode{<div class="likepoemtitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Css{.poemtitle, likepoemtitle {margin-left:2em; margin-bottom:0.5em;}} +>>> + + + +\<configure html4 verse\><<< +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<div class="verse">}% + \bgroup + \Configure{hspace} + {\HCode{<span style="margin-right:\the\tmp:dim">}\:nbsp} + {\HCode{</span>}} {} + \let\end:verseln\empty + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par\ShowPar} + {}{} + +\ConfigureList{verse} + {} {\ifvmode \IgnorePar\fi \EndP \end:verseln} + {\parindent=\z@} {} + +\Configure{verseline} + {\ifvmode \IgnorePar\fi \EndP \end:verseln + \HCode{<div class="verseline">}\def\end:verseln{\HCode{</div>}}} + {\ifvmode \IgnorePar\fi \EndP \end:verseln + \HCode{<div class="skip-verseline">}% + \def\end:verseln{\HCode{</div>}}} + +\Configure{flagverse} + {\HCode{<span class="flagverse">}\bgroup \setlength{\vleftskip}{0em}} + {\egroup \HCode{</span>}\ignorespaces} + +\Css{.skip-verseline {margin-top: 1em;}} +\Css{.skip-verseline, .verseline {white-space: nowrap;}} +\Css{.flagverse {float:right; font-size:85\%; + text-decoration:underline;}} +\Css{.verse p{margin-bottom:0;}} +>>> + + +%%%%%%%%%%%%%%%% +\section{OpenOffice writer} +%%%%%%%%%%%%%%%% + +\<configure html4 writer\><<< +\Configure{WriterEnv} + {% + \ConfigureEnv{#1} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="#1">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {}{}% + } + {% + \tmp:dim=\parindent + \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \Css{div.#1 {text-indent:\expandafter\x:Em \the\tmp:dim em;}}% + \tmp:dim=\leftskip + \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \Css{div.#1 {margin-left:\expandafter\x:Em \the\tmp:dim em;}}% + \tmp:dim=\rightskip + \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \Css{div.#1 {margin-right:\expandafter\x:Em \the\tmp:dim em;}}% + \Css{div.#1 {margin-top:0.75em; + margin-bottom:0.75em; + }}% +} +|<10 em constant|> +>>> + +\<10 em constant\><<< +{ + \def\x:Em{% + \catcode`\p=12 + \catcode`\t=12 + \gdef\x:Em} + \x:Em#1pt{#1} +} +\tmp:dim=10em +\edef\ten:Em#1.#2//{#1} +\edef\ten:Em{\expandafter\ten:Em \the\tmp:dim//} +>>> + +%%%%%%%%%%%%%%%%%% +\section{manmac} +%%%%%%%%%%%%%%%%%% + +\<configure html4 manmac\><<< +\Configure{chapter} + {\IgnorePar\EndP + \HCode{<!--l. \the\inputlineno--><div class="chapter">}\IgnorePar } + {\IgnorePar\EndP\HCode{</div><!--end chapter-->}\par\ShowPar} + {\HCode{<div class="chapterTitle">}\par \ShowPar \noindent + \let\sv:rightline=\rightline \let\rightline=\hbox } + {\IgnorePar\EndP \let\rightline=\sv:rightline + \HCode{</div><!--end chapter title-->}\par\ShowPar} +\Configure{titlepage} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<!--l. \the\inputlineno--><div class="titlepage">}\par} + {\IgnorePar\EndP\HCode{</div><!--end titlepage-->}\par\ShowPar} +>>> + +\<configure html4 manmac\><<< +\Configure{mathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="mathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.mathdemo{margin-left:2em}} +\Configure{longdisplaymathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="longdisplaymathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.longdisplaymathdemo{margin-left:2em}} +\Configure{longmathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="longmathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.longmathdemo{margin-left:2em}} +\Configure{displaymathdemo} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><table class="displaymathdemo">}} + {\HCode{</table>}\par\ShowPar} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +\Css{table.displaymathdemo{margin-left:2em}} +>>> + + +\<configure html4 manmac\><<< +\Configure{exercise} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno--><h5 class="exercise">}% + \bgroup \Configure{HtmlPar}{}{}{}{}} + {\egroup\HCode{</h5>}\IgnoreIndent\par} + +\Configure{manmac-display} + {\ifvmode \IgnorePar\fi \EndP + \HCode{|<show input line no|><table class="manmac-display">}} + {\HCode{</table>}\IgnoreIndent\par} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</td>}} + +\Configure{ttenv} + {\ifvmode \IgnorePar\fi \EndP + \HCode{|<show input line no|><div class="ttenv">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par\noindent} +>>> + + + +\<configure html4 manmac\><<< +\Configure{sampleglue} + {\HCode{<table class="sampleglue">}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>}} + {\HCode{<td>}} + {\HCode{</td>}} +>>> + +\<configure html4 manmac\><<< +\Configure{danger} + {\HCode{|<show input line no|><!--danger-->}} + {\HCode{<!--end danger-->}} +\Configure{ddanger} + {\HCode{|<show input line no|><!--ddanger-->}} + {\HCode{<!--end ddanger-->}} +>>> + + +%%%%%%%%%%%%%%%% +\section{Small Packages} +%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{vowel} +%%%%%%%%%%%%% + +\<configure html4 vowel\><<< +\ConfigureEnv{vowel} + {\Picture*[vowel]{}} + {\EndPicture} + {}{} +>>> + +%%%%%%%%%%%%% +\subsection{enumitem} +%%%%%%%%%%%%% + +\<configure html4 enumitem\><<< +\ConfigureList{enumerate}% + {\EndP\HCode{<dl \a:LRdir class="enumerate-enumitem">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="enumerate-enumitem">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="enumerate-enumitem">}} +\Css{dt.enumerate-enumitem{float:left; clear:left; + margin-left:1em; margin-right:1em;}} +>>> + + +%%%%%%%%%%%%% +\subsection{IEEEtran} +%%%%%%%%%%%%% + +\<configure html4 IEEEtran\><<< +|<default thebibliography|> +|<bibitem css|> +>>> + +%%%%%%%%%%%%% +\subsection{Linguisics} +%%%%%%%%%%%%% + +\<configure html4 linguex\><<< +\Configure{ex} + {\ifvmode\IgnorePar\fi \EndP \HCode{<div class="ex">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} +\Configure{a.list} + {\ConfigureList{list}% + {\EndP\HCode{<dl \a:LRdir class="alist\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="alist">}\bgroup \bf} + {\egroup\HCode{</dt><dd\Hnewline class="alist">}\par\ShowPar}% + } +\Css{div.ex dt, dt.alist{float:left;clear:left}} +>>> + +\<configure html4 cgloss4e\><<< +\Configure{tsent} + {\HCode{<span class="tsent">}} + {\HCode{</span>}} + {\HCode{<br />}} +\Css{.tsent {display:table-cell; + display:inline-block; + padding-right:0.2em; + padding-top:0em; + padding-bottom:0em; + padding-left:0em; + margin:0em; }} +>>> + +\<configure html4 cgloss4e\><<< +\Configure{gll} + {\ifvmode \IgnorePar\fi \EndP + \bgroup + \ConfigureEnv{flushleft} + {\ifvmode \IgnorePar\fi \EndP} + {\ShowPar} + {\EndP\IgnorePar + \HCode{<div class="gll"\Hnewline>}\IgnorePar} + {\IgnorePar\EndP\HCode{</div>}}% + \Configure{HtmlPar}{}{}{}{}% + } + {} + {\egroup} +\Css{dd.alist p{margin-top:0.2em}} +>>> + +\<configure html4 covington\><<< +|<configure html4 cgloss4e|> +>>> + +\<configure html4 covington\><<< +\ConfigureEnv{exercise} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Exercise">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureList{reflist}% + {\EndP\HCode{<dl \a:LRdir class="reflist">}% + \PushMacro\end:itm +\global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm +\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="reflist">}\bgroup \bf} + {\egroup\HCode{</dt><dd\Hnewline class="reflist">}\par\ShowPar} +\Css{dd.reflist p.indent { text-indent: -2em; }} +>>> + + +\<configure html4 covington\><<< +\Configure{sentence} + {\bgroup + \ConfigureEnv{flushleft} + {\ifvmode \IgnorePar\fi \EndP}{|<try env inline par|>} + {\EndP\IgnorePar + \HCode{<div class="sentence"\Hnewline>}\ShowPar\endgraf} + {\IgnorePar\EndP\HCode{</div>}}% + } + {\egroup} +\Css{div.sentence {text-align:left;}} +>>> + +\<configure html4 covington\><<< +\Configure{glt}{\newline} +>>> + +%%%%%%%%%%%%% +\subsection{diagram (chess)} +%%%%%%%%%%%%% + +\<configure html4 diagram\><<< +\let\:EndIgnore\relax +\def\:Ignore{\bgroup + \catcode`\\=12 + \long\def\:temp##1:EndIgnore{\egroup}\:temp +} +\ifx \setboardwidth\:UnDef \expandafter\:Ignore\fi + |<config diagram 08|> +\:EndIgnore +\ifx \setboardwidth\:UnDef \else \expandafter\:Ignore\fi + |<config diagram 95|> +\:EndIgnore +>>> + + +\<config diagram 95\><<< +\Configure{diagram} + {\gHAdvance\chessNo by 1\relax + \ifvmode \IgnorePar\fi \EndP + \HCode{<table class="chess" id="chess-\chessNo">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</table>}} + {\HCode{<tr class="chess-\chessNo-\HRow">}} + {\HCode{</tr>}} + {\tmp:cnt=\HCol + \advance \tmp:cnt by \HRow \relax + \HCode{<td id="chess-\chessNo-\HRow-\HCol" + class="\ifodd \tmp:cnt white\else + \ifnum \count\help@b=144 ch-\fi + black\fi -square">}} + {\HCode{</td>}} +>>> + +\<config diagram 08\><<< +\Configure{diagram} + {\gHAdvance\chessNo by 1\relax + \ifvmode \IgnorePar\fi \EndP + \HCode{<table class="chess" id="chess-\chessNo">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</table>}} + {\HCode{<tr class="chess-\chessNo-\HRow">}} + {\HCode{</tr>}} + {\tmp:cnt=\HCol + \advance \tmp:cnt by \HRow \relax + \HCode{<td id="chess-\chessNo-\HRow-\HCol" + class="\ifodd \tmp:cnt white\else + \ifnum + 144=\csname cpd@square@\roman{cpd@current@square@index}\endcsname + ch-\fi + black\fi -square">}} + {\HCode{</td>}} +>>> + + + +\<configure html4 diagram\><<< +\HAssign\chessNo=0 + +\Css{td.black-square{background-color:\#B0B0B0; +% width:12.5\%; + width:1.5em; height:1.5em; +}} +\Css{td.ch-black-square{background-color:\#B0B0B0; + color:\#B0B0B0; +% width:12.5\%; + width:1.5em; height:1.5em; +}} +\Css{td.white-square{background-color:\#FFFFFF; +% width:12.5\%; + width:1.5em; height:1.5em; +}} + +\Css{table.chess{% margin-left: 0em; margin-right: 0em; + margin-left: auto; margin-right: auto; + border: solid black 1px; +% width:100\%; + text-align:center;}} +\Configure{stipulation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="stipulation">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<span class="stipulation">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} +\Configure{piececounter} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="piececounter">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.piececounter{ float:right; clear:left; margin-top:1em;}} +\Configure{authors} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="authors">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{condition} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="condition">}\bgroup + \Configure{newline}{}} + {\egroup\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}} +\Configure{solution} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="solution">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{award} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="award">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{dedic} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="dedic">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + +\Configure{twins} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="twins">}\bgroup + \Configure{newline}{}} + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.twins{text-align:left;width:100\%;}} +\Configure{remark} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="remark">}\bgroup + \Configure{newline}{}} + {\egroup\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{above} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="above">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div><!--end above-->}} +\Css{div.above{margin-bottom:0.3em;}} +\Configure{below} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="below">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{div.below{text-align:center;margin-top:1em;}} + + +\ConfigureEnv{diagram} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="diagram">}\bgroup + \Configure{HtmlPar}{}{}{}{}% + } + {\egroup\ifvmode \IgnorePar\fi \EndP + \HCode{</div><!--end diagram-->}} + {}{} + +\Css{div.diagram{width:12em; + display: inline-block; + margin-right:0.5em; + margin-left:0.5em; + vertical-align:top; +}} +\Configure{correction} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="correction">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{showlabel} + {\ifvmode \IgnorePar\fi \EndP \HCode{<sup class="showlabel">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</sup>}} +\Configure{judgement} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="judgement">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} + + + + \HAssign\solNum= 0 + +\Configure{number} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="number">}% + \gHAdvance\solNum by 1\relax + \Link{sol-\solNum}{prob-\solNum}} + {\EndLink\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{sol-number} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="sol-number">}% + \gHAdvance\solNum by 1\relax + \Link{prob-\solNum}{sol-\solNum}} + {\EndLink\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} +\Configure{sol-author} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="sol-author">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} +\Configure{sol-title} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="sol-title">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{source} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="source">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{source} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="source">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} +\Configure{date} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="date">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} +\Configure{issue} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="issue">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} +\Configure{pages} + {\ifvmode \IgnorePar\fi \EndP \HCode{<span class="pages">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}} + +\Css{div.condition{text-align:left;width:100\%;}} + +\Css{div.stipulation{ + text-align:justify; text-align-last:justify; width:100\%; +}} +\Css{span.stipulation{ margin-right:1em; }} +>>> + +%%%%%%%%%%%%% +\subsection{eurosym} +%%%%%%%%%%%%% + +\<configure html4 eurosym\><<< +\Configure{geneuro}{\ht:special{t4ht@+\string&{35}x20AC{59}}x} +\Configure{geneuronarrow}{\ht:special{t4ht@+\string&{35}x20AC{59}}x} +\Configure{geneurowide}{\ht:special{t4ht@+\string&{35}x20AC{59}}x} +>>> + + +%%%%%%%%%%%%% +\subsection{Sistyle} +%%%%%%%%%%%%% + + +\<configure html4 sistyle\><<< +\Configure{thousandsep} + {\HCode{<span class="thousandsep">\string&\#x00A0;</span>}} +\Css{span.thousandsep{font-size:80\%}} +>>> + +\<configure html4 sistyle\><<< +\Configure{degC}{\leavevmode\ht:special{t4ht@+&{35}x00B0;}xC} +\Configure{degF}{\leavevmode\ht:special{t4ht@+&{35}x00B0;}xF} +\Configure{arcdeg}{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x} +\Configure{arcmin}{\leavevmode\ht:special{t4ht@+&{35}x2032;}x} +\Configure{arcsec}{\leavevmode\ht:special{t4ht@+&{35}x2033;}x} +\Configure{ohm}{\leavevmode\ht:special{t4ht@+&{35}x2126;}x} +\Configure{micro}{\leavevmode\ht:special{t4ht@+&{35}x00B5;}x} +\Configure{angstrom}{\leavevmode\ht:special{t4ht@+&{35}x212B;}x} +>>> + + + +%%%%%%%%%%%%% +\subsection{chapterbib} +%%%%%%%%%%%%% + +\<configure html4 chapterbib\><<< +\:CheckOption{2} +\if:Option\else \:CheckOption{3} \fi +\if:Option\else \:CheckOption{4} \fi +\if:Option\else \:CheckOption{5} \fi +\if:Option + \AtBeginDocument{% + \let\cb:sectionbib=\cb@sectionbib + \def\cb@sectionbib{% + \let\addcontentsline\:gobbleIII + \cb:sectionbib}} +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{lineno.sty} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 lineno\><<< +\:warning{The line numbers are commented out. To reintroduce them, use + the \string\Configure{lineno}{...}{...} command} +\Configure{lineno} + {\bgroup \let\LineNumber=\empty} + {\egroup} +>>> + + + + +%%%%%%%%%%%%%% +\subsection{revtex (aps)} +%%%%%%%%%%%%%% + + +\<configure html4 revtex4\><<< +|<preprint revtex4|> +|<default revtex4|> +>>> + +\<preprint revtex4\><<< +\ConfigureSec{section} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h3 class="sectionHead"\a:LRdir>}\IgnorePar} + {\lowercase{\HCode{</h3>}}} + {}{} +>>> + + +% {\HCode{<span class="sectionmark"\a:LRdir>}} +% {\lowercase{\HCode{</span>}}} + + + +\<preprint revtex4\><<< +\ConfigureSec{subsection} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h4 class="subsectionHead"\a:LRdir>}\IgnorePar} + {\lowercase{\HCode{</h4>}}} + {}{} +>>> + +\<preprint revtex4\><<< +\ConfigureSec{subsubsection} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h5 class="subsubsectionHead"\a:LRdir>}\IgnorePar} + {\lowercase{\HCode{</h5>}}} + {}{} +>>> + + +\<preprint revtex4\><<< +\ConfigureSec{paragraph} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h5 class="paragraphHead"\a:LRdir>}\IgnorePar} + {\lowercase{\HCode{</h5>}}} + {}{} +>>> + + +\<preprint revtex4\><<< +\ConfigureSec{subparagraph} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h5 class="subparagraphHead"\a:LRdir>}\IgnorePar} + {\lowercase{\HCode{</h5>}}} + {}{} +>>> + + + +\<default revtex4\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE 2|>% + \HCode{<div class="maketitle">}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\NoFonts\IgnorePar\HCode{<h2 class="titleHead"\a:LRdir>}\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</h2>}\IgnoreIndent\EndNoFonts} +\Css{h2.titleHead{text-align:center;}} +\Css{div.maketitle{ margin-bottom: 2em;}} +>>> + +\<default revtex4\><<< +\Configure{|<thanks author date and|>} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="thanks" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{<div class="author" \a:LRdir>}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</div>}} + {\lowercase{\HCode{<span class="date" \a:LRdir>}}} + {\HCode{</span>}} + {\HCode{<br class="and" />}} + {\HCode{<br />}} +\Configure{doauthor} + {\HCode{<span class="author" \a:LRdir>}} + {\HCode{</span>}} +\Css{div.author{margin-top:2em;text-align:center;}} + +\Configure{affil} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div\Hnewline class="affil">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</div>}\IgnorePar} +\Css{.affil {text-align:center}} +>>> + +\<default revtex4\><<< +\Configure{RRAPformat} + {\ifvmode\IgnorePar\fi \EndP \HCode{<div class="RRAP">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} +\Configure{received} + {\lowercase{\HCode{<span class="received" \a:LRdir>}}} + {\HCode{</span>}} +\Configure{revised} + {\lowercase{\HCode{<span class="revised" \a:LRdir>}}} + {\HCode{</span>}} +\Configure{accepted} + {\lowercase{\HCode{<span class="accepted" \a:LRdir>}}} + {\HCode{</span>}} +\Configure{published} + {\lowercase{\HCode{<span class="published" \a:LRdir>}}} + {\HCode{</span>}} +\Css{div.RRAP{margin-top:1em;margin-bottom:1em;text-align:center;}} +>>> + +\<default revtex4\><<< +\Configure{abstract} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="abstract">}\par \ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{.abstract{margin:1em;}} +>>> + +\<default revtex4\><<< +\Configure{pacs} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="pacs">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{.pacs{margin-left:1em;}} +\Configure{keywords} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="keywords">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Css{.keywords{margin-left:1em;}} +>>> + + +\<default revtex4\><<< +\ConfigureEnv{thebibliography}{\par\leavevmode}{\ShowPar}{}{} +|<default thebibliography|> +\Configure{endnote} + {\HCode{<span class="endnote">}} + {\HCode{</span>}} +>>> + +\<default revtex4\><<< +\Configure{footnotebody} + {\HCode{<span class="footnote-body" \a:LRdir>}} + {\HCode{</span>}} +\Configure{frontpagefootnote} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="frontpagefootnotes">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\HCode{<div class="frontpagefootnote">}} + {\HCode{</div>}} +\Css{.frontpagefootnote{margin-left:1em;}} +>>> + +\<default revtex4\><<< +|<latex shared part config|> +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<latex shared paragraph config|> +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead { font-weight: bold;}} +>>> + +\<default revtex4\><<< +\ConfigureEnv{widetext} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="widetext">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {}{} +>>> + +\<default revtex4\><<< +\ConfigureEnv{ruledtabular} + {\ifvmode \IgnorePar\fi \HCode{<div class="ruledtabular">}} + {\ifvmode \IgnorePar\fi \HCode{</div>}} + {}{} +\Css{div.ruledtabular table { + border-top: black 1px double; + border-bottom: black 1px double}} +|<config captions|> +>>> + +\<default revtex4\><<< +\Configure{abstractheading} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="abstractheading">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Css{div.abstractheading{text-align:center}} +>>> + +\<default revtex4\><<< +\Configure{preprint} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="preprint">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Css{div.preprint{text-align:right}} +>>> + + +%\<configure html4 aps\><<< +% >>> + + +\<revtex3 aps.sty\><<< +|<revtex sections|> +|<revtex title page|> +|<shared bib env|> +|<thebib config|> +>>> + + +\<revtex sections\><<< +% \def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +>>> + + + + +\<revtex sections\><<< +\:CheckOption{4} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +|<cut toc: sec|>% + \CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} + |<cut toc: subsec|>% + |<tocat: part|>% + |<tocat: section|>% + \else + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} +|<tocat: ch|>% + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +|<cut toc: sec|>% + \CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} + |<cut toc: subsec|>% + |<tocat: part|>% + |<tocat: ch|>% + |<tocat: section|>% + \fi +\else\:CheckOption{3} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} +|<cut toc: sec|>% + \CutAt{subsection,section,likesection,% + chapter,likechapter,appendix,part} +\CutAt{likesubsection,section,likesection,% + chapter,likechapter,appendix,part} + |<cut toc: subsec|>% + |<tocat: part|>% + |<tocat: section|>% + \else + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} +|<tocat: ch|>% + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} + |<cut toc: sec|>% + |<tocat: part|>% + |<tocat: ch|>% + \fi +\else\:CheckOption{2} \if:Option + \expandafter\ifx \csname @chapter\endcsname\relax + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{section,likesection,chapter,likechapter,appendix,part} +\CutAt{likesection,chapter,likechapter,appendix,part} + |<cut toc: sec|>% + |<tocat: part|>% + \else + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + + \CutAt{chapter,likechapter,appendix,part} +\CutAt{likechapter,appendix,part} +\CutAt{appendix,chapter,likechapter,part} + |<tocat: ch|>% + |<tocat: part|>% + \fi +\else\:CheckOption{1} \if:Option + \CutAt{part} +\CutAt{likepart} +|<cut toc: part|> + +\else + \Log:Note{for automatic sectioning pagination, + use the command line option `1', `2', or `3'}% +\fi \fi \fi \fi + +\:CheckOption{1} \if:Option + |<toc article,report options 1|> +\fi +|<shared h5 subsubsection|> +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} + +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi + +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\thesection\HCode{</span>}\fi } +|<section TITLE+|> +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir>}\TitleMark.\space\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \ShowPar\par} +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \IgnoreIndent \ShowPar\par} +\Configure{likesectionTITLE+}{#1} + +\Css{h3.sectionHead, h3.likesectionHead {text-align:center;}} + +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likepart} +|<shared h4 subsection|> + +\Css{h4.subsectionHead {text-align:center;}} + +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} + +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likepart} +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likeparagraph}{}{} + {\ShowPar\IgnoreIndent\HCode{<span class="likeparagraphHead"\a:LRdir>}} + {\HCode{</span>}\IgnorePar} +\Css{.paragraphHead, .likeparagraphHead + { margin-top:2em; font-weight: bold;}} + +\ConfigureMark{subparagraph}{} +\Configure{subparagraph}{}{} + {\ShowPar\HCode{<span class="subparagraphHead"\a:LRdir>}\begingroup\bf + \TitleMark\space} + {\endgroup\HCode{</span>}\IgnorePar} +\Configure{likesubparagraph}{}{} + {\ShowPar\HCode{<span class="likesubparagraphHead"\a:LRdir>}\begingroup\bf} + {\endgroup\HCode{</span>}\IgnorePar} +\Css{.subparagraphHead, .likesubparagraphHead + { font-weight: bold;}} +>>> + + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Spatial Math} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 longdiv\><<< +\Configure{longdiv} + {\Configure{halign} + {\HCode{<table class="longdiv">}} + {\HCode{</table>}} + {\HCode{<tr>}} + {\HCode{</tr>\Hnewline}} + {\tmp:cnt=\HRow \divide\tmp:cnt by 2 \multiply\tmp:cnt by 2 + \advance\tmp:cnt by -\HRow + \HCode{<td \ifnum\HCol=2 \ifnum\HRow=2 class="longdiv"\fi \fi>% + <span \ifnum \tmp:cnt=-1 + \ifnum \HRow>2 class="longdiv"\fi\fi >}% + } + {\HCode{</span></td>}}% + } + {} +\Css{table.longdiv {text-align: right;}} +\Css{td.longdiv {border-top:solid 1px black; + border-left:solid 1px black;}} +\Css{span.longdiv {text-decoration:underline;}} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{lncse} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 lncse\><<< +|<lncse chapter|> +\Configure{paragraph}{}{} + {\ShowPar\IgnoreIndent + \HCode{<span class="paragraphHead"\a:LRdir>}\begingroup\it} + {\endgroup\HCode{</span>}\IgnorePar} +>>> + + +\<lncse chapter\><<< +\ConfigureMark{chapter} + {\if@mainmatter + \HCode{<span class="titlemark">}\chaptername + \ \thechapter\HCode{</span>}\fi} +\Configure{chapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="chapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{chapterTITLE+}{\if@mainmatter\thechapter\space\fi#1} +\renewcommand\thechapter {\if@mainmatter\@arabic\c@chapter\fi} + +\ConfigureMark{appendix}{\HCode{<span class="titlemark">}% + \appendixname \ \thechapter\HCode{</span>}} +\Configure{appendix}{}{} + {\IgnorePar\EndP\HCode{<h2 class="appendixHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{appendixTITLE+}{\thechapter\space#1} +\Configure{likechapter}{}{} + {\IgnorePar\EndP\HCode{<h2 class="likechapterHead"\a:LRdir>}} + {\HCode{</h2>}\IgnoreIndent\par} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Resume} +%%%%%%%%%%%%%%%%%% + +\<configure html4 resume\><<< +\Css{body{margin:4em;}} +\Css{td{vertical-align:top;}} + +\Configure{name} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="name">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +\Css{div.name{text-align:center;}} +>>> + +\<configure html4 resume\><<< +\Configure{addresses} + {\ifvmode \IgnorePar\fi \EndP + \bgroup + \Configure{tabular} + {\HCode{<div>}} {\HCode{</div>}} + {}{} + {\ifnum \HRow>1 \HCode{<br />}\fi} {}% + \HCode{<table class="addresses"><tr><td class="addresses-left">}% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</td><td class="addresses-right">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td></tr></table>}\par + \egroup} +\Css{table.addresses{width:100\%;}} +\Css{td.addresses-left{float:left;}} +\Css{td.addresses-right{float:right;}} +\Css{table.addresses div{text-align:left;}} +>>> + + +\<configure html4 resume\><<< +\ConfigureList{llist} + {\HAssign\HRow=0 \ifvmode \IgnorePar\fi \EndP + \HCode{<table class="llist">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td></tr></table>}} + {\ifvmode \IgnorePar\fi \EndP \HAdvance\HRow by 1 + \HCode{\ifnum \HRow>1 </td></tr>\fi + <tr><td class="llist-title">}\par} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td><td class="llist-body">}\par} +>>> + +\<configure html4 resume\><<< +\Configure{location} + {\HCode{<span class="location">}} + {\HCode{</span><br />}} +\Css{span.location{margin-left:2em;}} +>>> + +\<configure html4 resume\><<< +\ConfigureList{items} + {\ifvmode \IgnorePar\fi \EndP \HAssign\HRow=0 + \HCode{<table class="items">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td></tr></table>}} + {\ifvmode \IgnorePar\fi \EndP \HAdvance\HRow by 1 + \HCode{\ifnum \HRow>1 </td></tr>\fi <tr><td>&\#x2022;}\DeleteMark} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td><td class="items">}} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Curve} +%%%%%%%%%%%%%%%%%% + +\<configure html4 curve\><<< +\Configure{key} + {\HCode{<span class="key">}} + {\HCode{</span>}} +\Configure{key} + {\HCode{<span class="prefix">}} + {\HCode{</span>}} +\ConfigureEnv{rubric} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="rubric">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {} {} +\Configure{rubrichead} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="rubrichead">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{subrubric} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="subrubric">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="maketitle">}\bgroup + \ConfigureEnv{center}{}{}{}{}% + } + {\egroup\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="title">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="subtitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{makeheaders} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="makeheaders"><tr><td class="leftheader">}} + {\HCode{</td><td class="rightheader">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</td></tr></table>}} +\Css{td.leftheader {text-align:left}} +\Css{td.rightheader {text-align:right}} +\Css{table.makeheaders {width:100\%}} +\Css{div.maketitle {text-align:center;}} +\Css{div.rubrichead {margin-top:1em; margin-bottom:1em;}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{CSS} +%%%%%%%%%%%%%%%%%% + + + + +\<import css\><<< +\:CheckOption{-css} \if:Option \else + \Log:Note{to ignore CSS code, use the command line option `-css} + \:CheckOption{css-in} \if:Option + \Log:Note{the inline CSS code is extracted from the input of the + previous compilation, so an extra compilation might be needed} + \Configure{@HEAD}{|<css inline|>} + \else + \Log:Note{for inline CSS code, use the command line option `css-in'} + \Configure{@HEAD}{\HCode{<link + rel="stylesheet" type="text/css" + href="\aa:CssFile"\xml:empty>\Hnewline}} + \fi +\fi +>>> + + + +\<0,32,4 preambles\><<< +|<hook utility|> +\:CheckOption{-css} \if:Option + \def\Css#1{} + \NewConfigure{CssFile}{2} +\else + |<cascade style sheets|> + \Configure{Preamble} + {|<default cascade style sheets|>} {} +\fi +>>> + +\<default cascade style sheets\><<< +{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@ +\leavevmode}% +\immediate\write-1{--- file \aa:CssFile\space ---}% +\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}% +\ht:special{t4ht<\aa:CssFile}% +>>> + + + +\verb'\special' are like \verb'\hbox', and they so they may introduve empty lines in +vertical mode. That might be a problem if we don't want empty lines at +the start of the files. Hence, in latex we give them special treatment. + +\<cascade style sheets\><<< +\ScriptCommand{\CssFile}{% + \immediate\write-1{--- file \aa:CssFile\space ---}% + \def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}% + \def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}% + \def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special + {t4ht>\aa:CssFile}}% + \ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}% + \bgroup \everypar{}\NoFonts \bb:CssFile \hfil\break} + {\egroup \EndNoFonts + \ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}} +\let\Css:File|=\CssFile +\def\CssFile{\futurelet\:temp\Css:Fl} +\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl + \else \expand:after{\Css:File \space}\fi} +\def\Css:fl[#1]{\Css:File\space \css:files #1,,|<par del|>} +\def\css:files#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty + \else \def\:temp{\in:css#1.|<par del|>\css:files#2,,|<par del|>}\fi + \:temp } +\def\in:css#1.#2|<par del|>{\def\:temp{#2}\ifx \:temp\empty + \inc:ss#1.css|<par del|> + \else \inc:ss#1.#2|<par del|>\fi} +\def\inc:ss#1.|<par del|>{|<input css file|> } +\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} +>>> + + +\<input css file\><<< + \immediate\openin15=#1 + \ifeof15 \immediate\closein15 + \:warning{Missing file: #1}% + \else \immediate\closein15 \input #1 \fi +>>> + + +\verb'\CssFile[file-name,filename.ext,..]...\EndCssFile'. + +Default file, just in case the user doesn't provide one. If +the user does, the following file will be overwritten. + +Can't use below \verb'\a:CssFile' and \verb'\b:CssFile', because +\verb'\ScriptFile{\CssFile}' also needs them. + +\verb'\Css' changes its definition upon reachin \verb'\CssFile'. The +first definition is needed within the sty files, and the info is +sent to the lg file (where else it can be sent?). + + +\<cascade style sheets\><<< +\def\Css#1{{\def\:temp{\Configure{Needs}}% + \expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}} +>>> + +\section{External scripts and styles} + +\<external scripts and styles\><<< + +\NewConfigure{AddCss}[1]{% + {\Configure{Needs}{File: #1}\Needs{}} + \Configure{@HEAD}{\HCode{<link rel="stylesheet" type="text/css" href="#1" />\Hnewline}} +} + +\NewConfigure{AddJs}[1]{% + {\Configure{Needs}{File: #1}\Needs{}} + \Configure{@HEAD}{\HCode{\Hnewline<script type="text/javascript" src="#1"></script>\Hnewline}} +} +>>> + +\section{Web fonts support} + +These commands declare new font family in the CSS file + + +The default font family name which should be used in the Css +\textit{font-family} command for a declared font is \textit{rmfamily}. +It use the Latin Modern font installed on the viewer's system. +The Css font family and the local font name can be changed using +\verb|\Configure{FontFamily}{cssfamilyname}{LocalFontName}| command. + +\begin{verbatim} +\Configure{FontFamily}{rmfamily}{Latin Modern} +\end{verbatim} + +The font shapes can be configure using \verb|\Configure{NormalFont}|, +\verb|\Configure{ItalicFont}|, \verb|\Configure{BoldItalicFont}| and +\verb|Configure{BoldFont}|. The argument should be font file in the format +supported by browsers, such as \textit{woff} or \textit{otf}. + +\begin{verbatim} +\Configure{NormalFont}{normal-font-file.otf} +\Configure{BoldFont}{bold-font-file.otf} +\Configure{BoldItalicFont}{bold-italic-font-file.otf} +\Configure{ItalicFont}{italic-font-file.otf} +% Add another font family +\Configure{FontFamily}{hello}{Linux Libertine O} +\Configure{NormalFont}{hello-font-file.otf} +\Css{body{font-family: rmfamily, "AnotherFontFamilyName", serif;}} +\Css{span.hello{font-family: hello, sans-serif;}} +\end{verbatim} + +\<external web fonts\><<< + +% \newcommand\AddFontFace[4]{% +\def\AddFontFace#1#2#3#4{% +\Css{@font-face { + font-family: #1; + src: local("#2"), + url('#3'); + #4 + }} + {\Configure{Needs}{File: #3}\Needs{}} +} + + +% If more font families are used, they need to have different names +\NewConfigure{FontFamily}{2} + +\Configure{FontFamily}{rmfamily}{Latin Modern} + +% Declarations for common font styles, just local family name and font file name are needed to be provided +\NewConfigure{NormalFont}[1]{\AddFontFace{\a:FontFamily}{\b:FontFamily}{#1}{font-weight: normal;font-style: normal;}} +\NewConfigure{BoldFont}[1]{\AddFontFace{\a:FontFamily}{\b:FontFamily}{#1}{font-weight: bold;font-style: normal;}} +\NewConfigure{ItalicFont}[1]{\AddFontFace{\a:FontFamily}{\b:FontFamily}{#1}{font-weight: normal;font-style: italic;}} +\NewConfigure{BoldItalicFont}[1]{\AddFontFace{\a:FontFamily}{\b:FontFamily}{#1}{font-weight: bold;font-style: italic;}} +>>> + + +%%%%%%%%%%%%%%%% +\section{?????} +%%%%%%%%%%%%%%%% + + +\<hook utility\><<< +\:CheckOption{hooks++} \if:Option + \else \:CheckOption{hooks+} + \if:Option \else \:CheckOption{hooks}\fi + \fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi +>>> + + + + +The following provides a faster version +than \verb'\LinkCommand\Link{a,href,name,}' for the \verb'\Link' +command + +\<config tex4ht\><<< +\Configure{Link}{a}{href=}{id=}{} +>>> + + +\section{Shared} +%%%%%%%%%%%%%%%%%% + + +\<config book-report-article\><<< +|<makeketitle config 4.0t|> +>>> + + + +\<config book-report-article\><<< +|<latex shared div config|> +|<shared bib env|> +\ifx \part\:UnDef \else + |<latex shared part config|> +\fi +|<config lists of figures and tables|> +|<description 4|> +|<roman enumeiii|> +>>> + + +\<config lists of figures and tables\><<< +\ConfigureToc{lof} + {\HCode{<span class="lofToc" \a:LRdir>}}{\ }{}{\HCode{</span><br />}} +\ConfigureToc{lot} + {\HCode{<span class="lotToc" \a:LRdir>}}{\ }{}{\HCode{</span><br />}} +>>> + +\<config book-report-article\><<< +|<thebib config|> +|<latex config div 4.0t|> +>>> + + +\<32,4 latex\><<< +|<config bibitem|> +>>> + + + + + + +\<config book-report-article\><<< +|<quote config|> +>>> + +\<quote config\><<< +\ConfigureEnv{quote} + {}{} + {\IgnorePar\EndP + \HCode{<blockquote class="\getClass{quote}">}\afterGetClass{quote}} + {\IgnorePar\EndP\HCode{</blockquote>}\ShowPar\ShowIndent} +\NewConfigure{quoteClass}{2} +\Configure{quoteClass}{quote}{} +>>> +% let browser handle quotation formatting +% \Css{.quote {margin-bottom:0.25em; margin-top:0.25em; +% margin-left:1em; margin-right:1em; text-align:justify;}} + +\<configure html4 tex4ht\><<< +\def\getClass#1{\expandafter + \ifx \csname a:#1Class\endcsname\relax\else + \csname a:#1Class\endcsname + \fi} +\def\afterGetClass#1{\csname b:#1Class\endcsname} +>>> + + +\<quote noindent config\><<< +\ConfigureEnv{quote} + {}{} + {\IgnorePar\EndP\HCode{<blockquote class="quote">}\IgnoreIndent} + {\IgnorePar\EndP\HCode{</blockquote>}\ShowPar\ShowIndent} +>>> +% maybe we should let browsers to use the default formatting for quotes +% \Css{.quote {margin-bottom:0.25em; margin-top:0.25em; +% margin-left:1em; margin-right:1em; text-align:justify;}} + + +\<config book-report-article\><<< +\ConfigureEnv{verse} + {\ifvmode \IgnorePar\fi\EndP\Tg<div class="verse">} + {\ifvmode \IgnorePar\fi\EndP\Tg</div>\par\ShowPar} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\Css{.verse{white-space:nowrap; margin-left:2em}} +>>> + + +\<config book-report-article\><<< +|<maketitle 4|> +>>> + + + +\<config book-report-article\><<< +|<article,report,book|> + +>>> + + + + + + +%%%%%%%%%%%%%%%%%%% +\section{babel.sty} +%%%%%%%%%%%%%%%%%%% + + + + + +\<configure html4 babel\><<< +|<babel macros|> +|<babel char set|> +|<babel accents|> +|<u mlaut|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Character Set} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<babel char set\><<< +\def\a:temp#1#2#3{% + \ifOption{charset=#2}{\def\a:charset{charset=#2}}{}% + \def\:tempa{#1}\ifx \languagename\:tempa + \ifx\A:charset\empty% + \def\A:charset{#2}\ifx \A:charset\empty\else% + \def\A:charset{charset=#2}%% + \fi\fi% + \if !#3!\else + \Configure{@HTML}{% + \iflanguage{#1}{xml:lang="#3" }{}% + } + \fi + \fi} +\a:temp{afrikaans}{iso-8859-1}{af} +\a:temp{arabic}{iso-8859-6}{ar} +\a:temp{austrian}{iso-8859-1}{ge} +\a:temp{brazilian}{iso-8859-1}{pt} +\a:temp{brazil}{iso-8859-1}{pt} +\a:temp{catalan}{iso-8859-1}{ca} +\a:temp{croatian}{iso-8859-2}{hr} +\a:temp{czech}{iso-8859-2}{cs} +\a:temp{danish}{iso-8859-1}{da} +\a:temp{dutch}{iso-8859-1}{nl} +\a:temp{esperanto}{iso-8859-3}{eo} +\a:temp{estonian}{iso-8859-5}{et} +\a:temp{finnish}{iso-8859-1}{fi} +\a:temp{francais}{iso-8859-1}{fr} +\a:temp{frenchb}{iso-8859-1}{fr} +\a:temp{french}{iso-8859-1}{fr} +\a:temp{galician}{iso-8859-1}{gl} +\a:temp{germanb}{iso-8859-1}{de} +\a:temp{german}{iso-8859-1}{de} +\a:temp{greek}{iso-8859-7}{el} +\a:temp{hebrew}{iso-8859-8}{he} +\a:temp{hungarian}{iso-8859-2}{hu} +\a:temp{ngerman}{iso-8859-1}{de} +\a:temp{norsk}{iso-8859-1}{no} +\a:temp{nynorsk}{iso-8859-1}{no} +\a:temp{polish}{iso-8859-2}{pl} +\a:temp{polski}{iso-8859-2}{pl} +\a:temp{polutonikogreek}{iso-8859-7}{el} +\a:temp{portuges}{iso-8859-1}{pt} +\a:temp{portuguese}{iso-8859-1}{pt} +\a:temp{romanian}{iso-8859-2}{ro} +\a:temp{scottish}{iso-8859-1}{gd} +\a:temp{slovak}{iso-8859-2}{sk} +\a:temp{slovene}{iso-8859-2}{sl} +\a:temp{spanish}{iso-8859-1}{es} +\a:temp{swedish}{iso-8859-1}{sv} +\a:temp{turkish}{iso-8859-9}{tr} +\a:temp{ukrainian}{iso-8859-5}{uk} +\a:temp{uppersorbian}{iso-8859-2}{} +\a:temp{welsh}{iso-8859-1}{cy} +|<set babel charset|> +>>> + + + + + + + +\<configure html4 german\><<< +|<quotedblbase|> +>>> + +\<configure html4 ngerman\><<< +|<quotedblbase|> +>>> + + + + + +\<quotedblbase\><<< +\Configure{quotedblbase}{\leavevmode\ht:special{t4ht@+&{35}x201E;}x} +\Configure{quotesinglbase}{\leavevmode\ht:special{t4ht@+&{35}x201A;}x} +>>> + + + +\<configure html4 austrian\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 catalan\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> + +\<configure html4 croatian\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + +\<configure html4 latin2\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +>>> + + + + +\<configure html4 czech\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +>>> +\<configure html4 danish\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 dutch\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 english\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 esperant\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-3} +\fi +>>> +\<configure html4 estonian\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-5} +\fi +>>> +\<configure html4 finnish\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> + +\<configure html4 francais\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> + + +\<configure html4 frenchb\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +\Configure{@TITLE}{\Configure{frenchb-thinspace}{}{}} +>>> + + + +\<configure html4 frenchb\><<< +\Configure{system-nbsp} + {\ht:special{t4ht@[unhskip}} + {\ht:special{t4ht@]unhskip}} +>>> + +Patch submitted by Michal Hoftich: + +html entity \verb= = is inserted before colon. This causes validation +error in some xml environments, where this entity is not defined, for +example in epub3. macro \verb=\:nbsp= should be used instead. Patch for the +file tex4ht-html4.tex is provided in the attachment. + +\<configure html4 frenchb\><<< +\ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi +\Configure{frenchb-nbsp} + {\ht:special{t4ht@?unhskip}\HCode{<span class="frenchb-nbsp">}% + \:nbsp\setbox\tmp:bx=\hbox\bgroup} + {\egroup \HCode{</span>}} +\Css{.frenchb-nbsp{font-size:75\%;}} +>>> + + +\<configure html4 frenchb\><<< +\Configure{frenchb-thinspace} + {\ht:special{t4ht@?unhskip}\HCode{<span class="frenchb-thinspace">}% + \:nbsp\setbox\tmp:bx=\hbox\bgroup} + {\egroup \HCode{</span>}} +\Css{.frenchb-thinspace{font-size:75\%;}} +>>> + +french babel provides some macros which put some text to the +superscript. standard macros for superscripts aren't used, so these +superscripts doesn't show in the html output. + +\<configure html4 frenchb\><<< +\NewConfigure{frenchup}{2} +\Configure{frenchup}{\HCode{<sup class="french">}}{\HCode{</sup>}} +\Css{sup.french{ +vertical-align:super; +font-size:70\%; +}} +\renewcommand\fup[1]{\a:frenchup#1\b:frenchup} +>>> + + + + +\<configure html4 galician\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 germanb\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> + +\<configure html4 greek\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-7} +\fi +\ifOption{charset=iso-8859-7} + {|<greek ldf iso-8859-7|>} + {\Log:Note{for iso-8859-7 accents + use the command line option `charset=iso-8859-7'}} +\ifOption{sgreek} + {\:CheckOption{new-accents} \if:Option \else + |<greek ldf sgreek|> + \fi} + {\Log:Note{for Sgreek font + use the command line option `sgreek'}} +\ifOption{oldgreek} + {\:CheckOption{new-accents} \if:Option \else + |<greek ldf Greek Old Face|> + \fi} + {\Log:Note{for Greek Old Face font + use the command line option `oldgreek'}} +>>> + + + +\<greek ldf sgreek\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +\Configure{htf}{254}{+}{<font \Hnewline + face="}{}{}{}{}{Sgreek">}{</font>} +\Configure{htf}{252}{+}{<font \Hnewline + face="}{}{}{}{}{Sgreek" class="small-caps">}{</font>} +\Configure{htf-css}{252}{.small-caps{font-variant: small-caps; }} +\Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\expandafter \ifx \csname \@curr@enc :#1\endcsname\relax + \Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture + \else + \csname \@curr@enc :#1\endcsname {#3}% + \fi + } +\def\LGR:acute#1{% + \LGR:gobble\ifx #1\i \HChar{237}% + \else #1\HCode{<font face="Sgreek">/</font>}\fi } +\def\LGR:grave#1{% + \LGR:gobble\ifx #1\i \HChar{236}% + \else #1\HCode{<font face="Sgreek">\string\</font>}\fi} +\def\LGR:circ#1{% + \LGR:gobble\ifx #1\i \HChar{238}% + \else #1\HCode{<font face="Sgreek">=</font>}\fi} +\def\LGR:tilde#1{#1\HCode{<font face="Sgreek">@</font>}} +\def\LGR:uml#1{% + \LGR:gobble\ifx #1\i \HChar{239}% + \else #1\HCode{<font face="Sgreek">+</font>}\fi} +\def\LGR:gobble#1#2#3{#1} +>>> + + +The accented \''\i' arrives in the form of \''\@use@text@encoding +\@curr@enc \i'. + + + +\<greek ldf Greek Old Face\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +\Configure{htf}{254}{+}{<font \Hnewline + face="}{}{}{}{}{Greek Old Face">}{</font>} +\Configure{htf}{252}{+}{<font \Hnewline + face="}{}{}{}{}{Greek Old Face" class="small-caps">}{</font>} +\Configure{htf-css}{252}{.small-caps{font-variant: small-caps; }} +\Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\expandafter \ifx \csname \@curr@enc :#1\endcsname\relax + \Picture+{ \a:@Picture{#1}}#2{#3}\EndPicture + \else + \csname \@curr@enc :#1\endcsname {#3}% + \fi + } +\def\LGR:acute#1{% + \LGR:gobble\ifx #1\i \HChar{237}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{i}{133}\LGR:ch{w}{232}\LGR:ch{u}{218}\LGR:ch{o}{210}% + \LGR:ch{h}{187}\LGR:ch{a}{163}\LGR:ch{e}{154}% + \ifx \:temp\empty\else #1\HChar{-180}\fi + \fi } +\def\LGR:grave#1{% + \LGR:gobble\ifx #1\i \HChar{236}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{i}{136}\LGR:ch{235}{232}\LGR:ch{u}{221}\LGR:ch{o}{213}% + \LGR:ch{h}{190}\LGR:ch{a}{166}\LGR:ch{e}{157}% + \ifx \:temp\empty\else #1`\fi + \fi } +\def\LGR:circ#1{% + \LGR:gobble\ifx #1\i \HChar{238}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{i}{139}\LGR:ch{w}{238}\LGR:ch{u}{224}\LGR:ch{o}{253}% + \LGR:ch{h}{193}\LGR:ch{a}{169}\LGR:ch{e}{252}% + \ifx \:temp\empty\else #1\string^\fi + \fi} +\def\LGR:tilde#1{#1} +\def\LGR:uml#1{% + \LGR:gobble\ifx #1\i \HChar{239}% + \else + \edef\:temp{\:gobbleII#1\empty\empty}% + \LGR:ch{u}{227}\LGR:ch{i}{142}% + \ifx \:temp\empty\else #1\HChar{168}\fi + \fi} +\def\LGR:gobble#1#2#3{#1} +\def\LGR:ch#1#2{\def\:tempa{#1}\ifx \:temp\:tempa + \HCode{<font face="Greek Old Face">}\HChar{#2}\HCode{</font>}% + \let\:temp=\empty \fi } +>>> + + + + + + + + + +\<configure html4 hebrew\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-8} +\fi +>>> + +\<configure html4 ngermanb\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 norsk\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 polish\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +>>> +\<configure html4 polski\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +>>> +\<configure html4 portuges\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> + + + +\<configure html4 scottish\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> + +\<configure html4 slovak\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + + +\<configure html4 slovene\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +\:CheckOption{new-accents} \if:Option \else + |<old iso-8859-2 accents|> +\fi +>>> + +\<configure html4 spanish\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +\Configure{es@accents}{\es:accents}{} +\def\es:accents#1\b:es@accents{\HCode{&\#x#1;}} +|<spanish configs|> +>>> + + +\<spanish configs\><<< +\Configure{guillemotleft}{\HCode{&\#x00AB;}} +\Configure{guillemotright}{\HCode{&\#x00BB;}} +>>> + +\<spanish configs\><<< +\Configure{spanish"a}{\HCode{<span ="underline">&\#x00AA;</span>}} +\Configure{spanish"o}{\HCode{<span ="underline">&\#x00BA;</span>}} +\Configure{spanish"e}{\HCode{<sup class="underline">e</sup>}} +\Configure{spanish"A}{\HCode{<sup class="underline">A</sup>}} +\Configure{spanish"O}{\HCode{<sup class="underline">O</sup>}} +\Configure{spanish"E}{\HCode{<sup class="underline">E</sup>}} +\Configure{spanish'i}{\HCode{&\#x00ED;}} +>>> + + + + +\<spanish configs\><<< +\Configure{es@accent} + {\string\OT1\string\'} + {|<acute codes|>} +>>> + + +\<spanish configs\><<< +\Configure{es@accent} + {\string\OT1\string\"} + {|<diaeresis codes|>{}{34}} +>>> + +\<spanish configs\><<< +\Configure{es@accent} + {\string\OT1\string\~} + {|<tilde codes|>} +>>> + + + +\<configure html4 swedish\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> +\<configure html4 turkish\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-9} +\fi +>>> +\<configure html4 ukraineb\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-5} +\fi +>>> +\<configure html4 usorbian\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-2} +\fi +>>> +\<configure html4 welsh\><<< +\ifx\A:charset\empty +\def\A:charset{charset=iso-8859-1} +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{right to left babel} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +tex4ht.sty indert Rregion and Lregion end hooks within +\verb+\beginL/R+ and \verb+\endL/R+, mainly to void the +inverse produced by the elatex compiler. + +\<configure html4 rlbabel\><<< +|<shared rlbabel, arabicore|> +\Configure{!P}{\a:LRdir} +\Configure{!BODY}{\a:LRdir} +>>> + + +\<shared rlbabel, arabicore\><<< +\Configure{LRdir}{ |<dir ltr/rtl|> } +\Configure{Rregion} {\beginL} {\endL} +\Configure{TITLE+}{\HCode{\jobname}} +>>> + + +\<dir ltr/rtl\><<< +dir="\if@rl rtl\else ltr\fi" +>>> + + +\<configure html4 rlbabel\><<< +\Configure{moreL} + {\ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="ltr" >}\def\end:moreRL{\HCode{</span>}}\fi} + {\end:moreRL} +\Configure{moreR} + {\ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="rtl" >}\def\end:moreRL{\HCode{</span>}}\fi} + {\end:moreRL} +>>> + + +\<configure html4-math rlbabel\><<< +\:CheckOption{pic-m} \if:Option +\else + \Configure{$} + {\HCode{<span |<dir ltr/rtl|>>}} + {\HCode{</span>}}{} +\fi +>>> + + + +% \def\HCode{<#1>}{\HCode{<#1 |<dir ltr/rtl|>>}} + +\<configure html4-math rlbabel\><<< +\Configure{[]} + {\bgroup + \protect\nested:math + \PicDisplay + $$\everymath{}\everydisplay{}} + {$$\EndPicDisplay \egroup + |<try inline par|>\if@rl \beginL\fi \beginR } +>>> + + + + + +%%%%%%%%%%%%% +\subsection{Arabi} +%%%%%%%%%%%%% + + +% \<configure html4 Arabicore\><<< +% |<configure html4 arabicore|> +% >>> + + +\<configure html4 arabicore\><<< +|<shared rlbabel, arabicore|> +\NewConfigure{dtd-lang}{1} +\Configure{dtd-lang}{AR} +\def\A:charset{charset=utf-8} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{csquotes} +%%%%%%%%%%%%%%%%%%%%%%%%% + +Csquotes provides quoting environment with a citation support + +\<configure html4 csquotes\><<< +\Configure{displayquote} +{\ifvmode\IgnorePar\fi\EndP\HCode{<blockquote>}} +{\ifvmode\IgnorePar\fi\EndP\HCode{<footer>}} +{\EndP\HCode{</footer>}} +{\ifvmode\IgnorePar\fi\EndP\HCode{</blockquote>}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Scientific Word} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +% When \verb+\BOXEDSPECIAL+ is defined we don't want the +% following configuration, because the frame may enclose +% a graphics-like file that we might not want to translate. +% +% \<configure html4 tcilatex\><<< +% \ifx \BOXEDSPECIAL\:UnDef +% \Configure{BOXTHEFRAME} +% {\Picture+[PICT]{}} {\EndPicture} +% \fi +% >>> + +\<configure html4 tcilatex\><<< +\Configure{GRAPHICSPS} + {\Picture+[PICT]{}} {\EndPicture} +\Configure{GRAPHICSHP} + {\Picture+[PICT]{}} {\EndPicture} +\Configure{DFRAME} + {\EndP \IgnorePar\HCode{<div class="FRAME">}} + {\HCode{</div>}\par\ShowPar} +\Configure{FFRAME} + {\EndP \IgnorePar\HCode{<div class="FRAME">}} + {\HCode{</div>}\par\ShowPar} +\Configure{IFRAME} + {\ifvmode \IgnorePar \fi} {} +\Css{div.FRAME {text-align:center;}} +\expandafter\ifx \csname @TCItagstar\endcsname\relax + |<tcilatex 2.5|> +\else + |<tcilatex 3.5|> +\fi +>>> + + + +\<configure html4-math tcilatex\><<< +\expandafter\ifx \csname @TCItagstar\endcsname\relax + |<tcilatex 2.5 math|> +\else + |<tcilatex 3.5 math|> + \ifx \@msidraft\:Undef + |<tcilatex 3.5 not 4.0 math|> +\fi \fi +>>> + +\<tcilatex 3.5 not 4.0 math\><<< +\Configure{dfrac} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{tfrac} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{binom} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{tbinom} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{dbinom} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +>>> + +\<tcilatex 3.5 math\><<< +\Configure{QATOP} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{QDATOP} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +\Configure{QTATOP} + {\Picture+{ style="text-align:middle"}\bgroup} {} + {} {\egroup\EndPicture} +>>> + + + + + + + +\<configure html4 seslideb\><<< +\ConfigureEnv{center} + {\IgnorePar \par \EndP \HCode{<div class="center"\Hnewline>}} + {\ifvmode\IgnorePar\fi\EndP\HCode{</div>}} + {} {} +{\Configure{Needs}{Font\string_Size: #1}% + \expandafter\Needs\expandafter{\csname normalsize@fsize\endcsname}} +>>> + +\<configure html4 seslideb\><<< +\ConfigureToc{swSlide} + {} {\relax } {} { } +\:CheckOption{0} + \if:Option \else \:CheckOption{1} \fi +\if:Option + \:CheckOption{1} \if:Option + \CutAt{swSlide} + \Configure{crosslinks}{}{}{}{}{}{}{}{} + \fi + |<seslideb toc|> + |<seslideb page break|> +\else + |<handle my missing sw fonts|> + \Log:Note{pagination may be obtained + through the option `0' or `1', at locations marked with + \noexpand\csname PageBreak\string\endcsname} +\fi +>>> + +\<handle my missing sw fonts\><<< +\Configure{swSlide}{}{}{\bgroup\bf}{\egroup} +>>> + + + +\<seslideb toc\><<< +\def\:temp{% + \ifOption{1}{\par\IgnorePar\EndP\HCode{<hr />}\par}{} + \HAssign\TocN=1 + \def\swTitle{\gHAdvance\TocN by 1 \TocN}\:TableOfContents[swSlide] + \let\swTitle=\relax + \ifOption{0}{\par\IgnorePar\EndP\HCode{<hr />}\par}{} + \let\swSlide=\o:swSlide: \let\o:swSlide:=\empty \swSlide} +\HLet\swSlide=\:temp +>>> + + +\<seslideb page break\><<< +\Configure{swSlide} + {\gHAdvance\swSlideN by 1 \Link{}{s-\swSlideN}\EndLink } + {\rightline{ + {\HAdvance\swSlideN by -1 \Link{s-\swSlideN}{}\swSlideN\EndLink} + \Link[\jobname.html]{}{}\HCode{<>}\EndLink{} + {\HAdvance\swSlideN by 1 + \ifTag{)Qs-\swSlideN}{\Link{s-\swSlideN}{}\swSlideN\EndLink}{}} + } + \ifOption{0}{\par \IgnorePar\EndP\HCode{<hr />}\par}{} + } + {\IgnorePar\bgroup \bf } + {\egroup \ShowPar\IgnoreIndent\par} +\HAssign\swSlideN=1 +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{minitoc} +%%%%%%%%%%%%%%%%%% + +\<configure html4 minitoc\><<< + |<minitoc.sty Configure 4.0t|> +>>> + +\<minitoc.sty Configure 4.0t\><<< +\Configure{minitoc} + {\Configure{tableofcontents} + {\HCode{<div class="minitoc"><hr\xml:empty>}\IgnorePar}{} + {\IgnorePar\HCode{<hr\xml:empty></div>}\ShowPar} + {\HCode{<br />}}{}} {} + {\HCode{<div class="minitoc-\TocOption">}} {\HCode{</div>}} +\Configure{minilof} + {\Configure{tableofcontents} + {\HCode{<div class="minilof"><hr\xml:empty>}\IgnorePar}{} + {\IgnorePar\HCode{<hr\xml:empty></div>}\ShowPar} + {\HCode{<br />}}{}} {} + {\HCode{<div class="minilof-\TocOption">}} {\HCode{</div>}} +\Configure{minilot} + {\Configure{tableofcontents} + {\HCode{<div class="minilot"><hr\xml:empty>}\IgnorePar}{} + {\IgnorePar\HCode{<hr\xml:empty></div>}\ShowPar} + {\HCode{<br />}}{}} {} + {\HCode{<div class="minilot-\TocOption">}} {\HCode{</div>}} +\Css{.minitoc-l,.minilot-l,.minilof-l + {text-align:left;margin-left:3em;}} +\Css{.minitoc-c,.minilot-c,.minilof-c + {text-align:center;margin-left:3em;}} +\Css{.minitoc-r,.minilot-r,.minilof-r + {text-align:right;margin-left:3em;}} +\Css{DIV.minitoc,DIV.minilot,DIV.minilof{margin-left:3em;}} +\Css{.minitoc .sectionToc { font-weight:bold;} } +>>> + +Only one of the following is needed for a given document!!! + +\<minitoc.sty Configure 4.0t\><<< +\Configure{parttoc}{}{} + {\HCode{<div class="parttoc-\TocOption">}} {\HCode{</div>}} +\Configure{partlof}{}{} + {\HCode{<div class="partlof-\TocOption">}} {\HCode{</div>}} +\Configure{partlot}{}{} + {\HCode{<div class="partlot-\TocOption">}} {\HCode{</div>}} +\Css{.parttoc-l,.partlof-l,.partlot-l{text-align:left;}} +\Css{.parttoc-c,.partlof-c,.partlot-c{text-align:center;}} +\Css{.parttoc-r,.partlof-r,.partlot-r{text-align:right;}} +>>> + +\<minitoc.sty Configure 4.0t\><<< +\Configure{secttoc}{}{} + {\HCode{<div class="secttoc-\TocOption">}} {\HCode{</div>}} +\Configure{sectlof}{}{} + {\HCode{<div class="sectlof-\TocOption">}} {\HCode{</div>}} +\Configure{sectlot}{}{} + {\HCode{<div class="sectlot-\TocOption">}} {\HCode{</div>}} +\Css{.secttoc-l,.sectlof-l,.sectlot-l{text-align:left;}} +\Css{.secttoc-c,.sectlof-c,.sectlot-c{text-align:center;}} +\Css{.secttoc-r,.sectlof-r,.sectlot-r{text-align:right;}} +>>> + +\<minitoc.sty Configure 4.0t\><<< +\:CheckOption{3} \if:Option + \let\minitoc=\empty +\fi +\Configure{minitoc@} + {\ifx \mtc@rule\relax \else \par \IgnorePar \HCode{<hr/>}\par\fi + \bgroup \let\mtc@rule\relax + } + {\egroup + \ifx \mtc@rule\relax \else \par \IgnorePar \HCode{<hr/>}\par\fi + } +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{alltt.sty} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 alltt\><<< +\ConfigureEnv{alltt} + {\IgnorePar\EndP\HCode{<div class="alltt">}} + {\IgnorePar\EndP\HCode{</div>}} {}{} +\Css{.alltt P { margin-bottom : 0em; margin-top : 0em; }} +\Css{.alltt { margin-bottom : 1em; margin-top : 1em; font-family:monospace,monospace; }} +>>> + +%%%%%%%%%%%%%%%%%%% +\section{url.sty} +%%%%%%%%%%%%%%%%%%% + +\<configure html4 url\><<< +\:CheckOption{url-il2-pl} \if:Option +\else \:CheckOption{url-enc} \fi +\if:Option + \Configure{string-encoder}{url-encoder} +% \:CheckOption{url-il2-pl} \if:Option + |<il2-pl.tcx url encoder|> +% \else + |<default url encoder WAIT|> +% \Log:Note{for il2-pl url encoding, +% use the command line option 'url-il2-pl'} +% \fi + \Configure{url}% + {|<:temp = url encoded string|>% + \Link[\noexpand\the\tmp:toks \space + class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} + |<url encoded string utilities|> +\else + \Log:Note{for URL encoding within href + use the command line option `url-enc'} + \Configure{url}% + {\tmp:toks{#1}\Link[\noexpand\the\tmp:toks\space + class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} +\fi +|<path config|> +>>> + +\<:temp = url encoded string\><<< +\tmp:toks={}\set:spaces#1|<par del|>% +\edef\:temp{\tmp:toks{\csname url-encoder\expandafter\endcsname + \the\tmp:toks |<par del|>}}\:temp +>>> + +\<url encoded string utilities\><<< +\def\set:spaces{\futurelet\:temp\set:spacesoo} +\def\set:spacesoo{% + \expandafter\ifx \space\:temp + \tmp:toks\expandafter{\the\tmp:toks{ }}% + \fi + \set:spaceso +} +\def\set:spaceso#1#2|<par del|>{% + \tmp:toks\expandafter{\the\tmp:toks #1}% + \if !#2!\else \set:spaces#2|<par del|>\fi +} +>>> + +\<default url encoder\><<< +\Configure{url-encoder} + {%}{%25} + {&}{%26} + {'}{%27} + {<}{%3C} + {>}{%3E} + {_}{_} + {^}{^} + {}{} +\Log:Note{current url encoding setting: \string\Configure{url-encoder}% + {\%}{\%25}% + {&}{\%26}% + {'}{\%27}% + {<}{\%3C}% + {>}{\%3E}% + {\string _}{\string _}% + {\string ^}{\string ^}% + {}{}} +>>> + + + + +\<il2-pl.tcx url encoder\><<< +\input{html4-l2-url.4ht} +>>> + +\<html4-l2-url\><<< +% html4-l2-url.4ht (|version), generated from |jobname.tex +% Copyright 2009-2015 TeX Users Group +% Copyright |CopyYear.1999. Eitan M. Gurari +% +% Extracted to a separate file so the main file has a consistent +% (and UTF-8 compatible) encoding. +|<TeX4ht copywrite|> +\Configure{url-encoder} + {%}{%25} + {&}{%26} + {'}{%27} + {<}{%3C} + {>}{%3E} + {_}{_} + {^}{^} + {±}{ą} + {æ}{ć} + {ê}{ę} + {³}{ł} + {ó}{ó} + {ñ}{ń} + {¶}{ś} + {¼}{ź} + {¿}{ż} + {¡}{Ą} + {Æ}{Ć} + {Ê}{Ę} + {£}{Ł} + {Ó}{Ó} + {Ñ}{Ń} + {¦}{Ś} + {¬}{Ź} + {¯}{Ż} + { }{+} + {}{} +>>> + + +\Link[http://www.faqs.org/rfcs/rfc2396.html]{}{}http://www.faqs.org/rfcs/rfc2396.html\EndLink + +See issues in: + +\begin{verbatim} +\documentclass{article} + \usepackage{url} +\begin{document} + +\url{a%b c&d} + +\url{a%25b+c&d} + +\end{document} +\end{verbatim} + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Path.sty} +%%%%%%%%%%%%%%%%%% + +\<path config\><<< +\Configure{path} + {\HCode{<span class="path">}\bgroup + \Configure{obeylines}{}{}{}% + } + {\egroup\HCode{</span>}} +>>> + +\<configure html4 path\><<< +|<path config|> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%% +\section{fontmath} +%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure html4 latex\><<< +\:CheckOption{fonts} \if:Option + \Configure{textbf}{\Protect\HCode{<span class="textbf">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{textit}{\Protect\HCode{<span class="textit">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{textrm}{\Protect\HCode{<span class="textrm">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{textup}{\Protect\HCode{<span class="textup">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{textsc}{\Protect\HCode{<span class="textsc">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{textsf}{\Protect\HCode{<span class="textsf">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{textsl}{\Protect\HCode{<span class="textsl">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{texttt}{\Protect\HCode{<span class="texttt">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Configure{emph}{\Protect\HCode{<span class="emph">}\NoFonts} + {\EndNoFonts\Protect\HCode{</span>}} + \Css{span.textbf { font-weight: bold; }} + \Css{span.textit { font-style: italic; }} + \Css{span.textrm { font-family: serif; }} + \Css{span.textsc { font-variant: small-caps; }} + \Css{span.textsf { font-family: sans-serif; }} + \Css{span.texttt { font-family: monospace,monospace; }} + \Css{span.emph { font-style: italic;}} + \Css{span.emph span.emph {font-style: normal;}} +\else + \Log:Note{for tracing of latex font commands, + use the command line option `fonts'} +\fi +>>> + +\<configure html4-math fontmath\><<< +\:CheckOption{fonts} \if:Option + \Configure{mathit}{\Protect\HCode{<span class="mathit">}} + {\Protect\HCode{</span>}} + \Configure{mathbf}{\Protect\HCode{<span class="mathbf">}} + {\Protect\HCode{</span>}} + \Configure{mathtt}{\Protect\HCode{<span class="mathtt">}} + {\Protect\HCode{</span>}} + \Configure{mathsf}{\Protect\HCode{<span class="mathsf">}} + {\Protect\HCode{</span>}} + \Configure{mathrm}{\Protect\HCode{<span class="mathrm">}} + {\Protect\HCode{</span>}} +\fi +>>> + + + + + + + + + +\<configure html4-math amsfonts\><<< +\:CheckOption{fonts} \if:Option + \Configure{mathbb}{\Protect\HCode{<span class="mathbb">}} + {\Protect\HCode{</span>}} + \Configure{mathfrak}{\Protect\HCode{<span class="mathfrak">}} + {\Protect\HCode{</span>}} +\fi +>>> + + + + + + +\subsection{1: Large Operators} + +\begin{verbatim} +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 +\end{verbatim} + + + +\<plain tex classes\><<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 +} +>>> +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<plain tex classes\><<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{3: Relational Operations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The catcode is needed because 303A is \verb':'. + +\<plain tex classes\><<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + + + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + +\<plain tex classes\><<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{6: Punctuation Marks} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{verbatim} +\mathchardef\ldotp="613A % ldot as a punctuation mark +\mathchardef\cdotp="6201 % cdot as a punctuation mark +\mathchardef\colon="603A % colon as a punctuation mark +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + + + +\<plain tex classes\><<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A +\mathchar"6201 +\mathchar"603A +?; , +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Questions} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{verbatim} +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Type 4: Math Open} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +latex.ltx, fontmath.ltx, plain.tex + + + +%%%%%%%%%%%%% +\subsection{Over and Under} +%%%%%%%%%%%%% + +\<configure html4-math fontmath\><<< +\Configure{overrightarrow} + {\leavevmode\IgnorePar} + {} +\Configure{overleftarrow} + {\leavevmode\IgnorePar} + {} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{fleqn.sty} +%%%%%%%%%%%%%%%%%%%% + +\<configure html4-math fleqn\><<< +\Configure{equation} + {\:xhtml{\IgnorePar\EndP}% + \HCode{<table\Hnewline class="equation"><tr><td>}\IgnorePar + \Configure{$}{\PicMath}{\EndPicMath}{}% + } + {\IgnorePar\HCode{</td><td class="equation-label">}} + {\end:TTT\IgnorePar\par} +>>> +\section{emulateapj.clo} + +\<configure html4 emulateapj\><<< +\Configure{slugcomment} + {\HCode{<div class="slugcomment">}} + {\HCode{</div>}} +\Css{.slugcomment{text-align:center;font-size:85\%; + font-style: italic;}} +\Configure{subtitle}{\HCode{<div class="subtitle">}}{\HCode{</div>}} +\Configure{submitted}{}{\expandafter\Tg<br />} +\Configure{title}{\HCode{<h1 class="title">}}{\HCode{</h1>}} +\Css{.title{text-align:center;}} +\Configure{author} + {\IgnorePar\EndP\HCode{<div class="author">}}{\HCode{</div>}} +\Css{div.author{text-align:center;}} +\Configure{affil}{\HCode{<div class="affil"><div>}}{\HCode{</div></div>}} +\Css{.affil{text-align:center;}} +\Css{.affil div{text-align:left; + margin-right:15pt;margin-left:15pt;}} +\Configure{keywords} + {\IgnorePar\EndP\HCode{<div class="keywords"><div>}} + {\HCode{</div></div>}} +\Css{.keywords{text-align:center;}} +\Css{.keywords div{text-align:left; margin-right:15pt;margin-left:30pt; + text-indent:-15pt;}} +\Configure{subjectheadings} + {\HCode{<div class="subjectheadings"><div>}}{\HCode{</div></div>}} +\Css{.subjectheadings{text-align:center;}} +\Css{.subjectheadings div{text-align:left; + margin-right:15pt;margin-left:15pt;}} + +\Css{.abstract {margin-right:15pt;margin-left:15pt;}} +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">}\@seccntformat{section}% + \thesection\HCode{</span>}\fi} +\Configure{section}{}{} + {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="sectionHead"\a:LRdir>} + \TitleMark{. \space}} + {\HCode{</h3>}\IgnoreIndent \ShowPar \par} +\ConfigureEnv{references} + {\IgnorePar\EndP\Tg<div class="references">} + {\IgnorePar\EndP\Tg</div>} {}{} +\Css{.references p { margin: 0.35em; text-indent:-2em;margin-left:2em;}} +>>> + +%%%%%%%%%%%%%%%%% +\section{parallel} + +\<configure html4 parallel\><<< +\Configure{ParallelLText}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="ltext">}\par}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par} +\Configure{ParallelRText}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="rtext">}\par}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par} +\ConfigureEnv{Parallel}{\ifvmode\IgnorePar\fi\EndP\HCode{<section class="parallel">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</section>}\par}{}{} + +\Css{.parallel .ltext{ + width: 48\%; + float:left; +}} +\Css{.parallel .rtext{ + width: 48\%; + margin-left: 52\%; +}} +>>> + +%%%%%%%%%%%%%%%%% +\section{skak} + +\<configure html4 skak\><<< +\Configure{SkakBoard}{\Picture+{}}{\EndPicture} +>>> + +%%%%%%%%%%%%%%%%% +\section{vanilla} + +\<configure html4 vanilla\><<< +|<32 amsppt, 32,4 vanilla|> +|<32,4 vanilla|> +|<config vanilla.sty 4.0t|> +>>> + + +\<32,4 vanilla\><<< +\Configure{matrix} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="matrix">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline style="vertical-align:top;">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +\Configure{align} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="align">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline style="vertical-align:top;">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> +\<config vanilla.sty 4.0t\><<< +\Configure{heading} + {}{}{\IgnorePar\EndP\HCode{<h2 class="heading">}}{\HCode{</h2>}} +\ConfigureToc{heading} + {}{\HCode{<span class="heading">}}{}{\HCode{</span><br />}} +\Configure{subheading} + {}{}{\EndP\HCode{<h3 class="subheading">}}{.\HCode{</h3>}} +\ConfigureToc{subheading} + {}{\HCode{<span class="subheading">}}{}{\HCode{</span><br />}} +\Configure{demo} + {\IgnorePar\EndP\HCode{<div class="demo"><span class="demo">}} + {\HCode{</span>}} {\IgnorePar\EndP\HCode{</div>}} +>>> + + +\<config vanilla.sty 4.0t\><<< +\Configure{aligned} + {\EndP\HCode{<center><table\Hnewline + border="0" cellpadding="0" cellspacing="15" class="aligned">}} + {\HCode{</table></center>}\IgnorePar} + {\HCode{<tr\Hnewline style="vertical-align:top;">}}{\HCode{</tr>}} + {\HCode{<td>}} {\HCode{</td>}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{tugboat} +%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html4 tugboat\><<< +\Configure{head}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="headHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h3>}\HtmlParOn \EndNoFonts \IgnoreIndent \ShowPar \par} +\Configure{subhead}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h4 class="subheadHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h4>}\HtmlParOn \EndNoFonts \IgnoreIndent \ShowPar \par} +\Configure{subsubhead}{}{} + {\NoFonts \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h5 class="subsubheadHead"\a:LRdir>}\HtmlParOff} + {\HCode{</h5>}\HtmlParOn \EndNoFonts \IgnoreIndent \ShowPar \par} +>>> + + +\<configure html4 tugboat\><<< +\Configure{figure} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="figure">}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} +>>> + + +\<configure html4 tugboat\><<< +\Configure{verbatim} + {{\everypar{}\leavevmode}\EndP + \HCode{<div class="verbatim\:ruled">}\par\ShowPar} + {{\everypar{}\leavevmode}\EndP \HCode{</div>}\par\ShowPar} +\Configure{verb} + {\HCode{<span class="verb">}} + {\HCode{</span>}} +\Css{div.verbatim p, div.verbatim-ruled p {margin:0.2em}} +\Css{div.verbatim-ruled { border-top: 1px solid black; + border-bottom: 1px solid black; }} +>>> + + +\<configure html4 tugboat\><<< +\Configure{display-list} + {\ifvmode \IgnorePar\fi \EndP \HCode{<div class="list"><!--cols: \the\@cols-->}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\par} + {\HCode{<span class="listitem">}} + {\HCode{</span>}} +\Configure{inline-list} + {\HCode{<span class="list"><!--cols: \the\@cols-->}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</span>}\par} + {\HCode{<span class="listitem">}} + {\HCode{</span>}} +\Css{div.list p span.listitem {text-indent:-3em; margin-right:1em;}} +\Css{div.list { margin-left:3em;}} +>>> + +\<configure html4 tugboat\><<< +\Configure{rtitle} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="rtitle">}\IgnorePar} + {\HCode{</div>}\ShowPar\par} +\Configure{title} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<h2 class="title">}\IgnorePar} + {\HCode{</h2>}\IgnoreIndent\par} +\Configure{address} + {\ifx\@addressstyle\@inlinestyle + \HCode{<span class="address">}% + \else + \ifvmode \IgnorePar \fi \EndP + \HCode{<div class="address">}% + \fi } + {\ifx\@addressstyle\@inlinestyle + \HCode{</span>}% + \else + \ifvmode \IgnorePar \fi \EndP + \HCode{</div>}% + \fi } +\Configure{netaddress} + {\HCode{<span class="netaddress">}} + {\HCode{</span>}} +\Configure{author} + {\HCode{<span class="author">}} + {\HCode{</span>}} +\Configure{authorlist} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="authorlist">}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP + \HCode{</div>}\IgnoreIndent\par\ShowPar} +\Css{div.authorlist {margin-left:2em;}} +|<tugboat cmn|> +>>> + +\<tugboat cmn\><<< +\Configure{signature} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="signature">}\par\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</div>}\ShowPar\par} +\Css{div.signature p{ margin-top:0.3em; margin-bottom:0.3em;}} +\Css{div.signature { white-space:nowrap; margin-left:70\%; }} +\Configure{signaturemark} + {\HCode{<span class="signaturemark">} } + {\HCode{</span>}} +\Css{span.signaturemark {margin-top:1.5em;}} +>>> + + + +\<tugboat cmn\><<< +\Configure{issno} + {\hbox{\HCode{<span class="issno">}}} + {\hbox{\HCode{</span>}}} +\Configure{volyr} + {\hbox{\HCode{<span class="volyr">}}} + {\hbox{\HCode{</span>}}} +\Configure{volno} + {\hbox{\HCode{<span class="volno">}}} + {\hbox{\HCode{</span>}}} +>>> + +%%%%%%%%%%%%%%%%%%%%%% +\section{ltug boat/proc} +%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 ltugboat\><<< +|<quote noindent config|> +\ConfigureEnv{verbatim} + {\par}{|<try inline par|>}{}{} +\Configure{author} + {\hbox{\HCode{<span class="author">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{address} + {\hbox{\HCode{<span class="address">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{netaddress} + {\hbox{\HCode{<span class="netaddress">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{PersonalURL} + {\hbox{\HCode{<span class="PersonalURL">}}} + {\hbox{\HCode{<br /></span>}}} +\Configure{signaturemark} + {\hbox{\HCode{<span class="signaturemark">}}} + {\hbox{\HCode{</span> }}} +>>> + + +\<configure html4 ltugboat\><<< +\Configure{makesignature} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<div class="makesignature">}% + \bgroup \Configure{HtmlPar}{}{}{}{}% + \Configure{rightline}{}{}% + \IgnorePar + } + {\egroup \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +\Configure{signature} + {\def\||{\HCode{<br />}}% + \Configure{HtmlPar} + {}{\HCode{}} + {}{\HCode{}}% + } +\Css{.makesignature{margin-left:4em;}} +\Css{.signaturemark{display:block-inline;margin-left:-1.33em;}} +>>> + + + + +\<configure html4 ltugboat\><<< +|<tug boat maketitle|> +\Configure{titlex} + {\HCode{<div class="titlex">}} + {\HCode{</div>}} +\Css{div.titlex p{margin-bottom:1em;}} +|<ltugboat congif|> +>>> + + +\<ltugboat congif\><<< +\Configure{sectitle} + {\ifvmode \IgnorePar\fi + \EndP \HCode{<div class="sectitle">}% + \SaveEndP\bgroup\everypar{}} + {\egroup\RecallEndP \ifvmode \IgnorePar\fi \EndP \HCode{</div>}} +>>> + + +\<configure html4 ltugproc\><<< +|<tug proc maketitle|> +\ConfigureEnv{abstract} + {}{} {}{} +\Configure{abstract} + {\bgroup + \HCode{<div class="abstract">}\IgnoreIndent\par} + {\ifvmode\IgnorePar\fi \EndP\HCode{</div>}\egroup} +\Css{div.abstract {margin-left:1em; margin-right:1em; + text-align:left;}} +\Css{div.maketitle div.centerline {margin-top:1em;}} +>>> + +\<configure html4 ltugproc\><<< +\Configure{abstractHead} + {\bgroup + \Configure{centerline}{}{} + \NoFonts + \ifvmode \IgnorePar\fi \EndP \HCode{<h3>}% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{</h3>}% + \EndNoFonts \egroup} +>>> + + + + +%%%%%%%%%%%%%%%%% +\section{tex4ht} +%%%%%%%%%%%%%%%%% + +\<configure html4 tex4ht\><<< +|<config tex4ht|> +|<title for hypertext page|> +|<tex4ht doctype|> +>>> + + +\<config tex4ht\><<< +\:CheckOption{NoFonts} \if:Option + \NoFonts +\else + \Log:Note{to ignore CSS font decoration, use the `NoFonts' + command line option} +\fi +>>> + + + +\<config tex4ht\><<< +\Configure{HVerbatim+}{\z@}{\:nbsp} +\:CheckOption{jpg} \if:Option + \Configure{Picture}{.jpg} +\else + \Log:Note{for jpg bitmaps of pictures, use the `jpg' + command line option. |<ch bitmaps|>} +\fi +\:CheckOption{gif} \if:Option + \Configure{Picture}{.gif} +\else + \Log:Note{for gif bitmaps of pictures, use the `gif' + command line option. |<ch bitmaps|>} +\fi +>>> + +\<ch bitmaps\><<< +(Character bitmaps are controled only by `g' records of tex4ht.env and `-g' +switches of tex4ht.c) +>>> + + + +\<configure html4 tex4ht\><<< +|<tex4ht HTML|> +>>> + +\<configure html4 tex4ht\><<< +\newif\ifHCond +|<global HtmlPar|> +\NewConfigure{!P}[1]{\expandafter\concat:config\csname a:!P\endcsname{#1}} +\expandafter\let\csname a:!P\endcsname|=\relax +\Configure{!P}{} + + +\ifOption{p-indent}{% +\Css{p.noindent { text-indent: 0em }} +\Css{td p.noindent { text-indent: 0em; margin-top:0em; }} +\Css{p.nopar { text-indent: 0em; }} +\Css{p.indent{ text-indent: 1.5em }} +\Css{p{margin-top:0;margin-bottom:0}} +\Css{p.noindent + p.noindent{margin-top:1em;}} +}{% +\Css{p{margin-top:0;margin-bottom:0}} +\Css{p.indent{text-indent:0;}} +\Css{p + p{margin-top:1em;}} +\Css{p + div, p + pre {margin-top:1em;}} +\Css{div + p, pre + p {margin-top:1em;}} +} +>>> + +Enable linebreaking in long URLs + +\<configure html4 tex4ht\><<< +\Css{a { + overflow-wrap: break-word; + word-wrap: break-word; + word-break: break-word; + hyphens: auto; +}} +>>> + +\<global HtmlPar\><<< +\Configure{HtmlPar} + {\EndP\HCode{|<show input line no|><p \csname a:!P\endcsname + class="no\ifHCond par\else indent\fi" \a:LRdir>}} + {\EndP\HCode{|<show input line no|><p \csname a:!P\endcsname + class="\ifdim \parindent=\z@ no\fi indent" \a:LRdir>}} + {\:xhtml{\Tg</p>}} + {\:xhtml{\Tg</p>}}% +>>> + +\<configure html4 tex4ht\><<< +\NewConfigure{!BODY}[1]{\expandafter\concat:config + \csname a:!BODY\endcsname{#1}} +\expandafter\let\csname a:!BODY\endcsname|=\relax +\Configure{!BODY}{} +>>> + +\<configure html4 tex4ht\><<< +\NewConfigure{LRdir}[1]{\concat:config\a:LRdir{#1}} +\let\a:LRdir|=\relax +\Configure{LRdir}{} +>>> + + +\<configure html4 tex4ht\><<< +\Configure{crosslinks+} + {\IgnorePar\EndP\HCode{|<show input line no|>% + <div class="crosslinks"><p class="noindent">}} + {\HCode{</p></div>}\par\ShowPar} + {\IgnorePar\EndP\HCode{|<show input line no|>% + <div class="crosslinks"><p class="noindent">}} + {\HCode{</p></div>}\par\ShowPar} +\Css{@media print {div.crosslinks {visibility:hidden;}}} + +\Configure{halignTR} + {\HCode{ style="vertical-align:baseline;"}} +\Configure{halignTBL} +% % {t}{\HCode{ valign="top"}} +% % {b}{\HCode{ valign="baseline"}} +% % {c}{\HCode{ valign="middle"}} + {} + +\Configure{halign} + {\EndP + \PushStack\Table:Stck\TableNo + \gHAdvance\Next:TableNo by 1 + \global\let\TableNo=\Next:TableNo + \halignTB{halign}} + {\HCode{</table>}\PopStack\Table:Stck\TableNo} + {\HCode{<tr \Hnewline}\halignTR\HCode{ id="TBL-\TableNo-\HRow-">}} + {\HCode{</tr>}} + {|<td save EndP|> \HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline id="TBL-\TableNo-\HRow-\HCol">}\ShowPar\par} + {\ifvmode \IgnorePar \fi \EndP\HCode{</td>}|<td recall EndP|>} +\Configure{pic-halign}{} +\Configure{halignTB<>}{halign}{\HCode{id="TBL-\TableNo" class="halign"\Hnewline }<>} +\HAssign\Next:TableNo|=0 \global\let\TableNo=\Next:TableNo +>>> + +The following should be just under LaTeX. + +\<configure html4 tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ style="vertical-align:top; white-space:nowrap;"}} + {=}{\HCode{ style="vertical-align:baseline; white-space:nowrap;"}} + {||}{\HCode{ style="vertical-align:middle; white-space:nowrap;"}} + {_}{\HCode{ style="vertical-align:bottom; white-space:nowrap;"}} + {p}{\HCode{ style="white-space:normal; text-align:left;"}\Protect\a:HColWidth} + {m}{\HCode{ style="white-space:nowrap; text-align:left; vertical-align:middle;"}} + {b}{\HCode{ style="white-space:nowrap; text-align:left; vertical-align:baseline;"}} + {} +\NewConfigure{HColWidth}{1} +\Configure{HColWidth}{} +>>> + + +The following code allows width specifications of p-columns of tables +through the command line option `p-width'. + +The command line option activates a configuration similar to the +following ones. + + \Configure{HColWidth} + {\HCode{ style="width:\HColWidth"}} + + \Configure{HColWidth} + {\HCode{ style="width: + \ifnum \HCol=1 160\fi + \ifnum \HCol=3 500\fi + "}} + +Try the above examples with the following source under different font +sizes in the browser. + + \begin{tabular}{p{2cm}cp{3cm}} + 1 2 3 1 2 3 & x & 1 2 3 1 2 3 + \end{tabular} + +The configuration provided through the command line option `p-width' +takes to some degree into account the size of fonts in use within the +HTML displays. Yet, not all browsers react properly to the size +changes. + + + + + +\<configure html4 latex\><<< +\:CheckOption{p-width} \if:Option + |<10 em constant|> + \Configure{HColWidth} + {\tmp:dim=\HColWidth \divide\tmp:dim by \ten:Em\relax + \tmp:dim=10\tmp:dim + \Css{\#TBL-\TableNo-\HRow-\HCol + {width:\expandafter\x:Em \the\tmp:dim em;}}} +\else + \Log:Note{for width specifications of tabular p entries, use + the `p-width' command line option or a configuration similar + to \string\Configure{HColWidth}{\string\HCode + { style="width:\string\HColWidth"}}} +\fi +>>> + +\<configure html4 tex4ht\><<< +|<img src dir|> +\Configure{IMG} + {\ht:special{t4ht=<img\Hnewline src="|<a:imgdir|> }} + {\ht:special{t4ht=" alt="}} + {" } + {\ht:special{t4ht=" }} + {\ht:special{t4ht=\xml:empty>}} +\Css{a img { border-top: 0; border-left: 0; border-right: 0; }} +>>> + + + + +A change from the \verb'-' in the \verb'%' patterns of c to, say \verb'@', +requires a \verb'Font_hyphen: @' in the \verb'.lg' file for a match in the +css output of t4ht. + +\<configure html4 tex4ht\><<< +\Configure{htf}{0}{+}{<span\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>} +|<img src dir|> +\Configure{htf}{1}{+}{<img\Hnewline + src="|<a:imgdir|> }{" alt="}{" class="}{\%s}{-\%d}{x-x-\%x}{" />} +\Configure{htf}{3}{+}{<img\Hnewline + src="|<a:imgdir|> }{" alt="}{" class="\%s-}{\%s}{-\%d}{x-x-\%x}% + {" style="text-align:middle" />} +>>> + + +\<configure html4 tex4ht\><<< +\Configure{htf}{4}{+}{<span\Hnewline + class="}{}{}{}{}{small-caps">}{</span>} +\Configure{htf}{6}{+}{<u\Hnewline + class="}{}{}{}{}{underline">}{</u>} +>>> + +% \Configure{htf}{4}{+}{<span\Hnewline +% class="}{}{}{}{}{small-caps">}{</span>} +% \Configure{htf}{6}{+}{<span\Hnewline +% class="}{}{}{}{}{underline">}{</span>} + + +\<configure html4 tex4ht\><<< +\Configure{htf}{8}{+} + {<sup class="htf">}{}{}{}{}{}{</sup>} +\Configure{htf}{10}{+} + {<span class="htf-cmbx">}{}{}{}{}{}{</span>} +\Configure{htf}{12}{+} + {<span\Hnewline class="htf-calligraphy">}{}{}{}{}{}{</span>} +\Configure{htf}{14}{+} + {<span\Hnewline class="htf-italic">}{}{}{}{}{}{</span>} +\Configure{htf}{16}{+} + {<span\Hnewline class="htf-bold">}{}{}{}{}{}{</span>} +\Configure{htf}{18}{+} + {<span\Hnewline class="htf-calligraphy-bold">}{}{}{}{}{}{</span>} +\Configure{htf}{20}{+} + {<span\Hnewline class="htf-flip-hor">}{}{}{}{}{}{</span>} +\Configure{htf}{22}{+} + {<sub class="htf">}{}{}{}{}{}{</sub>} +\Configure{htf}{24}{+}{<span\Hnewline + class="}{}{}{}{}{small-caps">}{</span>} +\Configure{htf-css}{4}{.small-caps{font-variant: small-caps; }} +\Configure{htf-css}{10}{.htf-cmbx {font-weight: bold; font-style:normal;}} +\Configure{htf-css}{12}{.htf-calligraphy {font-family:cursive}} +\Configure{htf-css}{14}{.htf-italic {font-style: italic;}} +\Configure{htf-css}{16}{.htf-bold {font-weight: bold;}} +\Configure{htf-css}{12}{.htf-calligraphy-bold {font-family:cursive ; + font-weight: bold; }} +>>> + + + +\verb'\Configure{htf}{0}{+}{<!--span class="}{\%s}{-\%s}{--\%d}{}{"-->}{<!--/span-->}' caused netscape to +loose spaces between comments. + +\<configure html4 tex4ht\><<< +\Configure{@Picture}{\:class} +\def\:class#1{ class="#1" + \expandafter\ifx\csname a:@#1\endcsname\relax\else + \csname a:@#1\endcsname\fi} +>>> + +\<contribute to picmath of 4.0t\><<< +\NewConfigure{@buildrelover}{1} +\Configure{@buildrelover}{align="middle"} +\NewConfigure{@doteq}{1} +\Configure{@doteq}{align="middle"} +\NewConfigure{@underbrace}{1} +\NewConfigure{@frac}{1} +\Configure{@frac}{align="middle"} +\NewConfigure{@left}{1} +\Configure{@left}{align="middle"} +>>> + + + + + +\<configure html4 tex4ht\><<< +\Css{center { margin-top:1em; margin-bottom:1em; }} +\Css{td center { margin-top:0em; margin-bottom:0em; }} +>>> + +\<configure html4 tex4ht\><<< +\NewConfigure{Canvas}[4]{\ht:special{t4ht"% + *<span\Hnewline class="Canvas">% + *X<span style="position:relative;\Hnewline + width:\%.2f#4;"></span></span>% + **<span\Hnewline style="position:absolute; left:\%.2f#4; + top:\%.2f#4;"\Hnewline class="Canvas-xy"><span\Hnewline + class="Canvas-char">% + *</span></span>% + *<span class="Canvas-HR"\Hnewline style="position:absolute; + left:\%.2f#4;top:\%.2f#4;width:\%.2f#4;" + ><hr\Hnewline style="height:\%.2f#4;"></span>% + *#1*#2*#1*#2*#3}} +\Configure{Canvas}{0.00000290646}{0.0}{0.5}{ex} +\Css{.Canvas { position:relative; }} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Subdirectories for Images} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<a:imgdir\><<< +\a:imgdir >>> + +\<img src dir\><<< +\ifx \a:imgdir\:UnDef + \let\a:imgdir=\empty + \catcode`\:=12 + \expandafter + \def\csname :temp\endcsname#1imgdir:#2,#3|<par del|>{% + \if !#2!\else \expandafter + \def\csname a:imgdir\endcsname{#2}\fi} + \expandafter\csname :temp\expandafter\endcsname + \Preamble ,imgdir:,|<par del|>% + \catcode`\:=11 + \Log:Note{for addressing images in + a subdirectory, use the command line option `imgdir:.../'} +\fi +>>> + +A = instead of \verb+->+ works well on Windows NT but unfortunately + there's a problem with Windows 98. This OS insists on seeing = as a + delimiter and reports an error. + + + +\<configure html4 tex4ht2\><<< +\ifx \a:imgdir\empty\else + \let\GIF:NAME=\gif:name + \def\gif:name#1{% + \let\:temp=\GIF:NAME + \ifx \gif:nm\cond:imgs + \def\:next{\edef\:tempa{#1}\expandafter\I:images \:tempa/....}% + \else + \def\:next{\GIF:NAME{#1}}% + \fi \:next} + + \def\cond:imgs{\edef\gif:nm} + + \def\I:images#1/#2....{% + \edef\:next{\noexpand\:temp{\:tempa}}% + \if .#2.\else \edef\:next{\noexpand\no:images{\:tempa}}\fi + \:next} + \def\no:images#1{\let\a:imgdir=\empty \:temp{#1}} +\fi +>>> + +Test file: + +\begin{verbatim} +\documentclass{article} +\begin{document} +\Picture{xx.png} +\Picture{http://wwww.foo.goo/xx.png} + +With image: $\left( x_{n}\right) \alpha_m$. + +\end{document} +\end{verbatim} + + + + + + + +%%%%%%%%%%%%%%%% +\section{th4} +%%%%%%%%%%%%%%%% + +\<configure html4 th4\><<< +|<th4 for non-private use|> +\:CheckOption{th4}\if:Option \else \expandafter\endinput\fi +|<th4 sections|> +|<th4 tocs|> +|<th4 lists|> +|<th4 tables|> +|<th4 verbatim|> +|<th4 columns|> +|<th4 index|> +>>> + + +\<th4 for non-private use\><<< +\:CheckOption{javascript} + \if:Option \else\:CheckOption{th4}\fi +\if:Option + \Configure{JavaScript} + {\HCode{<script type="text/JavaScript" ><!--\Hnewline}} + {\HCode{//-->\Hnewline </script>}} +\fi +>>> + +Should we go for + +\begin{verbatim} +<script type="text/javascript"><!--//--><![CDATA[//><!-- + ... +//--><!]]></script> +\end{verbatim} +\Link[http://www.hixie.ch/advocacy/xhtml]{}{}http://www.hixie.ch/advocacy/xhtml\EndLink + +\<th4 for non-private use\><<< +\:CheckOption{draw} \if:Option \:CheckOption{th4} \if:Option + \Configure{Fig} + {\ifx \AltFig\empty \Picture*{ \a:@Picture{Fig}}% + \else \Picture*[\AltFig]{ \a:@Picture{Fig}}\fi} + {\EndPicture} +\fi \fi +>>> + + +\<th4 columns\><<< +\Configure{Columns} + {\IgnorePar\EndP + \HCode{<table \Hnewline cellspacing="15"><tr style="vertical-align:top;">}} + {\HCode{</tr></table>}} + {\HCode{<td>}\ColMag{1.03}} + {\IgnorePar\EndP\HCode{</td>}} +>>> + +\<th4 index\><<< +\:CheckOption{index}\if:Option + \Configure{index} + {\bgroup + \Configure{Columns} + {\IgnorePar\EndP + \HCode{<table \Hnewline class="index" width="100\%" + cellspacing="15"><tr style="vertical-align:top;">}} + {\HCode{</tr></table>}} + {\HCode{<td>}\ColMag{1.1}} + {\IgnorePar\EndP\HCode{</td>}} + \Columns{2}\IndexFonts} + {\EndColumns \egroup} + {\bgroup\IgnorePar\EndP + \expandafter\ifx \csname prev:A\endcsname\relax + \else \hfil\break \expandafter\Tg<br />\par\IgnorePar \fi \IndexSec} + {\egroup~~~~} + {\bgroup\hfil\break\expandafter\Tg<br />~~~}{\egroup~~~~} + {~}{} + \def\Idx:ch{0} + \def\IndexSec#1{% + \tmp:cnt=`#1\relax + \ifnum \tmp:cnt>`Z\advance\tmp:cnt by -32 \fi + \ifnum \tmp:cnt<`A\else \ifnum \tmp:cnt>`Z \else + \ifnum \Idx:ch<\tmp:cnt + \bgroup + \Configure{centerline} + {\HCode{<div\Hnewline class="IndexSec">}}{\HCode{</div>}} + \leftline{\bf \char\tmp:cnt }% + \global\let\prev:A|=\:UnDef + \xdef\Idx:ch{\the\tmp:cnt}% + \egroup + \fi + \fi \fi #1% + } + \Css{.IndexSec {margin-top:1em; margin-bottom:0.5em;}} +\fi +>>> + + +\<th4 sections\><<< +\Configure{Part}{}{}{% + \html:rightskip + \bgroup + \html:rightskip \ht:everypar{} + \IgnorePar\EndP\HCode{<h1 class="PartHead">}\HtmlParOff} + {\HCode{</h1>}\HtmlParOn\IgnoreIndent \egroup\par\ShowPar \IgnoreIndent} +\Configure{LikeSection}{}{} + {\IgnorePar \EndP\HCode{<h3 class="LikeSectionHead">}} + {\HCode{</h3>}\IgnoreIndent + |<addr for Tag and Ref of Sec|>% + \par \IgnoreIndent + } +\ConfigureMark{Section} + {\theSection} +\Configure{Section} + {}{} + {\IgnorePar\EndP\HCode{<h3 class="SectionHead">}% + \gHAdvance\SectionCounter |by 1 \TitleMark\space + }{\HCode{</h3>}\IgnoreIndent + |<addr for Tag and Ref of Sec|>% + \par \IgnoreIndent + } +\Configure{SubSection} + {}{} + {\par \IgnorePar\EndP\HCode{<h3 class="SubSectionHead">}} + {\HCode{</h3>}\IgnoreIndent \ShowPar} +>>> + + + +\<th4 sections\><<< +\ConfigureMark{Chapter} + {Chapter \theChapterCounter} +\Configure{Chapter} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="ChapterHead"\a:LRdir>}% + \TitleMark{\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\IgnorePar} +\ConfigureMark{Appendix}{Appendix \theChapterCounter} +\Configure{Appendix} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="AppendixHead"\a:LRdir>}% + \TitleMark {\HCode{<br />}}} + {\HCode{</h2>}\IgnoreIndent\IgnorePar} +\Configure{LikeChapter} + {}{} + {\IgnorePar\EndP\HCode{<h2 class="LikeChapterHead"\a:LRdir>}\noindent + \bgroup \def\uppercase##1{##1}} + {\egroup \HCode{</h2>}\IgnoreIndent\IgnorePar } +>>> + +\<th4 sections\><<< +\Configure{+CutAt}{Chapter}{[}{] } +\Configure{+CutAt}{Section}{[}{] } +\Configure{+CutAt}{LikeSection}{[}{] } +\Configure{+CutAt}{SubSection}{[}{] } +>>> + + +\<th4 tocs\><<< +\ConfigureToc{Chapter} + {\HCode{<span class="ChapterToc" \a:LRdir>}} + {~} + {} + {\HCode{</span><br />}} +\ConfigureToc{Section} + {\HCode{<span class="SectionToc" \a:LRdir>}~~~} + {~} + {} + {\HCode{</span><br />}} +\ConfigureToc{LikeSection} + {} + {\HCode{<span class="LikeSectionToc" \a:LRdir>}~~~} + {} + {\HCode{</span><br />}} +\ConfigureToc{SubSection} + {} + {\HCode{<span class="SubSectionToc" \a:LRdir>}~~~~~~} + {} + {\HCode{</span><br />}} +>>> + + +\<th4 verbatim\><<< +\Configure{Verbatim} + {\ifvmode \IgnorePar\fi + \HAssign\Verb:N = 0 + \EndP\HCode{<div class="Verbatim">}} + {\IgnorePar\HCode{</div>}\par\ShowPar} + {\HAdvance\Verb:N by 1 \ifnum \Verb:N>1 \HCode{<br />}\fi} + {\:nbsp} +\Css{div.Verbatim { font-family: monospace,monospace; white-space: nowrap; }} +\Css{body .Verbatim { margin: 1em; }} +>>> + +\<th4 lists\><<< +\Configure{buttonList+} + {\ifnum \ListCounter>1 \IgnorePar\EndP\HCode{<hr\xml:empty>}\fi + \ShowPar\par\IgnoreIndent + } + {. #1\ShowPar} {\IgnorePar\EndP} {\ListCounter} +>>> + +\<th4 lists\><<< +\Configure{UList} + {\IgnorePar\EndP\def\:tempB{disc}% + \ifx\:tempA\:tempB \else \def\:tempB{square}\fi + \ifx\:tempA\:tempB \else \def\:tempB{circle}\fi + \hbox{\IgnorePar\EndP\HCode{<ul + \ifx\:tempA\:tempB type="\:tempA" \fi \:UL:>}}} + {\ht:everypar{}\EndP\HCode{</li></ul>}\ShowPar\par} + {\ifnum \ListCounter>1 \EndP\HCode{</li>}\fi \hfil\break \HCode{<li>}} +\Configure{OList} + {\IgnorePar\EndP\hbox{\HCode{<ol + \ifx \:temp\empty \else type="\:temp" \fi + \:OL:>}}} + {\ht:everypar{}\EndP + \HCode{\ifnum \ListCounter=0<li>\fi </li></ol>}\ShowPar\par} + {\ifnum \ListCounter>1 \EndP\HCode{</li>}\fi \hfil\break \HCode{<li>}} +>>> + + +\<th4 lists\><<< +\Configure{Item}{}{\par}% +\Configure{DList} + {\IgnorePar\EndP\HCode{<dl \:DL:>}} + {\ht:everypar{}\EndP\HCode{\End:dd</dl>}% + \ShowPar\par } + {\IgnorePar\EndP\ifnum \ListCounter>1 \HCode{</dd>}\fi + \HCode{<dt>}} + {\HCode{</dt><dd>}\ShowPar \def\End:dd{</dd>}\hfil\break} +\Configure{buttonList}{}{} + {}{.\ #1 }{\ListCounter} +>>> + + + +\<th4 tables\><<< +\HAssign\TableNo=0 +\Configure{HTable} + {\gHAdvance\TableNo by 1 + \ht:everypar{}\EndP\HCode{<table id="TBL-\TableNo" + \Hnewline\TABLE:\:HTable:>}% + \def\BR{\HCode{<br />}}} + {\HCode{</table>}} + {\HCode{<tr \:TR>}}{\HCode{</tr>}} + {\ht:everypar{}\HCode{<\TD:typ\TD:more\Hnewline>}} + {\EndP\ht:everypar{}\HCode{</\TD:typ>}} +\let\:HTable:|=\empty +\Configure{HTable+} + {B}{ cellspacing="0" cellpadding="3pt" frame="border" } + {<}{ style="text-align:left;" } + {>}{ style="text-align:right;" } + {-}{ style="text-align:center;" } + {^}{ style="vertical-align:top;" } + {||}{ style="vertical-align:middle;" } + {_}{ style="vertical-align:bottom;" } + {=}{ style="vertical-align:baseline;" } + {}{} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +>>> + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\section{nicefrac} +%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 nicefrac\><<< +\Configure{nicefrac} + {\HCode{<sup class="nicefrac">}} + {\HCode{</sup>}/\HCode{<sub class="nicefrac">}} + {\HCode{</sub>}} +>>> + + +\<configure html4 bibtopic\><<< +\ConfigureEnv{btSect} + {\ifvmode \IgnorePar\fi \EndP\HCode{<div class="btSect">}} + {\ifvmode \IgnorePar\fi \EndP\HCode{</div>}} + {}{} +>>> + + + + + + + + +\section{ntheorem} + +\<configure html4 ntheorem\><<< +|<32,4 ntheorem|> +>>> + +\<32,4 ntheorem\><<< +\ConfigureEnv{Anmerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Anmerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Beispiel} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Beispiel">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Bemerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Bemerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Beweis} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Beweis">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Corollary} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Corollary">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Definition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Definition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Example} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Example">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Korollar} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Korollar">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Lemma} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Lemma">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Proof} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Proof">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Proposition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Proposition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Remark} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Remark">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Satz} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Satz">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{Theorem} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="Theorem">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{anmerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="anmerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{beispiel} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="beispiel">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{bemerkung} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="bemerkung">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{beweis} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="beweis">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{corollary} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="corollary">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{definition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="definition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{example} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="example">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{korollar} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="korollar">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{lemma} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="lemma">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{proof} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="proof">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{proposition} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="proposition">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{remark} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="remark">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{satz} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="satz">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +\ConfigureEnv{theorem} + {\ifvmode\IgnorePar\fi \EndP + \HCode{<div class="theorem">}} + {\ifvmode\IgnorePar\fi \EndP \HCode{</div>}} {}{} +>>> + +\section{bussproofs} + +\<configure html4 bussproofs\><<< +\Configure{DisplayProof}{\Picture*{}}{\EndPicture} +>>> + +\section{proof} + +\<configure html4 proof\><<< +\Configure{infer}{\Picture*{}}{\EndPicture} +>>> + +\section{hyperref} + +\<config hyperref form 4\><<< +\Configure{Form} + {\IgnorePar\EndP\leavevmode \Tg<form \Hnewline \Attributes>} + {\IgnorePar\EndP\Tg</form>} +>>> + +\<configure html4 hyperref\><<< +|<config hyperref form 4|> +|<hyperref shared|> +|<hyperref TextField|> +|<hyperref multiline|> +|<hyperref password|> +|<hyperref radio|> +|<hyperref on...|> +\NewConfigure{::action}{1} +\Configure{::action} + {\edef\Attributes{\Attributes\space action="\AttributeVal"}} +\NewConfigure{::method}{1} +\Configure{::method} + {\edef\Attributes{\Attributes\space method="\AttributeVal"}} +\NewConfigure{PushButton::}{1} +\Configure{PushButton::} + {\leavevmode\Tg<input type="button" \Attributes\space/>} +\NewConfigure{Reset::}{1} +\Configure{Reset::} + {\leavevmode\Tg<input type="reset" \Attributes\space/>} +\NewConfigure{Submit::}{1} +\Configure{Submit::} + {\leavevmode\Tg<input type="submit" \Attributes\space/>} +\NewConfigure{CheckBox::}{2} +\Configure{CheckBox::} + {\leavevmode\Tg<input type="checkbox" \Attributes\space/>}{} +\NewConfigure{CheckBox::checked}{2} +\Configure{CheckBox::checked} + {\leavevmode\Tg<input type="checkbox" checked="checked" + \Attributes\space/>}{} +\HAssign\form:id=0 +>>> + +\<hyperref shared\><<< +\NewConfigure{::value}{1} +\Configure{::value} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +\NewConfigure{::name}{1} +\Configure{::name} + {\edef\Attributes{\Attributes\space name="\AttributeVal"}} +\NewConfigure{::default}{1} +\Configure{::default} + {\let\::default=\AttributeVal} +\def\get:int#1.#2//{\tmp:cnt=#1 } +>>> + +\<\><<< +\NewConfigure{::borderwidth}{1} +\Configure{::borderwidth} + {\Css{div\#form-\form:id {border-width: \AttributeVal; + border-style:solid;}}} +\NewConfigure{::bordercolor}{1} +\Configure{::bordercolor} + {\expandafter\get:colors\AttributeVal//% + \Css{div\#form-\form:id {border-color:\AttributeVal}}} +\def\get:colors#1 #2 #3//{% + \get:color{#1}\edef\AttributeVal{\the\tmp:cnt\%}% + \get:color{#2}\edef\AttributeVal{\AttributeVal, + \the\tmp:cnt\%}% + \get:color{#3}\edef\AttributeVal{rgb(\AttributeVal, + \the\tmp:cnt\%)}% +} +\def\get:color#1{% + \tmp:dim=#1pt \multiply\tmp:dim by 100 + \expandafter\get:int\the\tmp:dim//} +>>> + + + +\<hyperref on...\><<< +\def\:tempc#1{% + \NewConfigure{::#1}{1}% + \Configure{::#1}% + {\edef\Attributes{\Attributes\space #1="\AttributeVal"}}} +\:tempc{onclick} +\:tempc{onblur} +\:tempc{onchange} +\:tempc{onclick} +\:tempc{ondblclick} +\:tempc{onfocus} +\:tempc{onkeydown} +\:tempc{onkeypress} +\:tempc{onkeyup} +\:tempc{onmousedown} +\:tempc{onmousemove} +\:tempc{onmouseout} +\:tempc{onmouseover} +\:tempc{onmouseup} +\:tempc{onselect} +>>> + +\<hyperref TextField\><<< +\NewConfigure{TextField::}{2} +\Configure{TextField::}{}{ \Tg<input type="text" \Attributes />} +\NewConfigure{TextField::width}{1} +\Configure{TextField::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space size="\the\tmp:cnt"}} +\NewConfigure{TextField::default}{1} +\Configure{TextField::default} + {\edef\Attributes{\Attributes\space value="\AttributeVal"}} +>>> +\<hyperref multiline\><<< +\NewConfigure{TextField::multiline}{2} +\Configure{TextField::multiline} + {} + { \Tg<textarea + \Attributes>\expandafter\set:ln\multiline:value,|<par del|>% + \global\let\multiline:value=\empty \Tg</textarea>} + +\let\multiline:value=\empty +\def\set:ln#1,#2|<par del|>{#1% + \def\:temp{#2}\ifx \:temp\empty \else + \hfil\break \def\:temp{\set:ln#2|<par del|>}% + \fi \:temp} + +\NewConfigure{multiline::value}{1} +\Configure{multiline::value} + {\let\multiline:value=\AttributeVal} + +\NewConfigure{multiline::width}{1} +\Configure{multiline::width} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space cols="\the\tmp:cnt"}} + +\NewConfigure{multiline::height}{1} +\Configure{multiline::height} + {\tmp:dim=\AttributeVal \divide\tmp:dim by 6 + \expandafter\get:int\the\tmp:dim//% + \edef\Attributes{\Attributes\space rows="\the\tmp:cnt"}} +>>> + +\<hyperref password\><<< +\NewConfigure{TextField::password}{2} +\Configure{TextField::password} + {}{\Tg<input type="password" \Attributes />} +>>> + +\<hyperref shared\><<< +\def\Default:Checked#1{% + \ifx #1\Un:Def \let\:temp=\empty \else + \let\:temp=\relax + \let\:tempa=\relax + \edef\:temp{\def\:temp####1#1#1####2//{\def\:temp{####2}}% + \:temp \AttributeVal #1=#1#1//% + \def\:tempa####1=####2//{\def\noexpand\AttributeVal{####1}}% + \:tempa\AttributeVal=//}% + \:temp + \fi +} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::radio}{5} +\Configure{ChoiceMenu::radio} + {\IgnorePar\EndP\leavevmode + \Tg<div id="form-\form:id">\gHAdvance\form:id by 1 } + { }{\IgnorePar\EndP\Tg</div>} + {\Default:Checked\radio::default + \Tg<input\Hnewline type="radio" + \ifx \:temp\empty\else checked="checked" \fi + \Attributes\space />} + {} +\NewConfigure{radio::default}{1} +\Configure{radio::default} + {\let\radio::default=\AttributeVal} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::combo}{5} +\Configure{ChoiceMenu::combo} + {} + {~\Tg<select\Hnewline \Attributes \Hnewline size="1">} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} + {\Tg</option>} +\NewConfigure{combo::default}{1} +\Configure{combo::default} + {\let\combo::default=\AttributeVal} +>>> + +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::popdown}{5} +\Configure{ChoiceMenu::popdown} + {}{\HCode{\Hnewline <select \Attributes \Hnewline size="1">}} + {\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +>>> + +The \verb'size="1"' makes the select a popout memnu +\<hyperref radio\><<< +\NewConfigure{ChoiceMenu::}{5} +\Configure{ChoiceMenu::} + {}{\HCode{\Hnewline <select\Hnewline \Attributes>}}{\Tg</select>} + {\Tg<option \ifx\::default\AttributeVal selected="selected"\fi + \Hnewline>} {\Tg</option>} +\NewConfigure{::menulength}{1} +\Configure{::menulength} + {\edef\Attributes{\Attributes\space size="\AttributeVal"}} +>>> + + +\<configure html4 hyperref\><<< +\ifx \@baseurl\@empty \else + \Configure{@HEAD} + {\HCode{<base href="\:baseurl" />}} + \let\:baseurl\@baseurl + \let\@baseurl=\@empty +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{web} +%%%%%%%%%%%%%%%%%%%% + +\<configure html4 web\><<< +\Configure{webversion} {\\} {} +\Configure{webuniversity} + {\Tg<div class="webuniversity">} {\Tg</div>} +\Css{div div.webuniversity {color : rgb(0\%,0\%,80\%); + margin-bottom: 1em; text-align: center;}} + +\Configure{maketitle} + {\IgnorePar\EndP\par\Tg<div class="maketitle">} + {\IgnorePar\EndP\par\Tg</div>} +\Css{div.maketitle {text-align: center; + margin-left: 3em; margin-right: 3em; }} + +\Configure{HColor}{webgreen}{rgb(0\%,50\%,0\%)} +\Configure{HColor}{webbrown}{rgb(60\%,0\%,0\%)} +\Configure{HColor}{webyellow}{rgb(98\%,92\%,73\%)} +\Configure{HColor}{webgray}{rgb(75.3\%,75.3\%,75.3\%)} +\Configure{HColor}{webblue}{rgb(0\%,0\%,80\%)} +>>> + +\section{exerquiz} + +\<configure html4 exerquiz\><<< +|<32,4 exerquiz|> +|<4 exerquiz|> +>>> + +% Edit 2021: The JavaScript stuff defined in exerqz.4ht +% respective it's HTML configuration below doesn't work +% at all. It even results in fatal compilatio error. +% I've removed the following line that introduces +% this JavaScript code. + +%\Configure{@HEAD}{\input exerqz.4ht } + +\<32,4 exerquiz\><<< +\Configure{Form}{}{} +\Css{.onClick {color:green;}} +\Configure{TextField::}{}{% + \IgnorePar \EndP + \HCode{<form action="." name="form\quiz@total"><input + type="text"\Hnewline \Attributes /></form>}% +} +\Configure{javascript}{JavaScript:} +>>> + +\<32,4 exerquiz\><<< +\ifx \eq@sqrtmsg\:UnDef + \def\eq@sqrtmsg{"Right!"} +\fi +\ifx \eq@sqwgmsg\:UnDef + \def\eq@sqwgmsg{"Wrong!"} +\fi +\Configure{shortquiz} + {(\alph{quizno})} + {alert(\eq@sqrtmsg,3);} + {alert(\eq@sqwgmsg,3);} +\Configure{quiz} + {(\alph{quizno})} + {qthis=this; + ProcessQuestion (\ANS,"\alph{quizno}",\thequestionno, + 1,"\eq@bqlabel",\Quiz:N)} + {InitializeQuiz("\quiz@total", + \ifeq@nocorrections0\else1\fi,\Quiz:N,\LikeRef{ans-\Quiz:N}, + "(",")")} + {QuizEnd("\:bqlabel",\thequestionno,"\quiz@total",\Quiz:N)} + {Corrections("\eq@RC","\eq@AC",\Quiz:N)} +\Configure{quiz*} + {[]} + {qthis=this; + ProcessQuestion (\ANS,"[]",\thequestionno, + 0,"\eq@bqlabel",\Quiz:N)} + {InitializeQuiz("\quiz@total", + \ifeq@nocorrections0\else1\fi,\Quiz:N, + \LikeRef{ans-\Quiz:N},"","")} +>>> + +\<-NOPE\><<< +\Configure{quiz*} + {qthis=this; + ProcessQuestion(\ANS,"\alph{quizno}",\thequestionno, + 0,"\eq@bqlabel",\Quiz:N)} +>>> + + +\<32,4 exerquiz\><<< +\ConfigureEnv{shortquiz} + {\IgnorePar\EndP\leavevmode} {} {}{} +\Configure{ReturnTo}{\begin{flushright}}{\end{flushright}} +>>> + +\<4 exerquiz\><<< +\ConfigureList{questions}% + {\EndP\HCode{<ol type="1" class="questions"\Hnewline + >}|<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</li></ol>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="questions">}\AnchorLabel} +>>> + + + +\<4 exerquiz\><<< +\def\a:temp#1#2{% + \ifOption{#2}{\def\a:charset{#2}}{} + \def\:tempa{#1}\ifx \eqOutOf\:tempa + \def\A:charset{#2}\ifx \A:charset\empty\else + \def\A:charset{#2}% + \fi\fi} +\a:temp{sur}{charset=iso-8859-2} +\a:temp{von}{charset=iso-8859-2} +>>> + + + +\<exerqz\><<< +% exerqz.4ht (|version), generated from |jobname.tex +% Copyright 2009-2015 TeX Users Group +% Copyright |CopyYear.1999. Eitan M. Gurari, Donald P. Story +|<TeX4ht copywrite|> +|<exerqz's vars|> +|<predefined exerquiz javascript|> +>>> + +\<predefined exerquiz javascript\><<< +\JavaScript-$ +var QuizInitialized; +var EndQuizPushed; +var CurrentQuizNo; +var Responses; +var ResponsesAddr; +var Cor; +var CorAddr; +var qthis; +var prev_notify; +function InitializeQuiz(qtfield,mark,quizN,ansN,lbrc,rbrc) { + Score=0; + QuizInitialized=1; + CurrentQuizNo=quizN; + eval( 'document.form'+qtfield+'.'+qtfield+'.value="$eqScore";' ) + RightWrong=new Array(); + |<hide sol|> + Responses=new Array(); + ResponsesAddr=new Array(); + |<hide cor|> + Cor=new Array(); + CorAddr=new Array(); + EndQuizPushed=0; + for(var i=1; i<=ansN; i++){ + RightWrong[i]=0; + } +} +\EndJavaScript +>>> + +\<show sol\><<< +if( ResponsesAddr[probno] != null ){ + if (notify == 0 ) { + ResponsesAddr[probno].value=Responses[probno]; + } else { + ResponsesAddr[probno].value="("+Responses[probno]+")"; +} } +qthis.value = "#"; ResponsesAddr[probno]=qthis; +>>> + +\<hide sol\><<< +for(var i in Responses){ + if (prev_notify == 0 ) { + ResponsesAddr[i].value=Responses[i]; + } else { + ResponsesAddr[i].value="("+Responses[i]+")"; +} } +>>> + +% if( Responses != null ){ +\<record cor\><<< +var k=Cor.length; +eval('Cor[k]=thisform'+quizN+'.ans'+quizN+'x'+i+'.value'); +eval('CorAddr[k]=thisform'+quizN+'.ans'+quizN+'x'+i); +>>> +\<hide cor\><<< +for(var i in Cor){ + CorAddr[i].value=Cor[i]; +} +>>> + +% if( Cor != null ){ + +\<predefined exerquiz javascript\><<< +\JavaScript +function href(addr) { top.location.href=addr; } +\EndJavaScript +>>> + +% function href(addr) { window.navigate(addr); } + + +\<predefined exerquiz javascript\><<< +\JavaScript +function Corrections(lbl1,lbl2,quizN) { + if ( (EndQuizPushed == 1) && ( CurrentQuizNo == quizN ) ){ + for(var i in RightWrong){ + if( (RightWrong[i]==0) ){ + |<record cor|> + eval('thisform'+quizN+'.ans'+quizN+'x'+i+'.value= "*"'); + } } +} } +\EndJavaScript +>>> + +\<32,4 exerquiz\><<< +\writesixteen{% +***********************************************************\Hnewline +The `\eq@CA' button fails under Netscape, \Hnewline +due to a code of the following form.\Hnewline +\Hnewline +<html><head><title>?\Hnewline +\space \Hnewline +\space \space \space \Hnewline +\Hnewline +\space \space \Hnewline +\space \space \space \Hnewline +\space \space \space \Hnewline +\space \space \space \Hnewline +\Hnewline + \Hnewline + \Hnewline + \Hnewline +\Hnewline +If you know how to fix the function f() above for Netscape,\Hnewline +without changing the id attribute names, please consider\Hnewline +emailing the fix to gurari@cse.ohio-state.edu. Thanks\Hnewline +***********************************************************} +>>> +\<<< +\JavaScript +function LinkTo(addr) { +} +\EndJavaScript +>>> + +\<<< +\def\eqXInitQuizMsg{\hbox{% + \let\noexpand|=\string + \csname eq@InitQuizMsg\endcsname}} +\expandafter\ifx \csname eq@InitQuizMsg\endcsname\relax + \expandafter\def\csname eq@InitQuizMsg\endcsname{ + "You must initialize the Quiz! Click on "+bqlabel} +\fi +\def\eqXQuizTotalMsg{\hbox{% + \let\noexpand|=\string + \def\thequestionno{"+thequestionno+"}% + \csname eq@QuizTotalMsg\endcsname}} +\expandafter\ifx \csname eq@QuizTotalMsg\endcsname\relax + \expandafter\def\csname eq@QuizTotalMsg\endcsname{"Score: ' + +Score +' out of '+thequestionno+'"} +\fi +\def\eqXMadeChoice{\hbox{% + \let\noexpand|=\string + \csname eq@MadeChoice\endcsname}} +\expandafter\ifx \csname eq@MadeChoice\endcsname\relax + \expandafter\def\csname eq@MadeChoice\endcsname{ + "You have already made a choice. Your choice was (" + +Responses[probno]+")." + +" Do you want to change it?"} +\fi +\expandafter\ifx \csname eqScore\endcsname\relax + \def\eqScore{Score:} +\fi +>>> + +The \verb'Wollen Sie dies \noexpand\344ndern?' is a problem because it +takes the \verb'\344' into \verb'44'. A \verb'\string' will properly +produce \verb'\344'; hence, the above dirty trick. + +\begin{verbatim} +Doesn't IE escape in the way that Acrobat JavaScript does? + +Another possibility is to use String.fromCharCode() + +Convert Octal \344 to decimal 228, then use +String.fromCharCode(228) + + + How to deliver browser specific content using JavaScript + + + + +\end{verbatim} + +\<<< +\JavaScript-$ +function QuizEnd(bqlabel,thequestionno,quiztotal,quizN){ + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + eval( 'document.form'+quiztotal+'.'+quiztotal+ + '.value=$eqXQuizTotalMsg'); + QuizInitialized=-1; + EndQuizPushed=1; +} } +\EndJavaScript + +\JavaScript-$ +function ProcessQuestion + (key,letterresp,probno,notify,bqlabel,quizN) { + if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){ + alert($eqXInitQuizMsg,3); + } else { + | + prev_notify = notify; +} } +\EndJavaScript +>>> + +\<<< +if (Responses[probno] == null) { + if (key==1) { + Score++; + RightWrong[probno]=1; + } + else + RightWrong[probno]=0; + | + Responses[probno]=letterresp; +} +else { + if (notify==0) + User=true; + else + User=confirm($eqXMadeChoice); + if (User) { + if (RightWrong[probno]==1) { + if (key==0) { + Score -= 1; + RightWrong[probno]=0; + | + Responses[probno]=letterresp; + } + } + else { + if (key==1) { + Score++; + RightWrong[probno]=1; + | + Responses[probno]=letterresp; + } + else { + RightWrong[probno]=0; + | + Responses[probno]=letterresp; + } + } + } +} +>>> + + + + + + + + + + + +\section{tex4ht} + +\<<< +\Configure{TITLE+}{\HCode{\jobname.\:html}} +>>> + +\<0,32,4 latex\><<< +\ifTag{TITLE+}{\Configure{TITLE+}{\LikeRef{TITLE+}}}{} +>>> + +Was \verb'\ifTag{TITLE+}{\Configure{TITLE+}{\HCode{\LikeRef{TITLE+}}}}{}', +but the \verb'\HCode' leaves \verb'\Protect' in for the latter comamnds which arrive +to the title--the original motivation for the \verb'\HCode' was to +protect the title from undesirable tags. Something like \verb+H\`ello+ can +send it. It now sems to be more trouble than help. + + + + +\<config tex4ht\><<< +|<0,32,4 preambles|> +\ifx \a:FontCss:\:UnDef + \Configure{FontCss}{Font\string_Css##1} + {Font\string_Css\string_Plus\space##1} +\fi +\expandafter\ifx \csname aa:Css\endcsname\relax + \Configure{Css}{Css: ##1} +\fi +\:CheckOption{edit} \if:Option + \Configure{edit}{\HCode{<strong><}}{\HCode{></strong>}} + {<strong><}{></strong>} +\fi +\:CheckOption{hooks++} \if:Option +\else \:CheckOption{hooks+} \if:Option +\else \:CheckOption{hooks} \if:Option +\fi\fi\fi +\if:Option + \Configure{hooks} + {\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{} +\fi +\Configure{ExitHPage}{exit}{exit }{} +\Configure{TocLink}{\Link{#2}{#3}#4\ifvmode\IgnorePar\fi\EndLink} +\Configure{MiniHalign}{\hlg:a}{\hlg:b}\hlg:c\hlg:d{\hlg:e}\hlg:f +\:CheckOption{no-halign} \if:Option \else + \Configure{noalign-}{}{} +\fi +\Configure{PictureAlt*+} + {\let\sv:HtmlPar|=\HtmlPar \let\HtmlPar|=\empty + |<postscript for /Picture|>% + |<tex halign and cr/crcr|>% + \NoFonts\csname PauseMathClass\endcsname \SUBOff \SUPOff + \let\HCode|=\:gobble |%\offinterlineskip|% + \let\EndPicture|=\empty} + {\let\HCode|=\:HCode + \let\EndPicture|=\:UnDef \let\HtmlPar|=\sv:HtmlPar \SUBOn \SUPOn + \csname EndPauseMathClass\endcsname \EndNoFonts + |<tex4ht halign and cr/crcr|>% + |<delay postscript|>} + +|<external scripts and styles|> +|<external web fonts|> +>>> + + +Was \verb+\SUBOff \SUPOff+. Any problems? + +\<postscript for /Picture\><<< +\def\PsCode##1{{\ht:special{\PsCodeSpecial##1}}}% +>>> + +\<tex halign and cr/crcr\><<< +\iffalse{\fi +\let\sv:halign|=\halign +\let\sv:cr|=\cr +\let\sv:crcr|=\crcr +\iffalse}\fi +\RecallTeXcr \let\halign |=\TeXhalign +>>> + +\<tex4ht halign and cr/crcr\><<< +\iffalse{\fi +\let\halign|=\sv:halign +\let\cr|=\sv:cr +\let\crcr|=\sv:crcr +\iffalse}\fi +>>> + +\<delay postscript\><<< +\let\PsCode|=\relax +>>> + +\<config tex4ht\><<< + \Configure{writetoc}{} +>>> + +\<config tex4ht\><<< +\Configure{CutAtTITLE+}{} +\Configure{HPageTITLE+}{} +\Configure{AtBeginDocument} + {\edef\recallcatcodes{% + \catcode`\noexpand\_|=\the\catcode`\_ + \catcode`\noexpand\^|=\the\catcode`\^ }% + \catcode`\_=8\catcode`\^=7} + {\recallcatcodes} +>>> + +\<config tex4ht\><<< +\Configure{crosslinks}{[}{] + }{next}{prev}{prev-|<tail|>}{front}{tail}{up} +\:CheckOption{next} \if:Option + \Configure{next+} + {\ShowPar\par\noindent \HCode{<span class="next">}[} + {]\HCode{</span>}} + \Css{@media print {span.next {visibility:hidden;}}} +\fi + +\Configure{halignTB}{\HCode{<table }}{\HCode{>}} +\def\R:HA{\HCode{<tr \Hnewline}\halignTR\HCode{>}} +\def\r:HA{\HCode{</tr>}} +\def\D:HA{|<td save EndP|> \HCode{<td + \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}\ShowPar\par} +\def\d:HA{\ifvmode \IgnorePar \fi \EndP\HCode{</td>}|<td recall EndP|>} +\Configure{HVerbatim+}{\z@}{\:nbsp} +\Configure{CssFile}{\jobname.css} + {/* \aa:CssFile\space from \jobname.tex (TeX4ht) */} +\Configure{Picture+}{}{} +\Configure{Picture*}{}{} +\Configure{Picture-alt}{[Picture]} +\Configure{Needs}{l. + \the\inputlineno\space--- needs --- #1 ---} +\Configure{Needs-}{l. + \the\inputlineno\space--- needs --- #1 ---} +|<yes css|> +>>> + + +\<td save EndP\><<< +\SaveEndP +>>> + +\<td recall EndP\><<< +\RecallEndP +>>> + + + +\<config tex4ht\><<< +\Configure{moveright}{\leavevmode\endgraf } +% print x only outside \Picture+ +\Configure{HChar}{\ifx\EndPicture\:UnDef x\fi} +>>> + + +\<yes css\><<< + \def\SPAN:#1{\HCode{<span class="#1">}} + \def\EndSPAN:{\HCode{</span>}} + \def\DIV:#1{\HCode{<div class="#1">}} + \def\EndDIV:{\HCode{</div>}} +>>> + + + +\section{Interpretation for the Entries} + + + + +Use \verb'\ ', and not \verb'~', in style files, because some +users redefine the latter macro. + +\<html latex tocs\><<< +%\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{latin1.def} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html4 SIunits\><<< +\Configure{degree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + +\<configure html4 cp852\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<configure html4 cp850\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<configure html4 cp862\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<configure html4 cp1250\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<configure html4 cp1252\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + + + +\<configure html4 cp437\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + + +\<configure html4 cp437de\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<configure html4 cp1256\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<configure html4 cp865\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + +\<configure html4 8859-6\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<configure html4 latin1\><<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +\def\HTitleText#1{% + \bgroup + \uccode`\~#1% + \uppercase{% + \egroup + \edef~{\string~}% + }% +} +\Configure{@TITLE} + {\DeclareInputText{168}{"}% + \HTitleText{209}% + \HTitleText{194}% + \HTitleText{210}% + \HTitleText{195}% + \HTitleText{211}% + \HTitleText{196}% + \HTitleText{212}% + \HTitleText{197}% + \HTitleText{213}% + \HTitleText{198}% + \HTitleText{214}% + \HTitleText{199}% + \HTitleText{215}% + \HTitleText{200}% + \HTitleText{216}% + \HTitleText{201}% + \HTitleText{217}% + \HTitleText{202}% + \HTitleText{218}% + \HTitleText{203}% + \HTitleText{219}% + \HTitleText{204}% + \HTitleText{220}% + \HTitleText{205}% + \HTitleText{221}% + \HTitleText{206}% + \HTitleText{222}% + \HTitleText{207}% + \HTitleText{223}% + \HTitleText{224}% + \HTitleText{240}% + \HTitleText{225}% + \HTitleText{241}% + \HTitleText{226}% + \HTitleText{242}% + \HTitleText{227}% + \HTitleText{243}% + \HTitleText{228}% + \HTitleText{244}% + \HTitleText{229}% + \HTitleText{245}% + \HTitleText{230}% + \HTitleText{246}% + \HTitleText{231}% + \HTitleText{247}% + \HTitleText{232}% + \HTitleText{248}% + \HTitleText{233}% + \HTitleText{249}% + \HTitleText{234}% + \HTitleText{250}% + \HTitleText{235}% + \HTitleText{251}% + \HTitleText{236}% + \HTitleText{252}% + \HTitleText{237}% + \HTitleText{253}% + \HTitleText{238}% + \HTitleText{254}% + \HTitleText{239}% + \HTitleText{255}% +} +>>> + +\<configure html4 latex\><<< +\def\:tempc{\special{t4ht@+\string&{35}xAE{59}}x} +\HLet\textregistered\:tempc +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{syntax} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html4 syntax\><<< +\ConfigureEnv{grammar} + {\Picture*{}} {\EndPicture} + {}{} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{???????????} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<article,report,book\><<< +|<quotations|> +\Configure{listof}{}{}{}{\HCode{<br />}}{}{ } +>>> + +\<quotations\><<< +\ConfigureEnv{quotation} + {}{} + {\IgnorePar\EndP\HCode{<blockquote class="quotation">}} + {\IgnorePar\EndP\HCode{</blockquote>}\ShowPar} +>>> +% Browsers can handle quotation better +% \Css{.quotation {margin-bottom:0.25em; +% margin-top:0.25em; margin-left:1em; }} + + + + + + + + + + + + + + + + +\<PICT dot tabbing\><<< +\:CheckOption{pic-tabbing'} \if:Option + \edef\:temp{\LikeRef{|<tabbing tag|>.}}% + \def\:tempa{.}\ifx \:temp\:tempa + \ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{} + \fi +\fi +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{titlesec} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure html4 titlesec\><<< +\ifx \ttl@assign@ii\:Undef + |<pre 2005 titlesec|> +\fi +>>> + + +\<pre 2005 titlesec\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \csname thetitlesection\endcsname\fi} +\Configure{section}{}{} + {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="sectionHead"\a:LRdir>} + \TitleMark\space} + {\HCode{</h3>}\IgnoreIndent\par \ShowPar} +\Configure{likesection}{}{} + {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="likesectionHead"\a:LRdir>}} + {\HCode{</h3>}\IgnoreIndent\par \ShowPar} +>>> + + + + + + + +\section{fontmath.ltx} + + +\<configure html4-math fontmath\><<< +|<32,4 picmath: plain, fontmath, amsmath, amstex1|> +|<picmath plain,fontmath|> +|<html4-math plain,fontmath|> +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\section{tex4ht} +%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html4-math tex4ht\><<< +|<32,4 picmath tex4ht|> +\Configure{PicMath}{}{}{}{ class="math" } +\Css{img.math{vertical-align:middle;}} +|<contribute to picmath of 4.0t|> +>>> + + +% \Configure{$$} +% {\:xhtml{\IgnorePar\EndP}% +% \HCode{<div class="displaymath">}} +% {\HCode{</div>}|<try env inline par|>} {} +% \Css{div.displaymath{text-align:center;}} + + + + +\<try env inline par\><<< +\ShowPar +>>> + +\<try inline par\><<< +\ShowPar \par{\HCondtrue\noindent}% +>>> + + + +\<32,4 picmath tex4ht\><<< +\:CheckOption{no_^} +\if:Option \else \:CheckOption{no_}\fi +\if:Option \else + \Configure{SUB} + {\HCode{<sub>}}{\HCode{</sub>}} +\fi +\:CheckOption{no_^} +\if:Option \else \:CheckOption{no^}\fi +\if:Option \else + \Configure{SUP} + {\HCode{<sup>}}{\HCode{</sup>}} +\fi +\:CheckOption{no_^} + \if:Option \else \:CheckOption{no_}\fi + \if:Option \else \:CheckOption{no^}\fi +\if:Option \else + \Configure{SUBSUP} + {\HCode{<sub>}}{\HCode{</sub><sup>}}{\HCode{</sup>}} +\fi +\Configure{left} + {\Picture+{ \a:@Picture{left}}} + {\aftergroup\EndPicture } +\Configure{mathchoice}{\PictureOff}{\PictureOn} +>>> + + +\verb'\endgraf' is safer than \verb'\par', because the latter may be redefined. +For instance, see p 262 in texbook. + +\<configure html4-math tex4ht\><<< +\let\MathPar|=\empty +\Configure{PicDisplay} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{<div class="\MathPar math-display" \a:LRdir >}} + {\HCode{</div>}\par\ShowPar} {} {class="\MathPar math-display" } +\Css{div.par-math-display, div.math-display{text-align:center;}} +>>> + +% \Css{img.mathdisplay, div.displaymath, img.par-mathdisplay, +% div.par-displaymath { margin-top: 1em; +% margin-bottom: 1em; }} +% \Css{center img.mathdisplay, td img.mathdisplay, +% center img.par-mathdisplay, +% td img.par-mathdisplay { margin-top: 0; +% margin-bottom:0 ; }} +% + + + + + + + + +\<temp hcode accents\><<< +\HCode{&\expandafter \ifx\csname U#2#1\endcsname\relax + #2#1\else \#x\csname U#2#1\endcsname\fi;}% +>>> + + + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + + + + + +\subsection{TeX Engine} + + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + + + +\<?\><<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {<|.mrow\Hnewline + class="\expandafter\:gobble\string#1">}{</|.mrow>}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> +\<recall dvimath par\><<< +\sv:ignore +>>> + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +The \verb'\MathRow' requests a \verb'<|.mrow\Hnewline>...</|.mrow>', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + + + + + +\subsection{latex.ltx} + + + + + +Definitions like \verb'\def\mathbf#1{\a:mathbf#1\b:mathbf}' +can't be done on a global level, because \verb'\mathbf' is just +a name of a font. So, for instance, \verb'\bf' expands to \verb'\mathbf', +and so \verb'$\bf R$' indirectly brings up the latter command. + + + + + +\subsection{Palin + LaTeX} + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + + + +% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else +% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else +% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else +% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}% +% \fi\fi\fi\fi } +% \edef\lbrc:{\string{} \edef\rbrc:{\string}} + +% \HCode{\string#1;}% + +\section{Eqnarray} + +Had `BASELINE' before `MIDDLE', but changed to conform with math +in page 252-- in intro to theory book. + + + +\section{Big, BIG, ....} + +The +\verb'\special{t4ht@[}...\special{t4ht@]}' gobble the enclosed stuff. +The external pair is provided as grouping mechanism for +sub/super-scripts cases like \verb'\bigl(...\bigr)^x' within dvimath +mode. The \verb'{\HCode{}}' is neded for creating content delimiters +\verb'.' delimiters like in \verb'$\bigl. a_b \bigr)$'; without that mathml +gets something wrong there. +\verb+\bigl{.}+ et al produce empty para,etr , hence the \verb+\:EMPTY+ is a ompensation for such cases. + + + + + +\section{Exams} + + + +\<configure html4 exam\><<< +\ifx \ps@examheadings\:unDef \else + |<Meers' exam|> +\fi +\ifx \@checkqueslevel\:unDef \else + |<Hirschhorns' exam|> +\fi +\ifx \@OneKeyHook\:unDef \else + |<Alexanders' exam|> +\fi +>>> + + +\<Hirschhorns' exam\><<< +\Configure{uplevel} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="uplevel">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Configure{fullwidth} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="fullwidth">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Css{dl .uplevel, .fullwidth{margin-left:-2.5em;}} +\Css{dl dl .fullwidth {margin-left:-5em;}} +\Css{dl dl dl .fullwidth {margin-left:-7.5em;}} +>>> + +\<Hirschhorns' exam\><<< +\ConfigureEnv{questions} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="questions">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\ConfigureEnv{parts} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="parts">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\ConfigureEnv{subparts} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="subparts">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +>>> + + +\<Hirschhorns' exam\><<< +\Configure{setpoints} + {\HCode{<span class="setpoints">}} {\HCode{</span>}} +>>> + + + + +\<Meers' exam\><<< +\ConfigureEnv{exam} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="exam">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\ConfigureEnv{problem} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="problem">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +\Css{.problem{border-bottom: 1px solid black;}} +\Configure{scorebox} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="scorebox">} + \bgroup\Configure{fbox}{\leavevmode}{}} + {\egroup\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +\Css{.scorebox{margin-left:90\%; border: 1px solid black;}} +>>> + + +\<Alexanders' exam\><<< +\Configure{sectiontitle} + {\ifvmode\IgnorePar\fi + \EndP \HCode{<h4 class="sectiontitle">}\IgnorePar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h4>}} +>>> + +\<Alexanders' exam\><<< +\Configure{answer} + {\HCode{<span class="answer">}} {\HCode{</span>}} +\Css{.answer {text-decoration:underline;}} +\Configure{question} + {\HCode{<span class="question">}} {\HCode{</span>}} +>>> + +\<Alexanders' exam\><<< +\Configure{instructions} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="instructions">}} + {\IgnorePar\EndP \HCode{</div>}} +>>> + + +\<Alexanders' exam\><<< +\ConfigureEnv{examtop} + {\ifvmode \IgnorePar \fi \EndP \HCode{<table class="examtop"><tr><td>}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</td></tr></table>}} + {}{} +\Configure{namedata} + {\ifvmode \IgnorePar \fi \EndP + \Configure{newline}{\HCode{</td><td\Hnewline + class="namedata-rule"><hr /></td></tr><tr><td>}}% + \HCode{</td><td><div class="namedata"><table><tr><td>}} + {\ifvmode \IgnorePar \fi \EndP + \HCode{</td><td + class="namedata-rule"><hr /></td></tr></table></div>}} +\Css{td.namedata-rule {width:10em; vertical-align:bottom; }} +\Css{div.namedata{text-align:right;}} +\Configure{classdata} + {\ifvmode \IgnorePar \fi \EndP \HCode{<h3 class="classdata">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</h3>}} +>>> + + + +\<Alexanders' exam\><<< +\ConfigureEnv{keytop} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="keytop">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} + {}{} +>>> + + +\<Alexanders' exam\><<< +\Configure{frontmatter} + {\ifvmode \IgnorePar \fi \EndP \HCode{<div class="frontmatter">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}} +>>> + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Gloss} +%%%%%%%%%%%%%%%%%% + +\<configure html4 gloss\><<< + |<2002 gloss|> +\ConfigureList{glosslist}{}{}{}{} +\Css{dl.glosslist {margin-left:2em;}} +>>> + + + +\<2002 gloss\><<< +\:CheckOption{mouseover} \if:Option + |<onmouseover gloss|> + |<onmouseover gloss list|> +\else + \Configure{gloss} {\Link} {\EndLink} + |<default gloss list|> +\fi +>>> + + +\<default gloss list\><<< +\Configure{glosslist}% + {\IgnorePar\EndP + \HCode{<dl \a:LRdir class="glosslist">}\global\let\end:glitm=\empty} + {\IgnorePar\EndP\HCode{</dd></dl>}\ShowPar} + {\end:glitm\gdef\end:glitm{\EndP\Tg</dd>}\HCode{<dt + class="glosslist">}% + } + {\HCode{</dt><dd\Hnewline class="glosslist">}} +>>> + + + +\<onmouseover gloss list\><<< +\Configure{glosslist}% + {\IgnorePar\EndP + |<start js|>% + \HCode{<dl \a:LRdir class="glosslist">}\global\let\end:glitm=\empty} + {\IgnorePar\EndP |<js Until gl|>% + \HCode{</dd></dl>}\ShowPar} + {\end:glitm + \gdef\end:glitm{\EndP |<js Until gl|>\Tg</dd>}% + \HCode{<dt class="glosslist">}% + } + {\HCode{</dt><dd\Hnewline class="glosslist">}% + |<js From gl|>% + } +\Configure{GlossAnchor} {\g:Link} {\EndLink} +\def\g:Link#1#2{\edef\mog:anchor{#2}\Link{}{#2}} +>>> + + + + +\<js From gl\><<< +\HCode{<!--} +\ht:special {t4ht@DCopyTo: \jobname-js.tex From gl }% +\HCode{<gloss>} +\HCode{\expandafter\jsHash + \expandafter{\mog:anchor}=<div class="js">}% +\ht:special {t4ht@DCopyTo: \jobname-js.tex Skip gl }% +\HCode{-->} +\ht:special {t4ht@DCopyTo: \jobname-js.tex Cont gl }% +>>> + +\<js Until gl\><<< +\ht:special {t4ht@DCopyTo: \jobname-js.tex Skip gl }% +\HCode{<!--} +\ht:special {t4ht@DCopyTo: \jobname-js.tex Cont gl }% +\HCode{</div></gloss>} +\ht:special {t4ht@DCopyTo: \jobname-js.tex Skip gl }% +\HCode{-->} +\ht:special {t4ht@DCopyTo: \jobname-js.tex Cont gl }% +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until gl }% +>>> + + + + + + +\<onmouseover gloss\><<< +\Configure{gloss} + {\HCode{<span class="gloss">}% + |<start js|>% + |<mouseover-gloss arguments|>% + \expandafter\Link\expandafter[\:temp]} + {\EndLink \HCode{</span>}} +\expandafter\def\csname c:mouseover-gloss:\endcsname{% + \def\:tempb{gloss}\csname c:mouseover-?:\endcsname} +\Configure{mouseover-gloss}{tex4ht.body,FULLHTML} +>>> + + +\<mouseover-gloss arguments\><<< +\edef\:temp{\noexpand\mo:args + {gloss}% + {\gls@name ::\gls@b}% + {\noexpand\jsHash {\gls@name ::\gls@b}}}% +>>> + + + + +\<pre 2002 gloss\><<< +\Configure{gloss} {\Link{\gls@b}{}} {\EndLink} +\Configure{glosslist}% + {\IgnorePar\EndP + \HCode{<dl \a:LRdir class="glosslist">}\global\let\end:glitm=\empty} + {\IgnorePar\EndP\HCode{</dd></dl>}\ShowPar} + {\end:glitm\gdef\end:glitm{\EndP\Tg</dd>}\HCode{<dt + class="glosslist">}\Link{}{\GlossLabel}\EndLink } + {\HCode{</dt><dd\Hnewline class="glosslist">}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Etc} +%%%%%%%%%%%%%%%%%% + + +\<configure html4 rotating\><<< +\ConfigureEnv{turn} + {\Picture+{}} {\EndPicture} + {}{} +>>> + + +\<configure html4 manju\><<< +\Configure{@TITLE}{\let\@title=\empty} +>>> + + + + +\<configure html4 mls\><<< +\Configure{@TITLE}{\let\@title=\empty} +>>> + + + + + + + + + + +\<configure html4 ulem\><<< +\Configure{uline} + {\HCode{<span class="uline">}} {\HCode{</span>}} +\Css{.uline{ text-decoration:underline; }} +\Configure{uuline} + {\HCode{<span class="uuline">}} {\HCode{</span>}} +\Css{.uuline{ text-decoration:underline; }} +\Configure{sout} + {\HCode{<span class="sout">}} {\HCode{</span>}} +\Css{span.sout {text-decoration: line-through }} +\Configure{xout} + {\HCode{<span class="xout"><span class="underline">}} + {\HCode{</span></span>}} +\Css{span.xout {text-decoration: line-through }} +\Configure{uwave} + {\HCode{<span class="uwave">}} + {\HCode{</span>}} +\Css{span.uwave {text-decoration:underline }} +>>> + + + + + + +\<configure html4 go\><<< +\Configure{showdiagram} + {\Picture*[go]{}} {\EndPicture} +>>> + + + + + + +\<configure html4 pifont\><<< +\ConfigureList{dingautolist} + {\EndP\HCode{<dl \a:LRdir class="dingautolist\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="dingautolist">}} + {\HCode{</dt><dd\Hnewline class="dingautolist">}} +\ConfigureList{Piautolist} + {\EndP\HCode{<dl \a:LRdir class="Piautolist\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="Piautolist">}} + {\HCode{</dt><dd\Hnewline class="Piautolist">}} +\ConfigureList{Pilist} + {\EndP\HCode{<dl \a:LRdir class="Pilist\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="Pilist">}} + {\HCode{</dt><dd\Hnewline class="Pilist">}} +>>> + + +\<configure html4 paralist\><<< +\ConfigureList{asparaitem}% + {\EndP\HCode{<div class="asparaitem">}\ShowPar\ShowIndent} + {\EndP\HCode{</div>}\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{asparaenum}% + {\EndP\HCode{<div class="asparaenum">}\ShowPar\ShowIndent} + {\EndP\HCode{</div>}\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{asparadesc}% + {\EndP\HCode{<div class="asparadesc">}\ShowPar\ShowIndent} + {\EndP\HCode{</div>}\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{compactenum}% + {\EndP\HCode{<dl \a:LRdir class="compactenum">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="compactenum">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="compactenum">}} +\ConfigureList{compactdesc}% + {\EndP\HCode{<dl \a:LRdir class="compactdesc">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="compactdesc">}\bgroup \bf} + {\egroup\EndP\HCode{</dt><dd\Hnewline class="compactdesc">}} +\ConfigureList{compactitem}% + {\EndP\HCode{<ul>}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</li></ul>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</li>}\DeleteMark} + {\HCode{<li class="compactitem">}} +\ConfigureEnv{enumerate} + {}{|<try env inline par|>}{}{} +\expandafter\ifx \csname if@plmylabel\endcsname\relax + |<pre 2002 paralist|> +\else + |<paralist 2002|> +\fi +\Css{dt.enumerate{float:left; + clear:left; margin-right:0.2em; margin-left:2em;}} +\Css{dt.compactenum{float:left; + clear:left; margin-right:0.2em; margin-left:2em;}} +>>> + + + + +\<pre 2002 paralist\><<< +\ConfigureList{enumerate}% + {\if@plalwaysadjust + \EndP \HCode{<dl \a:LRdir class="enumerate">}% + |<save end:itm|>\global\let\end:itm=\empty + \def\para:enumII{|<recall end:itm|>\EndP + \HCode{</dd></dl>}\ShowPar}% + \def\para:enumIII{\end:itm \global + \def\end:itm{\EndP + \Tg</dd>}\HCode{<dt class="enumerate">}}% + \def\para:enumIV{\EndP + \HCode{</dt><dd\Hnewline class="enumerate">}}% + \else + |<enumerate I|>% + \def\para:enumII{|<enumerate II|>}% + \def\para:enumIII{|<enumerate III|>}% + \def\para:enumIV{|<enumerate IV|>}% + \fi + } + {\para:enumII} {\para:enumIII} {\para:enumIV} +>>> + + + + +\<paralist 2002\><<< +\:CheckOption{enumerate-} \if:Option + \ConfigureList{enumerate}% + {\if@plnewenum + \EndP \HCode{<dl \a:LRdir class="enumerate">}% + |<save end:itm|>\global\let\end:itm=\empty + \def\para:enumII{|<recall end:itm|>\EndP + \HCode{</dd></dl>}\ShowPar}% + \def\para:enumIII{\end:itm \global + \def\end:itm{\EndP + \Tg</dd>}\HCode{<dt class="enumerate">}}% + \def\para:enumIV{\EndP + \HCode{</dt><dd\Hnewline class="enumerate">}}% + \else + |<enumerate I|>% + \def\para:enumII{|<enumerate II|>}% + \def\para:enumIII{|<enumerate III|>}% + \def\para:enumIV{|<enumerate IV|>}% + \fi + } + {\para:enumII} {\para:enumIII} {\para:enumIV} +\else + \ConfigureList{enumerate}% + {\if@plnewenum + \EndP \HCode{<dl \a:LRdir class="enumerate">}% + |<save end:itm|>\global\let\end:itm=\empty + \def\para:enumII{|<recall end:itm|>\EndP + \HCode{</dd></dl>}\ShowPar}% + \def\para:enumIII{\end:itm \global + \def\end:itm{\EndP + \Tg</dd>}\HCode{<dt class="enumerate">}}% + \def\para:enumIV{\EndP + \HCode{</dt><dd\Hnewline class="enumerate">}}% + \else + |<enumerate I|>% + \def\para:enumII{|<enumerate II|>}% + \def\para:enumIII{|<enumerate III|>}% + \def\para:enumIV{|<enumerate IV-|>}% + \fi + } + {\para:enumII} {\para:enumIII} {\para:enumIV} +\fi +>>> + + + + + +\<configure html4 alphanum\><<< +\def\:tempc#1#2#3#4{% + \ConfigureMark{toclvl#1} + {\HCode{<span class="titlemark">}\csname thelvl#1\endcsname + \HCode{</span>}}% + \Configure{toclvl#1} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<#4 class="toclvl#1Head"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</#4>}\HtmlParOn \IgnoreIndent \par}% + \ConfigureToc{toclvl#1} + {|<alphanum toc spaces|>\def\:temp{\J@INumberRoot{#2}{\tmp:cnt}}% + \afterassignment\:temp \tmp:cnt} + {#3 \HCode{<span class="toclvl#1">}}{} + {\HCode{</span><br />}}% + \ConfigureToc{liketoclvl#1} + {} {|<alphanum toc spaces|>\HCode{<span class="liketoclvl#1">}}{} + {\HCode{</span><br />}}% +} +\:tempc a1{.}{h3} +\:tempc b2{.}{h4} +\:tempc c3{.}{h5} +\:tempc d4{)}{h5} +\:tempc e5{)}{h5} +\:tempc f6{)}{h5} +\:tempc g7{)}{h5} +\:tempc h8{)}{h5} +\:tempc i9{)}{h5} +\:tempc j{10}{)}{h5} +\:tempc k{11}{)}{h5} +\:tempc l{12}{)}{h5} +>>> + +\<alphanum toc spaces\><<< +\tmp:cnt=0 \loop \advance\tmp:cnt by 1 + \ifnum \tmp:cnt<#2 ~~\repeat +>>> + +\<\><<< +\ConfigureMark{toc} + {\HCode{<span class="titlemark">}\csname thelvl\alph{tiefe}\endcsname + \HCode{</span>}} +\Configure{toc} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h5 class="tocHead"\a:LRdir>}\TitleMark\space\HtmlParOff} + {\HCode{</h5>}\HtmlParOn \IgnoreIndent \par} +>>> + + + + + + + +\<configure html4 alphanum\><<< +\bgroup + \let\ifx=\relax + \let\:temp=\relax + \let\:tempa=\expandafter + \let\expandafter=\relax + \let\:TableOfContents=\relax + \let\else=\relax + \let\if=\relax + \let\fi=\relax + \def\Auto:ent#1{\noexpand\Auto:ent{#1,toclvla,liketoclvla,toclvlb,% + liketoclvlb,toclvlc,liketoclvlc,toclvld,liketoclvld,toclvle,% + liketoclvle,toclvlf,liketoclvlf,toclvlg,liketoclvlg,toclvlh,% + liketoclvlh,toclvli,liketoclvli,toclvlj,% + liketoclvlj,toclvlk,liketoclvlk,toclvll,liketoclvll}} + \edef\:TOC{\def\noexpand\:TOC{\:TOC}} + \:tempa +\egroup \:TOC +>>> + + +We can't use styles from .htf files with fontspec, so we must add meaning to +font commands + +\<configure html4 fontspec\><<< +\Configure{textit}{\HCode{<i>}\NoFonts}{\EndNoFonts\Tg</i>} +\Configure{textbf}{\HCode{<strong>}\NoFonts}{\EndNoFonts\Tg</strong>} +\Configure{textsc}{\HCode{<span class="small-caps">}\NoFonts}{\EndNoFonts\Tg</span>} +\Css{.small-caps{font-variant: small-caps;}} +>>> + + +\<configure html4 polyglossia\><<< +\Configure{PolyglossiaRtl}{\Configure{LRdir}{}}{\Configure{LRdir}{ dir="rtl"}} +>>> + +\<configure html4 animate\><<< +\Configure{animinline}{\Picture+{}}{\EndPicture} +\ConfigureEnv{animateinline}{% + \ifvmode\IgnorePar\fi\EndP\HCode{<div class="animateinline">}% +}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}{}{} +>>> + + +\<configure html4 sectionbreak\><<< +\Configure{sectionbreak}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="sectionbreak">}}{\HCode{</div>}} + +\Css{div.sectionbreak{ + margin-top:3rem; + margin-bottom:3rem; + text-align:center; +}} + +% use the asterism HTML entity +\Configure{asterism}{\HCode{\string&\:sharp8258;}} +>>> + + +\<configure html4 booktabs\><<< +\Configure{toprule} + {|<booktabs rule mag|>% + \Css{tr\#TBL-\TableNo-\ifnum \HRow=0 + 1- td{border-top:|<booktabs rule height|> solid} + \else + \HRow- td{border-bottom:|<booktabs rule height|> solid} + \fi + }} +\Configure{bottomrule} + {|<booktabs rule mag|>% + \Css{tr\#TBL-\TableNo-\HRow- + td{border-bottom:|<booktabs rule height|> solid}}} +\Configure{midrule} + {|<booktabs rule mag|>% + \Css{tr\#TBL-\TableNo-\HRow- + td{border-bottom:|<booktabs rule height|> solid}}} +\Configure{cmidrule} + {|<booktabs rule mag|>% + \Css{td\#TBL-\TableNo-\HRow-\HCol{border-bottom:|<booktabs rule height|> solid}}% + \HCode{<span class="cmidrule"><!-- enable post-processing of cmidrule--></span>}} +>>> + + + +The cmidrule introduces ruler segments at different rows, instead of all of +them in the same row. + +\<booktabs rule height\><<< +\expandafter\x:Em \the\@thisrulewidth em +>>> + +\<booktabs rule mag\><<< +\@thisrulewidth=\csname a:rule-mag\endcsname\@thisrulewidth +>>> + +\<configure html4 booktabs\><<< +\NewConfigure{rule-mag}{1} +\Configure{rule-mag}{0.14} +{ + \def\x:Em{% + \catcode`\p=12 + \catcode`\t=12 + \gdef\x:Em} + \x:Em#1pt{#1} +} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Endnotes.sty} +%%%%%%%%%%%%%%%%%% + + + + + +\<configure html4 endnotes\><<< +\Configure{makeenmark} + {\Link{ennote-\endnoteN}{enmark-\endnoteN}} {\EndLink} +\Configure{enoteformat} + {\Link{enmark-\endnoteN}{ennote-\endnoteN}} {\EndLink\AnchorLabel} +>>> + + +%%%%%%%%%%%%%%%%% +\section{appendix} +\<configure html4 appendix\><<< +\ConfigureEnv{appendices}{\ifvmode\IgnorePar\fi\EndP{<div class="appendices">}}{\ifvmode\IgnorePar\fi\EndP{</div>}}{}{} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\<par del\><<< +!*?: >>> +\<tag of Tag\><<< + cw:>>> + +\<tail\><<< +tail>>> + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + + + \OutputCode[4ht]\<exerqz\> + \OutputCodE\<onmouseover.4ht\> + +\endinput + + + + + + diff --git a/support/TeX4ht/source/tex4ht-html5.tex b/support/TeX4ht/source/tex4ht-html5.tex new file mode 100644 index 0000000000..ca0fab53a4 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-html5.tex @@ -0,0 +1,376 @@ +% $Id: tex4ht-html5.tex 905 2021-04-18 15:30:06Z karl $ +% compile 3 times: latex tex4ht-moz +% or xhlatex tex4ht-moz "html,3,sections+" +% +% Copyright 2009-2021 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{html5} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<html5\><<< +% html5.4ht (|version), generated from |jobname.tex +% Copyright 2016-2021 TeX Users Group +|<TeX4ht copywrite|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Basic configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{HTML5 structure} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html5 tex4ht\><<< +|<patch charset|> +\Configure{VERSION}{} +\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}} +\Configure{HTML}{\HCode{<html lang="\Get:Language" xml:lang="\Get:Language" \html:xmlns>\Hnewline}}{\HCode{\Hnewline</html>}} +\Configure{@HEAD}{} +\Configure{@HEAD}{\HCode{<meta \use:charset />\Hnewline}} +\Configure{@HEAD}{\HCode{<meta name="generator" content="TeX4ht +(https://tug.org/tex4ht/)" />\Hnewline}} +\Configure{@HEAD}{\HCode{<meta name="viewport" content="width=device-width,initial-scale=1" />\Hnewline}} +\Configure{@HEAD}{\HCode{<link + rel="stylesheet" type="text/css" + href="\expandafter\csname aa:CssFile\endcsname" />\Hnewline}} +\Configure{@HEAD} + {\HCode{<meta name="src" + content="\jobname.tex"\xml:empty>\Hnewline}} +\:CheckOption{timestamp}\if:Option +\Configure{@HEAD} + {\HCode{<meta name="date" + content="\:today"\xml:empty>\Hnewline}} +\else + \Log:Note{To print a timestamp, use the command line option timestamp} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Language and charset setting} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Charset can be set using charset=charsetcode option for tex4ht.sty. It is saved in \verb|\a:charset| macro. +If charset oprion isn't used, \verb|\A:charset| is used instead. Bot of these macros store the charset information +in charset=name form. We need to add quotes around name in html5, thus the following macro. + +\<patch charset\><<< + +\def\:charset:quotes#1=#2.{ + #1="#2"% +} +\def\use:charset{% + \expandafter\ifx\csname a:charset\endcsname\relax% + \expandafter\expandafter\expandafter\:charset:quotes\csname A:charset\endcsname. + \else% + \expandafter\expandafter\expandafter\:charset:quotes\csname a:charset\endcsname. + \fi +} +>>> + + +We can interfere the document language from \verb|\bbl@main@language| macro. It +is supported by both Babel and Polyglossia. + +\<configure html5 tex4ht\><<< +\def\Declare:Language#1#2{% +\expandafter\gdef\csname rfclang#1\endcsname{#2}% +} +\def\Get:Language{% +\ifx\bbl@main@language\@undefined en-US% +\else% +\expandafter\ifdefined\csname rfclang\bbl@main@language\endcsname \csname rfclang\bbl@main@language\endcsname\fi% +\fi% +} + +\Declare:Language{UKenglish}{en} +\Declare:Language{USenglish}{en} +\Declare:Language{latex}{en} +\Declare:Language{acadian}{fr} +\Declare:Language{albanian}{sq} +\Declare:Language{american}{en} +\Declare:Language{amharic}{am} +\Declare:Language{arabic}{ar} +\Declare:Language{armenian}{hy} +\Declare:Language{australian}{en} +\Declare:Language{austrian}{de} +\Declare:Language{basque}{eu} +\Declare:Language{bengali}{bn} +\Declare:Language{brazilian}{pt} +\Declare:Language{brazil}{pt} +\Declare:Language{breton}{br} +\Declare:Language{british}{en} +\Declare:Language{bulgarian}{bg} +\Declare:Language{canadian}{en} +\Declare:Language{canadien}{fr} +\Declare:Language{catalan}{ca} +\Declare:Language{croatian}{hr} +\Declare:Language{czech}{cs} +\Declare:Language{danish}{da} +\Declare:Language{divehi}{dv} +\Declare:Language{dutch}{nl} +\Declare:Language{english}{en} +\Declare:Language{esperanto}{eo} +\Declare:Language{estonian}{et} +\Declare:Language{finnish}{f\/i} +\Declare:Language{francais}{fr} +\Declare:Language{french}{fr} +\Declare:Language{galician}{gl} +\Declare:Language{germanb}{de} +\Declare:Language{german}{de} +\Declare:Language{greek}{el} +\Declare:Language{hebrew}{he} +\Declare:Language{hindi}{hi} +\Declare:Language{hungarian}{hu} +\Declare:Language{icelandic}{is} +\Declare:Language{interlingua}{ia} +\Declare:Language{irish}{ga} +\Declare:Language{italian}{it} +\Declare:Language{kannada}{kn} +\Declare:Language{khmer}{km} +\Declare:Language{korean}{ko} +\Declare:Language{lao}{lo} +\Declare:Language{latin}{la} +\Declare:Language{latvian}{lv} +\Declare:Language{lithuanian}{lt} +\Declare:Language{lowersorbian}{dsb} +\Declare:Language{magyar}{hu} +\Declare:Language{malayalam}{ml} +\Declare:Language{marathi}{mr} +\Declare:Language{naustrian}{de} +\Declare:Language{newzealand}{en} +\Declare:Language{ngerman}{de} +\Declare:Language{norsk}{no} +\Declare:Language{norwegiannynorsk}{nn} +\Declare:Language{nynorsk}{no} +\Declare:Language{occitan}{oc} +\Declare:Language{oldchurchslavonic}{cu} +\Declare:Language{persian}{fa} +\Declare:Language{polish}{pl} +\Declare:Language{polutonikogreek}{el} +\Declare:Language{portuges}{pt} +\Declare:Language{portuguese}{pt} +\Declare:Language{romanian}{ro} +\Declare:Language{romansh}{rm} +\Declare:Language{russian}{ru} +\Declare:Language{samin}{se} +\Declare:Language{sanskrit}{sa} +\Declare:Language{scottish}{gd} +\Declare:Language{serbian}{sr} +\Declare:Language{serbo-croatian}{sh} +\Declare:Language{slovak}{sk} +\Declare:Language{slovene}{sl} +\Declare:Language{slovenian}{sl} +\Declare:Language{spanish}{es} +\Declare:Language{swedish}{sv} +\Declare:Language{tamil}{ta} +\Declare:Language{telugu}{te} +\Declare:Language{thai}{th} +\Declare:Language{tibetan}{bo} +\Declare:Language{turkish}{tr} +\Declare:Language{turkmen}{tk} +\Declare:Language{ukrainian}{uk} +\Declare:Language{uppersorbian}{hsb} +\Declare:Language{urdu}{ur} +\Declare:Language{vietnamese}{vi} +\Declare:Language{welsh}{cy} +>>> + +Support for xml name spaces. It must be configured after +\verb|\begin{document}| in the configuration file. + +\<configure html5 tex4ht\><<< +\edef\html:xmlns{} +\NewConfigure{xmlns}[2]{% + \ifx\relax#2\relax% + \edef\html:xmlns{}% + \else% + \edef\html:xmlns{\html:xmlns xmlns\ifx\relax#1\relax\else :#1\fi="#2"}% + \fi% +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{LaTeX and classes configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\section{LaTeX} + +\<configure html5 latex\><<< +|<tabular fixes|> +>>> + +\section{Article, book and report classes} +\<configure html5 article\><<< +|<article,report,book|> +|<article,report|> +>>> + +\<configure html5 book\><<< +|<article,report,book|> +>>> + +\<configure html5 report\><<< +|<article,report,book|> +|<article,report|> +>>> + +Shared configurations for base LaTeX classes. + +\<article,report,book\><<< +|<figcaption|> +>>> + +Configurations that are shared only for article and report + +\<article,report\><<< +|<abstract|> +>>> + + +\section{Configurations for Koma Script} + +\<configure html5 scrartcl\><<< +|<scr article,report,book|> +>>> + +\<configure html5 scrbook\><<< +|<scr article,report,book|> +>>> + +\<configure html5 scrreprt\><<< +|<scr article,report,book|> +>>> + +\<scr article,report,book\><<< +|<figcaption|> +>>> + +\section{Configurations for AMS classes} + +\<configure html5 amsart\><<< +|<ams art,proc,book|> +>>> + +\<configure html5 amsproc\><<< +|<ams art,proc,book|> +>>> + +\<configure html5 amsbook\><<< +|<ams art,proc,book|> +>>> + + +\<ams art,proc,book\><<< +|<figcaption|> +>>> + +\section{Configurations for Memoir} + +\<configure html5 memoir\><<< +|<figcaption|> +|<abstract|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Packages configuration} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Logical structure configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +cellspacing and cellpading attributes are prohibited in html5 + +\<tabular fixes\><<< +\Configure{halignTB<>}{tabular}{\HCode{id="TBL-\TableNo" class="tabular"\Hnewline \GROUPS\Hnewline + }<>\HAlign} +\Css{table.tabular{border-collapse: collapse; border-spacing: 0;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Figures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Configure HTML5 figures. Floats are converted as captions too. + +\<figcaption\><<< +\Configure{float} + {\ifOption{refcaption}{}{\csname par\endcsname\ShowPar \leavevmode}} + {\:xhtml{\IgnorePar\EndP}\HCode{<figure class="float"\Hnewline>}} + {\ifvmode \IgnorePar \fi\EndP + \HCode{</figure>}\csname par\endcsname\ShowPar} + +\ConfigureEnv{figure} +{\:xhtml{\IgnorePar\EndP}\HCode{<figure class="figure">\Hnewline}% + \bgroup \Configure{float}{\ShowPar}{}{}% + } + {\egroup + \:xhtml{\IgnorePar\EndP}\HCode{</figure>}|<try env inline par|>\par} + {}{} + +\Css{figure.float, div.figure {margin-left: auto; margin-right: auto;}} +\Css{figure.float img, figure.figure img {display: block; margin-left: auto; margin-right: auto;}} +\Css{figure.figure {text-align:center;}} + +\Configure{caption}{\:xhtml{\IgnorePar\EndP}\HCode{<figcaption class="caption" ><span class="id">}} + {:} {\HCode{</span><span \Hnewline class="content">}} + {\HCode{</span></figcaption>}\HCode{<!--tex4ht:label?: + \cur:th\:currentlabel\space-->}% +} +\Css{figcaption.caption {text-indent:-2em; margin-left:3em; margin-right:1em; + text-align:center;}} +\Css{figcaption.caption span.id{font-weight: bold; white-space: nowrap; }} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Abstracts} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<abstract\><<< +\ConfigureEnv{abstract} +{\ifvmode\IgnorePar\fi\EndP\HCode{<section role="doc-abstract" class="abstract">\Hnewline}} +{\ifvmode\IgnorePar\fi\EndP\HCode{</section>}\par}{}{} + +\Css{.abstract{margin:1em;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Utilities} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<try env inline par\><<< +\ShowPar +>>> + +\endinput diff --git a/support/TeX4ht/source/tex4ht-info-html4.tex b/support/TeX4ht/source/tex4ht-info-html4.tex new file mode 100644 index 0000000000..4c3859498e --- /dev/null +++ b/support/TeX4ht/source/tex4ht-info-html4.tex @@ -0,0 +1,299 @@ +% $Id: tex4ht-info-html4.tex 314 2017-05-14 18:30:18Z karl $ +% compile 3 times: latex tex4ht-info-html4 +% or xhlatex tex4ht-info-html4 "html,3,sections+" +% +% Copyright 2009-2017 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{infoht4} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-info} +\input{common} + + +\expandafter\ifx \csname YES\HTML\endcsname\relax +\else + \def\CleanComment#1tex4ht-info-html4#2#3#4.#5>#6//{[#4% <--jobname + \if,\ifnum \FIRST=#6 .\else ,0\fi\fi]#6//} +\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{INFO} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<infoht4\><<< +% infoht4.4ht (|version), generated from |jobname.tex +% Copyright 2009-2017 TeX Users Group +% Copyright |CopyYear.2000. Eitan M. Gurari +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project <http://tug.org/tex4ht>. +% +% If you modify this program, changing the +% version identification would be appreciated. +\immediate\write-1{version |version} +{ \catcode`\@=0 \catcode`\\=11 @relax + @gdef@infoIVht[#1]#2//{% + @ifnum #1>1 + @def@infoIVht[##1]##2//{% + @ifnum ##1>1 @ifnum ##1<#1 + @bgroup + @no:catcodes0{255}{11}% + @no:catcodes{91}{91}{12}% [ + @no:catcodes{47}{47}{12}% / + @newlinechar13 % + @long@def@infoIVht####1\ifx\infoIVht####2infoIVht[####3//{% + @def@infoIVht{******************************************}% + @immediate@write-1{@infoIVht}% + @immediate@write-1{****** @csname :Hin@endcsname.4ht}% + @immediate@write-1{@infoIVht}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{####1}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{@infoIVht}% + @egroup}% + @expandafter@expandafter@expandafter@infoIVht + @fi@fi }% + @fi } +} +>>> + + + + + + + +\chapter{The Code} + +\<configure infoht4 tex4ht\><<< +Cascade Style Sheets and Character Sets +--------------------------------------- + +\Configure{CssFile}.....................2 + + #1 name for css file + #2 comment in css file + +\Configure{Css} + +\Configure{charset}..................1 + + #1 override information for the charset entry in the link element + + To be noticed, the configuration should be encountered early in the + complation. + + Example: + + \Preamble{} + \Configure{charset}{iso-8859-15} + \begin{document} + \EndPreamble + + In the case of TeX, the configuration instruction should precede + the \Preamble command, and a declaration of the hook should also + be provided. + + Example: + + \NewConfigure{charset}{1} + \Configure{charset}{iso-8859-15} + \Preamble{} + \begin{document} + \EndPreamble + +\Configure{dtd-lang}..................1 + + #1 language specification for the DTD identifier + +Paragraphs +---------- + +Three types of paragraphs are produced by \Configure{HtmlPar}: + + <p class="indent">....</p> + <p class="noindent">....</p> + <p class="nopar">....</p> + +The third one handles degenerated cases which don't call for a +separate paragraph in the source code. For instance, an inline +display math code of the form + + .......... + $$......$$ + .......... + +translates into a markup similar to + + <p class="...">..........</p> + <math>......</math> + <p class="nopar">..........</p> + +Frames +------ + + May be requested with the command line option `frames' + + \Configure{frames}.....................2 + + #1 The frames structure + #2 Content for the frame of the table of contents + + Example: + + \Configure{frames} + {\HorFrames[frameborder="no" border="0" + framespacing="0" rows="*"]{*,3*} + \Frame[ name="tex4ht-menu" ]{tex4ht-toc} + \Frame[ name="tex4ht-main" ]{tex4ht-body}} + {\let\contentsname=\empty \tableofcontents} +>>> + +%%%%%%%%%%%%%%% +\section{latex} +%%%%%%%%%%%%%%% + + +\<configure infoht4 latex\><<< +Hypertext Title +--------------- +\Configure{@HTML}.........................1 + + Environment for setting \title material in <title>. The contributions + are accumulative; an empty argument reinitializes the contribution. + +Tables +------ + +Properties of tabular and array tables can be locally redefined with +instructions of the following forms. + + \Css{\#TBL-\TableNo- {....}} % within tables + \Css{\#TBL-\TableNo-\HRow- {....}} % within rows + \Css{\#TBL-\TableNo-\HCol {....}} % within columns + \Css{\#TBL-\TableNo-\HRow-\HCol {....}} % within cells + \Css{\#TBL-\TableNo-<i>g {....}} % column group; <i> + +\Configure{enumerate}..............1 + Contribution into <ol> + +>>> + +% \Configure{enumerate}{1aiA} + +\>>>maketitleInfo<<< +Wrapper for the Document +------------------------ + + \Tag{TITLE+}......................1 + + #1 Content submitted to the <TITLE> element of the leading + web page. + + This instruction should be used at most once in a document. + In particular, it shouldn't be used when the \maketitle command + is present, since the latter command invokes this feature. +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{book} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<configure infoht4 book\><<< +Package options +--------------- + + 1 cut-off document into pages at the \part level + 2 cut-off document into pages at the \chapter and higher levels + 3 cut-off document into pages at the \section and higher levels + 4 cut-off document into pages at the \subsection and higher levels + + The chapter of \tableofcontents is created only + if \contentsname is not empty + + Macros sensitive to edef commands in sectioning titles + should be neutralize within \Configure{@TITLE}{....} + +|maketitleInfo +>>> + + +\section{report} + +\<configure infoht4 report\><<< +Package options: + + 1 cut-off document into pages at the \part level + 2 cut-off document into pages at the \section and higher levels + 3 cut-off document into pages at the \subsection and higher levels + 4 cut-off document into pages at the \subsubsection and higher levels + + The section of \tableofcontents is created only + + if \contentsname is not empty + + Macros sensitive to edef commands in sectioning titles + should be neutralize within \Configure{@TITLE}{....} + +|maketitleInfo +>>> + + + +\section{article} + +\<configure infoht4 article\><<< +Package options: + + 1 cut-off document into pages at the \part level + 2 cut-off document into pages at the \section and higher levels + 3 cut-off document into pages at the \subsection and higher levels + 4 cut-off document into pages at the \subsubsection and higher levels + + The section of \tableofcontents is created only + if \contentsname is not empty + + Macros sensitive to edef commands in sectioning titles + should be neutralize within \Configure{@TITLE}{....} + +|maketitleInfo +>>> + +\<configure infoht4 amsart\><<< + +|maketitleInfo +>>> + + +\endinput + + diff --git a/support/TeX4ht/source/tex4ht-info-javahelp.tex b/support/TeX4ht/source/tex4ht-info-javahelp.tex new file mode 100644 index 0000000000..0ece4ede6e --- /dev/null +++ b/support/TeX4ht/source/tex4ht-info-javahelp.tex @@ -0,0 +1,123 @@ +% $Id: tex4ht-info-javahelp.tex 237 2017-01-29 18:20:42Z karl $ +% compile 3 times: latex tex4ht-info-javahelp +% or htlatex tex4ht-info-javahelp "html,sections+" +% or ht latex tex4ht-info +% +% Copyright 2009-2017 TeX Users Group +% Copyright 2006--2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{infojh} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + + +\input{common-info} +\input{common} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{INFO} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<infojh\><<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% infojh.4ht |version % +% Copyright (C) |CopyYear.2000. Eitan M. Gurari % +% % +% This program can redistributed and/or modified under % +% the terms of the LaTeX Project Public License % +% Distributed from CTAN archives in directory % +% macros/latex/base/lppl.txt; either version 1 of the % +% License, or (at your option) any later version. % +% % +% If you modify this program your changing its signature % +% with a directive of the following form will be % +% appreciated. % +% \message{signature} % +% % +% gurari@cse.ohio-state.edu % +% http://www.cse.ohio-state.edu/~gurari % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\immediate\write-1{version |version} +{ \catcode`\@=0 \catcode`\\=11 @relax + @gdef@infoIVht[#1]#2//{% + @ifnum #1>1 + @def@infoIVht[##1]##2//{% + @ifnum ##1>1 @ifnum ##1<#1 + @bgroup + @no:catcodes0{255}{11}% + @no:catcodes{91}{91}{12}% [ + @no:catcodes{47}{47}{12}% / + @newlinechar13 % + @long@def@infoIVht####1\ifx\infoIVht####2infoIVht[####3//{% + @def@infoIVht{******************************************}% + @immediate@write-1{@infoIVht}% + @immediate@write-1{****** @csname :Hin@endcsname.4ht}% + @immediate@write-1{@infoIVht}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{####1}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{@infoIVht}% + @egroup}% + @expandafter@expandafter@expandafter@infoIVht + @fi@fi }% + @fi } +} +>>> + + + + + + + +\chapter{The Code} + +\section{tex4ht} + +\<configure infojh tex4ht\><<< +\Configure{mapIdTarget}....................2 + + #1 target + #2 definitions + + Given: \sectionType, \sectionId, \sectionName + +Examples: + + \Configure{mapIdTarget} + {\sectionName} + {} + + \Configure{mapIdTarget} + {\spacelessName} + {\immediate\openout15=\jobname .tmp + \immediate\write15{\def\string\spacelessName{\sectionName}}% + \immediate\closeout15 + \catcode`\ =9 + \input \jobname .tmp + \catcode`\ =10 + } +>>> + + + + + + +\endinput + + diff --git a/support/TeX4ht/source/tex4ht-info-mml.tex b/support/TeX4ht/source/tex4ht-info-mml.tex new file mode 100644 index 0000000000..5667dbae43 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-info-mml.tex @@ -0,0 +1,144 @@ +% $Id: tex4ht-info-mml.tex 314 2017-05-14 18:30:18Z karl $ +% compile 3 times: latex tex4ht-info-mml +% or htlatex tex4ht-info-mml "html,sections+" +% or ht latex tex4ht-info-mml +% +% Copyright 2009-2017 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{infomml} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input ./mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-info} +\input{common} +\expandafter\ifx \csname YES\HTML\endcsname\relax +\else + \def\CleanComment#1tex4ht-info-mml#2#3#4.#5>#6//{[#4% <--jobname + \if,\ifnum \FIRST=#6 .\else ,0\fi\fi]#6//} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Info MML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<infomml\><<< +% infomml.4ht (|version), generated from |jobname.tex +% Copyright 2009-2017 TeX Users Group +% Copyright |CopyYear.2000. Eitan M. Gurari +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project <http://tug.org/tex4ht>. +% +% If you modify this program, changing the +% version identification would be appreciated. +\immediate\write-1{version |version} +{ \catcode`\@=0 \catcode`\\=11 @relax + @gdef@infoIVht[#1]#2//{% + @ifnum #1>1 + @def@infoIVht[##1]##2//{% + @ifnum ##1>1 @ifnum ##1<#1 + @bgroup + @no:catcodes0{255}{11}% + @no:catcodes{91}{91}{12}% [ + @no:catcodes{47}{47}{12}% / + @newlinechar13 % + @long@def@infoIVht####1\ifx\infoIVht####2infoIVht[####3//{% + @def@infoIVht{******************************************}% + @immediate@write-1{@infoIVht}% + @immediate@write-1{****** @csname :Hin@endcsname.4ht}% + @immediate@write-1{@infoIVht}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{####1}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{@infoIVht}% + @egroup}% + @expandafter@expandafter@expandafter@infoIVht + @fi@fi }% + @fi } +} +>>> + + + + + + + +\chapter{The Code} + +\<configure infomml tex4ht\><<< +math +---- +\Configure{math}.........................1 + + Contribution for the <math> tag +>>> + + +\section{plain} + + + \<configure infomml plain\><<< +mfenced +------- + + \Configure{mfenced} ............... 2 + + #1 source delimiter + #2 target delimiter + + Request substitution of delimiters for the <mfenced> element + +>>> + + + + \<configure infomml latex\><<< +stackrel +-------- +Command line options for \Preamble + + stackrel- configures the \stackrel commands into + <mglyph alt="\stackrel{...}{...}" /> elements + +mfenced +------- + + \Configure{mfenced} ............... 2 + + #1 source delimiter + #2 target delimiter + + Request substitution of delimiters for the <mfenced> element + +>>> + +\section{book} + +\endinput + + diff --git a/support/TeX4ht/source/tex4ht-info-ooffice.tex b/support/TeX4ht/source/tex4ht-info-ooffice.tex new file mode 100644 index 0000000000..55e375982c --- /dev/null +++ b/support/TeX4ht/source/tex4ht-info-ooffice.tex @@ -0,0 +1,93 @@ +% $Id: tex4ht-info-ooffice.tex 65 2010-11-17 19:16:45Z karl $ +% compile 3 times: latex tex4ht-info-ooffice +% or htlatex tex4ht-info-ooffice "html,sections+" +% or ht latex tex4ht-info-ooffice +% +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) 2005-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{infoof} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-info} +\input{common} +\input{tex4ht-cpright} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Info OpenOffice} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<infoof\><<< +% infoof.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2005. Eitan M. Gurari +|<TeX4ht copywrite|> +{ \catcode`\@=0 \catcode`\\=11 @relax + @gdef@infoIVht[#1]#2//{% + @ifnum #1>1 + @def@infoIVht[##1]##2//{% + @ifnum ##1>1 @ifnum ##1<#1 + @bgroup + @no:catcodes0{255}{11}% + @no:catcodes{91}{91}{12}% [ + @no:catcodes{47}{47}{12}% / + @newlinechar13 % + @long@def@infoIVht####1\ifx\infoIVht####2infoIVht[####3//{% + @def@infoIVht{******************************************}% + @immediate@write-1{@infoIVht}% + @immediate@write-1{****** @csname :Hin@endcsname.4ht}% + @immediate@write-1{@infoIVht}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{####1}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{@infoIVht}% + @egroup}% + @expandafter@expandafter@expandafter@infoIVht + @fi@fi }% + @fi } +} +>>> + + + + + + + +\chapter{The Code} + +\section{latex} + +\<configure infoof latex\><<< +\Configure{enumerate:1}.................. 3 +\Configure{enumerate:2}.................. 3 +\Configure{enumerate:3}.................. 3 +\Configure{enumerate:4}.................. 3 + + #1 label type: 1, a, A, i, I + #2 left delimiter + #3 right delimiter +>>> + + + + + + +\endinput + + diff --git a/support/TeX4ht/source/tex4ht-info-svg.tex b/support/TeX4ht/source/tex4ht-info-svg.tex new file mode 100644 index 0000000000..8c23ada10f --- /dev/null +++ b/support/TeX4ht/source/tex4ht-info-svg.tex @@ -0,0 +1,159 @@ +% $Id: tex4ht-info-svg.tex 315 2017-05-15 13:37:50Z michal_h21 $ +% compile 3 times: latex tex4ht-info-svg +% or htlatex tex4ht-info-svg "html,sections+" +% or ht latex tex4ht-info +% +% Copyright 2009-2017 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{infosvg} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-info} +\input{common} +\expandafter\ifx \csname YES\HTML\endcsname\relax +\else + % \def\CleanComment#1tex4ht-info-svg#2#3#4.#5>#6//{[#4% <--jobname + % \if,\ifnum \FIRST=#6 .\else ,0\fi\fi]#6//} + % Michal 05/10/2017 + % The following code works in other info files, but not in this one + % I don't really don't know why + \def\<{\edef\FIRST{\the\inputlineno}\let\<\saveCd \saveCd} + \def\CleanComment#1tex4ht-info-svg#2#3#4.#5>#6//{[#4% <--jobname + \if,\ifnum \FIRST=#6 .\else ,0\fi\fi]#6//} + % \def\eatIV#1#2#3#4{} +\fi + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Info SVG} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<infosvg\><<< +% infosvg.4ht (|version), generated from |jobname.tex +% Copyright 2009-2017 TeX Users Group +% Copyright |CopyYear.2000. Eitan M. Gurari +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project <http://tug.org/tex4ht>. +% +% If you modify this program, changing the +% version identification would be appreciated. +\immediate\write-1{version |version} +{ \catcode`\@=0 \catcode`\\=11 @relax + @gdef@infoIVht[#1]#2//{% + @ifnum #1>1 + @def@infoIVht[##1]##2//{% + @ifnum ##1>1 @ifnum ##1<#1 + @bgroup + @no:catcodes0{255}{11}% + @no:catcodes{91}{91}{12}% [ + @no:catcodes{47}{47}{12}% / + @newlinechar13 % + @long@def@infoIVht####1\ifx\infoIVht####2infoIVht[####3//{% + @def@infoIVht{******************************************}% + @immediate@write-1{@infoIVht}% + @immediate@write-1{****** @csname :Hin@endcsname.4ht}% + @immediate@write-1{@infoIVht}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{####1}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{@infoIVht}% + @egroup}% + @expandafter@expandafter@expandafter@infoIVht + @fi@fi }% + @fi } +} +>>> + + +\chapter{Options} + +\section{tex4ht} + + +\<configure infosvg tex4ht\><<< + +The output or pictures in SVG format can be requested using following command +line options: + +svg +--- + +Include pictures as external images. Existing configuration for SVG images is +used. This is preffered way in modern documents. + +svg-object +---------- + +Include pictures using <object> elements. + +svg- +---- + +This configuration is simillar to the previous one + +svg-inline +---------- + +Include the pictures directly to the XML document. + +>>> + + + +\chapter{The Code} + +\section{tex4ht} + +\<configure infosvg tex4ht\><<< +SVG +--- + + Configured through IMG + + Example: + \Configure{IMG} + {\special{t4ht=<object type="image/svg+xml" data="}} + {\special{t4ht=" name="}} + {" } + {\special{t4ht=" }} + {\special{t4ht=></object>}} +>>> + + + + + + +\endinput + + diff --git a/support/TeX4ht/source/tex4ht-info.tex b/support/TeX4ht/source/tex4ht-info.tex new file mode 100644 index 0000000000..75c784f811 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-info.tex @@ -0,0 +1,4190 @@ +% $Id: tex4ht-info.tex 905 2021-04-18 15:30:06Z karl $ +% Compile with the command `ht latex tex4ht-info' +% or +% compile 3 times: latex tex4ht-info +% or xhlatex tex4ht-info "html,3,sections+" +% Copyright 2009-2021 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{info4ht} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + + +\input{common-info} +\input{common} +\expandafter\ifx \csname YES\HTML\endcsname\relax +\else + \def\CleanComment#1tex4ht-info#2#3#4.#5>#6//{[#4% <--jobname + \if,\ifnum \FIRST=#6 .\else ,0\fi\fi]#6//} +\fi + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{INFO} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<info4ht\><<< +% info4ht.4ht (|version), generated from |jobname.tex +% Copyright 2009-2021 TeX Users Group +% Copyright |CopyYear.2000. Eitan M. Gurari +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project <http://tug.org/tex4ht>. +% +% If you modify this program, changing the +% version identification would be appreciated. +\immediate\write-1{version |version} +{ \catcode`\@=0 \catcode`\\=11 @relax + @gdef@infoIVht[#1]#2//{% + @ifnum #1>1 + @def@infoIVht[##1]##2//{% + @ifnum ##1>1 @ifnum ##1<#1 + @bgroup + @no:catcodes0{255}{11}% + @no:catcodes{91}{91}{12}% [ + @no:catcodes{47}{47}{12}% / + @newlinechar13 % + @long@def@infoIVht####1\ifx\infoIVht####2infoIVht[####3//{% + @def@infoIVht{******************************************}% + @immediate@write-1{@infoIVht}% + @immediate@write-1{****** @csname :Hin@endcsname.4ht}% + @immediate@write-1{@infoIVht}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{####1}% + @bgroup + @def@infoIVht{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*}% + @let~=@space @immediate@write-1{@infoIVht}% + @egroup + @immediate@write-1{@infoIVht}% + @egroup}% + @expandafter@expandafter@expandafter@infoIVht + @fi@fi }% + @fi } +} +>>> + + + + + + + + + + + +\chapter{The Code} + + +\section{tex4ht} + +\<configure info4ht Preamble\><<< +\Configure{PROLOG}.........1 + + #1 Comma separated list of hooks to appear before HTML. + + Each hook E is declared to be configurable by an + instruction of the form \NewConfigure{E}{1} + + A star '*' prefix calls for accumulative configurations + + Example: + + \Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} + \Configure{VERSION} + {\HCode{<?xml version="1.0"?>}} + +\Configure{ext}............1 + + #1: default extension name for target files (recorded in \:html) + + Can also be requested through a command line option ext=... + +\Preamble...................0 + + Records the list of the requested options. Defined upon entering + the environment \Preamble{...}....\EndPreamble, to replace the + earlier version of \Preamble. + +\ifOption ................. 3 + + #1 Argument to be checked wheteher it is a given option. + #2 True part + #3 False part +>>> + + + +\<configure info4ht tex4ht\><<< +Wrapper for the Document +------------------------ + +\Configure{DOCTYPE}.........1 +\Configure{HTML}............2 +\Configure{HEAD}............2 +\Configure{@HEAD}...........1 +\Configure{BODY}............2 +\Configure{TITLE+}..........1 +\Configure{TITLE}...........2 +\Configure{@TITLE}..........1 +\Configure{Preamble}........2 + + <DOCTYPE> + <HTML 1> + <HEAD 1> + <TITLE 1> + <@TITLE> + <TITLE+> + <TITLE 2> + <@HEAD> + <HEAD 2> + <BODY 1> + ...... + <BODY 2> + <HTML 2> + +The \Configure{@HEAD}{...} command is additive, concatenating the +content of all of its appearances. An empty parameter requests +the cancellation of the earlier contributions. + +For instance, + + \Configure{@HEAD}{A} + \Configure{@HEAD}{} + \Configure{@HEAD}{B} + \Configure{@HEAD}{C} + +contributes `BC'. + +The \Configure{TITLE+} provides the content for the title, +\Configure{TITLE} sets the envelop, and \Configure{@TITLE} acts as a +hook for introducing localized configurations. As is the case for +\Configure{@HEAD}, the contribution of \Configure{@TITLE} is also +additive. + +These configurations should be introduced early enough in the +compilation. For instance, in the case of LaTeX, between \Preamble +and \begin{document} of a local configuration file. + + \Preamble + %%% here %%% + \begin{document} + ... + \EndPreamble + + +\Configure{@BODY}...........1 +\Configure{@/BODY}..........1 + + Variants of \Configure{@HEAD} which contribute their content, + respectively, after <body> and before </body>. + +\Configure{CutAtTITLE+}.....1 +\Configure{HPageTITLE+}.....1 + + #1 an insertion just before the content of <TITLE>; + + If #1 is a one parametric macro, it gets the title content for + an argument. + + +Support for Sectioning Commands +------------------------------- + +\Configure{unit-name} ......................4 + + #1 start + #2 end + #3 before title + #4 after title + + Example: + + \Configure{section} + {\HCode{<section>}} {\HCode{</section>}} + {\HCode{<title>}} {\HCode{}} + + +\ConfigureMark{unit-name}...................1 + + Defines a macro \<>HMark to hold the given argument. + Upon entering the unit, \TitleMark gets the content of this macro. + + Some built-in configurations of TeX4ht require an argument for the + \<>HMark commands. For safety, these commands should + always be followed by a, possiblely empty, argument. The argument + should be a separator between the title mark and its content. + + Example: + + \Configure{section} + {}{} + {\HCode{

        }\TitleMark\space} {\HCode{

        }} + \ConfigureMark{section}{\thesection} + + +\Configure{toTocLink}.......................2 + + Each unit title contains a \Link{...}{...}...\EndLink command. + The first argument of \Link points to the first table of contents + referencing the title. The second argument provides an anchor + for references to the title (mainly from tables of contents). + + The package option `section+' requests the inclusion of the + title within the anchor. Without this option, the link command + resides between the title mark and its content. + + The \Configure{toTocLink} command is provided for configuring + the \Link and \EndLink instructions. In the default setting, + when the `sections+' option is not activated, the \Link + command is altered to replace its first argument with an empty + argument. + + Example: + + \Configure{toTocLink} + {\Link} + {\ifx \TitleMark\sectionHMark + \Picture[\up]{haut.jpg align="right"}% + \EndLink + \TitleMark\space + \else \EndLink \fi + } + \def\up{[up]} + +\Configure{toToc}...........................2 + + #1 unit type + #2 desired contents type (if empty, `unit type' is assumed) + + Example: \Configure{toToc}{chapter}{likechapter} + Introduces chapter as likechapter into toc + + #1 empty: stop adding entries of `unit type' to toc + @: add entries of `unit type' to toc + ?: resume mode in effect before the last stop + #2 unit type + + Example: \Configure{toToc}{}{chapter} + \chapter{...} + \Configure{toToc}{@}{chapter} + +\Configure{writetoc}.........................1 + + #1 Configuration material for the insertion instruction. + New configurations are added to those request earlier + by the command. An empty argument cancels the earlier + contributions. + +\NoLink.......................1 + + Ignore option `section+' for sections of type #1 + +\TitleCount + + Count of entries submitted to the toc file + +\Configure{NoSection}.........2 + + Insertions around the parameters of sectioning commands, applied when + the parameters are not used to create titles for the divisions. + + +\CutAt{#1,#2,#3,...} + + #1 section type to be placed in a separate web page + #2,#3,... end delimiting section types, other than #1, for + the web pages + A `+' before #1 requests hypertext buttons for the web pages + + Examples: + + \CutAt{mychapter,myappendix,mypart} + \CutAt{+myappendix,mychapter,mypart} + + Cut points at arbitrary points can be introduced by introducing section-like + commands in a manner similar to + + \NewSection\mysection{} + \CutAt{mysection} + + +\Configure{+CutAt}.................................3 + + #1 sectioning type + #2 before + #3 after + + Requests delimiters for the \CutAt buttons of the specified + sectioning type + + Example: \Configure{+CutAt}{mysection}{[}{]} + +\PauseCutAt{#1} +\ContCutAt{#1} + + #1 section type + +\Configure{CutAt-filename} ........................1 + + A 2-parameter hook for tailoring section-based filenames. + The section type is available through #1. The section title + is accessible through #2. + + Example: \Configure{CutAt-filename}{\NextFile{#1-#2.html}} + + +Tables of Contents +------------------ + +Created from the entries collected in the previous compilation within +a jobname.4tc file. + +\ConfigureToc{unit-name} ......................4 + + #1 before unit number + #2 before content + #3 before page number + #4 at end + + * Empty arguments request the omission of the corresponding field. + + * \TocCount Specifies the entry count withing the jobname.4tc file. + + * \TitleCount Count of entries submitted to the toc file + + * An alternative to \ConfigureToc{unit-name}: + + \def\toc#1#2#3{#1#2% + #3} + + + Example: + + \ConfigureToc{section} + {} + {\Picture[*]{pic.jpg width="13" height="13"}~} + {} + {\HCode{
        }} + + +\Configure{TocLink}..................4 + + Configures the link offered in the third arguments of \ConfigureToc + + Example: \Configure{TocLink}{\Link{#2}{#3}#4\EndLink} + +\TocAt{#1,#2,#3,...} + + #1 section type for which local tables of contents + \Toc#1 are requested + #2,#3,... sectioning types to be included in the tables of + contents + + The non-leading arguments may be preceded by slashes '/', in + which cases the arguments specify end points for the tables. + + The default setting requests automatic insertion of the local + tables immediately after the sectioning heads. + + A star `*' character may be introduced, between the \TocAt and + the left brace, to request the appearances of the tables of + contents at the end of the units' prefaces. + + A hyphen `-' character, on the other hand, disables the automatic + insertions of the local tables. + + In case of a single argument, the command removes the + existing definition of \Toc#1. + + Example: + \TocAt{mychapter,mysection,mysubsection,/myappendix,/mypart} + \TocAt-{mysection,mysubsection,/mylikesection} + \section{...}...\Tocmysection + + The definition of the local table of contents can be redefined + within \csname Toc#1\endcsname. + + Example: + + \TocAt{section} + \def\Tocsection{\TableOfContents[section]} + + \Css{div.sectionTOCS { + width : 30\%; + float : right; + text-align : left; + vertical-align : top; + margin-left : 1em; + font-size : 85\%; + background-color : \#DDDDDD; + }} + + Example: Table of content before the section title. + + \Configure{section}{}{} + {\Tocsection \let\saveTocsection=\Tocsection + \def\Tocsection{\let\Tocsection=\saveTocsection}% + \ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn\ShowPar \IgnoreIndent \par} + + +\Configure{TocAt}......................2 +\Configure{TocAt*}.....................2 + + #1 before the tables of contents + #2 after the tables of contents + + +Navigation Links for Sectioning Divisions +----------------------------------------- + +\Configure{crosslinks}.....................8 + + #1 left delimiter + #2 right delimiter + #3 next + #4 previous + #5 previous-tail + #6 front + #7 tail + #8 up + + The content to be displayed in the pointers + +\Configure{crosslinks*}.................1--7 + + Links to be included and their order. Available + options: next, prev, prevtail, tail, front, up. + The last argument must be empty. + + Default: + + \Configure{crosslinks*} + {next} + {prev} + {prevtail} + {tail} {front} + {up} + {} + +\Configure{crosslinks+}.....................4 + + #1 before top menu + #2 after top menu + #3 before bottom menu + #4 after bottom menu + + The top cross links are omitted, if both #1 and #2 are empty. + The bottom cross links are omitted, if both #3 and #4 are empty. + +\Configure{next}.....................1 + #1 the anchor of the next button of the front page. + + Default: The value provided in \Configure{crosslinks} + +\Configure{next+}.............................2 + + #1 before the next button of the front page, when the `next' + option is active. + #2 after the button + + Default: The values provided in \Configure{crosslinks} + +\Configure{crosslinks:next}..................1 +\Configure{crosslinks:prev}..................1 +\Configure{crosslinks:prevtail}..............1 +\Configure{crosslinks:tail}..................1 +\Configure{crosslinks:front}.................1 +\Configure{crosslinks:up}....................1 + + #1 local configurations for the delimiters and hooks + +\Configure{crosslinks-}.....................2 + + Asks to show linkless buttons with the following insertions. + + #1 before + #2 after + + The default values are used, if both #1 and #2 are empty + + Examples: + + \Configure{crosslinks-}{}{} + + \Configure{crosslinks-} + {\HCode{} } + \Css{span.hidden {visibility:hidden;}} + +Paragraphs +---------- + +\Configure{HtmlPar}..........4 + + #1 content at the start non-indented paragraphs + #2 content at the start indented paragraphs + #3 insertion into \EndP, at the start of non-indented paragraphs + #4 insertion into \EndP, at the start of indented paragraphs + + \HtmlParOff + \HtmlParOn + + \IgnorePar Asks to ignore the next paragraph + \ShowPar Asks to take into account the following paragraphs + + \IgnoreIndent asks to ignore indentation in the next paragraph + \ShowIndent asks to check indentation in the following paragraphs + + \SaveEndP Saves the content of \EndP, and sets it to empty content + \RecallEndP + + \SaveHtmlPar + \RecallHtmlPar + + + Example: + \Configure{@BODY} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }\par\ShowPar} + \Configure{@/BODY} + {\ifvmode \IgnorePar\fi \EndP + \HCode{
        }} + + +Cross-Linking +------------- + +\Link[@1 @2]{@3}{@4}...\EndLink + + Creates + + ... + + * When @1 is empty, tex4ht will derive its value automatically. + The derived value will be the file name containing the target @3. + + * \Link may be followed by `-', if tex4ht needs not automatically + determine (for other \link commands) the file containing @4. + In the present of such a flag, tex4ht can spare a definition of + one macro. + + * The component [@1 @2] is optional. If omitted, @1 and @2 are + assumed to be empty + + * The href attribute is omitted when @1 and @3 are empty + + * The name attribute is omitted when @4 is empty + + Examples: + + \Link{a}{}...\Endlink ..... \Link{}{b}...\EndLink + \Link[http://foo id="fooo"]{a}{b}...\EndLink + +\Configure{Link}..............4 + + Configures \Link...\EndLink so that + + #1 replaces `a' + #2 replaces `href=' + #3 replaces `name=' + #4 replaces `#'. If empty, the older value remains in effect. + + Examples: + + \Configure{Link}{a}{href=}{name=}{} + \Configure{Link}{ref}{target=}{id=}{\empty} + +\Configure{?Link}..............1 + + #1 insertion before broken links + + To help with debugging + +\LinkCommand...................1 <= i <= 6 + + Creates a \Link-like command + + #1 tag name + #2 href-like attribute + #3 name-like attribute + #4 insertion + #5 /, if empty element + #6 replacement for # (ignored if absent) + + Example: + + \LinkCommand\JSLink{a,\noexpand\jsref,name} + \def\jsref="#1"{href="javascript:window.open('#1')"} + + \JSLink{a}{}xx\EndJSLink + \Link{}{a}\EndLink % or \JSLink{}{a}\EndJSLink + +\Configure{XrefFile}.....................1 + + #1 names cross-references of files (appends #1 to `)F' and `)Q' + entries of the .xref files). Applicable mainly implicitly + within \Link commands + +\Tag.....................................2 + + #1 label + #2 content + +\Ref.....................................1 +\LikeRef.................................1 + + #1 label + + \Tag and \Ref are tex4ht.sty commands introduced cross-referencing + content through .xref auxiliary files. + + \LikeRef is a variant of \Ref which doesn't verify whether the + labels exit. It is mainly used in \Link and \edef environments. + +\ifTag ..................................3 + + #1 quetioned tag + #2 true part + #3 false part + +\LoadRef-[prefix]+{filename.ext}{pattern} + + Load the named xref-type file + + .xref optional--`.xref' is assume for a default + + optional-- asks \Ref and \LikeRef commands + to use expanded tags `filename::tag', instead of just `tag' + [prefix] optional--asks just for tags starting with the + specified prefix. + - optional--deletes the prefixes from the loaded tags + {pattern} to be included only when `[prefix]' or `+' are included. + States how tags are to be addressed, with the parameter + symbol `#1' specifying the loaded part. + + Example: + + % a.tex + \LoadRef-[to:]{b}{from:#1} \Ref{from:filename} + \LikeRef{from:filename} + + % b.tex + \Tag{to:filename}{\FileName} + + Example: + + \LoadRef-[)F]{file}{)Ffoo##1} + \LoadRef-[)Q]{file}{)Qfoo##1} + \Configure{XrefFile}{foo} \Link...\EndLink + + \LoadRef{another-file} + + +Files +----- + +\FileName Holds the name of the current hypertext file +\FileNumber Holds the internal number of the current hypertext file +\RefFileNumber...........................1 + #1 File number + + Provides the file name + +\NextFile.................................1 + #1 Requested name for the next file + +\Hinput{#1} + + The command asks to load the configuration files associated + with mark #1. + +\Hinclude[#1]{#2} + + The command associates configuration file #2 with mark #1. If + the mark is the star character `*', the configuration files is + associated to all marks. The command is applicable until the + \Preamble command is processed + + For instance, \Hinclude[*]{html4.4ht}....\Hinput{latex} + +\Hinclude{#1}{#2} + + The command is applicable while the \Preamble command is + processed. Its purpose is to load *4ht hook files within + the fragments of code specified in #1. + + For instance, \Hinclude{\input plain.4ht}{plain} + + +Fonts +----- + +\Configure{htf}...............................9 + + #1 label (integer 0--255) + #2 delimiter (a character not appearing in #3,...,#9) + even label odd label + #3 start opening tag start empty tag + #4 name alt + #5 size name + #6 mag size + #7 mag + #8 end the tag ord + #9 closing tag end the tag + + The htf fonts assign a content and a label to each symbol (possibly + followed by a comment). For instance, + + 'e' '1' epsilon + 'z' '3' zeta + + An even label asks that the content itself will be used for the + symbol, and an odd label asks that the symbol will be represented by a + bitmap. In the later case, the content serves as a substitution for + browsers which don't exhibit bitmaps. + + The \Configure{htf}... command provides label-dependent wrappers to + chosen representations. + + If they are not empty, `mag' and `ord' must be c-type + patterns for integer arguments, and `name' and `size' + should be a patterns for strings. The `mag' entry is + ignored for fonts of the default dimension. Together + they specify a attribute-value format, mainly for references + in the css code. + + Examples: + + \Configure{htf}{0}{+}{}{} + \Configure{htf}{1}{+}{} + +\Configure{htf-attr}....................... 2 + + #1 c-pattern for the font name and size + #2 c-pattern for font magnification + + Specify the format of the selectors within the css files. + + Example: + \Configure{htf-attr}{.\%s-%s}{--\%s} + +\Configure{htf-css}....................... 2 + + #1 font name or label + #2 css entry + + A variant of the \Css command. If #1 is a font name, + the contribution replaces the one given within the + htf font definition. If #1 is a label for an entry + of a htf font, the contribution is added to the css + file. The contribution is offered, only when the + font is in use. + + Example: + + \Configure{htf-css}{4}{.small-caps{font-variant: small-caps;}} + + +Bitmaps +------- + +\Configure{Picture}....................... #1 + + #1 Extension name for bitmap files of dvi pictures, + stored in \PictExt + + Default: \Configure{Picture}{.png} + + The extension names of bitmap files of glyphs of htf fonts may be + determined within a g-entry in the environment file tex4ht.env, or a + g-flag of the tex4ht.c utility. + +\Configure{Picture-alt}......................1 + + #1 alt value for \Picture+{...} and \Picture*{...} + +\Configure{Picture+}.........................2 +\Configure{Picture*}.........................2 + + #1 before the dvi picture code + #2 after the dvi picture code + + Typically, the plus `+' variant is introduced as an inline + contribution into paragraphs, and the star `*' variant as an + independent block between paragraphs. + +\Configure{PictureAlt}........................2 +\Configure{PictureAlt*+}......................2 +\Configure{PictureAlt*+[]}....................2 + + #1 definitions before alt + #2 definitions after alt + + Apply to \Picture{...}, \Picture*+{...}, and \Picture*+[...]{...} + +\Configure{PictureAlt}........................1 +\Configure{PictureAlt*+}......................1 +\Configure{PictureAlt*+[]}....................1 + + #1 definition for attributes (introduced through + a parameter named `#1') + + Apply to \Picture{...}, \Picture*+{...}, and \Picture*+[...]{...} + +\Configure{IMG}...............................5 + + #1 before file name + #2 between file name and alt + #3 close alt for \Picture without * or + + #4 close alt for \Picture with * and + + #5 right delimiter + + Example: + + \Configure{IMG} + {\ht:special{t4ht=}}
+        { + \overwithdelims + \atopwithdelims + \abovewithdelims + + Example: + + \Configure{over} + {\Send{GROUP}{0}{[before]}[before-rule]} + {[before-argument]\Send{EndGROUP}{0}{[after]}} + + +\Configure{MathClass}........................5 + + #1 class number + 0: mathord, 1: mathop, 2: mathbin, 3: mathrel, + 4: mathopen, 5: mathclose, 6: mathpunc + #2 delimiter + #3 before + #4 after + #5 characters + + Extra support: + + \PauseMathClass + \EndPauseMathClass + \NewMathClass (7, 8, ...) + +\Configure{FormulaClass}.....................4 + + #1 class number + 0: mathord, 1: mathop, 2: mathbin, 3: mathrel, + 4: mathopen, 5: mathclose, 6: mathpunc + #2 a character not in #3 and #4 + #3 before + #4 after + + If #2 is empty, the formula gets the same marking as a + single character of the specified type + +\Configure{FormulaClass*}....................4 + + Like the previous case, but allow marking in the + nested content. + +\Configure{MathDelimiters}...................2 + + #1 left + #2 right + +\Configure{mathbin*}.........................4 +\Configure{mathclose*}.......................4 +\Configure{mathop*}..........................4 +\Configure{mathopen*}........................4 +\Configure{mathord*}.........................4 +\Configure{mathpunct*}.......................4 +\Configure{mathrel*}.........................4 + + #1 a character not presented in #2#3#4 + #2 code before + #3 code after + #4 possible definitions for successive cases + + Example: + \Configure{mathop*}{*}{}{} + {\Configure{mathop}{*}{}{}{}} + \mathop{\overline{x \mathop{op} y}} \limits^{a=3} + +\Configure{mathbin}..........................4 +\Configure{mathclose}........................4 +\Configure{mathopen}.........................4 +\Configure{mathop}...........................4 +\Configure{mathord}..........................4 +\Configure{mathpunct}........................4 +\Configure{mathrel}..........................4 + +Variants of the above group, requesting to supress nested marks. + +\Configure{nolimits}.........................1 + +\MathSymbol + +AtBeginDocument +--------------- + +\Configure{AtBeginDocument}..................2 + + #1 before the corresponding hook of latex + #2 after + + Insertions are accumulative, and can be erased by providing + two empty arguments + +Other Hooks +----------- + + \Configure{HChar}...................1 + + #1 a character + + The \HChar{i} instruction inserts the character code i with the + font information of character #1, when i is positive. If i is + negative, the font info is not included. + + +\Configure{Canvas} +\Configure{ExitHPage} +\Configure{LinkHPage}......................1 +\Configure{FontCss} +\Configure{HVerbatim+} +\Configure{MiniHalign} +\Configure{Needs-} +\Configure{Needs} + + +\Configure{TraceTables} +\Configure{edit} +\Configure{halignTB} +\Configure{halignTD} +\Configure{halign} +\Configure{hooks} +\Configure{moveright} + +\Configure{noalign-} +\Configure{pic-halign} + +\Configure{accent} +\Configure{mathaccent} +\Configure{accented} +\Configure{accenting} + + +Back-end Specials +----------------- + insertions + ---------- + = \special{t4ht=...content...} + Insert the specified content to the html output, under + edef mode of processing, and without using the mapping + of the htf fonts. Used in \HCode{...}. + @ \special{t4ht@...integer...} + Insert the absolute value as character code to the output. + Positve values ask the insertion to be included in place + of the next chracter, together with the font information + of that character. + files + ----- + > \special{t4ht>...file-name...} + Open a new file, if needed, and direct future output + to the specified file. Used in \File{...}. + < \special{t4ht<...file-name...} + Close the specified file. If it is the current file, + activate the youngest file. Used in \EndFile{...}. + >* \special{t4ht*>...file-name...} + Declare the file to be the oldest. + \special{t4ht*>} + Reactivate the file that activated the current file. + *< \special{t4ht*... push current value + :<... pop current value + :!... display current value + :|... display top value + + messages to lg file + ------------------- + + \special{t4ht+@...message...} + Send message to the lg file. Used in the \Needs{...} command. + @ \special{t4ht@D....} + Send message to the lg file, together with location and file + stamp. + + positional code + ------------------- + " \special{t4ht"} + Start/end positional env + \special{t4ht"* before-all * after-all ...** before-char + * after-char * rect + *%A*%B*%C*%D*%E + * optional + Configure positioned code + * before-all + * after-all %... + ** before-char %x %y + * after-char + * rect %x1 %y1 ... + * x,x1-coefficients %A(x) + %B + * y1-coefficients %C(y1 - %E(height)) + %D + * y-coefficients %C(y) + %D + * optional: 1, 2 + + %x1 %y1 %length %thickness default + %x1 %y1 %x1+length %y1+thickness 1 + %x1 %y1 %x1+length %y1 %thickness 2 + + A-magnification, B-displacement + C-magnification, D-displacement, + E- origin (0: top, 0.5: mid, 1: bot) + + The %...'s should be c-type templates (e.g., "%.2f"; "%.0f" + gives an integer) + + Multiple after-all templates are allowed. The leading + character is a code specifying the dimension type. + x min x + X max x + y min y + Y max y + d dx + D dy + otherwise a string with no values + The delimiter `*' can be substitued by another character. + + + ~ \special{t4ht~...} + Grouped-base two-way delivery for content created by + inline commands like \over. + + \special{t4ht~}...\special{t4ht~} on/off + + ~i... send forward to the end of the group nested + at relative level i. + i=0, current group + + + ~<*... send back to start of previous token / group. + \special{t4ht~<)}...\special{t4ht~<(} + activate / deactivate back token / group submissions + \special{~<[}...\special{t4ht~<]}' + hide region from back submissions over token / group + \special{t4ht~<-} ... \special{t4ht~<+} + latex back token / group + + \special{t4ht\string~!...path...<...content} + insertion at the start of the group reached by the path + \special{t4ht\string~!...path...>...content} + insertion at the end of the group reached by the path + \special{t4ht\string~!...path.../} + ignore content within the group reached by the path + \special{t4ht\string~!...path...-} + ignore rulers from the group reached by the path + until the start of the next group + A path may consist only of `e' and `s' characters for, + respectively, entering and skipping groups + + *! \special{t4ht*! system command} + System call + *^ accent specials + t text accent #1#2#1#3#1#4#1#5#1#6 pattern + empty insertion point + m math accent #1#2#1#3#1#4#1#5#1 pattern + empty insertion point + a accented #1#2#1#3#1#4#1#5#1#6 + i #1#2#1#3#1#1 + *@ halign specials + +\HCode...............................1 + + A wrapper for \special{t4ht=...}. + + The sharp symbol # may be accessed indirectly through the command. + +\Hnewline............................0 + + Requests new lines within specials +>>> + +%%%%%%%%%%%%%%% +\section{latex} +%%%%%%%%%%%%%%% + + + + + +\>>>VBorder<<< +\Configure{VBorder}...................4 + + Break points, when scanning the pattern of column desriptions, at + + #1 at start of pattern + #2 at | + #3 at a non-@ entry + #4 at a @ entry + + Applies to \begin{tabular / array}{...pattern...} + + \ar:cnt index of entry in pattern + \ch:class records the current alignment type: -,<,>,p,... + \HColAlign produces the \Configure{halignTD} contribution + for the current alignment type + \HColWidth holds the width of the current p column + +\Configure{HBorder}..................10 + + hline: + #1 insert at start of row (e.g., ) + #2 insert at each cell (e.g.,
        ) + #3 insert at end of row (e.g., ) + + cline: + #4 insert at start of row (e.g., ) + #5 insert at each `extra' cell (e.g., ) + #6 insert at each cell (e.g.,
        ) + #7 insert at end of row (e.g., ) + + vspace: + #8 insert at start of row (e.g., ) + #9 insert at each cell (e.g.,  ) + #10 insert at end of row (e.g., ) + + The contributions are collected into \HBorder. (The \InitHBorder + clears \HBorder.) + +\Configure{putHBorder}...............1 + #1 Specifies how \HBorder is to be used. + + Example: \Configure{putHBorder}{\HCode{\HBorder}} + +>>> + +\<<< +Sectioning +---------- + +\Configure{@sec @ssect} + + +Tables of Contents +------------------ + + +\Configure{tableofcontents}........................5 + + #1 before + #2 at end + #3 after + #4 at indented paragraph break + #5 at non-indented paragraph break + + The \tableofcontents command may be followed by a comma separated + list of sectioning unit names to be included in the table of + contents. The list should be enclosed within square brackets. + Alternatively, a command of the form \TableOfContents[...] might + be used. + +Lists +----- + +\ConfigureList.....................5 + + #1 type of list (e.g., itemize, description, enumerate, + list, trivlist) + #2 before list + #3 after list + #4 before label + #5 after label + + \DeleteMark removes latex's label; to be placed at the end of #4 + \AnchorLabel defines an anchor for \label in current item; to + be placed in #5 + + +Tables +------ + +\Configure{tabular}...................6 +\Configure{array}.....................6 + + #1 before table #2 after table + #3 before row #4 after row + #5 before cell #6 after cell + + \HRow current row number + \HCol current column number + \HMultispan number of cells covered by the current cell + \ar:cnt number of columns in the table + + NOTE: Table require a number of compilations that depends + on the number of columns. + + Example + + \Configure{tabular} + {\HCode{}} + {\HCode{
        }} + {\HCode{}} + {\HCode{}} + {\HCode{1 colspan="\HMultispan"\fi >}} + {\HCode{}} + +|VBorder + +\Configure{halignTD}..................2 + 2i + {} + + interpretation for character codes referenced in \HAlign + + e.g., + + \Configure{halignTD} + {}{} + {<}{\HCode{style="text-align:left"}} + {-}{\HCode{style="text-align:center"}} + {>}{\HCode{style="text-align:right"}} + {^}{\HCode{style="vertical-align:top"}} + {=}{\HCode{style="vertical-align:baseline"}} + {||}{\HCode{style="vertical-align:middle"}} + {_}{\HCode{style="vertical-align:bottom"}} + {p}{\HCode{style="text-align:left"}} + {} + + \halignTD can be used in td elements to extract the alignment. + It recieves information from \halignTB. + +\Configure{halignTB}..................2 + + delimiters for \halignTB{tabular} + + Example + \Configure{halignTB}{\HCode{}} + +\Configure{tabbing}[mag]..................4 + + #1 before each line + #2 after each line + #3 before each entry + #4 after each entry + + [mag] optional parameter specifying the magnification desired + for the dimensions. When offered, the other parameters + have no effect if all of them are assigned empty arguments + + \TabType \` or \relax + \TabWidth Provides the entry width; 0 at trailing entry that is + not flushed rightward + + +Cross References +---------------- + +\Configure{ref}.......................3 + + #1 \Link-type command + #2 \EndLink-type command + #3 anchor (the system anchor is + reachable through the parameter name #1) + \RefArg Holds the argument of \ref + + If #1 is empty, the hyper links are ignored + If #3 is empty, the anchor is the one provided by the system + + Example: + + \Configure{ref}{\Link}{\EndLink}{{\bf #1}} + +\Configure{pageref}...................3 + + #1 before + #2 after + #3 anchor (system anchor, if parameter is empty) + +\Configure{newlabel}..................2 + + #1 address for hyperlink (\cur:th \:currentlabel, if empty) + #2 anchor (the system anchor is + reachable through the parameter name #1) + +\Configure{@newlabel}.................1 + + #1 modifications to the newlabel environment + +\Configure{newlabel-ref}..............1 + + #1 an intermediate link command for the aux file + (Configured by \Configure{ref}...) + + The default for #1 is \rEfLiNK + +\Configure{cite}......................4 + + #1 before + #2 after + #3 \Link-type command + #4 \EndLink-type command + + If #3 is empty, the hyper links are ignored. + +\Configure{bibitem}...................2 + + #1 \Link-type command + #2 \EndLink-type command + +\Configure{bibcite}...................1 + + #1 configurations for content transfered by bibitem to the aux file + + Example: + \Configure{bibcite} + {\def\hookrightarrow{\string\hookrightarrow}} + \bibitem[$\hookrightarrow$...]{...} + + +\LoadLabels[#1]{#2}.................... + + [#1] optional group name + #2 aux file name, without the extension + + Loads labels of another file, under the specified group name + +\RefLabel.............................2 + + #1 group name (for separating files and labels from + different sources) + #2 label + + A variant of \ref for loading labels produced for other files + + Example: + file1.tex: \label{foo} + + file2.tex: \LoadLabels[x]{file1} + \RefLabel{x}{foo} + +\SkipRefstepAnchor.....................0 + + No \Link anchor for next \refstepcounter + +\ShowRefstepAnchor.....................0 +\AutoRefstepAnchor.....................0 + + +Bibliography on bibtex2 option: + + \Configure{bibliography2}........................ 4 + + #1 before anchor + #2 anchor + #3 after anchor + #4 link attributes + + Example: + + \Configure{bibliography2} + {\bgroup ~~[\Configure{Link}{a}{target="x" href=}{ name=}{}} + {more} {]\egroup} + + \Configure{bibitem2}..............................3 + + #1 at start of bibitem + #2 at end of bibitem + #3 separator after label + + \Configure{bibliographystyle2}....................1 + + #1 an empty argument asks for the same style as the + normal aux file (still bibtex may produce different + output). + +Note: Option `bibtex2' requires compilation + of `\jobname j.aux' with bibtex. + +Captions +-------- + +refcaption + + An option for \Preamble, requesting anchors at \caption. The default + setting sends them back to the start of the floating environment. + + +Theorems +-------- + +\Configure{newtheorem} ......................3 + + #1 before theorem + #2 between title and body + #3 after theorem + +Math +---- +\Configure{()}...............................2 +\Configure{[]}...............................2 + + Example: + + \Configure{()}{\protect\PicMath$}{$\protect\EndPicMath} + \Configure{[]} {\Tg\DviMath$$} {$$\EndDviMath\Tg} + +\Configure{equation}.........................3 + + #1 at start + #2 between the equation and its numbering + #3 at end + + Examples: + + \Configure{equation} + {\IgnorePar\EndP\bgroup \Configure{HtmlPar}{}{}{}{}% + \HCode{
        }\IgnorePar + } + {\HCode{}} + {\HCode{
        }\egroup} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \Configure{equation} + {\IgnorePar\EndP \bgroup \Configure{$$}{}{}{}% + \Configure{@math}{display="inline"}\DviMath + \HCode{}\IgnorePar + } + {\IgnorePar\HCode{}} + {\HCode{}\EndDviMath\egroup} + + +\Configure{frac}.............................4 +\Configure{sqrtsign}.........................2 + +\Configure{mbox}.............................2 + +Environments of latex +--------------------- + + \ConfigureEnv{...}.........................4 + + #1 environment name + #2 before env + #3 after env + #4 before underlying list + #5 after underlying list + + #2 and #3 are ignore when they are both empty as well as + when there is no underlying list + + + array + center + flushleft + flushright + minipage + tabbing + tabular + verbatim* + verbatim + + + \Configure{@begin}........................2 + + #1 environment name + #2 insertion before the environment + + Example: + \Configure{@begin}{theindex}{\section*{\indexname}} + + +Verbatim +-------- + +\Configure{verbatim}......................2 + + #1 at start of line + #2 space character + +\Configure{verb}..........................2 + + #1 before + #2 after + +\Configure{obeylines}.....................3 + + #1 before + #2 at start of line + #3 after + +\ScriptEnv................................3 + + Introduces a verbatim environent + + #1 name + #2 before + #3 after + + A `-' immediately after \begin{...} designate as an escape symbol + the character following the dash + + Example: + + \ScriptEnv{foo} + {\HCode{}\NoFonts\hfill\break } + {\EndNoFonts \HCode{}} + + \begin{foo} + .... + .... + \end{foo} + + \begin{foo}-| + .... + .... + \end{foo} + + +Fonts +----- + +\Configure{texttt}........................2 +\Configure{textit}........................2 +\Configure{textrm}........................2 +\Configure{textup}........................2 +\Configure{textsl}........................2 +\Configure{textsf}........................2 +\Configure{textbf}........................2 +\Configure{textsc}........................2 +\Configure{emph}..........................2 + + #1 before content + #2 after content + + +Footnotes +--------- + +\Configure{footnotetext}..................3 + + #1 before footnote + #2 between mark and content + #3 after footnote + + \FNnum footnote number + +\Configure{footnotemark}..................2 + + #1 before + #2 after + +Pictures +-------- + +\Configure{picture}.......................2 + + #1 before + #2 after + +Other Hooks +----------- + +\Configure{ }.........................1 + + #1 representation for non-breaking space ch + +\Configure{hline}.....................1 + +\Configure{hspace} ...................3 + + \tmp:dim register holding the size + #1 before the space + #2 after the space + #3 after #1 (\tmp:dim mod 6em copies) + +\Configure{vspace} ...................1 + + #1 the size of space is prvided in a parameter nmaed `#1' + + Example: + + \Configure{vspace} + {\ifhmode + \HCode{
        }% + \ifdim #1>1ex \HCode{
        }\fi + \fi + } + +\Configure{fbox} .................................. 2 + + Examples: + + \Configure{fbox} + {\HCode{
        }\bgroup \fboxrule=0pt} + {\egroup\HCode{
        }} + \Css{div.fbox {border: 1pt solid black;}} + + \Configure{fbox} + {\HCode{
        }\bgroup \fboxrule=0pt} + {\egroup\HCode{
        }} + +\Configure{'} ..................................... 3 + + #1 at entry to math prime environment + #2 at exit + #3 content of \prime + +\Configure{float}.................................... + #1 optional, to appear within brakects [ and ]. An anchor for + the links preceeding the float, when option refcaption is + not active + #2 Insertion before the links + #3 at start + #4 at end + +\Configure{textcircled}.............................2n+1 + 2i'th replaced i=1,...,n + 2i+1'st replacement + 2n+'nd empty (terminator) + + +\Configure{add accent}{#1:#2}{#3}{#4}...{}{} + #1 encoding + #2 font number + #3 character under font + #4 replacement + + Applies to accents that reach \add@accent + + Example: + + \Configure{add accent}{OT4:18} + {E}{\add:acc{00C8}} + {e}{\add:acc{00E8}} + {}{} + + + + +\Configure{//[]} +\Configure{AfterTitle} +\Configure{HAccent} +\Configure{InsertTitle} +\Configure{accents} +\Configure{accent} +\Configure{centercr} +\Configure{centerline} + +\Configure{displaylines} +\Configure{framebox} + +\Configure{leftline} +\Configure{marginpar} +\Configure{mathaccent} +\Configure{newline} +\Configure{oalign} + +\Configure{overline} + +\Configure{rightline} +\Configure{stackrel} +\Configure{tt} +\Configure{underline} +\Configure{thanks}....................2 + +>>> + + +%%%%%%%%%%%%%%% +\section{book} +%%%%%%%%%%%%%% + + +\>>>maketitleInfo<<< +Title Page +---------- +\Configure{maketitle}.....................4 + + #1 start of maketitle + #2 end of maketitle + #3 before title + #4 after title + +\Configure{thanks author date and}........8 + + #1 before thanks + #2 after thanks + #3 before author + #4 after author + #5 before date + #6 after date + #7 representation of `and' + #8 line breaks (= end of rows, for an embedded tabular environment) +>>> + +\>>>thebibliographyInfo<<< +Bibliography +------------ + +\ConfigureList{thebibliography}......4 + + #1 before list + #2 after list + #3 before label + #4 after label + + \DeleteMark removes latex's label; to be placed at the end of #3 + \AnchorLabel defines an anchor for \label in current item; to + be placed in #4 + +\Configure{cite} see the +\Configure{bibitem} latex section +>>> + + + + + +\>>>tableofcontentsStr<<< +\Configure{tableofcontents*}.......................1 + + #1 A non-empty parameter asks to implicitly introduce + a \tableofcontents upon reaching the first sectioning + command, if no \tableofcontents command is encountered + earlier. The parameter assumes a colon-separated list + of sectioning types to be included in the output + of \tableofcontents. Starred variants of sectioning + types should be referenced with the `like' prefix. + + An empty parameter cancels earlier requests for implicit + calls to \tableofcontents (e.g., embedded within requests + to package options 1, 2, 3, 4) + + Example: + + \Configure{tableofcontents*}{part,likepart,% + section,likesection,subsection,likesubsection} + +\contentsname + + A LaTeX macro stating the title for a table of contents division. +>>> + +\>>>theindex<<< +\Configure{theindex} ..........................9 + + #1 before-env + #2 after-env + #3 before-item + #4 after-item + #5 before-subitem + #6 after-subitem + #7 before-subsubitem + #8 after-subsubitem + #9 at-indexspace + + Example: + + \Configure{theindex} + {\HCode{
          }\global\let\IndexSpace=\empty} + {\HCode{
        }} + {\HCode{
      2. }\global\let\IndexSpace=\empty} + {\HCode{
      3. \Hnewline}} + {\HCode{
      4. }\ \ \ \ } {\HCode{
      5. \Hnewline}} + {\HCode{
      6. }\ \ \ \ \ \ \ \ } {\HCode{
      7. \Hnewline}} + {\global\def\IndexSpace{class="indexspace"}} + + \Css{.indexspace{margin-top:1em;}} + + The links are indirectly requested in the idx files within + \beforeentry macros. For instance, a file try.tex + + \documentclass{article} + \makeindex + \begin{document} + + \section{xx} + + \index{a1} x + \index{a2} x + \index{a2} x + \index{b1} x + \index{b2} x + \index{b3} x + + \input \jobname.ind + + \end{document} + + produces a file try.idx of the form + + \beforeentry{try.html}{dx1-1001}{} + \indexentry{a1}{1} + \beforeentry{try.html}{dx1-1002}{} + \indexentry{a2}{1} + \beforeentry{try.html}{dx1-1003}{} + \indexentry{a2}{1} + \beforeentry{try.html}{dx1-1004}{} + \indexentry{b1}{1} + \beforeentry{try.html}{dx1-1005}{} + \indexentry{b2}{1} + \beforeentry{try.html}{dx1-1006}{} + \indexentry{b3}{1} + + where each pair + + \beforeentry{A}{B}{}\indexetry{C}{D} + + represents an entry of the form + + \indexentry{\Link[A]{B}{}C\EndLink}{D} + + The makeindex utility ignores the \beforeentry records. To compensate + for that, one needs to pre-process the idx file which is introduced to + the makeindex utility and/or post-process the output of the utility. + + A script consisting of two instructions similar to + + tex '\def\filename{{try}{idx}{4dx}{ind}} \input idxmake.4ht' + makeindex -o try.ind try.4dx + + instead of + + makeindex -o try.ind try.idx + + should do the job. + + On some platforms, the quotation marks ' should be + replaced by double quotation marks " or eliminated. + +\Configure{makeindex} ..........................1 + + The default setting, requests consecutive numbers for the + pointers in the indexes. The current command provides the + means to configure the pointers to other values. + + Example: \Configure{makeindex}{Sec \arabic{section}} +>>> + + + + +\<<< +|maketitleInfo + +Sectioning +---------- + +\Configure{part} +\Configure{section} +\Configure{subsection} +\Configure{subsubsection} +\Configure{paragraph} +\Configure{subparagraph} + +\Configure{likepart} +\Configure{likechapter} +\Configure{likesection} +\Configure{likesubsection} +\Configure{likesubsubsection} +\Configure{likeparagraph} +\Configure{likesubparagraph} +|thebibliographyInfo + + +\ConfigureToc + + lof, lot, appendix, chapter, likechapter, likeparagraph, likepart, + likesection, likesubparagraph, likesubsection, likesubsubsection, + paragraph, part, section, subparagraph, subsection, subsubsection + + +\Configure{appendixTITLE+}........1 +\Configure{chapterTITLE+}.........1 +\Configure{partTITLE+}............1 +\Configure{sectionTITLE+}.........1 +\Configure{subsectionTITLE+}......1 +\Configure{subsubsectionTITLE+}...1 + + #1 the content of + + The insertion overrides the one offered by \Configure{CutAtTITLE+} + for the given section type (the `like' counterparts acn also be + configured). + + The sectioning title content can be accessed through the parameter #1. + + Example: + + \Configure{chapterTITLE+}{Synodos - #1} + +\Configure{endpart}................1 +\Configure{endchapter}.............1 +\Configure{endsection}.............1 +\Configure{endsubsection}..........1 +\Configure{endsubsubsection}.......1 +\Configure{endparagraph}...........1 +\Configure{endsubparagraph}........1 +\Configure{endappendix}............1 +\Configure{endlikepart}............1 +\Configure{endlikechapter}.........1 +\Configure{endlikesection}.........1 +\Configure{endlikesubsection}......1 +\Configure{endlikesubsubsection}...1 +\Configure{endlikeparagraph}.......1 +\Configure{endlikesubparagraph}....1 + + #1 a comma separated list specifying the end + points for the configured logical unit + + e.g., \Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} + + + +|tableofcontentsStr + + +Index (\theindex) +----------------- + +|theindex + + +Environments of book: +--------------------- + + \ConfigureEnv{...}.........................4 + + description + figure + figure* + quotation + quote + table + table* + thebibliography + titlepage + verse + +\Configure{listof} + +\Configure{appendix} +\Configure{caption} +\Configure{chapter} +>>> + + + + + + + + + +\section{report} + +\<configure info4ht report\><<< +|maketitleInfo +|thebibliographyInfo + + +\ConfigureList{description}% + +\ConfigureToc + + lof, lot, appendix, chapter, likechapter, likeparagraph, likepart, + likesection, likesubparagraph, likesubsection, likesubsubsection, + paragraph, part, section, subparagraph, subsection, subsubsection + + +\Configure{appendixTITLE+} +\Configure{chapterTITLE+} +\Configure{partTITLE+} +\Configure{sectionTITLE+} +\Configure{subsectionTITLE+} +\Configure{subsubsectionTITLE+} + + #1 an insertion just before the content of <TITLE>; + + The insertion overrides the one offered by \Configure{CutAtTITLE+} + for the given section type (the `like' counterparts acn also be + configured). + + If #1 is a one parametric macro, it gets the title content for + an argument. + + +\Configure{endpart}................1 +\Configure{endchapter}.............1 +\Configure{endsection}.............1 +\Configure{endsubsection}..........1 +\Configure{endsubsubsection}.......1 +\Configure{endparagraph}...........1 +\Configure{endsubparagraph}........1 +\Configure{endappendix}............1 +\Configure{endlikepart}............1 +\Configure{endlikechapter}.........1 +\Configure{endlikesection}.........1 +\Configure{endlikesubsection}......1 +\Configure{endlikesubsubsection}...1 +\Configure{endlikeparagraph}.......1 +\Configure{endlikesubparagraph}....1 + + #1 a comma separated list specifying the end + points for the configured logical unit + + e.g., \Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} + + +|tableofcontentsStr + + +\Configure{appendix}................4 +\Configure{chapter} +\Configure{likechapter} +\Configure{likeparagraph} +\Configure{likepart} +\Configure{likesection} +\Configure{likesubparagraph} +\Configure{likesubsection} +\Configure{likesubsubsection} +\Configure{paragraph} +\Configure{part} +\Configure{section} +\Configure{subparagraph} +\Configure{subsection} +\Configure{subsubsection} + + +|theindex + +Environments of report: +---------------------- + + \ConfigureEnv{...}.........................4 + + abstract + description + figure + figure* + quotation + quote + table + table* + thebibliography + titlepage + verse + +\Configure{listof} +\Configure{thanks author date and} +\Configure{caption} +>>> + +\section{article} + +\<configure info4ht article\><<< +|maketitleInfo + +Sectioning Commands +------------------- +\Configure{part}...................4 +\Configure{section}................4 +\Configure{subsection}.............4 +\Configure{subsubsection}..........4 +\Configure{paragraph}..............4 +\Configure{subparagraph}...........4 + + #1 before division + #2 after division + #3 before title + #4 after title + +\Configure{likepart}...............4 +\Configure{likesection}............4 +\Configure{likesubsection}.........4 +\Configure{likesubsubsection}......4 +\Configure{likeparagraph}..........4 +\Configure{likesubparagraph}.......4 + + starred versions of the sectioning commands + +\Configure{endpart}................1 +\Configure{endsection}.............1 +\Configure{endsubsection}..........1 +\Configure{endsubsubsection}.......1 +\Configure{endparagraph}...........1 +\Configure{endsubparagraph}........1 +\Configure{endlikepart}............1 +\Configure{endlikesection}.........1 +\Configure{endlikesubsection}......1 +\Configure{endlikesubsubsection}...1 +\Configure{endlikeparagraph}.......1 +\Configure{endlikesubparagraph}....1 + + #1 a comma separated list specifying the end + points for the configured logical unit + + e.g., \Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} + +\Configure{partTITLE+} +\Configure{sectionTITLE+} +\Configure{subsectionTITLE+} +\Configure{subsubsectionTITLE+} + + + #1 an insertion just before the content of <TITLE>; + + The insertion overrides the one offered by \Configure{CutAtTITLE+} + for the given section type (the `like' counterparts acn also be + configured). + + If #1 is a one parametric macro, it gets the title content for + an argument. + + +|thebibliographyInfo + +Tables of Content +----------------- +\ConfigureToc + + lof, lot, appendix, chapter, likechapter, likeparagraph, likepart, + likesection, likesubparagraph, likesubsection, likesubsubsection, + paragraph, part, section, subparagraph, subsection, subsubsection, + +|tableofcontentsStr + + +Captions +-------- + +\Configure{caption}...............4 + + #1 before number #2 after number + #3 before title #4 after title + +Indexes +------- + +|theindex + +Environments of article: +------------------------ + + \ConfigureEnv{...}.........................4 + + abstract + description + figure + figure* + quotation + quote + table + table* + thebibliography + titlepage + verse + +Other Hooks +----------- +\Configure{listof} +>>> + +\section{fontmath} + +\<configure info4ht fontmath\><<< +\Configure{mathbf}........................2 +\Configure{mathit}........................2 +\Configure{mathrm}........................2 +\Configure{mathsf}........................2 +\Configure{mathtt}........................2 + + #1 before content + #2 after content + +\Configure{overbrace}.................3 +\Configure{underbrace}................3 +>>> + + +\section{graphics} + +\<configure info4ht graphics\><<< +\Configure{graphics}...............2 + + #1 before \includegraphics + #2 after \includegraphics + + + Examples: + + \Configure{graphics} + {\Picture+[PIC]{ class="graphics"}} + {\EndPicture } + + \Configure{graphics} + {\bgroup + \Configure{IMG} + {\ht:special{t4ht=<img src="}} + {\ht:special{t4ht=" alt="}} + {" } + {\ht:special{t4ht=" }} + {}% + \Picture+[PIC]{}} + {\EndPicture + \def\temp{.pstex}\expandafter\ifx + \csname Gin@ext\endcsname\temp + \HCode{ width="75\%" }\fi + \HCode{ />}% + \egroup} + + +\Configure{graphics*}..............2 + + #1 extension name + #2 insertion + + \Gin@base (file name), \Gin@ext, \Gin@req@width, \Gin@req@height, + \noBoundingBox (defined iff bounding box is unknown) + + Allows to configure tex4ht for graphics files named in + the \includegraphics macro, based on the type of the files. + + An empty insertion #2 cancels previous requests for the + specified extension. + + Example: + + \Configure{graphics*} + {jpg} + {\Picture[pict]{\csname Gin@base\endcsname.jpg}} + + \Configure{graphics*} + {wmf} + {\Needs{"convert \csname Gin@base\endcsname.wmf + \csname Gin@base\endcsname.gif"}% + \Picture[pict]{\csname Gin@base\endcsname.gif + width="\expandafter\the\csname + Gin@req@width\endcsname" + height="\expandafter\the\csname + Gin@req@height\endcsname"}% + } + + \Configure{graphics*} + {eps} + {\openin15=\csname Gin@base\endcsname\PictExt\relax + \ifeof15 + \Needs{"convert \csname Gin@base\endcsname.eps + \csname Gin@base\endcsname\PictExt"}% + \fi + \closein15 + \Picture[pict]{\csname Gin@base\endcsname\PictExt}% + } + + Note: Arguments of the \includegraphics command such as angle and + scale in + + \includegraphics[angle=-90,scale=0.5]{fig.eps} + + are not known to the given figure (e.g., to fig.eps). To be + taken into account, the scripts should handle the transformations + they request (e.g., in \csname Grot@angle\endcsname, + \csname Gscale@x\endcsname, \csname Gscale@y\endcsname) +>>> + + + + +\section{babel} + +\<configure info4ht babel\><<< +\Configure{accent} +\Configure{quotedblbase} +\Configure{quotesinglbase} + +>>> + +\section{plain} + +\<configure info4ht plain\><<< + +\Configure{ } +\Configure{HAccent} +\Configure{TableOfContents} +\Configure{accents} +\Configure{accent} +\Configure{beginsection} +\Configure{centerline} +\Configure{displaylines} +\Configure{eqalignno} +\Configure{eqalign} +\Configure{insert} +\Configure{item} +\Configure{leftline} +\Configure{leqalignno} +\Configure{line} +\Configure{mathaccent} +\Configure{narrower} +\Configure{noalign} +\Configure{obeylines} +\Configure{overline} +\Configure{proclaim} +\Configure{rightline} +\Configure{settabs} +\Configure{underline} +\Configure{vfootnote} +>>> + + + +\section{amsfonts} + + +\<configure info4ht amsfonts\><<< +\Configure{mathbb}........................2 +\Configure{mathfrak}......................2 + + #1 before content + #2 after content + +>>> + + + +\section{amsmath} + +% \Configure{dbinom}..................4 +% \Configure{dfrac}..................4 +% \Configure{frac}..................4 +% \Configure{binom}..................4 + +\<configure info4ht amsmath\><<< +\Configure{tmspace}...................1 + + \mathglue amount of space in math units + \textspace amount of space in points + + Example: + \Configure{tmspace}{\mskip\mathglue} + + +\Configure{boxed}.....................2 +\Configure{equations}.................2 +\Configure{equation}..................3 +\Configure{gather*}...................6 +\Configure{gather}....................6 +\Configure{genfrac}...................6 +\Configure{measure@}..................1 +\Configure{multline*}.................4 +\Configure{multline}..................6 + + #5 before the label + #6 after the label +\Configure{overset}...................2 +\Configure{smallmatrix}...............6 +\Configure{split}.....................6 +\Configure{subarray}..................4 +\Configure{substack}..................2 +\Configure{underset}..................2 +\Configure{xleftarrow}................2 +\Configure{xrightarrow}...............2 +>>> + + + + +\section{amstex1} + +\<configure info4ht amstex1\><<< +\Configure{eqn} +\Configure{gather} + + +Environments of amstex1: + + Vmatrix + align* + alignat* + alignat + alignedat + aligned + aligned + align + bmatrix + equation* + equation + gather* + gathered + gather + matrix + multline* + multline + pmatrix + vmatrix + xalignat* + xalignat + xxalignat + +>>> + +\section{amsart} + +\<configure info4ht amsart\><<< +|tableofcontentsStr +|maketitleInfo + +\ConfigureList{thebibliography}% +\Configure{HtmlPar} +\Configure{HtmlPar} +\Configure{Needs} +\Configure{abstract} +\Configure{authors} +\Configure{caption} +\Configure{date} +\Configure{endlikeparagraph} +\Configure{endlikepart} +\Configure{endlikesection} +\Configure{endlikesubparagraph} +\Configure{endlikesubsection} +\Configure{endlikesubsubsection} +\Configure{endparagraph} +\Configure{endpart} +\Configure{endsection} +\Configure{endsubparagraph} +\Configure{endsubsection} +\Configure{endsubsubsection} +\Configure{keywords} +\Configure{likeparagraph} +\Configure{likepart} +\Configure{likesection} +\Configure{likesubparagraph} +\Configure{likesubsection} +\Configure{likesubsubsection} +\Configure{paragraph} +\Configure{partTITLE+} +\Configure{part} +\Configure{sectionTITLE+} +\Configure{section} +\Configure{setdate} +\Configure{subjclass} +\Configure{submaketitle} +\Configure{subparagraph} +\Configure{subsectionTITLE+} +\Configure{subsection} +\Configure{subsubsectionTITLE+} +\Configure{subsubsection} +\Configure{thanks author date and} +\Configure{thanks} +\Configure{title} + +Environments of amsart: + + abstract + abstract + picture + picture + thebibliography + + \ConfigureToc + + likeparagraph likepart, likesection, likesubparagraph, + likesubsection, likesubsubsection, paragraph, part, section, + subparagraph, subsection, subsubsection, + +>>> + + +\section{amsbook} + +\<configure info4ht amsbook\><<< +|tableofcontentsStr +|maketitleInfo + +\ConfigureList{thebibliography}% +\Configure{HtmlPar} +\Configure{Needs} +\Configure{abstract} +\Configure{addresses} +\Configure{authors} +\Configure{caption} +\Configure{date} +\Configure{endlikeparagraph} +\Configure{endlikepart} +\Configure{endlikesection} +\Configure{endlikesubparagraph} +\Configure{endlikesubsection} +\Configure{endlikesubsubsection} +\Configure{endparagraph} +\Configure{endpart} +\Configure{endsection} +\Configure{endsubparagraph} +\Configure{endsubsection} +\Configure{endsubsubsection} +\Configure{keywords} +\Configure{likeparagraph} +\Configure{likepart} +\Configure{likesection} +\Configure{likesubparagraph} +\Configure{likesubsection} +\Configure{likesubsubsection} +\Configure{paragraph} +\Configure{partTITLE+} +\Configure{part} +\Configure{sectionTITLE+} +\Configure{section} +\Configure{subjclass} +\Configure{subparagraph} +\Configure{subsectionTITLE+} +\Configure{subsection} +\Configure{subsubsectionTITLE+} +\Configure{subsubsection} +\Configure{thanks author date and} +\Configure{thanks} +\Configure{title} +\Configure{translators} + +Environments of amsbook: + + abstract + picture + thebibliography + + \ConfigureToc + + appendix, chapter, likechapter, likeparagraph, likepart, + likesection, likesubparagraph, likesubsection, likesubsubsection, + paragraph, part, section, subparagraph, subsection, subsubsection + +>>> + +\section{amsproc} + +\<configure info4ht amsproc\><<< +|tableofcontentsStr +|maketitleInfo + +\ConfigureList{thebibliography}% +\Configure{HtmlPar} +\Configure{Needs} +\Configure{abstract} +\Configure{authors} +\Configure{caption} +\Configure{date} +\Configure{endlikeparagraph} +\Configure{endlikepart} +\Configure{endlikesection} +\Configure{endlikesubparagraph} +\Configure{endlikesubsection} +\Configure{endlikesubsubsection} +\Configure{endparagraph} +\Configure{endpart} +\Configure{endsection} +\Configure{endsubparagraph} +\Configure{endsubsection} +\Configure{endsubsubsection} +\Configure{keywords} +\Configure{likeparagraph} +\Configure{likepart} +\Configure{likesection} +\Configure{likesubparagraph} +\Configure{likesubsection} +\Configure{likesubsubsection} +\Configure{paragraph} +\Configure{partTITLE+} +\Configure{part} +\Configure{sectionTITLE+} +\Configure{section} +\Configure{subparagraph} +\Configure{subsectionTITLE+} +\Configure{subsection} +\Configure{subsubsectionTITLE+} +\Configure{subsubsection} +\Configure{thanks author date and} +\Configure{thanks} +\Configure{title} + +Environments of amsproc: + + abstract + picture + thebibliography + + \ConfigureToc + + likeparagraph, likepart, likesection, likesubparagraph, + likesubsection, likesubsubsection, paragraph, part, section, + subparagraph, subsection, subsubsection +>>> + + +\section{amsthm} + +\<configure info4ht amsthm\><<< +Environments of amsthm: + + proof +>>> + + + + +\section{amsppt} + +\<configure info4ht amsppt\><<< + \ConfigureToc + + head, specialhead, subhead, subsubhead + +\Configure{HtmlPar} +\Configure{Refs} +\Configure{abstract} +\Configure{affil} +\Configure{author} +\Configure{block} +\Configure{book} +\Configure{caption} +\Configure{date} +\Configure{footnote} +\Configure{head} +\Configure{itemitem} +\Configure{keyformat} +\Configure{keywords} +\Configure{paper} +\Configure{ref} +\Configure{roster} +\Configure{specialhead} +\Configure{subhead} +\Configure{subjclass} +\Configure{subsubhead} +\Configure{thanks} +\Configure{title} +\Configure{vol} + +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{listings} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure info4ht listings\><<< +\Configure{lst@Kerm}...........................2 + + #1 width of character + #2 width of inter character space + + In LaTeX, Default: \Configure{lst@Kern}{0.499em}{0.1em} + +\Configure{listings}...........................4 + + #1 start environment + #2 end environment + #3 before line label + #4 between line label and content + +\Configure{lstinputlisting}....................2 +\Configure{lstinline}..........................2 + + #1 start environment + #2 end environment +>>> + + + + + +\section{psfig} + +\<configure info4ht psfig\><<< +\Configure{psfig} + +>>> + +\section{epsfig} + +\<configure info4ht epsfig\><<< +\Configure{epsfig}...........................#1 + + #1 before + #2 after + + In LaTeX, epsfig reduces to graphicsx + + Example: + + \Configure{epsfig} + {\Configure{graphics} + {} {\xdef\foo{width="\the\Gin@req@width" + height="\the\Gin@req@height"}}% + \Picture+[epsfig]{}} + {\EndPicture\writesixteen{..... \foo}} +>>> + +\section{xy} + +\<configure info4ht xy\><<< +\Configure{xypic} +\Configure{Xy} +>>> + +\section{amscd} + +\<configure info4ht amscd\><<< + +Environments of amscd: + + CD +>>> + + +\section{array} + +\<configure info4ht array\><<< +\Configure{tabular} +\Configure{array} + +|VBorder + +\Configure{@{}}{} + + +Environments of array: + + array + tabular +>>> + +\section{minitoc} + +\<configure info4ht minitoc\><<< +\Configure{minilof} +\Configure{minilot} +\Configure{minitoc} +\Configure{partlof} +\Configure{partlot} +\Configure{parttoc} +\Configure{sectlof} +\Configure{sectlot} +\Configure{secttoc} +\Configure{tableofcontents} + +>>> + + +\section{index} + +\<configure info4ht index\><<< +\Configure{NoSection} + +>>> + + + + + +\section{ntheorem} + +\<configure info4ht ntheorem\><<< +Environments of ntheorem: + + Anmerkung + Beispiel + Bemerkung + Beweis + Corollary + Definition + Example + Korollar + Lemma + Proof + Proposition + Remark + Satz + Theorem + anmerkung + beispiel + bemerkung + beweis + corollary + definition + example + korollar + lemma + proof + proposition + remark + satz + theorem + + +>>> + + +\section{longtable} + +\<configure info4ht longtable\><<< +\Configure{longtable}.............................6 + + #1 before table #2 after table + #3 before row #4 after row + #5 before cell #6 after cell +>>> + +\section{fancyvrb} + +\<configure info4ht fancyvrb\><<< +\Configure{fancyvrbcolor} +\Configure{fancyvrbframe} +\Configure{fancyvrb} + +Environments of fancyvrb: + + verbatim* + verbatim + +>>> + + \section{moreverb} + + +\<configure info4ht moreverb\><<< +\Configure{verbatimtab}......................2 + + #1 at start of line + #2 space character + +Environments of moreverb: + + boxedverbatim* + boxedverbatim* + boxedverbatim + boxedverbatim + verbatimtab +>>> + + +\section{fancybox} + +\<configure info4ht fancybox\><<< +\Configure{Ovalbox} +\Configure{doublebox} +\Configure{ovalbox} +\Configure{shadowbox} + +>>> + +\section{color} + +\<configure info4ht color\><<< +\Configure{HColor}......................2 + + #1 color name + #2 color value + + Examples: \Configure{HColor}{blue}{\#0000FF} + \Configure{HColor}{light}{rgb(122,251,255)} + +\Configure{colorbox} +\Configure{color} +\Configure{textcolor} + +>>> + +\section{colortbl} + +\<configure info4ht colortbl\><<< +\Configure{@classz} +\Configure{rowcolor} + +>>> + +\section{alltt} + +\<configure info4ht alltt\><<< +Environments of alltt: + + alltt +>>> + + + + +\section{url} + +\<configure info4ht url\><<< +\Configure{url} + +>>> + +\section{hyperref} + +\<configure info4ht hyperref\><<< +A trick like the following one allows a compilation to choose +between a pdf and a html mode automatically. + + \ifx \HCode\UnDef \usepackage[pdf]{hyperref} + \else \usepackage[tex4ht]{hyperref} \fi + +The trick assumes the compilations for html are invoked by +htlatex-like commands. + +\Configure{::#1} +\Configure{::action} +\Configure{::default} +\Configure{::menulength} +\Configure{::method} +\Configure{::name} +\Configure{::value} +\Configure{CheckBox::checked} +\Configure{CheckBox::} +\Configure{ChoiceMenu::combo} +\Configure{ChoiceMenu::popdown} +\Configure{ChoiceMenu::radio} +\Configure{ChoiceMenu::} +\Configure{Form} +\Configure{PushButton::} +\Configure{Reset::} +\Configure{Submit::} +\Configure{TextField::default} +\Configure{TextField::multiline} +\Configure{TextField::password} +\Configure{TextField::width} +\Configure{TextField::} +\Configure{combo::default} +\Configure{multiline::value} +\Configure{multiline::width} +\Configure{radio::default} + +>>> + + +\section{CJK} + +\<configure info4ht CJK\><<< +\Configure{charset} + +>>> + +\section{vanilla} + +\<configure info4ht vanilla\><<< + \ConfigureToc + + heading, subheading + +\Configure{aligned} +\Configure{align} +\Configure{author} +\Configure{demo} +\Configure{heading} +\Configure{matrix} +\Configure{subheading} +\Configure{title} + +>>> + + + + + + +\section{emulateapj} + +\<configure info4ht emulateapj\><<< +\Configure{affil} +\Configure{author} +\Configure{keywords} +\Configure{section} +\Configure{slugcomment} +\Configure{subjectheadings} +\Configure{submitted} +\Configure{subsection} +\Configure{subtitle} +\Configure{title} + +Environments of emulateapj: + + references +>>> + +\section{aa} + +\<configure info4ht aa\><<< +|maketitleInfo + +\Configure{HtmlPar} +\Configure{caption} +\Configure{endlikeparagraph} +\Configure{endlikepart} +\Configure{endlikesection} +\Configure{endlikesubparagraph} +\Configure{endlikesubsection} +\Configure{endlikesubsubsection} +\Configure{endparagraph} +\Configure{endpart} +\Configure{endsection} +\Configure{endsubparagraph} +\Configure{endsubsection} +\Configure{endsubsubsection} +\Configure{likeparagraph} +\Configure{likepart} +\Configure{likesection} +\Configure{likesubparagraph} +\Configure{likesubsection} +\Configure{likesubsubsection} +\Configure{makeheadbox} +\Configure{paragraph} +\Configure{partTITLE+} +\Configure{part} +\Configure{sectionTITLE+} +\Configure{section} +\Configure{subparagraph} +\Configure{subsectionTITLE+} +\Configure{subsection} +\Configure{subsubsectionTITLE+} +\Configure{subsubsection} +\Configure{subsubsection} +\Configure{subtitle institute} +\Configure{thanks author date and} + +Environments of aa: + + abstract + picture + thebibliography +>>> + +\section{pictex} + +\<configure info4ht pictex\><<< +\Configure{pictex} + +>>> + + + + +\section{diagram} + +\<configure info4ht pb-diagram\><<< +Environments of pb-diagram: + + diagram +>>> + + + +\section{ltugboat} + +\<configure info4ht ltugboat\><<< +Environments of ltugboat: + + quote +>>> + + +\section{doc} + +\<configure info4ht doc\><<< +Environments of doc: + + macrocode +>>> + + + + + +\section{lineno} + +\<configure info4ht doc\><<< +\Configure{lineno}...................2 + + Asks lineno.sty to introduce #1\LineNumber #2, instead of \LineNumber, + into the output +>>> + + + + + + +\section{elsart} + +\<configure info4ht elsart\><<< +\Configure{abstract} +\Configure{keyword} + +Environments of elsart: + + frontmatter +>>> + + +%%%%%%%%%%%%%%%%%% +\section{ProTex} +%%%%%%%%%%%%%%%%%% + +\<configure info4ht ProTex\><<< +\Configure{ShowCode}...................6 + + #1 start body + #2 end body + #3 everypar + #4 open comment + #5 close comment + #6 space character +>>> + + +\section{seminar} + +\<configure info4ht seminar\><<< + +Environments of seminar: + + slide +>>> + + +\section{slides} + +\<configure info4ht slides\><<< +\Configure{slidename}....................................1 +\CutAt{slide}.............................................0 + +\ConfigureList{description}% + +Environments of slides: + + note + quotation + quote + slide + titlepage + verse +>>> + + +\section{slidesec} + +\<configure info4ht slidesec\><<< + \ConfigureToc + + slidesection +>>> + +\section{web} + +\<configure info4ht web\><<< +\Configure{maketitle} +\Configure{webuniversity} +\Configure{webversion} + +>>> + +\section{exerquiz} + +\<configure info4ht exerquiz\><<< +\ConfigureList{questions}% +\Configure{@HEAD} +\Configure{Form} +\Configure{ReturnTo} +\Configure{TextField::} +\Configure{javascript} +\Configure{quiz*} +\Configure{quiz} +\Configure{shortquiz} + +Environments of exerquiz: + + shortquiz +>>> + +\section{foils} + +\<configure info4ht foils\><<< + \ConfigureToc + + foilheads + +\Configure{foilheads} + +|tableofcontentsStr + +Environments of foils: + + Corollary* + Corollary + Definition + Lemma + Proof + Proposition + Theorem + thebibliography + +>>> + + + +\section{th4} + +\<configure info4ht th4\><<< +\Configure{JavaScript}............2 + + Configures the environments + + \JavaScript + .... + \EndJavaScript + + and + + \javascript{...} + + These environments are activated by the `javascript' option. + + Default: + + \Configure{JavaScript} + {\HCode{<script type="text/JavaScript" ><!--\Hnewline}} + {\HCode{//-->\Hnewline </script>}} + + + + \ConfigureToc + + Chapter, LikeSection, Section, SubSection + +\Configure{Appendix} +\Configure{Chapter} +\Configure{Columns} +\Configure{Columns} +\Configure{DList} +\Configure{HTable} +\Configure{Item} +\Configure{LikeChapter} +\Configure{LikeSection} +\Configure{OList} +\Configure{Part} +\Configure{Section} +\Configure{SubSection} +\Configure{UList} +\Configure{Verbatim} +\Configure{buttonList+} +\Configure{buttonList} +\Configure{centerline} +\Configure{index} + +Frames +------ + +When the package option `frames-' or `frames' is up, +TeX4ht introduces the following commands for defining frames. + + \Frame[#1]{#2} + + A variant of the \Link[#1]{#2} portion of the + \Link[#1]{#2}{#3}#4\EndLink, for specifying a frame. + + \HorFrames[#1]{#2}, \VerFrames[#1]{#2} + + #1 attributes ([#1] is optional) + #2 list of dimensions + + A container partitioned, respectively, horizontally or + vertically. Each partition may hold a sub-container or + a frame. + + The list of dimensions determine the cardinality of the + partition, and the dimension of each partition. A dimension + can be specified absolutely by pixels (\HorFrames{80,130,50}), + relatively by percentage (\HorFrames{20\%,30\%,50\%}), and + relatively through ratio (\HorFrames{2*,3*,5*}). + + \EndFrames + + An end delimiter for a container + + \NoFrames + + When used, it should be placed before the outer-most + \EndFrames command. The region \NoFrames...\EndNoFrames + provides the content for browsers which do not support frames. + +Tailoring configurations for frames is a little tricky, but the +job is simpler when the configurations don't deal with the root +file. + +Example 1: +.......... + + % Requires the command line option `frames-' + \documentclass{article} + + \begin{document} + + \begingroup + \Configure{@HEAD}{} + \Configure{BODY}{}{} + \Configure{DOCTYPE} + {\HCode{<!DOCTYPE html + PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" + "http://www.w3.org/TR/html4/frameset.dtd">}} + \Configure{HEAD}{}{} + \Configure{HTML} + {\HCode{<html><head><title>}} + {\HCode{}} + \Configure{HtmlPar}{}{}{}{} + \Configure{TITLE}{}{} + + \FileStream+{\jobname f.html} + \HorFrames{*,*} + \Frame[\jobname.html]{} + \VerFrames{3*,*,*} + \Frame[http://www.tug.org]{} + \Frame[\RefFile{z} ]{} + \Frame[ name="y"]{w} + \EndFrames + \EndPreamble + \NoFrames + a comment + \EndFrames + \EndFileStream{\jobname f.html} + \endgroup + + + \HPage[z]{} + \bgroup + \Configure{Link}{a}{target="y" href=}{ name=}{} + \let\contentsname=\empty \tableofcontents + \egroup + \EndHPage{z} + + \tableofcontents + + \section{First} Is first. + + \Link{}{w}\EndLink + \section{Second} Is Second. + + \end{document} + +Example 1a (allows also compilations for non-html output): +.......................................................... + % src.tex + \documentclass{article} + \begin{document} + + \tableofcontents + + \section{First} Is first. + + \ifx \Link\undefined \else + \Link{}{w}\EndLink + \fi + \section{Second} Is Second. + + \end{document} + + % src.cfg + \Preamble{html,frames-} + \begin{document} + \EndPreamble + \begingroup + \Configure{@HEAD}{} + \Configure{BODY}{}{} + \Configure{DOCTYPE}{} + \Configure{HEAD}{}{} + \Configure{HTML}{}{} + \Configure{HtmlPar}{}{}{}{} + \Configure{TITLE}{}{} + + \FileStream+{\jobname f.html} + \HorFrames{*,*} + \Frame[\jobname.html]{} + \VerFrames{3*,*,*} + \Frame[http://www.tug.org]{} + \Frame[\RefFile{z} ]{} + \Frame[ name="y"]{w} + \EndFrames + \EndPreamble + \NoFrames + a comment + \EndFrames + \EndFileStream{\jobname f.html} + \endgroup + + \HPage[z]{} + \bgroup + \Configure{Link}{a}{target="y" href=}{ name=}{} + \let\contentsname=\empty \tableofcontents + \egroup + \EndHPage{z} + \endinput + +Example 2: +.......... + + % Source .tex file + + \documentclass{article} + \usepackage{verbatim} + \begin{document} + + \section{The Main File: \jobname.tex} + \verbatiminput{\jobname.tex} + \section{The Configurations File: \jobname.cfg} + \verbatiminput{\jobname.cfg} + \section{The Command Line} + htlatex \jobname\space "\jobname" + + \NextFile{page.html}\HPage{} + Hello! + \EndHPage{} + + \HPage{}\Link{}{anchor}\EndLink + \Link[http://www.ctan.org]{}{}ctan\EndLink + \EndHPage{} + + \end{document} + + % configurations .cfg file + + \Preamble{frames} + + \Configure{frames} + {\VerFrames{*,5*} + \Frame[ name="tex4ht-menu" ]{tex4ht-toc} + \HorFrames{*,3*} + \VerFrames{6*,*,*} + \Frame[http://www.tug.org]{} + \Frame[page.html]{} + \Frame{anchor} + \EndFrames + \Frame[ name="tex4ht-main" ]{tex4ht-body} + \EndFrames + } + {\let\contentsname=\empty \tableofcontents} + + \begin{document} + \EndPreamble + +Example 3: +.......... + + % file.tex + \documentclass{book} + \begin{document} + \chapter{Title} + Body. + \chapter{Another Title} + \Link{}{init-body}\EndLink + Another body. + \end{document} + + % file.cfg + \Preamble{html,frames,3,info} + \begin{document} + \Configure{frames} + {\HorFrames[rows="*"]{3*,*} + \Frame[ name="body" frameborder="0" ]{init-body} + \Frame[ name="menu" frameborder="0" ]{init-toc} + } + {\Configure{Link}{a}{target="body" href=}{ id=}{} + \let\contentsname=\empty + \tableofcontents + \Link{}{init-toc}\EndLink + } + \EndPreamble + \endinput + + + +The arguments`init-body' and `init-toc' are labels connecting reference points +\Frame[...]{label} with anchors \Link{}{label}\EndLink. Their objective +is to associate initial web pages with the frames. + +The name attribute values `body' and `menu' provide +identifiers to the frames. They offer the option to dynamically load +new pages into the frames through hypertext references targeting those +values. + +>>> + + + + +\section{hebtex} + +\<<< +\Configure{arabtext} +\Configure{chireq} +\Configure{cholem} +\Configure{cholem} +\Configure{chpatach} +\Configure{chqames} +\Configure{chsegol} +\Configure{dagesh} +\Configure{meteg} +\Configure{patachf} +\Configure{patach} +\Configure{qameschat} +\Configure{qames} +\Configure{qibbus} +\Configure{rdot} +\Configure{segol} +\Configure{sere} +\Configure{shindot} +\Configure{shwa} +\Configure{sindot} + +>>> + + + + +%%%%%%%%%%%%%%%%%%%% +\section{endnotes} +%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{theendnotes}......................2 +\Configure{enoteformat}......................2 +\Configure{makeenmark}.......................2 + + Provide markups for the mentioned entities. + +\endnoteN + + A built-in counter for end notes. +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{float} +%%%%%%%%%%%%%%%%%%%% + +\<<< +New float environments can be configured with the \ConfigureEnv +instruction. For instance, + + \newfloat{myfloat}{htb}{}[section] + + \ConfigureEnv{myfloat} + {BEFORE MYFLOAT} {AFTER MYFLOAT} + {}{} + + \begin{myfloat} + body + \caption{title} + \end{myfloat} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{mktex4ht} +%%%%%%%%%%%%%%%%%%%% + + + + +\<<< +Purpose +------- + +A package to help creating 4ht files for configuring seeded hooks. + +A sample self-explanatory template file make-4ht.tex is shown at the +end. The sample file can be retrieved in ascii form from the file +info4ht.4ht. + +General Information +------------------- + +To get a better understanding of the structural meaning of some of the +available hooks + +a. Compile the mktex4ht.4ht file with the `htlatex mktex4ht.4ht' + command (or, `xhlatex mktex4ht.4ht' for XHTML output). + + Visit the links in the index of the outcome `mktex4ht.html' file. + +b. Compile your sorce file with a command similar to + + htlatex filename "html,info" "" "-p" + + and check the source file. + +c. Compile your sorce file with a command similar to + + htlatex filename "html,0.0,hooks" "" "-p" + + and view the outcome with a html browser. + +d. Take a look at the *.4ht configuration files mentioned in tex4ht.4ht. + +Setting up a calling command +---------------------------- + +i. Create a tex4ht.usr file, and introduce there \Configure command(s) + similar to those found in tex4ht.4ht. For instance, + + \Configure{foo}{% + \Hinclude[*]{myhtml.4ht}% + \Hinclude[*]{mymath.4ht}% + } + + Choose arbitrary name in the first argument, and include *.4ht + configuration files of your liking in the second argument. + + You might want to temporarily include also the file html0.4ht, as a + first entry, while constructing new *.4ht configuration files. For + instance, + + \Configure{foo}{% + \Hinclude[*]{html0.4ht}% + \Hinclude[*]{myhtml.4ht}% + \Hinclude[*]{mymath.4ht}% + } + +ii. A configuration setting may be loaded by mentioning its name + within the option list of the htlatex command. For instance, + + htlatex filename "xhtml,foo" "unicode/!" "-p" + +iii. Alternatively, a htlatex-like command can be tailored to + automatically load a configuration setting. That can be done + by including the name in the argument list of + \csname tex4ht\endcsname, within the script of the command. For + instance, replace `docbook' with `foo' in the script of dblatex. + + +Defining a New Configuration File with mktex4ht.4ht +--------------------------------------------------- + +1. Define a parameter-less macro \HTML to hold a comma separeted list + of the output file names. Place the definition at the top of the + source document. For instance + + \def\HTML{myhtml,mymath} + + request the files myhtml.4ht and mymath.4ht. + +2. Define a parameter-less macro \CONFIG to hold the name of the file + containing the contributed configurations. Place the definition at + the top of the source document. + +3. The configurations contributed to output file YYYY.4ht for style + XXXX should be provided within code fragments of the form + + \<<< + ....... + >>|empty> + + Arbitrary valid LaTeX source code may be inserted around the code + fragments. + + Example: + + Configurations for class book.cls: + + \<<< + \Configure{chapter} {...}{...}{...}{...} + \Configure{section} {...}{...}{...}{...} + >>|empty> + + Configurations for class article.cls: + + \<<< + \Configure{section} {...}{...}{...}{...} + >>|empty> + + The hooks are provided in book.4ht and article.4ht. + +4. Define a parameter-less macro \MAKETITLE with contribution for + the \maketitle command (e.g., \def\MAKETITLE{\title{my name}}). Place + the definition at the top of the source document. + +5. A file may reload itself, if it starts with preamble similar to + the following one. + + \ifx \HTML\UnDef + \def\HTML{...} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{...}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next + \fi + + +A Template File make-4ht.tex +----------------------------- + +%--------------------- start of template ----------------- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% make-4ht.4ht Eitan M. Gurari +% +% A sample file with instructions for creating 4ht +% configuration files through literate programming. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% * Compile this file twice with the command `latex make-4ht' +% (or with `htlatex make-4ht') +% +% * Inspect the outcome files sample.4ht and example.4ht +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% * Change `sample,example' in (1) below to a comma-separated list +% of your choice. Each entry in the list stands for a name +% of a 4ht configuration file to be created. The current list +% requests the configuration files `sample.4ht' and `example.4ht'. +% +% * Change `my title' in (2), and `my name' in (3), to a +% content of your choice +% +% * Go to (4) +% +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{sample,example} %<------------ (1) + \def\CONFIG{\jobname} + \def\MAKETITLE{\title{my title}% %<------------ (2) + \author{my name}} %<------------ (3) + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +%%%%%%%%%%%%%%%%%%%%% useful definitions %%%%%%%%%%%%%%%%%%%%% + +\newcount\tmpcnt \tmpcnt\time \divide\tmpcnt 60 +\edef\temp{\the\tmpcnt} +\multiply\tmpcnt -60 \advance\tmpcnt \time + +\edef\version{\the\year-\ifnum \month<10 0\fi + \the\month-\ifnum \day<10 0\fi\the\day + -\ifnum \temp<10 0\fi \temp + :\ifnum \tmpcnt<10 0\fi\the\tmpcnt} + +\def\CopyYear.#1.{% + \ifnum #1=\year #1\space\space\space\space\space\space + \else #1--\the\year\fi +} + + +%<--------------------------------------------------------------- (4) +% +% * The code for the configuration files is to be written within +% fragments of the form +% +% \<<< +% fragment content +% >>|empty> +% +% * References from code fragments to other code fragments should +% take the form +% +% || +% +% * The character || is treated as an escape character +% within the code fragments. References to the +% character should take the form +% +% |||| +% +% * Insertions outside the code fragments are ignored in the +% configuration files, and they should abide to the latex +% conventions. +% +% * Change all the prose and code fragments below to meet +% your needs. Make sure to follow the given instructions. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Root Code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%<--------------------------------------------------------------- (5) +% +% * For each entry in the list of (1), you may have arbitrary many +% code fragments named by the entry. +% +% * The order of fragments is relevant only among those having +% identical names. +% + + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% sample.4ht ||version % +|| +>>|empty> + + +\<<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% example.4ht ||version % +|| +>>|empty> + + +\<<< +% Copyright (C) ||CopyYear.2000. my name % +% % +% My copyright statement % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\immediate\write-1{version ||version} +>>|empty> + + +%<--------------------------------------------------------------- (6) +% +% * Each configuration of tex4ht requires a base 4ht configuration +% file containing the following `Hinclude' code. + +% * The supplied html4.4ht, html32.4ht, html0.4ht, tei.4t, +% and docbook.4ht files already include such code. +% +% * In a compilation of a file, exactly one 4ht configuration +% file should load `Hinclude' code. +% +% * Either remove the following three code fragments, or replace +% `sample' in their titles with an entry from (1) +% + +\<<< +\if:latex || +\else || \fi +>>|empty> + +\<<< +|| +|| +>>|empty> + +\<<< +|| +|| +>>|empty> + +\endinput +%--------------------- end of template ------------------- +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Segment Code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%<--------------------------------------------------------------- (7) +% +% * A 4ht configuration file is made up of segments which +% correspond to classes and styles of tex, latex, amslatex, +% etc. Have a look at these code segments in html4.4ht . +% +% * You can get additional information about the possible +% configurations in the different segments by compiling +% your file with the `info' switch on. For instance +% +% htlatex foo "html,info" +% +% * Code for segment `xxxx' in file `yyyy.4ht' is introduced +% through fragments named `configure yyyy xxxx'. That is, +% through fragments of the form +% +% \<<< +% .......... +% >>|empty> +% + + +\<<< +....tex4ht segment in sample.4ht..... +>>|empty> + +\<<< +....latex segment in sample.4ht..... +|| +>>|empty> + + + + +\<<< +....tex4ht segment in example.4ht..... +>>|empty> + +\<<< +....latex segment in example.4ht..... +>>|empty> + + +\<<< +....additional code.... +>>|empty> + +%<--------------------------------------------------------------- (8) +% +% * Compile this file twice with the command `latex filename' +% (or with `ht latex filename') +% +% * If you don't have a file named tex4ht.usr, introduce such a file +% +% * Insert into tex4ht.usr a file along the following lines, which +% invokes *.4ht configuration files +% +% \Configure{my4hts}{% +% \Hinclude[*]{html4.4ht}% +% \Hinclude[*]{html4-math.4ht}% +% \Hinclude[*]{myflavor.4ht}% +% } +% +% For additional examples inspect, but do not change, the +% tex4ht.4ht file. +% +% * Invoke the compilations of you latex files with commands similar to +% +% htlatex foo "html,my4hts" +% + + +\endinput +>>> + + + + + + +\endinput + + + + diff --git a/support/TeX4ht/source/tex4ht-jats.tex b/support/TeX4ht/source/tex4ht-jats.tex new file mode 100644 index 0000000000..b260e34985 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-jats.tex @@ -0,0 +1,111 @@ +% $Id: tex4ht-jats.tex 269 2020-03-03 23:06:07Z karl $ +% compile 3 times: latex tex4ht-jats +% or xhlatex tex4ht-jats "html,3,sections+" +% +% Copyright 2009-2020 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{jats} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +% jats.4ht (|version), generated from |jobname.tex +% Copyright 2020 TeX Users Group +| +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Basic information} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +JATS support in TeX4ht is based on HTML and MathML configurations. +Unsupported elements will be converted using make4ht DOM filters. +Filters will be used also for the document structure, as JATS wants some +elements in the back (bibliography, etc.) + +Only basic structures will be configured by hand in this configuration +file. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Start Here} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\special{t4ht.xml} +\Configure{VERSION}{\HCode{\Hnewline}} + +% select JATS version +\NewConfigure{DtdVersion}{1} +\Configure{DtdVersion}{1.2} + +\Configure{DOCTYPE}{\HCode{\Hnewline}} + +% XML configuratins +\edef\html:xmlns{} +\NewConfigure{xmlns}[2]{\concat:config\html:xmlns{xmlns:#1="#2"\Hnewline}} +\Configure{xmlns}{xlink}{http://www.w3.org/1999/xlink} +\Configure{xmlns}{mml}{http://www.w3.org/1998/Math/MathML} + +\Configure{HTML}{\HCode{
        \Hnewline}}{\HCode{\Hnewline
        }} +\Configure{@HEAD}{} +\Configure{HEAD}{\HCode{}}{\HCode{}} +% Add header structure +% Journal info in . It needs to be provided fully from the user configuration +\NewConfigure{JournalMeta}{1} +% basic article meta can be reconstructed from \title and \author +% +% Title needs to be placed at the correct place by DOM filter +\Configure{TITLE}{\HCode{}}{\HCode{}} +\NewConfigure{ArticleMeta}{1} + \Configure{ArticleMeta}{ + \HCode{}% + % title from \title command is placed by make4ht DOM filter. If you want more complex title, + % use \Configure{TitleGroup} + \a:TitleGroup% + \JATS:Contributors% + \HCode{}% +} +% enable to configure contributors +\def\JATS:Contributors{} +\NewConfigure{Contributor}[1]{\concat:config\JATS:Contributors{#1}} +\NewConfigure{TitleGroup} + +% insert metas into document header +\Configure{@HEAD}{\a:JournalMeta} +\Configure{@HEAD}{\a:ArticleMeta} + + + +>>> + + + + +\<<< +>>> + +\<<< +>>> + + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-javahelp-xtpipes.tex b/support/TeX4ht/source/tex4ht-javahelp-xtpipes.tex new file mode 100644 index 0000000000..601668ce1c --- /dev/null +++ b/support/TeX4ht/source/tex4ht-javahelp-xtpipes.tex @@ -0,0 +1,641 @@ +% $Id: tex4ht-javahelp-xtpipes.tex 740 2020-06-13 22:35:32Z karl $ +% htlatex tex4ht-javahelp-xtpipes "xhtml,next,3" "" "-d./" +% +% Copyright 2009-2020 TeX Users Group +% Copyright 2002-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + \Configure{ProTex}{log,<<<>>>,title,list,`,[[]]} + \usepackage{url} +\begin{document} + +\input{common} +\input{tex4ht-cpright} +\input{tex4ht-dir} + +%%%%%%%%%%%%%%%%%% +\part{Post Processing for Html Output Mode} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%% + +\AtEndDocument{\OutputCodE\} + +\Needs{"xmllint --valid --noout javahelp.4xt"} + +\<<< + + + + + + ` + ` + ` + ` + + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{email script} +%%%%%%%%%%%%%%%%%% + +\<<< + +>>> + + + ` + ` + ` + + + + +\<<< + + + + + + +>>> + + +\<<< + +>>> + + +% \AtEndDocument{ +% \OutputCodE\ +% } +% \Needs{" +% javac -classpath /home/4/gurari/tex4ht.dir/texmf/tex4ht/bin/tex4ht.jar +% XhtmlEmails.java +% -d /home/4/gurari/xtpipes.dir/. +% "} + +\<<< +package tex4ht; +/* XhtmlEmails.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +` */ +import xtpipes.XtpipesUni; +import org.xml.sax.*; +import org.xml.sax.helpers.DefaultHandler; +import java.io.*; +import java.lang.reflect.*; +import java.util.HashMap; + +public class XhtmlEmails extends DefaultHandler { + PrintWriter out = null; + String data = ""; + public XhtmlEmails(PrintWriter out, + HashMap scripts, + Method method, PrintWriter log, boolean trace) { + this.out = out; + } + public void characters(char[] ch, int start, int length) { + data += new String(ch, start, length); + +//XtpipesUni.toUni(ch, start, length, "<>&"); + } + + public void startElement(String ns, String sName, + String qName, + Attributes atts) { + String s = "<" + qName + "\n"; + for (int i = 0; i < atts.getLength(); i++) { + String name = atts.getQName(i); + s += (" " + name + "=\"" + + XtpipesUni.toUni(atts.getValue(i), "<>&\"") + + "\""); + } + s += ">"; + ` + out.print(XtpipesUni.toUni(data, "&") + s); + data = ""; + } + public void endElement(String ns, String sName, String qName) { + String s = ""; + ` + out.print( XtpipesUni.toUni(data, "&") + s); + data = ""; + } + +} +>>> + + +\<<< +while( data.indexOf('@') >0 ){ + ` + ` +} +data = XtpipesUni.toUni(data, "<>&"); +>>> + + + + +\<<< +String [] pre = data.split( + "[`]*@" + , 2); +if( pre[0].endsWith("}") ){ + if( pre[0].indexOf("{") != -1 ){ + pre[0] = pre[0].substring( 0, pre[0].lastIndexOf("{") ); +} } +int len = pre[0] . length(); +if( len > 0 ){ + out.print( XtpipesUni.toUni(pre[0], "<>&") ); + data = data.substring(len); +} +>>> + +\<<< +String [] post = data.split( + "@[`]*" + , 2); +if( post[1] . length() > 0 ){ + data = data.substring(0, data.length() - post[1] . length()); +} +` +data = post[1]; +>>> + + +\<<< +if( data.indexOf("{") == -1 ){ + out.print( + "" + + XtpipesUni.toUni(data, "<>&") + + "" + ); +} else { + int idx = data.indexOf('@'); + String ext = data.substring(idx); + data = data.substring(0,idx); + ` +} +>>> + + + +\<<< +while( true ){ + pre = data.split( + "[`]+" + , 2); + if( pre.length < 2 ){ + out.print( XtpipesUni.toUni(data + ext, "<>&") ); + data = ""; + break; + } + len = pre[0] . length(); + if( len > 0 ){ + out.print( XtpipesUni.toUni(pre[0], "<>&") ); + data = data.substring(len); + } + data = data.substring(0, data.length() - pre[1].length()); + out.print( + "" + + XtpipesUni.toUni(data, "<>&") + + "" + ); + data = pre[1]; +} +>>> + +\<<< +\\p{javaLowerCase}\\p{javaUpperCase}\\d\\-_\\./&>>> + + +\url{http://tools.ietf.org/html/rfc2368} + +\begin{verbatim} +Alice Smith" +{alice, bob}@somewhere.com +alice@somewhere.com, bob@somewhere.com +\end{verbatim} + +%%%%%%%%%%%%%%%%%% +\section{Long Tables} +%%%%%%%%%%%%%%%%%% + + + +\<<< + +>>> + + +\<<< + + + + + + + +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Tabular} +%%%%%%%%%%%%%%%%%% + + + +\<<< + +>>> + + +\<<< + + + +OK 1 + + + + + + +OK 2 + + + + +>>> + + + + + +\<<< + + + +OK 1 + + + + + + +OK 2 + + + + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Empty HTML Element Script} +%%%%%%%%%%%%%%%%%% + +\<<< + +>>> + + +\<<< + +>>> + + + + +\<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + + + + + + +\<<< + + + + =" + + " + +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Shared} +%%%%%%%%%%%%%%%%%% + + + +\<<< + + +>>> + +\<<< + + + + + + +]]> +>>> + + + + +\ifdojava +\AtEndDocument{\Needs{% + "pushd \XTPIPES || exit 1 + ; + jar cf tex4ht.jar * + ; + popd + ; + mv tex4ht.jar \TEXMFTEXivBIN + ; + if [ ! -d \TEXMFTEXivXTPIPES\space]; then exit 1; fi +"}} +\fi + +\end{document} diff --git a/support/TeX4ht/source/tex4ht-javahelp.tex b/support/TeX4ht/source/tex4ht-javahelp.tex new file mode 100644 index 0000000000..dbf2aa11e1 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-javahelp.tex @@ -0,0 +1,1737 @@ +% $Id: tex4ht-javahelp.tex 680 2020-03-16 17:42:41Z karl $ +% compile 3 times: latex tex4ht-javahelp +% or xhlatex tex4ht-javahelp "html,3,sections+" +% +% Copyright 2009-2020 TeX Users Group +% Copyright 2003-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{javahelp} + \def\PREAMBLE{% + \usepackage{url}% +% \usepackage{moreverb} +% \usepackage{hyperref}% + } + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\verbatiminput#1{% +\immediate\openin15=#1 +\immediate\ifeof15 \else +\immediate\closein15 + \bgroup + \tt + \catcode`\\=12 + \catcode`\{=12 + \catcode`\}=12 + \catcode`\%=12 +% \catcode`\ =12 + \catcode`\&=12 + \catcode`\#=12 + \catcode`\$=12 + \catcode`\~=12 + \catcode`\^=12 + \catcode`\_=12 + \input #1 + \egroup +\fi +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{The Outline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%% +\section{The Root} +%%%%%%%%%%%%%%%%%%% + +% \<<< +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % javahelp.4ht |version % +% % Copyright (C) |CopyYear.2003. Eitan M. Gurari % +% | +% >>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Constructs} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\JHDIR{...../} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Review} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +JavaHelp is an online documentation system for use by Java-based +applications. + + +\begin{itemize} +\item +It can be activated with the +`javahelp' options. For instance, +`\verb+htlatex jobname "html,3.2,javahelp,unicode,3" " -cmozhtf -u10" "-cjavahelp"+'. +\item Supports HTML 3.2 (+?) and (some?) CSS 1.0 as imported +files as well as style attributes. +\end{itemize} + + +TeX4ht does the following for JavaHelp + +\begin{itemize} +\item Creates keys for the entries in the table of contents +and the index +\item Maps the keys into th erl's of the toc and the index (jobname.jhm) +\item Maps the keys to the entries referenced by the toc (jobname-jht.xml) +and to the entries referenced by the toc (jobname-jhi.xml) +\item Creates a manifest of the files (jhelpset.hs), under the assumption +that jhindexer set a search directory at jobname-jhs +`{\tt java -jar /n/gold/5/gurari/javahelp.dir/jh1.1.3/javahelp/bin/jhindexer.jar -db jobname-jhs *.html}' +\end{itemize} + + + +The javahelp.4ht file should not be loaded before the leading +\verb+\tableofcontents+ command got active. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{References} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item \url{C:/jh1.1.3/doc/spec/FileFormat.html} +\item \url{http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/javahelp/javahelp.html} +\item \url{http://developer.java.sun.com/developer/JDCTechTips/2002/tt0423.html} +\item \url{http://developer.java.sun.com/developer/JDCTechTips/2002/tt0521.html} +\item \url{http://www.oreilly.de/catalog/creatingjavahelp/examples/} +\end{itemize} + + +%%%%%%%%%%%%% +\subsection{Importing CSS} +%%%%%%%%%%%%% + +\<<< +\:CheckOption{-css} \if:Option \else + \Log:Note{to ignore CSS code, use the command line option `-css} + \:CheckOption{css-in} \if:Option + \Log:Note{the inline CSS code is extracted from the input of the + previous compilation, so an extra compilation might be needed} + \Configure{@HEAD}{|} + \else + \Log:Note{for inline CSS code, use the command line option `css-in'} + \Configure{@HEAD}{\HCode{\Hnewline}} + \fi +\fi +>>> + + +\<<< +\openin15=\jobname .css +\ifeof15 \:warning{Missing file: \jobname .css }% +\else +\bgroup + \catcode`\{=12 \catcode`\}=12 \catcode`\%=12 \catcode`\#=12 + \HCode{\Hnewline\Hnewline}% +\egroup +\fi +\closein15 +>>> + + +\<<< +|<0,32,4 preambles|> +\ifx \a:FontCss:\:UnDef + \Configure{FontCss}{Font\string_Css##1} + {Font\string_Css\string_Plus\space##1} +\fi +\expandafter\ifx \csname aa:Css\endcsname\relax + \Configure{Css}{Css: ##1} +\fi +>>> + + + + + +\<<< +| +\Configure{Preamble} + {\:CheckOption{-css} \if:Option + \else |\fi} + {|} +\Configure{@/BODY} + {\relax + \ifnum \FileNumber=1 + \SaveEndP + \input javahelp-a.4ht + \RecallEndP + \fi + } +>>> + + + +\<0,32,4 preambles\><<< +\:CheckOption{-css} \if:Option + \def\Css#1{} + \NewConfigure{CssFile}{2} +\else + | +\fi +>>> + +\<<< +\def\Css#1{{\def\:temp{\Configure{Needs}}% + \expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}} +>>> + +\<<< +\ScriptCommand{\CssFile}{% + \immediate\write-1{--- file \aa:CssFile\space ---}% + \def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}% + \def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}% + \def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special + {t4ht>\aa:CssFile}}% + \ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}% + \bgroup \everypar{}\NoFonts \bb:CssFile \hfil\break} + {\egroup \EndNoFonts + \ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}} +\let\Css:File=\CssFile +\def\CssFile{\futurelet\:temp\Css:Fl} +\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl + \else \expand:after{\Css:File \space}\fi} +\def\Css:fl[#1]{\Css:File\space \css:files #1,,|} +\def\css:files#1,#2|{\def\:temp{#1}\ifx \:temp\empty + \else \def\:temp{\in:css#1.|\css:files#2,,|}\fi + \:temp } +\def\in:css#1.#2|{\def\:temp{#2}\ifx \:temp\empty + \inc:ss#1.css| + \else \inc:ss#1.#2|\fi} +\def\inc:ss#1.|{| } +\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} +>>> + + + +\<<< +{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@ +\leavevmode}% +\immediate\write-1{--- file \aa:CssFile\space ---}% +\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}% +\ht:special{t4ht<\aa:CssFile}% +>>> + +\<<< + \immediate\openin15=#1 + \ifeof15 \immediate\closein15 + \:warning{Missing file: #1}% + \else \immediate\closein15 \input #1 \fi +>>> + + + +%%%%%%%%%%%%% +\subsection{Tabular} +%%%%%%%%%%%%% + +\<<< +\:CheckOption{no-array}\if:Option \else + | +\fi +>>> + + + +\<<< +| +>>> + + +\<<< +\:CheckOption{pic-tabular} \if:Option \else + \ConfigureEnv{tabular} + {|% + \IgnorePar|\EndP\HCode{
        }% + \PushStack\Col:Marg\AllColMargins + } + {\HCode{
        }\PopStack\Col:Marg\AllColMargins\ShowPar + |% + |% + }{}{} + \Css{div.tabular, div.center div.tabular {text-align: center; + margin-top:0.5em; margin-bottom:0.5em; }} + \Css{table.tabular td p{margin-top:0em;}} + \Css{table.tabular {margin-left: auto; + margin-right: auto;}} |% centering |% +\fi +>>> + + +\verb'\AllColMargins' Return a binary string in which 1 represents +a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the +zeros before the 1's that represent the current and following 1's. + +\<<< +\def\ColMargins{% + \ifx \AllColMargins\empty + \:warning{Empty \string\AllColMargins}% + \else + \tmp:cnt=\HCol\relax + \expandafter\nosp:hbr\AllColMargins 1//% + \fi } +\def\nosp:hbr#11#2//{\ifnum \tmp:cnt>1 \advance\tmp:cnt by -1 + \nosp:hbr#2//\else\nosp:gt#11#2//\fi} +\def\nosp:gt#11#21#3//{% + \def\:temp{#1}\ifx \:temp\empty 1\else 0\fi + \def\:temp{#2}\ifx \:temp\empty 1\else 0\fi} +>>> + + + + +\<<< +\Configure{VBorder} + {\global\let\oldVBorder=\empty} + {\gdef\oldVBorder{border="1"}} + {}{} +\Configure{halignTB<>}{tabular}{\HCode{id="TBL-\TableNo" + class="tabular"\Hnewline + \oldVBorder \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +\:CheckOption{pic-tabular} \if:Option \else + \Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \halignTB{tabular}\putVBorder } + {\HCode{}} + {\HCode{}} + {\r:HA} + {\HCode{1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}|% + \HCode{">}|% + |\PushStack\Table:Stck\TableNo} + {|\PopStack\Table:Stck\TableNo \d:HA} +\fi +\def\R:HA{\HCode{}} +\def\r:HA{\HCode{}} +\def\D:HA{| \HCode{1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}\ShowPar\par} +\def\d:HA{\ifvmode \IgnorePar \fi \EndP\HCode{}|} +| +\Css{td.td00{ padding-left:0pt; padding-right:0pt; }} +\Css{td.td01{ padding-left:0pt; padding-right:5pt; }} +\Css{td.td10{ padding-left:5pt; padding-right:0pt; }} +\Css{td.td11{ padding-left:5pt; padding-right:5pt; }} +>>> + + + + + + +\<<< +\Configure{noalign}% + {\f:tabular\d:tabular \HCode{}} + {\HCode{}\pend:def\TableNo{0}\c:tabular\e:tabular}% +>>> + +\<<< +\ifvmode\else\HCode{}\fi +>>> + + +\<<< +\Configure{noalign}{}{}% +>>> + + +\<<< +\ShowPar +>>> + +\<<< +\ShowPar \par{\HCondtrue\noindent}% +>>> + + +\<<< +\NoFonts + \bgroup + \ifx \ttfamily\:UnDef \else \ttfamily\fi + \ColMargins + \egroup +\EndNoFonts +>>> + + +\<<< +\SaveEndP +>>> + +\<<< +\RecallEndP +>>> + +\<<< +\par \ShowPar +>>> + +\<<< +\IgnorePar \EndP +>>> + + +\<<< +\Configure{@{}}{} +>>> + + + + +\<<< +\Configure{halignTB<>}{array}{\HCode{id="TBL-\TableNo" class="array"\Hnewline + \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +\:CheckOption{pic-array} \if:Option \else + \Configure{array} + {\ifvmode \IgnorePar\fi \EndP\halignTB{array}\putVBorder} + {\HCode{}} + {\R:HA} + {\r:HA} + {\D:HA\HCode{
        }|\pic:env} + {|\HCode{
        }\d:HA} + \Configure{arrayparbox}{\ShowPar} +\fi +>>> + + + + + + +\<<< + \let\VBorder=\empty \let\AllColMargins=\empty + \Configure{VBorder} + {\let\VBorder=\empty \let\AllColMargins=\empty + \global\let\GROUPS=\empty \HAssign\NewGroup = 0 + \gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo + \global\let\oldVBorder=\empty + } + {\xdef\VBorder{\VBorder\ifnum \NewGroup> 0 \fi} + \HAssign\NewGroup = 0 \gdef\GROUPS{rules="groups"}% + \gdef\oldVBorder{border="1" }% + } + {\Advance:\NewGroup by 1 + \ifnum \NewGroup=1 \xdef\VBorder{\VBorder}\fi + \xdef\VBorder{\VBorder}\xdef\AllColMargins{\AllColMargins1}} + {\xdef\AllColMargins{\AllColMargins 0}} +% \Configure{HBorder} +% {} {} {} +% {} +% {} {} {} +% {} +% {\string } {} +% \Configure{putHBorder}{\HCode{\HBorder}} +\HAssign\Next:TableNo=0 \global\let\TableNo=\Next:TableNo +\Css{.hline hr, .cline hr{ height : 1px; margin:0px; }} +>>> + + + + +\<<< +\def\putVBorder{\expandafter\put:VBorder\VBorder|} +\def\put:VBorder#1#3|{\def\:temp{#2}\ifx\:temp\empty + \HCode{\VBorder}% + \def\:temp{#1}\ifx\:temp\empty \else\HCode{}\fi + \else \def\:temp{\put:VBorder#3|}\expandafter\:temp\fi +} +>>> + + +\<<< +\Configure{multicolumn} + {\let\col:Css\empty + \Configure{VBorder} + {} + {\edef\col:Css{\col:Css + border-\ifnum \ar:cnt=0 left\else right\fi + :solid black 0.4pt;}% + }{}{}% + } + {\ifx \col:Css\empty \else + \Css{td\#TBL-\TableNo-\HRow-\HCol{\col:Css}}% + \fi + } + {\ifvmode\IgnorePar\fi + \HCode{
        }% + \ifx \col:Css\empty \else + \Css{td\#TBL-\TableNo-\HRow-\HCol{\col:Css}}% + \fi + } + {\ifvmode\IgnorePar\fi \EndP\HCode{
        }} +>>> + +\<<< +\def\pic:env{% + \def\begin##1{\bgroup + \def\end####1{\o:end:{####1}\EndPicture\egroup}% + \ifx \EndPicture\:UnDef + \Picture+{ class="##1" style="text-align:middle"}% + \else \let\EndPicture=\empty\fi + \o:begin:{##1}}% +} +>>> + + +\<<< +\Configure{halignTD} {}{} + {<}{\HCode{ style="white-space:nowrap; text-align:left;"}} + {-}{\HCode{ style="white-space:nowrap; text-align:center;"}} + {>}{\HCode{ style="white-space:nowrap; text-align:right;"}} + {^}{\HCode{ style="vertical-align:top; white-space:nowrap;"}} + {=}{\HCode{ style="vertical-align:baseline; white-space:nowrap;"}} + {||}{\HCode{ style="vertical-align:middle; white-space:nowrap;"}} + {_}{\HCode{ style="vertical-align:bottom; white-space:nowrap;"}} + {p}{\HCode{ style="white-space:normal; text-align:left;"}\Protect\a:HColWidth} + {m}{\HCode{ style="white-space:nowrap; text-align:left; vertical-align:middle;"}} + {b}{\HCode{ style="white-space:nowrap; text-align:left; vertical-align:baseline;"}} + {} +\NewConfigure{HColWidth}{1} +\Configure{HColWidth}{} +>>> + + + + + +%%%%%%%%%%%%% +\subsection{Long Tables} +%%%%%%%%%%%%% + + +\<<< + | +>>> + + +\<<< +\:CheckOption{pic-longtable} \if:Option + \ConfigureEnv{longtable} + {\IgnorePar\EndP\Tg
        \Picture*{}} + {\EndPicture\Tg
        }{}{} + \Css{div.pic-longtable {text-align:center;}} +\else + \Log:Note{for pictorial longtable, + use the command line option `pic-longtable'} +\fi +>>> + + + +\<<< +\Configure{halignTB<>}{longtable}{\HCode{id="TBL-\TableNo" + class="longtable"\Hnewline + \oldVBorder \GROUPS\Hnewline + }<>\HAlign} +\Css{table[rules] {border-left:solid black 0.4pt; + border-right:solid black 0.4pt; }} +\Configure{longtable} + {\IgnorePar\EndP + \HCode{|
        }% + \halignTB{longtable}\putVBorder } + {\HCode{
        }} + {\HCode{}} + {\r:HA} + {\HCode{1 colspan="\HMultispan"\fi}% + \halignTD \HCode{ id="TBL-\TableNo-\HRow-\HCol" + \Hnewline class="td}|% + \HCode{">}|% + |\PushStack\Table:Stck\TableNo} + {\PopStack\Table:Stck\TableNo |\d:HA} +\Css{div.longtable{text-align:center;}} +\Configure{longtableparbox}{\IgnorePar\leavevmode\ShowPar\par} +>>> + + + +\<<< +% +>>> + + +%%%%%%%%%%%%% +\subsection{Color Tables} +%%%%%%%%%%%%% + + +\<<< +\Configure{@classz} + {\let\begin:current@color|=\relax + \let\end:current@color|=\relax } + {% + \ifx \CT@column@color\relax \else + \ifx \CT@column@color\empty \else{% + \def\CT@color{\@ifnextchar[\color:ii\color:i}% + \CT@column@color|% + \edef\:temp{\noexpand\add:color + {background-color}{\:temp}{\ar:cnt}}\:temp + }\fi \fi + } + {\begin:current@color} + {\end:current@color} +\Configure{rowcolor}{\row:clr} +\def\row:clr#1{{% + \HAdvance\HRow by 1 + \add:color{background-color}{#1}{\HRow-}}} +\Configure{text-colortbl} + {\add:color{color}{\current@color}{\HRow-\HCol}} +\Configure{cell-colortbl} + {\add:color{background-color}{\current@color}{\HRow-\HCol}} +\def\add:color#1#2#3{% + \Configure{SetHColor}{\Css{ \#TBL-\TableNo-#3{ #1:\HColor }}}{#2}} +>>> + +%%%%%%%%%%%%% +\subsection{Color} +%%%%%%%%%%%%% + + +\<<< +\HAssign\textcolorN=0 +\Configure{colorbox} + {\bgroup + \gHAdvance\textcolorN by 1 + \ifvmode \let\v:colorbox\def \IgnorePar \EndP + \else \let\v:colorbox=\relax \fi + |% + \HCode{<\ifx \v:colorbox\def div\else span\fi \Hnewline + class="colorbox" id="colorbox\textcolorN">}}% + {\ifx \v:colorbox\def \EndP\HCode{
        }\par + \else \HCode{}\fi + \egroup + } +>>> + + + + +\<<< +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor} + {\Css{span\#textcolor\textcolorN{color:\HColor}}}}% + \HCode{}}% + {\HCode{}} +>>> + + + +\<<< +\let\A:color=\a:color +\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor} + {\Css{\ifx \v:colorbox\def div\else span\fi + \#colorbox\textcolorN{background-color:\HColor;}}}}% +>>> + + +\<\><<< +\Configure{fcolorbox} + {\gHAdvance\textcolorN by 1 + \let\A:color=\a:color + \Configure{color}% + {\Configure{SetHColor}{\Css{\#colorbox\textcolorN{border: + solid 1px \HColor;}}}}% + \Configure{fbox}{\leavevmode + \gHAdvance\textcolorN by -1 \let\a:color=\A:color}{}} + {} +>>> + + +\<<< +\Configure{fcolorbox} + {\bgroup\gHAdvance\textcolorN by 1 + \ifvmode \let\v:colorbox\def \IgnorePar \EndP + \else \let\v:colorbox=\relax \fi + \HCode{<\ifx \v:colorbox\def div\else span\fi \Hnewline + class="colorbox" id="colorbox\textcolorN">}% + |% + \Configure{fbox}{\leavevmode }{}% +} +{\ifx \v:colorbox\def \EndP\HCode{
        }\par + \else \HCode{}\fi \egroup} +>>> + +\<<< +\let\A:color=\a:color +\Configure{color}% + {|% + \Configure{SetHColor}{% + \Css{\#colorbox\textcolorN{border: solid 1px \HColor;}}}% + }% +>>> + +\<<< +\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor}{% + \Css{\#colorbox\textcolorN{background-color: \HColor;}}% + }}% +>>> + + + +%%%%%%%%%%%%% +\subsection{Fonts} +%%%%%%%%%%%%% + + + + +\<<< +\Configure{textbf} + {\ifimmediate\else \Protect\HCode{}\fi} + {\ifimmediate\else \Protect\HCode{}\fi} +\Configure{textit} + {\ifimmediate\else \Protect\HCode{}\fi} + {\ifimmediate\else \Protect\HCode{}\fi} +\Configure{textsl} + {\ifimmediate\else \Protect\HCode{}\fi} + {\ifimmediate\else \Protect\HCode{}\fi} +\Configure{texttt} + {\ifimmediate\else \Protect\HCode{}\fi} + {\ifimmediate\else \Protect\HCode{}\fi} +\Configure{emph} + {\ifimmediate\else \Protect\HCode{}\fi} + {\ifimmediate\else \Protect\HCode{}\fi} +>>> + + +\<<< +\Configure{jhxml} +{% + \let\textbf\empty + \let\textit\empty + \let\textsl\empty + \let\texttt\empty + \let\textsc\empty + \let\emph\empty +} +>>> + + + +\<<< +\Configure{jhxml} +{% + \let\IeC\empty +} +>>> + +%%%%%%%%%%%%% +\subsection{French} +%%%%%%%%%%%%% + + + +\<<< +\Configure{jhxml} +{% + \expandafter\def\csname + a:frenchb-thinspace\endcsname##1frenchb-thinspace\endcsname{}% +} +>>> + +\<<< +\expandafter\let\csname jha:ftsp\expandafter\endcsname + \csname a:frenchb-thinspace\endcsname +\expandafter\def\csname a:frenchb-thinspace\endcsname{% + \ifimmediate + \expandafter\jha:ftspignore + \else + \expandafter\jha:ftsp + \fi +} +\def\jha:ftspignore#1frenchb-thinspace\endcsname{} +>>> + + + +%%%%%%%%%%%%% +\subsection{Ulem} +%%%%%%%%%%%%% + + + +\<<< +\Configure{uline} + {\HCode{}} {\HCode{}} +\Css{.uline{ text-decoration:underline; }} +\Configure{uuline} + {\HCode{}} {\HCode{}} +\Css{.uuline{ text-decoration:underline; }} +\Configure{sout} + {\HCode{}} {\HCode{}} +\Css{span.sout {text-decoration: line-through }} +\Configure{xout} + {\HCode{}} + {\HCode{}} +\Css{span.xout {text-decoration: line-through }} +\Configure{uwave} + {\HCode{}} + {\HCode{}} +\Css{span.uwave {text-decoration:underline }} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The JavaHelp Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<<< +% javahelp.4ht (|version), generated from |jobname.tex +% Copyright 2009-2019 TeX Users Group +% Copyright |CopyYear.2003. Eitan M. Gurari +| +>>> + +\<<< +|% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The HTML Documentation (*.html)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Prepare a \LaTeX{} file and compile it for HTML 3.2. For instance, +with the command {\tt htlatex jobname "html,3.2,3,javahelp"}. + +% \special{t4ht>foo.log} +% \special{t4ht=...x...} +% \special{t4ht*>foo.log} +% \special{t4ht*>} + + +\<<< +| +% \newif\ifimmediate +% \immediatefalse +>>> + + + +\<<< +\def\Write:File#1#2{% + \special{t4ht>#1}% + \special{t4ht=#2}% + \special{t4ht*>#1}% + \special{t4ht*>}% +} +>>> + + +\<<< +\NewConfigure{jhxml}[1]{\concat:config\a:jhxml{#1}} +\let\a:jhxml\relax +>>> + +\<<< +% javahelp-a.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2003. Eitan M. Gurari +| +\NextFile{\jobname.tmp} +\HPage{} +\bgroup + \catcode`\:=11 + \catcode`\@=11 + \catcode`\"=12 + \Configure{PROLOG}{} + \Configure{HtmlPar}{}{}{}{} + \Configure{tableofcontents}{}{}{}{}{} + \Configure{htf}{0}{+}{}{}{}{}{}{}{} + \ScriptEnv{dito}{\IgnorePar}{} + \a:jhxml + | + | + | + | + | +\egroup +\EndHPage{} +>>> + +The HPage above is to ensure the all the references in the javahelp +files will be to locations at other files, and so they will explicitly +include the names of the files being referenced. The page is empty +and not referenced by other pages. + +\<<< +\immediate\write-1{--------------- JavaHelp -----------------} +\immediate\write-1{The entry (HelpSet) file for the java program + is at `\jobname.hs'} +\immediate\write-1{Generate a search database + with, for instance, the command} + \immediate\write-1{ java -jar + ...../jh1.1.3/javahelp/bin/jhindexer.jar + -db \jobname-jhs \jobname*.html} +\immediate\write-1{Compile the java program with a command similar to} + \immediate\write-1{ javac -classpath + ...../jh1.1.3/javahelp/lib/jh.jar program.java} +\immediate\write-1{Run the java program with a command similar to} + \immediate\write-1{ java -classpath + ...../jh1.1.3/javahelp/lib/jh.jar;. program} +\immediate\write-1{JavaHelp might require a compilation for HTML 3.2, + for instance,} +\immediate\write-1{ htlatex \jobname\space "html,javahelp,3.2,3"} +\immediate\write-1{------------------------------------------} +>>> + + + +\<<< +\def\jhNote{% + Created for JavaHelp + (http://java.sun.com/products/javahelp/)\Hnewline + by TeX4ht (https://tug.org/tex4ht/)\Hnewline + from \jobname.tex \space + } +>>> + +We can't keep the comment boundaries +in the macro because the adjacent hyphens +in some cases merge into a n-dash + under font encoding T1. For instance, + +\begin{verbatim} + \documentclass{report} + \usepackage[T1]{fontenc} + \begin{document} + + \ScriptEnv{dito}{}{} + + \begin{dito} + --[]-[] + \end{dito} + \end{document} +\end{verbatim} + + + +\<<< +\jhNote +>>> + + + +\<<< +!*?: >>> + + + + + +\<<< +\Configure{crosslinks}{}{}{}{}{}{}{}{}{} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The JavaHelp Root File (HelpSet File: jobname.hs)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +This file introduces the files in the help distribution. + + +\<<< +\jobname.hs>>> + + +The etension name must be `hs'! + + + +\<<< +\dTdLaNg>>> + +\<<< +\def\dTdLaNg{\expandafter + \ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname + \fi } +>>> + +\<<< +| +\IgnorePar\par\leavevmode\special{t4ht>|}% +\begin{dito}-\ + +\end{dito} +| +\begin{dito}-\ + -\relax-> + + |<title label|> + + | + + + + TOC + + javax.help.TOCView + | + + + Index + + javax.help.IndexView + | + + + Search + + javax.help.SearchView + | + + +\end{dito} +\IgnorePar\par\leavevmode\special{t4ht<|} +>>> + + + +\<<< +\tocLabel>>> + +\<<< +\indexLabel>>> + +\<<< +Search>>> + +\<<< +\titleLabel>>> + + +\<jh root config\><<< +\edef\tocLabel{\ifx\contentsname\:UnDef Table Of Contents\else + \ifx\contentsname\empty Table Of Contents\else + \contentsname\fi\fi} +\edef\indexLabel{\ifx\indexname\:UnDef Index\else + \ifx\indexname\empty Index\else \indexname\fi\fi} +\ifTag{TITLE+} + {\edef\titleLabel{\LikeRef{TITLE+}}} + {\def\titleLabel{\jobname}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The JavaHelp Search Directory (jobname-jhs)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<url of jh serach dir\><<< +\jobname-jhs>>> + +\def\JHINDEXER{java -jar +\JHDIR jh2.0/javahelp/bin/jhindexer.jar + -db \jobname-jhs \jobname*.html} + + + + +Use a command similar to `{\tt \JHINDEXER}' +to create a search directory \verb+JavaHelpSearch+ for JavaHelp from the HTML pages of the documentation. + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The JavaHelp Keys to URLs Mapping (jobname.jhm)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<url of jh keys file\><<< +\jobname.jhm>>> + + +The homeId tag provides the default entry to present when a HelpSet is +first shown. + +\<home id\><<< +\jobname>>> + +The default entry point can be overwritten in: + +\<entry point\><<< +\jobname>>> + + + +Assigns keys to locations within the HTML document. + + + +\<jh at start\><<< +\Write:File + {|<url of jh keys file|>} + {|<map preamble|>} +>>> + + +\<map preamble\><<< +<?xml version="1.0" encoding="ISO-8859-1" ?>\Hnewline +|<map DTD|> +\Hnewline <!-- |<tex4ht note|> -->\Hnewline +<map version="\dotVersion">\Hnewline +<mapID target="|<entry point|>" url="\jobname.html"/>\Hnewline +>>> + + +\<jh defs\><<< +\HAssign\mapEntry=0 +>>> + + +\<add index entry to map\><<< +\gHAdvance\mapEntry by 1 +\Write:File + {|<url of jh keys file|>}% + {<mapID target="indexentry-\mapEntry" + url="\RefFileNumber\FileNumber + \#\title:chs {dx\last:haddr}{\cur:th\:currentlabel}% + " />\Hnewline}% +>>> + + + +\<jh defs\><<< +\AtBeginDocument{% + \let\jh:toc=\auto:toc + \expandafter\append:defI\csname tableofcontents*\endcsname{% + \global\let\jh:toc=\auto:toc }% +} +>>> + + +\<load table of contents\><<< +\expandafter\ifx \csname jh:toc\endcsname\relax + \tableofcontents +\else + \expandafter\expandafter\expandafter\tableofcontents + \expandafter\expandafter\expandafter[\csname + jh:toc\endcsname]% +\fi +>>> + +\<jh at end\><<< +\special{t4ht>|<url of jh keys file|>}% +\bgroup + |<jh map for toc|> + \bgroup \catcode`\:=12 \catcode`\@=12 \let\contentsname\empty + |<load table of contents|>% + \egroup + \HCode {</map>\Hnewline} +\egroup +\special{t4ht*>|<url of jh keys file|>}% +\special{t4ht*>}% +>>> + +\<jh map for toc\><<< +\Configure{Link}{mapID}{target="\a:mapIdTarget" url=}{}{} +\Configure{TocLink}{\Link{#2}{}\EndLink} +\let\jh:doTocEntry\:doTocEntry +\def\:doTocEntry#1#2#3{% + \edef\sectioningKey{\expandafter\gob:IV\string#1}% + \edef\:temp{\noexpand\ConfigureToc{\sectioningKey} + {}{\relax}{}{}}\:temp + |<config toc target entry|>% + \jh:doTocEntry#1{#2}{#3}} +\def\gob:IV#1#2#3#4{} +\def\sectioningKey{NoToc} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The JavaHelp TOC (jobname-jht.xml)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<url of jh toc file\><<< +\jobname-jht.xml>>> + +\<jh toc\><<< +\bgroup +%\immediatetrue +|<jh TOC config|> +|<start jh TOC|> + |<load table of contents|>% +|<end jh TOC|> +\egroup +>>> + +\<start jh TOC\><<< +\IgnorePar\par\leavevmode\special{t4ht>|<url of jh toc file|>}% +\begin{dito}-\ +<?xml version="1.0" encoding="ISO-8859-1" ?> +\end{dito} +|<toc DTD|> +\begin{dito}-\ +<!-\relax- |<tex4ht note|> -\relax-> +<toc version="\dotVersion"> + <tocitem target="|<entry point|>" text="|<title label|>|<uni sp|>"> +\end{dito} +\let\end:jhhook=\empty +\catcode`\:=12 \catcode`\@=12 \let\contentsname\empty +\NoFonts +>>> + +\<end jh TOC\><<< +\EndNoFonts +\catcode`\:=11 \catcode`\@=11 +\end:jhhook +\begin{dito} + </tocitem> +</toc> +\end{dito} +\special{t4ht<|<url of jh toc file|>} +>>> + + + +\<jh TOC config\><<< +\Configure{TocLink} + {\HCode{<tocitem target="\a:mapIdTarget"\Hnewline + text="}\hbox{#4}\HCode{|<uni sp|>">\Hnewline}} +\let\jh:doTocEntry\:doTocEntry +\def\:doTocEntry#1#2#3{% + \edef\sectioningKey{\expandafter\gob:IV\string#1}% + \edef\:temp{\noexpand\ConfigureToc{\sectioningKey} + {}{\noexpand\set:endtocitem{\sectioningKey}}{}{}}\:temp + |<config toc target entry|>% + \jh:doTocEntry#1{#2}{#3}} +\def\gob:IV#1#2#3#4{} +\def\sectioningKey{NoToc} +>>> + + + +\<jh util\><<< +\def\set:endtocitem#1{% + \csname catchAt:#1\endcsname + \expandafter\ifx\csname a:end#1\endcsname\relax + \HCode{</tocitem>}% + \else + \expandafter\ifx \csname jh:#1\endcsname\relax + |<end tocitem at end of toc|>% + \def\:tempc##1,{\if ,##1,% + \expandafter\gob:pardel + \else + |<end tocitem at toc entry of diff type|>% + \expandafter\:tempc + \fi}% + \expandafter\expandafter\expandafter + \:tempc\csname a:end#1\endcsname,,|<par del|>% + \fi + |<end tocitem at toc entry of same type|>% + \fi +} +\def\gob:pardel#1|<par del|>{} +>>> + + +\<end tocitem at toc entry of same type\><<< +\csname jh:#1\endcsname +\expandafter\gdef\csname jh:#1\endcsname{% + \expandafter\global\expandafter\let\csname jh:#1\endcsname=\empty + \HCode{</tocitem><!--/#1-->}}% +>>> + +\<end tocitem at toc entry of diff type\><<< +\expandafter\ifx \csname catchAt:##1\endcsname \relax + \expandafter\gdef\csname + catchAt:##1\endcsname{\csname jh:#1\endcsname}% +\else + \expandafter\pend:def\csname + catchAt:##1\endcsname{\csname jh:#1\endcsname}% + \expandafter\global\expandafter\let\csname + catchAt:##1\expandafter\endcsname\csname catchAt:##1\endcsname +\fi +>>> + + +\<end tocitem at end of toc\><<< +\append:def\end:jhhook{% + \csname jh:#1\endcsname + \expandafter\global\expandafter + \let\csname jh:#1\endcsname\:UnDef}% +\global\let\end:jhhook\end:jhhook +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The JavaHelp Index (jobname-jhi.xml)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<url of the jh index\><<< +\jobname-jhi.xml>>> + +\<jh index\><<< +\bgroup +|<jh IDX config|> +|<start jh IDX|> + |<load index entries|>% +|<end jh IDX|> +\egroup +>>> + + +\<start jh IDX\><<< +\IgnorePar\par\leavevmode\special{t4ht>|<url of the jh index|>}% +\begin{dito}-\ +<?xml version="1.0" encoding="ISO-8859-1" ?> +\end{dito} +|<index DTD|> +\begin{dito}-\ +<!-\relax- |<tex4ht note|> -\relax-> +<index version="\dotVersion"> +\end{dito} +>>> + +\<end jh IDX\><<< +\begin{dito} +</index> +\end{dito} +\special{t4ht<|<url of the jh index|>}% +>>> + + +\<load index entries\><<< +\let\indexname\empty +\def\gobbleLnk#1, \LNK#2#3#4#5{#1\HCode{" target="indexentry-#5"}} +\Configure{theindex} + {}{} + {\hbox\bgroup\HCode{<\string !--index-item--><indexitem + text="}\gobbleLnk} + {\HCode{/>}\egroup\hfill\break} + {\hbox\bgroup\HCode{<\string !--subex-item--><indexitem + text="}\gobbleLnk} + {\HCode{/>}\egroup\hfill\break} + {\hbox\bgroup\HCode{<\string !--subsubitem--><indexitem + text="}\gobbleLnk} + {\HCode{/>}\egroup\hfill\break} + {} +\immediate\openin15=\jobname.ind +\ifeof15 + \immediate\closein15 +\else + \immediate\closein15 + \input \jobname.ind +\fi +>>> + + + +\<load index entriesNO\><<< +\def\beforeindex#1||LNK#2#3{#1}% +\def\indexentry#1#2{\HCode{<indexitem target="indexentry-#2" + text="}\beforeindex#1\HCode{|<uni sp|>" />\Hnewline}}% +\immediate\openin15=\jobname.4dx +\ifeof15 + \immediate\closein15 +\else + \immediate\closein15 + \input \jobname.4dx +\fi +>>> + + +\<jh defs\><<< +\HAssign\indexEntry=0 +\append:defI\@wrindex{% + |<add index entry to map|>% +} +>>> + + +JavaHelp has problems with unicode values at the end of text fields in +the toc of within the jht file: it refuses `\verb+text="Menü"+' +(but accepts `\verb+text="Menü "+'). The following adds spaces at +the end of the text attribute values. + +\<uni sp\><<< + >>> + +A similar problem occurs when two unicode character codes follow each +other. In this case, the second one is not properly rendered. + + +%%%%%%%%%%%%% +\subsection{Configuring Link Targets} +%%%%%%%%%%%%% + +\<config toc target entry\><<< +\expandafter\target:info#3//% +\b:mapIdTarget +>>> + +\<jh defs\><<< +\def\target:info#1#2#3#4#5#6//{% + \let\sectionType=\sectioningKey + \let\sectionId\TocCount + \Advance:\sectionId 1 + \def\sectionName{#5}% + } +\NewConfigure{mapIdTarget}{2} +\Configure{mapIdTarget} + {\sectionType-\sectionId} + {} +>>> + + + +%%%%%%%%%%%%% +\subsection{Version Information} +%%%%%%%%%%%%% + + + +\<helpset DTD\><<< +\begin{dito}-\ + <!DOCTYPE helpset PUBLIC + "-//Sun Microsystems Inc.//DTD JavaHelp HelpSet Version \dotVersion//|<dtd lang|>" + "http://java.sun.com/products/javahelp/helpset_\subVersion.dtd"> +\end{dito} +>>> + +\<toc DTD\><<< +\begin{dito}-\ + <!DOCTYPE toc PUBLIC + "-//Sun Microsystems Inc.//DTD JavaHelp TOC Version \dotVersion//|<dtd lang|>" + "http://java.sun.com/products/javahelp/toc_\subVersion.dtd"> +\end{dito} +>>> + +\<index DTD\><<< +\begin{dito}-\ + <!DOCTYPE index PUBLIC + "-//Sun Microsystems Inc.//DTD JavaHelp Index Version \dotVersion//|<dtd lang|>" + "http://java.sun.com/products/javahelp/index_\subVersion.dtd"> +\end{dito} +>>> + + +\<old index DTD\><<< + <!DOCTYPE index PUBLIC + "-//Sun Microsystems Inc.//DTD JavaHelp Index Version \dotVersion//|<dtd lang|>" + "http://java.sun.com/products/javahelp/index_\subVersion.dtd"> +>>> + + + + + +\<map DTD\><<< +<!DOCTYPE map PUBLIC\Hnewline + "-//Sun Microsystems Inc.//DTD + JavaHelp Map Version \dotVersion//|<dtd lang|>"\Hnewline + "http://java.sun.com/products/javahelp/map_\subVersion.dtd"> >>> + + +\<jh defs\><<< +\:CheckOption{jh1.0} \if:Option + \def\dotVersion{1.0} + \def\subVersion{1\string_0} +\else + \def\dotVersion{2.0} + \def\subVersion{2\string_0} +\fi +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Incorporate JavaHelp into a program} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Url of JavaHelp root file (jobname.hs) + +\url{http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/javahelp/javahelp.html} + +%// javac -classpath ~/javahelp.dir/jh2.0/javahelp/lib/jh.jar program.java +%// java -classpath ~/javahelp.dir/jh2.0/javahelp/lib/jh.jar program + +\<program\><<< +import java.net.URL; +import javax.help.*; +import javax.swing.*; +public class program { + //^^^^^^^ + public static void main(String args[]) { + JHelp helpViewer=null; + try { + ClassLoader cl = program.class.getClassLoader(); + //^^^^^^^ + URL url = HelpSet.findHelpSet(cl, + "|<jobname.hs: url of jh root file|>"); + HelpSet hs = new HelpSet(cl, url); + helpViewer = new JHelp( hs ); + /* + helpViewer.setCurrentID("|<entry point|>"); + */ + } catch (Exception e) { + System.out.println("error"); System.exit(0); + } + JFrame frame = new JFrame(); + frame.getContentPane().add(helpViewer); + frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + frame.setSize(500,500); + frame.setVisible(true); + } +} +>>> + + +\url{http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javahelp/} + +\<HelpMenu\><<< +import java.net.*; +import javax.help.*; +import javax.swing.*; +import java.awt.event.*; + +public class HelpMenu { + JFrame f; + JMenuItem topics; + + public HelpMenu() { + f = new JFrame("Menu Example"); + JMenuBar mbar = new JMenuBar(); + + // a file menu + JMenu file = new JMenu("File"); + JMenu help = new JMenu("Help"); + + // add an item to the help menu + help.add(topics = new JMenuItem("Help Topics")); + + // add the menu items to the menu bar + mbar.add(file); + mbar.add(help); + + // 1. create HelpSet and HelpBroker objects + HelpSet hs = getHelpSet(|<jobname.hs: url of jh root file|>); + HelpBroker hb = hs.createHelpBroker(); + + // 2. assign help to components +/* + CSH.setCurrentID("|<entry point|>"); +*/ + // 3. handle events + topics.addActionListener(new CSH.DisplayHelpFromSource(hb)); + + // attach menubar to frame, set its size, and make it visible + f.setJMenuBar(mbar); + f.setSize(500, 300); + f.setVisible(true); + } + + /** + * find the helpset file and create a HelpSet object + */ + public HelpSet getHelpSet(String helpsetfile) { + HelpSet hs = null; + ClassLoader cl = this.getClass().getClassLoader(); + try { + URL hsURL = HelpSet.findHelpSet(cl, helpsetfile); + hs = new HelpSet(null, hsURL); + } catch(Exception ee) { + System.out.println("HelpSet: "+ee.getMessage()); + System.out.println("HelpSet: "+ helpsetfile + " not found"); + } + return hs; + } + + public static void main(String argv[]) { + new HelpMenu(); + } +} +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Compiling} +%%%%%%%%%%%%%%%%%%%%% + +\def\JAVAC{javac -classpath \JHDIR jh2.0/javahelp/lib/jh.jar program.java} + +Add JavaHelp to your program, say `program.java', and compile the +program with the command `{\tt \JAVAC}'. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Running} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\RUN{java -classpath \JHDIR jh2.0/javahelp/lib/jh.jar;. program} + +Use the a command similar to `{\tt \RUN}'. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Compressing (with JAR)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\begin{verbatim} +javac -classpath c:\jh1.1.3\javahelp\lib\jhall.jar + -d c:\temp + JavaHelpTest.java + +jar cvfm JavaHelpTest.jar manifest JavaHelpTest.class + +java -jar jh1.3.1/demos/bin/UserGuide.jar +\end{verbatim} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Getting the JavaHelp Software} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +Download JavaHelp from + \url{http://java.sun.com/products/javahelp/download_binary.html} +and unzip it into some directory (say {\tt \JHDIR}). + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sample} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Help Set} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\verbatiminput{\jobname.hs} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Map Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\verbatiminput{\jobname.jhm} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Table of Contents} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\verbatiminput{\jobname-jht.xml} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Index} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\verbatiminput{\jobname-jhi.xml} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \OutputCodE\<javahelp.4ht\> +\OutputCodE\<javahelp-a.4ht\> + +\ifOption{javahelp} + { + \Needs{"xhlatex \jobname\space \string\"html,3,javahelp\string\""} + \Needs{"xhlatex \jobname\space \string\"html,3,javahelp\string\""} + } + {} + +\endinput + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + + diff --git a/support/TeX4ht/source/tex4ht-jsmath.tex b/support/TeX4ht/source/tex4ht-jsmath.tex new file mode 100644 index 0000000000..97e86de263 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-jsmath.tex @@ -0,0 +1,899 @@ +% $Id: tex4ht-jsmath.tex 77 2011-01-28 11:45:59Z cvr $ +% compile 3 times: latex tex4ht-jsmath +% or xhlatex tex4ht-jsmath "html,3,sections+" +% +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) 2005-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. +% +% CDATA support: +% http://planetmath.org/encyclopedia/ +% +% <script type="text/javascript"> +% //<![CDATA[ +% jsMath.Macro( 'ab', '{#1}_{\\mathrm{ab}}', 1) +% //]]> +% </script><script type="text/javascript"> +% //<![CDATA[ +% jsMath.Macro( 'Ad', '\\mathrm{Ad}', 0) +% //]]> +% </script><script type="text/javascript"> +% //<![CDATA[ +% jsMath.Macro( 'ad', '\\mathrm{ad}', 0) +% //]]> + +\ifx \HTML\UnDef + \def\HTML{jsmath,html-jsmath} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Constructs} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<jsmath\><<< +% jsmath.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2005. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +\<html-jsmath\><<< +% html-jsmath.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2006. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + +\<configure html-jsmath tex4ht\><<< +\Configure{VERSION}{} +>>> + + +\<configure jsmath tex4ht\><<< +\NewConfigure{jsmath}{1} +\ifOption{easy-load}{% + \Configure{jsmath}{jsMath/easy/load.js}% +}{% + \Log:Note{The `easy-load' command line option offers + an alternative loading approach of + jsMath version 3.4 or above}% + \Configure{jsmath}{jsMath/jsMath.js}% +} +>>> + +% CVR: 2011-01-28 + +Rob Beezer \texttt{<beezer@ups.edu>} reported parse errors triggered +by xtpipes when jsmath compatible html pages are generated. Hence the +\verb=\Hcode{<!--l. \the\inputlineno-->}= has been commented out. Also +commented out is \verb= |<recall dvimath par|>= which would insert a +\verb=\sv:ignore= macro at the end of the \verb=DViMath= +configuration. + + +\<configure html-jsmath tex4ht\><<< +\Configure{DviMath} + {\a:DviJsmath \mathltxtrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule + % \HCode{<!--l. \the\inputlineno-->} + \ifx \a:@math\empty\else + \Tg<\a:@math\space class="math"\Hnewline >\fi + \a:math + |<sv dvimath par|>\IgnorePar} + {\ifx \a:@math\empty\else \Tg</\a:@math>\fi \EndIgnoreRule + \ifOption{mml-fonts}{}{|%\ext:htfsym|%\EndNoFonts}% + \mathltxfalse \After:Math \b:DviJsmath % |%recall dvimath par|% + } +\NewConfigure{DviJsmath}{2} +>>> + + + +\<defs for jsmath\><<< +jsMath.Macro('firstOfOne','\#1',1) +>>> + + + +\<end mtext space\><<< +\ht:special{t4ht@,}% +>>> + +\<start mtext space\><<< +\ht:special{t4ht@,&\#x00A0;}% +>>> + +Changes to fix bugs reported by Rob Beezer's +\texttt{<beezer@ups.edu>}: Values of \verb=\@math= in the +configurations of \verb=$= and \verb=$$= have been changed from +\verb=span= and \verb=div= to \verb=\dlr= and \verb=\dlr\dlr= +respectively. \verb=\dlr= will expand to \verb=$= character which is +needed by jsMath. Removed \verb=|<inline end-par comment|>= after +\verb=IgnorePar= in the configuration for \verb=$$=. + + +\<configure jsmath tex4ht\><<< +\def\dlr{\expandafter\@gobble\string\$} +\Configure{$} + {\Configure{@math}{\dlr}\DviMath} + {\EndDviMath}{} +\Configure{$$} + {\Configure{@math}{\dlr\dlr}\IgnorePar + \EndP\DviMath} + {\EndDviMath + \ShowPar\par{\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +>>> + +\<recall dvimath par\><<< +\sv:ignore +>>> + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + +\<configure html-jsmath tex4ht\><<< +\Configure{@HEAD}{|<load jsmath|>} +\Configure{@BODY} + {\ifvmode \IgnorePar\fi \EndP\HCode{% + |<window opening|>% + |<load jsmath warning|>% + }\par\ShowPar} +\ifOption{easy-load}{}{% + \Configure{@/BODY}{% + \par\IgnorePar\EndP + \HCode{ + <script type="text/javascript" >\Hnewline + jsMath.Process();\Hnewline + </script> + }\par}% +} +\Configure{!BODY}{ class="tex2math_ignore" } +>>> + + + +\<load jsmath\><<< +\HCode{<script + type="text/javascript" + src="\a:jsmath"></script>\Hnewline +<script type="text/javascript">|<defs for jsmath|></script>\Hnewline} +>>> + +\<load jsmath warning\><<< +<noscript> \Hnewline +<div style="color:\#CC0000; text-align:center"> \Hnewline +<b>Warning: <a href="http://www.math.union.edu/locate/jsMath">jsMath</a> \Hnewline +requires JavaScript to process the mathematics on this page.<br /> \Hnewline +If your browser supports JavaScript, be sure it is enabled.</b> \Hnewline +</div> \Hnewline +<hr /> \Hnewline +</noscript>\Hnewline +>>> + + + +%%%%%%%%%%%%% +\subsection{Links} +%%%%%%%%%%%%% + + + + +\<configure jsmath tex4ht\><<< +\def\Hbrakets<#1>{\ifmathltx + \ifmtext @(#1)\else \string\hbox{@(#1)}\fi + \else <#1>\fi} +\def\EndLink{\ifmathltx + \ifmtext |<end mtext space|>% + \egroup \HCode{\%\Hnewline\%}\Endmtxt:link + \HCode{\string\end{ref}\Hnewline}|<start mtext space|>% + \else \HCode{\Hbrakets</a>}\fi + \else \expandafter\M:EndLink\fi} +\LinkCommand\msp:link{a, href, id, \mml:class="label",,} +>>> + +\<configure jsmath tex4ht\><<< +\def\Link{\M:Link} +\def\EndLink{\M:EndLink} +>>> + + +``The contents of an \verb=\hbox{}= are not rendered by jsMath, but +instead are used as plain text in the browser. JsMath allows you to +include HTML commands through the (rather awkward) means of using +@(...) in place of \verb=<...>=. For example, \verb=\hbox{@(tt)= + monospaced \verb=text@(/tt)= would get the enclosed text in the TT font.'' +The above also holds for \verb=\text= instead of \verb=\hbox=. + + + +%%%%%%%%%%%%% +\subsection{Core} +%%%%%%%%%%%%% + + + +\<configure jsmath tex4ht\><<< +\Configure{over} + {\Send{GROUP}{0}{\l:brace\space}} + {\HCode{\string\over\space}\Send{EndGROUP}{0}{\r:brace\space}} +\Configure{atop} + {\Send{GROUP}{0}{\l:brace\space}} + {\HCode{\string\atop\space}\Send{EndGROUP}{0}{\r:brace\space}} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{LaTeX} +%%%%%%%%%%%%%%%%%% + +\marginpar{Anchors need fixing} + +\<configure jsmath latex\><<< +\def\set:label#1{\ifmathltx +% \HCode{\%\Hnewline\%\string\begin{label}}% +% {\ht:special{t4ht@, }\let\:newlnch\space \mathltxfalse #1}% +% \HCode{\string\end{label}\Hnewline}% + \else #1\fi +} +>>> + + + + +\<configure jsmath latex\><<< +\Configure{frac} + {\HCode{\l:brace}} + {\HCode{\string\over\space}\Configure{over}{}{}} + {} + {\HCode{\r:brace}} +>>> + + + + + +\<configure jsmath latex\><<< +\Configure{[]} + {\Configure{@math}{div}\csname a:mathltx[]\endcsname + \DviMath$$\DisplayMathtrue } + {$$\EndDviMath\csname b:mathltx[]\endcsname} +\Configure{()} + {\Configure{@math}{span}\csname a:mathltx()\endcsname + \DviMath$} + {$\EndDviMath\csname b:mathltx()\endcsname} +>>> + + +\<configure jsmath fontmath\><<< +\Configure{mfenced}{\langle}{\string\langle\space} +\Configure{mfenced}{\rangle}{\string\rangle\space} +\def\:tempc{\HCode{\string\langle\space}} +\HLet\langle\:tempc +\def\:tempc{\HCode{\string\rangle\space}} +\HLet\rangle\:tempc +\def\:tempc{\HCode{\string\vert\space}} +\HLet\vert\:tempc +\def\:tempc{\HCode{\string\Vert\space}} +\HLet\Vert\:tempc +\def\:tempc{\HCode{\string\||}} +\HLet\||\:tempc +\def\:tempc{\HCode{\string\big\space}} +\HLet\big\:tempc +\def\:tempc{\HCode{\string\bigg\space}} +\HLet\bigg\:tempc +\def\:tempc{\HCode{\string\Big\space}} +\HLet\Big\:tempc +\def\:tempc{\HCode{\string\Bigg\space}} +\HLet\Bigg\:tempc +>>> + + + +\<configure jsmath array\><<< +|<config array|> +>>> + +\<configure jsmath latex\><<< +|<config array|> +>>> + +\<config array\><<< +\Configure{array} + {%\expandafter\tmp:toks\expandafter{\Clr}% + \HCode{\string\array\l:brace\Hnewline}} + {\ifvmode \IgnorePar\fi \HCode{\r:brace}} + {\ifnum \HRow> 1\HCode{\string\cr\Hnewline}\fi} + {} + {|<mtd array|>} + {} +>>> + + +\<configure jsmath latex\><<< +\Configure{emph} + {\ifmmode \Configure{@mtext}{\string\mathit}\fi} + {}% +>>> + +%%%%%%%%%%%%%%%%%% +\section{AMS Math} +%%%%%%%%%%%%%%%%%% + +\<configure jsmath amsmath\><<< +\expandafter\def\csname genfrac \endcsname#1#2#3#4{% + \def\:tempa{#1}\ifx\:tempa\empty\else \HCode{\string\left}#1\fi + \def\:tempa{#2}\ifx\:tempa\empty\else \def\:tempa{\HCode{\string\right}#2}\fi + \edef\@tempb{\@nx\@genfrac\@mathstyle{#4}% + \expandafter\noexpand\csname @@\ifx @#3@over\else above\fi + \endcsname}% + \@tempb{#3}} +\def\:tempc#1#2#3#4#5{{\a:genfrac#1\b:genfrac{\c:genfrac#4#2#3\relax + {\d:genfrac#5\e:genfrac}}\f:genfrac}\:tempa} +\HLet\@genfrac\:tempc +>>> + + +\<configure html-jsmath amsmath\><<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + |<amsmath html-jsmath pre 2000|> + \else + |<amsmath html-jsmath jan 2000|> + \fi +\else + |<amsmath html-jsmath july 2000|> +\fi +>>> + + +\<configure html-jsmath amsmath\><<< +\Configure{equation$$} + {\Configure{$$} + {\IgnorePar \Configure{@math}{div}\EndP\DviMath} + {\EndDviMath\EndP} + {\DisplayMathtrue}% + } +>>> + +\<configure jsmath amsmath\><<< +\Configure{tmspace} + {\HCode{\string\kern \space \textspace\space}} +\def\lvert{\HCode{\string\vert\space}} +\def\rvert{\HCode{\string\vert\space}} +\def\lVert{\HCode{\string\Vert\space}} +\def\rVert{\HCode{\string\Vert\space}} +>>> + +% CVR: 2011-01-28 + +Changes to fix bugs reported by Rob Beezer's +\texttt{<beezer@ups.edu>}: Configuration for \verb=\intertext= +introduced. + +\<configure jsmath amsmath\><<< +\Configure{intertext} + {\IgnorePar %\ifinalign@ + \HCode{\string\cr }% + \AA:text{intertext}} + {\BB:text \ifvmode \IgnorePar \fi %\EndP + \HCode{\string\cr }} +>>> + +\<configure jsmath amsmath\><<< +\ConfigureEnv{multline} + {\bgroup \Configure{$$} + {\Configure{@math}{}\IgnorePar \EndP\DviMath } + {\EndDviMath\ShowPar\csname par\endcsname + {\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue}% + } {\egroup} + {}{} +\Configure{multline} + {\HCode{<table class="multline"><tr><td><span class="math">}} + {\HCode{</span></td></tr></table>}} + {\ifnum \HRow> 1\HCode{</span></td></tr>\Hnewline + <tr><td><span class="math">}\fi} + {\gdef\mult:amp{\gdef\mult:amp{\HCode{</span></td> + <td class="eq-no"><span class="math">}}}} + {\csname mult:amp\endcsname \HCode{\ifnum 1<\HMultispan +% \string\multicolumn\l:brace\HMultispan\r:brace + %\string\multispan + ?span/multispan-in-jsmath? + \space\HMultispan\space + \fi}% + } {} +\Css{table.multline td {text-align:left; + vertical-align:middle; padding-left: 2em; }} +\Css{table.multline td.eq-no { text-align:center; }} +\Css{table.multline { width:100\%; }} +>>> + +\<configure jsmath amsmathNO\><<< +\ConfigureEnv{multline} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{multline} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace lp{10mm}r\r:brace}} + {\HCode{\string\end \l:brace array\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\space}\qquad\fi} + {\gdef\mult:amp{\gdef\mult:amp{\HCode{\a:math:amp}\qquad}}} + {\csname mult:amp\endcsname \HCode{\ifnum 1<\HMultispan +% \string\multicolumn\l:brace\HMultispan\r:brace + |<multi span|> \space\HMultispan\space + \fi}% + } {} +>>> + +\<configure jsmath amsmath\><<< +\ConfigureEnv{multline*} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{multline*} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace lr\r:brace}} + {\HCode{\string\end \l:brace array\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} + {} +>>> + + +\<display math-\><<< +\Configure{$$} + {\Configure{@math}{div}\IgnorePar + \EndP\DviMath } + {\EndDviMath\ShowPar\csname par\endcsname + {\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue}% +>>> + + + +\<configure jsmath amsmath\><<< +\Configure{subarray} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace \Hlcr\r:brace}} + {\HCode{\string\end \l:brace array\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} +\Configure{smallmatrix} + {\HCode{\string\begin\l:brace matrix\r:brace}} + {\HCode{\string\end \l:brace matrix\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {\HCode{\ifnum \HCol>1 \a:math:amp\fi \scriptstyle + \ifnum 1<\HMultispan +% \string\multicolumn\l:brace\HMultispan\r:brace + |<multi span|> \space\HMultispan\space + \fi}% + } {} +>>> + + + + + + + + +\<configure jsmath amsmath\><<< +\Configure{aligned} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace rlrlrl\r:brace}} + {\HCode{\string\end \l:brace array\r:brace}} + {} + {\HCode{\string\cr\space}} + {} + {\HCode{\a:math:amp\space}} +\Configure{alignedat} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace rlrl\r:brace}} + {\HCode{\string\end \l:brace array\r:brace}} + {} + {\HCode{\string\cr\space}} + {} + {\HCode{\a:math:amp\space}} +>>> + + + + + + + + + + + + +\<amsmath html-jsmath july 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<table class="equation"><tr><td>}% + |<amsmath equation july 2000|>% + |<math display in amsmath equation|>% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td><td class="eq-no">}% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \ShowPar\IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<table class="equation-star"><tr><td>}% + |<amsmath equation* july 2000|>% + |<math display in amsmath equation|>% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \ShowPar\IgnoreIndent\par} +>>> + + +\<math display in amsmath equation\><<< +\csname a:equation\string$\string$\endcsname +>>> + + + +\<amsmath equation july 2000\><<< +\Configure{gather} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace lp{10mm}r\r:brace}\IgnorePar + |<math display in equation|>} + {\HCode{\string\end\l:brace array\r:brace}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{\a:math:amp}\fi } + {} +>>> + + +\<amsmath equation* july 2000\><<< +\Configure{gather*} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace lp{10mm}r\r:brace}\IgnorePar + |<math display in equation|>} + {\HCode{\string\end\l:brace array\r:brace}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{\a:math:amp}\fi } + {} +>>> + + + + +\<configure jsmath amsmath\><<< +\Configure{split} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace rl\r:brace}} + {\ifvmode\IgnorePar\fi + \HCode{\string\end \l:brace array\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +>>> + + +\<configure jsmath tex4ht\><<< +\Configure{math:amp}{\string&} +>>> + + + +\<mtd array\><<< +\HCode{\ifnum \HCol>1 \a:math:amp\fi + \ifnum 1<\HMultispan +% \string\multicolumn\l:brace\HMultispan\r:brace + |<multi span|> \space\HMultispan\space + \fi}% +>>> + +\<multi span\><<< +%\string\multispan +?span/multispan-in-jsmath? +>>> + + +\<configure jsmath amsmath\><<< +\ConfigureEnv{gather} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{gather} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace cl\r:brace}} + {\HCode{\string\end \l:brace array\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +\ConfigureEnv{gather*} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{gather*} + {\HCode{\string\begin\l:brace array\r:brace + \l:brace cl\r:brace}} + {\HCode{\string\end \l:brace array\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +>>> + +% CVR 2011-01-28 + +\verb=\HtmlParOff= added to \verb=\Configure{#1}=. +\verb=\HCode{<--tex4ht:inline-->}= commented out as it interfered with +parsing. \verb=\HtmlParOn= added after \verb=\end:mathalign=. Before +cell and after cell configurations have been rewritten to solve the +problems reported by Rob Beezer's \texttt{<beezer@ups.edu>}. + +% \<configure jsmath amsmath\><<< +% \def\:tempc#1#2{% +% \ConfigureEnv{#1} +% {\def\end:al:env{}\ifmmode\else +% \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent} +% \fi\fi} +% {\end:al:env } +% {}{}% +% \Configure{#1} +% {\IgnorePar\HtmlParOff +% \ifvmode \EndP \else \EndP\fi +% \ifmathltx +% \Tg<mrow>\def\end:mathalign{\Tg</mrow>}% +% \else +% \Configure{@math}{div}\DviMath +% \def\end:mathalign{\EndDviMath \DisplayMathfalse}% +% \DisplayMathtrue +% \fi +% \HCode{\string\matrix\l:brace}} +% {\HCode{\r:brace}\end:mathalign\HtmlParOn} +% {\ifnum \HRow> 1\HCode{\string\cr\Hnewline}\fi} +% {} +% {\HCode{\ifnum \HCol>1 \a:math:amp\fi +% \ifnum 1<\HMultispan +% ?span/multispan-in-jsmath? +% \space\HMultispan\space\fi}}% +% {} % +% } +% \:tempc{align}{align} +% \:tempc{alignat}{alignat} +% \:tempc{xalignat}{xalignat} +% \:tempc{xxalignat}{xxalignat} +% \:tempc{flalign}{flalign} +% \:tempc{align*}{align*} +% \:tempc{alignat*}{alignat*} +% \:tempc{xalignat*}{xalignat*} +% \:tempc{flalign*}{flalign*} +% >>> + + +jsMath doesn't support hfil... hence the following + +\<extra align col sep\><<< +\ifodd\HCol\space\else + \string\kern \space 2em\space +\fi +>>> + +Yet another venue through eqalign + +\<configure jsmath amsmath\><<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\def\end:al:env{}\ifmmode\else + \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent} + \fi\fi} + {\end:al:env } + {}{}% + \Configure{#1} + {\IgnorePar\HtmlParOff + \ifvmode \EndP \else \EndP \fi + \ifmathltx + \Tg<mrow>\def\end:mathalign{\Tg</mrow>}% + \else + \Configure{@math}{div}\DviMath + \def\end:mathalign{\EndDviMath \DisplayMathfalse}% + \DisplayMathtrue + \fi + \HCode{\string\eqalignno\l:brace}} + {\HCode{\r:brace}\end:mathalign\HtmlParOn} + {\ifnum \HRow> 1\HCode{\string\cr\Hnewline}\fi} + {} + {\HCode{\ifnum \HCol>1 \a:math:amp\fi + \ifnum 1<\HMultispan + ?span/multispan-in-jsmath? + \space\HMultispan\space\fi}}% + {} % +} +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align*} +\:tempc{alignat*}{alignat*} +\:tempc{xalignat*}{xalignat*} +\:tempc{flalign*}{flalign*} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Over and Under} +%%%%%%%%%%%%%%%%%% + + +\<configure jsmath fontmath\><<< +|<jsmath plain,fontmath|> +>>> + +\<configure jsmath plain\><<< +|<jsmath plain,fontmath|> +>>> + + +\<jsmath plain,fontmath\><<< +\Configure{overrightarrow} + {\HCode{\string\overrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +\Configure{overleftarrow} + {\HCode{\string\overleftarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +>>> + + +\<configure jsmath amsmath\><<< +\Configure{underrightarrow} + {\HCode{\string\mathop\l:brace}\:gobble} + {\HCode{\r:brace\string\limits + \string_\string\longrightarrow\space}} +\Configure{underleftarrow} + {\HCode{\string\mathop\l:brace}\:gobble} + {\HCode{\r:brace\string\limits + \string_\string\longleftarrow\space}} +>>> + + + +\<configure jsmath amsmath\><<< +\Configure{overleftrightarrow} + {\HCode{\string\mathop\l:brace}\:gobble} + {\HCode{\r:brace\string\limits + \string^\string\longleftrightarrow\space}} +\Configure{underleftrightarrow} + {\HCode{\string\mathop\l:brace}\:gobble} + {\HCode{\r:brace\string\limits + \string_\string\longleftrightarrow\space}} +>>> + +\<configure jsmath amsmath\><<< +\def\:tempc#1{ + {\HCode{\string\mathop\l:brace}#1% + \HCode{\r:brace\string\limits + \string^\l:brace\hbox\l:brace....\r:brace\r:brace}}} +\HLet\ddddot\:tempc +\def\:tempc#1{ + {\HCode{\string\mathop\l:brace}#1% + \HCode{\r:brace\string\limits + \string^\l:brace\hbox\l:brace...\r:brace\r:brace}}} +\HLet\dddot\:tempc +>>> + + +\<configure jsmath amsmath\><<< +\def\:tempc#1#2{% + \HCode{\string\mathop\l:brace}#2% + \HCode{\r:brace\string\limits + \string^\l:brace}#1\HCode{\r:brace}} +\HLet\overset\:tempc +\def\:tempc#1#2{% + \HCode{\string\mathop\l:brace}#2% + \HCode{\r:brace\string\limits + \string_\l:brace}#1\HCode{\r:brace}} +\HLet\underset\:tempc +\def\:tempc#1#2#3{% + \HCode{\l:brace\l:brace\r:brace}#1% + \HCode{\l:brace}#3% + \HCode{\r:brace}#2\HCode{\r:brace}} +\HLet\sideset\:tempc +>>> + + + +\<configure jsmath amsmath\><<< +\renewcommand{\xrightarrow}[2][]{% + \HCode{\string\mathop\l:brace \string\longrightarrow \r:brace\string\limits + \string_\l:brace}#1\HCode{\r:brace\string^\l:brace}% + #2\HCode{\r:brace}} +\renewcommand{\xleftarrow}[2][]{% + \HCode{\string\mathop\l:brace \string\longleftarrow \r:brace\string\limits + \string_\l:brace}#1\HCode{\r:brace\string^\l:brace}% + #2\HCode{\r:brace}} +>>> + + +The following definition is needed because \verb=\multispan= is not recognized by jsMath + + +\<configure jsmath amsmath\><<< +\def\hdots@for#1#2{% + \tmp:cnt=#2\relax + \ifnum \tmp:cnt>0 .% + \loop + \advance\tmp:cnt by -1\relax + \ifnum \tmp:cnt>0 \HCode{\string&}.% + \repeat + \fi + } +>>> + +%%%%%%%%%%%%%%%%%% +\section{Symbols} +%%%%%%%%%%%%%%%%%% + + +\<configure jsmath amsmath\><<< +\def\:tempc#1{\HCode{\kern18mu + {\string\rm\space mod}\string\,\string\,}#1} +\HLet\mod=\:tempc +\def\:tempc#1{\HCode{\kern18mu }(#1)} +\HLet\pod=\:tempc +\def\:tempc#1{\HCode{\kern18mu + \string\mathbin{\string\rm\space mod}\string\,\string\,}#1} +\HLet\bmod\:tempc +\def\:tempc#1{\HCode{\kern18mu }(\HCode{{\string\rm\space mod}\kern6mu\space} #1)} +\HLet\pmod=\:tempc +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Boxed} +%%%%%%%%%%%%%%%%%% + +\<configure html-jsmath amsmath\><<< +\Configure{boxed} + {\ifmathltx \HCode{\string\class\l:brace boxed\r:brace\l:brace}% + \else \HCode{<span class="boxed">}\IgnorePar\fi} + {\ifmathltx \HCode{\r:brace}% + \else \HCode{</span>}\fi} +\Css{.boxed{border: 1px solid black; padding-left:2px; + padding-right:2px;}} +>>> + + + + + +\<configure html-jsmath amsmath\><<< +\Configure{boxed} + {\ifmathltx \HCode{\string\class\l:brace boxed\r:brace\l:brace}% + \else \HCode{<span class="boxed">}\IgnorePar\fi} + {\ifmathltx \HCode{\r:brace}% + \else \HCode{</span>}\fi} +\Css{.boxed{border: 1px solid black; padding-left:2px; + padding-right:2px;}} +>>> + + + +%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%% + + diff --git a/support/TeX4ht/source/tex4ht-jsml-xtpipes.tex b/support/TeX4ht/source/tex4ht-jsml-xtpipes.tex new file mode 100644 index 0000000000..fa1cd703fd --- /dev/null +++ b/support/TeX4ht/source/tex4ht-jsml-xtpipes.tex @@ -0,0 +1,3902 @@ +% $Id: tex4ht-jsml-xtpipes.tex 740 2020-06-13 22:35:32Z karl $ +% htlatex tex4ht-jsml-xtpipes "xhtml,next,3" "" "-d./" +% +% Copyright 2009-2020 TeX Users Group +% Copyright 2002-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + \Configure{ProTex}{log,<<<>>>,title,list,`,[[]]} +\begin{document} + + +\input{common} +\input{tex4ht-cpright} +\input{tex4ht-dir} + +%%%%%%%%%%%%%%%%%% +\part{Script for xtpipes} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%% + +\AtEndDocument{\OutputCodE\<jsml.4xt\>} + +\Needs{"xmllint --valid --noout jsml.4xt"} + + +\<jsml.4xt\><<< +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE xtpipes SYSTEM "xtpipes.dtd" > +<!-- jsml.4xt (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +`<TeX4ht copyright`> --> +<xtpipes signature="jsml.4xt (`version)"> + <sax content-handler="xtpipes.util.ScriptsManager, tex4ht.GroupMn, tex4ht.JsmlFilter" + lexical-handler="xtpipes.util.ScriptsManagerLH" > + `<numbers in math`> + `<special sub and super scripts`> + `<span frac elements`> + `<short cut modifiers`> + `<over and under scripts`> + `<bold math`> + `<capital math letters`> + `<remove multline eqnum cell`> + `<inline math`> + `<display math`> + `<replace characters`> + `<remove empty split entries`> + `<boundaries on theorems`> + `<br into BREAK`> + `<short notation for empty elements`> + </sax> +</xtpipes> +>>> + + + `<non short tag br elements`> + + `<inline math`> + `<display math`> + `<measure tables`> + + + + +\<inline math\><<< +<script element="span::inline-math" > + `<compress numeric subscripts`> + `<set levels for hyper complex fracs`> + `<set levels for sub and sup scripts`> + `<set levels for roots`> + <set name="inline-math" > + `<open xslt script`> + `<shared display and inline math 1`> + `<eliminate inline math narrative`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="inline-math" /> + `<eliminate extra math pauses`> + <set name="inline-math-2" > + `<open xslt script`> + `<shared display and inline math 2`> + `<eliminate inline math narrative 2`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="inline-math-2" /> +</script> +>>> + + +\<display math\><<< +<script element="div::display-math" > + `<compress numeric subscripts`> + `<set levels for hyper complex fracs`> + `<set levels for sub and sup scripts`> + `<set levels for roots`> + <set name="display-math" > + `<open xslt script`> + `<shared display and inline math 1`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="display-math" /> + `<eliminate extra math pauses`> + <set name="display-math-2" > + `<open xslt script`> + `<shared display and inline math 2`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="display-math-2" /> + `<set empty elements for the w3 browser`> +</script> +>>> + + + + +\<shared display and inline math 1\><<< +`<remove super mn-group`> +`<sayas punctuation`> +`<sayas digits`> +`<sayas math letters`> +`<get content template`> +`<eliminate baseline script marks`> +`<clean begin and mid script marks`> +`<mixed fractions`> +`<'minus' into 'negative'`> +`<compress limit script`> +`<remove scrip indicators from primes`> +`<remove scrip indicators from degree`> +>>> + + +\<shared display and inline math 2\><<< +`<get content template`> +`<replace nested baseline script marks`> +`<remove marks on empty scripts`> +`<eliminate begin script marks`> +>>> + + + + +\AtEndDocument{\OutputCodE\<HtJsml.java\>} + +\ifdojava + \Needs{" + javac HtJsml.java -d \XTPIPES +"} +\fi + +\<HtJsml.java\><<< +package tex4ht; +/* HtJsml.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +`<TeX4ht copyright`> */ +import org.w3c.dom.*; +public class HtJsml { + `<HtJsml utility members`> + `<static void mnGroup(dom)`> + `<static void fracLevel(dom)`> + `<static void scriptLevel(dom)`> + `<static void rootLevel(dom)`> +} +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Numbers in Math} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Group MN / MO-Punctuation} +%%%%%%%%%%%%% + + +\AtEndDocument{% + \OutputCodE\<GroupMn.java\> + } +\ifdojava + \Needs{" + javac GroupMn.java -d \XTPIPES +"} +\fi + +\<GroupMn.java\><<< +package tex4ht; +/* GroupMn.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +`<TeX4ht copyright`> */ +import org.xml.sax.helpers.*; +import org.xml.sax.*; +import java.io.PrintWriter; + +public class GroupMn extends XMLFilterImpl { + PrintWriter out = null; + boolean inMn = false; + String ns; + int level = -1; + public GroupMn( PrintWriter out, PrintWriter log, boolean trace){ + this.out = out; + } + public void startElement(String ns, String sName, + String qName, Attributes attr) { + level++; + try{ + if( inMn ){ + if( level == 0 ){ `<consider end of num`> } + } else { `<consider start of num`> } + super.startElement(ns, sName, qName, attr); + } catch( Exception e ){ + System.out.println( "--- GroupMn Error 1 --- " + e); + } + } + public void endElement(String ns, String sName, String qName){ + try{ + if( level < 0) { + `<endElement: consider end of num`> + } + super.endElement(ns, sName, qName); + } catch( Exception e ){ + System.out.println( "--- GroupMn Error 2 --- " + e); + } + level--; + } + public void characters(char[] ch, int start, int length){ + try{ + if ( inMn && (level < 0) ) { + String s = new String(ch, start, length); + if (!s.trim().equals("")) { + inMn = false; + super.endElement(ns, "mn-group", "mn-group"); + } } + super.characters(ch, start, length); + } catch( Exception e ){ + System.out.println( "--- GroupMn Error 3 --- " + e); +} } } +>>> + +\<consider start of num\><<< +if( qName.equals( "mn" ) ){ + inMn = true; level = 0; + Attributes att = new AttributesImpl(); + super.startElement(ns, "mn-group", "mn-group", att); + this.ns = ns; +} else if( qName.equals( "mo" ) ){ + String cls = attr.getValue( "class" ); + if( (cls != null) && cls.equals("MathClass-punc") ){ + inMn = true; level = 0; + Attributes att = new AttributesImpl(); + super.startElement(ns, "mn-group", "mn-group", att); + this.ns = ns; +} } +>>> + +\<consider end of num\><<< +if( !qName.equals( "mn" ) ){ + if( qName.equals( "mo" ) ){ + String cls = attr.getValue( "class" ); + if( (cls == null) || !cls.equals("MathClass-punc") ){ + inMn = false; + super.endElement(ns, "mn-group", "mn-group"); + } + } else { + inMn = false; + super.endElement(ns, "mn-group", "mn-group"); +} } +>>> + +\<endElement: consider end of num\><<< +if( inMn ){ + inMn = false; + super.endElement(ns, "mn-group", "mn-group"); +} +>>> + +%%%%%%%%%%%%% +\subsection{Outline of Post Original Partition} +%%%%%%%%%%%%% + + +\<numbers in math\><<< +<script element="mn-group" > + `<missed partitions to mn groups`> + <set name="merge" > + `<open xslt script`> + `<merge digits`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="merge" /> +</script> +>>> + + + +\<missed partitions to mn groups\><<< +<dom name="." xml="." method="mnGroup" class="tex4ht.HtJsml" /> +`<remove xml declaration`> +>>> + + +\<static void mnGroup(dom)\><<< +private static Document dom; +public static void mnGroup(Node d) { + dom = (Document) d; + setMnGroup(dom.getFirstChild()); +} +private static void setMnGroup(Node node) { + if( node.getNodeName().equals( "mn-group" ) ){ + boolean bool = false; + `<get mn characters`> + if( bool ){ + `<mark remove commas, if comma after period`> + `<mark remove commas, if not spaced correctly`> + `<cond remove commas`> + `<remove punc, on consecutive periods`> + `<remove punc at end`> + } + `<reset mn-group`> + } else if (node.hasChildNodes()) { + NodeList children = node.getChildNodes(); + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + setMnGroup(child); +} } } } +>>> + +%%%%%%%%%%%%% +\subsection{Mark Partition of MN Group} +%%%%%%%%%%%%% + +Consecutive digits and punctation characters are grouped together, and +then ungrouped at characters that are marked by `x'. + + +\<get mn characters\><<< +NodeList children = node.getChildNodes(); +int n = children.getLength(); +char [] digit = new char[n]; +for (int i = 0; i < n; i++) { + Node child = children.item(i).getFirstChild(); + if( child == null ){ + digit[i] = 'x'; + } else if( child.getNodeType() != Node.TEXT_NODE ){ + digit[i] = 'x'; + } else { + String s = child.getNodeValue(); + if( s.length() != 1 ){ + digit[i] = 'x'; + } else { + char ch = s.charAt(0); + if( (ch >= '0') && (ch <= '9') ){ + digit[i] = '0'; bool = true; + } else if( (ch == '.') || (ch == ',') ){ digit[i] = ch; } + else { digit[i] = 'x';} +} } } +>>> + +\<mark remove commas, if comma after period\><<< +bool = false; +for (int i = 0; i < n; i++) { + if( digit[i] == '.' ){ + for (; i < n; i++) { + if( digit[i] == ',' ){ + bool = true; break; + } } + break; +} } +>>> + +\<mark remove commas, if not spaced correctly\><<< +if( !bool ){ + for (int i = 0; i < n; i++) { + if( digit[i] == ',' ){ + if( ( ((i+3) >= n) + || (digit[i+1] != '0') + || (digit[i+2] != '0') + || (digit[i+3] != '0') + ) + || + ( + ((i+4) < n) && (digit[i+4] == '0') + ) + || + ( + (i>3) && (digit[i-4] == '0') + ) + ){ bool = true; break; + } else { i += 3; } +} } } +>>> + +\<cond remove commas\><<< +if( bool ){ + for (int i = 0; i < n; i++) { + if( digit[i] == ',' ){ digit[i] = 'x'; } +} } +>>> + + +\<remove punc, on consecutive periods\><<< +bool = false; +for (int i = 0; i < n; i++) { + if( (digit[i] == 'x') + || (digit[i] == ',') ){ bool = false; } + else if( digit[i] == '.' ){ + if( bool ){ + for (int j = 0; j < n; j++) { + if( (digit[j] == '.') || (digit[j] == ',') ){ + digit[j] = 'x'; + } } + break; + } + bool = true; +} } +>>> + +\<remove punc at end\><<< +if( digit[n-1] == '.' ){ digit[n-1] = 'x'; } +>>> + +%%%%%%%%%%%%% +\subsection{Realize the Sub Partition} +%%%%%%%%%%%%% + + +\<reset mn-group\><<< +Node parent = node.getParentNode(); +Element g = dom.createElement( "mn-group-s" ); +Element cur = dom.createElement( "mn-group" ); +for(int i=0; i<n; i++ ){ + Node child = node.getFirstChild(); + node.removeChild( child ); + if( digit[i] == 'x' ){ + if( cur.hasChildNodes() ){ g.appendChild( cur ); } + g.appendChild( child ); + cur = dom.createElement( "mn-group" ); + } else { + cur.appendChild( child ); +} } +if( cur.hasChildNodes() ){ g.appendChild( cur ); } +parent.replaceChild( g, node ); +>>> + + +%%%%%%%%%%%%% +\subsection{Reset MNs} +%%%%%%%%%%%%% + + + + +\<merge digits\><<< +<xsl:template match="mn-group" > + <xsl:choose> + <xsl:when test=" not(child::mn) "> + <xsl:apply-templates select="*|text()" /> + </xsl:when> + <xsl:otherwise> + <mn> + <xsl:value-of select="." /> + </mn> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +>>> + + + + + + + + +\<remove super mn-group\><<< +<xsl:template match="mn-group-s" > + <xsl:apply-templates select="*|@*|text()|comment()" /> +</xsl:template> +>>> + + + +%%%%%%%%%%%%% +\subsection{Pronounced Letters} +%%%%%%%%%%%%% + + + +\<sayas math letters \><<< +<xsl:template match="mi[ .='a' ]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <SAYAS SUB="aih">a</SAYAS> + </xsl:copy> +</xsl:template> +>>> + + +%%%%%%%%%%%%% +\subsection{Pronounced Punctuation in math} +%%%%%%%%%%%%% + +TTSs might ignore punctuation marks. We want these +symbols in math. + +\<sayas punctuation\><<< +<xsl:template match="mo[ + (@class='MathClass-punc') + and ( (.='.') or (.=',') or (.='!') + or (.=';') or (.=':') or (.='?') ) +]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <BREAK SIZE="small"/> + <xsl:choose> + <xsl:when test=" .='.' " > + <SAYAS SUB="dot">.</SAYAS> + </xsl:when> + <xsl:when test=" .=',' " > + <SAYAS SUB="comma">,</SAYAS> + </xsl:when> + <xsl:when test=" .=';' " > + <SAYAS SUB="semicolon">;</SAYAS> + </xsl:when> + <xsl:when test=" .=':' " > + <SAYAS SUB="colon">:</SAYAS> + </xsl:when> + <xsl:when test=" .='!' " > + <SAYAS SUB="exclamation mark">!</SAYAS> + </xsl:when> + <xsl:when test=" .='?' " > + <SAYAS SUB="question mark">?</SAYAS> + </xsl:when> + </xsl:choose> + <BREAK SIZE="small"/> + </xsl:copy> +</xsl:template> +>>> + + +\<sayas digits\><<< +<xsl:template match="mn[ + `<mn modified above`> + or + `<mn modified under`> +]" > + <xsl:copy> + <SAYAS CLASS="digits"> + <xsl:value-of select="." /> + </SAYAS> + </xsl:copy> +</xsl:template> +>>> + + +\<mn modified above\><<< +ancestor::mover[ + not( descendant::*[ + (count( `<math content element`> ) > 1) + ]) + and + ( + preceding-sibling::*[1][self::dot or self::mn-group-s] + or + following-sibling::*[1][self::dot or self::mn-group-s] + ) +] +>>> + + + +\<mn modified under\><<< +ancestor::munder[ + not( descendant::*[ + (count( `<math content element`> ) > 1) + ]) + and + ( + preceding-sibling::*[1][self::dot or self::mn-group-s] + or + following-sibling::*[1][self::dot or self::mn-group-s] + ) +] +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Process Characters} +%%%%%%%%%%%%%%%%%% + + + + + +%%%%%%%%%%%%% +\subsection{'minus' into 'negative'} +%%%%%%%%%%%%% + + + +\<'minus' into 'negative'\><<< +<xsl:template match="mo[ + (@class = 'MathClass-bin') + and + ( normalize-space(.) = + normalize-space(descendant::span[@class = 'ch 2212']) + ) + and + ( preceding-sibling::*[1][ + (@title='speech-extra') + or (@class='MathClass-bin') + or (@class='MathClass-rel') + or (@class='MathClass-punc') + or (@class='MathClass-op') + or self::mn-group-s [ child::* [ + (position() = last()) + and + (@class='MathClass-punc') + ] ] ] + and + ( + following-sibling::*[1][ self::mn-group-s + or self::mi ] + or + (count(following-sibling::*[ + not(@title = 'speech-extra') + ]) = 1) + ) + or + not(preceding-sibling::*) and following-sibling::* + ) +]" > + <xsl:copy> + <xsl:attribute name="class"> + <xsl:text>mo-unary</xsl:text> + </xsl:attribute> + <xsl:apply-templates select="*|text()|comment()" + mode="minus-neg" /> + </xsl:copy> +</xsl:template> +>>> + + +\<'minus' into 'negative'\><<< +<xsl:template match="*|@*|text()|comment()" mode="minus-neg" > + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" + mode="minus-neg" /> + </xsl:copy> +</xsl:template> +>>> + +\begin{verbatim} +<span class="begin-script"> subscript </span> +<mo class="MathClass-bin"> + <span class="char"> + <span class="ch 2212">minus</span> + </span> +</mo> +<mn>2</mn> +\end{verbatim} + + + + +\<'minus' into 'negative'\><<< +<xsl:template match="text()" mode="minus-neg" > + <xsl:choose> + <xsl:when test=" . = 'minus' " > + <xsl:text>negative</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="." /> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{Capital Letters in Math} +%%%%%%%%%%%%%%%%%% + +\<capital math letters\><<< +<script element="mi" > + <set name="math-cap" > + `<open xslt script`> + `<span.mi cap letters`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="math-cap" /> +</script> +>>> + + +\<span.mi cap letters\><<< +<xsl:template match="mi" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:if test=" string-length(.) = 1 " > + <xsl:if test=" + (translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', + '') = '' ) + " > + <span class="capital-description" + title="speech-extra" > + <xsl:text> capital </xsl:text> + </span> + </xsl:if> + </xsl:if> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:copy> +</xsl:template> +>>> + + + +%%%%%%%%%%%%% +\subsection{Right Apostrophes} +%%%%%%%%%%%%% + + + +\<replace characters\><<< +<script element="PARA" > + <set name="apostro" > + `<open xslt script`> + `<right apostrophe in prose`> + `<delimiters in marks of enumerated lists`> + `<remove empty paragraphs`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="apostro" /> +</script> +>>> + + +\<right apostrophe in prose\><<< +<xsl:template match="span[ + (@class = 'char-del') + and child::span [ @class = 'ch 2019' ] +]" > + <xsl:text>'</xsl:text> +</xsl:template> +>>> + + +%%%%%%%%%%%%% +\subsection{Delimiters on List Marks} +%%%%%%%%%%%%% + + + +\<delimiters in marks of enumerated lists\><<< +<xsl:template match="PROS[ parent::SENT[@class='ol-mark'] ]" > + <xsl:copy> + <xsl:apply-templates + select="*[not(@class='char-del')]|@*|text()|comment()" /> + </xsl:copy> +</xsl:template> +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Clean Up} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Extra Math Pauses} +%%%%%%%%%%%%% + + +Deletes pauses that are not separated by text from their immediate +predecessors. + +An earlier XSLT-based approach was very slow, and died +on nodes with large numbers of children. + + +\<eliminate extra math pauses\><<< +<sax name="." xml="." content-handler="tex4ht.JsmlMathBreak" /> +>>> + + +\AtEndDocument{% + \OutputCodE\<JsmlMathBreak.java\> + } + +\ifdojava + \Needs{" + javac -classpath \LIB xtpipes.jar + JsmlMathBreak.java + -d \XTPIPES . +"} +\fi + +\<JsmlMathBreak.java\><<< +package tex4ht; +/* JsmlMathBreak.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +`<TeX4ht copyright`> */ + +import xtpipes.XtpipesUni; +import org.xml.sax.*; +import org.xml.sax.helpers.DefaultHandler; +import java.io.*; +import java.lang.reflect.*; +import java.util.HashMap; + +public class JsmlMathBreak extends DefaultHandler { + PrintWriter out = null; + boolean delete = false; + public JsmlMathBreak(PrintWriter out, + HashMap<String,Object> scripts, + Method method, PrintWriter log, boolean trace) { + this.out = out; + } + public void characters(char[] ch, int start, int length) { + String s = XtpipesUni.toUni(ch, start, length, "<>&"); + out.print( s ); + if( !s.trim().equals("") ){ + delete = false; + } } + public void startElement(String ns, String sName, + String qName, + Attributes atts) { + if( !( delete && qName.equals("BREAK") ) ){ + String s = "<" + qName + "\n"; + for (int i = 0; i < atts.getLength(); i++) { + String name = atts.getQName(i); + if (name != "xmlns") { + s += (" " + name + "=\"" + + XtpipesUni.toUni(atts.getValue(i), "<>&\"") + + "\""); + } } + if( qName.equals( "BREAK" ) ){ + s += "/"; + delete = true; + } + s += ">"; + out.print(s); + } } + public void endElement(String ns, String sName, String qName) { + if( !qName.equals( "BREAK" ) ){ + String s = "</" + qName + ">"; + out.print(s); +} } } +>>> + + + +\begin{verbatim} + </mrow> + <span class="end-root" title="speech-extra"> + <BREAK SIZE="medium"/> + <level prefix="end" depth="1">end end root</level> + <BREAK SIZE="medium"/> + </span> +</mroot> +<span class="end-math" title="speech-extra"> + <BREAK SIZE="small"/> + <PROS PITCH="-5">end math</PROS> + <BREAK SIZE="medium"/> +\end{verbatim} + + +%%%%%%%%%%%%% +\subsection{Line Breaks} +%%%%%%%%%%%%% + + +\<br into BREAK\><<< +<script element="br" > + <set name="br" > + `<open xslt script`> + `<append br with BREAK`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="br" /> +</script> +>>> + + +\<append br with BREAK\><<< +<xsl:template match="br" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + </xsl:copy> + <BREAK SIZE="small"/> +</xsl:template> +>>> +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{Empty Elements} +%%%%%%%%%%%%%%%%%% + + + +\marginpar{??????} + +Can we avoid empty non-empty representations without of the +following(Example: +\verb+\documentclass{article} \begin{document} \section{Section One} This is Section 1 \end{document} + +) + + +\<short notation for empty elements\><<< +<script element="BREAK" > + <set name="BREAK" > + `<open xslt script`> + `<empty BREAK`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="BREAK" /> +</script> +>>> + + +\<empty BREAK\><<< +<xsl:template match="BREAK" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + </xsl:copy> +</xsl:template> +>>> + + + +%%%%%%%%%%%%% +\subsection{Empty Array Cells} +%%%%%%%%%%%%% + +Empty array celles at end of rows can make it more difficult to +detect deletable baseline indicators. + + + +\<remove multline eqnum cell\><<< +<script element="tr" > + <set name="eqnum" > + `<open xslt script`> + `<remove empty cells from rows`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="eqnum" /> +</script> +>>> + +\<remove multline eqnum cell\><<< +<script element="mtr" > + <set name="eqnum" > + `<open xslt script`> + `<remove empty cells from rows`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="eqnum" /> +</script> +>>> + +\<remove empty cells from rows\><<< +<xsl:template match="div[ + (parent::tr or parent::mtr) + and ( normalize-space(.) = '' ) + and not( normalize-space(following-sibling::*) != '' ) +]" > +</xsl:template> +>>> + + +%%%%%%%%%%%%% +\subsection{Paragraphs (JsmlFilter.java)} +%%%%%%%%%%%%% + +\<remove empty paragraphs\><<< +<xsl:template match=" PARA[ normalize-space(.) = '' ] " > +</xsl:template> +>>> + + +The following adds PARA on `p' paragraphs, ul. + + + + +\AtEndDocument{ % + \OutputCodE\<JsmlFilter.java\> + } +\ifdojava + \Needs{" + javac JsmlFilter.java -d \XTPIPES +"} +\fi + +\<JsmlFilter.java\><<< +package tex4ht; +/* JsmlFilter.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +`<TeX4ht copyright`> */ +import org.xml.sax.helpers.*; +import org.xml.sax.*; +import java.io.PrintWriter; + +public class JsmlFilter extends XMLFilterImpl { + PrintWriter out = null; + public JsmlFilter( PrintWriter out, PrintWriter log, boolean trace ){ + this.out = out; + } + public void startElement(String ns, String sName, + String qName, Attributes attr) { + try{ + if( `<elements for PARA?`> ){ + Attributes att = new AttributesImpl(); + super.startElement(ns, "PARA", "PARA", att); + } + super.startElement(ns, sName, qName, attr); + } catch( Exception e ){ + System.out.println( "--- JsmlFilter Error 1 --- " + e); + } } + public void endElement(String ns, String sName, String qName){ + try{ + super.endElement(ns, sName, qName); + if( `<elements for PARA?`> ){ + super.endElement(ns, "PARA", "PARA"); + } + } catch( Exception e ){ + System.out.println( "--- JsmlFilter Error 2 --- " + e); +} } } +>>> + + + + +\<elements for PARA?\><<< + qName.equals( "p" ) +|| qName.equals( "h2" ) +|| qName.equals( "h3" ) +|| qName.equals( "h4" ) +|| qName.equals( "ul" ) +|| qName.equals( "ol" ) +|| qName.equals( "li" ) +|| qName.equals( "dd" ) +|| qName.equals( "dl" ) +>>> + + +%%%%%%%%%%%%% +\subsection{Remove Split Arrays} +%%%%%%%%%%%%% + +\<remove empty split entries\><<< +<script element="div::split-side" > + <set name="clean-split" > + `<open xslt script`> + `<get content template`> + `<clean math split`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="clean-split" /> +</script> +>>> + + +\<clean math split\><<< +<xsl:template match=" div[ @class='split-side' ] +" > + <xsl:variable name="content"> + <xsl:apply-templates select="*" mode="content" /> + </xsl:variable> + <xsl:if test=" + string-length( normalize-space( $content )) != 0 + " > + <xsl:copy> + <xsl:apply-templates select=" *|@*|text()|comment() " /> + </xsl:copy> + </xsl:if> +</xsl:template> +>>> + + +%%%%%%%%%%%%% +\section{Eliminate Inline Math Narrative} +%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Core Content of One Element} +%%%%%%%%%%%%% + + +\<eliminate inline math narrative NO\><<< +<xsl:template match="span[ + (@class = 'inline-math') + and + (count( `<math content element`> ) = 1) +]" > + <xsl:copy> + <xsl:choose> + <xsl:when test="child::mfrac or child::msqrt + or child::mover or child::munder + "> + <xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> + </xsl:attribute> + <BREAK SIZE="small"/> + <xsl:apply-templates + select="`<math content element`>" /> + </xsl:when> + <xsl:otherwise> + `<non-adjacent narrative`> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + + + +\<non-adjacent narrative\><<< +<xsl:variable name="content"> + <xsl:apply-templates + select="`<math content element`>" + mode="content" /> +</xsl:variable> +<xsl:choose> + `<math narrative of length one`> + `<math narrative of just one element`> + `<simple sub or sup`> + <xsl:otherwise> + <xsl:apply-templates + select="*|@*|text()|comment()" /> + </xsl:otherwise> +</xsl:choose> +>>> + + + + + +\<math content element\><<< +child::*[ not(@title = 'speech-extra') + and not( self::BREAK ) + ] +>>> + + + + +\<math narrative of length one\><<< +<xsl:when test=" + string-length( normalize-space( $content )) = 1 +" > + <xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> + </xsl:attribute> + <xsl:apply-templates + select="`<math content element`>" /> +</xsl:when> +>>> + +\<math narrative of just one element\><<< +<xsl:when test=" + not(`<math content element`> + / descendant::* [ + count(child::*[ + not(self::BREAK) + ] ) > 1 + ] ) +" > + <xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> + </xsl:attribute> + <PROS PITCH="-5"> + <BREAK SIZE="small"/> + <xsl:apply-templates + select="`<math content element`>" /> + <BREAK SIZE="small"/> + </PROS> +</xsl:when> +>>> + + +\<simple sub or sup\><<< +<xsl:when test=" child::*[ + (position() = 2) + and + (self::msub or self::msup or self::msubsup) +]" > + <xsl:variable name="content"> + <xsl:apply-templates + select="child::*[2] / child::*[ + (@class = 'mrow-base') + or (@class = 'limits-mrow-base') ]" + mode="content" /> + </xsl:variable> + <xsl:choose> + <xsl:when test=" + string-length( normalize-space( $content )) = 1 + or + (translate($content,'0123456789 ','') = '') + " > + <xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> + </xsl:attribute> + <PROS PITCH="-5"> + <BREAK SIZE="small"/> + <xsl:apply-templates select="*[2]" /> + <BREAK SIZE="small"/> + </PROS> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()" /> + </xsl:otherwise> + </xsl:choose> +</xsl:when> +>>> + + +\begin{verbatim} +<span class="inline-math"> + <msub> + <mrow class="mrow-base"> + <mi>C</mi> + </mrow> + <mrow class="mrow-sub"> + <mi>i</mi> + </mrow> + </msub> +</span> +\end{verbatim} + + + + +%%%%%%%%%%%%% +\subsection{Unary Op} +%%%%%%%%%%%%% + +The `mo-unary' is established in the first pass over inline-math, +so we need to wait for the second pass with the following. + + +\<eliminate inline math narrative NO 2\><<< +<xsl:template match="span[ + (@class = 'inline-math') + and + (count( `<math content element`> ) = 2) + and + ( child::mo[ + (@class = 'mo-unary') + and + following-sibling::*[1] + / self::mi + ] + or + child::mi[ + following-sibling::*[1] + [ (@class = 'MathClass-open-close') + and + not(child::*[2] + / child::*[ not(self::BREAK) ] + / child::*[ not(self::BREAK) ] ) + ] ] + ) +]" > + <xsl:copy> + <xsl:choose> + `<when func on shallow arg`> + <xsl:otherwise> + `<unary op on short content`> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + +\<when func on shallow arg\><<< +<xsl:when test=" + child::mrow[ @class = 'MathClass-open-close' ] +" > + <xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> + </xsl:attribute> + <PROS PITCH="-5"> + <BREAK SIZE="small"/> + <xsl:apply-templates + select="`<math content element`>" /> + <BREAK SIZE="small"/> + </PROS> +</xsl:when> +>>> + +\<unary op on short content\><<< +<xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> +</xsl:attribute> +<PROS PITCH="-5"> +<BREAK SIZE="small"/> + <xsl:apply-templates + select="`<math content element`>" /> +<BREAK SIZE="small"/> +</PROS> +>>> + + + +%%%%%%%%%%%%% +\subsection{Shallow Expression} +%%%%%%%%%%%%% + + +\<eliminate inline math narrative NO 2\><<< +<xsl:template match="span[ + (@class = 'inline-math') + and + not( child::*[ + not(self::mo) + and not(self::mi) + and not(self::mn) + and not(self::mn-group-s) + and not( @title='speech-extra' ) + and not( self::mfrac[ + preceding-sibling::*[1][self::mn ] + ] + ) + and not( self::msub + / child::*[1][ + child::mo[ @class = 'MathClass-op' ] + and + not(child::*[2]) + ] + ) + ] ) +]" > + <xsl:copy> + `<shallow expression`> + </xsl:copy> +</xsl:template> +>>> + +\<shallow expression\><<< +<xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> +</xsl:attribute> +<PROS PITCH="-5"> +<BREAK SIZE="small"/> + <xsl:apply-templates + select="`<math content element`> | text()" /> +<BREAK SIZE="small"/> +</PROS> +>>> + + + + +%%%%%%%%%%%%% +\subsection{Shallow Delimited Expression} +%%%%%%%%%%%%% + + +\<eliminate inline math narrative NO 2\><<< +<xsl:template match="span[ + (@class = 'inline-math') + and + (count( `<math content element`> ) = 1) + and + child::mrow[ @class='MathClass-open-close' ] + / child::mrow[ + not( child::*[ + not(self::mo) and not(self::mn-group-s) + and not(self::mi) and not(self::BREAK) + and not( @title='speech-extra' ) + ]) + ] +]" > + <xsl:copy> + `<shallow delimited expression`> + </xsl:copy> +</xsl:template> +>>> + +\<shallow delimited expression\><<< +<xsl:attribute name="class"> + <xsl:text>semi-math</xsl:text> +</xsl:attribute> +<PROS PITCH="-5"> +<BREAK SIZE="small"/> + <xsl:apply-templates select="mrow" /> +<BREAK SIZE="small"/> +</PROS> +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Superscripts and Subscripts} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Insert Sub-Levels Info} +%%%%%%%%%%%%% + + + + +\<set levels for sub and sup scripts\><<< +<dom name="." xml="." method="scriptLevel" class="tex4ht.HtJsml" /> +`<remove xml declaration`> +>>> + + + +\<static void scriptLevel(dom)\><<< +public static void scriptLevel(Node dom) { + setScriptLevel(dom.getFirstChild(), ""); +} +private static void setScriptLevel(Node node, String prefix) { + String clName = null; + if (node.hasChildNodes()) { + if (node.hasAttributes()) { + Node cl = node.getAttributes().getNamedItem("class"); + if (cl != null) { + clName = cl.getNodeValue(); + if( clName.equals("mrow-sub") + || + clName.equals("mrow-super") + ){ + `<append script prefix`> + } } } + String ndName = node.getNodeName(); + if( + ndName.equals("msqrt") + || + ndName.equals("mroot") + ){ prefix = ""; } + `<script invoke children`> +} } +>>> + +\<script invoke children\><<< +NodeList children = node.getChildNodes(); +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + setScriptLevel(child, prefix); +} } +>>> + +\<append script prefix\><<< +if( !prefix.equals("") ){ + `<use current script prefix`> +} +if( clName.equals( "mrow-sub" ) ){ + prefix += " sub "; +} else if( clName.equals( "mrow-super" ) ){ + prefix += " super "; +} +>>> + + +\<use current script prefix\><<< +Node child = node.getFirstChild(); +if( (child.getNodeType() == Node.ELEMENT_NODE) + && + child.hasAttributes() +){ + Node cls = child.getAttributes().getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if ( clsName.equals("begin-script") + || + clsName.equals("mid-script") + ) { + child = child.getFirstChild(); + String s = child.getNodeValue(); + ((org.w3c.dom.Text) child).setData( prefix + s ); +} } } +>>> + + + +%%%%%%%%%%%%% +\subsection{Eliminate End Script Marks} +%%%%%%%%%%%%% + + +The following takes care of end-scripts that semantically can be +merged into other end markers. + +\<eliminate baseline script marks\><<< +<xsl:template match="span[ + (@class = 'end-script') + and + ancestor::* [ following-sibling::* [ + not( @class = 'content-less' ) + ] + ][1] + / following-sibling::* [ + not( @class = 'content-less' ) + ][1] + / self::* + [ + (@class = 'end-math') + or + (@class = 'end-script') + or + (@class = 'end-root') + or + (@class = 'end-stack') + or + (@class = 'mid-stack') + or + (@class = 'end-array') + or + self::td or self::mtd or self::tr or self::mtr + or + (@title = 'implicit-baseline') + ] +]" > + <BREAK SIZE="small"/> +</xsl:template> +>>> + + + + + + +The following deals with endscripts before left sides of +tensors. + + + +\<eliminate baseline script marks\><<< +<xsl:template match="span[ + (@class = 'end-script') + and + parent::mrow / parent::msub + and + ancestor::* [ following-sibling::* ][1] + / following-sibling::* [ normalize-space(.) != '' ][1] + [ + (self::msub or self::msubsup) + and + (normalize-space(child::mrow[ + @class = 'mrow-base' ]) = '') + ] +]" > + <BREAK SIZE="small"/> +</xsl:template> +>>> + + + +\<eliminate baseline script marks\><<< +<xsl:template match="span[ + (@class = 'end-script') + and + parent::mrow /parent::*[ self::msup or self::msubsup] + and + ancestor::* [ following-sibling::* ][1] + / following-sibling::* [ normalize-space(.) != '' ][1] + [ + self::msup + and + (normalize-space(child::mrow[ + @class = 'mrow-base' ]) = '') + ] +]" > + <BREAK SIZE="small"/> +</xsl:template> +>>> + + + + + + + + +\begin{verbatim} + <span class="end-script" title="speech-extra"> + <PROS PITCH="-5"> + <BREAK SIZE="medium"/> + <span class="scripts-extra"> baseline </span> + <BREAK SIZE="small"/> + </PROS> + </span> + </mrow> +</msup> +<span class="tiny-space"/> +<msup> + <mrow class="mrow-base"/> + <mrow class="mrow-super"> + +\end{verbatim} + +%%%%%%%%%%%%% +\subsection{Clean Script Marks} +%%%%%%%%%%%%% + + +\<clean begin and mid script marks\><<< +<xsl:template match="span[ + (@class = 'begin-script') + or (@class = 'mid-script') +]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select="*|text()|comment()" + mode="clean-script" /> + </xsl:copy> +</xsl:template> +<xsl:template match="*" mode="clean-script" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select="*|text()|comment()" + mode="clean-script" /> + </xsl:copy> +</xsl:template> +<xsl:template match="text()" mode="clean-script" > +</xsl:template> +<xsl:template match="span[@class = 'scripts-extra']" + mode="clean-script" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:value-of select=" + ancestor::span[ + (@class = 'begin-script') + or (@class = 'mid-script') ] [1] + " /> + </xsl:copy> +</xsl:template> +>>> + +The following is for script annotation on empty msu::base. + +\<remove marks on empty scripts\><<< +<xsl:template match="span[ + ((@class = 'begin-script') or (@class = 'mid-script')) + and + following-sibling::* + / following-sibling::span[ @class = 'end-script' ] + and + following-sibling::*[1] + / descendant-or-self::*[ not(self::PROS) ][1] + / child::*[1][ + (@class = 'mrow-base') + and + (normalize-space(.)='') + ] +]" > +</xsl:template> +>>> + +\begin{verbatim} +<span class="begin-script" title="speech-extra"> + ... +</span> +<PROS PITCH="+10"> + <msub> + <mrow class="mrow-base"/> + <mrow class="mrow-sub"> + ... + </mrow> + </msub> + <mi>n</mi> +</PROS> +<span class="end-script" title="speech-extra"> + ... +\end{verbatim} + + + +%%%%%%%%%%%%% +\subsection{Replace Nested Baseline Script Marks} +%%%%%%%%%%%%% + + +\<replace nested baseline script marks\><<< +<xsl:template match="span[ + (@class = 'end-script') + and + ancestor::*[ preceding-sibling::* [ + ((@class = 'begin-script') or (@class = 'mid-script')) ]] +]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select=" + ancestor::*[ preceding-sibling::* [ + ((@class = 'begin-script') or + (@class = 'mid-script')) ]][1] + / preceding-sibling::* [ + ((@class = 'begin-script') or + (@class = 'mid-script')) ][1] + " mode="script-copy" /> + </xsl:copy> +</xsl:template> +>>> + + + +\<replace nested baseline script marks\><<< +<xsl:template match="*|@*|text()|comment()" + mode="script-copy" > + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:copy> +</xsl:template> +<xsl:template match="span[ + (@class = 'begin-script') or + (@class = 'mid-script') ]" mode="script-copy" > + <xsl:apply-templates select="*|text()|comment()" /> +</xsl:template> +>>> + + +%%%%%%%%%%%%% +\subsection{Eliminate Begin Script Marks} +%%%%%%%%%%%%% + + + +\<eliminate begin script marks\><<< +<xsl:template match="span[ + (@class = 'begin-script') + and + following-sibling::* [1] / child::*[ + (position() = 1) + and + (@class = 'mrow-base') + and + ( normalize-space(.) = '' ) + ] +]" > +</xsl:template> +>>> + + + +%%%%%%%%%%%%% +\subsection{Undo Empty Scripts} +%%%%%%%%%%%%% + + + + +\<special sub and super scripts\><<< +<script element="msup" > + <set name="m-sub-sup" > + `<open xslt script`> + `<undo if empty su`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="m-sub-sup" /> + `<superscript 2 and 3 into verbose`> +</script> +<script element="msub" > + `<sub script`> +</script> +<script element="msubsup" > + `<subsup prime`> + `<sub sup script`> + `<sub superscript 2 and 3 into verbose`> +</script> +>>> + +\<sub sup script\><<< +<set name="m-sub-sup" > + `<open xslt script`> + `<undo if empty su`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="m-sub-sup" /> +>>> + + + +\<sub script\><<< +<set name="m-sub-sup" > + `<open xslt script`> + `<undo if empty su`> + `<msub of log`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="m-sub-sup" /> +>>> + +\<undo if empty su\><<< +<xsl:template match="*[ + (self::msup or self::msub or self::msubsup) + and + not( + child::mrow[ @class = 'mrow-sub' ] + / child::*[ not(@title = 'speech-extra') + and + (normalize-space(.) != '') + ] + ) + and + not( + child::mrow[ @class = 'mrow-super' ] + / child::*[ not(@title = 'speech-extra') + and + (normalize-space(.) != '') + ] + ) +]" > + <xsl:apply-templates select="child::mrow[ + @class = 'mrow-base' ]/*" /> +</xsl:template> +>>> + + + +\begin{verbatim} +<msup> + <mrow class="mrow-base"> + ......... + </mrow> + <wrow class="mrow-super"> + <span class="begin-script"> superscript </span> + <span class="end-script"> baseline </span> + </mrow> +</msup> +\end{verbatim} + + + + +%%%%%%%%%%%%% +\section{Special Subscripts and Superscripts} +%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Squared} +%%%%%%%%%%%%% + + + +\<superscript 2 and 3 into verbose\><<< +<set name="m-sup-2-3" > + `<open xslt script`> + `<superscript into squared and cube`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="m-sup-2-3" /> +>>> + +\<superscript into squared and cube\><<< +<xsl:template match="msup[ + (normalize-space( + child::mrow[ (@class = 'mrow-super') ] + / child::*[ not (@class = 'begin-script') + and + not (@class = 'end-script') + ] + ) = '2') + and `<su verbose not on op`> + and (normalize-space(mrow[@class = 'mrow-base']) != '' ) +]" > + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" + mode="squared" /> + </xsl:copy> +</xsl:template> +>>> + + +\<su verbose not on op\><<< +not( + child::mrow[ @class = 'mrow-base' ] + / child::span[ not( @title = 'speech-extra' ) ] + [ position() = last() ] + / self::* [ @class = 'mo-op' ] +) +>>> + + + + +\<superscript into squared and cube\><<< +<xsl:template match="*|@*|text()|comment()" + mode="squared" > + <xsl:copy> + <xsl:choose> + <xsl:when test=" @class = 'mrow-super' "> + <xsl:apply-templates select="@*" /> + <mo class="mo-op"> + <xsl:text> squared </xsl:text> + </mo> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()" /> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + + + + + + +\begin{verbatim} +<msup> + <mrow class="mrow-base"> + <mo class="mo-op">cos</mo> + </mrow> + <mrow class="mrow-super"> + <span class="begin-script"> superscript </span> + <span class="mn">2</span> + <span class="end-script"> baseline </span> + </mrow> +</msup> +\end{verbatim} + + + + +\<superscript into squared and cube\><<< +<xsl:template match="msup[ + (normalize-space( + child::mrow[ (@class = 'mrow-super') ] + / child::*[ not (@class = 'begin-script') + and + not (@class = 'end-script') + ] + ) = '3') + and `<su verbose not on op`> + and (normalize-space(mrow[@class = 'mrow-base']) != '' ) +]" > + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" + mode="cube" /> + </xsl:copy> +</xsl:template> +>>> + + + +\<superscript into squared and cube\><<< +<xsl:template match="*|@*|text()|comment()" + mode="cube" > + <xsl:copy> + <xsl:choose> + <xsl:when test=" @class = 'mrow-super' "> + <xsl:apply-templates select="@*" /> + <mo class="mo-op"> + <xsl:text> cube </xsl:text> + </mo> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()" /> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + + +\<sub superscript 2 and 3 into verbose\><<< +<set name="m-subsup-2-3" > + `<open xslt script`> + `<subsup into sub squared and cube`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="m-subsup-2-3" /> +>>> + + + + + +\<subsup into sub squared and cube\><<< +<xsl:template match="msubsup[ + (normalize-space( + child::mrow[ (@class = 'mrow-super') ] + / child::span[ (@class != 'mid-script') + and + (@class != 'end-script') + ] + ) = '2') + and `<su verbose not on op`> +]" > + <xsl:copy> + <xsl:attribute name="class" > + <xsl:text>msub</xsl:text> + </xsl:attribute> + <xsl:apply-templates select="*|text()|comment()" + mode="sub-squared" /> + </xsl:copy> +</xsl:template> +>>> + + + +\<subsup into sub squared and cube\><<< +<xsl:template match="*|@*|text()|comment()" + mode="sub-squared" > + <xsl:copy> + <xsl:choose> + <xsl:when test=" @class = 'mrow-sub' "> + <xsl:apply-templates select="*[ + not( @class = 'end-script' ) + ] + |@*|text()|comment()" /> + <xsl:apply-templates select=" + following-sibling::*[1] / *[ + @class = 'end-script' + ] " /> + </xsl:when> + <xsl:when test=" @class = 'mrow-super' "> + <xsl:attribute name="class" > + <xsl:text>squared-super</xsl:text> + </xsl:attribute> + <mo class="mo-op"> + <xsl:text> squared </xsl:text> + </mo> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + + +\<subsup into sub squared and cube\><<< +<xsl:template match="msubsup[ + (normalize-space( + child::mrow[ (@class = 'mrow-super') ] + / child::span[ (@class != 'mid-script') + and + (@class != 'end-script') + ] + ) = '3') + and `<su verbose not on op`> +]" > + <xsl:copy> + <xsl:attribute name="class" > + <xsl:text>msub</xsl:text> + </xsl:attribute> + <xsl:apply-templates select="*|text()|comment()" + mode="sub-cube" /> + </xsl:copy> +</xsl:template> +>>> + + + +\<subsup into sub squared and cube\><<< +<xsl:template match="*|@*|text()|comment()" + mode="sub-cube" > + <xsl:copy> + <xsl:choose> + <xsl:when test=" @class = 'mrow-sub' "> + <xsl:apply-templates select="*[ + not( @class = 'end-script' ) + ] + |@*|text()|comment()" /> + <xsl:apply-templates select=" + following-sibling::*[1] / *[ + @class = 'end-script' + ] " /> + </xsl:when> + <xsl:when test=" @class = 'mrow-super' "> + <xsl:attribute name="class" > + <xsl:text>cube-super</xsl:text> + </xsl:attribute> + <mo class="mo-op"> + <xsl:text> cube </xsl:text> + </mo> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + + + +%%%%%%%%%%%%% +\subsection{Numeric Subscripts (Rule 77)} +%%%%%%%%%%%%% + +\<compress numeric subscripts\><<< + <set name="num-sub" > + `<open xslt script`> + `<num sub`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="num-sub" /> +>>> + + + +\<num sub\><<< +<xsl:template match="msub[ + ( + `<num sub on non-primed base`> + or + `<num sub on primed base`> + ) + and + child::mrow[ @class = 'mrow-sub' ] + / child::*[ not(@title = 'speech-extra') ][1] + / self::*[ + normalize-space(.) + = normalize-space( descendant::mn ) ] +]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <BREAK SIZE="small"/> + <xsl:apply-templates select="*[1]" /> + <mrow class="mrow-sub"> + <xsl:apply-templates + select="*[2] / *[ + not(@title = 'speech-extra') + ]" /> + <BREAK SIZE="small"/> + </mrow> + </xsl:copy> +</xsl:template> +>>> + +\<num sub on non-primed base\><<< +(count( child::mrow[ @class = 'mrow-base' ] + / child::* ) = 1 ) + and child::mrow[ @class = 'mrow-base' ] / descendant::mi + and not( ancestor::*[ + self::msub or self::msup or self::msubsup + ] ) +>>> + +\<num sub on primed base\><<< +( + count( child::mrow[ @class = 'mrow-base' ] + / child::* [ + not(self::BREAK) + ] + ) = 2 ) + and child::mrow[ @class = 'mrow-base' ] [ + child::*[1][ self::mi ] + and + child::*[ + (position() > 1) + and + (normalize-space(.) = + normalize-space( + descendant-or-self::span[ + (@class = 'ch 2032') or (@class = 'ch 2033') + or (@class = 'ch 2034') + ] + )) + ] + ] + and not( ancestor::*[ + self::msub or self::msup or self::msubsup + ] ) +>>> + +\begin{verbatim} +<msub> + <mrow class="mrow-base"> + <mi>x</mi> + </mrow> + <mrow class="mrow-sub"> + <span class="begin-script" title="speech-extra"> subscript </span> + <mn>1</mn> + <span class="end-script" title="speech-extra"> baseline </span> + </mrow> +</msub> +\end{verbatim} + + + +\<num sub\><<< +<xsl:template match="msubsup[ + ( + `<num sub on non-primed base`> + ) + and + child::mrow[ @class = 'mrow-sub' ] + / child::*[ not(@title = 'speech-extra') ][1] + / self::*[ + normalize-space(.) + = normalize-space( descendant::mn ) ] +]" > + <msup> + <BREAK SIZE="small"/> + <xsl:apply-templates select="*[1]" /> + <mrow class="mrow-sub"> + <xsl:apply-templates + select="*[2] / *[ + not(@title = 'speech-extra') + ]" /> + <BREAK SIZE="small"/> + </mrow> + <xsl:apply-templates select="*[3]" /> + </msup> +</xsl:template> +>>> + +%%%%%%%%%%%%% +\subsection{Primes} +%%%%%%%%%%%%% + +\<remove scrip indicators from primes\><<< +<xsl:template match="span[ + (@class = 'begin-script') + and + following-sibling::*[ not(@title = 'speech-extra') ] [1] + / descendant-or-self::*[ not( self::PROS ) ][1] + / + child::span / child::span[ + (@class = 'ch 2032') or (@class = 'ch 2033') + or (@class = 'ch 2034') + ] +]" > + <BREAK SIZE="small"/> +</xsl:template> +>>> + + +\<remove scrip indicators from primes\><<< +<xsl:template match="span[ + (@class = 'end-script') + and + preceding-sibling::*[ not(@title = 'speech-extra') ] [1] + / descendant-or-self::*[ not( self::PROS ) ][1] + / + child::span / child::span[ + (@class = 'ch 2032') or (@class = 'ch 2033') + or (@class = 'ch 2034') + ] +]" > + <BREAK SIZE="small"/> +</xsl:template> +>>> + + + +\begin{verbatim} +<span class="msup"> + <span class="mrow-base"> + <span class="mi">x</span> + </span> + <span class="mrow-super"> + <span class="begin-script"> superscript </span> + <span class="mo-op"> + <span class="char"> + <span class="ch 2033">double prime</span> + </span> + </span> + <span class="end-script"> baseline </span> + </span> +</span> +\end{verbatim} + +\<subsup prime\><<< +<set name="subsup-prime" > + `<open xslt script`> + `<compress subsup prime`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="subsup-prime" /> +>>> + + +\<compress subsup prime\><<< +<xsl:template match="msubsup[ + (count( + child::mrow [ @class='mrow-super' ] + / child::* [ not(@title = 'speech-extra') ] + ) = 1) + and + not( + child::mrow [ @class='mrow-super' ] + / child::* [ not(@title = 'speech-extra') ] + / descendant::*[ preceding-sibling::* + or following-sibling::*] + ) + and + child::mrow [ @class='mrow-super' ] + / child::* [ not(@title = 'speech-extra') ] + / descendant-or-self::span[ @class='char' ] + / child::span[ + (@class = 'ch 2032') or (@class = 'ch 2033') + or (@class = 'ch 2034') + ] +]" > + <msub> + <mrow class="mrow-base"> + <xsl:apply-templates select=" + child::mrow[@class = 'mrow-base'] / * + " /> + <BREAK SIZE="small"/> + <xsl:apply-templates select=" + child::mrow[@class = 'mrow-super'] + / child::* [ not(@title = 'speech-extra') ] + " /> + </mrow> + <mrow class="mrow-sub"> + <xsl:apply-templates + select="*[@class = 'mrow-sub'] /* " /> + <xsl:apply-templates select=" + child::mrow[@class = 'mrow-super'] + / child::* [ @class = 'end-script' ] + " /> + </mrow> + </msub> +</xsl:template> +>>> + + + +\begin{verbatim} +<span class="msubsup"> + <span class="mrow-base"> + <span class="mi">x</span> + </span> + <span class="mrow-sub"> + ...... + </span> + <span class="mrow-super"> + <span class="mid-script" title="speech-extra"> superscript </span> + <span class="mi"> + <span class="char" title="ch-verbose"> + <span class="ch 2032" title="ch-verbose">prime</span> + </span> + </span> + </span> +</span> +\end{verbatim} + + + +%%%%%%%%%%%%% +\subsection{Degree} +%%%%%%%%%%%%% + +\<remove scrip indicators from degree\><<< +<xsl:template match="mrow[ + (@class = 'mrow-super') + and + parent::msup + and + (count( `<math content element`> ) = 1) + and + `<math content element`> [1][ + normalize-space(.) + = + normalize-space( + descendant::span[@class = 'ch 2218'] + ) + ] +]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates + select="*[not(@title = 'speech-extra') + and + not(self::BREAK) + ]" + mode="degree" /> + <BREAK SIZE="small"/> + </xsl:copy> +</xsl:template> +>>> + +\<remove scrip indicators from degree\><<< +<xsl:template match="*" mode="degree" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:choose> + <xsl:when test="self::span[ @class='ch 2218' ]" > + <xsl:text>degree</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates + select="*[not(self::BREAK)]|text()" + mode="degree"/> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + + + + + +%%%%%%%%%%%%% +\subsection{Logarithms} +%%%%%%%%%%%%% + +\<msub of log\><<< +<xsl:template match=" + msub [ + normalize-space(child::*[1]) = 'log' + or + normalize-space(child::*[1]) = 'ln' +]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select="child::*[1]" /> + <xsl:apply-templates select="child::*[2]" + mode="log" /> + </xsl:copy> +</xsl:template> +>>> + +\<msub of log\><<< +<xsl:template match="*" mode="log" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:choose> + <xsl:when test="parent::mrow[ @class = 'mrow-sub' ]" > + <BREAK SIZE="small"/> + <xsl:apply-templates select="*" /> + <BREAK SIZE="small"/> + <span title="speech-extra"> + <xsl:text>of</xsl:text> + </span> + <BREAK SIZE="small"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates + select="*[ not(@title = 'speech-extra') ]" + mode="log" /> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + +\begin{verbatim} +<msub> + <mrow class="mrow-base"> + <mo class="MathClass-op">log<BREAK SIZE="small"/></mo> + </mrow> + <mrow class="mrow-sub"> + <span class="begin-script" title="speech-extra"> + ... + </span> + <PROS PITCH="-10"> + <mn>2</mn> + </PROS> + <span class="end-script" title="speech-extra"> + ... + </span> + </mrow> +</msub> +<mi>x</mi> +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{Fractions (Stage 1)} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%% + + + +\<span frac elements\><<< +<script element="mfrac" > + <set name="mfrac" > + `<open xslt script`> + `<frac templates`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="mfrac" /> +</script> +>>> + +\<frac templates\><<< +<xsl:template match="mfrac" > + <xsl:copy> + <xsl:choose> + `<word fracs`> + `<prepend continued fractions`> + `<tail continued fractions`> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + + +%%%%%%%%%%%%% +\subsection{Word Fractions} +%%%%%%%%%%%%% + +Example: `\verb+1 \ove 2+' int `one half' + +\<word fracs\><<< +<xsl:when test=" + (string-length( + normalize-space(child::mrow[ @class = 'mrow-numerator' ][1]) + ) = 1) + and + (string-length( + normalize-space(child::mrow[ @class = 'mrow-enumerator' ][1]) + ) = 1) +"> + `<a := numerator; b := enumerator`> + <xsl:choose> + <xsl:when test=" + (translate($a,'123456789','') != '') + or + (translate($b,'123456789','') != '') + " > + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:when> + <xsl:when test=" $a < $b "> + <xsl:attribute name="class"> + <xsl:text>word-frac</xsl:text> + </xsl:attribute> + `<word numerator`> + `<word enumerator`> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:otherwise> + </xsl:choose> +</xsl:when> +>>> + + +\<a := numerator; b := enumerator\><<< +<xsl:variable name="a"> + <xsl:value-of select=" + normalize-space(child::mrow[ @class = 'mrow-numerator' ][1]) + " /> +</xsl:variable> +<xsl:variable name="b"> + <xsl:value-of select=" + normalize-space(child::mrow[ @class = 'mrow-enumerator' ][1]) + " /> +</xsl:variable> +>>> + + +\<word numerator\><<< +<xsl:choose> + <xsl:when test=" $a = 1 "><xsl:text> one </xsl:text></xsl:when> + <xsl:when test=" $a = 2 "><xsl:text> two </xsl:text></xsl:when> + <xsl:when test=" $a = 3 "><xsl:text> three </xsl:text></xsl:when> + <xsl:when test=" $a = 4 "><xsl:text> four </xsl:text></xsl:when> + <xsl:when test=" $a = 5 "><xsl:text> five </xsl:text></xsl:when> + <xsl:when test=" $a = 6 "><xsl:text> six </xsl:text></xsl:when> + <xsl:when test=" $a = 7 "><xsl:text> seven </xsl:text></xsl:when> + <xsl:when test=" $a = 8 "><xsl:text> eight </xsl:text></xsl:when> + <xsl:when test=" $a = 9 "><xsl:text> nine </xsl:text></xsl:when> +</xsl:choose> +>>> + + +\<word enumerator\><<< +<xsl:choose> + <xsl:when test=" $b = 2 "><xsl:text> half</xsl:text></xsl:when> + <xsl:when test=" $b = 3 "><xsl:text> third</xsl:text></xsl:when> + <xsl:when test=" $b = 4 "><xsl:text> fourth</xsl:text></xsl:when> + <xsl:when test=" $b = 5 "><xsl:text> fifth</xsl:text></xsl:when> + <xsl:when test=" $b = 6 "><xsl:text> sixth</xsl:text></xsl:when> + <xsl:when test=" $b = 7 "><xsl:text> seventh</xsl:text></xsl:when> + <xsl:when test=" $b = 8 "><xsl:text> eighth</xsl:text></xsl:when> + <xsl:when test=" $b = 9 "><xsl:text> nineth</xsl:text></xsl:when> +</xsl:choose> +<xsl:if test=" $a > 1 "><xsl:text>s</xsl:text></xsl:if> +<xsl:text> </xsl:text> +>>> + + + +%%%%%%%%%%%%% +\subsection{Mixed Fractions} +%%%%%%%%%%%%% + +Examples: `\verb+2{3\over 4}+' +into `2 and three forth', +and `\verb+10{25\over 39}+' into `10 and 25 over 39'. + +\<mixed fractions\><<< +<xsl:template match="mfrac[ + ( + (translate( + concat( + mrow[ (@class = 'mrow-numerator')], + mrow[ (@class = 'mrow-enumerator')] + ) ,'0123456789','') = '') + and + not(descendant::*/descendant::* + /descendant::mn-group-s) + or + (@class = 'word-frac') + ) + and + preceding-sibling::*[1] + / self::mn-group-s[ child::*[ + (position() = last()) + and + self::mn + ] ] + ]" > + <xsl:text> and </xsl:text> + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:copy> +</xsl:template> +>>> + + + + +%%%%%%%%%%%%% +\subsection{Continued Fractions Conditions (Rule 69)} +%%%%%%%%%%%%% + + + +\begin{verbatim} + 1 +1 + --------------------------------------- + 1 + 2 + --------------------------------------- + 1 + 2 + --------------------------------------- + 2 + ... +\end{verbatim} + + +The fractions are processed recusrively from inside out. The `tail' +is the one to discover the inner most part of a continued fraction +(i.e., the bottom rows). Higher levels add to the nucleous built +already under them. + +In Stage 1 the members of the continued fractions are marked as +such. In the second stage they being are procesed. + + +The minimum conditions here are three un-interrupted levels of +fractions. + +\begin{verbatim} +<mfrac> + <mrow class="mrow-enumerator"> + <mn>1</mn> + <mo class="MathClass-bin">...</mo> + <mfrac> + <span class="begin-end" ...>begin fraction</span> + <mrow class="mrow-numerator"> ... </mrow> + <span class="begin-end" ...>over</span> + <mrow class="mrow-enumerator">...</mrow> + <span class="begin-end" ...>end fraction</span> + </mfrac> +\end{verbatim} + +\<a,b := top 2 pre op values\><<< +<xsl:variable name="a"> + <xsl:apply-templates select=" + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + preceding-sibling::*[2] + " mode="enum-op" /> +</xsl:variable> +<xsl:variable name="b"> + <xsl:apply-templates select=" + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + preceding-sibling::*[2] + " mode="enum-op" /> +</xsl:variable> +<xsl:variable name="c"> + <xsl:value-of select=" + normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-enumerator' ] ) + " /> +</xsl:variable> +>>> + +\<frac templates\><<< +<xsl:template match="*" mode="enum-op"> + <xsl:if test="preceding-sibling::*" > + <xsl:apply-templates select=" preceding-sibling::*[1] " /> + </xsl:if> + <xsl:value-of select="." /> +</xsl:template> +>>> + + + + + +%%%%%%%%%%%%% +\subsection{Nucleous of Continued Fractions} +%%%%%%%%%%%%% + +We are looking for the three most internal (bottom) fractions that +belong to a continued fraction. + + +\<tail continued fractions\><<< +<xsl:when test=" `%check numeral numerator`% + (translate( + normalize-space( + child::mrow[ @class = 'mrow-numerator' ]), + '0123456789','')= '') + and `<check equality of numerators`> + and `<check ops before two top fracs`> +"> + `<a,b := top 2 pre op values`> + <xsl:choose> + <xsl:when test=" + ( translate($a,'0123456789 ','') = '') + and (normalize-space($a)=normalize-space($b)) + and starts-with( $c, normalize-space( $a )) + and starts-with( + normalize-space( + substring-after( $c, normalize-space( $a )) ) + , + normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + preceding-sibling::*[1] ) + ) + " > + <xsl:attribute name="class"> + <xsl:value-of select=" 'continued-mfrac' " /> + </xsl:attribute> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:otherwise> + </xsl:choose> +</xsl:when> +>>> + + + + + +\<check equality of numerators\><<< +( normalize-space( + child::mrow[ @class = 'mrow-numerator' ]) + and + normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-numerator' ]) +) +and +( normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-numerator' ]) + and + normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-numerator' ]) +) +>>> + + + +\<check ops before two top fracs\><<< +( child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + preceding-sibling::*[1][@class = 'MathClass-bin'] +) +and +( normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + preceding-sibling::*[1] ) + = + normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::mrow[ @class = 'mrow-enumerator' ] / + child::mfrac / + preceding-sibling::*[1] ) +) +>>> + + + + +%%%%%%%%%%%%% +\subsection{Prepend Existing Continued Fractions} +%%%%%%%%%%%%% + + +\<prepend continued fractions\><<< +<xsl:when test=" + self::mfrac + and + child::mrow[ @class = 'mrow-enumerator' ] + / child::mfrac[ @class = 'continued-mfrac' ] + and + ( normalize-space( + child::mrow[ @class = 'mrow-numerator' ] + ) + = + normalize-space( + child::mrow[ @class = 'mrow-enumerator' ] + / child::mfrac[ @class = 'continued-mfrac' ] + / child::mrow[ @class = 'mrow-numerator' ] + ) + ) + and `<check equality of op with cont frac`> +" > + `<a,b := cont top 2 pre op values`> + <xsl:choose> + <xsl:when test=" + normalize-space($a)=normalize-space($b) + " > + <xsl:attribute name="class"> + <xsl:value-of select=" 'continued-mfrac' " /> + </xsl:attribute> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:otherwise> + </xsl:choose> +</xsl:when> +>>> + + + +\<check equality of op with cont frac\><<< +( + normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::mfrac / + preceding-sibling::*[1] ) + = + normalize-space( + child::span[ @class = 'mrow-enumerator' ] / + child::mfrac / + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'continued-mfrac' ] / + preceding-sibling::*[1] ) +) +>>> + + +\<a,b := cont top 2 pre op values\><<< +<xsl:variable name="a"> + <xsl:apply-templates select=" + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mcontinued-mfrac' ] / + preceding-sibling::*[2] + " mode="enum-op" /> +</xsl:variable> +<xsl:variable name="b"> + <xsl:apply-templates select=" + child::span[ @class = 'mrow-enumerator' ] / + child::span[ @class = 'mcontinued-mfrac' ] / + child::span[ @class = 'mrow-enumerator' ] / + child::span[ + self::mfrac or (@class = 'mcontinued-mfrac') + ] / + preceding-sibling::*[2] + " mode="enum-op" /> +</xsl:variable> +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Fractions (Stage 2)} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%% + + +\<set levels for hyper complex fracs\><<< +<dom name="." xml="." method="fracLevel" class="tex4ht.HtJsml" /> +`<remove xml declaration`> +>>> + + + +\<static void fracLevel(dom)\><<< +public static void fracLevel(Node d) { + dom = (Document) d; + setFracLevel(dom.getFirstChild(), 0); +} +private static int setFracLevel(Node node, int cont) { + int level = 0; + if (node.hasChildNodes()) { + String ndName = node.getNodeName(); + int prevCont = cont; + String clValue = null; + if (ndName.equals("mfrac")) { + `<clValue := class of mfrac`> + `<cont := distance from mfrac(continued-frac)`> + } + `<level += inherited from children`> + `<return 0 if barier`> + if (ndName.equals("mfrac")) { + `<return 0 if mfrac barier`> + if( cont > 0 ){ + if ( prevCont == 0 ){ + `<set start continued fracs mark`> + } + `<remove end of non-tail continued frac`> + level = 0; + } else if ( prevCont > 0 ){ + `<set end continued fracs mark`> + level = 0; + } else + if( level > 0 ){ + `<set extra levels for frac`> + } + level++; + } } + return level; +} +>>> + + + +%%%%%%%%%%%%%%%%%% +\subsection{Level Indicators for Nesting (Hyper Complex Fractions)} +%%%%%%%%%%%%%%%%%% + +\begin{verbatim} + ${a\over b}\over c$ + +begin begin fraction + begin fraction a + over b + end fraction +over over c +end end fraction +\end{verbatim} + +\<set extra levels for frac\><<< +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() + .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if (clsName.equals("begin-end")) { + insertLevelPrefix(child, level); +} } } } +>>> + +\<HtJsml utility members\><<< +private static void insertLevelPrefix(Node node, int level){ + if( level == 0 ){ return; } + if (node.getNodeType() == Node.ELEMENT_NODE) { + if( node.getNodeName().equals( "level" ) ){ + `<insert level prefixes`> + } else { + NodeList children = node.getChildNodes(); + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + insertLevelPrefix(child, level); +} } } } +>>> + + + + +\<insert level prefixes\><<< +Node attr = node.getAttributes().getNamedItem("prefix"); +if( attr != null ){ + String prefix = attr.getNodeValue(); + String s = ""; + for(int j=0; j<level; j++){ + s += prefix + " "; + } + ((org.w3c.dom.Element) node).setAttribute( "depth", ""+level); + Node child = node.getFirstChild(); + if( child != null ){ + node.insertBefore( dom.createTextNode(s), child ); +} } +>>> + + + +\<level += inherited from children\><<< +NodeList children = node.getChildNodes(); +int max = 0; +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + int d = setFracLevel(child, + `<continued level counter`>); + if (d > max) { max = d; } +} } +level += max; +>>> + + +%%%%%%%%%%%%% +\subsection{Level Terminators: Scripts, Word Fracs} +%%%%%%%%%%%%% + + +\<return 0 if barier\><<< +if( ndName.equals("msub") + || ndName.equals("msup") + || ndName.equals("msubsup") +) { + return 0; +} +>>> + + +\<return 0 if mfrac barier\><<< +if( (clValue != null) && clValue.equals("word-frac") +) { + return 0; +} +>>> + + + + + + + + + + +%%%%%%%%%%%%% +\subsection{Bookeeping for Continued Fractions} +%%%%%%%%%%%%% + +\<continued level counter\><<< +cont +>>> + + +In the first phase, the mfrac elements in a group carry +attributes as in + +\begin{verbatim} + <mfrac class="continued-mfrac"> +\end{verbatim} + + +with the exception of the bottom (internal) most leveles. +The `cont' parameter is for determining whether the parent and the +grandparent are frac elements marked as continued. + + + +\<clValue := class of mfrac\><<< +if (node.hasAttributes()) { + Node cl = node.getAttributes().getNamedItem("class"); + if (cl != null) { clValue = cl.getNodeValue(); } +} +>>> + +\<cont := distance from mfrac(continued-frac)\><<< +if( (clValue != null) + && clValue.equals("continued-mfrac") ) { + cont = 2; +} else { cont--; } +>>> + + + +%%%%%%%%%%%%% +\subsection{Modifications for Continued Fractions} +%%%%%%%%%%%%% + +\<remove end of non-tail continued frac\><<< +Node child = node.getLastChild(); +if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if ( clsName.equals("begin-end")) { + node.removeChild( child ); +} } } +>>> + +\<set end continued fracs mark\><<< +Node child = node.getLastChild(); +if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if ( clsName.equals("begin-end")) { + setContinuedNote(child); +} } } +>>> + +\<set start continued fracs mark\><<< +Node child = node.getFirstChild(); +if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if ( clsName.equals("begin-end")) { + setContinuedNote(child); +} } } +>>> + + +\<HtJsml utility members\><<< +private static void setContinuedNote(Node node){ + if (node.getNodeType() == Node.ELEMENT_NODE) { + if( node.getNodeName().equals( "level" ) ){ + `<fix end continued note`> + } else { + NodeList children = node.getChildNodes(); + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + setContinuedNote(child); +} } } } +>>> + +\<fix end continued note\><<< +Node attr = node.getAttributes().getNamedItem("continued"); +if (attr != null) { + node = node.getFirstChild(); + if( node != null ){ + ((org.w3c.dom.Text) node).setData( attr.getNodeValue() ); +} } +>>> + + + + +%%%%%%%%%%%%% +\section{Set Levels on Roots} +%%%%%%%%%%%%% + +\<set levels for roots\><<< +<dom name="." xml="." method="rootLevel" class="tex4ht.HtJsml" /> +`<remove xml declaration`> +>>> + +\<static void rootLevel(dom)\><<< +public static void rootLevel(Node d) { + dom = (Document) d; + setRootLevel(d.getFirstChild()); +} +private static int setRootLevel( Node node ){ + int level = 0; +// String clName = null; + if (node.hasChildNodes()) { + `<count root levels inherited from children`> + String ndName = node.getNodeName(); + `<block for roots`> + if( ndName.equals("msqrt") || ndName.equals("mroot") ){ + `<set extra levels for roots`> + level++; + } } + return level; +} +>>> + + +\<count root levels inherited from children\><<< +NodeList children = node.getChildNodes(); +int max = 0; +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + int d = setRootLevel(child); + if( d > max ){ max = d; } +} } +level += max; +>>> + + +\<block for roots\><<< +if( ndName.equals("msub") || ndName.equals("msup") || + ndName.equals("msubsup") +) { + return 0; +} +>>> + + + + +\<set extra levels for roots\><<< +for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + Node cls = child.getAttributes() + .getNamedItem("class"); + if (cls != null) { + String clsName = cls.getNodeValue(); + if( clsName.equals("begin-root") + || clsName.equals("mid-root") + || clsName.equals("end-root") + ){ + insertLevelPrefix(child, level); +} } } } +>>> + + + + +%%%%%%%%%%%%% +\section{Modifiers} +%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%% +\subsection{Over and Under Limit Scripts} +%%%%%%%%%%%%%%%%%% + + +\<over and under scripts\><<< +<script element="msub::limits-msub-msup" > + <set name="smash" > + `<open xslt script`> + `<smash over and under scripts`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="smash" /> +</script> +>>> + +\<over and under scripts\><<< +<script element="msup::limits-msub-msup" > + <set name="smash" > + `<open xslt script`> + `<smash over and under scripts`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="smash" /> +</script> +>>> + +\<over and under scripts\><<< +<script element="msubsup::limits-msub-msup" > + <set name="smash" > + `<open xslt script`> + `<smash over and under scripts`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="smash" /> +</script> +>>> + + + + + + + +\<smash over and under scripts\><<< +<xsl:template match="*[ + (@class = 'limits-msub-msup') + and + child::*[ (position() = 1) + and (@class = 'limits-mrow-base') + and child::*[ (position() = 1) + and (@class = 'limits-msub-msup') + ] ] +]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select=" + *[1] + / *[1] + / *[ not(@class='limits-mrow-super') ] " /> + <xsl:apply-templates select=" *[ + preceding-sibling::* + and + not(@class='limits-mrow-super') ]" /> + <xsl:apply-templates select=" + *[1] + / *[1] + / *[@class='limits-mrow-super' ] " /> + <xsl:apply-templates select=" *[ + preceding-sibling::* + and + (@class='limits-mrow-super') ]" /> + </xsl:copy> +</xsl:template> +>>> + + +\<compress limit script\><<< +<xsl:template match="span[ @class = 'end-limits-script' ]" > + <xsl:if test=" parent::*[ not(following-sibling::*) ] "> + <xsl:copy> + <xsl:apply-templates select=" @* " /> + <xsl:choose> + <xsl:when test=" + parent::*[ preceding-sibling::mrow[ + @class != 'limits-mrow-base' + ] ] + " > + <BREAK SIZE="small"/> + <xsl:text> end scripts </xsl:text> + <BREAK SIZE="small"/> + </xsl:when> + <xsl:otherwise> + <BREAK SIZE="small"/> + <xsl:text> end script </xsl:text> + <BREAK SIZE="small"/> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> + </xsl:if> +</xsl:template> +>>> + + +\<compress limit script\><<< +<xsl:template match="span[ @class = 'begin-limits-script' ]" > + <xsl:copy> + <xsl:apply-templates select=" @* " /> + <xsl:choose> + <xsl:when test=" + parent::*[ @class = 'limits-mrow-super' ] + " > + <xsl:apply-templates + select=" parent::* + / preceding-sibling::*[1] " + mode = "extra-over" /> + </xsl:when> + <xsl:when test=" + parent::*[ @class = 'limits-mrow-sub' ] + " > + <xsl:apply-templates + select=" parent::* + / preceding-sibling::*[1] " + mode = "extra-under" /> + </xsl:when> + </xsl:choose> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:copy> +</xsl:template> +>>> + + + +\<compress limit script\><<< +<xsl:template match="*" mode="extra-over" > + <xsl:if test = " self::mrow[ @class = 'limits-mrow-super' ] " > + <xsl:text> over </xsl:text> + <xsl:apply-templates select=" preceding-sibling::*[1] " + mode = "extra-over" /> + </xsl:if> +</xsl:template> +>>> + + +\<compress limit script\><<< +<xsl:template match="*" mode="extra-under" > + <xsl:if test = " self::mrow[ @class = 'limits-mrow-sub' ] " > + <xsl:text> under </xsl:text> + <xsl:apply-templates select=" preceding-sibling::*[1] " + mode = "extra-under" /> + </xsl:if> +</xsl:template> +>>> + + + + +%%%%%%%%%%%%% +\subsection{Short Cuts for Math Underline} +%%%%%%%%%%%%% + + + +\<short cut modifiers\><<< +<script element="munder::munder-underline" > + <set name="munder" > + `<open xslt script`> + `<get content template`> + `<under modifier templates`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="munder" /> +</script> +>>> + +\<under modifier templates\><<< +<xsl:template match="munder[ + (@class = 'munder-underline') + and + child::mrow[ + (@class = 'mo-0332') + and + descendant::mi + ] +]" > + <xsl:variable name="content"> + <xsl:apply-templates select="*" mode="content" /> + </xsl:variable> + <xsl:choose> + <xsl:when test=" + string-length( normalize-space( $content )) = 1 + " > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates + select=" *[ @class != 'begin-end' ] " /> + <span class="begin-end" title="speech-extra" > + <BREAK SIZE="small"/> + <xsl:text> under bar </xsl:text> + <BREAK SIZE="small"/> + </span> + </xsl:copy> + </xsl:when> + <xsl:otherwise> + `<set munder`> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +>>> + + + + +The following code makes to push the munder's under the mover's. + +\<set munder\><<< +<xsl:choose> + <xsl:when test="child::mrow / child::mover"> + <xsl:apply-templates select="child::mrow / child::mover" + mode="under-mover" /> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates select=" *|@*|text() " /> + </xsl:copy> + </xsl:otherwise> +</xsl:choose> +>>> + +\<under modifier templates\><<< +<xsl:template match="*" mode="under-mover" > + <xsl:choose> + <xsl:when test="self::mover"> + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select="*" mode="under-mover" /> + </xsl:copy> + </xsl:when> + <xsl:when test="self::mrow[ parent::mover ]"> + <xsl:copy> + <xsl:apply-templates select="@*" /> + `<cont under-mover`> + </xsl:copy> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." /> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +>>> + +\<cont under-mover\><<< +<xsl:choose> + <xsl:when test="child::mover"> + <xsl:apply-templates select="*" mode="under-mover" /> + </xsl:when> + <xsl:otherwise> + <munder class="munder-underline"> + `<munder prefix`> + <mrow class="mo-0032"> + <xsl:apply-templates select="*" /> + </mrow> + `<munder postfix`> + </munder> + </xsl:otherwise> +</xsl:choose> +>>> + + + +\<munder prefix\><<< +<xsl:apply-templates select=" + ancestor::munder[1] / child::*[following-sibling::mrow] +"/> +>>> + + + +\<munder postfix\><<< +<xsl:apply-templates select=" + ancestor::munder[1] / child::*[preceding-sibling::mrow] +"/> +>>> + + + +\begin{verbatim} +<munder class="munder-underline"> + <span class="begin-end" title="speech-extra" > modified under </span> + <mrow class="mo-0332"> + <mi>x</mi> + </mrow> + <span class="begin-end" title="speech-extra" > with bar </span> +</munder> +\end{verbatim} + + + +%%%%%%%%%%%%% +\subsection{Short Cuts for Math Overline} +%%%%%%%%%%%%% + + +\<short cut modifiers\><<< +<script element="mover::mover-overline" > + <set name="mover" > + `<open xslt script`> + `<get content template`> + `<over modifier templates`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="mover" /> +</script> +>>> + + + + +\<over modifier templates\><<< +<xsl:template match="mover[ + (@class = 'mover-overline') + and + child::mrow[ + (@class = 'mo-00AF') + and + descendant::mi + ] +]" > + <xsl:variable name="content"> + <xsl:apply-templates select="*" mode="content" /> + </xsl:variable> + <xsl:choose> + <xsl:when test=" + string-length( normalize-space( $content )) = 1 + " > + `<set mover short cut`> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates + select="*|text()|comment()" /> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +>>> + + +The following code makes to push the mover's under the munder's. + +\<set mover short cut\><<< +<BREAK SIZE="small"/> +<xsl:choose> + <xsl:when test="child::mrow / child::munder"> + <xsl:apply-templates select="child::mrow / child::munder" + mode="under-munder" /> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates + select=" *[ @class != 'begin-end' ] " /> + `<mover bar short cut`> + </xsl:copy> + </xsl:otherwise> +</xsl:choose> +>>> + +\<over modifier templates\><<< +<xsl:template match="*" mode="under-munder" > + <xsl:choose> + <xsl:when test="self::munder"> + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select="*" mode="under-munder" /> + </xsl:copy> + </xsl:when> + <xsl:when test="self::mrow[ parent::munder ]"> + <xsl:copy> + <xsl:apply-templates select="@*" /> + `<cont under-munder`> + </xsl:copy> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." /> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +>>> + +\<cont under-munder\><<< +<xsl:choose> + <xsl:when test="child::munder"> + <xsl:apply-templates select="*" mode="under-munder" /> + </xsl:when> + <xsl:otherwise> + <mover class="mover-overline"> + <mrow class="mo-00AF"> + <xsl:apply-templates select="*" /> + </mrow> + `<mover bar short cut`> + </mover> + </xsl:otherwise> +</xsl:choose> +>>> + + + + + +\<mover bar short cut\><<< +<span class="begin-end" title="speech-extra" > + <BREAK SIZE="small"/> + <xsl:text> over bar </xsl:text> + <BREAK SIZE="small"/> +</span> +>>> + + + + +\begin{verbatim} +<mover class="mover-overline"> + <span class="begin-end" title="speech-extra"> modified above </span> + <mrow class="mo-00AF"> + <span class="mathvariant-bold"> + <span title="speech-extra" class="begin-end"> bold </span> + <mi class="mi"> + <span title="speech-extra" + class="capital-description"> capital </span> + Z + </mi> + </span> + </mrow> + <span class="begin-end" title="speech-extra"> with bar </span> +</mover> +\end{verbatim} + + + + + + + +%%%%%%%%%%%%% +\section{New Theorems} +%%%%%%%%%%%%% + +\<boundaries on theorems\><<< +<script element="div::newtheorem" > + <set name="newtheorem" > + `<open xslt script`> + `<annotate bounderies of theorems`> + `<tags for empty templates`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="newtheorem" /> +</script> +>>> + + +\<annotate bounderies of theorems\><<< +<xsl:template match=" + div[ (@class='newtheorem') + and + descendant::*[ self::p ][1] + / descendant::*[ self::span ][1] + [ @class = 'theorem-head' ] + ] +" > + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" /> + <div class="begin-end" title="speech-extra"> + <BREAK SIZE="small"/> + <xsl:value-of select=" + concat( ' end ', + substring-before(`<new theorem header`>, ' ') + ) " /> + </div> + </xsl:copy> +</xsl:template> +>>> + + +\<new theorem header\><<< +concat( + normalize-space( + string( + descendant::*[ self::p ][1] + / descendant::*[ self::span ][1] + [ @class = 'theorem-head' ] + ) ) + , ' ' +) +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Shared} +%%%%%%%%%%%%%%%%%% + + + +\<open xslt script\><<< +<![CDATA[ + <xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + > + <xsl:output omit-xml-declaration = "yes" /> +>>> + +\<close xslt script\><<< + <xsl:template match="*|@*|text()|comment()" > + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:copy> + </xsl:template> + </xsl:stylesheet> +]]> +>>> + + +\<get content template\><<< +<xsl:template match="*" mode="content" > + <xsl:choose> + <xsl:when test=" @class = 'char' " > + <xsl:if test="not( child::*[ + (@class = 'ch 2032') or (@class = 'ch 2033') + or (@class = 'ch 2034') + ] )"> + <xsl:text>x</xsl:text> + </xsl:if> + </xsl:when> + <xsl:when test=" not( + (@title = 'speech-extra') or (@class = 'accent-char') + ) " > + <xsl:apply-templates select="*|text()" mode="content" /> + </xsl:when> + </xsl:choose> +</xsl:template> +>>> + + + + + +\marginpar{Can dom be prevented from creating an xml declaration in + the output? The xslt part is there just to remove the undesirable + declaration.} + + +\<remove xml declaration\><<< +<set name="rmXmlDecl" > + `<open xslt script`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="rmXmlDecl" /> +>>> + + + + + + + + +\ifdojava +\AtEndDocument{\Needs{% + "pushd \XTPIPES + ; + jar cf tex4ht.jar * + ; + popd + ; + mv \XTPIPES tex4ht.jar \TEXMFTEXivBIN + ; + if [ ! -d \TEXMFTEXivXTPIPES\space]; then exit 1; fi + ; + cp \XTPIPES xtpipes/lib/* + \TEXMFTEXivXTPIPES +"}} +\fi + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%% +\section{Odd Ends} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Font Decorations} +%%%%%%%%%%%%% + +\<bold math\><<< +<script element="span::mathvariant-bold" > + <set name="bold" > + `<open xslt script`> + `<get content template`> + `<math bold templates`> + `<close xslt script`> + </set> + <xslt name="." xml="." xsl="bold" /> +</script> +>>> + + + +\<math bold templates\><<< +<xsl:template match="span[ @class = 'mathvariant-bold' ]" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:variable name="content"> + <xsl:apply-templates select="*" mode="content" /> + </xsl:variable> + <xsl:choose> + <xsl:when test=" + string-length( normalize-space( $content )) = 1 + " > + <span class="begin-end" title="speech-extra" > + <xsl:text> bold </xsl:text> + </span> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:when> + <xsl:otherwise> + <span class="begin-end" title="speech-extra" > + <xsl:text> begin bold </xsl:text> + </span> + <xsl:apply-templates select="*|text()|comment()" /> + <span class="begin-end" title="speech-extra" > + <xsl:text> end bold </xsl:text> + </span> + </xsl:otherwise> + </xsl:choose> + </xsl:copy> +</xsl:template> +>>> + +%%%%%%%%%%%%%%%%%% +\section{Empty Elements} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%% +\section{Prose} +%%%%%%%%%%%%%%%%%% diff --git a/support/TeX4ht/source/tex4ht-jsml.tex b/support/TeX4ht/source/tex4ht-jsml.tex new file mode 100644 index 0000000000..e8dd830609 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-jsml.tex @@ -0,0 +1,4509 @@ +% $Id: tex4ht-jsml.tex 184 2016-07-04 17:35:09Z karl $ +% Compile 3 times: latex tex4ht-jsml +% or xhlatex tex4ht-jsml "html,3,sections+" +% Copy html.4ht into the work directory before each of the +% first two compilations +% +% Copyright 2009-2016 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{jsml,jsml-math} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\OPTIONS{xhtml,3,sections+} + \def\PREAMBLE{\usepackage{url}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +\def\.{\string\a:mathml:\space} + + +\TocAt{section,subsection,likesubsection} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Needs{"ls -l tex4ht-*.tex > ls-links.log"} +\openin15=ls-links.log +\ifeof15 \else \closein15 +\bgroup + \catcode`\-=13 + \def-#1tex4ht-{\bgroup \catcode`\-=12 + \def-##1.tex{\egroup + [\Link[tex4ht\string-##1.html]{}{}##1\EndLink]} + -} + \input ls\string-links.log +\egroup +\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +%%%%%%%%%%%%%%%%%% +\section{General} +%%%%%%%%%%%%%%%%%% + + + + +\begin{center} +\tt htlatex file "html,jsml" " -cjsmlhtf" "-cjsml" +\end{center} + +%%%%%%%%%%%%%%%%%% +\section{Root} +%%%%%%%%%%%%%%%%%% + + +\<jsml\><<< +% jsml.4ht (|version), generated from |jobname.tex +% Copyright 2009-2016 TeX Users Group +% Copyright |CopyYear.2006. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + +\<jsml-math\><<< +% jsml-math.4ht (|version), generated from |jobname.tex +% Copyright 2009-2016 TeX Users Group +% Copyright |CopyYear.2006. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + +\<par del\><<< +!*?: >>> +\<tag of Tag\><<< + cw:>>> + + +\<show input line no\><<< +<!--l. \the\inputlineno-->% +>>> + + + + +\<try env inline par\><<< +\ShowPar +>>> + +\<try inline par\><<< +\ShowPar \par{\HCondtrue\noindent}% +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%% + + +\<configure jsml article\><<< +|<config book-report-article|> +|<config report-article|> +>>> + +\<configure jsml report\><<< +|<config book-report-article|> +|<config report-article|> +>>> + +\<configure jsml book\><<< +|<config book-report-article|> +>>> + + +\<configure jsml letter\><<< +|<description lists|> +|<quote config|> +|<roman enumeiii|> +>>> + + +\<configure jsml amsbook\><<< +|<ams art,proc,book div|> +|<ams art,proc,book toc|> |%should appear before TocAt|% +>>> + +\<configure jsml amsproc\><<< +|<ams art,proc,book|> +>>> + + + +\<configure jsml amsart\><<< +|<ams art,proc,book|> +>>> + +\<configure jsml-math plain\><<< +|<mathml plain|> +|<plain,latex mathml|> +>>> + + +\<ams art,proc,book\><<< +|<description lists|> +>>> + + +\<configure jsml scrbook\><<< +|<description lists|> +>>> + + +\<configure jsml scrreprt\><<< +|<description lists|> +>>> + + +\<configure jsml slides\><<< +|<description lists|> +|<roman enumeiii|> +>>> + + + + +\<configure jsml-math fontmath\><<< +|<plain,fontmath math|> +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Preamble} +%%%%%%%%%%%%%%%%%% + +\<configure jsml Preamble\><<< +|<pre definitions|> +\Configure{ext}{jsml} +>>> + + +\<configure jsml-math Preamble\><<< +\:CheckOption{math-} \if:Option + \edef\Preamble{\Preamble,mathml-} +\else + \Log:Note{for sources failing to produce + clean math code, try the command line option `math-'}% +\fi +>>> + + + + + + +\<configure jsml Preamble\><<< +\Configure{PROLOG}{JSML,VERSION,DOCTYPE,*XML-STYLESHEET} +\Configure{JSML} + {\HCode{<jsml>\Hnewline}} +>>> + + + + +\<configure jsml tex4ht\><<< +\Configure{HTML} + {\IgnorePar\HCode{<html \a:@HTML + |<xmlns|>\Hnewline>\Hnewline}} + {\ifvmode\IgnorePar\fi\HCode{</html>\Hnewline + </jsml>\Hnewline}} +>>> + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + +The XML definition and DOCTYPE elements are not accepted by the +browser. + + +\<configure jsml tex4ht\><<< +\Configure{VERSION} + {\HCode{\Hnewline<!--?xml version="1.0" |<xml encoding|> ?-->\Hnewline + <?xtpipes file="jsml.4xt" ?>\Hnewline}} +>>> + +\<xml encoding\><<< +encoding="\expandafter\ifx \csname a:charset\endcsname\relax + \expandafter\:encoding\A:charset + \else \expandafter\:encoding\a:charset\fi" +>>> + + + +\<configure jsml tex4ht\><<< +\Configure{DOCTYPE} + {\HCode{% <!DOCTYPE html \xhtml:DOCTYPE> \Hnewline + <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> + \Hnewline}} +\def\xhtml:DOCTYPE{PUBLIC + "-//W3C//DTD XHTML 1.0 Transitional//|<dtd lang|>"\Hnewline + \space\space "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"} +>>> + + +% %%%%%%%%%%%%%%%%%% +% \section{Paragraphs} +% %%%%%%%%%%%%%%%%%% +% +% \<configure jsml tex4ht\><<< +% \Configure{HtmlPar} +% {\EndP\HCode{|<show input line no|><PARA><p \csname a:!P\endcsname +% class="no\ifHCond par\else indent\fi">}} +% {\EndP\HCode{|<show input line no|><PARA><p \csname a:!P\endcsname +% class="\ifdim \parindent=\z@ no\fi indent">}} +% {\HCode{</p></PARA>}} +% {\HCode{</p></PARA>}}% +% >>> + + +%%%%%%%%%%%%%%%%%% +\section{Front Matter} +%%%%%%%%%%%%%%%%%% + + +\<config book-report-article\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<title for TITLE|>% + \HCode{<PARA><div class="maketitle">}} + {\ifvmode \IgnorePar\fi \EndP \HCode{<BREAK SIZE="medium" /></div></PARA>}} + {\NoFonts\IgnorePar\HCode{<h2 + class="titleHead"\a:LRdir><EMP + LEVEL="moderate">}\IgnorePar} + {\HCode{</EMP></h2>}\IgnoreIndent\EndNoFonts} +|<config thanks author date and|> +>>> + + +\<thanks author date and\><<< +thanks author date and>>> + + +\<config thanks author date and\><<< +\Configure{|<thanks author date and|>} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<SENT><span class="thanks"><BREAK SIZE="small" />}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</span></SENT>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<SENT><span class="author" ><BREAK SIZE="small" />}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</span></SENT>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<BREAK SIZE="small" /><SAYS CLASS="date" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</SAYS><BREAK SIZE="small" />}} + {\HCode{<br />}} + {\HCode{<br />}} +>>> + + + +\<config report-article\><<< +\ConfigureEnv{abstract} + {\IgnorePar\EndP + \HCode{<div clas="abstract"\Hnewline>}\par\ShowPar + \bgroup + \pend:def\abstractname{\HCode{<BREAK SIZE="small"/><EMP + LEVEL="moderate" class="abstractname">}} + \append:def\abstractname{\HCode{</EMP><BREAK SIZE="small"/>}} + } + {\egroup \ifvmode \IgnorePar\fi + \EndP\HCode{<BREAK SIZE="small" /></div>}} + {} {} +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Sectional Divisions} +%%%%%%%%%%%%%%%%%% + + + + + + +\<config book-report-article\><<< +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<latex shared paragraph config|> +|<config captions|> +|<description lists|> +|<quote config|> +|<roman enumeiii|> +>>> + + +\<configure jsml JHEP\><<< +|<latex shared part config|> +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +>>> + +\<configure jsml acm-proc-article-sp\><<< +|<latex shared part config|> +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +>>> + + +\<configure jsml aa\><<< +|<latex shared section config|> +|<latex shared subsection config|> +|<latex shared subsubsection config|> +|<latex shared paragraph config|> +|<config captions|> +>>> + + + +\<latex shared section config\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">\add:description{added-description} + {\a:speak:section}}\@seccntformat{section}% + \HCode{</span><BREAK SIZE="small" />}\fi } +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">\add:description{added-description} + {\a:speak:subsection}}\@seccntformat{subsection}% + \HCode{</span><BREAK SIZE="small" />}\fi } +|<latex speak section|> +>>> + + + + + + +\<latex shared section config\><<< +\Configure{section}{}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<h3 class="sectionHead"\a:LRdir><EMP + LEVEL="moderate">}\TitleMark\space\HtmlParOff} + {\HCode{</EMP></h3>}\HtmlParOn\ShowPar \IgnoreIndent \par} +\Configure{likesection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\IgnorePar\HCode{<h3 + class="likesectionHead"\a:LRdir><EMP + LEVEL="moderate">}\HtmlParOff} + {\HCode{</EMP></h3>}\HtmlParOn \IgnoreIndent \par} +>>> + + +\<latex shared section config\><<< +\Configure{subsection}{}{} + {\ifvmode \IgnorePar\fi + \EndP\bgroup \IgnorePar\HCode{<h4 + class="subsectionHead"\a:LRdir><EMP + LEVEL="moderate">}% + \TitleMark\space \HtmlParOff} + {\HCode{</EMP></h4>}\HtmlParOn + \IgnoreIndent\egroup\par\ShowPar} +\Configure{likesubsection}{}{}{\EndP\bgroup + \ifvmode \IgnorePar\fi + \HCode{<h4 class="likesubsectionHead"\a:LRdir><EMP + LEVEL="moderate">}\HtmlParOff } + {\HCode{</EMP></h4>}\HtmlParOn + \IgnoreIndent\egroup\par\ShowPar} +>>> + + + + + + +\<ams art,proc,book div\><<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">\add:description{added-description} + {\a:speak:section}}\@ifundefined{sectionname}{}{% + \ignorespaces\sectionname\space}% + \@seccntformat{section}% + \HCode{</span><BREAK SIZE="small" />}\fi } +|<latex speak section|> +>>> + + + +\<latex speak section\><<< +\NewConfigure{speak:section}{1} +\Configure{speak:section}{section} +\NewConfigure{speak:subsection}{1} +\Configure{speak:subsection}{subsection} +>>> + + + + +\<configure jsml Preamble\><<< +\def\add:description#1#2{<span class="#1" + title="speech-extra" >\Hnewline #2\Hnewline</span>} +\def\add:vdescription#1#2{<div class="#1" + title="speech-extra" >\Hnewline #2\Hnewline</div>} +>>> + + + + + +%%%%%%%%%%%%% +\section{Margin Notes} +%%%%%%%%%%%%% + + + +\<configure jsml latex\><<< +\Configure{marginpar} + {\ifvmode + \IgnorePar\EndP\HCode{<p class="marginpar"><PROS + PITCH="+30" >}% + |<begin ver marginpar|>% + \def\end:margp{\ifvmode \IgnorePar\fi \EndP + |<end ver marginpar|>\HCode{</PROS></p><BREAK SIZE="small"/>}}% + \par + \else + \SaveEndP + \HCode{<SENT><span class="marginpar"><PROS + PITCH="+30" >}|<begin hor marginpar|>% + \bgroup + \Configure{HtmlPar} + {<BREAK SIZE="small" />} + {\HCode{<BREAK SIZE="small" />}} + {}{}% + \def\end:margp{\egroup + |<end hor marginpar|>\HCode{</PROS><BREAK SIZE="small"/></span></SENT>}\RecallEndP}% + \fi + } + {\end:margp} +>>> + + +\<begin ver marginpar\><<< +\HCode{<div> + \add:description{begin-end}{<PROS PITCH="-15">\a:speak:marginpar + </PROS>}</div><div>}% +>>> + +\<end ver marginpar\><<< +\HCode{</div><div> + \add:description{begin-end}{\b:speak:marginpar}</div>}% +>>> + + +\<begin hor marginpar\><<< +\HCode{\add:description{begin-end}{<PROS pitch="-15">\a:speak:marginpar + </PROS>}}% +>>> + +\<end hor marginpar\><<< +\HCode{\add:description{begin-end}{\b:speak:marginpar}}% +>>> + + + +\<configure jsml latex\><<< +\NewConfigure{speak:marginpar}{2} +\Configure{speak:marginpar} + {<BREAK SIZE="small"/>margin note<BREAK SIZE="small"/>} + {} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%% + + +\<configure jsml latex\><<< +|<latex footnotes|> +>>> + +\<latex footnotes\><<< +\Configure{footnote-mark} + {\HCode{<SENT><span class="footnote-mark"><PROS + PITCH="+30" >}|<begin footnote note|>} + {|<end footnote note|>\HCode{</PROS><BREAK SIZE="small"/></span></SENT>}} +>>> + + + +\<begin footnote note\><<< +\HCode{\add:description{added-description}{<PROS + pitch="-15">\a:speak:footnote</PROS>}}% +>>> + + +\<end footnote note\><<< +\HCode{}% +>>> + + +\<latex footnotes\><<< +\NewConfigure{speak:footnote}{1} +\Configure{speak:footnote} + { <BREAK SIZE="small"/>footnote<BREAK SIZE="small"/>} +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Lists} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Shared} +%%%%%%%%%%%%% + + + + +\<configure jsml latex\><<< +|<latex lists|> +>>> + +\<latex lists\><<< +\ConfigureList{trivlist}% + {\EndP\HCode{<dl \a:LRdir class="trivlist">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="trivlist">}\bgroup \bf} + {\egroup\HCode{</dt><dd\Hnewline class="trivlist">}} +>>> + +\<latex lists\><<< +\ConfigureList{list}% + {\EndP\HCode{<dl \a:LRdir class="list\expandafter\the + \csname @listdepth\endcsname">}% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd></dl>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\Tg</dd>}\HCode{<dt + class="list">}\bgroup \bf} + {\egroup\HCode{</dt><dd\Hnewline class="list">}} +>>> + +%%%%%%%%%%%%% +\subsection{Itemized} +%%%%%%%%%%%%% + + + +\<latex lists\><<< +\ConfigureList{itemize}% + {\EndP\HCode{<ul + \a:LRdir class="ul-itemize\expandafter\the + \csname @itemdepth\endcsname"><PROS PITCH="+15">}% + |<begin itemize note|>% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\ifvmode \IgnorePar\fi + \EndP \HCode{</li>}|<end itemize note|>% + \HCode{</PROS></ul>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\HCode{</li>}}% + \HCode{<li class="li-itemize">}|<itemize item|>\DeleteMark + } + {\HCode{}} +>>> + +\<begin itemize note\><<< +\HCode{<div class="itemize">% + <div class="added-list-description">% + \add:description{added-description}{\a:speak:itemize}</div>}% +>>> + +\<end itemize note\><<< +\HCode{<div class="added-list-description">% + \add:description{added-description}{\b:speak:itemize}</div></div>}% +>>> + +\<itemize item\><<< +\HCode{<span class="added-list-description">% + \add:description{added-description}{\c:speak:itemize}</span>}% +>>> + + + +\<latex lists\><<< +\NewConfigure{speak:itemize}{3} +\Configure{speak:itemize} + {<BREAK SIZE="small"/>begin \ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi + list} + {<BREAK SIZE="small"/>end \ifcase\csname @listdepth\endcsname + \or sub \or sub sub \or sub sub sub \else\fi + list<BREAK SIZE="small"/>} + {<BREAK SIZE="medium"/><PROS PITCH="-5">|%\ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi|% + item</PROS><BREAK SIZE="small"/>} +>>> + + + + + + +%%%%%%%%%%%%% +\subsection{Enumerate} +%%%%%%%%%%%%% + + + + +\<latex lists\><<< +\ConfigureList{enumerate}% + {|<enumerate I|>} + {|<enumerate II|>} + {|<enumerate III|>} + {|<enumerate IV|>} +>>> + + +\<enumerate I\><<< +\EndP \HCode{<ol \a:enumerate:\space + class="ol-enumerate\expandafter\the\csname @enumdepth\endcsname" + \a:LRdir + ><PROS PITCH="+15">}% +|<begin enumerate note|>% +|<save end:itm|>\global\let\end:itm=\empty +>>> + +\<enumerate II\><<< +|<recall end:itm|>% +\EndP \HCode{</li>}% +|<end enumerate note|>% +\HCode{</PROS></ol>}\ShowPar +>>> + + +\<enumerate III\><<< +\end:itm \gdef\end:itm{\EndP\HCode{</li>}}% +\HCode{<li class="li-enumerate" \Hnewline><SENT><span + class="ol-mark"><BREAK + SIZE="medium"/><PROS PITCH="-5" >}|<enumerate item|>%\DeleteMark +>>> + +\<enumerate IV\><<< +\HCode{</PROS><BREAK SIZE="small"/></span></SENT>}%\AnchorLabel +>>> + + + +\<save end:itm\><<< +\PushMacro\end:itm +>>> + + +\<recall end:itm\><<< +\PopMacro\end:itm \global\let\end:itm \end:itm +>>> + + + + +\<begin enumerate note\><<< +\HCode{<div class="enumerate">% + <div class="added-list-description">% + \add:description{added-description}{\a:speak:enumerate}</div>}% +>>> + + +\<end enumerate note\><<< +\HCode{<div class="added-list-description">% + \add:description{added-description}{\b:speak:enumerate}</div></div>}% +>>> + +\<enumerate item\><<< +\HCode{<span class="added-list-description">% + \add:description{added-description}{\c:speak:enumerate}</span>}% +>>> + + + +\<roman enumeiii\><<< +\Configure{enumiii} + {\HCode{<span class="roman-numeral">}% + Roman numeral \HCode{}\the\c@enumiii + \HCode{}\:gobbleII} + {\HCode{</span>}} +\long\def\:tempc{(\theenumii)} +\ifx \labelenumii\:tempc + \def\:tempc{(\HCode{}\theenumii\HCode{})} + \HLet\labelenumii\:tempc +\fi +>>> + + + +\<latex lists\><<< +\NewConfigure{speak:enumerate}{3} +\Configure{speak:enumerate} + {<BREAK SIZE="small"/>begin \ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi + list} + {<BREAK SIZE="small"/>end \ifcase\csname @listdepth\endcsname + \or sub \or sub sub \or sub sub sub \else\fi + list<BREAK SIZE="small"/>} + {|%\ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi|% + item <BREAK SIZE="small"/>} +>>> + +%%%%%%%%%%%%% +\subsection{Description} +%%%%%%%%%%%%% + + +\<description lists\><<< +\ConfigureList{description}% + {\EndP + \HCode{<dl \a:LRdir class="dl-description"><PROS PITCH="+15">}% + |<begin description note|>% + |<save end:itm|>\global\let\end:itm=\empty} + {|<recall end:itm|>\EndP\HCode{</dd>}% + |<end description note|>% + \HCode{</PROS></dl>}% + \ShowPar} + {\end:itm \global\def\end:itm{\EndP\HCode{</dd>}}\HCode{<SENT><span><dt + class="dt-description"><EMP + LEVEL="moderate">}|<description item|>\bgroup \bf} + {\egroup\EndP\HCode{</EMP><BREAK + SIZE="small"/></dt></span></SENT><dd\Hnewline class="dd-description">}} +>>> + + + + + + + +\<begin description note\><<< +\HCode{<div class="description">% + <div class="added-list-description">% + \add:description{added-description}{\a:speak:description}</div>}% +>>> + + +\<end description note\><<< +\HCode{<div class="added-list-description">% + \add:description{added-description}{\b:speak:description}</div></div>}% +>>> + +\<description item\><<< +\HCode{<span class="added-list-description">% + \add:description{added-description}{\c:speak:description}% + </span>}% +>>> + + +\<configure jsml-math tex4ht\><<< +\NewConfigure{speak:description}{3} +\Configure{speak:description} + {<BREAK SIZE="small"/>begin \ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi + list} + {<BREAK SIZE="small"/>end \ifcase\csname @listdepth\endcsname + \or sub \or sub sub \or sub sub sub \else\fi + list<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>|%\ifcase\csname @listdepth\endcsname + \or \or sub \or sub sub \or sub sub sub \else\fi|% + item} +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Verbatim} +%%%%%%%%%%%%%%%%%% + +\<configure jsml latex\><<< +\Configure{verbatim} + {\HAdvance\Verb:N by 1 \ifnum \Verb:N>1 + \:nbsp \HCode{<br />}\fi} + {\a:sp} +\def\env:verb#1{\ifinner\else \vfill\break\fi + \IgnorePar\EndP \HAssign\Verb:N=0 + \HCode{<PARA><div class="#1"\a:LRdir>% + \add:description{added-description}{begin verbatim}% + <PROS \a:verbatim::style >}\EndNoFonts} +\def\endenv:verb{\NoFonts + \EndP \ht:special{t4ht=</PROS>% + \add:description{added-description}{end verbatim}% + </div></PARA>}|<try inline par|>} +\NewConfigure{verbatim::style}{1} +\Configure{verbatim::style}{RATE="150" PITCH="-10" RANGE="0"} +>>> + + +\<configure jsml latex\><<< +\Configure{verb} + {\HCode{<SENT><span class="verb"\a:LRdir><PROS \a:verbatim::style >}} + {\HCode{</PROS></span></SENT>}} +>>> + + + + +% %%%%%%%%%%%%%%%%%% +% \section{Verbatim} +% %%%%%%%%%%%%%%%%%% +% +% +% \<configure jsml latex\><<< +% \Configure{verbatim} {} {\a:sp} +% \def\env:verb#1{\ifinner\else \vfill\break\fi +% \IgnorePar\EndP \HAssign\Verb:N=0 +% \HCode{\add:description{added-description}{begin verbatim}% +% <pre class="#1"\a:LRdir>}\EndNoFonts} +% \def\endenv:verb{\NoFonts +% \EndP \ht:special{t4ht=</pre>}% +% \add:description{added-description}{end verbatim}% +% |<try inline par|>} +% \def\start:fenv#1{\:xhtml{\IgnorePar +% \EndP}\HCode{<div align="#1"\Hnewline\a:LRdir>}} +% \def\end:fenv{\IgnorePar\HCode{</div>}\IgnorePar} +% >>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Figures} +%%%%%%%%%%%%%%%%%% + + +\<config book-report-article\><<< +|<config captions|> +>>> + +\<configure jsml aa\><<< +|<config captions|> +>>> + +\<ams art,proc,book\><<< +|<config captions|> +>>> + + + + + +\<configure jsml latex\><<< +\ConfigureEnv{figure} + {\IgnorePar\EndP + \HCode{<PARA><div class="figure"\Hnewline>|<begin figure note|>}% + \bgroup \Configure{float}{\ShowPar}{}{}% + } + {\egroup + \IgnorePar\EndP\HCode{|<end figure note|></div></PARA>}% + |<try env inline par|>\par} + {}{} +>>> + + +\<config captions\><<< +\Configure{caption} + {\IgnorePar\EndP + \HCode{<PARA><div class="caption"><SENT><span class="mark">% + <BREAK SIZE="small"/><EMP + LEVEL="medium">}|<caption of fig|>} + {: \HCode{</EMP><BREAK SIZE="small"/>}} + {|<end caption|>\HCode{</span></SENT>% + <SENT><span \Hnewline class="content">% + \add:description{added-description}{\a:speak:caption}}} + {\HCode{\add:description{added-description}{\b:speak:caption}% + </span></SENT></div></PARA>}|<caption label comment|>} +>>> + + +\<begin figure note\><<< +<div>\add:description{begin-end}{\a:speak:figure}</div>% +>>> + + +\<end figure note\><<< +<div>\add:description{begin-end}{\b:speak:figure}</div>% +>>> + +\<caption of fig\><<< +\HCode{\add:description{added-description}{\c:speak:caption}}% +>>> + +\<end caption\><<< +>>> + +\<configure jsml latex\><<< +\NewConfigure{speak:caption}{3} +\Configure{speak:caption} + {} + {} + {caption of} +\NewConfigure{speak:figure}{2} +\Configure{speak:figure} + {<BREAK + SIZE="small"/><PROS PITCH="-15" >begin figure</PROS>} + {<BREAK + SIZE="small"/><PROS PITCH="-15" >end figure</PROS>} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Quote} +%%%%%%%%%%%%%%%%%% + + +\<config book-report-article\><<< +|<quote config|> +>>> + + +\<configure html4 letter\><<< +|<quote config|> +>>> + +\<quote config\><<< +\ConfigureEnv{quote} + {}{} + {\IgnorePar\EndP + \HCode{<PARA><div class="quote"><PROS + PITCH="-10" >}} + {\IgnorePar\EndP + \HCode{</PROS></div></PARA>}\ShowPar\ShowIndent} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Fonts} +%%%%%%%%%%%%%%%%%% + +\<configure jsml tex4ht\><<< +\Configure{htf}{0}{+}{}{}{}{}{}{}{} +>>> + + + + +\<configure jsml latex\><<< +\Configure{texttt} + {\Protect\HCode{<SENT><span class="texttt"><PROS + \a:verbatim::style}} + {\Protect\HCode{</PROS></span></SENT>}} +\Configure{emph} + {\Protect\HCode{<SENT><span class="emph"><EMP + LEVEL="moderate">}} + {\Protect\HCode{</EMP></span></SENT>}} +\Configure{textbf} + {\Protect\HCode{<span class="textbf"><EMP + LEVEL="strong">}} + {\Protect\HCode{</EMP></span>}} +>>> + + +\<\><<< +\Configure{textit}{\Protect\HCode{<span class="textit">}} + {\Protect\HCode{</span>}} +\Configure{textrm}{\Protect\HCode{<span class="textrm">}} + {\Protect\HCode{</span>}} +\Configure{textup}{\Protect\HCode{<span class="textup">}} + {\Protect\HCode{</span>}} +\Configure{textsc}{\Protect\HCode{<span class="textsc">}} + {\Protect\HCode{</span>}} +\Configure{textsf}{\Protect\HCode{<span class="textsf">}} + {\Protect\HCode{</span>}} +\Configure{textsl}{\Protect\HCode{<span class="textsl">}} + {\Protect\HCode{</span>}} +>>> + + + +%%%%%%%%%%%%%%%%%% +\part{Math} +%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% +\section{Math Delimiters} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Full Expressions} +%%%%%%%%%%%%% + + + + +\<configure jsml-math tex4ht\><<< +\Configure{DviMath} + {\a:DviMathSpk \mathmltrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule \HCode{<!--l. + \the\inputlineno-->}\a:math + |<sv dvimath par|>\IgnorePar} + {\EndIgnoreRule + \mathmlfalse \b:DviMathSpk |<recall dvimath par|>} +\NewConfigure{DviMathSpk}{2} +>>> + + + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +\<recall dvimath par\><<< +\sv:ignore +>>> + + + +\<configure jsml-math tex4ht\><<< +\Configure{math}{} +\Configure{$} + {|<conf inline math|>\DviMath} + {\EndDviMath}{} +\Configure{$$} + {|<conf display math|>\DviMath} + {\EndDviMath + \ShowPar\par{\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +>>> + + +\<configure jsml-math latex\><<< +\Configure{[]} + {|<conf display math|>\DviMath $$\DisplayMathtrue } + {$$\EndDviMath} +\Configure{()} + {|<conf inline math|>\DviMath $} + {$\EndDviMath} +>>> + + +\<conf inline math\><<< +\Configure{DviMathSpk} + {\HCode{<span class="inline-math">% + \add:description{begin-math}{\a:speak:math}}} + {\HCode{\add:description{end-math}{\b:speak:math}</span>}}% +>>> + + +\<conf display math\><<< +\Configure{@math}{div}\IgnorePar + |<inline end-par comment|>\EndP + \Configure{DviMathSpk} + {\HCode{<div class="display-math">% + \add:description{begin-math}{\a:speak:math}}} + {\HCode{\add:description{end-math}{\b:speak:math}</div>}}% +>>> + + +\<configure jsml-math tex4ht\><<< +\NewConfigure{speak:math}{2} +\Configure{speak:math} + {%<BREAK SIZE="small"/><PROS PITCH="-5" >math</PROS> + <BREAK SIZE="small"/>} + {%<BREAK SIZE="small"/><PROS PITCH="-5" >end math</PROS> + <BREAK SIZE="small"/>} +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\chapter{Over and Under} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%% +\section{Subscrips and Superscripts (sub and super)} +%%%%%%%%%%%%% + +\<configure jsml-math tex4ht\><<< +|<sub, sup, subsup|> +|<limits sub, sup, subsup|> +>>> + +\<sub, sup, subsup\><<< +\Configure{SUB} + {\Send{BACK} + {|<start msub base|>}|<msub sub|>} + {|<close msub|>} +\Configure{SUP} + {\Send{BACK} + {|<start msup base|>}|<msup super|>} + {|<close msup|>} +\Configure{SUBSUP} + {\Send{BACK} + {|<start msubsup base|>}|<msubsup sub|>} + {|<msubsup sup|>} + {|<close msubsup|>} +>>> + + + +\<start msup base\><<< +<msup><mrow class="mrow-base"\Hnewline>% +>>> + +\<msup super\><<< +\HCode{</mrow><mrow class="mrow-super"\Hnewline + >\add:description{begin-script}{\b:speak:subsup}% + <PROS PITCH="+10">}\trap:base +>>> + +\<close msup\><<< +\HCode{</PROS>\add:description{end-script}{\c:speak:subsup}% + </mrow></msup\Hnewline>}% +>>> + + + +\<start msub base\><<< +<msub><mrow class="mrow-base"\Hnewline>% +>>> + + + +\<msub sub\><<< +\HCode{</mrow><mrow class="mrow-sub"\Hnewline + >\add:description{begin-script}{\a:speak:subsup}% + <PROS PITCH="-10">}\trap:base +>>> + +\<close msub\><<< +\HCode{</PROS>\add:description{end-script}{\c:speak:subsup}% + </mrow></msub\Hnewline>}% +>>> + +% +% + +\<start msubsup base\><<< +<msubsup><mrow class="mrow-base"\Hnewline>% +>>> + +\<msubsup sub\><<< +\HCode{</mrow><mrow class="mrow-sub"\Hnewline + >\add:description{begin-script}{\a:speak:subsup}% + <PROS PITCH="-10">}\trap:base +>>> + + +\<msubsup sup\><<< +\HCode{</PROS></mrow><mrow class="mrow-super"\Hnewline + >\add:description{mid-script}{\b:speak:subsup}% + <PROS PITCH="+10">}\trap:base +>>> + + +\<close msubsup\><<< +\HCode{</PROS>\add:description{end-script}{\c:speak:subsup}% + </mrow></msubsup\Hnewline>}% +>>> + +\<configure jsml-math tex4ht\><<< +\NewConfigure{speak:subsup}{3} +\Configure{speak:subsup} + {<PROS PITCH="-5"><BREAK SIZE="small"/> + <span class="scripts-extra"> subscript </span> + <BREAK SIZE="small"/></PROS>} + {<PROS PITCH="+5"><BREAK SIZE="small"/> + <span class="scripts-extra"> superscript </span> + <BREAK SIZE="small"/></PROS>} + {<PROS PITCH="-5"><BREAK SIZE="medium"/> + <span class="scripts-extra"> baseline </span> + <BREAK SIZE="small"/></PROS>} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Delimiters} +%%%%%%%%%%%%%%%%%% + +\<plain,fontmath math\><<< +\Configure{MathClass}{1}{*}{<mo\Hnewline + class="MathClass-op"><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></mo>}{} +\Configure{MathClass}{2}{*}{<mo\Hnewline + class="MathClass-bin"><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></mo>}{} +\Configure{MathClass}{3}{*}{<mo\Hnewline + class="MathClass-rel"><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></mo>}{} +\:CheckOption{mathml-} \if:Option + \Configure{MathClass}{4}{*}{<mo\Hnewline + class="MathClass-open">} + {</mo><BREAK SIZE="small"/>}{} + \Configure{MathClass}{5}{*}{<BREAK SIZE="small"/>% + <mo\Hnewline + class="MathClass-close">} + {</mo>}{} +\else + \Configure{MathClass}{4}{*}{<mfenced><mo\Hnewline + class="MathClass-open">} + {</mo><mrow><BREAK SIZE="small"/>}{} + \Configure{MathClass}{5}{*}{<BREAK SIZE="small"/>% + </mrow><mo\Hnewline + class="MathClass-close">} + {</mo></mfenced>}{} +\fi +>>> + + +\<plain,fontmath math\><<< +\def\sin{\mathop {\operator@font sine}\nolimits} +\def\cos{\mathop {\operator@font cosine}\nolimits} +\def\lim{\mathop {\operator@font limit}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Fractions and Stacks} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Regular Ones} +%%%%%%%%%%%%% + + + +\<configure jsml-math tex4ht\><<< +\Configure{over} + {\Send{GROUP}{0}{|<start mfrac|>}|<end frac numerator|>} + {|<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>}} +\Configure{atop} + {\Send{GROUP}{0}{|<start atop|>}|<end atop over|>} + {|<start atop under|>\Send{EndGROUP}{0}{|<end atop|>}} +\Configure{above} + {\Send{GROUP}{0}{|<start above|>}% + |<end above over|>\o:over:\:gobbleII} + {|<start above under|>\Send{EndGROUP}{0}{|<end above|>}} +>>> + +\<configure jsml-math latex\><<< +|<plain,latex mathml|> +|<mathml latex|> +>>> + +\<mathml latex\><<< +\Configure{frac} + {\HCode{|<start mfrac|>}} + {|<end frac numerator|>\Configure{over}{}{}} + {|<frac enumerator|>} + {\HCode{|<end mfrac|>}} +>>> + + + +\<configure jsml-math amsmath\><<< +\Configure{above} + {\Send{GROUP}{0}{|<start above|>}% + |<end above over|>\o:@@over:\:gobbleII} + {|<start above under|>\Send{EndGROUP}{0}{|<end above|>}} +>>> + + +\<plain,latex mathml\><<< +\Configure{choose} + {\Send{GROUP}{0}{<mover class="choose">% + \add:description{begin-stack}{\a:speak:choose}% + <mrow class="mrow-upper">}% + \HCode{</mrow>}\o:atop: + \HCode{\add:description{added-description}% + {\c:speak:choose}<mrow class="mrow-under">}% + \Send{EndGROUP}{0}% + {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}% + } +>>> + + + +\<plain,latex mathml\><<< +\NewConfigure{speak:choose}{3} +\Configure{speak:choose} + {<BREAK SIZE="small"/>binomial coefficient<BREAK SIZE="small"/>} + {<BREAK SIZE="medium"/>} + {<BREAK SIZE="small"/>choose<BREAK SIZE="small"/>} +>>> + + +\<configure jsml-math amsmath\><<< +\Configure{tbinom} + {\Send{GROUP}{0}{<mover class="tbinom">% + \add:description{begin-stack}{\a:speak:choose}% + <mrow class="mrow-upper">}% + \HCode{</mrow>}\o:@@abovewithdelims: ..\z@{}% + \HCode{\add:description{added-description}% + {\c:speak:choose}<mrow class="mrow-under">}% + \Send{EndGROUP}{0}% + {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}% + } +>>> + +\<configure jsml-math amsmath\><<< +\Configure{dbinom} + {\Send{GROUP}{0}{<mover class="dbinom">% + \add:description{begin-stack}{\a:speak:choose}% + <mrow class="mrow-upper">}% + \HCode{</mrow>}\o:@@abovewithdelims: ..\z@{}% + \HCode{\add:description{added-description}{\c:speak:choose}<mrow class="mrow-under">}% + \Send{EndGROUP}{0}% + {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}% + } +>>> + + + + +\<configure jsml-math amsmath\><<< +\Configure{binom} + {\Send{GROUP}{0}{<mover class="binom">% + \add:description{begin-stack}{\a:speak:choose}% + <mrow class="mrow-upper">}% + \HCode{</mrow>}\o:@@abovewithdelims: ..\z@{}% + \HCode{\add:description{added-description}{\c:speak:choose}<mrow class="mrow-under">}% + \Send{EndGROUP}{0}% + {</mrow>\add:description{end-stack}{\b:speak:choose}</mover>}% + } +>>> + +%%%%%%%%%%%%% +\subsection{With Delimiters} +%%%%%%%%%%%%% + + + + + +\<configure jsml-math tex4ht\><<< +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|<start above|>}% + |<end above over|>\o:over: + |<start above under|>\Send{EndGROUP}{0}{|<end above|>} + \else + \Send{GROUP}{0}% + {<mo class="mfenced-open">|<lr del 2|></mo>% + |<start above|>}% + |<end above over|>\o:over: + |<start above under|>\Send{EndGROUP}{0}{|<end above|>% + <mo class="mfenced-close">|<lr del 3|></mo>} + \fi + \tmp:dim + } +>>> + + + +\<configure jsml-math tex4ht\><<< +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|<start atop|>}% + |<end atop over|>\o:atop: + |<start atop under|>\Send{EndGROUP}{0}{|<end atop|>} + \else + \Send{GROUP}{0}% + {<mo class="mfenced-open">|<lr del 2|></mo>% + |<start atop|>}% + |<end atop over|>\o:atop: + |<start atop under|>% + \Send{EndGROUP}{0}{|<end atop|>% + <mo class="mfenced-close">|<lr del 3|></mo>} + \fi + } +>>> + +\<configure jsml-math tex4ht\><<< +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|<start mfrac|>}|<end frac numerator|>\o:over: + |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>} + \else + \Send{GROUP}{0}% + {<mo class="mfenced-open">|<lr del 2|></mo>% + |<start mfrac|>}% + |<end frac numerator|>\o:over: + |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>% + <mo class="mfenced-close">|<lr del 3|></mo>} + \fi + } +>>> + + + +\<configure jsml-math amsmath\><<< +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|<start above|>}% + |<end above over|>\o:@@over: + |<start above under|>\Send{EndGROUP}{0}{|<end above|>} + \else + \Send{GROUP}{0}% + {<mo class="mfenced-open">|<lr del 2|></mo>% + |<start above|>}% + |<end above over|>\o:@@over: + |<start above under|>\Send{EndGROUP}{0}{|<end above|>% + <mo class="mfenced-close">|<lr del 3|></mo>} + \fi + \tmp:dim + } +>>> + + +\<configure jsml-math amsmath\><<< +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|<start atop|>}% + |<end atop over|>\o:@@atop: + |<start atop under|>\Send{EndGROUP}{0}{|<end atop|>} + \else + \Send{GROUP}{0}% + {<mo class="mfenced-open">|<lr del 2|></mo>% + |<start atop|>}% + |<end atop over|>\o:@@atop: + |<start atop under|>\Send{EndGROUP}{0}{|<end atop|>% + <mo class="mfenced-close">|<lr del 3|></mo>} + \fi + } +>>> + + + +\<configure jsml-math amsmath\><<< +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{|<start mfrac|>}% + |<end frac numerator|>\o:over: + |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>} + \else + \Send{GROUP}{0}% + {<mo class="mfenced-open">|<lr del 2|></mo>% + |<start mfrac|>}% + |<end frac numerator|>\o:@@over: + |<frac enumerator|>\Send{EndGROUP}{0}{|<end mfrac|>% + <mo class="mfenced-close">|<lr del 3|></mo>} + \fi + } +>>> + + + +%%%%%%%%%%%%% +\subsection{Code Assignments} +%%%%%%%%%%%%% + + + +\<start mfrac\><<< +<mfrac>\add:description{begin-end}{\a:speak:fraction}% +<mrow class="mrow-numerator"\Hnewline>% +>>> + + +\<end frac numerator\><<< +\HCode{</mrow>}% +>>> + + + +\<frac enumerator\><<< +\HCode{\add:description{begin-end}{\c:speak:fraction} + <mrow class="mrow-enumerator"\Hnewline>}% +>>> + +\<end mfrac\><<< +</mrow>\add:description{begin-end}{\b:speak:fraction}</mfrac>% +>>> + + +\<start atop\><<< +<mover class="atop">% +\add:description{begin-stack}{\a:speak:atop}% +<mrow class="mrow-upper">% +>>> + + + + +\<end atop over\><<< +\HCode{</mrow>}% +>>> + + +\<start atop under\><<< +\HCode{\add:description{added-description}{\c:speak:atop}<mrow class="mrow-under">}% +>>> + + +\<end atop\><<< +</mrow>\add:description{end-stack}{\b:speak:atop}</mover>% +>>> + + + + +\<start above\><<< +|<start mfrac|>% +>>> + + +\<end above over\><<< +|<end frac numerator|>% +>>> + + +\<start above under\><<< +|<frac enumerator|>% +>>> + +\<end above\><<< +|<end mfrac|>% +>>> + + + + + +\<configure jsml-math tex4ht\><<< +\NewConfigure{speak:fraction}{3} +\Configure{speak:fraction} + {<BREAK SIZE="small"/><level prefix="begin" + continued="begin continued fraction">begin + fraction</level><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/><level prefix="end" + continued="end continued fraction">end + fraction</level><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/><level prefix="over">% + over</level><BREAK SIZE="small"/>} +>>> + + + + +\<configure jsml-math tex4ht\><<< +\NewConfigure{speak:atop}{3} +\Configure{speak:atop} + {<BREAK SIZE="small"/>begin stack<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end stack<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>over<BREAK SIZE="small"/>} +>>> + + + +%%%%%%%%%%%%% +\subsection{Delimiters} +%%%%%%%%%%%%% + + + +\<lr del 1\><<< +\expandafter +\ifx \csname \string#1:lr del\endcsname\relax #1\else + \csname \string#1:lr del\endcsname\fi +>>> + +\<lr del 2\><<< +\expandafter +\ifx \csname \string#2:lr del\endcsname\relax #2\else + \csname \string#2:lr del\endcsname\fi +>>> + + +\<lr del 3\><<< +\expandafter +\ifx \csname \string#3:lr del\endcsname\relax #3\else + \csname \string#3:lr del\endcsname\fi +>>> + + +The following cases in mathml are translated directly +to explicit caharacters and so donn't get there the +speech interpretation provided in unicode.4hf. + +\<plain,latex mathml\><<< +\Configure{mfenced}{\vert}{\string&\#x007C;} +\Configure{mfenced}{\{}{\string&\#x007B;} +\Configure{mfenced}{\}}{\string&\#x007D;} +\Configure{mfenced}{\lbrace}{\string&\#x007B;} +\Configure{mfenced}{\rbrace}{\string&\#x007D;} +\Configure{mfenced}{\rgroup}{\string&\#x0028;} +\Configure{mfenced}{\lgroup}{\string&\#x0029;} +\Configure{mfenced}{(}{\string&\#x0028;} +\Configure{mfenced}{)}{\string&\#x0029;} +\Configure{mfenced}{[}{\string&\#x0058;} +\Configure{mfenced}{]}{\string&\#x0059;} +\Configure{mfenced}{||}{\string&\#x007C;} +\Configure{mfenced}{\bracevert}{\string&\#x007C;} +\Configure{mfenced}{\bracevert}{\string&\#x007C;} +>>> + + +%%%%%%%%%%%%% +\section{Lines and Braces (With ...)} +%%%%%%%%%%%%% + + +\<configure jsml-math latex\><<< +\Configure{overline} + {\bgroup\ifmathml |<mathml overline|>\else + \HCode{<mover class="overline">}\fi} + {\ifmathml |<end mathml overline|>\else + \HCode{</mover>}\fi\egroup} +\Configure{underline} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>% + \HCode{<mover class="underline">}\fi} + {\ifmathml |<end mathml underline|>\else + \HCode{</mover>}\fi \egroup} +>>> + +\<mathml overline\><<< +\HCode{<mover class="mover-overline"\Hnewline>% + \add:description{begin-end}{\b:speak:modified}% + <mrow class="mo-00AF">}% +>>> + +\<end mathml overline\><<< +\HCode{</mrow>% + \add:description{begin-end}{\a:speak:modified:line}% + </mover>}% +>>> + +\<mathml underline\><<< +\HCode{<munder class="munder-underline">% + \add:description{begin-end}{\a:speak:modified}% + <mrow class="mo-0332"><BREAK SIZE="small"/>}% +>>> + +\<end mathml underline\><<< +\HCode{<BREAK SIZE="small"/></mrow>% + \add:description{begin-end}{\a:speak:modified:line}% + </munder>}% +>>> + +\<nomath underline\><<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + + +\<plain,fontmath math\><<< +\Configure{overbrace} + {\Configure{mathop*}{*} + {<mover class="mover-overline">% + \add:description{begin-end}{\b:speak:modified}% + <mrow class="mo-FE37">} + {</mrow>\add:description{begin-end}{\a:speak:modified:brace}% + </mover>} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:overbrace:=\displaystyle} + {} +\Configure{underbrace} + {\Configure{mathop*}{*} + {<munder class="munder-underline">% + \add:description{begin-end}{\a:speak:modified}% + <mrow class="mo-FE38">} + {</mrow>\add:description{begin-end}{\a:speak:modified:brace}% + </munder>} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:underbrace:=\displaystyle} + {} +>>> + + + + + + + +\<config mathml accents\><<< +\Configure{accent}\widetilde\widetilde{{}{}} + {} + {\HCode{<mover class="mover-tilde">% + \add:description{begin-end}{\b:speak:modified}% + <mrow class="mo-0303"\Hnewline>}% + #2% + \HCode{</mrow>\add:description{begin-end}{\a:speak:modified:tilde}% + </mover>}} +\Configure{accent}\widehat\widehat{{}{}} + {} + {\HCode{<mover class="mover-hat">% + \add:description{begin-end}{\a:speak:modified}% + <mrow class="mo-0302"\Hnewline>}% + #2% + \HCode{</mrow>\add:description{begin-end}{ + \a:speak:modified:hat}</mover>}} |%circumflex|% +>>> + + +\<configure jsml-math latex\><<< +\NewConfigure{speak:modified}{2} +\Configure{speak:modified} + {<BREAK SIZE="small"/>modified + under<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>modified + above<BREAK SIZE="small"/>} +\NewConfigure{speak:modified:brace}{1} +\NewConfigure{speak:modified:hat}{1} +\NewConfigure{speak:modified:line}{1} +\NewConfigure{speak:modified:tilde}{1} +\Configure{speak:modified:brace} + {<BREAK SIZE="small"/>with brace<BREAK SIZE="small"/>} +\Configure{speak:modified:hat} + {<BREAK SIZE="small"/>with wide hat<BREAK SIZE="small"/>} +\Configure{speak:modified:line} + {<BREAK SIZE="small"/>with bar<BREAK SIZE="small"/>} +\Configure{speak:modified:tilde} + {<BREAK SIZE="small"/>with wide tilde<BREAK SIZE="small"/>} +>>> + + +%%%%%%%%%%%%% +\section{Arrows (With ...)} +%%%%%%%%%%%%% + + + + +\<plain,fontmath math\><<< +\Configure{overrightarrow} + {\HCode{<mover class="mover-rightarrow">% + \add:description{begin-end}{\b:speak:modified}% + <mrow class="mo-20D5"\Hnewline>}\:gobble} + {\HCode{</mrow>% + \add:description{begin-end}{\a:speak:modified:rightarrow}% + </mover>}} +\Configure{overleftarrow} + {\HCode{<mover class="mover-leftarrow">% + \add:description{begin-end}{\b:speak:modified}% + <mrow class="mo-20D6"\Hnewline>}\:gobble} + {\HCode{</mrow>% + \add:description{begin-end}{\a:speak:modified:leftarrow}% + </mover>}} +>>> + +\<plain,fontmath math\><<< +\NewConfigure{speak:modified:leftarrow}{1} +\NewConfigure{speak:modified:leftrightarrow}{1} +\NewConfigure{speak:modified:rightarrow}{1} +\Configure{speak:modified:leftarrow} + {<BREAK SIZE="small"/>with left + right arrow<BREAK SIZE="small"/>} +\Configure{speak:modified:leftrightarrow} + {<BREAK SIZE="small"/>with left + right arrow<BREAK SIZE="small"/>} +\Configure{speak:modified:rightarrow} + {<BREAK SIZE="small"/>with + right arrow<BREAK SIZE="small"/>} +>>> + +\<configure jsml-math amsmath\><<< +\Configure{underrightarrow} + {\HCode{<munder class="munder-rightarrow">% + \add:description{begin-end}{\a:speak:modified}% + <mrow class="mo-2092"\Hnewline>}\:gobble} + {\HCode{</mrow>% + \add:description{begin-end}{\a:speak:modified:rightarrow}% + </munder>}} +\Configure{underleftarrow} + {\HCode{<munder class="munder-leftarrow">% + \add:description{begin-end}{\a:speak:modified}% + <mrow class="mo-2090"\Hnewline>}\:gobble} + {\HCode{</mrow>% + \add:description{begin-end}{speak:modified:leftarrow}% + </munder>}} +>>> + + +\<configure jsml-math amsmath\><<< +\Configure{overleftrightarrow} + {\HCode{<mover class="mover-leftrightarrow">% + \add:description{begin-end}{\b:speak:modified}% + <mrow class="mo-20E1"\Hnewline>}\:gobble} + {\HCode{</mrow>% + \add:description{begin-end}{\a:speak:modified:leftrightarrow}% + </mover>}} +\Configure{underleftrightarrow} + {\HCode{<munder class="munder-leftrightarrow">% + \add:description{begin-end}{\a:speak:modified}% + <mrow class="mo-2194"\Hnewline>}\:gobble} + {\HCode{</mrow>% + \add:description{begin-end}{\a:speak:modified:leftrightarrow}% + </munder>}} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Symbols} +%%%%%%%%%%%%%%%%%% + + +\<configure jsml-math amsmath\><<< +\def\:tempc{\HCode{<mspace width="0.2em"/>}\mathbin{mod} } +\HLet\bmod\:tempc +\def\:tempc#1{ (#1)} +\HLet\pod=\:tempc +\def\:tempc#1{\pod{\mathop{mod} #1}} +\HLet\pmod=\:tempc +\def\:tempc#1{ \mathop{mod} #1} +\HLet\mod=\:tempc +>>> + +\<configure jsml-math amsmath\><<< +\Configure{hdotsfor}{\dots} +>>> + +\<plain,latex mathml\><<< +\def\mathop:prefix#1{% + \Configure{mathop}{*}{<mo class="mo-op" + #1\Hnewline>}{</mo>}% + {\Configure{mathop}{*}{<mo class="mo-op">}{</mo>}{}}} +>>> + + +\<configure jsml-math amsopn\><<< +\def\:tempc{\mathop{\underrightarrow\lim}\displaylimits} \HLet\varinjlim\:tempc +\def\:tempc{\mathop{\underleftarrow\lim}\displaylimits} \HLet\varprojlim\:tempc +\def\:tempc{\mathop{\overline\lim}\displaylimits} \HLet\varlimsup\:tempc +\def\:tempc{\mathop{\underline\lim}\displaylimits} \HLet\varliminf\:tempc +>>> + + +\<\><<< +\HRestore\varinjlim +\HRestore\varprojlim +\HRestore\varlimsup +\HRestore\varliminf +>>> + + +\<plain,fontmath math\><<< +\def\:tempc{\HCode{\add:description{added-description}{real part + symbol capital }}\o:Re:} +\HLet\Re\:tempc +\def\:tempc{\HCode{\add:description{added-description}{real part + symbol capital }}\o:Im:} +\HLet\Im\:tempc +>>> + +%%%%%%%%%%%%%%%%%% +\section{Spaces} +%%%%%%%%%%%%%%%%%% + + + + +\<plain,latex mathml\><<< +\Configure{quad}{\HCode{|<space element|>}} +\Configure{qquad}{\HCode{|<space element|>}} +\Configure{,}{\HCode{|<tiny space element|>}} +\Configure{ }{\:nbsp} +>>> + + +\<configure jsml-math latex\><<< +\Configure{hspace}{ }{}{ } +>>> + + +\<configure jsml-math amsmath\><<< +\Configure{tmspace} + {\HCode{|<space element|>}} +>>> + +\<plain,latex mathml\><<< +\def\:nbsp{\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x} +>>> + + + +\<configure jsml frenchb\><<< +\Configure{frenchb-nbsp} + {\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x% + \setbox\tmp:bx=\hbox\bgroup} + {\egroup} +>>> + +\<space element\><<< +<span class="space"><BREAK SIZE="small"/></span>% +>>> + + +\<tiny space element\><<< +<span class="tiny-space"><BREAK SIZE="small"/></span>% +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Radicals} +%%%%%%%%%%%%%%%%%% + + + +\<configure jsml-math tex4ht\><<< +\Configure{radical} + {\HCode{<msqrt>% + \add:description{begin-root}{\a:speak:radical}}% + \special{t4ht\string~!e<<mrow class="root-base">}% + \special{t4ht\string~!e></mrow>% + \add:description{end-root}{\b:speak:radical}</msqrt>}% + \special{t4ht\string~!ee/}% + \special{t4ht\string~!ese-}% + } +>>> + +\<configure jsml-math tex4ht\><<< +\NewConfigure{speak:radical}{2} +\Configure{speak:radical} + {<BREAK SIZE="small"/><level prefix="begin">begin + root</level><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/><level prefix="end">end + root</level><BREAK SIZE="small"/>} +>>> + + + + + +\<plain,latex mathml\><<< +\Configure{root} + {\HCode{<mroot>% + \add:description{begin-root}{\a:speak:root}% + <mrow class="root-index">}} + {\HCode{</mrow>\add:description{mid-root}{\b:speak:root}% + <mrow class="root-base">}} + {\HCode{</mrow>\add:description{end-root}{\c:speak:root}</mroot>}} +>>> + + +\<plain,latex mathml\><<< +\NewConfigure{speak:root}{3} +\Configure{speak:root} + {<BREAK SIZE="medium"/><level prefix="root">root + index</level><BREAK SIZE="medium"/>} + {<BREAK SIZE="medium"/><level prefix="begin">begin + root</level><BREAK SIZE="medium"/>} + {<BREAK SIZE="medium"/><level prefix="end">end + root</level><BREAK SIZE="medium"/>} +>>> + + + + + +%%%%%%%%%%%%% +\section{Left and Right} +%%%%%%%%%%%%% + + +\<plain,latex mathml\><<< +\Configure{left} + {} + {\HCode{|<lr del 1|>}\bgroup + \HCode{<mrow>}\bgroup} +\Configure{right} + {\egroup\HCode{</mrow>}\egroup + \HCode{|<lr del 1|>}} + {} +>>> + + + + +\<plain,fontmath math\><<< +\Configure{big} + {}{} + {} + {} +\Configure{Big} + {}{} + {} + {} +\Configure{bigg} + {}{} + {} + {} +\Configure{Bigg} + {}{} + {} + {} +>>> + + + + + + + +\<plain,fontmath math\><<< +|<big common|> +\:CheckOption{mathml-} \if:Option + |<big mathml-|> +\else + |<big mathml|> +\fi +>>> + +\<big mathml\><<< +\Configure{Biggl} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="Biggl"><span class="MathClass-open" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span><span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Biggr} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathclose}{*} + {</span><span class="MathClass-close" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{Bigl} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="Bigl"><span class="MathClass-open"><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span><span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Bigr} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathclose}{*} + {</span><span class="MathClass-close" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{biggl} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="biggl"><span class="MathClass-open"><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span><span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{biggr} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathclose}{*} + {</span><span class="MathClass-close" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{bigl} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="bigl"><span class="MathClass-open"><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span><span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{bigr} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathclose}{*} + {</span><span class="MathClass-close" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +>>> + + + + +\<big mathml-\><<< +\Configure{Biggl} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="MathClass-open" title="Bigg" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Biggr} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathclose}{*} + {<span class="MathClass-close" title="Bigg" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{Bigl} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="MathClass-open" title="Big" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Bigr} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathclose}{*} + {<span class="MathClass-close" title="Big" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{biggl} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="MathClass-open" title="bigg" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{biggr} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathclose}{*} + {<span class="MathClass-close" title="bigg" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{bigl} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathopen}{*} + {<span class="MathClass-open" title="big" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{bigr} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathclose}{*} + {<span class="MathClass-close" title="big" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +>>> + + + +\<big common\><<< +\Configure{Biggm} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathrel}{*} + {<span class="MathClass-rel" title="Bigg" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{Bigm} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathrel}{*} + {<span class="MathClass-rel" title="Big" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{biggm} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathrel}{*} + {<span class="MathClass-rel" title="bigg" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{bigm} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathrel}{*} + {<span class="MathClass-rel" title="big" ><BREAK SIZE="small"/>} + {<BREAK SIZE="small"/></span>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +>>> + +\<plain,latex mathml\><<< +\Configure{mfenced}{\vert}{||} +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\{}{\string&\#x007B;}}\:temp +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\}}{\string&\#x007D;}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\lbrace}{\string&\#x007B;}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\rbrace}{\string&\#x007D;}}\:temp +>>> + + +%%%%%%%%%%%%% +\subsection{Math Inner} +%%%%%%%%%%%%% + + +\<plain,latex mathml\><<< +\def\mathinner#1{\Tg<span + class="mathinner">#1\Tg</span>} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Limits of Sub- snd Super- Scripts (over/under - end - scripts)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<limits sub, sup, subsup\><<< +\Configure{limits}{|<limit scripts|>} +\def\disp:limits{|<limit scripts|>} +>>> + + +\<limit scripts\><<< +\let|<restore SUB|>=\:UnDef +\let|<restore SUP|>=\:UnDef +\ifx \:temp\sp |<conf limits SUP|>\else +\ifx \:temp\sb |<conf limits SUB|>\fi\fi +|<conf limits SUBSUP|>% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Simultaneously Sub- and Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<conf limits SUBSUP\><<< +|<save pre-limits SUBSUP|>% +\Configure{SUBSUP} + {\ifx |<restore SUB|>\:UnDef\else |<restore SUB|>\fi + \ifx |<restore SUP|>\:UnDef\else |<restore SUP|>\fi + |<restore pre-limits SUBSUP|>% + \Send{BACK} + {|<start limits msubsup base|>}|<msubsup limits sub|>} + {|<msubsup limits sup|>} + {|<close limits script|>} +>>> + + + + +\<start limits msubsup base\><<< +<msubsup class="limits-msub-msup"><mrow + class="limits-mrow-base"\Hnewline>% +>>> + +\<msubsup limits sub\><<< +\HCode{</mrow><mrow class="limits-mrow-sub"\Hnewline + >\add:description{begin-limits-script}{\a:speak:underover}}% + \trap:base +>>> + + +\<msubsup limits sup\><<< +\HCode{</mrow><mrow class="limits-mrow-super"\Hnewline + >\add:description{mid-limits-script}{\b:speak:underover}}\trap:base +>>> + + +\<close limits script\><<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}% + </mrow></msubsup\Hnewline>}% +>>> + +\<close limits sup\><<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}% + </mrow></msup\Hnewline>}% +>>> + + + +\<close limits sub\><<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}% + </mrow></msub\Hnewline>}% +>>> + + +\<configure jsml-math tex4ht\><<< +\NewConfigure{speak:underover}{3} +\Configure{speak:underover} + {<BREAK SIZE="small"/>under script<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>over script<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end scripts<BREAK SIZE="small"/>} +>>> + +\<save pre-limits SUBSUP\><<< +\let\pl:SUBSUP=\SUBSUP: +>>> + +\<restore pre-limits SUBSUP\><<< +\ifx \pl:SUBSUP\:UnDef \else + \let\SUBSUP:=\pl:SUBSUP +\fi +>>> + +\<limits sub, sup, subsup\><<< +\ifx \a:putSUB\:UnDef \else + \pend:def\a:putSUB{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +\ifx \a:putSUP\:UnDef \else + \pend:def\a:putSUP{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Superscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<conf limits SUP\><<< +|<save pre-limits SUP|>% +\Configure{SUP} + {|<open external limits SUP|>\bgroup + |<restore pre-limits SUBSUP|>% + |<conf second limits SUP|>\trap:base} + {}% +>>> + +\<save pre-limits SUP\><<< +\def\pl:SUP{\Configure{SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\a:SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\b:SUP}}% +>>> + +\<conf second limits SUP\><<< +\Configure{SUP} + {|<open intermediate limits SUP|>\bgroup + |<conf third limit SUP|>\trap:base} + {\egroup|<close external limits SUP|>}% +>>> + + +\<conf third limit SUP\><<< +\Configure{SUP} + {|<open internal limits SUP|>\bgroup \trap:base} + {\egroup |<close internal limits SUP|>}% +>>> + + +\<open external limits SUP\><<< +\Send{BACK}{|<msup limits base|>}% +|<msup limits script super|>% +>>> + + + + + + + + +\<msup limits script super\><<< +\HCode{</mrow><mrow class="limits-mrow-super"\Hnewline + >\add:description{begin-limits-script}{\b:speak:underover}}% + \trap:base +>>> + + +\<msup limits base\><<< +<msup + class="limits-msub-msup"><mrow + class="limits-mrow-base"\Hnewline>% +>>> + +\<close external limits SUP\><<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}% + </mrow></msup\Hnewline + >}\aftergroup|<restore SUP|>% +>>> + +\<restore SUP\><<< +\pl:SUP >>> + +\<open intermediate limits SUP\><<< +\Send{BACK} +{|<start msup base|>}|<msup super|>% +>>> + +\<open internal limits SUP\><<< +\Send{BACK} +{|<start msup base|>}|<msup super|>% +>>> + +\<close internal limits SUP\><<< +|<close msup|>% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Subscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<conf limits SUB\><<< +|<save pre-limits SUB|>% +\Configure{SUB} + {|<open external limits SUB|>\bgroup + |<restore pre-limits SUBSUP|>% + |<conf second limits SUB|>\trap:base} + {}% +>>> + +\<save pre-limits SUB\><<< +\def\pl:SUB{\Configure{SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\a:SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\b:SUB}}% +>>> + +\<conf second limits SUB\><<< +\Configure{SUB} + {|<open intermediate limits SUB|>\bgroup + |<conf third limit SUB|>\trap:base} + {\egroup|<close external limits SUB|>}% +>>> + + +\<conf third limit SUB\><<< +\Configure{SUB} + {|<open internal limits SUB|>\bgroup \trap:base} + {\egroup |<close internal limits SUB|>}% +>>> + + +\<open external limits SUB\><<< +\Send{BACK}{|<msub limits base|>}% +|<msub limits script sub|>% +>>> + + + +\<msub limits script sub\><<< +\HCode{</mrow><mrow class="limits-mrow-sub"\Hnewline + >\add:description{begin-limits-script}{\a:speak:underover}}% + \trap:base +>>> + + + + +\<msub limits base\><<< +<msub + class="limits-msub-msup"><mrow + class="limits-mrow-base"\Hnewline>% +>>> + + + +\<close external limits SUB\><<< +\HCode{\add:description{end-limits-script}{\c:speak:underover}% +</mrow></msub\Hnewline >}\aftergroup|<restore SUB|>% +>>> + +\<restore SUB\><<< +\pl:SUB >>> + +\<open intermediate limits SUB\><<< +\Send{BACK} +{|<start msub base|>}|<msub sub|>% +>>> + +\<open internal limits SUB\><<< +\Send{BACK} +{|<start msub base|>}|<msub sub|>% +>>> + +\<close internal limits SUB\><<< +|<close msub|>% +>>> + + + + + + +%%%%%%%%%%%%% +\section{On Arrows (over/under - end - scripts)} +%%%%%%%%%%%%% + + + +\<configure jsml-math amsmath\><<< +\renewcommand{\xrightarrow}[2][]{% + \if :#1: + \HCode{|<msup limits base|>}% + \rightarrow + |<msup limits script super|>#2% + |<close limits sup|>% + \else + \HCode{|<start limits msubsup base|>}% + \leftarrow + |<msubsup limits sub|>#1% + |<msubsup limits sup|>#2% + |<close limits script|>% + \fi +} +\renewcommand{\xleftarrow}[2][]{% + \if :#1: + \HCode{|<msup limits base|>}% + \leftarrow + |<msup limits script super|>#2% + |<close limits sup|>% + \else + \HCode{|<start limits msubsup base|>}% + \leftarrow + |<msubsup limits sub|>#1% + |<msubsup limits sup|>#2% + |<close limits script|>% + \fi +} +>>> + + + + +%%%%%%%%%%%%% +\section{On Text (over/under - end - scripts)} +%%%%%%%%%%%%% + +\<configure jsml-math amsmath\><<< +\def\overset#1#2{{% + \HCode{|<msup limits base|>}% + #2% + |<msup limits script super|>#1% + |<close limits sup|>% +}} +\def\underset#1#2{{% + \HCode{|<msub limits base|>}% + #2% + |<msub limits script sub|>#1% + |<close limits sub|>% +}} +>>> + + + + + + +\<configure jsml-math amsmath\><<< +\def\sideset#1#2#3{{\Tg<mrow class="sideset"\Hnewline + >{\HCode{}}#1{\HCode{}#3}#2\Tg</mrow>}} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Accents} +%%%%%%%%%%%%%%%%%% + +\<plain,latex mathml\><<< +\:CheckOption{new-accents} \if:Option \else + |<config mathml accents|> +\fi +>>> + +\<config mathml accents\><<< +\Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|<temp hcode accents|>% + \ht:special{t4ht@[}\if!#1!x\else#2\fi + \ht:special{t4ht@]}}} + {\ifmathml + \ifmtext |<accent in text mode|>% + \else \AccentMath{|<under over accents|>}\fi + \else |<accent in text mode|>\fi + } +>>> + + + +\<temp hcode accents\><<< +\leavevmode +\if !#1!\ht:special{t4ht@+&{35}x#2;}% +\else \expandafter \ifx\csname U#2#1\endcsname\relax + \ht:special{t4ht@+&{35}x#2;}% +\else + \ht:special{t4ht@+&{35}x\csname U#2#1\endcsname;}% +\fi \fi x% +>>> + +\<accent in text mode\><<< +\expandafter\ifx \csname :#1:over\endcsname\relax + \expandafter\ifx \csname :#1:under\endcsname\relax + \AccentMath{|<under over accents|>}% + \else #3\csname :#1:under\endcsname \fi +\else #3\csname :#1:over\endcsname \fi +>>> + + +\<under over accents\><<< +\expandafter\ifx \csname :#1:over\endcsname\relax + |<under accents|>% +\else \expandafter\ifx \csname :#1:under\endcsname\relax + |<over accents|>% +\else + |<both accents|>% +\fi \fi +>>> + +\<under accents\><<< +\HCode{<munder\Hnewline + accent="true"><mrow\Hnewline><BREAK SIZE="small"/>}% + #3\HCode{</mrow>}% + \csname :#1:under\endcsname + \HCode{</munder>}% +>>> + +\<over accents\><<< +\HCode{<mover class="mover-accent">% + <mrow\Hnewline><BREAK SIZE="small"/>}% + #3\HCode{</mrow>}% + \csname prefix:#1:over\endcsname + \csname :#1:over\endcsname + \HCode{</mover>}% +>>> + +\<both accents\><<< +\HCode{<munderover\Hnewline + accent="true"><mrow\Hnewline><BREAK SIZE="small"/>}% + #3\HCode{</mrow>}% + \csname :#1:under\endcsname + \csname :#1:over\endcsname + \HCode{</munderover>}% +>>> + +\<configure jsml-math latex\><<< +\def\:temp#1#2{\expandafter\def\csname prefix:#1:over\endcsname + {\HCode{\add:description{added-description}{ #2 }}}} +\:temp{vec}{\b:speak:underover} +\:temp{dddot}{\b:speak:underover} +\:temp{ddddot}{\b:speak:underover} +>>> + + + +%%%%%%%%%%%%%%%%%% +\chapter{Tables} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Tabular} +%%%%%%%%%%%%%%%%%% + +\<configure jsml latex\><<< +|<array and tabular|> +>>> + +\<configure jsml array\><<< +|<array and tabular|> +>>> + +\<configure tabular noalign\><<< +\Configure{noalign}% + {\f:tabular\d:tabular \HCode{<tr><td colspan="\ar:cnt">}} + {\HCode{</td></tr>}\pend:def\TableNo{0}\c:tabular\e:tabular}% +>>> + + +\<configure clear noalign\><<< +\Configure{noalign}{}{}% +>>> + + +\<inline comment\><<< +\ifvmode\else\HCode{<!--tex4ht:inline-->}\fi +>>> + + + +\<array and tabular\><<< +\HAssign\TableNo=0 +\Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<PARA><table class="tabular" >}% + |<begin tabular note|>} + {\Tag{tabular-\TableNo}{\hrow:s}% + |<end tabular note|>\HCode{</table></PARA>}} + {\HCode{<tr><!--row \HRow-->}% + |<begin table row note|>} + {\xdef\hrow:s{\HRow}|<end table row note|>\HCode{</tr>}} + {\HCode{<td><!--entry \HRow-\HCol\ifnum + \HMultispan>1 \, span \HMultispan\fi-->}% + |<begin table cell note|>\HCode{<div>}\SaveEndP + \PushStack\Table:Stck\TableNo + \par \ShowPar} + {\PopStack\Table:Stck\TableNo + \IgnorePar \EndP \ifvmode \IgnorePar \fi \EndP + \HCode{</div>}|<end table cell note|>% + \HCode{</td>\Hnewline}\RecallEndP } +>>> + + + + + +\<begin tabular note\><<< +\HCode{% + <BREAK SIZE="small"/><PROS PITCH="-5" >% + \add:vdescription{begin-end}{begin table with + \ifTag{tabular-\TableNo}{\LikeRef{tabular-\TableNo}}{} + rows and \ar:cnt columns}% + </PROS> +}% +>>> + +\<end tabular note\><<< +\HCode{|<show input line no|>% + <BREAK SIZE="small"/>% + <PROS PITCH="-5" >% + \add:vdescription{begin-end}{end table}% + </PROS><BREAK SIZE="small"/>% +}% +>>> + +\<begin table row note\><<< +\HCode{% + <BREAK SIZE="medium"/><PROS PITCH="-5" >% + \add:vdescription{begin-end}{|<ord row|> row}% + </PROS><BREAK SIZE="medium"/>% +}% +>>> + + +\<begin table cell note\><<< +\HCode{% + <BREAK SIZE="medium"/>% + \ifnum \HMultispan>1 + <PROS PITCH="-5" >% + \add:vdescription{added-description}{|<ord col|> cell + spans \HMultispan \space columns}% + </PROS><BREAK SIZE="medium"/>% + \else + \ifnum \HCol>1 + <PROS PITCH="-5" >% + \add:vdescription{added-description}{|<ord col|> cell}% + </PROS><BREAK SIZE="medium"/>% + \fi + \fi +}% +>>> + +\<end table cell note\><<< +>>> + + +%%%%%%%%%%%%% +\section{Numbering} +%%%%%%%%%%%%% + + + +\<ord row\><<< +<span class="ord-row">\ord:pos{\HRow}</span>% +>>> + +\<ord col\><<< +\ord:pos{\HCol}% +>>> + + +\<configure jsml tex4ht\><<< +\def\ord:pos#1{% + \ifcase #1 + \or first + \or second + \or third + \or fourth + \or fifth + \or sixth + \or seventh + \or eighth + \or nineth + \else #1th + \fi +} +>>> + + + + + +\<configure jsml tex4ht\><<< +\HAssign\HRow=0 +>>> + +\<advance table number\><<< +\PushStack\Table:Stck\TableNo +\gHAdvance\Next:TableNo by 1 +\global\let\TableNo=\Next:TableNo +>>> + +\<return to prev table number\><<< +\PopStack\Table:Stck\TableNo +>>> + + + + + + + +\<new row counter\><<< +\PushStack\Row:Stck\HRow \HAssign\HRow=0\relax +>>> + +\<return to prev row counter\><<< +\PopStack\Row:Stck\HRow +>>> + +\<new col counter\><<< +\PushStack\Col:Stck\Prev:Col +>>> + +\<return to prev col counter\><<< +\PopStack\Col:Stck\Prev:Col +>>> + + + + +%%%%%%%%%%%%% +\section{Aligned} +%%%%%%%%%%%%% + + + +\<configure jsml-math amsmath\><<< +\Configure{aligned} + {|<advance table number|>% + |<new row counter|>% + \HCode{<PARA><mtable class="aligned">}% + \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}} + {\Tag{aligned-\TableNo}{\hrow:s}% + \HCode{|<show input line no|>% + \add:vdescription{end-array}{\b:speak:aligned}}% + \ifvmode \IgnorePar\fi + \HCode{</mtable></PARA>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>}\c:speak:aligned}% + {\xdef\hrow:s{\HRow}\HCode{</mtr>}}% + {\HCode{<mtd>}% + \e:speak:aligned \HCode{<div>}} + {\HCode{</div>}\f:speak:aligned + \HCode{</mtd>\Hnewline}} +>>> + +\<configure jsml-math amsmath\><<< +\NewConfigure{speak:aligned}{6} +\Configure{speak:aligned} + {begin + \ifTag{aligned-\TableNo}{\LikeRef{aligned-\TableNo}}{} + aligned equations} + {end equations} + {|<begin table row note|>} + {|<end table row note|>} + {|<begin table cell note|>} + {|<end table cell note|>} +>>> + + + +\<configure jsml-math amsmath\><<< +\Configure{alignedat} + {|<advance table number|>% + |<new row counter|>% + \HCode{<PARA><mtable class="aligned">}% + \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}} + {\Tag{aligned-\TableNo}{\hrow:s}% + \HCode{|<show input line no|>% + \add:vdescription{end-array}{\b:speak:aligned}}% + \ifvmode \IgnorePar\fi \HCode{</mtable></PARA>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>}\c:speak:aligned}% + {\xdef\hrow:s{\HRow}\HCode{</mtr>}}% + {\HCode{<mtd>}% + \e:speak:aligned \HCode{<div>}} + {\HCode{</div>}\f:speak:aligned + \HCode{</mtd>\Hnewline}} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\section{Cases} +%%%%%%%%%%%%%%%%% + +\<plain,latex mathml\><<< +\Configure{cases} + {}{} {\HCode{<PARA><mtable>}}{\HCode{</mtable></PARA>}} + {\Tg<mtr>}{\Tg</mtr>} + {\Tg<mtd class="cases">}{\Tg</mtd>} +>>> + + +\<configure jsml-math amsmath\><<< +\ConfigureEnv{cases} + {|<advance table number|>% + |<new row counter|>% + \HCode{<div class="cases">}% + \bgroup + |<save left/right config|>% + |<config amsmath cases|>% + |<cases left/right|>% + } + {\egroup\HCode{</div>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {}{} +>>> + + + + + + +\<config amsmath cases\><<< +\Configure{array} + {\HCode{<mtable class="cases">% + |<start cases note|>}} % + {\Tag{cases-\TableNo}{\HRow}% + \HCode{|<show input line no|>% + |<end cases note|>}% + \ifvmode \IgnorePar\fi \Tg</mtable>} + {\HCode{<mtr>% + |<next case note|>}} + {\HCode{</mtr>}}% + {\HCode{<mtd class="sub-case-\HCol" >% + <BREAK SIZE="\ifnum \HCol>1 medium\else + small\fi"/>}% + \bgroup + |<config array|>% + |<recall left/right config|>% + } + {\egroup \HCode{</mtd>\Hnewline}} +>>> + +\<start cases note\><<< +\add:vdescription{begin-array}{<BREAK SIZE="small"/>begin + \ifTag{cases-\TableNo}{\LikeRef{cases-\TableNo}}{} + cases<BREAK SIZE="small"/>}% +>>> + +\<end cases note\><<< +\add:vdescription{end-array} + {<BREAK SIZE="small"/>end cases<BREAK SIZE="small"/>} +>>> + +\<next case note\><<< +\add:vdescription{begin-end} + {<BREAK SIZE="small"/>|<ord row|> case}% +>>> + + +\<cases left/right\><<< +\Configure{left} + {} + {\bgroup} +\Configure{right} + {\egroup} + {} +>>> + + +\<save left/right config\><<< +\let\sv:a:left=\a:left +\let\sv:b:left=\b:left +\let\sv:a:right=\a:right +\let\sv:b:right=\b:right +>>> + + +\<recall left/right config\><<< +\let\a:left=\sv:a:left +\let\b:left=\sv:b:left +\let\a:right=\sv:a:right +\let\b:right=\sv:b:right +>>> + + + + +%%%%%%%%%%%%%%%%%%%% +\section{matrix} +%%%%%%%%%%%%%%%%%%%% + +\<plain,latex mathml\><<< +\Configure{matrix} + {|<advance table number|>% + |<new row counter|>% + \HCode{<PARA><mtable class="array">}% + \HCode{\add:vdescription{begin-array}{\a:speak:array}}} + {\Tag{array-\TableNo}{\hrow:s}% + \HCode{|<show input line no|>% + \add:vdescription{end-array}{\b:speak:array}}% + \ifvmode \IgnorePar\fi \HCode{</mtable></PARA>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>}\c:speak:array}% + {\xdef\hrow:s{\HRow}\HCode{</mtr>}}% + {\HCode{<mtd>}% + \e:speak:array\HCode{<div>}} + {\HCode{</div>}\f:speak:array + \HCode{</mtd>\Hnewline}} +>>> + +\<mtd matrix\><<< +\HCode{<mtd\Hnewline class="matrix" + \ifnum 1<\HMultispan columnspan="\HMultispan"\fi}% + \halignTD \HCode{>}% +>>> + + + +The grouping below is handle the case that the matrix is a base of an exponent. + + +\<plain,latex mathml\><<< +\Configure{pmatrix} + {\bgroup\HCode{<PARA><div class="pmatrix"><BREAK SIZE="small"/>}} + {\HCode{<BREAK SIZE="small"/></div></PARA>}\egroup} +>>> + + + + +\<plain,latex mathml\><<< +\NewConfigure{speak:array}{6} +\Configure{speak:array} + {<BREAK SIZE="small"/>begin array with + \ifTag{array-\TableNo}{\LikeRef{array-\TableNo}}{} + rows<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end array<BREAK SIZE="small"/>} + {|<begin table row note|>} + {|<end table row note|>} + {|<begin table cell note|>} + {|<end table cell note|>} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{EqAlign} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure jsml plain\><<< +|<TABLE eqalign shared Configure 4.0t|> +>>> +\<TABLE eqalign shared Configure 4.0t\><<< +\Configure{eqalign} + {\:xhtml{\IgnorePar\EndP}\HCode + {<div class="eqalign"><table class="eqalign">}} + {\HCode{</table></div>}} + {\HCode{<tr \Hnewline class="eqalign" + valign="middle">}}{\IgnorePar\HCode{</tr>}} + {\HCode{<td align="\ifnum \HCol=2 + left\else right\fi"\Hnewline class="eqalign\HCol" + style="white-space:nowrap;">}} + {\HCode{</td>}} +\def\:eqalign:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} + +>>> + + + + + +\<TABLE eqalign shared Configure 4.0t\><<< +\Configure{eqalignno} + {\:xhtml{\IgnorePar\EndP}\HCode{<table class="eqalignno">}} + {\HCode{</table>}} + {\HCode{<tr\Hnewline class="eqalignno">}}{\IgnorePar\HCode{</tr>}} + {\HCode{\ifnum \HCol=3 <td\Hnewline width="10" + class="eqalignno-sp"></td>\fi + <td align="\ifnum \HCol=2 left\else right\fi"\Hnewline + class="eqalignno\HCol">}} + {\HCode{</td>}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} + +>>> + +\<TABLE eqalign shared Configure 4.0t\><<< +\Configure{leqalignno} + {\:xhtml{\IgnorePar\EndP}\HCode{<table class="leqalignno">}} + {\HCode{</table>}} + {\HCode{<tr \Hnewline + class="leqalignno">}}{\IgnorePar\HCode{</tr>}} + {\HCode{\ifnum \HCol=3 <td\Hnewline width="30" + class="eqalignno-sp"></td>\fi + <td align="\ifnum \HCol=2 left\else right\fi"\Hnewline + class="leqalignno\HCol">}} + {\HCode{</td>}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{<tr><td class="noalign" colspan="2">}}% + {\HCode{</td></tr>}}} +>>> + + + +\<configure jsml-math latex\><<< +|<config array|> +>>> + +\<configure jsml-math array\><<< +|<config array|> +>>> + + +\<config array\><<< +\Configure{array} + {|<advance table number|>% + |<new row counter|>% + \HCode{<PARA><mtable class="array">}% + \HCode{\add:vdescription{begin-array}{\a:speak:array}}} + {\Tag{array-\TableNo}{\hrow:s}% + \HCode{|<show input line no|>% + \add:vdescription{end-array}{\b:speak:array}}% + \ifvmode \IgnorePar\fi + |<insert Clr|>\HCode{</mtable></PARA>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>}\c:speak:array}% + {\xdef\hrow:s{\HRow}\HCode{</mtr>}}% + {\HCode{<mtd>}% + \e:speak:array\HCode{<div>}} + {\HCode{</div>}\f:speak:array + \HCode{</mtd>\Hnewline}} +\ConfigureEnv{array} + {\bgroup\Configure{$}{}{}{}} + {\egroup} + {}{} +>>> + + + + + + +\<begin array row note\><<< +\HCode{\add:vdescription{begin-end}{Row \HRow}}% +>>> + + + + +\<configure jsml-math latex\><<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + +\<configure jsml-math array\><<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + + + + + + +\<insert Clr\><<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{<!--\the\tmp:toks-->}% +>>> + + + + + +\<mathml latex\><<< +\def\:MM{m} +\Configure{HBorder} + {<mtr\Hnewline class="hline">} + {|<mml hline|>} + {</mtr>} + {<mtr\Hnewline class="cline">} + {<mtd></mtd>} + {|<mml hline|>} + {</mtr>} + {<mtr\Hnewline class="vspace" style="font-size:\HBorderspace">} + {<mtd\Hnewline></mtd>} + {</mtr>} +>>> + +\<configure jsml-math latex\><<< +\def\:MM{\ifmathml m\fi} +\Configure{HBorder} + {<\:MM tr\Hnewline + \ifmathml \expandafterclass\else class\fi="hline">} + {\ifmathml|<mml hline|>\else + <td><hr\xml:empty></td>\fi} + {</\:MM tr>} + {<\:MM tr\Hnewline + \ifmathml \expandafterclass\else class\fi ="cline">} + {<\:MM td></\:MM td>} + {\ifmathml|<mml hline|>\else + <td><hr\xml:empty></td>\fi} + {</\:MM tr>} + {<\:MM tr\Hnewline + \ifmathml \expandafterclass\else class\fi="vspace" + style="font-size:\HBorderspace">} + {<\:MM td\Hnewline>\ifmathml\else\string&\#x00A0;\fi + </\:MM td>} + {</\:MM tr>} +\Configure{halign} + {\EndP\halignTB{halign}} \t:HA + \R:HA\r:HA\D:HA\d:HA +>>> + + + +\<mml hline\><<< +<mtd><mo> \string&\#x0332; </mo></mtd> +>>> + +%%%%%%%%%%%%% +\section{Small Matrix} +%%%%%%%%%%%%% + + + +\<configure jsml-math latex\><<< +|<config multicolumn|> +>>> + + +\<configure jsml-math array\><<< +|<config multicolumn|> +>>> + + +\<config multicolumn\><<< +\Configure{multicolumn} + {\let\sv:VBorder\VBorder + \let\VBorder\empty + \Configure{VBorder}{}{}{}{}% + } + {\let\VBorder\sv:VBorder} + {\ifmmode \else + \ifvmode\IgnorePar\fi + \fi \HCode{<div class="multicolumn" title="\HMultispan">}} + {\ifmmode \else + \ifvmode\IgnorePar\fi \EndP\fi \HCode{</div>} } +\def\gob:sp#1{#1} +>>> + + + + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{TeX EqAlign} +%%%%%%%%%%%%%%%%%%%% + + +\<mathml plain\><<< +\Configure{eqalignno} + {\HCode{<PARA><mtable class="eqalignno">}} + {\HCode{</mtable></PARA>}} + {\HCode{<mtr\Hnewline class="eqalignno">}} + {\HCode{</mtr>}} + {\HCode{<mtd \Hnewline class="eqalignno-\HCol">}} + {\HCode{</mtd>}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{<mtr><mtd class="noalign" colspan="2">}}% + {\HCode{</mtd></mtr>}}} +>>> + + +\<mathml plain\><<< +\Configure{leqalignno} + {\HCode{<PARA><mtable class="leqalignno">}} + {\HCode{</mtable></PARA>}} + {\HCode{<mtr\Hnewline class="leqalignno">}} + {\HCode{</mtr>}} + {\HCode{<mtd \Hnewline class="leqalignno-\HCol">}} + {\HCode{</mtd>}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{<mtr><mtd class="noalign" colspan="2">}}% + {\HCode{</mtd></mtr>}}} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{halign} +%%%%%%%%%%%%%%%%%% + + +\<configure jsml tex4ht2\><<< +\Configure{embedded-halign}{}{} +>>> + + +%%%%%%%%%%%%%%%%%% +\chapter{To Be Inserted} +%%%%%%%%%%%%%%%%%% + + + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + +%%%%%%%%%%%%%%%%%% +\section{HTML Head} +%%%%%%%%%%%%%%%%%% + +\<configure jsml tex4ht\><<< +\let\Link\M:Link \let\M:Link\:UnDef +\let\EndLink\M:EndLink \let\M:EndLink\:UnDef +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Bibliography and Equation References} +%%%%%%%%%%%%%%%%%% + + + +\<configure jsml latex\><<< +\def\@cite#1#2{% + \HCode{\add:description{added-description}{\a:speak:citation}}% + {#1\if@tempswa , #2\fi}} +\def\@biblabel#1{% + \HCode{<BREAK SIZE="small" />}% + \HCode{\add:description{added-description}{\a:speak:bib}}% + #1\HCode{<BREAK SIZE="small" />}} +>>> + +\<configure jsml latex\><<< +\NewConfigure{speak:citation}{1} +\Configure{speak:citation}{citation } +\NewConfigure{speak:bib}{1} +\Configure{speak:bib}{Bibliography entry}>>> + + + + +\<configure jsml-math amsmath\><<< +\Configure{eqref} + {\bgroup\let\tagform@\empty + \HCode{<span class="eqref" > + \add:description{added-description}{\a:speak:eqref}}} + {\HCode{</span>}\egroup} +>>> + +\<configure jsml-math amsmath\><<< +\NewConfigure{speak:eqref}{1} +\Configure{speak:eqref}{ equation } +>>> + + + + + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Cross Links} +%%%%%%%%%%%%%%%%%% + + +\<configure jsml tex4ht\><<< +\Configure{crosslinks}{ }{ }{next}{previous}{previous-tail}{front}{tail}{up} +\Configure{crosslinks+} + {\IgnorePar\EndP\HCode{|<show input line no|>% + <div class="crosslinks"><p class="noindent"> + \add:vdescription{begin-end}{\a:speak:crosslinks}}} + {\HCode{\add:vdescription{begin-end}{\b:speak:crosslinks} + </p></div>}\par\ShowPar} + {\IgnorePar\EndP\HCode{|<show input line no|>% + <div class="crosslinks"><p class="noindent"> + \add:vdescription{begin-end}{\a:speak:crosslinks}}} + {\HCode{\add:vdescription{begin-end}{\b:speak:crosslinks} + </p></div>}\par\ShowPar} +\:CheckOption{next} \if:Option + \Configure{next+} + {\ShowPar\par\noindent \HCode{<span class="next"> + \add:description{added-description}{\c:speak:crosslinks}}} + {\HCode{</span>}} +\fi +>>> + + +\<configure jsml tex4ht\><<< +\NewConfigure{speak:crosslinks}{3} +\Configure{speak:crosslinks} + {Navigation links} + {End navigation links} + {Navigation link} +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Sections} +%%%%%%%%%%%%%%%%%% + + +\<latex shared section config\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">\add:description{added-description} + {\a:speak:section}}\@seccntformat{section}% + \HCode{</span>}\fi } +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">\add:description{added-description} + {\a:speak:subsection}}\@seccntformat{subsection}% + \HCode{</span>}\fi } +|<latex speak section|> +>>> + + + +\<ams art,proc,book div\><<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else + \HCode{<span class="titlemark">% + \add:description{added-description} + {\a:speak:section}}\@ifundefined{sectionname}{}{% + \ignorespaces\sectionname\space}% + \@seccntformat{section}% + \HCode{</span>}\fi } +|<latex speak section|> +>>> + + + +\<latex speak section\><<< +\NewConfigure{speak:section}{1} +\Configure{speak:section}{section} +\NewConfigure{speak:subsection}{1} +\Configure{speak:subsection}{subsection} +>>> + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The equation Environment} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure jsml-math latex\><<< +\Configure{equation} + {\IgnorePar|<inline end-par comment|>\EndP + |<advance table number|>% + \HCode{<div class="display-math">% + \add:description{begin-math}{\a:speak:equation}% + <div class="equation">}\IgnorePar + |<math display in equation|>} + {\ifvmode \IgnorePar\fi\EndP + \HCode{</div>}% + \let\@eqnnum\empty + } + {\HCode{% + \add:description{end-math}{\b:speak:equation}% + </div>}% + \Tag{eq-\TableNo-num}{\theequation}% + |<try inline par|>} +>>> + + + +\<configure jsml-math latex\><<< +\NewConfigure{speak:equation}{2} +\Configure{speak:equation} + {<BREAK SIZE="medium"/>begin equation + \ifTag{eq-\TableNo-num}{\LikeRef{eq-\TableNo-num}}{}% + <BREAK SIZE="small"/> + } + {<BREAK SIZE="small"/>end equation \theequation + <BREAK SIZE="medium"/>} +>>> + + + +\<inline end-par comment\><<< +\ifvmode\else \HCode{<!--tex4ht:inline-->}\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{AmsMath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +\<configure jsml-math amsmath\><<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + |<amsmath html-mml pre 2000|> + \else + |<amsmath html-mml jan 2000|> + \fi +\else + |<amsmath html-mml july 2000|> +\fi +>>> + + +\<amsmath html-mml july 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi\EndP + |<advance table number|>% + \HCode{<div class="display-math">% + \add:description{begin-math}{\a:speak:equation}% + <div class="equation">}% + |<amsmath equation july 2000|>% + |<math display in equation|>% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</div>}% + \let\@eqnnum\empty + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{% + \add:description{end-math}{\b:speak:equation}% + </div>}% + \Tag{eq-\TableNo-num}{\theequation}% + |<return to prev table number|>% + \ShowPar\IgnoreIndent\par} +>>> + + + +\<amsmath html-mml july 2000\><<< +\Configure{equation*} + {\ifvmode \IgnorePar\fi\EndP + |<advance table number|>% + \HCode{<div class="display-math">% + \add:description{begin-math}{\csname + a:speak:equation*\endcsname}}% + |<amsmath equation-star july 2000|>% + |<math display in equation|>% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{\add:description{end-math}{\csname + b:speak:equation*\endcsname}</div>}% + |<return to prev table number|>% + \ShowPar\IgnoreIndent\par} +>>> + + +\<amsmath html-mml july 2000\><<< +\Configure{speak:equation} + {<BREAK SIZE="medium"/>begin equation + \ifTag{eq-\TableNo-num}{\LikeRef{eq-\TableNo-num}}{}% + <BREAK SIZE="small"/> + } + {<BREAK SIZE="small"/>end equation + \theequation<BREAK SIZE="medium"/>} +\NewConfigure{speak:equation*}{2} +\Configure{speak:equation*} + {<BREAK SIZE="medium"/>begin equation<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end equation<BREAK SIZE="medium"/>} +>>> + + + +\<amsmath equation july 2000\><<< +\Configure{gather} + {\HCode{<div\Hnewline class="equation"><div + class="gather">}\IgnorePar + |<math display in equation|>} + {\HCode{</div></div>}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{</div><div>}\fi } + {} +>>> + + +\<amsmath equation-star july 2000\><<< +\Configure{gather*} + {\HCode{<div\Hnewline class="equation-star"><div + class="gather-star">}\IgnorePar + |<math display in equation|>} + {\HCode{</div></div>}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{</div><div>}\fi } + {} +>>> + + +\<math display in equation\><<< +\Configure{$$} + {\Configure{@math}{|<block display|>% + class="equation"}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP} + {\DisplayMathtrue}% +>>> + + + + + + + + + + + +\<configure html-mml amsmath\><<< +\Configure{@begin} + {split} + {\let\tagform@=\:gobble } +>>> + + + + + +\<configure jsml-math amsmath\><<< +\Configure{split} + {|<advance table number|>% + \HCode{<mtable class="split">|<start split note|>}} + {\ifvmode\IgnorePar\fi + \Tag{split-\TableNo}{\HRow:s}% + \HCode{|<end split note|></mtable>}% + |<return to prev table number|>} + {\HCode{<mtr\Hnewline>}% + \xdef\HRow:s{\HRow}% + } + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline class="split-side" + title="implicit-baseline" >% + |<split note sub eq note|>}% + } + {\HCode{</mtd>}} +>>> + + +\<start split note\><<< +\add:vdescription{begin-array}{<BREAK SIZE="medium"/>begin + \ifTag{split-\TableNo}{\LikeRef{split-\TableNo}}{} + sub equations<BREAK SIZE="small"/>}% +>>> + + +\<end split note\><<< +\add:vdescription{end-array}{<BREAK SIZE="small"/>end sub equations<BREAK SIZE="medium"/>}% +>>> + +\<split note sub eq note\><<< +\add:vdescription{begin-end}{<BREAK SIZE="small"/>% + \ifnum \HCol=1 left \else right \fi + |<ord row|> sub equation<BREAK SIZE="small"/>}% +>>> + +\<configure jsml-math amsmath\><<< +\ConfigureEnv{multline} + {\bgroup |<math display in equation|>} + {\egroup} + {}{} +\ConfigureEnv{multline*} + {\bgroup |<math display in equation|>} + {\egroup} + {}{} +>>> + +\<configure jsml-math amsmath\><<< +\Configure{multline} + {|<advance table number|>% + |<new row counter|>% + \HCode{<div\Hnewline class="display-math">% + |<multline begin note|>% + <mtable>}} + {\Tag{multline-\TableNo}{\hrow:s}% + \HCode{</mtable>|<multline end note|></div>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr><mtd\Hnewline class="multline-1">% + |<multline row note|>}} + {\xdef\hrow:s{\HRow}\HCode{</mtd></mtr>}} + {\HCode{</mtd><mtd class="multline-2">}} + {} +\Configure{multline-num} + {\Tag{multline-\TableNo-num}{\theequation}\let\tagform@\:gobble} + {} +>>> + + +\<configure jsml-math amsmath\><<< +\Configure{multline*} + {|<advance table number|>% + |<new row counter|>% + \HCode{<div\Hnewline class="display-math">% + <mtable class="multline-star">% + |<multline-star begin note|>}} + {\Tag{multline-\TableNo}{\hrow:s}% + \HCode{|<multline-star end note|></mtable></div>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr\Hnewline><mtd>% + |<multline row note|>}} + {\xdef\hrow:s{\HRow}\HCode{</mtd></mtr>}} +>>> + + + + + +\<multline begin note\><<< +\add:vdescription{begin-math}{% + <BREAK SIZE="medium"/>% + begin equation + \ifTag{multline-\TableNo-num}{\LikeRef{multline-\TableNo-num}}{} + with + \ifTag{multline-\TableNo}{\LikeRef{multline-\TableNo}}{} + lines<BREAK SIZE="small"/>}% +<div class="multline">% +>>> + +\<multline-star begin note\><<< +\add:vdescription{begin-math}{% + <BREAK SIZE="medium"/>% + begin equation with + \ifTag{multline-\TableNo}{\LikeRef{multline-\TableNo}}{} + lines<BREAK SIZE="small"/>}% +<div class="multline-star">% +>>> + + +\<multline end note\><<< +</div>% +\add:vdescription{end-math}{end equation + <BREAK SIZE="small"/>% + \ifTag{multline-\TableNo-num}{\LikeRef + {multline-\TableNo-num}}{}% + <BREAK SIZE="medium"/>% +}% +>>> + +\<multline-star end note\><<< +</div>% +\add:vdescription{end-math}{% + <BREAK SIZE="small"/>end equation<BREAK SIZE="medium"/>}% +>>> + + +\<multline row note\><<< +\add:vdescription{begin-end}{% + <BREAK SIZE="small"/>|<ord row|> line<BREAK SIZE="small"/>}% +>>> + +\<advance multline count\><<< +\HAdvance\HRow by 1 +>>> + + + + +\<configure jsml-math amsmath\><<< +\ConfigureEnv{gather} + {\bgroup |<math display in equation|>} + {\egroup} + {}{} +\ConfigureEnv{gather*} + {\bgroup |<math display in equation|>} + {\egroup} + {}{} +>>> + + + +\<configure jsml-math amsmath\><<< +\Configure{gather} + {|<advance table number|>% + |<new row counter|>% + \HCode{<div\Hnewline class="display-math">% + |<begin gather note|>% + <mtable class="gather">% + }} + {\HCode{</mtable>|<end gather note|>% + </div>}% + \Tag{gather-\TableNo}{\hrow:s}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>% + |<row gather note|>% + }} + {\xdef\hrow:s{\HRow}\HCode{</mtr>}} + {\HCode{\Hnewline<mtd |<gather td class|> >}% + \ifnum \HCol>1 \let\tagform@\:gobble \fi + } + {\HCode{</mtd>}} +>>> + +\<begin gather note\><<< +\add:vdescription{begin-math}{<BREAK SIZE="small"/>begin group of + \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{} + equations<BREAK SIZE="small"/>}% +>>> + +\<end gather note\><<< +\add:vdescription{end-math}{<BREAK SIZE="small"/>end equations<BREAK SIZE="small"/>}% +>>> + +\<row gather note\><<< +\add:vdescription{begin-end}{<BREAK SIZE="small"/>|<ord row|> equation<BREAK SIZE="small"/>}% +>>> + + +\<configure jsml-math amsmath\><<< +\Configure{gather*} + {|<advance table number|>% + |<new row counter|>% + \HCode{<div\Hnewline class="display-math">% + |<start gather star note|>% + <mtable class="gather-star">% + }} + {\HCode{</mtable>|<end gather star note|>% + </div>}% + \Tag{gather-\TableNo}{\hrow:s}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>% + |<line gather star note|>% + }} + {\xdef\hrow:s{\HRow}\HCode{</mtr>}} + {\HCode{\Hnewline<mtd |<gather td class|> >}} + {\HCode{</mtd>}} +>>> + +\<start gather star note\><<< +\add:vdescription{begin-math}{<BREAK SIZE="small"/>begin group of + \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{} + equations<BREAK SIZE="small"/>}% +>>> + + +\<line gather star note\><<< +\add:vdescription{begin-math}{% + <BREAK SIZE="small"/>|<ord row|> equation<BREAK SIZE="small"/>}% +>>> + + + + + +\<end gather star note\><<< +\add:vdescription{end-math}{% + <BREAK SIZE="small"/>end equations<BREAK SIZE="small"/>}% +>>> + +<BREAK SIZE="small"/> + +\<configure jsml-math amsmath\><<< +\Configure{gathered} + {|<advance table number|>% + |<new row counter|>% + \HCode{<div\Hnewline class="display-math">% + |<start gathered note|>% + <mtable class="gather">% + }} + {\HCode{</mtable>|<end gathered note|>% + </div>}% + \Tag{gather-\TableNo}{\hrow:s}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>% + |<start gathered row|>% + }} + {\xdef\hrow:s{\HRow}\HCode{</mtr>}} + {\HCode{\Hnewline<mtd |<gather td class|> >}% + \ifnum \HCol>1 \let\tagform@\:gobble \fi + } + {\HCode{</mtd>}} +>>> + + +\<start gathered note\><<< +\add:vdescription{begin-math}{<BREAK SIZE="small"/>begin group of + \ifTag{gather-\TableNo}{\LikeRef{gather-\TableNo}}{} + equations<BREAK SIZE="small"/>} +>>> + + + +\<end gathered note\><<< +\add:vdescription{end-math}{% + <BREAK SIZE="small"/>end equations<BREAK SIZE="small"/>}% +>>> + + +\<start gathered row\><<< +\add:vdescription{begin-end}{% + <BREAK SIZE="small"/>|<ord row|> equation<BREAK SIZE="small"/>}% +>>> + + +\<gather td class\><<< +\ifnum \HCol=1 class="col-\HCol" +\else class="content-less" title="col-\HCol" +\fi +>>> + + +\<configure jsml-math amsmath\><<< +\Configure{subarray} + {|<advance table number|>% + |<new row counter|>% + \HCode{<mtable class="subarray\if c\Hlcr-c\fi">% + \add:vdescription{begin-array}{\a:speak:subarray}% + }} + {\HCode{\add:vdescription{end-array}{\b:speak:subarray}% + </mtable>}% + \Tag{subarray-\TableNo}{\hrow:s}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr><mtd>% + \add:vdescription{begin-end}{\c:speak:subarray}% + }} + {\xdef\hrow:s{\HRow}\HCode{</mtd></mtr>}} +>>> + +\<configure jsml-math amsmath\><<< +\NewConfigure{speak:subarray}{3} +|<config speak:subarray|> +>>> + +\<config speak:subarray\><<< +\Configure{speak:subarray} + {<BREAK SIZE="small"/>begin sub array with + \ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{} + rows<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end sub array<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>|<ord row|> row<BREAK SIZE="small"/>} +>>> + + + + + + + + + + + + +\<configure jsml-math amsmath\><<< +\Configure{substack} + {\bgroup + \Configure{speak:subarray} + {<BREAK SIZE="small"/>begin sub stack with + \ifTag{subarray-\TableNo}{\LikeRef{subarray-\TableNo}}{} + entries<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end sub stack<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>|<ord row|> + entry<BREAK SIZE="small"/>} + } + {\egroup} +>>> + + + + + + + + + + + + + + + +\<configure jsml-math amsmath\><<< +\Configure{smallmatrix} + {|<advance table number|>% + |<new row counter|>% + \HCode{<PARA><mtable class="smallmatrix">}% + \HCode{\add:vdescription{begin-array}{\a:speak:smallmatrix}}} + {\Tag{smallmatrix-\TableNo}{\hrow:s}% + \HCode{|<show input line no|>% + \add:vdescription{end-array}{\b:speak:smallmatrix}}% + \ifvmode \IgnorePar\fi + \HCode{</mtable></PARA>}% + |<return to prev row counter|>% + |<return to prev table number|>} + {\HCode{<mtr>}\c:speak:smallmatrix}% + {\xdef\hrow:s{\HRow}\HCode{</mtr>}}% + {\HCode{<mtd>}% + \e:speak:smallmatrix \HCode{<div>}} + {\HCode{</div>}\f:speak:smallmatrix + \HCode{</mtd>\Hnewline}} +>>> + + + + + + + + + +\<plain,latex mathml\><<< +\NewConfigure{speak:smallmatrix}{6} +\Configure{speak:smallmatrix} + {begin matrix with + \ifTag{smallmatrix-\TableNo}{\LikeRef{smallmatrix-\TableNo}}{} + rows} + {end matrix} + {|<begin table row note|>} + {|<end table row note|>} + {|<begin table cell note|>} + {|<end table cell note|>} +>>> + +\<configure jsml-math amsmath\><<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\def\end:al:env{}\ifmmode\else + \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent}\fi\fi} + {\end:al:env } + {}{}% + \Configure{#1} + {\IgnorePar + \ifvmode \EndP \else \EndP \HCode{<!--tex4ht:inline-->}\fi + \ifmathml + \Tg<span class="mrow">\def\end:mathalign{\Tg</span>}% + \else + \DviMath + \def\end:mathalign{\EndDviMath \DisplayMathfalse}% + \DisplayMathtrue + \fi + |<advance table number|>% + |<new row counter|>% + \HCode{<div\Hnewline class="display-math"><mtable>% + \add:description{begin-array}{\a:speak:align}% + }} + {\HCode{% + \add:description{end-array}{\b:speak:align}% + </mtable></div>}% + \Tag{align-\TableNo}{\hrow:s}% + |<return to prev row counter|>% + |<return to prev table number|>\end:mathalign } + {\HCode{<mtr>|<align eq note|>}} + {\HCode{</mtr>}\ifst@rred\else + \Tag{align-\TableNo-\HRow}{\theequation}% + \fi \xdef\hrow:s{\HRow}} + {\HCode{<mtd\Hnewline + class="align-\ifnum \HCol>\maxfields@ label\else + \ifodd\HCol\space odd\else even\fi + \fi">}% + \ifnum \HCol>\maxfields@ \let\tagform@\:gobble \fi + } + {\HCode{</mtd>}} +} +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align-star} +\:tempc{alignat*}{alignat-star} +\:tempc{xalignat*}{xalignat-star} +\:tempc{flalign*}{flalign-star} +>>> + + +\<align eq note\><<< +\add:description{begin-end}{\c:speak:align}% +>>> + + +\<configure jsml-math amsmath\><<< +\NewConfigure{speak:align}{3} +\Configure{speak:align} + {<BREAK SIZE="small"/>begin + \ifTag{align-\TableNo}{\LikeRef{align-\TableNo}}{} + aligned equations<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end aligned equations<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>\ifst@rred |<ord row|> equation + \else + equation number \ifst@rred\else + \ifTag{align-\TableNo-\HRow}% + {\LikeRef{align-\TableNo-\HRow}}{} + \fi + \fi <BREAK SIZE="small"/>% + } +>>> + + +%%%%%%%%%%%%% +\subsection{Embedded Text} +%%%%%%%%%%%%% + + + +\<configure jsml-math latex\><<< +\def\AA:text#1{|<config start mtext|>} +\def\BB:text{|<config end mtext|>} +>>> + + +\<config start mtext\><<< +\mtexttrue +\HCode{ <span\Hnewline class="mstyle-#1">}% + |<start mtext space|>\PauseMathClass + |<config math within mtext|>% +>>> + + +\<config end mtext\><<< +\mtextfalse\EndPauseMathClass|<end mtext space|>\HCode + {</span>}% +>>> + +\<config math within mtext\><<< +\Configure{$}% + {\EndPauseMathClass \HCode{<span \Hnewline + class="text-math">}\mtextfalse + |<end mtext space|>}% + {\HCode{</span>}|<start mtext space|>\PauseMathClass \mtexttrue}% + {}% +>>> + + + +\<start mtext space\><<< +\ht:special{t4ht@,&\#x00A0;}% +>>> +\<end mtext space\><<< +\ht:special{t4ht@,}% +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Fonts} +%%%%%%%%%%%%%%%%%% + + + +\<configure jsml-math fontmath\><<< +\def\bold:version{bold} +\Configure{mathbf}% + {\bgroup \HCode{<span class="mathvariant-bold">% + <BREAK SIZE="small"/>% + \add:vdescription{font}{bold}<PROS PITCH="-10" >}}% + {\HCode{</PROS><BREAK SIZE="small"/></span>}\egroup }% +\Configure{mathit}% + {\bgroup \HCode{<span + class="mathvariant-\ifx + \bold:version\math@version bold-\fi italic">}}% + {\HCode{</span>}\egroup }% +\Configure{mathrm}% + {\bgroup \HCode{<span class="mathvariant-normal">}}% + {\HCode{</span>}\egroup }% +\Configure{mathsf}% + {\bgroup \HCode{<span + class="mathvariant-\ifx + \bold:version\math@version bold-\fi sans-serif">}}% + {\HCode{</span>}\egroup }% +\Configure{mathtt}% + {\bgroup \HCode{<span class="mathvariant-monospace">}}% + {\HCode{</span>}\egroup }% +>>> + +%%%%%%%%%%%%%%%%%% +\section{Theorems} +%%%%%%%%%%%%%%%%%% + + +\<configure jsml latex\><<< +\Configure{newtheorem} + {\ifvmode\IgnorePar\fi\EndP + \HCode{<BREAK SIZE="medium"/>% + <PARA><div class="newtheorem">}\par\noindent + \HCode{<SENT><PROS PITCH="-10" ><span class="theorem-head">}} + {\HCode{</span></PROS></SENT><BREAK SIZE="small"/>}} + {\EndP\IgnorePar\HCode{</div></PARA><BREAK SIZE="medium"/>}\ShowPar\par} +>>> + +\<configure jsml acm-proc-article-sp\><<< +\Configure{proof} + {\ifvmode\IgnorePar\fi\EndP + \HCode{<BREAK SIZE="medium"/>% + <PARA><div class="newtheorem" title="proof">}\par\noindent + \HCode{<SENT><PROS PITCH="-10" ><span class="theorem-head">}} + {\HCode{</span></PROS></SENT><BREAK SIZE="small"/>}} + {\EndP\IgnorePar\HCode{</div></div></PARA><BREAK SIZE="medium"/>}\ShowPar\par} +>>> + + +\<configure jsml amsthm\><<< +|<shared ams thm/cls|> +>>> + +\<ams art,proc,book\><<< +\ifx \deferred@thm@head\:UnDef\else + |<shared ams thm/cls|> +\fi +>>> + + +\<shared ams thm/cls\><<< +\Configure{proof} + {\ifvmode \IgnorePar \fi \EndP + \HCode{<div class="newtheorem" title="proof">}\par\ShowPar + \HCode{<span class="theorem-head">}\IgnorePar} + {\HCode{</span>}\ShowPar} + {\ifvmode \IgnorePar \fi \EndP \HCode{</div>}\par} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Others} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%% +\section{Boxed} +%%%%%%%%%%%%%%%%%% + +\<configure jsml-math amsmath\><<< +\Configure{boxed} + {\HCode{<span class="boxed">% + \add:description{begin-end}{\a:speak:boxed}}} + {\HCode{\add:description{begin-end}{\b:speak:boxed}</span>}} +>>> + + +\<configure jsml-math amsmath\><<< +\NewConfigure{speak:boxed}{2} +\Configure{speak:boxed} + {<BREAK SIZE="small"/>begin boxed<BREAK SIZE="small"/>} + {<BREAK SIZE="small"/>end boxed<BREAK SIZE="small"/>} +>>> + + + +%%%%%%%%%%%%% +\subsection{To Do} +%%%%%%%%%%%%% + +\begin{itemize} +\item +How do we deal with accents (e.g., \verb+ M\"obius+) +\end{itemize} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<plain,fontmath math\><<< +\Configure{MathClass}{0}{*}{<span class="mi"\Hnewline>}% + {</span>}{} +\Configure{MathClass}{1}{*}{<span class="before-mo-op" + title="speech-extra"> + </span><mo class="mo-op"\Hnewline + >}{</mo><span class="after-mo-op" + title="speech-extra"> </span>}{} +\Configure{MathClass}{2}{*}{<mo class="mo-bin">}{</mo>}{} +\Configure{MathClass}{3}{*}{<mo class="mo-rel">}{</mo>}{} +\:CheckOption{mathml-} \if:Option + \Configure{MathClass}{4}{*}{<mo class="mo-open">} + {</mo>}{} + \Configure{MathClass}{5}{*}{<mo class="mo-close">} + {</mo>}{} +\else + \Log:Note{for sources failing to produce + clean mathml code, try the command line option `mathml-'}% + \Configure{MathClass}{4}{*}{<span class="mrow"><mo class="mo-open">} + {</mo><span class="mrow">}{} + \Configure{MathClass}{5}{*}{</span><mo class="mo-close">} + {</mo></span>}{} +\fi +\Configure{MathClass}{6}{*}{<mo class="mo-punc">}{</mo>}{} +\Configure{MathClass}{7}{*}{<span class="mn">}{</span>} + {0123456789} +\Configure{FormulaClass}{0}{}{}{} +\Configure{FormulaClass}{1}{}{}{} +\Configure{FormulaClass}{2}{}{}{} +\Configure{FormulaClass}{3}{}{}{} +\Configure{FormulaClass}{4}{}{}{} +\Configure{FormulaClass}{5}{}{}{} +\Configure{FormulaClass}{6}{}{}{} +>>> + + + + + +\<configure jsml-math fontmath\><<< +\def\:tempd#1#2{% + \expandafter\def\csname #1\endcsname{\mathchar"13#2\relax}% + \MathSymbol\mathop{#1}% + \expandafter\def\csname #1:limits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\limits}% + \expandafter\def\csname #1:nolimits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\nolimits}% + \expandafter\edef\csname n:#1:\endcsname{\noexpand\ifDisplayMath + \noexpand\expandafter \expandafter\noexpand \csname #1:limits\endcsname + \noexpand\else \noexpand\expandafter + \expandafter\noexpand + \csname #1:nolimits\endcsname\noexpand\fi}% + \expandafter\pend:def\csname n:#1:\endcsname{\ifDisplayMath + \mathop:prefix{mathsize-big}\fi}% +} +\:tempd{bigcap}{54} +\:tempd{bigcup}{53} +\:tempd{bigodot}{4A} +\:tempd{bigoplus}{4C} +\:tempd{bigotimes}{4E} +\:tempd{bigsqcup}{46} +\:tempd{biguplus}{55} +\:tempd{bigvee}{57} +\:tempd{bigwedge}{56} +\:tempd{coprod}{60} +\:tempd{intop}{52} +\:tempd{ointop}{48} +\:tempd{prod}{51} +\:tempd{sum}{50} +>>> + +%%%%%%%%%%%%% +\subsection{amsopname} +%%%%%%%%%%%%% + + + + +\<configure jsml-math amsopn\><<< +\Configure{qopname} + {\Configure{mathop}{*} + {<mo class="mo-qopname"> <span>} + {</span> </mo>} + {}} +>>> diff --git a/support/TeX4ht/source/tex4ht-mathjax.tex b/support/TeX4ht/source/tex4ht-mathjax.tex new file mode 100644 index 0000000000..79b3ab8fe0 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-mathjax.tex @@ -0,0 +1,190 @@ +% $Id: tex4ht-mathjax.tex 904 2021-04-16 20:30:30Z karl $ +% compile: latex tex4ht-mathjax +% +% Copyright 2018-2021 TeX Users Group +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{mathjax-latex-4ht} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Michal Hoftich}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +\<mathjax-latex-4ht\><<< +% mathjax-latex-4ht.sty (|version), generated from |jobname.tex +% Copyright 2018-2021 TeX Users Group +|<TeX4ht copywrite|> +|<required packages|> +|<defined commands|> +\AtBeginDocument{% +|<configurations|> +} +\endinput +>>> + +\<required packages\><<< +\RequirePackage{etoolbox,expl3,environ} +>>> + +The \verb|\alteqtoks| command saves the used command in HTML. It uses detokenize command +to insert arguments verbatim. The side effect of this is that detokeize inserts space +after each control sequence. This is completely valid TeX code, but earlier versions of +MathJax didn't like that, rendering resulted in error. + +Fortunatelly, MathJax 3 supports these spaces, so we can remove regular expressions for space handling. +The original code was this: + +% % convert \ { to \:{ +% \regex_replace_all:nnN { \x{5C} \x{20} \x{7B} } { \x{5C} \x{3A} \x{7B} } \l_tmpa_tl +% % delete spaces before left brackets +% \regex_replace_all:nnN { \x{20} \x{7B} } { \x{7B} } \l_tmpa_tl +% % replace \\:{ back to \\ { -- this can be introduced by the previous regex +% \regex_replace_all:nnN { \x{5C} \x{5C} \x{3A} \x{7B} } { \x{5C} \x{5C} \x{20} \x{7B} } \l_tmpa_tl + + +We still use regula expressions to escape invalid XML characters to entities, so it works only with LaTeX. + +\<defined commands\><<< +\ExplSyntaxOn +\cs_new_protected:Npn \alteqtoks #1 +{ + \tl_set:Nx \l_tmpa_tl {\detokenize{#1}} + % % replace < > and & with xml entities + \regex_replace_all:nnN { \x{26} } { & } \l_tmpa_tl + \regex_replace_all:nnN { \x{3C} } { < } \l_tmpa_tl + \regex_replace_all:nnN { \x{3E} } { > } \l_tmpa_tl + \tl_set:Nx \l_tmpb_tl{ \l_tmpa_tl } + \HCode{\l_tmpb_tl} +} +\ExplSyntaxOff + +>>> + +Provide configuratio for MathJax + +\<defined commands\><<< +\NewConfigure{MathJaxConfig}{1} +>>> + +The following commands are used for patching of the standard math commands and +environments. They will then keep the LaTeX code unchanged. + +\<defined commands\><<< + +\long\def\AltlMath#1\){\expandafter\alteqtoks{\(#1\)}\)} +\long\def\AltlDisplay#1\]{\alteqtoks{\[#1\]}\]} +\long\def\AltMathOne#1${\alteqtoks{\(#1\)}$} +% this seems a bit hacky -- we need to skip some code inserted at the +% beginning of each display math +\long\def\AltlDisplayDollars\fi#1$${\alteqtoks{\[#1\]}$$} + +\newcommand\VerbMathToks[2]{% + \alteqtoks{\begin{#2} + #1 + \end{#2}}% +} +\newcommand\VerbMath[1]{% +\ifcsdef{#1}{% + \RenewEnviron{#1}{% + \NoFonts\expandafter\VerbMathToks\expandafter{\BODY}{#1}\EndNoFonts% + } +}{}% +} +>>> + +The \verb|\fixmathjaxtoc| command is used for patching commands which should +keep their verbatim appearance in the TOC + +\<defined commands\><<< +\def\fixmathjaxtoc#1{\Configure{writetoc}{\def#1{\detokenize{#1}}}} +>>> + +Some math commands cause issues when used in sections, so we will deactivate them. + +\<defined commands\><<< +\def\fixmathjaxsec#1{\def#1{\detokenize{#1}}} +>>> + +Require verbatim math environments. + +\<configurations\><<< +\VerbMath{subarray} +\VerbMath{smallmatrix} +\VerbMath{matrix} +\VerbMath{pmatrix} +\VerbMath{bmatrix} +\VerbMath{Bmatrix} +\VerbMath{vmatrix} +\VerbMath{Vmatrix} +\VerbMath{cases} +\VerbMath{subequations} +\VerbMath{aligned} +\VerbMath{alignedat} +\VerbMath{gathered} +\VerbMath{gather} +\VerbMath{gather*} +\VerbMath{alignat} +\VerbMath{alignat*} +\VerbMath{xalignat} +\VerbMath{xalignat*} +\VerbMath{xxalignat} +\VerbMath{align} +\VerbMath{align*} +\VerbMath{flalign} +\VerbMath{flalign*} +\VerbMath{split} +\VerbMath{multline} +\VerbMath{multline*} +\VerbMath{equation} +\VerbMath{equation*} +\VerbMath{math} +\VerbMath{displaymath} +\VerbMath{eqnarray} +\VerbMath{eqnarray*} +>>> + +It is necessary to reset env configurations for multiline +environments, because default TeX4ht configurations turn +them into pictures. + +\<configurations\><<< +\ConfigureEnv{gather}{}{}{}{} +\ConfigureEnv{gather*}{}{}{}{} +\ConfigureEnv{multline}{}{}{}{} +\ConfigureEnv{multline*}{}{}{}{} +>>> + + +Fixes for tables of contents. + +\<configurations\><<< +\fixmathjaxsec\left +\fixmathjaxsec\right +\fixmathjaxtoc\int +\fixmathjaxtoc\, +\fixmathjaxtoc\sin +\fixmathjaxtoc\cos +\fixmathjaxtoc\tan +\fixmathjaxtoc\arcsin +\fixmathjaxtoc\arccos +\fixmathjaxtoc\arctan +\fixmathjaxtoc\csc +\fixmathjaxtoc\sec +\fixmathjaxtoc\cot +\fixmathjaxtoc\sinh +\fixmathjaxtoc\cosh +\fixmathjaxtoc\tanh +\fixmathjaxtoc\coth +\fixmathjaxtoc\log +\fixmathjaxtoc\ln +\fixmathjaxtoc\sum +\fixmathjaxtoc\( +\fixmathjaxtoc\) +>>> diff --git a/support/TeX4ht/source/tex4ht-mathltx.tex b/support/TeX4ht/source/tex4ht-mathltx.tex new file mode 100644 index 0000000000..6890d0091f --- /dev/null +++ b/support/TeX4ht/source/tex4ht-mathltx.tex @@ -0,0 +1,4149 @@ +% $Id: tex4ht-mathltx.tex 184 2016-07-04 17:35:09Z karl $ +% compile 3 times: latex tex4ht-mathltx +% or xhlatex tex4ht-mathltx "html,3,sections+" +% +% Copyright 2009-2016 TeX Users Group +% Copyright 2005-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{mathltx,html-mltx} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Constructs} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Background} +%%%%%%%%%%%%%%%%%% + +\Link[http://www.math.union.edu/\string + ~dpvc/jsMath/welcome.html]{}{}jsmath\EndLink + + +\begin{verbatim} +<SCRIPT + SRC="http://www.math.union.edu/~dpvc/jsMath/jsMath/jsMath.js"></SCRIPT> +<NOSCRIPT> +<DIV STYLE="color:#CC0000; text-align:center"> +<B>Warning: <A HREF="http://www.math.union.edu/locate/jsMath">jsMath</A> +requires JavaScript to process the mathematics on this page.<BR> +If your browser supports JavaScript, be sure it is enabled.</B> +</DIV> +<HR> +</NOSCRIPT> + +<DIV CLASS="math"> +\left(a^b\right) +</DIV> + + +<STYLE TYPE="text/css"> + .math {font-size: 67%;} +</STYLE> + + <SPAN CLASS="math">f(u)</SPAN> + +\end{verbatim} + +\begin{verbatim} +htlatex try "xhtml,mathltx" " -cmozhtf" +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The equation Environment} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<mathltx latex\><<< +\let\A:equation|=\a:equation +\let\B:equation|=\b:equation +\let\C:equation|=\c:equation +\Configure{equation} + {\A:equation|<math display in equation|>} + {\B:equation}{\C:equation} +>>> + +\<configure html-mltx latex\><<< +\Configure{equation} + {\IgnorePar|<inline end-par comment|>\EndP + \HCode{<table class="equation"><tr><td>}\IgnorePar + |<math display in equation|>} + {\ifvmode \IgnorePar\fi\EndP\HCode{</td><td class="eq-no">}} + {\HCode{</td></tr></table>}|<try inline par|>} +\Css{.equation td{text-align:center; vertical-align:middle; }} +\Css{td.eq-no{ width:5\%; }} +\Css{table.equation { width:100\%; } } +>>> + +\<math display in equation\><<< +\csname a:equation\string$\string$\endcsname +>>> + +\<mathltx latex\><<< +\NewConfigure{equation$$}{1} +\Configure{equation$$} + {\Configure{$$} + {\Configure{@math}{div}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP} + {\DisplayMathtrue}% + } +>>> + + + + +\<block display\><<< +display="block" +>>> + + +\<inline display\><<< +display="inline" +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{AmsMath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<amsmath mathltx\><<< +\Configure{equation} + {\Configure{gather} + {\HCode{<mtable\Hnewline + \mml:class="equation"><mtr><mtd>}\IgnorePar } + {\HCode{</mtd></mtr></mtable>}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{</mtd><mtd>}\fi } + {} + }{}{} +\Configure{equation*} + {\Configure{gather*} + {\HCode{<mtable\Hnewline + \mml:class="equation-star"><mtr><mtd>}\IgnorePar } + {\HCode{</mtd></mtr></mtable>}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{</mtd><mtd>}\fi } + {} + }{} +\Css{.equation-star td{text-align:center; }} +\Css{table.equation-star { width:100\%; }} +>>> + + + +\<amsmath html-mltx pre 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="equation"><tr><td>}% + |<amsmath equation pre 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td><td class="eq-no">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="equation-star"><tr><td>}% + |<amsmath equation pre 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \IgnoreIndent\par} +>>> + + +\<amsmath html-mltx jan 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="EQUATION"><tr><td>}% + |<amsmath equation jan 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td><td class="eq-no">}% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td></tr></table>}% + \IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="EQUATION"><tr><td>}% + |<amsmath equation jan 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td></tr></table>}% + \IgnoreIndent\par} +>>> + + +\<amsmath html-mltx july 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<table class="equation"><tr><td>}% + |<amsmath equation july 2000|>% + |<math display in amsmath equation|>% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td><td class="eq-no">}% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \ShowPar\IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<table class="equation-star"><tr><td>}% + |<amsmath equation july 2000|>% + |<math display in amsmath equation|>% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \ShowPar\IgnoreIndent\par} +>>> + + + +\<math display in amsmath equation\><<< +\csname a:equation\string$\string$\endcsname +>>> + +\<configure html-mltx amsmath\><<< +\Configure{equation$$} + {\Configure{$$} + {\IgnorePar \Configure{@math}{div}\EndP\DviMath + \HCode{\string\begin{equation}}} + {\HCode{\string\end{equation}}\EndDviMath\EndP} + {\DisplayMathtrue}% + } +>>> + + +\<amsmath equation jan 2000\><<< +|<amsmath equation july 2000|>% +>>> + + + + + + + +\<amsmath equation july 2000\><<< +\Configure{gather} + {} + {} + {} + {} + {} + {}% +>>> + +\<amsmath equation pre 2000\><<< +\Configure{$$}{}{}{}% +\Configure{gather} + {\Configure{$$} + {\Configure{@math}{\mml:class="equation"}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP}% + {}% + \IgnorePar + }{}{}{}{}{} +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Mathltx} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +\section{?????} +%%%%%%%%%%%%%%%%% + + + +\<configure mathltx Preamble\><<< +\ifx \a:mathltx\:UnDef + \NewConfigure{mathltx}{1} + \Configure{mathltx}{} +\fi +\def\mml:class{class} +>>> + + +\<plain,latex mathltx\><<< +|<nolimit functions|> +|<limit functions|> +>>> + + +\<plain,latex mathltx\><<< +\let\A:displaylines|=\a:displaylines +\let\B:displaylines|=\b:displaylines +\let\C:displaylines|=\c:displaylines +\let\D:displaylines|=\d:displaylines +\Configure{displaylines} + {\ifmmode + \def\A:displaylines{\HCode{<mtable + \mml:class="displaylines">}}% + \def\B:displaylines{\HCode{</mtable>}}% + \def\C:displaylines{\HCode{<mtr\Hnewline + \mml:class="displaylines"><mtd>}}% + \def\D:displaylines{\HCode{</mtd></mtr>}}% + \fi + \A:displaylines} + {\B:displaylines} {\C:displaylines}{\D:displaylines} +>>> + + + +\<mathltx m:env\><<< +\def\m:env#1{\HCode{<mtable + \mml:class="#1"><mtr><mtd>}% + \def\endm:env{\HCode + {</mtd></mtr></mtable>}}} +>>> + + +\<amstex.tex mathltx\><<< +\Configure{pmatrix} + {\bgroup\m:env{pmatrix}} + {\endm:env\egroup} +\Configure{multline} + {\HCode{<mtable\mml:class="multline">}} {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline\mml:class="multline"><mtd>}}{\HCode{</mtd></mtr>}} +\Configure{smallmatrix} + {\HCode{<mtable\mml:class="smallmatrix">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline\mml:class="smallmatrix">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline\mml:class="smallmatrix">}} + {\HCode{</mtd>}} +\Configure{bmatrix} + {\bgroup\m:env{bmatrix}} + {\endm:env\egroup} +\Configure{vmatrix}{\bgroup\m:env{vmatrix}}{\endm:env\egroup} +\Configure{Vmatrix}{\bgroup\m:env{Vmatrix}}{\endm:env\egroup} +\Configure{aligned} + {\HCode{<mtable\mml:class="aligned">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline\mml:class="aligned">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline\mml:class="aligned">}} + {\HCode{</mtd>}} +\Configure{xalignat} + {\HCode{<mtable\mml:class="xalignat">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="xalignat">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline \mml:class="xalignat">}} + {\HCode{</mtd>}} +\Configure{xxalignat} + {\HCode{<mtable \mml:class="xxalignat">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="xxalignat">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline \mml:class="xxalignat">}} + {\HCode{</mtd>}} +\Configure{alignedat} + {\HCode{<mtable \mml:class="alignedat">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="alignedat">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline \mml:class="alignedat">}} + {\HCode{</mtd>}} +\Configure{gathered} + {\HCode{<mtable \mml:class="gathered">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="gathered">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline \mml:class="gathered">}} + {\HCode{</mtd>}} +>>> + + +\<mathltx\><<< +% mathltx.4ht (|version), generated from |jobname.tex +% Copyright 2009-2014 TeX Users Group +% Copyright |CopyYear.2005. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +\<html-mltx\><<< +% html-mltx.4ht (|version), generated from |jobname.tex +% Copyright 2009-2016 TeX Users Group +% Copyright |CopyYear.2005. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +\<configure mathltx tex4ht\><<< +|<tex compiler mathltx|> +|<sub, sup, subsup|> +|<limits sub, sup, subsup|> +>>> + + + + + + + + + + +\<html4 font decorations\><<< +\Configure{htf}{0}{+}{<span\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>}% +\Configure{htf}{1}{+}{<img\Hnewline + src="}{" alt="}{" class="}{\%s}{-\%d}{x-x-\%x}{"\xml:empty>}% +\Configure{htf}{3}{+}{<img\Hnewline + src="}{" alt="}{" class="\%s-}{\%s}{-\%d}{x-x-\%x}% + {" style="text-align:middle;"\xml:empty>}% +\Configure{htf}{4}{+}{<small\Hnewline + class="}{}{}{}{}{small-caps">}{</small>}% +\Configure{htf}{6}{+}{<u\Hnewline + class="}{}{}{}{}{underline">}{</u>}% +\Configure{htf}{8}{+} + {<sup class="htf"><strong>}{}{}{}{}{}{</strong></sup>}% +\Configure{htf}{10}{+} + {<span class="htf-cmbx">}{}{}{}{}{}{</span>}% +\Configure{htf}{12}{+} + {<span\Hnewline class="htf-calligraphy">}{}{}{}{}{}{</span>}% +>>> + +\<no html4 font decorations\><<< +\Configure{htf}{0}{+}{}{}{}{}{}{}{}% +\Configure{htf}{1}{+}{}{}{}{}{}{}{}% +\Configure{htf}{3}{+}{}{}{}{}{}{}{}% +\Configure{htf}{4}{+}{}{}{}{}{}{}{}% +\Configure{htf}{6}{+}{}{}{}{}{}{}{}% +\Configure{htf}{8}{+}{}{}{}{}{}{}{}% +\Configure{htf}{10}{+}{}{}{}{}{}{}{}% +\Configure{htf}{12}{+}{}{}{}{}{}{}{}% +>>> + + + + + +\<configure mathltx tex4ht\><<< +\def\mml:htfsym{\Configure + {htf}{254}{+}{<mglyph\Hnewline fontfamily="}{\%s"}{ + index="\%s"}{ mathsize="\%d\%\%"}{}{ alt="}{"/>}} +\def\ext:htfsym{\Configure{htf}{254}{+}{}{}{}{}{}{}{}} +>>> + + +\<configure mathltx-mml tex4ht\><<< +\append:def\mml:htfsym{|<no html4 font decorations|>} +\append:def\ext:htfsym{|<html4 font decorations|>} +>>> + + +We reserve code 254 (and 255) for unknown symbols. + + + + \<configure mathltx latex\><<< +\:CheckOption{core}\if:Option \expandafter\endinput \fi +|<mathltx latex|> +|<plain,latex mathltx|> +>>> + +\<configure mathltx fontmath\><<< +|<mathltx plain,fontmath|> +>>> + +\<configure mathltx plain\><<< +\:CheckOption{core}\if:Option \expandafter\endinput \fi +|<mathltx plain|> +|<mathltx plain,fontmath|> +|<plain,latex mathltx|> +>>> + +\<mathltx plain,fontmath\><<< +|<rlbabel everypar|> +|<plain,fontmath math classes|> +>>> + +\<configure mathltx amsmath\><<< +|<arr amsmath, amstex1|> +|<amsmath mathltx|> +|<amsmath symbols|> +>>> + +\<configure mathltx amsmath\><<< +\Configure{intertext} + {\IgnorePar \ifinalign@ + \HCode{</mtd></mtr><\a:mathltx + mtr><mtd columnspan="\HCol" + \mml:class="intertext">}% + \else \ifingather@ + \HCode{<mtr><mtd columnspan="\HCol" + \mml:class="intertext">}% + \fi\fi + \AA:text{intertext}% + } + {\BB:text \ifvmode \IgnorePar \fi \EndP\ifinalign@ + \HCode{</mtd></mtr><\a:mathltx + mtr><mtd>}% + \else \ifingather@ + \HCode{</mtd></mtr>}% + \fi\fi + } +>>> + + + +\<configure mathltx amsmath\><<< +\Configure{maketag} + {\ifmathltx + \ifmtext \expandafter\expandafter\expandafter\no:maketag\fi + \else \expandafter\no:maketag\fi + \AA:text{maketag}\hbox\bgroup\:gobbleIII :@:} + {\egroup\BB:text } +\def\no:maketag#1:@:#2\b:maketag{\hbox{#2}} +>>> + + +\<configure mathltx amstext\><<< +\Configure{text}{\AA:text{text}}{\BB:text} +>>> + + +\<amsmath symbols\><<< +\def\:tempc{\DOTSI\protect\:idotsint} +\HLet\idotsint|=\:tempc +\def\:idotsint{% + \mathop{\intop\cdotp\cdotp\cdotp\intop }\ilimits@ +} +>>> + +\<configure mathltx amsopn\><<< +|<amsopn / amstex.sty mathltx|> +>>> + +\<configure mathltx amstex1\><<< +% amstex.sty +|<arr amsmath, amstex1|> +|<amstex.sty mathltx|> +|<amsopn / amstex.sty mathltx|> + >>> + +\<configure mathltx amstex\><<< +% amstex.tex +|<mathltx m:env|> +|<amstex.tex mathltx|> +>>> + + \<configure mathltx vanilla\><<< + |<vanilla mathltx|> + >>> + + \<plain,latex mathltx\><<< +\let\mathltx:on|=\relax +\Configure{ } + {\ifmathltx \ifmtext \space \else\HCode{\string\ }\fi + \else \:nbsp\fi} +>>> + + +\<mathltx latex\><<< +\Configure{hspace} + {\ifmathltx\ifmtext\else + \HCode{\string\l:brace\the\tmp:dim\r:brace}\fi\fi}{}{ } +>>> + + + + +\<mathltx latex\><<< +\Configure{romannumeral} + {\ifmathltx\ifmtext\else \HCode{<mrow \mml:class="romannumeral">}\fi\fi} + {\ifmathltx\ifmtext\else \HCode{</mrow>}\fi\fi} +>>> + +\<configure html-mltx latex\><<< +\Configure{romannumeral} + {\ifmtext\else + \HCode{<\ifmathltx mrow \else span \fi \mml:class="romannumeral">}\fi + } + {\ifmtext\else \HCode{</\ifmathltx mrow\else span\fi>}\fi } +>>> + + +\<configure html-mltx latex\><<< +\Configure{hspace} + {\ifmathltx \ifmtext \else + \HCode{\string\l:brace\the\tmp:dim\r:brace}\fi\fi} + {}{\ifmathltx \else \:nbsp\fi} +>>> + + + \<configure html-mltx plain\><<< +|<plain,latex html-mltx|> +>>> + + +\<configure html-mltx latex\><<< +|<plain,latex html-mltx|> +>>> + +\<plain,latex mathltx\><<< +\def\:tempc#1{\HCode{\string\widehat\l:brace}#1\HCode{\r:brace}} +\HLet\widehat=\:tempc +\def\:tempc#1{\HCode{\string\widetilde\l:brace}#1\HCode{\r:brace}} +\HLet\widetilde=\:tempc +>>> + +\<plain,latex html-mltx\><<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathltx:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|<temp hcode accents|>% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\ifmmode + \Tg<mrow + \mml:class="accent#1">\mathord{#3}\Tg</mrow>% + \else \HCode{<span class="accent#1">}#3\HCode{</span>}% + \fi + }% + \fi +\fi +>>> + + + + \<plain,latex mathltx\><<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathltx:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|<temp hcode accents|>% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\Tg<mrow + \mml:class="accent#1">\mathord{#3}\Tg</mrow>% + }% + \fi +\fi +>>> + + + + + + + +\<temp hcode accents\><<< +\leavevmode +\if !#1!\ht:special{t4ht@+&{35}x#2;}% +\else \expandafter \ifx\csname U#2#1\endcsname\relax + \ht:special{t4ht@+&{35}x#2;}% +\else + \ht:special{t4ht@+&{35}x\csname U#2#1\endcsname;}% +\fi \fi x% +>>> + + +The special replaces the `x' character. + + +\<configure mathltx Preamble\><<< +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{VERSION,*XML-STYLESHEET} +\fi +>>> + + +\<mathltx dtd\><<< +\Configure{DOCTYPE}{\HCode + {<!DOCTYPE html |<xhtml+mathltx dtd|>% + >\Hnewline +}} +>>> + + +\<xhtml+mathltx dtd\><<< +PUBLIC + "-//W3C//DTD XHTML 1.1 plus Mathltx 2.0//|<dtd lang|>"\Hnewline + "http://www.w3.org/Math/DTD/mathltx2/xhtml-math11-f.dtd" +>>> + + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + +\<plain,latex mathltx\><<< +\let\mml:TeX|=\TeX +\def\TeX{\ifmathltx + \HCode{<mtext + \mml:class="TeX">TeX</mtext>}\else \mml:TeX\fi} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{TeX Engine} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<sub, sup, subsup\><<< +\Configure{SUB} + {\Send{BACK} + {\l:brace}\HCode{\r:brace\string_\l:brace}\trap:base} + {\HCode{\r:brace}} +\Configure{SUP} + {\Send{BACK} + {\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base} + {\HCode{\r:brace}} +\Configure{SUBSUP} + {\Send{BACK} + {\l:brace}\HCode{\r:brace\string_\l:brace}\trap:base} + {\HCode{\r:brace\string^\l:brace}\trap:base} + {\HCode{\r:brace}} +\def\trap:base{{\HCode{}}} +>>> + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + +\<mathltx Link\><<< +\LinkCommand\mtxt:link{mtext, xlink:href, id,,,} +\LinkCommand\msp:link{mstyle-3,% + xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href, + id, \mml:class="label",,} +\let\M:Link|=\Link +\def\Link{\ifmathltx + \ifmtext |<end mtext space|>\HCode{\%\Hnewline\%\string\begin{ref}}% + \bgroup \let\:newlnch\space + \expandafter\expandafter\expandafter\mtxt:link + \else \expandafter\expandafter\expandafter\msp:link\fi + \else \expandafter\M:Link\fi} +\let\M:EndLink|=\EndLink +\def\EndLink{\ifmathltx + \ifmtext |<end mtext space|>% + \egroup \HCode{\%\Hnewline\%}\Endmtxt:link + \HCode{\string\end{ref}\Hnewline}|<start mtext space|>% + \else \HCode{</mstyle-5><!--endlabel-->}\fi + \else \expandafter\M:EndLink\fi} +>>> + + + + + + +\<tex compiler mathltx\><<< +\Configure{DviMath} + {\HCode{<!--l. \the\inputlineno-->}% + \a:DviMathltx \mathltxtrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule \a:math + |<sv dvimath par|>\HCode{<![CDATA[}\IgnorePar} + {\HCode{]]>}\EndIgnoreRule + \ifOption{mml-fonts}{}{|%\ext:htfsym|%\EndNoFonts}% + \mathltxfalse \After:Math \b:DviMathltx + |<recall dvimath par|>} +\NewConfigure{DviMathltx}{2} +>>> + + +\<tex compiler mathltx\><<< +\def\After:Math{\After:EndMath + \global\let\After:EndMath=\empty} +\let\After:EndMath=\empty +\def\AfterMath#1{\append:def\After:EndMath{#1}% + \global\let\After:EndMath=\After:EndMath} +>>> + +\<configure mathltx latex\><<< +\let\m:Make:Label\Make:Label +\def\Make:Label#1#2{% + \ifmathltx \edef\:temp{#1}% + \expandafter\AfterMath\expandafter{\expandafter\Make:Label + \expandafter{\:temp}{#2}}% + \else \m:Make:Label{#1}{#2}% + \fi +} +>>> + + + +\<tex compiler mathltx\><<< +\newif\ifmathltx \mathltxfalse +\newif\ifmtext \mtextfalse +|<mathltx Link|> +\NewConfigure{math}{1} +\NewConfigure{@math}{1} +\def\IgnoreRule{\ht:special{t4ht@\string_}} +\def\EndIgnoreRule{\ht:special{t4ht@\string_\string_}} +\Configure{$$} + {\Configure{@math}{|<block display|>}\IgnorePar + |<inline end-par comment|>\EndP\DviMath + \HCode{\string $\string $}} + {\HCode{\string $\string $}\EndDviMath + \ShowPar\par{\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +\Configure{$} + {\Configure{@math}{|<inline display|>}\DviMath + \HCode{\string $}} + {\HCode{\string $}\EndDviMath}{} + +\newif\ifDisplayMath \DisplayMathfalse +>>> + + +\<display math-\><<< +\Configure{$$} + {\Configure{@math}{|<block display|>}\IgnorePar + |<inline end-par comment|>\EndP\DviMath } + {\EndDviMath\ShowPar\csname par\endcsname + {\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue}% +>>> + + + + +\<tex compiler mathltx\><<< +\Configure{radical} + {\HCode{\string\sqrt} + \special{t4ht\string~!e<\string{}% + \special{t4ht\string~!e>\string}}% + \special{t4ht\string~!ee/}% + \special{t4ht\string~!ese-}% + } +>>> + + + + +\<inline end-par comment\><<< +\ifvmode\else \HCode{<!--tex4ht:inline-->}\fi +>>> + + +\<?\><<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {<mrow\Hnewline + \mml:class="\expandafter\:gobble\string#1">}{</mrow>}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> + + +\<recall dvimath par\><<< +\sv:ignore +>>> + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +The \verb'\MathRow' requests a \verb'<mrow\Hnewline>...</mrow>', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + +\<tex compiler mathltx\><<< +\def\:MT{\ifmathltx m\fi} +\Configure{halignTB}{\HCode{<\:MT table }\halignTBL}{\HCode{>}} +\Configure{halignTBL} + {t}{\ifmathltx \HCode{ align="baseline 1" }\fi} + {b}{\ifmathltx \HCode{ align="baseline -1" }\fi} + {c}{\ifmathltx \HCode{ align="axis" }\fi} + {} +\def\t:HA{\HCode{</\:MT table>}} +\def\R:HA{\HCode{<\:MT tr \Hnewline style="vertical-align:baseline;">}} +\def\r:HA{\HCode{</\:MT tr>}} +\def\D:HA{\HCode{<\:MT td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}} +\def\d:HA{\HCode{</\:MT td>}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{latex.ltx} +%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure mathltx latex\><<< +\def\set:label#1{\ifmathltx + \HCode{\%\Hnewline\%\string\begin{label}}% + {\ht:special{t4ht@, }\let\:newlnch\space \mathltxfalse #1}% + \HCode{\string\end{label}\Hnewline}% + \else #1\fi +} +>>> + + +\<configure mathltx latexNO\><<< +\HAssign\set:labelN=0 +\def\set:label#1{\ifmmode + \gHAdvance\set:labelN by 1 + \expandafter\gdef\csname sl:\set:labelN\endcsname + {\set:label{#1}}% + \expandafter\aftergroup\csname sl:\set:labelN\endcsname + \else \gHAssign\set:labelN=0 #1\fi +} +>>> + + +\<start mtext space\><<< +\ht:special{t4ht@,&\#x00A0;}% +>>> + +\<start mtext space\><<< +\ht:special{t4ht@, }% +>>> + +\<end mtext space\><<< +\ht:special{t4ht@,}% +>>> + + +\<configure html-mltx latex\><<< +\Configure{newline} + {\ifmtext |<end mtext space|>\HCode{</mtext><mtext\Hnewline + \mml:class="newline">}% + |<start mtext space|>% + \else \Tg<br\Hnewline class="newline" />\fi} +>>> + +\<mathltx latex\><<< +\Configure{newline} + {|<end mtext space|>\HCode{</mtext><\a:mathltx + mtext\Hnewline \mml:class="newline">}|<start mtext space|>} +>>> + + + +\<mathltx latex\><<< +\Configure{[]} + {\Configure{@math}{|<block display|>}\csname a:mathltx[]\endcsname + \DviMath\HCode{\string\[}$$\DisplayMathtrue } + {$$\HCode{\string\]}\EndDviMath\csname b:mathltx[]\endcsname} +\Configure{()} + {\Configure{@math}{|<inline display|>}\csname a:mathltx()\endcsname + \DviMath\HCode{\string\(}$} + {$\HCode{\string\)}\EndDviMath\csname b:mathltx()\endcsname} +\NewConfigure{mathltx[]}{2} +\NewConfigure{mathltx()}{2} +|<config array|> +>>> + +\<configure html-mltx latex\><<< +\Configure{mathltx[]} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{<div class="\MathPar math-display">}} + {\HCode{</div>}|<try inline par|>} +\Css{div.math-display, div.par-math-display{text-align:center;}} +>>> + + + + +\<configure mathltx rlbabel\><<< +\Configure{[]} + {\Configure{@math}{|<block display|>}\csname a:mathltx[]\endcsname + \DviMath\Tg<mrow\Hnewline>$$\DisplayMathtrue } + {$$\Tg</mrow>\EndDviMath\csname b:mathltx[]\endcsname + \if@rl\else\beginR\fi } +>>> + + + + + +\<configure mathltx array\><<< +|<config array|> +>>> + +\<config array\><<< +\Configure{halignTB<>}{array}{\HCode{\Hnewline + equalrows="false" + equalcolumns="false" class="array"}<>\HAlign} +\Configure{array} + {\expandafter\tmp:toks\expandafter{\Clr}% + \HCode{\string\begin{array}{\the\tmp:toks}\Hnewline}} + {\ifvmode \IgnorePar\fi \HCode{\string\end{array}}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} + {} + {|<mtd array|>} + {} +\ConfigureEnv{array} + {\bgroup\Configure{$}{}{}{}} + {\egroup} + {}{} +>>> + +\<configure html-mltx latex\><<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + +\<configure html-mltx array\><<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + + +\<mtd array\><<< +\HCode{\ifnum \HCol>1 \a:math:amp\fi + \ifnum 1<\HMultispan + \string\multicolumn\l:brace\HMultispan\r:brace \fi}% +>>> + +\<mtd matrix\><<< +\HCode{\ifnum \HCol>1 \a:math:amp\fi + \ifnum 1<\HMultispan + \string\multicolumn\l:brace\HMultispan\r:brace \fi}% +>>> + +\<configure mathltx tex4ht\><<< +\NewConfigure{math:amp}{1} +\Configure{math:amp}{\string&} +>>> + + +\<insert Clr\><<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{<!---->}% +>>> + + + + + +\<mathltx latex\><<< +\def\:MM{m} +\Configure{HBorder} + {<mtr\Hnewline \mml:class="hline">} + {|<mml hline|>} + {</mtr>} + {<mtr\Hnewline \mml:class="cline">} + {<mtd></mtd>} + {|<mml hline|>} + {</mtr>} + {<mtr\Hnewline \mml:class="vspace" style="font-size:\HBorderspace">} + {<mtd\Hnewline></mtd>} + {</mtr>} +>>> + +\<configure html-mltx latex\><<< +\def\:MM{\ifmathltx m\fi} +\Configure{HBorder} + {<\:MM tr\Hnewline + \ifmathltx \expandafter\mml:class\else class\fi="hline">} + {\ifmathltx|<mml hline|>\else + <td><hr\xml:empty></td>\fi} + {</\:MM tr>} + {<\:MM tr\Hnewline + \ifmathltx \expandafter\mml:class\else class\fi ="cline">} + {<\:MM td></\:MM td>} + {\ifmathltx|<mml hline|>\else + <td><hr\xml:empty></td>\fi} + {</\:MM tr>} + {<\:MM tr\Hnewline + \ifmathltx \expandafter\mml:class\else class\fi="vspace" + style="font-size:\HBorderspace">} + {<\:MM td\Hnewline>\ifmathltx\else\string&\#x00A0;\fi + </\:MM td>} + {</\:MM tr>} +\Configure{halign} + {\EndP\halignTB{halign}} \t:HA + \R:HA\r:HA\D:HA\d:HA +>>> + + + +\<mml hline\><<< +<mtd><mo> \string&\#x0332; </mo></mtd> +>>> + + + + +\<mathltx latex\><<< +|<mathltx fonts|> +\let\A:fbox=\a:fbox +\let\B:fbox=\b:fbox +\let\OLDf:box=\fbox +\def\fbox{\relax\ifmmode + \Configure{fbox}{\leavevmode\Configure{HtmlPar}{}{}{}{}\IgnoreRule + \AA:text{fbox}}{\BB:text\EndIgnoreRule}\else + \Configure{fbox}{\leavevmode + \IgnoreRule\A:fbox}{\B:fbox\EndIgnoreRule}\fi + \OLDf:box} +\let\A:mbox|=\a:mbox +\let\B:mbox|=\b:mbox +\let\OLD:mbox|=\mbox +\def\mbox{\relax\ifmmode \Configure{mbox}{\AA:text{mbox}}{\BB:text}\else + \Configure{mbox}{\A:mbox}{\B:mbox}\fi\OLD:mbox} +|<mathltx text util|> +>>> + + +\<mathltx text util\><<< +\NewConfigure{@mtext}{1} +\Configure{@mtext}{\string\text} +\def\AA:text#1{|<config start mtext|>} +\def\BB:text{|<config end mtext|>} +>>> + + +\<config start mtext\><<< +\mtexttrue +\HCode{\a:@mtext\l:brace}|<start mtext space|>\PauseMathClass + |<config math within mtext|>% +>>> + + +\<config end mtext\><<< +\mtextfalse\EndPauseMathClass|<end mtext space|>\HCode + {\r:brace}% +>>> + +\<config math within mtext\><<< +\Configure{$}% + {\EndPauseMathClass \mtextfalse + |<end mtext space|>\HCode{\string$}}% + {\HCode{\string$}|<start mtext space|>\PauseMathClass \mtexttrue}% + {}% +>>> + + + + + +\<amstex.tex mathltx\><<< +|<mathltx text util|> +\Configure{text}{\AA:text{text}}{\BB:text} +\Configure{format} + {\HCode{<mtable \mml:class="format">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="format">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline \mml:class="format">}} + {\HCode{</mtd>}} +>>> + + + +\<amsmath mathltx\><<< +\Configure{above} + {\Send{GROUP}{0}{\l:brace}% + \HCode{\string\above\space \the\tmp:dim\space}\o:@@over:\:gobbleII} + {\Send{EndGROUP}{0}{\r:brace}} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<mfrac-4 linethickness="0"><mrow>}% + \HCode{</mrow>}\o:over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>} + \else + \Send{GROUP}{0}{<mfenced-1 separators=""\Hnewline + open="|<lr del 2|>" close="|<lr del 3|>"><mfrac-5 + linethickness="0"><mrow>}% + \HCode{</mrow>}\o:@@over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</\a:mathltx + mrow></mfrac></mfenced>} + \fi + } +>>> + + +\<configure mathltx tex4ht\><<< +\Configure{over} + {\Send{GROUP}{0}{\string\bgroup\space}} + {\HCode{\string\over\space}\Send{EndGROUP}{0}{\string\egroup\space}} +\Configure{atop} + {\Send{GROUP}{0}{\string\bgroup\space}} + {\HCode{\string\atop\space}\Send{EndGROUP}{0}{\string\egroup\space}} +\Configure{above} + {\Send{GROUP}{0}{<mfrac-6 linethickness="\the\tmp:dim"><mrow>}% + \HCode{</mrow>}\o:over:\:gobbleII} + {\HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>}} +>>> + +\<configure mathltx tex4ht\><<< +\Configure{abovewithdelims} + {\abovewithdelims:III} + {} +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<mfrac-7 linethickness="\the\tmp:dim"><mrow>}% + \HCode{</mrow>}\o:over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>} + \else + \Send{GROUP}{0}{<mfenced-2 separators=""\Hnewline + open="|<lr del 2|>" close="|<lr del 3|>"><mfrac-8 + linethickness="\the\tmp:dim"><mrow>}% + \HCode{</mrow>}\o:over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</ + mrow></mfrac></mfenced>} + \fi + \tmp:dim + } +\Configure{atopwithdelims} + {\atopwithdelims:III} + {} +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<mfrac-9 linethickness="0"><mrow>}% + \HCode{</mrow>}\o:atop: + \HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>} + \else + \Send{GROUP}{0}{<mfenced-3 separators=""\Hnewline + open="|<lr del 2|>" close="|<lr del 3|>"><mfrac-10 + linethickness="0"><mrow>}% + \HCode{</mrow>}\o:atop: + \HCode{<mrow>}\Send{EndGROUP}{0}{</\a:mathltx + mrow></mfrac></mfenced>} + \fi + } +\Configure{overwithdelims} + {\overwithdelims:III} + {} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<mfrac11><mrow>}% + \HCode{</mrow>}\o:over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>} + \else + \Send{GROUP}{0}{<mfenced-4 separators=""\Hnewline + open="|<lr del 2|>" close="|<lr del 3|>"><mfrac-12><mrow>}% + \HCode{</mrow>}\o:over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</ + mrow></mfrac></mfenced>} + \fi + } +>>> + + + +\<configure mathltx amsmath\><<< +\Configure{abovewithdelims} + {\abovewithdelims:III} + {} +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<mfra-13 linethickness="\the\tmp:dim"><mrow>}% + \HCode{</mrow>}\o:@@over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>} + \else + \Send{GROUP}{0}{\l:brace}% + \HCode{\string\abovewithdelims + |<lr del 2|>|<lr del 3|>\the\tmp:dim\space}\o:@@over: + \Send{EndGROUP}{0}{\r:brace}% + \fi + \tmp:dim + } +\Configure{atopwithdelims} + {\atopwithdelims:III} + {} +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<mfrac-14 linethickness="0"><mrow>}% + \HCode{</mrow>}\o:@@atop: + \HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>} + \else + \Send{GROUP}{0}{<mfenced-6 separators=""\Hnewline + open="|<lr del 2|>" close="|<lr del 3|>"><mfrac-1 + linethickness="0"><mrow>}% + \HCode{</mrow>}\o:@@atop: + \HCode{<mrow>}\Send{EndGROUP}{0}{</\a:mathltx + mrow></mfrac></mfenced>} + \fi + } +\Configure{overwithdelims} + {\overwithdelims:III} + {} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<mfrac-2><mrow>}% + \HCode{</mrow>}\o:@@over: + \HCode{<mrow>}\Send{EndGROUP}{0}{</mrow></mfrac>} + \else + \Send{GROUP}{0}{\l:brace}% + \HCode{\string\overwithdelims + |<lr del 2|>|<lr del 3|>}\o:@@over: + \Send{EndGROUP}{0}{\r:brace}% + \fi + } +>>> + + + +\<mathltx latex\><<< +\Configure{frac} + {\HCode{\string\frac\l:brace}} + {\HCode{\r:brace}\Configure{over}{}{}} + {\HCode{\l:brace}} + {\HCode{\r:brace}} +>>> + + + +\<configure html-mltx amsmath\><<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + |<amsmath html-mltx pre 2000|> + \else + |<amsmath html-mltx jan 2000|> + \fi +\else + |<amsmath html-mltx july 2000|> +\fi +>>> + + + +\<amsmath mathltx\><<< +\Configure{tmspace} + {\HCode{\string\tmspace{\textspace}}} +>>> + + + + + +\<try inline par\><<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + + + +\<mathltx fonts\><<< +\Configure{texttt} + {\ifmathltx \Configure{@mtext}{\string\texttt}\fi} + {}% +\Configure{textit} + {\ifmathltx \Configure{@mtext}{\string\textit}\fi} + {}% +\Configure{textrm} + {\ifmathltx \Configure{@mtext}{\string\textrm}\fi} + {}% +\Configure{textup} + {\ifmathltx \Configure{@mtext}{\string\textup}\fi} + {}% +\Configure{textsl} + {\ifmathltx \Configure{@mtext}{\string\textsl}\fi} + {}% +\Configure{textsf} + {\ifmathltx \Configure{@mtext}{\string\textsf}\fi} + {}% +\Configure{textbf} + {\ifmathltx \Configure{@mtext}{\string\textbf}\fi} + {}% +\Configure{textsc} + {\ifmathltx \Configure{@mtext}{\string\textsc}\fi} + {}% +\Configure{emph} + {\ifmathltx \Configure{@mtext}{\string\emph}\fi} + {}% +>>> + + + + +\<configure html-mltx latex\><<< +\:CheckOption{fonts} \if:Option +\Configure{texttt} + {\ifmathltx \Configure{@mtext}{\mml:class="texttt" mathvariant="monospace" }% + \else \HCode{<span class="texttt">}\fi} + {\ifmathltx \else \HCode{</span>}\fi} + \Configure{textit} + {\ifmathltx \Configure{@mtext}{\mml:class="textit" mathvariant="italic" }% + \else \HCode{<span class="textit">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} + \Configure{textrm} + {\ifmathltx \Configure{@mtext}{ \mml:class="textrm" mathvariant="normal" }% + \else \HCode{<span class="textrm">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} + \Configure{textup} + {\ifmathltx \Configure{@mtext}{ \mml:class="textup" mathvariant="normal" }% + \else \HCode{<span class="textup">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} + \Configure{textsl} + {\ifmathltx \Configure{@mtext}{ \mml:class="textst" mathvariant="italic" }% + \else \HCode{<span class="textsl">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} + \Configure{textsf} + {\ifmathltx \Configure{@mtext}{ \mml:class="textsf" mathvariant="sans-serif" }% + \else \HCode{<span class="textsf">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} + \Configure{textbf} + {\ifmathltx \Configure{@mtext}{ \mml:class="textbf" mathvariant="bold" }% + \else \HCode{<span class="textbf">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} + \Configure{textsc} + {\ifmathltx \Configure{@mtext}{ \mml:class="textsc" mathvariant="normal" }% + \else \HCode{<span class="textsc">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} + \Configure{emph} + {\ifmathltx \Configure{@mtext}{ \mml:class="emph" mathvariant="italic" }% + \else \HCode{<span class="emph">}\fi} + {\ifmathltx\else \HCode{</span>}\fi} +\fi +>>> + +The \verb+\bgroup...\egroup+ is to handle cases like +\verb+\nathbf{a}^x+. + + + +\<configure mathltx fontmath\><<< +\def\bold:version{bold} +\Configure{mathbf}% + {\bgroup \HCode{\string\mathbf\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathit}% + {\bgroup \HCode{\string\mathit\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathrm}% + {\bgroup \HCode{\string\mathrm\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathsf}% + {\bgroup \HCode{\string\mathsf\l:brace}}% + {\HCode{\r:brace}\egroup }% +\Configure{mathtt}% + {\bgroup \HCode{\string\mathtt\l:brace}}% + {\HCode{\r:brace}\egroup }% +>>> + +\<configure mathltx amsfonts\><<< +\Configure{mathbb}{}{} +\Configure{mathfrak}{}{} +>>> + + + +Used to be + +\begin{verbatim} + \Configure{mathrm}{\Tg<mi \mml:class="mathrm">\PauseMathClass}% + {\EndPauseMathClass\Tg</mi>}% + \Configure{mathbf}{\Tg<mi \mml:class="mathbf" + mathvariant="bold">\PauseMathClass}% + {\EndPauseMathClass\Tg</mi>}% +\end{verbatim} + + +\<configure html-mltx latex\><<< +\Css{math .texttt { font-family: monospace; }} +\Css{math .textit { font-style: italic; }} +\Css{math .textsl { font-style: oblique; }} +\Css{math .textsf { font-family: sans-serif; }} +\Css{math .textbf { font-weight: bold; }} +>>> + + + + + +\<plain,latex mathltx\><<< +\Configure{'} + {\let\:primes=\empty} + {\def\:tempa{\prime\prime}\ifx \:tempa\:primes + \HCode{''}\else + \def\:tempa{\prime\prime\prime}\ifx \:tempa\:primes + \HCode{'''}\else + \HCode{\:primes}\fi\fi + } + {\xdef\:primes{\:primes'}} +>>> + +LaTeX places the primes within superscript, and mathltx seems to follow +suit (maybe because of the use of latex fonts in mozilla). However, +unicode maps already seem to assume raised representation for the +primes. + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{plain.sty} +%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<mathltx plain\><<< + \Configure{eqalign} + {\HCode{<mtable \mml:class="eqalign">}} + {\HCode{</mtable>}} + {\HCode{<mtr \Hnewline \mml:class="eqalign">}} + {\IgnorePar\HCode{</mtr>}} + {\HCode{\ifnum \HCol=3 <mtd\Hnewline + \mml:class="eqalign3"></mtd>\fi + <mtd \Hnewline \mml:class="eqalign\HCol">}} + {\HCode{</mtd>}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Palin + LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + +\<plain,latex mathltx\><<< +\def\left#1{\bgroup \a:left{#1}\b:left{#1}} +\def\right#1{\a:right{#1}\b:right{#1}\egroup} +\Configure{left} + {} + {\HCode{\string\left\space}#1\bgroup} +\Configure{right} + {\egroup\HCode{\string\right\space}#1} + {} +\def\{{{\HCode{\back:slash\l:brace}}} +\def\}{{\HCode{\back:slash\r:brace}}} +\let\lbrace\{ +\let\rbrace\} +\def\def:DEL#1{\def\:DEL{#1}} +\def\check:DEL#1#2{\def\:tempa{#1}\ifx \:tempa\:DEL \def\:DEL{#2}\fi} +\NewConfigure{mfenced}[2]{\append:defI\def:DEL{\check:DEL{#1}{#2}}} +|</bigl, /bigr,... for mathltx|> +\:CheckOption{new-accents} \if:Option \else + |<config mathltx accents|> +\fi +\def\mathinner#1{\HCode{\string\mathinner\l:brace}#1\HCode{\r:brace}} +>>> + + +\<configure mathltx etex4ht\><<< +\def\:tempc#1{\a:middle\mathrel{\left:right#1\:EMPTY}\b:middle} +\HLet\middle=\:tempc +\NewConfigure{middle}{2} +\Configure{middle} + {\bgroup + \Configure{mathrel}{*} + {<mo \mml:class="MathClass-rel" + fence="true" stretchy="true" >} + {</mo>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +>>> + + +The \verb+\root ...\of {...}+ creates the following structure. + +\begin{verbatim} +PUSH + ...root value... +POP +PUSH + PUSH + PUSH + ...root sign characters with PUSH-POP... + POP + PUSH + RIGHT4: 15213546 + DOWN3: -1553322 + PUT_RULE: height: 26213 + length: 1197667 + DOWN3: 1553322 + PUSH + ...root content... + POP + POP + POP +POP +\end{verbatim} + + + +\<plain,latex mathltx\><<< +\Configure{root}{\rev:root}{}{} +\def\rev:root #1\b:root#2\c:root{% + \HCode{\string\root\l:brace}{#1}% + {\HCode{\r:brace\string \of\l:brace}#2}\HCode{\r:brace}} +\def\AccentMath#1{\relax\ifmmode #1\else $#1$\fi} +>>> + + +\<lr del 2\><<< +\expandafter +\ifx \csname \string#2:lr del\endcsname\relax #2\else + \csname \string#2:lr del\endcsname\fi +>>> + + +\<lr del 3\><<< +\expandafter +\ifx \csname \string#3:lr del\endcsname\relax #3\else + \csname \string#3:lr del\endcsname\fi +>>> + + +\<plain,latex mathltx\><<< +\NewConfigure{mfenced}[2]{\expandafter + \def\csname \string#1:lr del\endcsname{#2}} +|<plain,latex mfenced|> +>>> + +\<amsmath mathltx\><<< +\Configure{mfenced}{\lvert}{\string\lvert} |%vertical line|% +\Configure{mfenced}{\rvert}{\string\rvert} |%double vertical line|% +\Configure{mfenced}{\lVert}{\string\lVert} +\Configure{mfenced}{\rVert}{\string\rVert} +>>> + +\<amstex.sty mathltx\><<< +\Configure{mfenced}{\lvert}{\string\lvert} +\Configure{mfenced}{\rvert}{\string\rvert} +\Configure{mfenced}{\lVert}{\string\lVert} +\Configure{mfenced}{\rVert}{\string\rVert} +>>> + + + + + +\<plain,latex mfenced\><<< +\Configure{mfenced}{\||}{\string&\#x2225;} +\Configure{mfenced}{.}{} +\Configure{mfenced}{\langle}{\string&\#x27E8;} |%lang|% +\Configure{mfenced}{\rangle}{\string&\#x27E9;} |%rang|% +\Configure{mfenced}{\vert}{||} +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\{}{\string\{}}\:temp +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\}}{\string\}}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\lbrace}{\string\lbrace}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\rbrace}{\string\rbrace}}\:temp +\Configure{mfenced}{<}{\string&\#x003C;} |%lt|% +\Configure{mfenced}{>}{\string&\#x003E;} |%gt|% +\Configure{mfenced}{\lceil}{\string&\#x2308;} +\Configure{mfenced}{\rceil}{\string&\#x2309;} +\Configure{mfenced}{\lfloor}{\string&\#x230A;} +\Configure{mfenced}{\rfloor}{\string&\#x230B;} +\Configure{mfenced}{\Vert}{\string&\#x2225;} +\Configure{mfenced}{\rgroup}{)} +\Configure{mfenced}{\lgroup}{(} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\downarrow}{\string&\#x2193;} +\Configure{mfenced}{\uparrow}{\string&\#x2191;} +\Configure{mfenced}{\Uparrow}{\string&\#x21D1;} +\Configure{mfenced}{\updownarrow}{\string&\#x2195;} +\Configure{mfenced}{\Updownarrow}{\string&\#x21D5;} +\Configure{mfenced}{\Downarrow}{\string&\#x21D3;} +\Configure{mfenced}{\backslash}{\string&\#x2216;} +\Configure{mfenced}{\rmoustache}{\string&\#x25DD;} +\Configure{mfenced}{\lmoustache}{\string&\#x25DC;} +\Configure{mfenced}{\Arrowvert}{\string&\#x2225;} +\Configure{mfenced}{\arrowvert}{\string&\#x007C;} +>>> + +% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else +% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else +% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else +% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}% +% \fi\fi\fi\fi } +% \edef\lbrc:{\string{} \edef\rbrc:{\string}} + +% \HCode{\string#1;}% + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Amsmath} +%%%%%%%%%%%%%%%%%%%%% + + +\<amsmath mathltx\><<< +\edef\:tempc{\hskip -\noexpand\arraycolsep + \let\noexpand\@ifnextchar\noexpand\new@ifnextchar + \noexpand\array{*{\the\c@MaxMatrixCols}c}} +\HLet\env@matrix\:tempc +>>> + + +\<configure html-mltx amsmath\><<< +\Configure{@begin} + {split} + {\let\tagform@=\:gobble } +>>> + + +\<amsmath mathltx\><<< +\Configure{split} + {\HCode{\string\begin\l:brace split\r:brace}} + {\ifvmode\IgnorePar\fi + \HCode{\string\end \l:brace split\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +>>> + +\<amsmath mathltx\><<< +\ConfigureEnv{multline} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{multline} + {\HCode{\string\begin\l:brace multline\r:brace}} + {\HCode{\string\end \l:brace multline\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +\ConfigureEnv{multline*} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{multline*} + {\HCode{\string\begin\l:brace multline*\r:brace}} + {\HCode{\string\end \l:brace multline*\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} + {} +>>> + + +\marginpar{?math delimiters not removed for gather*?} + + +\<amsmath mathltx\><<< +\ConfigureEnv{gather} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{gather} + {\HCode{\string\begin\l:brace gather\r:brace}} + {\HCode{\string\end \l:brace gather\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +\ConfigureEnv{gather*} + {\bgroup |<display math-|>} {\egroup} + {}{} +\Configure{gather*} + {\HCode{\string\begin\l:brace gather*\r:brace}} + {\HCode{\string\end \l:brace gather*\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +>>> + +\<amsmath mathltx\><<< +\Configure{subarray} + {\HCode{\string\begin\l:brace subarray\r:brace + \l:brace \Hlcr\r:brace}} + {\HCode{\string\end \l:brace subarray\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} +\Configure{smallmatrix} + {\HCode{\string\begin\l:brace smallmatrix\r:brace}} + {\HCode{\string\end \l:brace smallmatrix\r:brace}} + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} {} +>>> + +\<amsmath mathltx\><<< +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\def\end:al:env{}\ifmmode\else + \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent}\fi\fi} + {\end:al:env } + {}{}% + \Configure{#1} + {\IgnorePar + \ifvmode \EndP \else \EndP \HCode{<!--tex4ht:inline-->}\fi + \ifmathltx + \Tg<mrow>\def\end:mathalign{\Tg</mrow>}% + \else + \Configure{@math}{|<block display|>}\DviMath + \def\end:mathalign{\EndDviMath \DisplayMathfalse}% + \DisplayMathtrue + \fi + \HCode{\string\begin\l:brace #2\r:brace}} + {\HCode{\string\end \l:brace #2\r:brace}\end:mathalign } + {\ifnum \HRow> 1\HCode{\string\\\Hnewline}\fi} {} + {|<mtd array|>} + {\HCode{|<extra align col sep|>}}} +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align*} +\:tempc{alignat*}{alignat*} +\:tempc{xalignat*}{xalignat*} +\:tempc{flalign*}{flalign*} +>>> + + +\<configure html-mltx amsmath\><<< +\Css{mtd.align-odd{margin-left:2em; text-align:right;}} +\Css{mtd.align-even{margin-right:2em; text-align:left;}} +>>> + +\<extra align col sep\><<< +\ifodd\HCol\space\else \string\hspace\l:brace2em\r:brace\fi +>>> + +\<rightward align col\><<< +\ifodd\HCol columnalign="right" \fi +>>> + +Setting \verb+#1+ below within mrow is problematic in the sense that +arrows don't stretch over multi-characters content \verb+#2+. +A \verb+accent="true"+ move the arrow lower, but also distribute the +characters further apart. + +\<under arrow\><<< +\Tg<munder>% +\Tg<mrow\Hnewline>#2\Tg</mrow>% +#1% +\Tg</munder>% +>>> + +\<over arrow\><<< +\Tg<mover class="overarrow">% +\Tg<mrow\Hnewline>{#2#3}\Tg</mrow>% +#1% +\Tg</mover-4>% +>>> + + + + +% \Tg<mrow\Hnewline>#1\Tg</mrow>% +% \Tg<mrow>#1\Tg</mrow>% + + +\<arr amsmath, amstex1\><<< +\Configure{underarrow@} + {\Tg<munder>\Tg<mrow\Hnewline>} + {\Tg</mrow>\Tg<mrow\Hnewline>} + {\Tg</mrow>\Tg</munder>} +\Configure{overarrow@} + {\Tg<mover accent="true">\Tg<mrow\Hnewline>} + {\Tg</mrow>\Tg<mrow>} + {\Tg</mrow>\Tg</mover-5>} +\def\:tempc#1#2#3{\a:overarrow@ + \hbox{$\m@th#2#3$}\b:overarrow@ + \hbox{#1#2}\c:overarrow@ + } +\HLet\overarrow@\:tempc +>>> + + + + + +\<configure mathltx amstex1\><<< +\ifx \o:overrightarrow:\:UnDef\else + \HRestore\overrightarrow + \HRestore\overleftarrow + \HRestore\overleftrightarrow +\fi +>>> + + + +\<mathltx plain,fontmath\><<< +\Configure{overrightarrow} + {\HCode{\string\overrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +\Configure{overleftarrow} + {\HCode{\string\overleftarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +>>> + + +\<amsmath mathltx\><<< +\Configure{underrightarrow} + {\HCode{\string\underrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +\Configure{underleftarrow} + {\HCode{\string\underleftarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +>>> + + +\<amsmath mathltx\><<< +\Configure{overleftrightarrow} + {\HCode{\string\overleftrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +\Configure{underleftrightarrow} + {\HCode{\string\underleftrightarrow\l:brace}\:gobble} + {\HCode{\r:brace}} +>>> + + + + + +\<amsmath mathltx\><<< +|<mathltx m:env|> +\renewcommand{\xrightarrow}[2][]{% + \HCode{\string\xrightarrow[}#1\HCode{]\l:brace}% + #2\HCode{\r:brace}} +\renewcommand{\xleftarrow}[2][]{% + \HCode{\string\xleftarrow[}#1\HCode{]\l:brace}% + #2\HCode{\r:brace}} + +\def\overset#1#2{{% + \HCode{\string\overset\l:brace}#1\HCode{\r:brace\l:brace}% + #2\HCode{\r:brace}}} +\def\underset#1#2{{% + \HCode{\string\underset\l:brace}#1\HCode{\r:brace\l:brace}% + #2\HCode{\r:brace}}} + +\def\sideset#1#2#3{{\HCode{\string\sideset\l:brace}% + {\HCode{}}#1\HCode{\r:brace\l:brace}% + {\HCode{}}#2\HCode{\r:brace}% + {{\HCode{}}#3}% + }} + +\renewcommand{\hdotsfor}[1]{% + \ifx[#1\@xp\shdots@for\else\hdots@for\@ne{#1}\fi} +\def\shdots@for#1]{\hdots@for{#1}} +\def\hdots@for#1#2{\multicolumn{#2}c% + {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@ + \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}% + \hfill + \mkern-#1\dotsspace@}% + } +\ConfigureEnv{eqxample}{}{}{}{} +\ConfigureEnv{gather*}{}{}{}{} +\ConfigureEnv{gathered}{}{}{}{} +\ConfigureEnv{matrix}{}{}{}{} +>>> + + The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts + + + + + +\<amsmath symbols\><<< +\def\:tempc{\HCode{\string\mod\space}} +\HLet\bmod\:tempc +\def\:tempc#1{\HCode{\string\pod\l:brace}#1\HCode{\r:brace}} +\HLet\pod=\:tempc +\def\:tempc#1{\HCode{\string\pmod\l:brace}#1\HCode{\r:brace}} +\HLet\pmod=\:tempc +\def\:tempc#1{\HCode{\string\mod\l:brace}#1\HCode{\r:brace}} +\HLet\mod=\:tempc +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{amsopn} +%%%%%%%%%%%%%%%%%%%% + + +\<amsopn / amstex.sty mathltx\><<< +\def\varinjlim{{\underrightarrow\lim}} +\def\varprojlim{{\underleftarrow\lim}} +\def\varlimsup{{\overline\lim}} +\def\varliminf{{\underline\lim}} +\def\:tempc#1#2#3{\hbox{{\mtexttrue + \HCode{<mrow\Hnewline + \mml:class="text"><mtext + \a:@mtext>}|<start mtext space|>\PauseMathClass + \Configure{$}{\EndPauseMathClass\mtextfalse + |<end mtext space|>\HCode{</mtext><\a:mathltx + mrow\Hnewline \mml:class="math">}} + {|<start mtext space|>\HCode{</mrow><mtext + \a:@mtext>}\mtexttrue\PauseMathClass}{#1} + \let\f@size#2\selectfont #3}% + \mtextfalse \EndPauseMathClass |<end mtext space|>\HCode + {</mtext></mrow>}}} +\HLet\textdef@\:tempc +>>> + + +The original definitions for the following macros contain small spaces +\verb+\,+ in the names, and the spaces imply improper mathltx outcome +of the form \verb+<mo>...<mspace.../>...</mo>+. + + +\<configure mathltx amsopn\><<< +\def\:tempc{\qopname\relax m{lim inf}} +\HLet\liminf=\:tempc +\def\:tempc{\qopname\relax m{lim sup}} +\HLet\limsup=\:tempc +\def\:tempc{\qopname\relax m{proj lim}} +\HLet\projlim=\:tempc +\def\:tempc{\qopname\relax m{inj lim}} +\HLet\injlim=\:tempc +>>> + + + + + +Why originally the accents are defined within a group? (knuth answer +this in the texbook.) + +\<plain,latex mathltx\><<< +\let\A:oalign|=\a:oalign +\let\B:oalign|=\b:oalign +\Configure{oalign} + {\ifmmode \Configure{$}{\Tg<mrow\Hnewline>}{\Tg</mrow>}{}% + \let\halign|=\TeXhalign + \Tg<mrow\Hnewline \mml:class="oalign">\else\A:oalign + \fi} + {\ifmmode \Tg</mrow>\else\B:oalign\fi} +>>> + + +\<configure mathltx amsopn\><<< +\Configure{qopname} + {\Configure{mathop}{*} + {\string\mathop\l:brace} + {\r:brace} + {}} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\section{Eqnarray} +%%%%%%%%%%%%%%%%%%%% + +\<mathltx latex\><<< +\Configure{eqnarray} + {\HCode{\string\begin{eqnarray\ifx + \@seqncr\@eqncr\else *\fi}}} + {\HCode{\string\end{eqnarray\ifx + \@seqncr\@eqncr\else *\fi}}} + {} + {\HCode{\string\\\Hnewline}} + {\ifnum \HCol>1 + \ifnum \HCol=4 + \HCode{\%}% + |<start mtext space|>\PauseMathClass + \mtexttrue + \fi \HCode{\a:math:amp}% + \fi} + {\ifnum \HCol=4 \mtextfalse + \EndPauseMathClass |<end mtext space|>\fi } +>>> + + + + +\<configure html-mltx latex\><<< +|<config multicolumn|> +>>> + + +\<configure html-mltx array\><<< +|<config multicolumn|> +>>> + + +\<config multicolumn\><<< +\Configure{multicolumn} + {\let\sv:VBorder\VBorder + \let\VBorder\empty + \Configure{VBorder}{}{}{}{}% + } + {\let\VBorder\sv:VBorder} + {\ifmmode \HCode{\l:brace}% + {|<attributes of mml multicolumn|>\HColAlign}% + \HCode{\r:brace\l:brace}\else + \ifvmode\IgnorePar\fi + \HCode{<div class="multicolumn" }\HColAlign\HCode{>}\fi } + {\ifmmode \HCode{\r:brace}\else + \ifvmode\IgnorePar\fi \EndP\HCode{</div>}\fi } +\def\gob:sp#1{#1} +>>> + + +\<attributes of mml multicolumn\><<< +\Configure{halignTD} {}{} + {<}{\HCode{l}} + {-}{\HCode{c}} + {>}{\HCode{r}} + {p}{\HCode{l}} + {}% +>>> + + +\<configure html-mltx tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\ifmathltx \HCode{ columnalign="left-0"}\else + \HCode{ style="text-align:left; white-space:nowrap;"}\fi} + {-}{\ifmathltx \HCode{ columnalign="center"}\else + \HCode{ style="text-align:center; white-space:nowrap;"}\fi} + {>}{\ifmathltx \HCode{ columnalign="right"}\else + \HCode{ style="text-align:right; white-space:nowrap;"}\fi} + {^}{\ifmathltx \HCode{ rowalign="top"}\else + \HCode{ style="vertical-align:top; white-space:nowrap;"}\fi} + {=}{\ifmathltx \HCode{ rowalign="baseline"}\else + \HCode{ style="vertical-align:baseline; white-space:nowrap;"}\fi} + {||}{\ifmathltx \HCode{ rowalign="center"}\else + \HCode{ style="vertical-align:middle; white-space:nowrap;"}\fi} + {_}{\ifmathltx \HCode{ rowalign="bottom"}\else + \HCode{ style="vertical-align:bottom; white-space:nowrap;"}\fi} + {p}{\ifmathltx \HCode{ columnalign="left-1"}\else + \HCode{ style="text-align:left;"}\fi} + {} +>>> + + + + +\<configure mathltx tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\HCode{ columnalign="left-3"}} + {-}{\HCode{ columnalign="center"}} + {>}{\HCode{ columnalign="right"}} + {^}{\HCode{ rowalign="top"}} + {=}{\HCode{ rowalign="baseline"}} + {||}{\HCode{ rowalign="center"}} + {_}{\HCode{ rowalign="bottom"}} + {p}{\HCode{ columnalign="left-4"}} + {} +>>> +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Big, BIG, ....} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\</bigl, /bigr,... for mathltx\><<< +\def\:tempc#1{\HCode{\l:brace\string\bigl\space\string#1}} +\HLet\bigl=\:tempc +\def\:tempc#1{\HCode{\string\bigm\space\string#1}} +\HLet\bigm=\:tempc +\def\:tempc#1{\HCode{\string\bigr\space\string #1\r:brace}} +\HLet\bigr=\:tempc +\def\:tempc#1{\HCode{\l:brace\string\Bigl\space\string#1}} +\HLet\Bigl=\:tempc +\def\:tempc#1{\HCode{\string\Bigm\space\string#1}} +\HLet\Bigm=\:tempc +\def\:tempc#1{\HCode{\string\Bigr\space\string #1\r:brace}} +\HLet\Bigr=\:tempc +\def\:tempc#1{\HCode{\l:brace\string\biggl\space\string#1}} +\HLet\biggl=\:tempc +\def\:tempc#1{\HCode{\string\biggm\space\string#1}} +\HLet\biggm=\:tempc +\def\:tempc#1{\HCode{\string\biggr\space\string #1\r:brace}} +\HLet\biggr=\:tempc +\def\:tempc#1{\HCode{\l:brace\string\Biggl\space\string#1}} +\HLet\Biggl=\:tempc +\def\:tempc#1{\HCode{\string\Biggm\space\string#1}} +\HLet\Biggm=\:tempc +\def\:tempc#1{\HCode{\string\Biggr\space\string #1\r:brace}} +\HLet\Biggr=\:tempc +>>> + + + +\<mathltx plain,fontmath\><<< +\def\:tempc#1{{\HCode{\string\big\string{}\string#1\HCode{\string}}}} +\HLet\big=\:tempc +\def\:tempc#1{{\HCode{\string\Big\string{}\string#1\HCode{\string}}}} +\HLet\Big=\:tempc +\def\:tempc#1{{\HCode{\string\bigg\string{}\string#1\HCode{\string}}}} +\HLet\bigg=\:tempc +\def\:tempc#1{{\HCode{\string\Bigg\string{}\string #1\HCode{\string}}}} +\HLet\Bigg=\:tempc +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{stackrel} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mathltx latex\><<< +\def\:temp#1#2{{\a:stackrel{#1}\b:stackrel {#2}\c:stackrel}} +\HLet\stackrel|=\:temp +\:CheckOption{stackrel-} \if:Option + \Configure{stackrel} + {\mathrel\bgroup \HCode{<mglyph\Hnewline + alt="\string\stackrel}\afterassignment\put:arg\tmp:toks} + {\afterassignment\put:arg\tmp:toks} + {\HCode{" />}\egroup} + \def\put:arg{\HCode{{\the\tmp:toks}}} +\else + \Configure{stackrel} + {\HCode{\string\stackrel\l:brace}}% + {\HCode{\r:brace\l:brace}|<mathop nested within stackrel|>\mathop} + {\HCode{\r:brace}} +\fi +>>> + +\<mathop nested within stackrel\><<< +\Configure{mathop*}{*} + {\string\mathop\l:brace} + {\r:brace} + {\Configure{mathop}{}{}{}{}}% +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{fontmath.ltx} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure mathltx Preamble\><<< +\bgroup + \catcode`\{=12 \catcode`\}=12 + \catcode`\[=1 \catcode`\]=2 + \catcode`\/=0 \catcode`\\=12 + /gdef/l:brace[{] + /gdef/r:brace[}] + /gdef/back:slash[\] +/egroup +>>> + +\<mathltx plain,fontmath\><<< +\Configure{overbrace} + {\Configure{mathop*}{*} + {\string\overbrace\l:brace} + {\r:brace} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:overbrace:=\displaystyle} + {} +\Configure{underbrace} + {\Configure{mathop*}{*} + {\string\underbrace\l:brace} + {\r:brace} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:underbrace:=\displaystyle} + {} +>>> + + +\<mathltx plain,fontmath\><<< +% \Configure{MathClass}{0}{*}{<mi\Hnewline>}{</mi>}{} + \Configure{MathClass}{1}{*}{\string\mathop\l:brace}{\r:brace}{} +% \Configure{MathClass}{2}{*}{<mo\Hnewline +% \mml:class="MathClass-bin">}{</mo>}{} +% \Configure{MathClass}{3}{*}{<mo\Hnewline +% \mml:class="MathClass-rel">}{</mo>}{} +\:CheckOption{mathltx-} \if:Option + \Configure{MathClass}{4}{*}{}{}{} + \Configure{MathClass}{5}{*}{}{}{} +\else + \Log:Note{for sources failing to produce + clean mathltx code, try the command line option `mathltx-'}% +\fi + +%\Configure{MathClass}{6}{*}{<mo\Hnewline +% \mml:class="MathClass-punc">}{</mo>}{} +% \Configure{MathClass}{7}{*}{<mn>}{</mn>} +% {0123456789} +\Configure{FormulaClass}{0}{}{}{} +\Configure{FormulaClass}{1}{}{}{} +\Configure{FormulaClass}{2}{}{}{} +\Configure{FormulaClass}{3}{}{}{} +\Configure{FormulaClass}{4}{}{}{} +\Configure{FormulaClass}{5}{}{}{} +\Configure{FormulaClass}{6}{}{}{} +>>> + + +\<configure mathltx fontmathNO\><<< +\def\:tempa#1{% + \def\:temp{\HCode{\string\firstOfOne}\,\HCode{\string#1\space}}% + \HLet#1\:temp } +\:tempa\bigcap +\:tempa\bigcirc +\:tempa\bigcup +\:tempa\bigodot +\:tempa\bigoplus +\:tempa\bigotimes +\:tempa\bigsqcup +\:tempa\bigtriangledown +\:tempa\bigtriangleup +\:tempa\biguplus +\:tempa\bigvee +\:tempa\bigwedge +\:tempa\coprod +\:tempa\int +\:tempa\intop +\:tempa\ointop +\:tempa\prod +\:tempa\sum +>>> + + + + + +\<configure mathltx fontmathNO\><<< +\def\:tempa#1{% + \def\:temp{\HCode{\string#1\space}}% + \HLet#1\:temp } +\:tempa\Delta +\:tempa\Gamma +\:tempa\Im +\:tempa\Lambda +\:tempa\Leftarrow +\:tempa\Leftrightarrow +\:tempa\Omega +\:tempa\Phi +\:tempa\Pi +\:tempa\Psi +\:tempa\Re +\:tempa\Rightarrow +\:tempa\Sigma +\:tempa\Theta +\:tempa\Upsilon +\:tempa\Xi +\:tempa\aleph +\:tempa\alpha +\:tempa\amalg +\:tempa\angle +\:tempa\approx +\:tempa\ast +\:tempa\asymp +\:tempa\beta +\:tempa\bot +\:tempa\bullet +\:tempa\cap +\:tempa\cdot +\:tempa\chi +\:tempa\circ +\:tempa\clubsuit +\:tempa\coprod +\:tempa\cup +\:tempa\dagger +\:tempa\dashv +\:tempa\ddagger +\:tempa\delta +\:tempa\diamond +\:tempa\diamondsuit +\:tempa\div +\:tempa\ell +\:tempa\emptyset +\:tempa\epsilon +\:tempa\equiv +\:tempa\eta +\:tempa\exists +\:tempa\flat +\:tempa\forall +\:tempa\frown +\:tempa\gamma +\:tempa\ge +\:tempa\geq +\:tempa\gg +\:tempa\hbar +\:tempa\heartsuit +\:tempa\imath +\:tempa\in +\:tempa\infty +\:tempa\intop +\:tempa\iota +\:tempa\jmath +\:tempa\kappa +\:tempa\lambda +\:tempa\land +\:tempa\le +\:tempa\leftarrow +\:tempa\leftharpoondown +\:tempa\leftharpoonup +\:tempa\leftrightarrow +\:tempa\leq +\:tempa\ll +\:tempa\lnot +\:tempa\lor +\:tempa\mapstochar +\:tempa\mid +\:tempa\mp +\:tempa\mu +\:tempa\nabla +\:tempa\natural +\:tempa\ne +\:tempa\nearrow +\:tempa\neg +\:tempa\neq +\:tempa\ni +\:tempa\not +\:tempa\nu +\:tempa\nwarrow +\:tempa\odot +\:tempa\oint +\:tempa\ointop +\:tempa\omega +\:tempa\ominus +\:tempa\oplus +\:tempa\oslash +\:tempa\otimes +\:tempa\parallel +\:tempa\partial +\:tempa\perp +\:tempa\phi +\:tempa\pi +\:tempa\pm +\:tempa\prec +\:tempa\preceq +\:tempa\prime +\:tempa\prod +\:tempa\propto +\:tempa\psi +\:tempa\rho +\:tempa\rightarrow +\:tempa\rightharpoondown +\:tempa\rightharpoonup +\:tempa\searrow +\:tempa\setminus +\:tempa\sharp +\:tempa\sigma +\:tempa\sim +\:tempa\sim +\:tempa\simeq +\:tempa\simeq +\:tempa\smallint +\:tempa\smile +\:tempa\spadesuit +\:tempa\sqcap +\:tempa\sqcup +\:tempa\sqsubseteq +\:tempa\sqsupseteq +\:tempa\star +\:tempa\subset +\:tempa\subseteq +\:tempa\succ +\:tempa\succeq +\:tempa\sum +\:tempa\supset +\:tempa\supseteq +\:tempa\surd +\:tempa\swarrow +\:tempa\tau +\:tempa\theta +\:tempa\times +\:tempa\top +\:tempa\triangle +\:tempa\triangleleft +\:tempa\triangleright +\:tempa\uplus +\:tempa\upsilon +\:tempa\varbigtriangledown +\:tempa\varbigtriangleup +\:tempa\varepsilon +\:tempa\varphi +\:tempa\varpi +\:tempa\varrho +\:tempa\varsigma +\:tempa\vartheta +\:tempa\vdash +\:tempa\vee +\:tempa\wedge +\:tempa\wp +\:tempa\wr +\:tempa\xi +\:tempa\zeta +>>> + + + + +\<configure mathltx amsmath\><<< +\def\:temp{\HCode{\string\firstOfOne}\,\HCode{\string\int + \string\int\space}} +\HLet\iint\:temp +\def\:temp{\HCode{\string\firstOfOne}\,\HCode{\string\int + \string\int\string\int\space}} +\HLet\iiint\:temp +\def\:temp{\HCode{\string\Rightarrow }} +\HLet\implies\:temp +\def\:temp{\HCode{\string\Leftarrow }} +\HLet\impliedby\:temp +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Limits of Sub- snd Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<limits sub, sup, subsup\><<< +\Configure{nolimits}{\HCode{\string\nolimits\space}} +\Configure{limits} + {\let|<restore SUB|>=\:UnDef + \let|<restore SUP|>=\:UnDef + \ifx \:temp\sp |<conf limits SUP|>\else + \ifx \:temp\sb |<conf limits SUB|>\fi\fi + |<conf limits SUBSUP|>% + } +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Simultaneously Sub- and Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<conf limits SUBSUP\><<< +|<save pre-limits SUBSUP|>% +\Configure{SUBSUP} + {\ifx |<restore SUB|>\:UnDef\else |<restore SUB|>\fi + \ifx |<restore SUP|>\:UnDef\else |<restore SUP|>\fi + |<restore pre-limits SUBSUP|>% + \Send{BACK}{\l:brace}\HCode{\r:brace + \string_\l:brace}\trap:base + } + {\HCode{\r:brace\string^\l:brace}\trap:base} + {\HCode{\r:brace}} +>>> + + +\<save pre-limits SUBSUP\><<< +\let\pl:SUBSUP=\SUBSUP: +>>> + +\<restore pre-limits SUBSUP\><<< +\ifx \pl:SUBSUP\:UnDef \else + \let\SUBSUP:=\pl:SUBSUP +\fi +>>> + +\<limits sub, sup, subsup\><<< +\ifx \a:putSUB\:UnDef \else + \pend:def\a:putSUB{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +\ifx \a:putSUP\:UnDef \else + \pend:def\a:putSUP{\ifx \pl:SUBSUP\:UnDef\else + \let\SUBSUP:=\pl:SUBSUP + \let\pl:SUBSUP=\:UnDef + \fi}% +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Superscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<conf limits SUP\><<< +|<save pre-limits SUP|>% +\Configure{SUP} + {|<open external limits SUP|>\bgroup + |<restore pre-limits SUBSUP|>% + |<conf second limits SUP|>\trap:base} + {}% +>>> + +\<save pre-limits SUP\><<< +\def\pl:SUP{\Configure{SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\a:SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\b:SUP}}% +>>> + + +\<conf second limits SUP\><<< +\Configure{SUP} + {|<open intermediate limits SUP|>\bgroup + |<conf third limit SUP|>\trap:base} + {\egroup|<close external limits SUP|>}% +>>> + + +\<conf third limit SUP\><<< +\Configure{SUP} + {|<open internal limits SUP|>\bgroup \trap:base} + {\egroup |<close internal limits SUP|>}% +>>> + + +\<open external limits SUP\><<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base +>>> + + +\<close external limits SUP\><<< +\HCode{\r:brace}\aftergroup|<restore SUP|>% +>>> + +\<restore SUP\><<< +\pl:SUP >>> + + +\<open intermediate limits SUP\><<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}\trap:base +>>> + +\<open internal limits SUP\><<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string^\l:brace}% +>>> + +\<close internal limits SUP\><<< +\HCode{\r:brace}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Subscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<conf limits SUB\><<< +|<save pre-limits SUB|>% +\Configure{SUB} + {|<open external limits SUB|>\bgroup + |<restore pre-limits SUBSUP|>% + |<conf second limits SUB|>\trap:base} + {}% +>>> + +\<save pre-limits SUB\><<< +\def\pl:SUB{\Configure{SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\a:SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\b:SUB}}% +>>> + +\<conf second limits SUB\><<< +\Configure{SUB} + {|<open intermediate limits SUB|>\bgroup + |<conf third limit SUB|>\trap:base} + {\egroup|<close external limits SUB|>}% +>>> + + +\<conf third limit SUB\><<< +\Configure{SUB} + {|<open internal limits SUB|>\bgroup \trap:base} + {\egroup |<close internal limits SUB|>}% +>>> + + +\<open external limits SUB\><<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}% +>>> + +\<close external limits SUB\><<< +\HCode{\r:brace}\aftergroup|<restore SUB|>% +>>> + +\<restore SUB\><<< +\pl:SUB >>> + +\<open intermediate limits SUB\><<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}% +>>> + +\<open internal limits SUB\><<< +\Send{BACK}{\l:brace}\HCode{\r:brace\string_\l:brace}% +>>> + +\<close internal limits SUB\><<< +\HCode{\r:brace}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sized Operations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<plain,latex mathltx\><<< +\def\mathop:prefix#1{% + \Configure{mathop}{*}{}{}% + {\Configure{mathop}{*}{\string\mathop\l:brace}{\r:brace}{}}} +>>> + +The nested configuration of mathop is needed for cases similar to that +of \verb!\log! i. +\verb/$$ \sum_a^b =\log 2 $$/ + + +\<configure mathltx amsmath\><<< +\pend:def\n:iint:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +\pend:def\n:iiint:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +\pend:def\n:idotsint:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +>>> + +\<configure mathltx fontmath\><<< +\def\:tempd#1#2{% + \expandafter\def\csname #1\endcsname{\mathchar"13#2\relax}% + \MathSymbol\mathop{#1}% + \expandafter\def\csname #1:limits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\limits}% + \expandafter\def\csname #1:nolimits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\nolimits}% + \expandafter\edef\csname n:#1:\endcsname{\noexpand\ifDisplayMath + \noexpand\expandafter \expandafter\noexpand + \csname #1:limits\endcsname + \noexpand\else \noexpand\expandafter + \expandafter\noexpand + \csname #1:nolimits\endcsname\noexpand\fi}% + \expandafter\pend:def\csname n:#1:\endcsname{\ifDisplayMath + \mathop:prefix{mathsize="big"}\fi}% +} +\:tempd{bigcap}{54} +\:tempd{bigcup}{53} +\:tempd{bigodot}{4A} +\:tempd{bigoplus}{4C} +\:tempd{bigotimes}{4E} +\:tempd{bigsqcup}{46} +\:tempd{biguplus}{55} +\:tempd{bigvee}{57} +\:tempd{bigwedge}{56} +\:tempd{coprod}{60} +\:tempd{intop}{52} +\:tempd{ointop}{48} +\:tempd{prod}{51} +\:tempd{sum}{50} +>>> + +\<configure mathltx tex4ht\><<< +\def\math:sym#1#2{{\relax\ifmmode \expandafter#1\fi + {\ifmmode\HCode{\string#1\l:brace}\fi + \csname a:#2\endcsname + \ifmmode\HCode{\r:brace}\fi}}} +>>> + + +\<configure mathltx fontmath\><<< +\ifx \ilimits@\o:nolimits: + \let\ilimits@\nolimits +\fi +\ifx \ilimits@\o:nolimits: + \let\slimits@\nolimits +\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Accent through `accents' Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure mathltx latex\><<< +|<shared latex,amsmath math accents|> +>>> + +\<configure mathltx amsmath\><<< +|<shared latex,amsmath math accents|> +\def\:tempc#1{\HCode{\string\dddot\l:brace}#1\HCode{\r:brace}} +\HLet\dddot=\:tempc +\def\:tempc#1{\HCode{\string\ddddot\l:brace}#1\HCode{\r:brace}} +\HLet\ddddot=\:tempc +>>> + +\<shared latex,amsmath math accents\><<< +\def\:tempc#1{\HCode{\string\H\l:brace}#1\HCode{\r:brace}} +\HLet\H=\:tempc +\def\:tempc#1{\HCode{\string\acute\l:brace}#1\HCode{\r:brace}} +\HLet\acute=\:tempc +\def\:tempc#1{\HCode{\string\bar\l:brace}#1\HCode{\r:brace}} +\HLet\bar=\:tempc +\def\:tempc#1{\HCode{\string\breve\l:brace}#1\HCode{\r:brace}} +\HLet\breve=\:tempc +\def\:tempc#1{\HCode{\string\c\l:brace}#1\HCode{\r:brace}} +\HLet\c=\:tempc +\def\:tempc#1{\HCode{\string\cedil\l:brace}#1\HCode{\r:brace}} +\HLet\cedil=\:tempc +\def\:tempc#1{\HCode{\string\check\l:brace}#1\HCode{\r:brace}} +\HLet\check=\:tempc +\def\:tempc#1{\HCode{\string\d\l:brace}#1\HCode{\r:brace}} +\HLet\d=\:tempc +\def\:tempc#1{\HCode{\string\ddot\l:brace}#1\HCode{\r:brace}} +\HLet\ddot=\:tempc +\def\:tempc#1{\HCode{\string\dot\l:brace}#1\HCode{\r:brace}} +\HLet\dot=\:tempc +\def\:tempc#1{\HCode{\string\grave\l:brace}#1\HCode{\r:brace}} +\HLet\grave=\:tempc +\def\:tempc#1{\HCode{\string\hat\l:brace}#1\HCode{\r:brace}} +\HLet\hat=\:tempc +\def\:tempc#1{\HCode{\string\ring\l:brace}#1\HCode{\r:brace}} +\HLet\ring=\:tempc +\def\:tempc#1{\HCode{\string\t\l:brace}#1\HCode{\r:brace}} +\HLet\t=\:tempc +\def\:tempc#1{\HCode{\string\tilde\l:brace}#1\HCode{\r:brace}} +\HLet\tilde=\:tempc +\def\:tempc#1{\HCode{\string\udot\l:brace}#1\HCode{\r:brace}} +\HLet\udot=\:tempc +\def\:tempc#1{\HCode{\string\uml\l:brace}#1\HCode{\r:brace}} +\HLet\uml=\:tempc +\def\:tempc#1{\HCode{\string\vec\l:brace}#1\HCode{\r:brace}} +\HLet\vec=\:tempc +>>> + +Can \verb=\r= appear in math mode? If not, the following is not needed. + +\<shared latex,amsmath math accents\><<< +\ifx\jsm:r\:UnDef + \let\jsm:r\r + \def\:tempc#1{\ifmmode\HCode{\string\r\l:brace}#1\HCode{\r:brace}% + \else \jsm:r{#1}\fi } + \HLet\r=\:tempc +\fi +>>> + +\<config mathltx accents\><<< +|<temp indirect accents|> +\Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|<temp hcode accents|>% + \ht:special{t4ht@[}\if!#1!x\else#2\fi + \ht:special{t4ht@]}}} + {\ifmathltx + \ifmtext |<accent in text mode|>% + \else \AccentMath{|<under over accents|>}\fi + \else |<accent in text mode|>\fi + } +>>> + +\<accent in text mode\><<< +\expandafter\ifx \csname :#1:over\endcsname\relax + \expandafter\ifx \csname :#1:under\endcsname\relax + \AccentMath{|<under over accents|>}% + \else #3\csname :#1:under\endcsname \fi +\else #3\csname :#1:over\endcsname \fi +>>> + +\<under over accents\><<< +\expandafter\ifx \csname :#1:over\endcsname\relax + |<under accents|>% +\else \expandafter\ifx \csname :#1:under\endcsname\relax + |<over accents|>% +\else + |<both accents|>% +\fi \fi +>>> + +\<under accents\><<< +\HCode{<munder\Hnewline + accent="true"><mrow\Hnewline>}#3\HCode{</mrow>}% + \csname :#1:under\endcsname + \HCode{</munder>}% +>>> + +\<over accents\><<< +\HCode{<mover\Hnewline + accent="true"><mrow\Hnewline>}#3\HCode{</mrow>}% + \csname :#1:over\endcsname + \HCode{</mover-1>}% +>>> + +\<both accents\><<< +\HCode{<munderover-3\Hnewline + accent="true"><mrow\Hnewline>}#3\HCode{</mrow>}% + \csname :#1:under\endcsname + \csname :#1:over\endcsname + \HCode{</munderover>}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Underline and Overline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-mltx latex\><<< +\Configure{overline} + {\bgroup\ifmathltx |<mathltx overline|>\else + \HCode{<span class="overline">}\fi} + {\ifmathltx |<end mathltx overline|>\else \HCode{</span>}\fi\egroup} +\Configure{underline} + {\bgroup + \ifmathltx |<mathltx underline|>% + \else |<nomath underline|>\HCode{<span class="underline">}\fi} + {\ifmathltx |<end mathltx underline|>\else \HCode{</span>}\fi \egroup} +>>> + + +\<mathltx latex\><<< +|<und/ov-erline|> +>>> + +\<mathltx plain\><<< +|<und/ov-erline|> +>>> + + +\<und/ov-erline\><<< +\Configure{overline} + {\bgroup |<mathltx overline|>} + {|<end mathltx overline|>\egroup} +\Configure{underline} + {\bgroup \ifmmode |<mathltx underline|>\else + |<nomath underline|>\fi} + {|<end mathltx underline|>\egroup} +>>> + +\<nomath underline\><<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + + + + + + + + + + +\<mathltx overline\><<< +\HCode{\string\overline\l:brace}% +>>> + +\<end mathltx overline\><<< +\HCode{\r:brace}% +>>> + + +\<mathltx underline\><<< +\HCode{\string\underline\l:brace}% +>>> + +\<end mathltx underline\><<< +\HCode{\r:brace}% +>>> + + +\verb'̲' is the code of \verb'_' + + + + + +\<mathltx plain\><<< +|<arr: amsmath, amstex1|> +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-mltx latex\><<< +\Configure{footnote-mark} + {\ifmathltx \ifmtext \else + \HCode{<mrow \mml:class="footnote-mark">}\fi + \else \HCode{<span class="footnote-mark">}\fi } + {\ifmathltx \ifmtext \else \HCode{</mrow>}\fi + \else \HCode{</span>}\fi } +\Configure{thank-mark} + {\HCode{<\ifmathltx mrow \expandafter\mml:class\else span class\fi + ="thank-mark">}} + {\HCode{</\ifmathltx mrow\else span\fi>}} +>>> + + + + + +The following code segments handle the different listed cases, +with possible exception of the last. + +\begin{verbatim} +a\footnote{b c} + +$a\footnote{b c}$ + +$a\footnote{\hbox{b c}}$ + +$a\footnote{\mbox{b c}}$ + +$a\mbox{\footnote{b c}}$ +\end{verbatim} + + +We have the following hooks + + +\begin{verbatim} +\def\@footnotemark{...\a:@makefnmark\@makefnmark + \b:@makefnmark...} +\long\def\@footnotetext#1{...\a:footnote-text\a:@makefntext + \@makefntext{\b:@makefntext + \a:@makefnbody #1\b:@makefnbody + }\c:@makefntext\b:footnote-text...} +\end{verbatim} + + + + + +\<configure html-mltx latex\><<< +\:CheckOption{fn-in}\if:Option \else + \expandafter\let\csname A:footnote-text\expandafter\endcsname + \csname a:footnote-text\endcsname + \expandafter\let\csname B:footnote-text\expandafter\endcsname + \csname b:footnote-text\endcsname + \NewConfigure{footnote-text}[2]{% + \expandafter\def\csname a:footnote-text\endcsname{% + #1% + \ifmathltx + \HCode{<\a:@math\Hnewline + \csname a:math-xmlns\endcsname \Hnewline >% + \ifmtext <mtext>\fi} + \fi + \ifmathltx \fi + }% + \expandafter\def\csname b:footnote-text\endcsname{% + \ifmathltx + \HCode{\ifmtext</mtext>\fi </\a:@math>}% + \fi + #2% + }% + } + \Configure{footnote-text} + {\csname A:footnote-text\endcsname} + {\csname B:footnote-text\endcsname} +\fi +>>> + + + +\<configure html-mltx latex\><<< +\let\A:footnotetext=\a:footnotetext +\let\B:footnotetext=\b:footnotetext +\let\C:footnotetext=\c:footnotetext +\NewConfigure{footnotetext}[3]{% + \def\a:footnotetext{% + \ifmathltx \ifmtext |<end mtext space|>\fi\fi + #1% + \ifmathltx \ifmtext |<end mtext space|>\fi\fi + }% + \def\b:footnotetext{% + \ifmathltx \ifmtext |<end mtext space|>\fi\fi + #2% + \ifmathltx \ifmtext |<end mtext space|>\fi\fi + }% + \def\c:footnotetext{% + \ifmathltx \ifmtext |<end mtext space|>\fi\fi + #3% + \ifmathltx \ifmtext |<start mtext space|>\fi\fi + }% +} +\Configure{footnotetext} + {\A:footnotetext} + {\B:footnotetext} + {\C:footnotetext} +>>> + +\<configure html-mltx latex\><<< +\Configure{footnotebody} + {\tmp:toks=} + {\ifmathltx \ifmmode $\mbox{$\the\tmp:toks$}$ + \else $\mbox{\the\tmp:toks}$\fi + \else \the\tmp:toks\fi} +>>> + + +\<configure html-mltx latex\><<< +\:CheckOption{mouseover} \if:Option + \pend:def\js:on{\ifmathltx \ifmtext |<end mtext space|>\fi\fi} + \append:def\js:on{\ifmathltx \ifmtext |<start mtext space|>\fi\fi} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Space Characters} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<plain,latex mathltx\><<< +\def\:nbsp{\ifmtext |<unicode space|>\else\ifmathltx + \Tg<mspace />\else |<unicode space|>\fi\fi} +>>> + +\<unicode space\><<< +\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x% +>>> + +% \HCode{\string&}\HChar{-35}\HCode{x00A0;}% + + +\<configure html-mltx frenchb\><<< +\Configure{frenchb-nbsp} + {\ifmtext |<unicode space|>\else\ifmathltx + \Tg<mspace class="frenchb-nbsp" />% + \else + \ht:special{t4ht@?unhskip}\HCode{<span class="frenchb-thinspace">}% + |<unicode space|>\HCode{</span>}% + \fi\fi + \setbox\tmp:bx=\hbox\bgroup} + {\egroup} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Matrices} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Aligned} +%%%%%%%%%%%%% + + + +\<configure mathltx amsmath\><<< +\Configure{aligned} + {\HCode{\string\begin{aligned}}} + {\HCode{\string\end{aligned}}} + {} + {\HCode{\string\\}} + {\ifnum \HCol>1\HCode{\a:math:amp}\fi} {} +\Configure{alignedat} + {\HCode{\string\begin{alignedat}}} + {\HCode{\string\end{alignedat}}} + {} + {\HCode{\string\\}} + {\ifnum \HCol>1\HCode{\a:math:amp}\fi} {} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{Cases} +%%%%%%%%%%%%%%%%% + +\<plain,latex mathltx\><<< +\Configure{cases} + {}{} + {\HCode{\string\cases\l:brace}} + {\ifvmode \IgnorePar\fi \HCode{\r:brace}} + {\ifnum \HRow>1 \HCode{\string\cr\space}\fi} + {} + {|<mtd matrix|>} + {} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{matrix} +%%%%%%%%%%%%%%%%%%%% + +\<plain,latex mathltx\><<< +\Configure{matrix} + {\HCode{\string\matrix\l:brace}} + {\HCode{\r:brace}} + {\ifnum \HRow>1 \HCode{\string\cr\space}\fi} + {} + {|<mtd matrix|>} + {} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{pmatrix} +%%%%%%%%%%%%%%%%%%%% + + +The grouping below is handle the case that the matrix is a base of an +exponent. + + +\<plain,latex mathltx\><<< +\Configure{pmatrix} {\bgroup} {\egroup} +>>> + + + +The grouping below is handle the case that the matrix is a base of an +exponent. The \verb|\,| configurations is for facilitating the +catching of left subscripts and superscripts. + + +\<plain,latex mathltx\><<< +\Configure{quad}{{\ifmathltx \ifmtext \o:quad:\else + {\HCode{\string\quad\space}}\fi + \else \o:quad: \fi}} +\Configure{qquad}{{\ifmathltx \ifmtext \o:qquad:\else + {\HCode{\string\qquad\space}}\fi + \else \o:qquad: \fi}} +\Configure{,} + {{\HCode{\string\,}}} +>>> + + + + +%%%%%%%%%%%%%%%%%%%% +\section{TeX} +%%%%%%%%%%%%%%%%%%%% + + +\<mathltx plain\><<< +\Configure{eqalignno} + {\HCode{<mtable \mml:class="eqalignno">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="eqalignno">}} + {\HCode{</mtr>}} + {\HCode{<mtd \Hnewline \mml:class="eqalignno-\HCol">}} + {\HCode{</mtd>}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{<mtr><mtd \mml:class="noalign" colspan="2">}}% + {\HCode{</mtd></mtr>}}} +>>> + + +\<mathltx plain\><<< +\Configure{leqalignno} + {\HCode{<mtable \mml:class="leqalignno">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="leqalignno">}} + {\HCode{</mtr>}} + {\HCode{<mtd \Hnewline \mml:class="leqalignno-\HCol">}} + {\HCode{</mtd>}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{<mtr><mtd \mml:class="noalign" colspan="2">}}% + {\HCode{</mtd></mtr>}}} +>>> + +\section{Fractions} + + + + + + + +\<amstex.sty mathltx\><<< +|<config mathltx amstex1|> +>>> + + +\<config mathltx amstex1\><<< +\ConfigureEnv{aligned}{}{}{}{} +\Configure{aligned} + {\HCode{<mtable\Hnewline \mml:class="aligned">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline>}} {\HCode{</mtr>}} + {\HCode{<mtd>}} {\HCode{</mtd>}} +>>> + + +\<amstex.tex mathltx\><<< +\Configure{multilimits} + {\HCode{<mtable\Hnewline \mml:class="multilimits">}} + {\HCode{</mtable>}} + {\HCode{<mtr><mtd\Hnewline>}} + {\HCode{</mtd></mtr>}} +\Configure{smallmatrix} + {\HCode{<mtable\Hnewline \mml:class="smallmatrix">}} + {\HCode{</mtable>}} + {\HCode{<mtr>}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline>}} + {\HCode{</mtd>}} +>>> + +\<amstex.tex mathltx\><<< +\Configure{matrix} + {\HCode{<mtable\Hnewline \mml:class="matrix">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline>}} {\HCode{</mtr>}} + {\HCode{|<mtd matrix|>}} {\HCode{</mtd>}} +>>> + +\<amstex.tex mathltx\><<< +\Configure{pmatrix}{\Tg<mrow \mml:class="pmatrix">} + {\Tg</mrow>} +>>> + +\<amstex.tex mathltx\><<< +\Configure{align} + {\HCode{<mtable\Hnewline \mml:class="align">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline>}} {\HCode{</mtr>}} + {\HCode{<mtd>}} {\HCode{</mtd>}} +\Configure{aligned} + {\HCode{<mtable\Hnewline \mml:class="aligned">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline>}} {\HCode{</mtr>}} + {\HCode{<mtd>}} {\HCode{</mtd>}} +>>> + +\<amstex.tex mathltx\><<< +\Configure{cases} + {\Tg<mrow \mml:class="cases">} + {\Tg</mrow>} +\Configure{alignat} + {\HCode{<mtable \mml:class="alignat">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="alignat">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline \mml:class="alignat">}} + {\HCode{</mtd>}} +\Configure{gather} + {\HCode{<mtable \mml:class="gather">}} + {\HCode{</mtable>}} + {\HCode{<mtr\Hnewline \mml:class="gather">}} + {\HCode{</mtr>}} + {\HCode{<mtd\Hnewline \mml:class="gather">}} + {\HCode{</mtd>}} +>>>> + +\<vanilla mathltx\><<< +\Configure{align} + {\EndP\HCode{<mtable\Hnewline \mml:class="align">}} + {\HCode{</mtable>}} + {\HCode{<mtr>}} {\HCode{</mtr>}} + {\HCode{<mtd>}} {\HCode{</mtd>}} +>>> + + + + + + + +% {\mathchar"0403} % \square +% {\mathchar"0404} % \blacksquare +% {\mathchar"0406} % \lozenge +% {\mathchar"0407} % \blacklozenge +% {\mathchar"0438} % \backprime +% {\mathchar"0446} % \bigstar +% {\mathchar"0448} % \blacktriangledown +% {\mathchar"044E} % \blacktriangle +% {\mathchar"044F} % \triangledown +% {\mathchar"045D} % \measuredangle +% {\mathchar"045E} % \sphericalangle +% {\mathchar"0473} % \circledS +% {\mathchar"047B} % \complement +% {\mathchar"051E} % \diagup +% {\mathchar"051F} % \diagdown +% {\mathchar"053F} % \varnothing +% {\mathchar"0540} % \nexists +% {\mathchar"0560} % \Finv +% {\mathchar"0561} % \Game +% {\mathchar"0567} % \eth +% {\mathchar"0569} % \beth +% {\mathchar"056A} % \gimel +% {\mathchar"056B} % \daleth +% {\mathchar"057A} % \digamma +% {\mathchar"057B} % \varkappa +% {\mathchar"057C} % \Bbbk +% {\mathchar"057D} % \hslash + + +\<configure mathltx amssymb\><<< +\def\:tempa#1"#2#3///{\Configure{MathClass}{#2}} +\def\:temp#1{\:tempa#1///{}{}{}{#1}} +\:temp{\mathchar"2400} |% \boxdot |% +\:temp{\mathchar"2401} |% \boxplus |% +\:temp{\mathchar"2402} |% \boxtimes |% +\:temp{\mathchar"2405} |% \centerdot |% +\:temp{\mathchar"240C} |% \boxminus |% +\:temp{\mathchar"2459} |% \veebar |% +\:temp{\mathchar"245A} |% \barwedge |% +\:temp{\mathchar"245B} |% \doublebarwedge |% +\:temp{\mathchar"2464} |% \Cup |% +\:temp{\mathchar"2465} |% \Cap |% +\:temp{\mathchar"2466} |% \curlywedge |% +\:temp{\mathchar"2467} |% \curlyvee |% +\:temp{\mathchar"2468} |% \leftthreetimes |% +\:temp{\mathchar"2469} |% \rightthreetimes |% +\:temp{\mathchar"2475} |% \dotplus |% +\:temp{\mathchar"247C} |% \intercal |% +\:temp{\mathchar"247D} |% \circledcirc |% +\:temp{\mathchar"247E} |% \circledast |% +\:temp{\mathchar"247F} |% \circleddash |% +\:temp{\mathchar"253E} |% \divideontimes |% +\:temp{\mathchar"256C} |% \lessdot |% +\:temp{\mathchar"256D} |% \gtrdot |% +\:temp{\mathchar"256E} |% \ltimes |% +\:temp{\mathchar"256F} |% \rtimes |% +\:temp{\mathchar"2572} |% \smallsetminus |% +\:temp{\mathchar"3408} |% \circlearrowright |% +\:temp{\mathchar"3409} |% \circlearrowleft |% +\:temp{\mathchar"340A} |% \rightleftharpoons |% +\:temp{\mathchar"340B} |% \leftrightharpoons |% +\:temp{\mathchar"340D} |% \Vdash |% +\:temp{\mathchar"340E} |% \Vvdash |% +\:temp{\mathchar"340F} |% \vDash |% +\:temp{\mathchar"3410} |% \twoheadrightarrow |% +\:temp{\mathchar"3411} |% \twoheadleftarrow |% +\:temp{\mathchar"3412} |% \leftleftarrows |% +\:temp{\mathchar"3413} |% \rightrightarrows |% +\:temp{\mathchar"3414} |% \upuparrows |% +\:temp{\mathchar"3415} |% \downdownarrows |% +\:temp{\mathchar"3416} |% \upharpoonright |% +\:temp{\mathchar"3417} |% \downharpoonright |% +\:temp{\mathchar"3418} |% \upharpoonleft |% +\:temp{\mathchar"3419} |% \downharpoonleft |% +\:temp{\mathchar"341A} |% \rightarrowtail |% +\:temp{\mathchar"341B} |% \leftarrowtail |% +\:temp{\mathchar"341C} |% \leftrightarrows |% +\:temp{\mathchar"341D} |% \rightleftarrows |% +\:temp{\mathchar"341E} |% \Lsh |% +\:temp{\mathchar"341F} |% \Rsh |% +\:temp{\mathchar"3420} |% \rightsquigarrow |% +\:temp{\mathchar"3421} |% \leftrightsquigarrow |% +\:temp{\mathchar"3422} |% \looparrowleft |% +\:temp{\mathchar"3423} |% \looparrowright |% +\:temp{\mathchar"3424} |% \circeq |% +\:temp{\mathchar"3425} |% \succsim |% +\:temp{\mathchar"3426} |% \gtrsim |% +\:temp{\mathchar"3427} |% \gtrapprox |% +\:temp{\mathchar"3428} |% \multimap |% +\:temp{\mathchar"3429} |% \therefore |% +\:temp{\mathchar"342A} |% \because |% +\:temp{\mathchar"342B} |% \doteqdot |% +\:temp{\mathchar"342C} |% \triangleq |% +\:temp{\mathchar"342D} |% \precsim |% +\:temp{\mathchar"342E} |% \lesssim |% +\:temp{\mathchar"342F} |% \lessapprox |% +\:temp{\mathchar"3430} |% \eqslantless |% +\:temp{\mathchar"3431} |% \eqslantgtr |% +\:temp{\mathchar"3432} |% \curlyeqprec |% +\:temp{\mathchar"3433} |% \curlyeqsucc |% +\:temp{\mathchar"3434} |% \preccurlyeq |% +\:temp{\mathchar"3435} |% \leqq |% +\:temp{\mathchar"3436} |% \leqslant |% +\:temp{\mathchar"3437} |% \lessgtr |% +\:temp{\mathchar"343A} |% \risingdotseq |% +\:temp{\mathchar"343B} |% \fallingdotseq |% +\:temp{\mathchar"343C} |% \succcurlyeq |% +\:temp{\mathchar"343D} |% \geqq |% +\:temp{\mathchar"343E} |% \geqslant |% +\:temp{\mathchar"343F} |% \gtrless |% +\:temp{\mathchar"3442} |% \vartriangleright |% +\:temp{\mathchar"3443} |% \vartriangleleft |% +\:temp{\mathchar"3444} |% \trianglerighteq |% +\:temp{\mathchar"3445} |% \trianglelefteq |% +\:temp{\mathchar"3447} |% \between |% +\:temp{\mathchar"3449} |% \blacktriangleright |% +\:temp{\mathchar"344A} |% \blacktriangleleft |% +\:temp{\mathchar"344D} |% \vartriangle |% +\:temp{\mathchar"3450} |% \eqcirc |% +\:temp{\mathchar"3451} |% \lesseqgtr |% +\:temp{\mathchar"3452} |% \gtreqless |% +\:temp{\mathchar"3453} |% \lesseqqgtr |% +\:temp{\mathchar"3454} |% \gtreqqless |% +\:temp{\mathchar"3456} |% \Rrightarrow |% +\:temp{\mathchar"3457} |% \Lleftarrow |% +\:temp{\mathchar"345F} |% \varpropto |% +\:temp{\mathchar"3460} |% \smallsmile |% +\:temp{\mathchar"3461} |% \smallfrown |% +\:temp{\mathchar"3462} |% \Subset |% +\:temp{\mathchar"3463} |% \Supset |% +\:temp{\mathchar"346A} |% \subseteqq |% +\:temp{\mathchar"346B} |% \supseteqq |% +\:temp{\mathchar"346C} |% \bumpeq |% +\:temp{\mathchar"346D} |% \Bumpeq |% +\:temp{\mathchar"346E} |% \lll |% +\:temp{\mathchar"346F} |% \ggg |% +\:temp{\mathchar"3474} |% \pitchfork |% +\:temp{\mathchar"3476} |% \backsim |% +\:temp{\mathchar"3477} |% \backsimeq |% +\:temp{\mathchar"3500} |% \lvertneqq |% +\:temp{\mathchar"3501} |% \gvertneqq |% +\:temp{\mathchar"3502} |% \nleq |% +\:temp{\mathchar"3503} |% \ngeq |% +\:temp{\mathchar"3504} |% \nless |% +\:temp{\mathchar"3505} |% \ngtr |% +\:temp{\mathchar"3506} |% \nprec |% +\:temp{\mathchar"3507} |% \nsucc |% +\:temp{\mathchar"3508} |% \lneqq |% +\:temp{\mathchar"3509} |% \gneqq |% +\:temp{\mathchar"350A} |% \nleqslant |% +\:temp{\mathchar"350B} |% \ngeqslant |% +\:temp{\mathchar"350C} |% \lneq |% +\:temp{\mathchar"350D} |% \gneq |% +\:temp{\mathchar"350E} |% \npreceq |% +\:temp{\mathchar"350F} |% \nsucceq |% +\:temp{\mathchar"3510} |% \precnsim |% +\:temp{\mathchar"3511} |% \succnsim |% +\:temp{\mathchar"3512} |% \lnsim |% +\:temp{\mathchar"3513} |% \gnsim |% +\:temp{\mathchar"3514} |% \nleqq |% +\:temp{\mathchar"3515} |% \ngeqq |% +\:temp{\mathchar"3516} |% \precneqq |% +\:temp{\mathchar"3517} |% \succneqq |% +\:temp{\mathchar"3518} |% \precnapprox |% +\:temp{\mathchar"3519} |% \succnapprox |% +\:temp{\mathchar"351A} |% \lnapprox |% +\:temp{\mathchar"351B} |% \gnapprox |% +\:temp{\mathchar"351C} |% \nsim |% +\:temp{\mathchar"351D} |% \ncong |% +\:temp{\mathchar"3520} |% \varsubsetneq |% +\:temp{\mathchar"3521} |% \varsupsetneq |% +\:temp{\mathchar"3522} |% \nsubseteqq |% +\:temp{\mathchar"3523} |% \nsupseteqq |% +\:temp{\mathchar"3524} |% \subsetneqq |% +\:temp{\mathchar"3525} |% \supsetneqq |% +\:temp{\mathchar"3526} |% \varsubsetneqq |% +\:temp{\mathchar"3527} |% \varsupsetneqq |% +\:temp{\mathchar"3528} |% \subsetneq |% +\:temp{\mathchar"3529} |% \supsetneq |% +\:temp{\mathchar"352A} |% \nsubseteq |% +\:temp{\mathchar"352B} |% \nsupseteq |% +\:temp{\mathchar"352C} |% \nparallel |% +\:temp{\mathchar"352D} |% \nmid |% +\:temp{\mathchar"352E} |% \nshortmid |% +\:temp{\mathchar"352F} |% \nshortparallel |% +\:temp{\mathchar"3530} |% \nvdash |% +\:temp{\mathchar"3531} |% \nVdash |% +\:temp{\mathchar"3532} |% \nvDash |% +\:temp{\mathchar"3533} |% \nVDash |% +\:temp{\mathchar"3534} |% \ntrianglerighteq |% +\:temp{\mathchar"3535} |% \ntrianglelefteq |% +\:temp{\mathchar"3536} |% \ntriangleleft |% +\:temp{\mathchar"3537} |% \ntriangleright |% +\:temp{\mathchar"3538} |% \nleftarrow |% +\:temp{\mathchar"3539} |% \nrightarrow |% +\:temp{\mathchar"353A} |% \nLeftarrow |% +\:temp{\mathchar"353B} |% \nRightarrow |% +\:temp{\mathchar"353C} |% \nLeftrightarrow |% +\:temp{\mathchar"353D} |% \nleftrightarrow |% +\:temp{\mathchar"3568} |% \eqsim |% +\:temp{\mathchar"3570} |% \shortmid |% +\:temp{\mathchar"3571} |% \shortparallel |% +\:temp{\mathchar"3573} |% \thicksim |% +\:temp{\mathchar"3574} |% \thickapprox |% +\:temp{\mathchar"3575} |% \approxeq |% +\:temp{\mathchar"3576} |% \succapprox |% +\:temp{\mathchar"3577} |% \precapprox |% +\:temp{\mathchar"3578} |% \curvearrowleft |% +\:temp{\mathchar"3579} |% \curvearrowright |% +\:temp{\mathchar"357F} |% \backepsilon |% +>>>> + + + + +%%%%%%%%%%%%%%%%%% +\chapter{Loose Ends} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Right-to-Left Babel} +%%%%%%%%%%%%%%%%%% + + + +\<rlbabel everypar\><<< +\expandafter\ifx \csname o@everypar\endcsname\relax \else +\expandafter\ifx \csname ht:everypar\endcsname\relax + \let\ht:everypar\o@everypar +\fi\fi +>>> + + + + + + +\<dir ltr/rtl\><<< +dir="\if@rl rtl\else ltr\fi" +>>> + + +\<configure html-mltx rlbabel\><<< +\Configure{moreL} + {\ifmathltx |<ltr rlbabel mtext|>% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="ltr" >}% + \def\end:moreRL{\HCode{</span>}}% + \fi + \fi + } + {\end:moreRL} +\Configure{moreR} + {\ifmathltx |<rtl rlbabel mtext|>% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="rtl" >}\def\end:moreRL{\HCode{</span>}}\fi + \fi + } + {\end:moreRL} +\Css{.rtl {direction: rtl} + .ltr {direction: ltr} } +>>> + + + +\<ltr rlbabel mtext\><<< +\ifmtext + \leavevmode\special{t4ht@+</mtext><mtext{32}\mml:class="ltr">}x% + \def\end:moreRL{\HCode{</mtext><mtext>}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + + +\<rtl rlbabel mtext\><<< +\ifmtext + \leavevmode\special{t4ht@+</mtext><mtext{32}\mml:class="rtl">}x% + \def\end:moreRL{\HCode{</mtext><mtext>}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{openmath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<itemitem 0.0\><<< +\Configure{itemitem}{}{}{\par\leavevmode}{} +>>> + + + + +Used to have also a \verb'\special{t4ht@[}...\special{t4ht@]}', +where the specials asked to igore the enclosed +content. It is provided for getting `realistic' measurements in mathltx +applets. a candidadte for delition. + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +>>> + + +\<par del\><<< +!*?: >>> + + +\<tag of Tag\><<< + cw:>>> + +\<tail\><<< +tail>>> + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + + +\<save catcodes\><<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Boxed} +%%%%%%%%%%%%%%%%%% + +\<configure html-mltx amsmath\><<< +\Configure{boxed} + {\ifmathltx \HCode{\string\boxed\l:brace}% + \else \HCode{<span class="boxed">}\IgnorePar\fi} + {\ifmathltx \HCode{\r:brace}% + \else \HCode{</span>}\fi} +\Css{.boxed{border: 1px solid black; padding-left:2px; + padding-right:2px;}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{fontmath} +%%%%%%%%%%%%%%%%%% + + + + +\<fontmath mathord symbols as ?\><<< +\mathchar"3230 |%\prime|% +\mathchar"3231 |%\infty|% +\mathchar"323B |%\emptyset|% +\mathchar"323C |%\Re|% +\mathchar"323D |%\Im|% +\mathchar"3240 |%\aleph|% +>>> + +\<fontmath mathord symbols as op\><<< +\mathchar"3234 |%\triangle|% +\mathchar"3238 |%\forall|% +\mathchar"3239 |%\exists|% +\mathchar"323A |%\neg|% +\mathchar"323E |%\top|% +\mathchar"323F |%\bot|% +\mathchar"3272 |%\nabla|% +\mathchar"3278 |%\mathsection|% +\mathchar"327B |%\mathparagraph|% +\mathchar"327C |%\clubsuit|% +\mathchar"327D |%\diamondsuit|% +\mathchar"327E |%\heartsuit|% +\mathchar"327F |%\spadesuit|% +>>> + + + +\subsection{1: Large Operators} + +\begin{verbatim} +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 +\end{verbatim} + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 + |<fontmath mathord symbols as op|>% +} +>>> + +% \mathchar"230 |%math prime|% + +A prime is typically placed on letters and digits. + + +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +} +>>> + + +\subsection{3: Relational Operations} + +The catcode is needed because 303A is \verb':'. + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + +% \mathchar"327C |%clubsuit|% +% \mathchar"327D |%diamondsuit|% +% \mathchar"327E |%heartsuit|% +% \mathchar"327F |%spadesuit|% + + + +% \mathchar"340A % rightleftharpoons +% \mathchar"340B % leftrightharpoons +% + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} + + +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + + +\subsection{6: Punctuation Marks} + +\begin{verbatim} +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A % ldot +\mathchar"6201 % cdot +\mathchar"603A % colon +?; , +} +>>> + + +\subsection{Questions} + +\begin{verbatim} + + +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + + +\subsection{Type 4: Math Open} + + +latex.ltx, fontmath.ltx, plain.tex + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Notes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{To Do} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item Parametric commands as Superscripts or Subscripts: + \verb+$E^\frac{1}{2}$+ (instead of \verb+$E^{\frac{1}{2}}$+). + +\item + Numbering is not right justified: + +\begin{verbatim} +\documentclass{amsart} + \begin{document} + + \begin{eqnarray} + A &=& B + C + \end{eqnarray} + + \begin{align} + A &= B + C \qquad & N &= G + F + \end{align} + + \begin{alignat}{2} + A &= B + C \qquad \qquad & N & = G + F + \end{alignat} + +\begin{gather} +A = B + C \tag{my equation} \\ +B = \text{variable unknown} \notag \\ +Y = \max X + \log 10 +\end{gather} + +\end{document} +\end{verbatim} + + +\item +\begin{verbatim} +\begin{align} +e &= a + b \\ +\intertext{this should be located on the left browser hand margin} +a &= u +\end{align} + +\end{verbatim} + +\end{itemize} + +\endinput diff --git a/support/TeX4ht/source/tex4ht-mathml.tex b/support/TeX4ht/source/tex4ht-mathml.tex new file mode 100644 index 0000000000..5bc4151843 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-mathml.tex @@ -0,0 +1,5422 @@ +% $Id: tex4ht-mathml.tex 919 2021-04-30 09:01:14Z michal_h21 $$ +% compile 3 times: latex tex4ht-mathltx +% or xhlatex tex4ht-mathltx "html,3,sections+" +% +% Copyright 2009-2021 TeX Users Group +% Copyright 1999-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{mathml,html-mml} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common-code} +\input{common} +\input{tex4ht-cpright} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Constructs} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The equation Environment} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<mathml latex\><<< +\let\A:equation|=\a:equation +\let\B:equation|=\b:equation +\let\C:equation|=\c:equation +\Configure{equation} + {\A:equation|<math display in equation|>} + {\B:equation}{\C:equation} +>>> + +\<configure html-mml latex\><<< +\Configure{equation} + {\IgnorePar|<inline end-par comment|>\EndP + \HCode{<table class="equation"><tr><td>}\IgnorePar + |<math display in equation|>} + {\ifvmode \IgnorePar\fi\EndP\HCode{</td><td class="eq-no">}} + {\HCode{</td></tr></table>}|<try inline par|>} +\Css{.equation td{text-align:center; vertical-align:middle; }} +\Css{td.eq-no{ width:5\%; }} +\Css{table.equation { width:100\%; } } +>>> + +\<math display in equation\><<< +\Configure{$$} + {\Configure{@math}{|<block display|>% + \mml:class="equation"}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP} + {\DisplayMathtrue}% +>>> + + + +\<block display\><<< +%\a:mathml + display="block" +>>> + + +\<inline display\><<< +%\a:mathml + display="inline" +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{AmsMath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<amsmath mathml\><<< +\Configure{equation} + {\Configure{gather} + {\HCode{<\a:mathml mtable\Hnewline + \mml:class="equation"><\a:mathml mtr><\a:mathml mtd>}\IgnorePar } + {\HCode{</\a:mathml mtd></\a:mathml mtr></\a:mathml mtable>}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{</\a:mathml mtd><\a:mathml mtd>}\fi } + {} + }{}{} +\Css{.equation-star td{text-align:center; vertical-align:middle; }} +\Css{table.equation-star { width:100\%; } } +>>> + + + +\<amsmath html-mml pre 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="equation"><tr><td>}% + |<amsmath equation pre 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td><td class="eq-no">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="equation-star"><tr><td>}% + |<amsmath equation pre 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \IgnoreIndent\par} +>>> + + +\<amsmath html-mml jan 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="equation"><tr><td>}% + |<amsmath equation jan 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td><td class="eq-no">}% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td></tr></table>}% + \IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<table class="equation-star"><tr><td>}% + |<amsmath equation jan 2000|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td></tr></table>}% + \IgnoreIndent\par} +>>> + + +\<amsmath html-mml july 2000\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<table class="equation"><tr><td>}% + |<amsmath equation july 2000|>% + |<math display in equation|>% + } + {\ifvmode \IgnorePar\fi\EndP + \HCode{</td><td class="eq-no">}% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \ShowPar\IgnoreIndent\par} +\Configure{equation*} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<table class="equation-star"><tr><td>}% + |<amsmath equation july 2000|>% + |<math display in equation|>% + } + {\ifvmode \IgnorePar\fi\EndP \HCode{</td></tr></table>}% + \ShowPar\IgnoreIndent\par} +>>> + +% <\a:mathml math\Hnewline +% \csname a:math-xmlns\endcsname \Hnewline display="inline"> + +% \HCode{</\a:mathml math>}% + + + +\<amsmath equation jan 2000\><<< +|<amsmath equation july 2000|>% +>>> + + + + + + + +\<amsmath equation july 2000\><<< +\Configure{gather} + {\HCode{<\a:mathml mtable\Hnewline + \mml:class="equation"><\a:mathml mtr><\a:mathml mtd>}\IgnorePar + |<math display in equation|>} + {\HCode{</\a:mathml mtd></\a:mathml mtr></\a:mathml mtable>}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{</\a:mathml mtd><\a:mathml mtd>}\fi } + {} +>>> + +\<amsmath equation pre 2000\><<< +\Configure{$$}{}{}{}% +\Configure{gather} + {\Configure{$$} + {\Configure{@math}{\mml:class="equation"}\IgnorePar\EndP\DviMath} + {\EndDviMath\EndP}% + {}% + \IgnorePar + }{}{}{}{}{} +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{MathML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +\section{Front Matters} +%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%% +\subsection{DTD} +%%%%%%%%%%%%% + +\<configure mathml Preamble\><<< +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{VERSION,*XML-STYLESHEET} +\fi +>>> + + +% \def\mathml:DOCTYPE{|<xhtml+mathml dtd|>} + +\<configure html-mml tex4ht\><<< +\:CheckOption{frames} \if:Option + \Configure{frames-altDOCTYPE}{|<mathml dtd|>} + \else + |<no frames DOCTYPE|> +\fi +>>> + + + +\<no frames DOCTYPE\><<< +\def\:temp{xhtml} +\ifx \:DTD\:temp + |<mathml dtd|> +\fi +>>> + +% + +\<xhtml+mathml dtd\><<< +PUBLIC + "-//W3C//DTD XHTML 1.1 plus MathML 2.0//|<dtd lang|>"\Hnewline + "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd" +>>> + +\<mathml dtd\><<< +\Configure{DOCTYPE}{\HCode + {<!DOCTYPE html |<xhtml+mathml dtd|>% + >\Hnewline +}} +>>> + +\<frames dtd\><<< +\Configure{DOCTYPE} + {\HCode{<!DOCTYPE html PUBLIC + "-//W3C//DTD XHTML 1.0 Frameset//|<dtd lang|>" + \Hnewline + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\Hnewline}} +>>> + + + + + +DTD to be used. + +\begin{description} + + + +\item [http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd] + +Declares a FPI (Formal Public Identifier) +``-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN'' for XHTML+MathML. +The DTD is problematic +since it contains a processing instruction +\verb!<?IS10744:arch xhtml ...>! with a colon in the name. XML +parsers don't allow it when namespaces are enabled. It carries +revision id `xhtml-1,v 1.1 2000/10/31 19:52:09 davidc Exp'. + +\item[http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd] + +Suggested by the MathML +specification + http://www.w3.org/TR/2003/REC-MathML2-20031021/appendixa.html. However, the +DTD incorporates also SVG. It shows revision id +`xhtml-math11-f.dtd,v 1.16 2003/11/04 13:14:35 davidc Exp' + +\item [others] + +See SVG specifications +\end{description} + +The DTD +a "-//W3C//DTD XHTML 1.1 plus MathML +2.0//EN" is claimed: + + + + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + + + + + + + + +%%%%%%%%%%%%% +\subsection{???????????} +%%%%%%%%%%%%% + + + + +\<configure mathml Preamble\><<< +\ifx \a:mathml\:UnDef + \NewConfigure{mathml}{1} + \Configure{mathml}{} +\fi +\def\mml:class{\a:mathml class} +>>> + + +\<plain,latex mathml\><<< +|<nolimit functions|> +|<limit functions|> +>>> + + +\<\><<< +\def\mml:prefix#1{% + \Configure{mathop}{*}{<\a:mathml mo #1\Hnewline>}{</\a:mathml mo>}% + {\Configure{mathop}{*}{<\a:mathml mo>}{</\a:mathml mo>}{}}} +\def\mml:prefix#1{} +\def\limit:csname{|%form="prefix" |%\mml:class="csname-limit"} +\def\nolimit:csname{|%form="prefix" |%\mml:class="csname-nolimit"} +>>> + + +\<nolimit functionsNO\><<< +\def\:tempb#1{% + \def\:tempc##11->##2///{\if :##2:% + \pend:def#1{\mml:prefix \nolimit:csname}\fi}% + \expandafter\:tempc\meaning#11->///% +} +\:tempb\arccos +\:tempb\arcsin +\:tempb\arctan +\:tempb\arg +\:tempb\cosh +\:tempb\cos +\:tempb\coth +\:tempb\cot +\:tempb\csc +\:tempb\deg +\:tempb\dim +\:tempb\exp +\:tempb\hom +\:tempb\ker +\:tempb\lg +\:tempb\ln +\:tempb\log +\:tempb\sec +\:tempb\sinh +\:tempb\sin +\:tempb\tanh +\:tempb\tan +|<lim inf/sup|> +>>> + +\<limit functionsNO\><<< +\def\:tempb#1{% + \def\:tempc##11->##2///{\if :##2:% + \pend:def#1{\mml:prefix \limit:csname}\fi}% + \expandafter\:tempc\meaning#11->///% +} +\:tempb\Pr +\:tempb\det +\:tempb\gcd +\:tempb\inf +\:tempb\lim +\:tempb\max +\:tempb\min +\:tempb\sup +>>> + +\<lim inf/supNO\><<< +\def\:tempc{\mml:prefix\limit:csname \mathop{\operator@font lim inf}} +\HLet\liminf\:tempc +\def\:tempc{\mml:prefix\limit:csname \mathop{\operator@font lim sup}} +\HLet\limsup\:tempc +>>> + + +\<plain,latex mathml\><<< +\let\A:displaylines|=\a:displaylines +\let\B:displaylines|=\b:displaylines +\let\C:displaylines|=\c:displaylines +\let\D:displaylines|=\d:displaylines +\Configure{displaylines} + {\ifmmode + \def\A:displaylines{\HCode{<\a:mathml mtable + \mml:class="displaylines">}}% + \def\B:displaylines{\HCode{</\a:mathml mtable>}}% + \def\C:displaylines{\HCode{<\a:mathml mtr\Hnewline + \mml:class="displaylines"><\a:mathml mtd>}}% + \def\D:displaylines{\HCode{</\a:mathml mtd></\a:mathml mtr>}}% + \fi + \A:displaylines} + {\B:displaylines} {\C:displaylines}{\D:displaylines} +>>> + + + +\<mathml m:env\><<< +\def\m:env#1{\HCode{<\a:mathml mtable + \mml:class="#1"><\a:mathml mtr><\a:mathml mtd>}% + \def\endm:env{\HCode + {</\a:mathml mtd></\a:mathml mtr></\a:mathml mtable>}}} +>>> + + + +\<amstex.tex mathml\><<< +\Configure{pmatrix} + {\bgroup\m:env{pmatrix}} + {\endm:env\egroup} +\Configure{multline} + {\HCode{<\a:mathml mtable\mml:class="multline">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline\mml:class="multline"><\a:mathml mtd>}} + {\HCode{</\a:mathml mtd></\a:mathml mtr>}} +\Configure{smallmatrix} + {\HCode{<\a:mathml mtable\mml:class="smallmatrix">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline\mml:class="smallmatrix">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline\mml:class="smallmatrix">}} + {\HCode{</\a:mathml mtd>}} +\Configure{bmatrix} + {\bgroup\m:env{bmatrix}} + {\endm:env\egroup} +\Configure{vmatrix}{\bgroup\m:env{vmatrix}}{\endm:env\egroup} +\Configure{Vmatrix}{\bgroup\m:env{Vmatrix}}{\endm:env\egroup} +\Configure{aligned} + {\HCode{<\a:mathml mtable\mml:class="aligned">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline\mml:class="aligned">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline\mml:class="aligned">}} + {\HCode{</\a:mathml mtd>}} +\Configure{xalignat} + {\HCode{<\a:mathml mtable\mml:class="xalignat">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="xalignat">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="xalignat">}} + {\HCode{</\a:mathml mtd>}} +\Configure{xxalignat} + {\HCode{<\a:mathml mtable \mml:class="xxalignat">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="xxalignat">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="xxalignat">}} + {\HCode{</\a:mathml mtd>}} +\Configure{alignedat} + {\HCode{<\a:mathml mtable \mml:class="alignedat">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="alignedat">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="alignedat">}} + {\HCode{</\a:mathml mtd>}} +\Configure{gathered} + {\HCode{<\a:mathml mtable \mml:class="gathered">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="gathered">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="gathered">}} + {\HCode{</\a:mathml mtd>}} +>>> + + +\<mathml\><<< +% mathml.4ht (|version), generated from |jobname.tex +% Copyright 2009-2021 TeX Users Group +% Copyright |CopyYear.1999. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +\<html-mml\><<< +% html-mml.4ht (|version), generated from |jobname.tex +% Copyright 2009-2021 TeX Users Group +% Copyright |CopyYear.1999. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + + + +\<configure mathml tex4ht\><<< +|<tex compiler mathml|> +|<sub, sup, subsup|> +|<limits sub, sup, subsup|> +>>> + + + + + + + + + + +\<html4 font decorations\><<< +\Configure{htf}{0}{+}{<span\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>}% +\Configure{htf}{1}{+}{<img\Hnewline + src="}{" alt="}{" class="}{\%s}{-\%d}{x-x-\%x}{"\xml:empty>}% +\Configure{htf}{3}{+}{<img\Hnewline + src="}{" alt="}{" class="\%s-}{\%s}{-\%d}{x-x-\%x}% + {" style="text-align:middle"\xml:empty>}% +\Configure{htf}{4}{+}{<small\Hnewline + class="}{}{}{}{}{small-caps">}{</small>}% +\Configure{htf}{6}{+}{<u\Hnewline + class="}{}{}{}{}{underline">}{</u>}% +\Configure{htf}{8}{+} + {<sup class="htf"><strong>}{}{}{}{}{}{</strong></sup>}% +\Configure{htf}{10}{+} + {<span class="htf-cmbx">}{}{}{}{}{}{</span>}% +\Configure{htf}{12}{+} + {<span\Hnewline class="htf-calligraphy">}{}{}{}{}{}{</span>}% +>>> + +\<no html4 font decorations\><<< +\Configure{htf}{0}{+}{}{}{}{}{}{}{}% +\Configure{htf}{1}{+}{}{}{}{}{}{}{}% +\Configure{htf}{3}{+}{}{}{}{}{}{}{}% +\Configure{htf}{4}{+}{}{}{}{}{}{}{}% +\Configure{htf}{6}{+}{}{}{}{}{}{}{}% +\Configure{htf}{8}{+}{}{}{}{}{}{}{}% +\Configure{htf}{10}{+}{}{}{}{}{}{}{}% +\Configure{htf}{12}{+}{}{}{}{}{}{}{}% +>>> + + + + + +\<configure mathml tex4ht\><<< +\def\mml:htfsym{\Configure + {htf}{254}{+}{<\a:mathml mglyph\Hnewline fontfamily="}{\%s"}{ + index="\%s"}{ mathsize="\%d\%\%"}{}{ alt="}{"/>}} +\def\ext:htfsym{\Configure{htf}{254}{+}{}{}{}{}{}{}{}} +>>> + + +\<configure mathml-mml tex4ht\><<< +\append:def\mml:htfsym{|<no html4 font decorations|>} +\append:def\ext:htfsym{|<html4 font decorations|>} +>>> + + +We reserve code 254 (and 255) for unknown symbols. + + + +\<configure mathml latex\><<< +\:CheckOption{core}\if:Option \expandafter\endinput \fi +|<mathml latex|> +|<plain,latex mathml|> +>>> + +\<configure mathml fontmath\><<< +|<math fonts utilities|> +|<set mathcal class|> +|<set mathcal symbols|> +|<mathml plain,fontmath|> +>>> + +\<configure mathml plain\><<< +\:CheckOption{core}\if:Option \expandafter\endinput \fi +|<mathml plain|> +|<mathml plain,fontmath|> +|<plain,latex mathml|> +>>> + +\<mathml plain,fontmath\><<< +|<rlbabel everypar|> +|<plain,fontmath math classes|> +>>> + +\<configure mathml amsmath\><<< +|<arr amsmath, amstex1|> +|<amsmath mathml|> +|<amsmath symbols|> +>>> + +\<configure mathml amsmath\><<< +\Configure{intertext} + {\IgnorePar \ifinalign@ + \HCode{\ifnum \HRow>0 </\a:mathml mtd></\a:mathml mtr>\fi + <\a:mathml mtr><\a:mathml mtd + columnspan="\ifnum \HRow=0 15\else \HCol\fi" + \mml:class="intertext">}% + \else \ifingather@ + \HCode{<\a:mathml mtr><\a:mathml mtd columnspan="\HCol" + \mml:class="intertext">}% + \fi\fi + \AA:text{intertext}% + } + {\BB:text \ifvmode \IgnorePar \fi \EndP\ifinalign@ + \HCode{</\a:mathml mtd></\a:mathml mtr>% + \ifnum \HRow>0 <\a:mathml mtr><\a:mathml mtd>\fi}% + \else \ifingather@ + \HCode{</\a:mathml mtd></\a:mathml mtr>}% + \fi\fi + } +>>> + + +\<configure mathml amsmath\><<< +\Configure{boldsymbol}{\bgroup\HCode{<mstyle mathvariant="bold-italic">}}{\HCode{</mstyle>}\egroup} +>>> + +\<configure mathml amsmath\><<< +\Configure{maketag} + {\ifmathml + \ifmtext \expandafter\expandafter\expandafter\no:maketag\fi + \else \expandafter\no:maketag\fi + \AA:text{maketag}\hbox\bgroup\:gobbleIII :@:} + {\egroup\BB:text\ } +\def\no:maketag#1:@:#2\b:maketag{\hbox{#2}} +>>> + + +\<configure mathml amstext\><<< +\Configure{text}{\AA:text{text}}{\BB:text} +>>> + + +\<amsmath symbols\><<< +\def\:tempc{\DOTSI\protect\:idotsint} +\HLet\idotsint|=\:tempc +\def\:idotsint{% + \mathop{\intop\cdotp\cdotp\cdotp\intop }\ilimits@ +} +>>> + +\<configure mathml amsopn\><<< +|<amsopn / amstex.sty mathml|> +>>> + +\<configure mathml amstex1\><<< +% amstex.sty +|<arr amsmath, amstex1|> +|<amstex.sty mathml|> +|<amsopn / amstex.sty mathml|> + >>> + +\<configure mathml amstex\><<< +% amstex.tex +|<mathml m:env|> +|<amstex.tex mathml|> +>>> + + \<configure mathml vanilla\><<< + |<vanilla mathml|> + >>> + + I've calculated the space widths according to + \Link[https://chenfuture.wordpress.com/2008/03/22/math-spacing-and-length-units/]{}{}Math + Spacing and Length Units\EndLink\ blog post. + +\<plain,latex mathml\><<< +\let\mathml:on|=\relax +\Configure{ } + {\ifmathml \ifmtext \space \else\Tg<\a:mathml mspace + width="0.33em" \mml:class="nbsp" />\fi + \else \:nbsp\fi} +>>> + + +\<mathml latex\><<< +\Configure{hspace} + {\ifmathml\ifmtext\else \Tg<\a:mathml mspace width="\the\tmp:dim"/>\fi\fi}{}{ } +>>> + + + + +\<mathml latex\><<< +\Configure{romannumeral} + {\ifmathml\ifmtext\else \HCode{<\a:mathml mrow \mml:class="romannumeral">}\fi\fi} + {\ifmathml\ifmtext\else \HCode{</\a:mathml mrow>}\fi\fi} +>>> + +\<configure html-mml latex\><<< +\Configure{romannumeral} + {\ifmtext\else + \HCode{<\ifmathml \a:mathml mrow \else span \fi \mml:class="romannumeral">}\fi + } + {\ifmtext\else \HCode{</\ifmathml \a:mathml mrow\else span\fi>}\fi } +>>> + + +\<configure html-mml latex\><<< +\Configure{hspace} + {\ifmathml \ifmtext \else \Tg<\a:mathml mspace width="\the\tmp:dim"/>\fi\fi} + {}{\ifmathml \else \:nbsp\fi} +>>> + + + \<configure html-mml plain\><<< +|<plain,latex html-mml|> +>>> + + +\<configure html-mml latex\><<< +|<plain,latex html-mml|> +>>> + +\<plain,latex mathml\><<< + +% redefine macro from unicode.4ht to produce better accents +\def\unicode:mathop#1{\PauseMathClass\HCode{<\a:mathml mo accent="true">}#1\HCode{</\a:mathml mo>}\EndPauseMathClass} + +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\widetilde\widetilde{{}{}} + {} + {\HCode{<\a:mathml mover\Hnewline accent="false"><\a:mathml mrow\Hnewline>}#2\HCode{</\a:mathml mrow>}% + \:widetilde:over \HCode{</\a:mathml mover>}} + \Configure{accent}\widehat\widehat{{}{}} + {} + {\HCode{<\a:mathml mover\Hnewline accent="false"><\a:mathml mrow\Hnewline>}#2\HCode{</\a:mathml mrow>}% + \:widehat:over \HCode{</\a:mathml mover>}} +\fi +>>> + +\<plain,latex html-mml\><<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathml:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|<temp hcode accents|>% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\ifmmode + \Tg<\a:mathml mrow + \mml:class="accent#1">\mathord{#3}\Tg</\a:mathml mrow>% + \else \HCode{<span class="accent#1">}#3\HCode{</span>}% + \fi + }% + \fi +\fi +>>> + + + + \<plain,latex mathml\><<< +\:CheckOption{new-accents} \if:Option \else + \ifx \mathml:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|<temp hcode accents|>% + \ht:special{t4ht@[}\if!#1!x\else#2\fi\ht:special{t4ht@]}}} + {\Tg<\a:mathml mrow + \mml:class="accent#1">\mathord{#3}\Tg</\a:mathml mrow>% + }% + \fi +\fi +>>> + + + + + + + +\<temp hcode accents\><<< +\leavevmode +\if !#1!\ht:special{t4ht@+\string&{35}x#2;}% +\else \expandafter \ifx\csname U#2#1\endcsname\relax + \ht:special{t4ht@+\string&{35}x#2;}% +\else + \ht:special{t4ht@+\string&{35}x\csname U#2#1\endcsname;}% +\fi \fi x% +>>> + + +The special replaces the `x' character. + + + +\<plain,latex mathml\><<< +\let\mml:TeX|=\TeX +\def\TeX{\ifmathml + \HCode{<\a:mathml mtext + \mml:class="TeX">TeX</\a:mathml mtext>}\else \mml:TeX\fi} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{TeX Engine} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<sub, sup, subsup\><<< +\Configure{SUB} + {\Send{BACK} + {<\a:mathml msub><\a:mathml mrow\Hnewline>}% + \Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>\trap:base} + {\Tg</\a:mathml mrow>\TG</\a:mathml msub\Hnewline>} +\Configure{SUP} + {\Send{BACK} + {<\a:mathml msup><\a:mathml mrow\Hnewline>}% + \Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>\trap:base} + {\Tg</\a:mathml mrow>\TG</\a:mathml msup\Hnewline>} +\Configure{SUBSUP} + {\Send{BACK} + {<\a:mathml msubsup><\a:mathml mrow\Hnewline>}% + \Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>\trap:base} + {\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>\trap:base} + {\Tg</\a:mathml mrow>\TG</\a:mathml msubsup\Hnewline>} +\def\trap:base{{\HCode{}}} +>>> + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + +\<mathml Link\><<< +\LinkCommand\mtxt:link{\a:mathml mtext,% + xlink:type="simple" + xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href, + id, \mml:class="label",,} +\LinkCommand\msp:link{\a:mathml mstyle,% + xlink:type="simple" + xmlns:xlink="http://www.w3.org/1999/xlink" + xlink:href, + id, \mml:class="label",,} +\let\M:Link|=\Link +\def\Link{\ifmathml + \ifmtext |<end mtext space|>\HCode{</\a:mathml mtext>}% + \expandafter\expandafter\expandafter\mtxt:link + \else \expandafter\expandafter\expandafter\msp:link\fi + \else \expandafter\M:Link\fi} +\let\M:EndLink|=\EndLink +\edef\:temp{\catcode`\#=\the\catcode`\#} +\catcode`\#=12 + \def\EndLink{\ifmathml + \ifmtext |<end mtext space|>% + \Endmtxt:link \HCode{<\a:mathml mtext\Hnewline + \mml:class="endlabel">}|<start sharp mtext space|>% + \else \HCode{</\a:mathml mstyle><!--endlabel-->}\fi + \else \expandafter\M:EndLink\fi} +\:temp +>>> + +For some unclear reasom Mozilla requests mtext the link. + +\begin{verbatim} <mrow xlink:type="simple" +xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="..."><mtext> +...</mtext></mrow> \end{verbatim} + + + + +\<tex compiler mathml\><<< +\Configure{DviMath} + {\a:DviMathML \mathmltrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule \HCode{<!--l. + \the\inputlineno-->}\Tg<\a:mathml math\Hnewline + \csname a:math-xmlns\endcsname \Hnewline \a:@math>\a:math + |<sv dvimath par|>\IgnorePar} + {\Tg</\a:mathml math>\EndIgnoreRule + \ifOption{mml-fonts}{}{|%\ext:htfsym|%\EndNoFonts}% + \mathmlfalse \b:DviMathML |<recall dvimath par|>} +\NewConfigure{DviMathML}{2} +\NewConfigure{math-xmlns}{1} +\Configure{math-xmlns} + { xmlns="http://www.w3.org/1998/Math/MathML" } +>>> + + +\<configure html-mml tex4ht\><<< +\Configure{DviMath} + {\a:DviMathML \mathmltrue + \ifOption{mml-fonts}{|<mml fonts|>}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule \HCode{<!--l. + \the\inputlineno-->}\Tg<\a:mathml math\Hnewline + \csname a:math-xmlns\endcsname \Hnewline \a:@math>\a:math + |<sv dvimath par|>\IgnorePar} + {\Tg</\a:mathml math>\EndIgnoreRule + \ifOption{mml-fonts}{|<html fonts|>}{|%\ext:htfsym|%\EndNoFonts}% + \mathmlfalse \b:DviMathML |<recall dvimath par|>} +\Css{\a:mathml math { text-indent: 0em; }} +>>> + +\<html fonts\><<< +\Configure{htf}{0}{+}{<span\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>}% +>>> + +\<mml fonts\><<< +\Configure{htf}{0}{+}{<mstyle\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</mstyle>}% +>>> + +\<tex compiler mathml\><<< +\newif\ifmathml \mathmlfalse +\newif\ifmtext \mtextfalse +|<mathml Link|> +\NewConfigure{math}{1} +\NewConfigure{@math}{1} +\def\IgnoreRule{\ht:special{t4ht@\string_}} +\def\EndIgnoreRule{\ht:special{t4ht@\string_\string_}} +\Configure{$$} + {\Configure{@math}{|<block display|>}\IgnorePar + |<inline end-par comment|>\EndP\DviMath} + {\EndDviMath\ShowPar\par{\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +\Configure{$} + {\Configure{@math}{|<inline display|>}\DviMath} + {\EndDviMath}{} +\newif\ifDisplayMath \DisplayMathfalse +>>> + + +The \verb+\sqrt+ fanction produces a structure of the following form. + +\begin{verbatim} +PUSH + PUSH + ......sqrt et al symbols, possibly with PUSH-POP...... + POP + PUSH + W3: 655361 + DOWN3: -1020474 + PUT_RULE: height: 26213 + length: 1091179 + DOWN3: 1020474 + PUSH + .....body......... + POP + POP +POP +\end{verbatim} + + + +\<tex compiler mathml\><<< +\Configure{radical} + {\Tg<\a:mathml msqrt>% + \special{t4ht\string~!e<<\a:mathml mrow>}% + \special{t4ht\string~!e></\a:mathml mrow></\a:mathml msqrt>}% + \special{t4ht\string~!ee/}% + \special{t4ht\string~!ese-}% + } +>>> + +The following fails when the root symbol is made up +from multiple characters. + +\begin{verbatim} +\Configure{radical}{\Tg<\a:mathml msqrt>% + \Send{EndGROUP}{2}{}% + \Send{GROUP}{3}{<\a:mathml mrow>}% + \Send{EndGROUP}{3}% + {\tg</\a:mathml mrow>\tg</\a:mathml msqrt>}\special{t4ht@+}} +\end{verbatim} + + + + +\<inline end-par comment\><<< +\ifvmode\else \HCode{<!--tex4ht:inline-->}\fi +>>> + + +\<?\><<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {<\a:mathml mrow\Hnewline + \mml:class="\expandafter\:gobble\string#1">}{</\a:mathml mrow>}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> + + +\<recall dvimath par\><<< +\sv:ignore +>>> + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +The \verb'\MathRow' requests a \verb'<\a:mathml mrow\Hnewline>...</\a:mathml mrow>', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + +\<tex compiler mathml\><<< +\def\:MT{\ifmathml \a:mathml m\fi} +\Configure{halignTB}{\HCode{<\:MT table }\halignTBL}{\HCode{>}} +\Configure{halignTBL} + {t}{} + {b}{} + {c}{} + {} +\def\t:HA{\HCode{</\:MT table>}} +\def\R:HA{\HCode{<\:MT tr \Hnewline style="vertical-align:baseline">}} +\def\r:HA{\HCode{</\:MT tr>}} +\def\D:HA{|<td save EndP|>\HCode{<\:MT td + \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}} +\def\d:HA{\HCode{</\:MT td>}|<td recall EndP|>} +>>> + +\<configure html-mml tex4ht\><<< +\Configure{halignTBL} + {t}{\ifmathml \HCode{ align="baseline 1" style="|<border lines|>" }\fi} + {b}{\ifmathml \HCode{ align="baseline -1" style="|<border lines|>" }\fi} + {c}{\ifmathml \HCode{ align="axis" style="|<border lines|>" }\fi} + {} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{latex.ltx} +%%%%%%%%%%%%%%%% + + +MathML: +\begin{verbatim} +Authors wishing to encode whitespace characters at the start +or end of the content of a token, or in sequences other than a single +space, without having them ignored, must use   or other +`whitespace' non-marking entities as described in Section 6.2.4 +[Non-Marking Characters]. +\end{verbatim} + +\<start mtext space\><<< +\ht:special{t4ht@,&\#x00A0;}% +>>> + +\<start sharp mtext space\><<< +\ht:special{t4ht@, }% +>>> + +\<end mtext space\><<< +\ht:special{t4ht@,}% +>>> + + +\<configure html-mml latex\><<< +\Configure{newline} + {\ifmtext |<end mtext space|>\HCode{</\a:mathml mtext><\a:mathml + mtext \mml:class="newline">}% + |<start mtext space|>% + \else \Tg<br\Hnewline class="newline" />\fi} +>>> + +\<mathml latex\><<< +\Configure{newline} + {|<end mtext space|>\HCode{</\a:mathml mtext\Hnewline><\a:mathml + mtext \mml:class="newline">}|<start mtext space|>} +>>> + + + +\<mathml latex\><<< +\Configure{[]} + {\Configure{@math}{|<block display|>}\csname a:mathml[]\endcsname + \DviMath\Tg<\a:mathml mrow\Hnewline>$$\DisplayMathtrue } + {$$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml[]\endcsname} +\Configure{()} + {\Configure{@math}{|<inline display|>}\csname a:mathml()\endcsname + \DviMath\Tg<\a:mathml mrow\Hnewline>$} + {$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml()\endcsname} +\NewConfigure{mathml[]}{2} +\NewConfigure{mathml()}{2} +|<config array|> +>>> + +\<configure html-mml latex\><<< +\Configure{mathml[]} + {\edef\MathPar{\ifvmode par-\fi}\IgnorePar\endgraf\EndP + \HCode{<div class="\MathPar math-display">}} + {\HCode{</div>}|<try inline par|>} +\Css{div.math-display, div.par-math-display{text-align:center;}} +>>> + + + + +\<configure mathml rlbabel\><<< +\Configure{[]} + {\Configure{@math}{|<block display|>}\csname a:mathml[]\endcsname + \DviMath\Tg<\a:mathml mrow\Hnewline>$$\DisplayMathtrue } + {$$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml[]\endcsname + \if@rl\else\beginR\fi } +>>> + + + + + +\<configure mathml array\><<< +|<config array|> +>>> + +\<config array\><<< +\let\columnlines\empty +\Configure{halignTB<>}{array}{\HCode{\Hnewline + \a:mathml equalrows="false" + \ifx\columnlines\empty\else\a:mathml columnlines="\columnlines" \fi + \a:mathml equalcolumns="false" \a:mathml class="array"}<>\HAlign} +\Configure{array} + {\halignTB{array}} + {\ifvmode \IgnorePar\fi |<insert Clr|>\Tg</\a:mathml mtable>} + {\Tg<\a:mathml mtr>}{\Tg</\a:mathml mtr>} + {|<mtd array|>} + {\Tg</\a:mathml mtd>} +\ConfigureEnv{array} + {\bgroup\Configure{$}{}{}{}} + {\egroup} + {}{} +>>> + + + + +\<configure html-mml latex\><<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + +\<configure html-mml array\><<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + + + + +\<mtd array\><<< +\HCode{<\a:mathml mtd\Hnewline \mml:class="array" + \ifnum 1<\HMultispan columnspan="\HMultispan"\fi}% + \halignTD \HCode{>}% +>>> + +\<mtd matrix\><<< +\HCode{<\a:mathml mtd\Hnewline \mml:class="matrix" + \ifnum 1<\HMultispan columnspan="\HMultispan"\fi}% + \halignTD \HCode{>}% +>>> + + + + +\<insert Clr\><<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{<!--\the\tmp:toks-->}% +>>> + + + + + +\<mathml latex\><<< +\def\:MM{m} +\def\mathml:hborder{% +\Configure{HBorder} + {<\a:mathml mtr\Hnewline \mml:class="hline">} + {|<mml hline|>} + {</\a:mathml mtr>} + {<\a:mathml mtr\Hnewline \mml:class="cline">} + {<\a:mathml mtd></\a:mathml mtd>} + {|<mml hline|>} + {</\a:mathml mtr>} + {<\a:mathml mtr\Hnewline + \mml:class="vspace" style="font-size:\HBorderspace">} + {<\a:mathml mtd\Hnewline></\a:mathml mtd>} + {</\a:mathml mtr>} + } + + \mathml:hborder +>>> + +\<configure html-mml latex\><<< +\def\:MM{\ifmathml \a:mathml m\fi} +\Configure{HBorder} + {<\:MM tr\Hnewline + \ifmathml \expandafter\mml:class\else class\fi="hline">} + {\ifmathml|<mml hline|>\else + <td><hr\xml:empty></td>\fi} + {</\:MM tr>} + {<\:MM tr\Hnewline + \ifmathml \expandafter\mml:class\else class\fi ="cline">} + {<\:MM td></\:MM td>} + {\ifmathml|<mml hline|>\else + <td><hr\xml:empty></td>\fi} + {</\:MM tr>} + {<\:MM tr\Hnewline + \ifmathml \expandafter\mml:class\else class\fi="vspace" + style="font-size:\HBorderspace">} + {<\:MM td\Hnewline>\ifmathml\else\string&\#x00A0;\fi + </\:MM td>} + {</\:MM tr>} +\Configure{halign} + {\EndP + \PushStack\Table:Stck\TableNo + \gHAdvance\Next:TableNo by 1 + \global\let\TableNo=\Next:TableNo + \halignTB{halign}} + {\HCode{</\:MT table>}\PopStack\Table:Stck\TableNo} + {\HCode{<\:MT tr \Hnewline}\halignTR + \HCode{ id="TBL-\TableNo-\HRow-">}} + {\HCode{</\:MT tr>}} + {|<td save EndP|> \HCode{<td + \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline + id="TBL-\TableNo-\HRow-\HCol">}\ShowPar\par} + {\ifvmode \IgnorePar \fi \EndP + \HCode{</\:MT td>}|<td recall EndP|>} +>>> + + +\<configure html-mml latex\><<< +\Css{mtr.hline mtd{ + border-bottom:black solid 1px; + padding-top:2px; + padding-bottom:0em; +}} +\Css{mtr.hline mtd mo{ + display:none +}} +>>> + +\<td save EndP\><<< +\SaveEndP +>>> + +\<td recall EndP\><<< +\RecallEndP +>>> + + +\<mml hline\><<< +<\a:mathml mtd><mo> \string&\#x0332; </mo></\a:mathml mtd> +>>> + + + + +\<mathml latex\><<< +|<mathml fonts|> +\let\A:fbox=\a:fbox +\let\B:fbox=\b:fbox +\let\OLDn:fbox:\n:fbox: +\def\OLDf:box{\ifx \EndPicture \:UnDef + \expandafter \OLDn:fbox: \else\expandafter \o:fbox: \fi} +\def\:temp{\relax\ifmmode + \Configure{fbox}{\leavevmode\Configure{HtmlPar}{}{}{}{}\IgnoreRule + \AA:text{fbox}}{\BB:text\EndIgnoreRule}\else + \Configure{fbox}{\IgnoreRule\A:fbox}{\B:fbox\EndIgnoreRule}\fi + \OLDf:box} +\HLet\fbox\:temp +\let\A:mbox|=\a:mbox +\let\B:mbox|=\b:mbox +\let\OLD:mbox|=\mbox +\def\mbox{\relax\ifmmode \Configure{mbox}{\AA:text{mbox}}{\BB:text}\else + \Configure{mbox}{\A:mbox}{\B:mbox}\fi\OLD:mbox} +|<mathml text util|> +>>> + + +\<mathml text util\><<< +\NewConfigure{@mtext}{1} +\Configure{@mtext}{ } +\def\AA:text#1{|<config start mtext|>} +\def\BB:text{|<config end mtext|>} +>>> + + +\<config start mtext\><<< +\mtexttrue +\HCode{<\a:mathml mstyle\Hnewline \mml:class="#1"><\a:mathml + mtext \a:@mtext>}|<start mtext space|>\PauseMathClass + \ifmmode\else + |<config math within mtext|>% + \fi +>>> + + +\<config end mtext\><<< +\mtextfalse\EndPauseMathClass|<end mtext space|>\HCode + {</\a:mathml mtext></\a:mathml mstyle>}% +>>> + +\<config math within mtext\><<< +\Configure{$}% + {\EndPauseMathClass \mtextfalse + |<end mtext space|>\HCode{</\a:mathml mtext><\a:mathml + mstyle\Hnewline \mml:class="math">}}% + {\HCode{</\a:mathml mstyle><\a:mathml + mtext \a:@mtext>}|<start mtext space|>\PauseMathClass + \mtexttrue}% + {}% +>>> + +\<config math within mtext\><<< +\Configure{()}% + {\EndPauseMathClass \mtextfalse + |<end mtext space|>\HCode{</\a:mathml mtext><\a:mathml + mstyle\Hnewline \mml:class="math">}$}% + {$\HCode{</\a:mathml mstyle><\a:mathml + mtext \a:@mtext>}|<start mtext space|>\PauseMathClass + \mtexttrue}% + {}% +>>> + + + +% \Configure{$} +% {\Configure{@math}{|<inline display|>}\DviMath} +% {\EndDviMath}{} +% +% \Configure{()} +% {\Configure{@math}{|<inline display|>}\csname a:mathml()\endcsname +% \DviMath +% \Tg<\a:mathml mrow\Hnewline>$} +% {$\Tg</\a:mathml mrow>% +% \EndDviMath\csname b:mathml()\endcsname} + + + +\begin{verbatim} +\documentclass{article} +\begin{document} +$ \mbox{is right-continuous at } -r $ +\end{document} + +I see the problematic space between + + is right-continuous at + +and + + -r + +but I don't understand it. The mathml code currently has there + + <\a:mathml mrow><\a:mathml mtext>is right-continuous at</\a:mathml mtext></\a:mathml mrow> + <\a:mathml mo>−</\a:mathml mo><\a:mathml mi>r</\a:mathml mi> + +Replacing mrow with mstyle doesn't make a difference. Removing +the mrow solves the problem of the extra space. + +I introduced the above changes to the mathml and mozilla-mathml +configurations, respectively. +\end{verbatim} + + + + + +\<amstex.tex mathml\><<< +|<mathml text util|> +\Configure{text}{\AA:text{text}}{\BB:text} +\Configure{format} + {\HCode{<\a:mathml mtable \mml:class="format">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="format">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="format">}} + {\HCode{</\a:mathml mtd>}} +>>> + + + +\<amsmath mathml\><<< +\Configure{above} + {\Send{GROUP}{0}{<\a:mathml mfrac + linethickness="\the\tmp:dim"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@over:\:gobbleII} + {\HCode{<\a:mathml + mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>}} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<\a:mathml mfrac linethickness="0"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>} + \else + \Send{GROUP}{0}{<\a:mathml mfenced \a:mathml separators=""\Hnewline + \a:mathml open="|<lr del 2|>" \a:mathml close="|<lr del 3|>"><\a:mathml mfrac + \a:mathml linethickness="0"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml + mrow></\a:mathml mfrac></\a:mathml mfenced>} + \fi + } +>>> + + +\<configure mathml tex4ht\><<< +\Configure{over} + {\Send{GROUP}{0} + {<\a:mathml mfrac><\a:mathml mrow>}\HCode{</\a:mathml mrow>}} + {\HCode{<\a:mathml mrow>}\Send{EndGROUP}{0} + {</\a:mathml mrow></\a:mathml mfrac>}} +\Configure{atop} + {\Send{GROUP}{0}{<\a:mathml mfrac linethickness="0"><\a:mathml mrow>}\HCode{</\a:mathml mrow>}} + {\HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>}} +\Configure{above} + {\Send{GROUP}{0}{<\a:mathml mfrac linethickness="\the\tmp:dim"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:over:\:gobbleII} + {\HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>}} +>>> + +\<configure mathml tex4ht\><<< +\Configure{abovewithdelims} + {\abovewithdelims:III} + {} +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<\a:mathml mfrac linethickness="\the\tmp:dim"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>} + \else + \Send{GROUP}{0}{<\a:mathml mfenced \a:mathml separators=""\Hnewline + \a:mathml open="|<lr del 2|>" \a:mathml close="|<lr del 3|>"><\a:mathml mfrac + \a:mathml linethickness="\the\tmp:dim"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml + mrow></\a:mathml mfrac></\a:mathml mfenced>} + \fi + \tmp:dim + } +\Configure{atopwithdelims} + {\atopwithdelims:III} + {} +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<\a:mathml mfrac linethickness="0"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:atop: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>} + \else + \Send{GROUP}{0}{<\a:mathml mfenced \a:mathml separators=""\Hnewline + \a:mathml open="|<lr del 2|>" \a:mathml close="|<lr del 3|>"><\a:mathml mfrac + \a:mathml linethickness="0"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:atop: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml + mrow></\a:mathml mfrac></\a:mathml mfenced>} + \fi + } +\Configure{overwithdelims} + {\overwithdelims:III} + {} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<\a:mathml mfrac><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>} + \else + \Send{GROUP}{0}{<\a:mathml mfenced \a:mathml separators=""\Hnewline + \a:mathml open="|<lr del 2|>" \a:mathml close="|<lr del 3|>"><\a:mathml mfrac><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml + mrow></\a:mathml mfrac></\a:mathml mfenced>} + \fi + } +>>> + + + +\<configure mathml amsmath\><<< +\Configure{abovewithdelims} + {\abovewithdelims:III} + {} +\def\abovewithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<\a:mathml mfrac linethickness="\the\tmp:dim"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>} + \else + \Send{GROUP}{0}{<\a:mathml mfenced \a:mathml separators=""\Hnewline + \a:mathml open="|<lr del 2|>" \a:mathml close="|<lr del 3|>"><\a:mathml mfrac + \a:mathml linethickness="\the\tmp:dim"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml + mrow></\a:mathml mfrac></\a:mathml mfenced>} + \fi + \tmp:dim + } +\Configure{atopwithdelims} + {\atopwithdelims:III} + {} +\def\atopwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<\a:mathml mfrac \a:mathml linethickness="0"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@atop: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>} + \else + \Send{GROUP}{0}{<\a:mathml mfenced \a:mathml separators=""\Hnewline + \a:mathml open="|<lr del 2|>" \a:mathml close="|<lr del 3|>"><\a:mathml mfrac + \a:mathml linethickness="0"><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@atop: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml + mrow></\a:mathml mfrac></\a:mathml mfenced>} + \fi + } +\Configure{overwithdelims} + {\overwithdelims:III} + {} +\def\overwithdelims:III#1#2#3{% + \def\:temp{#2#3}\def\:tempa{..}\ifx \:temp\:tempa + \Send{GROUP}{0}{<\a:mathml mfrac><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>} + \else + \Send{GROUP}{0}{<\a:mathml mfenced \a:mathml separators=""\Hnewline + \a:mathml open="|<lr del 2|>" \a:mathml close="|<lr del 3|>"><\a:mathml mfrac><\a:mathml mrow>}% + \HCode{</\a:mathml mrow>}\o:@@over: + \HCode{<\a:mathml mrow>}\Send{EndGROUP}{0}{</\a:mathml + mrow></\a:mathml mfrac></\a:mathml mfenced>} + \fi + } +>>> + + + +\<mathml latex\><<< +\Configure{frac} + {\Tg<\a:mathml mfrac>\Tg<\a:mathml mrow\Hnewline>} + {\Tg</\a:mathml mrow>\Configure{over}{}{}} + {\Tg<\a:mathml mrow\Hnewline>} + {\Tg</\a:mathml mrow>\Tg</\a:mathml mfrac>} +>>> + + + +\<configure html-mml amsmath\><<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + |<amsmath html-mml pre 2000|> + \else + |<amsmath html-mml jan 2000|> + \fi +\else + |<amsmath html-mml july 2000|> +\fi +>>> + + +% \Configure{quad}{{\ifmathml \ifmtext \o:quad:\else +% \fi\else \o:quad: \fi}} +% + +\<amsmath mathml\><<< +\Configure{tmspace} + {\ifdim \textspace>0.2em + \HCode{<\a:mathml mspace + width="\textspace" \mml:class="tmspace"/>}% + \else \HCode{<\a:mathml mspace + width="0.3em" \mml:class="thinspace"/>}\fi + } +>>> + + +Use variant of original LaTeX macro used in \textunderscore +\<configure mathml tex4ht\><<< +\def\mathunderscore{\nfss@text{\HChar{95}}} +>>> + + +\<try inline par\><<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + +% \Configure{math}{} + + +% this used to be in \providemtextclass. Why? It produces totally invalid +% MathML. Where is </mtext> opened? +% \HCode{</mtext>}\ht:special{t4ht@,}\HCode{<mtext \a:@mtext>}\ht:special{t4ht@,&\#x00A0;}% +\<mathml fonts\><<< + +\def\providemtextclass#1{% + \Configure{@mtext}{#1}% +} + +\Configure{texttt} + {\ifmathml \providemtextclass{\mml:class="texttt" + mathvariant="monospace" }\fi} + {}% +\Configure{textit} + {\ifmathml \providemtextclass{\mml:class="textit" + mathvariant="italic" }\fi} + {}% +\Configure{textrm} + {\ifmathml \providemtextclass{\mml:class="textrm" + mathvariant="normal" }\fi} + {}% +\Configure{textup} + {\ifmathml \providemtextclass{\mml:class="textup" + mathvariant="normal" }\fi} + {}% +\Configure{textsl} + {\ifmathml \providemtextclass{\mml:class="textsl" + mathvariant="italic" }\fi} + {}% +\Configure{textsf} + {\ifmathml \providemtextclass{\mml:class="textsf" + mathvariant="sans-serif" }\fi} + {}% +\Configure{textbf} + {\ifmathml \providemtextclass{\mml:class="textbf" + mathvariant="bold" }\fi} + {}% +\Configure{textsc} + {\ifmathml \providemtextclass{\mml:class="textsc" + mathvariant="normal" }\fi} + {}% +\Configure{emph} + {\ifmathml \providemtextclass{\mml:class="emph" + mathvariant="italic" }\fi} + {}% +>>> + + + + +\<configure html-mml latex\><<< +\:CheckOption{fonts} \if:Option +\Configure{texttt} + {\ifmathml \providemtextclass{\mml:class="texttt" + mathvariant="monospace" }% + \else \HCode{<span class="texttt">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{textit} + {\ifmathml \providemtextclass{\mml:class="textit" + mathvariant="italic" }% + \else \HCode{<span class="textit">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{textrm} + {\ifmathml \providemtextclass{ \mml:class="textrm" + mathvariant="normal" }% + \else \HCode{<span class="textrm">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{textup} + {\ifmathml \providemtextclass{ \mml:class="textup" + mathvariant="normal" }% + \else \HCode{<span class="textup">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{textsl} + {\ifmathml \providemtextclass{ \mml:class="textst" + mathvariant="italic" }% + \else \HCode{<span class="textsl">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{textsf} + {\ifmathml \providemtextclass{ \mml:class="textsf" + mathvariant="sans-serif" }% + \else \HCode{<span class="textsf">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{textbf} + {\ifmathml \providemtextclass{ \mml:class="textbf" + mathvariant="bold" }% + \else \HCode{<span class="textbf">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{textsc} + {\ifmathml \providemtextclass{ \mml:class="textsc" + mathvariant="normal" }% + \else \HCode{<span class="textsc">}\NoFonts\fi} + {\ifmathml\else \EndNoFonts\HCode{</span>}\fi} + \Configure{emph} + {\ifmathml \providemtextclass{ \mml:class="emph" + mathvariant="italic" }% + \else \HCode{<span class="emph">}\NoFonts\fi} + {\ifmathml\else\EndNoFonts \HCode{</span>}\fi} +\fi +>>> + +The \verb+\bgroup...\egroup+ is to handle cases like +\verb+\nathbf{a}^x+. + + +\<configure mathml fontmath\><<< +\def\bold:version{bold} +\Configure{mathbf}% + {\bgroup\Tg<\a:mathml mstyle + mathvariant="bold">}% + {\Tg</\a:mathml mstyle>\egroup}% +\Configure{mathit}% + {\bgroup\Tg<\a:mathml mstyle mathvariant="\ifx + \bold:version\math@version bold-\fi italic">}% + {\Tg</\a:mathml mstyle>\egroup}% +\Configure{mathrm}% + {\bgroup\Tg<\a:mathml mstyle + mathvariant="\ifx + \bold:version\math@version bold\else normal\fi">}% + {\Tg</\a:mathml mstyle>\egroup}% +\Configure{mathsf}% + {\bgroup\Tg<\a:mathml mstyle mathvariant="\ifx + \bold:version\math@version bold-\fi sans-serif">}% + {\Tg</\a:mathml mstyle>\egroup}% +\Configure{mathtt}% + {\bgroup\Tg<\a:mathml mstyle mathvariant="monospace">}% + {\Tg</\a:mathml mstyle>\egroup}% +>>> + +\<configure mathml fontmath\><<< +\Css{ + math mstyle[mathvariant="bold"] { + font-weight: bold; + font-style: normal; + } +} +\Css{ + math mstyle[mathvariant="normal"] { + font-weight: normal; + font-style: normal; + } +} +>>> + +\<configure mathml amsfonts\><<< +\Configure{mathbb}{}{} +\Configure{mathfrak}{}{} +>>> + + + +Used to be + +\begin{verbatim} + \Configure{mathrm}{\Tg<\a:mathml mi \mml:class="mathrm">\PauseMathClass}% + {\EndPauseMathClass\Tg</\a:mathml mi>}% + \Configure{mathbf}{\Tg<\a:mathml mi \mml:class="mathbf" + mathvariant="bold">\PauseMathClass}% + {\EndPauseMathClass\Tg</\a:mathml mi>}% +\end{verbatim} + + +\<configure html-mml latex\><<< +\Css{math .texttt { font-family: monospace; }} +\Css{math .textit { font-style: italic; }} +\Css{math .textsl { font-style: oblique; }} +\Css{math .textsf { font-family: sans-serif; }} +\Css{math .textbf { font-weight: bold; }} +>>> + + + + + +\<plain,latex mathml\><<< +\Configure{afterSUB}{'}{\def\SUB:prime{\SUB:SUP}} +\Configure{'} + {\let\:primes=\empty} + {\relax \csname SUB:prime\endcsname\sp{% + \global\let\SUB:prime=\:UnDef + \def\:tempa{\prime\prime}\ifx \:tempa\:primes + \mathop{\HCode{\string&\#x2033;}}\else + \def\:tempa{\prime\prime\prime}\ifx \:tempa\:primes + \mathop{\HCode{\string&\#x2034;}}\else + \:primes \fi\fi}% + } + {\let\prime=\relax \xdef\:primes{\:primes\prime}} +>>> + +LaTeX places the primes within superscript, and mathml seems to follow +suit (maybe because of the use of latex fonts in mozilla). However, +unicode maps already seem to assume raised representation for the +primes. + + +\<configure html-mml latex\><<< +\:CheckOption{mathjax}\if:Option +\Configure{MathjaxSource}{https://cdn.jsdelivr.net/npm/mathjax@3/es5/mml-chtml.js} +\Configure{@HEAD}{\HCode{ <script type="text/javascript" id="MathJax-script" async="async" src="\a:MathjaxSource"></script> \Hnewline}} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{plain.sty} +%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<mathml plain\><<< + \Configure{eqalign} + {\HCode{<\a:mathml mtable \mml:class="eqalign">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr \Hnewline \mml:class="eqalign">}} + {\IgnorePar\HCode{</\a:mathml mtr>}} + {\HCode{\ifnum \HCol=3 <\a:mathml mtd\Hnewline + \mml:class="eqalign3"></\a:mathml mtd>\fi + <\a:mathml mtd \Hnewline \mml:class="eqalign\HCol">}} + {\HCode{</\a:mathml mtd>}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Palin + LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The default \verb'\left' and \verb'\right' in their default definition +with tex produce multi-part delimiters, from cmex, on large +subformulas. Hence, the `'.' below is needed. + +\<plain,latex mathml\><<< +\def\:temp#1{\a:left{#1}\o:left:.\b:left{#1}} \HLet\left|=\:temp +\def\:temp#1{\a:right{#1}\o:right:.\b:right{#1}}\HLet\right|=\:temp +\Configure{left} + {} + {\HCode{<\a:mathml mrow><\a:mathml mo \a:mathml fence="true" \a:mathml form="prefix"> + |<lr del 1|></\a:mathml mo>}\bgroup + \HCode{<\a:mathml mrow>}\bgroup} +\Configure{right} +{\egroup\egroup}%{\egroup\Send{GROUP}{0}{ \a:mathml close=""\space}\egroup} + {\HCode{</\a:mathml mrow><\a:mathml mo \a:mathml fence="true" \a:mathml form="postfix">|<lr del 1|></\a:mathml mo></\a:mathml mrow>}} +\def\def:DEL#1{\def\:DEL{#1}} +\def\check:DEL#1#2{\def\:tempa{#1}\ifx \:tempa\:DEL \def\:DEL{#2}\fi} +\NewConfigure{mfenced}[2]{\append:defI\def:DEL{\check:DEL{#1}{#2}}} +|</bigl, /bigr,... for mathml|> +\:CheckOption{new-accents} \if:Option \else + |<config mathml accents|> +\fi +\def\mathinner#1{\Tg<\a:mathml mrow + \mml:class="mathinner">#1\Tg</\a:mathml mrow>} +>>> + + +\<configure mathml etex4ht\><<< +\def\:tempc#1{\a:middle\mathrel{\left:right#1\:EMPTY}\b:middle} +\HLet\middle=\:tempc +\NewConfigure{middle}{2} +\Configure{middle} + {\bgroup + \Configure{mathrel}{*} + {<mo \mml:class="MathClass-rel" + fence="true" stretchy="true" >} + {</mo>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +>>> + + +The \verb+\root ...\of {...}+ creates the following structure. + +\begin{verbatim} +PUSH + ...root value... +POP +PUSH + PUSH + PUSH + ...root sign characters with PUSH-POP... + POP + PUSH + RIGHT4: 15213546 + DOWN3: -1553322 + PUT_RULE: height: 26213 + length: 1197667 + DOWN3: 1553322 + PUSH + ...root content... + POP + POP + POP +POP +\end{verbatim} + + + +\<plain,latex mathml\><<< +\Configure{root}{\rev:root}{}{} +\def\rev:root #1\b:root#2\c:root{ + \Tg<\a:mathml mroot>{\Tg<\a:mathml mrow\Hnewline>#2\Tg</\a:mathml mrow>}% + {\Tg<\a:mathml mrow\Hnewline>#1\Tg</\a:mathml mrow>}\Tg</\a:mathml mroot>} +\def\AccentMath#1{\relax\ifmmode #1\else $#1$\fi} +>>> + +\<lr del 1\><<< +\expandafter +\ifx \csname \string#1:lr del\endcsname\relax #1\else + \csname \string#1:lr del\endcsname\fi +>>> + +\<lr del 2\><<< +\expandafter +\ifx \csname \string#2:lr del\endcsname\relax #2\else + \csname \string#2:lr del\endcsname\fi +>>> + + +\<lr del 3\><<< +\expandafter +\ifx \csname \string#3:lr del\endcsname\relax #3\else + \csname \string#3:lr del\endcsname\fi +>>> + + +\<plain,latex mathml\><<< +\NewConfigure{mfenced}[2]{\expandafter + \def\csname \string#1:lr del\endcsname{#2}} +|<plain,latex mfenced|> +>>> + +\<amsmath mathml\><<< +\Configure{mfenced}{\lvert}{\string&\#x007C;} |%vertical line|% +\Configure{mfenced}{\rvert}{\string&\#x007C;} |%double vertical line|% +\Configure{mfenced}{\lVert}{\string&\#x2016;} +\Configure{mfenced}{\rVert}{\string&\#x2016;} +>>> + +\<amstex.sty mathml\><<< +\Configure{mfenced}{\lvert}{\string&\#x007C;} +\Configure{mfenced}{\rvert}{\string&\#x007C;} +\Configure{mfenced}{\lVert}{\string&\#x2016;} +\Configure{mfenced}{\rVert}{\string&\#x2016;} +>>> + + + + + +\<plain,latex mfenced\><<< +\Configure{mfenced}{\||}{\string&\#x2225;} +\Configure{mfenced}{.}{} +\Configure{mfenced}{\langle}{\string&\#x27E8;} |%lang|% +\Configure{mfenced}{\rangle}{\string&\#x27E9;} |%rang|% +\Configure{mfenced}{\vert}{||} +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\{}{\string{}}\:temp +\edef\:temp{\noexpand\Configure{mfenced}{\noexpand\}}{\string}}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\lbrace}{\string{}}\:temp +\edef\:temp{\noexpand + \Configure{mfenced}{\noexpand\rbrace}{\string}}}\:temp +\Configure{mfenced}{<}{\string&\#x003C;} |%lt|% +\Configure{mfenced}{>}{\string&\#x003E;} |%gt|% +\Configure{mfenced}{\lceil}{\string&\#x2308;} +\Configure{mfenced}{\rceil}{\string&\#x2309;} +\Configure{mfenced}{\lfloor}{\string&\#x230A;} +\Configure{mfenced}{\rfloor}{\string&\#x230B;} +\Configure{mfenced}{\Vert}{\string&\#x2225;} +\Configure{mfenced}{\rgroup}{)} +\Configure{mfenced}{\lgroup}{(} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\bracevert}{||} +\Configure{mfenced}{\downarrow}{\string&\#x2193;} +\Configure{mfenced}{\uparrow}{\string&\#x2191;} +\Configure{mfenced}{\Uparrow}{\string&\#x21D1;} +\Configure{mfenced}{\updownarrow}{\string&\#x2195;} +\Configure{mfenced}{\Updownarrow}{\string&\#x21D5;} +\Configure{mfenced}{\Downarrow}{\string&\#x21D3;} +\Configure{mfenced}{\backslash}{\string&\#x2216;} +\Configure{mfenced}{\rmoustache}{\string&\#x25DD;} +\Configure{mfenced}{\lmoustache}{\string&\#x25DC;} +\Configure{mfenced}{\Arrowvert}{\string&\#x2225;} +\Configure{mfenced}{\arrowvert}{\string&\#x007C;} +>>> + +% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else +% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else +% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else +% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}% +% \fi\fi\fi\fi } +% \edef\lbrc:{\string{} \edef\rbrc:{\string}} + +% \HCode{\string#1;}% + +%%%%%%%%%%%%%%%%%%%%% +\subsection{Amsmath} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-mml amsmath\><<< +\Configure{@begin} + {split} + {\let\tagform@=\:gobble } +>>> + +\<amsmath mathml\><<< +\Configure{split} + {\HCode{<\a:mathml mtable \Hnewline + \a:mathml columnalign="right left" + \mml:class="split">}} + {\ifvmode\IgnorePar\fi \HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr \mml:class="split-mtr">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="split-mtd">}} + {\HCode{</\a:mathml mtd>}} +>>> + + + +\<amsmath mathml\><<< +\Configure{multline} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="multline">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>% + <\a:mathml mtd\Hnewline \mml:class="multline">}} + {\HCode{</\a:mathml mtd></\a:mathml mtr>}} + {\HCode{</\a:mathml mtd><\a:mathml mtd>}} + {} +\Configure{multline*} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="multline-star">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr><\a:mathml mtd\Hnewline + \mml:class="multline-star">}} + {\HCode{</\a:mathml mtd></\a:mathml mtr>}} +\Configure{gather} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="gather">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +\Configure{gather*} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="gather-star">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +\Configure{subarray} + {\HCode{<\a:mathml mtable \mml:class="subarray\if c\Hlcr-c\fi" + \a:mathml rowspacing="0" + \if c\Hlcr \a:mathml columnalign="center"\fi>}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr><\a:mathml mtd>}} + {\HCode{</\a:mathml mtd></\a:mathml mtr>}} +\Configure{smallmatrix} + {\HCode{<\a:mathml mtable>}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="smallmatrix">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} + {\HCode{</\a:mathml mtd>}} +\def\:tempc#1#2{% + \ConfigureEnv{#1} + {\def\end:al:env{}\ifmmode\else + \ifvmode\else \def\end:al:env{\par\ShowPar\IgnoreIndent}\fi\fi} + {\end:al:env } + {}{}% + \Configure{#1} + {\IgnorePar + \ifvmode \EndP \else \EndP \HCode{<!--tex4ht:inline-->}\fi + \ifmathml + \Tg<\a:mathml mrow>\def\end:mathalign{\Tg</\a:mathml mrow>}% + \else + \Configure{@math}{|<block display|>}\DviMath + \def\end:mathalign{\EndDviMath \DisplayMathfalse}% + \DisplayMathtrue + \fi + \HCode{<\a:mathml mtable\Hnewline + \a:mathml columnalign="left" \mml:class="#2">}} + {\HCode{</\a:mathml mtable>}\end:mathalign } + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline + |<rightward align col|>% + \mml:class="align-\ifnum \HCol>\maxfields@ label\else + \ifodd\HCol\space odd\else even\fi + \fi">}} + {\HCode{|<extra align col sep|></\a:mathml mtd>}}} +\:tempc{align}{align} +\:tempc{alignat}{alignat} +\:tempc{xalignat}{xalignat} +\:tempc{xxalignat}{xxalignat} +\:tempc{flalign}{flalign} +\:tempc{align*}{align-star} +\:tempc{alignat*}{alignat-star} +\:tempc{xalignat*}{xalignat-star} +\:tempc{flalign*}{flalign-star} +>>> + + + +\<amsmath mathml\><<< +\Configure{gathered} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="gathered">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +>>> + + + +\<configure html-mml amsmath\><<< +\Css{mtd.align-odd{margin-left:2em; text-align:right;}} +\Css{mtd.align-even{margin-right:2em; text-align:left;}} +>>> + +\<extra align col sep\><<< +\ifodd\HCol\space\else + <\a:mathml mspace width="2em"/>\fi +>>> + +\<rightward align col\><<< +\ifodd\HCol \a:mathml columnalign="right" \fi +>>> + +Setting \verb+#1+ below within mrow is problematic in the sense that +arrows don't stretch over multi-characters content \verb+#2+. +A \verb+accent="true"+ move the arrow lower, but also distribute the +characters further apart. + +\<under arrow\><<< +\Tg<\a:mathml munder>% +\Tg<\a:mathml mrow\Hnewline>#2\Tg</\a:mathml mrow>% +#1% +\Tg</\a:mathml munder>% +>>> + +\<over arrow\><<< +\Tg<\a:mathml mover class="overarrow">% +\Tg<\a:mathml mrow\Hnewline>{#2#3}\Tg</\a:mathml mrow>% +#1% +\Tg</\a:mathml mover>% +>>> + + + + +% \Tg<\a:mathml mrow\Hnewline>#1\Tg</\a:mathml mrow>% +% \Tg<\a:mathml mrow>#1\Tg</\a:mathml mrow>% + + +\<arr amsmath, amstex1\><<< +\Configure{underarrow@} + {\Tg<\a:mathml munder>\Tg<\a:mathml mrow\Hnewline>} + {\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>} + {\Tg</\a:mathml mrow>\Tg</\a:mathml munder>} +\Configure{overarrow@} + {\Tg<\a:mathml mover accent="true">\Tg<\a:mathml mrow\Hnewline>} + {\Tg</\a:mathml mrow>\Tg<\a:mathml mrow>} + {\Tg</\a:mathml mrow>\Tg</\a:mathml mover>} +\def\:tempc#1#2#3{\a:overarrow@ + \hbox{$\m@th#2#3$}\b:overarrow@ + \hbox{#1#2}\c:overarrow@ + } +\HLet\overarrow@\:tempc +>>> + + + + + +\<configure mathml amstex1\><<< +\ifx \o:overrightarrow:\:UnDef\else + \HRestore\overrightarrow + \HRestore\overleftarrow + \HRestore\overleftrightarrow +\fi +>>> + + + +\<amsmath html-mml jan 2000NO\><<< +\HRestore\overrightarrow +\HRestore\overleftarrow +\HRestore\overleftrightarrow +>>> + +\<amsmath html-mml july 2000NO\><<< +\HRestore\overrightarrow +\HRestore\overleftarrow +\HRestore\overleftrightarrow +>>> + +% \HRestore\underrightarrow +% \HRestore\underleftarrow +% \HRestore\underleftrightarrow + + + + +\<\><<< +\def\:tempc{\mathpalette{\overarrow@\rightarrow}} +\HLet\overrightarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow@\leftarrow}} +\HLet\overleftarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow@\leftrightarrow}} +\HLet\overleftrightarrow=\:tempc + +\def\:tempc{\mathpalette{\underarrow@\rightarrow}} +\HLet\underrightarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow@\leftarrow}} +\HLet\underleftarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow@\leftrightarrow}} +\HLet\underleftrightarrow=\:tempc +>>> + + +Replace with +\Link[http://www.unicode.org/charts/PDF/U27F0.pdf]{}{}stretching +arrows\EndLink{} once they work. It was \verb+\rightarrow+ (U-2192) +before going to \verb+\HCode{&\#x20D7;}+. +(... suggested +to replace it with +the diacritical one: \verb+⃗+. I t solves two problems. The arrow is +lower and the the spacing between a subscript and a vector is +reduced.) + +\<mathml plain,fontmath\><<< +\Configure{overrightarrow} + {\leavevmode\hbox\bgroup$\Tg<\a:mathml mover class="overrightarrow">% + \Tg<\a:mathml mrow\Hnewline>\:gobble} + {\Tg</\a:mathml mrow>\mathop{\HCode{&\#x20D7;}}% + \Tg</\a:mathml mover>$\egroup} +\Configure{overleftarrow} + {\leavevmode\hbox\bgroup$\Tg<\a:mathml mover class="overleftarrow">% + \Tg<\a:mathml mrow\Hnewline>\:gobble} + {\Tg</\a:mathml mrow>\mathop{\HCode{&\#x20D6;}}% + \Tg</\a:mathml mover>$\egroup} +>>> + + +\<amsmath mathml\><<< +\Configure{[]}{\begin{equation*}}{\end{equation*}} +>>> + +\<amsmath mathml\><<< +\Configure{underrightarrow} + {\Tg<\a:mathml munder>\Tg<\a:mathml mrow\Hnewline>\:gobble} + {\Tg</\a:mathml mrow>\mathop{\rightarrow}\Tg</\a:mathml munder>} +\Configure{underleftarrow} + {\Tg<\a:mathml munder>\Tg<\a:mathml mrow\Hnewline>\:gobble} + {\Tg</\a:mathml mrow>\mathop{\leftarrow}\Tg</\a:mathml munder>} +>>> + + +\<amsmath mathml\><<< +\Configure{overleftrightarrow} + {\Tg<\a:mathml mover class="overleftrightarrow">\Tg<\a:mathml mrow\Hnewline>\:gobble} + {\Tg</\a:mathml mrow>\mathop{\HCode{&\#x20E1;}}\Tg</\a:mathml mover>} +\Configure{underleftrightarrow} + {\Tg<\a:mathml munder>\Tg<\a:mathml mrow\Hnewline>\:gobble} + {\Tg</\a:mathml mrow>\mathop{\leftrightarrow}\Tg</\a:mathml munder>} +>>> + + + + + + +\<\><<< +\def\underarrow:#1#2#3{|<under arrow|>} +\def\overarrow:#1#2#3{|<over arrow|>} +\def\:tempc{\mathpalette{\overarrow:\rightarrow}} +\HLet\overrightarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow:\leftarrow}} +\HLet\overleftarrow=\:tempc +\def\:tempc{\mathpalette{\overarrow:\leftrightarrow}} +\HLet\overleftrightarrow=\:tempc +>>> + +\<\><<< +\def\:tempc{\mathpalette{\underarrow:\rightarrow}} +\HLet\underrightarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow:\leftarrow}} +\HLet\underleftarrow=\:tempc +\def\:tempc{\mathpalette{\underarrow:\leftrightarrow}} +\HLet\underleftrightarrow=\:tempc +>>> + + + +\<amsmath mathml\><<< +|<mathml m:env|> +\renewcommand{\xrightarrow}[2][]{% + \Tg<\a:mathml munderover>% + \rightarrow + \Tg<\a:mathml mrow\Hnewline>#1\Tg</\a:mathml mrow>% + \Tg<\a:mathml mrow\Hnewline>#2\Tg</\a:mathml mrow>% + \Tg</\a:mathml munderover>}% +\renewcommand{\xleftarrow}[2][]{% + \Tg<\a:mathml munderover>% + \leftarrow + \Tg<\a:mathml mrow\Hnewline>#1\Tg</\a:mathml mrow>% + \Tg<\a:mathml mrow\Hnewline>#2\Tg</\a:mathml mrow>% + \Tg</\a:mathml munderover>}% + +\def\overset#1#2{{% + \Tg<\a:mathml mover class="overset">\Tg<\a:mathml + mrow\Hnewline>#2\Tg</\a:mathml mrow>% + \Tg<\a:mathml mrow\Hnewline>#1\Tg</\a:mathml mrow>% + \Tg</\a:mathml mover>}}% +\def\underset#1#2{{% + \Tg<\a:mathml munder>\Tg<\a:mathml mrow\Hnewline>#2\Tg</\a:mathml mrow>% + \Tg<\a:mathml mrow\Hnewline>#1\Tg</\a:mathml mrow>% + \Tg</\a:mathml munder>}}% + +\def\sideset#1#2#3{{\Tg<\a:mathml mrow \mml:class="sideset"\Hnewline + >{\HCode{}}#1{\HCode{}#3}#2\Tg</\a:mathml mrow>}} +\ConfigureEnv{eqxample}{}{}{}{} +\ConfigureEnv{gather*}{}{}{}{} +\ConfigureEnv{gathered}{}{}{}{} +\ConfigureEnv{matrix}{}{}{}{} +>>> + + The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts + + + +% \renewcommand{\hdotsfor}[1]{% +% \ifx[#1\@xp\shdots@for\else\hdots@for\@ne{#1}\fi} +% \def\shdots@for#1]{\hdots@for{#1}} +% \def\hdots@for#1#2{\multicolumn{#2}c% +% {\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@ +% \xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}% +% \hfill +% \mkern-#1\dotsspace@}% +% } + + + +\<amsmath symbols\><<< +\def\:tempc{\HCode{<\a:mathml mspace width="0.2em"/>}\mathbin + {mod}\HCode{<\a:mathml mspace width="0.2em"/>}} +\HLet\bmod\:tempc +\def\:tempc#1{\allowbreak + \HCode{<\a:mathml mspace width="0.3em"/>}(#1)} +\HLet\pod=\:tempc +\def\:tempc#1{\pod{\mathop{mod}\HCode{<\a:mathml mspace width="0.3em"/>}#1}} +\HLet\pmod=\:tempc +\def\:tempc#1{\allowbreak + \HCode{<\a:mathml mspace width="0.3em"/>}\mathop + {mod}\HCode{<\a:mathml mspace width="0.3em"/>}#1} +\HLet\mod=\:tempc +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{amsopn} +%%%%%%%%%%%%%%%%%%%% + + +\marginpar{remove the following def in liu of xtpipes} + +\<amsopn / amstex.sty mathml\><<< +\def\:tempc{{\underrightarrow\lim}} \HLet\varinjlim\:tempc +\def\:tempc{{\underleftarrow\lim}} \HLet\varprojlim\:tempc +\def\:tempc{{\overline\lim}} \HLet\varlimsup\:tempc +\def\:tempc{{\underline\lim}} \HLet\varliminf\:tempc +>>> + + +\<amsopn / amstex.sty mathml\><<< +\def\:tempc#1#2#3{\hbox{{\mtexttrue + \HCode{<\a:mathml mrow\Hnewline + \mml:class="text"><\a:mathml mtext + \a:@mtext>}|<start mtext space|>\PauseMathClass + \Configure{$}{\EndPauseMathClass\mtextfalse + |<end mtext space|>\HCode{</\a:mathml mtext><\a:mathml + mrow\Hnewline \mml:class="math">}} + {\HCode{</\a:mathml mrow><\a:mathml mtext + \a:@mtext>}|<start mtext space|>\mtexttrue\PauseMathClass}{#1} + \let\f@size#2\selectfont #3}% + \mtextfalse \EndPauseMathClass |<end mtext space|>\HCode + {</\a:mathml mtext></\a:mathml mrow>}}} +\HLet\textdef@\:tempc +>>> + + +The original definitions for the following macros contain small spaces +\verb+\,+ in the names, and the spaces imply improper mathml outcome +of the form \verb+<mo>...<mspace.../>...</mo>+. + + +\<configure mathml amsopn\><<< +\def\:tempc{\qopname\relax m{lim inf}} +\HLet\liminf=\:tempc +\def\:tempc{\qopname\relax m{lim sup}} +\HLet\limsup=\:tempc +\def\:tempc{\qopname\relax m{proj lim}} +\HLet\projlim=\:tempc +\def\:tempc{\qopname\relax m{inj lim}} +\HLet\injlim=\:tempc +>>> + + + + + +Why originally the accents are defined within a group? (knuth answer +this in the texbook.) + +\<plain,latex mathml\><<< +\let\A:oalign|=\a:oalign +\let\B:oalign|=\b:oalign +\Configure{oalign} + {\ifmmode \Configure{$}{\Tg<\a:mathml mrow\Hnewline>}% + {\Tg</\a:mathml mrow>}{}% + \let\halign|=\TeXhalign + \Tg<\a:mathml mrow\Hnewline \mml:class="oalign">\else\A:oalign + \fi} + {\ifmmode \Tg</\a:mathml mrow>\else\B:oalign\fi} +>>> + + +\<configure mathml amsopn\><<< +\Configure{qopname} + {\Configure{mathop}{*} + {<\a:mathml mi \mml:class="qopname">} + {</\a:mathml mi><mo> ⁡<!--FUNCTION APPLICATION--> </mo>} + {}} +>>> + +The following CSS caused too large whitespace around functions +%\Css{mi.qopname + mo{margin-left:0.3em}} +%\Css{mi + mi.qopname{margin-left:0.3em}} + + +%%%%%%%%%%%%%%%%% +\subsection{mathtools} +%%%%%%%%%%%%%%%%%% + +\<configure mathml mathtools\><<< +\Configure{MT_gathered_env} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="MT-gathered-env">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +\ConfigureEnv{MT_gathered_env}{}{}{}{} +>>> + +\<configure mathml mathtools\><<< +\ConfigureEnv{gathered} + {% + \Configure{MT_gathered_env} + {\HCode{<\a:mathml mtable\Hnewline + \mml:class="gathered" columnalign="center" >}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}}% + } + {}{}{} +>>> + +\<configure mathml mathtools\><<< +\ConfigureEnv{lgathered} + {% + \Configure{MT_gathered_env} + {\HCode{<\a:mathml mtable\Hnewline + \mml:class="lgathered" columnalign="left" >}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}}% + } + {}{}{} +>>> + + +\<configure mathml mathtools\><<< +\ConfigureEnv{rgathered} + {% + \Configure{MT_gathered_env} + {\HCode{<\a:mathml mtable\Hnewline + \mml:class="rgathered" columnalign="right" >}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}}% + } + {}{}{} +>>> + + +\<configure mathml mathtools\><<< +\ConfigureEnv{cases} + {\HCode{<\a:mathml mrow \mml:class="cases" >}} + {\HCode{</\a:mathml mrow>}} + {}{} +\Configure{dcases} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="dcases">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd columnalign="left">}} + {\HCode{</\a:mathml mtd>}} +\Configure{dcases*} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="dcases-star">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd columnalign="left">}% + \ifnum\HCol=2 + \PauseMathClass + \HCode{<\a:mathml mtext>}% + \fi + } + {\ifnum\HCol=2 + \EndPauseMathClass + \HCode{</\a:mathml mtext>}% + \fi + \HCode{</\a:mathml mtd>}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Gaus} +%%%%%%%%%%%%%%%%%% + + + +\<configure mathml gauss\><<< +\Configure{gmatrix} + {\HCode{<\a:mathml mtable \mml:class="gmatrix-\g@environment">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="gmatrix">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{\Hnewline<\a:mathml mtd>}} + {\HCode{</\a:mathml mtd>}} +>>> + +\<configure mathml gauss\><<< +\Css{mtr.gmatrix mtd {margin-left:0em; margin-right:0em; + padding-left:0em; padding-right:0em; + text-indent:0pt; +}} +\Css{mfenced mtable {margin-left:0em; margin-right:0em; + padding-left:0em; padding-right:0em; + text-indent:0pt; +}} +>>> + +\<configure mathml gauss\><<< +\Configure{rowops} + {\HCode{<mtable class="rowops"> + <mtr><mtd columnspan="3"><mtext>Row ops:</mtext></mtd></mtr> + }} + {\HCode{</mtable>}} +\Configure{colops} + {\HCode{<mtable class="colops"> + <mtr><mtd columnspan="3"><mtext>Col ops:</mtext></mtd></mtr> + }} + {\HCode{</mtable>}} +\Css{mtable.rowops, mtable.colops { + margin-left:0.2em; + margin-right:0.2em; + font-size:75\%; + }} +\Css{mtable.rowops mtr, mtable.colops mtr, + mtable.rowops mtd, mtable.colops mtd + { + margin:0em; padding:0em; + }} +\Configure{add} + {\HCode{<mtr><mtd>}\mbox{add }\HCode{</mtd><mtd>}} + {,\HCode{</mtd><mtd>}} + {\HCode{</mtd></mtr>}} +\Configure{mult} + {\HCode{<mtr><mtd>}\mbox{mult }\HCode{</mtd><mtd>}} + {,\HCode{</mtd><mtd>}} + {\HCode{</mtd></mtr>}} +\Configure{swap} + {\HCode{<mtr><mtd>}\mbox{swap }\HCode{</mtd><mtd>}} + {,\HCode{</mtd><mtd>}} + {\HCode{</mtd></mtr>}} +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{Eqnarray} +%%%%%%%%%%%%%%%%%%%% + +Had `BASELINE' before `MIDDLE', but changed to conform with math +in page 252-- in intro to theory book. + +\<mathml latex\><<< +\ConfigureEnv{eqnarray} + {\ifvmode \IgnorePar \fi \EndP} + {\ifvmode \IgnorePar \fi \EndP \ShowPar \par} + {}{} +\Configure{eqnarray} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="eqnarray\ifx + \@seqncr\@eqncr\else-star\fi" + \a:mathml columnalign="right center left" >}}% + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\Tg<\a:mathml mtd\Hnewline \mml:class="eqnarray-\HCol"> + \ifnum \HCol=4 + \Tg<\a:mathml mtext + \mml:class="eqnarray">|<start mtext space|>\PauseMathClass + \mtexttrue + |<config math within mtext|>% + \fi} + {\ifnum \HCol=4 \mtextfalse + \EndPauseMathClass|<end mtext space|>\Tg</\a:mathml mtext>\fi + \Tg</\a:mathml mtd>} +>>> + + + + +\<configure html-mml latex\><<< +|<config multicolumn|> +>>> + + +\<configure html-mml array\><<< +|<config multicolumn|> +>>> + + +\<config multicolumn\><<< +\Configure{multicolumn} + {\let\sv:VBorder\VBorder + \let\VBorder\empty + \Configure{VBorder}{}{}{}{}% + } + {\let\VBorder\sv:VBorder} + {\ifmmode \HCode{<\a:mathml mrow\Hnewline \mml:class="multicolumn}% + {|<attributes of mml multicolumn|>\HColAlign}\HCode{">}\else + \ifvmode\IgnorePar\fi + \HCode{<div class="multicolumn" }\HColAlign\HCode{>}\fi } + {\ifmmode \HCode{</\a:mathml mrow>}\else + \ifvmode\IgnorePar\fi \EndP\HCode{</div>}\fi } +\def\gob:sp#1{#1} +>>> + +\<attributes of mml multicolumn\><<< +\Configure{halignTD} {}{} + {<}{\HCode{-left}} + {-}{\HCode{-center}} + {>}{\HCode{-right}} + {p}{\HCode{-left}} + {}% +>>> + + +\<configure html-mml tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\ifmathml \HCode{ \a:mathml columnalign="left"}\else + \HCode{ style="text-align:left; white-space:nowrap;"}\fi} + {-}{\ifmathml \HCode{ \a:mathml columnalign="center"}\else + \HCode{ style="text-align:center; white-space:nowrap;"}\fi} + {>}{\ifmathml \HCode{ \a:mathml columnalign="right"}\else + \HCode{ style="text-align:right; white-space:nowrap;"}\fi} + {^}{\ifmathml \HCode{ \a:mathml rowalign="top"}\else + \HCode{ style="vertical-align:top; white-space:nowrap;"}\fi} + {=}{\ifmathml \HCode{ \a:mathml rowalign="baseline"}\else + \HCode{ style="vertical-align:baseline; white-space:nowrap;"}\fi} + {||}{\ifmathml \HCode{ \a:mathml rowalign="center"}\else + \HCode{ style="vertical-align:middle; white-space:nowrap;"}\fi} + {_}{\ifmathml \HCode{ \a:mathml rowalign="bottom"}\else + \HCode{ style="vertical-align:bottom; white-space:nowrap;"}\fi} + {p}{\ifmathml \HCode{ \a:mathml columnalign="left"}\else + \HCode{ style="text-align:left;"}\fi} + {} +>>> + + + + +\<configure mathml tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\HCode{ \a:mathml columnalign="left"}} + {-}{\HCode{ \a:mathml columnalign="center"}} + {>}{\HCode{ \a:mathml columnalign="right"}} + {^}{\HCode{ \a:mathml rowalign="top"}} + {=}{\HCode{ \a:mathml rowalign="baseline"}} + {||}{\HCode{ \a:mathml rowalign="center"}} + {_}{\HCode{ \a:mathml rowalign="bottom"}} + {p}{\HCode{ \a:mathml columnalign="left"}} + {} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Big, BIG, ....} +%%%%%%%%%%%%%%%%%%%%%%%%% + +The +\verb'\special{t4ht@[}...\special{t4ht@]}' gobble the enclosed stuff. +The external pair is provided as grouping mechanism for +sub/super-scripts cases like \verb'\bigl(...\bigr)^x' within dvimath +mode. The \verb'{\HCode{}}' is neded for creating content delimiters +\verb'.' delimiters like in \verb'$\bigl. a_b \bigr)$'; without that mathml +gets something wrong there. + + +\begin{verbatim} + > There are some minor problems wit \bigl | corresponding to #x2223 in + > Mozilla encoding + > but I eliminted it by using \left | which turned to be a right solution. + +The \big... macros decide the dimensions of the delimiters. As is the +case with \sum, also here I don't know how to transport the dimensions +to mozilla. + +The \left...\right macros ask latex/mozilla to determine the +dimensions. +\end{verbatim} + + + +\</bigl, /bigr,... for mathml\><<< +\NewConfigure{Biggl}{2} +\NewConfigure{Biggm}{2} +\NewConfigure{Biggr}{2} +\NewConfigure{Bigl}{2} +\NewConfigure{Bigm}{2} +\NewConfigure{Bigr}{2} +\NewConfigure{biggl}{2} +\NewConfigure{biggm}{2} +\NewConfigure{biggr}{2} +\NewConfigure{bigl}{2} +\NewConfigure{bigm}{2} +\NewConfigure{bigr}{2} +|<big common|> +\:CheckOption{mathml-} \if:Option + |<big mathml-|> +\else + |<big mathml|> +\fi +>>> + +\<big mathml\><<< +\Configure{Biggl} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="2.45em" >} + {</mo><mrow>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Biggr} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathclose}{*} + {</mrow><mo \mml:class="MathClass-close" + fence="true" mathsize="2.45em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{Bigl} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="1.61em" >} + {</mo><mrow>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Bigr} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathclose}{*} + {</mrow><mo \mml:class="MathClass-close" + fence="true" mathsize="1.61em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{biggl} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="2.03em" >} + {</mo><mrow>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{biggr} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathclose}{*} + {</mrow><mo \mml:class="MathClass-close" + fence="true" mathsize="2.03em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{bigl} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="1.19em" >} + {</mo><mrow>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{bigr} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathclose}{*} + {</mrow><mo \mml:class="MathClass-close" + fence="true" mathsize="1.19em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +>>> + + + + +\<big mathml-\><<< +\Configure{Biggl} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="2.45em" >} + {</mo>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Biggr} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathclose}{*} + {<mo \mml:class="MathClass-close" + fence="true" mathsize="2.45em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{Bigl} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="1.61em" >} + {</mo>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{Bigr} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathclose}{*} + {<mo \mml:class="MathClass-close" + fence="true" mathsize="1.61em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{biggl} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="2.03em" >} + {</mo>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{biggr} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathclose}{*} + {<mo \mml:class="MathClass-close" + fence="true" mathsize="2.03em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +\Configure{bigl} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathopen}{*} + {<mrow><mo \mml:class="MathClass-open" + fence="true" mathsize="1.19em" >} + {</mo>} + {\Configure{mathopen}{}{}{}{}}% + } + {\egroup} +\Configure{bigr} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathclose}{*} + {<mo \mml:class="MathClass-close" + fence="true" mathsize="1.19em" >} + {</mo></mrow>} + {\Configure{mathclose}{}{}{}{}}% + } + {\egroup} +>>> + + + +\<big common\><<< +\Configure{Biggm} + {\bgroup + \Configure{Bigg}{}{}{}{}% + \Configure{mathrel}{*} + {<mo \mml:class="MathClass-rel" + fence="true" mathsize="2.45em" >} + {</mo>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{Bigm} + {\bgroup + \Configure{Big}{}{}{}{}% + \Configure{mathrel}{*} + {<mo \mml:class="MathClass-rel" + fence="true" mathsize="1.61em" >} + {</mo>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{biggm} + {\bgroup + \Configure{bigg}{}{}{}{}% + \Configure{mathrel}{*} + {<mo \mml:class="MathClass-rel" + fence="true" mathsize="2.03em" >} + {</mo>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +\Configure{bigm} + {\bgroup + \Configure{big}{}{}{}{}% + \Configure{mathrel}{*} + {<mo \mml:class="MathClass-rel" + fence="true" mathsize="1.19em" >} + {</mo>} + {\Configure{mathrel}{}{}{}{}}% + } + {\egroup} +>>> + + + +\</bigl, /bigr,... for mathml\><<< +\def\:tempc#1{\ht:special{t4ht@[}(\ht:special{t4ht@]}% + \a:bigl\mathopen{\left:right\big{#1\:EMPTY}}\b:bigl\:EMPTY} +\HLet\bigl=\:tempc +\def\:tempc#1{\a:bigm\mathrel{\left:right\big{#1\:EMPTY}}\b:bigm} +\HLet\bigm=\:tempc +\def\:tempc#1{\:EMPTY + \a:bigr\mathclose{\left:right\big{#1\:EMPTY}}\b:bigr% + \ht:special{t4ht@[})\ht:special{t4ht@]}} +\HLet\bigr=\:tempc +\def\:tempc#1{\ht:special{t4ht@[}(\ht:special{t4ht@]}% + \a:Bigl\mathopen{\left:right\Big{#1}\:EMPTY}\b:Bigl\:EMPTY} +\HLet\Bigl=\:tempc +\def\:tempc#1{\a:Bigm\mathrel{\left:right\Big{#1\:EMPTY}}\b:Bigm} +\HLet\Bigm=\:tempc +\def\:tempc#1{\:EMPTY + \a:Bigr\mathclose{\left:right\Big{#1\:EMPTY}}\b:Bigr% + \ht:special{t4ht@[})\ht:special{t4ht@]}} +\HLet\Bigr=\:tempc +\def\:tempc#1{\ht:special{t4ht@[}(\ht:special{t4ht@]}% + \a:biggl\mathopen{\left:right\bigg{#1\:EMPTY}}\b:biggl\:EMPTY} +\HLet\biggl=\:tempc +\def\:tempc#1{\a:biggm\mathrel{\left:right\bigg{#1\:EMPTY}}\b:biggm} +\HLet\biggm=\:tempc +\def\:tempc#1{\:EMPTY + \a:biggr\mathclose{\left:right\bigg{#1\:EMPTY}}\b:biggr% + \ht:special{t4ht@[})\ht:special{t4ht@]}} +\HLet\biggr=\:tempc +\def\:tempc#1{\ht:special{t4ht@[}(\ht:special{t4ht@]}% + \a:Biggl\mathopen{\left:right\Bigg{#1\:EMPTY}}\b:Biggl\:EMPTY} +\HLet\Biggl=\:tempc +\def\:tempc#1{\a:Biggm\mathrel{\left:right\Bigg{#1\:EMPTY}}\b:Biggm} +\HLet\Biggm=\:tempc +\def\:tempc#1{\:EMPTY + \a:Biggr\mathclose{\left:right\Bigg{#1}\:EMPTY}\b:Biggr + \ht:special{t4ht@[})\ht:special{t4ht@]}} +\HLet\Biggr=\:tempc +\def\:EMPTY{{\HCode{}}} +\def\left:right{% + \let\left|=\o:left: + \let\right|=\o:right: + \Configure{left}{}{}\Configure{right}{}{}} +>>> + +\verb+\bigl{.}+ et al produce empty para,etr , hence the \verb+\:EMPTY+ is a ompensation for such cases. + +\<mathml plain,fontmath\><<< +\Configure{big} + {}{} + {\HCode{<\a:mathml mstyle mathsize="1.19em">}} + {\HCode{</\a:mathml mstyle>}} +\Configure{Big} + {}{} + {\HCode{<\a:mathml mstyle mathsize="1.61em">}} + {\HCode{</\a:mathml mstyle>}} +\Configure{bigg} + {}{} + {\HCode{<\a:mathml mstyle mathsize="2.03em">}} + {\HCode{</\a:mathml mstyle>}} +\Configure{Bigg} + {}{} + {\HCode{<\a:mathml mstyle mathsize="2.45em">}} + {\HCode{</\a:mathml mstyle>}} +>>> + +% \R=8.5; \R*1.4; \WriteVal\R +% \R=11.5; \R*1.4; \WriteVal\R +% \R=14.5; \R*1.4; \WriteVal\R +% \R=17.5; \R*1.4; \WriteVal\R + + +\<mathml plain,fontmath\><<< +\def\:tempc#1{{\hbox{\a:big$\c:big + \left#1\hbox{}\right.\n@space\d:big$\b:big}}} +\HLet\big=\:tempc +\def\:tempc#1{{\hbox{\a:Big$\c:Big + \left#1\hbox{}\right.\n@space\d:Big$\b:Big}}} +\HLet\Big=\:tempc +\def\:tempc#1{{\hbox{\a:bigg$\c:bigg + \left#1\hbox{}\right.\n@space\d:bigg$\b:bigg}}} +\HLet\bigg=\:tempc +\def\:tempc#1{{\hbox{\a:Bigg$\c:Bigg + \left#1\hbox{}\right.\n@space\d:Bigg$\b:Bigg}}} +\HLet\Bigg=\:tempc +>>> + +\<configure mathml amsbsy\><<< +\Configure{pmb} + {\ifmmode \HCode{<!--binary math rel, tripple hight-->}\fi} + {\ifmmode \HCode{<!--/binary math rel, tripple hight-->}\fi} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\section{stackrel} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mathml latex\><<< +\def\:temp#1#2{{\a:stackrel{#1}\b:stackrel {#2}\c:stackrel}} +\HLet\stackrel|=\:temp +\:CheckOption{stackrel-} \if:Option + \Configure{stackrel} + {\mathrel\bgroup \HCode{<\a:mathml mglyph\Hnewline + alt="\string\stackrel}\afterassignment\put:arg\tmp:toks} + {\afterassignment\put:arg\tmp:toks} + {\HCode{" />}\egroup} + \def\put:arg{\HCode{{\the\tmp:toks}}} +\else + \Configure{stackrel} + {\HCode{<\a:mathml mover\Hnewline + \mml:class="stackrel"><\a:mathml mrow\Hnewline>}\inv:i:iii} + {\HCode{</\a:mathml mrow><\a:mathml + mrow\Hnewline>}|<mathop nested within stackrel|>\mathop} + {\HCode{</\a:mathml mrow></\a:mathml mover>}} + \def\inv:i:iii#1#2#3{{#3}#2{#1}} +\fi +>>> + +\<mathop nested within stackrel\><<< +\Configure{mathop*}{*} + {<\a:mathml mrow>} + {</\a:mathml mrow>} + {\Configure{mathop}{}{}{}{}}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{fontmath.ltx} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +Accent versus underscript: \verb=\underbrace{x+y+z}= + versus \verb=\underbrace{\strut x+y+z}= + +\<mathml plain,fontmath\><<< +\Configure{overbrace} + {\Configure{mathop*}{*} + {<\a:mathml mover \a:mathml accent="false"><\a:mathml mrow>} + {</\a:mathml mrow><\a:mathml mo>\string + &\#xFE37;</\a:mathml mo></\a:mathml mover>} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:overbrace:=\displaystyle} + {} +\Configure{underbrace} + {\Configure{mathop*}{*} + {<\a:mathml munder + \a:mathml accentunder="false"><\a:mathml mrow>} + {</\a:mathml mrow><\a:mathml mo>\string + &\#xFE38;</\a:mathml mo></\a:mathml munder>} + {\Configure{mathop}{}{}{}{}}% + } + {\let\o:underbrace:=\displaystyle} + {} +>>> + +\<\><<< +\def\:temp#1{% + \Configure{mathop*}{*}{<\a:mathml mrow \mml:class="underbrace">} + {</\a:mathml mrow>}% + {\Configure{mathop}{}{}{}{}}% + \mathop{\hbox{$\displaystyle{#1}$}}\limits} +\HLet\underbrace|=\:temp +\def\:temp#1{% + \Configure{mathop*}{*}{<\a:mathml mrow \mml:class="overbrace">} + {</\a:mathml mrow>}% + {\Configure{mathop}{}{}{}{}}% + \mathop{\hbox{$\displaystyle{#1}$}}\limits} +\HLet\overbrace|=\:temp +>>> + + +\<amsmath mathmlNO\><<< +\def\:temp#1{% + \Configure{mathop*}{*}{<\a:mathml mrow \mml:class="underbrace">} + {</\a:mathml mrow>}% + {\Configure{mathop}{}{}{}{}}% + \mathop{\vtop{$\displaystyle{#1}$}}\limits} +\HLet\underbrace|=\:temp +>>> + +\<mathml plain,fontmath\><<< +\Configure{MathClass}{0}{*}{<\a:mathml mi\Hnewline>}{</\a:mathml mi>}{} +\Configure{MathClass}{1}{*}{<\a:mathml mi\Hnewline + \mml:class="MathClass-op">}{</\a:mathml mi><mo> ⁡<!--FUNCTION APPLICATION--></mo>}{} +\Configure{MathClass}{2}{*}{<\a:mathml mo\Hnewline + \mml:class="MathClass-bin">}{</\a:mathml mo>}{} +\Configure{MathClass}{3}{*}{<\a:mathml mo\Hnewline + \mml:class="MathClass-rel">}{</\a:mathml mo>}{} +\Configure{MathClass}{4}{*}{<\a:mathml mo\Hnewline + \mml:class="MathClass-open">} + {</\a:mathml mo>}{} +\Configure{MathClass}{5}{*}{<\a:mathml mo\Hnewline + \mml:class="MathClass-close">} + {</\a:mathml mo>}{} +\Configure{MathClass}{6}{*}{<\a:mathml mo\Hnewline + \mml:class="MathClass-punc">}{</\a:mathml mo>}{} +\Configure{MathClass}{7}{*}{<\a:mathml mn>}{</\a:mathml mn>} + {0123456789} +\ifx \mathordMathClass\:UnDef + \NewMathClass\mathordMathClass +\fi +\Configure{MathClass}{\mathordMathClass}{*}{<\a:mathml mo\Hnewline + \mml:class="MathClass-ord">}{</\a:mathml mo>}{} +\Configure{FormulaClass}{0}{}{}{} +\Configure{FormulaClass}{1}{}{}{} +\Configure{FormulaClass}{2}{}{}{} +\Configure{FormulaClass}{3}{}{}{} +\Configure{FormulaClass}{4}{}{}{} +\Configure{FormulaClass}{5}{}{}{} +\Configure{FormulaClass}{6}{}{}{} +>>> + + +The following code is to insert spaces +for casses like \verb=$a \mathop{div} b$= +but not \verb=$\mathop{div} (\mathbf{F})$= + +\<mathml plain,fontmath\><<< +\Css{mo.MathClass-op + mi{margin-left:0.3em}} +\Css{mi + mo.MathClass-op{margin-left:0.3em}} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Limits of Sub- snd Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<limits sub, sup, subsup\><<< +\Configure{nolimits}{\HCode{<!--nolimits-->}} +\Configure{limits} + {|<limit scripts|>} +>>> + + +\<limit scripts\><<< +\let|<restore SUB|>=\:UnDef +\let|<restore SUP|>=\:UnDef +\ifx \:temp\sp |<conf limits SUP|>\else + \ifx \:temp\sb |<conf limits SUB|>\fi +\fi +|<conf limits SUBSUP|>% +>>> + + + +\<limits sub, sup, subsup\><<< +\Configure{displaylimits} + {\ifDisplayMath \expandafter\disp:limits\fi} +\def\disp:limits{|<limit scripts|>} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Simultaneously Sub- and Super- Scripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<conf limits SUBSUP\><<< +|<save pre-limits SUBSUP|>% +\Configure{SUBSUP} + {\ifx |<restore SUB|>\:UnDef\else |<restore SUB|>\fi + \ifx |<restore SUP|>\:UnDef\else |<restore SUP|>\fi + |<restore pre-limits SUBSUP|>% + \Send{BACK} + {<\a:mathml munderover \a:mathml accentunder="false" + \a:mathml accent="false"><\a:mathml mrow + \Hnewline>}% + \Tg</\a:mathml mrow>\Tg<\a:mathml + mrow\Hnewline>\trap:base + } + {\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>\trap:base} + {\Tg</\a:mathml mrow>\TG</\a:mathml munderover\Hnewline>} +>>> + + +\<save pre-limits SUBSUP\><<< +\let|<restore SUBSUP|>=\SUBSUP: +>>> + +\<restore pre-limits SUBSUP\><<< +\ifx |<restore SUBSUP|>\:UnDef \else + \let\SUBSUP:=|<restore SUBSUP|>% +\fi +>>> + +\<limits sub, sup, subsup\><<< +\ifx \a:putSUB\:UnDef \else + \pend:def\a:putSUB{\ifx |<restore SUBSUP|>\:UnDef\else + \let\SUBSUP:=|<restore SUBSUP|>% + \let|<restore SUBSUP|>=\:UnDef + \fi}% +\fi +\ifx \a:putSUP\:UnDef \else + \pend:def\a:putSUP{\ifx |<restore SUBSUP|>\:UnDef\else + \let\SUBSUP:=|<restore SUBSUP|>% + \let|<restore SUBSUP|>=\:UnDef + \fi}% +\fi +>>> + + +\<restore SUBSUP\><<< +\pl:SUBSUP +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Superscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<conf limits SUP\><<< +|<save pre-limits SUP|>% +\Configure{SUP} + {|<open external limits SUP|>\bgroup + |<restore pre-limits SUBSUP|>% + |<conf second limits SUP|>\trap:base} + {}% +>>> + +\<save pre-limits SUP\><<< +\def\pl:SUP{\Configure{SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\a:SUP}}% +\expandafter\append:def + \expandafter\pl:SUP\expandafter{\expandafter{\b:SUP}}% +>>> + +\<conf second limits SUP\><<< +\Configure{SUP} + {|<open intermediate limits SUP|>\bgroup + |<conf third limit SUP|>\trap:base} + {\egroup|<close external limits SUP|>}% +>>> + + +\<conf third limit SUP\><<< +\Configure{SUP} + {|<open internal limits SUP|>\bgroup \trap:base} + {\egroup |<close internal limits SUP|>}% +>>> + + +\<open external limits SUP\><<< +\Send{BACK}{<\a:mathml mover + \mml:class="msup"><\a:mathml mrow\Hnewline>}% +\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>% +>>> + +\<close external limits SUP\><<< +\Tg</\a:mathml mrow>\TG</\a:mathml mover\Hnewline>\aftergroup|<restore SUP|>% +>>> + +\<restore SUP\><<< +\pl:SUP >>> + +\<open intermediate limits SUP\><<< +\Send{BACK}{<\a:mathml msup><\a:mathml mrow\Hnewline>}% +\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>% +>>> + +\<open internal limits SUP\><<< +\Send{BACK}{<\a:mathml msup><\a:mathml mrow\Hnewline>}% +\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>% +>>> + +\<close internal limits SUP\><<< +\Tg</\a:mathml mrow>\TG</\a:mathml msup\Hnewline>% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Subscripts} +%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<conf limits SUB\><<< +|<save pre-limits SUB|>% +\Configure{SUB} + {|<open external limits SUB|>\bgroup + |<restore pre-limits SUBSUP|>% + |<conf second limits SUB|>\trap:base} + {}% +>>> + +\<save pre-limits SUB\><<< +\def\pl:SUB{\Configure{SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\a:SUB}}% +\expandafter\append:def + \expandafter\pl:SUB\expandafter{\expandafter{\b:SUB}}% +>>> + +\<conf second limits SUB\><<< +\Configure{SUB} + {|<open intermediate limits SUB|>\bgroup + |<conf third limit SUB|>\trap:base} + {\egroup|<close external limits SUB|>}% +>>> + + +\<conf third limit SUB\><<< +\Configure{SUB} + {|<open internal limits SUB|>\bgroup \trap:base} + {\egroup |<close internal limits SUB|>}% +>>> + + +\<open external limits SUB\><<< +\Send{BACK}{<\a:mathml munder + \mml:class="msub"><\a:mathml mrow\Hnewline>}% +\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>% +>>> + +\<close external limits SUB\><<< +\Tg</\a:mathml mrow>\TG</\a:mathml + munder\Hnewline>\aftergroup|<restore SUB|>% +>>> + +\<restore SUB\><<< +\pl:SUB >>> + +\<open intermediate limits SUB\><<< +\Send{BACK}{<\a:mathml msub><\a:mathml mrow\Hnewline>}% +\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>% +>>> + +\<open internal limits SUB\><<< +\Send{BACK}{<\a:mathml msub><\a:mathml mrow\Hnewline>}% +\Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>% +>>> + +\<close internal limits SUB\><<< +\Tg</\a:mathml mrow>\TG</\a:mathml msub\Hnewline>% +>>> + +%%%%%%%%%%%%% +\subsection{Limits on Operators} +%%%%%%%%%%%%% + + +\<configure mathml latex\><<< +\def\:tempb#1{% + \expandafter\let\expandafter\:tempc\csname #1\endcsname + \append:def\:tempc{\limits}% + \expandafter\HLet\csname #1\endcsname\:tempc +} +\:tempb{lim} +\:tempb{limsup} +\:tempb{liminf} +\:tempb{max} +\:tempb{min} +\:tempb{sup} +\:tempb{inf} +\:tempb{det} +\:tempb{Pr} +\:tempb{gcd} +>>> + +%%%%%%%%%%%%%%% +\subsection{Upright letters} +%%%%%%%%%%%%%%% + +The following commands should produce upright characters. So we redefine them +to produce mi elements with mathvariant attribute, that hold their Unicode +charactes. + +Extra brackets are used in order to support subscripts and superscripts. + +\<configure mathml latex\><<< +\def\:temp#1#2{\def#1{\PauseMathClass{\HCode{<mi mathvariant="normal">}\ht:special{t4ht@+\string&{35}x#2{59}}\a:HChar\HCode{</mi>}}\EndPauseMathClass}} +\:temp\Psi{03A8} +\:temp\Delta{0394} +\:temp\Xi{039E} +\:temp\Pi{03A0} +\:temp\Sigma{03A3} +\:temp\Upsilon{03A5} +\:temp\Omega{03A9} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sized Operations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<plain,latex mathml\><<< +\def\mathop:prefix#1{% + \Configure{mathop}{*}{<\a:mathml mo #1\Hnewline>}{</\a:mathml mo>}% + {\Configure{mathop}{*}{<\a:mathml mo>}{</\a:mathml mo>}{}}} +>>> + +\<configure mathml amsmath\><<< +\def\:tempc{\ifDisplayMath\mathop:prefix{}\fi\o:n:iint::} +\HLet\n:iint:\:tempc +\def\:tempc{\ifDisplayMath\mathop:prefix{}\fi\o:n:iiint::} +\HLet\n:iiint:\:tempc +\def\:tempc{\ifDisplayMath\mathop:prefix{}\fi\o:n:idotsint::} +\HLet\n:idotsint:\:tempc +>>> + +\<configure mathml fontmath\><<< +\def\:tempd#1#2{% + \expandafter\def\csname #1\endcsname{\mathchar"13#2\relax}% + \MathSymbol\mathop{#1}% + \expandafter\def\csname #1:limits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\limits}% + \expandafter\def\csname #1:nolimits\endcsname{\expandafter + \:same \math:sym\mathop{#1}\nolimits}% + \expandafter\edef\csname n:#1:\endcsname{\noexpand\ifDisplayMath + \noexpand\expandafter \expandafter\noexpand \csname #1:limits\endcsname + \noexpand\else \noexpand\expandafter + \expandafter\noexpand + \csname #1:nolimits\endcsname\noexpand\fi}% + \expandafter\pend:def\csname n:#1:\endcsname{\ifDisplayMath + \mathop:prefix{}\fi}% +} +\:tempd{bigcap}{54} +\:tempd{bigcup}{53} +\:tempd{bigodot}{4A} +\:tempd{bigoplus}{4C} +\:tempd{bigotimes}{4E} +\:tempd{bigsqcup}{46} +\:tempd{biguplus}{55} +\:tempd{bigvee}{57} +\:tempd{bigwedge}{56} +\:tempd{coprod}{60} +\:tempd{intop}{52} +\:tempd{ointop}{48} +\:tempd{prod}{51} +\:tempd{sum}{50} +>>> + +Fix the \verb|\int| command -- it should produce the \verb|<mo>| element. + +\<configure mathml fontmath\><<< +\def\:tempc{\ifDisplayMath\mathop:prefix{}\fi\o:n:int::} +\HLet\n:int:\:tempc +>>> + + +\<configure mathml amsmath\><<< +\ifx \ilimits@\o:nolimits: + \let\ilimits@\nolimits +\fi +\ifx \ilimits@\o:nolimits: + \let\slimits@\nolimits +\fi +>>> + + + +\begin{description} +\item[sumlimits] + (default) Place the subscripts and superscripts of summation symbols above and below, in displayed equations. This option also affects other symbols of the same type---, , , , and so forth---but excluding integrals (see below). + +\item[nosumlimits] + Always place the subscripts and superscripts of summation-type symbols to the side, even in displayed equations. + +\item[intlimits] + Like sumlimits, but for integral symbols. + + +\<configure mathml amsmath\><<< +\ifx \ilimits@\o:displaylimits: + \let\ilimits@\nolimits +\fi +>>> + +We currently ignore cases of the following kinds. + +\begin{verbatim} +\documentclass{article} + \usepackage[intlimits]{amsmath} +\begin{document} + $\int_{0}$ +\end{document} +\end{verbatim} + + +\item[nointlimits] + (default) Opposite of intlimits. + +\item[namelimits] + (default) Like sumlimits, but for certain `operator names' such as , , , , , that traditionally have subscripts placed underneath when they occur in a displayed equation. + +\item[nonamelimits] + Opposite of namelimits. +\end{description} + + + + +\<\><<< +\pend:def\n:int:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +\def\sum{\mathchar"1350} +\MathSymbol\mathop{sum} +\def\sum:limits{\expandafter\:same \math:sym\mathop{sum}\limits} +\def\sum:nolimits{\expandafter\:same \math:sym\mathop{sum}\nolimits} +\def\n:sum:{\ifDisplayMath \expandafter\sum:limits\else + \expandafter\sum:nolimits\fi} +\pend:def\n:sum:{\ifDisplayMath\mathop:prefix{mathsize="big"}\fi} +>>> + +% % \def\n:sum:{\expandafter\:same \math:sym\mathop{sum}\nolimits} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Accent through `accents' Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Should rename `accents' to `combining' (characters). + + +Test file for accents + +\begin{verbatim} +\documentclass{article} +\begin{document} + +\def\showaccents#1#2#3#4#5#6{\cr\hline + {\tt \ifx #1\relax\else \string#1\fi{} \string#2} & + \if !#3!\else $\ifx #1\relax\else#1{#3}\fi + \mbox{#2{#3}}$ {\bf #2{#3}}\fi & + \if !#4!\else $\ifx #1\relax\else#1{#4}\fi + \mbox{#2{#4}}$ {\bf #2{#4}}\fi & + \if !#5!\else $\ifx #1\relax\else#1{#5}\fi + \mbox{#2{#5}}$ {\bf #2{#5}}\fi + \if !#6!\else + \if !#6!\else $\ifx #1\relax\else#1{#6}\fi + \mbox{#2{#6}}$ {\bf #2{#6}}\fi + \fi +} + +\begin{tabular}{l|c|c|c} +& low unicode & high unicode & text combining accent \& mathml + \showaccents\dot\.{c}{a}{q}{X} + \showaccents\breve\u{a}{}{c}{F} + \showaccents\check\v{a}{h}{m}{F} + \showaccents\bar\={a}{y}{c}{F} + \showaccents\grave\`{a}{n}{c}{F} + \showaccents\acute\'{a}{}{m}{F} + \showaccents\hat\^{a}{z}{m}{F} + \showaccents\tilde\~{a}{v}{m}{F} + \showaccents\ddot\"{a}{h}{m}{C} + \showaccents\mathring\r{a}{}{m}{F} + \showaccents\relax\b{}{b}{c}{j} + \showaccents\relax\c{c}{d}{a}{j} + \showaccents\relax\d{a}{b}{c}{j} + \showaccents\relax\H{o}{}{c}{F} +\end{tabular} + +\end{document} +\end{verbatim} + + +|<temp indirect accents|> + +\<config mathml accents\><<< +\Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|<temp hcode accents|>% + \ht:special{t4ht@[}\if!#1!x\else#2\fi + \ht:special{t4ht@]}}} + {\ifmathml + \ifmtext |<accent in text mode|>% + \else \AccentMath{|<under over accents|>}\fi + \else |<accent in text mode|>\fi + } +>>> + +\<accent in text mode\><<< +\expandafter\ifx \csname :#1:over\endcsname\relax + \expandafter\ifx \csname :#1:under\endcsname\relax + \AccentMath{|<under over accents|>}% + \else #3\csname :#1:under\endcsname \fi +\else #3\csname :#1:over\endcsname \fi +>>> + +\<under over accents\><<< +\expandafter\ifx \csname :#1:over\endcsname\relax + |<under accents|>% +\else \expandafter\ifx \csname :#1:under\endcsname\relax + |<over accents|>% +\else + |<both accents|>% +\fi \fi +>>> + +\<under accents\><<< +\HCode{<\a:mathml munder\Hnewline + accent="true"><\a:mathml mrow\Hnewline>}#3\HCode{</\a:mathml mrow>}% + \csname :#1:under\endcsname + \HCode{</\a:mathml munder>}% +>>> + +\<over accents\><<< +\HCode{<\a:mathml mover\Hnewline + accent="true"><\a:mathml mrow\Hnewline>}#3\HCode{</\a:mathml mrow>}% + \csname :#1:over\endcsname + \HCode{</\a:mathml mover>}% +>>> + +\<both accents\><<< +\HCode{<\a:mathml munderover\Hnewline + accent="true"><\a:mathml mrow\Hnewline>}#3\HCode{</\a:mathml mrow>}% + \csname :#1:under\endcsname + \csname :#1:over\endcsname + \HCode{</\a:mathml munderover>}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Underline and Overline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure html-mml latex\><<< +\Configure{overline} + {\bgroup\ifmathml |<mathml overline|>\else + \HCode{<span class="overline">}\fi} + {\ifmathml |<end mathml overline|>\else \HCode{</span>}\fi\egroup} +\Configure{underline} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<span class="underline">}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</span>}\fi \egroup} +>>> + + +\<configure mathml ushort\><<< +\Configure{ushort} + {\bgroup + \expandafter\ushort:data + } + {\egroup} +\Configure{ushortw} + {\bgroup + \expandafter\ushort:data + } + {\egroup} +\Configure{ushortd} + {\bgroup + \expandafter\ushortd:data + } + {\egroup} +\Configure{ushortdw} + {\bgroup + \expandafter\ushortd:data + } + {\egroup} +\Configure{ushortdline} + {\bgroup\expandafter\ushortdline:data } + {\egroup} +\def\ushort:data#1#2{\underline{\:gobbleIII #2}} +\def\ushortd:data#1#2{\underline{\underline{\:gobbleIII #2}}} +\def\ushortdline:data#1#2{#1{#1{\:gobble #2}}} +>>> + + +\<mathml latex\><<< +|<und/ov-erline|> +>>> + +\<mathml plain\><<< +|<und/ov-erline|> +>>> + + +\<und/ov-erline\><<< +\Configure{overline} + {\bgroup |<mathml overline|>} + {|<end mathml overline|>\egroup} +\Configure{underline} + {\bgroup \ifmmode |<mathml underline|>\else + |<nomath underline|>\fi} + {|<end mathml underline|>\egroup} +>>> + +\<nomath underline\><<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + + + + + + + + + + +\<mathml overline\><<< +\HCode{<\a:mathml mover accent="false"\Hnewline +\mml:class="mml-overline"><\a:mathml mrow>}% +>>> + +\<end mathml overline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline + accent="true">&\#x00AF;</\a:mathml mo>% +</\a:mathml mover>}% +>>> + +\verb'¯' is the code of \verb'‾' + + +\<mathml underline\><<< +\HCode{<\a:mathml munder \a:mathml accentunder="false"\Hnewline +\mml:class="mml-underline"><\a:mathml mrow>}% +>>> + +\<end mathml underline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline +accent="true">&\#x0332;</\a:mathml mo></\a:mathml munder>}% +>>> + + +\verb'̲' is the code of \verb'_' + + + + + +\<mathml plain\><<< +|<arr: amsmath, amstex1|> +>>> + + + +\<configure mathml accents\><<< +\Configure{accentset} + {\HCode{<mover accent="true" class="accentset"><mrow>}} + {\HCode{</mrow><mrow> }} + {\HCode{</mrow></mover>}} +\Configure{underaccent} + {\HCode{<munder class="underaccent"><mrow>}} + {\HCode{</mrow><mrow> }} + {\HCode{</mrow></munder>}} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Choose} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<plain,latex mathmlNO\><<< +\Configure{choose} + {\Send{GROUP}{0}{<\a:mathml mfrac linethickness="0" \mml:class="choose">\Hnewline + <\a:mathml mrow \mml:class="choose-1">}\HCode{</\a:mathml mrow>}} + {\HCode{\Hnewline<\a:mathml mrow \mml:class="choose-2">} + \Send{EndGROUP}{0}{</\a:mathml mrow></\a:mathml mfrac>}} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure html-mml latex\><<< +\Configure{footnote-mark} + {\ifmathml \ifmtext \else + \HCode{<\a:mathml mrow \mml:class="footnote-mark">}\fi + \else \HCode{<span class="footnote-mark">}\fi } + {\ifmathml \ifmtext \else \HCode{</\a:mathml mrow>}\fi + \else \HCode{</span>}\fi } +\Configure{thank-mark} + {\HCode{<\ifmathml \a:mathml mrow \expandafter\mml:class\else span class\fi + ="thank-mark">}} + {\HCode{</\ifmathml \a:mathml mrow\else span\fi>}} +>>> + + + + + +The following code segments handle the different listed cases, +with possible exception of the last. + +\begin{verbatim} +a\footnote{b c} + +$a\footnote{b c}$ + +$a\footnote{\hbox{b c}}$ + +$a\footnote{\mbox{b c}}$ + +$a\mbox{\footnote{b c}}$ +\end{verbatim} + + +We have the following hooks + + +\begin{verbatim} +\def\@footnotemark{...\a:@makefnmark\@makefnmark + \b:@makefnmark...} +\long\def\@footnotetext#1{...\a:footnote-text\a:@makefntext + \@makefntext{\b:@makefntext + \a:@makefnbody #1\b:@makefnbody + }\c:@makefntext\b:footnote-text...} +\end{verbatim} + + + + + +\<configure html-mml latex\><<< +\:CheckOption{fn-in}\if:Option \else + \expandafter\let\csname A:footnote-text\expandafter\endcsname + \csname a:footnote-text\endcsname + \expandafter\let\csname B:footnote-text\expandafter\endcsname + \csname b:footnote-text\endcsname + \NewConfigure{footnote-text}[2]{% + \expandafter\def\csname a:footnote-text\endcsname{% + #1% + \ifmathml + \HCode{<\a:mathml math\Hnewline + \csname a:math-xmlns\endcsname \Hnewline \a:@math>% + \ifmtext <\a:mathml mtext>\fi} + \fi + \ifmathml \fi + }% + \expandafter\def\csname b:footnote-text\endcsname{% + \ifmathml + \HCode{\ifmtext</\a:mathml mtext>\fi </\a:mathml math>}% + \fi + #2% + }% + } + \Configure{footnote-text} + {\csname A:footnote-text\endcsname} + {\csname B:footnote-text\endcsname} +\fi +>>> + + + +\<configure html-mml latex\><<< +\let\A:footnotetext=\a:footnotetext +\let\B:footnotetext=\b:footnotetext +\let\C:footnotetext=\c:footnotetext +\NewConfigure{footnotetext}[3]{% + \def\a:footnotetext{% + \ifmathml \ifmtext |<end mtext space|>\fi\fi + #1% + \ifmathml \ifmtext |<end mtext space|>\fi\fi + }% + \def\b:footnotetext{% + \ifmathml \ifmtext |<end mtext space|>\fi\fi + #2% + \ifmathml \ifmtext |<end mtext space|>\fi\fi + }% + \def\c:footnotetext{% + \ifmathml \ifmtext |<end mtext space|>\fi\fi + #3% + \ifmathml \ifmtext |<start mtext space|>\fi\fi + }% +} +\Configure{footnotetext} + {\A:footnotetext} + {\B:footnotetext} + {\C:footnotetext} +>>> + +\<configure html-mml latex\><<< +\Configure{footnotebody} + {\tmp:toks=} + {\ifmathml \ifmmode $\mbox{$\the\tmp:toks$}$ + \else $\mbox{\the\tmp:toks}$\fi + \else \the\tmp:toks\fi} +>>> + + +\<configure html-mml latex\><<< +\:CheckOption{mouseover} \if:Option + \pend:def\js:on{\ifmathml \ifmtext |<end mtext space|>\fi\fi} + \append:def\js:on{\ifmathml \ifmtext |<start mtext space|>\fi\fi} +\fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Space Characters} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +We must use \`'\protect' with LaTeX in order to support TOC etc. + +\<plain,latex mathml\><<< +\ifdefined\protect% +\def\:unicodespace{\protect\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x}% +\def\:unicodenspace{\protect\leavevmode\special{t4ht@+\string&{35}x2002{59}}x}% +\else% +\def\:unicodespace{\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x}% +\def\:unicodenspace{\leavevmode\special{t4ht@+\string&{35}x2002{59}}x}% +\fi +\def\:nbsp{\ifmtext |<unicode space|>\else\ifmathml + \Tg<\a:mathml mspace />\else |<unicode space|>\fi\fi} +\def\:ensp{\ifmtext |<unicode enspace|>\else\ifmathml + \Tg<\a:mathml mspace />\else |<unicode enspace|>\fi\fi} +>>> + +\<unicode space\><<< +\:unicodespace% +>>> + +\<unicode enspace\><<< +\:unicodenspace% +>>> +% \HCode{\string&}\HChar{-35}\HCode{x00A0;}% + + +\<configure html-mml frenchb\><<< +\Configure{frenchb-nbsp} + {\ifmtext |<unicode space|>\else\ifmathml + \Tg<\a:mathml mspace class="frenchb-nbsp" />% + \else + \ht:special{t4ht@?unhskip}\HCode{<span class="frenchb-thinspace">}% + |<unicode space|>\HCode{</span>}% + \fi\fi + \setbox\tmp:bx=\hbox\bgroup} + {\egroup} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Matrices} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Aligned} +%%%%%%%%%%%%% + + + +\<configure mathml amsmath\><<< +\Configure{aligned} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="aligned">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd + \a:mathml columnalign="\ifodd\HCol right\else left\fi" >}} + {\HCode{</\a:mathml mtd>}} +\Configure{alignedat} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="alignedat">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd + \a:mathml columnalign="\ifodd\HCol right\else left\fi" >}} + {\HCode{</\a:mathml mtd>}} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{Cases} +%%%%%%%%%%%%%%%%% + +\<plain,latex mathml\><<< +\Configure{cases} + {}{} {\Tg<\a:mathml mtable>}{\Tg</\a:mathml mtable>} + {\Tg<\a:mathml mtr>}{\Tg</\a:mathml mtr>} + {\Tg<\a:mathml mtd \mml:class="cases">}{\Tg</\a:mathml mtd>} +>>> + + +%%%%%%%%%%%%%%%%%%%% +\subsection{matrix} +%%%%%%%%%%%%%%%%%%%% + +\<plain,latex mathml\><<< +\Configure{matrix} + {\Tg<\a:mathml mtable + \a:mathml equalrows="false" \a:mathml equalcolumns="false"\Hnewline + \mml:class="matrix">} + {\Tg</\a:mathml mtable>} + {\Tg<\a:mathml mtr>}{\Tg</\a:mathml mtr>} + {|<mtd matrix|>}{\Tg</\a:mathml mtd>} +>>> + + + +%%%%%%%%%%%%%%%%%%%% +\subsection{pmatrix} +%%%%%%%%%%%%%%%%%%%% + + +The grouping below is handle the case that the matrix is a base of an exponent. + + +\<plain,latex mathml\><<< +\Configure{pmatrix} {\bgroup\Tg<\a:mathml mrow\Hnewline + \mml:class="pmatrix">} {\Tg</\a:mathml mrow>\egroup} +>>> + + + +The grouping below is handle the case that the matrix is a base of an +exponent. The \verb|\,| configurations is for facilitating the +catching of left subscripts and superscripts. + + +\<plain,latex mathml\><<< +\Configure{quad}{{\ifmathml \ifmtext \o:quad:\else + {\HCode{<\a:mathml mspace width="1em" \mml:class="quad"/>}}\fi + \else \o:quad: \fi}} +\Configure{qquad}{{\ifmathml \ifmtext \o:qquad:\else + {\HCode{<\a:mathml mspace width="2em" \mml:class="qquad"/>}}\fi + \else \o:qquad: \fi}} +\Configure{,} + {{\HCode{<\a:mathml mspace width="0.17em" \mml:class="thinspace"/>}}} +\Configure{:} + {{\HCode{<\a:mathml mspace width="0.22em" \mml:class="thinspace"/>}}} +\Configure{;} + {{\HCode{<\a:mathml mspace width="0.28em" \mml:class="thickpace"/>}}} +\Configure{>} + {{\HCode{<\a:mathml mspace width="0.30em" \mml:class="medspace"/>}}} +\Configure{!} + {{\HCode{<\a:mathml mspace width="-0.17em" \mml:class="negthinspace"/>}}} +>>> + + +%%%%%%%%%%%%% +\subsection{Array Border Lines} +%%%%%%%%%%%%% + + +\<border lines\><<< +\border:lines +>>> + +\<configure html-mml latex\><<< +\def\border:lines{% + \ifnum \borderlines>0 + \ifnum \borderlines>1 border-right:solid 1px black;\fi + \ifodd \borderlines border-left:solid 1px black;\fi + \fi +} +>>> + + + + +\<config array\><<< +\Configure{VBorder} + {\HAssign\NewGroup = 0 + |<init vborder|>} + {|<vborder solid|>% + \HAssign\NewGroup = 0} + {\Advance:\NewGroup by 1 + |<record cur vborder|>} + {} +>>> + + + +\<vborder html-mml latex/array\><<< +\Configure{VBorder} + {\let\VBorder=\empty \let\AllColMargins=\empty + \global\let\GROUPS=\empty \HAssign\NewGroup = 0 + \gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo + |<init vborder|>% + } + {|<vborder solid|>% + \xdef\VBorder{\VBorder\ifnum \NewGroup> 0 </colgroup>\fi} + \HAssign\NewGroup = 0 \gdef\GROUPS{rules="groups"}} + {\Advance:\NewGroup by 1 + |<record cur vborder|>% + \ifnum \NewGroup=1 \xdef\VBorder{\VBorder<colgroup + id="TBL-\TableNo-\ar:cnt g">}\fi + \xdef\VBorder{\VBorder<col\Hnewline id="TBL-\TableNo + -\ar:cnt"\xml:empty>}\xdef\AllColMargins{\AllColMargins1}} + {\xdef\AllColMargins{\AllColMargins 0}} + \Configure{putHBorder}{\bgroup\ifmathml\mathml:hborder\fi\HCode{\HBorder}\egroup} +>>> + + + +\<init vborder\><<< +\HAssign\borderlines = 0 +\global\let\columnlines=\relax +>>> + +\<vborder solid\><<< +\ifx \columnlines\relax \gHAssign\borderlines = 1 + \else \gHAdvance\borderlines by 2 \fi +>>> + + +\<record cur vborder\><<< +\ifnum \borderlines>1 \gHAdvance\borderlines by -2 \fi +\ifx \columnlines\relax + \global\let\columnlines\empty +\else + \ifnum \NewGroup=1 + \xdef\columnlines{\columnlines\ifx\columnlines\empty + \else \space\fi solid}% + \else + \xdef\columnlines{\columnlines\ifx\columnlines\empty + \else \space\fi none}% + \fi +\fi +>>> + +\<configure html-mml array\><<< +|<vborder html-mml latex/array|> +>>> + +\<configure html-mml latex\><<< +|<vborder html-mml latex/array|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{TeX} +%%%%%%%%%%%%%%%%%%%% + + +\<mathml plain\><<< +\Configure{eqalignno} + {\HCode{<\a:mathml mtable \mml:class="eqalignno">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="eqalignno">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd \Hnewline \mml:class="eqalignno-\HCol">}} + {\HCode{</\a:mathml mtd>}} +\def\:eqalignno:{\Configure{noalign} + {\HCode{<\a:mathml mtr><\a:mathml mtd \mml:class="noalign" colspan="2">}}% + {\HCode{</\a:mathml mtd></\a:mathml mtr>}}} +>>> + + +\<mathml plain\><<< +\Configure{leqalignno} + {\HCode{<\a:mathml mtable \mml:class="leqalignno">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="leqalignno">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd \Hnewline \mml:class="leqalignno-\HCol">}} + {\HCode{</\a:mathml mtd>}} +\def\:leqalignno:{\Configure{noalign} + {\HCode{<\a:mathml mtr><\a:mathml mtd \mml:class="noalign" colspan="2">}}% + {\HCode{</\a:mathml mtd></\a:mathml mtr>}}} +>>> + +\section{Fractions} + + + + + + + +\<amstex.sty mathml\><<< +|<config mathml amstex1|> +>>> + + +\<config mathml amstex1\><<< +\ConfigureEnv{aligned}{}{}{}{} +\Configure{aligned} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="aligned">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +>>> + + +\<amstex.tex mathml\><<< +\Configure{multilimits} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="multilimits">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr><\a:mathml mtd\Hnewline>}} + {\HCode{</\a:mathml mtd></\a:mathml mtr>}} +\Configure{smallmatrix} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="smallmatrix">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline>}} + {\HCode{</\a:mathml mtd>}} +>>> + +\<amstex.tex mathml\><<< +\Configure{matrix} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="matrix">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} + {\HCode{|<mtd matrix|>}} {\HCode{</\a:mathml mtd>}} +>>> + +\<amstex.tex mathml\><<< +\Configure{pmatrix}{\Tg<\a:mathml mrow \mml:class="pmatrix">} + {\Tg</\a:mathml mrow>} +>>> + +\<amstex.tex mathml\><<< +\Configure{align} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="align">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +\Configure{aligned} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="aligned">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline>}} {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +>>> + +\<amstex.tex mathml\><<< +\Configure{cases} + {\Tg<\a:mathml mrow \mml:class="cases">} + {\Tg</\a:mathml mrow>} +\Configure{alignat} + {\HCode{<\a:mathml mtable \mml:class="alignat">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="alignat">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="alignat">}} + {\HCode{</\a:mathml mtd>}} +\Configure{gather} + {\HCode{<\a:mathml mtable \mml:class="gather">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr\Hnewline \mml:class="gather">}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline \mml:class="gather">}} + {\HCode{</\a:mathml mtd>}} +>>>> + +\<vanilla mathml\><<< +\Configure{align} + {\EndP\HCode{<\a:mathml mtable\Hnewline \mml:class="align">}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd>}} {\HCode{</\a:mathml mtd>}} +>>> + + + + + + + +% {\mathchar"0403} % \square +% {\mathchar"0404} % \blacksquare +% {\mathchar"0406} % \lozenge +% {\mathchar"0407} % \blacklozenge +% {\mathchar"0438} % \backprime +% {\mathchar"0446} % \bigstar +% {\mathchar"0448} % \blacktriangledown +% {\mathchar"044E} % \blacktriangle +% {\mathchar"044F} % \triangledown +% {\mathchar"045D} % \measuredangle +% {\mathchar"045E} % \sphericalangle +% {\mathchar"0473} % \circledS +% {\mathchar"047B} % \complement +% {\mathchar"051E} % \diagup +% {\mathchar"051F} % \diagdown +% {\mathchar"053F} % \varnothing +% {\mathchar"0540} % \nexists +% {\mathchar"0560} % \Finv +% {\mathchar"0561} % \Game +% {\mathchar"0567} % \eth +% {\mathchar"0569} % \beth +% {\mathchar"056A} % \gimel +% {\mathchar"056B} % \daleth +% {\mathchar"057A} % \digamma +% {\mathchar"057B} % \varkappa +% {\mathchar"057C} % \Bbbk +% {\mathchar"057D} % \hslash + + + + + + + +\<math fonts utilities\><<< +\ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi +\ifx \find:set:mgroup\:UnDef + \def\find:set:mgroup#1#2#3{\bgroup + \def\use@mathgroup##1##2##3{\relax + \tmp:cnt=##2% + \xdef\:temp####1{\noexpand\Configure{MathClass}{#2}% + {}{}{}{\mathchar"0\the\tmp:cnt ####1}}% + }% + \setbox\tmp:bx=\hbox{$#1$}\setbox\tmp:bx=\hbox{}% + \set:mgroup#3{}{}% + \egroup + } +\fi +\def\set:mgroup#1#2{\if :#1#2:\else + \:temp{#1#2}\expandafter\set:mgroup \fi} +>>> + + + +\<set mathcal class\><<< +\ifx \mathboldcalMathClass\:UnDef + \NewMathClass\mathboldcalMathClass +\fi +\Configure{MathClass}{\mathboldcalMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="bold-script">}{</\a:mathml mi>}{} +>>> + +\<set mathcal symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathcal{A}}{\mathboldcalMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +\egroup +\fi +>>> + + + + + + +\<configure mathml amssymb\><<< +\def\:tempa#1"#2#3///{% + \edef\:next{\noexpand\Configure{MathClass}{\ifnum 0=#2 + \mathordMathClass \else #2\fi}}% + \:next +} +% \def\:tempb#1{\:tempa#1///{}{}{}{#1}} +% \def\:tempc#1"#2//{\:tempb{\mathchar"#2}} +% \def\:temp#1{\expandafter\:tempc\meaning#1//} +\def\:temp#1{\expandafter\:tempc\meaning#1//} +\def\:tempb#1{\:tempa#1///{}{}{}{#1}} +\def\:tempc#1"#2//{\:tempd#2...//} +\def\:tempd#1#2#3#4#5//{% + \if #4.\:tempb{\mathchar"0#1#2#3}\else + \:tempb{\mathchar"#1#2#3#4}\fi +} +\:temp \boxdot +\:temp \boxplus +\:temp \boxtimes +\:temp \centerdot +\:temp \boxminus +\:temp \veebar +\:temp \barwedge +\:temp \doublebarwedge +\:temp \Cup +\:temp \Cap +\:temp \curlywedge +\:temp \curlyvee +\:temp \leftthreetimes +\:temp \rightthreetimes +\:temp \dotplus +\:temp \intercal +\:temp \circledcirc +\:temp \circledast +\:temp \circleddash +\:temp \divideontimes +\:temp \lessdot +\:temp \gtrdot +\:temp \ltimes +\:temp \rtimes +\:temp \smallsetminus +\:temp \circlearrowright +\:temp \circlearrowleft +\:temp \leftrightharpoons +\:temp \Vdash +\:temp \Vvdash +\:temp \vDash +\:temp \twoheadrightarrow +\:temp \twoheadleftarrow +\:temp \leftleftarrows +\:temp \rightrightarrows +\:temp \upuparrows +\:temp \downdownarrows +\:temp \upharpoonright +\:temp \downharpoonright +\:temp \upharpoonleft +\:temp \downharpoonleft +\:temp \rightarrowtail +\:temp \leftarrowtail +\:temp \leftrightarrows +\:temp \rightleftarrows +\:temp \Lsh +\:temp \Rsh +\:temp \rightsquigarrow +\:temp \leftrightsquigarrow +\:temp \looparrowleft +\:temp \looparrowright +\:temp \circeq +\:temp \succsim +\:temp \gtrsim +\:temp \gtrapprox +\:temp \multimap +\:temp \therefore +\:temp \because +\:temp \doteqdot +\:temp \triangleq +\:temp \precsim +\:temp \lesssim +\:temp \lessapprox +\:temp \eqslantless +\:temp \eqslantgtr +\:temp \curlyeqprec +\:temp \curlyeqsucc +\:temp \preccurlyeq +\:temp \leqq +\:temp \leqslant +\:temp \lessgtr +\:temp \risingdotseq +\:temp \fallingdotseq +\:temp \succcurlyeq +\:temp \geqq +\:temp \geqslant +\:temp \gtrless +\:temp \vartriangleright +\:temp \vartriangleleft +\:temp \trianglerighteq +\:temp \trianglelefteq +\:temp \between +\:temp \blacktriangleright +\:temp \blacktriangleleft +\:temp \vartriangle +\:temp \eqcirc +\:temp \lesseqgtr +\:temp \gtreqless +\:temp \lesseqqgtr +\:temp \gtreqqless +\:temp \Rrightarrow +\:temp \Lleftarrow +\:temp \varpropto +\:temp \smallsmile +\:temp \smallfrown +\:temp \Subset +\:temp \Supset +\:temp \subseteqq +\:temp \supseteqq +\:temp \bumpeq +\:temp \Bumpeq +\:temp \lll +\:temp \ggg +\:temp \pitchfork +\:temp \backsim +\:temp \backsimeq +\:temp \lvertneqq +\:temp \gvertneqq +\:temp \nleq +\:temp \ngeq +\:temp \nless +\:temp \ngtr +\:temp \nprec +\:temp \nsucc +\:temp \lneqq +\:temp \gneqq +\:temp \nleqslant +\:temp \ngeqslant +\@ifpackageloaded{program}{}{\:temp \lneq} +\:temp \gneq +\:temp \npreceq +\:temp \nsucceq +\:temp \precnsim +\:temp \succnsim +\:temp \lnsim +\:temp \gnsim +\:temp \nleqq +\:temp \ngeqq +\:temp \precneqq +\:temp \succneqq +\:temp \precnapprox +\:temp \succnapprox +\:temp \lnapprox +\:temp \gnapprox +\:temp \nsim +\:temp \ncong +\:temp \varsubsetneq +\:temp \varsupsetneq +\:temp \nsubseteqq +\:temp \nsupseteqq +\:temp \subsetneqq +\:temp \supsetneqq +\:temp \varsubsetneqq +\:temp \varsupsetneqq +\:temp \subsetneq +\:temp \supsetneq +\:temp \nsubseteq +\:temp \nsupseteq +\:temp \nparallel +\:temp \nmid +\:temp \nshortmid +\:temp \nshortparallel +\:temp \nvdash +\:temp \nVdash +\:temp \nvDash +\:temp \nVDash +\:temp \ntrianglerighteq +\:temp \ntrianglelefteq +\:temp \ntriangleleft +\:temp \ntriangleright +\:temp \nleftarrow +\:temp \nrightarrow +\:temp \nLeftarrow +\:temp \nRightarrow +\:temp \nLeftrightarrow +\:temp \nleftrightarrow +\:temp \eqsim +\:temp \shortmid +\:temp \shortparallel +\:temp \thicksim +\:temp \thickapprox +\:temp \approxeq +\:temp \succapprox +\:temp \precapprox +\:temp \curvearrowleft +\:temp \curvearrowright +\:temp \backepsilon +\:temp \square +\:temp \blacksquare +\:temp \lozenge +\:temp \blacklozenge +\:temp \backprime +\:temp \bigstar +\:temp \blacktriangledown +\:temp \blacktriangle +\:temp \triangledown +\:temp \measuredangle +\:temp \sphericalangle +\:temp \circledS +\:temp \complement +\:temp \diagup +\:temp \diagdown +\:temp \varnothing +\:temp \nexists +\:temp \Finv +\:temp \Game +\:temp \eth +\:temp \beth +\:temp \gimel +\:temp \daleth +\:temp \digamma +\:temp \varkappa +\:temp \Bbbk +\:temp \hslash +>>> + +Note that in the presence of bm.sty the symbols of amssymb change their +codings. + +\begin{verbatim} +\documentclass{article} +% \usepackage{bm} +\usepackage{amsmath,amssymb} +\begin{document} +\hshow{boxdot} +\begin{equation} +2 +\end{equation} +\end{document} +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\chapter{Loose Ends} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\section{Commutative Diagrams (amscd)} +%%%%%%%%%%%%%%%%%% + + + +\<configure mathml amscd\><<< +\ConfigureEnv{CD}{}{}{}{} +\Configure{CD} + {\HCode{<\a:mathml mtable class="CD"\Hnewline>}} + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} + {\HCode{</\a:mathml mtr>}} + {\HCode{<\a:mathml mtd\Hnewline>}} + {\HCode{</\a:mathml mtd>}} +>>> + + + + +\<configure mathml amscd\><<< +\Configure{ @>} + {\Configure{mathrel*}{*} + {<mrow \mml:class="rightarrow" >} + {</mrow>} + {}} +>>> + + +\<configure mathml amscd\><<< +\Configure{ @<} + {\Configure{mathrel*}{*} + {<mrow \mml:class="leftarrow" >} + {</mrow>} + {}} +>>> + +\<configure mathml amscd\><<< +\Configure{ @V} + {\HCode{<mphantom>} + \hbox{$\m@th\vcenter{\hbox{$\scriptstyle#2$}}$}%% + \HCode{</mphantom>}} + {\HCode{<mphantom>} + \hbox{$\m@th\vcenter{\hbox{$\m@th\vcenter{\hbox + {$\scriptstyle#1$}}$}}$}% + \HCode{</mphantom>}} +>>> + +Are there \verb+\llap+and \verb+\rlap+ facilities in mathml? + +%%%%%%%%%%%%%%%%%% +\section{Right-to-Left Babel} +%%%%%%%%%%%%%%%%%% + + + +\<rlbabel everypar\><<< +\expandafter\ifx \csname o@everypar\endcsname\relax \else +\expandafter\ifx \csname ht:everypar\endcsname\relax + \let\ht:everypar\o@everypar +\fi\fi +>>> + + + + + + +\<dir ltr/rtl\><<< +dir="\if@rl rtl\else ltr\fi" +>>> + + +\<configure html-mml rlbabel\><<< +\Configure{moreL} + {\ifmathml |<ltr rlbabel mtext|>% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="ltr" >}% + \def\end:moreRL{\HCode{</span>}}% + \fi + \fi + } + {\end:moreRL} +\Configure{moreR} + {\ifmathml |<rtl rlbabel mtext|>% + \else + \ifvmode \let\end:moreRL=\empty + \else\HCode{<span dir="rtl" >}\def\end:moreRL{\HCode{</span>}}\fi + \fi + } + {\end:moreRL} +\Css{.rtl {direction: rtl} + .ltr {direction: ltr} } +>>> + + + +\<ltr rlbabel mtext\><<< +\ifmtext + \leavevmode\special{t4ht@+</\a:mathml mtext><\a:mathml mtext{32}\mml:class="ltr">}x% + \def\end:moreRL{\HCode{</\a:mathml mtext><\a:mathml mtext>}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + + +\<rtl rlbabel mtext\><<< +\ifmtext + \leavevmode\special{t4ht@+</\a:mathml mtext><\a:mathml mtext{32}\mml:class="rtl">}x% + \def\end:moreRL{\HCode{</\a:mathml mtext><\a:mathml mtext>}}% +\else + \let\end:moreRL=\empty +\fi +>>> + + +%%%%%%%%%%%%% +\subsection{Tables} +%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{dcolumn} +%%%%%%%%%%%%% + + +\<configure mathml dcolumn\><<< +\Configure{dcolumn} + {\NoFonts\Configure{$}{}{}{}} + {\EndNoFonts} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{openmath} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<itemitem 0.0\><<< +\Configure{itemitem}{}{}{\par\leavevmode}{} +>>> + + + + +Used to have also a \verb'\special{t4ht@[}...\special{t4ht@]}', +where the specials asked to igore the enclosed +content. It is provided for getting `realistic' measurements in mathml +applets. a candidadte for delition. + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<par del\><<< +!*?: >>> + + +\<tag of Tag\><<< + cw:>>> + +\<tail\><<< +tail>>> + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + + +\<save catcodes\><<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Boxed} +%%%%%%%%%%%%%%%%%% + +\<configure html-mml amsmath\><<< +\Configure{boxed} + {\ifmathml \Tg<\a:mathml mrow \mml:class="boxed">% + \else \HCode{<span class="boxed">}\IgnorePar\fi} + {\ifmathml \Tg</\a:mathml mrow>% + \else \HCode{</span>}\fi} +\Css{.boxed{border: 1px solid black; padding-left:2px; + padding-right:2px;}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{fontmath} +%%%%%%%%%%%%%%%%%% + + + + +\<fontmath mathord symbols as ?\><<< +\mathchar"3230 |%\prime|% +\mathchar"3231 |%\infty|% +\mathchar"323B |%\emptyset|% +\mathchar"323C |%\Re|% +\mathchar"323D |%\Im|% +\mathchar"3240 |%\aleph|% +>>> + +\<fontmath mathord symbols as op\><<< +\mathchar"3234 |%\triangle|% +\mathchar"3238 |%\forall|% +\mathchar"3239 |%\exists|% +\mathchar"323A |%\neg|% +\mathchar"323E |%\top|% +\mathchar"323F |%\bot|% +\mathchar"3272 |%\nabla|% +\mathchar"3278 |%\mathsection|% +\mathchar"327B |%\mathparagraph|% +\mathchar"327C |%\clubsuit|% +\mathchar"327D |%\diamondsuit|% +\mathchar"327E |%\heartsuit|% +\mathchar"327F |%\spadesuit|% +>>> + + + +\subsection{1: Large Operators} + +\begin{verbatim} +\mathchardef\coprod="1360 +\mathchardef\bigvee="1357 +\mathchardef\bigwedge="1356 +\mathchardef\biguplus="1355 +\mathchardef\bigcap="1354 +\mathchardef\bigcup="1353 +\mathchardef\intop="1352 \def\int{\intop\nolimits} +\mathchardef\prod="1351 +\mathchardef\sum="1350 +\mathchardef\bigotimes="134E +\mathchardef\bigoplus="134C +\mathchardef\bigodot="134A +\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} +\mathchardef\bigsqcup="1346 +\mathchardef\smallint="1273 +\end{verbatim} + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{1}{}{}{}{ + \mathchar"1360 + \mathchar"1357 + \mathchar"1356 + \mathchar"1355 + \mathchar"1354 + \mathchar"1353 + \mathchar"1352 + \mathchar"1351 + \mathchar"1350 + \mathchar"134E + \mathchar"134C + \mathchar"134A + \mathchar"1348 + \mathchar"1346 + \mathchar"1273 + |<fontmath mathord symbols as op|>% +} +>>> + +% \mathchar"230 |%math prime|% + +A prime is typically placed on letters and digits. + + +\subsection{2: Binary Operations} + +\begin{verbatim} +\mathchardef\triangleleft="212F +\mathchardef\triangleright="212E +\mathchardef\bigtriangleup="2234 +\mathchardef\bigtriangledown="2235 +\mathchardef\wedge="225E \let\land=\wedge +\mathchardef\vee="225F \let\lor=\vee +\mathchardef\cap="225C +\mathchardef\cup="225B +\mathchardef\ddagger="227A +\mathchardef\dagger="2279 +\mathchardef\sqcap="2275 +\mathchardef\sqcup="2274 +\mathchardef\uplus="225D +\mathchardef\amalg="2271 +\mathchardef\diamond="2205 +\mathchardef\bullet="220F +\mathchardef\wr="226F +\mathchardef\div="2204 +\mathchardef\odot="220C +\mathchardef\oslash="220B +\mathchardef\otimes="220A +\mathchardef\ominus="2209 +\mathchardef\oplus="2208 +\mathchardef\mp="2207 +\mathchardef\pm="2206 +\mathchardef\circ="220E +\mathchardef\bigcirc="220D +\mathchardef\setminus="226E % for set difference A\setminus B +\mathchardef\cdot="2201 +\mathchardef\ast="2203 +\mathchardef\times="2202 +\mathchardef\star="213F +\mathcode`\*="2203 % \ast +\mathcode`\+="202B +\mathcode`\-="2200 +\end{verbatim} + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{2}{}{}{}{ +*-+/ +\mathchar"212F +\mathchar"212E +\mathchar"2234 +\mathchar"2235 +\mathchar"225E +\mathchar"225F +\mathchar"225C +\mathchar"225B +\mathchar"227A +\mathchar"2279 +\mathchar"2275 +\mathchar"2274 +\mathchar"225D +\mathchar"2271 +\mathchar"2205 +\mathchar"220F +\mathchar"226F +\mathchar"2204 +\mathchar"220C +\mathchar"220B +\mathchar"220A +\mathchar"2209 +\mathchar"2208 +\mathchar"2207 +\mathchar"2206 +\mathchar"220E +\mathchar"220D +\mathchar"226E +\mathchar"2201 +\mathchar"2203 +\mathchar"2202 +\mathchar"213F +\mathchar"6201 % cdot +} +>>> + + +\subsection{3: Relational Operations} + +The catcode is needed because 303A is \verb':'. + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{3}{}{}{}{ + \mathchar"3128 + \mathchar"3129 + \mathchar"312A + \mathchar"312B + \mathchar"315E + \mathchar"315F + \mathchar"3210 + \mathchar"3211 + \mathchar"3212 + \mathchar"3213 + \mathchar"3214 + \mathchar"3215 + \mathchar"3216 + \mathchar"3217 + \mathchar"3218 + \mathchar"3219 + \mathchar"321A + \mathchar"321B + \mathchar"321C + \mathchar"321D + \mathchar"321E + \mathchar"321F + \mathchar"3220 + \mathchar"3221 + \mathchar"3224 + \mathchar"3227 + \mathchar"3232 + \mathchar"3233 + \mathchar"3236 + \mathchar"3237 + \mathchar"323F + :=>< + \mathchar"322F + \mathchar"3276 + \mathchar"3277 + \mathchar"326B + \mathchar"326A + \mathchar"3261 + \mathchar"3260 + \mathchar"3225 + \mathchar"3226 + \mathchar"322D + \mathchar"322E + \mathchar"322C + \mathchar"3228 + \mathchar"3229 +} +>>> + +% \mathchar"327C |%clubsuit|% +% \mathchar"327D |%diamondsuit|% +% \mathchar"327E |%heartsuit|% +% \mathchar"327F |%spadesuit|% + + + +% \mathchar"340A % rightleftharpoons +% \mathchar"340B % leftrightharpoons +% + +\begin{verbatim} +\mathcode`\>="313E +\mathcode`\<="313C +\mathcode`\=="303D +\mathcode`\:="303A +\mathchardef\leq="3214 \let\le=\leq +\mathchardef\geq="3215 \let\ge=\geq +\mathchardef\succ="321F +\mathchardef\prec="321E +\mathchardef\approx="3219 +\mathchardef\succeq="3217 +\mathchardef\preceq="3216 +\mathchardef\supset="321B +\mathchardef\set="321A +\mathchardef\supseteq="3213 +\mathchardef\seteq="3212 +\mathchardef\in="3232 +\mathchardef\ni="3233 \let\owns=\ni +\mathchardef\gg="321D +\mathchardef\ll="321C +\mathchardef\not="3236 +\mathchardef\leftrightarrow="3224 +\mathchardef\leftarrow="3220 \let\gets=\leftarrow +\mathchardef\rightarrow="3221 \let\to=\rightarrow +\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} +\mathchardef\sim="3218 +\mathchardef\simeq="3227 +\mathchardef\perp="323F +\mathchardef\equiv="3211 +\mathchardef\asymp="3210 +\mathchardef\smile="315E +\mathchardef\frown="315F +\mathchardef\leftharpoonup="3128 +\mathchardef\leftharpoondown="3129 +\mathchardef\rightharpoonup="312A +\mathchardef\rightharpoondown="312B +\mathchardef\propto="322F +\mathchardef\sqsubseteq="3276 +\mathchardef\sqsupseteq="3277 +\mathchardef\parallel="326B +\mathchardef\mid="326A +\mathchardef\dashv="3261 +\mathchardef\vdash="3260 +\mathchardef\nearrow="3225 +\mathchardef\searrow="3226 +\mathchardef\nwarrow="322D +\mathchardef\swarrow="322E +\mathchardef\Leftrightarrow="322C +\mathchardef\Leftarrow="3228 +\mathchardef\Rightarrow="3229 +\end{verbatim} + + +\subsection{4/5: Delimiters} + +\begin{verbatim} +\mathcode`\(="4028 +\mathcode`\)="5029 +\mathcode`\[="405B +\mathcode`\]="505D +\mathcode`\{="4266 +\mathcode`\}="5267 +\delcode`\(="028300 +\delcode`\)="029301 +\delcode`\[="05B302 +\delcode`\]="05D303 +\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) +\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( +\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips +\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips +\def\backslash{\delimiter"26E30F } % for double coset G\backslash H +\def\rangle{\delimiter"526930B } +\def\langle{\delimiter"426830A } +\def\rbrace{\delimiter"5267309 } \let\}=\rbrace +\def\lbrace{\delimiter"4266308 } \let\{=\lbrace +\def\rceil{\delimiter"5265307 } +\def\lceil{\delimiter"4264306 } +\def\rfloor{\delimiter"5263305 } +\def\lfloor{\delimiter"4262304 } +\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads +\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads +\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces +\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated? +\def\vert{\delimiter"26A30C } " " " " " +\def\uparrow{\delimiter"3222378 } +\def\downarrow{\delimiter"3223379 } +\def\updownarrow{\delimiter"326C33F } +\def\Uparrow{\delimiter"322A37E } +\def\Downarrow{\delimiter"322B37F } +\def\Updownarrow{\delimiter"326D377 } +\end{verbatim} + +The comamnds \verb'\Configure{MathClass}{4}...' +and \verb'\Configure{MathClass}{5}...' +are for unmatched delimiters, and the comamnd +\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones. + + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{4}{}{}{}{} +\Configure{MathDelimiters}{(}{)} +\Configure{MathDelimiters}{[}{]} +\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263} +\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265} +\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267} +\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269} +\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301} +\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303} +\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305} +\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307} +\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309} +\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B} +>>> + +\begin{verbatim} +\mathcode`\?="503F +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{6: Punctuation Marks} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{verbatim} +\mathcode`\;="603B +\mathcode`\,="613B +\end{verbatim} + +\<plain,fontmath math classes\><<< +\Configure{MathClass}{6}{}{}{}{ +\mathchar"613A % ldot +\mathchar"603A % colon +!?; , +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Questions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{verbatim} + + +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Type 4: Math Open} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +latex.ltx, fontmath.ltx, plain.tex + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Packages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\section{Small Ones} +%%%%%%%%%%%%%%%%%% + + + +\<configure mathml sistyle\><<< +\Configure{thousandsep} + {\ifmathml + \ifmtext\else \Tg<\a:mathml mspace width="0.25em"/>\fi + \fi} +>>> + + +%%%%%%%%%%%%% +\subsection{subeqnarray} +%%%%%%%%%%%%% + +\<configure mathml subeqnarray\><<< +\Configure{subeqnarray} + {\HCode{<\a:mathml mtable\Hnewline \mml:class="subeqnarray\ifx + \@seqncr\@eqncr\else-star\fi" + \a:mathml columnalign="right center left" >}}% + {\HCode{</\a:mathml mtable>}} + {\HCode{<\a:mathml mtr>}} {\HCode{</\a:mathml mtr>}} + {\Tg<\a:mathml mtd\Hnewline \mml:class="subeqnarray-\HCol"> + \ifnum \HCol=4 + \Tg<\a:mathml mtext + \mml:class="subeqnarray">|<start mtext space|>\PauseMathClass + \mtexttrue + |<config math within mtext|>% + \fi} + {\ifnum \HCol=4 \mtextfalse + \EndPauseMathClass|<end mtext space|>\Tg</\a:mathml mtext>\fi + \Tg</\a:mathml mtd>} +>>> + + +%%%%%%%%%%%%% +\subsubsection{Bm} +%%%%%%%%%%%%% + + +\<configure mathml bm\><<< +\Configure{bm} + {\ifmmode \ifmtext \else + \Tg<\a:mathml mstyle + mathvariant="bold">% + \expandafter\expandafter\expandafter\:gobble + \fi\fi} + {\ifmmode \ifmtext \else \Tg</\a:mathml mstyle>\fi\fi} +>>> + + +The bm commands produces bold printing by overprinting the characters +with small shifting. + + +%%%%%%%%%%%%%%%%%% +\section{Color} +%%%%%%%%%%%%%%%%%% + + + +\<configure html-mml color\><<< +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor} + {\Css{.textcolor\textcolorN{color:\HColor}}}}% + \HCode{<\ifmathml mstyle\else span\fi + \space id="textcolor\textcolorN">}}% + {\HCode{</\ifmathml mstyle\else span\fi>}} +>>> + + +\<configure html-mml color\><<< +\Configure{textcolor} + {\ifmathml + \Configure{color}% + {\Configure{SetHColor} + {\HCode{<mstyle mathcolor="\HColor">}}}% + \else + \gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor} + {\Css{\#textcolor\textcolorN{color:\HColor}}}}% + \HCode{<span id="textcolor\textcolorN">}% + \fi + }% + {\HCode{</\ifmathml mstyle\else span\fi>}} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Notes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{To Do} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item Parametric commands as Superscripts or Subscripts: + \verb+$E^\frac{1}{2}$+ (instead of \verb+$E^{\frac{1}{2}}$+). + +\item + Numbering is not right justified: + +\begin{verbatim} +\documentclass{amsart} + \begin{document} + + \begin{eqnarray} + A &=& B + C + \end{eqnarray} + + \begin{align} + A &= B + C \qquad & N &= G + F + \end{align} + + \begin{alignat}{2} + A &= B + C \qquad \qquad & N & = G + F + \end{alignat} + +\begin{gather} +A = B + C \tag{my equation} \\ +B = \text{variable unknown} \notag \\ +Y = \max X + \log 10 +\end{gather} + +\end{document} +\end{verbatim} + + +\item +\begin{verbatim} +\begin{align} +e &= a + b \\ +\intertext{this should be located on the left browser hand margin} +a &= u +\end{align} + +\end{verbatim} + +\end{itemize} + + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-mathplayer.tex b/support/TeX4ht/source/tex4ht-mathplayer.tex new file mode 100644 index 0000000000..2908440baf --- /dev/null +++ b/support/TeX4ht/source/tex4ht-mathplayer.tex @@ -0,0 +1,306 @@ +% $Id: tex4ht-mathplayer.tex 65 2010-11-17 19:16:45Z karl $ +% compile 3 times: latex tex4ht-mathplayer +% or xhlatex tex4ht-mathplayer "html,3,sections+" +% +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) 1997-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{mathplayer} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common} +\input{tex4ht-cpright} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mathplayer\><<< +% mathplayer.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2002. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Start Here} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%% +\section{Header} +%%%%%%%%%%%%%%%% + +\<configure mathplayer Preamble\><<< +\edef\Preamble{\Preamble,xht} +\Configure{ext}{xht} +>>> + +% \Configure{mathml}{m:} + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + +\<configure mathplayer tex4ht\><<< +\Configure{DOCTYPE} + {\HCode{<!DOCTYPE html PUBLIC + "-//W3C//DTD XHTML 1.1 plus MathML 2.0//|<dtd lang|>"\Hnewline + "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"\Hnewline + [\Hnewline + <!ENTITY \% MATHML.prefixed "INCLUDE">\Hnewline + <!ENTITY \% MATHML.prefix "m">\Hnewline + ]\Hnewline + >\Hnewline }} +\Configure{@BODY} + {\ifvmode \EndP\fi \IgnorePar\HCode{<script type="text/javascript">\Hnewline<!--\Hnewline + |<check for ie 5.5 and mathplayer|>\Hnewline-->\Hnewline + </script>\Hnewline + }\par\ShowPar} + \Configure{@HTML} + {xmlns:m="http://www.w3.org/1998/Math/MathML"\Hnewline +% xmlns:dsi="http://www.dessci.com/mathml" \Hnewline + } +%\let\dsi:=\empty +>>> + + +application/xhtml+xml + + + +\<check for ie 5.5 and mathplayer\><<< +if( navigator.appName=="Microsoft Internet Explorer" \Hnewline + && navigator.platform=="Win32" \Hnewline +){ \Hnewline + if( parseFloat(navigator.appVersion.substr( \Hnewline + navigator.appVersion.indexOf("MSIE ")+5))>="5.5" \Hnewline + ){ + try { \Hnewline + var oMP = new ActiveXObject("MathPlayer.Factory.1"); \Hnewline + } \Hnewline + catch(e) { alert("Can't find Design Science's MathPalyer" + \Hnewline + "(http://www.dessci.com/webmath/mathplayer)");} \Hnewline + } else { \Hnewline + alert("Requires MSIE version 5.5 or later"); \Hnewline +} } \Hnewline +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Wrapping in Tables} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The attribute \verb+nowrap="nowrap"+ in table cells prevents +Mathplayer from displaying them its own way, and one gets minimal +cells, overlapped: it ought to be avoided altogether. + +\<configure mathplayer tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ style="text-align:left" }\fi} + {-}{\ifmathml \HCode{ columnalign="center"}\else + \HCode{ style="text-align:center" }\fi} + {>}{\ifmathml \HCode{ columnalign="right"}\else + \HCode{ style="text-align:right" }\fi} + {^}{\ifmathml \HCode{ rowalign="top"}\else + \HCode{ style="vertical-align:top" }\fi} + {=}{\ifmathml \HCode{ rowalign="baseline"}\else + \HCode{ style="vertical-align:baseline" }\fi} + {||}{\ifmathml \HCode{ rowalign="center"}\else + \HCode{ style="vertical-align:middle" }\fi} + {_}{\ifmathml \HCode{ rowalign="bottom"}\else + \HCode{ style="vertical-align:bottom" }\fi} + {p}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ style="text-align:left"}\fi} + {} +>>> + + + + + + + +% %%%%%%%%%%%%%%%%%%%%% +% \section{Cross References} +% %%%%%%%%%%%%%%%%%%%%% + +% + +% + +% \<configure mathplayer tex4htNO\><<< +% \LinkCommand\mtxt:link{\a:mathml maction,% +% actiontype="link" \dsi: href, id, +% class="label"|<mtext ref decoration|>,,} +% \LinkCommand\msp:link{\a:mathml maction,% +% actiontype="link" \dsi: href, id, +% class="label"|<mstyle ref decoration|>,,} +% \def\Link{\ifmathml +% \ifmtext |<end mtext|>\HCode{</\a:mathml mtext>}% +% \expandafter\expandafter\expandafter\mtxt:link +% \else \expandafter\expandafter\expandafter\msp:link\fi +% \else \expandafter\M:Link\fi} +% \def\EndLink{\ifmathml +% \ifmtext |<end mtext|>|<end mtext ref decoration|>% +% \Endmtxt:link \HCode{<\a:mathml mtext\Hnewline +% class="endlabel">}|<start mtext|>% +% \else \HCode{|<end mstyle ref decoration|></\a:mathml +% maction><!--endlabel-->}\fi +% \else \expandafter\M:EndLink\fi} +% >>> + +% + +% + +% + +% + +% + +% +% \<mtext ref decorationNO\><<< +% ><\a:mathml mtext mathbackground="yellow"% +% >>> + +% \<end mtext ref decorationNO\><<< +% \HCode{</\a:mathml mtext>}% +% >>> + +% \<mstyle ref decorationNO\><<< +% ><\a:mathml mstyle mathbackground="yellow"% +% >>> + +% \<end mstyle ref decorationNO\><<< +% </\a:mathml mstyle>% +% >>> + +% +% \begin{verbatim} +% JUST BACKGROUND (one could add colour, and it would be fine to include the +% labels, if any) +% <m:mstyle \a:mathml mathbackground="yellow"> <m:maction +% actiontype="link" \dsi: href="#x1-2r1" class="label"><m:mrow +% ><m:mn>1</m:mn><!--tex4ht:ref: equ1 --></m:mrow></m:maction></m:mstyle > + +% HIGHLIGHT ON MOUSEOVER +% <m:maction +% actiontype="highlight" \dsi: color="pink" ><m:maction +% actiontype="link" \dsi: href="#x1-2r1" class="label"><m:mtext +% background="yellow" >1<!--tex4ht:ref: +% equ1 --></m:mtext></m:maction></m:maction> + +% TOOLTIP CLUE ON MOUSEOVER +% <m:mrow> +% <m:maction actiontype="tooltip" ><m:maction +% actiontype="link" \dsi: href="#x1-2r1" class="label"><m:mrow ><m:mn +% background="yellow" >1</m:mn></m:mrow></m:maction> +% <m:mtext>click to jump!</m:mtext> +% <!--tex4ht:ref: equ1 --></m:maction><!--endlabel--></m:mrow> + +% * <m:mtext m:mathbackground="yellow" > disables background colour in all +% the (math-)links - this one coming from a typo in mathplayer.4ht, inserting +% m: before mathbackground; + +% m: also problematic on actiontype +% \end{verbatim} + +% \<start mtext\><<< +% \ht:special{t4ht@,&\#x00A0;}% +% >>> +% \<end mtext\><<< +% \ht:special{t4ht@,}% +% >>> + +% + +% The area of the clickable links can be enlarged with a cpde similar to +% the following one. + +% \begin{verbatim} +% \let\svLink=\Link +% \let\svEndLink=\EndLink +% \Odef\Link[#1]#2#3{% +% \svLink[#1]{#2}{#3}% +% \ifmathml\ifmtext\else \HCode{<m:mpadded width="4">}\fi\fi} +% \def\EndLink{% +% \ifmathml\ifmtext\else \HCode{</m:mpadded>}\fi\fi +% \svEndLink} +% \end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{Namespace Prefixes} +%%%%%%%%%%%%%%%%%% + +\<configure mathplayer tex4ht\><<< +\:CheckOption{xht} \if:Option +\else \:CheckOption{xml} \if:Option +\else +\Configure{DviMath} + {\a:DviMathML \mathmltrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \IgnoreRule \HCode{<!--l. + \the\inputlineno-->}\HCode{<\a:mathml math\Hnewline}% + |<disable a:mathml for math attr|>% + \HCode{\csname a:math-xmlns\endcsname \Hnewline \a:@math>}% + |<end disable a:mathml for math attr|>\a:math + |<sv dvimath par|>\IgnorePar} + {\Tg</\a:mathml math>\EndIgnoreRule + \ifOption{mml-fonts}{}{|%\ext:htfsym|%\EndNoFonts}% + \mathmlfalse \b:DviMathML |<recall dvimath par|>} +\fi\fi +>>> + + +\<recall dvimath par\><<< +\sv:ignore +>>> + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + +\<disable a:mathml for math attr\><<< +\let\sva:mathml=\a:mathml \let\a:mathml=\empty +>>> + +\<end disable a:mathml for math attr\><<< +\let\a:mathml=\sva:mathml +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Color} +%%%%%%%%%%%%%%%%%% + +\<configure mathplayer color\><<< +\let\a:txt:textcolor\a:textcolor +\let\b:txt:textcolor\b:textcolor +\Configure{textcolor} + {\ifmathml + \Configure{color}% + {\Configure{SetHColor} + {\HCode{<m:mstyle color="\HColor">}}}% + \else \a:txt:textcolor \fi + } + {\ifmathml \HCode{</m:mstyle>}\else \b:txt:textcolor \fi} +>>> + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-mkht.tex b/support/TeX4ht/source/tex4ht-mkht.tex new file mode 100644 index 0000000000..9e957719e1 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-mkht.tex @@ -0,0 +1,1929 @@ +% $Id: tex4ht-mkht.tex 845 2020-11-23 18:05:43Z karl $ +% (1) latex tex4ht-mkht +% (2) perl -c mk4ht.perl (checking correctness) +% (3) latex mkht-scripts.4ht +% +% Copyright 2009-2020 TeX Users Group +% Copyright 1997-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + \usepackage{url} +\def\CodeDel{{<<<-}{->>>}} +\ifx \HCode\UnDef + \input tex4ht.sty + \Preamble{xhtml} + \input ProTex.sty + \AlProTex{4ht,<<<>>>,?,title,list} +\else + \Configure{ProTex}{4ht,<<<>>>,?,title,list,[[]]} +\fi + +\begin{document} + +%%%%%%%%%%%%%%%%%%%%% definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\input{common} + +\def\mkhtNote{ + +} +\newtoks\toks +\expandafter\toks\expandafter{\mkhtNote} + +%%%%%%%%%%%%%%%%%%%%% end definitions %%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%% +\section{TeX Dialects} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{\LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<def script\><<<- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<htlatex ...\><<< +|<unix line|>|<windows line|> + |<latex|> + |<latex|> + |<latex|> + |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> + +>>> + + +\<latex\><<< +latex |<@|>5 |<'|>|<definitions|>|<get parameters|>|empty>>> + +\<get parameters\><<< +\HCode |<'|>|<@|>2|<'|>.a.b.c.\input |<'|> |<@|>1>>> + + +\<definitions\><<< +\makeatletter|<get 2nd arg|>|<2e + 209|>\makeatother>>> + +\<get 2nd arg\><<< +\def\HCode{\futurelet\HCode\HChar}\def\HChar{|<double quotes??|>}>>> + +\<double quotes??\><<< +\ifx"\HCode|<remove qts|>\expandafter\HCode\else\expandafter\Link\fi>>> + +\<remove qts\><<< +\def\HCode"##1"{\Link##1}>>> + + +\<2e + 209\><<< +\def\Link#1.a.b.c.{|<2e|>|<209|>}>>> + +\<2e\><<< +\g@addto@macro\@documentclasshook{|<require package|>}>>> + +\<209\><<< +|<save|>\def\documentstyle{|<recall|>|<options|>|<209+tex4ht|>}>>> + +\<require package\><<< +\RequirePackage[#1|<II|>|<,html|>]{tex4ht}>>> + + +\<options\><<< +|<def tex4ht|>{#1|<II|>|<,html|>}>>> + + +\<209+tex4ht\><<< +|<209+tex4ht+...|>\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}>>> + +\<209+tex4ht+...\><<< +\def\HCode####1{\documentstyle[tex4ht,}>>> + + +\<save\><<< +\let\HCode\documentstyle>>> + +\<recall\><<< +\let\documentstyle\HCode>>> + + + +\<htlatex 2e...\><<< +|<unix line|>|<windows line|>|<latex2e|> + |<latex2e|> + |<latex2e|> + |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> + +>>> + + + + +\<latex2e\><<< +latex |<@|>5 |<'|>|<definitions2e|>|<get parameters|>|empty>>> + +\<definitions2e\><<< +\makeatletter|<get 2nd arg|>|<2e only|>\makeatother>>> + + +\<2e only\><<< +\def\Link#1.a.b.c.{|<2e|>}>>> + + + + + +\<htlatex 209...\><<< +|<unix line|>|<windows line|>|<latex209|> + |<latex209|> + |<latex209|> + |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> + +>>> + + + + +\<latex209\><<< +latex |<@|>5 |<'|>|<definitions209|>|<get parameters|>|empty>>> + +\<definitions209\><<< +\makeatletter|<get 2nd arg|>|<209 only|>\makeatother>>> + + +\<209 only\><<< +\def\Link#1.a.b.c.{|<209|>}>>> + +->>> + + +\<add script\><<<- +\OutputCodE\<\pref latex\latex.\ext\> \script{\pref latex}{\ext} % +\expandafter\let\csname\pref latex\latex\endcsname=\UnDef +% +->>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{\TeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<def script\><<<- + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{TeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<httex...\><<< +|<unix line|>|<windows line|>|<tex|> + |<tex|> + |<tex|> + |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> + +>>> + +\<tex\><<< +etex |<@|>5 |<'|>|<tex definitions|>|<get parameters|>|empty>>> + + +\<tex definitions\><<< +|<set hook|>|<get 2nd arg|>|empty>>> + +\<set hook\><<< +\def\Link#1.a.b.c.{|<def tex4ht|>{|<options|>\input tex4ht.sty }}>>> + + +\<def tex4ht\><<< +\expandafter\def\csname tex4ht\endcsname>>> + +->>> + + +\<add script\><<<- +\<\pref tex.\ext\><<< +\<httex...\> +>>> % +% +\OutputCodE\<\pref tex.\ext\> \script{\pref tex}{\ext} % +% +->>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Texinfo} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<def script\><<<- +%%%%%%%%%%%%%%%%%%%% +\section{Texinfo} +%%%%%%%%%%%%%%%%%%%% + +The loading of tex4ht takes place at the @rm command at the end of the +texinfo.tex file. + +\<httexi...\><<< +|<unix line|>|<windows line|>|<texinfo|> + |<texinfo|> + |<texinfo|> + |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> +|<Rem|> texindex ?? + +>>> + +\<texinfo\><<< +etex |<@|>5 |<'|>|<texinfo definitions|>|<get parameters|>|empty>>> + + +\<texinfo definitions\><<< +|<tex definitions|>\let\svrm=\rm\def\rm{\svrm|<tex4ht into texinfo|>}>>> + +\<tex4ht into texinfo\><<< +\ifx\c\comment\def\rm{\let\rm=\svrm|<load into texinfo|>}\expandafter\rm\fi>>> + +\<load into texinfo\><<< +|<change cats|>\csname tex4ht\endcsname|<restore cats|>|empty>>> + +\<change cats\><<< +\catcode`\@=12\catcode`\\=0 >>> + +\<restore cats\><<< +\catcode`\@=0\catcode`\\=13 >>> +->>> + + +\<add script\><<<- +\<\pref texi.\ext\><<< +\<httexi...\> +>>> % +% +\OutputCodE\<\pref texi.\ext\> \script{\pref texi}{\ext} % +% +->>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Context} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<def script\><<<- +%%%%%%%%%%%%%%% +\section{ConTeXt} +%%%%%%%%%%%%%%% + + +\<context...\><<< +|<unix line|>|<windows line|> + |<texexec|> + |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> + +>>> + +\<texexec\><<< +|<ruby call|>texexec --arg="ht-1=|<@|>2" --use=tex4ht --dvi --nobackend |<@|>5 |<@|>1 >>> +->>> + + +``In the latest ConTeXt, texexec for Windows is realized +as a batch file from which texmfstart.exe ---> ruby script +is called.'' + +\immediate\write16{...............................fix......} +\immediate\write16{% +perl /opt/cvr/gurari/main.dir/try.dir/context.dir/context/perltk/texexec.pl% +} +\immediate\write16{........................................} + + +\<add script\><<<- +\<\pref context.\ext\><<< +\<context...\> +>>> % +% +\OutputCodE\<\pref context.\ext\> \script{\pref context}{\ext} % +% +->>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{XeTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<def script\><<<- + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{XeTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<htxetex...\><<< +|<unix line|>|<windows line|>|<xetex|> + |<xetex|> + |<xetex|> + |<base|>tex4ht -.xdv |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht -.xdv |<dir ch|>|<@|>1 |<IV|> + +>>> + +\<xetex\><<< +xetex -no-pdf |<@|>5 |<'|>|<tex definitions|>|<get parameters|>|empty>>> +->>> + + +\<add script\><<<- +\<\pref xetex.\ext\><<< +\<htxetex...\> +>>> % +% +\OutputCodE\<\pref xetex.\ext\> \script{\pref xetex}{\ext} % +% +->>> + + + +\<def script\><<<- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{XeLaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<htxelatex...\><<< +|<unix line|>|<windows line|>|<xelatex|> + |<xelatex|> + |<xelatex|> + |<base|>tex4ht -.xdv |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht -.xdv |<dir ch|>|<@|>1 |<IV|> + +>>> + + +\<xelatex\><<< +xelatex -no-pdf |<@|>5 |<'|>|<definitions|>|<get parameters|>|empty>>> +->>> + +\<add script\><<<- +\<\pref xelatex.\ext\><<< +\<htxelatex...\> +>>> % +% +\OutputCodE\<\pref xelatex.\ext\> \script{\pref xelatex}{\ext} % +% +->>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Mex} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<def script\><<<- + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{MeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<htmex...\><<< +|<unix line|>|<windows line|>|<mex|> + |<mex|> + |<mex|> + |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> + |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> + +>>> + +\<mex\><<< +mex |<@|>5 |<'|>|<tex definitions|>|<get parameters|>|empty>>> + +->>> + + +\<add script\><<<- +\<\pref mex.\ext\><<< +\<htmex...\> +>>> % +% +\OutputCodE\<\pref mex.\ext\> \script{\pref mex}{\ext} % +% +->>> + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \subsection{Mex} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% \<def script\><<<- +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \subsection{MeX il2-pl} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \<htmex-pl...\><<< +% |<unix line|>|<windows line|>|<mex-pl|> +% |<mex-pl|> +% |<mex-pl|> +% |<base|>tex4ht |<dir ch|>|<@|>1 |<III|> +% |<base|>t4ht |<dir ch|>|<@|>1 |<IV|> +% +% >>> +% +% \<mex-pl\><<< +% mex-pl -translate-file=il2-pl |<'|>|<tex definitions|>|<get parameters|>|empty>>> +% +% ->>> +% +% +% \<add script\><<<- +% \<\pref mex-pl.\ext\><<< +% \<htmex-pl...\> +% >>> % +% % +% \OutputCodE\<\pref mex-pl.\ext\> \script{\pref mex-pl}{\ext} % +% % +% ->>> + + + +%%%%%%%%%%%%%%%%%% +\section{Markup Dialects} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{HTML: ht} +%%%%%%%%%%%%% + + +WARNING: Don't include `-cvalidatehtml' in the htlatex script as it will +be required by every script called with mk4ht. For instance, `mk4ht +dblatex file'. + +\<unix scripts\><<<- +\Ii{,html} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1} +\Iv{#1 ## -d~/WWW/temp/ -m644 } + +\make{ht} +->>> + +\<ms scripts\><<<- +\Ii{,html} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env} +\Iv{#1 -ewin32/tex4ht.env } + +\make{ht} +->>> + +The first line is for `ht ... ...' scripts. + +\<perl options\><<<- + "", "ht", "", "", "", "-cvalidatehtml", + "ht", "htlatex", "latex", "", "", "-cvalidatehtml", + "ht", "httex", "tex", "", "", "-cvalidatehtml", + "ht", "httexi", "texi", "", "", "-cvalidatehtml", + "ht", "htcontext", "context", "", "", "-cvalidatehtml", + "ht", "htxetex", "xetex", "", "", "-cvalidatehtml", + "ht", "htxelatex", "xelatex", "", "", "-cvalidatehtml", +->>> + + +\<unix scripts\><<<- +\<ht.unix\><<< +|<unix line|>|<windows line|>$1 $2 + $1 $2 + $1 $2 + tex4ht $2 + t4ht $2 $3 +>>> +\OutputCodE\<ht.unix\> \script{ht}{unix} % +->>> + + +\<ms scripts\><<<- +\<ht.bat\><<< +|<windows line|> + %1 %2 + %1 %2 + %1 %2 + tex4ht %2 + t4ht %2 %3 +>>> +\OutputCodE\<ht.bat\> \script{ht}{bat} % +->>> + + +%%%%%%%%%%%%% +\subsection{XHTML: xh} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1} +\Iv{#1 -cvalidate ## -d~/WWW/temp/ -m644 } +\make{xh} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env} +\Iv{#1 -ewin32/tex4ht.env -cvalidate } +\make{xh} +->>> + + + +\<perl options\><<<- + "xh", "xhlatex", "latex", "xhtml", "", "-cvalidate", + "xh", "xhtex", "tex", "xhtml", "", "-cvalidate", + "xh", "xhtexi", "texi", "xhtml", "", "-cvalidate", + "xh", "xhcontext","context", "xhtml", "", "-cvalidat", + "xh", "xhxelatex", "xelatex", "xhtml", "", "-cvalidate", + "xh", "xhxetex", "xetex", "xhtml", "", "-cvalidate", +->>> + + + +%%%%%%%%%%%%% +\subsection{Unicode XHTML: uxh} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,uni-html4} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf} +\Iv{#1 -cvalidate ## -d~/WWW/temp/ -m644 } +\make{uxh} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,uni-html4} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env + -cunihtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate } +\make{uxh} +->>> + +\<perl options\><<<- + "uxh", "uxhlatex", "latex", "xhtml,uni-html4", " -cunihtf", "-cvalidate", + "uxh", "uxhtex", "tex", "xhtml,uni-html4", " -cunihtf", "-cvalidate", + "uxh", "uxhtexi", "texi", "xhtml,uni-html4", " -cunihtf", "-cvalidate", + "uxh", "uxhcontext","context", "xhtml,uni-html4", " -cunihtf", "-cvalidate", + "uxh", "uxhxelatex", "xelatex", "xhtml,uni-html4", " -cunihtf", "-cvalidate", + "uxh", "uxhxetex", "xetex", "xhtml,uni-html4", " -cunihtf", "-cvalidate", +->>> + +%%%%%%%%%%%%% +\subsection{XHTML+MathML: xhm} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,mathml} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf} +\Iv{#1 -cvalidate ## -d~/WWW/temp/ -m644 } +\make{xhm} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,mathml} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cunihtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate } +\make{xhm} +->>> + + +\<perl options\><<<- + "xhm", "xhmlatex", "latex", "xhtml,mathml", " -cunihtf", "-cvalidate", + "xhm", "xhmtex", "tex", "xhtml,mathml", " -cunihtf", "-cvalidate", + "xhm", "xhmtexi", "texi", "xhtml,mathml", " -cunihtf", "-cvalidate", + "xhm", "xhmcontext","context", "xhtml,mathml", " -cunihtf", "-cvalidate", + "xhm", "xhmxelatex", "xelatex", "xhtml,mathml", " -cunihtf", "-cvalidate", + "xhm", "xhmxetex", "xetex", "xhtml,mathml", " -cunihtf", "-cvalidate", +->>> + + +%%%%%%%%%%%%% +\subsection{Mozilla XHTML+MathML: mz} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,mozilla} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf} +\Iv{#1 -cvalidate ## -d~/WWW/temp/ -m644 } +\make{mz} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,mozilla} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cmozhtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate } +\make{mz} +->>> + + +\<perl options\><<<- + "mz", "mzlatex", "latex", "xhtml,mozilla", " -cmozhtf", "-cvalidate", + "mz", "mztex", "tex", "xhtml,mozilla", " -cmozhtf", "-cvalidate", + "mz", "mztexi", "texi", "xhtml,mozilla", " -cmozhtf", "-cvalidate", + "mz", "mzcontext", "context", "xhtml,mozilla", " -cmozhtf", "-cvalidate", + "mz", "mzxelatex", "xelatex", "xhtml,mozilla", " -cmozhtf", "-cvalidate", + "mz", "mzxetex", "xetex", "xhtml,mozilla", " -cmozhtf", "-cvalidate", +->>> + + +%%%%%%%%%%%%% +\subsection{OpenOffice: oo} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,ooffice} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf} +\Iv{#1 -cooxtpipes -coo } +\make{oo} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,ooffice} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cmozhtf} +\Iv{#1 -cooxtpipes -coo -ewin32/tex4ht.env -cvalidate } +\make{oo} +->>> + + +\<perl options\><<<- + "oo", "oolatex", "latex", "xhtml,ooffice", "ooffice/\! -cmozhtf", "-cooxtpipes -coo", + "oo", "ootex", "tex", "xhtml,ooffice", "ooffice/\! -cmozhtf", "-cooxtpipes -coo", + "oo", "ootexi", "texi", "xhtml,ooffice", "ooffice/\! -cmozhtf", "-cooxtpipes -coo", + "oo", "oocontext", "context", "xhtml,ooffice", "ooffice/\! -cmozhtf", "-cooxtpipes -coo", + "oo", "ooxelatex", "xelatex", "xhtml,ooffice", "ooffice/\! -cmozhtf", "-cooxtpipes -coo", + "oo", "ooxetex", "xetex", "xhtml,ooffice", "ooffice/\! -cmozhtf", "-cooxtpipes -coo", +->>> + + + + + +%%%%%%%%%%%%% +\subsection{EmacSpeak: es} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,emspk} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cemspkhtf -s4es} +\Iv{#1 -cemspk ## -d~/WWW/temp/ -m644 } +\make{es} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,emspk} +\Iii{-itex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cemspkhtf -s4es} +\Iv{#1 -ewin32/tex4ht.env -cemspk } +\make{es} +->>> + + +\<perl options\><<<- + "es", "eslatex", "latex", "xhtml,emspk", " -cemspkhtf -s4es", "-cemspk", + "es", "estex", "tex", "xhtml,emspk", " -cemspkhtf -s4es", "-cemspk", + "es", "estexi", "texi", "xhtml,emspk", " -cemspkhtf -s4es", "-cemspk", + "es", "escontext", "context", "xhtml,emspk", " -cemspkhtf -s4es", "-cemspk", + "es", "esxelatex", "xelatex", "xhtml,emspk", " -cemspkhtf -s4es", "-cemspk", + "es", "esxetex", "xetex", "xhtml,emspk", " -cemspkhtf -s4es", "-cemspk", +->>> + + + + + +%%%%%%%%%%%%% +\subsection{JSML: js} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,jsml} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cjsmlhtf } +\Iv{#1 -cjsml ## -d~/WWW/temp/ -m644 } +\make{js} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,jsml} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cjsmlhtf } +\Iv{#1 -ewin32/tex4ht.env -cjsml } +\make{js} +->>> + + +\<perl options\><<<- + "js", "jslatex", "latex", "xhtml,jsml", " -cjsmlhtf", "-cjsml", + "js", "jstex", "tex", "xhtml,jsml", " -cjsmlhtf", "-cjsml", + "js", "jstexi", "texi", "xhtml,jsml", " -cjsmlhtf", "-cjsml", + "js", "jscontext", "context", "xhtml,jsml", " -cjsmlhtf", "-cjsml", + "js", "jsxelatex", "xelatex", "xhtml,jsml", " -cjsmlhtf", "-cjsml", + "js", "jsxetex", "xetex", "xhtml,jsml", " -cjsmlhtf", "-cjsml", +->>> + + + + + +%%%%%%%%%%%%% +\subsection{jsMath: jm} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,jsmath} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf } +\Iv{#1 ## -d~/WWW/temp/ -m644 } +\make{jm} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,jsmath} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cmozhtf } +\Iv{#1 -ewin32/tex4ht.env } +\make{jm} +->>> + + +\<perl options\><<<- + "jm", "jmlatex", "latex", "xhtml,jsmath", " -cmozhtf", "", + "jm", "jmtex", "tex", "xhtml,jsmath", " -cmozhtf", "", + "jm", "jmtexi", "texi", "xhtml,jsmath", " -cmozhtf", "", + "jm", "jmcontext", "context", "xhtml,jsmath", " -cmozhtf", "", + "jm", "jmxelatex", "xelatex", "xhtml,jsmath", " -cmozhtf", "", + "jm", "jmxetex", "xetex", "xhtml,jsmath", " -cmozhtf", "", +->>> + + + + + + + + +%%%%%%%%%%%%% +\subsection{TEI: tei, teim} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,tei} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf} +\Iv{#1 -cvalidate ## -d~/WWW/temp/ -m644 } +\make{tei} + +\Ii{,xhtml,tei-mml} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf} +\Iv{#1 -cvalidate ## -d~/WWW/temp/ -m644 } +\make{teim} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,tei} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cunihtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate } +\make{tei} + +\Ii{,xhtml,tei-mml} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cunihtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate } +\make{teim} +->>> + + +\<perl options\><<<- + "tei", "teilatex", "latex", "xhtml,tei", " -cunihtf", "-cvalidate", + "tei", "teitex", "tex", "xhtml,tei", " -cunihtf", "-cvalidate", + "tei", "teitexi", "texi", "xhtml,tei", " -cunihtf", "-cvalidate", + "tei", "teicontext","context", "xhtml,tei", " -cunihtf", "-cvalidate", + "teim", "teimlatex", "latex", "xhtml,tei-mml"," -cunihtf", "-cvalidate", + "teim", "teimtex", "tex", "xhtml,tei-mml"," -cunihtf", "-cvalidate", + "teim", "teimtexi", "texi", "xhtml,tei-mml"," -cunihtf", "-cvalidate", + "teim", "teimcontext","context","xhtml,tei-mml"," -cunihtf", "-cvalidate", + "tei", "teixelatex", "xelatex", "xhtml,tei", " -cunihtf", "-cvalidate", + "tei", "teixetex", "xetex", "xhtml,tei", " -cunihtf", "-cvalidate", +->>> + + +%%%%%%%%%%%%% +\subsection{DocBook: db, dbm} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,xhtml,docbook} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf} +\Iv{#1 -cvalidate -cdocbk ## -d~/WWW/temp/ -m644 } +\make{db} + +\Ii{,xhtml,docbook-mml} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf} +\Iv{#1 -cdocbk ## -d~/WWW/temp/ -m644 } +\make{dbm} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,docbook} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cunihtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate -cdocbk } +\make{db} + +\Ii{,xhtml,docbook-mml} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -cunihtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate -cdocbk } +\make{dbm} +->>> + + + +\<perl options\><<<- + "db", "dblatex", "latex", "xhtml,docbook", " -cunihtf", "-cvalidate -cdocbk", + "db", "dbtex", "tex", "xhtml,docbook", " -cunihtf", "-cvalidate -cdocbk", + "db", "dbtexi", "texi", "xhtml,docbook", " -cunihtf", "-cvalidate -cdocbk", + "db", "dbcontext", "context", "xhtml,docbook", " -cunihtf", "-cvalidate -cdocbk", + "dbm", "dbmlatex", "latex", "xhtml,docbook-mml", " -cunihtf", "-cdocbk", + "dbm", "dbmtex", "tex", "xhtml,docbook-mml", " -cunihtf", "-cdocbk", + "dbm", "dbmtexi", "texi", "xhtml,docbook-mml", " -cunihtf", "-cdocbk", + "dbm", "dbmcontext","context", "xhtml,docbook-mml", " -cunihtf", "-cdocbk", + "db", "dbxelatex", "xelatex", "xhtml,docbook", " -cunihtf", "-cvalidate -cdocbk", + "db", "dbxetex", "xetex", "xhtml,docbook", " -cunihtf", "-cvalidate -cdocbk", +->>> + + + +%%%%%%%%%%%%% +\subsection{MS Word HTML: w} +%%%%%%%%%%%%% + + +\<unix scripts\><<<- +\Ii{,xhtml,word} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -csymhtf} +\Iv{#1 -cvalidate ## -d~/WWW/temp/ -m644 } +\make{w} +->>> + +\<ms scripts\><<<- +\Ii{,xhtml,word} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env -csymhtf} +\Iv{#1 -ewin32/tex4ht.env -cvalidate } +\make{w} +->>> + + + + +\<perl options\><<<- + "w", "wlatex", "latex", "xhtml,word", " -csymhtf", "", + "w", "wtex", "tex", "xhtml,word", " -csymhtf", "", + "w", "wtexi", "texi", "xhtml,word", " -csymhtf", "", + "w", "wcontext", "context", "xhtml,word", " -csymhtf", "", + "w", "wxelatex", "xelatex", "xhtml,word", " -csymhtf", "", + "w", "wxetex", "xetex", "xhtml,word", " -csymhtf", "", +->>> + + + + +%%%%%%%%%%%%% +\subsection{JavaHelp: jh} +%%%%%%%%%%%%% + +\<unix scripts\><<<- +\Ii{,html,javahelp,xml,3.2,unicode} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf -u10} +\Iv{#1 -d$1-doc/ -cjavahelp -cvalidatehtml -m644} +\make{jh} +->>> + +\<ms scripts\><<<- +\Ii{,html,javahelp,xml,3.2,unicode} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env + -cmozhtf -u10} +\Iv{#1 -ewin32/tex4ht.env -d%1-doc\ -cjavahelp } +\make{jh} +->>> + + +\<perl options\><<<- + "jh", "jhlatex", "latex", "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml", + "jh", "jhtex", "tex", "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml", + "jh", "jhtexi", "texi", "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml", + "jh", "jhcontext","context", "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml", + "jh", "jhxelatex", "xelatex", "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml", + "jh", "jhxetex", "xetex", "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml", +->>> + + +\<unix scripts\><<<- +\Ii{,html,javahelp,xml,3.2,unicode,jh1.0} +\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf -u10} +\Iv{#1 -d$texFile-doc/ -cjavahelp1 -m644 } +\make{jh1} +->>> + +\<ms scripts\><<<- +\Ii{,html,javahelp,xml,3.2,unicode,jh1.0} +\Iii{-i/tex4ht/ht-fonts/#1 + -ewin32/tex4ht.env + -cmozhtf -u10} +\Iv{#1 -ewin32/tex4ht.env -d%1-doc\ -cjavahelp1 } +\make{jh1} +->>> + + +\<perl options\><<<- + "jh1", "jh1latex", "latex", "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp", + "jh1", "jh1tex", "tex", "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp", + "jh1", "jh1texi", "texi", "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp", + "jh1", "jh1context","context", "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp", + "jh1", "jh1xelatex", "xelatex", "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp", + "jh1", "jh1xetex", "xetex", "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp", +->>> + + + +The xml declaration at +\url{http://java.sun.com/products/javahelp/toc_1_0.dtd} +doesn't start at row/col=1 make it impossible to validate +against that file. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{mkht.4ht} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mkht\><<<- +% mkht.4ht (?version), generated from ?jobname.tex +% Copyright 2009-2020 TeX Users Group +% Copyright ?CopyYear.1997. Eitan M. Gurari +?<TeX4ht copyright?> +\immediate\write-1{version ?version} + +\def\exit{\documentclass{article}\begin{document}\end{document}\endinput} +\bgroup + \def\missing#1{\aftergroup\exit + \immediate\write16{---------------------------- error + ---------------------------- + ^^JRequires #1ProTex.sty from + https://tug.org/tex4ht^^J% + ---------------------------------------------------------------}} + \openin15=ProTex.sty \ifeof15 \missing{}\else \closein15 \fi + \openin15=AlProTex.sty \ifeof15 \missing{Al}\else \closein15 \fi +\egroup + +\let\ScriptFileName\relax +\let\AddExtn\relax + +\documentclass{article} + +\ifx \HCode\UnDef + \input tex4ht.sty + \Preamble{xhtml} + \input ProTex.sty + \AlProTex{foo,<<<>>>,|,title,list} + \begin{document} + \EndPreamble +\else + \Configure{ProTex}{foo,<<<>>>,|,title,list,[[]]} + \begin{document} +\fi + +\catcode`\:=11 +\def\OutputCodE\<#1.#2\>{{\xdef\ScriptFileName{#1} + \:DoName\def{#1}{\<#1.#2\>} + \OutputCode[#2]\<#1\>}} +\def\winextn{bat} +\def\AddExtn{\ifx\ext\winextn .bat\fi} + +\tableofcontents + +?<def script?> + +%%%%%%%%%%%%%%%%%%%%%% +\section{Script Components} +%%%%%%%%%%%%%%%%%%%%%% + +\def\setcats{\catcode`\\=12 \catcode`\%=12 \catcode`\~=12 + \catcode`\_=12 +} + +\def\Remark{\bgroup \catcode`\#=12 \setcats \Rema} \def\Rema#1{\egroup\def\Rem{#1}} +\def\Ii{\def\II} +\def\Iii{\bgroup \setcats \Iiicont} \def\Iiicont#1{\egroup\def\III.##1.{#1}} +\def\Iv{\bgroup \setcats \Ivcont} \def\Ivcont#1{\egroup\def\IV.##1.{#1}} +\def\Quote{\bgroup \setcats \Qcont} \def\Qcont#1{\egroup\def\quote{#1}} +\def\Argchar{\bgroup \setcats \Acont}\def\Acont#1{\egroup\def\argchar{#1}} +\def\Dirchar{\bgroup \setcats \Dicont}\def\Dicont#1{\egroup\def\dirchar{#1}} +\def\Rubycall{\bgroup \setcats \Dcont}\def\Dcont#1{\egroup\def\rubyCall{#1}} +\def\Echooff{\bgroup \setcats \Dcont}\def\Dcont#1{\egroup\def\echoOff{#1}} +\def\Ext{\bgroup \setcats \Econt} \def\Econt#1{\egroup\def\ext{#1}% + ?<unix shebang line?>} +\def\Base{\bgroup \setcats \Bcont} \def\Bcont#1{\egroup\def\base{#1}} +\def\Script{\def\script##1##2} % #1 -- file #2 -- extension +\def\Options#1{\ifx \OPTIONS\UnDef \def\OPTIONS{#1}\fi} +\def\Latex#1{\ifx \latex\UnDef \def\latex{#1}\fi} + +\let\Rem=\relax +\let\II=\relax +\let\III=\relax +\let\IV=\relax +\let\quote=\relax +\let\argchar=\relax +\let\dirchar=\relax +\let\rubyCall=\relax +\let\echoOff=\relax +\let\ext=\relax +\ifx \script\UnDef \let\script=\relax \fi +\let\base=\relax +\let\firstln=\relax + +\<Rem\><<< +|Rem>>> + +\<II\><<< +|II>>> + +\<III\><<< +|III.|<@|>3.>>> + +\<IV\><<< +|IV.|<@|>4.>>> + +\<'\><<< +|quote>>> + +\<@\><<< +|argchar>>> + +\<dir ch\><<< +|dirchar>>> + +\<base\><<< +|base>>> + +\<ruby call\><<< +|rubyCall>>> + +\<echo off\><<< +|echoOff>>> + +\<unix line\><<< +|firstln#!/bin/sh +# stop at first error +set -e + +# No interaction on the TeX runs is desirable. +# Simpler to do that here than on the individual commands; +# let's hope exec redirections are portable enough. +exec </dev/null +endfirstln +>>> + +Despite the name, this macro is not for Windows. It is unconditionally +included in all the scripts. It should only be the copyright notice, +which somehow gets transformed for Unix. Thus we go to lots of trouble +to insert the at-echo off only for Windows. + +\<windows line\><<< +|<echo off|> +?<MYcopyrightnotice?> +>>> + + +\def\IfExt#1,#2//{\def\next{#1}% + \ifx \next\ext \def\next{\csname iftrue\endcsname}% + \else \ifx \next\empty \def\next{\csname iffalse\endcsname}% + \else \def\next{\IfExt#2,,//}\fi\fi \next} + +\begingroup +\catcode`\:=11 \catcode`\^=7 \catcode`\^^M=13% +% +\gdef\make#1{% + \expandafter\IfExt\OPTIONS,,//% + % + \subsection{#1}% + \def\temp##1{\par{\tt\string##1: \meaning##1}}% + \temp\quote + \temp\argchar + \temp\dirchar + \temp\rubyCall + \temp\echoOff + \temp\ext + \temp\script + \temp\base + \temp\firstln + \temp\latex + \temp\Rem + \temp\II + \temp\III + \temp\IV + \def\pref{#1} % + \<\pref latex\latex.\ext\><<< + \<htlatex \latex...\> + >>> % + ?<add script?>% + \fi +} % +\endgroup + +\ifx \JOBNAME\UnDefined + ?<user's made scripts?> + \expandafter\endinput +\fi + +\input \JOBNAME + +\end{document} +\endinput +->>> + +\<user's made scripts\><<<- +\def\one{\Ii} +\def\two{\Iii} +\def\three{\Iv} +\Latex{} % {}, {2e}, {209} +\def\temp{unix}\ifx\script\temp + \Options{unix} % {unix,bat}, {unix}, {bat} + ?<unix setup?> +\else + \def\temp{bat}\ifx\script\temp + \Options{bat} + ?<ms setup?> + \else + \bgroup + \def\1{\space\space\space} + \def\2{\space\space\space\space\space\space} + \catcode`\%=12 + \catcode`\#=12 + \catcode`\~=12 + \catcode`\@=0 + \catcode`\\=12 + @immediate@write16{|-------------------------------------------------------------} + @immediate@write16{|@2@1 A sample of a scripts generator file } + @immediate@write16{|} + @immediate@write16{|@1 Creates a foolatex script for commands} + @immediate@write16{|} + @immediate@write16{|@2 foolatex file} + @immediate@write16{|} + @immediate@write16{|@1 similar to htlatex for commands} + @immediate@write16{|} + @immediate@write16{|@2 htlatex file "html,...1..." " ...2..." "...3..."} + @immediate@write16{|} + @immediate@write16{|@1 with the arguments ...1..., ...2..., and ...3... } + @immediate@write16{|@1 embedded in the new script. General usage} + @immediate@write16{|} + @immediate@write16{|@2 foolatex file "..." "..." "..."} + @immediate@write16{|} + @immediate@write16{|----------------- sample.tex --------------------------------} + @immediate@write16{|% latex sample} + @immediate@write16{|} + @immediate@write16{| \def\script{bat} } + @immediate@write16{| % \def\script{unix} } + @immediate@write16{|} + @immediate@write16{| \input ./mkht.4ht } + @immediate@write16{|} + @immediate@write16{| \one{,html,...1...}} + @immediate@write16{| \two{-i/tex4ht/ht-fonts/#1 ...2...} % bat } + @immediate@write16{| % \two{-i~/tex4ht/texmf/tex4ht/ht-fonts/#1 ...2...} % unix } + @immediate@write16{| \three{#1 ...3...}} + @immediate@write16{| \make{foo}} + @immediate@write16{|} + @immediate@write16{| \end{document} } + @immediate@write16{-------------------------------------------------------------} + @egroup + \def\next{\csname fi\endcsname + \csname fi\endcsname + \csname fi\endcsname\end{document}} +\fi \fi +->>> + +The script should have an explicit shebang (\#!/bin/sh) line for the +systems where csh-like shells are the foundation. If there is no +shebang line, the defaul shell (which can be anything) is used. + + +\<unix shebang line\><<<- + \def\firstln{unix}\ifx \firstln\ext + \def\firstln##1endfirstln{##1}% + \else \def\firstln##1endfirstln{}\fi +->>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{mkht-scripts.4ht} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mkht-scripts\><<<- +% mkht-scripts.4ht (?version), generated from ?jobname.tex +% Copyright 2009-2020 TeX Users Group +% Copyright ?CopyYear.2000. Eitan M. Gurari +?<TeX4ht copyright?> + +\ifx \JOBNAME\UnDef + \def\JOBNAME{mkht-scripts.4ht} + \def\next{\input ./mkht.4ht \endinput} + \expandafter\next +\fi + +\Options{unix,bat} % {unix,bat}, {unix}, {bat} +\Latex{} % {}, {2e}, {209} + +%%%%%%%%%%%%%%%%%% +\section{Unix Scripts} +%%%%%%%%%%%%%%%%%% +?<unix setup?> +\ifOption{Needs}{% +\Script{% #1 -- file #2 -- extension + \Needs{"sed -e 's/\#\# -d/ -d/g' < #1.#2 > /opt/cvr/gurari/tex4ht.dir/bin/solaris/#1"}% + \Needs{"chmod 700 /opt/cvr/gurari/tex4ht.dir/bin/solaris/#1"}% + \Needs{"mkdir -p mn.dir/ht-unix"}% + \Needs{"cp #1.#2 mn.dir/ht-unix/#1"}% +}}{} +\Script{% #1 -- file #2 -- extension + \Needs{"mkdir -p /opt/cvr/gurari/tex4ht.dir/bin/ht"}% + \Needs{"mkdir -p /opt/cvr/gurari/tex4ht.dir/bin/ht/unix"}% + \Needs{"mv #1.#2 /opt/cvr/gurari/tex4ht.dir/bin/ht/unix/#1"}% + \Needs{"chmod 744 /opt/cvr/gurari/tex4ht.dir/bin/ht/unix/#1"}% +} + +?<unix scripts?> + +%%%%%%%%%%%%%%%%%% +\section{MS Window Scripts} +%%%%%%%%%%%%%%%%%% +?<ms setup?> +\ifOption{Needs}{\Script{% + \Needs{"mkdir -p mn.dir/ht-win32"}% + \Needs{"cp #1.#2 mn.dir/ht-win32/."}% +}}{} +\Script{% #1 -- file #2 -- extension + \Needs{"mkdir -p /opt/cvr/gurari/tex4ht.dir/bin/ht/win32"}% + \Needs{"mv #1.#2 /opt/cvr/gurari/tex4ht.dir/bin/ht/win32/#1.#2"}% + \Needs{"chmod 744 /opt/cvr/gurari/tex4ht.dir/bin/ht/win32/#1.#2"}% +} + +?<ms scripts?> +?<mkht note?> + +\end{document} +->>> + +\<unix setup\><<<- +%%%%%%%%%% +\Ext{unix} +%%%%%%%%%% +\Base{} +\Quote{'} +\Argchar{$} +\Dirchar{-f/} +\Rubycall{} +\Echooff{} +\Remark{#} +->>> + +\<ms setup\><<<- +%%%%%%%%%%%%%%%%%% +\Options{bat} +%%%%%%%%%%%%%%%%%% +%%%%%%%%% +\Ext{bat} +%%%%%%%%% +\Base{} +\Quote{} +\Argchar{%} +\Dirchar{} +\Rubycall{call } +\Echooff{@echo off} +\Remark{Rem } +->>> + + + +The htlatex-oriented scripts have the following outline. + +\begin{verbatim} + latex $5 $1 + latex $5 $1 + latex $5 $1 + tex4ht -f/$1 -i~/tex4ht.dir/texmf/tex4ht/ht-fonts/$3 + t4ht -f/$1 $4 +\end{verbatim} + +The latex command may be introduced with a filename residing out of +the work directory. However, it produces the dvi code in the work +directory. Consequently, when activated by htlatex-oriented scripts, +the tex4ht.c and t4ht.c utilities need to look for the dvi code in the +work directory. The -f prefix asks these utilities to ignore the +paths possibly appearing in \verb!$1!. A path is recognized by +determining whether the character immediately after \verb'-f' is a +directory indicator character `\verb+\+' or `\verb+/+'. + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Perl Script} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Core} +%%%%%%%%%%%%% + + + +\<mk4ht.perl\><<<- +#!/usr/bin/env perl +?<perl copyright notice?> +use strict; +$^W=1; # turn warning on +my $texFile = ''; +if( @ARGV ){ + my(@array) = split('\.',@ARGV[1]); + $texFile = @array[0]; +} +?<available options?> +?<help info?> +print "mk4ht (?version)\n"; +if( !@ARGV ){ + print "improper command\n"; + showInstrucions(); exit(1); +} +my @command=("","","","",""); +my $i=0; +my $j=0; +my $param; +?<mk4ht.cfg vars?> +foreach $param (@ARGV) { + if( $i == 0 ){ + ?<load mk4ht.cfg?> + for( $j=1; $j<$#options; $j+=6 ){ + if( $param eq $options[$j] ){ + if( $name ){ + ?<use cfg command?> + } else { + ?<use cfg+built in command?> + } + ?<insert cfg extras?> + last; + } } + if( $j>$#options ){ + if( $name ){ ?<use cfg command?> } + else { + print "improper command: $param \n"; + showInstrucions(); exit(1); + } } + } elsif ( $i== 1 ) { + $command[1] = $param; + } elsif ( $i== 2 ) { + if( $command[2] eq "" ){ + $command[2] = $param; + } else { + $command[2] = $param. "," . $command[2]; + } + } elsif ( $i== 3 ) { + $command[3] = $param . $command[3]; + } else { + $command[4] = $param. " " .$command[4]; + } + $i++; +} +my $cmd; +?<cmd = search command with kpsewhich?> +my $commando = $cmd . " " . $command[1] . " \"". + $command[2] . "\" \"". $command[3] . "\" \"" . + $command[4] . "\""; +print "$commando\n"; +my $rtrn; +if( $rtrn = system($commando) ){ + print "--- error --- failed to execute command\n"; +} else { + ?<clean files?> +} +exit( $rtrn ); +->>> + + +\<ensure initialized command[*]MOPE\><<<- +if( !$command[1] ){ $command[1] = ""; } +if( !$command[2] ){ $command[2] = ""; } +if( !$command[3] ){ $command[3] = ""; } +if( !$command[4] ){ $command[4] = ""; } +->>> + + + +\<cmd = search command with kpsewhich\><<<- +open (KPSEA, "kpsewhich " . $command[0] . " |"); +if ($cmd = <KPSEA>){ + $cmd =~ s/\s+$//; +} else { + $cmd = $command[0]; +} +close KPSEA; +->>> + + +\<available options\><<<- +my @options = ( +?<perl options?> +); +->>> + + +Safety guards: + +\begin{itemize} +\item The `use strict' should be employed when not + dynamically exporting variables. +\item Put `my' on local declarations. +\item The `W' (?) + +\end{itemize} + + +%%%%%%%%%%%%% +\subsection{Load Command} +%%%%%%%%%%%%% + + +\<use cfg command\><<<- +$command[0] = "ht".$compiler; +if( $tex ){ $command[2] = $tex; } else { $command[2] = ""; } +if( $tex4ht ){ $command[3] = $tex4ht; } else { $command[3] = ""; } +if( $t4ht ){ $command[4] = $t4ht; } else { $command[4] = ""; } +->>> + + +\<use cfg+built in command\><<<- +if( $options[$j-1] eq "" ){ + $command[0] = $options[$j]; +} else { + $command[0] = "ht".$options[$j+1]; +} +if( $tex ){ $command[2] = $tex; } else { $command[2] = $options[$j+2]; } +if( $tex4ht ){ $command[3] = $tex4ht; } else { $command[3] = $options[$j+3]; } +if( $t4ht ){ $command[4] = $t4ht; } else { $command[4] = $options[$j+4]; } +->>> + + + +\<insert cfg extras\><<<- +if( $texp ){ $command[2] = $command[2] . "," . $texp; } +if( $tex4htp){ $command[3] = $command[3] . " " . $tex4htp; } +if( $t4htp ){ $command[4] = $command[4] . " " . $t4htp; } +->>> + + +%%%%%%%%%%%%% +\subsection{Commands from Configuration File} +%%%%%%%%%%%%% + + +A configuration file may contain records of the following kinds. + +\begin{description} +\item[\#] Comment +\item[name = type] Defines a ht*tex like command, and assocites to it +the TeX compiler of the specified type. Examples of TeX types: latex, tex, +texi, and context. +\item[name.tex = options] Command line options for the compilation under + the (la)tex compiler +\item[name.tex4ht = options] Command line options for tex4ht.c +\item[name.t4ht = options] Command line options for t4ht.c +\end{description} + + +Each record should appear in a different line. +The variants `name.tex += options', `name.tex4ht += options', +`name.t4ht += options' ask to add the listed options to the base +values. + + + + + +Example: + + +\begin{verbatim} +foohlatex = latex +foohlatex.tex = xhtml,uni-html4 +foohlatex.tex4ht += -cunihtf +foohlatex.t4ht = -cvalidate +htlatex.t4ht += -d./ +\end{verbatim} + + + + +\<load mk4ht.cfg\><<<- +?<inf = cfg handler?> +if( $inf ){ + print "(mk4ht cfg)\n"; + while(<$inf>) { + my($line) = $_; + chomp($line); # remove eoln char + if ($line =~ m|\s*#.*|) {} + elsif($line =~ m|^\s*(\S*)\.(\S*)\s*\+=\s*(.*\S)\s*$|) { + if( ($param."tex4ht") eq ($1.$2) ){ + $tex4htp = $tex4htp . " " . $3; + } + elsif( ($param."t4ht") eq ($1.$2) ){ + $t4htp = $t4htp . " " . $3; + } + elsif( ($param."tex") eq ($1.$2) ){ + $texp = $texp . "," . $3; + } + } + elsif($line =~ m|^\s*(\S*)\.(\S*)\s*=\s*(.*\S)\s*$|) { + if( ($param."tex4ht") eq ($1.$2) ){ + $tex4ht = $3 . " "; + $tex4htp = ""; + } + elsif( ($param."t4ht") eq ($1.$2) ){ + $t4ht = $3 . " "; + $t4htp = ""; + } + elsif( ($param."tex") eq ($1.$2) ){ + $tex = $3 . ","; + $texp = ""; + } + } + elsif($line =~ m|^\s*(\S*)\s*=\s*(.*\S)\s*$|) { + if( $param eq $1 ){ + $name = $1; + $compiler = $2; + } + } + ?<elsif get ext?> + elsif ($line) { print "--- Error --- " . $line . "\n"; } + } + close $inf; +} +->>> + + +\<inf = cfg handler\><<<- +my $inf; +open $inf, "<mk4ht.cfg" +or +( open $inf, "<.mk4ht" + or + ( + open $inf, "<" . $ENV{HOME} . "/mk4ht.cfg" + or + ( + open $inf, "<" . $ENV{HOME} . "/.mk4ht" + or $inf = "" +) ) ) +; +->>> + +\<mk4ht.cfg vars\><<<- +my $name; +my $compiler; +my $tex; +my $tex4ht; +my $t4ht; +my $texp; +my $tex4htp = ""; +my $t4htp = ""; +->>> + + + + +%%%%%%%%%%%%% +\subsection{Cleaning Temporary files} +%%%%%%%%%%%%% + +Requested in the mk4ht.cfg file through records of the following form + +\begin{description} +\item[clean ext1 ext2 ...] +The extension names of the files to be removed. + +\item[clean.name ext1 ext2 ...] + +The `name' refers to the ht*tex like command in use. + +\end{description} + + + + + + +Example: + + +\begin{verbatim} +clean dvi idv +clean.foohlatex lg +clean.htlatex lg tmp +\end{verbatim} + + + +\<mk4ht.cfg vars\><<<- +my @ext; +->>> + +\<clean files\><<<- +my $file; +my $ext; +opendir(DIR,".") ; +while ($file = readdir(DIR) ){ + if(index($file,$texFile) == 0 ){ + foreach $ext(@ext){ + if (index($file,$ext,length($file)-length($ext)) != -1){ + if( stat($file)){ + unlink($file); + print "Deleted: ". $file . "\n"; +} } } } } +closedir(DIR); +->>> + + + + +\<elsif get ext\><<<- +elsif($line =~ m|^\s*clean\s+(.+)|){ + my(@array) = split(' ',$1); + push(@ext,@array); +} elsif($line =~ m|^\s*clean\.(\S+)\s+(.+)|){ + if( $1 eq @ARGV[0] ){ + my(@array) = split(' ',$2); + push(@ext,@array); +} } +->>> + + + + +%%%%%%%%%%%%% +\subsection{Info} +%%%%%%%%%%%%% + + + + +\<help info\><<<- +sub showInstrucions(){ + print " option1: mk4ht #1 \"#2\" \"#3\" \"#4\" \"#5\"\n"; + print " \n"; + print " #1: htlatex, xhlatex, mzlatex, oolatex, dblatex, dbmlatex,\n"; + print " jhlatex, eslatex, teilatex, teimlatex, uxhlatex, \n"; + print " wlatex, xhmlatex\n"; + print " \n"; + print " also 'tex', 'texi', 'context', 'xetex', and 'xelatex'\n"; + print " instead of 'latex'\n"; + print " \n"; + print " #2: file name\n"; + print " #3: optional arguments for latex/tex/... \n"; + print " #4: optional arguments for tex4ht.c\n"; + print " #5: optional arguments for t4ht.c\n"; + print " \n"; + print " option2: mk4ht ht #2 #3 \"#4\" \"#5\"\n"; + print " \n"; + print " #1: ht\n"; + print " #2: latex, tex\n"; + print " #3: file name\n"; + print " #4: optional arguments for tex4ht.c\n"; + print " #5: optional arguments for t4ht.c\n"; + print " \n"; + print " Within the program, in column three of the options\n"; + print " variable, the requests for the commands \"latex\",\n"; + print " \"tex\", etc. can be replaced with other equivalent\n"; + print " commands (e.g., \"tex -fmt=latex\").\n"; + + ?<help cfg info?> + + ?<clean info?> +} +->>> + + + + + + +\<help cfg info\><<<- +print "--------------------------------------------------------------------------\n"; +print " Private configuration file: mk4ht.cfg\n"; +print "--------------------------------------------------------------------------\n"; +print "\n"; +print "A private configuration file mk4ht.cfg or .mk4ht may be placed at the\n"; +print "work or home directory, to update existing commands and introduce new\n"; +print "ones. The configuration file may contain records of the following\n"; +print "kinds.\n"; +print "\n"; +print " # Comment\n"; +print " \n"; +print " name = type\n"; +print " Defines a ht*tex like command, and assocites to it the \n"; +print " TeX compiler of the specified type. Examples of TeX \n"; +print " types: latex, tex, texi, context, xetex, and xelatex.\n"; +print " \n"; +print " name.tex = options\n"; +print " Command line options for the compilation under\n"; +print " the (la)tex compiler\n"; +print " \n"; +print " name.tex4ht = options\n"; +print " Command line options for tex4ht.c \n"; +print " \n"; +print " name.t4ht = options\n"; +print " Command line options for t4ht.c\n"; +print " \n"; +print "Each record should appear in a different line. Variants\n"; +print "`name.tex += options', `name.tex4ht += options',\n"; +print "`name.t4ht += options' of the above records are also allowed.\n"; +print "They append the listed options to the base values.\n"; +print "\n"; +print "Example:\n"; +print "\n"; +print " foohlatex = latex\n"; +print " foohlatex.tex = xhtml,uni-html4\n"; +print " foohlatex.tex4ht += -cunihtf\n"; +print " foohlatex.t4ht = -cvalidate\n"; +print " htlatex.t4ht += -d./\n"; +->>> + + + + +\<clean info\><<<- +print "--------------------------------------------------------------------------\n"; +print " Deleting files\n"; +print "--------------------------------------------------------------------------\n"; +print "\n"; +print "The configuration file mk4ht.cfg may also contain requests for\n"; +print "removing files created in the work directory during the compilation.\n"; +print "The requests are to be made through records of the following forms.\n"; +print "\n"; +print " clean ext1 ext2 ...\n"; +print " The extensions of the file name to be removed.\n"; +print " \n"; +print " clean.name ext1 ext2 ...\n"; +print " Conditional request. The `name' refers to the ht*tex \n"; +print " like command in use.\n"; +print "\n"; +print "Example:\n"; +print " clean dvi idv\n"; +print " clean.foohlatex lg \n"; +print " clean.htlatex lg tmp\n"; +->>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Info} +%%%%%%%%%%%%%%%%%% + + + +\<mkht note\><<<- +\immediate\write16{--------------------------------------------------------} +\immediate\write16{* Compile mkht-scripts.4ht with latex to get the + full scripts.} +\immediate\write16{* For shorter latex2e scripts, compile a file whose + content is:} +\immediate\write16{\space\space\space\space\def\string\latex{2e} + \string\input\space mkht-scripts.4ht } +\immediate\write16{* For shorter latex209 scripts, compile a file whose + content is:} +\immediate\write16{\space\space\space\space\def\string\latex{209} + \string\input\space mkht-scripts.4ht } +\immediate\write16{* Remove the extension .unix from the file names } +\immediate\write16{--------------------------------------------------------} +->>> + +% The - at the end of the first line prevents us from using tex4ht-cpright.tex. +\<TeX4ht copyright\><<<- +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project <https://tug.org/tex4ht>. +% +% If you modify this program, changing the +% version identification would be appreciated. +% +\immediate\write-1{version \ifx \JOBNAME\UnDefined ?version\else |version\fi} +->>> + +\<perl copyright notice\><<<- +# mk4ht (?version), generated from ?jobname.tex +# Copyright 2009-2020 TeX Users Group +# Copyright ?CopyYear.2003. Eitan M. Gurari +# +# This work may be distributed and/or modified under the +# conditions of the LaTeX Project Public License, either +# version 1.3 of this license or (at your option) any +# later version. The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3 or later is part of all distributions +# of LaTeX version 2003/12/01 or later. +# +# This work has the LPPL maintenance status "maintained". +# +# The Current Maintainer of this work +# is the TeX4ht Project <https://tug.org/tex4ht>. +# +# If you modify this file, changing the +# version identification be appreciated. +->>> + +% used in the generated scripts. +\<MYcopyrightnotice\><<<- +|Rem |ScriptFileName|AddExtn (?version), generated from ?jobname.tex +|Rem Copyright 2009-2020 TeX Users Group +|Rem Copyright ?CopyYear.2003. Eitan M. Gurari +|Rem +|Rem This work may be distributed and/or modified under the +|Rem conditions of the LaTeX Project Public License, either +|Rem version 1.3 of this license or (at your option) any +|Rem later version. The latest version of this license is in +|Rem http://www.latex-project.org/lppl.txt +|Rem and version 1.3 or later is part of all distributions +|Rem of LaTeX version 2003/12/01 or later. +|Rem +|Rem This work has the LPPL maintenance status "maintained". +|Rem +|Rem The Current Maintainer of this work +|Rem is the TeX4ht Project <https://tug.org/tex4ht>. +|Rem +|Rem If you modify this file, changing the +|Rem version identification be appreciated. +->>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\OutputCode\<mkht\> +\OutputCode\<mkht-scripts\> + +\OutputCodE\<mk4ht.perl\> +%"mv mk4ht.perl mk4ht" + + + \Needs{"mkdir -p /opt/cvr/gurari/tex4ht.dir/bin/ht/perl"}% + \Needs{"cp mk4ht.perl /opt/cvr/gurari/tex4ht.dir/bin/ht/perl/mk4ht.perl"}% + \Needs{"chmod 744 /opt/cvr/gurari/tex4ht.dir/bin/ht/perl/mk4ht.perl"}% + + +\immediate\write16{--------------------------------------------------------} +\immediate\write16{Compile mkht-scripts.4ht with latex to get the + full scripts.} +\immediate\write16{Use the option `Needs' to automatically move the + files to private directories.} +\immediate\write16{--------------------------------------------------------} + +\end{document} +\endinput diff --git a/support/TeX4ht/source/tex4ht-moz.tex b/support/TeX4ht/source/tex4ht-moz.tex new file mode 100644 index 0000000000..1ea4e220f4 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-moz.tex @@ -0,0 +1,1071 @@ +% $Id: tex4ht-moz.tex 65 2010-11-17 19:16:45Z karl $ +% compile 3 times: latex tex4ht-moz +% or xhlatex tex4ht-moz "html,3,sections+" +% +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{mozilla} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mozilla\><<< +% mozilla.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2000. Eitan M. Gurari, Paul Gartside +% gartside@maths.ox.ac.uk +|<TeX4ht copywrite|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Start Here} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure mozilla Preamble\><<< +\:CheckOption{xht} \if:Option + \Configure{ext}{xht} +\else + \Configure{ext}{xml} +\fi +>>> + +It looks like frames on (just current?) browsers require +html extension fot file names. + +Mozilla complaints about version 1.1 :-( + + +%\Configure{VERSION} +% {\IgnorePar \HCode{<?xml version="1.0"?>\Hnewline}} + +\<configure mozilla tex4ht\><<< +\:CheckOption{frames} \if:Option + \Configure{frames-altDOCTYPE}{|<no frames DOCTYPE|>} +\else + |<no frames DOCTYPE|> +\fi +\:CheckOption{-css} \if:Option \else + \Configure{XML-STYLESHEET} + {\HCode{<?xml-stylesheet type="text/css" + href="\aa:CssFile"?>\Hnewline}} +\fi +>>> + + +\<no frames DOCTYPE\><<< +\:CheckOption{pmathml} \if:Option + |<pmathml dtd|> +\else + |<non pmathml dtd|> +\fi +>>> + + + +\<non pmathml dtd\><<< +\Configure{DOCTYPE} + {\IgnorePar + \HCode{<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//|<dtd lang|>"\Hnewline + "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd" + >\Hnewline +% "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" [\Hnewline +% <!ENTITY mathml "http://www.w3.org/1998/Math/MathML">\Hnewline +% ]>\Hnewline + }} +>>> + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +% \Configure{@HEAD}{\HCode{<meta \Hnewline +% http-equiv="Content-Type" content="text/html; +% \ifx \a:charset\:UnDef \A:charset +% \else \a:charset\fi " \xml:empty>}} + + + +\<xmlns\><<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + +\<configure mozilla tex4ht\><<< +\Configure{HTML} + {\IgnorePar\HCode{<html \a:@HTML\Hnewline + \:xhtml{|<xmlns|>}\Hnewline>}} + {\HCode{\Hnewline</html>\Hnewline}} +>>> + +% + + + + + +\<configure mozilla tex4ht\><<< +\Configure{DviMath} + {\mathmltrue + \ifOption{mml-fonts}{|<mml fonts|>}{\NoFonts}\IgnoreRule\HCode{<!--l. + \the\inputlineno-->}{\Tg<\a:mathml math\Hnewline + |<math xmlns|>\a:@math>}\a:math + |<sv dvimath par|>\IgnorePar} + {\Tg</\a:mathml math>\EndIgnoreRule + \ifOption{mml-fonts}{|<html fonts|>}{\EndNoFonts}% + |<recall dvimath par|>\mathmlfalse} +>>> + + + + +\<html fonts\><<< +\Configure{htf}{0}{+}{<span\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</span>}% +>>> + +\<mml fonts\><<< +\Configure{htf}{0}{+}{<mstyle\Hnewline + class="}{\%s}{-\%s}{x-x-\%d}{}{">}{</mstyle>}% +>>> + + + +\<recall dvimath par\><<< +\sv:ignore +>>> + + + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +\<math xmlns\><<< +\csname a:math-xmlns\endcsname +>>> + +The amphersand chracter must be embeded within group parentheses, to +hide it in tables from halign. + + +\<configure mozilla tex4htDEPRECATED\><<< +\Configure{$$} + {\Configure{@math}{mode="display"}\IgnorePar\EndP\DviMath} + {\EndDviMath\ShowPar\par{\HCondtrue\noindent}}{} +\Configure{$} + {\Configure{@math}{mode="inline"}\DviMath} + {\EndDviMath}{} +>>> + +\<configure mozilla latexDEPRECATED\><<< +\Configure{[]} + {\Configure{@math}{mode="display"}\csname a:mathml[]\endcsname + \DviMath\Tg<\a:mathml mrow\Hnewline>$$} + {$$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml[]\endcsname} +>>> + +\<configure mozilla latexDEPRECATED\><<< +\Configure{()} + {\Configure{@math}{mode="inline"}\csname a:mathml()\endcsname + \DviMath\Tg<\a:mathml mrow\Hnewline>$} + {$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml()\endcsname} +\Css{math[mode="display"] + {margin-top:0.8em; margin-bottom:0.8em; display:block; text-align:center;}} +>>> + +\<configure mozilla latex\><<< +\Configure{Roman}{I}{V}{X}{L}{C}{D}{M} +\Configure{roman}{i}{v}{x}{l}{c}{d}{m} +>>> + +\<configure mozilla latex\><<< +\Configure{underline} + {\bgroup\ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<span class="underline">}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</span>}\fi\egroup} +>>> + +\<configure mozilla plain\><<< +\Configure{underline} + {\bgroup |<mathml underline|>} + {|<end mathml underline|>\egroup} +>>> + + + + + +\<mathml underline\><<< +\HCode{<\a:mathml munder +class="mml-underline"><\a:mathml mrow>}% +>>> + +\<end mathml underline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline +accent="true">&\#x00AF;</\a:mathml mo></\a:mathml munder>}% +>>> + +The code 0332 for underbar is not recognized. Hence, we use the code +00AF of overbar (\verb+‾+ is not recognized anymore). + + + + +\<nomath underline\><<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + + +\<configure mozilla latex\><<< +\Configure{equation} + {\ifmmode\else\par \IgnorePar\fi \EndP + \HCode{<table\Hnewline class="equation"><tr><td>}\IgnorePar + } + {\IgnorePar\EndP\HCode{</td><td class="eq-no">}} + {\end:TTT \ifmmode\else \ShowPar\par{\HCondtrue\noindent}\fi} +>>> + + + + +Mozilla has problem dealing with double and triple unicode prime characters. + +\<configure mozilla latex\><<< +|<plain,latex math|> +>>> + +\<configure mozilla plain\><<< +|<plain,latex math|> +>>> + +\<plain,latex math\><<< +\Configure{'} + {\let\:primes=\empty} + {\relax \csname SUB:prime\endcsname + \sp{\global\let\SUB:prime=\:UnDef \:primes}} + {\let\prime=\relax \xdef\:primes{\:primes\prime}} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Spaces after mtext} +%%%%%%%%%%%%%%%%%% + + +\<configure mozilla latex\><<< +|<mathml text util|> +>>> + +\<configure mathml amstex\><<< +|<mathml text util|> +>>> + +\<mathml text util\><<< +\def\AA:text#1{\mtexttrue + \HCode{<!--mstyle\Hnewline + class="#1"--><\a:mathml + mtext \a:@mtext>}|<start mtext space|>\PauseMathClass + |<math within mtext|>} +\def\BB:text{\mtextfalse\EndPauseMathClass|<end mtext space|>\HCode + {</\a:mathml mtext><!--/mstyle-->}} +>>> + +\<math within mtext\><<< +\Configure{$}{\EndPauseMathClass \mtextfalse + |<end mtext space|>\HCode{</\a:mathml + mtext><!--mstyle\Hnewline class="math"-->}} + {\HCode{<!--/mstyle--><\a:mathml mtext + \a:@mtext>}|<start mtext space|>\PauseMathClass + \mtexttrue}{} +>>> + +\<math within mtext\><<< +\Configure{()}% + {\EndPauseMathClass \mtextfalse + |<end mtext space|>\HCode{</\a:mathml mtext><\a:mathml + mstyle\Hnewline \mml:class="math">}$}% + {$\HCode{</\a:mathml mstyle><\a:mathml + mtext \a:@mtext>}|<start mtext space|>\PauseMathClass + \mtexttrue}% + {}% +>>> + + + +\<start mtext space\><<< +\ht:special{t4ht@,&\#x00A0;}% +>>> +\<end mtext space\><<< +\ht:special{t4ht@,}% +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Accents} +%%%%%%%%%%%%%%%%%% + +See test file at tex4ht-mathml + +\begin{verbatim} + > There is a problem in \dot{x}: it is never build well, but \dot{k} or + > \dot{V} are correctly arranged. + +It is a mozilla problem--it doesnt recognizes the unicode character +ẋ of \dot{x}. I modified the defintion to get a simulation of +the same effect, as is the case for \dot{k} and \dot{V}. + + > I detected that symbols \tilde and \widetilde are not being generated + > by TeX4ht + +I'm getting the same problem here. Tex4ht produces the combining +tilde U0303, but mozilla fails to recognize it. Changing it +to the small tilde character U02DC fixes the problem (now in the bug +fixes page of tex4ht). + +However, that is an improper behavior of mozilla. It can be seen with +the hat and widehat operations. There U0302 does the right job and +U02C6 doesn't. +\end{verbatim} + + + +\<old unicode accents\><<< +\expand:after{\Configure{accent}}\csname OT1\string\.\endcsname + \dot{{}{}} + {\a:accents{}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\"\endcsname + \ddot{{}{}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + +\<configure mozilla latex\><<< +\:CheckOption{new-accents} \if:Option \else + \def\:widetilde:over{\ifmmode \expandafter\mathop\fi + {\x:unicode{02DC}}} +% \def\:tilde:over{\mathop{\x:unicode{02DC}}} +\fi +>>> + +\<configure mozilla plain\><<< +\:CheckOption{new-accents} \if:Option \else + \def\:widetilde:over{\mathop{\ifmmode \expandafter\x:unicode\fi + {02DC}}} +% \def\:tilde:over{\mathop{\x:unicode{02DC}}} +\fi +>>> + + +\<old unicode accents\><<< +\:CheckOption{uniaccents} \if:Option \else + \Configure{accent}\dot\dot{|<dot above codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\.\expandafter + \endcsname + \csname OT1\string\.\endcsname{|<dot above codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\v\endcsname + \check{|<caron codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\=\endcsname + \bar{|<macron codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|<grave codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{grave}{#1}{#2}} + \expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|<circumflex codes|>{}{}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|<tilde codes|>{}{}} + {}{} + \Configure{accent}\ddot\ddot{|<diaeresis codes|>{}{34}} + {}{} + \expand:after{\Configure{accent}}\csname OT1\string\"\expandafter + \endcsname + \csname OT1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {}{} +% \expand:after{\expand:after{\Configure{accent}}% +% \csname OT1\string\r\endcsname}% +% \csname OT1\string\r\endcsname{|<ring codes|>{}{}} +% {}{} + \expand:after{\Configure{accent}}\csname OT1\string\b\endcsname + \b{|<bar below codes|>{}{}} + {}{} + \expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{|<dot below codes|>{}{}} + {}{} + \expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\c\endcsname}% + \csname OT1\string\c\endcsname{|<cedilla codes|>{}{}} + {}{} + \expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\H\endcsname}% + \csname OT1\string\H\endcsname{|<double acute code|>{}{}} + {}{} +\fi +>>> + + +\<dot above codes\><<< +C{010A}c{010B}E{0116}e{0117}G{0120}g{0121}% +I{0130}Z{017B}z{017C}A{0226}a{0227}O{022E}% +o{022F}B{1E02}b{1E03}D{1E0A}d{1E0B}F{1E1E}% +f{1E1F}H{1E22}h{1E23}M{1E40}m{1E41}N{1E44}% +n{1E45}P{1E56}p{1E57}R{1E58}r{1E59}S{1E60}% +s{1E61}T{1E6A}t{1E6B}W{1E86}w{1E87}X{1E8A}% +x{1E8B}Y{1E8E}y{1E8F}% +>>> + +\<caron codes\><<< +C{010C}c{010D}D{010E}d{010F}% +E{011A}e{011B}L{013D}l{013E}N{0147}n{0148}R{0158}r{0159}% +S{0160}s{0161}T{0164}t{0165}Z{017D}z{017E}A{01CD}a{01CE}I{01CF}% +i{01D0}O{01D1}o{01D2}U{01D3}u{01D4}G{01E6}g{01E7}K{01E8}k{01E9}% +j{01F0}\i{01D0}\j{01F0}% +>>> + +\<macron codes\><<< +A{0100}a{0101}E{0112}% +e{0113}I{012A}i{012B}O{014C}o{014D}U{016A}u{016B}% +G{1E20}g{1E21}% +>>> + +\<grave codes\><<< +A{00C0}E{00C8}I{00CC}N{01F8}O{00D2}U{00D9}W{1E80}% +Y{1EF2}a{00E0}e{00E8}o{00F2}u{00F9}% +w{1E81}y{1EF3}\i{00EC}% +>>> + +\<circumflex codes\><<< +A{00C2}E{00CA}I{00CE}O{00D4}U{00DB}a{00E2}e{00EA}% +i{00EE}o{00F4}u{00FB}C{0108}c{0109}G{011C}g{011D}% +H{0124}h{0125}J{0134}j{0135}S{015C}s{015D}W{0174}% +w{0175}Y{0176}y{0177}\i{00EE}\j{0135}% +>>> + +\<tilde codes\><<< +A{00C3}N{00D1}O{00D5}a{00E3}n{00F1}o{00F5}I{0128}% +i{0129}U{0168}u{0169}E{1EBC}e{1EBD}% +Y{1EF8}y{1EF9}\i{0129}% +>>> + +\<diaeresis codes\><<< +A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +>>> + +\<bar below codes\><<< +D{1E0E}d{1E0F}K{1E34}k{1E35}L{1E3A}l{1E3B}N{1E48}n{1E49}% +R{1E5E}r{1E5F}T{1E6E}t{1E6F}Z{1E94}z{1E95}h{1E96}% +>>> + + +\<cedilla codes\><<< +K{0136}k{0137}L{013B}l{013C}N{0145}n{0146}% +R{0156}r{0157}S{015E}s{015F}T{0162}t{0163}% +E{0228}e{0229}H{1E28}h{1E29}% +C{00C7}c{00E7}G{0122}g{0123}% +>>> + + +\<dot below codes\><<< +A{1EA0}a{1Ea1}D{1E0C}d{1E0D}% +E{1EB8}e{1EB9}H{1E24}h{1E25}I{1ECA}i{1ECB}% +K{1E32}k{1E33}L{1E36}l{1E37}M{1E42}m{1E43}% +N{1E46}n{1E47}O{1ECC}o{1ECD}R{1E5A}r{1E5B}% +S{1E62}s{1E63}T{1E6C}t{1E6D}U{1EE4}u{1EE5}% +V{1E7E}v{1E7F}W{1E88}w{1E89}Y{1EF4}y{1EF5}% +>>> + + + + + + + + +\<old unicode accentsNO\><<< +\expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|<grave codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|<acute codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|<circumflex codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{hat}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|<tilde codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\ddot\ddot{|<diaeresis codes|>{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\"\expandafter + \endcsname + \csname OT1\string\"\endcsname{|<diaeresis codes|>{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + +\<\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\r\endcsname}% + \csname OT1\string\r\endcsname{|<ring codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + +\<old unicode accentsNO\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{|<dot below codes|>{}{}} + {\a:accents{}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + + + + + + + + + +\<configure mozilla plain\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + +\<configure mozilla latex\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + + + +\<configure mozilla croatian\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + + +\<configure mozilla romanian\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + +\<configure mozilla slovak\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + +\<configure mozilla slovene\><<< +\:CheckOption{new-accents} \if:Option \else + |<old unicode accents|> +\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{Thin Spaces} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure mozilla latex\><<< +\Configure{,}{\mskip\thinmuskip} +>>> + +\<configure mozilla plain\><<< +\Configure{,}{\mskip\thinmuskip} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{Fonts} +%%%%%%%%%%%%%%%%%%%%% + +\<configure mozilla fontmath\><<< +|<math fonts utilities|> +|<set mathcal class|> +|<set mathcal symbols|> +|<set Re/Im class|> +|<set Re/Im symbols|> +|<set math sf class|> +|<set math sf symbols|> +>>> + + +\<configure mozilla euler\><<< +|<math fonts utilities|> +|<set fraktur class|> +|<set fraktur symbols|> +|<set math script class|> +|<set math script symbols|> +|<set math sf class|> +|<set math sf symbols|> +>>> + +\<configure mozilla eucal\><<< +|<set mathcal class|> +|<set mathcal symbols|> +>>> + +\<configure mozilla amsfonts\><<< +|<math fonts utilities|> +|<set mathbb class|> +|<set mathbb symbols|> +|<set fraktur class|> +|<set fraktur symbols at amsfonts|> +>>> + + +\<configure mozilla dsfont\><<< +|<math fonts utilities|> +|<configure mathds mathclass|> +>>> + + +\<math fonts utilities\><<< +\ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi +\def\find:set:mgroup#1#2#3{\bgroup + \def\use@mathgroup##1##2##3{\relax + \tmp:cnt=##2% + \xdef\:temp####1{\noexpand\Configure{MathClass}{#2}% + {}{}{}{\mathchar"0\the\tmp:cnt ####1}}% + }% + \setbox\tmp:bx=\hbox{$#1$}\setbox\tmp:bx=\hbox{}% + \set:mgroup#3{}{}% + \egroup +} +\def\set:mgroup#1#2{\if :#1#2:\else + \:temp{#1#2}\expandafter\set:mgroup \fi} +>>> + + + +\<set mathbb class\><<< +\ifx \mathbbMathClass\:UnDef + \NewMathClass\mathbbMathClass +\fi +\Configure{MathClass}{\mathbbMathClass}{*} + {<\a:mathml mi mathvariant="double-struck">}{</\a:mathml mi>}{} +>>> + + + +\<set mathbb symbols\><<< +\find:set:mgroup{\mathbb{A}}{\mathbbMathClass}% + {414244454647494A4B4C4D4F535455565758597C} |%A--Z (not CHNPQRZ),k|% +>>> + +The characters CHNPQRZ bet a \verb+<mi mathvariant="double-struck">+ decoration. + + + +Mathfrak might be conditionally loaded by latex, upon encountering +the mathfrak command. Hence, the indirect setting of math classes. + +\<set fraktur symbols at amsfonts\><<< +\expandafter\ifx \csname sv:@mathfrak:\endcsname\relax + \let\sv:@mathfrak:=\n:@mathfrak: +\fi +\def\n:@mathfrak:{\global\let\n:@mathfrak:=\sv:@mathfrak: + \global\let\sv:@mathfrak:=\:UnDef + |<set fraktur symbols|>% +} +\n:@mathfrak: +>>> + + +In version 1.4b \verb+<mi mathvariant="fraktur">𝔏</mi>+ +is needed. The representations + \verb+<mi>𝔏</mi>+ and + \verb+<mi mathvariant="fraktur">L</mi>+ +don't work. + +\<set fraktur class\><<< +\ifx \mathfrakMathClass\:UnDef + \NewMathClass\mathfrakMathClass +\fi +\Configure{MathClass}{\mathfrakMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="fraktur">}{</\a:mathml mi>}{} +>>> + +\<set fraktur symbols\><<< +\find:set:mgroup{\mathfrak{A}}{\mathfrakMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A% |%A--Z|% + 6162636465666768696A6B6C6D6E6F707172737475767778797A% |%a--z|% + 30313233343536373839}% |%0--9|% +>>> + + + +\<set fraktur class\><<< +\ifx \mathboldfrakMathClass\:UnDef + \NewMathClass\mathboldfrakMathClass +\fi +\Configure{MathClass}{\mathboldfrakMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="bold-fraktur">}{</\a:mathml mi>}{} +>>> + +\<set fraktur symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathfrak{A}}{\mathboldfrakMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A% |%A--Z|% + 6162636465666768696A6B6C6D6E6F707172737475767778797A% |%a--z|% + }% +\egroup +\fi +>>> + + + +\<set math script class\><<< +\ifx \mathscrMathClass\:UnDef + \NewMathClass\mathscrMathClass +\fi +\Configure{MathClass}{\mathscrMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="script">}{</\a:mathml mi>}{} +>>> + +\<set math script symbols\><<< +\find:set:mgroup{\mathscr{A}}{\mathscrMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +>>> + +\<set math script class\><<< +\ifx \mathboldscrMathClass\:UnDef + \NewMathClass\mathboldscrMathClass +\fi +\Configure{MathClass}{\mathboldscrMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="bold-script">}{</\a:mathml mi>}{} +>>> + +\<set math script symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathscr{A}}{\mathboldscrMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +\egroup +\fi +>>> + +\<set mathcal class\><<< +\ifx \mathcalMathClass\:UnDef + \NewMathClass\mathcalMathClass +\fi +\Configure{MathClass}{\mathcalMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="script">}{</\a:mathml mi>}{} +>>> + +\<set mathcal symbols\><<< +\find:set:mgroup{\mathcal{A}}{\mathcalMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +>>> + +\<set mathcal class\><<< +\ifx \mathboldcalMathClass\:UnDef + \NewMathClass\mathboldcalMathClass +\fi +\Configure{MathClass}{\mathboldcalMathClass}{*} + {<\a:mathml mi\Hnewline + mathvariant="bold-script">}{</\a:mathml mi>}{} +>>> + +\<set mathcal symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathcal{A}}{\mathboldcalMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A} |%A--Z|% +\egroup +\fi +>>> + + + + +\<set math sf classBROKEN\><<< +\ifx \boldmathsfMathClass\:UnDef + \NewMathClass\boldmathsfMathClass +\fi +\Configure{MathClass}{\boldmathsfMathClass}{*} + {<\a:mathml mi mathvariant="bold-sans-serif">}{</\a:mathml mi>}{} +>>> + +\<set math sf symbolsBROKEN\><<< +\find:set:mgroup{{\boldmath\mathsf{A}}}{\boldmathsfMathClass}% + {4142434445464748494A4B4C4D4E4F505152535455565758595A% |%A--Z|% + 6162636465666768696A6B6C6D6E6F707172737475767778797A% |%a--z|% + }% +>>> + +\<set math sf classBROKEN\><<< +\ifx \boldmathsfDigitMathClass\:UnDef + \NewMathClass\boldmathsfDigitMathClass +\fi +\Configure{MathClass}{\boldmathsfDigitMathClass}{*} + {<\a:mathml mn mathvariant="bold-sans-serif">}{</\a:mathml mn>}{} +>>> + +\<set math sf symbolsBROKEN\><<< +\find:set:mgroup{{\boldmath\mathsf{A}}}{\boldmathsfDigitMathClass}% + {30313233343536373839}% |%0--9|% +>>> + + +BROKEN: The above, for instance, fail for the prima math code: + +\begin{verbatim} +\documentclass{article} +\tracingmacros=2 +\begin{document} + +prima {\boldmath $\mathrm{{\csname HCode\endcsname{}}^{14}C}$} + +seconda {\boldmath $\mathsf{{\csname HCode\endcsname{}}^{15}C}$} + +terza {\boldmath $\mathrm{{\csname HCode\endcsname{}}^{16}C}$} + +quarta {\boldmath $\mathsf{{\csname HCode\endcsname{}}^{17}C}$} + + quinta {$\mathtt{{\csname HCode\endcsname{}}^{18}C}$} +\end{document} +\end{verbatim} + + + + + + +Double strike: + +\<configure mathds mathclass\><<< +\ifx \mathdsMathClass\:UnDef + \NewMathClass\mathdsMathClass +\fi +\Configure{MathClass}{\mathdsMathClass}{*} + {<\a:mathml mi mathvariant="double-struck">}{</\a:mathml mi>}{} +\find:set:mgroup{\mathds{A}}{\mathdsMathClass}% |%1,A--Z,A,h,k|% + {314142434445464748494A4B4C4D4E4F505152535455565758595A61686B} +>>> + + + + + + + +\<set Re/Im class\><<< +\ifx \mathReImMathClass\:UnDef + \NewMathClass\mathboldReImMathClass +\fi +\Configure{MathClass}{\mathboldReImMathClass}{*} + {<\a:mathml mi\Hnewline + fontweight="bold">}{</\a:mathml mi>}{} +>>> + +\<set Re/Im symbols\><<< +\expandafter\ifx\csname mv@bold\endcsname\relax \else +\bgroup +\mathversion{bold}% +\find:set:mgroup{\mathcal{A}}{\mathboldReImMathClass}% + {3C3D} +\egroup +\fi +>>> + + + + +%%%%%%%%%%%%%%% +\chapter{pmathml.xsl} +%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%% +\section{Header Part} +%%%%%%%%%%%%%%%%%%%%% + +\<pmathml dtd\><<< +\Configure{DOCTYPE}{} +>>> + + + + +\<configure mozilla tex4ht\><<< +\:CheckOption{pmathml} \if:Option + |<pmathml configurations|> + \:CheckOption{pmathml-css} \if:Option \else + \Log:Note{If css rendering is preferred + for MathML, use option `pmathml-css' instead of `pmathml'.} + |<pmathml but not pmathml-css|> + \fi +\else + \:CheckOption{pmathml-css} \if:Option \else + \Log:Note{For multi-platform MathML + through stylesheet transforms, use the command line option + `pmathml'. If css rendering is preferred, use `pmathml-css'.} +\fi \fi +>>> + + +\<pmathml configurations\><<< +\:CheckOption{pmathml-css} \if:Option + \Configure{XML-STYLESHEET} + {\HCode{% + <?xml-stylesheet type="text/xsl" + href="pmathmlcss.xsl"?>\Hnewline + <!--http://www.w3.org/Math/XSL/pmathmlcss.xsl-->\Hnewline + }} +\else + \Configure{XML-STYLESHEET} + {\HCode{% + <?xml-stylesheet type="text/xsl" + href="pmathml.xsl"?>\Hnewline + <!--http://www.w3.org/Math/XSL/pmathml.xsl-->\Hnewline + }} +\fi +>>> + +\<pmathml configurations\><<< +\:CheckOption{pmathml-css} \if:Option + \Configure{@HTML} + {xmlns:math="http://www.w3.org/1998/Math/MathML"\Hnewline + xmlns:pref="http://www.w3.org/2002/Math/preference"\Hnewline + pref:renderer="css" + } +\fi +>>> + + +\<configure mozilla Preamble\><<< +\:CheckOption{pmathml-css} \if:Option + \edef\Preamble{\Preamble,pmathml} +\fi +>>> + + +\Link[http://www.w3.org/Math/XSL/Overview.html]{}{}% +http://www.w3.org/Math/XSL/Overview.html\EndLink{} and +\Link[http://www.w3.org/Math/XSL/Overview-tech.html]{}{}% +http://www.w3.org/Math/XSL/Overview-tech.html\EndLink{} explains how +to make .xml pages (in fact, Tex4ht option MOZILLA) to Explorer 6 even +WITHOUT Mathplayer: it requires two .xsl style sheets (pmathml.xsl and +pmathmlcss.xsl, they can be retrieved there) and replacing +\verb+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//|<dtd lang|>" "mathml.dtd">+ +with +\verb+<?xml-stylesheet type="text/xsl" href="pmathml.xsl"?>+. +Moreover, if one has Mathplayer installed, one must keep it away, for +check purposes, by replacing \verb+<html...>+ with + +\begin{verbatim} +<html + xmlns="http://www.w3.org/1999/xhtml" + xmlns:math="http://www.w3.org/1998/Math/MathML" + xmlns:pref="http://www.w3.org/2002/Math/preference" + pref:renderer="css" + > +\end{verbatim} + + +%%%%%%%%%%%%%%%%% +\section{Tables} +%%%%%%%%%%%%%%%%% + + +The attribute \verb+nowrap="nowrap"+ in table cells prevents +Mathplayer from displaying them its own way, and one gets minimal +cells, overlapped: it ought to be avoided altogether. + +It reappears in the option pmathml - as soon as Mathplayer is called +upon to deal with a table, the cells overlap from left to right, and +the last row is reduced almost to nothing. Pmathml-css, NOT calling on +Mathplayer, gives no trouble that way. + +\<pmathml but not pmathml-css\><<< +\Configure{halignTD} {}{} + {<}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ style="text-align:left" }\fi} + {-}{\ifmathml \HCode{ columnalign="center"}\else + \HCode{ style="text-align:center" }\fi} + {>}{\ifmathml \HCode{ columnalign="right"}\else + \HCode{ style="text-align:right" }\fi} + {^}{\ifmathml \HCode{ rowalign="top"}\else + \HCode{ style="vertical-align:top" }\fi} + {=}{\ifmathml \HCode{ rowalign="baseline"}\else + \HCode{ style="vertical-align:baseline" }\fi} + {||}{\ifmathml \HCode{ rowalign="center"}\else + \HCode{ style="vertical-align:middle" }\fi} + {_}{\ifmathml \HCode{ rowalign="bottom"}\else + \HCode{ style="vertical-align:bottom" }\fi} + {p}{\ifmathml \HCode{ columnalign="left"}\else + \HCode{ style="text-align:left"}\fi} + {} +>>> + + + + + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-oo-xtpipes.tex b/support/TeX4ht/source/tex4ht-oo-xtpipes.tex new file mode 100644 index 0000000000..efdede0a20 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-oo-xtpipes.tex @@ -0,0 +1,1981 @@ +% $Id: tex4ht-oo-xtpipes.tex 740 2020-06-13 22:35:32Z karl $ +% htlatex tex4ht-oo-xtpipes "xhtml,next,3" "" "-d./" +% +% Copyright 2009-2020 TeX Users Group +% Copyright 2001-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + \Configure{ProTex}{log,<<<>>>,title,list,`,[[]]} + \usepackage{url} +\begin{document} + +\input{common} +\input{tex4ht-cpright} +\input{tex4ht-dir} + + +%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Math} +%%%%%%%%%%%%% + + +\AtEndDocument{\OutputCodE\<oo-math.4xt\>} + +\Needs{"xmllint --valid --noout oo-math.4xt"} + + + + + +\<oo-math.4xt\><<< +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE xtpipes SYSTEM "xtpipes.dtd" > +<!-- oo-math.4xt (`version), generated from `jobname.tex + Copyright (C) 2009-2013 TeX Users Group + Copyright (C) `CopyYear.2006. Eitan M. Gurari +`<TeX4ht copyright`> --> +<xtpipes preamble="yes" signature="oo-math.4xt (`version)"> + <sax content-handler="xtpipes.util.ScriptsManager,tex4ht.OomFilter" + lexical-handler="xtpipes.util.ScriptsManagerLH" > + <script element="math:mtable" > + `<normalizing math tables`> + </script> + <script element="math:math" > + `<handle mo elements`> + `<handle mrow elements`> + `<handle mspace elements`> + </script> + </sax> +</xtpipes> +>>> + + + + + + + +\<handle mspace elements\><<< +<set name="math:mspace" > + `<open mml xslt script`> + `<math:mspace templates`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="math:mspace" /> +>>> + + +\<math:mspace templates\><<< +<xsl:template match="math:mspace" > + <math:mtext> + <xsl:text> </xsl:text> + </math:mtext> +</xsl:template> +>>> + + + + +%%%%%%%%%%%%% +\subsection{Text} +%%%%%%%%%%%%% + + + + + + + +\AtEndDocument{\OutputCodE\<oo-text.4xt\>} + +\Needs{"xmllint --valid --noout oo-text.4xt"} + + + + + +\<oo-text.4xt\><<< +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE xtpipes SYSTEM "xtpipes.dtd" > +<!-- oo-text.4xt (`version), generated from `jobname.tex + Copyright (C) 2009-2013 TeX Users Group + Copyright (C) `CopyYear.2006. Eitan M. Gurari +`<TeX4ht copyright`> --> +<xtpipes preamble="yes" signature="oo-text.4xt (`version)"> + <sax content-handler="xtpipes.util.ScriptsManager,tex4ht.OoFilter" + lexical-handler="xtpipes.util.ScriptsManagerLH" > + <script element="text:bibliography-mark" > + `<bib mark`> + </script> + <script element="table:table" > + `<normalizing text tables`> + </script> + <script element="text:p" > + `<clean paragraphs`> + </script> + <script element="text:h" > + `<spaces for headers`> + </script> + </sax> +</xtpipes> +>>> + + +%%%%%%%%%%%%% +\subsubsection{Cross References} +%%%%%%%%%%%%% + +This is not used anymore, the make4ht-t4htlinks DOM filter is used instead. The +following code may produce broken or empty links, so it is not really usable. + +\<cross references\><<< +<set name="t4ht-link" > + `<open oo xslt script`> + `<handle t4htlink elements`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="t4ht-link" /> +>>> + +\<bib mark\><<< +<set name="bib-mark" > + `<open oo xslt script`> + `<handle bib mark elements`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="bib-mark" /> +>>> + + + +\<handle t4htlink elements\><<< +<xsl:template match="t4htlink[ @href = concat('#',@name) ]" > + <xsl:apply-templates select="*|text()|comment()" /> + <text:reference-mark> + <xsl:attribute name="text:name"> + <xsl:value-of select="@name"/> + </xsl:attribute> + <xsl:text> </xsl:text> + </text:reference-mark> +</xsl:template> +>>> + +\<handle t4htlink elements\><<< +<xsl:template match="t4htlink[ not(@name) + and + starts-with(@href, '#') +]" > + <xsl:apply-templates select="*|text()|comment()" /> + <text:span> + <xsl:attribute name="text:style-name"> + <xsl:text>reference-ref</xsl:text> + </xsl:attribute> + <text:reference-ref> + <xsl:attribute name="text:ref-name"> + <xsl:value-of select="substring( @href, 2 )"/> + </xsl:attribute> + <xsl:attribute name="text:reference-format"> + <xsl:text>text</xsl:text> + </xsl:attribute> + <xsl:text> </xsl:text> + </text:reference-ref> + </text:span> +</xsl:template> +>>> + + + + + + + +\<handle t4htlink elements\><<< +<xsl:template match="t4htlink[ not(@name) + and + not(starts-with(@href, '#')) +]" > + <text:a> + <xsl:attribute name="xlink:type"> + <xsl:text>simple</xsl:text> + </xsl:attribute> + <xsl:attribute name="xlink:href"> + <xsl:value-of select="@href"/> + </xsl:attribute> + <xsl:apply-templates select="*|text()|comment()" /> + </text:a> +</xsl:template> +>>> + + + + + +\<handle bib mark elements\><<< +<xsl:template match="text:bibliography-mark" > + <xsl:copy> + <xsl:attribute name="text:identifier"> + <xsl:value-of select="normalize-space(.)" /> + </xsl:attribute> + <xsl:apply-templates select="@*" /> + </xsl:copy> + <text:span> + <xsl:attribute name="text:style-name"> + <xsl:text>reference-ref</xsl:text> + </xsl:attribute> + <text:reference-ref> + <xsl:attribute name="text:ref-name"> + <xsl:value-of + select="text:span/text:reference-ref/@text:ref-name"/> + </xsl:attribute> + <xsl:attribute name="text:reference-format"> + <xsl:text>text</xsl:text> + </xsl:attribute> + <xsl:text> </xsl:text> + </text:reference-ref> + </text:span> +</xsl:template> +>>> + + + + + +\begin{itemize} +\item +External +\begin{verbatim} +<text:a xlink:type="simple" + xlink:href="http:....">...</text:a> +\end{verbatim} + + +\item internal +\url{http://www.linuxjournal.com/article/8112} + + +\begin{verbatim} +<text:reference-mark-start text:name="xx"/> +is +<text:reference-mark-end text:name="xx"/> + +<text:reference-ref text:reference-format="direction" text:ref-name="xx"> +above +</text:reference-ref> +\end{verbatim} + +\end{itemize} + + +%%%%%%%%%%%%% +\subsection{Java Utilities} +%%%%%%%%%%%%% + + + +\AtEndDocument{\OutputCodE\<OoUtilities.java\>} + +\ifdojava + \Needs{" + javac OoUtilities.java -d \XTPIPES +"} +\fi + +\<OoUtilities.java\><<< +package tex4ht; +/* OoUtilities.java (`version), generated from `jobname.tex + Copyright (C) 2009-2013 TeX Users Group + Copyright (C) `CopyYear.2006. Eitan M. Gurari +`<TeX4ht copyright`> */ +import org.w3c.dom.*; +public class OoUtilities { + `<static void mtable(dom)`> + `<static void table(dom)`> + `<static boolean justSpace(node)`> +} +>>> + + + `<static boolean paragraph(node)`> + + +%%%%%%%%%%%%%%%%%% +\section{Text Table} +%%%%%%%%%%%%%%%%%% + +% +% +% +% \<handle mrow elements\><<< +% <set name="math:mtd" > +% `<open oo xslt script`> +% `<math:mtd templates`> +% `<close xslt script`> +% </set> +% <xslt name="." xml="." xsl="math:mtd" /> +% >>> +% +% \<math:mtd templates\><<< +% <xsl:template match="math:mtd" > +% <xsl:copy> +% <xsl:apply-templates select="*|text()" /> +% </xsl:copy> +% </xsl:template> +% >>> +% +% +% \<math:mtd templates\><<< +% <xsl:template match="math:mtable"> +% <math:mtable math:columnalign="right left"> +% <xsl:apply-templates select="*|text()" /> +% </math:mtable> +% </xsl:template> +% >>> +% +% +% + + %%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%% + + + + + +\<normalizing text tables\><<< +<dom name="." xml="." method="table" class="tex4ht.OoUtilities" /> +>>> + + +\<static void table(dom)\><<< +public static void table(Node dom) { + Node tblRow, tblCell, d; +// int cols = 0; + Node node = dom.getFirstChild(); + `<bind text namespace prefixes in the root element`> + `<tblRow -= empty trailing rows`> + if( (tblRow != null) && (tblRow.getPreviousSibling() != null) ){ + `<bool = is ruler row?`> + if( !bool ){ + `<remove child spaces from row`> + `<remove trailing non-content row`> + tblCell = tblRow.getFirstChild(); + if( (tblCell != null) + && (tblCell.getNextSibling() == null) + && justSpace(tblCell) + ){ + node.removeChild(tblRow); + } } } + `<n := max number of cols`> + `<remove extra col declarations`> +} +>>> + + + +\begin{verbatim} +<table:table > + <table:table-column table:style-name="equ-col"/> + <table:table-column table:style-name="equ-num-col"/> + + <table:table-row> + <table:table-cell table:style-name="equ-cell"> + .... + </table:table-cell> + </table:table-row> + + <table:table-row> + .... + </table:table-row> + +</table:table> +\end{verbatim} + + +%%%%%%%%%%%%% +\subsection{Remove Rows} +%%%%%%%%%%%%% + + + + + +\<tblRow -= empty trailing rows\><<< +tblRow = node.getLastChild(); +while( (tblRow != null) +// && (tblRow.getNodeType() == Node.TEXT_NODE) +// && tblRow.getNodeValue().trim().equals("") + && tblRow.getTextContent().trim().equals("") +){ + node.removeChild(tblRow); + tblRow = node.getLastChild(); +} +>>> + + + + +%%%%%%%%%%%%% +\subsection{Remove Extra Column Declarations} +%%%%%%%%%%%%% + + + +\<remove child spaces from row\><<< +tblCell = tblRow.getFirstChild(); +while( tblCell != null){ + d = tblCell.getNextSibling(); + if( justSpace(tblCell) ){ tblRow.removeChild(tblCell); } + tblCell = d; +} +>>> + + + + +\<n := max number of cols\><<< +int n = 0; +tblRow = node.getFirstChild(); +while( tblRow != null ){ + if( + (tblRow.getNodeType() == Node.ELEMENT_NODE) + && + tblRow.getNodeName().equals("table:table-row") + ){ + `<m := number of columns`> + if( m > n ){ n = m; } + } + tblRow = tblRow.getNextSibling(); +} +>>> + +\<m := number of columns\><<< +int m = 0; +tblCell = tblRow.getFirstChild(); +while( tblCell != null ){ + if( + (tblCell.getNodeType() == Node.ELEMENT_NODE) + && + tblCell.getNodeName().equals("table:table-cell") + ){ + m++; + `<table:table-cell -= empty text:p`> + } + tblCell = tblCell.getNextSibling(); +} +>>> + + + + + +\<remove extra col declarations\><<< +tblRow = node.getFirstChild(); +while( tblRow != null ){ + d = tblRow.getNextSibling(); + if( + (tblRow.getNodeType() == Node.ELEMENT_NODE) + && + tblRow.getNodeName().equals("table:table-column") + ){ + n--; + if( n < 0 ){ + tblRow.getParentNode().removeChild(tblRow); + } } + tblRow = d; +} +>>> + + +%%%%%%%%%%%%% +\subsection{Remove Empty Paragraphs within Table Cell} +%%%%%%%%%%%%% + + +There is an exception for paragraphs that are the only child elements. + + +\<table:table-cell -= empty text:p\><<< +Node child = tblCell.getLastChild(); +while( child != null ){ + Node prevChild = child.getPreviousSibling(); + if( + (child.getNodeType() == Node.ELEMENT_NODE) + && + child.getNodeName().equals("text:p") + ){ + Node sibling = child.getPreviousSibling(); + while( (sibling != null) + && + (sibling.getNodeType() != Node.ELEMENT_NODE) + ){ + sibling = sibling.getPreviousSibling(); + } + if( sibling == null ){ + sibling = child.getNextSibling(); + while( (sibling != null) + && + (sibling.getNodeType() != Node.ELEMENT_NODE) + ){ + sibling = sibling.getNextSibling(); + } } + if( (sibling != null) + && child.getTextContent().trim().equals("") + ){ + tblCell.removeChild(child); + } } + child = prevChild; +} +>>> + + + +%%%%%%%%%%%%% +\subsection{Test for Empty Nodes} +%%%%%%%%%%%%% + + + + +\<static boolean justSpace(node)\><<< +static boolean justSpace(Node node){ + if( node == null ){ return true; } + if( node.getNodeType() == Node.TEXT_NODE ){ + if( !node.getNodeValue().trim().equals("") ){ return false; } + } else { + if( node.getNodeType() == Node.ELEMENT_NODE ){ + String nm = node.getNodeName(); + if( + !nm.equals("table:table-cell") + && !nm.equals("text:p") + ){ + return false; + } } + } + if(!justSpace( node.getNextSibling() )){ return false; } + if(!justSpace( node.getFirstChild() )){ return false; } + return true; +} +>>> + +\<bool = is ruler row?\><<< +boolean bool = false; +if( tblRow.getNodeName().equals("table:table-row") + && tblRow.hasAttributes() +){ + NamedNodeMap attributes = tblRow.getAttributes(); + Node styleAttr = attributes.getNamedItem( "table:style-name" ); + String style = (styleAttr==null)? null + : styleAttr.getNodeValue(); + if( (style != null) + && ( style.equals("hline-row") + || style.equals("cline-row") + ) + ){ + bool = true; +} } +>>> + +%%%%%%%%%%%%%%%%%% +\section{Nested Paragraphs (OoUtilities)} +%%%%%%%%%%%%%%%%%% + + + + +\<clean paragraphs\><<< +<set name="text-p" > + `<open oo xslt script`> + `<remove nested text:p`> + `<remove nested text:p in biblatex`> + `<multicolumn styles`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="text-p" /> +>>> + + + + +\<remove nested text:p2???\><<< +<xsl:template match="text:p[ @text:style-name = 'start_subjclass' + ]" > + <xsl:comment> + <xsl:text>start-subjclass</xsl:text> + </xsl:comment> + <xsl:apply-templates select="*|text()|comment()" /> +</xsl:template> +<xsl:template match="text:p[ @text:style-name = 'end_subjclass'> + <xsl:apply-templates select="*|text()|comment()" /> + <xsl:comment> + <xsl:text>end-subjclass</xsl:text> + </xsl:comment> +</xsl:template> +>>> + + + +\<remove nested text:p\><<< +<xsl:template match="text:p[ (count(child::*)=1) + and child::draw:frame + and parent::text:p + ]" > + <xsl:apply-templates select="child::draw:frame" /> +</xsl:template> +>>> + + + +\<remove nested text:p\><<< +<xsl:template match="text:p[ + child::text:p + and + (count(child::text:p) = count(child::*)) + ]" > + <!--xsl:copy> + <xsl:attribute name="text:style-name"> + <xsl:text>start_</xsl:text> + <xsl:value-of select="@text:style-name" /> + </xsl:attribute--> + <xsl:comment> + <xsl:text>start </xsl:text> + <xsl:value-of select=" @text:style-name " /> + </xsl:comment> + <!--/xsl:copy--> + <xsl:apply-templates select="*|text()|comment()" mode="nested-p" /> + <!--xsl:copy> + <xsl:attribute name="text:style-name"> + <xsl:text>end</xsl:text> + <xsl:value-of select="@text:style-name" /> + </xsl:attribute--> + <xsl:comment> + <xsl:text>end_</xsl:text> + <xsl:value-of select=" @text:style-name " /> + </xsl:comment> + <!--/xsl:copy--> +</xsl:template> +>>> + +\<remove nested text:p\><<< +<xsl:template match="*[not(text:p)]|text()|comment()" mode="nested-p" > + <xsl:copy/> +</xsl:template> +>>> + +\<remove nested text:p\><<< +<xsl:template match="text:p" mode="nested-p" > + <xsl:copy> + <xsl:attribute name="text:style-name"> + <xsl:value-of select="parent::text:p/@text:style-name" /> + <xsl:text>_</xsl:text> + <xsl:value-of select="@text:style-name" /> + <xsl:text>_</xsl:text> + <xsl:value-of select="child::*[1]/@text:style-name" /> + </xsl:attribute> + <xsl:apply-templates select="@*[ name() != 'text:style-name' ]" /> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:copy> +</xsl:template> +>>> + +\<remove nested text:p in biblatex\><<< +<xsl:template + match="text:p[ + parent::text:p/@text:style-name='printthebibliography-dd' + ]" + mode="nested-p" > + <xsl:copy> + <xsl:attribute name="text:style-name"> + <xsl:value-of select="'printthebibliography-dd'" /> + </xsl:attribute> + <xsl:apply-templates select="@*[ name() != 'text:style-name' ]" /> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:copy> +</xsl:template> +>>> + + + + + + + + + + + + +\<multicolumn styles\><<< +<xsl:template match="text:p[ child::text:span[ + starts-with(@text:style-name, 'multicolumn-') + ] ]" > + <xsl:copy> + <xsl:apply-templates + select="child::text:span[ + starts-with(@text:style-name, 'multicolumn-') ] + /@* + " /> + <xsl:apply-templates select="*|text()|comment()" /> + </xsl:copy> +</xsl:template> +<xsl:template match="text:span[ + starts-with(@text:style-name, 'multicolumn-') ]" /> +>>> + + +\<handle mixed content\><<< +System.out.println("handle mixed content " + name); + int i=0; + for( Node nd = first; nd != null; nd = nd.getNextSibling() ){ + nodeType = nd.getNodeType(); + `<trace mixed content`> + i++; + } +System.out.println("end handle mixed content " + name); +>>> + +\<text:p into text:section\><<< +System.out.println("text:p into text:section"); +>>> + + + + +\<trace mixed content\><<< +System.out.println( +i + " "+ ((Boolean)v.get(i)) ++ + +((nodeType == Node.TEXT_NODE)? + (" TEXT: " + nd.getNodeValue() ) + : +( +(nodeType == Node.ELEMENT_NODE)? + (" " + nd.getNodeName()) + : + "" +) +)); +>>>> + + + + + + + +%%%%%%%%%%%%%%%%%% +\section{Spaces for Headers} +%%%%%%%%%%%%%%%%%% + +\<spaces for headers\><<< +<set name="headers" > + `<open oo xslt script`> + `<algorithmic templates`> + `<biblatex bib templates`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="headers" /> +>>> + +\<algorithmic templates\><<< +<xsl:template match="text:h[@text:style-name='algorithmic-dt']" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select="*|text()|comment()" mode="algorithmic"/> + </xsl:copy> +</xsl:template> +>>> + + +\<algorithmic templates\><<< +<xsl:template match="*|@*|comment()" mode="algorithmic" > + <xsl:copy> + <xsl:apply-templates select="@*" /> + <xsl:apply-templates select="*|text()|comment()" mode="algorithmic"/> + </xsl:copy> +</xsl:template> +>>> + + + +\<algorithmic templates\><<< +<xsl:template match="text()" mode="algorithmic" > + <xsl:value-of select="translate(.,' ',' ')"/> +</xsl:template> +>>> + + +\<biblatex bib templates\><<< +<xsl:template match="text:h[ + (@text:style-name='printthebibliography-dt') + and + (normalize-space()='') +]" > +</xsl:template> +>>> + + +%%%%%%%%%%%%%%%%%% +\section{mo} +%%%%%%%%%%%%%%%%%% + +\<handle mo elements\><<< +<set name="math:mo" > + `<open mml xslt script`> + <xsl:template match=" math:mo" > + <xsl:choose> + `<xsl:when mo...`> + `<xsl:when mo length ...`> + <xsl:otherwise> + <math:mo> + <xsl:apply-templates select="@*" /> + <xsl:value-of select="normalize-space(.)" /> + </math:mo> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="math:mo" /> +>>> + + + + + +A translation of + +\begin{verbatim} + <math:mrow> + <math:mn>2</math:mn> + <math:mo>+</math:mo> + </math:mrow> +\end{verbatim} + +to + +\begin{verbatim} + <math:mrow> + <math:mn>2</math:mn> + <math:mo form="postfix">+</math:mo> + </math:mrow> +\end{verbatim} + +fails to satisfy OO. So the following alternative is offered + +\begin{verbatim} + <math:mrow> + <math:mn>2</math:mn> + <math:mtext>+</math:mtext> + </math:mrow> +\end{verbatim} + + +\<xsl:when mo...\><<< +<xsl:when test=" + (preceding-sibling::math:mn or preceding-sibling::math:mi) + and not(following-sibling::*) +" > + <math:mtext> + <xsl:apply-templates select="*|@*|text()" /> + </math:mtext> +</xsl:when> +>>> + + + + +Isolated mo elements are problematic (e.g., +\verb'<mtd><mo form="...">=</mo></mtd>') in OpenOffice +(\url{http://lists.w3.org/Archives/Public/www-math/2006Jul/0012.html}) +so they are converted into mtext elements. + + + + +\<xsl:when mo...\><<< +<xsl:when test=" + not((preceding-sibling::*) or following-sibling::*) +" > + <math:mtext> + <xsl:apply-templates select="*|@*|text()" /> + </math:mtext> +</xsl:when> +>>> + +The original condition + `not(preceding-sibling::* or following-sibling::*)' +failed with java 1.6 at a MS OS. + + +\begin{verbatim} +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xlink="http://www.w3.org/1999/xlink" + > + <xsl:output omit-xml-declaration = "yes" /> +<xsl:template match="mo" > + <xsl:choose> + <xsl:when test="preceding-sibling::* or following-sibling::*" > + </xsl:when> + </xsl:choose> +</xsl:template> +</xsl:stylesheet> + + +import java.io.*; +import javax.xml.transform.*; +import javax.xml.transform.stream.*; + +public class Test { + public static void main(String[] args) + throws TransformerConfigurationException, + TransformerException { + try{ + StreamSource xslt = new StreamSource(new File("test.xslt")); + TransformerFactory fc = TransformerFactory.newInstance(); + Transformer transformer = fc.newTransformer( xslt ); + } catch (javax.xml.transform.TransformerConfigurationException e){ + + } catch (Exception e){ + System.err.println(e); +} } } +\end{verbatim} + + + + +Failes on braces within mo elements \verb+<math:mo>{</math:mo>+. +Accepts them within mtext elements. + + +\<xsl:when mo...\><<< +<xsl:when test=" + (.='{') or (.='}') +" > + <math:mtext> + <xsl:apply-templates select="*|@*|text()" /> + </math:mtext> +</xsl:when> +>>> + + + +\begin{verbatim} +A \begin{eqnarray}a&=&b\end{eqnarray} is translated by tex4ht into + + <mi>a</mi><mo>=</mo><mi>b</mi> + +and is loaded as + + matrix {a # = # b} + +by OO2 into a broken display. The xtpipe phase `fixes' the problem by +producing improper mathml output + + <mi>a</mi><mtext>=</mtext><mi>b</mi> + +which OO2 loads as + + matrix {a # "=" # b} + +and provides proper display. +\end{verbatim} + + + + + +\<xsl:when mo...\><<< +<xsl:when test=" . = '='" > + <xsl:choose> + <xsl:when test=" not(preceding-sibling::*) + or not(following-sibling::*) + or preceding-sibling::*[1] / self::math:mo + "> + <math:mtext> + <xsl:apply-templates select="*|@*|text()" /> + </math:mtext> + </xsl:when> + <xsl:otherwise> + <math:mo> + <xsl:apply-templates select="*|@*|text()" /> + </math:mo> + </xsl:otherwise> + </xsl:choose> + +</xsl:when> +>>> + + + + +In cases like \verb!$m \bmod n$!, OpenOffice swallos the characters following the first one. + +\<xsl:when mo length ...\><<< +<xsl:when test=" string-length() > 1 " > + <math:mtext> + <xsl:value-of select="normalize-space(.)" /> + </math:mtext> +</xsl:when> +>>> + + +%%%%%%%%%%%%%%%%%% +\section{mrow} +%%%%%%%%%%%%%%%%%% + + + +OpenOffice 2 loads + +\begin{verbatim} +<math:msub> + <math:mrow> + <math:mi>x</math:mi> + </math:mrow> + <math:mrow> + <math:msub> + <math:mrow> + <math:mi>i</math:mi> + </math:mrow> + <math:mrow> + <math:mi>j</math:mi> + </math:mrow> + </math:msub> + </math:mrow> + </math:msub> +\end{verbatim} + +and + +\begin{verbatim} + <math:msub> + <math:mi>x</math:mi> + <math:msub> + <math:mi>i</math:mi> + <math:mi>j</math:mi> + </math:msub> + </math:msub> +\end{verbatim} + +into \verb'x_i_j' which is a broken expression. Editing in OpenOffice the source +into +\verb'x_{i_j}' +or +\verb'{x}_{{i}_{j}}' + + + + + + + + +\<handle mrow elements NO\><<< +<set name="math:mrow" > + `<open mml xslt script`> + `<math:mrow templates`> + `<close xslt script`> +</set> +<xslt name="." xml="." xsl="math:mrow" /> +>>> + + + + + +\<math:mrow templates\><<< +<xsl:template match=" math:mrow[ count(child::*)=1 ]" > + <xsl:apply-templates select="*|@*|text()" /> +</xsl:template> +>>> + + +\begin{verbatim} +The output of tex4ht on $x_{i_j}$ is + + <math:msub> + <math:mrow> + <math:mi>x</math:mi> + </math:mrow> + <math:mrow> + <math:msub> + <math:mrow> + <math:mi>i</math:mi> + </math:mrow> + <math:mrow> + <math:mi>j</math:mi> + </math:mrow> + </math:msub> + </math:mrow> + </math:msub> + +and OO2 loads the code into a broken format and view x_i_j. The same +outcome occurs when tex4ht is modified to produce the following output. + + <math:msub> + <math:mi>x</math:mi> + <math:msub> + <math:mi>i</math:mi> + <math:mi>j</math:mi> + </math:msub> + </math:msub> + +A manual editing of x_i_j into {x}_{{i}_{j}} or x_{i_j} provides the +proper display (and identical mathml code). +\end{verbatim} + + +%%%%%%%%%%%%%%%%%% +\section{Dimenstions of Math Tables} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Background} +%%%%%%%%%%%%% + + + + + +All columns explicitly require identical number of columns. + +Broken: + +\begin{verbatim} +<math:mtable > + <math:mtr> + <math:mtd columnalign="left"><math:mn>1</math:mn></math:mtd> + <math:mtd columnalign="left"><math:mn>2</math:mn></math:mtd> + </math:mtr> + <math:mtr> + <math:mtd columnalign="left"><math:mn>1</math:mn></math:mtd> + </math:mtr> +</math:mtable> +\end{verbatim} + +Works: + +\begin{verbatim} +<math:mtable > + <math:mtr> + <math:mtd columnalign="left"><math:mn>1</math:mn></math:mtd> + <math:mtd columnalign="left"><math:mn>2</math:mn></math:mtd> + </math:mtr> + <math:mtr> + <math:mtd columnalign="left"><math:mn>1</math:mn></math:mtd> + <math:mtd columnalign="left"></math:mtd> + </math:mtr> +</math:mtable> +\end{verbatim} + + +The last \verb+\\+ produces extra line with single entry and no data. + +\begin{verbatim} +$ +\begin{cases} + 1 & 2\\ + 3 & 4\\ +\end{cases} +$ +\end{verbatim} + +Singlton mspace breaks math tables: + +\begin{verbatim} +<math:mtable> + <math:mtr> + <math:mtd><math:mn>1</math:mn></math:mtd> + <math:mtd><math:mspace width="1em"/></math:mtd> + </math:mtr> +</math:mtable> +\end{verbatim} + +%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%% + +\<normalizing math tables\><<< +<dom name="." xml="." method="mtable" class="tex4ht.OoUtilities" /> +>>> + + +\<static void mtable(dom)\><<< +public static void mtable(Node dom) { + Node mtr, mtd, d; + int cols = 0; + Node node = dom.getFirstChild(); + `<remove trailing non-content entries`> + `<fill rows`> +} +>>> + + + + + + + +%%%%%%%%%%%%% +\subsection{Remove Trailing Entries} +%%%%%%%%%%%%% + +\<remove trailing non-content entries\><<< +if (node.hasChildNodes()) { + mtr = node.getLastChild(); + while( mtr != null){ + if( mtr.getNodeType() == Node.ELEMENT_NODE ){ + if (mtr.hasChildNodes()) { + mtd = mtr.getLastChild(); + int count = 0; + while( mtd != null){ + if( mtd.getNodeType() == Node.ELEMENT_NODE ){ + count++; + d = mtd.getFirstChild(); + if( d != null ){ + `<remove mspace-only content`> + } + if( d != null ){ + `<remove d, if white space text`> + } } + d = mtd; + mtd = mtd.getPreviousSibling(); + `<remove d, if white space text`> + if( (d != null) + && (d.getNodeType() == Node.ELEMENT_NODE) ){ + `<remove d, if trailing and childless node`> + if( d == null ){ count--; } + } } + if( count > cols ){ cols = count; } + } } + d = mtr; + mtr = mtr.getPreviousSibling(); + `<remove d, if white space text`> + if( d != null ){ + `<remove d, if trailing and childless node`> +} } } +>>> + + +\<remove d, if white space text\><<< +if( + (d.getNodeType() == Node.TEXT_NODE) + && d.getNodeValue().trim().equals("") +){ + d.getParentNode().removeChild(d); + d = null; +} +>>> + +\<remove d, if trailing and childless node\><<< +if( (d.getNextSibling()==null) + && (d.getFirstChild()==null) ){ + d.getParentNode().removeChild(d); + d = null; +} +>>> + + + + + +%%%%%%%%%%%%% +\subsection{Fill Rows} +%%%%%%%%%%%%% + + + + + +\<fill rows\><<< +if (node.hasChildNodes()) { + mtr = node.getFirstChild(); + while( mtr != null){ + if( mtr.getNodeType() == Node.ELEMENT_NODE ){ + int count = 0; + if (mtr.hasChildNodes()) { + mtd = mtr.getFirstChild(); + while( mtd != null){ + if( mtd.getNodeType() == Node.ELEMENT_NODE ){ + `<insert new line text node`> + count++; + } + mtd = mtd.getNextSibling(); + } + } + if( count < cols ){ + `<fill with empty mtd nodes`> + } } + mtr = mtr.getNextSibling(); +} } +>>> + +\<fill with empty mtd nodes\><<< +for(int i = count; i < cols; i++){ + mtr.appendChild( ((Document) dom).createElement("math:mtd") ); +} +>>> + +\<insert new line text node\><<< +mtr.insertBefore( ((Document) dom).createTextNode("\n"), mtd ); +>>> + + +%%%%%%%%%%%%% +\subsection{mspace} +%%%%%%%%%%%%% + + +\<remove mspace-only content\><<< +boolean remove = true; +for(Node i=d; i!=null; i=i.getNextSibling() ){ + if( (i.getNodeType() == Node.ELEMENT_NODE) + && !i.getNodeName().equals("math:mspace") ) { + remove = false; break; +} } +if( remove ){ + while( d != null ){ + mtd.removeChild(d); + d = mtd.getFirstChild(); +} } +>>> + +%%%%%%%%%%%%%%%%%% +\section{Shared} +%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%% +\subsection{XSLT Setup} +%%%%%%%%%%%%% + + + + + +\<open oo xslt script\><<< +<![CDATA[ + <xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + + xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" + xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" + xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" + xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" + xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" + xmlns:fo="http://www.w3.org/1999/XSL/Format" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" + xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" + xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" + xmlns:math="http://www.w3.org/1998/Math/MathML" + xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" + xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" + xmlns:ooo="http://openoffice.org/2004/office" + xmlns:ooow="http://openoffice.org/2004/writer" + xmlns:oooc="http://openoffice.org/2004/calc" + xmlns:dom="http://www.w3.org/2001/xml-events" + xmlns:xforms="http://www.w3.org/2002/xforms" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + > + <xsl:output omit-xml-declaration = "yes" /> +>>> + + + +\<open mml xslt script\><<< +<![CDATA[ + <xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:math="http://www.w3.org/1998/Math/MathML" + xmlns:xlink="http://www.w3.org/1999/xlink" + > + <xsl:output omit-xml-declaration = "yes" /> +>>> + + +\<close xslt script\><<< + <xsl:template match="*|@*|text()|comment()" > + <xsl:copy> + <xsl:apply-templates select="*|@*|text()|comment()" /> + </xsl:copy> + </xsl:template> + </xsl:stylesheet> +]]> +>>> + + + + +%%%%%%%%%%%%% +\subsection{Text Namespaces} +%%%%%%%%%%%%% + + +\<bind text namespace prefixes in the root elementNO\><<< +((Element) node).setAttribute( + "xmlns:office", + "urn:oasis:names:tc:opendocument:xmlns:office:1.0" +); +((Element) node).setAttribute( + "xmlns:style", + "urn:oasis:names:tc:opendocument:xmlns:style:1.0" +); +((Element) node).setAttribute( + "xmlns:text", + "urn:oasis:names:tc:opendocument:xmlns:text:1.0" +); +((Element) node).setAttribute( + "xmlns:table", + "urn:oasis:names:tc:opendocument:xmlns:table:1.0" +); +((Element) node).setAttribute( + "xmlns:draw", + "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" +); +((Element) node).setAttribute( + "xmlns:fo", + "http://www.w3.org/1999/XSL/Format" +); +((Element) node).setAttribute( + "xmlns:xlink", + "http://www.w3.org/1999/xlink" +); +((Element) node).setAttribute( + "xmlns:dc", + "http://purl.org/dc/elements/1.1/" +); +((Element) node).setAttribute( + "xmlns:meta", + "urn:oasis:names:tc:opendocument:xmlns:meta:1.0" +); +((Element) node).setAttribute( + "xmlns:number", + "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" +); +((Element) node).setAttribute( + "xmlns:svg", + "http://www.w3.org/2000/svg" +); +((Element) node).setAttribute( + "xmlns:chart", + "urn:oasis:names:tc:opendocument:xmlns:chart:1.0" +); +((Element) node).setAttribute( + "xmlns:dr3d", + "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" +); +((Element) node).setAttribute( + "xmlns:math", + "http://www.w3.org/1998/Math/MathML" +); +((Element) node).setAttribute( + "xmlns:form", + "urn:oasis:names:tc:opendocument:xmlns:form:1.0" +); +((Element) node).setAttribute( + "xmlns:script", + "urn:oasis:names:tc:opendocument:xmlns:script:1.0" +); +((Element) node).setAttribute( + "xmlns:ooo", + "http://openoffice.org/2004/office" +); +((Element) node).setAttribute( + "xmlns:ooow", + "http://openoffice.org/2004/writer" +); +((Element) node).setAttribute( + "xmlns:oooc", + "http://openoffice.org/2004/calc" +); +((Element) node).setAttribute( + "xmlns:dom", + "http://www.w3.org/2001/xml-events" +); +((Element) node).setAttribute( + "xmlns:xforms", + "http://www.w3.org/2002/xforms" +); +((Element) node).setAttribute( + "xmlns:xsd", + "http://www.w3.org/2001/XMLSchema" +); +((Element) node).setAttribute( + "xmlns:xsi", + "http://www.w3.org/2001/XMLSchema-instance" +); +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Unicode in mtex} +%%%%%%%%%%%%%%%%%% + +Openoffice dies on non-breaking space characters \verb+ + within +mtext. + + +\begin{verbatim} +\documentclass{amsart} +\begin{document} + $\text{ the number of spanning trees of }$ +\end{document} +\end{verbatim} + + + +\AtEndDocument{\OutputCodE\<OomFilter.java\>} + +\ifdojava + \Needs{" + javac OomFilter.java -d \XTPIPES +"} +\fi + +\<OomFilter.java\><<< +package tex4ht; +/* OomFilter.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +`<TeX4ht copyright`> */ + +import org.xml.sax.helpers.*; +import org.xml.sax.*; +import java.io.PrintWriter; + +public class OomFilter extends XMLFilterImpl { + PrintWriter out = null; + boolean mtext = false; + public OomFilter( PrintWriter out, + PrintWriter log, boolean trace ){ + this.out = out; + } + public void startElement(String ns, String sName, + String qName, Attributes attr) { + if( qName.equals( "math:mtext" ) ){ mtext = true; } + try{ + super.startElement(ns, sName, qName, attr); + } catch( Exception e ){ + System.err.println( "--- OomFilter Error 1 --- " + e); + } + } + public void endElement(String ns, String sName, String qName){ + if( qName.equals( "math:mtext" ) ){ mtext = false; } + try{ + super.endElement(ns, sName, qName); + } catch( Exception e ){ + System.err.println( "--- OomFilter Error 2 --- " + e); + } } + public void characters(char[] ch, int start, int length){ + try{ + if ( mtext ) { + for(int i = start; i<start+length; i++){ + if( ch[i] == 160 ){ ch[i] = ' '; } + } } + super.characters(ch, start, length); + } catch( Exception e ){ + System.out.println( "--- OomFilter Error 3 --- " + e); +} } } +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{OoFilter} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%% + + +\AtEndDocument{\OutputCodE\<OoFilter.java\>} + +\ifdojava + \Needs{" + javac OoFilter.java -d \XTPIPES +"} +\fi + +\<OoFilter.java\><<< +package tex4ht; +/* OoFilter.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2002. Eitan M. Gurari +`<TeX4ht copyright`> */ +`<OoFilter imports`> +public class OoFilter extends XMLFilterImpl { + PrintWriter out = null; + public OoFilter( PrintWriter out, + PrintWriter log, boolean trace ){ + this.out = out; + } + public void startElement(String ns, String sName, + String qName, Attributes attr) { + if( qName.equals( "draw:frame" ) ){ + `<set dimensions of figures`> + } + try{ + super.startElement(ns, sName, qName, attr); + } catch( Exception e ){ + System.err.println( "--- OoFilter Error 1 --- " + e); + } } + public void processingInstruction(String target, String fileName) { + if( target.equals("tex4ht-lg") ){ + fileName = fileName.trim(); + if( fileName.replaceAll(" ","").startsWith("file=") ){ + `<load font vars`> + `<load font styles`> + } } } +} +>>> + + + +%%%%%%%%%%%%% +\subsection{Dimensions for Figures} +%%%%%%%%%%%%% + +\<set dimensions of figures\><<< +String name = attr.getValue("draw:name"); +if( (name != null) + && (attr.getValue("svg:width") == null) + && (attr.getValue("svg:height") == null) +){ + java.awt.Image image = new javax.swing.ImageIcon(name).getImage(); + int width = image.getWidth(null); + int height = image.getHeight(null); + if( (width>0) && (height>0) ){ + org.xml.sax.helpers.AttributesImpl attrs = + new org.xml.sax.helpers.AttributesImpl( attr ); + attrs.addAttribute(null, "svg:width", "svg:width", + "String", (width * 72 / 110) + "pt"); + attrs.addAttribute(null, "svg:width", "svg:height", + "String", (height * 72 / 110) + "pt"); + attr = attrs; +} } +>>> + + +%%%%%%%%%%%%% +\subsection{Font Styles} +%%%%%%%%%%%%% + + + + +\<load font styles\><<< +int length = fileName.length(); +int loc = fileName.indexOf(fileName.charAt(length-1)); +fileName = fileName.substring(loc+1,length-1); +try{ + String s = ""; + FileReader fr = new FileReader( fileName ); + BufferedReader in = new BufferedReader( fr ); + `<htfcss from lg`> + `<rewind lg file`> `<font=(...) from lg`> + `<rewind lg file`> `<Font-css-base: ...`> + `<rewind lg file`> `<process Font-Size: ...`> + `<rewind lg file`> `<process Font(...)`> +} catch(Exception e){ + System.err.println( "--- OoFilter Error 2 --- " + e); +} +>>> + +\<rewind lg file\><<< +in.close(); +fr = new FileReader( fileName ); +in = new BufferedReader( fr ); +>>> + + + + + + + + +\<htfcss from lg\><<< +try{ + String key = "", body = ""; + while( (s=in.readLine()) != null ){ + if( s.startsWith("htfcss: ") ){ + s = s.substring(8); + int idx = s.indexOf(' '); + if( idx == 0 ){ + body += s; + } else { + `<map += (key, body)`> + if( idx == -1 ){ + key = s; body = ""; + } else { + key = s.substring(0,idx); + body = s.substring(idx); + } } } } + `<map += (key, body)`> +} catch(java.lang.NumberFormatException e){ + System.err.println( "--- OoFilter Error 3 --- Improper record: " + s); +} +>>> + + + + +\<map += (key, body)\><<< +body = body.trim(); +if( body.startsWith( "@media " ) ){ + body = body.substring(7).trim(); + if( body.startsWith("print ") ){ + body = body.substring(6).trim(); + } else { key = ""; } +} +if( !key.equals("") ){ + String [] property = body.split(";"); + for( int i=0; i<property.length; i++ ){ + if( !property[i].trim().equals("") ){ + int indx = property[i].indexOf(":"); + if( indx != -1 ){ + String name = property[i].substring(0,indx).trim(); + String value = (property[i]+' ').substring(indx+1).trim(); + if( !name.equals("") && !value.equals("") ){ + `<map[key] += (name,value)`> +} } } } } +>>> + + +\<map[key] += (name,value)\><<< +if( map.containsKey(key) ){ + HashMap <String,String> entry = map.get(key); + entry.put(name,value); +} +else +{ + HashMap <String,String> entry = new HashMap <String,String>(); + entry.put(name,value); + map.put(key,entry); +} +>>> + + +\<load font vars\><<< +HashMap <String,HashMap <String,String>> map + = new HashMap<String,HashMap <String,String>>(); +>>> + + + + + + + +\<Font-css-base: ...\><<< +try{ + while( (s=in.readLine()) != null ){ + if( s.startsWith("Font_css_base: ") ){ + int idx = s.indexOf("Font_css_mag: "); + if( idx != -1 ){ + String [] pattern = s.substring(15,idx).trim().split("%s"); + if( pattern.length == 3 ){ font_css_base = pattern; } + pattern = (s+' ').substring(idx).trim().split("%s"); + if( pattern.length == 2 ){ font_css_mag = pattern; } + } } } +} catch(Exception e){ + System.err.println( "--- OoFilter Error 4 --- Improper record: " + s); +} +>>> + + + + +\<process Font-Size: ...\><<< +try{ + while( (s=in.readLine()) != null ){ + if( s.startsWith("Font_Size:") ){ + base_font_size = Integer.parseInt( s.substring(10).trim() ); + } } +} catch(java.lang.NumberFormatException e){ + System.err.println( "--- OoFilter Error 5 --- Improper record: " + s); +} +>>> + +\<process Font(...)\><<< +try{ + while( (s=in.readLine()) != null ){ + if( s.startsWith("Font(") ){ + String [] match = s.split("\""); + match[1] = match[1].trim(); + match[2] = match[3].trim(); + match[3] = match[5].trim(); + match[4] = match[7].trim(); + `<get font size`> + `<get font style`> + } } +} catch(Exception e){ + System.err.println( "--- OoFilter Error 6 --- Improper record: " + s); +} +>>> + + + + +\<get font style\><<< +HashMap <String,String> entry = map.get(match[1]); +if( (entry != null) || (second < 98) || (second > 102) ){ + String styleName = font_css_base[0] + match[1] + + font_css_base[1] + match[2] + + font_css_base[2]; + if( !match[4].equals("100") ){ + styleName += font_css_mag[0] + match[4] + font_css_mag[1]; + } + `<attr[style:style] := ...`> + super.startElement(null, "style:style", "style:style", attr); + `<attr[style:text-properties] := ...`> + super.startElement(null, "style:text-properties", + "style:text-properties", attr); + super.endElement(null, "style:text-properties", + "style:text-properties"); + super.endElement(null, "style:style", "style:style"); +} +>>> + + +\<attr[style:style] := ...\><<< +org.xml.sax.helpers.AttributesImpl attr = + new org.xml.sax.helpers.AttributesImpl(); +attr.addAttribute("", "style:name", "style:name", "String", styleName); +attr.addAttribute("", "style:family", "style:family", "String", "text"); +>>> + +\<attr[style:text-properties] := ...\><<< +attr = new org.xml.sax.helpers.AttributesImpl(); +if( entry != null ){ + Object [] name = entry.keySet().toArray(); + for(int i=0; i < name.length; i++){ + String value = entry.get(name[i]); + attr.addAttribute("", "fo:" + (String) name[i], + "fo:" + (String) name[i], + "String", value); +} } +if( (second < 98) || (second > 102) ){ + attr.addAttribute("", "fo:font-size", "fo:font-size", + "String", (second / 10.0) + "pt"); +} +>>> + + +% style:font-family-generic=\"swiss\" +% style:font-pitch=\"variable\" + +\<load font vars\><<< +String [] font_css_base = {"" , "-", ""}; +String [] font_css_mag = {"x-x-", ""}; +>>> + + +\<print font style css\><<< +(IGNORED) fprintf(css_file, + (Font_css_base == NULL)? ".%s-%s" : Font_css_base, + match[1], match[2]); +if( !eq_str(match[4],"100") ){ + (IGNORED) fprintf(css_file, + (Font_css_mag == NULL)? "x-x-%s" : Font_css_mag, + match[4]); +} +(IGNORED) fprintf(css_file, "{"); +if( (second < 98) || (second > 102) ){ + (IGNORED) fprintf(css_file, "font-size:%d%c;", second, '%'); +} +if( font_sty ) { + (IGNORED) fprintf(css_file, font_sty->body); +} +(IGNORED) fprintf(css_file, "}\n"); +>>> + + + + + +\<get font size\><<< +{ + if( match[3].replaceAll("[0-9]","").equals("") ){ + second = (int) + ( Integer.parseInt( match[3] ) + * Long.parseLong( match[4] ) + / base_font_size + ); + while( second > 700 ){ second /= 10; } + } else { second = 100; } + `<inspect font-size argument`> +} +>>> + +The following case handles cases like that of +`\verb'Font("ecti","1095","10","100")'', where +\verb=base_font_size= is 11. + +\<inspect font-size argument\><<< +if( (int) ( Double.parseDouble(match[2]) + / Long.parseLong(match[4]) + + 0.5 + ) + == base_font_size +){ + second = 100; +}; +>>> + + + +\<load font vars\><<< +int base_font_size = 10; +int second; +>>> + + +\<OoFilter imports\><<< +import java.util.*; +import org.xml.sax.helpers.*; +import org.xml.sax.*; +import java.io.PrintWriter; +import java.io.BufferedReader; +import java.io.FileReader; +>>> + + +\ifdojava +\AtEndDocument{\Needs{% + "pushd \XTPIPES || exit 1 + ; + jar cf tex4ht.jar * + ; + popd + ; + mv \XTPIPES tex4ht.jar \TEXMFTEXivBIN + ; + if [ ! -d \TEXMFTEXivXTPIPES\space]; then exit 1; fi + ; + cp \XTPIPES xtpipes/lib/* + \TEXMFTEXivXTPIPES +"}} +\fi + +\end{document} diff --git a/support/TeX4ht/source/tex4ht-ooffice.tex b/support/TeX4ht/source/tex4ht-ooffice.tex new file mode 100644 index 0000000000..5a8a69ec0b --- /dev/null +++ b/support/TeX4ht/source/tex4ht-ooffice.tex @@ -0,0 +1,12270 @@ +% $Id: tex4ht-ooffice.tex 904 2021-04-16 20:30:30Z karl $ +% compile 3 times: latex tex4ht-ooffice +% htlatex tex4ht-ooffice "xhtml,4,sections+" +% +% Copyright 2009-2021 TeX Users Group +% Copyright 2001-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{ooffice,ooffice-mml} + \def\PREAMBLE{% + \usepackage{url}% + \usepackage{hyperref}% + } + \def\OPTIONS{html,sections+,3}% + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari, + James Naughton, and Maarten Wisse}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + + +\input{common} +\input{tex4ht-cpright} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{The Code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The Root} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Imported Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice tex4ht\><<< +\if:latex |<Hinclude latex|> +\else |<Hinclude plain|> \fi +>>> + + +\<configure ooffice plain\><<< +|<Hinclude plain lib|> +|<Hinclude plain + latex lib|> +|<plain accents|> +|<plain page dimensions|> +|<plain aligned lines|> +>>> + +\<configure ooffice latex\><<< +|<Hinclude latex lib|> +|<Hinclude plain + latex lib|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Common Code Fragments} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<par del\><<< +!*?: >>> + +\<tag of Tag\><<< + cw:>>> + +\<tail\><<< +tail>>> + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + +\<utilities\><<< +\newif\ifHCond +\def\:gobbleM#1->{} +>>> + + +\<try env inline par\><<< +\ShowPar +>>> + +\<try inline par\><<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{Copyright} +%%%%%%%%%%%%%%%%%%%%%% + +\<ooffice\><<< +% ooffice.4ht (|version), generated from |jobname.tex +|<copy right notice|> >>> + +\<ooffice-math\><<< +% ooffice-math.4ht (|version), generated from |jobname.tex +|<copy right notice|> >>> + + +\<ooffice-mml\><<< +% ooffice-mml.4ht (|version), generated from |jobname.tex +|<copy right notice|> >>> + + +\<copy right notice\><<< +% Copyright 2009-2021 TeX Users Group +% Copyright |CopyYear.2001. Maarten Wisse, James Naughton, Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +\<configure ooffice tex4ht\><<< +|<utilities|> +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{The XML Files} +%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{content.xml (= jobname.xml)} +%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice-mml tex4ht\><<< +\Configure{math-xmlns} + { + xmlns="http://www.w3.org/1998/Math/MathML"\Hnewline + xmlns:xlink="http://www.w3.org/1999/xlink" + } +>>> + +\<configure ooffice-mml Preamble\><<< +\Configure{mathml}{} +>>> + +\<configure ooffice Preamble\><<< +\Configure{ext}{4oo} +\Configure{PROLOG}{VERSION,DOCTYPE} +|<od definitions|> +\def\oo:dtd:ver{2.0} +>>> + +The DOCTYPE can actually make the ODT file invalid. Just insert xtpipes instruction. + +\<configure ooffice tex4ht\><<< +\Configure{VERSION}{\HCode{|<VERSION|>}} +\:CheckOption{-xtpipes} \if:Option + \Configure{DOCTYPE}{} +\else + \Configure{DOCTYPE}{\HCode{<?xtpipes file="oo-text.4xt" ?>\Hnewline}} +\fi +>>> + +\<configure ooffice tex4ht\><<< + |<oo2 tex4ht|> +>>> + +\<oo2 tex4ht\><<< + {\Configure{Needs}{File: \jobname.odt}\Needs{}} + \Configure{HTML} + {\HCode{<office:document-content \Hnewline + |<xml name spaces 2.0|>% + office:version="1.0" + >\Hnewline + <office:automatic-styles> + <?tex4ht-lg file="\jobname.lg" ?> + \expandafter\ifx\csname a:automatic-styles\endcsname\relax \else + \csname a:automatic-styles\endcsname + \fi \Hnewline + </office:automatic-styles> + }} + {\EndP\HCode{</office:document-content>}\Configure{newpage}{}} +\NewConfigure{automatic-styles}[1]{% + \expandafter\concat:config\csname a:automatic-styles\endcsname{#1}} +\expandafter\let\csname a:automatic-styles\endcsname\relax +|<oo2 automatic styles|> +>>> + + + + + + + + +\<configure ooffice tex4ht\><<< +\Configure{HEAD}{}{} +>>> + + + +\<oo2 tex4ht\><<< +\Configure{BODY} + {\HCode{<office:body><office:text>}\par\ShowPar} + {\IgnorePar\EndP + \HCode{</office:text></office:body>\Hnewline}} +>>> + + + +\<xml name spaces 1.0\><<< +xmlns:chart="http://openoffice.org/2000/chart" \Hnewline +xmlns:dr3d="http://openoffice.org/2000/dr3d" \Hnewline +xmlns:draw="http://openoffice.org/2000/drawing" \Hnewline +xmlns:form="http://openoffice.org/2000/form" \Hnewline +xmlns:number="http://openoffice.org/2000/datastyle" \Hnewline +xmlns:office="http://openoffice.org/2000/office" \Hnewline +xmlns:script="http://openoffice.org/2000/script" \Hnewline +xmlns:style="http://openoffice.org/2000/style" \Hnewline +xmlns:table="http://openoffice.org/2000/table" \Hnewline +xmlns:text="http://openoffice.org/2000/text" \Hnewline +xmlns:fo="http://www.w3.org/1999/XSL/Format" \Hnewline +xmlns:math="http://www.w3.org/1998/Math/MathML" \Hnewline +xmlns:svg="http://www.w3.org/2000/svg" \Hnewline +xmlns:xlink="http://www.w3.org/1999/xlink" \Hnewline +>>> + + +\<xml name spaces 2.0\><<< +xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" \Hnewline +xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" \Hnewline +xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" \Hnewline +xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" \Hnewline +xmlns:fo="http://www.w3.org/1999/XSL/Format" \Hnewline +xmlns:xlink="http://www.w3.org/1999/xlink" \Hnewline +xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" \Hnewline +xmlns:dc="http://purl.org/dc/elements/1.1/" \Hnewline +xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" \Hnewline +xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"\Hnewline +xmlns:svg="http://www.w3.org/2000/svg" \Hnewline +xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" \Hnewline +xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" \Hnewline +xmlns:math="http://www.w3.org/1998/Math/MathML" \Hnewline +xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" \Hnewline +xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" \Hnewline +xmlns:ooo="http://openoffice.org/2004/office" \Hnewline +xmlns:ooow="http://openoffice.org/2004/writer" \Hnewline +xmlns:oooc="http://openoffice.org/2004/calc" \Hnewline +xmlns:dom="http://www.w3.org/2001/xml-events" \Hnewline +xmlns:xforms="http://www.w3.org/2002/xforms" \Hnewline +xmlns:xsd="http://www.w3.org/2001/XMLSchema" \Hnewline +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \Hnewline +xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" \Hnewline +xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"\Hnewline +xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"\Hnewline +>>> + + +\<xml styles name spaces 2.0\><<< +xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0"\Hnewline +xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" \Hnewline +xmlns:dc="http://purl.org/dc/elements/1.1/" \Hnewline +xmlns:dom="http://www.w3.org/2001/xml-events" \Hnewline +xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" \Hnewline +xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" \Hnewline +xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"\Hnewline +xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" \Hnewline +xmlns:math="http://www.w3.org/1998/Math/MathML" \Hnewline +xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" \Hnewline +xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" \Hnewline +xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"\Hnewline +xmlns:ooo="http://openoffice.org/2004/office" \Hnewline +xmlns:oooc="http://openoffice.org/2004/calc" \Hnewline +xmlns:ooow="http://openoffice.org/2004/writer" \Hnewline +xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"\Hnewline +xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" \Hnewline +xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"\Hnewline +xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" \Hnewline +xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"\Hnewline +xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" \Hnewline +xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"\Hnewline +xmlns:xlink="http://www.w3.org/1999/xlink"\Hnewline +>>> + +\<VERSION\><<< +<?xml version="1.0" encoding="UTF-8"?>\Hnewline +>>> + +\<DOCTYPE\><<< +>>> + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + + +\<configure ooffice Preamble\><<< +\let\Css=\:gobble +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{styles.xml (jobname-styles.xml)} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +The contents.xml file can contain only styles that are known ahead of +time, before starting the processing of the content. + +The styles.xml file allows us + +\begin{enumerate} +\item To collect styles as we go along the body of the document, and +\item Introduce default built in styles that user may override +\end{enumerate} + + + +The content.xml must get the style information at the start of the +compilation, before the body is processed. + + + +\verb+\OOstyles+ immediatey sends it content to the styles.xml +file. In the case of \verb+\ConfigureOO+, the last assignment to the +hook is sent to the file upon reaching the end of the source. + + +\<utilities\><<< +\let\:OOstyles=\empty +\def\OOstyles#1{\edef\:OOstyles{\:OOstyles #1}} +\OOstyles{|<oo2 styles.xml|>} +>>> + +\<switch to main body OOstlyles\><<< +\def\OOstyles##1{% +\ht:special{t4ht>|<styles file name|>}% + \ht:special{t4ht=##1}% + \ht:special{t4ht*>}% +} +\OOstyles{\:OOstyles} +\ht:special{t4ht*>|<styles file name|>}% +\let\:OOstyles=\:UnDef +>>> + +\<styles file name\><<< +\jobname-styles.4oy>>> + + + + + + +\<oo2 styles at /@BODY\><<< +\OOstyles{% + \oo:style + </office:styles>\Hnewline + <office:automatic-styles> + |<styles.xml: automatic-styles|>\Hnewline + </office:automatic-styles> + <office:master-styles>\Hnewline + |<styles.xml: master-styles|>\Hnewline + </office:master-styles>\Hnewline + </office:document-styles>\Hnewline +}% +>>> + + + + + +\<oo2 styles.xml\><<< +|<VERSION|>% +<office:document-styles \Hnewline + |<xml styles name spaces 2.0|>\Hnewline + office:version="1.0">\Hnewline + <office:font-face-decls> + |<oo2 fonts|>% + </office:font-face-decls> + <office:styles>\Hnewline +>>> + + + + + +[\HPage{dirty trick for fonts} +\begin{verbatim} +\OOstyles{% + </office:styles> + <office:font-face-decls> + <style:font-face + style:name="Palatino Linotype" + svg:font-family="'Palatino Linotype'" + style:font-family-generic="roman" + style:font-pitch="variable"/> + </office:font-face-decls> + <office:styles> + <style:style style:name="grmn-1000" style:family="text"> + <style:text-properties style:font-name="Palatino Linotype"/> + </style:style> +} +\end{verbatim} + +\EndHPage{}] + +\<utilities\><<< +\let\oo:style=\empty +\def\NewConfigureOO#1{% + \expandafter\ifx \csname c:#1:oo:style:\endcsname\relax + \append:def\oo:style{\csname a:#1:oo:style\endcsname}% + \:CheckOption{info}\if:Option + \Log:Note{\string\NewConfigureOO{#1}}% + \fi + \fi + \NewConfigure{#1:oo:style}{1}} +\def\ConfigureOO#1#2{% + \edef\:temp{\noexpand\Configure{#1:oo:style}{#2}}\:temp + \:CheckOption{info-oo}\if:Option + \Log:Note{\string\ConfigureOO{#1}{% + \expandafter\expandafter\expandafter\:gobbleM + \expandafter\meaning\csname a:#1:oo:style\endcsname + }} + \fi +} +>>> + +\<utilities\><<< +\:CheckOption{info}\if:Option + \Log:Note{For tracing of oo configurations, + use the `info-oo' option}% +\fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{helper commands for easier style setting} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +Styles for \verb|\paragraph| like configurations + +Define paragraph style + +\<utilities\><<< +\def\:ParagraphStyle#1{% +\NewConfigureOO{#1}% +\ConfigureOO{#1}{% +<style:style style:name="#1" + style:family="paragraph" + style:parent-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:margin-top="0.5cm" /> +</style:style> +} +} +>>> + +Configure paragraph command (first argument). The paragraph title will be set +in the character style passed as the second argument. + + +\<utilities\><<< +\def\:DefineParagraph#1#2{% +\Configure{#1} + {\IgnorePar\EndP \HCode{<!--start of #1 -->}} + {\IgnorePar\EndP \HCode{<!--start of #1 -->}} + {\bgroup\HTML:PAR{#1-p}{#1-p}\par\HCode{<text:span text:style-name="#2" >}} + {\HCode{</text:span><text:s/><text:s/>\Hnewline}\egroup} +\:ParagraphStyle{#1-p} +} +>>> + +Usage: + +\begin{verbatim} +\:DefineParagraph{paragraph}{paragraph-h} +\:BoldStyle{paragraph-h} +\end{verbatim} + +Commands for basic character styles: + +\<utilities\><<< +\def\:BoldStyle#1{% +\NewConfigureOO{#1} +\ConfigureOO{#1}{ + <style:style style:name="#1" style:family="text">\Hnewline + <style:text-properties fo:font-style="normal" + fo:font-weight="bold"/>\Hnewline + </style:style>\Hnewline +}} + +\def\:ItalicStyle#1{% +\NewConfigureOO{#1} +\ConfigureOO{#1}{ + <style:style style:name="#1" style:family="text">\Hnewline + <style:text-properties fo:font-style="italic" + fo:font-weight="normal"/>\Hnewline + </style:style>\Hnewline +}} + +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{settings.xml for Math Formulas} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + + + + +\<oo2 settings.xml\><<< +\ht:special{t4ht>|<settings file name|>}% + \ht:special{t4ht=|<VERSION|>}% + \ht:special{t4ht=|<settings DOCTYPE|>}% + \ht:special{t4ht=|<oo2 start mathml settings|>}% + \ht:special{t4ht=|<close mathml settings|>}% +\ht:special{t4ht*>}% +\ht:special{t4ht<|<settings file name|>}% +>>> + + + + + + +\<settings file name\><<< +\jobname-settings.4os>>> + +\<settings DOCTYPE\><<< +>>> + + + + +\<oo2 start mathml settings\><<< +<office:document-settings \Hnewline + xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" \Hnewline + xmlns:xlink="http://www.w3.org/1999/xlink" \Hnewline + xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" \Hnewline + office:version="1.0"> \Hnewline +>>> + +% <office:settings> \Hnewline + + +%</office:settings> + +\<close mathml settings\><<< +</office:document-settings>\Hnewline +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{manifest.xml} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<utilities\><<< +\let\media:type\relax +\let\:OOmanifest=\empty +\def\OOmanifest#1{\edef\:OOmanifest{\:OOmanifest #1}} +\OOmanifest{|<oo2 manifest.xml|>} +\def\media:type{application/vnd.oasis.opendocument.text} +>>> + +\<switch to main body OOmanifest\><<< +\def\OOmanifest##1{% + \ht:special{t4ht>|<manifest file name|>}% + \ht:special{t4ht=##1}% + \ht:special{t4ht*>}% +} +\OOmanifest{\:OOmanifest} +\ht:special{t4ht*>|<manifest file name|>}% +\let\:OOmanifest=\:UnDef +>>> + + +\<manifest file name\><<< +\jobname-manifest.4of>>> + + + + + +\<oo2 manifest.xml\><<< +|<VERSION|>% +<manifest:manifest + xmlns:manifest = + "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">\Hnewline + <manifest:file-entry + manifest:media-type="\media:type" + manifest:full-path="/"/> + |<shared manifest|>% +>>> + + +\<manifest at /@BODY\><<< +\OOmanifest{</manifest:manifest>\Hnewline}% +>>> + + +\<math obj manifest\><<< +<manifest:file-entry + manifest:media-type="text/xml" + manifest:full-path="|<math obj name|>/content.xml"/>\Hnewline +<manifest:file-entry + manifest:media-type="text/xml" + manifest:full-path="|<math obj name|>/settings.xml"/>\Hnewline +<manifest:file-entry + manifest:media-type="application/vnd.oasis.opendocument.formula" + manifest:full-path="|<math obj name|>/"/> +>>> + +\<graphics obj manifest\><<< +<manifest:file-entry + manifest:full-path="Pictures/\PictureFile" manifest:media-type="\get:image:mime:type\Gin@ext"/>\Hnewline +>>> + +\<shared manifest\><<< +<manifest:file-entry + manifest:media-type="" + manifest:full-path="Pictures/"/>\Hnewline +<manifest:file-entry + manifest:media-type="text/xml" + manifest:full-path="content.xml"/>\Hnewline +<manifest:file-entry + manifest:media-type="text/xml" + manifest:full-path="styles.xml"/>\Hnewline +<manifest:file-entry + manifest:media-type="text/xml" + manifest:full-path="meta.xml"/>\Hnewline +<manifest:file-entry + manifest:media-type="text/xml" + manifest:full-path="settings.xml"/>\Hnewline +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{meta.xml} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<oo2 meta.xml\><<< +\ht:special{t4ht>|<meta file name|>}% + \ht:special{t4ht=|<VERSION|>}% + \ht:special{t4ht=|<oo2 start meta|>}% + \ht:special{t4ht=\a:META}% + \ht:special{t4ht=|<close meta|>}% +\ht:special{t4ht*>}% +\ht:special{t4ht<|<meta file name|>}% +>>> + + + + + + + + + + + + + + + +\<meta file name\><<< +\jobname-meta.4ot>>> + + + + + +\<oo2 start meta\><<< +<office:document-meta \Hnewline + xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"\Hnewline + xmlns:xlink="http://www.w3.org/1999/xlink"\Hnewline + xmlns:dc="http://purl.org/dc/elements/1.1/"\Hnewline + xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"\Hnewline + xmlns:ooo="http://openoffice.org/2004/office"\Hnewline + office:version="1.0">\Hnewline +<office:meta>\Hnewline +>>> + +\<close meta\><<< +</office:meta></office:document-meta>\Hnewline +>>> + + + + + + +\<oo2 tex4ht\><<< +\Configure{META} + {<meta:initial-creator>|<creator/generator|>\Hnewline + </meta:initial-creator>\Hnewline} +\Configure{META} + {<meta:generator>|<creator/generator|>\Hnewline + </meta:generator>\Hnewline} +\:CheckOption{timestamp}\if:Option +\Configure{META} + {<meta:creation-date>\:today</meta:creation-date>\Hnewline} +\Configure{META} + {<dc:date>\:today</dc:date>\Hnewline} +\else + \Log:Note{To print a timestamp, use the command line option timestamp} +\fi +>>> + + + + + +\<creator/generator\><<< +TeX4ht from \jobname.tex, + options: \expandafter\:gobbleM\meaning\Preamble\Hnewline + (http://www.cse.ohio-state.edu/\string + ~gurari/TeX4ht/) +>>> + + +\<utilities\><<< +\tmp:cnt=\time \divide\tmp:cnt by 60 +\edef\:temp{\the\tmp:cnt} +\multiply\tmp:cnt by -60 \advance\tmp:cnt by \time +\edef\:today{\the\year -\ifnum \month<10 0\fi + \the\month -\ifnum \day<10 0\fi\the\day + T\ifnum \:temp<10 0\fi \:temp + :\ifnum \tmp:cnt<10 0\fi\the\tmp:cnt :00} +>>> + +\<utilities\><<< +\NewConfigure{META}[1]{\concat:config\a:META{#1}} +\let\a:META\relax +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{MathML} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + + + +\<oo2 inline mathml object\><<< +<draw:frame + draw:style-name="mml-inline" + draw:name="mobj-\math:obj"\Hnewline + text:anchor-type="as-char" + draw:z-index="0" + >% + <draw:object\Hnewline + xlink:href="./|<math obj name|>"\Hnewline + xlink:type="simple" + xlink:show="embed" + xlink:actuate="onLoad" + />% +</draw:frame>% +>>> + + +\<oo2 display mathml object\><<< +<draw:frame + draw:style-name="mml-display" + draw:name="mobj-\math:obj"\Hnewline +\ifTab\else text:anchor-type="paragraph" \fi + draw:z-index="0" + >% + <draw:object\Hnewline + xlink:href="./|<math obj name|>"\Hnewline + xlink:type="simple" + xlink:show="embed" + xlink:actuate="onLoad" + />% +</draw:frame>% +>>> + + + + + + +\<configure ooffice-mml latex\><<< + |<oo2 mml latex|> +>>> + + + +\<oo2 mml latex\><<< +\OOstyles{\Hnewline + <style:style style:name="mml-inline" + style:family="graphic" + style:parent-style-name="Formula" + >\Hnewline + <style:graphic-properties + style:vertical-pos="middle" + style:vertical-rel="text"/>\Hnewline + </style:style>\Hnewline} +>>> + + + +\<oo2 mml latex\><<< +\OOstyles{\Hnewline + <style:style style:name="mml-display" + style:family="graphic" + style:parent-style-name="Formula"> + <style:graphic-properties + style:wrap="none" +% style:vertical-pos="center" +% style:vertical-rel="paragraph-content" + style:horizontal-pos="center" + style:horizontal-rel="paragraph-content" + fo:background-color="transparent" + style:background-transparency="100\%" + fo:margin-left="5\%" + > + </style:graphic-properties> + </style:style>\Hnewline +} +>>> + + + +\<configure ooffice-mml latex\><<< +\OOstyles{\Hnewline + <style:style style:name="Formula" + style:family="graphic"> + <style:graphic-properties + text:anchor-type="as-char" + svg:y="0in" + fo:margin-left="0.1mm" + fo:margin-right="0.1mm" + style:vertical-pos="middle" + style:vertical-rel="text" + /> + </style:style>\Hnewline +} +>>> + + + + + + +\<utilities\><<< +\newif\ifCenteredFrame +>>> + + +\<oo2 start math obj\><<< +\gHAdvance\math:obj by 1 +\NextFile{|<math obj name|>.4om}% +\bgroup + \HCode{\ifCenteredFrame + |<oo2 display mathml object|>\else + |<oo2 inline mathml object|>\fi + }% + \OOmanifest{|<math obj manifest|>}% + |<config mathml object file|>% + |<sv dvimath par|>\IgnorePar + \HPage{}% +>>> + + + + +\<end math obj\><<< +\EndHPage{}|<recall dvimath par|>\egroup +>>> + + + +\<configure ooffice-mml tex4ht\><<< +|<oo2 mml tex4ht|> +>>> + + + + + +\<oo2 mml tex4ht\><<< +\HAssign\math:obj=0 +\Configure{DviMath} + {\a:DviMathML \mathmltrue + \ifOption{mml-fonts}{}{|%\mml:htfsym|%\NoFonts}% + \HCode{|<input line num|>}\IgnoreRule + |<oo2 start math obj|>\Tg<\a:mathml math\Hnewline + \csname a:math-xmlns\endcsname \Hnewline + >\a:math + } + {\Tg</\a:mathml math>% + |<end math obj|>\EndIgnoreRule + \ifOption{mml-fonts}{}{|%\ext:htfsym|%\EndNoFonts}% + \mathmlfalse \b:DviMathML } +>>> + + + +\<config mathml object file\><<< +\Configure{DOCTYPE}{\HCode{<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">}}% +|<oo math xtpipes|>% +\Configure{HTML}{}{\noindent}% +\Configure{BODY}{}{}% +>>> + + +\<oo math xtpipes\><<< +\:CheckOption{-xtpipes} \if:Option + \Log:Note{Use the `-xtpipes' command line option to + avoid xtpipes post processing} +\else + \Configure{DOCTYPE}{%% + \HCode{|<tex4ht math note|>}% + }% +\fi +>>> + +\<tex4ht math note\><<< +<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/mathml2.dtd">\Hnewline +<?xtpipes file="oo-math.4xt" ?>\Hnewline +<!-- |<math obj name|>\space + by TeX4ht from \jobname.tex line \the\inputlineno\space + |version\Hnewline + (http://www.cse.ohio-state.edu/\string ~gurari/TeX4ht/) + -->\Hnewline +>>> + + + + + +\<recall dvimath par\><<< +\sv:ignore +>>> + +\<sv dvimath par\><<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +\<math obj name\><<< +\jobname-m\math:obj +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Graphics} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<configure ooffice graphics\><<< +\Configure{graphics} + {\bgroup + \let\E:IMG=\e:IMG \let\e:IMG=\empty + \Picture+{}} + {\EndPicture + \E:IMG\HCode{<!--tex4ht:graphics + \Hnewline name="\PictureFile" src="\Gin@base\Gin@ext" + svg:width="\the\Gin@req@width" + svg:height="\the\Gin@req@height" + \Hnewline -->}% + \egroup} +>>> + +\<\><<< +\:CheckOption{graphics-dim} \if:Option + |<graphics quality|> + \Configure{graphics} + {\bgroup + \let\E:IMG=\e:IMG \let\e:IMG=\empty + \Picture+{}} + {\EndPicture \ifx\noBoundingBox\UnDefined + |<pixels graphics width/height|>\fi + \E:IMG\HCode{<!--tex4ht:graphics + \Hnewline name="\PictureFile" src="\Gin@base\Gin@ext" + \Hnewline -->}% + \egroup} +\else + +\fi +>>> + + + + +\<pixels graphics width/height\><<< +\ifx \gr:density\empty + \HCode{ + width="\the\Gin@req@width" + height="\the\Gin@req@height" + }% +\else + \bgroup + \divide\Gin@req@width by 72 + \multiply\Gin@req@width by \gr:density \relax + \divide\Gin@req@height by 72 + \multiply\Gin@req@height by \gr:density \relax + \HCode{ + width="\expandafter\int:pt\the\Gin@req@width|<par del|>" + height="\expandafter\int:pt\the\Gin@req@height|<par del|>" + }% + \egroup +\fi +>>> + + +\<graphics quality\><<< +\def\:temp#1graphics-#2,#3|<par del|>{\def\gr:density{#2}} +\expandafter\:temp\Preamble,graphics-,|<par del|> +\ifx \gr:density\empty + \Log:Note{if included graphics are + of degraded quality, try the command line option + `graphics-num'. The `num' should provide + the density of pixels in the bitmaps (e.g., 110). + } +\else + \def\int:pt#1.#2|<par del|>{#1} +\fi +>>> + + +All images should be saved in one directory (`Pictures' by default), +regardless of the original path structure. We must save image names and +original paths to be able to copy pictures to correct location. + +\<configure ooffice graphics\><<< +\def\getImgFileParser#1/{% + \ifx\relax#1\relax + \let\next\relax + \else + \do{#1}\let\next\getImgFileParser + \fi\next +} +\newcommand\getImgFile[2]{% + \def\do##1{\def\imgBaseName{##1#2}\def\imgBase{##1}} + \def\imgFullName{#1#2} + \getImgFileParser#1// +} + +\Configure{graphics*} + {gif} + {|<save image name|>\Picture[IMG]{\imgBase.gif |<graphics dimensions|> }} +\Configure{graphics*} + {png} + {|<save image name|>\Picture[IMG]{\imgBase.png |<graphics dimensions|> }} +\Configure{graphics*} + {jpg} + {|<save image name|>\Picture[IMG]{\imgBase.jpg |<graphics dimensions|> }} +\Configure{graphics*} + {jpeg} + {|<save image name|>\Picture[IMG]{\imgBase.jpeg |<graphics dimensions|> }} + + +|<graphics default extensions|> + +\NewConfigure{Ghostscript}{1} +\Configure{Ghostscript}{rungs} + +\NewConfigure{EpsConvert}{1} +\Configure{EpsConvert}{"\a:Ghostscript\space -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -r120 -sDEVICE=pngalpha -sOutputFile="\Gin@base.png" "\Gin@base.eps" "} + +\Configure{graphics*} + {eps} + {\openin15=\csname Gin@base\endcsname\PictExt\relax% + \ifeof15% + \Needs{\a:EpsConvert}% + \fi% + \closein15% + \def\Gin@ext{\PictExt}% fix to get correct extension for the generated png file + \expandafter\getImgFile\expandafter{\Gin@base}{\PictExt} + \Picture[IMG]{{\imgBase\PictExt} |<graphics dimensions|>}} + +\NewConfigure{PdfConvert}{2} +\Configure{PdfConvert}{png}{"\a:Ghostscript\space -q -dNOPAUSE -dusecropbox -dBATCH -sDEVICE=pngalpha -r300 \ifx\Gin@page\@empty\else -dFirstPage="\Gin@page" -dLastPage="\Gin@page"\fi\space -sOutputFile="\Gin@base-\Gin@page.\a:PdfConvert" "\Gin@base.pdf""} + +\Configure{graphics*} + {pdf} + {\ifdefined\Gin@page\else\def\Gin@page{1}\fi% + \edef\svg:filename{\Gin@base-\Gin@page.\a:PdfConvert}% + % test for existence of the converted file + \openin15=\svg:filename\relax + \ifeof15 + \Needs{\b:PdfConvert}% + \fi + \closein15 + \def\Gin@ext{.\a:PdfConvert}% fix to get correct extension for the generated png file + \expandafter\getImgFile\expandafter{\Gin@base-\Gin@page}{\a:PdfConvert}% + \edef\Gin@base{\Gin@base-\Gin@page}% the generated file contains page number + \Picture[IMG]{{\imgBase.\a:PdfConvert} |<graphics dimensions|>}} +>>> + +\<\><<< +\Configure{graphics*} + {eps} + {|<save image name|>\Picture[IMG]{\imgBase.eps |<graphics dimensions|> }} +>>> + + + +\<save image name\><<< +\expandafter\getImgFile\expandafter{\Gin@base}{\Gin@ext} +>>> + + + +\<graphics dimensions\><<< +\if:boundingbox{svg:width="\the\Gin@req@width" svg:height="\the\Gin@req@height"}{} +>>> + +Enable supported image extensions out of the box. + +\<graphics default extensions\><<< +\DeclareGraphicsExtensions{.png,.jpg,.eps,.pdf} +>>> + +\<configure ooffice tex4ht\><<< +\def\svg:width{0.0pt}\def\svg:height{0.0pt} +\def\def:image:mime:type#1#2{\expandafter\def\csname image:mime#1\endcsname{#2}} +\def\get:image:mime:type#1{\csname image:mime#1\endcsname} +\def:image:mime:type{.png}{image/png} +\def:image:mime:type{.jpg}{image/jpeg} +\def:image:mime:type{.jpeg}{image/jpeg} +\def:image:mime:type{.gif}{image/gif} +\def:image:mime:type{.svg}{image/svg+xml} +\def\svg:width{0.0pt}\def\svg:height{0.0pt} +\Configure{IMG} + {|<insert shadowing fig file|>% + \ht:special{t4ht=<draw:frame + draw:name="\PictureFile" + text:anchor-type="as-char" % "paragraph" +% svg:width="...pt" +% svg:height="...pt" + % \ifx\noBoundingBox\UnDefined + \string svg:width="\the\Gin@req@width" + svg:height="\the\Gin@req@height" + % \fi + draw:z-index="0" + >% + <draw:image\Hnewline + xlink:href="Pictures/}} + {\ht:special{t4ht=" \Hnewline + xlink:type="simple" + xlink:show="embed" + xlink:actuate="onLoad" + /><!--draw:name="}} + {" } + {\ht:special{t4ht=" }} + {\ht:special{t4ht=--></draw:frame>}} +>>> + +\<configure ooffice pst-jtree\><<< +\Configure{jtree} + {\bgroup + \Configure{IMG} + {|<insert shadowing fig file|>% + \ht:special{t4ht=<draw:frame + draw:name="|<graphics base name|>" + text:anchor-type="as-char" + draw:style-name="jtree" + draw:z-index="0" + >% + <draw:image\Hnewline + xlink:href="Pictures/}} + {\ht:special{t4ht=" \Hnewline + xlink:type="simple" + xlink:show="embed" + xlink:actuate="onLoad" + /><!--draw:name="}} + {" } + {\ht:special{t4ht=" }} + {\ht:special{t4ht=--></draw:frame>}}% + } + {\egroup + } +>>> + + +\<configure ooffice pst-jtree\><<< +\OOstyles{\Hnewline +<style:style style:name="jtree" + style:family="graphic" + style:parent-style-name="Graphics"> + <style:graphic-properties + style:vertical-pos="bottom" + style:vertical-rel="baseline" + style:mirror="none" + fo:margin-left="0.01em" + fo:margin-right="0.01em" + fo:margin-top="0.01em" + fo:margin-bottom="0.01em" + /> +</style:style> +} +>>> + + + +\<insert shadowing fig file\><<< +% \ht:special{t4ht>\PictureFile.4og}% +\ht:special{t4ht>\Gin@base\Gin@ext.4og}% +\ht:special{t4ht*>}% +% \ht:special{t4ht<\PictureFile.4og}% +\ht:special{t4ht<\Gin@base\Gin@ext.4og}% +\OOmanifest{|<graphics obj manifest|>}% +>>> + + +\<graphics file name\><<< +\PictureFile>>> + +\<graphics base name\><<< +\imgBaseName>>> + +\<graphics full name\><<< +\imgFullName>>> + +\<configure ooffice tex4ht\><<< +\Configure{PictureAlt*+[]} + {\ht:special{t4ht>\jobname .tmp}} + {\ht:special{t4ht<\jobname .tmp}} +\Configure{PictureAlt*+} + {\let\sv:HtmlPar=\HtmlPar \let\HtmlPar=\empty + |<postscript for /Picture|>% + |<tex halign and cr/crcr|>% + \NoFonts\csname PauseMathClass\endcsname \SUBOff \SUPOff + \let\HCode=\:gobble |%\offinterlineskip|% + \let\EndPicture=\empty + \ht:special{t4ht>\jobname 1.tmp}% + } + {\ht:special{t4ht<\jobname 1.tmp}% + \let\HCode=\:HCode + \let\EndPicture=\:UnDef \let\HtmlPar=\sv:HtmlPar \SUBOn \SUPOn + \csname EndPauseMathClass\endcsname \EndNoFonts + |<tex4ht halign and cr/crcr|>% + |<delay postscript|>} +>>> + + + +Was \verb+\SUBOff \SUPOff+. Any problems? + +\<postscript for /Picture\><<< +\def\PsCode##1{{\ht:special{\PsCodeSpecial##1}}}% +>>> + +\<tex halign and cr/crcr\><<< +\iffalse{\fi +\let\sv:halign=\halign +\let\sv:cr=\cr +\let\sv:crcr=\crcr +\iffalse}\fi +\RecallTeXcr \let\halign =\TeXhalign +>>> + +\<tex4ht halign and cr/crcr\><<< +\iffalse{\fi +\let\halign=\sv:halign +\let\cr=\sv:cr +\let\crcr=\sv:crcr +\iffalse}\fi +>>> + +\<delay postscript\><<< +\let\PsCode=\relax +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Last File} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +A utility file for letting the openoffice script at tex4ht.env know +when the files are ready for zipping. + +\<insert last file\><<< + \ht:special{t4ht>\jobname .4od}% + \ht:special{t4ht*>}% + \ht:special{t4ht<\jobname .4od}% +>>> + + +\<configure ooffice tex4ht\><<< +\:CheckOption{.gif} \if:Option + \Configure{Picture}{.gif} +\fi +\:CheckOption{.wmf} \if:Option + \Configure{Picture}{.wmf} +\fi +\:CheckOption{.svg} \if:Option + \Configure{Picture}{.svg} +\fi +\:CheckOption{info}\if:Option + \Log:Note{to request a format for dvi pictures, + use the desired command line option from: + `.gif', `.svg', `.wmf'} +\fi +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{Shared} +%%%%%%%%%%%%%%%%%%%%%% + + + + +\<oo2 tex4ht\><<< +\Configure{Preamble} + {} + {|<oo2 settings.xml|>% |%before mathml|% + |<switch to main body OOstlyles|>% + |<switch to main body OOmanifest|>% + |<oo2 meta.xml|>% + } +>>> + + + + +\<oo2 tex4ht\><<< +\Configure{@/BODY} + {\relax + \ifnum \FileNumber=1 + |<oo2 styles at /@BODY|>% + |<manifest at /@BODY|>% + |<insert last file|>% + \fi + } +>>> + + + + + + + +\<configure ooffice tex4ht\><<< +\Configure{CutAtTITLE+}{} +\Configure{HPageTITLE+}{} +\Configure{TITLE}{}{} +\Configure{TITLE+}{}{} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Title Page} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<ooffice title page\><<< +\Configure{maketitle} + {\HCode{<!--begin maketitle-->}} + {\HCode{<!--end maketitle-->}\par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="Title|<cond rtl class|>" + >}} + {\HCode{</text:p>}} +>>> + + +\<ooffice title page\><<< +\Configure{thanks author date and} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="Text-body|<cond rtl class|>" + >}} + {\HCode{</text:p>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="author|<cond rtl class|>" + >}} + {\HCode{</text:p>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="date|<cond rtl class|>" + >}} + {\HCode{</text:p>}} + {} + {}% {\HCode{<text:line-break/>}} +>>> + + +\<footnote thank\><<< +\Configure{thank} + {\setbox\tmp:bx=\hbox\bgroup} + {\egroup} + {\NoFonts \leavevmode \bgroup \protect\Configure{$}{}{}{}% + \hbox{\HCode{<\text:footnote\Hnewline\text:note:class + text:id="}|<thank id|>% + \HCode{"><\text:footnote-citation>}}% + } + {\egroup \EndNoFonts + \HCode{</\text:footnote-citation><\text:footnote-body> + <text:p\Hnewline text:style-name="Footnote" ><text:s/>}} + {\HCode{</text:p></\text:footnote-body></\text:footnote>}} +>>> + + + + + + +\<oo2 tex4ht\><<< +\def\text:footnote{text:note} +\:CheckOption{endnotes}\if:Option + \def\text:note:class{text:note-class="endnote" } +\else + \def\text:note:class{text:note-class="footnote" } + \Log:Note{for end notes instead of footnotes, + use the command line option `endnotes'} +\fi +>>> + + + + +\<ooffice title page\><<< +\NewConfigureOO{title} +\ConfigureOO{title}{% +<style:style style:name="Title" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="author" + style:class="chapter">\Hnewline +<style:paragraph-properties fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + style:font-size-asian="18pt" + style:font-weight-asian="bold" + style:font-size-complex="18pt" + style:font-weight-complex="bold" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style> \Hnewline |<Title rtl|> } +>>> + + +\<ooffice title page\><<< +\NewConfigureOO{author} +\ConfigureOO{author}{% +<style:style style:name="author" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="date">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style>\Hnewline |<author rtl|>} +>>> + +\<ooffice title page\><<< +\NewConfigureOO{date} +\ConfigureOO{date}{% +<style:style style:name="date" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style>\Hnewline |<date rtl|>} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Scr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice scrbook\><<< +|<scr title page|> +>>> + + +\<configure ooffice scrreprt\><<< +|<scr title page|> +>>> + + +\<scr title page\><<< +\ConfigureEnv{titlepage} + {\bgroup + \ifvmode \IgnorePar\fi \EndP +% \HCode{<div class="titlepage">}% + \Configure{tabular}{}{}{}{}{}{}% + \ConfigureEnv{tabular}{}{}{}{}{}{}% + \ConfigureEnv{center}{}{}{}{}} + {\ifvmode \IgnorePar\fi \EndP +% \HCode{</div>}% + \egroup} + {} {} +\Configure{dedication} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<text:p text:style-name="Text-body" >}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</text:p>}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Abstract} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<ooffice title page\><<< +\ConfigureEnv{abstract} + {\IgnorePar\EndP \bgroup + \Configure{HtmlPar} + {\EndP \HCode{<text:p + text:style-name="abstract|<cond rtl class|>">}} + {\EndP \HCode{<text:p + text:style-name="abstract|<cond rtl class|>">}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% + \par \ShowPar + } + {\ifvmode \IgnorePar\fi \EndP \egroup \ShowPar\par \IgnoreIndent } + {\ifvmode \IgnorePar\fi\EndP + \HCode{<text:p text:style-name="abstract-title" >}% + } + {\HCode{</text:p>}} +>>> + + +\<ooffice title page\><<< +\NewConfigureOO{abstract} +\ConfigureOO{abstract}{\Hnewline +<style:style style:name="abstract" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-left="3cm" + fo:margin-right="3cm" + fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="10pt" + fo:text-indent="0cm" + style:auto-text-indent="false"/>\Hnewline +</style:style>\Hnewline |<abstract rtl|> } +>>> + +\<ooffice title page\><<< +\NewConfigureOO{abstract-title} +\ConfigureOO{abstract-title}{\Hnewline +<style:style style:name="abstract-title" + style:family="paragraph" + style:parent-style-name="abstract" + style:next-style-name="abstract">\Hnewline +<style:paragraph-properties fo:margin-top="0.499cm" + fo:margin-bottom="0cm" + fo:font-weight="bold" + fo:text-align="center" + style:justify-single-word="false"/>\Hnewline +</style:style>\Hnewline +} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{List Environments} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%% + +\begin{description} +\item[Itemized Lists] + + + +\<configure ooffice latex\><<< +\ConfigureList{itemize}% + {\EndP\HCode{|<input line num|><\text:unorderedlist + text:style-name="Itemize|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p + text:style-name="Inside-itemize|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p + text:style-name="Inside-itemize|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} + {\HCode{</text:p>\Hnewline}}% + \gHAdvance\BegEnd:D by 1 + } + {\gHAdvance\BegEnd:D by -1 + \EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:unorderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item\DeleteMark} + {\HCode{<text:list-item>}\par\ShowPar + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} +>>> + + + + + + + +\<configure ooffice latex\><<< +\NewConfigureOO{itemize} +\ConfigureOO{itemize} + {|<shared oo+ itemize style|>% + |<oo2+ itemize style|>% + |<oo2+ itemize style rtl|>} +>>> + + + + + + + + + + + + + + +\<oo2+ itemize style\><<< +<text:list-style style:name="Itemize" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x2022;" >\Hnewline + <style:list-level-properties + text:space-before="0.15in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="2" + text:style-name="Bullet-Symbols" + text:bullet-char="-" >\Hnewline + <style:list-level-properties + text:space-before="0.35in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" + />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="3" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x204E;" >\Hnewline + <style:list-level-properties + text:space-before="0.55in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="4" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x00B7;" >\Hnewline + <style:list-level-properties + text:space-before="0.75in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> +</text:list-style> +>>> + + + + +\<shared oo+ itemize style\><<< +<style:style style:name="Inside-itemize" + style:family="paragraph" + style:parent-style-name="Standard" + style:list-style-name="Itemize">\Hnewline + <style:paragraph-properties + fo:margin-left="0in" + fo:margin-right="0in" + fo:margin-top="0in" + fo:margin-bottom="0.15in" + fo:text-indent="0in" + style:auto-text-indent="false"/> +</style:style> +>>> + + +\item[Enumerated Lists] + + +\<configure ooffice latex\><<< +\NewConfigureOO{enumerate} +\:CheckOption{enumerate+} \if:Option + |<oo-description for enumerate|> +\else + |<oo-enumerate for enumerate|> + |<description-based enumerate list note|> +\fi +>>> + +\<description-based enumerate list note\><<< +\Log:Note{for enumerated list elements with valued data, + use the command line option `enumerate+'} +>>> + + +\<oo-enumerate for enumerate\><<< +\ConfigureList{enumerate}% + {\EndP\HCode{<\text:orderedlist + text:style-name="Enumerate|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p + text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p + text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} {\HCode{</text:p>\Hnewline}}} + {\EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:orderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item\DeleteMark} + {\HCode{<text:list-item>}\par\ShowPar + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} +>>> + + + + +\<shared oo+ enumerate style\><<< +<style:style style:name="Inside-enumerate" + style:family="paragraph" + style:parent-style-name="Text-body" + style:list-style-name="Enumerate">\Hnewline + <style:paragraph-properties + fo:margin-left="0in" + fo:margin-right="0in" + fo:margin-top="0in" + fo:margin-bottom="0.15in" + fo:text-indent="0in" + style:auto-text-indent="false"/> +</style:style> +>>> + + + + + +\<oo-enumerate for enumerate\><<< +\ConfigureOO{enumerate}% + {|<shared oo+ enumerate style|>% + |<oo2+ enumerate style|>% + |<shared oo+ enumerate style rtl|>% + |<oo2+ enumerate style rtl|>} +>>> + + +\<configure ooffice latex\><<< +\NewConfigure{enumerate:1}{3} +\NewConfigure{enumerate:2}{3} +\NewConfigure{enumerate:3}{3} +\NewConfigure{enumerate:4}{3} +\Configure{enumerate:1}{1}{}{.} +\Configure{enumerate:2}{a}{(}{)} +\Configure{enumerate:3}{i}{}{.} +\Configure{enumerate:4}{A}{}{.} +>>> + + + + + +\<oo2+ enumerate style\><<< +<text:list-style style:name="Enumerate">\Hnewline + <text:list-level-style-number + text:level="1" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:1\endcsname" + style:num-suffix="\csname c:enumerate:1\endcsname" + style:num-format="\csname a:enumerate:1\endcsname" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.15in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="2" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:2\endcsname" + style:num-suffix="\csname c:enumerate:2\endcsname" + style:num-format="\csname a:enumerate:2\endcsname" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.35in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="3" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:3\endcsname" + style:num-suffix="\csname c:enumerate:3\endcsname" + style:num-format="\csname a:enumerate:3\endcsname" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.6in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="4" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:4\endcsname" + style:num-suffix="\csname c:enumerate:4\endcsname" + style:num-format="\csname a:enumerate:4\endcsname" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.8in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline +</text:list-style>\Hnewline +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\item[Description Lists] +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice latex\><<< +\let\end:itm=\empty +\ConfigureList{description}% + {\EndP + \bgroup + \HCode{<text:list + text:style-name="description\if@rl-rtl\fi" + text:name="description"\Hnewline>}% + \PushMacro\end:itm + \global\let\end:itm=\empty + \HTML:PAR{dd|<cond rtl class|>}{dd|<cond rtl class|>}% + \gHAdvance\BegEnd:D by 1 + } + {\gHAdvance\BegEnd:D by -1 + \PopMacro\end:itm \global\let\end:itm \end:itm + \EndP + \HCode{<!--/dd-->}% + \HCode{</text:list-item>} + \HCode{</text:list>}% + \egroup + \ShowPar} + {\end:itm + \global\def\end:itm{\EndP + \HCode{<!--/dd-->}% + \HCode{</text:list-item>}% + }% + \HCode{<text:list-item>% + <text:h text:style-name="dt|<cond rtl class|>"\Hnewline >% + }% + } + {\EndP + \HCode{</text:h>}% + \HCode{<!--dd\Hnewline class="description"-->}% + \par + } +>>> + + + + + + +\<configure ooffice enumerate\><<< +|<oo-description for enumerate|> +>>> + +\<oo-description for enumerate\><<< +\ConfigureList{enumerate}% + {\EndP\HCode{<\text:orderedlist + text:style-name="Enumerate|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p + text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p + text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} {\HCode{</text:p>\Hnewline}}} + {\EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:orderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item \let\sv:DeleteMark\DeleteMark + \let\DeleteMark\DeleteMark: \DeleteMark} + {\HCode{<text:list-item>}% + \par\ShowPar + \HCode{<text:span + text:style-name="enum-label">}\AnchorLabel + \box\tmp:bx + \let\DeleteMark\sv:DeleteMark + \HCode{</text:span><text:s/>}% + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} +\def\DeleteMark:#1\@labels{\hfill\break + \setbox\tmp:bx\vbox{\box\@labels}} +>>> + + + + +\<oo-description for enumerate\><<< +\ConfigureOO{enumerate}% + {|<shared oo+ enumerate style|>% + |<enumerate.sty style|>} +>>> + + + +\<enumerate.sty style\><<< +<text:list-style style:name="Enumerate">\Hnewline + <text:list-level-style-number + text:level="1" + text:style-name="Numbering-Symbols" + style:num-prefix="" + style:num-suffix="" + style:num-format="" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.15in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="2" + text:style-name="Numbering-Symbols" + style:num-prefix="" + style:num-suffix="" + style:num-format="" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.35in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="3" + text:style-name="Numbering-Symbols" + style:num-prefix="" + style:num-suffix="" + style:num-format="" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.6in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="4" + text:style-name="Numbering-Symbols" + style:num-prefix="" + style:num-suffix="" + style:num-format="" + >\Hnewline + <style:list-level-properties + text:min-label-width="0.2in" + text:space-before="0.8in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline +</text:list-style>\Hnewline +>>> + + + + + + +\<configure ooffice latex\><<< +\NewConfigureOO{description} +\ConfigureOO{description}{|<oo2+ description style|>} +>>> + + + + + + + + +\<oo2+ description style\><<< +<text:list-style style:name="description" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0in" + text:min-label-width="0in" + text:min-label-distance="0in" />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="2" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.2in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" + />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="3" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.4in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="4" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.6in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> +</text:list-style> +>>> + + + + + + +\<oo2+ description style\><<< +<style:style + style:name="dd" + style:family="paragraph" + style:parent-style-name="Standard"> + <style:paragraph-properties + fo:margin-left="0.35in" + fo:margin-right="0in" + fo:margin-top="0cm" + fo:margin-bottom="0.2cm" + fo:text-indent="0in" + style:auto-text-indent="false"/> +</style:style> +<style:style + style:name="dt" + style:family="paragraph" + style:parent-style-name=""> + <style:paragraph-properties + fo:margin-left="0.1in" + fo:margin-right="0in" + fo:text-indent="0in" + style:auto-text-indent="false"/> + <style:text-properties + fo:font-weight="bold" + /> +</style:style> +>>> + + + + + +\end{description} + + +%%%%%%%%%%%%% +\subsection{List} +%%%%%%%%%%%%% + + +\<configure ooffice latex\><<< +\let\end:itm=\empty +\ConfigureList{list}% + {\EndP\HCode{<text:list + text:style-name="list|<cond rtl class|>" + text:name="list"\Hnewline>}% + \PushMacro\end:itm + \global\let\end:itm=\empty + \SaveHtmlPar \HTML:PAR{dd}{dd}% + } + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP + \RecallHtmlPar + \HCode{</text:list-item></text:list>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\HCode{</text:list-item>}}% + \HCode{<text:list-item><text:h + text:style-name="dt|<cond rtl class|>"\Hnewline >}\bgroup \bf} + {\egroup\HCode{</text:h>}\par\ShowPar} +>>> + + + +\<configure ooffice latex\><<< +\NewConfigureOO{list} +\ConfigureOO{list}{|<oo2+ list style|>} +>>> + + + + +\<oo2+ list style\><<< +<text:list-style style:name="list" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0in" + text:min-label-width="0in" + text:min-label-distance="0in" />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="2" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.2in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" + />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="3" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.4in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="4" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.6in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> +</text:list-style> +>>> + + +\<oo2+ list style\><<< +<style:style + style:name="dd" + style:family="paragraph" + style:parent-style-name="Standard"> + <style:paragraph-properties + fo:margin-left="0.35in" + fo:margin-right="0in" + fo:margin-top="0cm" + fo:margin-bottom="0.2cm" + fo:text-indent="0in" + style:auto-text-indent="false"/> +</style:style> +<style:style + style:name="dt" + style:family="paragraph" + style:parent-style-name=""> + <style:paragraph-properties + fo:margin-left="0.1in" + fo:margin-right="0in" + fo:text-indent="0in" + style:auto-text-indent="false"/> + <style:text-properties + fo:font-weight="bold" + /> +</style:style> +>>> + + + +%%%%%%%%%%%%% +\subsection{Apa} +%%%%%%%%%%%%% + +\<configure ooffice apacite\><<< +\Configure{bibcite}{\def\ { }} +>>> + + +\<configure ooffice apa\><<< +\Configure{maketitle} + {\HCode{<!--begin maketitle-->}|<apa maketitle|>} + {\HCode{<!--end maketitle-->}\par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="Title|<cond rtl class|>" + >}} + {\HCode{</text:p>}} +\Configure{affil} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="affiliation\if@rl + -rtl\fi" + >}} + {\HCode{</text:p>}} +\Configure{abstract} + {\Hclearpage \IgnorePar\EndP \bgroup + \Configure{HtmlPar} + {\EndP \HCode{<text:p + text:style-name="abstract\if@rl-rtl\fi" + >}} + {\EndP \HCode{<text:p + text:style-name="abstract\if@rl-rtl\fi" + >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% + \ht:everypar{\HtmlPar}\par \ShowPar + } + {\ifvmode \IgnorePar\fi \EndP + \egroup \Hclearpage \ShowPar\par \IgnoreIndent } +>>> + + +\<apa maketitle\><<< +\Configure{centercr} + {\ht:everypar{\ht:everypar{\HtmlPar}}}% + {\ht:everypar{\ht:everypar{\HtmlPar}}}% +>>> + + + + + + + +\<configure ooffice apa\><<< +\ConfigureOO{itemize} + {|<apa itemize style|>|<apa itemize style rtl|>} +\ConfigureList{APAenumerate}% + {\EndP\HCode{<\text:orderedlist + text:style-name="Enumerate|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} {\HCode{</text:p>\Hnewline}}} + {\EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:orderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item\DeleteMark} + {\HCode{<text:list-item>}\par\ShowPar + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} +\ConfigureList{APAitemize}% + {\EndP\HCode{<\text:unorderedlist + text:style-name="Itemize|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p text:style-name="Inside-itemize|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p text:style-name="Inside-itemize|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} {\HCode{</text:p>\Hnewline}}} + {\EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:unorderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item\DeleteMark} + {\HCode{<text:list-item>}\par\ShowPar + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} +>>> + + + + +\<apa itemize style\><<< +<text:list-style style:name="Itemize">\Hnewline + <text:list-level-style-bullet + \list:text:level="1" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x2022;" >\Hnewline + <style:text-properties + text:space-before="0.15in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet>\Hnewline + <text:list-level-style-bullet + \list:text:level="2" + text:bullet-char="\string&\:sharp x2022;" >\Hnewline + <style:text-properties + text:space-before="0.35in" + text:min-label-distance="0.05in" />\Hnewline + </text:list-level-style-bullet>\Hnewline + <text:list-level-style-bullet + \list:text:level="3" + text:bullet-char="\string&\:sharp x2022;" >\Hnewline + <style:text-properties + text:space-before="0.55in" + text:min-label-distance="0.05in" />\Hnewline + </text:list-level-style-bullet>\Hnewline + <text:list-level-style-bullet + \list:text:level="4" + text:bullet-char="\string&\:sharp x2022;" >\Hnewline + <style:text-properties + text:space-before="0.75in" + text:min-label-distance="0.05in" />\Hnewline + </text:list-level-style-bullet>\Hnewline +</text:list-style>\Hnewline +>>> + + +\<apa itemize style\><<< +<style:style style:name="Inside-itemize" + style:family="paragraph" + style:parent-style-name="Text-body" + style:list-style-name="Itemize"/>\Hnewline +>>> + + + +\<configure ooffice apa\><<< + |<oo2 apa|> +>>> + + + + +\<oo2 apa\><<< +\ConfigureOO{enumerate}% + {|<shared apa enumerate style|>% + |<oo2 apa enumerate style|>% + |<oo2 apa enumerate style rtl|>} +>>> + + + + + +\<oo2 apa enumerate style\><<< +<text:list-style style:name="Enumerate">\Hnewline + <text:list-level-style-number + text:level="1" + style:num-prefix="" + style:num-suffix="." >\Hnewline + <style:list-level-properties + text:space-before="0.15in" + style:num-format="1" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="2" + style:num-prefix="" + style:num-suffix="." >\Hnewline + <style:list-level-properties + text:space-before="0.35in" + style:num-format="1" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="3" + style:num-prefix="" + style:num-suffix="." >\Hnewline + <style:list-level-properties + text:space-before="0.6in" + style:num-format="1" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="4" + style:num-prefix="" + style:num-suffix="." >\Hnewline + <style:list-level-properties + text:space-before="0.8in" + style:num-format="1" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline +</text:list-style>\Hnewline +>>> + +\<shared apa enumerate style\><<< +<style:style style:name="Inside-enumerate" + style:family="paragraph" + style:parent-style-name="Text-body" + style:list-style-name="Enumerate"/>\Hnewline +>>> + + +%%%%%%%%%%%%% +\subsection{Paralist} +%%%%%%%%%%%%% + +\<configure ooffice paralist\><<< +\ConfigureList{compactenum}% + {\EndP \end:itm + \SaveHtmlPar \HCode{<text:list + text:style-name="compactenum|<cond rtl class|>" + text:name="compactenum"\Hnewline>}% + \PushMacro\end:Itm + \global\let\end:itm=\empty + \global\let\end:Itm=\empty + \Configure{HtmlPar} + {\end:itm\gdef\end:itm{\HCode{</text:p>\Hnewline}}% + \HCode{<text:p + text:style-name="dd|<cond rtl class|>" >}} + {\end:itm\gdef\end:itm{\HCode{</text:p>\Hnewline}}% + \HCode{<text:p + text:style-name="dd|<cond rtl class|>" >}} + {}{}% + } + {\end:itm \end:Itm \global\let\end:itm=\empty + \PopMacro\end:Itm \global\let\end:Itm\end:Itm + \HCode{</text:list>}\RecallHtmlPar \ShowPar} + {\end:itm \end:Itm \gdef\end:Itm{\HCode{</text:list-item>}}% + \gdef\end:itm{\HCode{</text:h>}}\HCode{<text:list-item><text:h + text:style-name="dt|<cond rtl class|>"\Hnewline >}\bgroup \bf} + {\egroup \end:itm \gdef\end:itm{\HCode{</text:p>}}% + \HCode{<text:p\Hnewline + text:style-name="dd|<cond rtl class|>"\Hnewline + >}} +\NewConfigureOO{compactenum} +\ConfigureOO{compactenum}{|<compactenum style|>} +>>> + + +\<compactenum style\><<< +<text:list-style style:name="compactenum" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0in" + text:min-label-width="0in" + text:min-label-distance="0in" />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="2" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.2in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" + />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="3" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.4in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="4" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.6in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> +</text:list-style> +>>> + +\<configure ooffice paralist\><<< +\ConfigureList{compactitem}% + {\EndP\HCode{|<input line num|><\text:unorderedlist + text:style-name="compactitem|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p + text:style-name="Inside-compactitem|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p + text:style-name="Inside-compactitem|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} + {\HCode{</text:p>\Hnewline}}% + \gHAdvance\BegEnd:D by 1 + } + {\gHAdvance\BegEnd:D by -1 + \EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:unorderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item\DeleteMark} + {\HCode{<text:list-item>}\par\ShowPar + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} +\NewConfigureOO{compactitem} +\ConfigureOO{compactitem} + {|<shared oo+ compactitem style|>% + |<oo2+ compactitem style|>% + |<oo2+ compactitem style rtl|>} +>>> + + + +\<oo2+ compactitem style\><<< +<text:list-style style:name="compactitem" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x2022;" >\Hnewline + <style:list-level-properties + text:space-before="0.15in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="2" + text:style-name="Bullet-Symbols" + text:bullet-char="-" >\Hnewline + <style:list-level-properties + text:space-before="0.35in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" + />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="3" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x204E;" >\Hnewline + <style:list-level-properties + text:space-before="0.55in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="4" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x00B7;" >\Hnewline + <style:list-level-properties + text:space-before="0.75in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> +</text:list-style> +>>> + + + + +\<shared oo+ compactitem style\><<< +<style:style style:name="Inside-compactitem" + style:family="paragraph" + style:parent-style-name="Standard" + style:list-style-name="compactitem">\Hnewline + <style:paragraph-properties + fo:margin-left="0in" + fo:margin-right="0in" + fo:margin-top="0in" + fo:margin-bottom="0.15in" + fo:text-indent="0in" + style:auto-text-indent="false"/> +</style:style> +>>> + +\<configure ooffice paralist\><<< +\ConfigureList{compactdesc}% + {\EndP \end:itm + \SaveHtmlPar \HCode{<text:list + text:style-name="compactdesc|<cond rtl class|>" + text:name="compactdesc"\Hnewline>}% + \PushMacro\end:Itm + \global\let\end:itm=\empty + \global\let\end:Itm=\empty + \Configure{HtmlPar} + {\end:itm\gdef\end:itm{\HCode{</text:p>\Hnewline}}% + \HCode{<text:p + text:style-name="dd|<cond rtl class|>" >}} + {\end:itm\gdef\end:itm{\HCode{</text:p>\Hnewline}}% + \HCode{<text:p + text:style-name="dd|<cond rtl class|>" >}} + {}{}% + } + {\end:itm \end:Itm \global\let\end:itm=\empty + \PopMacro\end:Itm \global\let\end:Itm\end:Itm + \HCode{</text:list>}\RecallHtmlPar \ShowPar} + {\end:itm \end:Itm \gdef\end:Itm{\HCode{</text:list-item>}}% + \gdef\end:itm{\HCode{</text:h>}}\HCode{<text:list-item><text:h + text:style-name="dt|<cond rtl class|>"\Hnewline >}\bgroup \bf} + {\egroup \end:itm \gdef\end:itm{\HCode{</text:p>}}% + \HCode{<text:p\Hnewline + text:style-name="dd|<cond rtl class|>"\Hnewline + >}} +\NewConfigureOO{compactdesc} +\ConfigureOO{compactdesc}{|<compactdesc style|>} +>>> + + +\<compactdesc style\><<< +<text:list-style style:name="compactdesc" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0in" + text:min-label-width="0in" + text:min-label-distance="0in" />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="2" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.2in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" + />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="3" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.4in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="4" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.6in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> +</text:list-style> +>>> + +\<configure ooffice paralist\><<< +\ConfigureList{asparaitem}% + {\EndP|<boxed env|>\HCode{<!--asparaitem-->}\ShowPar\ShowIndent} + {\EndP|<end boxed env|>\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{asparaenum}% + {\EndP|<boxed env|>\HCode{<!--asparaenum-->}\ShowPar\ShowIndent} + {\EndP|<end boxed env|>\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +\ConfigureList{asparadesc}% + {\EndP|<boxed env|>\HCode{<!--asparadesc-->}\ShowPar\ShowIndent} + {\EndP|<end boxed env|>\ShowPar} + {\par\ShowPar{\parindent=10pt\leavevmode}} + {} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Bibliography} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Background} +%%%%%%%%%%%%% + +\begin{verbatim} + +<text:bibliography + text:style-name="Sect1" + text:name="Bibliography1"> + <text:bibliography-source> + + <text:index-title-template + text:style-name="Bibliography_20_Heading">Bibliography + </text:index-title-template> + + <text:bibliography-entry-template + text:bibliography-type="article" + text:style-name="Bibliography_20_1"> + <text:index-entry-bibliography + text:bibliography-data-field="identifier"/> + <text:index-entry-span>: </text:index-entry-span> + <text:index-entry-bibliography + text:bibliography-data-field="author"/> + <text:index-entry-span>, </text:index-entry-span> + <text:index-entry-bibliography + text:bibliography-data-field="title"/> + <text:index-entry-span>, </text:index-entry-span> + <text:index-entry-bibliography + text:bibliography-data-field="year"/> + </text:bibliography-entry-template> + + <text:bibliography-entry-template + text:bibliography-type="book" + text:style-name="Bibliography_20_1"> + <text:index-entry-bibliography + text:bibliography-data-field="identifier"/> + <text:index-entry-span>: </text:index-entry-span> + <text:index-entry-bibliography + text:bibliography-data-field="author"/> + <text:index-entry-span>, </text:index-entry-span> + <text:index-entry-bibliography + text:bibliography-data-field="title"/> + <text:index-entry-span>, </text:index-entry-span> + <text:index-entry-bibliography text:bibliography-data-field="year"/> + </text:bibliography-entry-template> + + </text:bibliography-source> + <text:index-body> + <text:index-title + text:style-name="Sect2" + text:name="Bibliography1_Head"> + <text:p + text:style-name="Bibliography_20_Heading">Bibliography</text:p> + </text:index-title> + <text:p text:style-name="P1">1: author, title, year</text:p> + <text:p text:style-name="P1">2: auth, my title, </text:p> + </text:index-body> +</text:bibliography> +\end{verbatim} + + +%%%%%%%%%%%%%%%%%%% +\subsection{cite} +%%%%%%%%%%%%%%%%%%% + +\<configure ooffice latex\><<< +\Configure{cite} + {\HCode{<text:bibliography-mark + text:bibliography-type="custom1">}} + {\HCode{</text:bibliography-mark>}} + {\Link} {\EndLink} +\let\lat:cite\@cite +\def\@cite#1#2{{#1\if@tempswa , #2\fi}} +>>> + +\<\><<< +\Configure{cite} + {\HCode{<text:bibliography-mark text:identifier="}\bgroup + \def\:nbsp{ }\NoFonts + \setbox0=\hbox\bgroup + } + {\egroup + \copy0 + \EndNoFonts + \HCode{"\Hnewline text:bibliography-type="custom1" + >}[\box0]\HCode{</text:bibliography-mark>}\egroup + } +% {}{} + {\Link}{\EndLink} +\let\lat:cite\@cite +\def\@cite#1#2{{#1\if@tempswa , #2\fi}} +>>> + +% {\HCode{<!--cite-->}} {\HCode{<!--/cite-->}} +% {\Link} {\EndLink} + + + +\<configure ooffice apacite\><<< +\Configure{cite} + {\HCode{<!--cite-->}\bgroup + \def\:nbsp{ }\NoFonts + } + {\EndNoFonts\egroup \HCode{<!--/cite-->}} + {}{} +\let\@cite\lat:cite +>>> + + + + + + +\begin{verbatim} +<text:bibliography-mark + text:identifier="shortname" + text:bibliography-type="article" + text:address="address" + text:annote="annotation" + text:author="author" + text:booktitle="book title" + text:chapter="chapter" + text:edition="edition" + text:editor="editor" + text:howpublished="publication type" + text:institution="institution" + text:journal="journal" + text:month="month" + text:note="note" + text:number="number" + text:organizations="organization" + text:pages="pages" + text:publisher="publisher" + text:school="university" + text:series="series" + text:title="title" + text:report-type="report type" + text:volume="volume" + text:year="year" + text:url="url" + text:isbn="isbn 1234567890"> +[1] +</text:bibliography-mark> +\end{verbatim} + + + +%%%%%%%%%%%%%%%%%%% +\subsection{Items} +%%%%%%%%%%%%%%%%%%% + +How the problem in the following post can be resolved? + +\url{http://www.mail-archive.com/dev@bibliographic.openoffice.org/msg00840.html} + + +\<ooffice bib with bibname\><<< +\def\ref:name{\bibname} +|<ooffice bib|> +>>> + + +\<ooffice bib with refname\><<< +\def\ref:name{\refname} +|<ooffice bib|> +>>> + + + +\<ooffice bib\><<< +\HAssign\bib:N=0 +\:CheckOption{bib-}\if:Option + \ConfigureList{thebibliography}% + {\IgnorePar\EndP \gHAdvance\bib:N by 1 + \let\en:bib=\empty + } + {\en:bib} + {\en:bib\def\en:bib{\HCode{</text:p>}}\HCode + {<text:p text:style-name="p-bibitem" >}} + {} +\else + \Log:Note{for a degraded bibliography friendlier for conversion to .doc, + use the command line option `bib-'} + \ConfigureList{thebibliography}% + {\IgnorePar\EndP \gHAdvance\bib:N by 1 + \HCode{<text:bibliography text:name="bib-\bib:N" > + <text:bibliography-source>\Hnewline + |<bibliography source|>\Hnewline + </text:bibliography-source>\Hnewline + <text:index-body>\Hnewline + }\let\en:bib=\empty + } + {\en:bib\HCode{</text:index-body></text:bibliography>}} + {\en:bib\def\en:bib{\HCode{</text:p>}}\HCode + {<text:p text:style-name="p-bibitem" >}} + {} +\fi +\Configure{bibitem}{\Link}{\EndLink\space } +>>> + + +\<ooffice bib\><<< +\NewConfigureOO{p-bibitem} +\ConfigureOO{p-bibitem}{% + <style:style style:name="p-bibitem"\Hnewline + style:family="paragraph" \Hnewline + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties fo:margin-left="1cm"\Hnewline + fo:text-indent="-1cm"\Hnewline + fo:margin-right="0cm" \Hnewline + style:auto-text-indent="false">\Hnewline + <style:tab-stops/>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style>\Hnewline +} +>>> + + +\<bibliography source\><<< +<text:index-title-template>}\NoFonts\ref:name\EndNoFonts\HCode{% +</text:index-title-template>\Hnewline +% + <text:bibliography-entry-template\Hnewline + text:bibliography-type="custom1" + text:style-name="Bibliography11" >\Hnewline +% + <text:index-entry-bibliography + text:bibliography-data-field="identifier" />\Hnewline +% + <text:index-entry-span>: </text:index-entry-span>\Hnewline + <text:index-entry-bibliography + text:bibliography-data-field="author" />\Hnewline + <text:index-entry-span>, </text:index-entry-span>\Hnewline +% + <text:index-entry-bibliography + text:bibliography-data-field="title" />\Hnewline + <text:index-entry-span>, </text:index-entry-span>\Hnewline +% + <text:index-entry-bibliography + text:bibliography-data-field="year" />\Hnewline + </text:bibliography-entry-template>\Hnewline +>>> + + + +%%%%%%%%%%%%%%%%%%% +\subsection{jurabib} +%%%%%%%%%%%%%%%%%%% + + + + +\<configure ooffice jurabib\><<< +\HAssign\jbancorDepth=0 +\Configure{jblink} + {\HAdvance\jbancorDepth by 1 \Link} + {\EndLink \HAdvance\jbancorDepth by -1 } +\Configure{jbanchor} + {\bgroup + \ifnum \jbancorDepth=0 + \Configure{Link}{text:a}{xlink:href=}% + {office:name=}{}% + \else + \Configure{Link}{text:span}{}{text:style-name=}{}% + \def\NOHREF:##1{}% + \fi + \Link} + {\EndLink \egroup} +>>> + +Nested anchors are broken +See html4 comment regarding \verb+\Configure{jbanchor}{\Link}{\EndLink}+ + +%%%%%%%%%%%%% +\subsection{biblatex} +%%%%%%%%%%%%% + +\<configure ooffice biblatex\><<< +\Configure{thebibliography}% + {\ifvmode \IgnorePar\fi \EndP + \EndP\HCode{<text:list text:style-name="printthebibliography" + text:name="printthebibliography"\Hnewline>}% + \PushMacro\end:itm + \global\let\end:itm=\empty} + {\ifvmode \IgnorePar\fi \EndP + \PopMacro\end:itm \global\let\end:itm \end:itm + \EndP\HCode{</text:p></text:list-item></text:list>}\ShowPar} + {\ifvmode \IgnorePar\fi \EndP + \end:itm \global\def\end:itm{\EndP\HCode{</text:p></text:list-item>}}% + \HCode{<text:list-item><text:h + text:style-name="printthebibliography-dt"\Hnewline>}\bgroup \bf} + {\ifvmode \IgnorePar\fi \EndP + \egroup\HCode{</text:h><text:p + text:style-name="printthebibliography-dd"\Hnewline>}\par\ShowPar} +>>> + +\<configure ooffice biblatex\><<< +\Configure{bibinit}{\IgnorePar} +>>> + + + +\<configure ooffice biblatex\><<< +\Configure{printshorthands} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:list + text:style-name="printshorthands" + text:name="printshorthands"\Hnewline + ><text:list-item><text:h + text:style-name="printshorthands-dt"\Hnewline>}% + } + {\ifvmode \IgnorePar\fi \EndP + \HCode{</text:list-item></text:list>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</text:list-item><text:list-item><text:h + text:style-name="printshorthands-dt"\Hnewline>}} + {\HCode{</text:h><text:p text:style-name="printshorthands-dd">}% + \Next:EndP{\HCode{</text:p>}}% + } +\Configure{@shorthands} + {\Configure{printfield-annotation} + {\HTML:PAR{printshorthands-dd}{printshorthands-dd}} + {}% + } +>>> + +\<configure ooffice biblatex\><<< +\Configure{biblatex-style}{authortitle}{} +\Configure{biblatex-style}{authortitle-comp}{} +\Configure{biblatex-style}{authortitle-tcomp}{} +\Configure{biblatex-style}{authortitle-icomp}{} +\Configure{biblatex-style}{authortitle-ibid}{} +\Configure{biblatex-style}{authoryear}{} +\Configure{biblatex-style}{authoryear-ibid}{} +\Configure{biblatex-style}{authoryear-comp}{} +\Configure{biblatex-style}{verbose}{} +\Configure{biblatex-style}{verbose-ibid}{} +\Configure{biblatex-style}{verbose-note}{} +\Configure{biblatex-style}{alphabetic-verb}{} +\Configure{biblatex-style}{alphabetic}{} +\Configure{biblatex-style}{numeric}{} +\Configure{biblatex-style}{numeric-verb}{} +\Configure{biblatex-style}{numeric-comp}{} +\Configure{biblatex-style}{draft}{} +\Configure{biblatex-style}{reading}{} +\Configure{biblatex-style}{verbose-trad1}{} +\Configure{biblatex-style}{verbose-trad2}{} +>>> + + + +\<configure ooffice latex\><<< +\NewConfigureOO{printshorthands} +\ConfigureOO{printshorthands}{|<printshorthands style|>} +>>> + + + +\<printshorthands style\><<< +<text:list-style style:name="printshorthands" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0in" + text:min-label-width="0in" + text:min-label-distance="0in" />\Hnewline + </text:list-level-style-bullet> +</text:list-style> +<style:style + style:name="printshorthands-dd" + style:family="paragraph" + style:parent-style-name="Standard"> + <style:paragraph-properties + fo:margin-left="0.35in" + fo:margin-right="0in" + fo:margin-top="0cm" + fo:margin-bottom="0.2cm" + fo:text-indent="0in" + style:auto-text-indent="false"/> +</style:style> +<style:style + style:name="printshorthands-dt" + style:family="paragraph" + style:parent-style-name=""> + <style:paragraph-properties + fo:margin-left="0.1in" + fo:margin-right="0in" + fo:text-indent="0in" + style:auto-text-indent="false"/> +</style:style> +>>> + + + + + + + + +\<configure ooffice latex\><<< +\NewConfigureOO{printthebibliography} +\ConfigureOO{printthebibliography}{|<printthebibliography style|>} +>>> + + + +\<printthebibliography style\><<< +<text:list-style style:name="printthebibliography" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0in" + text:min-label-width="0in" + text:min-label-distance="0in" />\Hnewline + </text:list-level-style-bullet> +</text:list-style> +<style:style + style:name="printthebibliography-dd" + style:family="paragraph" + style:parent-style-name="Standard"> + <style:paragraph-properties + fo:margin-left="0.35in" + fo:margin-right="0in" + fo:margin-top="0cm" + fo:margin-bottom="0.2cm" + fo:text-indent="-0.35in" + style:auto-text-indent="false"/> +</style:style> +<style:style + style:name="printthebibliography-dt" + style:family="paragraph" + style:parent-style-name=""> + <style:paragraph-properties + fo:margin-top="0cm" + fo:margin-bottom="0cm" + style:auto-text-indent="false"/> +</style:style> +>>> + + + + + + +%%%%%%%%%%%%% +\subsection{footnote-dw} +%%%%%%%%%%%%% + +\<configure ooffice footnote-dw\><<< +>>> + +% There used to be the following redefinition: +% \protected\long\def\mkfootnotecite#1{#1} +% I don't know what was the reasoning, but +% footnote citing works well with the current +% Biblatex and TeX4ht, so I think we can remove it. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{List-Based Environments} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Quotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<ooffice begin-end env\><<< +\ConfigureEnv{quote} + {|<begin env section|>} + {|<end env section|>\par\ShowPar} + {\EndP \ifvmode \IgnorePar\fi + \bgroup |<HtmlPar at quote|>% + } + {\IgnorePar\EndP \egroup \ShowPar \ShowIndent} +>>> + + +\<HtmlPar at quote\><<< +\Configure{HtmlPar} + {\EndP \HCode{|<input line num|>% + <text:p text:style-name="quote|<cond rtl class|>" + >}} + {\EndP \HCode{|<input line num|>% + <text:p text:style-name="quote|<cond rtl class|>" + >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% +>>> + +\<configure ooffice latex\><<< +\NewConfigureOO{quote} +\ConfigureOO{quote}{\Hnewline +<style:style style:name="quote" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-left="1cm" + fo:margin-right="1cm" + fo:margin-top="0.199cm" + fo:margin-bottom="0.199cm" + fo:text-indent="0cm" + style:auto-text-indent="false"/>\Hnewline +</style:style> +\Hnewline |<quote rtl|>} +>>> + + +\<configure ooffice csquotes\><<< +\Configure{displayquote}{\EndP% +\bgroup \Configure{HtmlPar}% +{\EndP \HCode{<text:p text:style-name="quote\if@rl-rtl\fi">}}% +{\EndP \HCode{<text:p text:style-name="quote\if@rl-rtl\fi">}}% +{\HCode{</text:p>}}% +{\HCode{</text:p>}}% +}{}{}{\egroup\noindent} +>>> + + + +%%%%%%%%%%%%% +\subsection{Environment Envelop} +%%%%%%%%%%%%% + + + + +\<configure ooffice latex\><<< +\HAssign\BegEnd:N=0 +\HAssign\BegEnd:D=0 +>>> + + + +\<begin env section\><<< +\ifvmode \IgnorePar\fi \EndP +\ifnum \BegEnd:D=0 + |<sectioned env|>% +\else + |<boxed env|>% +\fi +\gHAdvance\BegEnd:D by 1 +>>> + +\<end env section\><<< +\gHAdvance\BegEnd:D by -1 +\ifvmode \IgnorePar\fi\EndP +\ifnum \BegEnd:D=0 + |<end sectioned env|>% +\else + |<end boxed env|>% +\fi +>>> + + + + +\<sectioned env\><<< +\gHAdvance\BegEnd:N by 1 +\HCode{<text:section + text:style-name="begin-end-env" + text:name="begin-end-env-\BegEnd:N" + >% + <text:p text:style-name="begin-env-p" ></text:p>}% +>>> + +\<end sectioned env\><<< +\HCode{<text:p text:style-name="end-env-p" ></text:p></text:section>}% +>>> + + +\<boxed env\><<< +\gHAdvance\BegEnd:N by 1 +\hbox{\HCode{<text:p><draw:frame + draw:name="begin-end-env-\BegEnd:N" + draw:style-name="env-frame" + text:anchor-type="as-char" +% fo:min-width="0.14in" + svg:width="90\%" + draw:z-index="0" + > + <draw:text-box +% fo:min-height="0.14in" + >}}% +>>> + + +\<end boxed env\><<< +\hbox{\HCode{</draw:text-box> +</draw:frame></text:p> }}% +>>> + + + + + +\<configure ooffice latex\><<< +\NewConfigureOO{begin-end-env} +\ConfigureOO{begin-end-env}{\Hnewline +<style:style style:name="begin-env-p" style:family="paragraph">\Hnewline + <style:paragraph-properties fo:margin-top="2mm" + fo:margin-bottom="0mm" + fo:line-height="0.1mm" />\Hnewline +</style:style>\Hnewline +<style:style style:name="end-env-p" style:family="paragraph">\Hnewline + <style:paragraph-properties fo:margin-bottom="2mm" + fo:margin-top="0mm" + fo:line-height="0.1mm" />\Hnewline +</style:style>\Hnewline +} +>>> + +The indirect use of paragraphs is due to OpenOffice not recognizing +vertical spaces around sections. + +\begin{verbatim} +<style:style style:name="begin-end-env" + style:family="section">\Hnewline + <style:text-properties fo:margin-top="0.4cm" + fo:margin-bottom="0.4cm" />\Hnewline +</style:style>\Hnewline +\end{verbatim} + + +\<configure ooffice latex\><<< +\NewConfigureOO{env-frame} +\ConfigureOO{env-frame}{\Hnewline +<style:style + style:name="env-frame" + style:family="graphic" +>\Hnewline + <style:graphic-properties + style:vertical-pos="top" + style:vertical-rel="baseline" + style:horizontal-pos="from-left" + style:horizontal-rel="paragraph-content" + fo:padding="0in" + fo:border="none" + style:shadow="none" + />\Hnewline +</style:style>\Hnewline +} +>>> + + + +\<\><<< + style:parent-style-name="EnvFrame" + + +<style:style + style:name="EnvFrame" + style:family="graphic" +>\Hnewline + <style:graphic-properties + text:anchor-type="paragraph" +% style:wrap="parallel" +% style:number-wrapped-paragraphs="no-limit" + style:wrap-contour="false" + style:vertical-pos="top" + style:vertical-rel="paragraph-content" + style:horizontal-pos="center" + style:horizontal-rel="paragraph-content" + fo:padding="0in" + fo:border="0.0in"/> \Hnewline +</style:style> \Hnewline + +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Quotations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<ooffice begin-end env\><<< +\ConfigureEnv{quotation} + {|<begin env section|>} + {|<end env section|>\par\ShowPar \noindent} + {\IgnorePar\EndP \bgroup |<HtmlPar for quatation|>} + {\EndP\IgnorePar \egroup \ShowPar } +>>> + +\<HtmlPar for quatation\><<< +\Configure{HtmlPar} + {\EndP \HCode{<text:p text:style-name="quotation|<cond rtl class|>" + >}} + {\EndP \HCode{<text:p text:style-name="quotation|<cond rtl class|>" + >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% +>>> + +\<ooffice begin-end env\><<< +\NewConfigureOO{quotation} +\ConfigureOO{quotation} + {\Hnewline + <style:style style:name="quotation" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties + fo:margin-left="1cm" + fo:margin-right="1cm" + fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:text-indent="0.499cm" + style:auto-text-indent="true"/>\Hnewline + </style:style>\Hnewline |<quotation rtl|>% + } +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{flush right and left} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<ooffice begin-end env\><<< +\ConfigureEnv{flushright} + {|<begin env section|>\HCode{<!--begin flushright-->}} + {|<end env section|>% + \HCode{<!--end flushright-->}|<try env inline par|>} + {} {} +\ConfigureList{flushright} + {}{}{|<HtmlPar at flushright|>\par}{} +>>> + + +\<HtmlPar at flushright\><<< +\Configure{HtmlPar} + {\EndP \HCode{<text:p text:style-name="flushright" >}} + {\EndP \HCode{<text:p text:style-name="flushright" >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% +>>> + + + +\<ooffice begin-end env\><<< +\NewConfigureOO{flushright} +\ConfigureOO{flushright} + {\Hnewline +<style:style style:name="flushright" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body" + style:master-page-name=""> +<style:paragraph-properties fo:margin-top="0.199cm" + fo:margin-bottom="0.199cm" + fo:text-align="end" + style:justify-single-word="false" + style:page-number="0"/> +</style:style>\Hnewline + } +>>> + + + + +\<ooffice begin-end env\><<< +\ConfigureEnv{flushleft} + {|<begin env section|>\HCode{<!--begin flushleft-->}} + {|<end env section|>% + \HCode{<!--end flushleft-->}\par\ShowPar} + {} {} +\ConfigureList{flushleft} + {}{}{|<HtmlPar at flushleft|>\par}{} +>>> + + +\<HtmlPar at flushleft\><<< +\Configure{HtmlPar} + {\EndP \HCode{<text:p text:style-name="flushleft" >}} + {\EndP \HCode{<text:p text:style-name="flushleft" >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% +>>> + + + +\<ooffice begin-end env\><<< +\NewConfigureOO{flushleft} +\ConfigureOO{flushleft} + {\Hnewline +<style:style style:name="flushleft" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body"> +<style:paragraph-properties fo:margin-top="0.199cm" + fo:margin-bottom="0.199cm" + fo:text-align="start" + style:justify-single-word="false"/> +</style:style> + \Hnewline} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{center} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<ooffice begin-end env\><<< +\ConfigureEnv{center} + {|<begin env section|>\HCode{<!--begin center-->}} + {|<end env section|>% + \HCode{<!--end center-->}\par|<try env inline par|>} + {} {} +\ConfigureList{center} + {}{}{|<HtmlPar at center|>\par}{} +>>> + +The \verb=\par= at the end of \verb=\ConfigureEnv{center}= +is required for cases like the following one. + +\begin{verbatim} +\documentclass[titlepage]{article} +\begin{document} + \begin{abstract} + file. (see below) + + file. (see below) + + file. (see below) + \end{abstract} +\end{document} +\end{verbatim} + +\<HtmlPar at center\><<< +\Configure{HtmlPar} + {\EndP \HCode{<text:p text:style-name="center" >}} + {\EndP \HCode{<text:p text:style-name="center" >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% +>>> + +\<ooffice begin-end env\><<< +\NewConfigureOO{center} +\ConfigureOO{center} + {\Hnewline + <style:style style:name="center" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body"> +<style:paragraph-properties fo:margin-top="0.199cm" + fo:margin-bottom="0.199cm" + fo:text-align="center" + style:justify-single-word="false"> + <style:tab-stops/> +</style:paragraph-properties > +</style:style>\Hnewline + } +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{centerline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<ooffice begin-end env\><<< +|<aligned lines|> +>>> + +\<plain aligned lines\><<< +|<aligned lines|> +>>> + + +\<aligned lines\><<< +\Configure{centerline} + {\EndP \ifvmode \IgnorePar \fi + \HCode{<text:p text:style-name="FirstCenterPar" >}} + {\HCode{</text:p>}|<try inline par|>} + +\Configure{leftline} + {\EndP \ifvmode \IgnorePar \fi + \HCode{<text:p text:style-name="FirstLeftPar" >}} + {\HCode{</text:p>}|<try inline par|>} + +\Configure{rightline} + {\EndP \ifvmode \IgnorePar \fi + \HCode{<text:p text:style-name="FirstRightPar" >}} + {\HCode{</text:p>}|<try inline par|>} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Sections} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +THe following protects section titles from side effects, and also is +introduced for protecting writeups to tables of contents. + + + +\<configure ooffice latex\><<< +\Configure{NoSection} + {\let\sv:index\index \let\sv:label\label + \let\sv:newline\newline \def\newline{ }% + \let\sv:setfontsize\@setfontsize \let\@setfontsize\:gobbleIII + \let\index\@gobble \let\label\@gobble + \let\sva:rEfLiNK\a:rEfLiNK + \let\svb:rEfLiNK\b:rEfLiNK + \let\svc:rEfLiNK\c:rEfLiNK + \expandafter\let\expandafter\svC:rEfLiNK\c:rEfLiNK + \Configure{ref}{}{}{}% \let\sv:ref\ref \let\ref\@gobble + } + {\let\index\sv:index \let\label\sv:label + \let\a:rEfLiNK\sva:rEfLiNK + \let\b:rEfLiNK\svb:rEfLiNK + \let\c:rEfLiNK\svc:rEfLiNK + \expandafter\let\c:rEfLiNK\svC:rEfLiNK % \let\ref\sv:ref + \let\newline\sv:newline \let\@setfontsize\sv:setfontsize + } + +>>> + + + + +\<configure ooffice latex\><<< +\Configure{InsertTitle}{\let\label\lb:l + \let\ref\o:ref \Configure{ref}{}{}{}} +\Configure{AfterTitle}{\let\index\:index + \let\ref\:ref \let\label\lb:l } +>>> + + +The labels are needed for labels \HPage{nested} +\begin{verbatim} +\documentclass{article} +\begin{document} +\section{Introduction} + +AAA \ref{1111} + +\section{BBB\label{1111}} + +\end{document} +\end{verbatim} +\EndHPage{} +within titles. + +\<basic ooffice sections\><<< +\ifx \part\:UnDef\else + \Configure{part} + {\IgnorePar\EndP \HCode{<!--start part-->}} + {\IgnorePar\EndP \HCode{<!--end part-->}} + {\HCode{<text:p text:style-name="part" > + <text:span text:style-name="part">}\TitleMark\space + \HCode{</text:span>}% + \HCode{<text:line-break/>}} + {\HCode{</text:p>\Hnewline}\par\ShowPar\IgnoreIndent} + \ConfigureMark{part}{\partname\space\thepart} + \NewConfigureOO{part} + \ConfigureOO{part}{\Hnewline + <style:style style:name="part" + style:family="paragraph" + style:parent-style-name="Heading|<cond rtl class|>" + style:next-style-name="Text-body" + style:list-style-name="part">\Hnewline + <style:paragraph-properties fo:margin-top="0.52cm" + fo:margin-bottom="0.21cm" + fo:font-size="18pt"/>\Hnewline + </style:style>\Hnewline + } +\fi +>>> + + + + +\<od definitions\><<< +\def\list:text:level{text:level} +\def\text:outlinelevel{text:outline-level} +\def\style:tableproperties{style:table-properties } +\def\style:sectionproperties{style:section-properties } +\def\text:orderedlist{text:list } +\def\text:unorderedlist{text:list } +>>> + + +\<ooffice chapters\><<< +\Configure{chapter} + {\IgnorePar\EndP \HCode{<!--start of chapter-->|<new page|>}} + {\IgnorePar\EndP \HCode{<!--end of chapter-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-1|<cond rtl class|>\endcsname" + \text:outlinelevel="1" ><text:span + text:style-name="chapter" >}\TitleMark\space + \HCode{</text:span>}% + \HCode{<text:line-break/>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{likechapter} + {\IgnorePar\EndP \HCode{<!--start of chapter*-->|<new page|>}} + {\IgnorePar\EndP \HCode{<!--end of chapter*-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-1|<cond rtl class|>\endcsname" + \text:outlinelevel="1" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + +\<report chapters\><<< +\ConfigureMark{chapter} + {\chaptername \ \thechapter} +>>> + +\<book chapters\><<< +\ConfigureMark{chapter} + {\if@mainmatter \chaptername \ \thechapter\fi} +>>> + + + +\<book chapters\><<< +\ConfigureMark{appendix} + {\if@mainmatter \appendixname \ \thechapter\fi} +\Configure{appendix} + {\IgnorePar\EndP \HCode{<!--start of appendix-->|<new page|>}} + {\IgnorePar\EndP \HCode{<!--end of appendix-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-1|<cond rtl class|>\endcsname" + \text:outlinelevel="1" ><text:span + text:style-name="chapter" >}\TitleMark\space + \HCode{</text:span>}% + \HCode{<text:line-break/>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + + + + + +\<basic ooffice sections\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \@seccntformat{section}\fi } +\Configure{section} + {\IgnorePar\EndP \HCode{<!--start of section-->}} + {\IgnorePar\EndP \HCode{<!--end of section-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-2|<cond rtl class|>\endcsname" + \text:outlinelevel="2" ><text:span + text:style-name="section" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + + +\<basic ooffice sections\><<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \@seccntformat{subsection}\fi } +\Configure{subsection} + {\IgnorePar\EndP \HCode{<!--start of subsection-->}} + {\IgnorePar\EndP \HCode{<!--end of subsection-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-3|<cond rtl class|>\endcsname" + \text:outlinelevel="3" ><text:span + text:style-name="subsection" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + +\<basic ooffice sections\><<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \@seccntformat{subsubsection}\fi } +\Configure{subsubsection} + {\IgnorePar\EndP \HCode{<!--start of subsubsection-->}} + {\IgnorePar\EndP \HCode{<!--end of subsubsection-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-4|<cond rtl class|>\endcsname" + \text:outlinelevel="4" ><text:span + text:style-name="subsubsection" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + +\<basic ooffice sections\><<< +\Configure{likesection} + {\IgnorePar\EndP \HCode{<!--start of section*-->}} + {\IgnorePar\EndP \HCode{<!--end of section*-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-2|<cond rtl class|>\endcsname" + \text:outlinelevel="2" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{likesubsection} + {\IgnorePar\EndP \HCode{<!--start of subsection*-->}} + {\IgnorePar\EndP \HCode{<!--end of subsection*-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-3|<cond rtl class|>\endcsname" + \text:outlinelevel="3" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{likesubsubsection} + {\IgnorePar\EndP \HCode{<!--start of subsection*-->}} + {\IgnorePar\EndP \HCode{<!--end of subsection*-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-4|<cond rtl class|>\endcsname" + \text:outlinelevel="4" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + +Paragraph configurations + +\<basic ooffice sections\><<< +\:DefineParagraph{paragraph}{paragraph-h} +\:DefineParagraph{likeparagraph}{paragraph-h} +\:DefineParagraph{subparagraph}{subparagraph-h} +\:DefineParagraph{likesubparagraph}{subparagraph-h} + + +\:BoldStyle{paragraph-h} +\:BoldStyle{subparagraph-h} +>>> + + +\<basic ooffice sectionsNO\><<< +\Configure{paragraph} + {\IgnorePar\EndP \HCode{<!--start of paragraph-->}} + {\IgnorePar\EndP \HCode{<!--end of paragraph-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-5|<cond rtl class|>\endcsname" + \text:outlinelevel="5" >}} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{subparagraph} + {\IgnorePar\EndP \HCode{<!--start of subparagraph-->}} + {\IgnorePar\EndP \HCode{<!--end of subparagraph-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-6|<cond rtl class|>\endcsname" + \text:outlinelevel="6" >}} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + + + +\<configure ooffice tex4ht\><<< +\Configure{TocAt}{}{} +\Configure{TocAt*}{}{} +>>> + + +A configuration `\verb!\Configure{Heading-1}{Heading 1}!' +will provide the default setting of OpenOffice. It might be +a more desirable for translations into MS Word. + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-1}{1} +\Configure{Heading-1}{Heading-1} +\NewConfigureOO{Heading-1} +\ConfigureOO{Heading-1}{\Hnewline +<style:style style:name="Heading-1" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="17.2999992370605pt" + fo:font-weight="bold" + style:font-size-asian="115\%" + style:font-weight-asian="bold" + style:font-size-complex="115\%" + style:font-weight-complex="bold" + fo:margin-top="40pt" + fo:margin-bottom="25pt" + /> +</style:style> +\Hnewline |<Heading 1 rtl|> } +>>> + + + + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-2}{1} +\Configure{Heading-2}{Heading-2} +\NewConfigureOO{Heading-2} +\ConfigureOO{Heading-2}{\Hnewline +<style:style style:name="Heading-2" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="14.3999996185303pt" + style:font-size-complex="14pt" + style:font-style-complex="italic" + style:font-weight-complex="bold" + fo:margin-top="12pt" + fo:margin-bottom="9pt" + /> +</style:style> +\Hnewline |<Heading 2 rtl|> } +>>> + + + + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-3}{1} +\Configure{Heading-3}{Heading-3} +\NewConfigureOO{Heading-3} +\ConfigureOO{Heading-3}{\Hnewline +<style:style style:name="Heading-3" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="12pt" + fo:font-weight="bold" + style:font-size-asian="14pt" + style:font-weight-asian="bold" + style:font-size-complex="14pt" + style:font-weight-complex="bold"/> +</style:style> +\Hnewline |<Heading 3 rtl|>} +>>> + + + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-4}{1} +\Configure{Heading-4}{Heading-4} +\NewConfigureOO{Heading-4} +\ConfigureOO{Heading-4}{\Hnewline +<style:style style:name="Heading-4" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="12pt" + fo:font-weight="bold" + fo:margin-top="0.42cm" + fo:margin-bottom="0cm" + style:font-size-complex="85\%" + style:font-style-complex="italic" + style:font-weight-complex="bold" +/> +</style:style> +\Hnewline |<Heading 4 rtl|>} +>>> + + + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-5}{1} +\Configure{Heading-5}{Heading-5} +\NewConfigureOO{Heading-5} +\ConfigureOO{Heading-5}{\Hnewline +<style:style style:name="Heading-5" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0.42cm" + fo:margin-bottom="0cm" + fo:font-size="12pt" + fo:font-style="italic" + fo:font-weight="normal" + style:font-size-complex="85\%" + style:font-weight-complex="bold" + fo:text-indent="0cm" + style:auto-text-indent="false"/> +</style:style> +\Hnewline |<Heading 5 rtl|>} +>>> + + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-6}{1} +\Configure{Heading-6}{Heading-6} +\NewConfigureOO{Heading-6} +\ConfigureOO{Heading-6}{\Hnewline +<style:style style:name="Heading-6" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold"/> +</style:style> +\Hnewline |<Heading 6 rtl|>} +>>> + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-7}{1} +\Configure{Heading-7}{Heading-7} +\NewConfigureOO{Heading-7} +\ConfigureOO{Heading-7}{\Hnewline +<style:style style:name="Heading-7" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold"/> +</style:style> +\Hnewline |<Heading 7 rtl|>} +>>> + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-8}{1} +\Configure{Heading-8}{Heading-8} +\NewConfigureOO{Heading-8} +\ConfigureOO{Heading-8}{\Hnewline +<style:style style:name="Heading-8" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold"/> +</style:style> +\Hnewline |<Heading 8 rtl|>} +>>> + + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-9}{1} +\Configure{Heading-9}{Heading-9} +\NewConfigureOO{Heading-9} +\ConfigureOO{Heading-9}{\Hnewline +<style:style style:name="Heading-9" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold"/> +</style:style> +\Hnewline |<Heading 9 rtl|>} +>>> + + +\<basic ooffice section styles\><<< +\NewConfigure{Heading-10}{1} +\Configure{Heading-10}{Heading-10} +\NewConfigureOO{Heading-10} +\ConfigureOO{Heading-10}{\Hnewline +<style:style style:name="Heading-10" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold"/> +</style:style> +\Hnewline |<Heading 10 rtl|>} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Scr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice scrbook\><<< +\ConfigureMark{chapter} + {\if@mainmatter \thechapter.~~\fi} +>>> + + +\<configure ooffice scrreprt\><<< +\ConfigureMark{chapter}{\thechapter~~} +>>> + +\<scr ooffice chapters\><<< +\Configure{chapter} + {\IgnorePar\EndP \HCode{<!--start of chapter-->|<new page|>}} + {\IgnorePar\EndP \HCode{<!--end of chapter-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-1\endcsname" + \text:outlinelevel="1" ><text:span + text:style-name="chapter">}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{likechapter} + {\IgnorePar\EndP \HCode{<!--start of chapter*-->|<new page|>}} + {\IgnorePar\EndP \HCode{<!--end of chapter*-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-1\endcsname" + \text:outlinelevel="1" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{addchap} + {\IgnorePar\EndP \HCode{<!--start of addchap-->|<new page|>}} + {\IgnorePar\EndP \HCode{<!--end of addchap-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-1\endcsname" + \text:outlinelevel="1" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + +\<basic scr ooffice sections\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \thesection\space\fi } +\Configure{section} + {\IgnorePar\EndP \HCode{<!--start of section-->}} + {\IgnorePar\EndP \HCode{<!--end of section-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-2\endcsname" + \text:outlinelevel="2" ><text:span + text:style-name="section">}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + + +\<basic scr ooffice sections\><<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \thesubsection\space\fi } +\Configure{subsection} + {\IgnorePar\EndP \HCode{<!--start of subsection-->}} + {\IgnorePar\EndP \HCode{<!--end of subsection-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-3\endcsname" + \text:outlinelevel="3" ><text:span + text:style-name="subsection" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + +\<basic scr ooffice sections\><<< +\Configure{likesection} + {\IgnorePar\EndP \HCode{<!--start of section*-->}} + {\IgnorePar\EndP \HCode{<!--end of section*-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-2\endcsname" + \text:outlinelevel="2" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{likesubsection} + {\IgnorePar\EndP \HCode{<!--start of subsection*-->}} + {\IgnorePar\EndP \HCode{<!--end of subsection*-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-3\endcsname" + \text:outlinelevel="3" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{likesubsubsection} + {\IgnorePar\EndP \HCode{<!--start of subsubsection*-->}} + {\IgnorePar\EndP \HCode{<!--end of subsubsection*-->}} + {\HCode{<text:h text:style-name="\csname a:Heading-4\endcsname" + \text:outlinelevel="4" >}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + + +\<basic scr ooffice sections\><<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \@seccntformat{subsubsection}\fi } +\Configure{subsubsection} + {\IgnorePar\EndP \HCode{<!--start of subsubsection-->}} + {\IgnorePar\EndP \HCode{<!--end of subsubsection-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-4|<cond rtl class|>\endcsname" + \text:outlinelevel="4" ><text:span + text:style-name="subsubsection" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} + + +% use the new mechanism for paragraph handling +\:DefineParagraph{paragraph}{paragraph-h} +\:DefineParagraph{likeparagraph}{paragraph-h} +\:DefineParagraph{subparagraph}{subparagraph-h} +\:DefineParagraph{likesubparagraph}{subparagraph-h} + + +\:BoldStyle{paragraph-h} +\:BoldStyle{subparagraph-h} + +>>> + + + +\<scrbook end units\><<< +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsection} + {likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,addchap,appendix,part,likepart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,addchap,appendix,part,likepart} +>>> + + +%%%%%%%%%%%%% +\subsection{alphanum} +%%%%%%%%%%%%% + +\<configure ooffice alphanum\><<< +\bgroup + \let\ifx=\relax + \let\:temp=\relax + \let\:tempa=\expandafter + \let\expandafter=\relax + \let\:TableOfContents=\relax + \let\else=\relax + \let\if=\relax + \let\fi=\relax + \def\Auto:ent#1{\noexpand\Auto:ent{#1,toclvla,liketoclvla,toclvlb,% + liketoclvlb,toclvlc,liketoclvlc,toclvld,liketoclvld,toclvle,% + liketoclvle,toclvlf,liketoclvlf,toclvlg,liketoclvlg,toclvlh,% + liketoclvlh,toclvli,liketoclvli,toclvlj,% + liketoclvlj,toclvlk,liketoclvlk,toclvll,liketoclvll}} + \edef\:TOC{\def\noexpand\:TOC{\:TOC}} + \:tempa +\egroup \:TOC +>>> + + +\<configure ooffice alphanum\><<< +\ConfigureToc{chapter} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +>>> + +\<configure ooffice alphanum\><<< +\def\:tempc#1#2#3#4{% + \ConfigureMark{toclvl#1} + {\HCode{<text:span + text:style-name="toclvl#1" >}\csname thelvl#1\endcsname + \HCode{</text:span><text:s/>}}% + \Configure{toclvl#1} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{<text:h + text:style-name="\csname a:Heading-#4\endcsname" + \text:outlinelevel="#4" + >}\TitleMark\space\HtmlParOff} + {\HCode{</text:h>}\HtmlParOn \ShowPar\IgnoreIndent \par}% + \ConfigurToc{toclvl#1} + {\HCode{<text:p text:style-name="P#4"><text:span + text:style-name="toc-mark">}% + |<alphanum toc spaces|>% + \def\:temp{\J@INumberRoot{#2}{\tmp:cnt}}% + \afterassignment\:temp \tmp:cnt} + {#3\HCode{</text:span><text:s/>}} + {} + {\HCode{</text:p>}}% + \ConfigureToc{liketoclvl#1} + {\HCode{<text:p text:style-name="P#4" ><text:span + text:style-name="toc-mark" >}% + |<alphanum toc spaces|>% + \def\:temp{\J@INumberRoot{#2}{\tmp:cnt}}% + \afterassignment\:temp \tmp:cnt} + {#3\HCode{</text:span><text:s/>}} + {} + {\HCode{</text:p>}}% +} +\:tempc a1{.}{3} +\:tempc b2{.}{4} +\:tempc c3{.}{5} +\:tempc d4{)}{5} +\:tempc e5{)}{5} +\:tempc f6{)}{5} +\:tempc g7{)}{5} +\:tempc h8{)}{5} +\:tempc i9{)}{5} +\:tempc j{10}{)}{5} +\:tempc k{11}{)}{5} +\:tempc l{12}{)}{5} +>>> + +\<alphanum toc spaces\><<< +\tmp:cnt=0 \loop \advance\tmp:cnt by 1 + \ifnum \tmp:cnt<#2 ~~\repeat +>>> + + +%%%%%%%%%%%%% +\subsection{amsart} +%%%%%%%%%%%%% + + + + + + +\<basic ams ooffice sections\><<< +\ConfigureMark{section} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \@seccntformat{section}\fi } +\Configure{section} + {\IgnorePar\EndP \HCode{<!--start of section-->}} + {\IgnorePar\EndP \HCode{<!--end of section-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-2|<cond rtl class|>\endcsname" + \text:outlinelevel="2" ><text:span + text:style-name="section" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + +\<basic ams ooffice sections\><<< +\ConfigureMark{subsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \@seccntformat{subsection}\fi } +\Configure{subsection} + {\IgnorePar\EndP \HCode{<!--start of subsection-->}} + {\IgnorePar\EndP \HCode{<!--end of subsection-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-3|<cond rtl class|>\endcsname" + \text:outlinelevel="3" ><text:span + text:style-name="subsection" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + +\<basic ams ooffice sections\><<< +\ConfigureMark{subsubsection} + {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble + \else \@seccntformat{subsubsection}\fi } +\Configure{subsubsection} + {\IgnorePar\EndP \HCode{<!--start of subsubsection-->}} + {\IgnorePar\EndP \HCode{<!--end of subsubsection-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-4|<cond rtl class|>\endcsname" + \text:outlinelevel="4" ><text:span + text:style-name="subsubsection" >}\TitleMark\space + \HCode{</text:span>}\IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + +\<basic ams ooffice sections\><<< +\Configure{paragraph} + {\IgnorePar\EndP \HCode{<!--start of paragraph-->}} + {\IgnorePar\EndP \HCode{<!--end of paragraph-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-5|<cond rtl class|>\endcsname" + \text:outlinelevel="5" >}} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +\Configure{subparagraph} + {\IgnorePar\EndP \HCode{<!--start of subparagraph-->}} + {\IgnorePar\EndP \HCode{<!--end of subparagraph-->}} + {\HCode{<text:h + text:style-name="\csname a:Heading-6|<cond rtl class|>\endcsname" + \text:outlinelevel="6" >}} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tables Of Contents} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Entries} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + \<non chap tocs\><<< +\ConfigureToc{part} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likepart} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{section} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likesection} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{subsection} + {\HCode{<text:p text:style-name="P2" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likesubsection} + {\HCode{<text:p text:style-name="P2" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{subsubsection} + {\HCode{<text:p text:style-name="P3" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likesubsubsection} + {\HCode{<text:p text:style-name="P3" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +>>> + + + + +\<chap tocs\><<< +\ConfigureToc{chapter} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}% + \ifx \chaptername\:UnDef\else \chaptername~\fi} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likechapter} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{appendix} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +>>> + + + + \<chap tocs\><<< +\ConfigureToc{part} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likepart} + {\HCode{<text:p text:style-name="P1" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{section} + {\HCode{<text:p text:style-name="P2" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likesection} + {\HCode{<text:p text:style-name="P2"><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{subsection} + {\HCode{<text:p text:style-name="P3" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likesubsection} + {\HCode{<text:p text:style-name="P3" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{subsubsection} + {\HCode{<text:p text:style-name="P4" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{likesubsubsection} + {\HCode{<text:p text:style-name="P4" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +>>> + +\verb+<text:tab-stop/>+ + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Content.xml Styles} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Why we need the following in content.xml instead of styles.xml + +\<automatic style 1\><<< +\Hnewline + <style:style style:name="P1" + style:family="paragraph" + style:parent-style-name="Contents-1">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="16.999cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> + \Hnewline +>>> + + +\<automatic style 2\><<< +\Hnewline + <style:style style:name="P2" + style:family="paragraph" + style:parent-style-name="Contents-2">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="16.999cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> + \Hnewline +>>> + + +\<automatic style 3\><<< +\Hnewline + <style:style style:name="P3" + style:family="paragraph" + style:parent-style-name="Contents-3">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="16.999cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style>\Hnewline + \Hnewline +>>> + + +\<automatic style 4\><<< +\Hnewline + <style:style style:name="P4" + style:family="paragraph" + style:parent-style-name="Contents-4">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="16.999cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> + \Hnewline +>>> + + +\<automatic style 5\><<< +\Hnewline + <style:style style:name="P5" + style:family="paragraph" + style:parent-style-name="Contents-5">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="16.999cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> \Hnewline +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Style.xml Styles} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<content style 1\><<< +\NewConfigureOO{Contents 1} +\ConfigureOO{Contents 1}{\Hnewline + <style:style style:name="Contents-1" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index">\Hnewline + <style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0cm" + fo:margin-bottom="0.101cm" + fo:font-weight="bold" + fo:text-indent="0cm" + style:auto-text-indent="false">\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="16.999cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style>\Hnewline +} +>>> + + + + + + + +\<content style 2\><<< +\NewConfigureOO{Contents 2} + \ConfigureOO{Contents 2}{\Hnewline + <style:style style:name="Contents-2" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index"> + <style:paragraph-properties fo:margin-left="0.499cm" + fo:margin-right="0cm" + fo:text-indent="0cm" + style:auto-text-indent="false"> + <style:tab-stops> + <style:tab-stop style:position="16.499cm" + style:type="right" + style:leader-char="."/> + </style:tab-stops> + </style:paragraph-properties > + </style:style> + \Hnewline} +>>> + + + +\<content style 3\><<< +\NewConfigureOO{Contents 3} +\ConfigureOO{Contents 3}{\Hnewline + <style:style style:name="Contents-3" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index"> + <style:paragraph-properties fo:margin-left="0.998cm" + fo:margin-right="0cm" + fo:text-indent="0cm" + style:auto-text-indent="false"> + <style:tab-stops> + <style:tab-stop style:position="16cm" + style:type="right" + style:leader-char="."/> + </style:tab-stops> + </style:paragraph-properties > + </style:style> + \Hnewline} +>>> + + + +\<content style 4\><<< +\NewConfigureOO{Contents 4} +\ConfigureOO{Contents 4}{\Hnewline + <style:style style:name="Contents-4" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index">\Hnewline + <style:paragraph-properties fo:margin-left="1.498cm" + fo:margin-right="0cm" + fo:text-indent="0cm" + style:auto-text-indent="false">\Hnewline + <style:tab-stops> + <style:tab-stop style:position="15.501cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> + \Hnewline} +>>> + + + +\<content style 5\><<< +\NewConfigureOO{Contents 5} +\ConfigureOO{Contents 5}{\Hnewline + <style:style style:name="Contents-5" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index">\Hnewline + <style:paragraph-properties fo:margin-left="1.997cm" + fo:margin-right="0cm" + fo:text-indent="0cm" + style:auto-text-indent="false">\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="15.002cm" + style:type="right" + style:leader-char="."/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> +\Hnewline} +>>> + +%%%%%%%%%%%%% +\subsection{Toc Style Outline} +%%%%%%%%%%%%% + + + + + + +\<oo2 tex4ht\><<< +\def\index:entry:chapter{text:index-entry-chapter} +>>> + + + +\<toc template 1\><<< +<text:table-of-content-entry-template + text:outline-level="1" + text:style-name="Contents-1" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="." />\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + +\<toc template 2\><<< +<text:table-of-content-entry-template + text:outline-level="2" + text:style-name="Contents-2" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + + +\<toc template 3\><<< +<text:table-of-content-entry-template + text:outline-level="3" + text:style-name="Contents-3" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + + +\<toc template 4\><<< +<text:table-of-content-entry-template + text:outline-level="4" + text:style-name="Contents-4" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + +\<toc template 5\><<< +<text:table-of-content-entry-template + text:outline-level="5" + text:style-name="Contents-5" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + +\<toc template 6\><<< +<text:table-of-content-entry-template + text:outline-level="6" + text:style-name="Contents-6" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + +\<toc template 7\><<< +<text:table-of-content-entry-template + text:outline-level="7" + text:style-name="Contents-7" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + +\<toc template 8\><<< +<text:table-of-content-entry-template + text:outline-level="8" + text:style-name="Contents-8" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + +\<toc template 9\><<< +<text:table-of-content-entry-template + text:outline-level="9" + text:style-name="Contents-9" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + +\<toc template 10\><<< +<text:table-of-content-entry-template + text:outline-level="10" + text:style-name="Contents-10" >\Hnewline +<\index:entry:chapter />\Hnewline +<text:index-entry-text/>\Hnewline +<text:index-entry-tab-stop + style:type="right" + style:leader-char="."/>\Hnewline +<text:index-entry-page-number/>\Hnewline +</text:table-of-content-entry-template>\Hnewline +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{SCR Entries} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<scr chap tocs\><<< +\ConfigureToc{chapter} + {\HCode{<text:p text:style-name="chapterToc" ><text:span + text:style-name="toc-mark" >}} + { \HCode{</text:span>}} + {} + {\HCode{</text:p>}} +\ConfigureToc{addchap} + {} + {\HCode{<text:p text:style-name="addchapToc" >}} + {} + {\HCode{</text:p>}} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Links} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice tex4ht\><<< +\:CheckOption{TocLink}\if:Option + \Configure{TocLink}{\Link{#2}{#3}#4\ifvmode\IgnorePar\fi\EndLink} +\else + \Log:Note{to request links from the tables of contents, + use the command line option from `TocLink'} + \Configure{TocLink}{\Link{#2}{#3}\EndLink#4\ifvmode\IgnorePar\fi} +\fi +\Configure{toTocLink}{\Link}{\EndLink} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Envelop} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice latex\><<< +\Configure{tableofcontents} + {\IgnorePar\EndP\HCode{|<start toc|>}\IgnorePar} + {} + {\IgnorePar\EndP\HCode{|<end toc|>}\ShowPar} + {\HCode{\Hnewline}} {} +>>> + +\<start toc\><<< +<text:table-of-content + text:name="toc" + text:style-name="Sect1" + text:protected="true" >\Hnewline + <text:table-of-content-source + text:outline-level="|<outline level|>" >\Hnewline + |<toc outline|>% + </text:table-of-content-source>\Hnewline + <text:index-body>\Hnewline + \ifx\contentsname\empty \else + \ifx\contentsname\:UnDef \else + <text:index-title text:style-name="Sect2" text:name="contents" + > + <text:p text:style-name="Contents-Heading" + >\contentsname</text:p> + </text:index-title> + \fi \fi +>>> + +\<configure ooffice latex\><<< +\NewConfigureOO{Sect1} +\ConfigureOO{Sect1}{\Hnewline + <style:style style:name="Sect1" + style:family="section"> + <\style:sectionproperties> + <style:columns fo:column-count="1" + fo:column-gap="0cm"> + <style:column fo:margin-top="0.5cm" + fo:margin-left="0cm" + fo:margin-right="0cm" + /> + </style:columns> + </\style:sectionproperties> + </style:style> +\Hnewline } +>>> + +\<configure ooffice latex\><<< +\NewConfigureOO{Sect2} +\ConfigureOO{Sect2}{\Hnewline +<style:style style:name="Sect2" + style:family="section"> + <\style:sectionproperties> + <style:columns fo:column-count="0" fo:column-gap="0cm"/> + </\style:sectionproperties> +</style:style> +\Hnewline } +>>> + +\<configure ooffice latex\><<< +\NewConfigureOO{Contents Heading} +\ConfigureOO{Contents Heading}{\Hnewline + <style:style style:name="Contents-Heading" + style:family="paragraph" + style:parent-style-name="Heading" + style:class="index"> + <style:paragraph-properties + fo:margin-top="0.5cm" + fo:margin-bottom="0.2cm" + fo:margin-left="0cm" + fo:margin-right="0cm" + fo:font-size="16pt" + fo:font-weight="bold" + style:font-size-asian="16pt" + style:font-weight-asian="bold" + style:font-size-complex="16pt" + style:font-weight-complex="bold" + fo:text-indent="0cm" + style:auto-text-indent="false" + text:number-lines="false" + text:line-number="0" + /> + </style:style> +\Hnewline } +>>> + +\<configure ooffice article\><<< +\def\tableofcontents{\:tableofcontents} +>>> + +\<configure ooffice book\><<< +\def\tableofcontents{\:tableofcontents} +>>> + + +\<configure ooffice report\><<< +\def\tableofcontents{\:tableofcontents} +>>> + + +\<configure ooffice amsart\><<< +\def\tableofcontents{\:tableofcontents} +>>> + +\<configure ooffice amsproc\><<< +\def\tableofcontents{\:tableofcontents} +>>> + +\<configure ooffice nwart\><<< +\def\tableofcontents{\:tableofcontents} +>>> + +\<configure ooffice nwrep\><<< +\def\tableofcontents{\:tableofcontents} +>>> + +\<configure ooffice nwbk\><<< +\def\tableofcontents{\:tableofcontents} +>>> + + + + +\<outline level\><<< +6>>> + + +\<end toc\><<< + </text:index-body>\Hnewline +</text:table-of-content>% +\Hnewline +>>> + + + +\<toc outline\><<< +<text:index-title-template + text:style-name="Contents-Heading" >\contentsname +</text:index-title-template>\Hnewline +|<toc template 1|>% +|<toc template 2|>% +|<toc template 3|>% +|<toc template 4|>% +|<toc template 5|>% +|<toc template 6|>% +|<toc template 7|>% +|<toc template 8|>% +|<toc template 9|>% +|<toc template 10|>% +>>> + + +\<automatic styles\><<< +|<automatic style 1|>% +|<automatic style 2|>% +|<automatic style 3|>% +|<automatic style 4|>% +|<automatic style 5|>% +|<automatic style 6|>% +|<automatic style 7|>% +|<automatic style 8|>% +>>> + +\<content styles\><<< +|<content style 1|>% +|<content style 2|>% +|<content style 3|>% +|<content style 4|>% +|<content style 5|>% +|<content style 6|>% +|<content style 7|>% +|<content style 8|>% +>>> + + +%%%%%%%%%%%%% +\subsection{Tables of Figures} +%%%%%%%%%%%%% + + +\<config lists of figures and tables\><<< +\Configure{listoffigures} + {\let\contentsname\listfigurename \let\listfigurename\empty} + {} +\Configure{listoftables} + {\let\contentsname\listtablename \let\listtablename\empty} + {} +\ConfigureToc{lof} + {\HCode{<text:p><text:span text:style-name="toc-mark" + >}}{\ }{}% + {\HCode{</text:span></text:p>}} +\ConfigureToc{lot} + {\HCode{<text:p><text:span text:style-name="toc-mark" + >}}{\ }{}% + {\HCode{</text:span></text:p>}} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tabular} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Examples} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +General Format: + +\begin{verbatim} +<table:table table:name="..." table:style-name="tbl"> + <table:table-column table:style-name="..."/>... <table:table-column/> + <table:table-row table:name="..."> + <table:table-cell> <text:p>...</text:p> </table:table-cell> + .... + </table:table-row> + ..... +</table:table> +\end{verbatim} + +May include subtables + +\begin{verbatim} +<table:sub-table> + ....... +</table:sub-table> +\end{verbatim} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{The External Envelope} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice latex\><<< +|<latex tabular|> +>>> + +\<latex tabular\><<< +\ConfigureEnv{tabular} + {|<configure tabular noalign|>% + \IgnorePar|<inline comment|>\EndP + |<save cols info|>% + \ifnum \BegEnd:D>0 + |<boxed env|>% + \fi + \gHAdvance\BegEnd:D by 1 + \bgroup |<Text-Body HtmlPar|>% + } + {\egroup + \gHAdvance\BegEnd:D by -1 + \ifnum \BegEnd:D>0 + |<end boxed env|>% + \fi + |<recall cols info|>\ShowPar + |<configure clear noalign|>% + |<try env inline par|>% + }{}{} +>>> + + +\<configure ooffice tabularx\><<< +\ConfigureEnv{tabularx} + {|<configure tabular noalign|>% + \IgnorePar|<inline comment|>\EndP + |<save cols info|>% + } + {|<recall cols info|>\ShowPar + |<configure clear noalign|>% + |<try env inline par|>% + }{}{} +>>> + + + + + +\<latex tabular\><<< +\Configure{tabular} + {\ifvmode \IgnorePar\fi \EndP \halignTB{tabular}% + |<list the grouping of columns|>% + } + {|<insert Clr|>\HCode{</table:table>}} + {|<cond trail row|>% + \HCode{<table:table-row \Hnewline + |<trail row|>% + table:style-name="TBL-\TableNo-\HRow-}% + |<row attributes|>\HCode{">}} + {\HCode{</table:table-row>}|<end cond trail row|>% + } + {\HCode{<table:table-cell \Hnewline}% + |<multispan cell|>% + \HCode{ table:style-name="TBL-\TableNo-\HRow-\HCol">}% + |<start par at cell|>|<save table num|>} + {|<end array par box|>|<recall table num|>% + |<end par at cell|>\HCode{</table:table-cell>}} +>>> + + +\<cond trail row\><<< +\ifTag{vis-\TableNo-\HRow}% + {\special{t4ht@[}\gdef\end:box{\special{t4ht@]}}}% + {\global\let\end:box\empty}% +>>> + +\<end cond trail row\><<< +\end:box +>>> + +\<trail row\><<< +\ifTag{vis-\TableNo-\HRow}{table:visibility="collapse" }{} +>>> + +\<latex tabular\><<< +\Configure{endtabular} {\Tag{vis-\TableNo-\HRow}{}} +>>> + + + + +\<latex tabular\><<< +\def\:MT{\ifmathml \a:mathml m\else table:\fi} +\Configure{halignTB} + {\HCode{<\:MT table }} + {\HCode{>}} +>>> + + + + +\<configure tabular noalign\><<< +\Configure{noalign}% + {\f:tabular\d:tabular \HCode{<tr><td colspan="\ar:cnt">}} + {\HCode{</td></tr>}\pend:def\TableNo{0}\c:tabular\e:tabular}% +>>> + + +\<configure clear noalign\><<< +\Configure{noalign}{}{}% +>>> + + +\<latex tabular\><<< +\Configure{halignTB<>}{tabular}{\HCode{\Hnewline + table:style-name="tabular" + }<>\HAlign} +>>> + + +For some reason, the following doesn't have effect at the office tyles +section + + +\<automatic styles\><<< +<style:style style:name="tabular" + style:family="table">\Hnewline +<style:table-properties style:rel-width="76\%" + fo:margin-left="1cm" + fo:margin-right="1cm" + table:align="margins"/>\Hnewline +</style:style>\Hnewline +>>> + + +\<inline comment\><<< +\ifvmode\else\HCode{<!--tex4ht:inline-->}\fi +>>> + + + +\<latex tabular\><<< +\HAssign\Next:TableNo=0 +\global\let\TableNo=\Next:TableNo +>>> + +\<increase table num\><<< +\gHAdvance\Next:TableNo by 1 +\global\let\TableNo=\Next:TableNo +>>> + + +\<save table num\><<< +\PushStack\Table:Stck\TableNo +>>> + +\<recall table num\><<< +\PopStack\Table:Stck\TableNo +>>> + + + +\<Text-Body HtmlPar\><<< +\Configure{HtmlPar} + {\EndP \HCode{<text:p text:style-name="Text-body|<cond rtl class|>" + >}} + {\EndP \HCode{<text:p text:style-name="Text-body|<cond rtl class|>" + >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Description of Columns} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +The variable +\verb+\NewGroup+ is introduced to record the index of entry in current +group. + + +\<configure ooffice-mml latex\><<< +|<visit start of pattern|> +\Configure{VBorder} + {\HAssign\NewGroup = 0 + |<increase table num|>% + |<visit start of pattern|>% + } + {|<visit a v-bar entry|>\HAssign\NewGroup = 0 } + {\Advance:\NewGroup by 1 + |<visit a non-@ entry|>% + } + {|<visit a @ entry|>} +>>> + + + +\<configure ooffice-mml array\><<< +|<visit start of pattern|> +\Configure{VBorder} + {\HAssign\NewGroup = 0 + |<increase table num|>% + |<visit start of pattern|>% + } + {|<visit a v-bar entry|>\HAssign\NewGroup = 0 } + {\Advance:\NewGroup by 1 + |<visit a non-@ entry|>% + } + {|<visit a @ entry|>} +>>> + + + + +\<configure ooffice-mml latexNO\><<< +\let\VBorder=\empty \let\AllColMargins=\empty +\Configure{VBorder} + {\let\VBorder=\empty \let\AllColMargins=\empty + \global\let\GROUPS=\empty \HAssign\NewGroup = 0 + \gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo + |<init vborder??|>% + } + {|<vborder solid??|>% + \xdef\VBorder{\VBorder\ifnum \NewGroup> 0 </colgroup>\fi} + \HAssign\NewGroup = 0 \gdef\GROUPS{rules="groups"}} + {\Advance:\NewGroup by 1 + |<record cur vborder??|>% + \ifnum \NewGroup=1 \xdef\VBorder{\VBorder<colgroup + id="TBL-\TableNo-\ar:cnt g">}\fi + \xdef\VBorder{\VBorder<col\Hnewline id="TBL-\TableNo + -\ar:cnt"\xml:empty>}\xdef\AllColMargins{\AllColMargins1}} + {\xdef\AllColMargins{\AllColMargins 0}} +>>> + + +\<insert ClrNO\><<< +\expandafter\tmp:toks\expandafter{\Clr}% +\HCode{<!--\the\tmp:toks-->}% +>>> + +The above doesn't work, for instance on `\verb+|r||r@{--}l|p{1.25in}|+' +due to thge extra \verb+--+.. + + + + + +\<configuring @()\><<< +\Configure{@{}}{} +>>> + + +\<row attributes\><<< +\halignTR +>>> + +\<latex tabular\><<< +\Configure{halignTR} + {} +\Configure{halignTBL} +% {t}{\HCode{valign-top}} +% {b}{\HCode{valign-baseline}} +% {c}{\HCode{valign-middle}} + {} +>>> + + + + +\<start par at cell\><<< +|<extract cell attributes|>\if !\Aligh:Wrap!\let\not:Pcell=\:gobble +\else \let\not:Pcell\empty \fi +\not:Pcell{\HCode{<text:p + \Hnewline text:style-name="}|<style at cell|>\HCode{" + >}}% +|<start array par box|>% +>>> + + + +\<style at cell\><<< +\cell:sty +>>> + + +\<latex tabular\><<< +\def\cell:sty{\NoFonts + |<extract cell margins info|>% + |<extract cell h-border info|>% + |<extract cell attributes|>% + |<cell style name|>% + |<cell style properties|>% + \EndNoFonts} +>>> + + + +\<cell style name\><<< +sty-\LR:VBars\Left:Marg\Right:Marg\Aligh:Wrap +>>> + + + +\<end par at cell\><<< +\csname not:Pcell\endcsname{\HCode{</text:p>}}% +>>> + + + +\<multispan cell\><<< +\ifnum \HMultispan>1 + \HCode{table:number-columns-spanned="\HMultispan"\Hnewline}% + \bgroup + \def\:temp{\ifnum \HMultispan>1 + \HAdvance\HMultispan by -1 + \HCode{<table:covered-table-cell/>}% + \expandafter\:temp + \fi}% + \egroup +\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Cell Style Properties} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<extract cell attributes\><<< +\edef\Aligh:Wrap{\halignTD}% +>>> + + +\<configure ooffice tex4ht\><<< +\Configure{halignTD} {}{} + {<}{L} %{\HCode{align-left nowrap}} + {-}{C} %{\HCode{align-center nowrap}} + {>}{R} %{\HCode{align-right nowrap}} + {^}{T} %{\HCode{valign-top nowrap}} + {=}{N} %{\HCode{valign-baseline nowrap}} + {||}{M} %{\HCode{valign-middle nowrap}} + {_}{B} %{\HCode{valign-bottom nowrap}} + {p}{} + {m}{m} %{\HCode{valign-middle align-left}} + {b}{n} %{\HCode{valign-baseline align-left}} + {} +>>> + + + + + +\<configure ooffice-mml tex4ht\><<< +\Configure{halignTD} {}{} + {<}{\ifmathml \HCode{ columnalign="left"}\else + L\fi} + {-}{\ifmathml \HCode{ columnalign="center"}\else + C\fi} + {>}{\ifmathml \HCode{ columnalign="right"}\else + R\fi} + {^}{\ifmathml \HCode{ rowalign="top"}\else + T\fi} + {=}{\ifmathml \HCode{ rowalign="baseline"}\else + N\fi} + {||}{\ifmathml \HCode{ rowalign="center"}\else + M\fi} + {_}{\ifmathml \HCode{ rowalign="bottom"}\else + B\fi} + {p}{\ifmathml \HCode{ columnalign="left"}\else + \fi} + {m}{\ifmathml\else m\fi} %{\HCode{valign-middle align-left}} + {b}{\ifmathml\else n\fi} %{\HCode{valign-baseline align-left}} + {} +>>> + + + +\<cell style properties\><<< +\xdef\cell:style:name{|<cell style name|>}% +\expandafter\ifx \csname\cell:style:name\endcsname \relax + \global\expandafter\let\csname\cell:style:name\endcsname=\def + \OOstyles{% + <style:style + style:name="\cell:style:name" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties + }% + |<cell h-margins property|>% + |<cell alignment properties|>% + |<cell LR borders property|>% + \OOstyles{% + style:justify-single-word="false"/>\Hnewline + </style:style>\Hnewline + }% +\fi +>>> + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Cell Alignments} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<cell alignment properties\><<< +\def\:temp{L}\ifx \Aligh:Wrap\:temp + \OOstyles{% + fo:wrap-option="no-wrap" + fo:text-align="start" + }% +\fi +\def\:temp{C}\ifx \Aligh:Wrap\:temp + \OOstyles{% + fo:wrap-option="no-wrap" + fo:text-align="center" + }% +\fi +\def\:temp{R}\ifx \Aligh:Wrap\:temp + \OOstyles{% + fo:wrap-option="no-wrap" + fo:text-align="end" + }% +\fi +\ifx \Aligh:Wrap\empty + \OOstyles{% + fo:text-align="start" + }% +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Groups of Columns} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +A group consists of a non-empty pattern \verb+|...|+. + +\<list the grouping of columns\><<< +\putVBorder +>>> + + +When \verb'\putVBorder' is called, in \verb'\:VBorder' +we have a sequence of the form +\verb'<COLGROUP><COL ...">...</COLGROUP>...' with the last +tag possibly missing. + +\<latex tabular\><<< +\let\remove:eog=\relax +\def\putVBorder{\expandafter\put:VBorder\:VBorder<</>>|<par del|>} +\def\put:VBorder#1<</#2>>#3|<par del|>{% + \def\:temp{#2}\ifx\:temp\empty + \def\remove:eog<</##1>>{}% + \HCode{\:VBorder}% + \let\remove:eog=\relax + |<insert last end of group, if missing|>% + \else \def\:temp{\put:VBorder#3|<par del|>}\expandafter\:temp\fi +} +>>> + + +\<visit start of pattern\><<< +\let\:VBorder=\empty +>>> + +\<visit a non-@ entry\><<< +\ifnum \NewGroup=1 |<start a group of cols|>\fi +|<add a group of columns|>% +>>> + + +\<start a group of cols\><<< +\xdef\:VBorder{\:VBorder + <!--table:table-column-group ???="TBL-\TableNo-\ar:cnt g"-->}% +>>> + +\<add a group of columns\><<< +\xdef\:VBorder{\:VBorder<table:table-column\Hnewline + \csname a:table-column-style\endcsname\Hnewline + />}% +>>> + +\<latex tabular\><<< +\NewConfigure{table-column-style}{1} +\Configure{table-column-style} + {table:style-name="TBL-\TableNo -\ar:cnt"} +>>> + +\<visit a v-bar entry\><<< +\xdef\:VBorder{\:VBorder + \ifnum \NewGroup> 0 + <!--/table:table-column-group-->\remove:eog <</ >>\fi}% +>>> + +\<insert last end of group, if missing\><<< +\def\:temp{#1}\ifx\:temp\empty +\else\HCode{<!--/table:table-column-group-->}\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Vertical Lines} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<cell LR borders property\><<< +\cell:vbars +>>> + + +\<latex tabular\><<< +\def\cell:vbars{% + \def\:tempa##1##2{% + \tmp:cnt=0 + \def\:temp####1{% + \if ####1##1\advance\tmp:cnt by 1 \fi + \if ####1.\else \expandafter\:temp \fi + }% + \expandafter\:temp\LR:VBars.% + \ifnum \tmp:cnt>0 + \OOstyles{ fo:border-##2="|<hline resolution|>\the\tmp:cnt + cm solid \#000000" }% + \fi + }% + \:tempa L{left}% + \:tempa R{right}% +} +>>> + + +\<hline resolution\><<< +0.0>>> + +\<extract cell h-border info\><<< +\ifx \:AllColBars\empty + \let\LR:VBars=\empty +\else + \edef\LR:VBars{\Col:VBars}% +\fi +>>> + + + +\verb'\AllColMargins' Return a binary string in which 1 represents +a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the +zeros before the 1's that represent the current and following 1's. + +\<latex tabular\><<< +\def\Col:VBars{\expandafter\get:vbar\:AllColBars,,} +\def\get:vbar#1,{\if :#1:\else + \ifnum #1=0 \ifnum \HCol=1 L\fi + \else \ifnum \HCol=#1R\fi \fi + \expandafter\get:vbar \fi} +>>> + + + + +\<configure ooffice-mml latex\><<< +\let\AllColMargins\empty +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + +\<configure ooffice-mml array\><<< +\ConfigureEnv{array} + {\PushStack\Col:Marg\AllColMargins + \bgroup\Configure{$}{}{}{}} + {\egroup \PopStack\Col:Marg\AllColMargins} + {}{} +>>> + + +\<configure ooffice latex\><<< +\ConfigureEnv{tabular} + {\PushStack\Col:Marg\AllColMargins} + {\PopStack\Col:Marg\AllColMargins} + {}{} +>>> + + + + + + + + + + +\<visit start of pattern\><<< +\let\:AllColBars=\empty +>>> + +\<visit a v-bar entry\><<< +\xdef\:AllColBars{\:AllColBars + \ifx\:AllColBars\empty \else ,\fi \ar:cnt}% +>>> + + +\<save cols info\><<< +\PushStack\Col:Bars\:AllColBars +>>> + + +\<recall cols info\><<< +\PopStack\Col:Bars\:AllColBars +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Horizontal Marging} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\verb'\AllColMargins' Return a binary string in which 1 represents +a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the +zeros before the 1's that represent the current and following 1's. + +\<cell h-margins property\><<< +\OOstyles{% + fo:padding-left="0\ifnum \Left:Marg >0 .17\fi cm" |% 5pt |% + fo:padding-right="0\ifnum \Right:Marg>0 .17\fi cm" +}% +>>> + +\<extract cell margins info\><<< +\ColMargins +>>> + + +\<latex tabular\><<< +\def\ColMargins{\tmp:cnt=\HCol\relax + \expandafter\nosp:hbr\AllColMargins 1//} +\def\nosp:hbr#11#2//{\ifnum \tmp:cnt>1 \advance\tmp:cnt by -1 + \nosp:hbr#2//\else\nosp:gt#11#2//\fi} +\def\nosp:gt#11#21#3//{% + \def\Left:Marg{#1}\def\Right:Marg{#2}% + \edef\Left:Marg{\ifx \Left:Marg\empty 1\else 0\fi}% + \edef\Right:Marg{\ifx \Right:Marg\empty 1\else 0\fi}} + + +|<configuring @()|> +>>> + + +\<visit start of pattern\><<< +\let\AllColMargins=\empty +>>> + +\<visit a non-@ entry\><<< +\xdef\AllColMargins{\AllColMargins 1}% +>>> + +\<visit a @ entry\><<< +\xdef\AllColMargins{\AllColMargins 0}% +>>> + + +\<save cols info\><<< +\PushStack\Col:Marg\AllColMargins +>>> + + +\<recall cols info\><<< +\PopStack\Col:Marg\AllColMargins +>>> + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Horizontal Borders} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<latex tabular\><<< +\Configure{hline}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<hline body for array/tabular|>}% + \expandafter\ignoreEndTr + \fi} +\Configure{//[]}{\ifx \ar:cnt\:UnDef + \else\o:noalign:{|<vspace body for array/tabular|>}\fi} +>>> + + +\<vspace body for array/tabular\><<< +\append:def\vspc:s{\h:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\vspc:s{\i:HBorder}% + \expandafter\:tempb + \fi } +\tmp:cnt=0 \:tempb +\append:def\vspc:s{\j:HBorder}\global\let\vspc:s=\vspc:s +>>> + +\<hline body for array/tabular\><<< +\append:def\hline:s{\a:HBorder}% +\def\:tempb{\ifnum \tmp:cnt<\ar:cnt + \advance\tmp:cnt by 1 \append:def\hline:s{\b:HBorder}% + \expandafter\:tempb + \fi }% +\tmp:cnt=0 \:tempb +\append:def\hline:s{\c:HBorder}\global\let\hline:s=\hline:s +>>> + +\<latex tabular\><<< +\def\ignore:EndTr{\o:noalign:{\global\futurelet\:AfterHline}} +\long\def\ifProperTr#1{% + \ifx \:AfterHline\end + #1\global\let\:AfterHline\endinput + \else \ifx \:AfterHline\endinput \else #1\fi\fi} +\def\ProperTrTrue{\global\let\:AfterHline=\relax} +>>> + + +\<latex tabular\><<< +\Configure{putHBorder}{\HCode{\HBorder}} +\Configure{HBorder} + {|<HBorder hline|>} + {|<HBorder hline cell|>} + {|<end HBorder hline|>} + {|<HBorder cline|>} + {|<HBorder cline p cell|>} + {|<HBorder cline p-hr cell|>} + {|<end HBorder cline|>} + {|<HBorder vspace|>} + {|<HBorder vspace td|>} + {|<end HBorder vspace|>} +\OOstyles {|<hline-p-hr style|>} +>>> + + + + +\<configure ooffice-mml latex\><<< +\Configure{HBorder} + |<HBorder hline row|>% + |<HBorder cline row|>% + |<HBorder vspace row|>% +>>> + + +\<HBorder hline row\><<< +{\ifmathml <\a:mathml mtr\Hnewline class="hline"> + \else |<HBorder hline|>\fi} +{\ifmathml |<mml mtd hline|> + \else |<HBorder hline cell|>\fi} +{\ifmathml </\a:mathml mtr> + \else |<end HBorder hline|>\fi} +>>> + + +\<HBorder cline row\><<< +{\ifmathml <\a:mathml mtr\Hnewline class="cline"> + \else |<HBorder cline|>\fi} +{\ifmathml <\a:mathml mtd></\a:mathml mtd> + \else |<HBorder cline p cell|>\fi } +{\ifmathml |<mml mtd hline|> + \else |<HBorder cline p-hr cell|>\fi} +{\ifmathml </\a:mathml mtr> + \else |<end HBorder cline|>\fi} +>>> + +\<HBorder vspace row\><<< +{\ifmathml <\a:mathml mtr\Hnewline class="vspace" style="font-size:\HBorderspace"> + \else |<HBorder vspace|>\fi} +{\ifmathml <\a:mathml mtd\Hnewline></\a:mathml mtd> + \else |<HBorder vspace td|>\fi} +{\ifmathml </\a:mathml mtr> + \else |<end HBorder vspace|>\fi} +>>> + + + + + + +\<HBorder hline\><<< +<table:table-row \Hnewline table:style-name="hline-row">% +>>> + + +\<mml mtd hline\><<< +<\a:mathml mtd><\a:mathml mo> \string&\#x0332; </\a:mathml mo></\a:mathml mtd> +>>> + + +\<HBorder hline cell\><<< +<table:table-cell table:style-name="hline-cell" >% + <text:p text:style-name="hline-p-hr" />% + </table:table-cell>\Hnewline +>>> + +\<end HBorder hline\><<< +</table:table-row>\Hnewline +>>> + +\<HBorder cline\><<< +<table:table-row \Hnewline table:style-name="cline-row">\Hnewline +>>> + +\<HBorder cline p cell\><<< +<table:table-cell table:style-name="cline-cell">% + <text:p text:style-name="cline-p" />% + </table:table-cell>\Hnewline +>>> + +\<HBorder cline p-hr cell\><<< +<table:table-cell table:style-name="cline-cell">% + <text:p text:style-name="cline-p-hr" />% + </table:table-cell>\Hnewline +>>> + +\<end HBorder cline\><<< +</table:table-row>\Hnewline +>>> + + + +\<HBorder vspace\><<< +<tr\Hnewline class="vspace" style="font-size:\HBorderspace">% +>>> + +\<HBorder vspace td\><<< +<td\Hnewline>\string&\csname :sharp\endcsname xA0;</td>% +>>> + +\<end HBorder vspace\><<< +</tr>% +>>> + + + + +\<hline-p-hr style\><<< +<style:style style:name="hline-p-hr" + style:family="paragraph">\Hnewline + <style:paragraph-properties + fo:padding="0.00001cm" + fo:margin-top="0.00001cm" + fo:margin-bottom="0.00001cm" + fo:border-left="none" + fo:border-right="none" + fo:border-top="none" + fo:line-height="|<hline resolution|>11cm" + fo:border-bottom="|<hline resolution|>1cm solid \#000000" + />\Hnewline +</style:style> +>>> + + +\<hline-p-hr style\><<< +<style:style style:name="cline-p-hr" + style:family="paragraph">\Hnewline + <style:paragraph-properties + fo:padding="0.00001cm" + fo:margin-top="0.00001cm" + fo:margin-bottom="0.00001cm" + fo:border-left="none" + fo:border-right="none" + fo:border-top="none" + fo:line-height="0.01cm" + fo:border-bottom="|<hline resolution|>1cm solid \#000000" + />\Hnewline +</style:style> +<style:style style:name="cline-p" + style:family="paragraph">\Hnewline + <style:paragraph-properties + fo:margin="0.00001cm" + fo:border="none" + fo:line-height="0.001cm" + />\Hnewline +</style:style> +>>> + + + +\begin{verbatim} + > In addition, of course the formatting of borders for OOo tables doesn't + > come out exactly the same as when entered in OOo itself, so that + > round-tripping won't work, + +TeX4ht introduces the borders in segments: top, down, left, +right. Moreover, the horizontal segments appear in separate cells. The +segmentation is there to provide for special effects in LaTeX +tables. I don't know how to improve the outcome, short of trying to +post process the output. +\end{verbatim} + + + +%%%%%%%%%%%%% +\subsubsection{Multicolumn} +%%%%%%%%%%%%% + + +\<latex tabular\><<< +\Configure{multicolumn} + {\let\col:Css\empty + \expandafter\let\csname col:Css0\endcsname\empty + \expandafter\let\csname col:Css1\endcsname\empty + \Configure{VBorder} + {} + {\edef\col:Css{\col:Css + \ifnum \ar:cnt=0 L\else R\fi }% + \expandafter\edef\csname col:Css\ar:cnt\endcsname{% + fo:border-\ifnum \ar:cnt=0 left\else right\fi + ="0.01cm solid \#000000" + fo:padding-\ifnum \ar:cnt=0 left\else right\fi + ="0.17cm" |% 5pt |% + }% + }{}{}% + } + {|<multicolumn sty|>} + {|<multicolumn sty|>% + \Configure{HtmlPar} + {|<multicolumn par|>} + {|<multicolumn par|>} + {}{}% + } + {} +>>> + + + + + +\<multicolumn par\><<< +\Configure{HtmlPar} + {\HCode{<text:line-break/><text:line-break/>}} + {\HCode{<text:line-break/><text:line-break/>}} + {} + {}% +>>> + +The above text:p doesn't get into the code. Where the contributions comes from??? + + +\<multicolumn sty\><<< +\ifx \col:Css\empty \else + \edef\col:Css{multicolumn-\col:Css 11\halignTD-\cell:style:name}% + \expandafter\ifx \csname \col:Css\endcsname\relax + \expandafter\xdef\csname \col:Css\endcsname{}% + |<multicolumn oOOstyles|>% + \fi + \HCode{<text:span + text:style-name="\col:Css"></text:span>}% +\fi +>>> + +\<multicolumn oOOstyles\><<< +\OOstyles{% + <style:style + style:name="\col:Css" + style:family="paragraph" + style:parent-style-name="\cell:style:name">\Hnewline + <style:paragraph-properties + \csname col:Css0\endcsname + \csname col:Css1\endcsname + />\Hnewline + </style:style>\Hnewline +}% +>>> + + + +\<\><<< +\OOstyles{% + <style:style style:name="TBL-\TableNo-\HRow-\HCol" + style:family="table-cell">\Hnewline + <style:table-cell-properties +% style:vertical-align="bottom" + \col:Css + />\Hnewline + </style:style>\Hnewline +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Other} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\verb|\par| is empty if not in par box. + +\<start array par box\><<< +\par \ShowPar +>>> + +\<end array par box\><<< +\IgnorePar \EndP +>>> + + +\<latex tabular\><<< +\Configure{halign} + {\EndP\halignTB{halign}} {\HCode{</table>}} + {\HCode{<tr \Hnewline}\halignTR\HCode{>}} + {\HCode{</tr>}} + {\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}% + \halignTD \HCode{\Hnewline>}} + {\HCode{</td>}} +\Configure{pic-halign}{} +>>> + + + +\<latex tabular\><<< +\Configure{HVerbatim+}{\z@}{\:nbsp} +\Configure{Needs}{l. + \the\inputlineno\space--- needs --- #1 ---} +\Configure{Needs-}{l. + \the\inputlineno\space--- needs --- #1 ---} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Color} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice color\><<< +\Configure{color}{\:gobble} +>>> + +\<configure ooffice color\><<< +\Configure{HColor:gray}{% + \int:of\:tempa{255}{#1}% + \hex:of\:tempa + \Configure{HColor}{}{\#\:tempa\:tempa\:tempa}% +} +\Configure{HColor:rgb}{% + \int:of\:tempa{255}{#1}% + \int:of\:tempb{255}{#2}% + \int:of\:tempc{255}{#3}% + \hex:of\:tempa + \hex:of\:tempb + \hex:of\:tempc + \Configure{HColor}{}{\#\:tempa\:tempb\:tempc}% +} +\Configure{HColor:cmyk}{% + \int:of\:Cyan{255}{#1}% + \int:of\:Magenta{255}{#2}% + \int:of\:Yellow{255}{#3}% + \int:of\:Black{255}{#4}% + \:cmyk\:tempa\:Cyan + \:cmyk\:tempb\:Magenta + \:cmyk\:tempc\:Yellow + \hex:of\:tempa + \hex:of\:tempb + \hex:of\:tempc + \Configure{HColor}{}{\#\:tempa\:tempb\:tempc}% +} +|<HColor util|> +>>> + + + + + +\<HColor util\><<< +\def\int:of#1#2#3{% + \tmp:dim=#3pt \tmp:dim=#2\tmp:dim + \edef\:temp{\tmp:cnt\the\tmp:dim//}% + \def#1##1//{}\afterassignment#1\:temp + \edef#1{\the\tmp:cnt}% +} +\def\hex:of#1{% + \tmp:cnt=#1 + \divide\tmp:cnt by 16 + \edef\:temp{\ifcase \tmp:cnt 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or + 8\or 9\or A\or B\or C\or D\or E\or F\fi}% + \multiply\tmp:cnt by -16 \advance\tmp:cnt by #1 + \edef#1{\:temp + \ifcase \tmp:cnt 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or + 8\or 9\or A\or B\or C\or D\or E\or F\fi}% +} +>>> + + +\begin{verbatim} +cmyk -> gray +(1 - 0.299c - 0.587m - 0.114y)(1 - k) + +cmyk -> rgb +Red = 1-minimum(1,Cyan *(1-Black)+Black) +Green = 1-minimum(1,Magenta*(1-Black)+Black) +Blue = 1-minimum(1,Yellow *(1-Black)+Black) +\end{verbatim} + + + +\<HColor util\><<< +\def\:cmyk#1#2{% + \tmp:cnt=255 \advance\tmp:cnt by -\:Black + \multiply\tmp:cnt by#2 \advance\tmp:cnt by \:Black + \advance\tmp:cnt by -255 \tmp:cnt=-\tmp:cnt + \ifnum \tmp:cnt<0 \tmp:cnt=0 \fi + \edef#1{\the\tmp:cnt}% +} +>>> + + +The following doesn't work yet. + + +\begin{verbatim} +\documentclass{article} +\usepackage[dvips]{xcolor} + +\begin{document} + +\begin{center} +\fcolorbox{black}{green}{\parbox{.775\columnwidth}{\textbf{Hint:}\vspace{.2cm}\\ Abc.}} +\end{center} + + +\begin{center} + +\fcolorbox{black}{green}{\parbox{.775\columnwidth}{\textbf{Hint:}\vspace{.2cm}\\ Abc.}} + +\fcolorbox{black}{green}{\parbox{.775\columnwidth}{\textbf{Hint:}\vspace{.2cm}\\ Abc.}} + +\end{center} +\end{document} + + +\documentclass {article} + + \usepackage[table,svgnames]{xcolor} + +\begin {document} + + \rowcolors[]{1}{gray!10}{gray!5} + + \begin{tabular}{|*{2}{r|c|}} + Blue & Red & Yellow & Green\\\hline + Blue & Red & Yellow & Green\\ + Blue & Red & Yellow & Green\\\hline + Blue & Red & Yellow & Green\\ + Blue & Red & Yellow & Green\\ + Blue & Red & Yellow & Green\\ + Blue & Red & Yellow & Green\\ + \end{tabular} + +\end{verbatim} + +\<configure ooffice color\><<< +\Configure{fcolorbox} + {\bgroup\gHAdvance\textcolorN by 1 + \ifvmode \let\v:colorbox\def \IgnorePar \EndP + \else \let\v:colorbox=\relax \fi + \ifx \v:colorbox\def + \HCode{<text:p \Hnewline + text:style-name="colorbox\textcolorN">}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\let\A:color=\a:color +\Configure{color}% + {\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor}{% + \OOstyles{<style:style style:name="colorbox\textcolorN" + style:family="paragraph"\> +% <style:text-properties style:text-background-color="\HColor"/> + <style:text-properties fo:color="\HColor" + fo:background-color="transparent" /> + </style:style>}% + }}% + \Configure{SetHColor}{% +% \hshow{\#colorbox\textcolorN{border: solid 1px \HColor;}}% + }% + }% + \Configure{fbox}{\leavevmode }{}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \else + \HCode{<text:span \Hnewline + text:style-name="colorbox\textcolorN">}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\let\A:color=\a:color +\Configure{color}% + {\Configure{color}% + {\let\a:color=\A:color + \Configure{SetHColor}{% + \OOstyles{<style:style style:name="colorbox\textcolorN" style:family="text"> +% <style:text-properties style:text-background-color="\HColor" /> + <style:text-properties fo:color="\HColor" + fo:background-color="transparent" /> + </style:style>}% + }}% + \Configure{SetHColor}{% +% \hshow{\#colorbox\textcolorN{border: solid 1px \HColor;}}% + }% + }% + \Configure{fbox}{\leavevmode }{}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fi +} +{\ifx \v:colorbox\def + \EndP\HCode{</text:p>}\par + \else \HCode{</text:span>}\fi + \egroup +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{XColor} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice xcolor\><<< +\Configure{rowcolors} + {\Configure{SetHColor}{% + \expandafter\ifx \csname HColor\endcsname\relax \else +% \hshow{tr\#TBL-\TableNo-\the\rownum-{background-color:\HColor}}% + \fi + }} +>>> + +\<configure ooffice xcolor\><<< +\Configure{HColor!gray}{% + \XC@c@lcD\rangeGray{}{#1}\@@tmp + \int:of\:tempa{255}{\@@tmp}% + \hex:of\:tempa + \Configure{HColor}{}{\#\:tempa\:tempa\:tempa}% +} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{tabbing} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<ooffice begin-end env\><<< +\HAssign\tabbing:N=0 +\Configure{tabbing}[1.5]{\IgnorePar\leavevmode + \gHAdvance\tabbing:N by 1 + \gHAssign\tabbing:Nrow=0 + \ht:special{t4ht=<text:p + text:style-name="tabbing" \Hnewline >}} + {\ht:special{t4ht=</text:p>\Hnewline}\ShowPar} + {\gHAdvance\tabbing:Nrow by 1 + \ht:special{t4ht=<text:span\Hnewline + text:style-name="tabbing-\tabbing:N-\tabbing:Nrow" + >}% + |<style of current tabbing cell|>% + } + {\ht:special{t4ht=</text:span>}} +\ConfigureEnv{tabbing}{\IgnorePar\EndP}{}{}{} +>>> + +\<ooffice begin-end env\><<< +\NewConfigureOO{tabbing} +\ConfigureOO{tabbing}{|<oo tabbing style|>} +>>> + + +\<oo tabbing style\><<< +<style:style style:name="tabbing" + style:family="paragraph" + style:parent-style-name="Standard" >\Hnewline + <style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:text-indent="0.5cm" + style:auto-text-indent="false"/>\Hnewline +</style:style>\Hnewline +>>> + +The following style sdon't work. + + +\<style of current tabbing cell\><<< +\OOstyles{% + <style:style style:name="tabbing-\tabbing:N-\tabbing:Nrow" + >\Hnewline + <style:text-properties + fo:wrap-option="no-wrap" + \ifx \TabWidth\empty \else + fo:width="\TabWidth pt" + \fi + \ifx \`\TabType + style:text-align="right" + \fi + />\Hnewline + </style:style>\Hnewline + } +>>> + + +\begin{verbatim} +Is there a way to request a no-wrap element <text:span> ... +</text:span> of a specified width? + + LaTeX source: + \begin{tabbing} + Armadillo \= Armament \= \kill + Gnat \> Gnu \> Gnome \\ + Armadillo \> Armament \> Armorer + \end{tabbing} + +Unfortunately not, you have to use either tab-stops or a table for this. +\end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Index} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Envelop} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<ooffice index\><<< +\Configure{theindex} + {\ifvmode\IgnorePar\fi + \EndP\HCode{<text:alphabetical-index text:name="theindex" > + |<index format|>% + <text:index-body>\Hnewline}% + \csname put:IndexTitle\endcsname + } + {\HCode{</text:index-body></text:alphabetical-index>}} + {\HCode{<text:p text:style-name="P6" >}} + {\HCode{<text:tab-stop/></text:p>}\hfill\break} + {\HCode{<text:p text:style-name="P7" >}} + {\HCode{<text:tab-stop/></text:p>}\hfill\break} + {\HCode{<text:p text:style-name="P8" >}} + {\HCode{<text:tab-stop/></text:p>}\hfill\break} + {} +>>> + + + + + +\<index format\><<< +<text:alphabetical-index-source + text:sort-algorithm="alphanumeric" >\Hnewline + <text:index-title-template + text:style-name="Index-Heading" >\indexname + </text:index-title-template>\Hnewline + |<index entry format|>\Hnewline +</text:alphabetical-index-source>\Hnewline +>>> + +\<index entry format\><<< +<text:alphabetical-index-entry-template + text:outline-level="1" + text:style-name="Index-1" >\Hnewline + <text:index-entry-text/>\Hnewline + <text:index-entry-tab-stop + style:type="left" + style:position="0in" + style:leader-char=" " + />\Hnewline + <text:index-entry-page-number/>\Hnewline +</text:alphabetical-index-entry-template>\Hnewline +>>> + +\<index entry format\><<< +<text:alphabetical-index-entry-template + text:outline-level="2" + text:style-name="Index-2" >\Hnewline + <text:index-entry-text/>\Hnewline + <text:index-entry-tab-stop + style:type="left" + style:position="0in" + style:leader-char=" " + />\Hnewline + <text:index-entry-page-number/>\Hnewline +</text:alphabetical-index-entry-template>\Hnewline +>>> + +\<index entry format\><<< +<text:alphabetical-index-entry-template + text:outline-level="3" + text:style-name="Index-3" >\Hnewline + <text:index-entry-text/>\Hnewline + <text:index-entry-tab-stop + style:type="left" + style:position="0in" + style:leader-char=" " + />\Hnewline + <text:index-entry-page-number/>\Hnewline +</text:alphabetical-index-entry-template>\Hnewline +>>> + + + + + + + + +\<content style 6\><<< +\NewConfigureOO{Index 1} +\ConfigureOO{Index 1}{\Hnewline + <style:style style:name="Index-1" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index"> + <style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:text-indent="0cm" + style:auto-text-indent="false"/> + </style:style> + \Hnewline } +>>> + + + +\<content style 7\><<< +\NewConfigureOO{Index 2} +\ConfigureOO{Index 2}{\Hnewline + <style:style style:name="Index-2" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index">\Hnewline + <style:paragraph-properties fo:margin-left="0.499cm" + fo:margin-right="0cm" + fo:text-indent="0cm" + style:auto-text-indent="false"/>\Hnewline + </style:style> +\Hnewline} +>>> + + + +\<content style 8\><<< +\NewConfigureOO{Index 3} +\ConfigureOO{Index 3}{\Hnewline + <style:style style:name="Index-3" + style:family="paragraph" + style:parent-style-name="Index" + style:class="index">\Hnewline + <style:paragraph-properties fo:margin-left="0.998cm" + fo:margin-right="0cm" + fo:text-indent="0cm" + style:auto-text-indent="false"/>\Hnewline + </style:style> + \Hnewline} +>>> + + + + +\<automatic style 6\><<< +\Hnewline + <style:style style:name="P6" + style:family="paragraph" + style:parent-style-name="Index-1">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="0cm"/>\Hnewline + </style:tab-stops>\Hnewline + </style:text-properties>\Hnewline + </style:style> + \Hnewline +>>> + + +\<automatic style 7\><<< +\Hnewline + <style:style style:name="P7" + style:family="paragraph" + style:parent-style-name="Index-2">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="0cm"/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> + \Hnewline +>>> + + +\<automatic style 8\><<< +\Hnewline + <style:style style:name="P8" + style:family="paragraph" + style:parent-style-name="Index-3">\Hnewline + <style:paragraph-properties >\Hnewline + <style:tab-stops>\Hnewline + <style:tab-stop style:position="0cm"/>\Hnewline + </style:tab-stops>\Hnewline + </style:paragraph-properties >\Hnewline + </style:style> + \Hnewline +>>> + + +%%%%%%%%%%%%% +\subsection{Making Index Entries} +%%%%%%%%%%%%% + + + +\<configure ooffice latex\><<< +\catcode`\!=13 +\HAssign\indexmark:N = 0 +\immediate\openin15=\jobname.4ix +\ifeof15 \else + \Configure{wrindex} + {{\special{t4ht@(}\catcode`\\=0 \catcode`\{=1 + \catcode`\}=2 \catcode`\ =10 \catcode`\!=13 + \def!{\c:indexmark\def!{\d:indexmark\def!{\string!}}}% + \gHAdvance\indexmark:N by 1 + \def\indexmark##1##2{% + \ifnum \indexmark:N=##2 \special{t4ht@)}\a:indexmark + ##1\b:indexmark\special{t4ht@(}\fi}% + \hbox{\input \jobname.4ix \special{t4ht@)}}% + }} +\fi +\catcode`\!=12 +\NewConfigure{indexmark}{4} +\Configure{indexmark} + {\HCode{<text:alphabetical-index-mark\Hnewline + text:id="dx\last:haddr" + text:string-value="}% + \NoFonts} + {\EndNoFonts \HCode{" />}} + {\HCode{" text:key1="}} + {\HCode{" text:key2="}} +>>> + + +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \pend:def\a:wrindex{% +% \let\title::chs=\title:chs +% \def\title:chs{\let\title:chs\title::chs +% \title:chs{\html:addr}{}\:gobbleII}% +% } +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \Configure{indexmark} +% {\HCode{<!--}\Link-{}{dx\last:haddr}\EndLink\HCode{-->}% +% \HCode{<text:alphabetical-index-mark\Hnewline + + +\<configure ooffice latex\><<< +\pend:def\index{\leavevmode} +>>> + +The following two sample codes provide different behavior. + +\begin{verbatim} +\documentclass[12pt]{article} +\usepackage{makeidx} +\makeindex +\begin{document} +\index{Hola: Hallo} Hola +\printindex +\end{document} +\end{verbatim} + +\begin{verbatim} +\documentclass{article} +\usepackage[frenchb]{babel} +\usepackage{makeidx} +\makeindex + +\begin{document} +\begin{itemize} +\item \index{blabla} blabla +\item blabla +\end{itemize} +\end{document} +\end{verbatim} + + + + + + +%%%%%%%%%%%%% +\subsection{Insed Title Head} +%%%%%%%%%%%%% + +\<ooffice index\><<< +\Configure{LNK}{\oo:LNK}{\EndLink}{} +\Odef\oo:LNK[#1]#2#3{\Link{#2}{#3}} +>>> + + +\<chapter index\><<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \def\put:IndexTitle{|<index title|>}\fi} +>>> + +\<non-chapter index\><<< +\Configure{@begin}{theindex}{\ifx \indexname\empty \else + \def\put:IndexTitle{|<index title|>}\fi} +>>> + +\<index title\><<< +\HCode{<text:index-title + text:style-name="Sect1" + text:name="Alphabetical_Index1_Head" + ><text:p + text:style-name="Index-Heading" >}\indexname +\HCode{</text:p></text:index-title>\Hnewline} +>>> + + +\<configure ooffice latex\><<< +\NewConfigureOO{Index Heading} +\ConfigureOO{Index Heading}{\Hnewline + <style:style + style:name="Index-Heading" + style:family="paragraph" + style:parent-style-name="Heading" + style:class="index">\Hnewline + <style:paragraph-properties + fo:margin-left="0in" + fo:margin-right="0in" + fo:font-size="16pt" + fo:font-weight="bold" + style:font-size-asian="16pt" + style:font-weight-asian="bold" + style:font-size-complex="16pt" + style:font-weight-complex="bold" + fo:text-indent="0in" + style:auto-text-indent="false" + text:number-lines="false" + text:line-number="0"/>\Hnewline + </style:style>\Hnewline +} +>>> + +\<configure html4 multind\><<< +\Configure{@begin}{theindex} + {\ifx \indexname\empty \else|<toc for multind|>\fi} +>>> + + +% \ifx \indexname\empty \else +% \ifx\chapter\:Undef \section*{\indexname}\else +% \chapter*{\indexname}\fi +% \let\indexname=\empty +% \fi +% + + + +\<configure html4 index\><<< +\Configure{NoSection} + {\let\sv:index=\p@index \let\sv:label=\label + \let\sv:newline=\newline \def\newline{ }% + \def\p@index[##1]{\@gobble}\let\label=\@gobble + |<nolink ref|>% + } + {\let\p@index=\sv:index \let\label=\sv:label + |<restore ref|>% + \let\newline=\sv:newline + } +>>> + + + + +\<configure html4 texinfo\><<< +\Configure{index} + {\IgnorePar\leavevmode\EndP\Tg<div class="index">} + {\IgnorePar\EndP\Tg</div>} + {\leavevmode\Tg<span class="entry">} + {\Tg</span>\Tg<br />\IgnorePar} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{mwcls} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<mwcls index\><<< +\Configure{@begin}{theindex}{\section*{\indexname}} +>>> + +\<mwcls sections\><<< +\ConfigureMark{chapter} + {\ifHeadingNumbered \mw@seccntformat\HeadingNumber\fi} +\ConfigureMark{section} +{\ifHeadingNumbered\@seccntformat{section}\fi} +\ConfigureMark{subsection} +{\ifHeadingNumbered\@seccntformat{subsection}\fi} +\ConfigureMark{subsubsection} +{\ifHeadingNumbered\@seccntformat{subsubsection}\fi} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Begin/End Environments} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Verse} +%%%%%%%%%%%%% + + + +\<configure ooffice latex\><<< +\ConfigureEnv{verse} + {|<begin env section|>% + \HCode{<!--start verse-->}% + \bgroup |<HtmlPar at verse|>} + {\egroup \ifvmode \IgnorePar\fi \EndP + \HCode{<!--end verse-->}|<end env section|>\par\ShowPar} + {}{} +\ConfigureList{verse} + {}{} + {\parindent=\z@} {\par} +\NewConfigureOO{verse} +\ConfigureOO{verse}{\Hnewline +<style:style style:name="verse" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body"> +<style:paragraph-properties fo:margin-left="1.499cm" + fo:margin-right="1cm" + fo:margin-top="0.199cm" + fo:margin-bottom="0.199cm" + fo:text-indent="-0.499cm" + style:auto-text-indent="false"> + <style:tab-stops/> +</style:paragraph-properties > +</style:style> +\Hnewline} +>>> + +\<configure ooffice verse\><<< +\ConfigureEnv{verse} + {|<begin env section|>% + \HCode{<!--start verse-->}% + \bgroup +\Configure{HtmlPar} + {\ifvmode \IgnorePar\fi \EndP\end:verseln + \HCode{<text:p text:style-name="verse-stanza" >}} + {\ifvmode \IgnorePar\fi \EndP\end:verseln + \HCode{<text:p text:style-name="verse-stanza" >}} + {\HCode{</text:p>}\let\end:verseln\empty} + {\HCode{</text:p>}\let\end:verseln\empty}% + \let\end:verseln\empty + } + {\egroup + \ifvmode \IgnorePar\fi \EndP\HCode{<!--end verse-->}|<end env section|> + \par\ShowPar} + {}{} + +\ConfigureList{verse} + {} {\ifvmode \IgnorePar\fi \EndP \end:verseln} + {\parindent=\z@} {} + +\Configure{verseline} + {\ifvmode \IgnorePar\fi \EndP \end:verseln + \HCode{<text:p text:style-name="verse">}\def\end:verseln{\HCode{</text:p>}}} + {\ifvmode \IgnorePar\fi \EndP \end:verseln + \HCode{<text:p text:style-name="verse">}% + \def\end:verseln{\HCode{</text:p>}}} + +\ConfigureOO{verse}{\Hnewline +<style:style style:name="verse" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body"> +<style:paragraph-properties fo:margin-left="1.499cm" + fo:margin-right="1cm" + fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:text-indent="-0.499cm" + style:auto-text-indent="false"> + <style:tab-stops/> +</style:paragraph-properties > +</style:style> +\Hnewline} + +\NewConfigureOO{verse-stanza} +\ConfigureOO{verse-stanza}{\Hnewline +<style:style style:name="verse-stanza" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body"> +<style:paragraph-properties fo:margin-left="1.499cm" + fo:margin-right="1cm" + fo:margin-top="0.5cm" + fo:margin-bottom="0cm" + fo:text-indent="-0.499cm" + style:auto-text-indent="false"> + <style:tab-stops/> +</style:paragraph-properties > +</style:style> +\Hnewline} +>>> + +%%%%%%%%%%%%% +\subsection{Paragraph} +%%%%%%%%%%%%% + + + + +\<HtmlPar at verse\><<< +\Configure{HtmlPar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="verse" >}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="verse" >}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% +>>> + + + + + + +%%%%%%%%%%%%% +\subsection{Table} +%%%%%%%%%%%%% + + + +\<ooffice begin-end env\><<< +\ConfigureEnv{table} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:section text:name="table" >}% + \bgroup \Configure{float}{\ShowPar}{}{\ShowPar\IgnoreIndent\csname par\endcsname}% + } + {\egroup + \ifvmode \IgnorePar\fi\EndP \HCode{</text:section>}% + \csname par\endcsname\ShowPar} + {}{} +>>> + + + + + + +%%%%%%%%%%%%% +\subsection{Float} +%%%%%%%%%%%%% + + + +\<configure ooffice latex\><<< +\Configure{float} + {\csname par\endcsname\ShowPar \leavevmode} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:section text:name="float" >}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{</text:section>}% + \csname par\endcsname\ShowPar + } +\ConfigureEnv{figure} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:section text:name="fig" + text:style-name="Figure" + >|<big skip|>}% + \bgroup \Configure{float}{\ShowPar}{}{}% + } + {\egroup + \ifvmode \IgnorePar\fi\EndP \HCode{|<big skip|></text:section>}% + \csname par\endcsname\ShowPar} + {}{} +>>> + +\<configure ooffice Preamble\><<< +\edef\Preamble{\Preamble,refcaption} +>>> + +The section style can't be in style.xml? + + +\<oo2 automatic styles\><<< +\Configure{automatic-styles} + {\csname a:figure-style\endcsname} +\NewConfigure{figure-style}{1} +\Configure{figure-style}{% + <style:style style:name="Figure" style:family="section">\Hnewline + <style:section-properties + fo:margin-left="0.25in" + fo:margin-right="0.25in" + style:editable="true">\Hnewline + <style:columns fo:column-count="0" + fo:column-gap="0in"/> + </style:section-properties> + </style:style>\Hnewline +} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{lineno.sty} +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice lineno\><<< +\:warning{The line numbers are commented out. To reintroduce them, use + the \string\Configure{lineno}{...}{...} command} +\Configure{lineno} + {\bgroup \let\LineNumber=\empty} + {\egroup} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Text Decorations} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\subsection{Fonts} +%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice tex4ht\><<< +\Configure{htf}{0}{+}{<text:span\Hnewline + text:style-name="}{\%s}{-\%s}{x-x-\%d}{}{">}{</text:span>} +\Configure{htf}{4}{+}{<text:span\Hnewline + text:style-name="}{}{}{}{}{small-caps">}{</text:span>} +>>> + +\<configure ooffice tex4ht\><<< +\NewConfigureOO{small-caps} +\ConfigureOO{small-caps}{% +<style:style style:name="small-caps" style:family="text">\Hnewline + <style:text-properties + fo:font-variant="small-caps" + />\Hnewline +</style:style>\Hnewline +} +>>> + + +\<configure ooffice fontmath\><<< +\ifx \find:set:mgroup\:UnDef + \def\find:set:mgroup#1#2#3{\bgroup + \let\HPage\:gobble + \let\EndHPage\:gobble + \def\use@mathgroup##1##2##3{\relax + \tmp:cnt=##2% + \xdef\:temp####1{\noexpand\Configure{MathClass}{#2}% + {}{}{}{\mathchar"0\the\tmp:cnt ####1}}% + }% + \setbox\tmp:bx=\hbox{$#1$}\setbox\tmp:bx=\hbox{}% + \set:mgroup#3{}{}% + \egroup + } +\fi +>>> + + +\<configure ooffice fontmath\><<< +\Configure{texttt} + {\ifmathml \Configure{@mtext}{\mml:class="texttt" mathvariant="monospace" }% + \else \HCode{<text:span text:style-name="texttt" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{textit} + {\ifmathml \Configure{@mtext}{\mml:class="textit" mathvariant="italic" }% + \else \HCode{<text:span text:style-name="textit" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{textrm} + {\ifmathml \Configure{@mtext}{ \mml:class="textrm" mathvariant="normal" }% + \else \HCode{<text:span text:style-name="textrm" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{textsl} + {\ifmathml \Configure{@mtext}{ \mml:class="textst" mathvariant="italic" }% + \else \HCode{<text:span text:style-name="textsl" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{textsf} + {\ifmathml \Configure{@mtext}{ \mml:class="textsf" mathvariant="sans-serif" }% + \else \HCode{<text:span text:style-name="textsf" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{textbf} + {\ifmathml \Configure{@mtext}{ \mml:class="textbf" mathvariant="bold" }% + \else \HCode{<text:span text:style-name="textbf" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{textsc} + {\ifmathml \Configure{@mtext}{ \mml:class="textsc" mathvariant="normal" }% + \else \HCode{<text:span text:style-name="textsc" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{emph} + {\ifmathml \Configure{@mtext}{ \mml:class="emph" mathvariant="italic" }% + \else \HCode{<text:span text:style-name="Emphasis" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} + \Configure{textup} + {\ifmathml \Configure{@mtext}{ \mml:class="textup" mathvariant="normal" }% + \else \HCode{<text:span text:style-name="textup" >}\fi} + {\ifmathml\else \HCode{</text:span>}\fi} +>>> + + + +\<configure ooffice fontmath\><<< +\NewConfigureOO{emph} +\ConfigureOO{emph}{|<oo emph style|>} +\NewConfigureOO{textit} +\ConfigureOO{textit}{|<oo textit style|>} +\NewConfigureOO{textbf} +\ConfigureOO{textbf}{|<oo textbf style|>} +\NewConfigureOO{textsc} +\ConfigureOO{textsc}{|<oo textsc style|>} +\NewConfigureOO{texttt} +\ConfigureOO{texttt}{|<oo texttt style|>} +\NewConfigureOO{textrm} +\ConfigureOO{textrm}{|<oo textrm style|>} +\NewConfigureOO{textsf} +\ConfigureOO{textsf}{|<oo textsf style|>} +\NewConfigureOO{textsl} +\ConfigureOO{textsl}{|<oo textsl style|>} +\NewConfigureOO{textsl} +\ConfigureOO{textsl}{|<oo textup style|>} +>>> + + +\<oo textsf style\><<< +<style:style style:name="textsf" style:family="text">\Hnewline + <style:text-properties fo:font-style="normal" + fo:font-weight="bold" + style:font-family-generic="swiss" + style:font-pitch="variable" />\Hnewline +</style:style>\Hnewline +>>> + + +\<oo emph style\><<< +<style:style style:name="Emphasis" style:family="text">\Hnewline + <style:text-properties fo:font-style="italic"/>\Hnewline +</style:style>\Hnewline +>>> + +\<oo textit style\><<< +<style:style style:name="textit" style:family="text">\Hnewline + <style:text-properties fo:font-style="italic"/>\Hnewline +</style:style>\Hnewline +>>> + + + + +\<oo textrm style\><<< +<style:style style:name="textrm" style:family="text">\Hnewline +<style:text-properties fo:font-weight="normal" + style:font-weight-asian="normal" + style:font-weight-complex="normal"/>\Hnewline +</style:style>\Hnewline +>>> + + + + + +\<oo textsl style\><<< +<style:style style:name="textsl" style:family="text">\Hnewline + <style:text-properties fo:font-style="italic"/>\Hnewline +</style:style>\Hnewline +>>> + +\<oo textbf style\><<< +<style:style style:name="textbf" style:family="text">\Hnewline + <style:text-properties fo:font-style="normal" + fo:font-weight="bold"/>\Hnewline +</style:style>\Hnewline +>>> + +\<oo textsc style\><<< +<style:style style:name="textsc" style:family="text">\Hnewline + <style:text-properties + fo:font-variant="small-caps" + fo:font-style="normal" + fo:font-weight="normal" +% fo:font-size="75\%" + style:text-position="0\% 100\%" + />\Hnewline +</style:style>\Hnewline +>>> + + +\<oo texttt style\><<< +<style:style style:name="texttt" style:family="text">\Hnewline + <style:text-properties + fo:font-family="monospace" + />\Hnewline +</style:style>\Hnewline +>>> + +\<oo textup style\><<< +<style:style style:name="textup" style:family="text">\Hnewline +<style:text-properties fo:font-weight="normal" + style:font-weight-asian="normal" + style:font-weight-complex="normal"/>\Hnewline +</style:style>\Hnewline +>>> + + + +%%%%%%%%%%%%% +\subsection{Soul} +%%%%%%%%%%%%% + +\<configure ooffice soul\><<< +\Configure{textcaps} + {\HCode{<text:span text:style-name="textcaps">}} + {\HCode{</text:span>}} +\Configure{texthl} + {\HCode{<text:span text:style-name="texthl">}\bgroup + \ifx\setstcolor\:gobble\else |<soul color|>\fi} + {\egroup\HCode{</text:span>}} +\Configure{textso} + {\HCode{<text:span text:style-name="textso">}} + {\HCode{</text:span>}} +\Configure{textst} + {\HCode{<text:span text:style-name="textst">}\bgroup + \ifx\setstcolor\:gobble\else |<soul color|>\fi} + {\egroup\HCode{</text:span>}} +\Configure{textul} + {\HCode{<text:span text:style-name="textul">}\bgroup + \ifx\setstcolor\:gobble\else |<soul color|>\fi} + {\egroup\HCode{</text:span>}} +>>> + + + + + +\<configure ooffice soul\><<< +\NewConfigureOO{textcaps} +\ConfigureOO{textcaps}{|<oo textcaps style|>} +\NewConfigureOO{textso} +\ConfigureOO{textso}{|<oo textso style|>} +\NewConfigureOO{textst} +\ConfigureOO{textst}{|<oo textst style|>} +\NewConfigureOO{textul} +\ConfigureOO{textul}{|<oo textul style|>} +>>> + + +\<oo textcaps style\><<< +<style:style style:name="textcaps" style:family="text">\Hnewline + <style:text-properties fo:font-variant="small-caps" />\Hnewline +</style:style>\Hnewline +>>> + + + +\<oo textso style\><<< +<style:style style:name="textso" style:family="text"> + <style:text-properties fo:letter-spacing="0.035in"/> +</style:style> +>>> + +\<oo textst style\><<< +<style:style style:name="textst" style:family="text"> + <style:text-properties style:text-line-through-style="solid" + style:text-underline-style="none" /> +</style:style> +>>> + +\<oo textul style\><<< +<style:style style:name="textul" style:family="text"> + <style:text-properties style:text-underline-style="solid" + style:text-underline-width="auto" + style:text-underline-color="font-color" + /> +</style:style> +>>> + +\<soul color\><<< +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor}{% + \OOstyles{% + <style:style style:name="textcolor\textcolorN" style:family="text"> + <style:text-properties fo:color="\HColor" + fo:background-color="transparent" /> + </style:style>}% + }}% + \HCode{<text:span text:style-name="textcolor\textcolorN">}}% + {\HCode{</text:span>}}% +>>> + + +% <style:text-properties style:text-background-color="\HColor"/> + +% <style:style style:name="T7" style:family="text"> +% <style:text-properties fo:color="#008000" fo:background-color="#ffffff"/> +% </style:style> + + +%%%%%%%%%%%%% +\subsection{Color} +%%%%%%%%%%%%% + + +\<configure ooffice color\><<< +\HAssign\textcolorN=0 +>>> + + +\<configure ooffice color\><<< +\Configure{textcolor} + {\gHAdvance\textcolorN by 1 + \Configure{color}% + {\Configure{SetHColor}{% + \OOstyles{% + <style:style style:name="textcolor\textcolorN" style:family="text"> + <style:text-properties fo:color="\HColor" + fo:background-color="transparent" /> + </style:style>}% + }}% + \HCode{<text:span text:style-name="textcolor\textcolorN">}}% + {\HCode{</text:span>}}% +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Pictures} +%%%%%%%%%%%%%%%%%% + + +\<configure ooffice latex\><<< +\Configure{picture} + {\Picture+[PICT]{}} + {\EndPicture} +>>> + + + +\<configure ooffice pst-jtree\><<< +\Configure{picture} + {\Picture+[PICT]{}} + {\EndPicture} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Equation Environment} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{LaTeX} +%%%%%%%%%%%%% + + +\<configure ooffice-mml latex\><<< +\:CheckOption{tab-eq}\if:Option + |<tab-based display equation|> +\else + \Log:Note{for tab-based layoutof equation environment + use the command line option `tab-eq'} + |<tabular-based display equation|> +\fi +>>> + + +\<tab-based display equation\><<< +\Configure{equation} + {\IgnorePar\ifvmode\else \HCode{<!--tex4ht:inline-->}\fi + \EndP \HCode{<text:p text:style-name="equ-p-tab"><text:tab/>}% + \Tabtrue + |<disp math within equation|>% + \IgnorePar} + {\Tabfalse \ifvmode \IgnorePar\fi\EndP \HCode{<text:tab/>}} + {\HCode{</text:p>}|<try inline par|>% +} +>>> + +\<configure ooffice Preamble\><<< +\newif\ifTab \Tabfalse +>>> + + + +\<tab-based display equation\><<< +\OOstyles{% +<style:style + style:name="equ-p-tab" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties + fo:text-align="center" + style:justify-single-word="false">\Hnewline + <style:tab-stops> + <style:tab-stop + style:position="7.5cm" + style:type="center"/> + <style:tab-stop + style:position="17cm" + style:type="right"/> + </style:tab-stops>\Hnewline + </style:paragraph-properties> +</style:style>\Hnewline +} +>>> + + + + + + + + + + + +\<tabular-based display equation\><<< +\Configure{equation} + {\IgnorePar\ifvmode\else \HCode{<!--tex4ht:inline-->}\fi + \EndP |<equation start table|>% + |<disp math within equation|>% + \IgnorePar} + {\ifvmode \IgnorePar\fi\EndP + |<equation table cells separator|>} + {|<equation end table|>|<try inline par|>% +} +>>> + + +\<equation start table\><<< +\HCode{<table:table table:style-name="equation">% + <table:table-column table:style-name="equ-col" />\Hnewline + <table:table-column table:style-name="equ-num-col" />\Hnewline + <table:table-row>% + <table:table-cell table:style-name="equ-cell">% + <text:p text:style-name="equ-p">}% +>>> + + + + +\<equation end table\><<< +\HCode{</text:p></table:table-cell>\Hnewline + </table:table-row></table:table>}% +>>> + + + + + +\<equation table cells separator\><<< +\HCode{</text:p></table:table-cell>\Hnewline + <table:table-cell table:style-name="equ-num-cell">% + <text:p text:style-name="equ-num-p">}% +>>> + + + + + +\<configure ooffice-mml latex\><<< +\OOstyles{% +<style:style + style:name="equ-p" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties + fo:text-align="center" + style:justify-single-word="false"/>\Hnewline +</style:style>\Hnewline +} +\OOstyles{% +<style:style + style:name="equ-num-p" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties + fo:text-align="end" + style:justify-single-word="false"/>\Hnewline +</style:style>\Hnewline +} +\OOstyles{% +<style:style style:name="equation" + style:family="table">\Hnewline + <\style:tableproperties + style:rel-width="88\%" + fo:margin-left="1cm" + fo:margin-right="0cm" + fo:margin-top="0.3cm" + fo:margin-bottom="0.3cm" + table:align="margins"/>\Hnewline +</style:style>\Hnewline +} +>>> + +%%%%%%%%%%%%% +\subsection{AMS Non-Starred} +%%%%%%%%%%%%% + + +\<configure ooffice-mml amsmath\><<< +\:CheckOption{tab-eq}\if:Option + |<tab-based ams display equation|> +\else + \Log:Note{for tab-based layout of equation environment + use the command line option `tab-eq'} + |<tabular-based ams display equation|> +\fi +>>> + + + + + + +\<tabular-based ams display equation\><<< +\Configure{equation} + {\ifvmode \IgnorePar\fi\EndP + |<equation start table|>% + |<amsmath equation july 2000|>% + |<disp math within equation|>% + } + {\ifvmode \IgnorePar\fi\EndP |<equation table cells separator|>} + {\ifvmode \IgnorePar\fi\EndP |<equation end table|>% + |<try inline par|>} +>>> + + + + + +\<tab-based ams display equation\><<< +\Configure{equation} + {\IgnorePar\ifvmode\else \HCode{<!--tex4ht:inline-->}\fi + \EndP \HCode{<text:p text:style-name="equ-p-tab"><text:tab/>}% + \Tabtrue + |<amsmath equation july 2000|>% + \IgnorePar} + {\Tabfalse \ifvmode \IgnorePar\fi\EndP \HCode{<text:tab/>}} + {\HCode{</text:p>}|<try inline par|>% +} +>>> + + + + + + + + + + + + +\<disp math within equation\><<< +\Configure{$$} + {\Configure{@math}{}\IgnorePar\EndP + \CenteredFrametrue \DviMath \CenteredFramefalse } + {\EndDviMath\EndP}{}% +>>> + + + + +\<amsmath equation july 2000\><<< +\Configure{gather} + {\HCode{<\a:mathml mtable\Hnewline + class="equation"><\a:mathml mtr><\a:mathml mtd>}\IgnorePar + |<math display in equation|>} + {\HCode{</\a:mathml mtd></\a:mathml mtr></\a:mathml mtable>}} + {} + {} + {\ifnum\HCol=2 \IgnorePar + \HCode{</\a:mathml mtd><\a:mathml mtd>}\fi } + {}% +>>> + + + +%%%%%%%%%%%%% +\subsection{AMS Starred} +%%%%%%%%%%%%% + + + +\<configure ooffice-mml amsmath\><<< +\Configure{equation*} + {\ifvmode \IgnorePar\fi \EndP + |<equation-star start table|>% + |<disp math within equation|>% + \IgnorePar + } + {\ifvmode \IgnorePar\fi\EndP + |<equation-star end table|>% + \IgnoreIndent\par} +>>> + + +\<equation-star start table\><<< +\HCode{<text:p text:style-name="display-math">}% +>>> + + +\<equation-star end table\><<< +\HCode{</text:p>}% +>>> + + + +\<configure ooffice-mml amsmath\><<< +\ConfigureEnv{align} + {\ifmathml\else + \ifvmode \IgnorePar\fi \EndP + \IgnorePar + \HCode{<text:p text:style-name="display-math">}% + \fi + } + {\ifmathml\else + \ifvmode \IgnorePar\fi\EndP + \HCode{</text:p>}% + \IgnoreIndent\par + \fi + } + {} {} +>>> + + +\<configure ooffice-mml amsmath\><<< +\ConfigureEnv{align*} + {\ifmathml\else + \ifvmode \IgnorePar\fi \EndP + \IgnorePar + \HCode{<text:p text:style-name="display-math">}% + \fi + } + {\ifmathml\else + \ifvmode \IgnorePar\fi\EndP + \HCode{</text:p>}% + \IgnoreIndent\par + \fi + } + {} {} +>>> + + + +%%%%%%%%%%%%%%%%%%% +\section{algorithmicx} +%%%%%%%%%%%%%%%%%%% + +\<configure ooffice algorithmicx\><<< +\ConfigureEnv{algorithmic} + {\ifvmode \IgnorePar\fi \EndP +% \HCode{<div \a:LRdir class="algorithmic">}% + \bgroup + \Configure{HtmlPar} + {\EndP} + {\EndP} + {} + {}% + } + {\egroup +% \HCode{</div>}% + \par\ShowPar + } + {}{} +>>> + +\<configure ooffice algorithmicx\><<< +\let\end:itm=\empty +\ConfigureList{algorithmic}% + {\EndP \end:itm + \SaveHtmlPar \HCode{<text:list + text:style-name="algorithmic|<cond rtl class|>" + text:name="algorithmic"\Hnewline>}% + \PushMacro\end:Itm + \global\let\end:itm=\empty + \global\let\end:Itm=\empty + \Configure{HtmlPar} + {\end:itm\gdef\end:itm{\HCode{</text:p>}}% + \HCode{<text:p + text:style-name="dd|<cond rtl class|>" >}% + } + {\end:itm\gdef\end:itm{\HCode{</text:p>}}% + \HCode{<text:p + text:style-name="dd|<cond rtl class|>" >}% + } + {} + {}% + } + {\end:itm \end:Itm \global\let\end:itm=\empty + \PopMacro\end:Itm \global\let\end:Itm\end:Itm + \HCode{</text:list>}\RecallHtmlPar \ShowPar + \special{t4ht@.}% + } + {\end:itm \end:Itm \gdef\end:Itm{\HCode{</text:list-item>}}% + \gdef\end:itm{\HCode{</text:h>}\special{t4ht@.}}\HCode{<text:list-item><text:h + text:style-name="algorithmic-dt|<cond rtl class|>"\Hnewline >}\bgroup \bf + \special{t4ht@. }% + } + {\special{t4ht@.}% + \egroup + \special{t4ht@. }% + } +>>> + + + + + + + +\<\><<< +\ConfigureList{algorithmic}% + {\EndP + \PushMacro\end:itm + \global\let\end:itm=\empty} + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP + \special{t4ht@.}% + \HCode{</span>}% + } + {\end:itm + \HCode{\ifx \end:itm\empty\else <br class="algorithmic"/>\fi + <span class="label-\the\labelwidth">}% + \global\def\end:itm{\EndP\special{t4ht@,}\Tg</span>}% + \ifnum \c@ALG@line=10 + \Css{.algorithmic span.label{width:3em; text-align:right;}}\fi + } + {\HCode{</span>&\#xA0;<span\Hnewline class="algorithmic">}% + \special{t4ht@. }} +\Css{div.algorithmic span.algorithmic{white-space:pre}} +>>> + + + + + +\<configure ooffice latex\><<< +\NewConfigureOO{algorithmic} +\ConfigureOO{algorithmic}{|<algorithmic style|>} +>>> + + + + +\<algorithmic style\><<< +<text:list-style style:name="algorithmic" > + <text:list-level-style-bullet + text:level="1" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0in" + text:min-label-width="0in" + text:min-label-distance="0in" />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="2" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.2in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in" + />\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="3" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.4in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> + <text:list-level-style-bullet + text:level="4" + text:style-name="Source-Text" + text:bullet-char=" " >\Hnewline + <style:list-level-properties + text:space-before="0.6in" + text:min-label-width="0.2in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet> +</text:list-style> +>>> + + +\<algorithmic style\><<< +<style:style + style:name="algorithmic-dd" + style:family="paragraph" + style:parent-style-name="Standard"> + <style:paragraph-properties + fo:margin-left="0.35in" + fo:margin-right="0in" + fo:margin-top="0cm" + fo:margin-bottom="0.2cm" + fo:text-indent="0in" + style:auto-text-indent="false"/> + <style:text-properties + fo:wrap-option="no-wrap" + /> +</style:style> +<style:style + style:name="algorithmic-dt" + style:family="paragraph" + style:parent-style-name=""> + <style:paragraph-properties + fo:margin-left="0.1in" + fo:margin-right="0in" + fo:text-indent="0in" + style:auto-text-indent="false"/> + <style:text-properties + fo:wrap-option="no-wrap" + /> +</style:style> +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Links} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{Cross References} +%%%%%%%%%%%%% + + +\url{http://www.linuxjournal.com/article/8112} + +\begin{verbatim} +<text:reference-mark-start text:name="xx"/> +is +<text:reference-mark-end text:name="xx"/> + +<text:reference-ref text:reference-format="direction" text:ref-name="xx"> +above +</text:reference-ref> +\end{verbatim} + + + +An approximation is provided here, to be cleaned by xtpipes. + +\<configure ooffice latex\><<< +\Configure{Link}{t4htlink}{href=}{name=}{}% +\Configure{ref} + {\Link} + {\ifx \RefArg\:UnDef\else + \Tg<!--tex4ht:ref: \RefArg\space-->\fi\EndLink} + {} +\def\NOHREF:#1{\space href="\:sharp#1"}% +>>> + + + +\<configure ooffice latex\><<< +\:CheckOption{hidden-ref}\if:Option + \OOstyles{% + <style:style style:name="reference-ref" style:family="text"> + <style:text-properties + style:text-scale = "0\%" + /> + </style:style> + } +\else + \Log:Note{to hide clickable index and bibliography references + use the command line option `hidden-ref'} + \OOstyles{% + <style:style style:name="reference-ref" style:family="text"> + <style:text-properties + style:text-underline-style="solid" + style:text-underline-width="thick" + style:text-underline-height="0.2em" + style:text-underline-color="\#0000FF" + /> + </style:style> + } +\fi +>>> + +\<configure ooffice latex \><<< +\Configure{Link}{text:a}{ xlink:href=} + { office:name=}{}% +\def\NOHREF:#1{\space xlink:href="\:sharp#1"}% +>>> + + +% \Configure{Link}{text:span}{xlink:href=}{xlink:label=}{} + + + + +%%%%%%%%%%%%%%%%%%% +\subsection{url.sty} +%%%%%%%%%%%%%%%%%%% + +\<configure ooffice url\><<< +\:CheckOption{url-il2-pl} \if:Option +\else \:CheckOption{url-enc} \fi +\if:Option + \Configure{string-encoder}{url-encoder} +% \:CheckOption{url-il2-pl} \if:Option + |<il2-pl.tcx url encoder|> +% \else + |<default url encoder WAIT|> +% \Log:Note{for il2-pl url encoding, +% use the command line option 'url-il2-pl'} +% \fi + \Configure{url}% + {|<:temp = url encoded string|>% + \Link[\noexpand\the\tmp:toks \space + class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} + |<url encoded string utilities|> +\else + \:CheckOption{url-} \if:Option + \Configure{url}% + {{\let\UrlBigBreaks\empty \let\UrlBreaks\empty #1}}% + \else + \Log:Note{for URL encoding within href + use the command line option `url-enc'; for hyperlink-less + entry use the command line option `url-'} + \Configure{url}% + {\tmp:toks{#1}\Link[\noexpand\the\tmp:toks\space + class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} + \fi +\fi +|<path config|> +>>> + +\<:temp = url encoded string\><<< +\tmp:toks={}\set:spaces#1|<par del|>% +\edef\:temp{\tmp:toks{\csname url-encoder\expandafter\endcsname + \the\tmp:toks |<par del|>}}\:temp +>>> + +\<url encoded string utilities\><<< +\def\set:spaces{\futurelet\:temp\set:spacesoo} +\def\set:spacesoo{% + \expandafter\ifx \space\:temp + \tmp:toks\expandafter{\the\tmp:toks{ }}% + \fi + \set:spaceso +} +\def\set:spaceso#1#2|<par del|>{% + \tmp:toks\expandafter{\the\tmp:toks #1}% + \if :#2:\else \set:spaces#2|<par del|>\fi +} +>>> + +\<default url encoder\><<< +\Configure{url-encoder} + {%}{%25} + {&}{%26} + {'}{%27} + {<}{%3C} + {>}{%3E} + {_}{_} + {^}{^} + {}{} +\Log:Note{current url encoding setting: \string\Configure{url-encoder}% + {\%}{\%25}% + {&}{\%26}% + {'}{\%27}% + {<}{\%3C}% + {>}{\%3E}% + {\string _}{\string _}% + {\string ^}{\string ^}% + {}{}} +>>> + + + + +\<il2-pl.tcx url encoder\><<< +\input{html4-l2-url.4ht} +>>> + + +\Link[http://www.faqs.org/rfcs/rfc2396.html]{}{}http://www.faqs.org/rfcs/rfc2396.html\EndLink + +See issues in: + +\begin{verbatim} +\documentclass{article} + \usepackage{url} +\begin{document} + +\url{a%b c&d} + +\url{a%25b+c&d} + +\end{document} +\end{verbatim} + +\<\><<< +\expandafter\ifx\csname Url@OT1encSpecials\endcsname\relax + |<url.sty|> +\else + |<url-2004.sty|> +\fi +>>> + +\<url-2004.styNO\><<< + +>>> + +\<url.styNO\><<< +\Configure{url}{\Link[#1 class="url"]{}{}{\let\UrlBigBreaks\empty + \let\UrlBreaks\empty #1}\EndLink} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Other} +%%%%%%%%%%%%%%%%%% + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{??? Move to Unicode} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice fontmath\><<< +\Configure{mathellipsis} + {\HCode{\string&\#x2026;}} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Math} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice-mml latex\><<< +\Configure{[]} + {\Configure{@math}{|<block display|>}\IgnorePar + \ifvmode\EndP + \else\EndP \HCode{<!--tex4ht:inline-->}\fi + \HCode{<text:p text:style-name="display-math">}% + \CenteredFrametrue \DviMath \CenteredFramefalse + $$\DisplayMathtrue} + {$$\EndDviMath\HCode{</text:p>}\ShowPar\par + {\csname HCondtrue\endcsname\noindent}} + {} +>>> + + + + +\<configure ooffice tex4ht\><<< +\def\mml:class#1"#2"{ } +>>> + + + + +\<oo2 mml tex4ht\><<< +\Configure{$$} + {\Configure{@math}{|<block display|>}\IgnorePar + \ifvmode\EndP + \else\EndP \HCode{<!--tex4ht:inline-->}\fi + \HCode{<text:p text:style-name="display-math">}% + \CenteredFrametrue \DviMath \CenteredFramefalse } + {\EndDviMath + \HCode{</text:p>} + \ShowPar\par + {\csname HCondtrue\endcsname\noindent}} + {\DisplayMathtrue} +>>> + + +\<configure ooffice-mml rlbabel\><<< +\Configure{[]} + {\Configure{@math}{|<block display|>}\IgnorePar + \ifvmode\EndP + \else\EndP \HCode{<!--tex4ht:inline-->}\fi + \HCode{<text:p text:style-name="display-math">}% + \CenteredFrametrue \DviMath \CenteredFramefalse + $$\DisplayMathtrue} + {$$\EndDviMath\HCode{</text:p>}\ShowPar\par + {\csname HCondtrue\endcsname\noindent}} + {} +>>> + + + +\<configure ooffice-mml tex4ht\><<< +\NewConfigureOO{display-math} +\ConfigureOO{display-math} + {<style:style style:name="display-math" + style:family="paragraph" + style:parent-style-name="Text-body">\Hnewline + <style:paragraph-properties + fo:text-align="center" + style:auto-text-indent="false" + style:justify-single-word="false"/>\Hnewline + </style:style>\Hnewline} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Obeying lines and Verbatims} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice latex\><<< +\Configure{verb} + {\HCode{<text:span\Hnewline text:style-name="verb">}} + {\HCode{</text:span>}} +\NewConfigureOO{verb} +\ConfigureOO{verb}{|<verb style|>} +>>> + +\<configure ooffice latex\><<< +\Configure{obeylines} + {\ifvmode \IgnorePar\EndP \IgnoreIndent + \HCode{<text:p\Hnewline text:style-name="obeylines-v">}% + \gdef\ob:ln{\ht:special{t4ht=</text:p>}}% + \else + \SaveEndP \HCode{<text:span\Hnewline + text:style-name="obeylines-h">}% + \gdef\ob:ln{\ht:special{t4ht=</text:span>}\RecallEndP}% + \fi + } + {\EndP\ob:ln\ShowPar} + {\hbox{\HCode{<text:line-break/>}}} +\NewConfigureOO{obeylines} +\ConfigureOO{obeylines}{|<obeylines style|>} +>>> + + + +\<configure ooffice latex\><<< +\ConfigureEnv{verbatim} + {\ifinner\else \vfill\break\fi + \IgnorePar\EndP \HAssign\Verb:N=0 + \HCode{|<input line num|><text:p + text:style-name="Preformatted-Text|<cond rtl class|>">}\EndNoFonts + } + {\NoFonts \EndP \ht:special{t4ht=</text:p>}\ShowPar\par} + {}{} +\Configure{verbatim} + {\HAdvance\Verb:N by 1 \ifnum \Verb:N>1 + \HCode{<text:line-break/>}% + \fi + } + {\HCode{<text:s/>}} +\NewConfigureOO{verbatim} +\ConfigureOO{verbatim}{|<verbatim style|>} +>>> + + + + +\<obeylines style\><<< +<style:style style:name="obeylines-h" style:family="text">\Hnewline + <style:text-properties + fo:wrap-option="no-wrap" + />\Hnewline +</style:style>\Hnewline +<style:style style:name="obeylines-v" style:family="text">\Hnewline + <style:text-properties + fo:wrap-option="no-wrap" + />\Hnewline +</style:style>\Hnewline +>>> + + + +\<verb style\><<< +<style:style style:name="verb" style:family="text">\Hnewline + <style:text-properties + fo:font-family="monospace" + />\Hnewline +</style:style>\Hnewline +>>> + + + +\<verbatim style\><<< +<style:style style:name="Preformatted-Text" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties +% fo:font-family="monospace" +% fo:wrap-option="no-wrap" +% style:font-name="Courier" + fo:margin-top="0.2cm" + fo:margin-bottom="0.2cm" + fo:text-indent="0cm" + />\Hnewline + <style:text-properties fo:font-family="monospace"/>\Hnewline +</style:style>\Hnewline +|<Preformatted Text rtl|> % +>>> + + + + + + + +\<W2L verbatim style\><<< +<style:style style:name="Preformatted-Text" + style:family="paragraph" + style:parent-style-name="Standard" + style:class="html"> +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0cm" + style:font-name="Cumberland2" + fo:font-size="12pt" + style:font-name-asian="Cumberland2" + style:font-size-asian="10pt" + style:font-name-complex="Cumberland2" + style:font-size-complex="10pt"/> +</style:style> +>>> + + + + + + + + + + + + + + + + + + +\<oo2 fonts \><<< + <style:font-face + style:font-name="Courier" + svg:font-family="Courier" + style:font-family-generic="modern" + style:font-pitch="fixed"/>\Hnewline +>>> + + + + +% \begin{verbatim} +% fo:wrap-option is not supported by OOo +% +% The option fo:font-family is not used for generic font names in OOo, you +% should use the combination +% fo:font-family="Courier" (or some other suitable font name, not important) +% style:font-family-generic="modern" +% style:font-pitch="fixed" +% +% The `momospace' is recognized, and needed for the spaces. +% Do we need the Courier? +% +% See: +% +% \ begin{verbatim} +% 1234 +% x x +% \ end{verbatim} +% +% +% I would recommend to declare the styles verb and verbatim as follows: +% +% <style:font-decl style:name="Courier" fo:font-family="Courier" +% style:font-family-generic="modern" style:font-pitch="fixed"/> +% +% <style:style style:name="verbatim" style:family="paragraph" +% style:parent-style-name="Standard"> +% <style:paragraph-properties style:font-name="Courier" fo:margin-top="0.2cm" +% fo:margin-bottom="0.2cm" fo:text-indent="0cm" /> +% </style:style> +% +% <style:style style:name="verb" style:family="text"> +% <style:text-properties style:font-name="Courier" /> +% </style:style> +% +% OOo comes with built-in styles for this, which you could choose to use +% instead: +% "Preformatted-Text" and "Teletype" +% \end{verbatim} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Standard Paragraphs} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice tex4ht\><<< +\expandafter\ifx \csname if@rl\endcsname\relax + \expandafter \csname newif\expandafter\endcsname \csname if@rl\endcsname + \@rlfalse +\fi +\HTML:PAR{\ifHCond Like-\fi Text-body|<cond rtl class|>}% + {\ifdim \parindent=\z@ Text-body\else + First-line-indent\fi |<cond rtl class|>} +>>> + + +% \HTML:PAR{p-\ifHCond nopar\else noindent\fi}% +% {p-\ifdim \parindent=\z@ no\fi indent} + + +\<utilities\><<< +\def\HTML:PAR#1#2{% + \Configure{HtmlPar}% + {\EndP\HCode{|<input line num|><text:p text:style-name="#1">}}% + {\EndP\HCode{|<input line num|><text:p text:style-name="#2">}}% + {\HCode{</text:p>\Hnewline}}% + {\HCode{</text:p>\Hnewline}}} +>>> + +\<input line num\><<< +<!--l. \the\inputlineno-->% +>>> + + + + + +It seems that the \verb+auto-text-indent="true"+ setting does not +export to rtf or ms word doc successfully from OOo at present. The +style p-indent thus displays as non-indented when the file is +exported from Ooo. Hence, it is replaced with + +\begin{verbatim} +fo:text-indent="0.4cm" +style:auto-text-indent="false" +\end{verbatim} + + +\<configure ooffice tex4ht\><<< +\NewConfigureOO{p-indent} +\ConfigureOO{p-indent}{% +<style:style style:name="First-line-indent" + style:family="paragraph" + style:parent-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:text-indent="0.499cm" + style:auto-text-indent="false"/> +</style:style>\Hnewline |<First-line-indent rtl|> } +>>> + + + +\<configure ooffice tex4ht\><<< +\NewConfigureOO{p-noindent} +\ConfigureOO{p-noindent}{% +<style:style style:name="Text-body" + style:family="paragraph" + style:parent-style-name="Standard" + style:next-style-name="First-line-indent" + style:class="text" + style:master-page-name="">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:line-height="120\%" + fo:text-align="justify" + style:justify-single-word="false" + fo:hyphenate="true" + fo:hyphenation-remain-char-count="2" + fo:hyphenation-push-char-count="2" + fo:hyphenation-ladder-count="no-limit" + style:page-number="0"/> +</style:style> +\Hnewline +<style:style style:name="Like-Text-body" + style:family="paragraph" + style:parent-style-name="Standard" + style:next-style-name="First-line-indent" + style:class="text" + style:master-page-name="">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:line-height="120\%" + fo:text-align="justify" + style:justify-single-word="false" + fo:hyphenate="true" + fo:hyphenation-remain-char-count="2" + fo:hyphenation-push-char-count="2" + fo:hyphenation-ladder-count="no-limit" + style:page-number="0"/> +</style:style> +\Hnewline |<Text-body rtl|>} +>>> + + + + + + + + +\<configure ooffice tex4ht\><<< +\NewConfigureOO{p-nopar} +\ConfigureOO{p-nopar} + {<style:style style:name="p-nopar" + style:family="paragraph" + style:parent-style-name="Text-body">\Hnewline + <style:paragraph-properties + fo:text-align="justify" + style:auto-text-indent="false" + fo:margin-top="0.3cm" + fo:margin-bottom="0.3cm" + style:justify-single-word="false"/>\Hnewline + </style:style>\Hnewline |<p-nopar rtl|> } +>>> + +%%%%%%%%%%%%% +\subsection{Page Layout} +%%%%%%%%%%%%% + +We need to define the following dimensions for Plain TeX + +\<plain page dimensions\><<< +\newdimen\paperwidth +\newdimen\paperheight +\paperwidth=11truein +\paperheight=8.5truein +>>> + +The following doesn't catch because the style name is not in use. Is +there a way to get styles to be specifies as a default without +referring to names. + +\<oo2 automatic styles\><<< +\Configure{automatic-styles} + {\csname a:page-layout\endcsname} +\NewConfigure{page-layout}{1} +\Configure{page-layout}{% + <style:page-layout style:name="Standard-page-layout">\Hnewline + <style:page-layout-properties + fo:page-width="\the\paperwidth" |%"8.5in"|% + fo:page-height="\the\paperheight" |%"11in"|% + style:num-format="1" + style:print-orientation="portrait" + fo:margin-top="0.7874in" + fo:margin-bottom="0.7874in" + fo:margin-left="0.7874in" + fo:margin-right="0.7874in" + style:writing-mode="lr-tb" + style:footnote-max-height="0in">\Hnewline + <style:footnote-sep + style:width="0.0071in" + style:distance-before-sep="0.0398in" + style:distance-after-sep="0.0398in" + style:adjustment="left" + style:rel-width="25\%" + style:color="\#000000"/>\Hnewline + </style:page-layout-properties>\Hnewline + <style:header-style/> + <style:footer-style/> + </style:page-layout>\Hnewline +} +>>> + +% <style:style style:name="P1" +% style:family="paragraph" +% style:parent-style-name="Text-body"> +% <style:paragraph-properties fo:line-height="0.2201in"/> +% </style:style> + +\<styles.xml: master-styles\><<< +<style:master-page + style:name="Standard" + style:page-layout-name="Standard-page-layout"/>\Hnewline +>>> + +\<styles.xml: automatic-styles\><<< +<style:page-layout style:name="Standard-page-layout"> + <style:page-layout-properties + fo:page-width="\the\paperwidth" |%"8.5in"|% + fo:page-height="\the\paperheight" |%"11in"|% + fo:margin-left="1.0in" + fo:margin-right="1.0in" + style:print-orientation="portrait" + > + </style:page-layout-properties> +</style:page-layout> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Captions of Figures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<ooffice captions\><<< +\Configure{caption} + {\ht:everypar{\HtmlPar}% + \ifvmode \EndP \par\ShowPar\else \HCode{<text:line-break/>}\fi + \HCode{\Hnewline <text:span text:style-name="caption" >% + <text:span text:style-name="caption-title" >}} + {: } + {\HCode{</text:span>}} + {\HCode{</text:span>}} +\OOstyles{% + <style:style style:name="caption-title" style:family="text">\Hnewline + <style:text-properties fo:font-style="normal" + fo:font-weight="bold"/>\Hnewline + </style:style>\Hnewline +} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Vertical Spaces} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<big skip\><<< +<text:p text:style-name="bigskip"></text:p>% +>>> + + +\<configure ooffice tex4ht\><<< +\OOstyles{% + <style:style style:name="bigskip" style:family="paragraph" + style:parent-style-name="Text-body"> + <style:paragraph-properties + fo:margin-top="0.2cm" + fo:margin-bottom="0.0cm" + /> + </style:style> +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Page Breaks} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice tex4ht\><<< +\OOstyles{% + <style:style style:name="clearpage" style:family="paragraph" + style:parent-style-name="Text-body"> + <style:paragraph-properties fo:break-before="page" /> + </style:style> +} +\def\Hclearpage{% + \par \ifvmode + \IgnorePar\EndP + \HCode{|<new page|>}% + \ShowPar\par + \fi +} + +>>> + +\<new page\><<< +<text:p text:style-name="clearpage"></text:p>% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice latex\><<< +|<footnote mark|> +|<footnote text|> +|<footnote thank|> +>>> + +\<footnote text\><<< +\Configure{footnotetext} + {\Tag{|<footnote id|>-tx}{}% + |<check duplicate footnote text|>% + \SaveEndP \NoFonts \bgroup\let\@textsuperscript\hbox% + \HCode{<\text:footnote\Hnewline\text:note:class + text:id="}|<footnote id|>% + \HCode{"><\text:footnote-citation>}% + \IgnorePar \special{t4ht@(}% + } + {\egroup\EndNoFonts \RecallEndP + \HCode{</\text:footnote-citation><\text:footnote-body> + <text:p\Hnewline text:style-name="Footnote">}\NoFonts +% |<footnotetext space|>% + \SaveHtmlPar |<footnote pars|>\ShowPar \special{t4ht@)}% + } + {\RecallHtmlPar\EndNoFonts + \HCode{</text:p></\text:footnote-body></\text:footnote>}% + |<notice footnote text|>% + } +>>> + + +\<footnotetext space\><<< +%<text:s/> +>>> + +\<configure ooffice latex\><<< +\NewConfigureOO{Footnote} +\ConfigureOO{Footnote}{ +<style:style + style:name="Footnote" + style:family="paragraph" + style:parent-style-name="Standard" + style:class="extra">\Hnewline + <style:paragraph-properties + fo:margin-left="0.2in" + fo:margin-right="0in" + fo:text-indent="-0.2in" + style:auto-text-indent="false"/> + <style:text-properties fo:font-size="85\%" + style:font-size-asian="85\%" + style:font-size-complex="85\%" /> +</style:style>\Hnewline +<text:notes-configuration text:note-class="footnote" + text:citation-style-name="Footnote_20_Symbol" + text:citation-body-style-name="Footnote_20_anchor" + style:num-format="1" text:start-value="0" + text:footnotes-position="page" + text:start-numbering-at="document" />\Hnewline +<style:style style:name="Footnote_20_Symbol" +style:display-name="Footnote Symbol" style:family="text" >\Hnewline + <style:text-properties style:text-position="super 70\%" />\Hnewline +</style:style> +<style:style style:name="Footnote_20_anchor" +style:display-name="Footnote anchor" style:family="text"> + <style:text-properties style:text-position="super 58\%" />\Hnewline +</style:style>\Hnewline +} +>>> + + + + + + +% \Odef\Link[##1]##2##3{\global\let\cur:EndLink\EndLink +% \gdef\EndLink{\global\let\EndLink=\cur:EndLink}} + + +\<footnote pars\><<< +\Configure{HtmlPar} + {\EndP \HCode{<text:p text:style-name="Footnote">}} + {\EndP \HCode{<text:p text:style-name="Footnote">}} + {\HCode{</text:p>}} + {\HCode{</text:p>}}% +>>> + + + + +\<footnote mark\><<< + \ifx \tmp:bx\:UnDef \csname newbox\endcsname \tmp:bx \fi +\Configure{footnotemark} + {\Tag{|<footnote id|>}{}% + |<footnote mark without text|>}% + {|<end footnote mark without text|>% + } +>>> + +\<check duplicate footnote text\><<< +\ifTag{|<footnote id|>} + {\expandafter\ifx\csname (|<footnote id|>)\endcsname\def + \:warning{Multiple footnote texts for mark \FNnum}% + \fi + } {}% +>>> + + +\<notice footnote text\><<< +\expandafter\global\expandafter + \let\csname (|<footnote id|>)\endcsname\def +>>> + + +\<footnote mark without text\><<< +\ifTag{|<footnote id|>-tx} + {\setbox\tmp:bx=\hbox\bgroup} + {\NoFonts + \HCode{<\text:footnote\Hnewline\text:note:class + text:id="}|<footnote id|>% + \HCode{"><\text:footnote-citation>}% + }% +>>> + +\<end footnote mark without text\><<< +\ifTag{|<footnote id|>-tx} + {\egroup} + {\EndNoFonts \HCode{</\text:footnote-citation><\text:footnote-body> + <text:p\Hnewline text:style-name="Footnote">% + </text:p></\text:footnote-body></\text:footnote>}% + }% +>>> + + +\<footnote id\><<< +fn\FNnum x\minipageNum +>>> + +\<thank id\><<< +fn\the\c@footnote x\minipageNum +>>> + + + +\<configure ooffice footmisc\><<< +\Configure{footnotetext} + {\Tag{|<footnote id|>-tx}{}% + |<check duplicate footnote text|>% + \NoFonts \let\@textsuperscript\hbox + \HCode{<\text:footnote\Hnewline\text:note:class + text:id="}|<footnote id|>% + \HCode{"><\text:footnote-citation>}% + \let\fn:nbsp\:nbsp \let\:nbsp\empty + } + {\EndNoFonts \let\:nbsp\fn:nbsp + \HCode{</\text:footnote-citation><\text:footnote-body>% + <text:p\Hnewline text:style-name="Footnote">|<footnotetext space|>}% + \SaveHtmlPar \Configure{HtmlPar}{}{}{}{}% + } + {\RecallHtmlPar + \HCode{</text:p></\text:footnote-body></\text:footnote>}% + |<notice footnote text|>} +>>> + + + + +\<configure ooffice latex\><<< +\Configure{textsuperscript} + {\HCode{<text:span text:style-name="textsuperscript">}} + {\HCode{</text:span>}} +\OOstyles{% +<style:style style:name="textsuperscript" style:family="text">\Hnewline + <style:text-properties style:text-position="super 58\%"/>\Hnewline +</style:style>\Hnewline +} +\Configure{textsubscript} + {\HCode{<text:span text:style-name="textsubscript">}} + {\HCode{</text:span>}} +\OOstyles{% +<style:style style:name="textsubscript" style:family="text">\Hnewline + <style:text-properties style:text-position="sub 58\%"/>\Hnewline +</style:style>\Hnewline +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Etc} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice latex\><<< +\Configure{centercr} + {\ht:special{t4ht=<text:line-break/>}} + {\ht:everypar{\ht:everypar{\HtmlPar}}} +>>> + + + +\<configure ooffice latex\><<< +\def\:temp{T\HCode{<text:span text:style-name="TEX">}E\HCode{</text:span>}X} +\HLet\TeX\:temp +\OOstyles{\Hnewline + <style:style style:name="TEX" style:family="text"> + <style:text-properties style:text-position="-25 100\%"/> + </style:style> +\Hnewline} +>>> + +\<configure ooffice latex\><<< +\def\:temp{L\HCode{<text:span text:style-name="LATEX">}A\HCode{</text:span>}\TeX} +\HLet\LaTeX\:temp +\OOstyles{\Hnewline + <style:style style:name="LATEX" style:family="text"> + <style:text-properties style:text-position="15 70\%"/> + </style:style> +\Hnewline} +>>> + + +\<configure ooffice-mml latex\><<< +\Configure{newline} + {\ifmtext |<end mtext|>\HCode{</\a:mathml mtext><\a:mathml + mtext class="newline">}% + |<start mtext|>% + \else \HCode{<text:line-break\Hnewline/>}\fi} +>>> + + + + \<start mtext\><<< +\ht:special{t4ht@,&\#x00A0;}% +>>> + +\<end mtext\><<< +\ht:special{t4ht@,}% +>>> + + + + + +\<configure ooffice amsmath\><<< +\def\:temp{{\protect\AmSfont AMS}} +\HLet\AmS\:temp +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Classes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Main Classes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice article\><<< +|<ooffice title page|> +|<content styles|> +|<non chap tocs|> +|<ooffice bib with refname|> +|<ooffice begin-end env|> +|<basic ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<non-chapter index|> +|<config lists of figures and tables|> +|<base font size|> +>>> + +\<configure ooffice report\><<< +|<ooffice title page|> +|<content styles|> +|<chap tocs|> +|<ooffice bib with bibname|> +|<ooffice begin-end env|> +|<ooffice chapters|> +|<report chapters|> +|<basic ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<chapter index|> +|<config lists of figures and tables|> +|<base font size|> +>>> + +\<configure ooffice book\><<< +|<ooffice title page|> +|<content styles|> +|<chap tocs|> +|<ooffice bib with bibname|> +|<ooffice begin-end env|> +|<ooffice chapters|> +|<book chapters|> +|<basic ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<chapter index|> +|<config lists of figures and tables|> +|<base font size|> +>>> + + + +\<base font size\><<< +{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize + \or \Needs{11}\or \Needs{12}\else \fi} +>>> + + +\<configure ooffice scrbook\><<< +|<ooffice title page|> +|<content styles|> +|<chap tocs|> +|<scr chap tocs|> +|<ooffice bib with refname|> +|<ooffice begin-end env|> +|<scr ooffice chapters|> +|<basic scr ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<chapter index|> +|<scrbook end units|> +|<config lists of figures and tables|> +|<base font size|> +>>> + +\<configure ooffice scrreprt\><<< +|<ooffice title page|> +|<content styles|> +|<chap tocs|> +|<scr chap tocs|> +|<ooffice bib with bibname|> +|<ooffice begin-end env|> +|<scr ooffice chapters|> +|<basic scr ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<chapter index|> +|<config lists of figures and tables|> +|<base font size|> +>>> + +\<configure ooffice scrartcl\><<< +|<ooffice title page|> +|<content styles|> +|<ooffice bib with bibname|> +|<ooffice begin-end env|> +|<basic scr ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<base font size|> +>>> + + + +\<configure ooffice amsart\><<< +|<ooffice title page|> +|<content styles|> +|<non chap tocs|> +|<ooffice captions|> +|<basic ams ooffice sections|> +|<basic ooffice section styles|> +|<ooffice bib with bibname|> +|<base font size|> +>>> + + +\<configure ooffice amsproc\><<< +|<base font size|> +>>> + +\<configure ooffice amsbook\><<< +|<base font size|> +>>> + + +\<configure ooffice mwart\><<< +|<ooffice title page|> +|<content styles|> +|<non chap tocs|> +|<ooffice bib with refname|> +|<ooffice begin-end env|> +|<basic ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<non-chapter index|> +|<config lists of figures and tables|> +|<base font size|> +|<mwcls index|> +|<mwcls sections|> +>>> + +\<configure ooffice mwrep\><<< +|<ooffice title page|> +|<content styles|> +|<chap tocs|> +|<ooffice bib with bibname|> +|<ooffice begin-end env|> +|<basic ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<chapter index|> +|<config lists of figures and tables|> +|<base font size|> +|<mwcls index|> +|<mwcls sections|> +>>> + +\<configure ooffice mwbk\><<< +|<ooffice title page|> +|<content styles|> +|<chap tocs|> +|<ooffice bib with bibname|> +|<ooffice begin-end env|> +|<basic ooffice sections|> +|<basic ooffice section styles|> +|<ooffice captions|> +|<ooffice index|> +|<chapter index|> +|<config lists of figures and tables|> +|<base font size|> +|<mwcls index|> +|<mwcls sections|> +>>> + +\<configure ooffice slides\><<< +\Configure{maketitle} + {\HCode{<!--begin maketitle-->}} + {\HCode{<!--end maketitle-->}\par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="Title|<cond rtl class|>" >}} + {\HCode{</text:p>}} +\Configure{author date} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="author|<cond rtl class|>">}} + {\HCode{</text:p>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="date|<cond rtl class|>">}} + {\HCode{</text:p>}} +\NewConfigureOO{title} +\ConfigureOO{title}{% +<style:style style:name="Title" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="author" + style:class="chapter">\Hnewline +<style:paragraph-properties fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + style:font-size-asian="18pt" + style:font-weight-asian="bold" + style:font-size-complex="18pt" + style:font-weight-complex="bold" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style> \Hnewline <style:style style:name="Title-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="author-rtl" + style:class="chapter">\Hnewline +<style:paragraph-properties fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + style:font-size-asian="18pt" + style:font-weight-asian="bold" + style:font-size-complex="18pt" + style:font-weight-complex="bold" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> \Hnewline + } +\NewConfigureOO{author} +\ConfigureOO{author}{% +<style:style style:name="author" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="date">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style>\Hnewline <style:style style:name="author-rtl" + style:family="paragraph" + style:parent-style-name="Text-body-rtl" + style:next-style-name="date-rtl">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style>\Hnewline +} +\NewConfigureOO{date} +\ConfigureOO{date}{% +<style:style style:name="date" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style>\Hnewline <style:style style:name="date-rtl" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style>\Hnewline +} +>>> + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{g-brief} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice g-brief\><<< +\Configure{g-brief} + {\ifvmode \IgnorePar\fi \EndP |<open g-brief|>} + {\ifvmode \IgnorePar\fi \EndP |<end open g-brief|>} + {\ifvmode \IgnorePar\fi \EndP \par} + {\ifvmode \IgnorePar\fi \EndP \par} +>>> + + +\<open g-brief\><<< +\let\sv:br =\\% +\let\sv:@imakebox=\@imakebox +\def\\{\HCode{</table:table-row>\Hnewline<table:table-row>}}% +\let\:clearpage\clearpage +\def\clearpage{\let\clearpage\:clearpage + \ifvmode \IgnorePar\fi \EndP + \HCode{<table:table table:style-name="date"> + <table:table-column/><table:table-column/> + <table:table-column/><table:table-column/> + <table:table-row>\Hnewline}% + \IgnorePar +}% +\def\@imakebox[##1][##2]##3{% + \HCode{<table:table-cell>\Hnewline + <text:p text:style-name="makebox-##2">}% + \bgroup \let\\=\sv:br \let\@imakebox\sv:@imakebox + \let\par\sv:par + ##3% + \egroup + \HCode{</text:p></table:table-cell>}% + \def\par{\let\par\brf:par + \ifvmode \IgnorePar\fi \EndP + \HCode{</table:table-row></table:table>}}% +}% +>>> + + + +\<end open g-brief\><<< +\let\@imakebox\sv:@imakebox +\let\\=\sv:br +>>> + +\<configure ooffice g-brief\><<< +\OOstyles{% +<style:style style:name="makebox-r" \Hnewline + style:family="paragraph" >\Hnewline + <style:paragraph-properties fo:text-align="end" + style:justify-single-word="false" />\Hnewline +</style:style>\Hnewline +} +>>> + + + +\<open g-brief\><<< +\let\brf:par\par +\HTML:PAR{p-g-brief}{p-g-brief}% +>>> + +\<end open g-brief\><<< +\HTML:PAR{p-\ifHCond nopar\else noindent\fi}% + {p-\ifdim \parindent=\z@ no\fi indent}% +>>> + + +\<configure ooffice g-brief\><<< +\OOstyles{% + <style:style style:name="p-g-brief" + style:family="paragraph" + style:parent-style-name="Text-body">\Hnewline + <style:paragraph-properties + fo:text-align="justify" + style:auto-text-indent="false" + style:justify-single-word="false" + fo:margin-top="0.7cm" + fo:margin-bottom="0.7cm" + />\Hnewline + </style:style>\Hnewline +} +>>> + + + +\<configure ooffice g-briefNO\><<< +\Configure{letterfoot} + {\ifvmode \IgnorePar\fi \EndP + \bgroup + \Configure{halignTB<>}{tabular}{\HCode{\Hnewline + table:style-name="letterfoot" + }<>\HAlign}% + \Configure{table-column-style} + {table:style-name="letterfoot\ar:cnt"}% + } + {} + {\egroup} +\OOstyles{% +<style:style style:name="letterfoot" + style:family="table">\Hnewline +<style:text-properties + fo:margin-top="2cm" + table:align="margins"/>\Hnewline +</style:style>\Hnewline +} +\OOstyles{% +<style:style style:name="letterfoot1" + style:family="table-column">\Hnewline +<style:text-properties style:column-width="3cm" +style:rel-column-width="3030*" + />\Hnewline +</style:style>\Hnewline +} +>>> + + +The above styles don't work? + + + + +\<configure ooffice g-brief\><<< +\Configure{letterfoot} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="letterfoot">}% + \bgroup + \Configure{tabular} + {}{} {}{\HCode{<text:line-break/>}} {}{~~}% + } + {} + {\egroup \HCode{</text:p>}} +\OOstyles{% + {<style:style style:name="letterfoot" + style:family="paragraph" + style:parent-style-name="Text-body">\Hnewline + <style:paragraph-properties + fo:text-align="justify" + style:auto-text-indent="false" + fo:margin-top="2cm" + fo:margin-bottom="0cm" + style:justify-single-word="false"/>\Hnewline + </style:style>\Hnewline} +} +>>> + + +The above styles don't work? + + + + + + +\<configure ooffice g-brief\><<< +\Configure{letterhead} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:section + text:style-name="header-style" text:name="header"> + <text:p text:style-name="left-col">}} + {\HCode{</text:p>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</text:section> + <text:p text:style-name="p-retouradresse">}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{</text:p><text:p text:style-name="postage">}} + {\HCode{</text:p>}} +\Configure{retouradresse} + {\HCode{<text:span text:style-name="retouradresse">}} + {\HCode{</text:span>}} +>>> + +\<configure ooffice g-brief\><<< +\NewConfigureOO{g-brief-header} +\ConfigureOO{g-brief-header}{\Hnewline +<style:style style:name="header-style" style:family="section">\Hnewline + <style:text-properties text:dont-balance-text-columns="false" + fo:margin-bottom="2cm">\Hnewline + <style:columns fo:column-count="2" + fo:column-gap="1in">\Hnewline + <style:column fo:margin-left="0in" + fo:margin-right="0in"/>\Hnewline + <style:column fo:margin-left="0in" + fo:margin-right="0in"/>\Hnewline + </style:columns>\Hnewline + </style:text-properties>\Hnewline +</style:style>\Hnewline +} +>>> + +\<configure ooffice g-briefNO\><<< +\OOstyles{% +<style:style style:name="header-style" style:family="section">\Hnewline + <style:text-properties text:dont-balance-text-columns="false" + fo:margin-bottom="2cm">\Hnewline + <style:columns fo:column-count="2" + fo:column-gap="1in">\Hnewline + <style:column fo:margin-left="0in" + fo:margin-right="0in"/>\Hnewline + <style:column fo:margin-left="0in" + fo:margin-right="0in"/>\Hnewline + </style:columns>\Hnewline + </style:text-properties>\Hnewline +</style:style>\Hnewline +} +>>> + +\<configure ooffice g-brief\><<< +\OOstyles{% +<style:style style:name="p-retouradresse" \Hnewline + style:family="paragraph" \Hnewline + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties fo:margin-top="0.7cm" \Hnewline + fo:margin-bottom="0.7cm"/>\Hnewline +</style:style>\Hnewline +} +\OOstyles{% +<style:style style:name="postage" \Hnewline + style:family="paragraph" \Hnewline + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties fo:margin-top="0.5cm" \Hnewline + fo:margin-bottom="0.5cm"/>\Hnewline +</style:style>\Hnewline +} +>>> + +The following configuration does not show. + +\<configure ooffice g-brief\><<< +\OOstyles{% +<style:style style:name="tabular" + style:family="table" + style:parent-style-name="header-style">\Hnewline +<\style:tableproperties style:rel-width="46\%" + fo:margin-left="1cm" + fo:margin-right="0cm" + table:align="margins"/>\Hnewline +</style:style>\Hnewline +} +>>> + + +\<configure ooffice g-brief\><<< +\Configure{betreff} + {\HCode{<text:span text:style-name="betreff">}} + {\HCode{</text:span>}} +\Configure{betrefftext} + {\HCode{<text:span text:style-name="betrefftext">}} + {\HCode{</text:span>}} +\Configure{gruss} + {\HCode{<text:span text:style-name="gruss">}} + {\HCode{</text:span>}} +\Configure{grussskip} + {\HCode{<text:span text:style-name="grussskip">}} + {\HCode{</text:span>}} +\Configure{unterschrift} + {\HCode{<text:span text:style-name="unterschrift">}} + {\HCode{</text:span>}} +\Configure{datumtext} + {\HCode{<text:span text:style-name="datumtext">}} + {\HCode{</text:span>}} +\Configure{datum} + {\HCode{<text:span text:style-name="datum">}} + {\HCode{</text:span>}} +\Configure{anlagen} + {\HCode{<text:span text:style-name="anlagen">}} + {\HCode{</text:span>}} +\Configure{verteiler} + {\HCode{<text:span text:style-name="verteiler">}} + {\HCode{</text:span>}} +\Configure{sprache} + {\HCode{<text:span text:style-name="sprache">}} + {\HCode{</text:span>}} +>>> + +\<configure ooffice g-brief\><<< +\Configure{telefontex} + {\HCode{<text:span text:style-name="telefontex">}} + {\HCode{</text:span>}} +\Configure{telefaxtext} + {\HCode{<text:span text:style-name="telefaxtext">}} + {\HCode{</text:span>}} +\Configure{telextext} + {\HCode{<text:span text:style-name="telextext">}} + {\HCode{</text:span>}} +\Configure{telefax} + {\HCode{<text:span text:style-name="telefax">}} + {\HCode{</text:span>}} +\Configure{telefon} + {\HCode{<text:span text:style-name="telefon">}} + {\HCode{</text:span>}} +\Configure{telex} + {\HCode{<text:span text:style-name="telex">}} + {\HCode{</text:span>}} +>>> + +\<configure ooffice g-brief\><<< +\Configure{emailtext} + {\HCode{<text:span text:style-name="emailtext">}} + {\HCode{</text:span>}} +\Configure{email} + {\HCode{<text:span text:style-name="email">}} + {\HCode{</text:span>}} +\Configure{httptext} + {\HCode{<text:span text:style-name="httptext">}} + {\HCode{</text:span>}} +\Configure{http} + {\HCode{<text:span text:style-name="http">}} + {\HCode{</text:span>}} +\Configure{banktext} + {\HCode{<text:span text:style-name="banktext">}} + {\HCode{</text:span>}} +\Configure{bank} + {\HCode{<text:span text:style-name="bank">}} + {\HCode{</text:span>}} +\Configure{konto} + {\HCode{<text:span text:style-name="konto">}} + {\HCode{</text:span>}} +\Configure{blztext} + {\HCode{<text:span text:style-name="blztext">}} + {\HCode{</text:span>}} +\Configure{blz} + {\HCode{<text:span text:style-name="blz">}} + {\HCode{</text:span>}} +>>> + +\<configure ooffice g-brief\><<< +\Configure{ihrzeichentext} + {\HCode{<text:span text:style-name="ihrzeichentext">}} + {\HCode{</text:span>}} +\Configure{ihrzeichen} + {\HCode{<text:span text:style-name="ihrzeichen">}} + {\HCode{</text:span>}} +\Configure{ihrschreibentext} + {\HCode{<text:span text:style-name="ihrschreibentext">}} + {\HCode{</text:span>}} +\Configure{ihrschreiben} + {\HCode{<text:span text:style-name="ihrschreiben">}} + {\HCode{</text:span>}} +\Configure{meinzeichentext} + {\HCode{<text:span text:style-name="meinzeichentext">}} + {\HCode{</text:span>}} +\Configure{meinzeichen} + {\HCode{<text:span text:style-name="meinzeichen">}} + {\HCode{</text:span>}} +\Configure{unserzeichentext} + {\HCode{<text:span text:style-name="unserzeichentext">}} + {\HCode{</text:span>}} +>>> + +\<configure ooffice g-brief\><<< +\Configure{adresse} + {\HCode{<text:span text:style-name="adresse">}} + {\HCode{</text:span>}} +\Configure{land} + {\HCode{<text:span text:style-name="land">}} + {\HCode{</text:span>}} +\Configure{name} + {\HCode{<text:span text:style-name="name">}} + {\HCode{</text:span>}} +\Configure{ort} + {\HCode{<text:span text:style-name="ort">}} + {\HCode{</text:span>}} +\Configure{postvermerk} + {\HCode{<text:span text:style-name="postvermerk">}} + {\HCode{</text:span>}} +\Configure{strasse} + {\HCode{<text:span text:style-name="strasse">}} + {\HCode{</text:span>}} +\Configure{zusatz} + {\HCode{<text:span text:style-name="zusatz">}} + {\HCode{</text:span>}} +>>> + + +\<configure oolatex g-briefNO\><<< +\Configure{anrede} + {\ifvmode \IgnorePar\fi \EndP \HCode{<text:p text:style-name="anrede">}} + {\HCode{</text:p>}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Polyglossia} +%%%%%%%%%%%%%%%%%% +\<configure polyglossia polyglossia\><<< +\Configure{PolyglossiaRtl}{\@rltrue}{\@rlfalse} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Babel} +%%%%%%%%%%%%%%%%%% + + +\<configure ooffice babel\><<< +|<quotedblbase|> +\Configure{accent}\lower@umlaut\lower@umlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + +% \Configure{accent}\lower@umlaut\lower@umlaut{A{A}E{E}I{I}O{O}U{U}Y% +% {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{34}} +% {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} + + +\<configure ooffice babelNO\><<< +|<T1 old iso-8859-2 accents|> +|<old iso-8859-2 accents|> +>>> + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|<grave iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|<acute iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|<circumflex iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{circ}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|<tilde iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{tilde}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter\endcsname + \csname T1\string\"\endcsname{|<diaeresis iso-8859-2|>{}{34}} + {\HChar{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\r\endcsname}% + \csname T1\string\r\endcsname{|<ring iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{ring}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|<cedilla iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{{}{}} + {\HChar{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{|<double acute iso-8859-2|>{}{}} + {\HChar{#1}}{\b:accents{Huml}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\b\endcsname}% + \csname T1\string\b\endcsname{{}{}} + {\HChar{#1}} {\b:accents{b}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{{}{}} + {\HChar{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + +\<T1 old iso-8859-2 accents\><<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname + {|<dot iso-8859-2|>{}{}} + {\HChar{#1}}{\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname + {|<breve iso-8859-2|>{}{}} + {\HChar{#1}}{\b:accents{breve}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\vec\expandafter\endcsname + \csname T1\string\vec\endcsname + {|<vec iso-8859-2|>{}{}} + {\HChar{#1}}{\b:accents{vec}{#1}{#2}} +\expandafter\let\csname T1\string\v\endcsname\:UnDef +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname + {|<caron iso-8859-2|>{}{}} + {\HChar{#1}}{\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname + {|<bar iso-8859-2|>{}{}} + {\HChar{#1}}{\b:accents{bar}{#1}{#2}} +>>> + + + +\<old iso-8859-2 accents\><<< +\Configure{accent}\`\grave{|<grave iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{|<acute iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{|<circumflex iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{|<tilde iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{|<diaeresis iso-8859-2|>{}{34}} + {\HChar{#1}} {\b:accents{uml}{#1}{#2}} +>>> + +\<old iso-8859-2 accents\><<< +\Configure{accent}\c\c{|<cedilla iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\HChar{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{|<double acute iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{Huml}{#1}{#2}} +\Configure{accent}\b\b{{}{}} + {\HChar{#1}} {\b:accents{b}{#1}{#2}} +\Configure{accent}\d\d{{}{}} + {\HChar{#1}} {\b:accents{d}{#1}{#2}} +>>> + + +\<old iso-8859-2 accents\><<< +\Configure{accent}\.\.{|<dot above iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\dot\dot{|<dot above iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{|<breve iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}} + {\HChar{#1}} {\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\v{|<caron iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\check\check{|<caron iso-8859-2|>{}{}} + {\HChar{#1}} {\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} + {\HChar{#1}} {\b:accents{bar}{#1}{#2}} +>>> + +Accents for Plain TeX + +\<plain accents\><<< +\Configure{accent}\`\grave{A{00C0}E{00C8}I{00CC}N{01F8}O{00D2}U{00D9}W{1E80}% +Y{1EF2}a{00E0}e{00E8}i{00EC}n{01F9}o{00F2}u{00F9}% +w{1E81}y{1EF3}\i{00EC}% +{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{A{00C1}C{0106}D{010E}E{00C9}G{01F4}I{00CD}L{0139}N{0143}% +O{00D3}R{0154}S{015A}U{00DA}Y{00DD}Z{0179}a{00E1}c{0107}% +d{010F}e{00E9}g{01F5}i{00ED}l{013A}n{0144}o{00F3}r{0155}% +s{015B}u{00FA}y{00FD}z{017A}j{FFFD}J{FFDD}\i{00ED}\j{FFFD}% +{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{A{00C2}E{00CA}I{00CE}O{00D4}U{00DB}a{00E2}e{00EA}% +i{00EE}o{00F4}u{00FB}C{0108}c{0109}G{011C}g{011D}% +H{0124}h{0125}J{0134}j{0135}S{015C}s{015D}W{0174}% +w{0175}Y{0176}y{0177}Z{1E90}z{1E91}\i{00EE}\j{0135}% +{}{}} + {\a:accents{circ}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{A{00C3}N{00D1}O{00D5}a{00E3}n{00F1}o{00F5}I{0128}% +i{0129}U{0168}u{0169}V{1E7C}v{1E7D}E{1EBC}e{1EBD}% +Y{1EF8}y{1EF9}\i{0129}% +{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{H{1E26}h{1E27}W{1E84}w{1E85}X{1E8C}x{1E8D}% +t{1E97}A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +\Configure{accent}\c\c{C{C}c{c}{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{O{0150}o{0151}U{0170}u{0171}Y{04F2}y{04F3}{}{}} + {\a:accents{Huml}{#1}} {\b:accents{Huml}{#1}{#2}} +\Configure{accent}\b\b{{}{}} + {\a:accents{b}{#1}} {\b:accents{b}{#1}{#2}} +\Configure{accent}\d\d{{}{}} + {\a:accents{d}{#1}} {\b:accents{d}{#1}{#2}} +\Configure{accent}\.\.{{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\dot\dot{{}{}} + {\a:accents{dot}{#1}} {\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{{}{}}{\a:accents{breve}{#1}} + {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}}{\a:accents{vec}{#1}} + {\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\v{{}{}}{\a:accents{check}{#1}} + {\b:accents{check}{#1}{#2}} +\Configure{accent}\check\check{{}{}}{\a:accents{check}{#1}} + {\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} + {\a:accents{bar}{#1}} {\b:accents{bar}{#1}{#2}} +\Configure{accent}\widetilde\widetilde{{}{}} + {\a:accents{widetilde}{#1}} {\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {\a:accents{widehat}{#1}} {\b:accents{widehat}{#1}{#2}} + + \Configure{accents} + {\ht:special{t4ht@+\string&{35}x#2{59}}x} + {\Picture+{ \:Picture:{#1}}#2{#3}\EndPicture} + +>>> + +\<configure ooffice frenchb\><<< +\Configure{frenchb-thinspace}{\HCode{\string&\:sharp x202F;}\setbox\tmp:bx=\hbox\bgroup}{\egroup} +\Configure{frenchb-nbsp}{\:nbsp\setbox\tmp:bx=\hbox\bgroup}{\egroup} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{ElsArt} +%%%%%%%%%%%%%%%%%% + +\<configure ooffice elsart\><<< +\ConfigureEnv{frontmatter} + {\IgnorePar + \HCode{<!--begin frontmatter-->% + <text:section text:name="frontmatter">}\ShowPar} + {\ifvmode\IgnorePar\fi \EndP \IgnorePar + \HCode{</text:section><!--end frontmatter-->}\ShowPar} + {}{} +>>> + +\<configure ooffice elsart\><<< +\Configure{thanks author date and} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="Text-body|<cond rtl class|>">}} + {\HCode{</text:p>}\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="author|<cond rtl class|>">}\IgnorePar} + {\HCode{</text:p>}\IgnorePar} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="date|<cond rtl class|>">}} + {\HCode{</text:p>}\IgnorePar} + {} + {}% {\HCode{<text:line-break/>}} +>>> + +\<configure ooffice elsart\><<< +\Configure{address} + {\IgnorePar \EndP + \HCode{<text:p\Hnewline text:style-name="address">}\IgnorePar} + {\IgnorePar\EndP \HCode{</text:p>}\IgnorePar} +\NewConfigureOO{address} +\ConfigureOO{address}{% +<style:style style:name="address" + style:family="paragraph" + style:parent-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="12pt" + fo:font-style="italic" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style>\Hnewline |<author rtl|>} +>>> + +\<configure ooffice elsart\><<< +\Configure{abstract} +{\HCode{<text:p\Hnewline + text:style-name="abstract-title">}\par\IgnorePar} + { \HCode{</text:p>}} + {\IgnorePar\EndP} +\ConfigureOO{abstract-title}{\Hnewline +<style:style style:name="abstract-title" + style:family="paragraph" + style:parent-style-name="abstract" + style:next-style-name="abstract">\Hnewline +<style:paragraph-properties fo:margin-top="0.499cm" + fo:margin-bottom="0cm" + fo:font-weight="bold" + fo:font-size="10pt" + fo:text-align="left" + fo:border-top="0.01cm solid \#000000" + style:justify-single-word="false"/>\Hnewline +</style:style>\Hnewline +} +\ConfigureOO{abstract}{\Hnewline +<style:style style:name="abstract" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="10pt" + fo:text-indent="0cm" + fo:text-align="left" + style:auto-text-indent="false"/>\Hnewline +</style:style>\Hnewline |<abstract rtl|> } +>>> + + +\<configure ooffice elsart\><<< +\Configure{keyword} + {\IgnorePar\EndP + \HCode{<text:p\Hnewline text:style-name="keyword">}\IgnorePar} + {\IgnorePar\EndP \HCode{</text:p>}\IgnorePar} +\NewConfigureOO{keyword} +\ConfigureOO{keyword}{\Hnewline +<style:style style:name="keyword" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="10pt" + fo:font-style="italic" + fo:text-indent="0cm" + fo:text-align="left" + fo:border-bottom="0.01cm solid \#000000" + style:auto-text-indent="false"/>\Hnewline +</style:style>\Hnewline > } +>>> + +\<configure ooffice elsart\><<< + +>>> + +\<configure ooffice elsart\><<< + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Foils} +%%%%%%%%%%%%%%%%%% + + +\<configure ooffice foils\><<< +\Configure{foilhead} + {\IgnorePar\EndP \HCode{<!--start of foilhead-->}} + {\IgnorePar\EndP \HCode{<!--end of foilhead-->}} + {\HCode{<text:h text:style-name="foilhead|<cond rtl class|>" + \text:outlinelevel="3" >}% + \IgnoreIndent} + {\HCode{</text:h>\Hnewline}\par\ShowPar} +>>> + +\<configure ooffice foils\><<< +\NewConfigureOO{foilhead} +\ConfigureOO{foilhead}{\Hnewline +<style:style style:name="foilhead" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="12pt" + fo:font-weight="bold" + style:font-size-asian="14pt" + style:font-weight-asian="bold" + style:font-size-complex="14pt" + style:font-weight-complex="bold" + fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:text-align="center" + style:justify-single-word="false" +/> +</style:style> +} +>>> + + + + + + + + + + +\<configure ooffice foils\><<< +\Configure{thank} + {\setbox\tmp:bx=\hbox\bgroup} + {\egroup} + {\NoFonts \leavevmode \bgroup \protect\Configure{$}{}{}{}% + \hbox{\HCode{<text:note\Hnewline text:note-class="footnote" + text:id="}|<thank id|>% + \HCode{"><text:note-citation>}}% + } + {\egroup \EndNoFonts + \HCode{</text:note-citation><text:note-body> + <text:p\Hnewline text:style-name="Footnote" ><text:s/>}} + {\HCode{</text:p></text:note-body></text:note>}} +>>> + + + +\<configure ooffice foils\><<< +\def\:temp#1{{\stepcounter{footnote}% + \a:thank\@fnsymbol\c@footnote\b:thank + \a:thanks + \c:thank \@fnsymbol\c@footnote\d:thank #1\e:thank + \b:thanks +}} +\HLet\thanks\:temp +>>> + + + + +\<configure ooffice foils\><<< +\Configure{maketitle} + {\bgroup + \Configure{newpage}{}% + \HCode{<!--begin maketitle-->} + \Configure{tabular}{}{}{}{}{\ifnum \HRow>1 + \HCode{<text:line-break\Hnewline/>}\fi}{}% + \ConfigureEnv{tabular}{}{}{}{}% + } + {\HCode{<!--end maketitle-->}\egroup \par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="Title|<cond rtl class|>" >}} + {\HCode{</text:p>}} +\OOstyles{% + <style:style style:name="maketitle-tabular" + style:family="table">\Hnewline + <\style:tableproperties + fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + fo:text-align="center" + style:justify-single-word="false" + table:align="margins"/>\Hnewline + </style:style>\Hnewline +} +\NewConfigureOO{title} +\ConfigureOO{title}{% +<style:style style:name="Title" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="author" + style:class="chapter">\Hnewline +<style:paragraph-properties fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + style:font-size-asian="18pt" + style:font-weight-asian="bold" + style:font-size-complex="18pt" + style:font-weight-complex="bold" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style> \Hnewline <style:style style:name="Title-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="author-rtl" + style:class="chapter">\Hnewline +<style:paragraph-properties fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + style:font-size-asian="18pt" + style:font-weight-asian="bold" + style:font-size-complex="18pt" + style:font-weight-complex="bold" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> \Hnewline + } +>>> + + + +\<configure ooffice foils\><<< +\Configure{author date} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="author|<cond rtl class|>">}} + {\HCode{</text:p>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="date|<cond rtl class|>">}} + {\HCode{</text:p>}} +\NewConfigureOO{author} +\ConfigureOO{author}{% +<style:style style:name="author" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="date">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.2cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style>\Hnewline <style:style style:name="author-rtl" + style:family="paragraph" + style:parent-style-name="Text-body-rtl" + style:next-style-name="date-rtl">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.2cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style>\Hnewline +} +\NewConfigureOO{date} +\ConfigureOO{date}{% +<style:style style:name="date" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-top="0.6cm" + fo:margin-bottom="0.2cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style>\Hnewline <style:style style:name="date-rtl" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style>\Hnewline +} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Packages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\section{Pstricks} +%%%%%%%%%%%%%%%%%% + + +\<configure ooffice pst-all\><<< +\ConfigureEnv{psmatrix} + {\Picture*{}} + {\EndPicture} + {}{} +>>> + +\<configure ooffice pstricks\><<< +\Configure{pspicture} + {\ifvmode \ifinner\else \vfill\break\fi + \leavevmode\fi + \bgroup + \ifdim \pst@dimh<\z@ \pst@dimh=-\pst@dimh \fi + \HCode{<!--width="\ifdim \wd\pst@hbox=\z@ \the\pst@dimg + \else\the\wd\pst@hbox\fi" + height="\ifdim \ht\pst@hbox=\z@ \the\pst@dimh + \else \the\ht\pst@hbox\fi"-->}% + \egroup + \Picture+[\a:pspictureAlt]{ class="pspicture"}} + {\EndPicture} +\NewConfigure{pspictureAlt}{1} +\Configure{pspictureAlt}{PIC} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Fancyvrb} +%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice fancyvrb\><<< +\HAssign\fancyvrbNo=0 +\Configure{fancyvrb} + {\IgnorePar \EndP \gHAdvance\fancyvrbNo by 1 + \gHAssign\fancyvrb:cnt0 + \HCode{<text:p text:style-name="fancyvrb\fancyvrbNo">}} + {\EndP\HCode{</text:p>}} + {\gHAdvance\fancyvrb:cnt by 1 + \ifnum \fancyvrb:cnt>1 + \HCode{<text:line-break />}\fi} {} + {}{} +>>> + + +\<configure ooffice fancyvrb\><<< +\Configure{BVerbatimInput} + {\ifvmode \IgnorePar \fi \EndP + \gHAssign\HRow=0 + \HCode{<text:p text:style-name="BVerbatimInput">}} + {\ifvmode \IgnorePar \fi \EndP \HCode{</text:p>}} + {\gHAdvance\HRow by 1 \ifnum \HRow>1 \HCode{<text:line-break />}\fi}{} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Ulem} +%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice ulem\><<< +\Configure{uline} + {\ifmmode \HCode{<\a:mathml mrow class="uline">}% + \else \HCode{<text:span text:style-name="uline">}\fi} + {\ifmmode \HCode{</\a:mathml mrow>}\else \HCode{</text:span>}\fi} +\NewConfigureOO{uline} +\ConfigureOO{uline}{|<oo uline style|>} +>>> + +\<oo uline style\><<< +<style:style style:name="uline" style:family="text"> + <style:text-properties style:text-underline-style="solid" + style:text-underline-width="auto" + style:text-underline-color="font-color" + /> +</style:style> +>>> + + + +\<configure ooffice ulem\><<< +\Configure{uuline} + {\ifmmode \HCode{<\a:mathml mrow class="uuline">}% + \else \HCode{<text:span text:style-name="uuline">}\fi} + {\ifmmode \HCode{</\a:mathml mrow>}\else \HCode{</text:span>}\fi} +\NewConfigureOO{uuline} +\ConfigureOO{uuline}{|<oo uuline style|>} +>>> + +\<oo uuline style\><<< +<style:style style:name="uuline" style:family="text"> + <style:text-properties style:text-underline-style="solid" + style:text-underline-width="auto" + style:text-underline-color="font-color" + /> +</style:style> +>>> + + +\<configure ooffice ulem\><<< +\Configure{uwave} + {\ifmmode \HCode{<\a:mathml mrow class="uwave">}% + \else \HCode{<text:span text:style-name="uwave">}\fi} + {\ifmmode \HCode{</\a:mathml mrow>}\else \HCode{</text:span>}\fi} +\NewConfigureOO{uwave} +\ConfigureOO{uwave}{|<oo uwave style|>} +>>> + +\<oo uwave style\><<< +<style:style style:name="uwave" style:family="text"> + <style:text-properties style:text-underline-style="wave" + style:text-underline-width="auto" + style:text-underline-color="font-color" + /> +</style:style> +>>> + +% <style:text-properties style:text-underline="single" /> + + + +\<configure ooffice ulem\><<< +\Configure{sout} + {\ifmmode \HCode{<\a:mathml mrow class="sout">}% + \else \HCode{<text:span text:style-name="sout">}\fi} + {\ifmmode \HCode{</\a:mathml mrow>}\else \HCode{</text:span>}\fi} +\NewConfigureOO{sout} +\ConfigureOO{sout}{|<oo sout style|>} +>>> + +\<oo sout style\><<< +<style:style style:name="sout" style:family="text"> + <style:text-properties style:text-line-through-style="solid" + style:text-underline-style="none" /> +</style:style> +>>> + + + + +\<configure ooffice ulem\><<< +\Configure{xout} + {\ifmmode \HCode{<\a:mathml mrow class="xout">}% + \else \HCode{<text:span text:style-name="xout">}\fi} + {\ifmmode \HCode{</\a:mathml mrow>}\else \HCode{</text:span>}\fi} +\NewConfigureOO{xout} +\ConfigureOO{xout}{|<oo xout style|>} +>>> + +\<oo xout style\><<< +<style:style style:name="xout" style:family="text"> + <style:text-properties style:text-line-through-style="solid" + style:text-underline-style="none" /> +</style:style> +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{German} +%%%%%%%%%%%%%%%%%% + + + +\<configure ooffice german\><<< +|<quotedblbase|> +>>> + +\<configure ooffice ngerman\><<< +|<quotedblbase|> +>>> + + + + + +\<quotedblbase\><<< +\Configure{quotedblbase}{\leavevmode\ht:special{t4ht@+&{35}x201E;}x} +\Configure{quotesinglbase}{\leavevmode\ht:special{t4ht@+&{35}x201A;}x} +>>> + + +\<configure ooffice german\><<< +\Configure{accent}\grmn@OTumlaut + \grmn@OTumlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + +\<configure ooffice ngerman\><<< +\Configure{accent}\grmn@OTumlaut + \grmn@OTumlaut{|<diaeresis codes|>{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + +\<diaeresis codes\><<< +H{1E26}h{1E27}W{1E84}w{1E85}X{1E8C}x{1E8D}% +t{1E97}A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Hyperref} +%%%%%%%%%%%%%%%%%% + + + + +\<configure ooffice hyperref\><<< +\ifx \@baseurl\@empty \else + \Configure{@HEAD} + {\HCode{<!--base href="\:baseurl" /-->}} + \let\:baseurl\@baseurl + \let\@baseurl=\@empty +\fi +>>> + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{Listings} +%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice listings\><<< +\Log:Note{to ensure proper alignments use + fixed size fonts (see listings.dtx)} +\Configure{listings} + {\ifvmode \IgnorePar\fi \EndP + {\everypar{}\leavevmode}\HCode{<!--l. \the\inputlineno-->}% + \HCode{<text:p text:style-name="Preformatted-Text">}% + } + {{\everypar{}\leavevmode}\HCode{</text:p>}\par} + {}{} +>>> + +\<configure ooffice listings\><<< +\ConfigureEnv{lstlisting} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno lstlisting-->}% + \HCode{<text:p\Hnewline text:style-name="Preformatted-Text">}% + \bgroup \special{t4ht@(}% + \Configure{listings} + {{\everypar{}\leavevmode}} + {{\everypar{}\leavevmode}} + {\HCode{<text:s/><text:line-break/>}}{}% + } + {\special{t4ht@)}\egroup + \ifvmode \IgnorePar\fi \EndP \HCode{</text:p>}\par} + {} {} +>>> + +\<configure ooffice listings\><<< +\Configure{lstinputlisting} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<!--l. \the\inputlineno lstinputlisting-->}% + \HCode{<text:p\Hnewline text:style-name="Preformatted-Text">}% + \bgroup \tt \special{t4ht@(}% + \Configure{listings} + {{\everypar{}\leavevmode}} + {{\everypar{}\leavevmode}} + {\HCode{<text:s/><text:line-break/>}} + {\HCode{<text:line-break/>}}% + } + {\special{t4ht@)}\egroup + \ifvmode \IgnorePar\fi \EndP \HCode{</text:p>}\par} +>>> + + + +\<configure ooffice-mml latex\><<< +\def\:nbsp{\ifmtext |<unicode space|>\else\ifmathml + \Tg<\a:mathml mspace />\else |<oo space|>\fi\fi} +>>> + +\<unicode space\><<< +\leavevmode\special{t4ht@+\string&{35}x00A0{59}}x% +>>> + +\<oo space\><<< +\ht:special{t4ht@+\string&{35}x00A0{59}}x% +>>> + +Nonbraking spaces may go to aux files and need protect the colon and +semicolons from catcode changes when loaded, e.g., in french. + + + + + + +%%%%%%%%%%%%% +\section{Linguistics} +%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{linguex} +%%%%%%%%%%%%% + + + +\<configure ooffice linguex\><<< +\Configure{a.list} + {\ConfigureList{list}% + {\EndP\HCode{<text:list + text:style-name="list|<cond rtl class|>" + text:name="list"\Hnewline>}% + \PushMacro\end:itm + \global\let\end:itm=\empty + \SaveHtmlPar \HTML:PAR{dd}{dd}% + } + {\PopMacro\end:itm \global\let\end:itm \end:itm + \EndP + \RecallHtmlPar + \HCode{</text:list-item></text:list>}\ShowPar} + {\end:itm \global\def\end:itm{\EndP\HCode{</text:list-item>}}% + \HCode{<text:list-item><text:h + text:style-name="dt|<cond rtl class|>"\Hnewline >}\bgroup \bf} + {\egroup\HCode{</text:h>}\par\ShowPar}% + } +>>> + +%%%%%%%%%%%%% +\subsection{cgloss4e} +%%%%%%%%%%%%% + + + +\<configure ooffice cgloss4e\><<< +\Configure{tsent} + {\HCode{<table:table-cell table:style-name="tsent-td">% + <text:p text:style-name="tsent-p">}% + \gHAdvance\tsent:cnt by 1 + } + {\HCode{</text:p></table:table-cell>}} + {\HCode{<text:line-break />}} +>>> + +\<configure ooffice cgloss4e\><<< +\Configure{gll} + {\ifvmode \IgnorePar\fi \EndP + \bgroup + \ConfigureEnv{flushleft} + {\ifvmode \IgnorePar\fi \EndP} + {\ShowPar} + {\EndP\IgnorePar + |<boxed env|>% + \HCode{<table:table table:style-name="gll-table"\Hnewline>% + }\IgnorePar} + {\IgnorePar\EndP\HCode{</table:table-row></table:table>}% + |<end boxed env|>}% + \Configure{HtmlPar}{}{}{}{}% + \gHAssign\tsent:cnt=0 + } + {\tmp:cnt=0 + \loop + \advance\tmp:cnt by 1 + \HCode{<table:table-column table:style-name="gll-col"/>}% + \ifnum \tsent:cnt>\tmp:cnt + \repeat + \HCode{<table:table-row table:style-name="gll-tr">}% + } + {\egroup} +>>> + +%%%%%%%%%%%%% +\subsection{covington} +%%%%%%%%%%%%% + + + +\<configure ooffice covington\><<< +\Configure{tsent} + {\HCode{<table:table-cell table:style-name="tsent-td">% + <text:p text:style-name="tsent-p">}% + \gHAdvance\tsent:cnt by 1 + } + {\HCode{</text:p></table:table-cell>}} + {\HCode{<text:line-break />}} +>>> + + +\<configure ooffice covington\><<< +\HAssign\gll:Cnt = 0 +\Configure{gll} + {\ifvmode \IgnorePar\fi \EndP + \gHAdvance\gll:Cnt by 1 + \bgroup + \ConfigureEnv{flushleft} + {\ifvmode \IgnorePar\fi \EndP} + {\ShowPar} + {\EndP\IgnorePar + |<boxed env|>% + \HCode{<table:table table:name="gll-\gll:Cnt" + table:style-name="gll-table"\Hnewline>}% + \ifnum 0<0\LikeRef{gll-\gll:Cnt} + |<set gll's table-column|>% + \fi + \HCode{<table:table-row table:style-name="gll-tr">}% + \IgnorePar + } + {\IgnorePar\EndP + \csname :glend\endcsname + \HCode{</table:table-row></table:table>}% + |<end boxed env|>}% + \Configure{HtmlPar}{}{}{}{}% + \gHAssign\tsent:cnt=0 + } + {} + {\Tag{gll-\gll:Cnt}{\tsent:cnt}\egroup} +>>> + + + +\<set gll's table-column\><<< +\tmp:cnt=0 +\loop + \advance\tmp:cnt by 1 + \HCode{<table:table-column table:style-name="gll-col"/>}% + \ifnum \LikeRef{gll-\gll:Cnt}>\tmp:cnt +\repeat +>>> + +\<configure ooffice covington\><<< +\Configure{glt} + {\expandafter\ifx\csname :glend\endcsname\relax\else + \HCode{</text:p></table:table-cell>}% + \fi + \HCode{</table:table-row><table:table-row + table:style-name="glt"><table:table-cell + table:number-columns-spanned="\tsent:cnt"><text:p + text:style-name="p-glt">}% + \gdef\:glend{\global\let\:glend\relax + \HCode{</text:p></table:table-cell>}}% + } +\NewConfigureOO{p-glt} +\ConfigureOO{p-glt}{\Hnewline +<style:style style:name="p-glt" + style:family="paragraph" + style:parent-style-name="Standard" > + <style:paragraph-properties fo:margin-top="0.2cm"/> +</style:style> +} +>>> + +\<configure ooffice covington\><<< +\Configure{gln} + {\expandafter\ifx\csname :glend\endcsname\relax\else + \HCode{</text:p></table:table-cell>}% + \fi + \gHAdvance\tsent:cnt by 1 + \HCode{<table:table-cell><text:p + text:style-name="p-gln">}% + \gdef\:glend{\global\let\:glend\relax + \HCode{</text:p></table:table-cell>}}% + } +\NewConfigureOO{p-gln} +\ConfigureOO{p-gln}{\Hnewline +<style:style style:name="p-gln" + style:family="paragraph" + style:parent-style-name="Standard" > + <style:paragraph-properties fo:text-align="end"/> +</style:style> +} +>>> + +\<configure ooffice covington\><<< +\NewConfigureOO{gll-table} +\ConfigureOO{gll-table}{\Hnewline +<style:style style:name="gll-table" style:family="table"> + <style:table-properties + fo:margin-top="0.3cm" + fo:margin-bottom="0.3cm" + /> +</style:style> +} +>>> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Right to Left} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<cond rtl class\><<< +\if@rl-rtl\fi +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Title Page} +%%%%%%%%%%%%%%%%%% + + + + + +\<Title rtl\><<< +<style:style style:name="Title-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="author-rtl" + style:class="chapter">\Hnewline +<style:paragraph-properties fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + style:font-size-asian="18pt" + style:font-weight-asian="bold" + style:font-size-complex="18pt" + style:font-weight-complex="bold" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> \Hnewline +>>> + +\<author rtl\><<< +<style:style style:name="author-rtl" + style:family="paragraph" + style:parent-style-name="Text-body-rtl" + style:next-style-name="date-rtl">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style>\Hnewline +>>> + + + +\<date rtl\><<< +<style:style style:name="date-rtl" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style>\Hnewline +>>> + + + + +\<abstract rtl\><<< +<style:style style:name="abstract-rtl" + style:family="paragraph" + style:parent-style-name="Text-body-rtl" + style:next-style-name="Text-body-rtl">\Hnewline +<style:paragraph-properties fo:margin-left="3cm" + fo:margin-right="3cm" + fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="10pt" + fo:text-indent="0cm" + style:auto-text-indent="false" + style:writing-mode="rl-tb" />\Hnewline +</style:style>\Hnewline +>>> + + +\<configure ooffice amsart\><<< +\Configure{keywords} + {\par\IgnorePar\EndP + \HCode{<text:p\Hnewline text:style-name="keywords">}\ShowPar} + {\ifvmode \IgnorePar\fi \EndP \HCode{</text:p>}} +\Configure{subjclass} + {\par\IgnorePar + \HCode{<text:p\Hnewline text:style-name="subjclass">}\par\ShowPar} + {\ifvmode \IgnorePar \fi\EndP \HCode{</text:p>}} +\Configure{@maketitle} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p\Hnewline text:style-name="submaketitle"></text:p>}\IgnoreIndent + |<start nested pars|>} + {|<end nested pars|>\ifvmode \IgnorePar \fi\EndP + \HCode{<text:p\Hnewline text:style-name="end-submaketitle"></text:p>}} +>>> + + + + +\<configure ooffice amsart\><<< +\NewConfigureOO{submaketitle} +\ConfigureOO{submaketitle}{\Hnewline +<style:style style:name="submaketitle" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:border-bottom="0.01cm solid \#000000" + style:auto-text-indent="false"/>\Hnewline +</style:style>\Hnewline > +<style:style style:name="end-submaketitle" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:border-top="0.01cm solid \#000000" + style:auto-text-indent="false"/>\Hnewline +</style:style>\Hnewline > } +>>> + + +\<boxed subjclass\><<< +\hbox{\HCode{<text:p><draw:frame + draw:name="subjclass" + draw:style-name="subjclass" + text:anchor-type="as-char" + draw:z-index="0" + > + <draw:text-box + >}}% +>>> + + +\<end boxed subjclass\><<< +\hbox{\HCode{</draw:text-box> +</draw:frame></text:p> }}% +>>> + + + + +\<configure ooffice amsart\><<< +\Configure{maketitle} + {\ifvmode \IgnorePar\fi \EndP |<ams title for TITLE|>% + \HCode{<!--begin maketitle-->}% + \ConfigureEnv{center} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi} + {\ifvmode \IgnorePar\fi} {\ifvmode \IgnorePar\fi}% + |<footnote for ams title|>% + } + {\ifvmode \IgnorePar\fi \EndP \HCode{<!--end maketitle-->}\par} + {\NoFonts\IgnorePar \EndP + \HCode{<text:p text:style-name="Title\if@rl-rtl\fi">}\IgnorePar + \bgroup \Configure{HtmlPar}{}{}{}{}} + {\egroup \HCode{</text:p>}\IgnoreIndent\EndNoFonts} +>>> + + + +\<configure ooffice amsart\><<< +\Configure{thanks author date and} + {\par\IgnorePar\EndP \HCode{<text:p text:style-name="thanks">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</text:p>}} + {\ifvmode \IgnorePar\fi\EndP + \HCode{<text:p text:style-name="authors"><text:span text:style-name="author">}} + {\ifvmode \IgnorePar\fi\EndP \HCode{</text:span></text:p>}} + {\par\IgnorePar\EndP \HCode{<text:p text:style-name="date">}\par\ShowPar} + {\ifvmode \IgnorePar\fi\EndP \HCode{</text:p>}} + {\lowercase{\HCode{</text:span><text:span text:style-name="and">}}and~% + \lowercase{\HCode{</text:span><text:span text:style-name="xxxx">}}} + {}%{\HCode{<text:line-break />}} +>>> + + + +\<configure ooffice amsart\><<< +\NewConfigureOO{authors} +\ConfigureOO{authors}{% +<style:style style:name="authors" + style:family="paragraph" + >\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="14pt" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style> +} +>>> + +\<configure ooffice amsart\><<< +\NewConfigureOO{abstract-title} +\ConfigureOO{abstract-title}{\Hnewline +<style:style style:name="abstract-title" + style:family="paragraph" + style:parent-style-name="abstract-title"> + <style:paragraph-properties + fo:margin-left="0.3in" + fo:margin-right="0.2799in" + fo:text-indent="0in" + fo:margin-top="0in" + fo:margin-bottom="0.0783in" + fo:text-align="start" + style:justify-single-word="false" + style:auto-text-indent="false" + /> +</style:style>\Hnewline +} +>>> + + + +\<configure ooffice amsart\><<< +\NewConfigureOO{keywords} +\ConfigureOO{keywords}{\Hnewline +<style:style style:name="keywords" + style:family="paragraph" + style:parent-style-name="Text-body" + style:next-style-name="Text-body">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0cm" + fo:margin-bottom="0.199cm" + fo:font-size="10pt" + fo:font-style="italic" + fo:text-indent="0cm" + fo:text-align="left" + style:auto-text-indent="false"/>\Hnewline +</style:style>\Hnewline > } +>>> + + + +\<configure ooffice amsart\><<< +\Configure{addresses} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="addresses"></text:p>}\ShowPar + |<start nested pars|>} + {|<end nested pars|>\ifvmode \IgnorePar\fi \EndP + \HCode{<text:p text:style-name="end-addresses"></text:p>}} +\Configure{address} + {\HCode{<text:span text:style-name="address-title">}} + {\ifvmode \IgnorePar\fi \HCode{</text:span><text:span text:style-name="address">}} + {\HCode{</text:span>}} +\Configure{curraddr} + {\HCode{<text:span text:style-name="curraddr-title">}} + {\ifvmode \IgnorePar\fi \HCode{</text:span><text:span text:style-name="curraddr">}} + {\HCode{</text:span>}} +\Configure{email} + {\HCode{<text:span text:style-name="email-title">}} + {\ifvmode \IgnorePar\fi \HCode{</text:span><text:span text:style-name="email">}} + {\HCode{</text:span>}} +\Configure{urladdr} + {\HCode{<text:span text:style-name="urladdr-title">}} + {\ifvmode \IgnorePar\fi \HCode{</text:span><text:span text:style-name="urladdr">}} + {\HCode{</text:span>}} +>>> + +\<configure ooffice amsart\><<< +\NewConfigureOO{address} +\ConfigureOO{address}{ +<style:style style:name="address" style:family="text"> + <style:text-properties fo:text-transform="capitalize" + /> +</style:style> +} +>>> + + + +\<start nested pars\><<< +\bgroup +\HTML:PAR{nested-p-\ifHCond nopar\else noindent\fi}% + {nested-p-\ifdim \parindent=\z@ no\fi indent}% +>>> + +\<end nested pars\><<< +\ifvmode \IgnorePar \fi \EndP \egroup +>>> + +%%%%%%%%%%%%%%%%%% +\section{Lists} +%%%%%%%%%%%%%%%%%% + + + +\<oo+ itemize style rtl\><<< +<text:list-style style:name="Itemize-rtl">\Hnewline + <text:list-level-style-bullet + \list:text:level="1" + text:style-name="Bullet-Symbols" + text:bullet-char="\string&\:sharp x2022;" >\Hnewline + <style:text-properties + text:space-before="0.15in" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-bullet>\Hnewline + <text:list-level-style-bullet + \list:text:level="2" + text:bullet-char="\string&\:sharp x25E6;" >\Hnewline + <style:text-properties + text:space-before="0.1972in" + text:min-label-width="0.2965in"/>\Hnewline + </text:list-level-style-bullet>\Hnewline + <text:list-level-style-bullet + \list:text:level="3" + text:bullet-char="\string&\:sharp x25AA;" >\Hnewline + <style:text-properties + text:space-before="0.3937in" + text:min-label-width="0.4965in"/>\Hnewline + </text:list-level-style-bullet>\Hnewline + <text:list-level-style-bullet + \list:text:level="4" + text:bullet-char="\string&\:sharp x25AB;" >\Hnewline + <style:text-properties + text:space-before="0.5909in" + text:min-label-width="0.6965in"/>\Hnewline + </text:list-level-style-bullet>\Hnewline +</text:list-style>\Hnewline +>>> + +\<oo+ itemize style rtl\><<< +<style:style style:name="Inside-itemize-rtl" + style:family="paragraph" + style:list-style-name="Itemize-rtl">\Hnewline + <style:paragraph-properties + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb"/>\Hnewline +</style:style>\Hnewline +>>> + + + + + + +\<oo2+ enumerate style rtl\><<< +<text:list-style style:name="Enumerate-rtl">\Hnewline + <text:list-level-style-number + text:level="1" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:1\endcsname" + style:num-suffix="\csname c:enumerate:1\endcsname" >\Hnewline + <style:list-level-properties + text:space-before="0.15in" + style:num-format="\csname a:enumerate:1\endcsname" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="2" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:2\endcsname" + style:num-suffix="\csname c:enumerate:2\endcsname">\Hnewline + <style:list-level-properties + text:space-before="0.35in" + style:num-format="\csname a:enumerate:2\endcsname" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="3" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:3\endcsname" + style:num-suffix="\csname c:enumerate:3\endcsname">\Hnewline + <style:list-level-properties + text:space-before="0.6in" + style:num-format="\csname a:enumerate:3\endcsname" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline + <text:list-level-style-number + text:level="4" + text:style-name="Numbering-Symbols" + style:num-prefix="\csname b:enumerate:4\endcsname" + style:num-suffix="\csname c:enumerate:4\endcsname">\Hnewline + <style:list-level-properties + text:space-before="0.8in" + style:num-format="\csname a:enumerate:4\endcsname" + text:min-label-distance="0.05in"/>\Hnewline + </text:list-level-style-number>\Hnewline +</text:list-style>\Hnewline +>>> + +\<shared oo+ enumerate style rtl\><<< +<style:style style:name="Inside-enumerate-rtl" + style:family="paragraph" + style:list-style-name="Enumerate-rtl">\Hnewline + <style:paragraph-properties + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb"/>\Hnewline +</style:style>\Hnewline +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Sectioning} +%%%%%%%%%%%%%%%%%% + + + +\<Heading 1 rtl\><<< +<style:style style:name="Heading-1-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="Text-body-rtl" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="17.2999992370605pt" + fo:font-weight="bold" + style:font-size-asian="115\%" + style:font-weight-asian="bold" + style:font-size-complex="115\%" + style:font-weight-complex="bold" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + + + +\<Heading 2 rtl\><<< +<style:style style:name="Heading-2-rtl" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="14.3999996185303pt" + style:font-size-complex="14pt" + style:font-style-complex="italic" + style:font-weight-complex="bold" + fo:margin-top="0.42cm" + fo:margin-bottom="0cm" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + + +\<Heading 3 rtl\><<< +<style:style style:name="Heading-3-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="Text-body-rtl" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="12pt" + fo:font-weight="bold" + style:font-size-asian="14pt" + style:font-weight-asian="bold" + style:font-size-complex="14pt" + style:font-weight-complex="bold" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + +\<Heading 4 rtl\><<< +<style:style style:name="Heading-4-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="Text-body-rtl" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="12pt" + fo:font-weight="bold" + fo:margin-top="0.42cm" + fo:margin-bottom="0cm" + style:font-size-complex="85\%" + style:font-style-complex="italic" + style:font-weight-complex="bold" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" +/> +</style:style> +\Hnewline +>>> + + +\<Heading 5 rtl\><<< +<style:style style:name="Heading-5-rtl" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:margin-top="0.42cm" + fo:margin-bottom="0cm" + fo:font-size="12pt" + fo:font-style="italic" + fo:font-weight="normal" + style:font-size-complex="85\%" + style:font-weight-complex="bold" + fo:text-indent="0cm" + style:auto-text-indent="false" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + + +\<Heading 6 rtl\><<< +<style:style style:name="Heading-6-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="Text-body-rtl" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + + +\<Heading 7 rtl\><<< +<style:style style:name="Heading-7-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="Text-body-rtl" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + +\<Heading 8 rtl\><<< +<style:style style:name="Heading-8-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="Text-body-rtl" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + + +\<Heading 9 rtl\><<< +<style:style style:name="Heading-9-rtl" + style:family="paragraph" + style:parent-style-name="Heading" + style:next-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + +\<Heading 10 rtl\><<< +<style:style style:name="Heading-10-rtl" + style:family="paragraph" + style:parent-style-name="Heading-rtl" + style:next-style-name="Text-body-rtl" + style:class="text">\Hnewline +<style:paragraph-properties fo:font-size="75\%" + fo:font-weight="bold" + style:font-size-asian="75\%" + style:font-weight-asian="bold" + style:font-size-complex="75\%" + style:font-weight-complex="bold"/> +</style:style> +\Hnewline +>>> + +\subsection{mdwlist} + +\<configure ooffice mdwlist\><<< + +\ConfigureList{itemize*}% + {\EndP\HCode{|<input line num|><\text:unorderedlist + text:style-name="Itemize|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p + text:style-name="Inside-itemize|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p + text:style-name="Inside-itemize|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} + {\HCode{</text:p>\Hnewline}}% + \gHAdvance\BegEnd:D by 1 + } + {\gHAdvance\BegEnd:D by -1 + \EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:unorderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item\DeleteMark} + {\HCode{<text:list-item>}\par\ShowPar + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} + +\ConfigureList{enumerate*}% + {\EndP\HCode{<\text:orderedlist + text:style-name="Enumerate|<cond rtl class|>" + >\Hnewline}\def\end@Item{}\bgroup + \Configure{HtmlPar} + {\EndP\HCode{<text:p + text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\EndP\HCode{<text:p + text:style-name="Inside-enumerate|<cond rtl class|>" + >}} + {\HCode{</text:p>\Hnewline}} {\HCode{</text:p>\Hnewline}}} + {\EndP\IgnorePar \egroup \HCode{</text:list-item>\Hnewline + </\text:orderedlist>\Hnewline}\ShowPar} + {\EndP\end@Item\DeleteMark} + {\HCode{<text:list-item>}\par\ShowPar + \def\end@Item{\HCode{</text:list-item>\Hnewline}}} +>>> + +%%%%%%%%%%%%%%%%%% +\section{Verbatim} +%%%%%%%%%%%%%%%%%% + + + +\<Preformatted Text rtl\><<< +<style:style style:name="Preformatted-Text-rtl" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties +% fo:font-family="monospace" +% fo:wrap-option="no-wrap" +% style:font-name="Courier" + fo:margin-top="0.2cm" + fo:margin-bottom="0.2cm" + fo:text-indent="0cm" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" + />\Hnewline + <style:text-properties fo:font-family="monospace"/>\Hnewline +</style:style>\Hnewline +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Paragraphs} +%%%%%%%%%%%%%%%%%% + + +\<First-line-indent rtl\><<< +<style:style style:name="First-line-indent-rtl" + style:family="paragraph" + style:parent-style-name="Text-body" + style:class="text">\Hnewline +<style:paragraph-properties fo:margin-left="0cm" + fo:margin-right="0cm" + fo:text-indent="0.499cm" + style:auto-text-indent="false" + fo:text-align="end" + style:justify-single-word="false" + style:writing-mode="rl-tb" /> +</style:style>\Hnewline +>>> + + +\<Text-body rtl\><<< +<style:style style:name="Text-body-rtl" + style:family="paragraph" + style:parent-style-name="Standard" + style:next-style-name="First-line-indent" + style:class="text" + style:master-page-name="">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:line-height="120\%" + style:justify-single-word="false" + fo:hyphenate="true" + fo:hyphenation-remain-char-count="2" + fo:hyphenation-push-char-count="2" + fo:hyphenation-ladder-count="no-limit" + style:page-number="0" + fo:text-align="end" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +<style:style style:name="Like-Text-body-rtl" + style:family="paragraph" + style:parent-style-name="Standard" + style:next-style-name="First-line-indent" + style:class="text" + style:master-page-name="">\Hnewline +<style:paragraph-properties fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:line-height="120\%" + style:justify-single-word="false" + fo:hyphenate="true" + fo:hyphenation-remain-char-count="2" + fo:hyphenation-push-char-count="2" + fo:hyphenation-ladder-count="no-limit" + style:page-number="0" + fo:text-align="end" + style:writing-mode="rl-tb" /> +</style:style> +\Hnewline +>>> + + + +\<p-nopar rtl\><<< + <style:style style:name="p-nopar-rtl" + style:family="paragraph" + style:parent-style-name="Text-body">\Hnewline + <style:paragraph-properties + style:auto-text-indent="false" + fo:margin-top="0.3cm" + fo:margin-bottom="0.3cm" + style:justify-single-word="false" + fo:text-align="end" + style:writing-mode="rl-tb" />\Hnewline + </style:style>\Hnewline +>>> + + +%%%%%%%%%%%%%%%%%% +\section{List-Based Environments} +%%%%%%%%%%%%%%%%%% + + + +\<quote rtl\><<< +<style:style style:name="quote-rtl" + style:family="paragraph" + style:parent-style-name="Text-body-rtl" + style:next-style-name="Text-body-rtl">\Hnewline +<style:paragraph-properties fo:margin-left="1cm" + fo:margin-right="1cm" + fo:margin-top="0.199cm" + fo:margin-bottom="0.199cm" + fo:text-indent="0cm" + style:auto-text-indent="false" + fo:text-align="end" + style:writing-mode="rl-tb" />\Hnewline +</style:style> +\Hnewline +>>> + + +\<quotation rtl\><<< + <style:style style:name="quotation-rtl" + style:family="paragraph" + style:parent-style-name="Standard">\Hnewline + <style:paragraph-properties + fo:margin-left="1cm" + fo:margin-right="1cm" + fo:margin-top="0cm" + fo:margin-bottom="0cm" + fo:text-indent="0.499cm" + style:auto-text-indent="true" + fo:text-align="end" + style:writing-mode="rl-tb" />\Hnewline + </style:style>\Hnewline +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Math} +%%%%%%%%%%%%%%%%%% + + + +\<mathml rlbabel\><<< +\if@rl\else\beginR\fi +>>> + + +%%%%%%%%%%%%%%%%%% +\chapter{Math} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Envelops} +%%%%%%%%%%%%%%%%%% + +\<configure mathml rlbabel\><<< +\Configure{[]} + {\Configure{@math}{|<block display|>}\csname a:mathml[]\endcsname + \CenteredFrametrue \DviMath \CenteredFramefalse + \Tg<\a:mathml mrow\Hnewline>$$\DisplayMathtrue } + {$$\Tg</\a:mathml mrow>\EndDviMath\csname b:mathml[]\endcsname + |<mathml rlbabel|> } +>>> + + +\<block display\><<< +% \a:mathml display="block" +>>> + + +\<inline display\><<< +%\a:mathml display="inline" +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Underline and Overline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice-mml latex\><<< +\Configure{overline} + {\bgroup\ifmathml |<mathml overline|>\else + \HCode{<text:span text:style-name="overline" >}\fi} + {\ifmathml |<end mathml overline|>\else \HCode{</text:span>}\fi\egroup} +\Configure{underline} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<text:span text:style-name="underline" >}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</text:span>}\fi \egroup} +>>> + + + +\<configure ooffice-mml ushort \><<< +\Configure{ushort} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<text:span text:style-name="underline" >}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</text:span>}\fi \egroup} +\Configure{ushortw} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<text:span text:style-name="underline" >}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</text:span>}\fi \egroup} +\Configure{ushortd} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<text:span text:style-name="underline" >}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</text:span>}\fi \egroup} +\Configure{ushortdw} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<text:span text:style-name="underline" >}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</text:span>}\fi \egroup} +\Configure{ushortdline} + {\bgroup + \ifmathml |<mathml underline|>% + \else |<nomath underline|>\HCode{<text:span text:style-name="underline" >}\fi} + {\ifmathml |<end mathml underline|>\else \HCode{</text:span>}\fi \egroup} +>>> + + + +\<mathml overline\><<< +\HCode{<\a:mathml mover accent="false"\Hnewline +\mml:class="mml-overline"><\a:mathml mrow>}% +>>> + +\<end mathml overline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline + accent="true">&\#x00AF;</\a:mathml mo>% +</\a:mathml mover>}% +>>> + + +\<mathml underline\><<< +\HCode{<\a:mathml munder \a:mathml accentunder="false"\Hnewline +\mml:class="mml-underline"><\a:mathml mrow>}% +>>> + +\<nomath underline\><<< +\expandafter\everymath +\expandafter{\expandafter\everymath + \expandafter{\the\everymath}}% +\let\o::@underline:\o:@@underline: +\def\o:@@underline:{\let\o:@@underline:\o::@underline:}% +>>> + +\<end mathml underline\><<< +\HCode{</\a:mathml mrow><\a:mathml mo\Hnewline +accent="true">&\#x0332;</\a:mathml mo></\a:mathml munder>}% +>>> + + + +\<configure ooffice fontmath\><<< +\NewConfigureOO{overline} +\ConfigureOO{overline}{|<oo overline style|>} +\NewConfigureOO{underline} +\ConfigureOO{underline}{|<oo underline style|>} +>>> + +\<oo underline style\><<< +<style:style style:name="underline" style:family="text"> + <style:text-properties style:text-underline-style="solid" + style:text-underline-width="auto" + style:text-underline-color="font-color" + /> +</style:style> +>>> + +Overline?? + +\<oo overline style\><<< +<style:style style:name="overline" style:family="text"> + <style:text-properties style:text-underline="dotted" /> +</style:style> +>>> + + +%%%%%%%%%%%%%%%%%% +\section{mfenced} +%%%%%%%%%%%%%%%%%% + +OO doesn't seem to hono mfenced + +\begin{verbatim} +\documentclass{article} +\begin{document} +\[ +\sin\left(x\right)\] +\end{document} +\end{verbatim} + +\<configure ooffice-mml latex\><<< +>>> + +\<configure ooffice-mml plain\><<< +>>> + + + + + + +\<mfenced patches\><<< +\Configure{left} + {} + {\HCode{<\a:mathml mrow>\expandafter + \ifx \csname \string#1:lr del\endcsname\relax + <\a:mathml mo form="prefix" >#1</\a:mathml mo\space>\else + \expandafter\ifx \csname \string#1:lr del\endcsname\empty \else + <\a:mathml mo form="prefix" >\csname + \string#1:lr del\endcsname</\a:mathml mo>\fi + \fi<\a:mathml mrow>}} +>>> + + + + + +\<mfenced patches\><<< +\Configure{right} + {\HCode{</\a:mathml mrow>\expandafter + \ifx \csname \string#1:lr del\endcsname\relax + <\a:mathml mo form="postfix" >#1</\a:mathml mo>\else + \expandafter\ifx \csname \string#1:lr del\endcsname\empty \else + <\a:mathml mo form="postfix" >\csname + \string#1:lr del\endcsname</\a:mathml mo>\fi + \fi + }} + {\HCode{</\a:mathml mrow>}} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{???????????????????????} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%% +\section{Long Tables} +%%%%%%%%%%%%%%%%%% + + +\<configure ooffice longtable\><<< +\Configure{halignTB<>}{longtable}{\HCode{\Hnewline + table:style-name="longtable" + }<>\HAlign} +\Configure{longtable} + {\IgnorePar\EndP \HCode{|<show input line no|>}% + \halignTB{longtable}% + |<list the grouping of columns|>} + {|<insert Clr|>\HCode{</table:table>}} + {\HCode{<table:table-row \Hnewline}\halignTR\HCode{ + table:style-name="TBL-\TableNo-\HRow-">}} + {\HCode{</table:table-row>}} + {\HCode{<table:table-cell + \ifnum \HMultispan>1 table:number-columns-spanned="\HMultispan"\fi + \space table:style-name="TBL-\TableNo-\HRow-\HCol" ><text:p>}|<td save EndP|>% + |<start array par box|>\PushStack\Table:Stck\TableNo} + {\PopStack\Table:Stck\TableNo + |<end array par box|>\HCode{</text:p></table:table-cell>}} +>>> + + + + + + +\<show input line no\><<< +<!--l. \the\inputlineno-->% +>>> + + + +\<td save EndP\><<< +\SaveEndP +>>> + +\<td recall EndP\><<< +\RecallEndP +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Curve} +%%%%%%%%%%%%%%%%%% + + + + + + + + + + +\<configure ooffice curve\><<< +\ConfigureEnv{rubric} + {\bgroup |<rubric table|>} {\egroup} {} {} +>>> + + +\<rubric table\><<< +\Configure{table-column-style} + {table:style-name="|<rubric col num|>"} +\Configure{longtable} + {\IgnorePar\EndP \HCode{|<show input line no|>}% + \halignTB{longtable}% + |<list the grouping of columns|>} + {|<insert Clr|>\HCode{</table:table>}} + {\HCode{<table:table-row \Hnewline}\halignTR\HCode{ + table:style-name="TBL-\TableNo-\HRow-">}} + {\HCode{</table:table-row>}} + {\HCode{<table:table-cell + \ifnum \HMultispan>1 table:number-columns-spanned="\HMultispan"\fi + \space table:style-name="|<rubric cell num|>" ><text:p + text:style-name="|<rubric par num|>" >}|<td save EndP|>% + |<start array par box|>\PushStack\Table:Stck\TableNo} + {\PopStack\Table:Stck\TableNo + |<end array par box|>\HCode{</text:p></table:table-cell>}} +>>> + +\<rubric col num\><<< +\ifcase \ar:cnt\relax +\or %1 + keyCol% +\or %2 + markCol% +\else + bodyCol% TBL-\TableNo -\ar:cnt +\fi +>>> + +\<rubric cell num\><<< +\ifcase \HMultispan\relax +\or %1 + \ifcase \HCol\relax + \or %1 + keyCell% + \or %2 + markCell% + \else + TBL-\TableNo-\HRow-\HCol + \fi +\or %2 + \ifnum \HCol=2 + subrubricCell% + \else + TBL-\TableNo-\HRow-\HCol + \fi +\or %3 + \ifnum \HCol=1 + rubricheadCell% + \else + TBL-\TableNo-\HRow-\HCol + \fi +\else + TBL-\TableNo-\HRow-\HCol +\fi +>>> + + +\<rubric par num\><<< +\ifcase \HMultispan\relax +\or %1 + \ifcase \HCol\relax + \or %1 + keyP% + \or %2 + markP% + \else + TBL-\TableNo-\HRow-\HCol + \fi +\or %2 + \ifnum \HCol=2 + subrubricP% + \else + TBL-\TableNo-\HRow-\HCol + \fi +\or %3 + \ifnum \HCol=1 + rubricheadP% + \else + TBL-\TableNo-\HRow-\HCol + \fi +\else + TBL-\TableNo-\HRow-\HCol +\fi +>>> + + + +\<configure ooffice curve\><<< +\OOstyles{% +\Hnewline +<style:style + style:name="markCol" + style:family="table-column" + > \Hnewline + <style:table-column-properties + style:rel-column-width="180*"/> +</style:style> \Hnewline +<style:style style:name="keyCol" style:family="table-column"> + <style:table-column-properties + style:rel-column-width="1546*"/> +</style:style> \Hnewline +<style:style style:name="bodyCol" style:family="table-column"> + <style:table-column-properties + style:rel-column-width="6914*"/> +</style:style> \Hnewline +} +>>> + + + +\<configure ooffice curve\><<< +\Configure{maketitle} + {}{} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:h text:style-name="curveTitle" text:outline-level="1" + >}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</text:h>}} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:h text:style-name="curveSubTitle" text:outline-level="2" + >}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</text:h>}} +>>> + + + +\<configure ooffice curve\><<< +\OOstyles{% +\Hnewline +<style:style + style:name="curveTitle" + style:family="paragraph" + > \Hnewline + <style:paragraph-properties + fo:text-align="center" + style:justify-single-word="false" + fo:margin-top="0.4cm" + fo:margin-bottom="0.1cm" + /> \Hnewline + <style:text-properties + fo:font-size="145\%" + fo:font-weight="bold" + /> \Hnewline +</style:style> \Hnewline +} +>>> + + + +\<configure ooffice curve\><<< +\OOstyles{% +\Hnewline +<style:style + style:name="curveSubTitle" + style:family="paragraph" + > \Hnewline + <style:paragraph-properties + fo:text-align="center" + style:justify-single-word="false" + fo:margin-top="0.1cm" + fo:margin-bottom="0.2cm" + /> \Hnewline + <style:text-properties + fo:font-size="130\%" + fo:font-weight="normal" + fo:font-style="italic" + /> \Hnewline +</style:style> \Hnewline +} +>>> + + +\<configure ooffice curve\><<< +\Configure{makeheaders} + {\ifvmode \IgnorePar\fi \EndP + \HCode{% + <table:table table:name="makeheaders" > + <table:table-column table:number-columns-repeated="2"/> + <table:table-row> + <table:table-cell table:style-name="leftheader" + office:value-type="string"> + <text:p text:style-name="Pleft" >}} + {\HCode{</text:p> + </table:table-cell> + <table:table-cell table:style-name="rightheader" + office:value-type="string"> + <text:p text:style-name="Pright" >}} + {\HCode{</text:p> + </table:table-cell> + </table:table-row> + </table:table>}} +>>> + +\<configure ooffice curve\><<< +\OOstyles{% +<style:style + style:name="leftheader" + style:family="table-cell"> + <style:table-cell-properties + fo:padding="0.0382in" + fo:border="none"/> +</style:style> +<style:style + style:name="rightheader" + style:family="table-cell"> + <style:table-cell-properties + fo:padding="0.0382in" + fo:border="none"/> i +</style:style> +<style:style style:name="Pleft" + style:family="paragraph" > + <style:paragraph-properties + fo:text-align="left" + style:justify-single-word="false"/> + <style:text-properties + fo:font-style="normal" /> +</style:style> +<style:style style:name="Pright" + style:family="paragraph" > + <style:paragraph-properties + fo:text-align="end" + style:justify-single-word="false"/> + <style:text-properties + fo:font-style="normal" /> +</style:style> +} +>>> + + + +\<configure ooffice curve\><<< +\Configure{rubrichead} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:span text:style-name="rubrichead" >}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</text:span>}} +>>> + + +\<configure ooffice curve\><<< +\OOstyles{% +\Hnewline +<style:style + style:name="rubrichead" + style:family="text" + > \Hnewline + <style:text-properties + fo:font-size="110\%" + fo:font-weight="bold" + /> \Hnewline +</style:style> \Hnewline +} +>>> + + + +\<configure ooffice curve\><<< +\OOstyles{% +\Hnewline +<style:style + style:name="rubricheadP" + style:family="paragraph" + > \Hnewline + <style:paragraph-properties + fo:text-align="center" + style:justify-single-word="false" + fo:margin-top="0.2cm" + fo:margin-bottom="0.2cm" + /> \Hnewline +</style:style> \Hnewline +} +>>> + + + + +\<configure ooffice curve\><<< +\Configure{subrubric} + {\ifvmode \IgnorePar\fi \EndP + \HCode{<text:span text:style-name="subrubric" >}} + {\ifvmode \IgnorePar\fi \EndP \HCode{</text:span>}} +>>> + + +\<configure ooffice curve\><<< +\OOstyles{% +\Hnewline +<style:style + style:name="subrubric" + style:family="text" + > \Hnewline + <style:text-properties + fo:font-weight="normal" + fo:font-style="italic" + fo:font-size="130\%" + /> \Hnewline +</style:style> \Hnewline +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{wrapfig} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooffice wrapfig\><<< +\pend:def\WFclear{% +\let\orig:par\par% +\def\par{\let\par\orig:par}% +}% +\append:def\WFclear{\let\par\orig:par} + +\Configure{wrapfloat} +{\ifvmode \IgnorePar\fi \EndP% +\HCode{<text:section text:name="wrapfig-\WFplace" ><text:p>}\bgroup\HtmlParOff} +{\ifvmode \IgnorePar\fi\EndP% + \HCode{</text:p></text:section>}% + \HtmlParOn\egroup% + \csname par\endcsname\ShowPar% +} + +>>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{subscript} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooffice subscript\><<< +\Configure{textsubscript} + {\HCode{<text:span text:style-name="textsubscript">}} + {\HCode{</text:span>}} +\OOstyles{% +<style:style style:name="textsubscript" style:family="text">\Hnewline + <style:text-properties style:text-position="sub"/>\Hnewline +</style:style>\Hnewline +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Notes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%%%%%%%%%%%%%%% +\section{References} +%%%%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item Accessibility + +\begin{itemize} + +\item Peter Korn's Weblog, Testing ODF document accessibility +\url{http://blogs.sun.com/korn/entry/testing_odf_document_accessibility_and} + +\item +eDesigner, +\url{http://www.alphaworks.ibm.com/tech/adesigner} + + +\item +OASIS OpenDocument - Accessibility +\url{http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office-accessibility} +\end{itemize} + + +\item \href{http://books.evc-cit.info/odbook/book.html}{OASIS OpenDocument Essentials} + +\item OpenDocument: +\href{http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pdf}{OASIS} + +\item OpenDocument: +\href{http://www.oasis-open.org/specs/index.php}{OASIS} + + + +DTD?, relaxng schema provided + +\item OpenOffice : + \href{http://xml.openoffice.org/source/browse/xml/xmloff/dtd/}{DTD}, + \href{http://books.evc-cit.info/book.php}{book}, + \href{http://books.evc-cit.info/odbook/book.html}{OASIS OpenDocument Essentials}, + \href{http://books.evc-cit.info/}{OpenOffice.org XML Essentials} book, + \href{http://xml.openoffice.org/xml_specification.pdf}{OpenOffice.org XML + File Format + 1.0} Technical Reference Manual Version 2 December 2002, + \href{http://www.xml.com/pub/a/2001/02/07/openoffice.html}{Adventures + with OpenOffice and XML} (Matt Sergeant ), + \href{http://xml.openoffice.org/}{home page}, + \href{http://www.ccsd1.k12.wy.us/Training/Help_Desk/StarOffice/816-7367.pdf}{user's + guide}, + \href{http://xml.coverpages.org/OpenOfficeXMLSpec200207.pdf}{Technical + reference}, + \href{http://ooo.ximian.com/lxr/source/xml/xmloff/dtd/}{some online + dtds} + +\item +Publication: +Maarten Wisse, "Hacking TEX4ht for XML Output: The Road towards a TEX +to Word Convertor", MAPS 28 (2002), pp. 28-35. +(\url{http://home.wanadoo.nl/pmwisse/hpmwissese3.html}.) + +\item Samples: + \url{http://www.xml.com/2001/02/07/adventure.sxw}, + \url{http://cvs.berlios.de/cgi-bin/viewcvs.cgi/od2f/study/content.xml?annotate=1.2} + +\item +\url{http://www.oasis-open.org/committees/download.php/10765/office-spec-1.0-cd-2.pdf} +\url{http://xml.coverpages.org/ni2005-01-04-a.htm} + +\item +\url{http://docs.oasis-open.org/office/v1.1/OS/} + +\item See NeoOffice/J for Macs + +\item +Sun ODF Plugin 1.1 for Microsoft Office: +\url{http://www.sun.com/software/star/odf_plugin/} +\end{itemize} + +%%%%%%%%%%%%%%%%%%% +\section{To Do} +%%%%%%%%%%%%%%%%%%% + +\begin{itemize} +\item Activate groups of columns? +\item Vertical Borders + +Why the following doesn't work? + +\begin{verbatim} +\OOstyles{% + <style:style style:name="hline-cell" style:family="table-cell"> + <style:text-properties fo:padding="0.097cm" + fo:border-left="none" + fo:border-right="none" + fo:border-top="none" + fo:border-bottom="0.002cm solid \#000000"/> + </style:style> +} +\end{verbatim} + +\item Margins on sides of tables +\end{itemize} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Writer2LaTeX} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{verbatim} +Another thing with built-in styles in OOo: You use the style "Quotations", +but the definition is not included in styles.xml. This is not a problem +for OOo, but it will be a problem for other applications reading the file +(Writer2LaTeX, KWord,...). To fix that you should always include the +definition of a style. + + +w2l in-file +\end{verbatim} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Supporting Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{verbatim} +The .sxw file is a .JAR file (which is basically the same as a .ZIP file). + +The manifest.xml file is the difference between .ZIP and .JAR, +apparently. It makes searching the files easier, and the documentation +claims that this file is uncompressed, so that it can be easily +read. I have not tested this, but it seems like a good idea. + +content.xml - the text of the document +styles.xml - the styles used by the document +meta.xml - various meta-information (author, etc) +settings.xml - the Word Processor settings used. +META-INF/manifest.xml - a list of all these files, plus any others used in the document + +\end{verbatim} + +%%%%%%%%%%%%%%%%%% +\section{How-To Examples} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{New Pages} +%%%%%%%%%%%%% + + + +\<configure ooffice latex\><<< +\Configure{newpage}{\par \EndP \IgnorePar + \HCode{<text:p text:style-name="newpage"></text:p>}% + \par\ShowPar} +\OOstyles{% + <style:style style:name="newpage" style:family="paragraph" > + <style:paragraph-properties fo:break-after="page"/> + </style:style> +} +>>> + + + + + + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-ooimpress.tex b/support/TeX4ht/source/tex4ht-ooimpress.tex new file mode 100644 index 0000000000..ff2efa11cc --- /dev/null +++ b/support/TeX4ht/source/tex4ht-ooimpress.tex @@ -0,0 +1,436 @@ +% $Id: tex4ht-ooimpress.tex 65 2010-11-17 19:16:45Z karl $ +% compile 3 times: latex tex4ht-ooimpress +% htlatex tex4ht-ooimpress "xhtml,4,sections+" +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) 2001-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{ooimpress}%,ooimpress-mml} + \def\PREAMBLE{% + \usepackage{url}% + \usepackage{hyperref}% + } + \def\OPTIONS{html,sections+,3}% + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari, + James Naughton, and Maarten Wisse}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common} +\input{tex4ht-cpright} + +See ch 7 of \cite{odbook} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{The Code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The Root} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Imported Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure ooimpress tex4ht\><<< +\if:latex |<Hinclude latex|> +\else |<Hinclude plain|> \fi +>>> + + +\<configure ooimpress plain\><<< +|<Hinclude plain lib|> +|<Hinclude plain + latex lib|> +>>> + +\<configure ooimpress latex\><<< +|<Hinclude latex lib|> +|<Hinclude plain + latex lib|> +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Common Code Fragments} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<par del\><<< +!*?: >>> + +\<tag of Tag\><<< + cw:>>> + +\<tail\><<< +tail>>> + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + +\<utilities\><<< +\newif\ifHCond +\def\:gobbleM#1->{} +>>> + + +\<try env inline par\><<< +\ShowPar +>>> + +\<try inline par\><<< +\ShowPar\par{\HCondtrue\noindent}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{Copyright} +%%%%%%%%%%%%%%%%%%%%%% + +\<ooimpress\><<< +% ooimpress.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2001. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +\<configure ooimpress tex4ht\><<< +|<utilities|> +>>> + +%%%%%%%%%%%%%%%%%%%%%% +\section{The XML Files} +%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%% +\subsection{content.xml (= jobname.xml)} +%%%%%%%%%%%%%%%%%%%%%% + +\<configure ooimpress foils\><<< +\Configure{BODY} + {\HCode{<office:body><office:presentation>}% + \let\end:rootslide\empty + \start:slide + \gdef\end:rootslide{\end:slide \global\let\end:rootslide=\empty}% + \par\ShowPar} + {\IgnorePar\EndP + \end:rootslide + \HCode{</office:presentation></office:body>\Hnewline}} +>>> + + +\<configure ooimpress foils\><<< +\Configure{maketitle} + {\bgroup + \Configure{newpage}{}% + \IgnorePar\EndP\HCode{<!--begin maketitle-->} + \Configure{tabular}{}{}{}{}{\ifnum \HRow>1 + \HCode{<text:line-break\Hnewline/>}\fi}{}% + \ConfigureEnv{tabular}{}{}{}{}% + } + {\ifvmode \IgnorePar\fi \EndP + \HCode{|<end page body|><!--end maketitle-->}\egroup \par} + {\ifvmode \IgnorePar\fi \EndP + \HCode{|<start document title|>% + <text:p text:style-name="Title|<cond rtl class|>" >}} + {\HCode{</text:p>|<end document title|>|<start maketitle page body|>}} +>>> + +\<start maketitle page body\><<< +<draw:frame presentation:style-name="pr1" + draw:layer="layout" + svg:width="25.199cm" +% svg:height="3.256cm" + svg:x="1.4cm" + svg:y="6.0cm" + presentation:class="notes"> + <draw:text-box>\Hnewline +>>> + + + +\<start page body\><<< +<draw:frame presentation:style-name="pr1" + draw:layer="layout" + svg:width="25.199cm" +% svg:height="3.256cm" + svg:x="1.4cm" + svg:y="2.0cm" + presentation:class="notes"> + <draw:text-box>\Hnewline +>>> + + +\<end page body\><<< + </draw:text-box> +</draw:frame>\Hnewline +>>> + + + +\<start document title\><<< +<draw:frame presentation:style-name="pr1" + draw:layer="layout" + svg:width="25.199cm" +% svg:height="3.256cm" + svg:x="1.4cm" + svg:y="3.0cm" + presentation:class="title"> + <draw:text-box>\Hnewline +>>> + +\<end document title\><<< + </draw:text-box> +</draw:frame>\Hnewline +>>> + + + +\<configure ooimpress foils\><<< +\HAssign\PageN=0 +\Configure{foilhead} + {\IgnorePar\EndP \start:slide } + {\IgnorePar\EndP + \HCode{|<end page body|>}\end:slide } + {\HCode{|<start foilhead title|>% + <text:p text:style-name="|<cond rtl class|>" >}% + \IgnoreIndent} + {\HCode{</text:p>\Hnewline + |<end foilhead title|>|<start page body|>}\par\ShowPar} + +\def\start:slide{\end:rootslide + \HAdvance\PageN by 1 + \HCode{<!--start of foilhead--> + <draw:page draw:name="page\PageN" + draw:style-name="dp1" + draw:master-page-name="Default"> \Hnewline}} +\def\end:slide{\HCode{ + </draw:page> + <!--end of foilhead-->}} +>>> + + +\<cond rtl class\><<< +\if@rl-rtl\fi +>>> + + + +\<start foilhead title\><<< +<draw:frame presentation:style-name="pr1" + draw:layer="layout" + svg:width="25.199cm" +% svg:height="3.256cm" + svg:x="1.4cm" + svg:y="0.962cm" + presentation:class="subtitle"> + <draw:text-box>\Hnewline +>>> + +\<end foilhead title\><<< + </draw:text-box> +</draw:frame>\Hnewline +>>> + +\<configure ooimpress foils NO\><<< +\NewConfigureOO{slide} +\ConfigureOO{slide}{% +<style:style style:name="dp1" style:family="drawing-page"> + <style:drawing-page-properties + presentation:background-visible="true" + presentation:background-objects-visible="true" + presentation:display-footer="true" + presentation:display-page-number="false" + presentation:display-date-time="true"/> +</style:style> +<style:style style:name="gr1" + style:family="graphic" + style:parent-style-name="standard"> + <style:graphic-properties + draw:stroke="none" + svg:stroke-color="\#000000" + draw:fill="none" + draw:fill-color="\#ffffff" + draw:textarea-horizontal-align="left" + draw:auto-grow-height="true" + draw:auto-grow-width="true" + fo:min-height="0cm" + fo:min-width="0cm"/> +</style:style> +} +>>> + + + + +\<configure ooimpress foils\><<< +\ConfigureOO{foilhead}{\Hnewline +<style:style style:name="foilhead" + style:family="paragraph" + >\Hnewline +<\style:par:properties fo:font-size="12pt" + fo:font-weight="bold" + style:font-size-asian="14pt" + style:font-weight-asian="bold" + style:font-size-complex="14pt" + style:font-weight-complex="bold" + fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:text-align="center" + style:justify-single-word="false" +/> +</style:style> +} +>>> + + +\<configure ooimpress foils\><<< +\ConfigureOO{title}{% +<style:style style:name="Title" + style:family="paragraph" + >\Hnewline +<\style:par:properties fo:margin-top="0.42cm" + fo:margin-bottom="0.51cm" + fo:font-size="20pt" + fo:font-weight="normal" + style:font-size-asian="18pt" + style:font-weight-asian="bold" + style:font-size-complex="18pt" + style:font-weight-complex="bold" + fo:text-align="center" + style:justify-single-word="false"/> +</style:style> \Hnewline + } +>>> + + + +\<configure ooimpress foils\><<< +\Configure{thank} + {\setbox\tmp:bx=\hbox\bgroup} + {\egroup} + {\NoFonts \leavevmode \bgroup \protect\Configure{$}{}{}{}% + \hbox{\HCode{<!--text:note\Hnewline text:note-class="footnote" + text:id="}|<thank id|>% + \HCode{"><text:note-citation>}}% + } + {\egroup \EndNoFonts + \HCode{</text:note-citation><text:note-body> + <text:p\Hnewline text:style-name="Footnote" ><text:s/>}} + {\HCode{</text:p></text:note-body></text:note-->}} +>>> + + + + + +%%%%%%%%%%%%% +\subsection{Undo ooffice} +%%%%%%%%%%%%% + + +\<configure ooimpress tex4ht\><<< +\def\media:type{application/vnd.oasis.opendocument.presentation} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{Remove `reference-mark'} +%%%%%%%%%%%%%%%%%% + +Introduced in xtpipes for \verb=\Link= + + +\<configure ooimpress latex\><<< +\Odef\Link[#1]#2#3{} +\let\EndLink\empty +>>> + + +%%%%%%%%%%%%%%%%%% +\subsection{Remove `style:columns'} +%%%%%%%%%%%%%%%%%% + + +OpenOffice impress chocks on `style:columns' (why?) + +\<configure ooimpress latex\><<< +\ConfigureOO{Sect1}{\Hnewline + <style:style style:name="Sect1" + style:family="section"> + <\style:sectionproperties> + <!--style:columns fo:column-count="1" + fo:column-gap="0cm"> + <style:column fo:margin-top="0.5cm" + fo:margin-left="0cm" + fo:margin-right="0cm" + /> + </style:columns--> + </\style:sectionproperties> + </style:style> +\Hnewline } +>>> + + +\<configure ooimpress latex\><<< +\ConfigureOO{Sect2}{\Hnewline +<style:style style:name="Sect2" + style:family="section"> + <\style:sectionproperties> + <!--style:columns fo:column-count="0" fo:column-gap="0cm"/--> + </\style:sectionproperties> +</style:style> +\Hnewline } +>>> + +\<configure ooimpress tex4ht\><<< +\Configure{figure-style}{% + <style:style style:name="Figure" style:family="section">\Hnewline + <style:section-properties + fo:margin-left="0.25in" + fo:margin-right="0.25in" + style:editable="true">\Hnewline + <!--style:columns fo:column-count="0" + fo:column-gap="0in"/--> + </style:section-properties> + </style:style>\Hnewline +} +>>> + + +\<configure ooimpress g-brief\><<< +\ConfigureOO{g-brief-header}{\Hnewline +<style:style style:name="header-style" style:family="section">\Hnewline + <\style:properties text:dont-balance-text-columns="false" + fo:margin-bottom="2cm">\Hnewline + <!--style:columns fo:column-count="2" + fo:column-gap="1in">\Hnewline + <style:column fo:margin-left="0in" + fo:margin-right="0in"/>\Hnewline + <style:column fo:margin-left="0in" + fo:margin-right="0in"/>\Hnewline + </style:columns-->\Hnewline + </\style:properties>\Hnewline +</style:style>\Hnewline +} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{thebibliography}{9} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\bibitem{odbook} +OASIS OpenDocument Essentials, +Using OASIS OpenDocument XML +\url{http://books.evc-cit.info/odbook/book.html} + + +\end{thebibliography} + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-options.tex b/support/TeX4ht/source/tex4ht-options.tex new file mode 100644 index 0000000000..3640505250 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-options.tex @@ -0,0 +1,493 @@ +% $Id: tex4ht-options.tex 724 2020-06-05 17:34:50Z karl $ +% latex tex4ht-options or xhlatex tex4ht-options +% +% Copyright 2009-2020 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +%%%%%%%%%%%%%%%%%% definitions %%%%%%%%%%%%%%%%%%%%%%%%% + +\input{common.tex} +\input{common-code.tex} +\input{tex4ht-cpright.tex} + +\def\.{\string\a:mathml:\space} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Shared} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<par del\><<< +!*?: >>> + + +\<tag of Tag\><<< + cw:>>> + +\<tail\><<< +tail>>> + +\<addr for Tag and Ref of Sec\><<< +\xdef\:cursec{|<section html addr|>}% +>>> + + + + + +\<tex4ht.4ht\><<< +\ifnum\the\catcode`\%=14\else \expandafter\edef\csname + \string:RestoreCatcodes\endcsname{\catcode`\%|=\the + \catcode`\%}\catcode`\%|=14\fi +% tex4ht.4ht (|version), generated from |jobname.tex +% Copyright 2009-2018 TeX Users Group +% Copyright |CopyYear.1997. Eitan M. Gurari +|<TeX4ht copywrite|> +|<save catcodes|> +|<note about tex4ht.usr|> + +\:CheckOption{info}\if:Option + \Hinclude[*]{info4ht.4ht} + \Log:Note{For additional information, + compile `xhlatex mktex4ht.4ht'^^J and review the appropriate + pointers under mktex4ht.html => index} +\else + \Log:Note{for additional information, use + the command line option `info'} +\fi +\writesixteen{::::::::::::::::::::::::::::::::::::::::::} +\writesixteen{ TeX4ht info is available in the log file } +\writesixteen{::::::::::::::::::::::::::::::::::::::::::} +|<redefine Configure|> +|<built-in settings|> +|<user's configuration files|> +|<recall Configure|> +\:tempc + +\:RestoreCatcodes +\endinput +>>> + +\<redefine Configure\><<< +\let\:tempd|=\Configure +\def\Configure#1#2{% + \:CheckOption{#1}\if:Option \def\:tempc{#2}\fi} +>>> + +\<recall Configure\><<< +\let\Configure|=\:tempd +>>> + + +\<user's configuration files\><<< +\openin15=tex4ht.usr \ifeof15 \else \closein15 + \input tex4ht.usr +\fi +>>> + +\<note about tex4ht.usr\><<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% It is highly recommended NOT TO CHANGE THIS FILE. Options +% ^^^^^^^^^^^^^^^^^^^^^^^ +% defined in this file may be redefined, and new ones may be +% added, within a user supplied file named tex4ht.usr. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +>>> + + +\<built-in settings\><<< +|<html4 settings|> +|<0.0 and 3.2 settings|> +|<mozilla settings|> +|<html5 settings|> +|<tei settings|> +|<jats settings|> +|<docbook settings|> +|<html for word settings|> +|<open office settings|> +|<html mathltx settings|> +|<html jsmath settings|> +|<html emacspeak settings|> +>>> + + + +\<html4 settings\><<< +\def\:tempc{\:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}% + \:CheckOption{javahelp}\if:Option + \Hinclude[*]{infojh.4ht}\fi + \fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{html4-math.4ht}% + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option + \Hinclude[*]{svg-option.4ht}% + \Hinclude[*]{html4-svg.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi +} +\Configure{uni-html4}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{html4-math.4ht}% + \Hinclude[*]{unicode.4ht} + \Hinclude[*]{html4-uni.4ht}% + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi + } +\Configure{mathml}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \:CheckOption{info}\if:Option + \Hinclude[*]{infomml.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{html-mml.4ht}% + \Hinclude[*]{html4-uni.4ht}% + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi + \:CheckOption{mathplayer}\if:Option + \:CheckOption{pmathml}\if:Option \else + \:CheckOption{pmathml-css}\if:Option \else + \Hinclude[*]{mathplayer.4ht} + \fi\fi + \else + \Log:Note{For MathML on MSIE + MathPlayer use + the command line option `mathplayer'} + \fi +} +>>> + +\<html for word settings\><<< +\Configure{word}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{html4-math.4ht}% + \Hinclude[*]{htmlw.4ht}% + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi +} +>>> + +\<0.0 and 3.2 settings\><<< +\Configure{0.0}{% + \Hinclude[*]{html0.4ht}% +} +\Configure{3.2}{% + \:CheckOption{info}\if:Option + \:CheckOption{javahelp}\if:Option + \Hinclude[*]{infojh.4ht}\fi\fi + \Hinclude[*]{html32.4ht}% + \Hinclude[*]{html32-math.4ht}% + \:CheckOption{javahelp}\if:Option + |<option javahelp|>% + \fi + \:CheckOption{unicode}\if:Option \Hinclude[*]{unicode.4ht}\fi +} +>>> + + + + +Allows cleanup using xtpipes. + + +\<option javahelp\><<< +\Hinclude[*]{javahelp.4ht}% +\:CheckOption{jh-} \if:Option +\else + \edef\Preamble{\Preamble,xml}% + \Log:Note{for sources failing to produce + XML versions of HTML, try the command line option `jh-'}% +\fi +>>> + + + +\<mozilla settings\><<< +\Configure{mozilla}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \:CheckOption{info}\if:Option + \Hinclude[*]{infomml.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{html-mml.4ht}% + \Hinclude[*]{mozilla.4ht}% + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi + \:CheckOption{mathplayer}\if:Option + \Hinclude[*]{mathplayer.4ht} + \else + \Log:Note{For MathML on MSIE + MathPlayer use + the command line option `mathplayer'} + \fi +} +>>> + + +\<html5 settings\><<< +\Configure{html5}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \:CheckOption{info}\if:Option + \Hinclude[*]{infomml.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{unicode.4ht}% + \:CheckOption{mathml}\if:Option% + \else\:CheckOption{mathml-}\fi% + \if:Option% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{html-mml.4ht}% + \else + \Hinclude[*]{html4-math.4ht}% + \fi + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi + \Hinclude[*]{html5.4ht}% +} +>>> + +\<tei settings\><<< +\Configure{tei}{% + \Hinclude[*]{tei.4ht}% + \Hinclude[*]{unicode.4ht}% + \:CheckOption{mathml}\if:Option% + \else\:CheckOption{mathml-}\fi% + \if:Option% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{tei-mml.4ht}% + \else + \Hinclude[*]{tei-math.4ht}% + \fi + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi +} +\Configure{tei-mml}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infomml.4ht}\fi + \Hinclude[*]{tei.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{tei-mml.4ht}% + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi +} +>>> + +\<jats settings\><<< +\Configure{jats}{% + \Hinclude[*]{html4.4ht}% we will build upon HTML + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{html-mml.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{jats.4ht}% +} +>>> + +\<docbook settings\><<< +\Configure{docbook}{% + \Hinclude[*]{docbook.4ht}% + \Hinclude[*]{unicode.4ht}% + \:CheckOption{mathml}\if:Option% + \else\:CheckOption{mathml-}\fi% + \if:Option% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{docbook-mml.4ht}% + \else + \Hinclude[*]{docbook-math.4ht}% + \fi + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi +} +\Configure{docbook-mml}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infomml.4ht}\fi + \Hinclude[*]{docbook.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{docbook-mml.4ht}% + \:CheckOption{svg}% + \if:Option \else\:CheckOption{svg-}\fi + \if:Option \else\:CheckOption{svg-obj}\fi + \if:Option \else\:CheckOption{svg-inline}\fi + \if:Option \Hinclude[*]{svg-option.4ht}% + \:CheckOption{info}\if:Option \Hinclude[*]{infosvg.4ht}\fi + \fi +} +>>> + + +\<open office settings\><<< +\Configure{ooffice}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}% + \Hinclude[*]{infomml.4ht}% + \Hinclude[*]{infoof.4ht}\fi + \Hinclude[*]{ooffice.4ht}% + \:CheckOption{1}\if:Option\else + \:CheckOption{2}\if:Option\else + \:CheckOption{3}\if:Option\else + \:CheckOption{4}\if:Option\else + \:CheckOption{5}\if:Option\else + \:CheckOption{6}\if:Option\else + \:CheckOption{7} + \fi + \fi + \fi + \fi + \fi + \fi + \if:Option + \Hinclude[*]{ooimpress.4ht}% + \fi + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{ooffice-mml.4ht}% +} +>>> + +\<save catcodes\><<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \ifnum \the\catcode`\#=6 \else + \catcode`\noexpand \#|=\the\catcode`\#\fi + \ifnum \the\catcode`\^=7 \else + \catcode`\noexpand \^|=\the\catcode`\^\fi + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 \catcode`\#|=6 \catcode`\^|=7 +>>> + + + + + +\<html mathltx settings\><<< +\Configure{mathltx}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{html4-uni.4ht}% + \Hinclude[*]{mathltx.4ht}% + \Hinclude[*]{html-mltx.4ht}% +} +>>> + +\<html jsmath settings\><<< +\Configure{jsmath}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{html4-uni.4ht}% + \Hinclude[*]{mathltx.4ht}% + \Hinclude[*]{html-mltx.4ht}% + \Hinclude[*]{jsmath.4ht}% + \Hinclude[*]{html-jsmath.4ht}% +} +>>> + + + + +\<html emacspeak settings\><<< +\Configure{emspk}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{html4-uni.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{html-mml.4ht}% + \Hinclude[*]{html-speech.4ht}% + \Hinclude[*]{html-speech-math.4ht}% + \Hinclude[*]{emacspeak.4ht}% +} +>>> + + +\<html emacspeak settings\><<< +\Configure{jsml}{% + \:CheckOption{info}\if:Option + \Hinclude[*]{infoht4.4ht}\fi + \Hinclude[*]{html4.4ht}% + \Hinclude[*]{unicode.4ht}% + \Hinclude[*]{html4-uni.4ht}% + \Hinclude[*]{mathml.4ht}% + \Hinclude[*]{html-mml.4ht}% + \Hinclude[*]{jsml.4ht}% + \Hinclude[*]{jsml-math.4ht}% +} +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \OutputCodE\<tex4ht.4ht\> + + +\endinput +\subsection{Accents} diff --git a/support/TeX4ht/source/tex4ht-sty.tex b/support/TeX4ht/source/tex4ht-sty.tex new file mode 100644 index 0000000000..58e9879626 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-sty.tex @@ -0,0 +1,11285 @@ +% $Id: tex4ht-sty.tex 893 2021-03-06 00:10:06Z michal_h21 $ +% tex tex4ht-sty or ht tex tex4ht-sty +% +% Copyright 2009-2020 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\input common +\input DraTex.sty +\input AlDraTex.sty + +\DrawOff + +\writesixteen{----------Verify length of lines!!!!------------} +\writesixteen{----------Verify length of lines!!!!------------} +\writesixteen{----------Verify length of lines!!!!------------} +\writesixteen{----------Verify length of lines!!!!------------} + + +\newif\ifalprotex \alprotexfalse + +\hbadness=10000 \vbadness=10000 \hfuzz=99in \vfuzz=99in + + +\def\Link#1\EndLink{} + +\openin15=./tex4ht.sty + \ifeof15 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% replacement for TeX4ht %%%%%%%%%%%%%%%%%% +\writesixteen{........dvi mode} +\csname newif\endcsname\ifHtml \Htmlfalse +\def\-#1{\ifx#1-\expandafter\TEMP\else\expandafter#1\fi} +\expandafter\let\csname bye\endcsname=\end +\def\TEMP#1/#2/#3/{} +\def\HTable#1{} +\def\'#1'{} +\def\`#1'{} +\let\TableOfContents=\relax +\def\Part#1{} +\def\Chapter#1{} +\def\Appendix#1{} +\def\Section#1{} +\def\SubSection#1{} +\def\Margin#1{} +\def\HCode#1{} +\def\LinkPort#1\EndLink{} +\def\EndLink{} +\expandafter\let\csname bye\endcsname=\end +\def\TagSec#1{} +\def\RefSec#1{} +\def\List#1{} \let\ShortList=\List +\def\EndList{} +\def\item{} +\expandafter\let\expandafter\ifOption\csname iffalse\endcsname +\let\IgnorePar\empty +\let\EndP\empty +\catcode`\:=11 +\def\Verb{\bgroup \catcode`\^=10 \catcode`\\=10 \catcode`\%=10 + \catcode`\{=10 \catcode`\}=10 \catcode`\#=10 \catcode`\#=10 + \leavevmode \:ctgs} +\def\:ctgs#1{\def\:eat##1#1{\egroup}\:eat } +\csname newcount\endcsname\tmp:cnt + \def\no:catcodes#1#2#3{% + \tmp:cnt=#1 + \def\no::catcodes{% + \catcode\tmp:cnt=#3 + \ifnum\tmp:cnt<#2 + \advance\tmp:cnt by 1 \expandafter\no::catcodes + \fi }% + \no::catcodes } + \let\:oldlq=\` +\let\:oldrq=\' +\def\'{\leavevmode \:cats \::cats} +\def\::cats#1{\if #1"\expandafter\:oldrq + \else \def\:eat##1#1{\tt ##1\egroup}\expandafter\:eat\fi} +\def\`{\leavevmode \:cats \:::cats} +\def\:::cats#1{\if #1"\expandafter\:oldlq + \else \def\:eat##1#1{`{\tt ##1}'\egroup}\expandafter\:eat\fi} +\def\:cats{\bgroup \no:catcodes0{255}{12}\catcode`\ = 10 + \catcode`\^^M = 10 \catcode`\^^I = 10 +} + +\def\HPage{} \def\EndHPage{} +\def\Verbatim{\bgroup\catcode`\\=12 \catcode`\#=12 + \catcode`\^=12 \catcode`\_=12 + \catcode`\{=12 \catcode`\}=12 \catcode`\%=12 \:vrb} +\long\def\:vrb#1EndVerbatim{\egroup} + + + \closein15 + \def\next{%\input DraTex.sty +\writesixteen{.................requesting non-html mode}% + \input ProTex.sty + \AlProTex{sty,<<<>>>,|,title,list,[],ClearCode}} + \catcode`\:=12 +\else + \closein15 + \def\next{%\input DraTex.sty +\writesixteen{.................requesting html mode}% + \input tex4ht.sty + \Preamble{xhtml,th4,family,sections+} + \Configure{@HEAD}{\HCode{<link rev="made"\Hnewline + href="mailto:gurari@cse.ohio-state.edu" />}} +%% + \input ProTex.sty + \AlProTex{sty,<<<>>>,|,title,list,[],ClearCode} + \EndPreamble} + +\fi + +\next + + +\def\`{\Verb} +\def\'{\Verb} + + +\ifHtml + \TocAt{Chapter,Section,SubSection,LikeSection,/Appendix,/Part} + \TocAt{LikeChapter,Section,SubSection,LikeSection,/Appendix,/Part} + \TocAt{Appendix,Section,SubSection,LikeSection,/Appendix,/Part} + \CutAt{Chapter,LikeChapter,Appendix,Part} + \CutAt{LikeChapter,Chapter,Appendix,Part} + \CutAt{Appendix,Chapter,LikeChapter,Part} +\else + \def\ParentOf#1{} + \csname TableOfContents\endcsname +\fi + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\def\by{by}\def\={=} +\let\pReModifyOutputCode=\ModifyOutputCode +\def\ModifyOutputCode{% + \def\by{}\def\={}% + \pReModifyOutputCode} + +\csname NoOutputCode\endcsname + +\let\coDE=\< +\def\<{\vfil\par\coDE} + +\tracingstats=1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\IgnorePar \EndP +\HCode{<h1>A Literate View of tex4ht.sty</h1>} + + + + + + +\csname TableOfContents\endcsname[ParentOf,Part,Chapter,% + Appendix,LikeChapter,Section,LikeSection] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Chapter{Outline of the Code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\Section{TeX4ht} + +\<tex4ht\><<< +\ifnum\the\catcode`\%=14\else\expandafter\edef\csname + \string:RestoreCatcodes\endcsname{\catcode`\%|=\the + \catcode`\%}\catcode`\%|=14\fi +|<copyright|> +\ifx \Preamble\UnDef \else + % fix for LaTeX hook system, \AtBeginDocument is not available at this moment + \let\origatbegindocument\AtBeginDocument + \def\AtBeginDocument#1{\AddToHook{begindocument/end}{#1}} + \csname expand:after\endcsname{\csname + BeforeTeXIVht\endcsname\let\BeforeTeXIVht|=\UnDef} + \let\AtBeginDocument\origatbegindocument + +\fi +\def\writesixteen#1{\immediate\write99999{#1}} +|<save cat codes|> +|<ifs for TeX4ht|> +|<check if latex|> +\ifx \Preamble\UnDef + \ifx \PLATFORM\:UnDef \else + \message{ [\PLATFORM] }\let\PLATFORM|=\:UnDef\fi + |<early utilities|> + |<first pass|> + |<first pass for latex|> + \expandafter\ifx \csname tex4ht\endcsname\relax + \let\:temp|=\empty + \else + |<temp := auto load Preamble|> + \fi + \let\:tempc|=\:temp + |<def early latex ifOption|> + \pend:def\:tempc{\:RestoreCatcodes } + \append:def\:tempc{\endinput} + \let\:temp|=\:tempc + \expandafter\:temp +\fi +|<second pass|> +\ifx \Hinput\:UnDef \else + \Hinput{tex4ht2} + |<load protex|> +\fi +|<TeXivht = user file requests|> +|<html-end of style file|> +\rmv:ifs \let\rmv:ifs|=\:UnDef +\:RestoreCatcodes \TeXivht +\endinput + >>> + + + + + + + + + + +\<load sub tex4ht styles\><<< +\ifHtml \def\:tempa{\:Hinclude} +\else + \:CheckOption{th4}\if:Option \def\:tempa{\input th4.4ht} + \else \let\:tempa|=\empty \fi +\fi +\:CheckOption{core} \if:Option \let\:tempa|=\empty \fi +\:CheckOption{base} \if:Option \let\:tempa|=\empty \fi +\:tempa +>>> + + + + + + + + + +We have in amsmath + + +\<utilities\><<< +\def\HLet#1{% + \expandafter\ifx + \csname o:\expandafter\:gobble\string#1:\endcsname\relax + |<save old def of macro|>% + \fi + |<selector between old and new def|>% + \expandafter\let + \csname n:\expandafter\:gobble\string#1:\endcsname} +>>> + + +The original definition of \`'\.....' is stored in \`'\o:...:', and +the new one in \`'\n:....:'. + The selector is outside the \''\ifx' so that the \''\HLet' will + work also on macros restored with \''\HRestore'. + + +\<utilities\><<< +\def\HRestore#1{\relax + \expandafter\ifx + \csname o:\expandafter\:gobble\string#1:\endcsname\relax + \:warning{\string\HRestore\noexpand#1?}% + \else + \expand:after{\let#1|=}\csname o:\expandafter + \:gobble\string#1:\endcsname + \fi}% +>>> + +Don't erase the \`'o:...:', just in case a saving with let +is done before restoring. + + +\<save old def of macro\><<< +\expandafter\let + \csname o:\expandafter\:gobble\string#1:\endcsname|=#1% +>>> + +\<selector between old and new def\><<< +\edef#1{\noexpand\ifx \noexpand\EndPicture\noexpand\:UnDef + \noexpand\expandafter \expandafter\noexpand + \csname n:\expandafter\:gobble\string#1:\endcsname + \noexpand\else \noexpand\expandafter \expandafter\noexpand + \csname o:\expandafter\:gobble\string#1:\endcsname + \noexpand\fi}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Support for ProTex} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<first pass\><<< +\NewConfigure{ProTex}[1]{\def\a:ProTex{#1}} +>>> + + +\<load protex\><<< +\ifx \a:ProTex\:UnDef +\else \input ProTex.4ht \fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Support for httex} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<temp := auto load Preamble\><<< +|<util for extracting options|> +|<options from /tex4ht|> +\expandafter\expandafter\expandafter + \:temp\csname tex4ht\endcsname |<par del|>% +\ifx \:temp\relax + |<temp := load tex /Preample|> + \if:latex \let\:temp|=\empty \fi +\else + \if:latex + \let\config:file|=\:temp \let\:temp|=\empty + \else + \edef\:temp{\noexpand\input \:temp\space} +\fi \fi +>>> + + +\<extract tex4ht options\><<< +\ifx \:temp\relax + \let\:tempd|=\:temp + \let\:tempc|=\empty \config:opt #1,#2,|<par del|>% +\else \:temp + \let\:tempd|=\:temp + \let\:tempc|=\empty \config:opt #2,|<par del|>% +\fi +\let\config:opt|=\:tempc +\let\:temp|=\:tempd +>>> + +\<util for extracting options\><<< +\def\:tempc#1#2.#3|<par del|>{\edef\:tempa{#3}\edef\:temp{% + #1\ifx \:tempa\empty .cfg\fi}} +\def\config:opt#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty + \else \ifx \:tempc\empty + \def\:tempc{#1}% + \else + \append:def\:tempc{,#1} + \fi\fi + \def\:temp{#2}\ifx \:temp\empty + \else \def\:temp{\config:opt #2|<par del|>}\fi + \:temp} +>>> + + + +\<temp := load tex /Preample\><<< +\ifx \config:opt\:UnDef + \edef\config:opt{\ifx \config:file\empty html\fi}\fi +\def\:temp{\expandafter\expandafter\expandafter + \Preamble\expandafter{\config:opt}\EndPreamble} +>>> + + +\Section{First Pass} + +\<first pass\><<< +\ifx \Log:Needs\:UnDef \else + \:warning{Again `\noexpand\input tex4ht.sty'?}\fi +|<check that TeX4ht is not loaded after protex|> |%still necessary?|% +|<define for /Preamble|> +|<define /Preamble|> +>>> + + + +\<check if latex\><<< +\expandafter\ifx \csname @latex@error\endcsname\relax + \:latexfalse \tracingstats|=1 +\else + \if:latex\else |<usepackage for latex|>\fi + \:latextrue + \ifx \:providesfile \:UnDef + \let\:providesfile\@providesfile + \def\@providesfile#1{% + \expandafter\ifx\csname @filelist\endcsname\relax + \let\@providesfile\:providesfile + \else \xdef\@filelist{\@filelist,#1}% + \fi + \:providesfile{#1}% + } + \fi +\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Start Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<define /Preamble\><<< +\def\:Preamble{\ifx \:next[% + \def\Preamble[##1]##2{\egroup + |</def/Preamble(@@2)|>\input ##1 + } + \else + \def\Preamble##1{\egroup |</def/Preamble(@@1)|>% + \input |<TeX4ht name|>.sty } + \fi \let\:Preamble|=\:UnDef \Preamble } +\def\Preamble{\bgroup \catcode`\@|=12 \catcode`\_|=8 \catcode`\^|=7 + \futurelet\:next\:Preamble} +>>> + + +With the following definitions we can replace +\`'\input tex4ht.sty \Htmltrue .... \Htmlfalse \Preamble{html,...}' +with \`'\input tex4ht.sty \Htmltrue .... \Preamble{...}' +for defining html-enabled code between the \''\input' and the +\''\Preamble'. That is, for using code that employs the +\''\ifHtml' command. + + + +\</def/Preamble(@@1)\><<< +|<def :CheckOption|>% +\ifHtml \Htmlfalse + \def\Preamble{html,##1}\else \def\Preamble{##1}\fi +|<config options for /usepackage and httex|>% +|<extract Hinclude|>% +>>> + +\</def/Preamble(@@2)\><<< +|<def :CheckOption|>% +\ifHtml \Htmlfalse + \def\Preamble{html,##2}\else \def\Preamble{##2}\fi +|<config options for /usepackage and httex|>% +|<extract Hinclude|>% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{End Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<define /Preamble\><<< +\def\EndPreamble{\b:Preamble \global\let\missing:endpream\empty + \csname |<live|>\file:id\endcsname \B:DY} +\def\B:DY{|<html paragraph breaks at entry to file|>% + \HtmlEnv \IgnorePar \IgnoreIndent {\ht:everypar{}\leavevmode}\a:BODY + \csname a:@BODY\endcsname} +\def\missing:endpream{\:warning{Missing \string\EndPreamble}} +>>> + + +\<close html doc\><<< +\missing:endpream +>>> + +\<define /Preamble\><<< +\NewConfigure{@HTML}[1]{\concat:config\a:@HTML{#1}} +\let\a:@HTML|=\empty +>>> + +\<needs preamble\><<< +\:tempb +>>> + + +\<html config util\><<< +\NewConfigure{Preamble}{2} +>>> + + + +\<remove garbage\><<< +\ifHtml \else \let\EndPreamble|=\empty \fi +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Selecting Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<def :CheckOption\><<< +\def\:CheckOption####1{\def\:temp{####1}% + \:Optionfalse + \expandafter\:ScanOptions\Preamble,,//} +\def\:ScanOptions####1,####2//{\def\:next{####1}% + \ifx \:next\empty + \else \ifx \:temp\:next \:Optiontrue \let\:next|=\relax + \else \def\:next{\:ScanOptions####2//}% + \fi \fi \:next } +>>> + + + + + +\<Hinput Configs\><<< +\def\:temp{\def\ifOption##1} +\expandafter\expandafter\expandafter\:temp + \expandafter{\Preamble,,//\if:Option + |<ifOption true|>\else |<ifOption false|>\fi \tmp:toks=} +\pend:defI\ifOption{\def\:temp{##1}\:Optionfalse\:ScanOptions} +>>> + + +\<ifOption false\><<< +\def\:temp{% + \def\:temp{\the\tmp:toks}% + \afterassignment\:temp \tmp:toks=}% +\afterassignment\:temp +>>> + + +\<ifOption true\><<< +\def\:temp{\the\tmp:toks + \def\:temp{\tmp:toks={}}% + \afterassignment\:temp \tmp:toks=}% +\afterassignment\:temp +>>> + + + +The \''\ifOption' is implemented through a token list variable to +allow for nesting in macros and if statements. The older definition +hid the \''\if' under \''\ifOption' and exposed just the +\''\else' and \''\fi'. + + + + +\<new ifs\><<< +\:tempa{if:Option} +>>> + + + +The following code defines \`'\ifOption' just for flags defined in the +comamnd line (that is, flags known the first time tex4ht.sty is +loaded). It doesn't yet see those options introduced by \`'\Preamble' +and the *.4ht files. + + +\<def early latex ifOption\><<< +\ifx \config:opt\:UnDef \else + \ifx\tmp:toks\:UnDeF \csname newtoks\endcsname\tmp:toks\fi + \def\:temp{\def\ifOption##1} + \expandafter\expandafter\expandafter\:temp + \expandafter{\config:opt,,//\if:Option + |<ifOption true|>\else |<ifOption false|>\fi \tmp:toks=} + \pend:defI\ifOption{\def\:temp{##1}\:Optionfalse\:ScanOptions} +\fi +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{LaTeX at First Pass} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<first pass for latex\><<< +\if:latex + |<try taking care of hyperref.sty|> + |<early latex subs/sups|> +\fi +|<block package loading|> +|<xetex active characters|> +|<hook at usepackage|> +>>> + +The following is a temporary patch, waiting fo a fix in hyperref.sty. + + +\<try taking care of hyperref.sty\><<< +\expandafter\def\csname opt@hyperref.sty\endcsname{tex4ht} +>>> + +\<block package loading\><<< +\def\:dontusepackage#1{% + \typeout{tex4ht warning: package #1 was prevented from loading} + \@namedef{ver@#1.sty}{9999/12/31}% + \@namedef{opt@#1.sty}{\:currentoptions} +} +>>> + +Input definitions for Unicode blocks in XeLaTeX. It loads full Latin by +default, others must be activated using \`'xeuniuseblock{blockname}' + +\<xetex active characters\><<< +\ifx\XeTeXversion\@undefined\else +\ifx\xeuniuseblock\@undefined +\input tuenc-xetex-input.4ht +\fi\fi +>>> + +Add support for package commands redefining + +\<hook at usepackage\><<< +\def\:AtEndOfPackage{\expandafter\g@addto@macro\csname pkg:end:hook:\@currname.sty\endcsname} +\def\init:package:hooks#1{\expandafter\def\csname pkg:end:hook:#1\endcsname{}} +\def\package:hooks#1{\csname pkg:end:hook:#1\endcsname} +>>> + +\<hook at usepackage\><<< +\let\:onefilewithoptions\@onefilewithoptions +\def\@onefilewithoptions#1[#2][#3]#4{% +\init:package:hooks{#1.#4}% + \let\:temp\@reset@ptions + \def\@reset@ptions{% + \let\@reset@ptions\:temp + |<cats for usepackage|>\a:usepackage% + \a:usepackage:lthooks{#1}{#4} + |<recall usepackage cats|>}% + \def\:currentoptions{#2} +\:onefilewithoptions#1[#2][#3]{#4}\package:hooks{#1.#4}} +\def\a:usepackage{\input usepackage.4ht } +>>> +\<cats for usepackage\><<< +\edef\TivhTcats{% + \catcode`:=\the\catcode`:% + \catcode`@=\the\catcode`@}% +\catcode`\:=11 \catcode`\@=11 +>>> + +\<recall usepackage cats\><<< +\TivhTcats +>>> + +In October 2020, LaTeX kernel added new hook support. It can be used +for lot of stuff, including execution of code when a package is loaded. +It is more efficient and clean than the current TeX4ht system of package +handling. We can use it to execute code before and after package loading. + +Files that contain code that should be executed before the package is loaded +can be requested using PackageHooks configuration. It needs to be included +in the "add to usepackage" placeholder that is available in tex4ht-4ht.tex. + +Example: + +\Verbatim +\<add to usepackage\><<< +\Configure{PackageHooks}{packagename.sty}{packagename-hooks.4ht} +>>> + +\<packagename-hooks.4ht\><<< +% Some stuff executed before the package is loaded +\:AtEndOfPackage{ + % stuff executed after package is loaded + % macro redefinitions and so on +} +>>> \AddFile{9}{packagename-hooks} + +\EndVerbatim + +\<hook at usepackage\><<< +\NewConfigure{PackageHooks}[2]{\expandafter\def\csname package:hooks:#1\endcsname{\input #2}} +\def\a:usepackage:lthooks#1#2{% + \expandafter\ifcsname package:hooks:#1.#2\endcsname + \csname package:hooks:#1.#2\endcsname + \fi +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Second Pass} +%%%%%%%%%%%%%%%%%%%%%%%%% + + +The definitions of the configurations should be ready before +\''\Hinput' is called for loading their values. The cross references +also need to be resolved at that point (for the TITLE+, and possibly +other usages). + +\<second pass\><<< +|<html option|> |%should be first|% +|<html+nohtml common to TeX4ht and protex|> +|<utilities|> +|<cross references|> +\ifHtml + |<Hinput Configs|> + \Hinput{Preamble} \ht:special{t4ht.\:html} + |<scripting commands|> + |<html Configure's|> + \Hinput{tex4ht} + |<hook on end|> +\fi +|<divisions|> +|<files|> +|<cut points|> +|<imports|> +|<lists|> +|<blocs for tocs|> +\ifHtml + |<halign-based tables|> +\fi +|<streams|> +|<gif|> +|<fonts|> +|<math|> +|<core tex|> +|<at doc start|> |%after Preamble|% +\ifHtml + |<dvi-based hooks|> + |<more html tex|> +\fi +|<local env|> |% after accents, {\vrb:tt\`} in particular|% +\ifx\beginL\@undefined \else + \ifHtml + |<e tex|> + \Hinput{etex4ht} +\fi\fi +|<load sub tex4ht styles|> +|<debug|> +|<remove garbage|> +\ifHtml |<start html doc|> \fi |%should be last|% +>>> + + + +\Section{Copyright Note} + +\input tex4ht-cpright.tex + +\<copyright\><<< +% tex4ht.sty (|version), generated from |jobname.tex +% Copyright 2009-|the|year|empty TeX Users Group +% Copyright |CopyYear.1996. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + + +\Section{Category Codes} + + +\<save cat codes\><<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \ifnum \the\catcode`\ =10 \else + \catcode`\noexpand\ =\the\catcode`\ \fi + \ifnum \the\catcode`<=12 \else + \catcode`\noexpand <|=\the\catcode`<\fi + \ifnum \the\catcode`>=12 \else + \catcode`\noexpand >|=\the\catcode`>\fi + \ifnum \the\catcode`\?=12 \else + \catcode`\noexpand \?|=\the\catcode`\?\fi + \ifnum \the\catcode`+=12 \else + \catcode`\noexpand +|=\the\catcode`+\fi + \ifnum \the\catcode`*=12 \else + \catcode`\noexpand *|=\the\catcode`*\fi + \ifnum \the\catcode`;=12 \else + \catcode`\noexpand ;|=\the\catcode`;\fi + \ifnum \the\catcode`~=13 \else + \catcode`\noexpand ~|=\the\catcode`~\fi + \ifnum \the\catcode`$=3 \else + \catcode`\noexpand $|=\the\catcode`$\fi + \ifnum \the\catcode`&=4 \else + \catcode`\noexpand &|=\the\catcode`&\fi + \ifnum \the\catcode`\#=6 \else + \catcode`\noexpand \#|=\the\catcode`\#\fi + \catcode`\noexpand :|=\the\catcode`:% + \catcode`\noexpand "|=\the\catcode`"% + \catcode`\noexpand @|=\the\catcode`@% + \catcode`\noexpand _|=\the\catcode`_% + \catcode`\noexpand ^|=\the\catcode`^% + \catcode`\noexpand |||=\the\catcode`||% + \csname no:restore\endcsname + |<sp and sb for catcode 13|>% + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`~|=13 \catcode`$|=3 \catcode`&|=4 \catcode`\#|=6 +\catcode`\:|=11 \catcode`\@|=11 \catcode`;|=12 \catcode`\ |=10 +\catcode`\<|=12 \catcode`\>|=12 \catcode`+|=12 \catcode`*|=12 +\catcode`\?|=12 +|<record external sub-sup|> +\catcode`\^|=7 \catcode`\||=12 \catcode`"|=12 +>>> + + + + + + +\Section{Ifs} + + +\<ifs for TeX4ht\><<< + \def\:temp{\csname newif\endcsname} + \def\:tempa#1{% + \expandafter\ifx \csname #1\endcsname\relax + \expandafter\:temp \csname #1\endcsname + \fi} +|<new ifs|> + \def\:tempa#1{% + \expandafter\ifx \csname #1\endcsname\relax + \expandafter\:temp \csname #1\endcsname + \expandafter\expandafter\expandafter\expandafter\expandafter + \def\expandafter\expandafter\expandafter + \rmv:ifs\expandafter{\rmv:ifs + \expandafter\let \csname #1\endcsname |= \:UnDef} + \fi} + \let\rmv:ifs|=\empty +|<temp tex ifs|> +>>> + + +The temporary ifs are needed only for loading time to allow +TeX to scan material that will not be loaded. + + + +\<new ifs\><<< +\:tempa{if:latex} +>>> + +\Section{User File Requests} + +\<TeXivht = user file requests\><<< +\def\:usersty#1,#2|<par del|>{\def\:temp{#1}% + \ifx \:temp\empty \else + \expandafter\ifx \csname #1\endcsname\relax + \expandafter\let \csname #1\endcsname=\empty + \input #1 + \fi + \def\:temp{#2}\expandafter\:temp + \fi} +\edef\TeXivht{\expandafter\ifx \csname TeXivht\endcsname\relax + \else \noexpand\:usersty\TeXivht,|<par del|>\fi + \let\noexpand\TeXivht|=\noexpand\:UnDef + \let\noexpand\:usersty|=\noexpand\:UnDef } +>>> + + + + +\Section{Usepackage Interface for LaTeX} + + +\<usepackage for latex\><<< +\ifx \@currname\empty + |<requires /Preamble.../EndPreamble|> +\else + |<TeX4ht loaded with /usepackage|> +\fi +>>> + +Three ways for loading TeX4ht in LaTeX + +\List{a} +\item With \`'\usepackage{tex4ht}'. + +\Verbatim +\usepackage{tex4ht} +\begin{document} +\EndVerbatim + +It assumes a configuration file named \`latex4ht.cfg'. If none +is offered, the following code is available. + + +\Verbatim +\Preamble{html} + \begin{document} +\EndPreamble +\EndVerbatim + + +\item With \`'\usepackage[file-name]{tex4ht}'. As before, but with a + configuration file \`'file-name', instead of in \`'latex4ht.cfg'. + The extension \`'.cfg' is assumed, if none is provided. + +\item With inline (instead of off-line) configurartion file, e.g., +like \`'\input tex4ht.sty \Preamble{html} + \begin{document} +\EndPreamble' + +\EndList + +The indirection below on \''\enddocument' is needed for AmsTeX; there +the command is defined as outer. + + + +\<TeX4ht loaded with /usepackage\><<< +\ProvidesPackage{tex4ht} +\let\config:file|=\empty +|<options from /usepackage|> +\DeclareOption*{\load:cfg} +\ProcessOptions +\let\o:document|=\document +\def\document{% + |<check irregularities|>% + \ifdefined\AddToHook% + \def\document{\endgroup\o:document}% + % use new LaTeX hook system to execute \Configure{AtBeginDocument} + \AddToHook{begindocument/before}[tex4ht]{\csname a:AtBeginDocument\endcsname} + \AddToHook{begindocument/end}[tex4ht]{\csname b:AtBeginDocument\endcsname} + \else% + %\expandafter\let\csname enddocument\endcsname|=\empty + %\end{document}% + %\let\document|=\o:document + |<protect AtBeginDocument|>% + \let\document\o:document% + \fi% + \let\:latex@error|=\@latex@error + \def\@latex@error##1{\:latex@error{##1 in `\config:file'}}% + |<load latex /Preample|>% + \let\@latex@error|=\:latex@error +} +>>> + +\<check irregularities\><<< +\let\ht:empty|=\:UnDef +\def\:temp{}\ifx \:temp\empty \else + \gdef\:temp{}\ifx \:temp\empty \else + \:warning{Redefined \string\empty?} + \global\let\ht:empty|=\empty \gdef\empty{}% +\fi\fi +>>> + + + + +\<load latex /Preample\><<< +|</document recall sub/sup|>% +\ifx \config:file\empty + \def\:temp{|<default latex cfg file|>}% +\else + \def\:temp{|<user config file|>}% +\fi \:temp +>>> + + + + + + +\<early Configure\><<< +|<concat config|> +\NewConfigure{AtBeginDocument}[2]{% + \def\:temp{#1#2}\ifx \:temp\empty + \concat:config\a:AtBeginDocument{} + \concat:config\b:AtBeginDocument{}% + \else + \concat:config\a:AtBeginDocument{#1\relax}% + \concat:config\b:AtBeginDocument{#2\relax}% + \fi + \global\let\a:AtBeginDocument=\a:AtBeginDocument + \global\let\b:AtBeginDocument=\b:AtBeginDocument +} +\Configure{AtBeginDocument}{}{} +>>> + +\<protect AtBeginDocument\><<< +\let\:begindocumenthook|=\@begindocumenthook +\def\@begindocumenthook{\csname a:AtBeginDocument\endcsname +\:begindocumenthook \csname b:AtBeginDocument\endcsname }% +>>> + + + + +In optional parameters, the first one is assumed to be a +file name. A fake file name should be inserted, when we +want none. + +\<default latex cfg file\><<< +\ifx \config:opt\:UnDef + \edef\config:opt{\ifx \config:file\empty html\fi}\fi +\expandafter\Preamble\expandafter{\config:opt + }\csname begin\endcsname{document}\EndPreamble +>>> + +\''\begin' is defined as outer in texi, hence thr \''\csname'. + +\<default tex cfg file\><<< +\ifx \config:opt\:UnDef + \edef\config:opt{\ifx \config:file\empty html\fi}\fi +\expandafter\Preamble\expandafter{\config:opt + }\EndPreamble +>>> + + +\<user config file\><<< +\input \config:file\relax +>>> + +\<config options for /usepackage and httex\><<< +\ifx \config:opt\:UnDef + \let\:temp|=\Preamble +\else + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\:temp + \expandafter\expandafter\expandafter{% + \expandafter\config:opt\expandafter,\Preamble}% +\fi +\let\Preamble|=\empty +\expandafter\set:Preamble\:temp,|<par del|>% +>>> + + +The following removes duplications in \''\Preamble'. Important, in +particular, when 4ht configuration files are included in the +list of options. + +\<define for /Preamble\><<< +\def\set:Preamble#1,#2|<par del|>{% + \def\:temp{#1}\ifx \:temp\empty \else + \:CheckOption{#1}\if:Option \else + \ifx \Preamble\empty \def\Preamble{#1}% + \else \append:def\Preamble{,#1}% + \fi \fi \fi + \def\:temp{#2}\ifx \:temp\empty \let\set:Preamble|=\:UnDef + \else \expand:after{\set:Preamble#2|<par del|>}\fi +} +>>> + + +\''\ProcessOptions' calls \''\cfg:fl' repeatedly for each option. + +\List{} +\item{Empty, or Cfg File} + +\<options from /usepackage\><<< +\def\load:cfg{|<2nd option|>% + \def\:temp{\expandafter\cfg:fl\CurrentOption.|<par del|>}% + \def\:tempa{html}\ifx \:tempa\CurrentOption \let\:temp|=\load:cfg \fi + \def\:tempa{xhtml}\ifx \:tempa\CurrentOption \let\:temp|=\load:cfg \fi + \def\:tempa{htm}\ifx \:tempa\CurrentOption \let\:temp|=\load:cfg \fi + \def\:tempa{htm3}\ifx \:tempa\CurrentOption \let\:temp|=\load:cfg \fi + \def\:tempa{htm4}\ifx \:tempa\CurrentOption \let\:temp|=\load:cfg \fi + \def\:tempa{htm5}\ifx \:tempa\CurrentOption \let\:temp|=\load:cfg \fi + \:temp +} +\def\cfg:fl#1.#2|<par del|>{\edef\:tempa{#2}\edef\config:file{% + \CurrentOption \ifx \:tempa\empty .cfg\fi}} +>>> + +\<options from /tex4ht\><<< +\def\:temp#1,#2|<par del|>{% + \def\:temp{\:tempc{#1}#1.|<par del|>}% + \def\:tempb{#1}\ifx \:tempb\empty \let\:temp|=\relax \fi + \def\:tempa{html}\ifx \:tempa\:tempb \let\:temp|=\relax \fi + \def\:tempa{xhtml}\ifx\:tempa\:tempb \let\:temp|=\relax \fi + \def\:tempa{htm}\ifx \:tempa\:tempb \let\:temp|=\relax \fi + \def\:tempa{htm3}\ifx \:tempa\:tempb \let\:temp|=\relax \fi + \def\:tempa{htm4}\ifx \:tempa\:tempb \let\:temp|=\relax \fi + \def\:tempa{htm5}\ifx \:tempa\:tempb \let\:temp|=\relax \fi + |<extract tex4ht options|>% +} +>>> + + +\item{First Option for /Preamble} + +\<2nd option\><<< +\def\load:cfg{\let\config:opt|=\CurrentOption + |<options 3...|>}% +>>> + +\item{Non-First Option for /Preamble} + +\<options 3...\><<< +\def\load:cfg{\edef\config:opt{\config:opt,\CurrentOption}}% +>>> + +\EndList + + + +\def\gt:laopt#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty + \else \cfg:fl#1.|<par del|>\fi + \def\:temp{#2}\ifx \:temp\empty \else \let\config:opt|=\:temp \fi} + + + + +The following case arises for loading the +file with the \`'\input tex4ht.sty' command. + +\<requires /Preamble.../EndPreamble\><<< +\def\:temp{\ifx \HCode\:UnDef + \:warning{Missing \string\Preamble...\string\EndPreamble?}\fi} +\edef\:tempa{% + \noexpand\expandafter + \noexpand\expandafter + \noexpand\expandafter + \noexpand \def + \noexpand\expandafter + \noexpand\expandafter + \noexpand\expandafter + \expandafter\noexpand\csname enddocument\endcsname + \noexpand\expandafter + \noexpand\expandafter + \noexpand\expandafter + {\noexpand \expandafter + \noexpand \:temp + \expandafter\noexpand \csname enddocument\endcsname + }% +} \:tempa +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Utilities} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<html utilities\><<< +\csname newskip\endcsname\tmp:dim +>>> + + +\<early utilities\><<< +|<def Configure|> +|<early Configure|> +>>> + + + + +\<utilities\><<< + |<general utilities|> +\ifHtml |<html utilities|> \fi +>>> + +There are files, like mathml.4ht, that need to be loaded piecewise +because the configuration commands might vary during the loading time. +For instance, the \`'\Configure{cases}' uses two parameters in plain +tex, and the go up into four parameters in amstex. + +\<first pass\><<< +\let\:Hincl|=\empty +\def\Hinclude[#1]#2{\xdef\:Hincl{\:Hincl{#1}{#2}}} +>>> + + + +The following extracts \''\Hinclude' frm preamble. For instance, +\''\Preamble{mathml.4ht,foo.4ht,...}' is the same as +\''\Hinclude[*]{mathml.4ht}\Hinclude{foo.4ht}\Preamble{...}'. The +file extensions must be \''.4ht'. + +\<extract Hinclude\><<< +\def\:temp####1.4ht####2|<par del|>{\def\:temp{####2}% + \ifx \:temp\empty + \def\:temp{th4}\ifx \:temp\Preamble \else + \ht:special{t4ht@[}% + \input tex4ht.4ht \ht:special{t4ht@]}% + \fi \fi}% +\expandafter\:temp\Preamble.4ht|<par del|>% +\expandafter\xtrct:hin\Preamble,,|<par del|>% +|<redefine Hinclud|>% +>>> + + + +\<define for /Preamble\><<< +\def\xtrct:hin#1,{\def\:temp{#1}\ifx \:temp\empty + \def\xtrct:hin##1|<par del|>{\let\xtrct:hin|=\:UnDef}\else + \def\:tempa##1.4ht##2|<par del|>{% + \def\:temp{\Hinclude[*]{##1.4ht}}\def\:tempa{##2}}% + \expandafter\:tempa\:temp .4ht|<par del|>% + \ifx \:tempa\empty \else \:temp \fi + \fi \xtrct:hin} +>>> + + +Until \''\Preamble' is encountered, \''\Hinclude' requrests +`vertiv=cal' 4ht files (html4,html0, mathml, unicode,...), during +\''\Preamble' if requests `horizontal' files (latex, plain,etc), and +after the \''\Preamble' it is undefined. + + + +\<redefine Hinclud\><<< +\:Hinclude +>>> + +\<define for /Preamble\><<< +\def\Use:N{0} +\let\:USE|=\empty +\def\:Use#1{\:USe #1,,\HAdvance\Use:N |by 1 } +\def\:USe#1,{\def\:temp{#1}\ifx\:temp\empty + \edef\:temp{\noexpand\append:def\noexpand\:USE{\let\expandafter + \noexpand\csname Use:\Use:N\endcsname\noexpand\:UnDef}}\:temp + \else + \edef\:temp{\noexpand\append:def\noexpand\:USE{\expandafter + \noexpand\csname Use:\Use:N\endcsname}}\:temp + \append:def\:USE{{#1}}% + \expandafter\:USe\fi} +\def\:Hinclude{% + \def\Hinclude{\afterassignment\:Use + \expandafter\def\csname Use:\Use:N\endcsname ####1}% + \def\:Hinclude{\ifx \:USE \empty + \let\Hinclude|=\:UnDef + \let\:Hinclude|=\:UnDef + \let\:Use|=\:UnDef + \let\:USe|=\:UnDef + \let\:USE|=\:UnDef + \else + \pend:def\:USE{\let\:USE|=\empty}% + \expand:after{\:USE \:Hinclude}\fi}% +} +>>> + + + + +Do we want the push/pop below? + + +\<Hinput Configs\><<< +\let\:Hin|=\empty +\def\Hinput#1{\PushStack\:Hinputs\:Hin \def\:Hin{#1}% + \expandafter\:Hinput\:Hincl{}{}\PopStack\:Hinputs\:Hin} +\def\:Hinput#1#2{\def\:temp{#2}\ifx \:temp\empty \else + \let\:temp|=\empty \def\:tempa{*}\def\:tempb{#1}% + \ifx \:tempa\:tempb \def\:temp{\input #2}% + \else \ifx \:Hin\:tempb \def\:temp{\input #2}% + \else \def\:tempb{#1.4ht}\ifx \:Hin\:tempb \def\:temp{\input #2}% + \fi\fi\fi + \expand:after{\:temp + |<system NewConfigure|>\:Hinput}\fi} +>>> + + + + + +\<html utilities\><<< +\def\exit:ifnot#1{% + \edef\:temp{\def\noexpand\:temp####1,\:Hin,####2..//{% + \noexpand\if !####2!\noexpand\else + \noexpand\expandafter\noexpand\:gobble\noexpand\fi + }\noexpand\:temp,#1,\:Hin,..//}\:temp\endinput } +>>> + +\<html utilities\><<< + \catcode`\@|=0 + \catcode`\\|=12 +@def@ConfigureHinput{% + @def@:temp##1{% + @def@:temp{##1}@ifx@:temp@:Hin @else @:tempb @fi }% + @def@:tempb{@fi@bgroup @no:catcodes0{255}{12}% + @no:catcodes{101}{101}{11}% + @no:catcodes{109}{109}{11}% + @no:catcodes{112}{112}{11}% + @no:catcodes{116}{116}{11}% + @no:catcodes{121}{121}{11}% + @:tempa} + @def@:tempa##1\empty\empty\empty\empty\empty\empty{@egroup}% + @:temp +} + @catcode`@\=0 + \catcode`\@=11 +>>> + + + + + +\<early utilities\><<< +\catcode`\#=12 \def\#{#} \catcode`\#=6 +>>> + +The starred command is for immediate expansion + +Can we avoid the following file? + +\<general utilities\><<< +\immediate\openout15=\jobname.tmp +\bgroup \escapechar=`\\ + \immediate\write15{\def\string\Jobname{\jobname}} +\egroup +\immediate\closeout15 +\input \jobname.tmp + +\def\get:input#1{% + \openin15=#1 + \ifeof15 \closein15 \:warning{No file #1}% + \else \closein15 \expand:after{\input #1 }% + \fi} +>>> + + +\<general utilities\><<< +\def\if:notempty#1#2{% + \def\:temp{#1}\ifx \:temp\empty \else \expand:after{#2}\fi } +>>> + + +\Chapter{Configurations} + + +\Section{Contributes} + + +\<early utilitiesNO\><<< +\long\def\Contribute#1#2{% + \expandafter\ifx \csname :#1:\endcsname\relax + \:warning{\string\Contribute{#1}?}\fi + \long\expandafter\def\csname :#1:\endcsname{#2}} +>>> + +\<utilitiesNO\><<< +\long\def\Contribute#1#2{% + \expandafter\ifx \csname :#1:\endcsname\relax + \:warning{\string\Contribute{#1}?}\else + \long\expandafter\def\csname :#1:\endcsname{#2}\fi } +>>> + + +\Section{Configurations} + + +\SubSection{Configure} + + + +The following assumes a definition \`'\Odef\c:#2:[#1]...' + +\<def Configure\><<< +\def\Configure#1{% + \expandafter\ifx \csname c:#1:\endcsname\relax + \:warning{\string\Configure{#1}?} + \fi + \csname c:#1:\endcsname} +\let\c:def|=\def +\let\d:def|=\def +>>> + + + + + + + + + + +\SubSection{NewConfigure} + + + + + + + +\<def Configure\><<< +\def\NewConfigure#1{\def\:tempa{#1}\futurelet\:temp\Nw:cnf} +\def\Nw:cnf{\ifx [\:temp \edef\:tempa{\noexpand\N:wCnfga{\:tempa}}\else + \edef\:tempa{\noexpand\N:wCnfgb{\:tempa}}\fi \:tempa} +\def\N:wCnfga#1[#2]{% + \edef\:temp{|</long/def/c:...:|>}\:temp } +\def\N:wCnfgb#1#2{% + \edef\:temp{|</long/def/c:...:|>{\New:Conf{\aNew:Conf#1}{####1}% + \ifnum #2>1 \New:Conf{\bNew:Conf#1}{####2}\fi + \ifnum #2>2 \New:Conf{\cNew:Conf#1}{####3}\fi + \ifnum #2>3 \New:Conf{\dNew:Conf#1}{####4}\fi + \ifnum #2>4 \New:Conf{\eNew:Conf#1}{####5}\fi + \ifnum #2>5 \New:Conf{\fNew:Conf#1}{####6}\fi + \ifnum #2>6 \New:Conf{\gNew:Conf#1}{####7}\fi + \ifnum #2>7 \New:Conf{\hNew:Conf#1}{####8}\fi + \ifnum #2>8 \New:Conf{\iNew:Conf#1}{####9}\fi + }}\:temp} +>>> + +\</long/def/c:...:\><<< +\long\def\expandafter + \noexpand\csname c:#1:\endcsname####1% + \ifnum #2>1 ####2\fi \ifnum #2>2 ####3\fi + \ifnum #2>3 ####4\fi \ifnum #2>4 ####5\fi + \ifnum #2>5 ####6\fi \ifnum #2>6 ####7\fi + \ifnum #2>7 ####8\fi \ifnum #2>8 ####9\fi +>>> + + + + + +\<def Configure\><<< +\def\New:Conf#1{\noexpand\c:def + \expandafter\noexpand\csname#1\endcsname}% +\def\c:NewConfigure:#1#2#3#4#5#6#7#8#9{% + \def\aNew:Conf{#1}\def\bNew:Conf{#2}\def\cNew:Conf{#3}% + \def\dNew:Conf{#4}\def\eNew:Conf{#5}\def\fNew:Conf{#6}% + \def\gNew:Conf{#7}\def\hNew:Conf{#8}\def\iNew:Conf{#9}} +|<system NewConfigure|> +>>> + + +After each loading of the vertical 4ht files, the coefficients +of newconfigure assume their initial definitions. + +\<system NewConfigure\><<< +\Configure{NewConfigure}{a:}{b:}{c:}{d:}{e:}{f:}{g:}{h:}{i:}% +>>> + + + +\Section{Tracing Configurations} + + + +See also LaTeX part + + +\<trace configurations\><<< +\:CheckOption{hooks++} \if:Option + |<trace+ comamnds|> + \def\edit:p#1#2{\let#2|=\empty \:gobble}% +\else \:CheckOption{hooks+} \if:Option + \def\trc:wrt{\writesixteen} + \else \:CheckOption{hooks} \if:Option + \let\trc:wrt|=\:gobble + \fi\fi + \if:Option + |<trace commands|> + \let\edit:p|=\empty +\fi \fi +\if:Option + |<trace and trace+|> + \NewConfigure{hooks}[4]{\def\a:trc{#1}\def\b:trc{#2}% + \def\c:trc{#3}\def\d:trc{#4}% + \ifx \a:trc\empty \def\a:trc##1\b:trc{\b:trc}\fi + \ifx \c:trc\empty \def\c:trc##1\d:trc{\d:trc}\fi + } + \def\d:def{\advance\tmp:cnt |by1\def} + \Configure{hooks}{}{}{}{} +\else + \let\c:hooks:|=\:gobbleIV + |<no trace and trace+|> +\fi +>>> + +\<trace+ comamnds\><<< + \pend:defI\Configure{\tmp:cnt|=0 + \long\def\c:def####1####2{\advance\tmp:cnt |by1 + |<tempb = number of parameters|> + \def####1{####2}% + \edef\:temp{\noexpand\pend:def\noexpand####1{\noexpand\ifx + \noexpand\EndPicture\noexpand\:UnDef \hbox{\noexpand\a:trc + ##1\the\tmp:cnt :\:tempb\noexpand\b:trc}\noexpand\fi}}\:temp + \edef\:temp{\noexpand\append:def\noexpand####1{\noexpand\ifx + \noexpand\EndPicture\noexpand\:UnDef\hbox{\noexpand\c:trc + ##1\the\tmp:cnt :\:tempb\noexpand\d:trc}\noexpand\fi}}\:temp + }} +>>> + + +\<trace commands\><<< +\pend:defI\Configure{\tmp:cnt|=0 + \long\def\c:def####1####2{\advance\tmp:cnt |by1 + |<tempb = number of parameters|> + \def####1{####2}% + \ifx ####1\empty + \edef\:temp{\noexpand\pend:def\noexpand####1{\hbox{\noexpand + \a:trc ##1\the\tmp:cnt :\:tempb\noexpand\b:trc}}}\:temp + \edef\:temp{\noexpand\append:def\noexpand####1{\hbox{\noexpand + \c:trc ##1\the\tmp:cnt :\:tempb\noexpand\d:trc}}}\:temp + \else + \trc:wrt{...##1\the\tmp:cnt....\meaning####1}% + \fi +}} +>>> + +\<trace and trace+\><<< +\edef\:tempb{\def\noexpand + \par:N##1\string :##2->##3////{\noexpand\par:NN?##2//}} +\:tempb +\def\par:NN#1#2//{\def\:tempb{#2}\ifx\:tempb\empty + \def\:tempb{#1}\else \def\:tempb{\par:NN#2//}\expandafter\:tempb\fi} +>>> + +\<tempb = number of parameters\><<< +\edef\:tempb{\expandafter \meaning\csname c:##1:\endcsname}% +\expandafter\par:N \:tempb////% +>>> + + + + + +\Section{Editing and Xml} + + + + + +Note that \`'edit' is not the option \`'tty'! + + + +\<trace configurations\><<< +\def\Tg<#1>{% + \expandafter\ifx + \csname\try:tagend <#1</|<par del|>\endcsname\is:empty + \:tagend#1|<par del|>\else + \expandafter\ifx + \csname\try:tagempty #1>/>|<par del|>\endcsname\is:empty + \:tag{#1}\else \:tagempty #1>\fi\fi} +\def\try:tagend#1</#2|<par del|>{#1is:empty} +\def\try:tagempty#1/>#2|<par del|>{#2is:empty} +\def\is:empty{\empty\empty} +\:CheckOption{edit} \if:Option + |<tg and TG|> + |<edit* option|> +\else + |<no-edit tg and TG|> + \:CheckOption{verify}\if:Option\else \:CheckOption{verify+}\fi + \if:Option + |<edit- code|> + \else + |<no-edit option|> + \fi +\fi +>>> + +The \''\tg' is also part of mex. + +\<tg and TG\><<< +% \def\tg<#1>{\c:edit#1\d:edit} +\def\TG<#1>{\a:edit#1\b:edit} +>>> + +\<no-edit tg and TG\><<< +% \def\tg<#1>{<#1>} +\def\TG<#1>{\HCode{<#1>}} +>>> + + + +The \`'edit+' is a pseudo-browser mode showing a possible +view of the code. + +\<no-edit option\><<< +\def\:tag#1{\hbox{\HCode{<#1>}}} +\def\:tagend#1#2|<par del|>{\hbox{\HCode{</#2>}}} +\def\:tagempty#1/>{\hbox{\HCode{<#1/>}}} +\expandafter\def\csname c:<:\endcsname#1>{\:gobbleII} +>>> + + +The \`'\hbox' above is to avoid creating extra paragraphs with +extra tags, which can also introduce extra paragraph ends. + +The definiions of \''\c:<...>:' are broken into two parts +to avoid the spaces after the closing angular bracket \''>'. + +\<edit+ option\><<< +\def\tag:of#1 #2|<par del|>{#1} +\def\pl:s{+} +\def\:tag#1{\VerifyOpen{#1}\expandafter\ifx + \csname A:\tag:of#1 |<par del|>\endcsname\pl:s\else + \hbox{\a:edit\HCode{#1}\b:edit}% + \fi \csname B:\tag:of#1 |<par del|>\endcsname + } +\def\:tagend#1#2|<par del|>{\VerifyClose{#2}\expandafter\ifx + \csname A:/\tag:of#2 |<par del|>\endcsname\pl:s\else + \hbox{\a:edit\HCode{/#2}\b:edit}% + \fi \csname B:/\tag:of#2 |<par del|>\endcsname + } +\def\:tagempty#1/>{\VerifyEmpty{#1}\expandafter\ifx + \csname A:\tag:of#1 |<par del|>/\endcsname\pl:s\else + \hbox{\a:edit\HCode{#1/}\b:edit}% + \fi \csname B:\tag:of#1 |<par del|>/\endcsname + } +\expandafter\def\csname c:<:\endcsname#1>{\edef\:temp{#1}\:gat} +\long\def\:gat#1#2{\expandafter + \def\csname A:\:temp\endcsname{#1}% + \expandafter\def\csname B:\:temp\endcsname{#2}} +\NewConfigure{edit}{4} +\Configure{edit}{\HCode{<strong class="edit"><}} + {\HCode{></strong>}} +>>> + + +\<edit option\><<< +\def\tag:of#1 #2|<par del|>{#1} +\def\:tag#1{\csname A:\tag:of#1 |<par del|>\endcsname + \VerifyOpen{#1}\a:edit\HCode{#1}\b:edit + \csname B:\tag:of#1 |<par del|>\endcsname + } +\def\:tagend#1#2|<par del|>{\csname A:/\tag:of#2 |<par del|>\endcsname + \VerifyClose{#2}\a:edit\HCode{/#2}\b:edit + \csname B:/\tag:of#2 |<par del|>\endcsname + } +\def\:tagempty#1/>{\csname A:\tag:of#1 |<par del|>/\endcsname + \VerifyEmpty{#1}\a:edit\HCode{#1/}\b:edit + \csname B:\tag:of#1 |<par del|>/\endcsname + } +\expandafter\def\csname c:<:\endcsname#1>{\edef\:temp{#1}\:gat} +\long\def\:gat#1#2{\expandafter + \def\csname A:\:temp\endcsname{#1}% + \expandafter\def\csname B:\:temp\endcsname{#2}} +\NewConfigure{edit}{4} +\Configure{edit}{\HCode{<strong><}}{\HCode{></strong>}} + {<strong><}{></strong>} +>>> + +\<edit- code\><<< +\def\:tag#1{\VerifyOpen{#1}\hbox{\HCode{<#1>}}} +\def\:tagend#1#2|<par del|>{\VerifyClose{#2}\hbox{\HCode{</#2>}}} +\def\:tagempty#1/>{\VerifyEmpty{#1}\hbox{\HCode{<#1/>}}} +\expandafter\def\csname c:<:\endcsname#1>{\:gobbleII} +>>> + + +The \`'\hbox' above is to avoid creating extra paragraphs with +extra tags, which can also introduce extra paragraph ends. + + + + +\<edit* option\><<< +\def\tag:of#1 #2|<par del|>{#1} +\def\mn:s{-} +\def\:tag#1{\VerifyOpen{#1}\expandafter\ifx + \csname A:\tag:of#1 |<par del|>\endcsname\mn:s\else + \csname A:\tag:of#1 |<par del|>\endcsname + \hbox{\a:edit\HCode{#1}\b:edit}% + \fi \csname B:\tag:of#1 |<par del|>\endcsname + } +\def\:tagend#1#2|<par del|>{\VerifyClose{#2}\expandafter\ifx + \csname A:/\tag:of#2 |<par del|>\endcsname\mn:s\else + \csname A:/\tag:of#2 |<par del|>\endcsname + \hbox{\a:edit\HCode{/#2}\b:edit}% + \fi \csname B:/\tag:of#2 |<par del|>\endcsname + } +\def\:tagempty#1/>{\VerifyEmpty{#1}\expandafter\ifx + \csname A:\tag:of#1 |<par del|>/\endcsname\mn:s\else + \csname A:\tag:of#1 |<par del|>/\endcsname + \hbox{\a:edit\HCode{#1/}\b:edit}% + \fi \csname B:\tag:of#1 |<par del|>/\endcsname + } +\expandafter\def\csname c:<:\endcsname#1>{\edef\:temp{#1}\:gat} +\long\def\:gat#1#2{\expandafter + \def\csname A:\:temp\endcsname{#1}% + \expandafter\def\csname B:\:temp\endcsname{#2}} +\NewConfigure{edit}{4} +>>> + + +\Section{Logical commands} + +\<html Configure's\><<< +\def\InsertTagStart#1#2{% + \edef\local:properties{\ifx\relax#2\relax\else\space#2\fi} + \HCode{<\get:tag{#1}\get:block:properties{#1}\local:properties>}% +} +\def\InsertTagEnd#1{\HCode{</\get:tag{#1}>}} + +\long\def\InlineElementStart#1#2{\InsertTagStart{#1}{#2}} +\long\def\InlineElementEnd#1{\InsertTagEnd{#1}} + +\long\def\BlockElementStart#1#2{\ifvmode\IgnorePar\fi\EndP\InsertTagStart{#1}{#2}} +\long\def\BlockElementEnd#1{\ifvmode\IgnorePar\fi\EndP\InsertTagEnd{#1}} + +% define default values for a new logical block +\def\NewLogicalBlock#1{% + \SetTag{#1}{span}% + \expandafter\def\csname #1:properties\endcsname{} +} + +\def\SetTag#1#2{\expandafter\xdef\csname #1:tagname\endcsname{#2}} +\def\get:tag#1{\expandafter\expandafter\csname #1:tagname\endcsname} + +\def\SetBlockProperty#1#2#3{% + \expandafter\ifcsname #1:property:#2\endcsname\else% + \expandafter\edef\csname #1:properties\endcsname{\csname #1:properties\endcsname\space\csname #1:property:#2\endcsname } + \fi% + \expandafter\def\csname #1:property:#2\endcsname{#2="#3"} +} + +\def\get:block:properties#1{% +\expandafter\csname #1:properties\endcsname% +} + +>>> + +\Section{Verify Elements} + +\<html Configure's\><<< +\:CheckOption{verify} \if:Option + |<chk no trace|> +\else \:CheckOption{verify+} \if:Option + |<chk trace|> +\fi \fi +\if:Option + |<check utilities|> +\else + \let\VerifyOpen|=\:gobble + \let\VerifyClose|=\:gobble + \let\VerifyEmpty|=\:gobble + \long\def\Verify#1\EndVerify{} + \def\trace:chk#1 #2|<par del|>{} +\fi +>>> + +\<chk no trace\><<< +\let\:chk:trc|=\:gobble +>>> + +\<chk trace\><<< +\def\:chk:trc#1{% + \writesixteen{\the\inputlineno\space(\:ChkLevel) #1}} +>>> + +The \`'\PushStack\:CHK\empty' is needed because whenever a pop occurs, +we temporarily take one more pop to check who was the old parent. + +\<check utilities\><<< +\HAssign\:ChkLevel|=0 +\let\:CurrentChk|=\empty +\PushStack\:CHK\empty +\def\VerifyOpen#1{\Protect\trace:chk#1 |<par del|>} +\def\trace:chk#1 #2|<par del|>{% + \gHAdvance\:ChkLevel |by 1 \:chk:trc{Open......#1}% + \expandafter\ifx \csname #1Level:\endcsname\relax + \expandafter\gHAssign\csname #1Level:\endcsname|=0 + \fi + \expandafter\gHAdvance\csname #1Level:\endcsname |by 1 + \PushStack\:CHK{#1}% + \expandafter\ifx \csname \:CurrentChk +#1\endcsname\relax + \expandafter\gdef \csname \:CurrentChk +#1\endcsname{}% + \writesixteen{\the\inputlineno. + --- warning --- \:CurrentChk\space --> #1 ?}% + \fi + \xdef\:CurrentChk{#1}% +} +\def\VerifyClose#1{\Protect\trace:endchk#1 |<par del|>} +\def\trace:endchk#1 #2|<par del|>{% + \:chk:trc{Close......#1}% + \expandafter\ifx \csname #1Level:\endcsname\relax + \writesixteen{\the\inputlineno. + --- warning --- </#1> witout <#1>}% + \expandafter\gHAssign\csname #1Level:\endcsname|=0 + \else + \expandafter\gHAdvance\csname #1Level:\endcsname |by -1 + \gHAdvance\:ChkLevel |by -1 + \PopStack\:CHK\:temp + \edef\:tempa{#1}% + \ifx \:temp\:tempa + \PopStack\:CHK\:CurrentChk + \PushStack\:CHK\:CurrentChk + \else + \writesixteen{\the\inputlineno. + --- warning --- </\:temp> instead of </#1>}% + \fi + \fi +} +\def\VerifyEmpty#1{\Protect\trace:emptychk#1 |<par del|>} +\def\trace:emptychk#1 #2|<par del|>{% + \:chk:trc{Empty......#1}% + \expandafter \ifx \csname \:CurrentChk +#1\endcsname\relax + \expandafter\gdef \csname \:CurrentChk +#1\endcsname{}% + \writesixteen{\the\inputlineno. + --- warning --- \:CurrentChk\space --> #1 ?}% + \fi +} +\begingroup + \catcode`\^|=7 + \gdef\Verify{\bgroup \catcode`\ |=9 \catcode`\^^M|=9 \:dtd} +\endgroup +\def\:dtd#1\EndVerify{\egroup\dtd:rule#1,-->,} +\def\dtd:rule#1-->#2,{\def\:temp{#1#2}\ifx \:temp\empty\else + \expandafter\gdef \csname #1+#2\endcsname{}% + \expandafter\dtd:rule + \fi} +>>> + + +\Chapter{Html Environment} + +\Section{Initiating} + + +The \`'\special{t4ht.\:html}' gives the extension to the root file. To +be recognized, Must appear before the openning of any file, and +outputing of any content. + +\<html option\><<< +\def\:tempa#1#2#3#4|<par del|>{#1#2#3} +\:CheckOption{htm} \if:Option + \edef\:html{\expandafter\:tempa\:html\empty\empty|<par del|>} + |<base 2 names for htm|> +\else \:CheckOption{htm5} \if:Option + \edef\:html{\expandafter\:tempa\:html\empty\empty|<par del|>} + |<base 5 names for htm|> +\else \:CheckOption{htm4} \if:Option + \edef\:html{\expandafter\:tempa\:html\empty\empty|<par del|>} + |<base 4 names for htm|> +\else \:CheckOption{htm3} \if:Option + \edef\:html{\expandafter\:tempa\:html\empty\empty|<par del|>} + |<base 3 names for htm|> +\else \:CheckOption{xhtml} \if:Option + \let\j:bname|=\jobname +\else \:CheckOption{html} + \if:Option \let\j:bname|=\jobname \fi +\fi \fi \fi \fi \fi +\if:Option + |% \ht:special{t4ht.\:html} |% + |<default html env|> + |<disregard html:par from protex|> + |<html TeX4ht protex|> +\fi +>>> + + + +\<first pass\><<< +\NewConfigure{ext}[1]{% + \def\:temp##1ext=##2,##3|<par del|>{% + \if !##2!\edef\:html{#1}% + \else \edef\:html{##2}\fi}% + \expandafter\:temp\Preamble ,ext=,|<par del|> +} +\Configure{ext}{html} +>>> + +\<base 2 names for htm\><<< +\def\:temp#1#2#3|<par del|>{\def\j:bname{#1\ifx ?#2\else #2\fi}} +\expandafter\:temp \jobname ?|<par del|> +>>> + +\<base 3 names for htm\><<< +\def\:temp#1#2#3#4|<par del|>{\def\j:bname{#1\ifx ?#2\else + #2\ifx ?#3\else #3\fi\fi}} +\expandafter\:temp \jobname ??|<par del|> +>>> + +\<base 4 names for htm\><<< +\def\:temp#1#2#3#4#5|<par del|>{\def\j:bname{#1\ifx ?#2\else + #2\ifx ?#3\else #3\ifx ?#4\else #4\fi\fi\fi}} +\expandafter\:temp \jobname ???|<par del|> +>>> + + +\<base 5 names for htm\><<< +\def\:temp#1#2#3#4#5#6|<par del|>{\def\j:bname{#1\ifx ?#2\else + #2\ifx ?#3\else #3\ifx ?#4\else #4\ifx ?#5\else #5\fi\fi\fi\fi}} +\expandafter\:temp \jobname ????|<par del|> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{\TeX{} Parameters} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\`'\html:rightskip' is already defined in AlProTex, but we need it early here. + +\<def /HtmlEnv\><<< +\def\html:rightskip{\rightskip|=\z@ plus 0.5\hsize minus0.5\hsize } +\def\HtmlEnv{% + \html:rightskip |<html penalties|>% + \def\magnification{% + \def\:temp{\:warning{Insert \string\magnification + =\the\tmp:cnt\space before tex4ht}}% + \afterassignment\:temp\tmp:cnt}% + \ht:everypar{\HtmlPar}} +\let\HtmlPar|=\empty +>>> + + + +The \''\output' variable might hold a script +with +a \''\par', as is the case in LaTeX. + +\<def /HtmlEnv\><<< +\edef\:temp{% + \output={\noexpand\SaveEverypar \noexpand\ht:everypar{}\the\output + \noexpand\RecallEverypar}} +\:temp +>>>> + + + + +% \let\HtmlENV|=\:gobble + +Inhibit streching and shrinking of spaces between words to help tex4ht, +and let flexibility in line length to compensate for fixed spaces and +discouraged word breaks. + +\<html penalties\><<< +\frenchspacing |%no extra space after punctuation marks|% +\let\nonfrenchspacing|=\relax +\spaceskip|=\z@ |%override inter word glue|% +\xspaceskip|=\z@ |%same but for words ending with punctuation marks|% +\linepenalty|=0 |%charged on each line break|% +\adjdemerits|=0 |%charged on adj lines of diff length|% +\pretolerance|=10000 |%max penalty pts per line without hyphenation|% +\hyphenpenalty|=10000 |%for line break within word|% +\exhyphenpenalty|=10000|%for line break after hyphen|% +\clubpenalty|=0 |%for page break after first line of parag|% +\widowpenalty|=0 |%for page break before last line of parag|% +\interlinepenalty|=50 |%for page break within a paragraph|% +\displaywidowpenalty|=0 +\predisplaypenalty|=-10 +\postdisplaypenalty|=1000 +\abovedisplayskip|=30pt plus 10pt +\belowdisplayskip|=\abovedisplayskip +\abovedisplayshortskip|=\abovedisplayskip +\belowdisplayshortskip|=\abovedisplayskip +>>> + +We don't want a page break after a display, because the +\''\aftergroup' material for the equation may be detached from the +equation. A possible prolem for math into figures. + + +\<default html env\><<< +|<def /HtmlEnv|> +\edef\:temp{\meaning\everypar} +\edef\:tempa{\string\everypar} +\ifx \:temp\:tempa + \let\ht:everypar|=\everypar +\else + % LaTeX kernel will patch \everypar in future releases, + % so this test will always fail. We should define \ht:everypar + % anyway, paragraph handling would fail otherwise + \let\ht:everypar|=\everypar + \:warning{nonprimitive \string\everypar} +\fi +\edef\NoHtmlEnv{% + \sfcode `\noexpand\noexpand\noexpand\.3000 |%nonfrenchspacing|% + \sfcode `\noexpand\noexpand\noexpand\?3000 + \sfcode `\noexpand\noexpand\noexpand\!3000 + \sfcode `\noexpand\noexpand\noexpand\:2000 + \sfcode `\noexpand\noexpand\noexpand\;1500 + \sfcode `\noexpand\noexpand\noexpand\,1250 + \rightskip|=\the\rightskip + \spaceskip|=\the\spaceskip + \xspaceskip|=\the\xspaceskip + \linepenalty|=\the\linepenalty + \adjdemerits|=\the\adjdemerits + \pretolerance|=\the\pretolerance + \hyphenpenalty|=\the\hyphenpenalty + \exhyphenpenalty|=\the\exhyphenpenalty + \clubpenalty|=\the\clubpenalty + \widowpenalty|=\the\widowpenalty + \interlinepenalty|=\the\interlinepenalty + \displaywidowpenalty|=\the\displaywidowpenalty + \predisplaypenalty|=\the\predisplaypenalty + \postdisplaypenalty|=\the\postdisplaypenalty + \abovedisplayskip|=\the\abovedisplayskip + \belowdisplayskip|=\the\belowdisplayskip + \abovedisplayshortskip|=\the\abovedisplayshortskip + \belowdisplayshortskip|=\the\belowdisplayshortskip + \noexpand\ht:everypar{\noexpand\the\noexpand\ht:everypar}} +>>> + + +\<activate html env\><<< +\edef\NoHtmlEnv{\NoHtmlEnv}% +\append:def\NoHtmlEnv{\SUBOff \SUPOff}\HtmlEnv +>>> + +\<html utilities\><<< +\let\:noindent|=\noindent +\def\noindent{\ifx \EndPicture\:UnDef + \ifvmode \IgnoreIndent\leavevmode\fi + \else \:noindent \fi} +>>> + +\Section{Paragraphs} + +We want to push specials at start of lines, and merge the space before +and after specials. + +\<html utilities\><<< +\let\skip:Par|=\empty +>>> + + + + +\<html paragraph breaks at entry to file\><<< +\def\HtmlPar{\HtmlPar:Off{% + \if:nopar \ShowPar \ShowIndent + \ifx \skip:Par\empty\else \hskip -\parindent \skip:Par\fi + \else + \if:removeindent \ShowIndent \hskip -\parindent \a:Par + \else + \ifdim \parindent>\z@ \hskip -\parindent \fi + \html:par + \ifdim \parindent>\z@ \hskip \parindent \fi + \fi\fi \relax +}}% +>>> + + +\<general utilities\><<< +\def\IgnorePar{\ifx \EndPicture\:UnDef \Protect\gl:nopartrue \fi} +\def\ShowPar{\ifx \EndPicture\:UnDef \Protect\gl:noparfalse \fi} +\def\IgnoreIndent{\ifx \EndPicture\:UnDef + \Protect\gl:removeindenttrue \fi} +\def\ShowIndent{\ifx \EndPicture\:UnDef + \Protect\gl:removeindentfalse \fi} +\def\gl:nopartrue{\global\:nopartrue} +\def\gl:noparfalse{\global\:noparfalse} +\def\gl:removeindenttrue{\global\:removeindenttrue} +\def\gl:removeindentfalse{\global\:removeindentfalse} +\def\HtmlParOff{\global\let\HtmlPar:Off|=\:gobble} +\def\HtmlParOn{\gdef\HtmlPar:Off##1{##1}} +\HtmlParOn +>>> + + + + + +\<new ifs\><<< +\:tempa{if:removeindent} +\:tempa{if:nopar} +>>> + + + + +\<first pass\><<< +\def\c:HtmlPar:#1#2#3#4{% + \def\:temp{#3}\ifx \:temp\empty \c:def\a:Par{#1}\else + \c:def\a:Par{#1\Next:EndP{#3}}\fi + \def\:temp{#4}\ifx \:temp\empty \c:def\html:par{#2}\else + \c:def\html:par{#2\Next:EndP{#4}}\fi +} +\def\EndP{\Protect\par:end} +\let\par:end|=\empty +\def\Next:EndP{\Protect\next:endp} +\def\next:endp#1{\gdef\par:end{#1\global\let\par:end|=\empty}} +\def\SaveHtmlPar{\PushMacro\a:Par \PushMacro\html:par} +\def\RecallHtmlPar{\PopMacro\a:Par \PopMacro\html:par} +>>> + + +The following is neded for debugging, to detect skipped paragraps. +Delete it, or just make it active for debugging mode!!!!! + + +\<shared config\><<< +\NewConfigure{HtmlPar*}[2]{% + \def\:temp{#2}\ifx \:temp\empty \c:def\skip:Par{#1}\else + \c:def\skip:Par{#1\Next:EndP{#2}}\fi} +>>> + +\<first pass\><<< +\def\gl:let{\global\let} +\def\EndP:cnt{0} +\def\SaveEndP{% + \expandafter\gl:let\csname \EndP:cnt :sv\endcsname |=\par:end + \gl:let\par:end|=\empty + \gHAdvance \EndP:cnt |by 1 } +\def\RecallEndP{% + \ifnum \EndP:cnt>0 + \gHAdvance \EndP:cnt |by -1 + \expand:after{\gl:let\par:end|=}\csname\EndP:cnt :sv\endcsname + \else + \:warning{extra \string\RecallEndP} + \fi} +>>> + +\<disregard html:par from protex\><<< +\ifx \html:par\:UnDef \let\html:par|=\empty \fi +>>> + +User's input, and the following in case of no such input, +determine how files will initially treat paragraphs. + + + + + + +Display math formulas can be in-line or between paragraph. +The ``.nopar'' is for forced paragraph starts after the +end of in-line display paragraphs. HTML 4.0 requires opening +of such paragraphs. + + + +\<html paragraph breaks at entry to fileNO\><<< +\Configure{HtmlPar}{\sva:Par}{\svhtml:par} {}{} +>>> + + + + +\<empty html paragraph breaks\><<< +\Configure{HtmlPar}{}{}{}{}% +>>> + + + + + +\<general utilities\><<< +\def\SaveEverypar{% + \expandafter\ifx\csname ht:everypar\endcsname\relax + \expand:after{\expandafter\gdef\csname \n:list L\endcsname }% + \expandafter{\expandafter\everypar + \expandafter{\the\everypar}}% + \else + \expand:after{\expandafter\gdef\csname \n:list L\endcsname }% + \expandafter{\expandafter\ht:everypar + \expandafter{\the\ht:everypar}}% + \fi + \expandafter\xdef\csname \n:list X\endcsname{% + \if:removeindent \global\noexpand\:removeindenttrue + \else \global\noexpand\:removeindentfalse \fi + \if:nopar \global\noexpand\:nopartrue + \else \global\noexpand\:noparfalse \fi}% + \HtmlEnv \csname \n:list X\endcsname + \csname \n:list L\endcsname + \gHAdvance\n:list |by 1 +} +\def\RecallEverypar{\ifnum \n:list<1 + \:warning{\noexpand\RecallEverypar without \noexpand\SaveEverypar}% + \else + \HtmlEnv + \gHAdvance\n:list |by -1 + \csname \n:list X\endcsname + \csname \n:list L\endcsname + \fi +} +\def\n:list{0} +>>> + + + + + +\Chapter{Cross References} + + +Should be consistent with the corresponding features in ProTeX. + + +\<cross references\><<< +|<common cross references|> +\ifHtml |<html cross references|> +\fi +>>> + +\Section{The Commands} + +\SubSection{Ref} + +The implementations of \''\Ref' and \''\Tag' view the crosswords $\alpha$ as +pointers to macros that carry the names `\''\cw:'$\alpha$'. + +\<common cross references\><<< +\def\Ref#1{\expandafter\ifx + \csname |<tag of Tag|>#1\endcsname \relax \:NoTag{#1}% + \else \csname |<tag of Tag|>#1\endcsname \fi} +>>> + + +\<general utilities\><<< +\def\ifTag#1#2#3{\expandafter\ifx + \csname |<tag of Tag|>#1\endcsname \relax #3\else #2\fi} +>>> + + + + + + + +\SubSection{LikeRef} + +The \`'\:LikeRef' command is a stripped down version of +\`'\Ref'; it doesn't check whether the tag is defined. + +The space in \`'\space' is needed for carrying MAME tags +in (mosaic) html files. + +\<common cross references\><<< +\def\LikeRef#1{\expandafter\ifx + \csname |<tag of Tag|>#1\endcsname \relax \space% + \else \csname |<tag of Tag|>#1\endcsname \fi} +\def\:LikeRef#1{\csname |<tag of Tag|>#1\endcsname} +>>> + + +Read file from previous compilation. + + + + +\SubSection{Tag} + +A command \''\Tag{'$\alpha$\''}{'$\beta$\''}' introduces into the +reference file a record + of the form +\''\:CrossWord{'$\alpha$\''}{'$\hat\beta$\''}{'$i$\''}'. + + +\<common cross references\><<< +\let\:SUPOff|=\empty \let\:SUBOff|=\empty +\def\Tag#1#2{\begingroup \:SUPOff \:SUBOff \a:xref \escapechar=`\\% + \edef\:head{\string\:CrossWord{#1}{#2}}% + \expandafter \expandafter \expandafter + \:writeref\expandafter{\:head{\folio}\prcnt:ch}% +\endgroup} +\NewConfigure{xref}{1} +>>> + +The \''\:SUBSUPOff' will be redefined latter with subscripts and +superscripts. The current definition is sufficient for the +tags that in the meantime are created by the system. + + +\<common cross references\><<< +\def\:writeref{\write\:refout}% +>>> + +\<general utilities\><<< +\catcode`\%|=12 \def\prcnt:ch{%} \catcode`\%|=14 +>>> + +\<html utilities\><<< +\catcode`\%|=12 \def\%{%} \catcode`\%|=14 +>>> + +\Section{Internal References} + + + +\SubSection{Loading} + +\<common cross references\><<< +\def\load:ref#1{% + |<set catcodes for info in ref file|>% + \get:input{#1}% + \re:call \let\:CrossWord|=\sv:crs } +|<interpretation for entries in ref file|> +\ifx \:refout\:UnDef + |<check the existence of jobname.xref|> + \load:ref{\jobname.xref} + \csname newwrite\endcsname\:refout + |<if latex then latex/write sol|>\openout\:refout=\jobname.xref +\fi +>>> + +\<check the existence of jobname.xref\><<< +\openin15=\jobname.xref +\ifeof15 \def\:NoTag#1{\hbox{$???$}} +\else \def\:NoTag#1{\hbox{$???$} + \:warning{\string\Ref\string{\string#1\string}?}} + |<warnings for missing /Link|> +\fi +\closein15 +>>> + + + + + + +\<set catcodes for info in ref file\><<< +\edef\re:call{\catcode`\noexpand\:|=\the\catcode`\: }% +\catcode`\:|=11 +\let\sv:crs|=\:CrossWord +\def\:CrossWord{\bgroup + \no:catcodes{128}{255}{12}% + \catcode`\:|=12 \catcode`\@|=11 + \catcode`\^^M|=11 \:CrsWrd}% +\def\:CrsWrd##1##2##3{\egroup \sv:crs{##1}{##2}{##3}}% +>>> + +Aborted compilations tend to leave incimplete \`':CrossWord' commands +in the xref file, missing the last page-number parameter. The +\`'\catcode`\^^M=11' allows such commands to be loaded without +terminating the compilation. + +\Section{External References} + +References to information in other files can be achieved with +the following file-loading command +\`'\LoadRef-[prefix]+{filename.ext}{...}'. + + + +The \`'.ext', \`'+', \`'-', and \`'[...]' components are +optional. A missing \`'.ext' stands for \`'.xref'. When \`'-[prefix]+' +is empty the component \`'{...}' should also be omitted (and the +comamnd assume the form \`'\LoadRef{filename.ext}'). + +A \`'+' asks that \`'\Ref' and \`'LikeRef' commands will refer to +expanded tags of the form \`'filename::tag' instead of just \`'tag'. +A \`'[prefix]' asks that only tags which start with the given prefix +will be loaded. When \`'[prefix]' is omitted, an empty prefix is +assumed and all the tags are loaded. A \`'-' asks that \`'\Ref' and +\`'LikeRef' commands will refer to truncated tags in which the +specified prefixes are omitted. + +Intuitively, a tag can be viewed as a triplet \`'<from>:<to><tag>' +which encodes information together with source and destination +addresses. The \`'{...}' specifies how the information should be +included, where \`'#1' represents the information being loaded. + +\SubSection{Scanning the Preamble} + + + +\<common cross references\><<< +\def\LoadRef{\futurelet|<-?|>\:LoadRef} +\def\:LoadRef{{% + \if \bgroup|<-?|> + \aftergroup\loadr:ef + \else + \aftergroup\Load:Ref \if -|<-?|> \else + \aftergroup-\fi + \fi +}} +\def\Load:Ref#1{\futurelet|<[?|>\LoadRef:} +\def\LoadRef:{{% + \aftergroup\:loadref \ifx [|<[?|> \else + \aftergroup[\aftergroup]\fi}} +>>> + + +%%%%%%%%%%%%% WAS if[ + +\<common cross references\><<< +\def\:loadref[#1]{% + \let\sv:cros|=\:CrossWord + \edef|<prefix|>{#1}\ifx |<prefix|>\empty \let|<[?|>|= N\fi + \futurelet|<+?|>\l:oadref } +\def\l:oadref{% + {\aftergroup\lo:adref \if +|<+?|> \else \aftergroup+\fi }} +\def\lo:adref#1#2#3{% + \def\cw:format##1{#3}% + \edef\:temp{#2}\expandafter \get:ext\:temp .|<par del|>% + \ifx \:temp\empty + \set:CrossWord#2.|<par del|>{|<prefix|>}\load:ref{#2.xref}% + \else \set:CrossWord#2|<par del|>{|<prefix|>}\load:ref{#2}\fi + \let\:CrossWord|=\sv:cros } +\def\get:ext#1.#2|<par del|>{\def\:temp{#2}} +\def\loadr:ef#1{\let|<+?|>=x \let|<prefix|>|=\empty \lo:adref{}{#1}{##1}} +>>> + + + +\<cs?\><<< +\:tempa>>> + +\<-?\><<< +\:tempa>>> + +\<[?\><<< +\:tempb>>> + +\<+?\><<< +\:tempc>>> + +\<prefix\><<< +\:tempd>>> + +\SubSection{Incorporating the Preamble} + +\<common cross references\><<< +\def\set:CrossWord#1|<par del|>#2{% + \edef\:temp{\noexpand\:setCrossWord#1|<par del|>{#2}}\:temp} +\def\:setCrossWord|<ref filename par|>.#2|<par del|>|<substr par|>{% + \ifx [|<[?|> + \def\:CrossWord##1##2##3{% + \cond:CrossWord##1|<substr par|>|<par del|>{##1}{##2}{##3}}% + \def\:tail|<substr par|>##1|<substr par|>{##1}% + \if +|<+?|> |<:CrossWord := extend selected words|>% + \else |<:CrossWord := selected words|>\fi + \else + \if +|<+?|> |<:CrossWord := extend all words|>\fi + \fi |%else :CrossWord := all words|% +} +>>> + +%%%%%%%%%%%%% WAS if[ + + +\<:CrossWord := extend all words\><<< +\def\:CrossWord{\Cross:Word{|<ref filename par|>::}}% +>>> + +\<:CrossWord := extend selected words\><<< +\if -|<-?|> + \def\cond:CrossWord##1|<substr par|>##2|<par del|>##3##4##5{% + \def\:temp{##1}\ifx \:temp\empty + \Cross:Word{|<ref filename par|>::}% + {\:tail##3|<substr par|>}{##4}{##5}\fi }% +\else + \def\cond:CrossWord##1|<substr par|>##2|<par del|>##3##4##5{% + \def\:temp{##1}\ifx \:temp\empty + \Cross:Word{|<ref filename par|>::}{##3}{##4}{##5}\fi }% +\fi +>>> + +\<:CrossWord := selected words\><<< +\if -|<-?|> + \def\cond:CrossWord##1|<substr par|>##2|<par del|>##3##4##5{% + \def\:temp{##1}\ifx \:temp\empty + \Cross:Word{}{\:tail##3|<substr par|>}{##4}{##5}\fi }% +\else + \def\cond:CrossWord##1|<substr par|>##2|<par del|>##3##4##5{% + \def\:temp{##1}\ifx \:temp\empty + \Cross:Word{}{##3}{##4}{##5}\fi }% +\fi +>>> + + + + + +\Section{Interpretation for Entries} + + + +For each crossword $\alpha$ the imported file contains a record of the +form \''\:CrossWord{'$\alpha$\''}{'$\hat{\beta}$\''}{'$i$\''}'. +In such a record, $\hat\beta$ and $i$ stand for the expanded token +list and HPage number that correspond to $\alpha$, respectively. + +A command +\''\:CrossWord{'$\alpha$\''}{'$\hat{\beta}$\''}{'$i$\''}' +introduces the macro +\''\def\cw:'$\alpha$\''{'$\hat\beta$\''}', if the label is not empty. +Otherwise, it introduces the macro \''\def\cw:'$\alpha$\''{'$i$\''}' +that holds the page number. + + +\<interpretation for entries in ref file\><<< +\def\:CrossWord#1#2#3{\Cross:Word{}{#1}{#2}{#3}} +\def\Cross:Word#1#2#3#4{% + \def\:temp{#3}\tmp:toks{#3}% + \expandafter\edef\csname |<tag of Tag|>\cw:format{#1#2}\endcsname{% + \expandafter\ifx\csname |<tag of Tag|>\cw:format{#1#2}\endcsname\relax + \else \csname |<tag of Tag|>\cw:format{#1#2}\endcsname , \fi + \ifx \:temp\empty #4\else \the\tmp:toks\fi}} +\def\cw:format#1{#1}% +>>> + + + + +\<par del\><<< +!*?: >>> + +\<substr par\><<< +#3>>> + +\<ref filename par\><<< +#1>>> + +%%%%%%%%%%%%%%%%%%% +\Section{Link} +%%%%%%%%%%%%%%%%%% + +Good for \''\Link{...}{...}' across files when we have +\''\LoadRef+{...}{#1}'. + +\<html cross references\><<< +\catcode`\:=12 + +\def\get@hfile#1{\get@hfil@ #1:::://} + +\def\get@hfil@#1::#2::#3//{% + \expandafter\ifx \csname + |<tag of Tag|>#1::|<HTag tag|>#2\endcsname \relax \else + \expandafter\expandafter\expandafter\get@@hfile + \csname |<tag of Tag|>#1::|<HTag tag|>#2\endcsname,//{#1}% + \fi} +\def\get@@hfile#1,#2//#3{% + \expandafter\ifx + \csname |<tag of Tag|>#3::|<auto file tag|>#1% + |<Tag/Ref: file-id -> file-name|>\endcsname \relax + \else + \csname |<tag of Tag|>#3::|<auto file tag|>#1% + |<Tag/Ref: file-id -> file-name|>\endcsname + \expandafter \expandafter \expandafter \expandafter + \expandafter \expandafter \expandafter \remove@fn + \fi } + +\def\remove@fn#1#2::{#1} + +\catcode`\:=11 +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Utilities} +%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Empty Anchors} +%%%%%%%%%%%%%%%%%%%%%%%%%% + +Change the following to standard space character when microsoft +explorer will let it. Currently it wiil go only for ubreakable +space. The last null anchor is obviously the most desirable one. + +\<html utilities\><<< +\def\hidden:anchor{} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Latex Anomalies} +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<if latex then latex/write sol\><<< +\if:latex \expandafter\immediate\fi +>>> + + +Try to understand betetr what goes here, because I got +the following not workin in latex. It pushed the output +to the log file instead of the toc file. + +\Verbatim +\<latex/write sol\><<< +\immediate +>>> +\EndVerbatim + +Inserted for the differences in the output routines between TeX and +LaTeX. + +\Verbatim + -------ok----------------faulty------------------ok----------------- +| | | | +| | \documentstyle{book} | \documentstyle{book} | +| | \begin{document} | \begin{document} | +| \newwrite\y | \newwrite\y | \newwrite\y | +| \openout\y=f.xx | \openout\y=f.xx | \immediate\openout\y=f.xx | +| \write\y{....} | \write\y{....} | \immediate\write\y{....} | +| \closeout\y | \closeout\y | \immediate\closeout\y | +| \end | \end{document} | \end{document} | + -------------------------------------------------------------------- +\EndVerbatim + +La\TeX has a \''\clearpage' and \''\cleardoublepage'. + +\<latex /special sol\><<< +\ifx \clearpage\:UnDef \def\:clearpage{\vfil\penalty-20000} +\else + \let\real:par|=\par \def\eq:par{\par\real:par} + \def\:clearpage{\expandafter\ifx\eq:par\clearpage\fi} +\fi +>>> + +In LaTeX, \''\clearpage' embeds a \''\newpage', which in turns +embeds a \''\par'. The \''\EndPage', in turn, embeddes a +\''\:clearpage' which may cause a problem in places that +\''\par' might be a problem. Such is the case, for instance, +within \''\halign', where \''\par' has a different meaning +and may cause an infinite loop. The \''\footnote' produces +this bad situation. + + +\<general utilities\><<< +|<latex /special sol|> +>>> + +\Verbatim + ---------ok------------------faulty--------------------ok----------- +| | | | +| | \documentstyle{book} | \documentstyle{book} | +| | \begin{document} | \begin{document} | +| aaaaa | aaaaa | aaaaa | +| \special{t4ht>bbbbb} | \special{t4ht>bbbbb} | \special{t4ht>bbbbb} | +| ccccc | ccccc | ccccc | +| \vfil\penalty-20000 | \vfil\penalty-20000 | \vfil\penalty-10000 | +| ddddd | ddddd | ddddd | +| \end | \end{document} | \end{document} | +| | | | + -------------------------------------------------------------------- +\EndVerbatim + + + +\Verbatim + --------------------ok-------------------------------faulty------------------ +| |\documentstyle{book} | +| |\begin{document} | +|\leavevmode x\vfil \penalty-10000 |\leavevmode x\vfil \penalty-10000 | +|\leavevmode y\mark{\gdef\noexpand\z{}}|\leavevmode y\mark{\gdef\noexpand\z{}}| +|\end |\end{document} | + ----------------------------------------------------------------------------- + + -------------ok-----------------------faulty-------------- +| | \documentstyle{book} | +| | \begin{document} | +| y | y | +| \mark{\gdef\noexpand\zz{}} | \mark{\gdef\noexpand\zz{}} | +| \end | \end{document} | + ---------------------------------------------------------- +\EndVerbatim + +\SubSection{Other} + +\<general utilities\><<< +\ifx \folio\:UnDef + \def\folio{\ifx \pageno\:UnDef \z@ \else + \ifnum \pageno <0 \romannumeral -\pageno + \else \the \pageno \fi\fi} +\fi +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%% +\Chapter{Html Files} +%%%%%%%%%%%%%%%%%%%%%%%%%% + +\''\HP:file' was before \''\:tempa', and it got screwed when +\''\PauseHFont' and \''\EndPauseHFont' have been defined +and introdued to \''\Configure{HtmlPar}'. The name is probably misused +at some of its occurences. + + +\<files\><<< +|<elements for file|> +\ifHtml |<html file commands|> \fi +>>> + +\Section{Open Files} + +The first optional parameter of \`'\FileStream' goes to the title of +the html file. For a second parabeter, one should be careful +of not providing an undefined \`'\csname...\endcsname' file name. An +empty second parameter refers to the root file. + +\<elements for file\><<< +\ifx \FileStream\:UnDef \else + \errmessage{--- TeX4ht error --- + \noexpand\FileStream is defined outside of TeX4ht}\endinput +\fi +\def\FileStream{\IgnorePar + \let|<needs preamble|>|=-\futurelet\:temp\F:le} +\def\F:le{\if +\:temp \let|<needs preamble|>|=+\expandafter\Fl:e + \else \expand:after{\Fl:e-}\fi} +\def\Fl:e#1{\futurelet\:temp\::File} +\def\::File{\ifx [\:temp \expandafter\:File + \else \expand:after{\:File[]}\fi } +\def\:File[#1]#2{} +>>> + +%%%%%%%%%%%%% WAS if[ + +\<html file commands\><<< +\def\:File[#1]#2{% + \no:pic\edef\file:name{#2}\yes:pic + \expandafter\ifx\csname + |<csname: file name -> file id|>\file:name\endcsname\relax + |<open html file name|>% + \else |<reopen html file|>% + \fi} +\HAssign\bs:fileid |= 1 +>>> + +The definition \`'\edef\file:name{#2}' is needed just in case the +parameter \`'#2' depends on \`'\file:id', because the latter is being +changed within the course of the code. + + + + +\<reopen html file\><<< +\xdef\file:id{\csname + |<csname: file name -> file id|>\file:name\endcsname}% +\ht:special{t4ht>\ifnum \file:id>\bs:fileid\space \file:name\fi }% +>>> + + + + +\<open html file name\><<< +\ht:special{t4ht>\file:name}% +\immediate\write-1{--- file \file:name\space ---}% +|<round ids before file|>% +\gHAdvance\maxfile:id |by 1 +\global\let\file:id|=\maxfile:id +\Tag{|<auto file tag|>\file:id + |<Tag/Ref: file-id -> file-name|>}{\file:name}% +\expandafter\xdef\csname + |<csname: file name -> file id|>\file:name\endcsname{\file:id}% +|<HPage TITLE|>% +|<remove par skip space|>% +\a:PROLOG \a:HTML \a:HEAD +\ifx +|<needs preamble|>% + |<initiate frames|>% + \xdef:cs{|<live|>\file:id}{\noexpand\a:TITLE + |<noexpanded configured title|>% + \noexpand\b:TITLE\noexpand\a:@HEAD\noexpand\b:HEAD}% +\else + \xdef:cs{|<live|>\file:id}{}% + \a:TITLE|<configured title|>\b:TITLE \a:@HEAD\b:HEAD\B:DY +\fi +>>> + +\<configured title\><<< +\bgroup \:TITLE: \c:TITLE \egroup +>>> + + + +\<noexpanded configured title\><<< +\bgroup \noexpand\:TITLE: \noexpand\c:TITLE \egroup +>>> + + +\<remove par skip space\><<< +\ht:special{t4ht@[}{\ht:everypar{}\leavevmode}\ht:special{t4ht@]}% +>>> + + + + +Titles need to be evaluated immediately to capture meanings that come +from sectioning commands, where the latter may include macro names +taht can change in time. + + +The following should appear before \''\Preamble'. + +\<first pass\><<< +\NewConfigure{HTML}[2]{\c:def\a:HTML{#1}\c:def\b:HTML{#2}} +\NewConfigure{HEAD}[2]{\c:def\a:HEAD{#1}\c:def\b:HEAD{#2}} +\NewConfigure{BODY}[2]{\c:def\a:BODY{#1}% + \c:def\b:BODY{\csname a:@/BODY\endcsname#2}} +\NewConfigure{TITLE}[2]{\c:def\a:TITLE{#1}\c:def\b:TITLE{#2}} +\NewConfigure{TITLE+}[1]{\c:def\c:TITLE{#1}} +\NewConfigure{@TITLE}[1]{\concat:config\:TITLE:{#1}} +\NewConfigure{@HEAD}[1]{\concat:config\a:@HEAD{#1}} +\let\a:@HEAD|=\relax +>>> + +\<concat config\><<< +\long\def\concat:config#1#2{\def\:temp{#2}% + \ifx \:temp\empty \let#1|=\empty + \else \ifx #1\relax \let#1|=\empty\fi + \append:def#1{#2}\fi +} +>>> + +\''\Configure{@HEAD}{}' empties the content. +\''\Configure{@HEAD}{...}' appends the content. + +Same for the following + +\<first pass\><<< +\NewConfigure{@BODY}[1]{\concat:config\a:@BODY{#1}} +\let\a:@BODY\relax +\NewConfigure{@/BODY}[1]{\expandafter + \concat:config\csname a:@/BODY\endcsname{#1}} +\expandafter\let\csname a:@/BODY\endcsname\relax +>>> + +Why the \''\noexpand' above. Put a \`'\special' instead. + +\<utilities\><<< +\:CheckOption{hshow} \if:Option + \def\hshow#1{\writesixteen + {..#1.......\expandafter\meaning\csname #1\endcsname}} + |<Show Configure|> +\fi +>>> + +\<Show Configure\><<< +\def\ShowConfigure#1{% + \edef\:tempb{\expandafter \meaning\csname c:#1:\endcsname}% + \expandafter\par:N \:tempb////% + \writesixteen{\string\Configure{#1}}% + {\show:Arg{1}{a:#1}% + \show:Arg{2}{b:#1}% + \show:Arg{3}{c:#1}% + \show:Arg{4}{d:#1}% + \show:Arg{5}{e:#1}% + \show:Arg{6}{f:#1}% + \show:Arg{7}{g:#1}% + \show:Arg{8}{h:#1}% + \show:Arg{9}{i:#1}}% +} +\edef\:temp{\def\noexpand + \par:N##1\string :##2->##3////{\noexpand\par:NN?##2//}} +\:temp +\def\par:NN#1#2//{\def\:tempb{#2}\ifx\:tempb\empty + \def\:tempb{#1}\else \def\:tempb{\par:NN#2//}\expandafter\:tempb\fi} +\def\show:Arg#1#2{% + \ifnum \:tempb=#1 \let\show:Arg=\:gobbleII \fi + \expandafter\let\expandafter\:temp \csname #2\endcsname + \writesixteen{ {\ifx \:temp\relax ???\else + \expandafter\:gobbleM \meaning \:temp\fi}}} +\def\:gobbleM#1->{} +>>> + + + + + + +The following tag is for recording files that are still alive, and for +keeping a status location for HEAD/FRAMESET/BODY entity types. + +\<live\><<< +Lv >>> + + + +\Section{Close Files} + +\<html file commands\><<< +\def\EndFileStream#1{% + \expandafter\ifx + \csname |<csname: file name -> file id|>#1\endcsname\relax + \:warning{\string\EndFileStream{#1}?}% + \else + \ifnum\csname |<csname: file name -> file id|>#1\endcsname=\bs:fileid + \:warning{\string\EndFileStream{\jobname .\:html}?}% + \else \expandafter\ifnum |<file not overided by /ChildOf|>% + |<close html file name|>% + \fi\fi\fi } +>>> + +Note thta \`'\EndFileStream' might get fake calls due to end of HPages. Hence, +\`'\RecallEverypar' should be invoked only when real HPageas are closed. +Well, we can't put \''\SaveEverypar' and + \''\RecallEverypar' in \''\FileStream' and \''\EndFileStream' +because they are not structured. We can reopen and close files randomly. + + + An extra empty line at end of file (for some reason, some settings +of emacs prompt the user for such a line). + +\<close html file name\><<< +{\let\inputlineno|=\tmp:cnt \tmp:cnt|=1 \root:next }% +|<end body and frames|>% +\ht:special{t4ht<#1}% +\g:delete{\empty |<csname: file name -> file id|>#1}% +|<round ids after file|>% +>>> + +Why the \''\edef' above + + +Upon closing a file with \`\special{t4ht<#1}', the program +\`'tex4ht.c' moves to the youngest file that is still openned. + +\<close html file name\><<< +\expandafter\expandafter\expandafter\global \expandafter + \let\csname |<live|>\file:id\endcsname|=\:UnDef +\global\let\file:id|=\maxfile:id +\find:fileid +>>> + +\<html file commands\><<< +\def\find:fileid{% + \expandafter\ifx \csname |<live|>\file:id\endcsname \relax + \gHAdvance\file:id |by -1 \expandafter\find:fileid + \fi +} +>>> + + + +\Section{Cross References} + + + + +The commands referencing files are defined for use also within +restricted environments (\`'\edef', \`'\write'). + +\<html file commands\><<< +\def\TagFile#1{% + \expandafter\ifx \csname + |<tag of Tag|>|<file name for TagFile|>\endcsname \relax \else + \Tag{#1|<File tag|>}{\LikeRef{|<file name for TagFile|>}}% + \fi +} +\def\RefFile#1{\LikeRef{#1|<File tag|>}} +\def\FileName{\LikeRef + {|<auto file tag|>\file:id |<Tag/Ref: file-id -> file-name|>}} +>>> + + + + + +\<file name for TagFile\><<< +|<auto file tag|>\file:id |<Tag/Ref: file-id -> file-name|>% +>>> + + +\`'\def\RefFile#1{\Ref{#1|<File tag|>}} +\def\LikeRefFile#1{\LikeRef{#1|<File tag|>}}' + +\<html file commands\><<< +\def\RefFileNumber#1{% + \expandafter\ifx \csname + |<tag of Tag|>|<auto file tag|>#1% + |<Tag/Ref: file-id -> file-name|>\endcsname\relax + \else + \:LikeRef{|<auto file tag|>#1|<Tag/Ref: file-id -> file-name|>}% + \fi } +>>> + + +\Verbatim + + > Why is it that during the first run, \file:name returns the correct + > filename, but \FileName returns a blank? + +\file:name doesn't always return the correct + + \documentclass{article} + \begin{document} + + \writesixteen + {\csname file:name\endcsname...\csname FileName\endcsname} + + \end{document} + + > Is this a bug or a feature? + +\FileName gets its information through the xref file from the previous +compilation, in a similar manner that \ref gets its information from +\name in latex. The indirection is needed to allow communication +between different files that are to be compiled into a joint html +output. It was introduced at a time that I and others had no access to +large latex compilers, forcing the break up of large source (eg, +books) into smaller files. +\EndVerbatim + + + +\Section{Root File} + +\<html file commands\><<< +\xdef:cs{\empty |<csname: file name -> file id|>\jobname .\:html}{\file:id} +\xdef:cs{\empty |<csname: file name -> file id|>}{\file:id} +\Tag{|<auto file tag|>\file:id + |<Tag/Ref: file-id -> file-name|>}{\jobname .\:html} +\bgroup + |<protect from /special redef|>% + \xdef:cs{|<live|>\file:id}{\noexpand\a:TITLE + |<noexpanded configured title|>% + \noexpand\b:TITLE \noexpand\a:@HEAD\noexpand\b:HEAD}% +\egroup +>>> + + + + +\Section{Document Head} + +\<start html doc\><<< +\:startdoc +>>> + + + +\<at doc start\><<< +\def\at:startdoc{% + \let\:startdoc|=\:UnDef \let\at:startdoc|=\:UnDef + |<activate html env|>% + \a:Preamble + |<start html file|>} +\def\:startdoc{% + \at:startdoc + \edef\:temp{\pageno|=\the\pageno}% + {\let\HCode|=\:gobble \par\newpage}\:temp} +>>> + +The \''\let\HCode=\:gobble' is to prevent \`'<BR>' from +\''\line' activated by \'sty' and called upon from +a user-designed \''\output' routines taht have not been +adjusted yet for haeders and footers. + + + + +> The following is to ensure that no shipout of content is done before +> the header is out. + +Update 2020: patching of shipout is discouraged in LaTeX. I don't know what +use case the following code has, but it seems that TeX4ht can safelly work +without it. We can introduce it back in the case of problems. -- Michal + +\<start html doc\><<< +%\let\:shipout|=\shipout +%\def\shipout{\vfil\break\let\shipout|=\:shipout \shipout} +>>> + + + +\<start html file\><<< +\a:PROLOG \a:HTML \a:HEAD +|<initiate frames|>% +>>> + +The following empty line is to avoid lines that are too long +in the style file. + +The following is for the root file, and it can be overriden +by definitions before \''\EndPreamble'. + + + +\<concat config\><<< +\def\:prolog#1#2,#3|<par del|>{% + \if ,#2,\else + \edef\:tempc{\if*#2\fi}% + \ifx \:tempc\empty + \expandafter\append:def + \csname a:#1\endcsname{\csname a:#2\endcsname}% + \expandafter\ifx \csname c:#2:\endcsname\relax + \NewConfigure{#2}{1}% + \fi + \else + \expand:after{\pro:log{#1}}\expandafter{\:tempc}% + \fi\fi + \if ,#3,\else \expand:after{\:prolog{#1}#3|<par del|>}\fi +} +\def\pro:log#1#2{% + \expandafter\append:def + \csname a:#1\endcsname{\csname a:#2\endcsname}% + \expandafter\ifx \csname c:#2:\endcsname\relax + \NewConfigure{#2}[1]{\expandafter + \concat:config\csname a:#2\endcsname{##1}}% + \expandafter\let\csname a:#2\endcsname\relax + \fi +} +\def\seq:config#1#2{% + \expandafter\let\csname a:#1\endcsname=\empty + \:prolog {#1}#2,|<par del|>} +>>> + +The \''\seq:config' is for introducing a sequence of hooks, +where a star `*' before the hook name indicates it is to be +of accumulative kind. + +\<define /Preamble\><<< +\NewConfigure{PROLOG}[1]{\seq:config{PROLOG}{#1}} +>>> + + +\<html Configure's\><<< +\def\Goto:Configure{\long\def + \Goto:Configure##1\:Configure{\let\Goto:Configure + |=\:UnDef}\expandafter\Goto:Configure} +|<trace configurations|> +|<html config util|> +|<shared config|> +|<font config util|> +|<accents|> +|<math config util|> +>>> + + + + + + + + + + + +\Section{Document Tail} + + + +\<TeX4ht hook on end\><<< +\expand:after{\let\o:end|=}\csname end\endcsname +\expandafter\def\csname end\endcsname{% + \csname export:hook\endcsname \csname o:end\endcsname} +>>> + +This is not used, enddocument hook for LaTeX is defined in latex.4ht. + +\<latex hook on end\><<< +\let\o:enddocumenthook|=\@enddocumenthook +\def\@enddocumenthook{% + \o:enddocumenthook \csname export:hook\endcsname } +>>> + + + + + +\<hook on end\><<< +\def\at:docend{|<close html doc|>\global\let\at:docend=\empty} +\expand:after{\let\o:end|=}\csname end\endcsname +\expandafter\def\csname end\endcsname{\HtmlEnv + \at:docend + \csname export:hook\endcsname \csname o:end\endcsname} +>>> + + +\<close html doc\><<< +|<close HPages in @end|>% +\HAssign\op:fl|=\maxfile:id\space \close:files +|<buttons at end of child|>% +|<end body and frames|>% +>>> + + + +\<end body and frames\><<< +{\b:BODY \b:HTML}% +>>> + + +\<html file commands\><<< +\def\close:files{% + \ifnum \op:fl<\bs:fileid \else + \def\:warning##1{}% + \EndFileStream{\RefFileNumber\op:fl}% + \Advance:\op:fl |by -1 + \expandafter\close:files + \fi} +>>> + + +\Chapter{HPages and Cut Points} + + + +\<cut points\><<< +|<elements for cut points|> +\ifHtml |<html cut points|> + |<tex html cut points|> +\fi +>>> + +\Section{HPages} + + +\`'\HPage<block name>[tag]{title} ... \EndHPage{block name}' + +\List{$\button$} + +\item The \`'block name' is optional in \''\EndHPage', and it serves +for balancing delimiters of blocks. + +If included, it is compared against \`'block name' and \`'tag' +in the given order until a non-empty entity is encountered. +All the compared entities must be fully-expandable (i.e., edef). +(Note that for \`'[]', title is the tag.) + +\item The \`'[tag]' is used for \`'\RefFile', and it is optional. +An empty tag asks that the title will serve as a tag. + +\item The \`'{title}' is used for a HPage. If empty, the HPage is omitted. + +\EndList + +\`'\HPage<block name>-[tag]title\ContHPage ... \EndHPage{block +name}' + +A variant of the above in which tag must be non-empty if \`'[tag]' is +present, and \`'title' need not be expandable. Also, either \`'block +name' or \`'tag' must be present, if \`'\EndHPage{...}' has a +non-empty parameter. + + +\<html cut points\><<< +\def\HPage{\strt:bt\ch:HPage} +\def\ch:HPage{% + \ifx -\:temp \expandafter\m:HPage + \else \expand:after{\ifx [\:temp \expandafter\op:HPage + \else \expandafter\:HPage \fi}% + \fi} +>>> + +\<html cut points\><<< +\def\strt:bt#1{% + \def\:bgtr<##1>{|<page-name is a file name?|>% + |<push name if not HPageButton|>% + \futurelet\:temp#1}% + \futurelet\:temp\ch:btgr} +\def\ch:btgr{\ifx <\:temp \expandafter\:bgtr + \else \expand:after{\:bgtr<>}\fi}% +>>> + + +\<push name if not HPageButton\><<< +\ifx #1\ch:bbtf \else \PushStack\:btid{##1}\fi +>>> + +\<html cut points\><<< +\def\HP:Link{\Link[\HP:file + \a:LinkHPage]{}{\HP:file}\global\let\a:LinkHPage|=\empty} +\NewConfigure{LinkHPage}[1]{\def\a:LinkHPage{ #1}} +\let\a:LinkHPage=\empty +\def\op:HPage[#1]#2{% + |<entring file of hpage|>% + \:hookI{BeforeHPageButton}{}{#2}% + \hpg:wrn{#1}{#2}\HPage \TagFile{|<fr bt fl|>\:temp}% + \Save:HPageTag\:temp + \Save:HPage{#2}% + \NewFileName\HP:file \Save:Link\HP:file + \if:notempty{#2}{\HP:Link#2\EndLink}% + \:hookI{AfterHPageButton}{}{#2}% + \:btfile{#2}% + \:buttrc\HPage{[#1]{#2}}% + \PushStack\:afterbt{x}% + |<:temp = but name|>% + \TagFile{\:temp}} +\def\:HPage#1{% + |<entring file of hpage|>% + \:hookI{BeforeHPageButton}{}{#1}% + \NewFileName\HP:file \Save:Link\HP:file \Save:Temp\HP:file + \TagFile{|<fr bt fl|>\HP:file}% + \Save:HPageTag\HP:file + \Save:HPage{#1}% + \def\:temp{#1}\ifx \:temp\empty + \else \HP:Link#1\EndLink + \fi + \:hookI{AfterHPageButton}{}{#1}% + \:btfile{#1}% + \:buttrc\HPage{{#1}}% + \PushStack\:afterbt{x}% + \Recall:Temp\:tempa \TagFile{\:tempa}} +>>> + + +\<html cut points\><<< +\def\hpg:wrn#1#2#3{% + |<:temp = but name|>% + \ifx \:temp\empty \:warning{\string#3[]{}?}\fi} +>>> + + +\<:temp = but name\><<< +\edef\:temp{#1}\ifx \:temp\empty \no:pic + \edef\:temp{\noexpand\yes:pic + \def\noexpand\:temp{#2}}\:temp \fi +>>> + + +\<html cut points\><<< +\def\Save:Temp{\PushStack\sv:Temp} +\def\Recall:Temp{\PopStack\sv:Temp} +>>> + +Can't go for \`' \def\:temp{#1}' because \`'#1' is just a title and +not a tag. + + +\<html cut points\><<< +\def\m:HPage#1{\futurelet\:temp\ch:mbut} +\def\ch:mbut{\ifx [\:temp \expandafter\op:mbut + \else \expandafter\:mbut \fi} +\def\op:mbut[#1]{% + |<entring file of hpage|>% + \:hookI{BeforeHPageButton}{}{}% + \edef\:temp{#1}% + \ifx \:temp\empty \:warning{\string\HPage-[]?}\fi + \TagFile{|<fr bt fl|>\:temp}% + \Save:HPageTag\:temp + \Save:HPage{}% + \NewFileName\HP:file \Save:Link\HP:file + \HP:Link% + \def\ContHPage{\:ContHPage{x}{#1}}} +\def\:mbut{% + |<entring file of hpage|>% + \:hookI{BeforeHPageButton}{}{}% + \NewFileName\HP:file \Save:Link\HP:file + \TagFile{|<fr bt fl|>\HP:file}% + \Save:HPageTag\HP:file + \Save:HPage{}% + \HP:Link% + \def\ContHPage{\:ContHPage{x}{\HP:file}}} +\def\:ContHPage#1#2{\EndLink + \Recall:Link\HP:file \Save:Link\HP:file + \:hookI{AfterHPageButton}{}{}% + \:btfile{}% + \:buttrc\HPage{...\string\ContHPage}% + \PushStack\:afterbt{#1}% + \TagFile{#2}} +>>> + + +\<html cut points\><<< +\def\:hookI#1#2#3{% + \expandafter\ifx \csname #1\endcsname\relax #2\else + \csname #1\endcsname{#3}\fi +} +>>> + +\<html cut points\><<< +\def\NewFileName#1{% + \HAssign#1|=\maxfile:id + \Advance:#1 |by 1 + \ifx \:NxtNwFN\:Undef + \edef#1{\j:bname \ifx \big:fn\:UnDef|<tail for file name|>#1% + \else \big:fn\fi .\:html}% + \else \let#1|=\:NxtNwFN \global\let\:NxtNwFN|=\:UnDef \fi + \global\let\big:fn|=\:UnDef +} +\def\NextFile#1{\xdef\:NxtNwFN{#1}} +>>> + + + + +\<html cut points\><<< +\def\:btfile#1{% + \SaveEverypar \FileStream[#1]{\HP:file} \IgnorePar + \gHAdvance\HPageDepth |by 1 + \AtEndHPage{\csname HPageFooter\endcsname}% + \:hookI{HPageHeader}{}{#1}% +} +>>> + + + + + +\SubSection{Specification Separated from Realization} + +Split HPages must appear with reference keys (brackets). + + + + +\<html cut points\><<< +\def\HPageButton{\strt:bt\ch:bbtf} +\def\ch:bbtf{\ifx -\:temp \expandafter\op:bbft + \else \expandafter\:bbtf \fi} +\def\:bbtf[#1]#2{% + \:hookI{BeforeHPageButton}{}{#2}% + \hpg:wrn{#1}{#2}\HPageButton + \TagFile{|<fr bt fl|>\:temp}% + \edef\HP:file{\RefFile\:temp}% + \def\:temp{#2}\ifx \:temp\empty + \else \HP:Link#2\EndLink \fi + \:hookI{AfterHPageButton}{}{#2}% + \csname AfterHPage\endcsname } + +\def\op:bbft#1[#2]{% + \:hookI{BeforeHPageButton}{}{}% + \edef\:temp{#2}% + \ifx \:temp\empty \:warning{\string\HPageButton-[]?}\fi + \TagFile{|<fr bt fl|>\:temp}% + \edef\HP:file{\RefFile\:temp}% + \HP:Link% + \def\ContHPage{\EndLink + \:hookI{AfterHPageButton}{}{}% + \csname AfterHPage\endcsname }} +>>> + + +\<html cut points\><<< +\def\BeginHPage{\futurelet\:temp\ch:bbbt} +\def\ch:bbbt{% + |<entring file of hpage|>% + \NewFileName\HP:file \Save:Link\HP:file + \ifx -\:temp \expandafter\op:bbbt + \else \expandafter\:bbbt \fi} +\def\:bbbt[#1]#2{% + \PushStack\:btid{#1}% |%aug 2003|% + \:btfile{#2}% + \:buttrc\BeginHPage{[#1]{#2}}% + \PushStack\:afterbt\empty + \hpg:wrn{#1}{#2}\BeginHPage \Save:HPageTag\:temp + \Save:HPage{#2}% + \TagFile{\:temp}} +\def\op:bbbt#1[#2]{% + \PushStack\:btid{#2}% |%aug 2003|% + \:hookI{AfterHPageButton}{}{}% + \:btfile{}% + \:buttrc\BeginHPage{[#2]}% + \PushStack\:afterbt\empty \edef\:temp{#2}% + \ifx \:temp\empty \:warning{\string\BeginHPage-[]?}\fi + \Save:HPageTag\:temp \Save:HPage{}% + \TagFile{\:temp}} +>>> + + + + + +\SubSection{End HPage} + +\`'\EndHPage[level]{bloc name}' + +\List{$\bullet$} + +\item \`'[level]' is optional. If present, all HPages, up to the +specified level, are closed. + +\item \`'block name'. If empty, a single HPage is closed. If +non-empty, all HPages up-and-including the one with the given name +are closed. + +\EndList + +\<html cut points\><<< +\def\EndHPage{\futurelet\:temp\chEnd:HPage} +\def\chEnd:HPage{\ifx [\:temp \expandafter\opEnd:HPage + \else \expandafter\End:HPage \fi} +\def\opEnd:HPage[#1]{% + \ifnum #1>\HPageDepth\space + \:warning{\string\EndHPage[#1]?}% + \let\:temp|=\:gobble + \else \ifnum #1<\HPageDepth\space + \def\:temp{\:EndHPage\EndHPage[#1]{}}% + \else \let\:temp|=\End:HPage \fi \fi + \:temp } + +\def\End:HPage#1{% + \ifnum \HPageDepth<1 \:warning{\string\EndHPage{#1}?}\let\:temp|=\:gobble + \else \ifinner\else\:clearpage\fi \PopStack\:btid\:tempa + \def\:tempb{#1}\ifx \:tempb\empty\let\:temp|=\:EndHPage + \else \ifx \:tempb\:tempa \let\:temp|=\:EndHPage + \else \Recall:HPageTag\:tempa + \Save:HPageTag\:tempa + \ifx \:tempb\:tempa \let\:temp|=\:EndHPage + \else \def\:temp{\:EndHPage\End:HPage{#1}}% + \fi\fi\fi\fi + \:temp } + +\def\:EndHPage{% + \csname EndHPage\HPageDepth \endcsname + \global\expandafter\let\csname EndHPage\HPageDepth\endcsname|=\:UnDef + \Recall:Link\HP:file \Recall:Link\:tempd \Save:Link\:tempd + \Recall:HPage\:tempb + \Recall:HPageTag\:tempc + \:buttrc\EndHPage{{\:tempb}}% + \EndFileStream{\HP:file}% + |<leaving actual file of hpage|>% + \FileStream{\:tempd}% + \RecallEverypar \gHAdvance\HPageDepth |by -1 + \PopStack\:afterbt\:temp + \ifx \:temp\empty \else \csname AfterHPage\endcsname \fi } +>>> + + +Overrides earlier defs, including the default. + + +\<html cut points\><<< +\def\AtEndHPage{% + \expandafter\gdef\csname EndHPage\HPageDepth\endcsname} +>>> + + +\<html cut points\><<< +\HAssign\HPageDepth|=0 +\PushStack\:btid{} +>>> + +%\NewStack\:btid + +\<close HPages in @end\><<< +\ifnum \HPageDepth> 0 \EndHPage[1]{}\fi +|<document end for non-cut logical units|>% +>>> + + +\SubSection{Debugging} + +\<html cut points\><<< +\def\Save:FileHPg{\PushStack\HPage:FlHg} +\def\Recall:FileHPg{\PopStack\HPage:FlHg} +>>> + +The \''\Recall:FileHPg' and \''Recall:Link' should give the +same file if HPages are not stored in files, and when the files are +not remote. CHECK!!! + + +The following works with the actual files containing the +hpages, instead of assuming that the files are of their parent +hpages. + + +\<leaving actual file of hpage\><<< +%\Recall:FileHPg\:tempd +>>> + +\''HPage''s are not natural children of \''\FileStream': +\''\EndHPage' don't touches pages, \''\FileStream' +has no button name, \''\ExitHPage' might not work, etc (Recall that +HPages must be consistent in seperated form of \''\HPageButton' with +\''\beginHPage' and unified form of \''\HPage'.) + + +\<entring file of hpage\><<< +%\chk:hpfl +>>> + +\<html cut points\><<< +\def\chk:hpfl{\Save:FileHPg\FileName \:FlHpg} +\def\No:FlHpg{{\Recall:Link\HP:file \Save:Link\HP:file + \edef\HP:file{\HP:file}\edef\FileName{\FileName}% + \edef\HP:file{\expandafter\string\csname \HP:file\endcsname}% + \edef\FileName{\expandafter\string\csname \FileName\endcsname}% + \ifx \HP:file\FileName \else + \:warning{HPage in a non-HPage file + `\expandafter\:gobble\FileName'}% + \fi}} +\def\HPageInFile{\global\let\:FlHpg|=\empty} +\def\NoHPageInFile{\global\let\:FlHpg|=\No:FlHpg} +\NoHPageInFile +>>> + + + +Had \`'\yes:trc' and changed to \`'\yes:pic' without checking what I'm doing. + +\<html debug\><<< +\def\HTraceHPageOn{% + \def\:buttrc##1##2{\no:pic \writesixteen{% + l.\the\inputlineno -[\HPageDepth]- \string##1##2}\yes:pic + }} +\def\HTraceHPageOff{\def\:buttrc##1##2{}} +\HTraceHPageOn +>>> + + + +\<no debug\><<< +\def\:buttrc#1#2{} +\let\HTraceHPageOn|=\empty +\let\HTraceHPageOff|=\empty +>>> + +\SubSection{Utilities} + + + +\<page-name is a file name?\><<< +\expand:after{\bt:fn##1.}\:html|<par del|>% +>>> + +\<html cut points\><<< +\expand:after{\def\bt:fn##1.}\:html#2|<par del|>{% + \def\:temp{#2}\ifx \:temp\empty + \else \NextFile{#1.\:html}\fi } +>>> + + +\`'\ExitHPage[mark]{title}'. The bracket mark is optional and +it is introduced for marking the HPage with an NAME. If +\`'\HPageButton'-\`'\BeginHPage' combination wouldn't have existed we +could have used simpler code of the form \`'\Recall:Link\HP:file + \Recall:Link\:tempb \Save:Link\:tempb \Save:Link\HP:file + \Link[\:tempb]{\HP:file}{#1}#2\EndLink'. +An empty title creates a default \`'exit <file title>'. + + + Whenever we have cross-references in a html file (might be +also indirect through a child) we want an exit HPage to save an +annoying backtract through the visited path. + +\<html cut points\><<< +\Odef\ExitHPage[#1]#2{% + \Recall:HPageTag\HP:file \Save:HPageTag\HP:file + \Link[\RefFile{|<fr bt fl|>\HP:file}]{\RefFile{\HP:file}}{#1}% + \def\:temp{#2}\ifx \:temp\empty + \Recall:HPage\:temp \Save:HPage\:temp + \ifx \:temp\empty \a:ExitHPage + \else \b:ExitHPage \:temp \c:ExitHPage \fi + \else #2\fi + \EndLink +} +>>> + +\<shared config\><<< +\NewConfigure{ExitHPage}{3} +>>> + + + + +\<fr bt fl\><<< +)B>>> + + +\`'\RefHPage' can be used for the filename and HPage location. + +\<html cut points\><<< +\def\RefHPage{\RefFile} +>>> + +\<html cut points\><<< +\def\Save:Link{\PushStack\HPageFiles} +\def\Recall:Link{\PopStack\HPageFiles} +\Save:Link{\jobname.\:html} +\def\Save:HPage{\PushStack\HPageAnchors} +\def\Recall:HPage{\PopStack\HPageAnchors} +\def\Save:HPageTag{\PushStack\HPage:Tags} +\def\Recall:HPageTag{\PopStack\HPage:Tags} +>>> + +%\NewStack\HPageFiles +%\NewStack\HPageAnchors +%\NewStack\HPage:Tags + +%\NewStack\:afterbt + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Requests for Cutpoints} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Requests are made with commands of the form +\`'\CutAt{division,terminators,...}'. A \`'division' that precedes +with a \`'+' asks that the HPage will be visible. + +\<html cut points\><<< +\def\CutAt#1{% + \if +\:firstch#1 //\:CutAt#1,//\else + \if |<- TITLE|>\:firstch#1 //\:CutAt#1,//\else + \:CutAt=#1,//\fi\fi +} +>>> + + +\<html cut points\><<< +\def\PauseCutAt#1{% + \expandafter\ifx\csname Cut:#1\endcsname\relax\else + \expandafter\ifx \csname NoCut:#1\endcsname\relax + \expand:after{\expandafter\let\csname NoCut:#1\endcsname=}% + \csname Cut:#1\endcsname + \fi + |<paused cut at|>% + \fi } +\def\ContCutAt#1{% + \expandafter\ifx \csname NoCut:#1\endcsname\relax\else + \expand:after{\expandafter\let\csname Cut:#1\endcsname=}% + \csname NoCut:#1\endcsname + \fi} +>>> + +e.g., \''PauseCutAt{section}' + +\<paused cut at\><<< +\expandafter\let\csname Cut:#1\endcsname=\null +\expandafter\def\csname Cut:#1\endcsname{% + \gHAdvance \TitleCount 1 + \null \:gobble +}% +>>> + + +% \expandafter\global \expandafter +% \let\csname #1:Count\endcsname\TitleCount + + + + +Intuitively, a conditional command \`'\UnCut:division' is prepended to +\`'\division' and \`'\terminator'. When defined, it has the meaning +of a EndHPage. Hence, implicity we have also a terminator at the end +of the document. + +The new commands are executed only if they are defined. The +\`'\Cut:division' is defined by \`'\CutAt', +the \`'\UnCut:division' is defined by \`'\Cut:division', and +\`'\UnCut:division' undefines \`'\UnCut:division'. The hook for +\`'Cut:division' is introduced in +\LinkPort\<button for cut at sect\>{\tt<button for cut at sect>}\EndLink. + + +\<html cut points\><<< +\def\:CutAt#1#2,#3//{% + \csname ltx:like\endcsname + \expandafter\ifx \csname #2\endcsname \relax + \:warning{\string\CutAt\space at undefined + `\expandafter\string\csname#2\endcsname'}% + \fi + \csname ltx:nolike\endcsname + |<modify current command|>% + |<notify current division to higher ones in the hierarchy|>% + |<overide default: open new file for current division|>% +} +>>> + +\<shared config\><<< +\NewConfigure{UndefinedSec}[1]{% + \ifx \ltx:like\:UnDef \let\ltx:like|=\empty \let\ltx:nolike|=\empty \fi + \append:def\ltx:like{\expandafter\let\csname #1\endcsname|=\empty}% + \append:def\ltx:nolike{\expandafter\let\csname #1\endcsname|=\:UnDef}% +} +>>> + +\<modify current command\><<< +\expandafter\ifx \csname #2:\endcsname\relax + \expand:after{\expandafter\let \csname #2:\endcsname |=}% + \csname #2\endcsname +\else \:warning{Again \string\CutAt{#2}?}% +\fi +\expandafter\def \csname #2\endcsname{% + \csname UnCut:#2\endcsname + \csname #2:\endcsname}% +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Connection to Super Divisions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<notify current division to higher ones in the hierarchy\><<< +\:UnCutAt#2,#3,//% +>>> + +\<html cut points\><<< +\def\:UnCutAt#1,#2,#3//{% + \def\:temp{#2}\ifx \:temp\empty \else + \def\:tempa{#1}\ifx \:tempa\:temp \else + \expandafter\ifx \csname#2:#1\endcsname\relax + |<uncut @1 at @2|>% + \else \:warning{#2 already assumed in \string\CutAt{#1,...}}\fi + \fi + \def\:temp{\:UnCutAt#1,#3//}% + \expandafter\:temp + \fi +} +>>> + + +\<uncut @1 at @2\><<< +\expand:after{\expandafter\let \csname #2:#1\endcsname |=}% + \csname #2\endcsname +\expandafter\def \csname #2\endcsname{% + \csname UnCut:#1\endcsname + \csname #2:#1\endcsname}% +>>> + +%%%%%%%%%%%%%%%%%%%% +\SubSection{HPages} +%%%%%%%%%%%%%%%%%%%% + +\<overide default: open new file for current division\><<< +\expandafter\edef \csname Cut:#2\endcsname##1{% + \noexpand\cut:at{#2}{##1}#1}% +>>> + +\<html cut points\><<< +\def\cut:at#1#2#3{{% + |<HPages for sec|>% + |<large file name for @2|>% + \if #3+\HPage<#1>{#2}% + \else + |<CutAt TITLE|>% + \HPage<#1>{}\fi + \ifx \prevCutAt\empty \else \TagFile{|<nxt but file|>\lastsec:id}\fi + \AtEndHPage{|<prev/next at end of hpage|>\UnCut:{#1}}% + \expandafter\xdef\csname UnCut:#1\endcsname{% + \noexpand\EndHPage[\HPageDepth]{}}% +}} +\HAssign\lastsec:id|=0 +\def\cut:TTL#1{#1} +>>> + + + + +The following is for cut pages (typically, from sectioning commands). + +\<CutAt TITLE\><<< +\if #3|<- TITLE|>\else + \let\cut:TTL|=\:gobble + \begingroup + \csname no:fonts\endcsname|<TITLE env|>\:CutAtTITLE: + \xdef\:temp{\noexpand\Configure{TITLE+}{\a:CutAtTITLE{#2}}}% + \endgroup \:temp +\fi +>>> + +\<HPage TITLE\><<< +\no:pic +\edef\:temp{\noexpand\yes:pic \def\noexpand\:temp{#1}}\:temp +\begingroup + |<TITLE env|>\:HPageTITLE: + \no:pic + \edef\:tempa{\noexpand\yes:pic \def\noexpand\:tempa{#1}}\:tempa + \xdef\:temp{\cut:TTL{\noexpand\Configure{TITLE+}{\a:HPageTITLE{\ifx + \:temp\empty \file:name\else \:tempa\fi}}}}% +\endgroup \:temp +>>> + +\<- TITLE\><<< +->>> + +\<TITLE env\><<< +\def\gobble:font##1##2{##2}% +\:TITLE: +>>> + +The \''\gobble:font' is to remove the primitive font definitions of latex. + +\<html cut points\><<< +\let\:TITLE:|=\empty +\let\:CutAtTITLE:|=\empty +\let\:HPageTITLE:|=\empty +>>> + +\<html config util\><<< +\NewConfigure{CutAtTITLE+}[1]{\def\a:CutAtTITLE{#1}} +\NewConfigure{HPageTITLE+}[1]{\def\a:HPageTITLE{#1}} +>>> + + + +%%\NewStack\:head + +\<nxt but file\><<< +)N >>> + + +\<html cut points\><<< +\def\UnCut:#1{% + |<disable empty delayed toc|>% + \global\expandafter\let\csname UnCut:#1\endcsname|=\:UnDef + \xdef\lastsec:id{\file:id}% + \PopStack\prv:fl\:temp + \bgroup + \ifx\b:crsbt\empty + \ifx\bb:crsbt\empty\else + \:hookI{Back#1}{\default:bts{|<tail|>}{|<front|>}}{}% + \fi + \else + \:hookI{Back#1}{\default:bts{|<tail|>}{|<front|>}}{}% + \fi + \csname b:CutAt#1\endcsname \let\after:endfl|=\EndFileStream + \def\EndFileStream##1{\after:endfl{##1}\egroup + |<AfterHPage for CutAt|>% + |<pop btons|>% + }} +>>> + + +We have here \`'\Configure{CutAt#1}{..}{..}' for any sectioning +part. The sectioning commands of LaTeX have a +\`'\Configure{section-type} {before-section} {after-section} +{before-title}{after-title}' command that calls +\`'\Configure{CutAt section-type} {before-section} {after-section}' +to insert code at the start and end of the hypertext pages. + +On the other hand \`'\Configure{+CutAt}{section-type}{before}{after}' +offers delimiters for the buttons. The +\`'\NewConfigure{CutAt}[1]{\Configure{CutAt#1}}' can be offered for +consistency. DO WE NEED IT? + +\<tail\><<< +tail>>> + + +\<disable empty delayed toc\><<< +\global\expandafter\let\csname TocAt*\endcsname|=\empty +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Prev/Next Cut Buttons} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<AfterHPage for CutAt\><<< +\PopStack\:afterbt\:temp +\ifx\:temp\empty\else\:hookI{After#1}{}{}\fi +\PushStack\:afterbt{}% +>>> + +\<HPages for sec\><<< +\def\BeforeHPageButton{\if #3+% + \def\:temp{\:hookI{Before#1Button}{\csname a:+CutAt#1\endcsname}}% + \expandafter\:temp\fi}% +\edef\prev:File{\ifnum \sec:lvl>\HPageDepth\space + \RefFileNumber\lastsec:id \fi}% +\def\AfterHPageButton{\if #3+% + \def\:temp{\:hookI{After#1Button}{\csname b:+CutAt#1\endcsname}}% + \expandafter\:temp\fi}% +\def\HPageHeader##1{% + |<prev/next at start of hpage|>% + \xdef\nextCutAt{\RefFile{|<nxt but file|>\file:id}}% + \global\let\prevCutAt|=\prev:File + |<push HPages|>% + \PushStack\prv:fl{#3}\csname a:CutAt#1\endcsname + \ifx\a:crsbt\empty + \ifx\aa:crsbt\empty\else + \:hookI{Front#1}{\default:bts{|<front|>}{|<tail|>}}{##1}% + \fi + \else + \:hookI{Front#1}{\default:bts{|<front|>}{|<tail|>}}{##1}% + \fi +}% +>>> + + +\<shared config\><<< +\NewConfigure{+CutAt}[3]{% + \expandafter\def\csname Before#1Button\endcsname##1{#2}% + \expandafter\def\csname After#1Button\endcsname##1{#3}} +>>> + + +\<push HPages\><<< +\sv:btns\nextCutAt +\sv:btns\prevCutAt +>>> + + +\<html utilities\><<< +\def\sv:btns#1{\ifx #1\space\global\let#1|=\empty \fi \PushStack\prv:fl#1} +>>> + +\<pop btons\><<< +\PopStack\prv:fl\prevCutAt +\PopStack\prv:fl\nextCutAt +\ifx \prv:fl\empty + \let\prevCutAt|=\:UndDef + \let\nextCutAt|=\:UndDef +\else + \PopStack\prv:fl\:tempb + \PopStack\prv:fl\prevCutAt + \PopStack\prv:fl\nextCutAt + \PushStack\prv:fl\nextCutAt + \PushStack\prv:fl\prevCutAt + \PushStack\prv:fl\:tempb +\fi +>>> + + +\<html config util\><<< +\NewConfigure{crosslinks}[8]{% + \def\default:bts##1##2{% + |<record cond buttons|>% + \def\:temp{##1}\ifx \:temp\empty + \ifx\a:crsbt\empty\ifx \aa:crsbt\empty |<remove buttons|>\fi\fi + \a:crsbt + \else + \ifx\b:crsbt\empty\ifx \bb:crsbt\empty |<remove buttons|>\fi\fi + \b:crsbt + \fi + \def\CLB:next{\expandafter\cond:bt\next:bt{}{#3}}% + |<prev for leading node in option `next'|>% + \def\CLB:prev{\expandafter\cond:bt\prev:bt{}{#4}}% + \def\CLB:prevtail{\expandafter\cond:bt\prev:bt{|<tail|>\prev:bt}{#5}}% + |<front/tail button|>% + \def\:temp{#8}\ifx \:temp\empty \else + \ifx \cond:bt\:gobbleIII + \else \def\CLB:up{\def\:temp{#8}#1\ExitHPage{#8}#2}\fi\fi + |<insert cross link buttons|>% + |<restore cond buttons|>% + \def\:temp{##1}\ifx \:temp\empty \aa:crsbt\else \bb:crsbt\fi + |<tail target|>}% + |<set linkless buttons|>% +} +\NewConfigure{crosslinks+}[4]{% + \def\a:crsbt{#1}\def\aa:crsbt{#2}\def\b:crsbt{#3}\def\bb:crsbt{#4}} +\NewConfigure{crosslinks-}[2]{% + \def\a:cond:bt{#1}\def\b:cond:bt{#2}} +>>> + + +\<set linkless buttons\><<< +\def\cond:bt##1##2##3{% + \expandafter\ifx\csname a:cond:bt\endcsname \relax + \ifx ##1\empty \else + \def\:temp{##3}\ifx \:temp\empty \else + #1\Link[##1]{##2}{}##3\EndLink #2% + \fi \fi + \else + \ifx ##1\empty + |<set a linkless button|>% + \else + \def\:temp{##3}\ifx \:temp\empty \else + #1\Link[##1]{##2}{}##3\EndLink #2% + \fi \fi + \fi +}% +>>> + + +\<set a linkless button\><<< +\def\:temp{next}\ifx \:temp\cur:bt \else + \ifx \c:next:\:gobbleII \else \let\:temp=\empty \fi +\fi +\ifx \:temp\empty \else + \ifx \a:cond:bt\empty \ifx \b:cond:bt\empty #1\else + \a:cond:bt\fi + \else \a:cond:bt\fi + ##3% + \ifx \a:cond:bt\empty \ifx \b:cond:bt\empty #2\else + \b:cond:bt\fi + \else \b:cond:bt\fi +\fi +>>> + + + +\<insert cross link buttons\><<< +\CLB:menu +>>> + +\<\><<< +\csname CLB:next\endcsname %1 +% +\csname CLB:prevup\endcsname %2 +\csname CLB:prev\endcsname %5 +% +\csname CLB:prevtailup\endcsname %3 +\csname CLB:prevtail\endcsname %6 +% +\csname CLB:tail\endcsname %7 +% +\csname CLB:front\endcsname %8 +% +\csname CLB:up\endcsname %9 +>>> + + +\<html config util\><<< +\expandafter\def\csname c:crosslinks*:\endcsname{% + \let\CLB:menu\empty \CLB:menuitem } +\def\CLB:menuitem#1{% + \def\:tempa{#1}\ifx \:tempa\empty \else + \append:def\CLB:menu{\csname a:crosslinks:#1\endcsname + \def\cur:bt{#1}\csname CLB:#1\endcsname + }% + \def\:temp{prev}\ifx \:temp\:tempa + \append:def\CLB:menu{\csname a:crosslinks:prev\endcsname + \csname CLB:prevup\endcsname + }% + \else + \def\:temp{prevtail}\ifx \:temp\:tempa + \append:def\CLB:menu{% + \csname a:crosslinks:prev\endcsname + |<prevtail hook|>% + \csname CLB:prevtailup\endcsname + }% + \fi \fi + \expandafter\CLB:menuitem + \fi +} +\Configure{crosslinks*} + {next} + {prev} + {prevtail} + {tail} {front} + {up} + {} +\NewConfigure{crosslinks:next}{1} +\NewConfigure{crosslinks:prev}{1} +\NewConfigure{crosslinks:prevtail}{1} +\NewConfigure{crosslinks:tail}{1} +\NewConfigure{crosslinks:front}{1} +\NewConfigure{crosslinks:up}{1} +>>> + + + +\<record cond buttons\><<< +\let\sv:cond:bt|=\cond:bt +>>> + +\<restore cond buttons\><<< +\let\cond:bt|=\sv:cond:bt +>>> + +\<remove buttons\><<< +\let\cond:bt|=\:gobbleIII +>>> + + + + +\`'\Configure{crosslinks+} + {before-front-links}{after-front-link} + {before-back-link}{after-back-link}' + + +\<front/tail button\><<< +\def\:temp{##2}% +\ifx \:temp\empty + \def\:temp{#6}% + \ifx \:temp\empty \else + \def\CLB:tail{\def\:temp{#6}#1\Link[\RefFileNumber\file:id]{}{}#6\EndLink #2}\fi +\else + \def\:temp{#7}% + \ifx \:temp\empty \else + \def\CLB:front{\def\:temp{#7}#1\Link{##2\RefFileNumber\file:id}{}#7\EndLink #2}\fi +\fi +>>> + +Neds the \''\expandafter' above because \''\Link' modifies \''\:te:mp'. + +\<tail target\><<< +\def\:temp{##1}\ifx \:temp\empty \else + \ifx\yes:tail\def + \Link{}{##1\RefFileNumber\file:id}\EndLink +\fi \fi +>>> + +\<prevtail hook\><<< +\ifx\a:crsbt\empty\else \let\yes:tail\def\fi +\ifx\aa:crsbt\empty\else \let\yes:tail\def\fi +\ifx\b:crsbt\empty\else \let\yes:tail\def\fi +\ifx\bb:crsbt\empty\else \let\yes:tail\def\fi +>>> + +%\NewStack\prv:fl + +\<html cut points\><<< +\let\prevCutAt|=\empty +>>> + + +\''french.sty' chages the definition of \''\special' and that creates +problems for tex4ht. Hence, the following redefdinition. When +\''french.sty' and the likes are not around we can't just go for +\''\let\ht:special=\special' because when the special is written out +we don't \''\ht:special' there. Hence the configure. + +\<early utilities\><<< +\NewConfigure{special}[1]{\def\ht:special{#1}} +\Configure{special}{|<default special|>} +>>> + +\<default special\><<< +\special +>>> + +%\let\real:special|=\special +%\NewConfigure{special}[1]{\def\ht:special{#1}} +%\Configure{special} +% {\ifx \real:special\special \expandafter\special +% \else \expandafter\real:special\fi} + + +\<html Configure's\><<< +\edef\:temp{\string\special} +\edef\:tempa{\meaning\special} +\ifx \:temp\:tempa \else + \def\:temp{|<default special|>} + \ifx \:temp\ht:special + \:warning{Redefined \string\special. Might + need \string\Configure{special}{<system-special>}} +\fi\fi +>>> + +\<protect from /special redef\><<< +\let\special|=\relax +>>> + + +\<early utilities\><<< +\long\def\expand:after#1{\def\e:tmp{#1}\expandafter\e:tmp} +>>> + + + +\<tempa := new file; tempb := old file\><<< +\tmp:cnt|=\maxfile:id \advance\tmp:cnt |by 1 +\edef\HP:file{\j:bname |<tail for file name|>\tmp:cnt }% +\xdef:cs{in:fid:#1}{\file:id}% +\edef\:tempb{\RefFileNumber{\file:id}}% +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{The `next' Option} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\<html cut points\><<< +\:CheckOption{next} \if:Option + \def\next:bt{\nextCut} + \def\prev:bt{\prevCut} +\else + \Log:Note{for linear crosslinks of pages, + use the command line option `next'}% + \def\next:bt{\nextCutAt} + \def\prev:bt{\prevCutAt} +\fi +>>> + +\<early utilities\><<< +\def\Log:Note#1{% + \immediate\write-1{--------------------------------------}% + \immediate\write-1{--- Note --- #1}% + \immediate\write-1{--------------------------------------}% +} +>>> + +\<prev/next at end of hpage\><<< +\ct:btn +>>> + +\<prev/next at start of hpage\><<< +\ct:btn +\gHAdvance\C:tAtN |by 1 +\Tag{fileidcut \file:id}{\C:tAtN}% +\TagFile{cutfile \C:tAtN}% +>>> + +\<html cut points\><<< +\HAssign\C:tAtN |= 0 +\def\ct:btn{{% + \HAssign\C:tAtN |= 0\LikeRef{fileidcut \file:id}% + \Advance:\C:tAtN |by -1 + \xdef\prevCut{\RefFile{cutfile \C:tAtN}}% + \ifx \prevCut\space \global\let\prevCut|=\empty \fi + \Advance:\C:tAtN |by 2 + \xdef\nextCut{\RefFile{cutfile \C:tAtN}}% + \ifx \nextCut\space \global\let\nextCut|=\empty \fi +}} +>>> + +\<prev for leading node in option `next'\><<< +\ifx \prevCut\empty + \def\:temp{\prevCut}\ifx \:temp\prev:bt + \Recall:HPageTag\HP:file \Save:HPageTag\HP:file + \def\:temp{#4}\ifx \:temp\empty \else + \def\CLB:prevup{% + \def\:temp{#4}#1\Link[\RefFile{|<fr bt fl|>\HP:file}]{}{}#4\EndLink #2}% + \fi + \def\:temp{#5}\ifx \:temp\empty \else + \def\CLB:prevtailup{% + \def\:temp{#5}#1\Link[\RefFile{|<fr bt fl|>\HP:file}]{tail\Jobname + }{}#5\EndLink #2}% + \fi + |<next button in root of `next' option|>% +\fi \fi +>>> + +% \expandafter\cond:bt\prev:bt{}{%... add march 25, 2005 + +\<next button in root of `next' option\><<< +\long\def\:tempb####1####2{\gdef\root:next{% + \def\:temp{####2}\edef\HP:file{\RefFileNumber\file:id}% + \ifx \:temp\HP:file + \global\let\root:next|=\empty + \def\:temp{#3}\ifx \:temp\empty + \Link{}{tail\Jobname}\EndLink + \else + \expandafter\ifx \csname a:next+\endcsname\relax #1\else + \csname a:next+\endcsname \fi + \expandafter\ifx \csname a:next\endcsname\relax + \def\:next{#3}% + \else \let\:next\a:next \fi + \ifx \:next\empty + \Link{}{tail\Jobname}\EndLink + \else + \Link[####1]{}{tail\Jobname}\:next\EndLink + \fi + \expandafter\ifx \csname b:next+\endcsname\relax #2\else + \csname b:next+\endcsname \fi + \fi \fi}}% +\edef\:temp{\noexpand\:tempb + {\RefFileNumber\file:id}{\RefFile{|<fr bt fl|>\HP:file}}}% +\:temp +>>> + +\<html cut points\><<< +\let\root:next|=\empty +>>> + + +\<html config util\><<< +\NewConfigure{next}[1]{\def\a:next{#1}} +\NewConfigure{next+}[2]{% + \expandafter\def\csname a:next+\endcsname{#1}% + \expandafter\def\csname b:next+\endcsname{#2}} +>>> + + + + + + + +\<elements for cut points\><<< +\:CheckOption{next} \if:Option \else + \let\c:next:|=\:gobbleII +\fi +>>> + + +%%%%%%%%%%%%% +\SubSection{File Naming} +%%%%%%%%%%%%% + + + +\<HPages for sec\><<< +\csname a:CutAt-filename\endcsname{#1}{#2}% +>>> + +\<early utilities\><<< +\NewConfigure{CutAt-filename}[1]{% + \expandafter\def\csname a:CutAt-filename\endcsname##1##2{#1}} +\Configure{CutAt-filename}{} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Grouping Mecahanism for CutAt} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +A \`'\CutGroup{ChGroup,Chapter,LikeChapter,Appendix}' allows unified +requests of the form \`'\CutAt{ChGroup,Part}'. + +\<html cut points\><<< +\def\CutGroup#1{\Cut:Group#1,,|<par del|>} +\def\Cut:Group#1,{% + \expandafter\ifx \csname #1\endcsname\relax + \expandafter\let\csname #1\endcsname|=\:gobble\fi + \def\HP:file{#1}% + \do:list \cut:gr,} +>>> + + + + +The \`'\CutGroup{group,division}' replaces \`'\division{#1}' +with \`'\group{#1}\division{#1}', and \`'\Cut:division{#1}' +with \`'\Cut:group{#1}\Cut:division{#1}'. + +\<tex html cut points\><<< +\def\cut:gr#1{% + \edef\:temp{% + \let\:csname \HP:file :#1\endcsname |=\:csname #1\endcsname + \let\:csname \HP:file :Cut:#1\endcsname |=\:csname Cut:#1\endcsname + \def\:csname #1\endcsname####1{% + \noexpand\cond:cs{\HP:file}{####1}% + \:csname \HP:file :#1\endcsname{####1}}% + \def\:csname Cut:#1\endcsname####1{% + \noexpand\cond:cs{Cut:\HP:file}{####1}% + \noexpand\cond:cs{\HP:file :Cut:#1}{####1}}% + }\:temp } +>>> + + +\SubSection{Utilities} + + +\<general utilities\><<< +\def\cond:cs#1#2{% + \expandafter\ifx \csname #1\endcsname\relax \else + \csname #1\endcsname{#2}% + \fi +} +\def\do:list#1,#2,{% + \def\:temp{#2}\ifx \:temp\empty \expandafter\stop:do + \else #1{#2}\fi + \do:list#1,} +\def\stop:do#1|<par del|>{} +>>> + + + + + + + + + + + + + + + +\Chapter{Coauthoring} + + + +\<imports\><<< +|<import-export interface|> +\:CheckOption{family} \if:Option + |<import-export commands|> + |<imports utilities|> +\else + |<no import-export|> +\fi +>>> + + + + + + + +\<general utilities\><<< +\def\BI:gbl{\ifx [\:temp \expandafter\bi:gbl\else + \expand:after{\bi:gbl[]}\fi} +\def\bi:gbl[#1]#2{} +>>> + + +\<html utilities\><<< +\def\ro:nd#1#2{% + \gHAdvance#1 |by #2 + \gHDivide#1 |by #2 + \gHMultiply#1 |by #2 } +>>> + +\Section{The Commands} + +The extension for the name should refer to the \`'xref' file, +and if omitted an \`'.xref' is aasumed. + +\<import-export interface\><<< +\def\ParentOf{\gHAdvance\TitleCount 1 + \global\let\mu:span|=\TitleCount \futurelet\:temp\:mprt} +>>> + +\<no import-export\><<< +\let\:mprt|=\BI:gbl +>>> + + +\<import-export commands\><<< +\def\:mprt{\fm:call\:Imprt} + +\def\:Imprt[#1]#2#3{% + \def\:temp{#2}\ifx \:temp\Jobname + \:warning{#2 \string\ParentOf\space#2?}\fi + \Needs-{child `#2'}% + \LoadRef[|<screen ref from child @2|>]{#3}{##1}% + \imp:var{#2}fstf:id,#1|<par del|>% + |<send links from parent to child|>% + \the\:tokwrite{\string\doTocEntry + \string\tocParentOf{#2}{}{}\relax}} + +\HAssign\fstf:id|=0 +>>> + + + + +\<import-export interface\><<< +\def\ChildOf{\futurelet\:temp\:xprt} +>>> + +\<no import-export\><<< +\Odef\ChildOf[#1]#2{\:warning{\string\ChildOf{#2} + without \string\Preamble{...,family,...}}} +\let\:xprt|=\BI:gbl +>>> + + + + +\<import-export commands\><<< +\def\:xprt{\fm:call\:Exprt} + +\def\:Exprt[#1]#2#3{% + \ifnum \maxfile:id>1 + \:warning{\string\ChildOf{#2} not at root file}\fi + \Needs-{parent `#2'}% + \ld:flxrf{#3}{|<toc tag|>}% + \LoadRef[|<screen ref from parent @2|>]{#3}{##1}% + \xp:var{#2}fstf:id,#1|<par del|>% + |<adjust file ids info up|>% + \def\export:hook{\exprt:tag{#2}fstf:id,#1|<par del|>}% + |<send links from child to parent|>% + \gdef\:Export[##1]##2{\:warning{\string\ChildOf + \string{##2\string}\space ignored (not 1st)}}% +} +>>> + + + + + +\<import-export commands\><<< +\def\rmv:ext#1.#2|<par del|>{#1} + +\def\fm:call#1{\ifx [\:temp \expand:after{\fm:cll#1}\else + \expand:after{\fm:cll#1[]}\fi} +\def\fm:cll#1[#2]#3{\edef\:temp{\noexpand\noexpand\noexpand + #1[#2]{\noexpand\rmv:ext#3.|<par del|>}{#3}}% + \edef\:temp{\:temp}\:temp} +>>> + + + +\SubSection{Links} + + +\<send links from parent to child\><<< +\Tag{|<screen tag to child @2|>-up}{\RefFileNumber\FileNumber}% +\Tag{|<screen tag to child @2|>-prev}{\childFile}% +\xdef\childFile{\LikeRef{|<screen ref from child @2|>-down}}% +\ifx \cld:n\:UnDef \else \Tag{\cld:n}{\childFile}\fi +\xdef\cld:n{|<screen tag to child @2|>-next}% +>>> + + + +\<send links from child to parent\><<< +\Tag{|<screen tag to parent @2|>-down}{\RefFileNumber\FileNumber}% +\ch:lnk\parentFile{#2}{up}% +\ch:lnk\prevChildFile{#2}{prev}% +\ch:lnk\nextChildFile{#2}{next}% +\global\let\nsrt:chlnks|=\nsrt:cldnks +\nsrt:chlnks{|<front|>}{|<tail|>}{FrontChild}% +>>> + +We need in \`'\childFile' initially a space and not empty, because +otherwise Ref will produce the page number. + + +\<import-export commands\><<< +\let\childFile|=\space +\def\ch:lnk#1#2#3{% + \xdef#1{\LikeRef{|<screen ref from parent @2|>-#3}}% + \ifx #1\space \let#1|=\empty\fi} +>>> + +Note that the following might be a problem for when HPage +is nested in regular file. + +\<import-export commands\><<< +\def\nsrt:cldnks#1#2#3{{% + \let\prevCutAt|=\prevChildFile + \let\nextCutAt|=\nextChildFile + \def\ExitHPage##1{\Link[\parentFile]{}{}##1\EndLink} + \:hookI{#3}{\default:bts{#1}{#2}}{}}} +>>> + +\<buttons at end of child\><<< +\root:next +\ifx \nsrt:chlnks\:UnDef +\else \nsrt:chlnks{|<tail|>}{|<front|>}{BackChild}\fi +>>> + +\Section{Values in Variables} + +\<import-export commands\><<< +\def\imp:var#1#2,#3|<par del|>{% + \gt:ops{#2}% + \Tag{|<screen tag to child @1|>-#2}{|<the|>\csname #2\endcsname}% + \edef|<temp|>{0\LikeRef{|<screen ref from child @1|>-#2}}% + \expand:after{\expandafter|<advance|>\csname + #2\endcsname |by }|<temp|>% + \if:notempty{#3}{\imp:var{#1}#3,|<par del|>}} +>>> + +A child transfers up the changes made to a counter, not an absolute +value. The entry value is recorded in \`'\csname :#2:\endcsname'. + +\<import-export commands\><<< +\def\xp:var#1#2,#3|<par del|>{% + \gt:ops{#2}% + \edef|<temp|>{0\LikeRef{|<screen ref from parent @1|>-#2}}% + \expandafter|<assign|>\csname #2\endcsname|=|<temp|> + \expandafter\HAssign\csname :#2:\endcsname|=|<temp|> + \if:notempty{#3}{\xp:var{#1}#3,|<par del|>}} +>>> + +\<import-export commands\><<< +\def\exprt:tag#1#2,#3|<par del|>{% + \tmp:cnt |= \csname #2\endcsname + \advance\tmp:cnt |by -\csname :#2:\endcsname + \Tag{|<screen tag to parent @1|>-#2}{\the\tmp:cnt}% + \if:notempty{#3}{\exprt:tag{#1}#3,|<par del|>}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Overide Previous Files} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The \''\:clearpage' is needed below to clear the old tags and xref +files, before new ones start to come. The \''\Tag' few lines below can be lost. + +\<adjust file ids info up\><<< +\closeout\:refout +\openout\:refout|=\jobname.xref \:clearpage +|<fix point for file ids at child|>% +\gHAssign\maxfile:id |= \fstf:id +\gHAssign\bs:fileid |= \maxfile:id +\global\let\file:id|=\maxfile:id +\Tag{|<auto file tag|>\file:id |<Tag/Ref: file-id -> file-name|>}% + {\jobname.\:html}% +\expandafter\xdef\csname + |<csname: file name -> file id|>\jobname.\:html\endcsname{\file:id}% +\xdef:cs{|<live|>\file:id}{}% +>>> + + +\<file not overided by /ChildOf\><<< +\csname FN #1\endcsname > \bs:fileid +>>> + + +\SubSection{Contain Changes} + + +We want to reduce the number of compilations due to changes. We can't do +much with sectioning numbers, but we can do quite a lot with labels of +links. Note that the addresses are made up of file numbers + label numbers. + +We make the children `fix-points' with respect to file numbers, by +allocating them addresses that are equal to `child-id * 10000'. We +make here an assumption that a compilation will not generate more than +9999 files. + + +\<fix point for file ids at child\><<< +\gHAdvance\fstf:id |by 10000 +>>> + +It would be nice to have also fix-points for file ids within children, +but this will cause holes. The holes will result in fake names +\`'\csname filei-d\endcsname' which unneccesariliy consume ids and can +overflow the memory quite quickly. This names are inspected at points +that files are closed, and checking is performed for opened subfiles. + + +We can also ask that large files will provide fixed-points. We do so +with the following command, which so far is used only at cut +points. It requests distinguished automatically generated file names +for the class that is identified by the two leading characters of the +given parameter (i.e., sectioning type in case of the cut points). +These are really not fixed point, because they don't fix unique file +names (e.g., by rounding up file ids). + +\<large file name for @2\><<< +\fx:pt #1xxx|<par del|>% +>>> + +Do we want \`' \ro:nd\html:lbl{100000}%' below? + +\<html utilities\><<< +\def\fx:pt#1#2#3|<par del|>{% + \expandafter\ifx \csname big:#1:#2\endcsname\relax + \expandafter\gHAssign\csname big:#1:#2\endcsname |= 0 \fi + \expandafter\gHAdvance\csname big:#1:#2\endcsname |by 1 + \edef\big:fn{#1#2\csname big:#1:#2\endcsname}} +>>> + + + +On the other hands, we try to make sectioning commands fixed points +for labels. Hence, we try to reduce sensitivity of tocs to changes. +See \`'\<round ids between sections\>' + + + + +The validity of the above fixed points carries on as far as the +specified points are really fixed. If they become fluid, then +everything becomes fluid. + + + + + + + + +To get evrything working, we need 4 compilations (in modifications +less might be sufficient). + +\List{ord} + +\item A compilation to create the starting file number for each node +(child/ parent). That is, fix file numbers for children. + +\item A compilation for using the right file numbers, and to create +the correct tags within the tocs. +That is, to collect moveable information like tables of +contents and relationships between files. + +\item A compilation to use the right tags, and to create the right +xref for the tags in the tocs +That is, to collect cross-references from moveable info. + +\item A compilation to incorporate the cross refs + +\EndList + + + +\SubSection{Cross-Reference Screening} + +\''\Jobname' has been introduced for \''\LoadRef[..]' + +\<screen ref from child @2\><<< +#2-\Jobname>>> + +\<screen ref from child @1\><<< +#1-\Jobname>>> + +\<screen ref from parent @2\><<< +#2-\Jobname>>> + +\<screen ref from parent @1\><<< +#1-\Jobname>>> + +\<screen tag to child @1\><<< +\Jobname-#1>>> + +\<screen tag to child @2\><<< +\Jobname-#2>>> + +\<screen tag to parent @1\><<< +\Jobname-#1>>> + +\<screen tag to parent @2\><<< +\Jobname-#2>>> + + + + +\Section{Tables of Content} + + + + +The are needed because some variables are of TeX and others +are of TeX4ht. + + + +\<imports\><<< +\def\tocParentOf#1{{% + \def\:temp{#1}\ifx \:temp\Jobname + \:warning{#1 \string\ParentOf\space#1?} + \else \expand:after{\ld:flxrf{#1}{|<toc tag|>}\get:input{#1.4tc}}\fi}} +>>> + + +\Section{Load File and Link Xref of Relative} + + +\<imports\><<< +\def\ld:flxrf#1#2{% + \let\:CrsWd|=\Cross:Word + \def\Cross:Word##1##2{% + \expandafter\let\csname |<tag of Tag|>##2\endcsname|=\:UnDef + \:CrsWd{##1}{##2}}% + \LoadRef[|<auto file tag|>]{#1}{##1}% + \LoadRef[|<HTag tag|>#2]{#1}{##1}% + \let\Cross:Word|=\:CrsWd +} +>>> + + + + + + + +\SubSection{Local Utilities} + + + + + + + + + + + + + + + + + +The following are needed because some variables are of TeX and others +are of TeX4ht. + +\<imports utilities\><<< +\def\gt:vi#1#2#3#4#5#6#7|<par del|>{#1#2#3#4#5#6} +\def\gt:vr#1#2{\edef#1{\expandafter + \gt:vi\meaning#2 .......|<par del|>}} +\gt:vr\c:unt\tmp:cnt +\def\chk:vr#1#2{\expand:after{\gt:vr\:temp#2 #1\:temp\c:unt}} + +\def\gt:ops#1{% + \expand:after{\chk:vr\ifx}\csname#1\endcsname \let|<the|>|=\the + \let|<assign|>|=\empty \let|<advance|>|=\advance + \else \let|<the|>|=\empty + \let|<assign|>|=\HAssign \let|<advance|>|=\Advance: + \fi } +>>> + +\<assign\><<< +\:tempa>>> + +\<advance\><<< +\:tempb>>> + +\<temp\><<< +\:tempc>>> + +\<the\><<< +\:tempd>>> + + + + + + +\Chapter{Subdivisions} + + +\<divisions\><<< +|<elements for divs|> +|<no trace sec config|> +\ifHtml |<html divs|> + \:CheckOption{hooks+} \if:Option + \else \:CheckOption{hooks} \fi + \if:Option |<trace sec config|>\fi +\fi +|<tex divisions|> +>>> + + + +\Section{Interface} + +The first parameter of \`'\Def:Section' provides the command name, the +second gives a non-parametric code that produces the title number, and +the third gives a single-parameter code for producing the title +itself. + + + +\<elements for divs\><<< +\long\def\NewSection#1#2{% + \Def:Section#1{#2}{##1}% + \edef\:temp{\expandafter\:gobble\string#1}% + \Configure:Sec\:temp{}{}{}{}% + \ConfigureToc{\expandafter\:gobble\string#1}{\empty}{\empty}{}{}} +>>> + + +\`'\NewSection\DocChapter {counter}' + +The parameter \`'##1' holds the title head. + + +\<endsection config\><<< +\NewConfigure{end#1}[1]{\expandafter + \def\csname a:end#1\endcsname{##1}}% +\Configure{end#1}{} +>>> + + +\<elements for divs\><<< +\def\Def:Section#1{% + \edef\:tempc{{\expandafter\:gobble \string#1}}% + |<Configure for sectioning command|>% + \futurelet\:temp\ch:NewSec} +\def\ch:NewSec{\if *\:temp\let\if:toc|=\:gobble\expandafter\op:NewSec + \else \let\if:toc|=\empty \expand:after{\op:NewSec+}\fi} +\def\op:NewSec#1{\expandafter\:NewSec\:tempc} +|<def /:Every|>% +\def\:NewSec#1#2{% + |<endsection config|>% + \expandafter\def\csname #1\endcsname{% + \expand:after{\let\if:toc|=}\csname if:#1toc\endcsname + \:StartSec{#1}{#2}}% + |<c:TITLE: for Sec|>% + \expandafter\let\csname if:#1toc\endcsname|=\if:toc + |<initiate BeforeEvery/Every div|>% + \expandafter\def\csname #1:ttl\endcsname##1} +>>> + +\''\Def:Section' + \''\Configure' = \''\NewSection' + + +\SubSection{/Configure} + + +\<no trace sec config\><<< +\long\def\Configure:Sec#1#2#3#4#5{% + \expandafter\ifx\csname c:#1\endcsname\relax \let\:tempa|=\relax \else + \def\:tempa{#4#5}\fi \ifx\:tempa\empty \else + |<conf for sec boundaries|>\fi + \expandafter\ifx\csname a:#1\endcsname\relax \let\:tempa|=\relax \else + \def\:tempa{#2#3}\fi \ifx\:tempa\empty \else + \expandafter\def\csname a:#1\endcsname##1{#2}% + \expandafter\def\csname b:#1\endcsname##1{#3}% + \fi +} +>>> + +Note that in \`'\Configure{Section}{before}{after}{before head}{after +head}' a change occures only when before-after pair is not empty. + + +\<trace sec config\><<< +\long\def\Configure:Sec#1#2#3#4#5{% + \expandafter\ifx\csname c:#1\endcsname\relax \let\:tempa|=\relax \else + \def\:tempa{#4#5}\fi \ifx\:tempa\empty \else + |<conf for sec boundaries|>\fi + \expandafter\ifx\csname a:#1\endcsname\relax \let\:tempa|=\relax \else + \def\:tempa{#2#3}\fi \ifx\:tempa\empty \else + |<conf for sec heads|>\fi +} +>>> + + +\<conf for sec heads\><<< + \def\:tempa{#2}\ifx \:tempa\empty + \expandafter\def\csname a:#1\endcsname + ##1{\hbox{\a:trc #13:4\b:trc}#2\hbox{\c:trc #14:4\d:trc}}% + \else + \expandafter\def\csname a:#1\endcsname##1{#2}% + \fi + \def\:tempa{#3}\ifx \:tempa\empty + \expandafter\def\csname b:#1\endcsname + ##1{\hbox{\a:trc #13:4\b:trc}#3\hbox{\c:trc #14:4\d:trc}}% + \else + \expandafter\def\csname b:#1\endcsname##1{#3}% +\fi +>>> + +\<conf for sec boundaries\><<< +\expandafter\c:def\csname c:#1\endcsname{#4}% +\expandafter\c:def\csname d:#1\endcsname{#5}% +>>> + + +\<Configure for sectioning command\><<< +\edef\:temp{\long\def\expandafter\noexpand \csname + c:\expandafter\:gobble \string#1:\endcsname + ####1####2####3####4{\noexpand + \Configure:Sec\:tempc{####3}{####4}{####1}{####2}}% + \noexpand\NewConfigure{CutAt\expandafter\:gobble \string#1}2% + \noexpand\NewConfigure{+CutAt\expandafter\:gobble \string#1}2% + }\:temp \expandafter\Configure\:tempc{\empty}{}{\empty}{}% +>>> + + + +\Section{Insertions at Boundaries of Logical Units} + +\SubSection{Non Cut Ends} + +\<boundaries of non-cut sections\><<< +\def\:tempa{#1}\noct:Close:Until +\ifx \:tempb \empty \else + \csname d:\ifx \found:\empty #1\else \found:\fi\endcsname \fi +|<advance TitleCount|>\csname c:#1\endcsname +>>> + + +Any need +for \`'\def\:tempa{#1}'? + + + +\<document end for non-cut logical units\><<< +\Close:UntilEnd +>>> + +The following \''\Do:Close''s deal with sectioning unit +at levels deeper than one we are openning. The sectioning +unit at the latter level is closed with the code +\`'\csname d:\ifx \found:\empty #1\else \found:\fi\endcsname' +we just proccessed. + +\<html divs\><<< +\def\noct:Close:Until{% + \let\:tempA|=\sec:typ \let\found:|=\empty + \let\:tempd|=\:Sections \noct:Check:Until + \ifx \:tempb\sec:typ \expandafter\Do:Close \fi + \let\sec:typ|=\:tempA +} +\def\noct:Check:Until{% + \ifx \:tempd\empty |<exit non-cut check-until|>\else + \PopStack\:tempd\:tempb + |<search non-cut end|>% + \ifx \:tempb\sec:typ \else + \expandafter\expandafter\expandafter\noct:Check:Until + \fi\fi } +>>> + +We are about to open a new section unit, and we go as down as possible +in the stack of already openned section units searching for the lowest +unit in the stack that should be closed. The \''\found:' variable +holds the lowest oppened unit to be closed. + + +\<exit non-cut check-until\><<< +\ifx \found:\empty \let\:tempb\empty +\else \let\:tempb|=\found: \let\sec:typ|=\found:\fi +>>> + + +\<search non-cut end\><<< +\edef\:tempe{\:tempb,% + \expandafter\ifx \csname a:end\:tempb\endcsname\relax \else + \csname a:end\:tempb\endcsname \fi,,}% +\expandafter\mod:typ\:tempe|<par del|>% +>>> + + +\<html divs\><<< +\def\mod:typ#1,#2|<par del|>{% + \def\:temp{#1}\ifx \:temp\empty\else + \edef\:temp{\expandafter\expandafter\expandafter + \:gobble\expandafter\string \csname #1\endcsname}% + \ifx \sec:typ\:temp + \let\found:|=\:tempb \let\:temp|=\empty + \else \def\:temp{\mod:typ#2|<par del|>}\fi + \fi \:temp +} +>>> + + +\SubSection{Cut Ends} + +\<boundaries of cut sections\><<< +\Configure{CutAt#1}{|<advance TitleCount|>\csname c:#1\endcsname + }{\def\sec:typ{#1}\Close:Until \csname d:#1\endcsname}% +>>> + +\<html divs\><<< +\def\Close:Until{% + \let\:tempd|=\:Sections \Check:Until + \ifx \:tempb\sec:typ \expandafter\Do:Close \fi +} +\def\Check:Until{ + \ifx \:tempd\empty \let\:tempb|=\empty \else + \PopStack\:tempd\:tempb + \ifx \:tempb\sec:typ \else + \expandafter\expandafter\expandafter\Check:Until + \fi\fi } +>>> + + +\SubSection{Common Utilities} + +\<record sections hierarchy\><<< +\PushStack\:Sections{#1}% +>>> + + +\<html divs\><<< +\PushStack\:Sections{}% +\PopStack\:Sections\:temp +\def\Do:Close{% + \PopStack\:Sections\:tempb + \ifx \sec:typ\:tempb \else + \csname d:\:tempb\endcsname + \expandafter\Do:Close + \fi +} +>>> + +The following is for closing logical units at the end of the file, +when they don't have hypertext pages of their own. + +\<html divs\><<< +\def\Close:UntilEnd{% + \ifx \:Sections\empty \let\:tempb|=\empty + \else \PopStack\:Sections\:tempb \fi + \ifx \:tempb\empty \else + \csname d:\:tempb\endcsname + \expandafter\Close:UntilEnd + \fi +} +>>> + + + +\Section{Building Blocks} + +The \''\ref', \''\Tag', \''\@currentlabel', and \''\cur:th' are for +latex. Also note that \''label' and \''\ref' can appear within +titles, and there we nullify them except within the titles themselves +and tocs. +One problem with the \''\ref' is that +they may cause nested links. + + +\<html divs\><<< +\def\:StartSec#1#2#3{% + \def\title:chs##1##2{##2}% + \def\sec:typ{#1}% + |<delayed TocAt|>% + \a:NoSection + |<round ids between sections|>% + |<button for cut at sect|>% + |<BeforeEvery hook|>% + \expandafter\ifx \csname a:#1\endcsname\relax \else + \csname a:#1\endcsname{#3}% + \fi + \b:NoSection \:Ttle{#1}{#2}{\csname #1:ttl\endcsname{#3}}% + \a:NoSection + \expandafter\ifx \csname b:#1\endcsname\relax \else + \csname b:#1\endcsname{#3}% + \fi + |<Every hook|>% + \csname a:AfterTitle\endcsname \b:NoSection + \def\title:chs##1##2{##1}% +} +\def\title:chs#1#2{#1} +>>> + +\<shared config\><<< +\NewConfigure{NoSection}{2} +>>> + + + + + +The \''\par' before \''|<Every hook|>' is to ensure the use of +\''\ShowPar'. Well, the \''\par' turned out to be a pain in cases we +want no space at all. Hence, we took it out. + + + + + + +On the other hands, we try to make sectioning commands fixed points +for labels. Hence, we try to reduce sensitivity of tocs to changes. + +\<round ids between sections\><<< +\ro:nd\html:lbl{1000}% +>>> + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Title} +%%%%%%%%%%%%%%%%%%%%%%%%% + +\<elements for divs\><<< +\def\:Ttle#1#2#3{% + \html:addr + |<hook for ref/label|>% + {|<introduce `doTocEntry toc@1 (@2) (@3) (page no)' to toc|>}% + {|<typeset @3 and link to toc entry|>}% +} +\gHAssign\TitleCount|=0 \global\let\mu:span|=\TitleCount +>>> + +\<advance TitleCount\><<< +\gHAdvance + \TitleCount |by 1 \global\let\mu:span|=\TitleCount +\expandafter\expandafter\expandafter\global \expandafter + \let\csname #1:Count\endcsname|=\TitleCount +>>> + + +For some reason (what it is?) we can't put the set TitleMark +together with the TitleConunt within CutAt--e.g., tex4ht-html32 screams at +subsection about undefined TitleMark. + +\<set TitleMark\><<< +\expandafter + \let\expandafter\TitleMark\csname #1HMark\endcsname +>>> + +\<tex divisions\><<< +\def\ConfigureMark#1#2{\long\expandafter + \def\csname #1HMark\endcsname{#2}} +>>> + + + +We nulify \''\Link', but this causes no problem because we are +within a group. + +well, \`' \let\Link|=\no:lnk ' is a problem for \`'\Configure{ref}', +so we introduced the latter comamnd. + +\<typeset the html sec title\><<< +\csname a:InsertTitle\endcsname +\csname InsertTitle\endcsname{#1}% +>>> + + +Can't use \''\Title'. Already in maple2e.tex. + + + + + +\<typeset @3 and link to toc entry\><<< +|<href on sec head?|>% +\no:lbl:idx \csname Modify#1Title\endcsname +\html:sectoc{#3}% +>>> + + + +\<tex divisions\><<< +\let\no:lbl:idx|=\empty +\let\toc:lbl:idx|=\empty +>>> + +\Section{Table of Contents} + +The \''\:writetoc' command outputs the expansion of its parameter, and +the page number, into the file. The expanded definition \`'\edef' +provides records the parameter according to the conditions that exist +when the command is encountered. + +\<introduce `doTocEntry toc@1 (@2) (@3) (page no)' to toc\><<< +\escapechar=`\\% +\protect:wrtoc +\csname Modify#1ToToc\endcsname +\edef\:writetoc{\csname if:toc\endcsname{\the\:tokwrite + {\string\doTocEntry + \string\toc \expandafter\ifx\csname toToc:#1\endcsname\relax #1\else + \csname toToc:#1\endcsname\fi + {#2}{\html:tocsec{\ifx \TocTitle\:UnDef #3\else + \TocTitle\fi}}{\the\:tokpage}\relax}}}% +\:writetoc \global\let\TocTitle|=\:UnDef +>>> + +\<elements for divs\><<< +\NewConfigure{toToc}[2]{% + \if !#2!\expandafter\let\csname toToc:#1\endcsname\:UnDef + \else \if !#1!% + \expandafter\let\csname IF:#2toc\expandafter\endcsname + \csname if:#2toc\endcsname + \expandafter\let\csname if:#2toc\endcsname\:gobble + \else \edef\:temp{\string @}\edef\:tempa{\string#1}% + \ifx \:temp\:tempa + \expandafter\let\csname if:#2toc\endcsname\empty + \else \edef\:temp{\string ?}% + \ifx \:temp\:tempa + \expandafter\let\csname if:#2toc\expandafter\endcsname + \csname IF:#2toc\endcsname + \else + \expandafter\def\csname toToc:#1\endcsname{#2}% + \fi\fi\fi\fi} +>>> + +\<elements for divs\><<< +\ifx \:tokwrite\:UnDef + \csname newtoks\endcsname\:tokwrite +\fi +\ifx \:tokpage\:UnDef + \csname newtoks\endcsname\:tokpage +\fi +\:tokpage={\folio} +>>> + +\<html latex divs\><<< + +>>> + +\<elements for divs\><<< +\:tokwrite|={\write\:tocout} +>>> + + +\<html divs\><<< +\def\protect:wrtoc{% + |<no Hnewline|>\PictureOff + \def\%{\string\%}\a:writetoc} +>>> + + + +\<html config util\><<< +\NewConfigure{writetoc}[1]{\concat:config\a:writetoc{#1}} +\let\a:writetoc|=\empty +>>> + + +The following might be solved with protect(?). + + +\`' \let\Link|=\no:lnk ' is a problem for \`'\Configure{ref}'. + + + + +\Section{Links} + + +\<html divs\><<< +\def\html:sectoc#1{\csname if:toc\endcsname{% + \xdef\CurSecHaddr{|<section html addr|>}% + \edef\:attr{\noexpand\scp:Link{% + \ifTag{|<HTag tag|>|<toc-section html addr|>}% + {|<toc-section html addr|>}% + {|<section html addr|>}% + }}% + \:attr{|<section html addr|>}}% + \ifx \EndTitle:Link\:gobble \if:toc{\scp:EndLink}\fi + |<typeset the html sec title|>\EndTitle:Link{\if:toc{\scp:EndLink}}} +\def\html:tocsec#1{\string\csname\space a:TocLink\string\endcsname + {\FileNumber + }{|<section html addr|>}{|<toc-section html addr|>}{#1}} +\let\CurSecHaddr|=\empty +>>> + +If option \`'sections+' is active, the full title is an anchor. +Might be a problem, in particular when the title contains +a footnote. If the option is not active, the anchor for access from +the tocs is empty. + +% [ CLASS="\sec:typ Head"] +% [ CLASS="\sec:typ Toc"] + + + +The command \''\uppercase' is put outside the command \''\:toc' to +convert the lower case character tokens to uppercase characters before +they are inserted into the file. Within \''\:toc' the command \''\uppercase' +is written as is into the auxiliary file, and takes effect only when +the auxiliary file is imported. + + + + +\''\Get:SecAnchor' should provide an anchor in \''\:SecAnchor' for the +cross references. If none is provided, tex4ht will offer one. tex4ht +doesn't really need the address; the idea is to save on duplicated anchors. + +\<section html addr\><<< +\ifx \:SecAnchor\:UnDef + |<toc tag|>1-\file:id-\TitleCount +\else \:SecAnchor \fi >>> + + + +\<toc-section html addr\><<< +|<toc tag|>2-\file:id-\TitleCount >>> + + +\<toc tag\><<< +Q>>> + + +\<hook for ref/label\><<< +\Get:SecAnchor{#1}{#2}{#3}% +>>> + + +\<elements for divs\><<< +\def\Get:SecAnchor#1#2#3{} +>>> + + + + + + + +\Section{Control Links on Section Heads} + + + +Option for univerally no links from titles of sections. + +\<html divs\><<< +\:CheckOption{sections+}\if:Option + \def\Title:Link{\Link} + \def\EndTitle:Link#1{#1} +\else + \def\Title:Link#1{\Link{}} + \let\EndTitle:Link|=\:gobble + \Log:Note{for back links to toc, + use the command line option `sections+'}% +\fi +>>> + +\<shared config\><<< +\NewConfigure{toTocLink}[2]{\def\scp:Link{#1}\def\scp:EndLink{#2}} +\Configure{toTocLink}{\Title:Link}{\EndLink} +>>> + + +The above gives global control. The following local one. +E.g., \`'\NoLink{section}' asks that sections of type `section' +will not act as hot buttons. + +\<html divs\><<< +\def\NoLink#1{\expandafter + \gdef\csname #1:Href-\endcsname{\let\EndTitle:Link|=\:gobble}}% +>>> + + +\<href on sec head?\><<< +\csname #1:Href-\endcsname +>>> + + +\Section{Cut-Offs} + +The following makes a call to, e.g., \`'\cut:at{section}{title}-' + + + +\<button for cut at sect\><<< +|<set TitleMark|>% +\expandafter\ifx \csname Cut:#1\endcsname\relax + |<boundaries of non-cut sections|>% +\else + |<boundaries of cut sections|>% + |<TITLE for Sec|>% + \csname Cut:#1\endcsname{#3}% +\fi +\global\let\sec:lvl|=\HPageDepth +|<record sections hierarchy|>% +>>> + + +% \Configure{CutAtTITLE+} {|<TITLE for Sec|>}% + + +The \`'\let\sec:lvl|=\HPageDepth' is used to determine whether we have +prev-next links with next HPage. As we out from hypertext pages, +the value of \''\HPageDepth' decreases, and the values of +\''\sec:lvl' are kept one value behind. If just before entering +a hypertext page we have \`'\sec:lvl>\HPageDepth', it means +that the last HPage and the next one are at the same depth. Hence, +we allow for prev-next links. We want the \''\global' because +section titles can be within groups as is the case, for instance, +for tables of contents of tables or figures in LaTeX. Without +the global, will need to fix locally the values of \''\sec:lvl' for titles +that are nested in groups. + + +\<TITLE for Sec\><<< +\expandafter\ifx \csname a:\sec:typ TITLE\endcsname\relax\else + \expandafter\let\expandafter\a:CutAtTITLE + \csname a:\sec:typ TITLE\endcsname\fi +>>> + +\<TITLE for SecNO\><<< +\expandafter\ifx \csname a:\sec:typ TITLE\endcsname\relax + \expandafter\HCode \else +\expandafter\expandafter\csname a:\sec:typ TITLE\endcsname\fi +>>> + + + + +\<c:TITLE: for Sec\><<< +\expandafter\def\csname c:#1TITLE+:\endcsname{% + \expandafter\def\csname a:#1TITLE\endcsname####1}% +>>> + +\<html divs\><<< +\HAssign\sec:lvl|=0 +>>> + +\Section{Hooks} + +BeforEvery and Every are single-parameter macros. + +\<def /:Every\><<< +\def\:Every#1{% + \expandafter\edef\csname Every#1\endcsname{% + \def\expandafter\noexpand \csname :Every#1\endcsname####1}% + \expandafter\edef\csname BeforeEvery#1\endcsname{% + \def\expandafter\noexpand\csname :BeforeEvery#1\endcsname####1}% +} +>>> + +\''\Every...' and not \''\AfterEvery...', because we are not yet after the section, we are only after the title. + + +Default hooks are set to tables of contents. + +\<initiate BeforeEvery/Every div\><<< +\:Every{#1}% +\csname Every#1\endcsname{% + \expandafter\ifx\csname Toc:#1\endcsname \relax\else + \a:TocAt \csname Toc:#1\endcsname \b:TocAt + \fi + \ignorespaces}% +>>> + +\<delayed TocAt\><<< +\a:dTocAt \csname TocAt*\endcsname \b:dTocAt +\expand:after{\global\let}\csname TocAt*\endcsname|=\empty +>>> + + +\<html config util\><<< +\NewConfigure{TocAt*}[2]{% + \c:def\a:dTocAt{#1}\c:def\b:dTocAt{#2}} +\NewConfigure{TocAt}[2]{% + \c:def\a:TocAt{#1}\c:def\b:TocAt{#2}} +\Configure{TocAt*}{}{} +\Configure{TocAt}{}{} +>>> + + + + + + +The following occurs for sectioning commands without +subdivisions. + + +\<BeforeEvery hook\><<< +\expandafter\ifx \csname :BeforeEvery#1\endcsname\relax \else + \csname :BeforeEvery#1\endcsname{#3}% +\fi +>>> + + +\<Every hook\><<< +\expandafter\ifx \csname :Every#1\endcsname\relax \else + \csname :Every#1\endcsname{#3}% +\fi +>>> + + +\Section{Utilities} + + +Normally, the leading paragraphs in chapters and sections start with +no indentation, whereas the other paragraphs start with indentations. +To achieve this effect, we can allow a contribution of an indentation to +all the paragraphs, with provisions for removing the indentations from +selected paragraphs. + + + +Without the \''\immediate' we can get problems on boundary between pages. + + + +\Section{Configurations for CutAt} + + + + +The \`'\par\ShowPar' is to ensure that buttons at +end of a page will not get into the last entry of the table in case +of a cut-off situation. + + + + + + + + +\Chapter{Tables of Contents} + + + + + + + + + + +\Section{Archiving the Table} + +For a source document that is stored in file named \''abc.xyz' the +table is assumed to be stored in a file that carries the name +\''abc.4tc'. It is archived into \''abc.4ct'. + +\<blocs for tocs\><<< +\openin15=\jobname.4tc +\ifeof15 \closein15 + \def\:TableOfContents[#1]{\writesixteen{No file \jobname.4tc}} + |<undef /TableOfContents|> +\else + \ifHtml |<def html /TableOfContents|> + \fi + |<copy toc|> +\fi +>>> + + +\<copy toc\><<< +\begingroup + \catcode`^|=7 + |<define /:copytoc|> \ifHtml \catcode`\#|=12\relax \fi + \def\:next{\catcode\tmp:cnt|=12 + \ifnum \tmp:cnt=0 + \def\:next{% + \catcode`\^^M|=5 + \immediate\openout15=\jobname.4ct \:copytoc + \immediate\closeout15 + \endgroup \closein15 + }% + \fi + \advance\tmp:cnt |by -1 \:next + } + \tmp:cnt|=255 \:next +>>> + + +\<define /:copytoc\><<< +\def\:copytoc{% + \ifeof15 \else + \read15 to \:temp + {\escapechar=`\\\immediate\write15{\:temp}}% + \expandafter\:copytoc + \fi} +>>> + +\Section{Invoked Tables of Contents} + + +\SubSection{Listing the Entries} + + + + +The following pair of definitions are a degenerated case of the `sty' option +in which the parameters are required for a table to appear. + +\<undef /TableOfContents\><<< +\ifx \TableOfContents\:UnDef + \def\TableOfContents{\futurelet\:temp\:TOC} + \def\:TOC{\ifx [\:temp \expandafter\:TableOfContents\fi} +\fi +>>> + + + +\<def html /TableOfContents\><<< +|<undef /TableOfContents|> +\def\:TableOfContents[#1]{\SaveEverypar{% + \def\TocCount{0}% + |<interpretation for entries|>% + \def\InsertTitle##1##2##3{}% + \hsize|=4.5in \rightskip |= \z@ minus 1in \linepenalty|=1000 + \catcode`\#|=12 \catcode`\@|=11 \catcode`\:|=11 + |<Configure HtmlPar for TOC|>\everypar{\HtmlPar}% + |<before toc|>\input \jobname.4ct + {\ht:everypar{}\leavevmode}|<bottom toc|>% + \par }\RecallEverypar |<after toc|>} +>>> + +\<after toc\><<< +\ifx \c:tableofcontents\:UnDef + \csname c:TableOfContents\endcsname +\else \c:tableofcontents \fi +>>> + +\<before toc\><<< +\ifx \a:tableofcontents\:UnDef \csname a:TableOfContents\endcsname +\else \a:tableofcontents \fi +>>> + + + +\<bottom toc\><<< +\ifx \b:tableofcontents\:UnDef + \csname b:TableOfContents\endcsname +\else \b:tableofcontents \fi +>>> + + + + +\<par toc\><<< +\ifx \d:tableofcontents\:UnDef \csname d:TableOfContents\endcsname +\else \d:tableofcontents \fi +>>> + +\<noindent toc par\><<< +\ifx \e:tableofcontents\:UnDef + \csname e:TableOfContents\endcsname +\else \e:tableofcontents \fi +>>> + + + + + + + + + + +The following might be a problem LaTeX, in particular +with \''\IgnoreIndent/\ShowIndent' cases. A partial solution +to the problem used the code +\`'\if:latex \if:nopar \else + \Configure{HtmlPar}{}{\Configure + {HtmlPar}{|<noindent toc par|>}{|<par toc|>}{}{}}{}{}% +\fi\fi', but then we got problems elsewhere. + +\<Configure HtmlPar for TOC\><<< +\Configure{HtmlPar}{|<noindent toc par|>}{|<par toc|>}{}{}% +>>> + + + + + +\SubSection{Loading the Entries} + + +\<interpretation for entries\><<< +\:tocPreamble#1,,% +\let\doTocEntry|=\:doTocEntry +\def\contentsline##1##2##3{##2}% +\no:lbl:idx +>>> + + + + +\<blocs for tocs\><<< +\def\:doTocEntry#1#2#3#4{% + \Advance:\TocCount |by 1 + \expandafter\ifx \csname \string#1 \endcsname \relax \else + #1{#2}{#3}{#4}\fi +} +>>> + +\<shared config\><<< +\NewConfigure{TocLink}[1]{\def\a:TocLink##1##2##3##4{#1}} +>>> + +A field \`'[\ifnum \FileNumber=#1 + \else \RefFileNumber{#1}\fi]' buys nothing as far as memory +is concerned. + +\<def Configure\><<< +\long\def\ConfigureToc#1#2#3#4#5{% + \expandafter\def\csname toc#1\endcsname##1##2##3{#5}% + |<cond toc config|>% +} +>>> + + +\<trace commands\><<< +\long\def\ConfigureToc#1#2#3#4#5{% + \expandafter\def\csname toc#1\endcsname##1##2##3{#5}% + \edit:p\def\:temp{#2#3#4#5}\ifx \:temp\empty + \expandafter\pend:defIII\csname toc#1\endcsname{\hbox + {\a:trc Toc(#1)1\b:trc}####1\hbox{\a:trc Toc(#1)2\b:trc}####2\hbox + {\a:trc Toc(#1)3\b:trc}####3\hbox{\a:trc Toc(#1)4\b:trc}}% + \else + |<cond toc config|>% + \fi +} +>>> + + + +\<cond toc config\><<< +\def\:temp{#4}\ifx \:temp\empty \else + \expandafter\pend:defIII\csname toc#1\endcsname{#4####3}% +\fi +\def\:temp{#3}\ifx \:temp\empty \else + \expandafter\pend:defIII\csname toc#1\endcsname{#3####2}% +\fi +\def\:temp{#2}\ifx \:temp\empty \else + \expandafter\pend:defIII\csname toc#1\endcsname{#2####1}% +\fi +>>> + +\<blocs for tocs\><<< +\def\:tocPreamble#1,{% + \def\:temp{#1}\ifx \:temp\empty \else + \edef\:temp{\expandafter\string\csname toc#1 \endcsname}% + \expandafter\expandafter\expandafter\let + \expandafter\csname\:temp\endcsname|=\empty + \expandafter\:tocPreamble\fi} +>>> + + + + + + + + + + + + + + +\SubSection{Collecting the Entries} + +After producing the table of contents from the previous compilation, +a file is opened for collecting the entries of the table from the +current compilation. + +\<blocs for tocs\><<< +\ifx \:tocout\:UnDef + \csname newwrite\endcsname\:tocout +\fi +\def\:temp{% +|<if latex then latex/write sol|>\openout\:tocout|=\jobname.4tc + |<doTocEntry for dvi|>} +\:temp +>>> + +In case we switch from html to dvi mode, without the presence of +TeX4ht, we want to hide the \''\doTocEntry'.. +The \`'\escapechar' decides what is written out for escape character, +no matter what the actual symbol is. texinfo changes that symbol to +{\tt \string\escapechar=`\string\@}. + +\<doTocEntry for dvi\><<< +{\escapechar=`\\|<if latex then latex/write sol|>\write + \:tocout{\string\expandafter\string\ifx + \noexpand\csname doTocEntry\string\endcsname\relax + \string\expandafter\string\endinput + \string\fi}% +}% +>>> + + + + +\Section{Triggered Tables of Contents} + +The \`'\TocAt-{...}' command asks for no TOC, the \`'TocAt*{...}' +command asks for a TOC delayed until the next section, \`'\TocAt{...}' +asks for TOC in place, and a list of size one asks for no more local +TOC's for the given logical unit. + +\<blocs for tocs\><<< +\def\TocAt#1{% + \def\:next##1{\:TocAt##1,//}% + \def\:tempa{#1}\def\:temp{-}\ifx \:tempa\:temp \let\:temp|=-% + \else \def\:temp{*}\ifx \:tempa\:temp \let\:temp|=*% + \else \def\:next{\:TocAt#1,//}% + \fi \fi \:next } +>>> + + + + + +\<Toc:At>\><<< +\expandafter\edef\csname Toc:#1\endcsname{% + \gdef\expandafter\noexpand\csname TocAt*\endcsname{% + \noexpand \csname Toc#1\noexpand\endcsname }}% +>>> + +\<Toc:At\><<< +\expandafter\edef\csname Toc:#1\endcsname{% + \noexpand\csname Toc#1\noexpand\endcsname }% +>>> + +\<blocs for tocs\><<< +\def\:TocAt#1,#2//{% + \ifx -\:temp \else \ifx *\:temp + |<Toc:At>|>% + \else |<Toc:At|>\fi \fi + \def\:temp{#2}\ifx \:temp\empty + \expandafter\let\csname Toc#1\endcsname|=\:UnDef + \else |<extract the entries|>\fi } +>>> + +\SubSection{Process the Request} + +For \`'\TocAt{X,...,Y,...}' we define a \''\TocX' that includes the +interpretations for the different \''\tocY' w of Xithin commands of +the form \`'X::tocY'. + + + +\<extract the entries\><<< +\let\:include|=\empty +\::TocAt#1,/#1,#2,,//% +\edef\:include{\expandafter\:removecomma\:include}% +\expandafter\edef\csname Toc#1\endcsname{{% + \let\noexpand\TitleCount|=\expandafter\noexpand + \csname #1:Count\endcsname + \noexpand\:assgtoc\:include,//{#1}% + \:tocs[\:include]}}% +>>> + + + +\SubSection{Process the Request} + +\<blocs for tocs\><<< +\def\:tocs{\noexpand\TableOfContents} +>>> + + + + +\<blocs for tocs\><<< +\def\:removecomma#1{} +\def\:assgtoc#1,#2//#3{% + \expand:after{\expandafter\let\csname toc#1\endcsname |=}% + \csname #3::toc#1\endcsname + \if:notempty{#2}{\:assgtoc#2//{#3}}} +>>> + +\<blocs for tocs\><<< +\def\::TocAt#1,#2,#3//{\def\:temp{#2}% + \ifx \:temp\empty \else + \if /\:firstch#2 //% + |<stop toc for @1 at @2|>% + \else |<include @2 in toc for @1|>\fi + \expand:after{\::TocAt#1,#3//}% + \fi +} +>>> + +\SubSection{Interpretation for Included Entry} + +Also for \`'\TocAt{X,....,Y,...}' the interpretation is +defined in \`'X::tocY'. + + +\<include @2 in toc for @1\><<< +\edef\:include{\:include,#2}% +\expand:after{\expandafter\let\csname svtoc::#2\endcsname|=}% + \csname toc#2\endcsname +\expandafter\edef\csname #1::toc#2\endcsname##1##2##3{% + \noexpand\ifnum \noexpand\TitleCount<\noexpand\TocCount + \noexpand\space + \expandafter\noexpand \csname svtoc::#2\endcsname{##1}{##2}{##3}% + \noexpand\fi}% +>>> + + +Tex4ht relies on two counters \`'\TitleCount' and \`'\TocCount' to +decide which entries of the global TOC should go to the local TOC. +The first counter is increased when sectioning commands are +encountered. The second counter is increased when the global TOC is +traversed. + +A discrepancy will occur when the contributions of the sectioning +commands to the global TOC are not synchronized with the increments of +the first counter. That will normally be the case when sectioning +commands are introduced without tex4h being informed about their +designation as sectioning commands. + + +\SubSection{End Points} + + +Also for \`'\TocAt{X,....,/Y,...}' the termination point that we get is +defined in \`'X::tocY'. + +\<blocs for tocs\><<< +\def\:firstch#1#2 //{#1\def\:temp{#2}} +>>> + + +\<stop toc for @1 at @2\><<< +\edef\:include{\:include,\:temp}% +\expandafter\def\csname #1::toc\:temp\endcsname##1##2##3{% + \ifnum \TitleCount<\TocCount + \Advance:\TocCount |by -100000 \endinput + \fi}% +>>> + +The \''\endinput' is not required but it desired because it cuts off +the reading of the toc file. The \''-100000' is needed +forhierarchical toc's due to parent-child relashions. + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Chapter{halign-based tables} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<halign-based tables\><<< +|<all halign-based tables|> +|<html blocks for halign tables|> +|<html halign|> +\def\:temp{\let\:shrp|=##} \:temp +>>> + +The \''\:shrp' should be defined at the end so as not +to bother other definitions that will regard it as improper +\`'#' parameter. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Taming of halign} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The \''\halign' comamnds not defined within TeX4ht environment +can be problematic, and the same may be true to some within such +environnt. Specifically, comamnds of the form \`'\halign...{...}' +are translated well in TeX4ht, but cause a problem if defined +before TeX4ht was activated. Commands of the form +\`'\halign...\bgroup...' cause no problem in either mode, but they +also introduce no html code. Commands of the form +\''\halign...{...\egroup' cause problems in either way. + +TeX4ht takes care of the \''\halign' commands in TeX and LaTeX, +but not of those that are loaded earlier from other libraries. + + +The following tree shows the direct and indirect use of \''\halign' in +TeX and LaTeX. + +\Draw +\TreeAlign(H,1,0)(0,0,0) +\TreeSpace(D,10,10) +\Tree()( +5,halign// +12,ialign{(T,L)} & 0,displaylines{(T,L)} & + 0,eqalignno{(T)} & 0,leqalignno{(T)} & + 0,eqnarray{(L)}// +0,m@ketabbox{(T)} & 0,oalign{(T,L)} & 0,angle{(T,L)} & + 0,overrightarrow{(T,L)}~~\hfill overleftarrow{(T,L)}~~ + \hfill overbrace{(T,L)}~~\hfill underbrace{(T,L)} & + 0,@vereq{(T,L)} & 0,cases{(T,L)} & 0,matrix{(T)} & 0,bordermatrix{(T,L)} & + 0,eqalign{(T)} & 0,@array{(L)} & 0,@ishortstack{(L)} & + 0,table{(L)}// +) + +\EndDraw + + +The \`'\iffalse{\fi...\iffalse}\fi' is to hide the \`'\cr' from +\''\halign' when it scans for that command. + + +\<all halign-based tables\><<< +\let\TeXhalign|=\halign +\def\RecallTeXcr{\iffalse{\fi + \expand:after{\let\cr|=}\csname 0cr\endcsname + \expand:after{\let\crcr|=}\csname 0crcr\endcsname + \iffalse}\fi} +\expandafter\let\csname 0cr\endcsname|=\cr +\expandafter\let\csname 0crcr\endcsname|=\crcr +\def\TeXhalign:cr{% + \ifx \EndPicture\:UnDef \else \iffalse{\fi + \expandafter\let\expandafter\cr\csname \MkHalign:d cr\endcsname + \expandafter\let\expandafter\crcr\csname \MkHalign:d crcr\endcsname + \iffalse}\fi \fi \TeXhalign} +>>> + + + Save/recover \''\crcr' and \''\cr' causes problems, e.g., in nested arrays. +It seems also we don't really need such a feature. + + + + +\<tex4ht halign and cr/crcr\><<< +\let\halign|=\sv:halign +>>> + + + + +%\edef\TeXhalign:cr{% +% \noexpand\ifx \noexpand\EndPicture\noexpand\:UnDef \noexpand\else +% \let\cr|=\expandafter\noexpand\csname 0cr\endcsname +% \let\crcr|=\expandafter\noexpand\csname 0crcr\endcsname +% \noexpand\fi \noexpand\TeXhalign} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Building Blocks for Accessing Halign Tables} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The next comamnd can be in use when the parameters \`'#' (i.e., +the first parameter \''#1') are in cat code 13. + + +We hade \''\:relax' instead of \''\relax' below. Where did it come +from? + + +The \''\MkHalign' takes the form +\`'\MkHalign#{...pattern...}...body...\EndHalign' and seeds the end +tags \''\a:halign' and \''\b:halign' around the construct, and +\''\c:halign' and \`'d:halign' in the pattern. The outcome is a seeded +\`'\halign{...}'. The \`'\Configure{MkHalign}...' places +\''a:MkHalign', \''b:MkHalign', \''c:MkHalign', \''d:MkHalign', +\''e:MkHalign', and \''\f:MkHalign' within \''\a:halign', +\''\b:halign', \''\c:halign', and \`'d:halign'. The \`'#' in the +pattern can be any character of category code 13. The \`'&' charaters +shouldn't be within braces. The \''\RecallTeXcr' should appear +before \''\MkHalign'; if it appears within the pattern, we loose +the row breaks. + + + +\<html blocks for halign tables\><<< +\def\MkHalign#1#2{% + \iffalse{\fi \let\sv:new:row|=\new:row + \def\relax:shrp{\let#1|=\relax}% + \def\new:halign{\TeXhalign \bgroup}% + \add:halign#2&|<par del|>\cr + \let#1|=\:shrp |<before TeXhalign|>% + \iffalse}\fi |<protection for $$|>% + \a:PauseMkHalign \new:halign\ext:cr} +\def\EndMkHalign{\egroup + \d:PauseMkHalign |<end protection for $$|>% + \iffalse{\fi |<after TeXhalign|>\relax:shrp \iffalse}\fi } +\def\PauseMkHalign#1{\cr\egroup + \hbox{\r:halign \global\let\new:row|=\R:halign}\b:PauseMkHalign + #1\c:PauseMkHalign\new:halign\ext:cr} +>>> + +\<shared config\><<< +\NewConfigure{PauseMkHalign}{4} +>>> + + +The PauseMkHalign provides a vehicle to decompose a +\''\halign\bgroup...0......1...\egroup' and recompose it in arbitrary order and +choise of components, as is the case in longtable: +\`'\setbox0=\hbox{\halign\bgroup...0...\egroup} +\setbox1=\hbox{\halign\bgroup...1...\egroup}\box0\box1'. In some +occasions, and may be all, the parameter of \''\PauseMkHalign' must be +just boxes. + +The \`'\iffalse ...\fi' above are for hiding \''\cr' in +nested cases (e.g., of \''\tabular' in LaTeX). + +Spans over N columns require many compilations to +realize them. + +The following is an application of \''\MkHalign'. +it allows for tables of the form \`'\MiniHalign...\EndMiniHalign' +instead of \`'\halign{...}'. + +\<html blocks for halign tables\><<< + \catcode`\#|=13 \catcode`\@|=6 +\def\MiniHalign{\begingroup \catcode`\#|=13 \let#|=\relax + \:MHalign} +\def\:MHalign@1\cr{\endgroup \SaveMkHalignConfig + \Configure{MkHalign}{\a:MiniHalign}{\b:MiniHalign}\c:MiniHalign + \d:MiniHalign{\e:MiniHalign\RecallMkHalignConfig}\f:MiniHalign + \MkHalign#{@1}} + \catcode`\#|=6 \catcode`\@|=11 +\def\EndMiniHalign{\EndMkHalign \RecallMkHalignConfig } +>>> + +\<shared config\><<< +\NewConfigure{MiniHalign}{6} +>>> + + + +\ifHtml[\HPage{test data}\Verbatim + + \documentclass{article} + + \input tex4ht.sty \Preamble{html} + \begin{document} + \EndPreamble + +\begin{tabular}{c|} +before + \begin{tabular}{c|} center \end{tabular} +after +\end{tabular} + +\end{document} +\EndVerbatim\EndHPage{}]\fi + + +\<protection for $$\><<< +\begingroup +\ifmmode \def\end:m{$$\egroup}\vtop\bgroup$$\else +\let \end:m|=\empty\fi +>>> + + +\<end protection for $$\><<< +\end:m\endgroup +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Build Expanded Pattern} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Break the pattern at \`'&'s and enclose with calls for html +code. + +\<html blocks for halign tables\><<< +\def\add:halign#1\cr{% + \def\:temp{#2}\def\:tempb{|<par del|>}% + \ifx \:temp\:tempb + \append:def\new:halign{\b:halign#1\c:halign}% + \else + \def\:temp{#1}\ifx\:temp\empty \append:def\new:halign{&}% + \else \append:def\new:halign{\b:halign#1\c:halign&}\fi + \add:halign#2\cr + \fi} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Html Insertions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<before TeXhalign\><<< +\global\let\new:row|=\R:halign +\Advance:\MkHalign:d |by 1 +\expandafter\let\csname \MkHalign:d cr\endcsname|=\cr +\expandafter\let\csname \MkHalign:d crcr\endcsname|=\crcr +\edef\cr{\noexpand\rR:halign + \expandafter\noexpand \csname \MkHalign:d cr\endcsname}% +\edef\crcr{\noexpand\rR:halign + \expandafter\noexpand \csname \MkHalign:d crcr\endcsname}% +\let\omit|=\om:t \def\TT:halign{\T:halign \global\let\TT:halign|=\empty}% +>>> + +Inserting \''\T:halign' here causes infinite loop in \''\@array' +of latex. Hence, we delay it to the stat of the first element. + +\<after TeXhalign\><<< +\expand:after{\let\cr|=}\csname \MkHalign:d cr\endcsname +\expand:after{\let\crcr|=}\csname \MkHalign:d crcr\endcsname +\let\omit|=\:omit +{\ht:everypar{}\r:halign}\t:halign +\Advance:\MkHalign:d |by -1 +>>> + +\<html blocks for halign tables\><<< +\def\rR:halign{\gdef\new:row{\r:halign \R:halign}} +\HAssign\MkHalign:d |= 0 +>>> + + + + + +\<html blocks for halign tables\><<< +\def\b:halign{\BB:halign \bgroup} +\def\c:halign{\egroup\d:halign} +\def\BB:halign{\expand:after{\global\let\new:row|=\empty }\new:row + \D:halign} +>>> + +The \''\Configure' may use the values of \''\:MULTISPAN', \''\halignTD', +\''\HRow'' and \''\HCol'. The \''\halignTD' gets its value from +\''\Configure{TD}{...}'. + + +\<html config util\><<< +\def\halignTD{\ifx \:mALIGN\empty \hT:D \else \:mALIGN \fi} +\def\halignTB#1{ + \expandafter\ifx \csname :#1:\endcsname\relax + \:warning{Missing \string\Configure{halignTB<>}{#1}}% + \else + \global\expandafter\let\expandafter\:MkHalign: + \csname :#1:\endcsname \a:halignTB \expandafter\expandafter + \expandafter\halign:TB \csname :#1:\endcsname|<par del|>\b:halignTB + \fi } +\NewConfigure{halignTB}{2} +\NewConfigure{halignTB<>}[2]{% + \expandafter\def\csname :#1:\endcsname{#2}} +|<init :MkHalign:|> +>>> + +\<html config util\><<< +\NewConfigure{MkHalign}[6]{% + \def\T:halign{\PushMacro\:MkHalign:|<init :MkHalign:|>#1}% + \def\t:halign{#2\PopMacro\:MkHalign: + \global\let\:MkHalign:|=\:MkHalign:}% + \def\R:halign{\TT:halign \gHAdvance\HRow |by 1 \gHAssign\HCol|=1 + #3}% + \def\r:halign{\end:omit#4}% + \def\D:halign{\:nopartrue + |<save dH|>% + |<cond TD for multispan|>% + \ifnum\MS:count=\ifx \:MULTISPAN\:UnDef \MS:count + \else \:MULTISPAN\fi + \expandafter\gdef\csname dH\MkHalign:d\endcsname + {|<cond /TD for multispan|>}\fi}% + \def\d:halign{\csname dH\ifnum \MkHalign:d<1 1\else \MkHalign:d\fi + \endcsname |<recall dH|>}} +\Configure{MkHalign}{}{}{}{}{}{} +\HAssign\dH:cnt|=0 +>>> + +\<save dH\><<< +\gHAdvance\dH:cnt by 1 +\edef\:tempa{\global\let\expandafter\noexpand\csname xc\dH:cnt\endcsname + \expandafter\noexpand\csname dH\MkHalign:d\endcsname}% +\:tempa +\expandafter\xdef\csname \dH:cnt :tempa\endcsname{% + \global\let \expandafter\noexpand\csname dH\MkHalign:d\endcsname + \expandafter\noexpand\csname xc\dH:cnt\endcsname}% +>>> + +\<recall dH\><<< +\csname \dH:cnt :tempa\endcsname +\gHAdvance\dH:cnt by -1 +>>> + +Nonleading \`'\csname dH\MkHalign:d\endcsname' produce improper closing +delimiters in \`'\multispan' of index $>$ 1. In such cases, only the +outcome of the first \`'\D:halign' contribute for the openning +delimiter---occuring in the iteration in which +\`'\MS:count=\:MULTISPAN'. + +The \`'\ifnum \MkHalign:d<1 1\else \MkHalign:d\fi' is needed because we +can get down to 0 if the last entry is a \''\multispan'. + + + + +\<math config util\><<< + +>>> + +\<init :MkHalign:\><<< +\Configure{halignTB<>}{MkHalign}{<>}% +>>> + + + +The saving \`'\csname dH\MkHalign:d\endcsname' and loading is to +protect from changes that may occur inside the entity in the meaning +of \''\d:halign'. Don't we need the same for \''\r:halign'? + +The following is for tracing users definitions to be used in extensions +that need to do reverse eng of the users input. + + +\<shared configNO\><<< +\NewConfigure{TraceTables}[8]{\def\trc:T{#1}\def\trc:eT{#2}% + \def\trc:t{#3}\def\trc:et{#4}\def\trc:R{#5}\def\trc:eR{#6}% + \def\trc:r{#7}\def\trc:er{#8}\d:TrcHlgn} +\def\d:TrcHlgn#1#2#3#4{\def\trc:D{#1}\def\trc:eD{#2}% + \def\trc:d{#3}\def\trc:ed{#4}} +>>> + + +The \''\:removeindenttrue' is important, for instance, in case of +a \''\noalign{...}'. + +When we meet \`'&&', which signals a loop. + + +We place \''#' under catcode 13. \''\noalign' is ignored. + + + +\<html blocks for halign tables\><<< +\def\SaveMkHalignConfig{\let\sT:halign|=\T:halign + \let\st:halign|=\t:halign + \let\sR:halign|=\R:halign + \let\sr:halign|=\r:halign + \let\sD:halign|=\D:halign + \let\sd:halign|=\d:halign} +\def\RecallMkHalignConfig{\let\T:halign|=\sT:halign + \let\t:halign|=\st:halign + \let\R:halign|=\sR:halign + \let\r:halign|=\sr:halign + \let\D:halign|=\sD:halign + \let\d:halign|=\sd:halign} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{/omit and /span} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<html blocks for halign tables\><<< +\let\:omit|=\omit +\def\om:t{\:omit \BB:halign + \gdef\end:omit{\gdef\end:omit{}\d:halign}} +\let\end:omit|=\empty +>>> + + +A \''\multispa' is a sequence of \''\span''s. Each \''\span' +puts \`'\HRow.\HCol;' in \''\new:span;'. Next compilation +retrieves this info to compute \''\:MULTISPAN'. + + +\<cond TD for multispan\><<< +\gHAdvance\MS:count |by -1 +\ifnum \MS:count > 0 \else + \end:omit \relax:shrp \derive:TD + \HAssign\:MULTISPAN|=1 \let\:mALIGN|=\empty + \expandafter\add:span\old:span \gHAssign\MS:count|=\:MULTISPAN + \relax #5% +\fi +\xdef\Step:Col{\ifx \HMultispan\:UnDef 1 \else \HMultispan\fi}% +>>> + +\<cond /TD for multispan\><<< +\ifnum \MS:count<2 #6\relax + \gHAdvance\HCol \Step:Col\relax \fi +>>> + + + + + + +% \ifnum \MS:count<2 #6 \gHAdvance\HCol |by 1 \fi + + +For some reason \`'\if:latex\@multicnt\else\mscount\fi' +didn't work for \''\MS:count>0' on + +\Verbatim +\halign{#\qquad& \$# each\cr +\omit\span\omit\hfil + Shipping Charges\hfil\cr +1--10&1.30\cr11--100&1.00\cr +111--&0.70\cr} +\EndVerbatim + + +Tried to put \`'\iffalse{\fi \let\cr|=\ext:cr \let\crcr|=\ext:crcr + \iffalse}\fi ' at start of cell. It didn't work, because I couldn't + restore the \''\cr' and \''\crcr' before the \''\cr' is read at end + of line. This doesn't look like an important because + the redefined version just has a \''\gdef' in it and produces no code + of itself. However, it is important because problems sometimes +arise if a nonnative instance is present, for instance, in +\`'\openup10pt \halign{ + $2^{#}$\quad& + $\overbrace{2\cdots 2}^{# + \rm times}$\quad& #\cr + 2&2&4\cr 3&3&8\cr } +'. + + +See Knuth 386 for the + hiding +\`'\iffalse{\fi\let\cr|=\ext:cr\iffalse}\fi ' of \''\cr'. + +\<html blocks for halign tables\><<< +\let\ext:cr|=\cr \let\ext:crcr|=\crcr +>>> + +\<html blocks for halign tables\><<< +\let\:span|=\span +\def\add:span#1;{\def\:tempa{#1}\edef\:temp{\HRow .\HCol}% + \ifx \:temp\:tempa \Advance:\:MULTISPAN |by 1 \fi + \ifx \:tempa\empty \let\HMultispan|=\:MULTISPAN + \else + |<align for multispan in latex|>% + \expandafter\add:span + \fi } +>>> + + + + + + + +\<align for multispan in latex\><<< +\let\:temp|=\relax +\def\:temp##1.{\def\:temp####1|<par del|>{\def\:temp{####1}}% + \afterassignment\:temp\tmp:cnt}% +\expandafter\expandafter\expandafter\:temp\expandafter\:tempa|<par del|>% +\edef\:tempb{\HRow.\HCol\:temp}\ifx\:tempa\:tempb + \expandafter\ifx \csname \expandafter\string\:temp :T:D\endcsname\relax + \else \edef\:mALIGN{\expandafter\noexpand + \csname \expandafter\string\:temp :T:D\endcsname}% +\fi\fi +>>> + +\<NO\><<< +\edef\:temp{\HRow .\HCol<}% +\ifx \:temp\:tempa \def\:mALIGN{\l:TD}\fi +\edef\:temp{\HRow .\HCol-}% +\ifx \:temp\:tempa \def\:mALIGN{\c:TD}\fi +\edef\:temp{\HRow .\HCol>}% +\ifx \:temp\:tempa \def\:mALIGN{\r:TD}\fi +>>> + + + +\<before TeXhalign\><<< +\let\sv:end:omit|=\end:omit \let\end:omit|=\empty +\let\ms:count|=\MS:count \HAssign\MS:count|=0 +\let\lgn:r|=\HRow \let\lgn:c|=\HCol \HAssign\HRow|=0 +\def\span{\xdef\new:span{\new:span\HRow.\HCol;}\:span}% +\let\sv:new:span|=\new:span \let\new:span|=\empty +\gHAdvance\Halgn:cnt |by 1 \edef\halign:id{\Halgn:cnt}% +\edef\old:span{\LikeRef{|<halign tag|>}}% +\ifx \old:span\space \def\old:span{;}\fi +>>> + +The \`'\ifx \old:span\space \def\old:span{;}\fi' is needed for first +runs when no info is yet available. + +\<after TeXhalign\><<< +\Tag{|<halign tag|>}{\new:span;}% +\global\let\new:span|=\sv:new:span +\iffalse{\fi \let\span|=\:span \iffalse}\fi +\global\let\HRow|=\lgn:r \global\let\HCol|=\lgn:c +\global\let\MS:count|=\ms:count +\global\let\new:row|=\sv:new:row +\global\let\end:omit|=\sv:end:omit +>>> + +\<html blocks for halign tables\><<< +\HAssign\Halgn:cnt|=0 +>>> + + + + +The \''\mu:span' Provides a little movement to +avoid oscilation of multi spans around incorrect values. +It is attached to \''\TitleCount' ingeneral, but not +within \`'\begin{longtable}...\end{longtable}'. +In that environment, \''\caption' may appear, and so change +the value of \''\TitleCount' in the middle of a table, within +a \''\multispan'. + + + + +\<halign tag\><<< +|<auto tag|>M\halign:id x\mu:span>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{TD Script} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Through \''\Configure{MkHalign}{....}' with entries of the form +\`'row col insertion ' (space at end: + \`'\Contribute{halignTD}{1 1 - }' is fine but +not \`'\Contribute{halignTD}{1 1 -}'. The first character may be a +code +\''<', \''-', \''>', \''^', \''=', \''-', or \''_'. A row of +value 0 applies for a full column, a column of 0 stands for a full +row, and row and col of 0 stand for a full table. + + + + +\<html blocks for halign tables\><<< +\def\derive:TD{% + \bgroup \no:actv + \xdef\:temp{\noexpand\expandafter\noexpand\:temp + \noexpand\halign:TD\:MkHalign: -0 0 1 |<par del|>}% + \egroup + \let\hT:D|=\:temp + \def\:temp##1 ##2 ##3 {\ifnum -1=##1##2##3 \else + |<process TD op|> \expandafter\:temp \fi}% + \def\:tempa##1\empty{}% + \edef\hT:D{\hT:D}} +>>> + + + + + +\<process TD op\><<< +\ifnum \HRow=##1 \ifnum \HCol=##2 \:TDcode ##3\fi\fi +\ifnum \HRow=##1 \ifnum 0=##2 \:TDcode ##3\fi\fi +\ifnum 0=##1 \ifnum \HCol=##2 \:TDcode ##3\fi\fi +\ifnum 0=##1 \ifnum 0=##2 \:TDcode ##3\fi\fi +>>> + +\<html blocks for halign tables\><<< +\def\:TDcode#1{|<process TD code|>\EndTD:CLASS} + \catcode`\_=13 \catcode`\^=13 +\pend:defI\:TDcode{\TD:CLASS}% +\let\:temp|=\relax \let\:tempa|=\relax +\edef\no:actv{\let\noexpand\noexpand\noexpand^|=\:temp + \let\noexpand\noexpand\noexpand_|=\:tempa} + \catcode`\_=8 \catcode`\^=7 +\def\:temp{^} \def\:tempa{_} +\edef\no:actv{\no:actv} +>>> + + +\<html blocks for halign tablesNOOO\><<< +\def\:TDcode#1{|<process TD code|>\EndTD:CLASS} + \catcode`\_=13 \catcode`\^=13 +\pend:defI\:TDcode{\TD:CLASS + \ifx _##1 \o:TD \expandafter\:tempa \fi + \ifx ^##1 \t:TD \expandafter\:tempa\fi}% +\let\:temp|=\relax \let\:tempa|=\relax +\edef\no:actv{\let\noexpand\noexpand\noexpand^|=\:temp + \let\noexpand\noexpand\noexpand_|=\:tempa} + \catcode`\_=8 \catcode`\^=7 +\def\:temp{^} \def\:tempa{_} +\edef\no:actv{\no:actv} +>>> + + + + + +\<process TD codeOLDTD\><<< +\ifx <#1 \l:TD \expandafter\:tempa \fi +\ifx -#1 \c:TD \expandafter\:tempa \fi +\ifx >#1 \r:TD \expandafter\:tempa \fi +\ifx ^#1 \t:TD \expandafter\:tempa \fi +\ifx =#1 \b:TD \expandafter\:tempa \fi +\ifx ||#1 \m:TD \expandafter\:tempa \fi +\ifx _#1 \o:TD \expandafter\:tempa \fi +\ifx p#1 \p:TD \expandafter\:tempa \fi +\expandafter#1\empty +>>> + + + +\<process TD code\><<< +\expandafter + \ifx \csname \string#1:T:D\endcsname\relax \else + \csname \string#1:T:D\endcsname \expandafter\:tempa \fi +\expandafter#1\empty +>>> + + +\<html config util\><<< +\NewConfigure{halignTD}[2]{\c:def\TD:CLASS{#1}% + \c:def\EndTD:CLASS{#2}\scan:halignTD} +\def\scan:halignTD#1{\def\:temp{#1}\ifx \:temp\empty\else + \expandafter \sc:halignTD\fi{#1}} +\def\sc:halignTD#1#2{\expandafter\def\csname + \string#1:T:D\endcsname{#2}\scan:halignTD} +>>> + + +We could also have used \`'\Configure{halignTD} {CLASS="NOWRAP}{"} + { LEFT}{ CENTER}{ RIGHT} + { TOP}{ BASELINE}{ MIDDLE}{ BOTTOM}' fot DTD4.0s. + + +\<html config util\><<< +\NewConfigure{halignTR}[1]{\def\halignTR{#1}} +\Configure{halignTR}{} +>>> + +\<html config util\><<< +\def\halignTBL{\expandafter\ifx \csname v:TBL\endcsname\relax + \else \expandafter\ifx \csname \v:TBL :T:BL\endcsname\relax\else + \csname \v:TBL :T:BL\endcsname + \fi\fi} +\NewConfigure{halignTBL}[1]{\scan:halignTBL{#1}} +\def\scan:halignTBL#1{\def\:temp{#1}\ifx \:temp\empty\else + \expandafter \sc:halignTBL\fi{#1}} +\def\sc:halignTBL#1#2{\expandafter\def\csname + \string#1:T:BL\endcsname{#2}\scan:halignTBL} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Utilities} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +The global is because the table starts within the first entry. + +\<html blocks for halign tables\><<< +\def\halign:TB#1<>#2|<par del|>{#1} +\def\halign:TD#1<>#2|<par del|>{#2} +>>> + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{A Realization for halign} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<html halign\><<< +\:CheckOption{no-halign} \if:Option \else + |<halign tables from TeX|> +\fi +>>> + + + +This is the corner stone for deciding the case. + + +\HTable{ +[C10]Witin Picture Environment?\cr +Y&[C10]tex:align\cr +N&[10]within edef (:halign)?\cr + &Y&tex halign\cr + &N&[C10]remove `to dim' (:hlgn: + hl:gn)\cr + &&[C10]change catcode of {\tt \char`\#} (hlg:n)\cr + &&[C10]within a parameter or a def? (hal:gn)\cr + &&Y&[C10]tex:align + PRE\cr + &&N&[C10]open delimiter? (:Hlign)\cr + &&&{\tt\string\bgroup}&[C10]tex:align + PRE\cr + &&{\tt\char`\{}&[C10]go for hypertext table\cr +} + + + + + + +Check whether we are in \''\Picture' environment. This can happen +implicitly through environment \`'\[...\]' or through nesting in a +construct that explicitly activates the picture mode. + +\<halign tables from TeX\><<< +\def\h:halign{\ifx \EndPicture\:Undef + \let\to:dim|=\empty \expandafter\:halign + \else \expandafter\TeXhalign:cr\fi} +\:CheckOption{base} \if:Option \else + \def\:temp{\Protect\h:halign} + \HLet\halign|=\:temp +\fi +>>> + +\SubSection{Check for /edef Environment} + +ENSURE that for cases that reduce to \`'\TeXhalign:cr' the +macro get into edef. + + + + + + +\<halign tables from TeX\><<< +\let\r:lax|=\relax +\def\r:relax{\r:lax} +\let\rl:x|=\relax +\def\:halign{% + \let\rl:x|=\r:relax + \ifx \rl:x\r:relax \expandafter\nodim:hlgn: |%halign not in edef|% + \else \expandafter\TeXhalign:cr |%halign in edef|% + \fi +} +>>> + +\SubSection{Remove Dimension} + +Remove the dimension in case of \`'\halign to dim{...}' +or \`'\halign spread dim{...}' and store in \''\to:dim'. +The dimension can be nested within another macro + +\<halign tables from TeX\><<< +\def\nodim:hlgn:{\futurelet\:temp\hl:gn} +\def\hl:gn{\ifx \:temp\bgroup \let\:tempa|=\hlg:n + \else \def\:tempa##1{\append:def\to:dim{##1}\nodim:hlgn:}\fi + \:tempa} +>>> + + +Without recording, and using the dimension, +some pictures can get corrupted. For instance, +an overlap of index with the picture may +%% +\ifHtml[\HPage{occur}\Verbatim + \input tex4ht.sty \Preamble{html} + \EndPreamble + +\catcode`\@=11 + +\def\eqalignno#1{\displ@y \tabskip\centering + \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip + &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering + &\llap{$\@lign##$}\tabskip\z@skip\ crcr #1\ crcr}} + +\eqalignno{ +li&= 1\ cr +&> line 2& (7)} + +\ bye +\EndVerbatim\EndHPage{}]\fi + +\SubSection{Check for Embedded Def} + +Within macros and parameters, and definitions, the catcode of +characters in general, and \`'#' in particular, can't change. Hence, +in such cases \`'@2' is empty. + +\<halign tables from TeX\><<< + \catcode`\#|=13 \catcode`\~|=6 +\def\hlg:n{\begingroup \catcode`\#|=13 \let#|=\relax \hal:gn}% +|<process pattern of halign tbl|> +|<halign defs in catcode 13|> + \catcode`\#|=6 \catcode`\~|=13 +>>> + + +If catcodes don't change, we can't get +the catcode 13 for processing the parameters, and the empty flag +comes up. + +\<halign defs in catcode 13\><<< +\long\def\hal:gn~1{\p:lgn~1#|<par del|>% + \ifx \:temp\empty + |<embedded halign|>% + \else \def\:temp{\endgroup\:hlign{~1}}\fi \:temp} +\long\def\p:lgn~1#~2|<par del|>{\def\:temp{~2}} +>>> + +\SubSection{/halign Not Within Parameters} + +By now we know that we are not within a picture or embeded in other +macro or a parameter, and that we have \`'\halign\bgroup...\egroup' or +\`'\halign{...}'. We are going to scan \''\bgroup' or +\`'{...}'. + +\<halign tables from TeX\><<< +\long\def\:hlign#1{% + \def\:temp{#1}\def\:tempa{\bgroup}\ifx \:temp\:tempa + \endgroup |<halign into pre|>% + \expand:after{\HRestore\noalign \TeXhalign:cr\bgroup}% + \else |<halign into MkHalign|>% + \fi} +>>> + + + +\<halign into pre\><<< +\:warning{\noexpand\halign translated into linear text}% +>>> + + +In the above if statement, \''\expandafter' does not work for nested +halign in the true part. + +If we scan \''\bgroup' we are going after all to use the original +definition of \''\halign'. Otherwise, we are going for \''\HTable', +and for such a case we want the following environment. The variable +\`'#' controls where patterns should be included in entries and it is +used for spliting the patterns into the two parameters of +\`'\HTableScript'. + + + + + +\SubSection{Embedded /halign} + +The \''\halign' are transformed into pictures +or \''\TeXhalign:cr'. + +We now have a command of the form \`'\halign\bgroup...' or +a break up on a case of the form \`'\halign{...body...'. +The parameter \`'~1' is either \''\bgroup' or \`'...body...'. +If we are lucky, the body doesn't start with a \`'#' or \''\bgroup'. + +\<embedded halign\><<< +\expandafter\chs:halgn\string ~1|<par del|>% +\:tempb{% + \csname a:embedded-halign\endcsname + \ifmmode + \vbox{|<recall sharp|>$$\TeXhalign:cr \to:dim{~1}$$}% + \else \vbox{|<recall sharp|>\TeXhalign:cr \to:dim{~1}}\fi + \:nopartrue + \csname b:embedded-halign\endcsname + }% +\let\:temp|=\endgroup +\:tempb|<par del|>% +\:tempb\:temp{\endgroup + |<halign into pre|>% + \HRestore\noalign \TeXhalign:cr~1}\:tempa|<par del|>% +>>> + +\<halign tables from TeX\><<< +\NewConfigure{embedded-halign}{2} +\Configure{embedded-halign} + {\expand:after{\Picture+}\pic:hlng{ \a:@Picture{pic-halign}}} + {\EndPicture} +>>> + +The \`'\vbox{|<recall sharp|>\TeXhalign:cr \to:dim{@1}}' is needed to +keep the picture in one page. Without this we get from tex4ht.c +\ifHtml\HPage{complaints}\Verbatim +\documentclass{book} + +\input tex4ht.sty + \Preamble{html} +\begin{document} + +\EndPreamble + +\halign{\empty{#}&&{#}\cr phi&varphi\cr} +\end{document} + +\EndVerbatim \EndHPage{}\fi{} of mismatches \`'\specals{+}' (due to split +over pages?). + +An \''\halign{...}' can be in math mode \`'$$....$$', but +not within inline math mode. If it is there, there are quite +a few restctions (not clear of which kind) on what can appear in the math +code outside the \`'\halign'. Hence, we put everything into math mode +in a sepearte box just for an extra precaution. + +% \:warning{\noexpand\halign translated into a picture} + + +\''\TeXhalign:cr' reestablishes the meaning of \''\cr' and \''\crcr' +for picture-mode, but not for the second one. The later case +may cause problems. + + +Pictures might be called for also with \`'#' having catcode 13, +as is the case with \`'\halign{\empty{#}&&{#}\cr phi&varphi\cr}' +(but not with +\`'\halign{\empty #&& #\cr phi&varphi\cr}'). +In this case, the scanning in \`'\p:lgn@1#|<par del|>%' can't detect +the sharp characters that are embedded in braces. That is, a neccesary +condition for getting tabular representation is at least one \`'#' out +of braces, to ensure that such characters can get catcode 13. + + + +\<recall sharp\><<< +\Rc:sharp +>>> + +\<halign tables from TeX\><<< +\catcode`\#=13 +\def\Rc:sharp{\let#=\sv:sharp} +\catcode`\#=6 +\def\:temp{\let\sv:sharp=##}\:temp +>>> + +\SubSection{Utilities fo Embedded /halign} + +\<halign tables from TeX\><<< +\def\chs:halgn#1{\def\:temp{#1}% + \def\:tempa##1##2##3##4##5{\def\:tempa{##1}\def\:tempb{##2}% + \def\:tempc{##3}\def\:tempd{##4}\def\:tempe{##5}}% + \expandafter\:tempa\string\bgro + \ifx \:temp\:tempa \expand:after{\expandafter\try:b\string}% + \else \expandafter\brc:halign \fi} +\def\try:b{\try:ch\:tempb\try:g} +\def\try:g{\try:ch\:tempc\try:r} +\def\try:r{\try:ch\:tempd\try:o} +\def\try:o#1{\def\:temp{#1}% + \ifx \:temp\:tempe \def\:tempb{|<bgroup halign|>}% + \else \let\:temp|=\empty + \def\:tempb{|<braced halign|>}\fi + |<tempa = consume the rest of @1|>\:tempa} +\def\try:ch#1#2#3{\def\:temp{#3}% + \ifx \:temp#1 \expand:after{\expandafter#2\string}% + \else \expandafter\brc:halign \fi} +>>> + +\<halign tables from TeX\><<< +\def\brc:halign{% + \let\:temp|=\empty \def\:tempb{|<braced halign|>}% + |<tempa = consume the rest of @1|>\:tempa} +>>> + +\<tempa = consume the rest of @1\><<< +\long\def\:tempa##1|<par del|>{}% +>>> + +\<bgroup halign\><<< +\let\:tempb|=\def\:tempa +>>> + +\<braced halign\><<< +\let\:tempb|=\:tempa +>>> + + +\SubSection{/halign into {\tt <PRE>}} + + + + + We temporariliy get out from display mode, because we want the + \`'<PRE>' before \''\halign' and nothing is allowed before + \''\halign' in display mode. The enclosure within table is +to group the content for protection from embedding \''<CENTER>' commands and +the like. + + +\SubSection{/halign into /MkHalign} + + +We now have a command of the form \`'\halign{....}' or +a break up on a case of the form \`'\halign{....\egroup'. + + + +\<halign into MkHalign\><<< +\let\tabskip|=\tmp:dim \let\hrulefill|=\empty +\let\hidewidth|=\empty +\expand:after{\h:align#1\cr|<par del|>#1|<par del|>}% +>>> + + + +The pattern of \''\halign' can end with a \''\cr' or a \''\crcr'. We +first check whether \''\cr' present, and if so whether or not it is +preceded by a \''\crcr'. + +\<halign tables from TeX\><<< +\catcode`\#|=13 \catcode`\@|=6 +\long\def\h:align@1\cr@2|<par del|>{\def\:temp{@2}\ifx \:temp\empty + \expandafter\h:alignII \else \crcr:align@1\crcr|<par del|>\fi} +\def\crcr:align@1\crcr@2|<par del|>{\def\:temp{@2}\ifx \:temp\empty + \expandafter\expandafter\expandafter\h:alignI \else + \expandafter\expandafter\expandafter\h:alignII \fi} +\long\def\h:alignI@1\cr@2|<par del|>{% + \SaveMkHalignConfig |<halign configuration for halign|>% + \MkHalign#{@1}@2\EndMkHalign \RecallMkHalignConfig} +\def\h:alignII@1\crcr{\h:alignI@1\cr} +\catcode`\#|=6 \catcode`\@|=11 +>>> + + + + + +\<halign configuration for halign\><<< +\Configure{MkHalign}{\hlg:a}{\hlg:b} + \hlg:c\hlg:d{\hlg:e\RecallMkHalignConfig}\hlg:f +>>> + + + +\<html config util\><<< +\NewConfigure{halign}[6]{\c:def\hlg:a{#1}% + \c:def\hlg:b{#2}\c:def\hlg:c{#3}\c:def\hlg:d{#4}% + \c:def\hlg:e{#5}\c:def\hlg:f{#6}} +\NewConfigure{pic-halign}[1]{\def\pic:hlng{#1}} +>>> + + +\<math config util\><<< +\def\:halign:{<>} +>>> + + + + + +We must put in at least the \`'<>'. + + +% [[gif\r:brk] + +%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{noalign} +%%%%%%%%%%%%%%%%%%%%%%%%% + +In TeX4ht \`'\everycr\noalign' causes a loop because the definition of +\''\halign' includes \''\cr'. We declare a loop when 100 cycles are +encountered. Another possible problem is due to \''\hline' +which contains \''noalign' at its start.\ifHtml[\HPage{more}\Verbatim +\begin{tabular}{||l|c|c|c||} \hline +\multicolumn{4}{|c|}{\LaTeX\ size changing commands}\\ \hline +Style option & 10pt (default) & \tt 11pt & \tt 12pt\\ \hline +\end{tabular} +\EndVerbatim\EndHPage{}]\fi + +If we want to go for optional \''\noalign' with response to a parameter +in \''\Preamble', we need to take care of places that needs it html interpretation +(in tables?). + + + +\<halign tables from TeX\><<< +|<noalign|> +>>> + + + + +\<noalign\><<< +\HAssign\noalign:N|=0 +\def\:tempc#1{|<cycle protection fo noalign|>% + \vtop{\IgnorePar\a:noalign\vtop{\IgnorePar#1}\b:noalign}\cr + \global\tmp:toks|=\everycr \global\everycr{}\cr + \o:noalign:{\global\everycr|=\tmp:toks \gHAssign\noalign:N|=0 }% + } +\HLet\noalign|=\:tempc +|<another alternative for noalign|> +>>> + +We probbaly can remove the cycle protection. + +The internal \''\top' is to ensure vertical mode for material which +assumes it. In the extreem, that also prevents infinite loops. + +% \h:noalign + +\<shared config\><<< +\NewConfigure{noalign-}[2]{\c:def\a:noalign{#1}\c:def\b:noalign{#1}} +>>> + +Any reason left for keeping both cases? + +\<shared config\><<< +\:CheckOption{no-halign} \if:Option \else + \NewConfigure{noalign}{2} +\fi +>>> + + + + + + + + + + + +The \''\Protect' is needed, for instance, in \''\endalignat' +of amstex.tex during a pre-edef stage. + +The looping can happen in +\''\displaylines', \''\eqalignno', and \''\leqalignno' +due to the first command below (\''\@align'?.). + + +\<cycle protection fo noalign\><<< +\gHAdvance\noalign:N by 1 + \ifnum \noalign:N>100 + \global\let\noalign|=\o:noalign: + \:warning{TeX4ht can't handle + \string\everycr{...\string\noalign...}}% + \fi +>>> + + +Removed \`'\let\dotfill|=\empty'. Did I have any reason +to put it there in first place? + + + +\Chapter{Verbatim Enviroments} + + +\<local env\><<< +|<blocs for local env|> +\ifHtml |<html local env|> +\fi +|<verbatim|> +>>> + + + +\Section{Verbatim Text} + + + + +NOTE: VERBATIM WAS THERE for javascript and the like???? + + + + + + + + + + +\SubSection{Between Paragraphs} + +For the option \`'\Verbatim-', it should be noted the requested +special character should not come from the word \`'EndVerbatim'. +Letters within the environment carry categoty code 11, space, tab and +end-of-line characters carry category code 13, and the other +characters have category code 12. {CHECK TABS} + +\<verbatim\><<< +\def\V:rbatim{\begingroup \begin:Verb \Verb:env } +\def\:EndVerbatim{\end:Verb \endgroup } +>>> + +\<the /EndVerbatim delimiter\><<< +{ +\xdef\Verb:atim#1\EndVerbatim{\noexpand\vrb:tt + \leavevmode#1\noexpand\:EndVerbatim} +\catcode`\/|=0 /catcode`/\|=12 +/xdef/Ver:batim#1\EndVerbatim{/noexpand/vrb:tt + /leavevmode#1/noexpand/:EndVerbatim} +} +>>> + +Without the \''/leavevmode' the header is lost when +\''\Verbatim' is followed by empty line. +\ifHtml[\HPage{test}\Verbatim +\Verbatim + +x + +y + +\ EndVerbatim + + +\Verbatim +x + +y + +\ EndVerbatim + +\EndVerbatim\EndHPage{}]\fi + + + +\Verbatim + +> > 5. Also, why did you go in the first place to `alltt' and +> > not `verbatim'? +> +> Verbatim is an ugly beast. It can't be placed in the argument of +> another environment - e.g., I can't create a new environment like this: +> +> \newenvironment{\test} +> {\fontsize{11}{12}\selectfont\begin{verbatim}} +> {\end{verbatim}} + +\EndVerbatim + + + + + + + + +\<html config util\><<< +\NewConfigure{tt}[1]{\let\vrb:tt|=#1} +\let\vrb:tt|=\tt +>>> + +\<verbatim\><<< +\def\Verb:env{\no:catcodes0{64}{12}\no:catcodes{65}{90}{11}% + \no:catcodes{91}{96}{12}\no:catcodes{97}{122}{11}% + \no:catcodes{123}{255}{12}% + \catcode`\^^M|=13 \catcode`\ |=13 \catcode`\^^I|=13 + \:Verbatim \::Verbatim }% +\def\::Verbatim{\futurelet\:temp\V:erbatim} +\def\V:erbatim{% + \ifx -\:temp \expandafter\Ve:rbatim + \else \let\start:verb|=\Ver:batim \expandafter\Ver:sp \fi } +\def\Ver:sp{% + \ifx \ver:sp\:temp \expandafter\Ver:assg + \else \expandafter\Ver:ln \fi } +\def\Ver:ln{% + \ifx \ver:ln\:temp \expandafter\Ver:assg + \else \expandafter\start:verb \fi } +\def\Ver:assg{\afterassignment\start:verb\let\:temp|=} +|<optional control char in /Verbatim|> +|<space and eoln chars in /Verbatim|> +|<the /EndVerbatim delimiter|> +>>> + + +\<optional control char in /Verbatim\><<< +{ +\catcode`\/|=0 +/catcode`/\|=12 +/gdef/Ve:rbatim#1#2{/catcode`#2|=0 + /ifx #2\/let/start:verb|=/Verb:atim + /else /let/start:verb|=/Ver:batim /fi + /futurelet/:temp/Ver:sp} +} +>>> + + +\<space and eoln chars in /Verbatim\><<< +{ +\catcode`\^^I|=13 \catcode`\/|=0 \catcode`\\|=12 +/catcode`/.|=10 /catcode`/^^M|=13 /catcode`/ |=13% +/gdef/:Verbatim{% +.../def^^M{/ht:everypar{/Verb:eoln}/Verb:boln/par/leavevmode}% +.../def {/Verb:sp}% +.../let/ver:sp|= % +.../let/ver:ln|=^^M% +.../def^^I{/leavevmode }}} +>>> + +The following establishes a configurartion according to +what should appear at the start, end, and each end-of-ln. + + + + +% \def\Verb:eoln{\hfil\break\null} + +\<verbatim\><<< +\NewConfigure{VerbatimEnv}[2]{\def\begin:Verb{#1}\def\end:Verb{#2}} +\Configure{VerbatimEnv} + {\par \edef\leftsk:p{\hskip\Verb:Left}% + \leftskip|=\z@ \parindent|=\z@ \ht:everypar{\verb:config}} + {\aft:Verb\par} +\def\verb:config{\bef:Verb\csname leftsk:p\endcsname + \def\verb:config{\Verb:boln \def\Verb:eoln{\leavevmode\par}\leftsk:p}} +>>> + +% \def\Verb:eoln{\par \everypar{\verb:config}% +% \def\Verb:eoln{\par}} +% + + +The following uses the above vehicle to establish a configuration +in accordance to what should appear at the start, end, and +before each of the non-leading lines. + + + + + +\<html config util\><<< +\NewConfigure{HVerbatim}[4]{\c:def\bef:Verb{#1\Verb:eoln}% + \c:def\aft:Verb{\ht:everypar{}#2}% + \c:def\Verb:eoln{#3}\c:def\Verb:boln{#4}} +\NewConfigure{HVerbatim+}[2]{\d:def\Verb:Left{#1}% + \def\Verb:sp{#2}} +>>> + + + + + + + +The above has left margin of \''\Verb:Left' and typically has +inappropriate space above and below the code. The following takes the +left margin of the html code. + +\Verbatim + \Configure{HVerbatim} + {\HtmlPar\HCode{<NOBR><CODE>}} + {\HChar{160}\HCode{</CODE></NOBR>}} + {\HChar{160}\HCode{</CODE></NOBR><BR><NOBR><CODE>}} +\EndVerbatim + + + +% +%\Configure{HVerbatim} +% {\IgnoreIndent \HObey \par \leavevmode} +% {\EndHObey\IgnoreIndent \par} +% {\hfil\break\null \HCode{\html:invisible}\nobreak \hskip +% \ifdim \leftskip>0pt \leftskip \else 2em \fi} + + +The \`'\leavevmode' is needed for the case that the commands start +paragrphs, to ensure that \`'\everypar' operations would be performed +outside the groups of the commands. + + + + + + + + + +\Section{JavaScript} +Note that the first parameter of \''\ScriptCommand' must be in +braces, without surrounding spaces. + +\<scripting commands\><<< +\def\ScriptCommand{\begingroup \catcode`\\|=12 + \:DefScript} +\def\:DefScript#1{\endgroup \Def:Script#1|<par del|>} +\def\Def:Script#1#2|<par del|>{% + \expandafter\let\csname :#2:\endcsname|=\empty + \edef\:temp{\long\def\expandafter\noexpand\csname a:#2\endcsname + ####1\expandafter\noexpand\csname End#2\endcsname + {####1\noexpand\:EndVerbatim}}\:temp + \long\expandafter\def\csname + b:#2\endcsname##1#1End#2{##1\:EndVerbatim}% + \edef\:temp{\noexpand\DefScript: + \expandafter\noexpand\csname #2\endcsname + {\expandafter\noexpand\csname a:#2\endcsname}% + {\expandafter\noexpand\csname b:#2\endcsname}}\:temp +} +>>> + +The \''\long' above is for cases that the new command is embeded +in other commands as is the case, for instance, in \''\CssFile'. + + + +\`'\begin{keep}-\ +AAAAAAAAAAAAAAAAA +BBBBB +\end{keep}' +or +\`'\begin{keep} +AAAAAAAAAAAAAAAAA +BBBBB +\end{keep}' + + + +\<scripting commands\><<< +\def\DefScript:#1#2#3#4#5{\def#1{\call:script{#2}{#3}{#4}{#5}}} +\def\call:script#1#2#3#4{\begingroup \vrb:tt + \leftskip|=\z@ \parindent|=\z@ + \Configure{HVerbatim}{\empty}{\empty}% + {\special{t4ht=}\empty}{\empty}% + \Configure{HVerbatim+}{\z@}{\hbox{ }}% + #3\ht:special{t4ht@@}% + \let\Verb:atim|=#1\let\Ver:batim|=#2% + \def\:EndVerbatim{\ht:special{t4ht@@}% + #4\endgroup\ignorespaces}\Verb:env} +>>> + +% \let\html:invisible|=\empty + + + + +A \`'\Configure{HVerbatim}{}{}{}{}' above will be problematic for +the \`'hooks' option. The \`'\special{t4ht=}'is to ensure +pseudo code at empty lines. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Cascade Style Sheets} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<scripting commands\><<< +\def\a:rootfont:{-} +\:CheckOption{fonts+} \if:Option \def\a:rootfont:{+} +\else + \Log:Note{for marking of the base font, + use the command line option `fonts+'}% +\fi +>>> + +The above option requests css font information for the root font of +the file. + + + + + + + + + + + + + + + +\''\xml:empty' is for inserting the \''/' at end of tags by demand. + +The \''\edef\Preamble{\Preamble}' is needed for context where the +command line arguments come indirectly through an \''\env' macro. + +\<utilities\><<< +\ifx \xml:empty\:UnDef + \edef\Preamble{\Preamble} + \:CheckOption{xhtml} + \if:Option \else \:CheckOption{xml}\fi + \if:Option + \def\xml:empty{ /} + \long\def\:xhtml#1{#1} + \else + \Log:Note{for XML code, use the command line option + `xml' or `xhtml'}% + + \let\:xhtml|=\:gobble + \let\xml:empty|=\empty +\fi \fi +>>> + + + + + +Default font (the extra code is neded in order to activate it +within the dvi file before a change in font, e.g., for a title): + +\<start html file\><<< +\ht:special{t4ht>\jobname.tmp}{\everyhbox{}\hbox + {x\ht:special{t4ht;\a:rootfont:}x}}% +\ht:special{t4ht<\jobname.tmp}% +>>> + + + + + + + + + + + + + + + + + + +\<early Configure\><<< +\NewConfigure{Css}[1]{\def\aa:Css{#1}} +>>> + + + +\<html utilitiesNO\><<< +\tmp:cnt|=\time \divide\tmp:cnt |by 60 +\edef\:temp{\the\tmp:cnt} +\multiply\tmp:cnt |by -60 \advance\tmp:cnt |by \time +\edef\:today{\the\year-\ifnum \month<10 0\fi + \the\month-\ifnum \day<10 0\fi\the\day + \space\ifnum \:temp<10 0\fi \:temp + :\ifnum \tmp:cnt<10 0\fi\the\tmp:cnt :00} +>>> + + + +\Chapter{Ditto: Positioned Elements and Gifs} + +\<gif\><<< +\ifHtml |<html gif|> +\fi +>>> + + +\Section{Positioned Elements} + +\<shared config\><<< +\NewConfigure{Canvas}[3]{} +>>> + + + + +\Verbatim +% * can be replaced by any distinguished character +% \special{ +% * before-all +% * after-all %right %left %height %depth +% * before-char %x %y +% * after-char +% * line %x %y %thickness %length +% * x-coefficients %A(x) + %B +% * y-coefficients %C(y) + %D +% } +\EndVerbatim + +\<html gif\><<< +\def\Canvas{\ht:special{t4ht"}} +\let\EndCanvas|=\Canvas +>>> + + + + + + + + + + + +The attached source tries three renderings for `A<sub>x</sub>'. My +understanding of the positioning mechanism is that, in all three cases, +the reference point for `x' should be 0.7ex under the right leg of A. +Moreover, the measurement 0.7ex should be with respect to the +dimension of the font of A. + +\Verbatim + + /\ + /--\ + / \........... + \/ } 0.7ex within font of A + ./\.......} + + + A<SPAN +STYLE="position:relative"><SPAN +STYLE="position:absolute; top:0.7ex"><SPAN +STYLE="font-size: 70% ;">x</SPAN></SPAN></SPAN> +\EndVerbatim + + + + + + + + + + +\Section{/Picture Comamnd} + + + + + +\<html gif\><<< +\def\:img{% + \ifx *\:temp \let\:temp|=\i:mgif \let\:next|=\:GIf + \else \ifx +\:temp \let\:temp|=\i:mgif \let\:next|=\:Gif + \else \ifx [\:temp \let\:temp|=\im:g + \else \def\:temp{\im:g[{\csname + a:Picture-alt\endcsname}]}% + \fi \fi \fi \:temp} +>>> + +\<html config util\><<< +\NewConfigure{Picture-alt}{1} +\Configure{Picture-alt}{} +>>> + + + + +\''\Configure{Picture-alt}' is for \''\Picture{...}' commands; it +provides the default content. The other two commands tell whether the +bit maps and given alyternate values, respictively, are to be used. +The are used, iff the argument has non empty value (the argument +itself is not used). + + + + +Without the \''\leavevmode' above, the start of paragraph can +\HPage{enter} +\Verbatim +\Picture{OSU.gif xx yy} + +\Picture{OSU.gif xx yy } + +\Picture{OSU.gif} + + +\Picture{OSU.gif } + + + +\Picture[xx]{OSU.gif xx yy} + +\Picture[xx]{OSU.gif xx yy } + +\Picture[xx]{OSU.gif} + +\Picture[xx]{OSU.gif } +\EndVerbatim +\EndHPage{} +into the \''<IMG ..>' tag. + + + + +Empty file name is a request for a default name of the form +\`'\jobname%\romannumeral +\P:ctureCount'. + + + +\<gif\><<< +\def\P:ct{\leavevmode \futurelet\:temp\:img} +\let\Picture|=\P:ct +\def\yes:pic{\PictureOn} +\def\no:pic{\PictureOff} +>>> + + + + +\Section{Call to Specials of Gif} + + +\<gif\><<< +\def\i:mgif#1{\futurelet\:temp\:gif} + +\def\:gif{% + \ifx \:temp[\expandafter\:GifText + \else \expandafter\:next \fi } +>>> + +The following macro is for imported pictures \`'\Picture{....}' and +\`'\Picture[...]{...}'. + +\<html gif\><<< +\def\xim:g[#1]#2{{\cond:pic{% + \def\gif:nm{\edef\gif:nm}\gif:name{#2}% + \expandafter\get:ext\gif:nm.|<par del|>% + \edef\PictureFile{\gif:nm\ifx\:temp\empty \PictExt\fi}% + \Needs-\PictureFile \ht:special{t4ht@-}% + \a:IMG\ht:special{t4ht=\PictureFile}\b:IMG + \a:PictureAlt{#1}\b:PictureAlt \d:IMG + \a:PictureAttr{\at:IMG}\e:IMG}}\After:Picture} +\def\noim:g[#1]#2{} +\let\im:g|=\xim:g +>>> + +\<html config util\><<< +\NewConfigure{PictureAlt}{2} +\NewConfigure{PictureAttr}[1]{\def\a:PictureAttr##1{#1}} +\Configure{PictureAlt} {\NoFonts} {\EndNoFonts} +\Configure{PictureAttr} {\HCode{\Hnewline #1}} +>>> + + + +The following macro is for labeled bit pictures \`'\Picture+{....}' +and \`'\Picture*{...}'. + + + +\<html gif\><<< +\def\strt:gf#1#2{#2% + \csname a:PictureAlt*+\endcsname + \let\sv:sp\sp + \let\sv:sb\sb + \ifx \s:p\:UnDef \else \let\sp\s:p \fi + \ifx \s:b\:UnDef \else \let\sb\s:b \fi + \if #1!\ht:special{t4ht!\:AltPicture:}% + \global\let\:AltPicture:|=\empty \fi |% send to char map|% + \ht:special{t4ht||}% + \ht:special{t4ht++\PictureFile}% + \iprt:special +} +\def\nd:gf#1#2{% + \let\ht:special|=\tex:special + \ht:special{t4ht+}% + \if #1!\ht:special{t4ht!}\fi |%stop sending to char map|% + \let\sp\sv:sp + \let\sb\sv:sb + \ht:special{t4ht||}% + \csname b:PictureAlt*+\endcsname + \ifx #2\relax \else \csname a:PictureAttr*+\endcsname{#2}\e:IMG\fi +} +\def\img:alt{\ht:special{t4ht@-}% + \a:IMG\ht:special{t4ht=\PictureFile}\b:IMG} +>>> + + + + + + + + +\<shared config\><<< +\NewConfigure{PictureAlt*+}{2} +\NewConfigure{PictureAttr*+}[1]{% + \expandafter\def\csname a:PictureAttr*+\endcsname##1{#1}% +} +\Configure{PictureAttr*+}{\ht:special{t4ht=#1}} +>>> + + + + + + +\Verbatim +flag ){ `<make a special for dvi driver`> } + else switch( get_char() ){ + case '+': { `<out gif filename`> + case '@': { `<write to lg file`> break; } + + case '+': { while( special_n-- > 0 ) (void) get_char(); break; } + case '=': Contribution of text (\''\HCode'). + case '<': + case '>': { `<redirect html output`> break; } + case '!': { `<handle char map mode`> break; } + case '|': { gif_ch = !gif_ch; break; } + + case "..." : Positioned dvi code + +\item \`'.extension for root file' + + +\item \`'@@' for char mode (what is this????) e.g., javascript +\item \`'@+' for note to lg file (where is this???) +\item \`'@-' for removing left margins from char maps + + +\HCode{<HR>} + +\item \`'@%P' --- On-off modes for traceing of POP, PUSH in DVI +\item \`'@%D' --- On-off modes for traceing CHAR...RAHC in DVI +\item \`'@%H' --- On-off modes for traceing h spaces +\item \`'@%V' --- On-off modes for traceing v spaces +\item \`'@%R' --- On-off modes for traceing x rulers + + +In all the above, uppercase for plus, lowercase for minus 1 + +\item \`'@%%x...pre...x...post...' --- Group tracing. + Default \`'<!-- DVI ' and \`'\n-->', where \''\n' represents + new line char (i.e., \`'\Hnewline'). + \`'x' can be any character. if it is not there, + the postfix is assumed to be empty. +\item \`'@%...' --- Not used, if not of the above format + +\HCode{<HR>} + +\item \`':+...' increment by 1( define, if not defined) +\item \`':-...' decrement by 1 +\item \`':>...' push current value +\item \`':<...' pop current value +\item \`':!...' display current value +\item \`':|...' display top value + +\item \`';-' --- yes default font +\item \`';+' --- no default font +\item \`';%' --- insert font size +\item \`';=' --- insert css name of ch + + +\item \`';i' --- i=1 (before ch-name),2 (between ch-name and ch),3 + (after ch), 4 (before img-src), 5 (between img-src and alt), 6 + (between alt and name), 7(after name). +\item \`';8' --- PauseFontStyle +\item \`';9' --- ContFontStyle + +\item \`'~' --- on/off for transport data to group boundaries +\item \`'~<....' --- transport back +\item \`'~>....' --- transport forward + +\EndVerbatim + + + + + + +\Section{The Environment of Gif} + + + +\<html config util\><<< +\NewConfigure{IMG}{5} +>>> + + +The third and forth parameters are separated by user +cotributed attr-list. + + + + +\<html config util\><<< +\NewConfigure{Picture}[1]{\def\PictExt{#1}} +\Configure{Picture}{.png} +>>> + +\<picture off\><<< +\let\im:g|=\noim:g +>>> + +\<picture on\><<< +\let\im:g|=\xim:g +>>> + + + +GIF: +\List{*} + +\item + Lossless compression +\item Supports 256 colors. Good for pictures that use only a few colors +\item Relies on an algorithm copyrighted by Unisys. However, the patent +expired (20 June 2003 in US; a year later in Canada, Germany, +France, Italy, Japan, UK). +\item Supports animation +\item +The name stands for Graphics Interchange Format +\item Doesn't support unicode +\EndList + + +PNG: + +\List{*} +\item Losless compression superior to GIF +\item Recommendation status at W3C: + \Link[http://www.w3.org/Graphics/PNG/]{}{}{\tt + http://www.w3.org/Graphics/PNG/}\EndLink{}. +\item Developed as a patent-free alternative GIF +\item Doesn't support animation +\item The name stands for Portable Network Graphics +\item Supports unicode +\EndList + + + +JPG: +\List{*} +\item +Uses lossy compression that discards information the human eye cannot detect. +\item +Supports 16 million colors +\item +Good for photographs and complex graphics +\item +Noticeable reduction in quality for line drawings +\item Named after the committee Joint Photographic Experts Group +that defined the standard. +\EndList + + +\SubSection{With Char Map} + +Independent block: no brackets. + +Resolution can be an integer number or a pair of integer numbers +separated by a comma. The first for x-resolution, the second for +y-resolution. Then we can have a map for boundary characters made +up of pairs: character to be replaced followed by replcment. + + +For \`'\Picture+{}': (no box, no pre) + +\<html gif\><<< +\def\:Gif#1{\cond:pic{% + \gif:name{#1}\csname a:Picture+\endcsname + \strt:gf!\img:alt + \def\EndPicture{\nd:gf!{\c:IMG\Pic:Img}% + \let\EndPicture|=\:UnDef \csname b:Picture+\endcsname + \After:Picture}}} +>>> + +\<html config util\><<< +\NewConfigure{Picture+}{2} +>>> + + + + + + + + +For \`'\Picture*{}': Vertical box + pre. Might be a problem because +vertical boxes assume the width of the page, and a few of them in a +line may cause a picture to go out of the page boundaies---a problem +for convert. If the content of the box is just a box, or boxes, as is +the case in DraTeX, they the ebeded boxes induce the width. +The \`'\hfill\break' may handle some of these cases. + +\`'\Picture*{}.....\EndPicture' will go to \''\:GIf'. +\`'\Picture*[..]{}.....\EndPicture' will go to \''\:GifText'. + + +\<html gif\><<< +\def\:GIf#1{\cond:pic{\ifvmode\vfill\break\else + \ht:special{t4ht@[}\hfill\break.\ht:special{t4ht@]}\fi + \gif:name{#1}\csname a:Picture*\endcsname + \strt:gf!\img:alt + \ifmmode \expandafter\vcenter\else \expandafter\vtop\fi + \bgroup \let\EndPicture|=\:EndGIf \NoHtmlEnv }} +\def\:EndGIf{% + \egroup \nd:gf!{\c:IMG \Pic:Img}\csname b:Picture*\endcsname + \After:Picture} +>>> + +\<html config util\><<< +\NewConfigure{Picture*}{2} +>>> + + +\<html gif\><<< +\def\After:Picture{\After:EndPicture + \global\let\After:EndPicture|=\empty} +\let\After:EndPicture|=\empty +\def\AfterPicture#1{\append:def\After:EndPicture{#1}% + \global\let\After:EndPicture|=\After:EndPicture} +>>> + + +\''<PRE>'s force line breaks also in visual browsers, and we don't +want these breaks within formulas. + +The \`'\let\:Gif|=\:gobble' is no good in the foolowing because it +does not take care of the presence of \`'\EndPicture'. It is also not +needed because \''\:Gif' has \''\cond:pic' to take care of it. + + +\<html gif\><<< +\def\iprt:special{% + \def\ht:special##1{\tex:special{t4ht+##1}}} +\let\tex:special|=\ht:special +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{With Given Text and Inline Text} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\`'\Picture*{}.....\EndPicture' will go to \''\:GIf'. +\`'\Picture+{}.....\EndPicture' will go to \''\:Gif'. +\`'\Picture*[..]{}.....\EndPicture' will go to \''\:GifText' with \`'\:next=\:GIf'. +\`'\Picture+[..]{}.....\EndPicture' will go to \''\:GifText' with \`'\:next=\:Gif'. + +Given text: \`'[non empty]'. Inline text: \`'[]'. + + + +The following macro is for imported pictures \`'\Picture*+{....}' and +\`'\Picture*+[...]{...}'. + + +\<html gif\><<< +\def\x:GifText[#1]#2{\cond:pic{% + \ifx \:next\:GIf + \def\gif:box{\vtop\bgroup \NoHtmlEnv \let\gif:box|=\egroup}% + \else \let\gif:box|=\empty \fi + \gif:name{#2}% + \img:alt \def\:temp{#1}% + \ifx \:temp\empty \else + \csname a:PictureAlt*+[]\endcsname + {#1}\csname b:PictureAlt*+[]\endcsname\fi + \ht:special{t4ht>\jobname.tmp}% |%dump|% + \strt:gf-\empty \gif:box + \def\EndPicture{% + \gif:box \nd:gf-\relax \ht:special{t4ht<\jobname.tmp}% + \csname a:PictureAttr*+[]\endcsname{\c:IMG\Pic:Img}\e:IMG + \After:Picture}% +}} +\let\:GifText|=\x:GifText +\def\no:GifText[#1]{\:gobble} +>>> + + + +\<shared config\><<< +\NewConfigure{PictureAlt*+[]}{2} +\NewConfigure{PictureAttr*+[]}[1]{% + \expandafter\def\csname a:PictureAttr*+[]\endcsname##1{#1}% +} +\Configure{PictureAlt*+[]} {\NoFonts} {\EndNoFonts} +\Configure{PictureAttr*+[]} {\ht:special{t4ht=#1}} +>>> + + + +\<html gif\><<< +\ifx \:DraCatCodes\:UnDef + |<set basic Pic:Img|> +\fi +>>> + +\<set basic Pic:Img\><<< +\def\Pic:Img{\at:IMG} +>>> + + + +The \`'\everypar{t4ht="#1"}' can't be +\List{disc} +\item \`'{\everypar{}\HCode{#1}} --- the \''\leavevmode' can be +ruinful (e.g., in \`'$$ \underbrace{1,...,1} + s_{aaaaaaa}\underbrace{1,...,1} +$$') + +\item \`'{\IgnorePar\HCode{#1}} --- Besides of the above, it +also ruins the paragraph break-up info (e.g., with \''\L' having a definition \`'\def\L{\Picture+[]...\EndPicture'). +\EndList + + + +CHECK ISSUE OF ATTRIBUTES FOR IMAGES + +\<picture off\><<< +\let\:GifText|=\no:GifText +>>> + +\<picture on\><<< +\let\:GifText|=\x:GifText +>>> + + +\SubSection{File Name} + +We have a command of the form \''\gif:name{file-name attributes}' + + + +\<html gif\><<< +\def\gif:name#1{\edef\at:IMG{\noexpand\get:gfnm#1 |<par del|>}\at:IMG} +>>> + +The material within the if is for eliminating the extra space +introduced before \`'|<par del|>'. + +\<html gif\><<< +\def\get:gfnm#1 #2|<par del|>{\def\at:IMG{#2}% + \ifx \at:IMG\empty\else + \expandafter\aT:IMG\at:IMG|<par del|>% + \fi + \gif:nm{#1}} +\def\aT:IMG#1 |<par del|>{\def\at:IMG{#1}} +>>> + +It used to be as follows, which caused extra space at end of arguments. + +\Verbatim +\def\gif:name#1{\edef\at:IMG{\noexpand\get:gfnm#1 |<par del|>}\at:IMG} +\def\get:gfnm#1 #2|<par del|>{\def\at:IMG{#2}\gif:nm{#1}} + +\EndVerbatim + + + + +\<html gif\><<< +\def\NextPictureFile{\def\Next:PictureFile} +\NextPictureFile{} +\def\gif:nm#1{% + \gHAdvance\P:ctureCount |by 1 + \xdef\PictureFile{#1}\ifx \PictureFile\empty + \xdef\PictureFile{\Next:PictureFile}\fi + \global\let\Next:PictureFile|=\empty + \ifx \PictureFile\empty + \bgroup \Advance:\P:ctureCount |by -\Pic:Cnt + \xdef\PictureFile{\j:bname|<tail for file name|>\P:ctureCount + x\Pic:Dm\PictExt}% + \egroup + \else + \expandafter\get:ext\PictureFile.|<par del|>% + \ifx\:temp\empty \xdef\PictureFile{\PictureFile\PictExt}\fi + \fi + \immediate\write-1{l. \the\inputlineno\space Writing + \jobname.idv[\P:ctureCount] (\PictureFile)}% + }% +>>> + +\<html gif\><<< +\def\SavePicture#1{\def\:tempa{#1}\SaveP:cture} +\Odef\SaveP:cture[#1]{% + \edef\:tempb{\noexpand\Odef\expandafter\noexpand\:tempa[####1]{{% + \let\noexpand\Log:Needs|=\noexpand\:gobble + \noexpand\Picture[\HCode{#1}]{\PictureFile\space####1}}}}% + \:tempb \expand:after{\global\expandafter\let\:tempa|=}\:tempa } +>>> + +Without the \''\HCode{#1}' above things like \''-->' expand. Why +the \''\HCode' is not a problem? + + +\<html gif\><<< +\def\NewPictureDomain#1{% + \global\let\Pic:Cnt|=\P:ctureCount + \def\Pic:Dm{#1} \ifx \Pic:Dm\empty + \xdef\Pic:Dm{\P:c:Dm}% + \gHAdvance\P:c:Dm |by 1 + \fi } +\HAssign\P:c:Dm |= 0 +\let\Pic:Dm|=\empty +\HAssign\Pic:Cnt|=1 +>>> + + +\SubSection{Counter} + +\<html gif\><<< +\HAssign\P:ctureCount|=0 +\let\:AltPicture:|=\empty |%100 = default size|% +>>> + +\SubSection{Non-Html} + + + +Don't do \''\let\EndPicture=\relax'. Within \''\PictureOff' it is treated as +undefined. + + + +\Section{Utilities for Gif} + + +In \`'\pic:cond\a\b' the \`'\b' refers to the command to be used when +already within a gif-picture. The \`'\a' is to be used if a +gif-picture is to be opened. + + +\<html gif\><<< +\def\pic:gobble{\ifx \EndPicture\:UnDef \else \expandafter\:gobble\fi} +\def\pic:gobbleII{\ifx \EndPicture\:UnDef \else \expandafter\:gobbleII\fi} +\def\nopic:gobble#1{\ifx \EndPicture\:UnDef \else #1\fi} +\def\pic:cond#1#2{% + \ifx\EndPicture\:UnDef \def\end:condpic{\EndPicture}\expandafter#1% + \else \let\end:condpic|=\empty \expandafter#2% + \fi } +\def\cond:pic#1{% + \ifx \EndPicture\:UnDef #1\else + \let\E:pic|=\EndPicture \PushMacro\E:pic + \def\EndPicture{\PopMacro\E:pic \let\EndPicture|=\E:pic}\fi} +>>> + + + +\SubSection{Disabled Math} + +Global on and off for some reason fails sometimes. + + +\<html gif\><<< +\def\PictureOff{% + \expandafter\let\csname Pic:\Pic:On\endcsname|=\EndPicture + \ifx \EndPicture\:UnDef \let\EndPicture|=\empty \fi + |<picture off|>% + \Advance:\Pic:On |by 1 } +\def\PictureOn{% + \ifnum \Pic:On>0 + \Advance:\Pic:On |by -1 + \ifnum \Pic:On=0 |<picture on|>% + \fi + \expand:after{\let\EndPicture|=}\csname Pic:\Pic:On\endcsname + \ifx \EndPicture\relax \let\EndPicture|=\:UnDef\fi + \else + \:warning{\string\PictureOn\space without \string\PictureOff}% + \fi } +\HAssign\Pic:On |= 0 +>>> + + + + + + + + + + + + + + + +Don't go directly for \`'\PushMacro\EndPicture', just in case the +user wants to use this stack. + +Smash is most often used to produce comples patterns, so +let su go and make them pictures. + +\<html gif\><<< +\def\:temp#1{\ifx \EndPicture\:Undef + \relax\ifmmode\hbox{$#1$}\else \hbox{#1}\fi + \else \o:smash:{#1}\fi} +\HLet\smash|=\:temp +>>> + + + +The definition \''\def\HCode#1{\leavevmode\special{t4ht=#1}}' can be +problematic for grouping in pictures because of the \''\leavevmode' +that in immediate environment produces some side code. + + +It looks like the following problems, or most +of them, have been resolved with a fix to \''\noalign'. + + +The \`'\openup10pt' causes too much space in +% +\ifHtml[\HPage{some pictures}\Verbatim +\openup10pt \halign{ + $2^{#}$\quad&\( + \overbrace{2\cdots 2}^{#\ + \rm times}\)\quad& #\ cr + 3&3&8\ cr } +\EndVerbatim\EndHPage{}]\fi +% +and too much memory in +% +\ifHtml[\HPage{others}\Verbatim +% \input tex4ht.sty \Preamble{html} +% \EndPreamble +% +%\catcode`\@=11 +% +%\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th +% \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil +% \ crcr#1\ crcr}}\,} +% +%\def\eqalignno#1{\displ@y \tabskip\centering +% \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip +% &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering +% &\llap{$\@lign##$}\tabskip\z@skip\ crcr #1\ crcr}} +% +%\def\displ@y{\global\dt@ptrue\openup\jot\m@th +% \everycr{% +% \noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@ +% \vskip-\lineskiplimit \vskip\normallineskiplimit \fi +% \else \penalty\interdisplaylinepenalty \fi}}} +% +% +%\def\displ@y{\global\dt@ptrue +% \everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@ +% \vskip-\lineskiplimit \vskip\normallineskiplimit \fi +% \else \penalty\interdisplaylinepenalty \fi}}} +% +%\def\openup{\afterassignment\@penup\dimen@=} +%\def\@penup{\advance\lineskip\dimen@ +% \advance\baselineskip\dimen@ +% \advance\lineskiplimit\dimen@} +% +%\openup10pt \halign{ +% $2^{#}$\quad&\( +% \overbrace{2\cdots 2}^{#\ +% \rm times}\)\quad& #\ cr +% 3&3&8\ cr } +% +%\eqalignno{ +%li&= 1\ cr +%&> line 2& (7)} +% +%\bye +\EndVerbatim\EndHPage{}]\fi +% +Putting a \''\offinterlineskip' solves sometimes the problem +in some pictures of getting too much vertical +spcace, but may create +\ifHtml[\HPage{improper pictures}\Verbatim +% \input tex4ht.sty \Preamble{html} +% \EndPreamble +% +%\catcode`\@=11 +% +%\def\eqalignno#1{\displ@y \tabskip\centering +% \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip +% &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering +% &\llap{$\@lign##$}\tabskip\z@skip\ crcr #1\ crcr}} +% +%\eqalignno{ +%li&= 1\ cr +%&> line 2& (7)} +%\bye +\EndVerbatim\EndHPage{}]\fi{} with depth and hiehgt 0 (put +in TeX4ht1.sty the picture in box0 and measure). The problem +is because \''\def\offinterlineskip{\baselineskip-1000\p@ + \lineskip\z@ \lineskiplimit\maxdimen}' puts too much space +in \''\lineskiplimit'. + + + +\Chapter{Math} + + +\<math config util\><<< +\:CheckOption{base} +\if:Option \else + |<config math end-points|> + |<sub and sup|> + |<math classes|> + |<grouped math classes|> + |<built-in tex math ops|> +\fi +>>> + + +\Section{End Points of Math Environments} + + +The following become active only when they are being configured. + + + +\<config math end-points\><<< + \NewConfigure{$}[3]{% + \def\a:mth{\bgroup#1}\def\b:mth{#2\egroup}% + \def\c:mth{|<empty script base trap|>#3}% + \everymath{\ifx \EndPicture\:UnDef + $\a:mth\everymath{}\everydisplay{}$% + \aftergroup\b:mth \c:mth \fi}} +>>> + + + + +\<config math end-points\><<< + \NewConfigure{$$}[3]{% + \def\a:display{\bgroup#1}% + \def\b:display{#2\egroup}% + \def\c:display{#3}% + \everydisplay{\ifx \EndPicture\:UnDef + $$\a:display\everymath{}\everydisplay{}$$% + \aftergroup\b:display \c:display\fi}} + +>>> + + +Can't put \Verb'|<empty script base trap|>' into \Verb+\def\c:display{#3}%+ +because of cases such as \Verb+$$\halign{#\cr a\cr}$$+ + + +\<empty script base trap\><<< +{\csname HCode\endcsname{}}% +>>> + +Tex4ht translate each \`'$$...$$' into \`'$$ +$$$$...$$' and upon +reaching the second environment the mode is already horizontal. For +such case, the above approach of distinguishing in-line and off-line +display math don't work. This is a place where an implimentation +within the tex engine can do a better work. On the other hand, all of +this can be fixed within and XSL-like transformations on the final +output of tex4ht. + + +\''\halign' doesn't allow expansion into content to precede +it within the math mode. Hence, the \''\aftergroup' below. + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Math into Pictures} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<config math end-points\><<< +\def\PicDisplay{\pic:gobble\env:PD + \def\:temp{$$}\pic:cond\Pic:math\:temp} +\def\EndPicDisplay{\end:condpic\pic:gobble\endenv:PD} +\def\Pic:math{\hfil\break + \expand:after{\Picture*}\alt:Mth{ \c:Math}} +>>> + + +\<config math end-points\><<< +\def\PicMath{\leavevmode\pic:gobble\env:PM\hbox\bgroup + \everymath{}\everydisplay{}\pic:cond\pic:math$} +\def\EndPicMath{\end:condpic\egroup\pic:gobble\endenv:PM} +\def\pic:math{\expand:after{\Picture+}\alt:mth{ \c:math}} +>>> + + + + +\<config math end-points\><<< +\NewConfigure{PicDisplay}[4]{\def\alt:Mth{#3}% + \ifx \alt:Mth\empty\else \def\alt:Mth{[#3]}\fi\def\c:Math{#4}% + \c:def\env:PD{#1}\c:def\endenv:PD{#2}} +\NewConfigure{PicMath}[4]{\def\alt:mth{#3}% + \ifx \alt:mth\empty\else \def\alt:mth{[#3]}\fi\def\c:math{#4}% + \c:def\env:PM{#1}\c:def\endenv:PM{#2}} +>>> + +\`'\Configure{PicDisplay}{}{}{[ALT]}{extra-attributes}' +\`'\Configure{PicMath}{}{}{[ALT]}{extra-attributes}' + + +\Section{Non-Pictorial Math} + + +\SubSection{Dvi Math} + + +\<config math end-points\><<< +\def\DviMath{\a:DviMath\leavevmode \MathClass |<same page|> \DviSend} +\def\EndDviMath{\EndDviSend |<end same page|>\EndMathClass \b:DviMath} +\NewConfigure{DviMath}{2} +>>> + + + +The above need to be boxed to prevent page breaks within the send +environment \`'\special{t4ht~}...\special{t4ht~}'.. + +\<same page\><<< +\ht:special{t4ht@(}\vbox + \bgroup{\expandafter\ifx\csname ht:everypar\endcsname\relax + \expandafter\everypar + \else \expandafter\ht:everypar\fi{}\leavevmode\ht:special{t4ht@)}}% + \relpenalty=10000 + \binoppenalty=10000 +>>> + +\<end same page\><<< +\ht:special{t4ht@(}\egroup\ht:special{t4ht@)}% +>>> + +The penalty is to prohibit line breaks. For instance, the following +formula under the mathml mode. + +\Verbatim +\documentclass{scrartcl} +\begin{document} +$a^{n_{1}+n_{2}+n_{3}} + (1-p_{1})^{n_{4} +n_{6} +n_{7} +(N-n_{1}-...b- n_{7})} + p_{2}^{n_{1} +n_{2} +n_{4} +n_{6}} + (1-p_{2})^{n_{3} +n_{5} +n_{7} +(N-n_{1}-...b- n_{7})} + p_{3}^{n_{1} +n_{3}+n_{4} +n_{7}} + (1-p_{3})^{n_{2} +n_{5} +n_{6} +(N-n_{1}-...b- n_{7})}$ +\end{document} +\EndVerbatim + + +The specials remove the space at the start and end points of the box. + + + +Examples: + +\Verbatim +\Configure{$} {\Tg<math>\DviMath} {\EndDviMath\Tg</math>} {} +\Configure{$$} {\Tg<display>\DviMath} {\EndDviMath\Tg</display>} {} + +\Configure{()} {\Tg<math>\DviMath$} {$\EndDviMath\Tg</math>} +\Configure{[]} {\Tg<display>\DviMath$$} {$$\EndDviMath\Tg</display>} +\EndVerbatim + + + + +\SubSection{Positioned Math} + + + +\<config math end-points\><<< +\def\PMath{\bgroup\Canvas \x:SUBOff \x:SUPOff + \let\Picture|=\empty \everymath{}\everydisplay{}} +\def\EndPMath{\EndCanvas\egroup} +\:CheckOption{PMath} \if:Option + \def\:Pmath{$\PMath$\aftergroup\EndPMath} + \def\:Pdisp{$$\PMath$$\aftergroup\EndPMath} + \everymath{\:Pmath} + \everydisplay{\:Pdisp} +\fi +>>> + + +Example: \`' \def\({\PMath$} \def\){$\EndPMath} \def\[{\PMath$$} +\def\]{$$\EndPMath}'. + + + +\ifHtml[\HPage{positioned math} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + +\Verbatim +\Css{.Canvas { position:absolute; }} +\Css{.Canvas { font-size:100\%; }} +\Css{.Canvas .cmr-7{ font-size:70\%; }} +\Css{.Canvas .cmmi-7{ font-size:70\%; font-style: italic;}} + +$ a \over b + c $ +\EndVerbatim + + +\Tg<hr /> + + +\Verbatim +\input tex4ht.sty \Preamble{html,sty,4.0s,PMath} + +\Css + BODY{ font-size : 200% } + .Canvas { position: relative; } + SPAN.cmr-7 .Canvas-char , + SPAN.cmmi-7 .Canvas-char , + SPAN.cmsy-7 .Canvas-char { font-size: 70% ; } + SPAN.cmr-5 .Canvas-char , + SPAN.cmmi-5 .Canvas-char { font-size: 50% ; } +\EndCss + + + \EndPreamble +aa +$ +{{A+C \over B+D}+F \over X*Y} +$ + +\bye +\EndVerbatim +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\EndHPage{}]\fi + + + + + +\Section{Subscripts and Superscripts} + + +\<sp and sb for catcode 13\><<< +\ifnum \the\catcode`^=13 + \let\expandafter\noexpand + \csname x:SUPOff\endcsname|=\noexpand\empty + \let\expandafter\noexpand + \csname x:SUPOn\endcsname|=\noexpand\empty + \catcode`\noexpand ^|=\the\catcode`^\fi +\ifnum \the\catcode`_=13 + \let\expandafter\noexpand + \csname x:SUBOff\endcsname|=\noexpand\empty + \let\expandafter\noexpand + \csname x:SUBOn\endcsname|=\noexpand\empty + \catcode`\noexpand _|=\the\catcode`_\fi +>>> + +The \''\x:SUBOff' (and \''\x:SUPOff') are activated only if the catcodes +of \`'^' and \`'_', respectively, were not 13 when tex4ht.sty was +loaded. If the catcode were 13, we need a user intervention, in which +\`'\sp' and \`'\sb' should be referenced for math mode. That is, +something along the lines \`'\ifmmode \expandafter\sp\else +\expandafter current^\fi' will probably work most of the times. + +TRY: Replace SUBOn with HSUBOn, SUBOff with HSUBOff, Ditto for SUP + +\<sub and sup\><<< +\let\s:b|=\sb +\let\:sbb|=\sb |%DraTeX already uses \:sb|% +\def\sb{\m:op\:sbb{SUB}} +\catcode`\_|=8 +\:CheckOption{no_} \if:Option + \let\s:b|=\:UndFi + |<old SUB 0|> + |<new SUB 0|> + \def\no:restore{\let\no:restore|=\:UnDef} +\else + \Log:Note{for non active \string_, + use the command line option `no\string_'}% + |<old SUB 1|> + |<new SUB 1|> + \catcode`\_|=13 + |<math sb|> + \def\x:SUBOff{\let_|=\s:b} + \def\pr:sb{\ifx \EndPicture\:UnDef + \expandafter\Protect\expandafter\S:b + \else \expandafter\s:b \fi} + |<old SUB 2|> + |<new SUB 2|> + |<old SUB 3|> + |<new SUB 3|> + \catcode`\_|=8 + \:CheckOption{_13} \if:Option + \def\no:restore{\let\no:restore|=\:UnDef + \mathcode`\_|="8000 \catcode`\_|=13 } + \append:def\SUBOn{\mathcode`\_|="8000 \catcode`\_|=13 |<let sb|>} + \else + \Log:Note{for \string_ of catcode 13, + use the command line option `\string_13'} + \def\no:restore{\let\no:restore|=\:UnDef + \mathcode`\_|="8000 \catcode`\_|=12 } + \append:def\SUBOn{\mathcode`\_|="8000 \catcode`\_|=12 |<let sb|>} + \fi + \bgroup + \SUBOn \def\:temp{|<let sb|>} + \expandafter \egroup \:temp +\fi +>>> + + +\<old SUB 0\><<< +\let\x:SUBOff|=\empty \let\x:SUBOn|=\empty +>>> +\<new SUB 0\><<< +\let\SUBOff|=\empty \let\SUBOn|=\empty +>>> + +\<old SUB 1\><<< +\ifx \sys:sb\:UnDef \def\:tempaa{_} +\else \def\:tempaa{\noexpand\sys:sb}\fi +>>> +\<new SUB 1\><<< +\ifx \sys:sb\:UnDef \def\:tempa#1{\append:def\SUBOff{\let#1|=_}} +\else \def\:tempa#1{\append:def\SUBOff{|<HSUBOff op|>}}\fi +>>> + +\<HSUBOff op\><<< +\def#1{% + \ifmmode \expandafter\s:b \else \expandafter\sys:sb \fi +}% +>>> + +\<old SUB 2\><<< +\edef\:SUBOff{\def\noexpand_{\:tempaa}} +>>> + +\<new SUB 2\><<< +\:tempa_ +>>> + +\<old SUB 3\><<< +\def\x:SUBOn{\def_{\ifmmode \expandafter\pr:sb + \else \expandafter\sys:sb\fi}|<let sb|>} +\x:SUBOn +>>> + +\<new SUB 3\><<< +\def\SUBOn{\catcode`\_|=8 + \def_{\ifmmode \expandafter\pr:sb + \else \expandafter\sys:sb\fi}} +\SUBOn +>>> + + + + + + + + + + + + +\<record external sub-sup\><<< +\edef\SUPOff{% + \catcode`\noexpand ^|=\the\catcode`^\relax +} +\edef\SUBOff{% + \catcode`\noexpand _|=\the\catcode`_\relax +} +\bgroup + \catcode`\^|=13 \global\let\sys:sp|=^ + \catcode`\_|=13 \global\let\sys:sb|=_ +\egroup +>>> + + +\<sub and sup\><<< +\let\s:p|=\sp +\let\:spp|=\sp +\def\sp{\m:op\:spp{SUP}} +\catcode`\^|=7 +|<default sup sup config|> +\:CheckOption{no^} \if:Option + \let\s:p|=\:UndFi + |<old SUP 0|> + |<new SUP 0|> +\else + \Log:Note{for non active \string^, + use the command line option `no\string^'}% + |<old SUP 1|>% + |<new SUP 1|>% + \catcode`\^|=13 + |<math sp|> + \def\x:SUPOff{\let^|=\s:p } + \def\pr:sp{\ifx \EndPicture\:UnDef + \expandafter\Protect\expandafter\S:p + \else \expandafter\s:p \fi} + |<old SUP 2|> + |<new SUP 2|> + |<old SUP 3|> + |<new SUP 3|> + |<sup 13|> + \catcode`\^|=7 + \:CheckOption{^13} \if:Option + |<sup sup 13 config|> + \append:def\no:restore{\mathcode`\^|="8000 \catcode`\^|=13 } + \append:def\SUPOn{\mathcode`\^|="8000 \catcode`\^|=13 |<let sp|>} + \else + \Log:Note{for \string^ of catcode 13, + use the command line option `\string^13'}% + \append:def\no:restore{\mathcode`\^|="8000 \catcode`\^|=12 } + \append:def\SUPOn{\mathcode`\^|="8000 \catcode`\^|=12 |<let sp|>} + \fi + \bgroup + \SUPOn \def\:temp{|<let sp|>} + \expandafter \egroup \:temp +\fi +>>> + + +\<default sup sup config\><<< +\NewConfigure{\string^\string^}[2]{% + \def\:tempa##1>{}\def\:temp{#1}\:warning{\string + \Configure{\string\string\string ^\string\string + \string^}{\expandafter\:tempa\meaning \:temp}{...} + ignored; option \string^13 is not on}} +>>> + + + +\<sup 13\><<< +\def\:sUp{% + \let\:sUp|=^% + \def^{\futurelet\:temp\next:hat} + \def\next:hat{\ifx ^\:temp \expandafter\:dblhat\else + \expandafter\:sUp\fi}% +} +>>> + +\<sup sup 13 config\><<< +\:sUp +\def\:dblhat#1#2{\def\:temp{#2}% + \def\:tempc{\def\:tempa####1>{}\:warning{\string^\string + ^\expandafter\:tempa\meaning\:temp? \string\Configure{\string + \string\string ^\string\string\string^}{\expandafter\:tempa + \meaning \:temp}{...} or use option no\string^}}% + \ext:chr \:tempc} +\let\ext:chr|=\empty +\NewConfigure{\string^\string^}[2]{% + \NewConfigure{\string^\string^}{2}% + \append:def\ext:chr{\def\:tempa{#1}\ifx \:temp\:tempa + \def\:tempc{#2}\fi}} +>>> + + + +\<old SUP 0\><<< +\let\x:SUPOff|=\empty \let\x:SUPOn|=\empty +>>> +\<new SUP 0\><<< +\let\SUPOff|=\empty \let\SUPOn|=\empty +>>> +\<old SUP 1\><<< +\ifx \sys:sp\:UnDef \def\:tempbb{^} +\else \def\:tempbb{\noexpand\sys:sp}\fi +>>> +\<new SUP 1\><<< +\ifx \sys:sp\:UnDef \def\:tempb#1{\append:def\SUPOff{\let#1|=^}} +\else \def\:tempb#1{\append:def\SUPOff{|<HSUPOff op|>}}\fi +>>> + + + + + +\<HSUPOff op\><<< +\def#1{% + \ifmmode \expandafter\s:p \else \expandafter\sys:sp \fi +}% +>>> + + +\<old SUP 2\><<< +\edef\:SUPOff{\def\noexpand^{\:tempbb}} +>>> +\<new SUP 2\><<< +\:tempb^ +>>> + +\<old SUP 3\><<< +\def\x:SUPOn{\def^{\ifmmode \expandafter\pr:sp + \else \expandafter\sys:sp\fi}|<let sp|>} +\x:SUPOn +>>> + +\<new SUP 3\><<< +\def\SUPOn{% + \def^{\ifmmode \expandafter\pr:sp + \else \expandafter\sys:sp\fi}} +\SUPOn +>>> + + + +\<let sp\><<< +\let\sp=^ +>>> + +\<let sb\><<< +\let\sb=_ +>>> + + + +\<math sp\><<< +\if:Option + \def\S:p{\m:op\s:p{SUP}} +\else + \def\S:p#1{\def\SuP:{#1}\futurelet\:temp\sup:sub} + \:CheckOption{^13} \if:Option \catcode`\_|=13 + \else \catcode`\_|=12\fi + \def\blank:space{ + } + \def\sup:sub{\expandafter + \ifx \blank:space\:temp \expandafter\sup:subA + \else \expandafter\sup:subB\fi} + \expandafter\def + \expandafter\sup:subA\blank:space{\futurelet\:temp\sup:sub} + \def\sup:subB{\ifx _\:temp \expandafter\SUP:SUB + \else \expandafter\a:putSUP \fi } + \catcode`\_|=8 + \def\a:putSUP{\sup:I \SuP:} + \def\sup:I{\m:op\s:p{SUP}} +\fi +>>> + + +\<math sb\><<< +\if:Option + \def\S:b{\m:op\s:b{SUB}} +\else + \def\S:b#1{\def\SuB:{#1}\futurelet\:temp\sub:sup} + \def\blank:space{ + } + \def\sub:sup{\expandafter + \ifx \blank:space\:temp \expandafter\sub:supA + \else \expandafter\after:sub\fi} + \expandafter\def + \expandafter\sub:supA\blank:space{\futurelet\:temp\sub:sup} + |<extension of sub|> + \def\a:putSUB{\sub:I \SuB:} + \def\sub:I{\m:op\s:b{SUB}} +\fi +>>> + + +% \def\sub:supB{\ifx ^\:temp \expandafter\SUB:SUP +% \else \expandafter\after:sub\fi} + + +\<utilities\><<< +\NewConfigure{afterSUB}[2]{\expandafter + \def \csname \meaning#1sb\endcsname{#2}} +\NewConfigure{putSUB}[1]{\def\a:putSUB{#1}} +\NewConfigure{putSUP}[1]{\def\a:putSUP{#1}} +\:CheckOption{no^} \if:Option \else + \:CheckOption{^13} \if:Option \catcode`\^|=13 + \else \catcode`\^|=12 \fi + \Configure{afterSUB}^{\SUB:SUP} + \catcode`\^|=7 +\fi +>>> + +The following is needed for a math prime after sub. For instance, \'+a_1'$+. + +\<extension of sub\><<< +\def\after:sub{\futurelet\:temp\choose:sub} +\def\choose:sub{\expandafter + \ifx \csname \meaning\:temp sb\endcsname\relax + \expandafter \a:putSUB + \else + \expandafter\expandafter\csname \meaning\:temp sb\endcsname + \fi +} +>>> + + +We need to catch cases like the blank space appearing after the b +within AmsTeX in an equation like: +\Verbatim +\begin{equation} +a^b +_c +\end{equation} +\EndVerbatim +We can't use a declaration of the form + \''\def\sub:supA#1{...' +because the macro consumes the parameter following the space, +and that parameter can a forbidden token. + + + +The \`'\edef\:SUBSUPOff' doesnt wotk with \''\let' instead +of \''\def' in the body. Why? + + +\<sub and sup\><<< +\def\m:op{\ifx \EndPicture\:UnDef \expandafter\:mop + \else \expandafter\:m:p\fi} +\def\:mop{\relax\ifmmode \expandafter \mo:p \else \expandafter\mop:\fi} +\def\mo:p#1#2#3{{\csname a:#2\endcsname + #1{#3}\csname b:#2\endcsname}} +\def\mop:#1#2#3{#1} +\def\:m:p#1#2{#1} +>>> + +\<sub and sup\><<< +\NewConfigure{SUB}{2} +\NewConfigure{SUP}{2} +>>> + +We need to pause the hyperext font for the case that the +subscript itself comes with a font change. Without the +pause we'll get a partial overlap with the \''<SUB/SUP>' +font (e.g., \`'\it $\A_{\mathbf{R}}$'). + + +In case that \`'^' looses its original meaning, TeX will complain +about double exponnet if it follows a quote symbol.\ifHtml[\HPage{'}\Verbatim +\input tex4ht.sty \Preamble{html} \EndPreamble + +$\overline{a'^b}$ + +\csname bye\endcsname + +\EndVerbatim\EndHPage{}]\fi. + +\SubSection{Merging Subscripts and Superscripts} + +Two options \`'\Configure{SUBSUP}{ before }{ between }{ after }' +and +\`'\Configure{SUPSUB}{ before }{ between }{ after }', differing in the +way the reorder the superscript and subscript. However, if the +three parameters are empty, or just a single subscript / superscript +is present, then \`'\Configure{SUB}{ before }{ after }' +and \`'\Configure{SUP}{ before }{ after }' get into effect. + +\<sub and sup\><<< +\:CheckOption{no^} \if:Option \else \:CheckOption{no_}\fi +\if:Option + \NewConfigure{SUBSUP}[3]{} + \NewConfigure{SUPSUB}[3]{} + \NewConfigure{SUB/SUP}[6]{} +\else + \def\SUP:SUB#1#2{\let\chs:sbsp|=\:gobble\def\SuB:{#2}\SUBSUP:} + \def\SUB:SUP#1#2{\def\chs:sbsp##1##2{##1}\def\SuP:{#2}\SUBSUP:} + \let\SUBSUP:|=\empty + \NewConfigure{SUBSUP}[3]{% + \def\:temp{#1#2#3}\ifx \:temp\empty + \def\SUBSUP:{\sub:I\SuB:\sup:I\SuP:}% + \else \def\SUBSUP:{#1\s:b{\SuB:}#2\s:p{\SuP:}#3}\fi} + \NewConfigure{SUPSUB}[3]{% + \def\:temp{#1#2#3}\ifx \:temp\empty + \def\SUBSUP:{\sup:I\SuP:\sub:I\SuB:}% + \else \def\SUBSUP:{#1\s:p{\SuP:}#2\s:b{\SuB:}#3}\fi} + \NewConfigure{SUB/SUP}[6]{% + \def\:temp{#1#2#3#4#5#6}\ifx \:temp\empty + \def\SUBSUP:{\sub:I\SuB:\sup:I\SuP:}% + \else \def\SUBSUP:{\chs:sbsp + {#1\s:b{\SuB:}#2\s:p{\SuP:}#3}% + {#4\s:p{\SuP:}#5\s:b{\SuB:}#6}}\fi} +\fi +>>> + + + +\SubSection{Early Activation of Sub/Sup Scripts} + + +\<early latex subs/sups\><<< +\ifx \config:opt\:UnDef \else + |<defs for early latex subs/sups|> +\fi +>>> + +\<defs for early latex subs/sups\><<< +\append:def\:RestoreCatcodes{\early:sub\early:sup} +\let\:IfFileExists\IfFileExists +\long\def\IfFileExists#1#2#3{% + \csname recall:sub\endcsname + \csname recall:sup\endcsname + \expandafter\let\csname #1:sub\endcsname=\early:sub + \expandafter\let\csname #1:sup\endcsname=\early:sup + \let\early:sub=\relax \let\recall:sub\relax + \let\early:sup=\relax \let\recall:sup\relax + \:IfFileExists{#1}{#2}{#3}% + \expandafter\let\expandafter\early:sub\csname #1:sub\endcsname + \expandafter\let\expandafter\early:sup\csname #1:sup\endcsname + \early:sub \early:sup +} +\ifx \o:document\:UnDef + \pend:def\Preamble{% + \csname recall:sub\endcsname + \csname recall:sup\endcsname} +\fi +>>> + +\</document recall sub/sup\><<< +\csname recall:sub\endcsname +\csname recall:sup\endcsname +>>> + +\<defs for early latex subs/sups\><<< +\def\:CheckOption#1{\def\:temp{#1}% + \:Optionfalse + \expandafter\:ScanOptions\config:opt,,//} +\def\:ScanOptions#1,#2//{\def\:next{#1}% + \ifx \:next\empty + \else \ifx \:temp\:next \:Optiontrue \let\:next\relax + \else \def\:next{\:ScanOptions#2//}% + \fi \fi \:next } +|<cats early latex subs/sups|> +\let\:CheckOption|=\:UnDef +>>> + + + +\<cats early latex subs/sups\><<< +\let\early:sub=\empty +\:CheckOption{early_} \if:Option + \:CheckOption{no_} \if:Option \else + \:CheckOption{_13} \if:Option + \def\early:sub{% + \xdef\recall:sub{% + \mathcode`\noexpand\_=\the\mathcode`\_ + \catcode`\noexpand\_=\the\catcode`\_ + } + \mathcode`\_="8000 \catcode`\_=13 + } + \else + \def\early:sub{% + \xdef\recall:sub{% + \mathcode`\noexpand\_=\the\mathcode`\_ + \catcode`\noexpand\_=\the\catcode`\_ + % \writesixteen{.....sub \the\catcode`\_}% + }% + \mathcode`\_="8000 \catcode`\_=12 + % \writesixteen{.....sub 12} + } + \fi + \fi +\else + \Log:Note{for \string_ at preamble, + use the command line option `early\string_'}% +\fi +>>> + +\<cats early latex subs/sups\><<< +\let\early:sup=\empty +\:CheckOption{early^} \if:Option + \:CheckOption{no^} \if:Option \else + \:CheckOption{^13} \if:Option + \def\early:sup{% + \xdef\recall:sup{% + \mathcode`\noexpand\^=\the\mathcode`\^ + \catcode`\noexpand\^=\the\catcode`\^ + } + \mathcode`\^="8000 \catcode`\^=13 + } + \else + \def\early:sup{% + \xdef\recall:sup{% + \mathcode`\noexpand\^=\the\mathcode`\^ + \catcode`\noexpand\^=\the\catcode`\^ + % \writesixteen{.....sup \the\catcode`\^}% + }% + \mathcode`\^="8000 \catcode`\^=12 + % \writesixteen{.....sup 12}% + } + \fi + \fi +\else + \Log:Note{for \string^ at preamble, + use the command line option `early\string^'}% +\fi +>>> + + +\Section{Math Classes} + + + + + +The requests are placed on symbols of the fonts, which might be a +problem for symbols not used in math. + +\<math classes\><<< +\def\MathClass{\ht:special{t4ht\string^}} +\let\EndMathClass|=\MathClass +\def\PauseMathClass{\ht:special{t4ht\string^-}} +\def\EndPauseMathClass{\ht:special{t4ht\string^+}} +>>> + + + + +Math classes: Ordinary (0), large operators (1), binary operators (2), +relation (3), opening del (4), closing delimiter (5), +punctuation (7). + + + +\SubSection{Configure Characters} + + +Set the class delimiters for the symbols. + +\<math classes\><<< +\catcode`\^=7 +\NewConfigure{MathClass}[5]{\NoFonts \ht:special{t4ht@[}% + \def\:temp{#2}\ifx \:temp\empty \else + \ht:special{t4ht\string^#1#2#3#2#4}\fi + \def\:temp{#5}\ifx \:temp\empty \else + \bgroup \everypar{}\everymath{}\everydisplay{}% + \hbox{${\ht:special{t4ht\string^#1}% + {#5}^{{#5}^{#5}}\ht:special{t4ht\string^}}$}% + \vbox{$${\ht:special + {t4ht\string^#1}{#5}^{{#5}^{#5}}\ht:special{t4ht\string^}}$$}\egroup + \fi + {\everypar{}\noindent\vfill\break}% + \ht:special{t4ht@]}\EndNoFonts +} +\NewConfigure{MathDelimiters}[2]{\NoFonts \ht:special{t4ht@[}% + \bgroup \everypar{}\everymath{}\everydisplay{}% + \hbox{${\ht:special + {t4ht\string^4}#1\ht:special{t4ht\string^5}#2% + \ht:special{t4ht\string^4}{}^{#1}\ht:special{t4ht\string^5}{}^{#2}% + \ht:special{t4ht\string^4}{}^{{}^{#1}}\ht:special + {t4ht\string^5}{}^{{}^{#2}}% + \ht:special{t4ht\string^}}$}% + \vbox{$${\ht:special + {t4ht\string^4}#1\ht:special{t4ht\string^5}#2% + \ht:special{t4ht\string^4}{}^{#1}\ht:special{t4ht\string^5}{}^{#2}% + \ht:special{t4ht\string^4}{}^{{}^{#1}}\ht:special + {t4ht\string^5}{}^{{}^{#2}}% + \ht:special{t4ht\string^}}$$}% + {\everypar{}\noindent\vfill\break}% + \ht:special{t4ht@]}\egroup + \EndNoFonts} +\catcode`\^=12 +>>> + + + +\<math classes\><<< +\HAssign\New:MathClass|=7 +\catcode`\/=0 +\catcode`\\=12 +/def/NewMathClass#1{/relax + /expandafter/ifx /csname /expandafter/:gobble/string#1/endcsname/relax + /gHAdvance/New:MathClass by 1/relax + /ifnum /New:MathClass>78 + /:warning{Too many math classes} + /else + /HAssign#1/New:MathClass /def/:tempc{#1}/:NewMC + 0123456789:;<=>?% + @ABCDEFGHIJKLMNO% + PQRSTUVWXYZ[\]{/string^}{/string_}% + `abcdefghijklmno% + pqrstuvwxyz{/string{}||{/string}}{/string~}|<par del|>% + /fi + /else + /:warning{/string#1 is already defined} + /fi} +/catcode`/\=0 +\catcode`\/=12 +\def\:NewMC#1{% + \ifnum \:tempc=0 \expandafter\xdef\:tempc{#1}\expandafter\stop:do + \else + \expandafter\HAdvance\:tempc |by -1\relax + \expandafter\:NewMC + \fi +} +>>> + +79 math classes: 0--78. + + +\<math classes\><<< +\NewConfigure{nolimits}[1]{\def\:temp{#1}\ifx \:temp\empty + \let\nolimits|=\o:nolimits: \else + \def\:temp{\o:nolimits:\futurelet\:temp\:nolimits}% + \def\:nolimits{\ifx \:temp\limits \else + \ifx \:temp\nolimits \else #1\fi\fi}% + \HLet\nolimits|=\:temp \fi} +\let\o:nolimits:|=\nolimits +\NewConfigure{limits}[1]{\def\:temp{#1}\ifx \:temp\empty + \let\limits|=\o:limits: \else + \def\:limits{\ifx \:temp\nolimits \else#1\fi}% + \def\:temp{\o:limits:\:l:mits}% + \HLet\limits|=\:temp \fi} +\let\o:limits:|=\limits + +\def\::limits{\expandafter\ifx \blank:spc\:temp + \afterassignment\:l:mits \tmp:cnt0% + \else + \ifx \limits\:temp\else + \expandafter\expandafter\expandafter\:limits + \fi + \fi} +\def\:l:mits{\futurelet\:temp\::limits} +\catcode`\ =13\relax\def\blank:spc{\let\blank:spc= }\blank:spc% +\catcode`\ =10\relax +>>> + + +Test case to check: \Verb=\[\sum\nolimits\limits_a^b u_s^2 \]= + + +The assignment \`'\tmp:cnt0%' also consumes the space that follows. + + + + +\<math classes\><<< +\NewConfigure{displaylimits}[1]{\def\:temp{#1}\ifx \:temp\empty + \let\displaylimits|=\o:displaylimits: \else + \def\:displaylimits{\ifx \:temp\nolimits \else + \ifx \:temp\limits \else #1\fi\fi}% + \def\:temp{\o:displaylimits:\display:l:mits}% + \HLet\displaylimits|=\:temp \fi} +\let\o:displaylimits:|=\displaylimits +\def\::displaylimits{\expandafter\ifx \blank:spc\:temp + \afterassignment\display:l:mits \tmp:cnt0% + \else\expandafter\:displaylimits \fi} +\def\display:l:mits{\futurelet\:temp\::displaylimits} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Configure Grouped Classes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\`'\mathord{...}' et al request delimiters for their arguments. The +\`'\special{t4ht^X}' , for `~'-`0' (digit) greater than 79, request +the delimiters of class 0 to apply to the next group (created by the +math ord). The \`'0' asks to ignore nested delimiters; can be +replaced by \`'1' to request the sub delimiters. + + + + +A \`'\special{t4ht\string^)*...*...}' is variant of +\`'\Send{Group}{1}... \Send{EndGroup}{1}' for delimiters, without +subdelimiters. Taking \`'(' (or any other character which below a +digit and not + or -) instead of \`')' gives also the subdelimiters. + +A \`'\special{t4ht\string^i)}' takes the delimiters from +the characters of class i. + + +\<grouped math classes\><<< +\def\:temp{\a:mathord \o:mathord:} \HLet\mathord|=\:temp +\let\a:mathord|=\empty +\def\:temp{\a:mathop \o:mathop:} \HLet\mathop|=\:temp +\let\a:mathop|=\empty +\def\:temp{\a:mathbin \o:mathbin:} \HLet\mathbin|=\:temp +\let\a:mathbin|=\empty +\def\:temp{\a:mathrel \o:mathrel:} \HLet\mathrel|=\:temp +\let\a:mathrel|=\empty +\def\:temp{\a:mathopen \o:mathopen:} \HLet\mathopen|=\:temp +\let\a:mathopen|=\empty +\def\:temp{\a:mathclose \o:mathclose:} \HLet\mathclose|=\:temp +\let\a:mathclose|=\empty +\def\:temp{\a:mathpunct \o:mathpunct:} \HLet\mathpunct|=\:temp +\let\a:mathpunct|=\empty +>>> + + + +\<grouped math classes\><<< +\NewConfigure{FormulaClass}[4]{% + \def\:temp{#2}% + \expandafter\edef\csname a:\ifcase #1 mathord\or mathop\or + mathbin\or mathrel\or mathopen\or mathclose\else + mathpunc\fi\endcsname{\noexpand\ht:special + {t4ht\string^\ifx\:temp\empty#1)\else )#2#3#2#4\fi}}} +>>> + + + + +\`'\Configure{FormulaClass}{class number}{char}{before}{after}': +char+before+after=empty implies same markings as for single +characters. In fact, can do the same for any sub formula with any function, +not just the math functions. + +\<grouped math classes\><<< +\NewConfigure{FormulaClass*}[4]{% + \def\:temp{#2}% + \expandafter\edef\csname a:\ifcase #1 mathord\or mathop\or + mathbin\or mathrel\or mathopen\or mathclose\else + mathpunc\fi\endcsname{\ht:special + {t4ht\string^\ifx\:temp\empty#1(\else (#2#3#2#4\fi}}} +>>> + +The following are generalizations, introduced for allowing temporary +changs, like in \`' +\renewcommand{\opname}[1]{% + \Configure{mathop*}{*}{<mrow>}{</mrow>}{\Configure{FormulaClass}{0}{}{}{}} + \mathop{\fam0#1}}'. + +\<grouped math classes\><<< +\NewConfigure{mathord}[4]{\Configure{FormulaClass}{0}{#1}{#2}{#3}% + \pend:def\a:mathord{#4}} +\NewConfigure{mathop}[4]{\Configure{FormulaClass}{1}{#1}{#2}{#3}% + \pend:def\a:mathop{#4}} +\NewConfigure{mathbin}[4]{\Configure{FormulaClass}{2}{#1}{#2}{#3}% + \pend:def\a:mathbin{#4}} +\NewConfigure{mathrel}[4]{\Configure{FormulaClass}{3}{#1}{#2}{#3}% + \pend:def\a:mathrel{#4}} +\NewConfigure{mathopen}[4]{\Configure{FormulaClass}{4}{#1}{#2}{#3}% + \pend:def\a:mathopen{#4}} +\NewConfigure{mathclose}[4]{\Configure{FormulaClass}{5}{#1}{#2}{#3}% + \pend:def\a:mathclose{#4}} +\NewConfigure{mathpunct}[4]{\Configure{FormulaClass}{6}{#1}{#2}{#3}% + \pend:def\a:mathpunct{#4}} +>>> + + + +\<grouped math classes\><<< +\NewConfigure{mathord*}[4]{\Configure{FormulaClass*}{0}{#1}{#2}{#3}% + \pend:def\a:mathord{#4}} +\NewConfigure{mathop*}[4]{\Configure{FormulaClass*}{1}{#1}{#2}{#3}% + \pend:def\a:mathop{#4}} +\NewConfigure{mathbin*}[4]{\Configure{FormulaClass*}{2}{#1}{#2}{#3}% + \pend:def\a:mathbin{#4}} +\NewConfigure{mathrel*}[4]{\Configure{FormulaClass*}{3}{#1}{#2}{#3}% + \pend:def\a:mathrel{#4}} +\NewConfigure{mathopen*}[4]{\Configure{FormulaClass*}{4}{#1}{#2}{#3}% + \pend:def\a:mathopen{#4}} +\NewConfigure{mathclose*}[4]{\Configure{FormulaClass*}{5}{#1}{#2}{#3}% + \pend:def\a:mathclose{#4}} +\NewConfigure{mathpunct*}[4]{\Configure{FormulaClass*}{6}{#1}{#2}{#3}% + \pend:def\a:mathpunct{#4}} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Renewed Commands} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Math Symbols from Macros} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The \`'\MathSymbol' works on empty when the symbol comes from a font. +That is, when the macro is defined as \`'\mathchar"xxxx'. A +\`'\MathSymbol+' variant may be applied to force definitions. Warning +messages are not helpful as the symbols may have nultiple definitions +dependent on the style files being loaded. + +\<built-in tex math ops\><<< +\def\MathSymbol{\futurelet\:temp\:::MathSymbol} +\def\:::MathSymbol{\if +\:temp + \expandafter\:MathSymbol \else + \expandafter\::MathSymbol \fi +} +\def\::MathSymbol#1#2{% + \def\:tempb##1"##2///{##1}% + \edef\:tempa{\expandafter\expandafter\expandafter\:tempb + \expandafter\meaning\csname#2\endcsname"///}% + \edef\:tempc{\string\mathchar}% + \ifx \:tempa\:tempc + \NewConfigure{#2}{1}\Configure{#2}{\csname o:#2:\endcsname}% + \else + \:MathSymbol{}{#1}{#2}% + \fi +} +\def\:MathSymbol#1#2#3{% + \def\:temp{{\math:sym#2{#3}}}% + \expandafter\HLet\csname #3\endcsname\:temp + \NewConfigure{#3}{1}\Configure{#3}{\csname o:#3:\endcsname}% +} +\def\math:sym#1#2{{\relax\ifmmode \expandafter#1\fi + {\csname a:#2\endcsname}}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{/left and /right} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Again, we don't want line breaks from \''<PRE>'s within +formulas in visual browsers. + +\<built-in tex math ops\><<< +\def\:temp#1{\a:left{#1}\o:left:#1\b:left{#1}} +\HLet\left|=\:temp +\def\:temp#1{\a:right{#1}\o:right:#1\b:right{#1}} +\HLet\right|=\:temp +\NewConfigure{left}[2]{\def\a:left##1{#1}\def\b:left##1{#2}} +\NewConfigure{right}[2]{\def\a:right##1{#1}\def\b:right##1{#2}} +\Configure{left}{}{} +\Configure{right}{}{} +>>> + + + +\SubSection{Fractions} + + +\<built-in tex math ops\><<< +\def\:tempc{\pic:gobble\a:over \o:over: \pic:gobble\b:over} +\HLet\over|=\:tempc +\NewConfigure{over}{2} +\def\:tempc{\pic:gobble\a:atop \o:atop: \pic:gobble\b:atop} +\HLet\atop\:tempc +\NewConfigure{atop}{2} +\def\::above{\pic:gobble\a:above \o:above:\tmp:dim + \pic:gobble\b:above } +\def\:above{\afterassignment\::above} +\def\:tempc{\Protect\:above \tmp:dim|=} +\HLet\above\:tempc +\NewConfigure{above}{2} +>>> + +\<built-in tex math ops\><<< +\def\::abovewithdelims#1#2{\pic:gobble\a:abovewithdelims + \o:abovewithdelims:#1#2\tmp:dim\pic:gobble\b:abovewithdelims} +\def\:abovewithdelims#1#2{\def\:temp{\::abovewithdelims#1#2}% + \afterassignment\:temp\tmp:dim=} +\def\:tempc{\Protect\:abovewithdelims } +\HLet\abovewithdelims\:tempc + \NewConfigure{abovewithdelims}{2} +\def\:overwithdelims#1#2{\pic:gobble\a:overwithdelims + \o:overwithdelims:#1#2\pic:gobble\b:overwithdelims} +\def\:tempc{\Protect\:overwithdelims} +\HLet\overwithdelims\:tempc + \NewConfigure{overwithdelims}{2} +\def\:atopwithdelims#1#2{\pic:gobble\a:atopwithdelims + \o:atopwithdelims:#1#2\pic:gobble\b:atopwithdelims} +\def\:tempc{\Protect\:atopwithdelims} +\HLet\atopwithdelims\:tempc + \NewConfigure{atopwithdelims}{2} +>>> + + + +\`'\Configure{over} + {\Send{GROUP}{0}{[before]}[before-rule]} + {[before-argument]\Send{EndGROUP}{0}{[after]}}' + + + +\`' +\Configure{over} + {\special{t4ht\string~<<NOMINATOR>}\HCode + {</NOMINATOR><DENOMINATOR>}} + {\special{t4ht\string~></DENOMINATOR>}}' + + + + Beware of nested formulas for proper arrangments of + \`'\special{t4ht\string~...}' + + + + + + +\SubSection{Radical's} + +\<built-in tex math ops\><<< +\def\:temp{\pic:gobble\a:radical\o:radical:} +\HLet\radical|=\:temp +\NewConfigure{radical}{1} +>>> + +\Verbatim +\Configure{radical}{% + [before-sign]% + \Send{EndGROUP}{2}{[after-sign]}% + \Send{GROUP}{3}{[before-body]}% + \Send{EndGROUP}{3}{[after-body]}% +} +\EndVerbatim + + +\SubSection{Mathchoice} + +The following is disabled because \TeX{} evaluates the four parameters +and then keeps one and throws away the other. With the picture +environment enabled, we'll get messages in the log file of the form +\`'--- needs --- a.idv[1] ==> ai.gif ---' for pictures that are not +included in the code. + + +\<built-in tex math ops\><<< +\def\:temp#1#2#3#4{\a:mathchoice + \o:mathchoice:{#1}{#2}{#3}{#4}\b:mathchoice } +\HLet\mathchoice|=\:temp +\NewConfigure{mathchoice}{2} +>>> + + + +The following, for \''\?phantom', is not needed because it is already +covered by \''\mathchoice'. + +\Verbatim +\def\makeph@nt#1{\PictureOff + \setbox\z@\hbox{#1}\finph@nt \PictureOn} +\def\mathph@nt#1#2{\PictureOff + \setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt \PictureOn} +\EndVerbatim + + + + +\SubSection{Equation Numbers} + +The \''\eqno' and \''\leqno' refer to what follow them in the math +environment as left and right equation numbers, respectively. Tex +typesets them within groups, so material can be sent to the end of the +number with a \`'\Send{GROUP}{0}{...}'. + +\<built-in tex math ops\><<< +\def\:temp{\o:eqno:\a:eqno} +\HLet\eqno|=\:temp +\def\:temp{\o:leqno:\a:leqno} +\HLet\leqno|=\:temp +\NewConfigure{eqno}{1} +\NewConfigure{leqno}{1} +>>> + + + + + + +In addition, +\`'1140. We get into ordinary math mode from display math mode when +the equation numbers \eqno and \leqno appear'. +Hence, the \`'\everymath{}' is needed also for the display case. +To be on the sure side, we also put \`'\everydisplay{}' in the math mode. + + + + +\Chapter{Decorated Symbols} + + + +\Section{Htf Classes: Requesting BackEnd Fonts through /specials} + + +\<font config util\><<< +\NewConfigure{htf}[9]{{% + \tmp:cnt|=#1 \ifnum \tmp:cnt>255 \:warning{Code larger than + 255 in \string\Configure{htf}}\else + \ht:special{t4ht;||\ifnum \tmp:cnt<10 00\else + \ifnum \tmp:cnt<100 0\fi\fi + \the\tmp:cnt#2#3#2#4#2#5#2#6#2#7#2#8#2#9#2\the\tmp:cnt}% + \fi}} +>>> + + +A \`'\%x' requests character code in hexadecimal representation. + + +\`'\Configure{htf}' is essentially a configuration on +fonts, where even cases, for instance, the \`'\special{t4ht;|004...}' +extra independent information for characters. +Odd cases like \`'\special{t4ht;|003...}', on the other hand, are +addition to the \`'IMG' and not an independent info !!! + +\SubSection{Pausing} + +\<font config util\><<< +\def\NoFonts{\ht:special{t4ht;8}} +\def\EndNoFonts{\ht:special{t4ht;9}} +>>> + + +Nesting is allowed. + +\SubSection{Configurations} + +Code for calls made from htf fonts. Should start with three +digits defining a number smaller than 256. Odd numbers apply +to gifs, and even to text. The odd are intended for insertion into +IMG marks, the odd are not used yet. + +The character part is prented for codes that are not given in +cases of characters and image-characters, respectively. +Code 000 is created to groups of non image characters, and the +codes 002, 004, 006, add extras to individual characters. The +od codes deal only with specific characters, not groups. + +The corresponding formatting instructions in the css +file are determined in the `Font' option within the +perl script. + + + +\<font config util\><<< +\NewConfigure{FontCss}[2]{\def\a:FontCss:{#1}\def\a:FontCssPlus:{#2}} +>>> + +\<font config util\><<< +\NewConfigure{htf-css}[2]{{% + \def\:temp##1|<par del|>{\def\:tempa{##1}}% + \afterassignment\:temp\tmp:cnt|=0#1|<par del|>% + \def\:temp{\Configure{Needs}}% + \ifx \:tempa\empty + \expandafter\:temp\expandafter{\a:FontCss:}\Needs{("#1"): #2}% + \else + \expandafter\:temp\expandafter{\a:FontCssPlus:}\Needs{#1 #2}% + \fi}} +\NewConfigure{htf-attr}[2]{{% + \Configure{Needs}{##1}% + \Needs{Font\string_css\string_base: #1Font\string_css\string_mag: #2}}} +>>> + + +\`'\NewConfigure{htf-css}{number}{...}' for a class; +\`'\NewConfigure{htf-css}{not-number}{...}' for a htf font. + + + + +\`'\Configure{htf}{even}{+}{open}{name}{size}{mag}{ord}{ch}{end}{gif-id}' + + + +\`'\Configure{htf}{odd}{+}{open}{alt}{class}{size}{mag}{ord}{end}': mag and +ord must be integer patterns. + + +\`'\Configure{htf-css}{4}{.underline{text-decoration:underline; }}' is +alredy covered. + + + +HOW \`'\Configure{htf-css}{4}{.small-caps{font-variant: small-caps; }}' +differs from \`'\Css{.small-caps{font-variant: small-caps; }}'? +The latter is alway introduced into the +css file, wheras the earlier only conditionally when the font/class is in use. + + +% \special{t4ht;||003"\Hnewline ALIGN="MIDDLE} + + +% \special{t4ht;||003-MIDDLE} + + + + + +We have +\Verbatim +\Configure{htf} + {odd-for-img-chr} + {distinguished delimiter ch+id} + {prefix for file name, if the latter is desired} + {prefix for alt, if the latter is desired} + {c-template, if family name is desired} + {c-template, if font size is desired} + {c-template, if font mag is desired} + {c-template, if ch ord is desired} + {close of tag} +\Configure{htf} + {even-for-reg-chr} + {distinguished delimiter ch+id} + {prefix} + {c-template, if family name is desired} + {c-template, if font size is desired} + {c-template, if font mag is desired} + {c-template, if ch ord is desired} + {postfix} + {closing tag} +\EndVerbatim + + + +The id is to be used in Needs fo associating styles to the +character decorations. Also, due to the id, we can assign to the +same code of font different styles. +\ifHtml[\HPage{example}\Verbatim +\Configure{htf}{6}{+a}{}{}{<a.. + FONT="\%s}{\%s"}{MAG="\%d"}{ORD="\%d"}{>} +$\leq$ +\Configure{htf}{6}{+b}{}{}{<b... + FONT="\%s}{\%s"}{MAG="\%d"}{ORD="\%d"}{>} +$\leq$ + +\Needs{a .......} +\Needs{b .......} +\EndVerbatim + +produces + +\Verbatim +Font class 6 a: <a.. FONT="%s%s"MAG="%d"ORD="%d"> +Font class 6 b: <b... FONT="%s%s"MAG="%d"ORD="%d"> +l. 27 --- needs --- a ....... --- +l. 28 --- needs --- b ....... --- +\EndVerbatim\EndHPage{}]\fi + +Newer: + +\Verbatim +Css: TD.caption{white-space: nowrap; } +Font("cmex","10","100") +Font("cmmi","10","100") +Font("cmmi","5","100") +Font("cmmi","7","100") +Font("cmr","10","100") +Font("cmr","5","100") +Font("cmr","7","100") +Font("cmsy","10","100") +Font("cmsy","7","100") +Font("cmti","10","100") +Font("cmtt","10","100") +Font_Class(1,""): <IMG SRC=""ALT=""CLASS="%s%s-%d--%x"> +Font_Class(3,"mva"): <IMG SRC=""ALT=""CLASS="%s-%d--%x"ALIGN="MIDDLE"> +Font_Class(6,"ul"): <SPAN CLASS="underline"></SPAN> +Font_Css("sc"): .small-caps{font-variant: small-caps; } +Font_Css("ul"): .underline{text-decoration:underline; } +\EndVerbatim + +The \`'Font(...)' indicates the fonts in use; it's format is determined +by the system variable LGFNT, and can be changed within the env file +through a `f' flagged field. The indicated fonts are used for deciding +which entries in \`'htf.sty' should be introduced into the css file. + +The \`'Font_Class(...)' indicates the classes in use within the fonts; +it's format is determined by the system variable LGCLS, and can be +changed within the env file through a `c' flagged field. + +The \`'Font_Css' is a contribution from the TeX file, from +\`'\Configure{htf-css}{...}' commands. +It overides info found in \`'htf.sty'. + Its format can be +changed by \`'\Configure{FontCss}{...##1...}', before the +\''\Preamble' command. + +The \`'Css' is a contribution from the TeX file, from \`'\Css{...}' +comamnds that preced the \''\CssFile' command. Its format can be changed +by \`'\Configure{Css}{...##1...}', before the \''\Preamble' command. + +The \`'\special{t4ht;,}' prevents notification to the +log file of the change requested by \`'\Configure{htf}'. + +\`'\Configure{htf-css}{cmmi}{font-style: italic;}' +produces +\`'Font_Css_Plus cmmi font-style: italic;' +and that appears also in \`'htf.sty'. +The following are already in \`'htf.sty'. + + +%%%%%%%%%%%%%%%%%%%%%% +\Section{New Accents} +%%%%%%%%%%%%%%%%%%%%%% + +\<accents\><<< +\:CheckOption{new-accents} \if:Option + |<new accents|> +\else + |<tools for accents|> + |<old accents|> +\fi +>>> + + + + + +Some accents of TeX are defined through commands of the form +\`'\accent <number> <char>', and some throught macros (e.g., \''\b', +\''\c', and \''\d'). Moreover,the \`'\accent <number> <char>' reduces +to \`'\char <number>', whenever \''<char>' doesn't immediately follows +\''<number>' (however, font changes, etc, are possible in between). + +We can't decide the content of accented charaters without looking at +the htf fonts. The accented characters of the source (la)tex files +may go through transformations due to \''\uppercase' and +\''\lowercase' operations (e.g., \'+\uppercase \'a+). + +\<new accents\><<< +\def\:temp{\leavevmode\ifx \d:mathaccent\empty + \else \ht:special{t4ht\string~>1\d:mathaccent}\fi + \ht:special{t4ht*\string^m}\o:mathaccent:} +\HLet\mathaccent|=\:temp +\def\:temp{\leavevmode\ht:special{t4ht*\string^t}\o:accent:} +\HLet\accent|=\:temp +\NewConfigure{accent}[6]{\ht:special{t4ht*\string^t#1#2#1#3#1#4#1#5#1#6}} +\NewConfigure{mathaccent}[6]{\ht:special{t4ht#1\string + ^m#1#2#1#3#1#4#1#5#1}\edef\d:mathaccent{#6}} +\let\d:mathaccent|=\empty +\NewConfigure{accented}[6]{\ht:special + {t4ht*\string^a#1#2#1#3#1#4#1#5#1#6}} +\NewConfigure{accenting}[3]{\ht:special{t4ht*\string^i#1#2#1#3#1#1}} +>>> + +%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Screening} +%%%%%%%%%%%%%%%%%%%%%% + +The following feature is used as in + +\`'\Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture}' + +and it screens which characters are allowed to use the native +definitions of the accents, and which one the commands tailored for +the hooks. + + + + +\<new accents\><<< +\NewConfigure{HAccent}[1]{\pic:Accent#1} +\def\pic:Accent#1#2#3#4{\edef\:tempb##1{{\expandafter\:gobble\string#1}}% + \pend:defI\:tempb{\choose:accent{####1}#2\relax|<par del|>}% + \append:defI\:tempb{{#3}{#4}}% + \expandafter\let\csname \string#1:\endcsname|=\:tempb + \edef\:tempb{\noexpand\Protect\noexpand\acc:nm{\string#1}}% + \HLet#1|=\:tempb} +\def\acc:nm#1{\csname \string#1:\endcsname} +>>> + +The following sub-utilities iteratively search the dictionary to check +whether the parameter is known. + +\<new accents\><<< +\def\choose:accent#1{\def\:accented{#1}\cs:accent} +\def\realx:par{\relax} +\def\cs:accent#1{\def\:tempa{#1}% + \ifx \:tempa\realx:par \expandafter\pic:accent + \else + \ifx \:tempa\:accented + \expandafter\expandafter\expandafter\nopic:accent + \else \expandafter\expandafter\expandafter\cs:accent\fi + \fi} +\def\pic:accent#1|<par del|>#2#3#4{% + #3\nopic:accent|<par del|>{#2}{}{}#4} +\def\nopic:accent#1|<par del|>#2#3#4{\expandafter\expandafter + \csname o:#2:\endcsname\expandafter{\:accented}} +>>> + +%%%%%%%%%%%%%%%%%%%%%% +\Section{Old Accents} +%%%%%%%%%%%%%%%%%%%%%% + + + +For entries not in the given font tables (not specified in the +\`'\Configure{accent}'), problems can arise for cases such as +\`'csname \ifmmode m\else t\fi :\acn:no\endcsname{#2}' and +\`'\hat{\char o}' when they don't go into pictures. + +\SubSection{Accents through `accents' Configurations} + +The +\`'\Configure{accent}\^\hat{{A-in}{A-out}{B-in}{B-out}...{}{last-out}} +{do-found} {do-not-found}' defines the text accent \''\^' and math +accent \''\hat'. In cases that the text or math accent has no counter math +accent, we fake \''\null' for the math part. + +When \''\hat{foo}' is encountered, a search is made for an \`'??-i' +that equals \`'foo' in the given accent table. If found, do-found is +executed; otherwise, do-not-found is executed. The do-found can reference the +??-out through \`'#1'. The do-not-found can reference the +old definition of \`'\hat' through \`'#1' and the foo through \`'#2'. + + + +\SubSection{Foundation for Accents} + + + + +\<tools for accents\><<< +\NewConfigure{accent}[5]{% + \expandafter\ifx \csname x:\string#2\endcsname\relax + \expandafter\edef + \csname x:\string#2\endcsname{\accent:cnt}% + |<save old accent comamnd|>% + |<new accent command|>% + \Advance:\accent:cnt by 1 + \fi + \edef\:tempa{\csname x:\string#2\endcsname}% + |<get accent config|>% + } +\def\accent:cnt{0} +>>> + +The \`'\csname t:\accent:cnt\endcsname' part is for the text mode, +and the \`'\csname m:\accent:cnt\endcsname' part is for math mode. + + +\<save old accent comamnd\><<< +\expandafter\let\csname t:\accent:cnt\endcsname|=#1% +\expandafter\let\csname m:\accent:cnt\endcsname|=#2% +>>> + + +\<new accent command\><<< +\edef\:temp{\ifx \accent:def\:UnDef \noexpand\def \else + \noexpand\accent:def \fi + \noexpand\:temp{\noexpand\ac:pc{\accent:cnt}}% + \noexpand\HLet\noexpand#1|=\noexpand\:temp + |<hook accent table|>}% +\:temp +\def\:temp{#1}\def\:tempa{#2}\ifx \:temp\:tempa \else \HLet#2|=#1\fi +>>> + +The search starts at \`'\ac:pc{\accent:cnt}'. +The accent table is stored in \`'\csname\accent:cnt :ac\endcsname'. +The table is searched by \''\acpc:', which puts the result in \''\end:accent'. + +\<hook accent table\><<< +\noexpand\pend:defI + \noexpand\:accnts{\noexpand\ifnum ########1=\accent:cnt + \noexpand\expandafter \noexpand\acpc: + \expandafter\noexpand\csname\accent:cnt :ac\endcsname + \noexpand\expandafter \noexpand\end:accent \noexpand\fi}% +>>> + +The pend above is just: +\`'\pend:defI\:accnts{\ifnum ########1=\accent:cnt + \expandafter\acpc: \csname\accent:cnt :ac\endcsname + \expandafter\end:accent\fi}' + + + +\<get accent config\><<< +\def\:temp{#3}\ifx \:temp\empty \else + \expandafter\def\csname \:tempa :ac\endcsname{#3} +\fi +\long\def\:temp##1##2{#4#5}\ifx \:temp\:gobbleII \else + \expandafter\def\csname C:\:tempa\endcsname##1{#4}% + \expandafter\def\csname MT:\:tempa\endcsname##1##2{#5}% +\fi +>>> + + + +\''\acp:c' might go to the aux file of latex, where \`':' has standard +cat code. Hence, the the protection on \''\csname' and not the command +itself (as was the case at the beginning). + + +\<old accents\><<< +\def\ac:pc{\Protect\csname acp:c\endcsname} +\def\acp:c#1#2{{\def\acn:no{#1}\def\:temp{#2}\ifx \:temp\empty + |<accent on empty arg|>% + \else |<tabacckludge|>% + \def\ac:pc{\ac:nt{#2}}\a:cpc{#1}\fi }} +\def\ac:nt{\csname \ifmmode m\else t\fi :\acn:no\endcsname} +>>> + +\<accent on empty arg\><<< +\ac:nt{}% +>>> + +\<old accents\><<< +\def\Ac:nt{\edef\:temp{\ifx \EndPicture\:UnDef + \def\noexpand\ac:pc{\noexpand\Protect \noexpand\acp:c}% + \expandafter\noexpand \csname MT:\acn:no\endcsname + \fi + \expandafter\noexpand + \csname\ifmmode m\else t\fi :\acn:no\endcsname}\:temp +} +>>> + +The second line above is for nested accents in nonpictorial +environments (e.g., \''\hat{\hat{x}}'). Otherwise, we are +getting an infinite loop because by now \''\ac:pc' has been +modified to equal \''\Ac:nt'. + + +\`' \def\acp:c#1#2{{\def\:temp{#2}\def\ac:pc{\accent#1 #2}\a:cpc{#1}}}' + +We can't have braces around \`'#2' in \`'\accent#1 #2' because they +get TeX \ifHtml[\HPage{confused}\Verbatim +\Draw \Text(--Ra\'ul--) \EndDraw +\EndVerbatim\EndHPage{}]\fi{} on the exact location of the mark. + + +\<old accents\><<< +\def\a:cpc#1{% + \ifx \EndPicture\:UnDef + \def\AC:PC{|<default accent|>% + }% + \:accnts{#1}\empty + \else \ac:pc \fi } +>>> + + +The \''\empty' is for the skiping over the leftover of the fonts, once +a font is found. It is used in \''\end:accent'. + +\<tools for accents\><<< +\def\end:accent#1\empty{} +\def\:accnts#1{} +>>> + + + + + + + +Latex has \`'\def\@tabacckludge#1{\csname #1\endcsname}'. + +\<tabacckludge\><<< +\let\@tabacckludge|=\:tabacckludge +>>> + +\SubSection{Getting the Html Replacement} + + +\<old accents\><<< +\def\acpc:#1#2{% + \def\:tempa{#1}\ifx \:tempa\empty + |<char/pic accent|>% + \else \ifx \:tempa\:temp \let\AC:PC|=\empty + |<accent for table entry|>\fi + \expandafter\acpc: + \fi} +>>> + +/:temp below is the parameter of the accent, and it can be empty +(e.g. \''\^{}'). If the parameter is empty, the accent is just a +character, given in the last parameter of \''\acpc:'. The recursive +macro \''\acpc:' eats two parameters at a time, and it terminates +when the first in the pair of parameters is empty. + +\<char/pic accent\><<< +\ifx \:temp\empty + \def\:tempa{#2}\ifx \:tempa\empty \AC:PC + \else |<accent for ?|>\fi +\else \AC:PC \fi +>>> + + +\<accent for ?\><<< +\csname \ifmmode m\else t\fi :\acn:no\endcsname{#2}% +>>> + + +\<accent for table entry\><<< +\csname C:\acn:no\endcsname{#2}% +>>> + + +The else \`'\csname \ifmmode m\else t\fi :\acn:no\endcsname{}' is for +the case that the parameter is empty, in which case the accent needs +to be converted into a stand alone character (e.g., \`'\={}'). + + +Default is needed for symbols not found in initiation tables. + + +\<default accent\><<< +{\let\AC:PC|=\ACP:C \let\ac:nt|=\Ac:nt \ac:pc}% +>>> + + + + + +The \`'\let\AC:PC=\ACP:C' above is for recursive cases like in +\`'$A\hat{B\hat{x}}$'. + + +\<config nonspecified accent\><<< + \def\:temp##1##2{#5#6}\ifx \:temp\:gobbleII \else +\expandafter\def\csname C:#3\endcsname##1{#5}% +\expandafter\def\csname MT:#3\endcsname##1##2{#6}% + \fi +>>> + + + + + + + + +\Section{End-of-Line Ch Characters} + +\<html utilities\><<< +\def\Hnewline{\:newlnch} +>>> + +Without the following, we get in toc things like \`'^^J' +that don't go together with catcode 13 for \`'^'. + +\<no Hnewline\><<< +\let\:newlnch|=\space +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Symbols} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Check that all the symbols belong to TeX and LaTeX + + +\<shared config\><<< +\def\HChar#1{{\leavevmode |%\ifmmode\else\expandafter\immediate\fi|% +\ht:special{t4ht@#1}\ifnum #1>-1 \a:HChar\fi}} +\NewConfigure{HChar}{1} +\Configure{HChar}{x} +>>> + + + +There is a boundary case of \''\HChar{0}' we didn't +handle above. Do we want to take care of it? + + +\`'\HChar{i}' inserts the character code i, with its font info, if +i is positive. If i is negative, the font info is not included. The +first case is obtained with a special that inserts its content +directly, and the second by a special sending its content as override +on top of the next character. + +The \''\Configure' tells from where the font info comes. With the +presence of regular and pictorial symbols, we should be careful +not to get here into a mess. + +Without checking for the math mode the immediate becomes problematic in math mode (why?). + +\Verbatim +\documentclass{article} +\begin{document} +$\_$ vs \_ +\end{document} +\EndVerbatim + + +Same problem for tables (why?) + +\Verbatim +\documentclass{article} +\begin{document} +\begin{tabular}{l} \_ \end{tabular} +\end{document} +\EndVerbatim + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Symbols} +%%%%%%%%%%%%%%%%%%%%%%%%%% + +% After |<dvi-based hooks|> + +% |<html math and non-math symbols|> |%after <math>|% + +% \<html math and non-math symbols\><<< +% \ifHtml +% \let\:copyright|=\copyright +% \def\::copyright{\gt:ch\:copyright{copy}} +% \def\copyright{\Protect\::copyright} +% \def\gt:ch#1#2{\ifx \EndPicture\:Undef \HCode{}\else #1\fi } +% \fi +% >>> +% + + +\<shared config\><<< +\NewConfigure{@Picture}[1]{\def\a:@Picture{#1}} +\let\a:@Picture|=\:gobble +>>> + + + + + +\Chapter{Dvi-Based Hooks} + +\<dvi-based hooks\><<< +|<tracing dvi|> +|<sent to dvi|> +>>> + + + +\Section{Tracing Dvi} + +\<tracing dvi\><<< +\def\HTrace#1{\csname #1:T\endcsname} +\def\EndHTrace#1{\csname #1:t\endcsname} +>>> + +\<tracing dvi\><<< +\def\RULE:T{\ht:special{t4ht@\%R}} \def\RULE:t{\ht:special{t4ht@\%r}} +>>> + +\<shared config\><<< +\NewConfigure{RULE}[5]{\ht:special{t4ht@\%\%R#1#2#1#3} + \ht:special{t4ht@\%\%r#1#4#1#5}} +>>> + +\<tracing dvi\><<< +\def\GROUP:T{\ht:special{t4ht@\%P}} \def\GROUP:t{\ht:special{t4ht@\%p}} +>>> + + +\<shared config\><<< +\NewConfigure{GROUP}[5]{\ht:special{t4ht@\%\%P#1#2#1#3} + \ht:special{t4ht@\%\%p#1#4#1#5}} +>>> + + +\<tracing dvi\><<< +\def\CHAR:T{\ht:special{t4ht@\%C}} \def\CHAR:t{\ht:special{t4ht@\%c}} +>>> + +\<shared config\><<< +\NewConfigure{CHAR}[5]{\ht:special{t4ht@\%\%C#1#2#1#3} + \ht:special{t4ht@\%\%c#1#4#1#5}} +>>> + +\<tracing dvi\><<< +\def\HSPACE:T{\ht:special{t4ht@\%H}} \def\HSPACE:t{\ht:special{t4ht@\%h}} +>>> + +\<shared config\><<< +\NewConfigure{HSPACE}[3]{\ht:special{t4ht@\%\%H#1#2#1#3}} +>>> + + +\<tracing dvi\><<< +\def\VSPACE:T{\ht:special{t4ht@\%V}} \def\VSPACE:t{\ht:special{t4ht@\%v}} +>>> + +\<shared config\><<< +\NewConfigure{VSPACE}[3]{\ht:special{t4ht@\%\%V#1#2#1#3}} +>>> + + + +tex4ht.c has implicit \`'\Configure{VSPACE}{.}{}{}', etc. for the +above. + + +Comamnd line `-p' requests tracings of specials. \`'\special{t4ht@/}' +for flip-floping requests of such tracings. + +The switch `-c' in the command line asks for context dump into the log +when dvi errors/ warning are provided. + +\Section{Sent to Dvi} + +All the control flow commads should be located within the +\`'\Send' environment. The \`'\send:special' takes care +of killing casses not obeying this requirement. + +\<sent to dvi\><<< +\def\Send#1{\Configure{Send:#1}} +\def\DviSend{\let\send:special|=\ht:special + \ht:special{t4ht\string~}\EndPauseBACK\ht:special{t4ht\string~}% + \ht:special{t4ht\string~}} +\def\EndDviSend{\send:special{t4ht\string~}% + \send:special{t4ht\string~}\PauseBACK\send:special{t4ht\string~}% + \let\send:special|=\:gobble} +\def\PauseBACK{\send:special{t4ht\string~<(}} +\def\EndPauseBACK{\send:special{t4ht\string~<)}} +\def\HideBACK{\send:special{t4ht\string~<[}} +\def\EndHideBACK{\send:special{t4ht\string~<]}} +\def\MiniBACK{\send:special{t4ht\string~<-}} +\def\EndMiniBACK{\send:special{t4ht\string~<+}} +>>> + +\<shared config\><<< +\let\send:special=\:gobble +\NewConfigure{Send:GROUP}[2]{\send:special{t4ht\string~<#1#2}} +\NewConfigure{Send:EndGROUP}[2]{\send:special{t4ht\string~>#1#2}} +\NewConfigure{Send:BACK}[1]{\send:special{t4ht\string~<*#1}} +>>> + + + +What \`'\MiniBACK...\EndMiniBACK' do here. + +\`'{\special{t4ht=}}' ----forcing a group +i.e. use \`'{\special{t4ht=}}^x' instead of \`'{}^x'. + + +\Section{Observations} + +\List{*} +\item \`'\HChar{...}' sends forward a character to the next printable +char (can be refined to specific characters). That is, it uses the +character of the command, with the decoration of the character that +follows. +\item \`'\special{t4ht@+...}' sends forward a string to the next printable +chr + + + +\item +\Verbatim + \special{t4ht@+. ...string...} configure insertions at eoln + \special{t4ht@+(} ignore spaces + \special{t4ht@+)} end ignore spaces + \special{t4ht@+[} ignore chs and spaces + \special{t4ht@+]} end ignore chs and spaces (but not the content of some + of the specials) + \special{t4ht@+!} get last ignored space (none, if from previous lines). +\EndVerbatim + + +\EndList + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Chapter{Loose Ends} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\Section{Hyphenation} +%%%%%%%%%%%%%%%%%% + +\<core tex\><<< +\def\hyphenation#1{} +>>> + + + + + + + + +%%%%%%%%%%%%% +\Section{String Encode} +%%%%%%%%%%%%% + +\<html config util\><<< +\expandafter\def\csname c:string-encoder:\endcsname#1{% + \expandafter\def\csname c:#1:\endcsname{% + \csname #1:String\endcsname + \expandafter\let\csname #1:String\endcsname=\empty + \expandafter\let\expandafter\Char:dic + \csname #1Char:dic\endcsname + \cnf:transString} + \expandafter\def\csname #1\endcsname##1##2|<par del|>{% + \if !##1!\expandafter\gob:par + \else + \expandafter\ifx \csname \string##1:#1EnCoDe\endcsname\relax + \string ##1\else + \csname \string##1:#1EnCoDe\endcsname + \fi + \if !##2!\expandafter\expandafter\expandafter\gob:par + \else + \expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \csname #1\endcsname + \fi + \fi + ##2|<par del|>% + } + \expandafter\def\csname #1Char:dic\endcsname##1##2{% + \def\:temp{##1}\ifx \:temp\empty \egroup + \else \egroup + \expandafter\append:def\csname #1:String\endcsname + {\expandafter\let + \csname \string##1:#1EnCoDe\endcsname=\:UnDef}% + \expandafter\def\csname \string##1:#1EnCoDe\endcsname{##2}% + \expandafter \cnf:transString + \fi + } +} +\def\cnf:transString{\bgroup + \catcode`\%=12 + \catcode`\~=12 + \catcode`\$=12 + \catcode`\&=12 + \catcode`\#=12 + \catcode`\^=12 + \catcode`\_=12 + \catcode`\?=12 \Char:dic } +\def\gob:par#1|<par del|>{} +>>> + + +Offers applications similar to the following one. + +\Verbatim +\Configure{string-encoder}{urlEncoder} + +\Configure{urlEncoder} + {!}{%21} + {"}{%22} + {#}{%23} + {$}{%24} + {%}{%25} + {&}{%26} + {'}{%27} + {(}{%28} + {)}{%29} + {+}{%2B} + {,}{%2C} + {<}{%3C} + {>}{%3E} + { }{+} + {}{} + + + + + \catcode`\%=11 + \catcode`\~=11 + \catcode`\$=11 + \catcode`\&=11 + \catcode`\#=11 + \catcode`\^=11 + \catcode`\_=11 + \catcode`\ =12 + + +\urlEncoder ! " # $ % & ' ( ) + , < > |<par del|> + +\Configure{urlEncoder}{}{} + +\urlEncoder ! " # $ % & ' ( ) + , < > |<par del|> +\EndVerbatim + + + +%%%%%%%%%%%%% +\Section{Moveright} +%%%%%%%%%%%%% + +\<shared config\><<< +\def\:temp{\a:moveright \o:moveright:} +\HLet\moveright|=\:temp +\NewConfigure{moveright}{1} +>>> + +The \''\leavevmode' is to force paragraph break, but we might end +here with extra one because of the internal content of the +parameter. An \''\IgnoreIndent' after \''\par' may solve the problem +of extra paragraph breaks, but it might also have adverse effect of +loosing paragraph breaks. + + +\Section{Debugging Mode} + + +\<debug\><<< +\:CheckOption{debug} +\if:Option |<html debug|> +\else |<no debug|> \fi +>>> + + + + + + + + + + + + + + + + +\Chapter{e tex/latex} + + +\Link[http://www.vms.rhbnc.ac.uk/e-TeX/v1/etex\string + _ref.html]{}{}e-TeX\EndLink + +\<e tex\><<< +\def\:temp{\o:beginL:\a:Lregion} +\HLet\beginL=\:temp +\def\:temp{\b:Lregion\o:endL:} +\HLet\endL=\:temp +\NewConfigure{Lregion}{2} +\def\:temp{\o:beginR:\a:Rregion} +\HLet\beginR=\:temp +\def\:temp{\b:Rregion\o:endR:} +\HLet\endR=\:temp +\NewConfigure{Rregion}{2} +>>> + + + + + + +\Chapter{Utilities} + + + +\Section{Vertical Break Points} + +La\TeX{} already has a \''\newpage'. Do we want the following to +be \''\clear:page'? + +\<general utilities\><<< +\ifx \newpage\:UnDef +\def\newpage{\vfil\penalty-10000 } +\fi +>>> + + + + + + + + + +\Section{Counters} + +With packages like pictex around, counters become scarce resources. +Hence, their use is minimized here in favor of macros. The tradeoff +in time is minor because counters are scarcely needed in TeX4ht. + + +NOTE: /g:advance in wripro...????????????????????? + + +\<general utilities\><<< +\ifx\tmp:toks\:UnDeF \csname newtoks\endcsname\tmp:toks\fi +\ifx\tmp:cnt\:UnDeF \csname newcount\endcsname\tmp:cnt\fi +\def\Advance:{\ip:op\advance\:Advance} +\def\Multiply:{\ip:op\multiply\:Advance} +\def\Divide:{\ip:op\divide\:Advance} +\def\gHAdvance{\ip:op\advance\g:Advance} +\def\gHMultiply{\ip:op\multiply\g:Advance} +\def\gHDivide{\ip:op\divide\g:Advance} +>>> + + +psfig already has /Multiply and /Divide + +When defined, \''\HAdvance' is the same as \''\Advance:'. + +\<general utilities\><<< +\def\DefOp#1#2{ + \ifx #1\:UnDef + \expandafter \ifx \csname #2:\endcsname\relax + \:warning{\string\DefOp...\string{#2\string}?}% + \else \expand:after{\let#1|=}\csname #2:\endcsname + \fi + \else \:warning{\string\DefOp\string#1\string{#2\string} + can't redefine \string#1}% + \fi +} +\DefOp\HAdvance{Advance} +\DefOp\HMultiply{Multiply} +\DefOp\HDivide{Divide} +>>> + + + +\<general utilities\><<< +\def\ip:op#1#2{\let\mth:op|=#1\let\adv:c|=#2\adv:} + +\def\adv:#1{\def\:var{#1}\futurelet\:temp\Advanc:} +\def\Advanc:{\ifx [\:temp \expandafter\Advanc:e + \else \expand:after{\expandafter\adv:c\:var}\fi} +\def\Advanc:e[#1]{\expandafter\adv:c\csname + \expandafter\string\:var[#1]\endcsname} + +\def\g:Advance#1{\bgroup \def\:temp{#1}% + \tmp:cnt|=#1\afterassignment\:gplus \mth:op\tmp:cnt} +\def\:gplus{\expandafter\xdef\:temp{\the\tmp:cnt}\egroup} +\def\:Advance#1{\bgroup \def\:temp{#1}% + \tmp:cnt|=#1\afterassignment\:aplus \mth:op\tmp:cnt} +\def\:aplus{\xdef\:temp{\def\expandafter\noexpand\:temp{\the\tmp:cnt}}% + \egroup \:temp} +>>> + +\<general utilities\><<< +\def\HAssign{\:ssg\edef} +\def\gHAssign{\:ssg\xdef} + +\def\:ssg#1#2{\let\d:fn|=#1\def\:var{#2}\futurelet\:temp\:Assgn} +\def\:Assgn{% + \ifx [\:temp + \expandafter\d:fn\:var[##1]{% + \noexpand\csname \expandafter + \string\:var[##1]\noexpand\endcsname}% + \expandafter\assg:m + \else \afterassignment\assg:v \expandafter \tmp:cnt \fi } + +\def\assg:v{\expandafter\d:fn\:var{\the\tmp:cnt}} +\def\assg:m[#1]{% + \def\:temp{\expandafter\d:fn + \csname \expandafter\string\:var[#1]\endcsname{\the\tmp:cnt}}% + \afterassignment\:temp \tmp:cnt} +>>> + + + +\Section{Pushdowns} + +\SubSection{Expanded Lists} + +\<utilities\><<< +\def\PushStack#1#2{% + \ifx #1\:UnDef \global\let#1|=\empty\fi + {\let\Picture|=\relax \xdef#1{{#2}{#1}}}} +\def\PopStack#1#2{% + \ifx #1\empty \:warning{empty \string\PopStack\string#1\string#2?}% + \global\let#2|=\empty + \else \def\:temp{\:recall#1#2}\expandafter\:temp#1\fi} +\def\:recall#1#2#3#4{\gdef#1{#4}\gdef#2{#3}} +>>> + +\SubSection{Control Sequences} + +\<utilities\><<< +\def\PushMacro#1{% + \expandafter\ifx \csname c:\string#1\endcsname\relax + \expandafter\gHAssign \csname c:\string#1\endcsname |= 0 + \fi + \HAssign\:temp |= \csname c:\string#1\endcsname + \let\:tempa|=#1% + \ifx \:tempa\:UnDef \let\:tempa|=\like:unDef\fi + \global\expandafter\let\csname \:temp\string#1\endcsname |= \:tempa + \expandafter\gHAdvance \csname c:\string#1\endcsname |by 1 } +>>> + +\<utilities\><<< +\def\PopMacro#1{% + \expandafter\gHAdvance \csname c:\string#1\endcsname |by -1 + \HAssign\:temp |= \csname c:\string#1\endcsname\relax + \ifnum \:temp < 0 + \expandafter\gHAssign \csname c:\string#1\endcsname |= 0 + \:warning{ignored \string\PopCs\string#1 on empty stack}% + \else + \expand:after{\let#1|=}\csname \:temp\string#1\endcsname + \ifx #1\like:unDef \let#1|=\:UnDef\fi + \fi + } +\def\like:unDef{\:UnDef\:CS} +>>> + + +\<utilities\><<< +\def\PushConfigure#1{\def\cf:name{#1}\expandafter + \expandafter\expandafter\Push:Configure\expandafter + \meaning\csname c:#1:\endcsname|<par del|>} +\def\PopConfigure#1{\def\cf:name{#1}\expandafter + \expandafter\expandafter\Pop:Configure\expandafter + \meaning\csname c:#1:\endcsname|<par del|>} +\def\do:undef#1->#2|<par del|>{% + \if :#2:\:warning{\string\PushConfigure{\cf:name}?}\fi +} +\catcode`\@=6 +\catcode`\#=12 +\def\Push:Configure@1|<par del|>{% + \do:undef@1->|<par del|>% + \do:para@1#1|<par del|>\push:config + \do:parb@1#2|<par del|>\push:config + \do:parc@1#3|<par del|>\push:config + \do:pard@1#4|<par del|>\push:config + \do:pare@1#5|<par del|>\push:config + \do:parf@1#6|<par del|>\push:config + \do:parg@1#7|<par del|>\push:config + \do:parh@1#8|<par del|>\push:config + \do:pari@1#9|<par del|>\push:config +} +\def\Pop:Configure@1|<par del|>{% + \do:pari@1#9|<par del|>\pop:config + \do:parh@1#8|<par del|>\pop:config + \do:parg@1#7|<par del|>\pop:config + \do:parf@1#6|<par del|>\pop:config + \do:pare@1#5|<par del|>\pop:config + \do:pard@1#4|<par del|>\pop:config + \do:parc@1#3|<par del|>\pop:config + \do:parb@1#2|<par del|>\pop:config + \do:para@1#1|<par del|>\pop:config +} +\def\do:para@1#1@2|<par del|>@3{@3{a}{@2}} +\def\do:parb@1#2@2|<par del|>@3{@3{b}{@2}} +\def\do:parc@1#3@2|<par del|>@3{@3{c}{@2}} +\def\do:pard@1#4@2|<par del|>@3{@3{d}{@2}} +\def\do:pare@1#5@2|<par del|>@3{@3{e}{@2}} +\def\do:parf@1#6@2|<par del|>@3{@3{f}{@2}} +\def\do:parg@1#7@2|<par del|>@3{@3{g}{@2}} +\def\do:parh@1#8@2|<par del|>@3{@3{h}{@2}} +\def\do:pari@1#9@2|<par del|>@3{@3{i}{@2}} +\catcode`\@=11 +\catcode`\#=6 +\def\push:config#1#2{% + \if :#2:\else + \expandafter\expandafter\expandafter\ifx \expandafter + \csname \csname#1New:Conf\endcsname\cf:name\endcsname\relax + \:warning{\string\PushConfigure{\cf:name} Failed}% + \else + \expandafter\expandafter\expandafter\PushMacro \expandafter + \csname \csname#1New:Conf\endcsname\cf:name\endcsname + \fi + \fi } +\def\pop:config#1#2{% + \if :#2:\else + \expandafter\expandafter\expandafter\ifx \expandafter + \csname \csname#1New:Conf\endcsname\cf:name\endcsname\relax \else + \expandafter\expandafter\expandafter\PopMacro \expandafter + \csname \csname#1New:Conf\endcsname\cf:name\endcsname + \fi + \fi } +>>> + + +\Section{Catergory Codes} + +We need category code 12, and not 11, because the latter +choise would cause control sequences of unbounded length within +the option \`'\Verbatim-'. + +\<general utilities\><<< +\def\no:catcodes#1#2#3{% + \tmp:cnt|=#1 + \def\no::catcodes{% + \catcode\tmp:cnt|=#3 + \ifnum\tmp:cnt<#2 + \advance\tmp:cnt |by 1 \expandafter\no::catcodes + \fi }% + \no::catcodes } +>>> + + +\Section{/pend:def and /append:def} + +The \''\long' below is to allow \''\par' in the second argument. + +\<early utilities\><<< +\long\def\append:def#1#2{% + \long\def\:temp{\long\def#1}% + \expandafter\expandafter\expandafter\:temp\expandafter{#1#2}} +\long\def\pend:def#1#2{% + \long\def\:temp{#2}% + \long\def\:tempa{\long\def#1}% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\:tempa + \expandafter\expandafter\expandafter{\expandafter\:temp #1}} +\long\def\pend:defI#1#2{% + \long\def\:tempa{\long\def#1####1}% + \ex:pend{#2}{\expandafter\:temp #1{##1}}} +\long\def\ex:pend#1{\long\def\:temp{#1}% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\:tempa + \expandafter\expandafter\expandafter} +>>> + +\<early utilities\><<< +\long\def\append:defI#1#2{% + \long\def\:temp{\long\def#1####1}% + \expandafter\expandafter\expandafter\:temp\expandafter{#1{##1}#2}} +\long\def\pend:defII#1#2{% + \long\def\:tempa{\long\def#1####1####2}% + \ex:pend{#2}{\expandafter\:temp #1{##1}{##2}}} +\long\def\append:defII#1#2{% + \long\def\:temp{\long\def#1####1####2}% + \expandafter\expandafter\expandafter\:temp\expandafter{#1{##1}{##2}#2}} +\long\def\pend:defIII#1#2{% + \long\def\:tempa{\long\def#1####1####2####3}% + \ex:pend{#2}{\expandafter\:temp #1{##1}{##2}{##3}}} +\long\def\append:defIII#1#2{% + \long\def\:temp{\long\def#1####1####2####3}% + \expandafter\expandafter\expandafter + \:temp\expandafter{#1{##1}{##2}{##3}#2}} +>>> + +\SubSection{/Odef} + +\<general utilities\><<< +\HAssign\def:cnt=0 +\def\Odef#1{\gHAdvance\def:cnt |by 1 + \edef#1{\noexpand\with:op + \expandafter\noexpand\csname \def:cnt \string#1\endcsname }% + \expandafter\gdef\csname\def:cnt\string#1\endcsname} +\def\with:op#1{\let\n:xt|=#1\futurelet\:temp\wth:opt} +\def\wth:opt{\ifx [\:temp + \expandafter\n:xt\else \expand:after{\n:xt[]}\fi} +>>> + +The +\`' \expandafter\gdef\csname\def:cnt\string#1\endcsname}' +allo \`'\global\let#1=#1'. + + + + + +\Section{/Needs} + +\<general utilities\><<< +\def\Log:Needs#1{{\escapechar=`\\\immediate\write-1{\:Neds{#1}}}} +>>> + +\<html config util\><<< +\def\c:Needs:{\def\:Needs##1} +\expandafter\def\csname c:Needs-:\endcsname{\def\:Neds##1} +>>> + + + + + +Put the following in a group so that the temporary variables +will not interfere with other usages. + +\<html utilities\><<< +\def\Needs{\bgroup\catcode`\"=12 \cat:Needs} +\def\cat:Needs#1{\def\:temp{-}\def\:tempa{#1}\ifx \:temp\:tempa + \aftergroup\Log:Needs \else \ht:special{t4ht+@\:Needs{#1}}\fi + \egroup} +>>> + + + + + +\Section{/HCommand and /LinkCommand} + + + + + + +The following is introduced at the end of the style file, to +allow for \''\Contribute{name}{...}' commands that check +for the legality of \`'name'. Otherwise, it +is identical to the above. + + + + +\`'\LinkCommand\Frame{FRAME,SRC,ID} +\Frame{a}{A}...\EndFrame +\LinkCommand\FRAME{FRAME,SRC,ID,attr} +\LinkCommand\FRAME{FRAME,SRC,ID,attr,/,sharp} +\FRAME{a}{A} +\FRAME[b 1]{c}{d}' + + + + +\<html utilities\><<< +\def\LinkCommand#1#2{\L:Com#1#2,,,,,,|<par del|>{#1}} +\let\:Link|=\Link +\def\L:Com#1#2,#3,#4,#5,#6,#7,#8|<par del|>#9{\def\:tempe{#7}% + \def\:tempa{#2}\def\:tempb{#3}\def\:tempc{#4}\def\:tempd{#6}% + \expandafter\edef\csname + End\expandafter\:gobble\string #9\endcsname{% + \ifx\:tempd\empty \noexpand\HCode + {\Hbrakets</\ifx\:tempa\empty \tag:A\else#2\fi>}\fi }% + \edef\:temp{% + \noexpand\Odef\noexpand#1[####1]####2####3{{% + \def\noexpand\tag:A{\ifx\:tempa\empty\tag:A\else#2\fi}% + \def\noexpand\HREF:{ \ifx\:tempb\empty\HREF:\else#3=\fi}% + \def\noexpand\NAME:{ \ifx\:tempc\empty\NAME:\else#4=\fi}% + \def\noexpand\empty:lnk{\ifx\:tempd\empty\else#6\fi}% + \def\noexpand\:sharp{\ifx\:tempe\empty\:sharp\else#7\fi}% + \noexpand\M:link[####1 #5]{####2}{####3}}}}\:temp + |<add - opt to command|>% + } +>>> + + +\<add - opt to command\><<< +\expandafter\let\csname \string#1 :\endcsname|=#1 +\def#1{\bgroup\LD:Link{#1}\futurelet#1\M:link} +>>> + +\<html utilities\><<< +\def\LD:Link#1{% + \def\M:link{\ifx -#1\egroup \def\M:link{\:Link-}\expandafter\gob:lnk + \else \egroup \let\M:link|=\:Link \fi + \csname \string#1 :\endcsname }} +\def\gob:lnk#1-{#1} +>>> + +\<html Configure's\><<< +\NewConfigure{Link}[4]{% + \def\empty:lnk{#4}\ifx\empty:lnk\empty\else \def\:sharp{#4}\fi + \let\empty:lnk|=\empty \def\tag:A{#1}% + \def\HREF:{#2}\def\NAME:{#3}} +\Configure{Link}{}{}{}{} +\let\NOHREF:|=\:gobble +>>> + + + +The \`'\let\:Link|=\Link' is to allow for the redefinition of +\`'\Link' and hadling -. An \`'\if !#4!\else' will not work +for the case that \''\empty' is given to \''#4'. + + +% \`+\Attribute\onSelect{onSelect="loc='#1'"} +% \HCommand\Option{OPTION,\onSelect}+ +% +% \<html utilities\><<< +% \def\Attribute#1{% +% \def#1{\expandafter\noexpand\csname\string#1\endcsname}% +% \expandafter\def\csname\string#1\endcsname="##1"} +% >>> + + + + +\Section{Loose Ends} + + + +\<general utilities\><<< +\def\g:delete#1{% + \expandafter\expandafter\expandafter\global + \expandafter\let\csname #1\endcsname|=\:UnDef +} +\def\xdef:cs#1{\expandafter\xdef \csname #1\endcsname}% +\def\:csname{\expandafter\noexpand\csname} +>>> + + +\<general utilities\><<< +\long\def\:gobble#1{} +\long\def\:gobbleII#1#2{} +\long\def\:gobbleIII#1#2#3{} +\long\def\:gobbleIV#1#2#3#4{} +\long\def\:gobbleV#1#2#3#4#5{} +\long\def\:gobbleVI#1#2#3#4#5#6{} +\long\def\:gobbleVIII#1#2#3#4#5#6#7#8{} +>>> + + + + + + + + + + + +\ifHtml[\HPage{more}\Verbatim +change CutAt{a,b} to CutAt{a,/b} and add exercises here. +\EndVerbatim\EndHPage{}]\fi + + +\ifHtml[\HPage{more}\Verbatim + +In TeX4ht, \''\begin{...}' and \''\end{...}' are redefined +to \''\SaveEverypar\begin{...}' and \''\end{...}\RecallEverypar' +so it is pointless to directly deal with paragraph breaks +and saving. Since the saving and recalling are global +operations (in a pushdown fashion), the following +redefine the saved environment to eliminate +paragraph breaks after the environment. + + +WE HAVE here a problem if someone goes directly, e.g., for +\''\quotation...\endquotation' instead of +\''\begin{quotation}...\end{quotation}'. On the other hand, +LaTeX doesn't mention the first case as an option. +\EndVerbatim\EndHPage{}]\fi + + + +\<html utilities\><<< +\ifx\tmp:dim\:UnDeF \csname newdimen\endcsname\tmp:dim\fi +>>> + + + + +\SubSection{Protection} + +Fonts in sectioning titles can be a problem, when delivered to tocs. Hence, +we need to protect them from early expansions. + +Without the space, we can have in toc file expanded control +sequences (e.g., \`'\protect\tt x' becomming \''\ttx'). + +The following is for preveting expansions in edef environments while +preserving the meaning within standard environments. We need it, in +particular, for writing into toc and for (i.e., HPage?) CutAt when +titles of sections are referenced. + +\<html utilities\><<< +\def\pr:tc{\relax} +\let\prOteCt|=\relax +\def\Protect{% + \let\prOteCt|=\pr:tc + \ifx \prOteCt\pr:tc \let\prOteCt|=\relax + \else \noexpand\Protect\expandafter\noexpand\fi +} +>>> + +LaTeX has \`'\def\@unexpandable@protect{\noexpand\protect\noexpand}' to be included in immediate defines. + + +\Section{Tags} + +\SubSection{Html} + + +The following create \`'<A HREF="aav.\:html#Q1-5-1" +NAME="Q2-5-1">.........</A>' in the table of contents and +\`'<A HREF="a.\:html#Q2-5-1" NAME="Q1-5-1">..........</A>' in the +title. The address \`'Qi-j-m' tells that we deal with tag of type +\`'Qi', in file \`'j', for title \`'m' in the file. + + + +\<toc tag\><<< +Q>>> + + +The prefix \`'\<toc tag\>' is required for distinguishing the tocs tags +from other tags to allow for selective loading of cross references +when communicating toc info. + + + + + +\<csname: file name -> file id\><<< + FN >>> + + + + +\SubSection{Standard} + + +\FreeCode\<tag of Tag\> % to avoid duplication + +\<tag of Tag\><<< + cw:>>> + + + + + + + + + +\<File tag\><<< +(L >>> + + + + +\<next HPage tag\><<< +|<auto tag|>N >>> + + + +\<bib tag\><<< +|<auto tag|>B >>> + + + +\SubSection{Internal} + +\<tag MarkCurFile\><<< +cf: >>> + + + + + + +\Chapter{wripro.tex: HTML Stuff Shared by TeX4ht and AlProTex} + + + +TeX4ht writes its tags into \`+.ref+ files until ProTex takes over +and gets the tags into \`+.xref+ files. + + + + +\<check that TeX4ht is not loaded after protex\><<< +\def\:warning#1{\writesixteen{l.\the\inputlineno\space + --- TeX4ht warning --- #1 ---}} +\ifx \:ShowCode\:UnDeF \else + \:warning{|<TeX4ht name|>.sty loaded after ProTeX?} +\fi +>>> + + + +\`'\NewHaddr' provides an address that encodes a location +together with its file name. + +Is the followint true? We can have for hadresses +\`'\Link{Haddr}{} \Link{}{Haddr}' without worrying about +extracting the file names as long as we use HAddress we get from +\`'\NewHaddr'!!! That is, in \`'\Link'the [] option is needed +just for external files compiled separately. WELL, it seems to be true +for any tags because they are resolved indirectly through thr REF +file!!!! Great , how could I have forgotten about this pearl? + + +AlProTex used something like the following. +Create saving at direct programming of HREF and HTAG in \`'<A>' coomands, because we don't need now Ref/Tag intermediates. + +\<html utilities\><<< +\def\NewHaddr#1{\html:addr \let#1|=\last:haddr} +\def\GetHref#1{\expandafter\get:href#1-} +\def\GetHname#1{\expandafter\get:htag#1-} +\ifx \make:addr\:UnDeF + \def\make:addr#1{|<tail for file name|>#1} \fi +>>> + +\`'make:addr' may already be defined from AlProTex. It had\''\space' after \`'#1' that has been removed (see AlProTex). + + +\<html utilities\><<< +\def\FileNumber{\file:id} +\def\c:XrefFile:#1{\def\aXrefFile{#1}} +>>> + + +\openin15= wripro.tex +\ifeof15 \closein15 + \writesixteen{*********************************} + \writesixteen{* - error - missing wripro.tex *} + \writesixteen{*********************************} +\else \closein15 \input wripro.tex \fi + +\<warnings for missing /Link\><<< +\ifx \:::HRefTag\:UnDef\else + \pend:defII\:::HRefTag{% + \if \relax##1\relax\else + \expandafter\ifx\csname cw:)Q\aXrefFile ##1\endcsname\relax + \:warning{\string\Link{##1}?}\csname a:?Link\endcsname + \fi\fi } +\fi +>>> + +\<cross references\><<< +\NewConfigure{?Link}{1} +>>> + + +\Chapter{Background Material} +\Link[http://www.diku.dk/students/turtle/trick.html]{}{}Tricks for TeX +and LaTeX\EndLink{} (Collected by Peter M\o{}ller Neergaard) + + + +%------------------------------------------------------ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<TeX4ht name\><<< +tex4ht>>> + + + + +%------------------------------------------------------- +\openin15= wripro.tex +\ifeof15 \closein15 + \writesixteen{***********************************} + \writesixteen{* -- error -- missing wripro.tex -*} + \writesixteen{* Making a broken tex4ht.sty file.*} + \writesixteen{* Don't use this tex4ht.sty file! *} + \writesixteen{***********************************} +\else \closein15 \fi +%------------------------------------------------------- + +\OutputCode\<tex4ht\> + + +\bye diff --git a/support/TeX4ht/source/tex4ht-svg.tex b/support/TeX4ht/source/tex4ht-svg.tex new file mode 100644 index 0000000000..685ad4c4b7 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-svg.tex @@ -0,0 +1,309 @@ +% $Id: tex4ht-svg.tex 472 2018-12-30 17:39:42Z karl $ +% compile 3 times: latex tex4ht-svg +% or xhlatex tex4ht-svg "html,3,sections+" +% +% Copyright 2009-2018 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{svg-option,html4-svg} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<svg-option\><<< +% svg-option.4ht (|version), generated from |jobname.tex +% Copyright 2009-2018 TeX Users Group +% Copyright |CopyYear.2001. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +% 2017-05-05 Michal +% Change DTD and other stuff only for svg-inline +% this is legacy option which will hold the original `svg` option behaviour +\<configure svg-option tex4ht\><<< +\:CheckOption{svg-inline}\if:Option +\Configure{VERSION} + {\IgnorePar\HCode{<?xml version="1.0" |<xml encoding|> ?> \Hnewline}} +\Configure{DOCTYPE}{\HCode + {<!DOCTYPE html PUBLIC + "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//|<dtd lang|>"\Hnewline + "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">\Hnewline + <!--http://www.w3.org/TR/XHTMLplusMathMLplusSVG/-->\Hnewline +}} +>>> + +\<xml encoding\><<< + encoding="\expandafter\ifx \csname a:charset\endcsname\relax + \expandafter\:encoding\A:charset + \else \expandafter\:encoding\a:charset\fi" +>>> + +\<configure svg-option tex4ht\><<< +\Configure{@DOCTYPE} + {<!ENTITY \% svg.dtd PUBLIC "-//W3C//DTD SVG 20010719//|<dtd lang|>"\Hnewline + "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">\Hnewline + \%svg.dtd; \Hnewline} +>>> + + +\<configure html4-svg tex4ht\><<< +% hmtl-svg.4ht (|version), generated from |jobname.tex +% Copyright 2009-2018 TeX Users Group +% Copyright |CopyYear.2001. Eitan M. Gurari +|<TeX4ht copywrite|> +\Configure{@DOCTYPE} + {<!ENTITY \% misc "ins || del || script || noscript || svg">\Hnewline} +>>> + + +\<dtd lang\><<< +\expandafter +\ifx \csname a:dtd-lang\endcsname\relax EN\else + \csname a:dtd-lang\endcsname +\fi +>>> + +\<configure svg-option tex4ht\><<< +\Configure{@HTML} + {\Hnewline xmlns:svg="http://www.w3.org/2000/svg"\Hnewline } +\fi +>>> + + + +%%%%%%%%%%%%%%%%%% +\chapter{Code} +%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\section{DVI Images} +%%%%%%%%%%%%%%%%%% + + + + + +\<configure svg-option tex4ht\><<< +\Configure{Picture}{.svg} +\:CheckOption{svg-obj} \if:Option + |<object svg-obj|> +\else \:CheckOption{svg-} \if:Option + |<object svg|> +\else + \Log:Note{for external SVG files + try the command line options `svg-obj' and 'svg-'} +\:CheckOption{svg-inline}\if:Option + |<internal svg|> +\fi +\fi\fi +>>> + + + +\<object svg-obj\><<< +\Configure{IMG} + {\special{t4ht=<object type="image/svg+xml" data="}} + {\special{t4ht=" name="}} + {" } + {\special{t4ht=" }} + {\special{t4ht=></object>}} +>>> + + + + + +\<object svg\><<< +\Configure{IMG} + {\special{t4ht=<object type="image/svg+xml"><img src="}} + {\special{t4ht=" alt="}} + {" } + {\special{t4ht=" }} + {\special{t4ht=/></object>}} +>>> + + +\<internal svg\><<< +\Configure{IMG} + {\special{t4ht=<!-- src="}} + {\special{t4ht=" alt="}} + {" } + {\special{t4ht=" }} + {\special{t4ht=-->}% + \openin15=\PictureFile \relax + \ifeof15 \:warning{\PictureFile\space is not available}% + \else \closein15 \special{t4ht*<\PictureFile}\fi + } +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Include graphics} +%%%%%%%%%%%%%%%%%% + +\<configure svg-option graphics\><<< +\Configure{graphics*} + {svg} + {{\Configure{Needs}{File: \csname Gin@base\endcsname.svg}\Needs{}}% + \special{t4ht=<object type="image/svg+xml" + data="\Gin@base.svg" + name="picture \Gin@base" + class="graphics"></object><!--tex4ht:graphics |<graphics dim|>-->}} +>>> + +\<graphics dim\><<< +\csname a:Gin-dim\endcsname +>>> + +%%%%%%%%%%%%%%%%%% +\section{Support for th4:draw} +%%%%%%%%%%%%%%%%%% + + + + +\<configure svg-option th4\><<< +\:CheckOption{draw} \if:Option \:CheckOption{th4} \if:Option + \Configure{Fig} + {\Svg} + {\EndSvg} + \:CheckOption{svg-} \if:Option + |<embed svg draw|> + \else + |<internal svg draw|> + \fi +\fi \fi +>>> + + + +\<external svg draw\><<< +\HAssign\:svgN = 0 +\def\Svg{% + \gHAdvance\:svgN by 1 + \HCode{<embed src="\jobname\:svgN.svg"\Hnewline + name="svg\:svgN" type="image/svg+xml" +% height="600" width="600" + \Hnewline pluginspage="http://www.adobe.com/svg/viewer/install/">}% + |<open embeded file|>% + |<open embeded svg|>% + \bgroup\Canvas \x:SUBOff \x:SUPOff + \let\Picture=\empty \everymath{}\everydisplay{}% +} +\def\EndSvg{\EndCanvas\egroup + |<close embeded svg|>% + |<close embeded file|>} +>>> + + + + + +\<internal svg draw\><<< +\def\Svg{\HCode{<svg:svg>\Hnewline + <svg:g style="stroke:black; stroke-width:1; + stroke-opacity:1;">\Hnewline}% + \bgroup\Canvas \x:SUBOff \x:SUPOff + \let\Picture=\empty \everymath{}\everydisplay{}% +} +\def\EndSvg{\EndCanvas\egroup + \HCode{</svg:g></svg:svg>}} +>>> + + + + +\<embed svg draw\><<< +\let\:svg=\empty +\NewConfigure{Canvas}[4]{\ht:special{t4ht"% + *% + *d\Hnewline<!--width="\%.1f#4" % + *D height="\%.1f#4" % + *y above-baseline="\%.1f#4" -->% + **\Hnewline<\:svg text x="\%.1f" y="\%.1f" >% + *</\:svg text>% + *\Hnewline<\:svg rect x="\%.1f#4" y="\%.1f#4" + width="\%.1f#4" height="\%.1f#4" />% + *#1*#2*#1*#2*#3}} +\Configure{Canvas}{0.0000152587890625}{0.0}{0.5}{} +>>> + + +65536 scaled units = 1 pt. 1 / 65536 = 0.0000152587890625. + +\<\><<< +\NewConfigure{Canvas}[4]{\ht:special{t4ht"% + *% + *d\Hnewline<!--width="\%.0f#4;" % + *D height="\%.0f#4;" -->\Hnewline % +% **<svg:text x="\%.0f" y="\%.0f" >% +% *</svg:text>\Hnewline % + **<svg:foreignObject x="\%.0f" y="\%.0f" >% + *</svg:foreignObject>\Hnewline % +% *\Hnewline<svg:rect x="\%.0f#4" y="\%.0f#4" +% width="\%.0f#4" height="\%.0f#4" +% fill="black" stroke-width="0" />% + *\Hnewline<svg:polyline points="\%.0f#4 \%.0f#4 \%.0f#4 \%.0f#4" + style="stroke-width:\%.0f#4" />% + *#1*#2*#1*#2*#3*2}} +>>> + + + + + +\<open embeded file\><<< +\ht:special{t4ht>\jobname\:svgN.svg}% +\HCode{<?xml version="1.0" encoding="iso-8859-1"?>\Hnewline +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//|<dtd lang|>"\Hnewline + "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd"> +\Hnewline} +>>> + +\<close embeded file\><<< +\ht:special{t4ht<\jobname\:svgN.svg}% +>>> + +\<open embeded svg\><<< +\HCode{<\:svg svg>\Hnewline + <\:svg g style="stroke-width:0; fill:black;">\Hnewline}% +>>> + +\<close embeded svg\><<< +\HCode{</\:svg g></\:svg svg>}% +>>> + + + + + + +%%%%%%%%%%%%%%%%%% +\chapter{Notes} +%%%%%%%%%%%%%%%%%% + + +Requires two compilations (e.g., with \verb!mzlatex try "html,svg"!) +for importing the SVG code. + + + + +\endinput + diff --git a/support/TeX4ht/source/tex4ht-t4ht.tex b/support/TeX4ht/source/tex4ht-t4ht.tex new file mode 100644 index 0000000000..9b534c9490 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-t4ht.tex @@ -0,0 +1,4521 @@ +% $Id: tex4ht-t4ht.tex 418 2018-07-03 17:37:07Z karl $ +% tex tex4ht-t4ht or ht tex tex4ht-t4ht +% +% Copyright 2009-2018 TeX Users Group +% Copyright 1998-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +% bcc32 -DBCC32 t4ht.c +% gcc -O2 -DKPATHSEA -I/usr/local/teTeX/include -L/usr/local/teTeX/lib -o t4ht t4ht.c -DHAVE_DIRENT_H -lkpathsea + +\input common.tex +\input tex4ht.sty + +\Preamble{xhtml,th4,sections+,xhtml}\EndPreamble + + \input ProTex.sty + \AlProTex{c,<<<>>>,`,title,list,_^,CodeLineNo} + +%\input tex4ht-cpright.tex + +\Comment{ +}{} +\def\CodeId#1#2{} + + +\def\UnderLine#1{\ifHtml + \HCode{<strong>}#1\HCode{</strong>}\else\underbar{#1}\fi} +\let\CModifyShowCode=\ModifyShowCode +\let\CModifyOutputCode=\ModifyOutputCode +\def\ModifyShowCode{\def\[##1({##1\UnderLine{(}}\def + \;{\UnderLine{;}}\CModifyShowCode} + \catcode`\^=7 \catcode`\@=6 \catcode`\#=12 \catcode`\^^M=13\relax% +\def\ModifyOutputCode{% +\def\;{ SEP }% +\def\[@@1(@@2)@@3;{@@1 +#ifdef ANSI +#define SEP , +(@@3) +#undef SEP +#else +#define SEP ; +(@@2)@@3; +#undef SEP +#endif +}% +\CModifyOutputCode}% + \catcode`\^^M=5 \catcode`\@=12 \catcode`\#=6 \catcode`\^=13 + + + + +\let\'=\Verb +\def\`{\expandafter\expandafter\expandafter\qts\Verb} +\def\qts#1{`#1\aftergroup'} + +\def\FTP{http://www.cis.ohio-state.edu/\string~gurari/tpf/} + +\TocAt{Section,SubSection} +\CutAt{Section} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\LikeChapter{t4ht: postprocessor for tex4ht} + +The compilation of this file requires the packages +\Link[\FTP ProTex.sty]{}{}Pro\TeX\EndLink{} +and \Link[\FTP AlProTex.sty]{}{}AlPro\TeX\EndLink. + +\TableOfContents[Section,SubSection] + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Outline} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{The Cases} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The post-processor \`'tex4ht.c' prepares a \`'.lg' file in which it +lists the pictures that need to be generated, and the entries +encountered in \''\Needs{...}'. The \`'.log' file contains the entries +encountered in the \''\Needs-{...}'. The t4ht program (used to be a +Perl script?) treats as commands the entries that are enclosed between +double-quote (\''"') characters, and the other entries as comments. It +first works on the \`'.lg' file and then on the \`'.log' file. +The main output is a new \`'.css'. + + +\<main's body\><<< +`<load env file`> +lg_file = open_file(lg_name,LG_EXT); +if( lg_file ) { + `<mark start lg file`> + `<rewind lg file`> `<stop, if tex4ht.c err`> + `<rewind lg file`> `<CopyTo files`> + `<rewind lg file`> `<htfcss from lg`> + `<rewind lg file`> `<font=(...) from lg`> + `<rewind lg file`> `<identify the empty pictures`> + `<rewind lg file`> `<process gif's`> + `<rewind lg file`> `<process css`> + `<rewind lg file`> `<post-process ext files`> + `<rewind lg file`> `<post-process files`> + `<rewind lg file`> `<mv lg/File to dir and chmod`> + `<rewind lg file`> `<process user commands`> + (IGNORED) fclose(lg_file); +} +>>> + +\<mv lg/File to dir and chmod\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_str("File: ", TRUE, lg_file); + status = scan_until_end_str("", 1, status, lg_file); + status = status && !eq_str(match[1],tmp_name); + if( status ){ + FILE* file; + file = fopen(match[1], READ_TEXT_FLAGS); + if( file ){ + (IGNORED) fclose(file); + } else { status = FALSE; } + } + if( status ){ + if( dir ){ + (void) execute_script(copy_script, match[1], + dir? dir :"",".",""); + } + if( ch_mod ){ + (void) execute_script(chmod_script, ch_mod, + dir? dir:"",match[1], ""); + } +} } +>>> + +% Need to input tex4ht-cpright.tex at this point, +% if not, it causes an error while expanding the +% macros like `jobname.tex, `version, ... +% Still greek to me. :( CVR/2010/02/11 +% +\input tex4ht-cpright.tex + + +\<t4ht.c\><<< +/* t4ht.c (`version), generated from `jobname.tex + Copyright (C) 2009-2018 TeX Users Group + Copyright (C) `CopyYear.1998. Eitan M. Gurari +`<TeX4ht copyright`> +*/ +`<t4ht.h`> +`<defines`> +`<vars`> +`<header functions`> +`<functions`> +`[ +int `<CDECL`> main(argc, argv) + int argc`; + Q_CHAR **argv +;{ `<main's vars`> + `<resplit argv for windows`> + `<set signals`> + `<program signature`> + `<main's init`> + + `<scan job args`> + `<main's body`> + return 0; +} +>>> + + +\<program signature\><<< +(IGNORED) printf("----------------------------\n"); +#ifndef KPATHSEA +#ifdef PLATFORM + (IGNORED) printf("t4ht.c (`version %s)\n",PLATFORM); +#else + (IGNORED) printf("t4ht.c (`version)\n"); +#endif +#else +#ifdef PLATFORM + (IGNORED) printf("t4ht.c (`version %s kpathsea)\n",PLATFORM); +#else + (IGNORED) printf("t4ht.c (`version kpathsea)\n"); +#endif +#endif + +`<handle quoted arguments`> +{ int i; + for(i=0; i<argc; i++){ + (IGNORED) printf("%s%s ", (i>1)?"\n " : "", argv[i]); } + (IGNORED) printf("\n"); +} +>>> + + + +\SubSection{char, signed char, unsigned char (gcc man)}: + + + Each kind of machine has a default for what char should + be. It is either like unsigned char by default or like + signed char by default. + + Ideally, a portable program should always use signed + char or unsigned char when it depends on the signedness + of an object. But many programs have been written to + use plain char and expect it to be signed, or expect it + to be unsigned, depending on the machines they were + written for. This option, and its inverse, let you + make such a program work with the opposite default. + + The type char is always a distinct type from each of + signed char and unsigned char, even though its behavior + is always just like one of those two. + + + + +\<definesNO\><<< +#define Q_CHAR signed char +#define U_CHAR unsigned char +#define C_CHAR char +#define Q_NULL (Q_CHAR *) 0 +#define U_NULL (U_CHAR *) 0 +#define C_NULL (C_CHAR *) 0 +>>> + +Pointers to strings must use \`'C_CHAR', since we don't +know how string constants are treated there. + + +\<defines\><<< +#define Q_CHAR char +#define U_CHAR char +#define C_CHAR char +#define Q_NULL (Q_CHAR *) 0 +#define U_NULL (U_CHAR *) 0 +#define C_NULL (C_CHAR *) 0 +>>> + +\SubSection{EOF Character} + + +\<vars\><<< +static int eoln_ch; +>>> + +\Verbatim +OBTW: when compiling t4ht.c, I get messages about the uselessness of comparing +chars (which are unsigned, at least on a IRIX 6.5) to EOF which is defined as +-1 in stdio.h).... and indeed it program loops endlessly. +Adding the lines + #undef EOF + #define EOF 255 +after the last #include gets the effect that you probably want (or perhaps +better would be to define a constant EOFCHAR or something.) +\EndVerbatim + +The getc returns the next character as an unsigned char converted to int. +This is so to allow all characters to be return as well as end-of-file +indicators (-1 in stdio) and error indicator. + + + + +%%%%%%%%%%%%% +\Section{Stop on tex4ht.c Err} +%%%%%%%%%%%%% + + + +\<stop, if tex4ht.c err\><<< +if( check_tex4ht_c_err ){ + eoln_ch = (int) 'x'; + while( eoln_ch != EOF ) { + status = scan_str("tex4ht.c error: ", TRUE, lg_file); + if( status ){ + (IGNORED) fprintf(stderr, + "--- Error --- tex4ht.c ran into problems\n" + ); + exit(EXIT_FAILURE); + } + status = scan_until_end_str("", 1, status, lg_file); +} } +>>> + + + + +\<vars\><<< +static BOOL check_tex4ht_c_err = FALSE; +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Platform-dependent Code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + + + + + + + + + + + + + + + + + + +\SubSection{PreProcessor Directives} + + +Symantec C++ for wid95: +\''sc t4ht.c -mn -o+time -WA -3 -a8 -c -D_CONSOLE=1 -ot4ht.obj' + + +\<defines\><<< +#define IGNORED void +>>> + + + +\<t4ht.h\><<< +/* ********************************************** + Compiler options * + (uncommented | command line) * +------------------------------------------------* + Classic C (CC) default +#define ANSI ansi-c, c++ +#define DOS_C +#define HAVE_STRING_H <string.h> +#define HAVE_DIRENT_H <dirent.h> +#define HAVE_SYS_NDIR_H <sys/ndir.h> +#define HAVE_SYS_DIR_H <sys/dir.h> +#define HAVE_NDIR_H <ndir.h> +#define HAVE_IO_H <io.h> +#define HAVE_UNISTD_H <unistd.h> +#define WIN32 +#define KPATHSEA +#define SYSTEM_FUNCTION_OK +#define CDECL .......... +#define BCC32 bordland c++ + +************************************************* + Tex4ht variables * + (uncommented | command line) * +----------------------------------------------- */ +`<h-defines`> +/* ******************************************** */ +`<define MSVC-1-52`> +`<bordland: bcc32 -DBCC32 t4ht`> +`<bordland: bcc -DBCC tex4ht`> +`<DJGPP`> +#ifdef DOS_C +#define DOS +#endif +#ifdef DOS +#define DOS_WIN32 +#ifndef HAVE_STRING_H +#define HAVE_STRING_H +#endif +#endif +#ifdef WIN32 +#define DOS_WIN32 +#endif +`<h-defines DOS-WIN32`> +`<h-defines KWIN32`> +`<h-include`> +`<h-defines 2`> +>>> + + +\<bordland: bcc32 -DBCC32 t4ht\><<< +#ifdef BCC32 +#define WIN32 +#define ANSI +#define HAVE_IO_H +#define HAVE_STRING_H +#define PLATFORM "ms-win32" +#endif +>>> + +% + +\<bordland: bcc -DBCC tex4ht\><<< +#ifdef BCC +#define DOS_C +#define ANSI +#define HAVE_IO_H +#define PLATFORM "ms-dos" +#endif +>>> + + +\<h-include\><<< +#ifdef KPATHSEA +#include <kpathsea/config.h> +#endif +#include <stdio.h> `% EOF, FILE `% +#include <stdlib.h> `% EXIT_FAILURE `% +>>> + + + + Under ANSI C, all malloc stuff is declared in \`'<stdlib.h>' (which you +also include), hence this non-standard header is redundant. + + + +\<defines\><<< +#ifndef EXIT_FAILURE +#define EXIT_FAILURE 1 +#endif +>>> + +\<h-include\><<< +#ifdef HAVE_STRING_H +#include <string.h> +#endif +>>> + + + + +\<h-defines DOS-WIN32\><<< +#ifdef DOS_WIN32 +#define STRUCT_DIRENT +#endif +>>> + + +\<h-include\><<< +#ifdef HAVE_DIRENT_H +`<needs dirent.h`> +#else +#ifndef STRUCT_DIRENT +#define STRUCT_DIRECT +#endif +`<needs simulated dirent.h`> +#endif +>>> + + + +\<needs dirent.h\><<< +#include <dirent.h> +>>> + + +\<needs simulated dirent.h\><<< +#ifdef HAVE_SYS_NDIR_H +#include <sys/ndir.h> +#endif +#ifdef HAVE_SYS_DIR_H +#include <sys/dir.h> +#endif +#ifdef HAVE_NDIR_H +#include <ndir.h> +#endif +>>> + + +REPLACE EXIT with somthing that DOS also accept. + + + + +\<t4ht.h\><<< +#ifdef DOS +#define PROTOTYP +#endif +#ifdef ANSI +#define PROTOTYP +#endif +#ifdef KWIN32 +#define PROTOTYP +#endif +>>> + +\<defines\><<< +#ifdef PROTOTYP +#define MYVOID void +#define ARG_I(x) x +#define ARG_II(x,y) x,y +#define ARG_III(x,y,z) x,y,z +#define ARG_IV(x,y,z,w) x,y,z,w +#define ARG_V(x,y,z,w,u) x,y,z,w,u +#else +#define MYVOID +#define ARG_I(x) +#define ARG_II(x,y) +#define ARG_III(x,y,z) +#define ARG_IV(x,y,z,w) +#define ARG_V(x,y,z,w,u) +#endif +>>> + + + + + +\SubSection{KPATHSEA} + +\<h-defines 2NO\><<< +`<h-include before KPATHSEA`> +#ifdef KPATHSEA +#ifndef HAVE_STRCHR +#define strchr index +#endif +#ifndef HAVE_STRRCHR +#define strrchr rindex +#endif +#include <kpathsea/c-errno.h> +#include <kpathsea/c-ctype.h> +#include <kpathsea/c-fopen.h> +#include <kpathsea/c-pathmx.h> +#include <kpathsea/proginit.h> +#include <kpathsea/tex-file.h> +#include <kpathsea/tex-make.h> +#include <kpathsea/variable.h> +#include <signal.h> +#if !defined(_AMIGA) && !defined(WIN32) +#include <sys/time.h> +#endif +#include <fcntl.h> +#include <setjmp.h> +#endif `%/* KPATHSEA */`% +`<h-include after KPATHSEA`> +>>> + +\<h-defines 2\><<< +`<h-include before KPATHSEA`> +#ifdef KPATHSEA +#include <kpathsea/c-errno.h> +#include <kpathsea/c-ctype.h> +#include <kpathsea/c-fopen.h> +#include <kpathsea/c-pathmx.h> +#include <kpathsea/proginit.h> +#include <kpathsea/tex-file.h> +#include <kpathsea/tex-make.h> +#include <kpathsea/variable.h> +#include <signal.h> +#if !defined(_AMIGA) && !defined(WIN32) +#include <sys/time.h> +#endif +#include <fcntl.h> +#include <setjmp.h> +#endif `%/* KPATHSEA */`% +`<h-include after KPATHSEA`> +>>> + + +The \`'__cdecl' is defined in KPATHSEA: kpathsea/c-protos.h +is defined to nothing for compilers +other than MS. + +\<t4ht.h\><<< +#ifdef KPATHSEA +#ifdef WIN32 +#undef CDECL +#define CDECL __cdecl +#else +#define CDECL +#endif +#endif +>>> + +\<h-defines KWIN32\><<< +#ifdef KPATHSEA +#ifdef WIN32 +#define KWIN32 +#endif +#endif +>>> + + + + + +\SubSection{Compilers} + + +\List{} +\item {BCC32} + +For Win 95. + +Options (\''bcc32' comamnd): + +\Verbatim +Borland C++ 5.0 for Win32 Copyright (c) 1993, 1996 Borland International +Syntax is: BCC32 [ options ] file[s] * = default; -x- = turn switch x off + -3 * 80386 Instructions -4 80486 Instructions + -Ax Disable extensions -B Compile via assembly + -C Allow nested comments -Dxxx Define macro + -Exxx Alternate Assembler name -Hxxx Use pre-compiled headers + -Ixxx Include files directory -K Default char is unsigned + -Lxxx Libraries directory -M Generate link map + -N Check stack overflow -Ox Optimizations + -P Force C++ compile -R Produce browser info + -RT * Generate RTTI -S Produce assembly output + -Txxx Set assembler option -Uxxx Undefine macro + -Vx Virtual table control -X Suppress autodep. output + -aN Align on N bytes -b * Treat enums as integers + -c Compile only -d Merge duplicate strings + -exxx Executable file name -fxx Floating point options + -gN Stop after N warnings -iN Max. identifier length + -jN Stop after N errors -k * Standard stack frame + -lx Set linker option -nxxx Output file directory + -oxxx Object file name -p Pascal calls + -tWxxx Create Windows app -u * Underscores on externs + -v Source level debugging -wxxx Warning control + -xxxx Exception handling -y Produce line number info + -zxxx Set segment names +\EndVerbatim + + +\item {BCC} + +For DOS. + +\item {MSVC++} + +For DOS. + +\`'c:\msvc\bin\cl -Ic:\msvc\include -DDOS t4ht.c' + +In tex-live \`' cl -D_X86_=1 -DWINVER=0x0400 -DWIN32 -D_WIN32 +-DWIN32_LEAN_AND_MEAN -D_MT -D_DLL -DKPATHSEA +-D_IMPORT -DANSI -I. -I. -I.. -IG:\fptex\source\web2c-7.2 -c -W3 +-DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -O2x -G5rs -Gy +-c /Fodynamic\t4ht.obj .\t4ht.c' + +The following are the available flags (\''c:\msvc\bin\cl -help'). + +\Verbatim + C COMPILER OPTIONS + + -MEMORY MODEL- +/AS small model (default) /AC compact model +/AM medium model /AL large model +/AH huge model /AT tiny model (.COM files) +/A<string> (custom memory model) + -OPTIMIZATION- +/O enable optimization (same as /Ot) /O1 minimize space +/O2 maximize speed /Oa assume no aliasing +/Ob<n> inline expansion (default n=0) /Oc local common subexpression opt. +/Od disable optimization (default) /Oe enable registers allocation +/Of[-] toggle p-code quoting /Og global common subexpression opt. +/Oi enable intrinsic functions /Ol enable loop optimizations +/On disable ``unsafe'' optimizations /Oo[-] toggle post code-gen. opt. +/Op[-] improve floating-pt consistency /Oq enable maximum p-code optimization +/Or gen. common exit code (CodeView) /Os favor code size +/Ot favor code speed /Ov[-] toggle p-code frame sorting +/OV<n> control inlining by func. size /Ow assume cross-function aliasing +/Ox maximum opts. (/Ob1cegilnot /Gs) /Oz enable ``unsafe'' optimizations + -CODE GENERATION- +/G0 8086 instructions (default) /G1 186 instructions +/G2 286 instructions /G3 386 instructions + (press <return> to continue) +/GA protected-mode Win entry/exit code /GD protected-mode Win entry/exit code +/GE<x> customize Windows entry/exit /Gq backwards compatibility with v. 6 +/Gc Pascal style calling conventions /Gd C style calling conventions +/Ge use stack-check calls /Gf enable string pooling +/Ge use stack-check calls /Gf enable string pooling +/Gs remove stack-check calls /Gn remove p-code native entry points +/Gp<num> specify p-code entry tables /Gr _fastcall style calling convention +/Gt[num] data size threshold /GW real-mode Windows entry/exit code +/Gw real-mode Windows entry/exit code /Gx assume that data is near +/Gx- assume that data is far /Gy separate functions for linker +/Zr check null pointers (/f only) + -OUTPUT FILES- +/Fa[file] name assembly listing file /Fc[file] name source/object listing +/Fd[file] name .PDB filename /Fe<file> name executable filename +/Fl[file] name object listing filename /Fm[file] name map filename +/Fo<file> name object filename /Fr[file] name .SBR filename +/Fp<file> name .PCH filename /FR[file] name extended .SBR filename +/Fs[file] name source listing filename + -PREPROCESSOR- +/C don't strip comments /D<name>[=|#text] define macro +/E preprocess to stdout /EP same as /E but no #line +/I<directory> add #include path /P preprocess to file +/U<name> remove predefined macro /u remove all defined macros + (press <return> to continue) +/X ignore "standard places" + -LANGUAGE- +/vd{0|1} disable/enable vtordisp /vm<x> type of pointers to members +/Z7 C 7 style CodeView information /Za disable extensions (implies /Op) +/Zd line number information /Ze enable extensions (default) +/Zg generate function prototypes /Zi prepare for debugging (CodeView) +/Zl omit default library name in .OBJ /Zp[n] pack structs on n-byte boundary +/Zs check syntax only + -FLOATING POINT- +/FPa calls with altmath /FPc calls with emulator +/FPc87 calls with 8087 library /FPi inline with emulator (default) +/FPi87 inline with 8087 + -SOURCE LISTING- +/Sl<columns> set line width /Sp<lines> set page length +/St<string> set title string /Ss<string> set subtitle string + -MISCELLANEOUS- +/batch specify batch mode compilation /Bm<num> set compiler's available mem. +/c compile only, no link /H<num> external name length +/J default char type is unsigned /f select fast compiler (default) +/f- select optimizing compiler /Yc create .PCH file +/Yd put debug info in .PCH file /Yu use .PCH file +/YX automatic precompiled header /nologo suppress copyright message + (press <return> to continue) +/Mq compile for QuickWin /ND<name> name data segment +/NM<name> name code segment /NQ<name> combine p-code temp segments +/NT<name> name code segment /NV<name> name far v-table segment +/Tc<file> compile file without .c /Tp<file> compile file without .cpp +/V<string> set version string /W<n> warning level (default n=1) +/w disable all warnings /WX treat all warnings as errors +/Zn turn off SBRPACK for .SBR files + -MASM SUPPORT- +/MA<MASM switch> /Ta<file> assemble file without .asm + -LINKING- +/F <hex_num> stack size (hex. bytes) /Lr append 'r' to default lib in .OBJ +/link [lib] give lib name to linker /Ln do not link CRT.LIB +/Ld select dynamically-linked library /Lw select statically-linked library +\EndVerbatim + + +\EndList + +\SubSection{DJGPP} + + + + +\Verbatim + + * tex4ht.c [__DJGPP__] (ANSI, DOS_GIF_FILE): Define. + (WRITE_BIN_FLAGS, READ_BIN_FLAGS): Use binary mode with DJGPP. + (dos_file_names): New variable. + (sig_err): If got fatal signal other than SIGINT or SIGQUIT, don't + return to caller, since the program will be aborted otherwise. + (main) [KPATHSEA]: If input is from stdin which is not a console + device, switch it to binary mode. Set dos_file_names to TRUE for + all DOS platforms, FALSE on Unix and WIN32, and compute at runtime + for DJGPP. Simplify logic of finding the init file by pushing + HOME=C: into environment if $HOME isn't defined on DOSISH systems. +\EndVerbatim + + + +\<DJGPP\><<< +#ifdef __DJGPP__ +#define DOS_WIN32 +#define ANSI +#endif +>>> + + + + +\<DJGPP signals\><<< +#ifdef __DJGPP__ + if (s != SIGINT && s != SIGQUIT) + exit(EXIT_FAILURE); +#endif +>>> + + + + +\SubSection{Slashes n Directory Pathes} + + + + +\<defines\><<< +#if defined(DOS_WIN32) || defined(__DJGPP__) +#define dir_path_slash(str) (is_forward_slash(str)? '/' : '\\') +#else +#define dir_path_slash(str) '/' +#endif +>>> + + + +\<header functions\><<< +#if defined(DOS_WIN32) || defined(__DJGPP__) + static BOOL is_forward_slash( ARG_I(Q_CHAR *) ); +#endif +>>> + +\<functions\><<< +#if defined(DOS_WIN32) || defined(__DJGPP__) +`[ +static BOOL is_forward_slash(str) + Q_CHAR * str +;{ + while( *str ){ if( *(str++) == '/' ) { return TRUE; } } + return FALSE; +} +#endif +>>> + + + + + + + + +\Section{Command-Line Options} + + +\SubSection{Available Options} + +\List{disc} +\item \`'.../'---Directory where files should be sent +\item \`'-mXXX'---\`'chmod XXX' for files +\item \`'-e...'---Name of invisible gif +\item \`'-d'---Directory for config files +\item \`'-p'---Ignore pictures (but not pictorial symbols) +\item \`'-i'---Debugging info +\item Other---Name of dvi file +\EndList + + +\Verbatim + dvips -mode ibmvga -D 110 -f foo.idv -pp 92 > tmp.ps + convert -crop 0x0 -density 110x110 -transparent '#FFFFFF' tmp.ps foo.gif + mv foo.gif /WWW/temp/. + cp foo.html /WWW/temp/. + chmod 644 /WWW/temp/foo.* +\EndVerbatim + + +\<command line options\><<< +"\n--------------------------------------------------------------------\n" +"t4ht [-f<dir char>]filename ...\n" +" -b ignore -d -m -M for bitmaps\n" +" -c... choose named segment in env file\n" +" -d... directory for output files (default: current)\n" +" -e... location of tex4ht.env\n" +" -i debugging info\n" +" -g ignore errors in system calls\n" +" -m... chmod ... of new output files (reused bitmaps excluded)\n" +" -p don't convert pictures (default: convert)\n" +" -r replace bitmaps of all glyphs (default: reuse old ones)\n" +" -M... chmod ... of all output files\n" +" -Q quit, if tex4ht.c had problems\n" +" -S... permission for system calls: *-always, filter\n" +" -X... content for field %%3 in X scripts\n" +" -.... content for field %%2 in . scripts\n\n" +"Example: \n" +" t4ht name -d/WWW/temp/ -etex4ht-32.env -m644\n" +"--------------------------------------------------------------------\n" +>>> + + +If option \`'-e' is present, empty pictures are replaced +with the named file (e.g., \`'empty.gif'). + + + + + +\SubSection{Scanning the Options} + + + + +\<vars\><<< +static Q_CHAR *ch_mod = Q_NULL; +static Q_CHAR *debug = Q_NULL; +static Q_CHAR *Xfield = Q_NULL; +static Q_CHAR *Dotfield = Q_NULL; +static Q_CHAR *dir = Q_NULL; +static Q_CHAR *lg_name = Q_NULL, tmp_name[255], job_name[255]; +static Q_CHAR *nopict = Q_NULL; +static Q_CHAR *bitmaps_no_dm = Q_NULL; +static BOOL newchmod = FALSE; +static Q_CHAR *noreuse = Q_NULL; +>>> + + +\<scan job args\><<< +{ int i; + Q_CHAR *p, *q; + `<kpathsea arg 0`> + `<default args`> + if( argc == 1 ){ bad_arg; } + for(i=1; i<argc; i++){ + if( *( p=argv[i] ) == '-' ){ `<scan flaged args`> } + else + { lg_name = argv[i]; } + } + if( lg_name == NULL ){ bad_arg; } + `<set tmp file name`> + `<set job file name`> +} +>>> + + +\<handle quoted arguments\><<< +{ int i, count = 0; + for(i=0; i<argc; i++){ + Q_CHAR *p = argv[i]; + count++; + if( (*p == '\'') || (*p == '\"') ){ + int cnt; + int len = 0; + for( cnt=i; cnt < argc; cnt++ ){ + len += (int) strlen((char *) argv[cnt]); + if( *(argv[cnt] + (int) strlen((char *) argv[cnt]) -1) == *p ){ + Q_CHAR * arg = m_alloc(char, len + cnt - i + 1); + Q_CHAR * toArg = arg; + Q_CHAR *pp; + i--; + do { + pp = argv[++i]; + while( *pp != '\0' ){ + if( *pp != *p ){ *(toArg++) = *pp; } + pp++; + } + *(toArg++) = ' '; + } while ( i != cnt ); + *(toArg-1) = '\0'; + argv[count-1] = arg; + break; + } } } } + argc = count; +} +>>> + + + + +\<set tmp file name\><<< +{ Q_CHAR *p, *q; + FILE* file; + (IGNORED) strcpy((char *) (char *) tmp_name, (char *) (char *) lg_name); + p = q = tmp_name + strlen((char *) tmp_name ); + while( p != tmp_name ){ + if( *p == '.' ){ + if( eq_str( p+1,LG_EXT ) ) { *p = '\0'; } + else { + (IGNORED) strct( tmp_name, LG_EXT); + file = fopen( tmp_name, READ_TEXT_FLAGS ); + if( file ){ + (IGNORED) fclose(file); *q = '\0'; + } else { *p = '\0'; } + } + break; + } + p--; + } + (IGNORED) strct(tmp_name, ".tmp"); +} +>>> + + +\<set job file name\><<< +(IGNORED) strcpy((char *) job_name, (char *) tmp_name); +*(job_name + strlen((char *) job_name) - 4) = '\0'; +>>> + + + +\Verbatim +I found that I couldn't compile t4ht.c with KPATHSEA defined, and then noticed +that it doesn't include any of the kpathsea headers. So I have patched t4ht.c +to create two versions: one with the necessary kpathsea headers and one +without. This is the output produced by 'diff'. Let me know if you want to +merge my changes into your t4ht.c, and/or if you notice any errors! I have +changed the second argument of 'kpse_set_program_name' from NULL (which would +effectively mean argv[0]) to 'tex4ht', as that saves having to add a +'T4HTINPUTS' (or 'T4HTKINPUTS') variable into the kpathsea configuration file +'texmf.cnf' pointing to the same place for 'tex4ht.env' as the 'TEX4HTINPUTS' +variable. + +For t4ht.c, the kpathsea library is only useful for locating the tex4ht.env +configuration file. But as it can be used for this purpose for tex4ht.c, it +seems a pity not to enable it for its companion program too. + +> 94a99,102 +> > #ifdef KPATHSEA +> > #include <kpathsea/progname.h> +> > #include <kpathsea/tex-file.h> +> > #endif +> 943c951 +> < kpse_set_program_name (argv[0], NULL); +> --- +> > kpse_set_program_name (argv[0], "tex4ht"); +\EndVerbatim + +\<kpathsea arg 0\><<< +#ifdef KPATHSEA + kpse_set_program_name (argv[0], "tex4ht"); +#endif +>>> + + + +If \`'strlen((char *) argv[i] ) == 2' the switch is followed by a +space to be deleted when more input is awaited. + + +\<scan flaged args\><<< +if( (int) strlen((char *) argv[i] ) == 2 ){ + if( `<not a single char option?`> ) + { if( ++i == argc ) bad_arg; } + q = argv[i]; +} else q = p+2; +switch( *(p+1) ){ + case 'M':{ ch_mod = q; newchmod = TRUE; break; } + case 'S':{ `<permission for system calls`> break; } + case 'X':{ Xfield = q; break;} + case 'b':{ bitmaps_no_dm = q-1; break;} + case 'c':{ `<env blocks selector`> break;} + case 'd':{ dir = (*q=='~')? abs_addr(q,NULL) : q; break; } + case 'e':{ `<get .env directory from com ln`> break; } + case 'f':{ `<get file name wo dir`> break; } + case 'i':{ debug = q-1; break;} + case 'g':{ always_call_sys = TRUE; break;} + case 'm':{ ch_mod = q; break; } + case 'p':{ nopict = q-1; break;} + case 'Q':{ check_tex4ht_c_err = TRUE; break;} + case 'r':{ noreuse = q-1; break;} + case '.':{ Dotfield = q; break;} + default:{ bad_arg; } +} +>>> + + +\<not a single char option?\><<< + (*(p+1) != 'i') +&& (*(p+1) != 'p') +&& (*(p+1) != 'r') +&& (*(p+1) != 'b') +&& (*(p+1) != 'g') +&& (*(p+1) != 'Q') +>>> + + + +The following is to allow for commands \`'htlatex +-f/../source/foo.tex' which draw files from other directories for +latex, but use the current directory for tex4ht.c (and t4ht.c). The +character immediately after \`'-f' is a directory indicator character. + + +\<get file name wo dir\><<< +p = p + 2; +lg_name = p + (int) strlen((char *) p ); +while( *lg_name != *p ){ lg_name--; } +lg_name++; +>>> + + + + + +\<header functions\><<< +static char * abs_addr( ARG_II( U_CHAR *, U_CHAR *) ); +>>> + +\<functions\><<< +`[ +static char * abs_addr( dir, base) + U_CHAR *dir`; + U_CHAR *base + +;{ U_CHAR *p; + p = m_alloc(char, (int) strlen((char *) dir ) + + (base? (int) strlen((char *) base ):0) + + (int) strlen((char *) HOME_DIR )); + *p = '\0'; + if( (*(dir+1) == '~') && base ){ + if( *base == '~' ){ + (IGNORED) strct(p, HOME_DIR); + (IGNORED) strct(p, base+1); + } else { + (IGNORED) strct(p, base); + } + (IGNORED) strct(p, dir+2); + } else { + (IGNORED) strct(p, HOME_DIR); + (IGNORED) strct(p, dir+1); + } + return p; +} +>>> + +\<vars\><<< +U_CHAR *HOME_DIR; +>>> + +\<main's init\><<< +HOME_DIR = getenv("HOME"); +>>> + + + + +\Section{Identify the Empty Pictures} + + +Messages about figures that don't exist are treated as requests for +empty figures. Typically, they shouldn't be present unless they are +programmed into \''\setbox'-like commands. tex4ht-c identifies in the +\''.lg' file the empty figures it finds. + +The messages in the ``.lg'' file look like +\`'--- empty picture --- aa.idv[1] ---'. + + + +\<identify the empty pictures\><<< +{ struct empty_pic_struct *last; + last = empty_pic = (struct empty_pic_struct *) 0; + while( TRUE ) { + status = scan_str("--- empty picture --- ", TRUE, lg_file); + status = scan_until_str( ".idv[" , 1, status, lg_file); + status = scan_until_end_str("] ---", 1, status, lg_file); + if( status ){ `<add empty pic`> } + if ( eoln_ch == EOF ){ break; } + } + `<add empty pic`> + last->next = (struct empty_pic_struct *) 0; + last->n = 100000; +} +>>> + + +\<add empty pic\><<< +if( last == (struct empty_pic_struct *) 0 ){ + last = empty_pic = (struct empty_pic_struct *) + m_alloc(struct empty_pic_struct, (int) 1); +} else { + last = last->next = (struct empty_pic_struct *) + m_alloc(struct empty_pic_struct, (int) 1); +} +last->next = (struct empty_pic_struct *) 0; +last->n = get_long_int(match[1]); +>>> + + +\<main's vars\><<< +struct empty_pic_struct *empty_pic; +>>> + +\<defines\><<< +struct empty_pic_struct{ + long int n; + struct empty_pic_struct *next; +}; +>>> + + + +The list of empty pictures is stored in \`'emptypic'. + +%%%%%%%%%%%%%%%%%%%%%%% +\Section{Process Gifs} +%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{The Scripts} +%%%%%%%%%%%%%%%%%%%%%%% + +\<script for dvigif\><<< +if( debug ){ (IGNORED) printf(".......'G' script\n"); } +dvigif_script = add_script(dvigif_script); +>>> + + +\Verbatim +--- needs --- aa.idv[80] ==> aa79x.gif --- +--- characters --- +--- needs --- aa.idv[81] ==> foo.gif --- +\EndVerbatim + + +\<process gif's\><<< +{ BOOL characters, skip; + characters = skip = FALSE; + while( TRUE ) { + status = scan_until_str("--- ", 1, TRUE, lg_file); + status = scan_until_str( " ---" , 2, status, lg_file); + if( status ) { + if( eq_str(match[1],"--- ") ){ + if( eq_str(match[2],"needs ---") ){ + `<--- needs ---...`> + } else if( eq_str(match[2],"characters ---") ){ + `<--- characters ---...`> + } else { `<--- ??? ---...`> } + } else { `<???--- needs ---...`> } + } + if ( eoln_ch == EOF ){ break; } +} } +>>> + + +\<--- ??? ---...\><<< +status = scan_until_end_str("", 1, status, lg_file); +>>> + +\<???--- ??? ---...\><<< +status = scan_until_end_str("", 1, status, lg_file); +>>> + + +\<--- characters ---...\><<< +status = scan_until_end_str("", 1, status, lg_file); +characters = eq_str(match[1],""); +>>> + + +\SubSection{Identifying the requests} + + + +\<--- needs ---...\><<< +status = scan_until_str(" ", 1, status, lg_file); +status = scan_until_str(".idv", 1, status, lg_file); +status = scan_until_str("[", 2, status, lg_file); +status = scan_until_str("] ==> ", 2, status, lg_file); +status = scan_until_str(" ", 3, status, lg_file); + *(match[3] + (int) strlen((char *) match[3]) - 1) = '\0'; +status = scan_until_end_str("---", 4, status, lg_file); +if( status ) { + `<dvi2gif vars`> + long int gif_i; + Q_CHAR *p; + gif_i = get_long_int(match[2]); + p = match[2]; + *(p + (int) strlen((char *) p) - 6) = '\0'; + if( characters ){ + `<translate symbol gifs`> + } else { `<translate non-symbol gifs`> } +} +>>> + + +\SubSection{General Pictures} + + +\`'--- needs --- aa.idv[80] ==> aa79x.gif ---' + +\<translate non-symbol gifs\><<< +if( gif_i == `<empty picture`> ) { + `<insert empty picture`> +} else { `<insert non-empty picture`> } +>>> + + +\<insert non-empty picture\><<< +if( !nopict && !skip ){ + `<dvi into gif`> +} +>>> + + +\<insert empty picture\><<< +if( !skip ){ + (void) execute_script(empty_fig_script, + (dir && !bitmaps_no_dm )? dir :"", match[3],"",""); + if( ch_mod && !bitmaps_no_dm && !system_return ){ + (void) execute_script(chmod_script, ch_mod, + dir?dir:"",match[3], ""); + } +} +empty_pic = empty_pic->next; +>>> + + + +\<empty picture\><<< +empty_pic->n +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Pictorial Symbols} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<translate symbol gifs\><<< + Q_CHAR filename[255]; + FILE* file; +(IGNORED) strcpy((char *) filename, ""); +if( dir && !bitmaps_no_dm ){ (IGNORED) strct(filename, dir); } +(IGNORED) strct(filename, match[3]); +file = fopen(filename, READ_TEXT_FLAGS); +if( !file || noreuse ){ + `<dvi symbols into gif`> +} else { + (IGNORED) fclose(file); + if( newchmod ) + { `<chmod for glyphs`> } + (IGNORED) printf("%s already in %s\n", match[3], + dir? dir : "current directory" ); +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{The Conversion Code} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<dvi into gif\><<< +filtered_dvigif_script = filterGifScript(dvigif_script, match[3]); +(void) execute_script( + filtered_dvigif_script,match[1],match[2],match[3],job_name); +(void) free_script( filtered_dvigif_script ); +if( dir && !bitmaps_no_dm && !system_return ){ + (void) execute_script(move_script,match[3],dir,".",""); +} +if( ch_mod && !bitmaps_no_dm && !system_return ){ + (void) execute_script(chmod_script, ch_mod, dir?dir:"",match[3], ""); +} +>>> + +\<dvi symbols into gif\><<< +filtered_dvigif_script = dvigif_glyp_script? + filterGifScript(dvigif_glyp_script, match[3]): + filterGifScript(dvigif_script, match[3]); +(void) execute_script( + filtered_dvigif_script,match[1],match[2],match[3],job_name); +(void) free_script( filtered_dvigif_script ); +if( dir && !bitmaps_no_dm && !system_return ){ + (void) execute_script(move_script,match[3],dir,".",""); +`<chmod for glyphs`> +} +>>> + + +\<chmod for glyphs\><<< +if( ch_mod && !bitmaps_no_dm && !system_return ){ + (void) execute_script(chmod_script, ch_mod, dir?dir:"",match[3], ""); +} +>>> + + +\<dvi2gif vars\><<< +struct script_struct + * filtered_dvigif_script = NULL_SCRIPT; +>>> + + + + + + + + + + + + + + + + + + + + + + +\<header functions\><<< +static void execute_script( + ARG_V(struct script_struct*,const Q_CHAR *,const Q_CHAR *,const Q_CHAR *,const Q_CHAR *) ); +>>> + +\<functions\><<< +`[ +static void execute_script(script,match_1,match_2,match_3,match_4) + struct script_struct* script`; + const Q_CHAR * match_1`; + const Q_CHAR * match_2`; + const Q_CHAR * match_3`; + const Q_CHAR * match_4 + +;{ struct script_struct* temp; + Q_CHAR *p, *q; + const Q_CHAR *t; + `<texmf := ...`> + temp = script; system_return = 0; + while( temp ){ + `<command = temp-command`> + if( (command[0] != '\0') && !system_return ){ + `<execute system command`> } + temp = temp->next; +} } +>>> + + +We went to \`'%%%', \`'%%1', ... instead of \`'%%', \`'%1', ... +to accomodate some needds of dos. Example (yet, where exactly the +conflict is?): + +\Verbatim +if exist %1.dvi goto yes_dvi +goto end +yes_dvi: +DEL tmp.ps +call dvips32 -f %1 -p %2 -l %2 -o tmp.ps -mode ibmvga -D 110 +DEL %3 +call convert -crop 0x0 -density 110x110 -transparent '#FFFFFF' tmp.ps %3 +end: +\EndVerbatim + + + +\<command = temp-command\><<< +p = temp->command; +q = command; +while( *p != '\0' ){ + *q = *(p++); + if( (*q == '%') && (*p == '%') + && ( (*(p+1) == '%') + || (*(p+1) == '~') + || ( (*(p+1) >= '0') && (*(p+1) < '5') ) ) + ){ p++; + switch( *(p++) ){ + case '%':{ q++; break; } + case '0':{ t = job_name; + while( *t != '\0' ){ *(q++) = *(t++); } break; } + case '1':{ t = match_1; + while( *t != '\0' ){ *(q++) = *(t++); } break; } + case '2':{ t = match_2; + while( *t != '\0' ){ *(q++) = *(t++); } break; } + case '3':{ t = match_3; + while( *t != '\0' ){ *(q++) = *(t++); } break; } + case '4':{ t = match_4; + while( *t != '\0' ){ *(q++) = *(t++); } break; } + case '~':{ `<q += texmf path`> break; } + default: { } + }} else { q++; } +} +*q = '\0'; +>>> + +The argument `\Verb=%%~=' is replaced with the value of +\Verb=${TEXMFDIST}= under Kpathsea. If such a value +is not available, the character `\Verb=~=' is used. The variable +offers the parent directory of where tex4ht resides, e.g., +\Verb=/usr/local/texlive/2018/texmf-dist=. We use TEXMFDIST in +preference to SELFAUTOPARENT (as was done until June 2018), or +TEXMFROOT, because in practice it works on both \TeX\ Live and MiK\TeX, +while the others do not. + +\<texmf := ...\><<< +#ifdef KPATHSEA +const char * texmf = kpse_var_value( "TEXMFDIST" ); +#endif +>>> + +\<q += texmf path\><<< +#ifdef KPATHSEA + if( texmf ){ + t = texmf; + while( *t != '\0' ){ *(q++) = *(t++); } + } else { + *(q++) = '~'; + } +#else + *(q++) = '~'; +#endif +>>> + + + + +\Verbatim + +> > help tinkering with the code. If you'll have a chance at some +> > point to pass on the kind of changes you are doing, I'll be interested +> > to hardwire them in the code as compile/run-time options. +> for instance, I add -Pem to the dvips command line to access the EM +> fonts instead of EC (faster) +> +> i also change the name of "convert.exe" to "iconvert.exe" because it +> conflicts with a native NT utility to convert file systems :-} + +\EndVerbatim + +\Verbatim +dvips -mode $mf -D $density -f $_[0] -pp $_[1] > tmp.ps +\EndVerbatim + +\<defines\><<< +#ifndef HTFDIR +#define HTFDIR "" +#endif +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Filter} +%%%%%%%%%%%%%%%%%%%%%%%% + + + +Three cases for `G' and `F' scripts. + +\List{} +\item +{The first record doesn't start with a period} +Use the script until its end or a period command +\item +{The first record starts with a period without an extension} +Use the script until its end or a period command +\item +{The first record starts with a period with an extension} +Use the script until its end or a period command, if the extension +fits the output figure. + +\EndList + + +\<header functions\><<< +static struct script_struct * filterGifScript( + ARG_II( struct script_struct *, Q_CHAR *) ); +>>> + +\<functions\><<< +`[ +static struct script_struct * filterGifScript( script, file) + struct script_struct *script`; + Q_CHAR *file +;{ + struct script_struct *filtered_script, *scr, + *old_script, + *new_script; + Q_CHAR *command, *ext; + filtered_script = NULL_SCRIPT; + if( script == NULL_SCRIPT ) + return filtered_script; + old_script = script; + command = old_script->command; + if( *command != '.' ){ + `<script until dot`> + } else { + `<script from dot`> + } +} +>>> + +\<script until dot\><<< +new_script = NULL_SCRIPT; +while( old_script != NULL_SCRIPT ){ + command = old_script->command; + if( *command == '.' ){ return filtered_script; } + scr = (struct script_struct *) + m_alloc(struct script_struct, (int) 1); + scr->command = old_script->command; + scr->next = NULL_SCRIPT; + if( new_script == NULL_SCRIPT ){ + filtered_script = new_script = scr; + } else { + new_script = new_script->next = scr; + } + old_script = old_script->next; +} +return filtered_script; +>>> + +\<script from dot\><<< +`<ext = file ext`> +while( TRUE ){ + if( old_script == NULL_SCRIPT ){ + return NULL_SCRIPT; + } + command = old_script->command; + if(*command != '.') { + old_script = old_script->next; + continue; + } + old_script = old_script->next; + if( (*(command+1) == '\0') || eq_str(ext,command) ){ + break; + } +} +`<script until dot`> +>>> + + +\<ext = file ext\><<< +ext = file; +while( *ext != '\0' ){ ext++; } +while( (*ext != '.') && (ext != file) ){ ext--; } +>>> + + +\<header functions\><<< +void free_script( + ARG_I( struct script_struct *) ); +>>> + +\<functions\><<< +`[ +void free_script(script) + struct script_struct *script +;{ + struct script_struct *temp; + while( script != NULL_SCRIPT ){ + temp = script; + script = script->next; + free( temp ); + } +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Ignore/Noignore Commands} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<???--- ??? ---...\><<< +status = scan_until_end_str("", 1, status, lg_file); +>>> + + +\Verbatim +l. 10 --- needs --- ignore --- +l. 11 --- needs --- end ignore --- +\EndVerbatim + + +We didn't check below the \`'l. dddd ' part. + +\<???--- needs ---...\><<< +status = scan_until_end_str(" ignore ---", 2, status, lg_file); +if( status ){ + skip = eq_str(match[2]," ignore ---") ? TRUE : + ( eq_str(match[2]," end ignore ---") ? FALSE : skip ); +} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%% +\Section{CopyTo files} +%%%%%%%%%%%%%%%%%%%%%%% + + +There are 6 supporting dvi variations of the +`CopyTo to-file op group' + dvi command: + +\List{} +\item{From} Start copying (at current address) +\item{Until} End copying (at current address) +\item{Skip} Start skipping (from current address) +\item{Cont} End skipping (at current-address) +\item{Addr integer-label} Associate current + address with the integer-label of the given group +\item{Set integer-label} + Replace the `current address' in the following Skip/Cont (and + From/Until ?) commands with the address associated to the + integer-label of the given group by an Addr command +\EndList + +The code +\Verbatim +B0 + \ht:special {t4ht@DCopyTo: \jobname-js.tex From bib } +B1 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib } +B2 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr1 bib } +B3 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Addr2 bib } +B4 + \ht:special {t4ht@DCopyTo: \jobname-js.tex Set1 bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Cont bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Set2 bib } + \ht:special {t4ht@DCopyTo: \jobname-js.tex Skip bib } +B5 +\ht:special {t4ht@DCopyTo: \jobname-js.tex Until bib } +B6 +\EndVerbatim + +produces the string ` B1 B3 '. + + + + +\<CopyTo files\><<< +{ `<CopyTo vars`> + eoln_ch = (int) 'x'; + while( eoln_ch != EOF ) { + status = scan_str("CopyTo: ", TRUE, lg_file); + status = scan_until_str(" ", 1, status, lg_file); + status = scan_until_str(" ", 2, status, lg_file); + status = scan_until_str(" ", 3, status, lg_file); + status = scan_until_str(" ", 4, status, lg_file); + status = scan_until_end_str("", 5, status, lg_file); + if( status ){ + if( debug ){ + (IGNORED) printf("...CopyTo: %s%s%s%s%s...\n", + match[1], match[2], match[3], match[4], match[5]); + } + rec_op = eq_str(match[2],"From ")? From_op : + ( eq_str(match[2],"Until ")? Until_op : + ( eq_str(match[2],"Skip ")? Skip_op : + ( eq_str(match[2],"Cont ")? Cont_op : No_op ))); + if( rec_op == No_op ){ `<try Addr and Set ops`> } + if( rec_op == No_op ){ + (IGNORED) fprintf(stderr,"--- warning --- "); + (IGNORED) fprintf(stderr,"CopyTo: %s%s%s%s%s?\n", + match[1], match[2], match[3], match[4], match[5]); + } else { + `<find file records`> + `<find to-from record`> + `<find group record`> + `<enter op record`> + `<act on op`> + } } } + `<release CopyTo resources`> +} +>>> + + +\<try Addr and Set ops\><<< +ch = match[2]; +if( (ch[0]=='S') && (ch[1]=='e') && (ch[2]=='t') ){ + ch += 3; rec_op = Set_op; +} else if( (ch[0]=='A') && (ch[1]=='d') && (ch[2]=='d') && (ch[3]=='r') ){ + ch += 4; rec_op = Addr_op; +} +if( rec_op != No_op ){ + addr = 0; while( (*ch>='0') && (*ch<='9') ){ + addr = addr*10 + *ch - '0'; ch++; +} } +>>> + +\<release CopyTo resources\><<< +for( p = opened_files; p != (struct files_rec*) 0; ){ + (IGNORED) fclose(p->file); + free((void *) p->name); + `<free to-from records`> + p1= p; p = p->right; free((void *) p1); +} +>>> + +\<free to-from records\><<< +for( p1 = p->down; p1 != (struct files_rec*) 0; ){ + `<free group records`> + p2 = p1; p1 = p1->right; free((void *) p2); +} +>>> + +\<free group records\><<< +for( p2 = p1->down; p2 != (struct files_rec*) 0; ){ + `<free op records`> + p3 = p2; p2 = p2->right; free((void *) p3); +} +>>> + +\<free op records\><<< +for( p3 = p2->down; p3 != (struct files_rec*) 0; ){ + p4 = p3; p3 = p3->down; free((void *) p4); +} +>>> + + + + + +\<act on op\><<< +if( rec_op == Until_op ){ + for( p = to_rec->down; + p != (struct files_rec*) 0; p = p->down ){ + if( p->op == From_op ){ from_op = p; break; } + } + if( p == (struct files_rec*) 0 ){ + `<missing From for CopyTo`> + } else { + `<perform ops`> + `<remove ops`> + } +} +>>> + + + + +\<perform ops\><<< +in_file = from_rec->file; +out_file = to_rec->file; +start_loc = from_op->loc; +write_on = TRUE; +(IGNORED) fseek(in_file, (long) start_loc, `<abs file addr`>); +for( p= from_op; p != to_rec; p = p->up ){ + switch( p->op ){ + case Until_op:{ `<Until op`> break; } + case Skip_op:{ `<Skip op`> break; } + case Cont_op:{ `<Cont op`> break; } + case Set_op:{ `<Set op`> break; } + default: { } +} } +>>> + + +\<Until op\><<< +if( write_on ){ + end_loc = p->loc; + for(; start_loc<end_loc; start_loc++) { + (IGNORED) putc( getc(in_file), out_file ); +} } +>>> + + +\<Skip op\><<< +if( write_on ){ + end_loc = p->loc; + for(; start_loc<end_loc; start_loc++) { + (IGNORED) putc( getc(in_file), out_file ); + } +} +write_on = FALSE; +>>> + + +\<Cont op\><<< +end_loc = p->loc; +if( write_on ){ + for(; start_loc<end_loc; start_loc++) { + (IGNORED) putc( getc(in_file), out_file ); + } +} else { + start_loc = end_loc; + (IGNORED) fseek(in_file, (long) end_loc, `<abs file addr`>); +} +write_on = TRUE; +>>> + + +\<Set op\><<< +addr = -1; +for( p1 = from_op->up; p1 != to_rec; p1 = p1->up ){ + if( (p1->op == Addr_op) && (p1->label == p->label) ){ + addr = p1->loc; break; +} } +if( addr != -1 ){ (p->up)->loc = addr; } +>>> + + +\<remove ops\><<< +to_rec->down = from_op->down; +if( from_op->down != (struct files_rec*) 0){ + (from_op->down)->up = to_rec; +} +for( p = from_op; p != to_rec; ){ + p1 = p; p = p->up; free((void *) p1); +} +if( to_rec->down == (struct files_rec*) 0){ + if( to_rec->left == (struct files_rec*) 0 ){ + (to_rec->up)->down = to_rec->right; + } else { + (to_rec->left)->right = to_rec->right; + } + if( to_rec->right != (struct files_rec*) 0 ){ + (to_rec->right)->left = to_rec->left; + } + p1 = to_rec; to_rec = to_rec->up; free((void *) p1); +} +>>> + +\<missing From for CopyTo\><<< +(IGNORED) fprintf(stderr,"%sMissing ``CopyTo From':\n", "--- warning --- "); +for( p = to_rec->down; p != (struct files_rec*) 0; p = p->down ){ + (IGNORED) fprintf(stderr," %s %s%d %s\n", to_rec->name, + p->op == From_op ? "From " : + ( p->op == Until_op ? "Until " : + ( p->op == Skip_op ? "Skip " : + ( p->op == Cont_op? "Cont " : + ( p->op == Addr_op? "Addr " : + ( p->op == Set_op? "Set " : "No_op " ))))), + p->loc, from_rec->name + ); +} +>>> + + + + +\<enter op record\><<< +p = m_alloc(struct files_rec, 1); +p->down = to_rec->down; to_rec->down = p; +p->up = to_rec; +if( p->down != (struct files_rec*) 0 ){ + (p->down)->up = p; +} +*(match[4] + (int) strlen((char *) match[4]) - 1) = '\0'; +p->loc = (int) get_long_int(match[4]); +p->op = rec_op; +p->label = addr; +>>> + +\<find group record\><<< +if( to_rec->down == (struct files_rec*) 0 ){ + `<add first group record`> +} else { + to_rec = to_rec->down; + for( p = to_rec->right; p != (struct files_rec*) 0; p = p->right ){ + if( eq_str(to_rec->group,match[3]) ){ break; } + to_rec = p; + } + if( !eq_str(to_rec->group,match[3]) ){ + `<add next group record`> +} } +>>> + + + +\<add first group record\><<< +to_rec->down = p = m_alloc(struct files_rec, 1); +p->up = to_rec; +p->right = p->left = p->down = (struct files_rec*) 0; +p->name = to_rec->name; +p->file = to_rec->file; +p->from_rec = from_rec; +p->loc = -1; +p->op = No_op; +p->group = m_alloc(char, (int) strlen((char *) match[3]) + 1); +(IGNORED) strcpy((char *) p->group, (char *) match[3] ); +to_rec = p; +>>> + +\<add next group record\><<< +to_rec->right = p = m_alloc(struct files_rec, 1); +p->left = to_rec; +p->right = p->down = (struct files_rec*) 0; +p->up = to_rec->up; +p->name = to_rec->name; +p->file = to_rec->file; +p->from_rec = from_rec; +p->loc = -1; +p->group = m_alloc(char, (int) strlen((char *) match[3]) + 1); +(IGNORED) strcpy((char *) p->group, (char *) match[3] ); +to_rec = p; +>>> + + + +\<find to-from record\><<< +if( to_rec->down == (struct files_rec*) 0 ){ + `<add first to-from record`> +} else { + to_rec = to_rec->down; + for( p = to_rec->right; p != (struct files_rec*) 0; p = p->right ){ + if( to_rec->from_rec == from_rec ){ break; } + to_rec = p; + } + if( to_rec->from_rec != from_rec ){ + `<add next to-from record`> +} } +>>> + +\<add first to-from record\><<< +to_rec->down = p = m_alloc(struct files_rec, 1); +p->up = to_rec; +p->right = p->left = p->down = (struct files_rec*) 0; +p->name = to_rec->name; +p->file = to_rec->file; +p->from_rec = from_rec; +p->loc = -1; +p->op = No_op; +to_rec = p; +>>> + +\<add next to-from record\><<< +to_rec->right = p = m_alloc(struct files_rec, 1); +p->left = to_rec; +p->right = p->down = (struct files_rec*) 0; +p->up = to_rec->up; +p->name = to_rec->name; +p->file = to_rec->file; +p->from_rec = from_rec; +p->loc = -1; +to_rec = p; +>>> + + +\<find file records\><<< +file_name = match[1]; +*(file_name + (int) strlen((char *) file_name) - 1) = '\0'; +strcpy((char *) file_mode, WRITE_TEXT_FLAGS); +for(i=1; i<=2; i++){ + `<search CopyTo file`> + file_name = match[5]; + strcpy((char *) file_mode, `<CopyTo read flags`>); +} +>>> + + + + + + + + + +\<search CopyTo file\><<< +for( p = opened_files; p != (struct files_rec*) 0; p = p->right ){ + if( eq_str(file_name,p->name) ) { break; } +} +if( p == (struct files_rec*) 0 ){ + p = m_alloc(struct files_rec, 1); + p->right = opened_files; opened_files = p; + p->down = (struct files_rec*) 0; + strcpy((char *) p->file_mode, (char *) file_mode); + p->name = m_alloc(char, (int) strlen((char *) file_name) + 1); + (IGNORED) strcpy((char *) p->name, (char *) file_name ); + if( (p->file = fopen(file_name, file_mode)) == NULL ) + { (IGNORED) warn_i_str(5,file_name); } +} +to_rec = from_rec; from_rec = p; +>>> + + +\<defines\><<< +struct files_rec{ + FILE* file; + char *name, *group, op; + Q_CHAR file_mode[5]; + int loc, label; + struct files_rec *from_rec, *right, *left, *down, *up; +}; +#define No_op 0 +#define From_op 1 +#define Until_op 2 +#define Skip_op 3 +#define Cont_op 4 +#define Addr_op 5 +#define Set_op 6 +>>> + +\<CopyTo vars\><<< +Q_CHAR *file_name, file_mode[5]; +int i, start_loc, end_loc, addr = 0; +char rec_op, *ch; +static struct files_rec *to_rec, *from_rec, + *opened_files = (struct files_rec *) 0, + *p, *p1, *p2, *p3, *p4, *from_op; +FILE *in_file, *out_file; +BOOL write_on; +>>> + + + + + + + + + + + + + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\Section{post-process ext files} +%%%%%%%%%%%%%%%%%%%%%%% + +\<post-process ext files\><<< +if( `<ext-script`> ){ + eoln_ch = (int) 'x'; + while( eoln_ch != EOF ) { + status = scan_str("File: ", TRUE, lg_file); + status = scan_until_str(".", 1, status, lg_file); + status = scan_until_end_str("", 2, status, lg_file); + if( status ){ Q_CHAR *ext; + struct script_struct *cur_script; + ext = match[1]; + (IGNORED) strct( ext, match[2] ); + ext += strlen((char *) ext); + while( *(--ext) != '.' ){ ; } + *ext = '\0'; ext++; + `<get script for ext`> + (void) execute_script(cur_script, + match[1], Dotfield? Dotfield : "", "", ""); + `<release script for ext`> +} } } +>>> + + +\<get script for ext\><<< +{ + struct script_struct *cur, *add, *temp; + Q_CHAR extPlus[256]; + cur = `<ext-script`>; + add = cur_script = NULL_SCRIPT; + while( cur ){ + `<ext = ext + choise`> + if( strpre(extPlus, cur->command) ){ + `<temp = ext command`> + if( cur_script == NULL_SCRIPT ){ + cur_script = add = temp; + } else { + add = add->next = temp; + } } + cur = cur->next; +} } +>>> + + + +\<ext = ext + choise\><<< +(IGNORED) strcpy((char *) extPlus, (char *) ext); +/* + if ( envChoice ) { + (IGNORED) strct ( extPlus, envChoice ); + } +*/ +(IGNORED) strct ( extPlus, " " ); +>>> + +\<temp = ext command\><<< +temp = (struct script_struct *) + m_alloc(struct script_struct, (int) 1); +temp->command = m_alloc(char, (int) strlen((char *) cur->command) + 1); +temp->next = NULL_SCRIPT; +(IGNORED) strcpy((char *) temp->command, + (char *) cur->command + (int) strlen((char *) extPlus) ); +>>> + +\<release script for ext\><<< +while( cur_script != (struct script_struct*) 0 ){ + struct script_struct *temp; + temp = cur_script; cur_script = cur_script->next; free((void *) temp); +} +>>> + + +\<header functions\><<< +static BOOL strpre( ARG_II(char *,char *) ); +>>> + +\<functions\><<< +`[ +static BOOL strpre(s1,s2) + char * s1`; + char * s2 +;{ int i; + for( i=0; i < (int) strlen((char *) s1); i++){ + if( *(s1+i) != *(s2+i) ){ return FALSE; } + } + return TRUE; +} +>>> + + + +\<ext-script\><<< +ext_script +>>> + + + +\<defines\><<< +struct env_c_rec{ + Q_CHAR *option; + struct env_c_rec *next; +}; +>>> + +\<vars\><<< +static struct env_c_rec *envChoice + = (struct env_c_rec*) 0; +>>> + + +\<env blocks selector\><<< +struct env_c_rec *temp = (struct env_c_rec*) + m_alloc(struct env_c_rec, (int) 1); +temp->option = q; +temp->next = envChoice; +envChoice = temp; +>>> + +\<env-skip = skip segment match[1]\><<< +if( envChoice == (struct env_c_rec*) 0 ){ + env_skip = !eq_str(match[1], "default" ); +} else { + struct env_c_rec *p; + env_skip = TRUE; + for( p=envChoice; p!=(struct env_c_rec*) 0 ; p = p->next ){ + if( eq_str(match[1], p->option ) ){ env_skip = FALSE; } +} } +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%% +\Section{post-process files} +%%%%%%%%%%%%%%%%%%%%%%% + + +\<post-process files\><<< +if( `<file-script`> ){ + eoln_ch = (int) 'x'; + while( eoln_ch != EOF ) { + status = scan_str("File: ", TRUE, lg_file); + status = scan_until_str(".", 1, status, lg_file); + status = scan_until_end_str("", 2, status, lg_file); + if( status ){ Q_CHAR *p; + p = match[1]; + (IGNORED) strct( p, match[2] ); + p += strlen((char *) p); + while( *(--p) != '.' ){ ; } + *p = '\0'; p++; + (void) execute_script(file_script, match[1], + p, Xfield? Xfield : "", ""); +} } } +>>> + +\<file-script\><<< +file_script +>>> + +%%%%%%%%%%%%%%%%%%%%%%% +\Section{User Commands} +%%%%%%%%%%%%%%%%%%%%%%% + +\`'l. 10 --- needs --- "ls *" ---' + +\<process user commands\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { Q_CHAR *command, ch; + int n; + struct sys_call_rec *p; + BOOL flag; + status = scan_str("l. ", TRUE, lg_file); + status = scan_until_str(" --- needs --- \"", 1, status, lg_file); + status = scan_until_str("\" ---", 2, status, lg_file); + if( status ){ + command = match[2]; + *(command + (int) strlen((char *) command) - 5) = '\0'; + `<flag = permission for system calls`> + if( flag ){ + `<execute system command`> + } else { (IGNORED) printf( + "No permission for system call: %s\n", command); } +} } +>>> + + +\<env permissions for system calls\><<< +{ struct sys_call_rec *q; + q = m_alloc(struct sys_call_rec, 1); + q->next = system_calls; + q->filter = match[1]; + match[1] = (Q_CHAR *) malloc(70); max_match[1] = 70; + system_calls = q; +if( debug ){ + (IGNORED) printf(".......'S' script: '%s'\n", + q->filter); } +} +>>> + +\<permission for system calls\><<< +{ struct sys_call_rec *q; + q = m_alloc(struct sys_call_rec, 1); + q->next = system_calls; + q->filter = p + 2; + system_calls = q; +} +>>> + + +\<flag = permission for system calls\><<< +flag = FALSE; +p = system_calls; +while( p ){ + if( (n = (int) strlen((char *) p->filter)) == 1 ) { + if( *(p->filter) == '*' ){ + flag = TRUE; break; + } + } + if( strlen((char *) command) >= (unsigned int) n ) { + ch = command[n]; command[n] = '\0'; + flag = flag || eq_str(p->filter,command); + command[n] = ch; + } + p = p->next; +} +>>> + +\<defines\><<< +struct sys_call_rec{ + Q_CHAR * filter; + struct sys_call_rec *next; +}; +>>> + + +\<vars\><<< +static BOOL system_yes; +static struct sys_call_rec *system_calls = (struct sys_call_rec *) 0; +>>> + + + + + + + + +From log files \`'l. # --- needs --- "command" ---' + + + + + + + + + + +%%%%%%%%%%%%% +\Section{CSS} +%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Record HTFCSS Entries from the lg File} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The htfcss records are stored in the following linked list, and used +when the font entries `Font("key","...","...","...")' are loaded +(Section~'\Link{usehtfcc}{}\Ref{usehtfcc}\EndLink'). + +\<vars\><<< +static struct htf_struct *htf_rec = (struct htf_struct *) 0; +>>> + + +\<defines\><<< +struct htf_struct{ + Q_CHAR *key, *body, *media; + struct htf_struct *next; +}; +>>> + + + + + +\<htfcss from lg\><<< +{ struct htf_struct *last_rec, *p; + last_rec = (struct htf_struct *) 0; + eoln_ch = (int) 'x'; + while( eoln_ch != EOF ) { + status = scan_str("htfcss: ", TRUE, lg_file); + status = scan_until_end_str("", 1, status, lg_file); + `<remove leading spaces`> + if( status ){ Q_CHAR *key, *body, *media; + media = body = key = match[1]; + `<process htfcss line`> + } } +} +>>> + +\<remove leading spaces\><<< +if( status ){ + Q_CHAR *s, *t; + int i; + s = t = match[1]; + for( i=0; *s == ' '; s++ ) { i++; } + if( i>0 ){ + while( *s != 0 ){ + *(t++) = *(s++); + } + *t = 0; +} } +>>> + + +?? How the case `append prev htfcss rec' can be reached ?? + +\<process htfcss line\><<< +while( *body && (*body != ' ') ){ body++; } +if( *body == ' ' ){ media = body; *(body++) = '\0'; } +`<extract media info`> +if( *body ){ + if( *key ){ `<add new htfcss rec`> } +#if 0 /* unreachable */ + else if( last_rec ){ `<append prev htfcss rec`> } +#endif /* 0, unreachable */ +} +>>> + +\<extract media info\><<< +if( (int) strlen((char *) body) > 6 ){ + if( (*(body) == '@') + && (*(body+1) == 'm') + && (*(body+2) == 'e') + && (*(body+3) == 'd') + && (*(body+4) == 'i') + && (*(body+5) == 'a') ) + { + body += 6; + while( *body == ' ' ){ body++; } + media = body; + while( (*body != ' ') && (*body != '\0') ){ body++; } + if( *body == ' ' ){ *(body++) = '\0'; } + while( *body == ' ' ){ body++; } +} } +>>> + +\<add new htfcss rec\><<< +p = m_alloc(struct htf_struct, 1); +p->next = (struct htf_struct *) 0; +p->key = m_alloc(char, (int) strlen((char *) key) + 1); +(IGNORED) strcpy((char *) p->key, (char *) key ); +p->media = m_alloc(char, (int) strlen((char *) media) + 1); +(IGNORED) strcpy((char *) p->media, (char *) media ); +p->body = m_alloc(char, (int) strlen((char *) body) + 1); +(IGNORED) strcpy((char *) p->body, (char *) body ); +if( last_rec ){ + last_rec->next = p; last_rec = p; +} else { + htf_rec = last_rec = p; +} +if( debug ){ + (IGNORED) printf(".......%s...%s...%s\n", key, media, body); +} +>>> + +\<append prev htfcss rec\><<< +last_rec->body = (Q_CHAR *) r_alloc((void *) last_rec->body, + (size_t) strlen((char *) last_rec->body) + + (size_t) strlen((char *) body) + + 2); +(IGNORED) strct(last_rec->body,"\n"); +(IGNORED) strct(last_rec->body,body); +if( debug ){ + (IGNORED) printf(".......%s\n", body); +} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Font-Css-Plus Entries from The lg File} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The command \`'\Configure{htf-css}{cmmi}{font-style: italic;}' +provides in the lg file an entry of the form +\`'Font_Css_Plus cmmi font-style: italic;'. + +\<font=(...) from lg\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_str("Font_Css_Plus ", TRUE, lg_file); + status = scan_until_str(" ", 1, status, lg_file); + status = scan_until_end_str("", 2, status, lg_file); + if( status ){ Q_CHAR *key; + key = match[1]; + *(key + (int) strlen((char *) key) - 1) = '\0'; + `<store font style of lg`> +} } +>>> + + + +\<store font style of lg\><<< +if( (*key != '\0') && (*key != '\n') ) { + struct htf_struct *p; + p = m_alloc(struct htf_struct, 1); + p->next = htf_rec; + htf_rec = p; + p->key = m_alloc(char, (int) strlen((char *) key) + 1); + (IGNORED) strcpy((char *) p->key, (char *) key ); + p->body = m_alloc(char, (int) strlen((char *) match[2]) + 1); + (IGNORED) strcpy((char *) p->body, (char *) match[2] ); + if( debug ){ + (IGNORED) printf(".......%s...%s\n", key, match[2]); +} } +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Imported Css File} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%Css: TD.caption{white-space: nowrap; } +%Font("cmex","10","100") +%Font("cmmi","10","100") +%Font("cmmi","5","100") +%Font("cmmi","7","100") +%Font("cmr","10","100") +%Font("cmr","5","100") +%Font("cmr","7","100") +%Font("cmsy","10","100") +%Font("cmsy","7","100") +%Font("cmti","10","100") +%Font("cmtt","10","100") +%Font_Class(1,""): <IMG SRC=""ALT=""CLASS="%s%s-%d--%x"> +%Font_Class(3,"mva"): <IMG SRC=""ALT=""CLASS="%s-%d--%x"ALIGN="MIDDLE"> +%Font_Class(6,"ul"): <SPAN CLASS="underline"></SPAN> +%Font_Css("sc"): .small-caps{font-variant: small-caps; } +% Font_Css("ul"): .underline{text-decoration:underline; } + + + + +\<process css\><<< +{ + Q_CHAR css_name[255]; + FILE *css_file, *tmp_file; + BOOL css_sty; + `<css-file = open file ...`> + if( css_file ){ + (IGNORED) printf ("Entering %s\n", css_name); + tmp_file = fopen(tmp_name, WRITE_TEXT_FLAGS); + if( !tmp_file ) { + (IGNORED) warn_i_str(5,tmp_name); + } else { `<c: tex4ht.tmp := css file`> } + tmp_file = open_file(tmp_name, ".tmp"); + css_file = fopen(css_name, WRITE_TEXT_FLAGS); + if( !tmp_file ) { + (IGNORED) warn_i_str(5,tmp_name); + } else if( !css_file ) { + (IGNORED) warn_i_str(5,css_name); + } else { + `<c: css file = header of tex4ht.tmp`> + if( css_sty ){ + `<css file = css.sty`> + `<css file = tail of tex4ht.tmp`> + } + } + (IGNORED) fclose(tmp_file); + (IGNORED) fclose(css_file); +} } +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Preliminary Processing of the CSS File} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<c: tex4ht.tmp := css file\><<< + int ch; +while( (ch = getc(css_file)) != EOF ) { + (IGNORED) putc( ch, tmp_file ); +} +(IGNORED) fclose(tmp_file); +(IGNORED) fclose(css_file); +>>> + + +\<css-file = open file ...\><<< +(IGNORED) strcpy((char *) css_name, (char *) job_name); +(IGNORED) strct(css_name, ".css"); +css_file = fopen(css_name, READ_TEXT_FLAGS); +>>> + +\SubSection{Cotributors to the Css File} + +Copy until insertion point: + +\`'/* css.sty */' + +\<c: css file = header of tex4ht.tmp\><<< +css_sty = FALSE; +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_until_end_str("", 1, TRUE, tmp_file); + `<match[2] := compressed match[1]`> + if( eq_str(match[2], "/*css.sty*/") ){ css_sty = TRUE; break; } + (IGNORED) fprintf(css_file, "%s\n", match[1]); +} +>>> + +\<vars\><<< +static BOOL status; +>>> + + + +\<match[2] := compressed match[1]\><<< +{ Q_CHAR *p, *q; + int n; + n = 0; p = match[1]; q = match[2]; + while ( (*p != '\0') ){ + if (n == 13) { *(q-10) = '\0'; break;} + if( *p != ' ' ){ *(q++) = *p; n++; } + p++; + } + *q = '\0'; +} +>>> + +Contribution from lg File + + + +\<css file = css.sty\><<< +(IGNORED) fprintf(css_file, "/* start css.sty */\n"); +`<rewind lg file`> `<Font_css_base: ...`> +`<rewind lg file`> `<process Font_Size: ...`> +`<rewind lg file`> `<process Font(...)`> +`<rewind lg file`> `<process Font_Css(...):...`> +`<rewind lg file`> `<process Css:...`> +(IGNORED) fprintf(css_file, "/* end css.sty */\n"); +>>> + + +The \`'<process Css:...>' should be after the other two's to allow +the user to overide with \''\Css' commands the +other contributions. + + + + +We want to remove the non-leading \`'/* css.sty */', just +in case t4ht.perl is called consequtively more than once. + +\<css file = tail of tex4ht.tmp\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_until_end_str("", 1, TRUE, tmp_file); + `<match[2] := compressed match[1]`> + if( !eq_str(match[2], "/*css.sty*/") ){ + (IGNORED) fprintf(css_file, "%s\n", match[1]); + } +} +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Contributions from /Css Commands} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\`'Css: P.noindent { text-indent: 0em }' + +\<process Css:...\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_str("Css: ", TRUE, lg_file); + status = scan_until_end_str("", 1, status, lg_file); + if( status ){ + (IGNORED) fprintf(css_file, "%s\n", match[1]); +} } +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Contributions From Font-Size} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\`'\Needs{"Font_Size: 12"}' + + + +\<process Font_Size: ...\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_str("Font_Size: ", TRUE, lg_file); + status = scan_until_end_str("", 1, status, lg_file); + if( status ){ + base_font_size = (int) get_long_int(match[1]); +} } +>>> + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Contributions to Fonts} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Link{}{usehtfcc}\EndLink\Tag{usehtfcc}{Contributions to Fonts} + +\`'Font("family_name", "font_size", "design_sz * 100 / 655360 / 10", "mag")' +(e.g., \`'Font("cmr","10","10","100")', +\`'Font("aptmri","8t",??,"100")', +\`'Font("ecti","1095","10","100")') + + + + + + + +\<process Font(...)\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_str("Font(\"", TRUE, lg_file); + status = scan_until_str("\",\"", 1, status, lg_file); + status = scan_until_str("\",\"", 2, status, lg_file); + status = scan_until_str("\",\"", 3, status, lg_file); + status = scan_until_end_str("\")", 4, status, lg_file); + if( status ){ + Q_CHAR *p; + struct htf_struct *font_sty; + int second; + p = match[1]; + *(p + (int) strlen((char *) p) - 3) = '\0'; + p = match[2]; + *(p + (int) strlen((char *) p) - 3) = '\0'; + p = match[3]; + *(p + (int) strlen((char *) p) - 3) = '\0'; + p = match[4]; + *(p + (int) strlen((char *) p) - 2) = '\0'; + `<get font size`> + `<get font style`> +} } +>>> + + + + + +\<get font style\><<< +font_sty = htf_rec; +while ( font_sty ) { + if( eq_str(font_sty->key,match[1]) ){ + if( *(font_sty->media) == '\0' ){ + `<print font style css`> + second = 100; + } else { + `<print media style`> + } + } + font_sty = font_sty->next; +} +if( second != 100 ){ `<print font style css`> } +>>> + + + + +\<get font size\><<< +{ Q_CHAR *p; + second = (int) + ( (int) get_long_int(match[3]) + * (int) get_long_int(match[4]) + / base_font_size + ); + while( second > 700 ){ second /= 10; } + p = match[3]; + while( *p != '\0' ){ + if( (*p < '0') || (*p > '9') ){ second = 100; break; } + p++; + } + `<inspect font-size argument`> +} +>>> + +The following case handles cases like that of \`'Font("ecti","1095","10","100")', where +\Verb=base_font_size= is 11. + +\<inspect font-size argument\><<< +if( (int) ( (double) get_long_int(match[2]) + / (int) get_long_int(match[4]) + + 0.5 + ) + == base_font_size +){ + second = 100; +}; +>>> + + + + + + + + +\<Font_css_base: ...\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_str("Font_css_base: ", TRUE, lg_file); + status = scan_until_str("Font_css_mag: ", 1, status, lg_file); + status = scan_until_end_str("", 2, status, lg_file); + if( status ){ + Font_css_base = match[1]; + *(Font_css_base + (int) strlen((char *) Font_css_base) - 14) = '\0'; + match[1] = (Q_CHAR *) malloc(70); max_match[1] = 70; + Font_css_mag = match[2]; + match[2] = (Q_CHAR *) malloc(70); max_match[2] = 70; +} } +>>> + + + + +\<vars\><<< +static char *Font_css_base = NULL, + *Font_css_mag = NULL; +static int base_font_size = 10; +>>> + + + +\<print font style css\><<< +(IGNORED) fprintf(css_file, + (Font_css_base == NULL)? ".%s-%s" : Font_css_base, + match[1], match[2]); +if( !eq_str(match[4],"100") ){ + (IGNORED) fprintf(css_file, + (Font_css_mag == NULL)? "x-x-%s" : Font_css_mag, + match[4]); +} +(IGNORED) fprintf(css_file, "{"); +if( (second < 98) || (second > 102) ){ + (IGNORED) fprintf(css_file, "font-size:%d%c;", second, '%'); +} +if( font_sty ) { + (IGNORED) fprintf(css_file, "%s", font_sty->body); +} +(IGNORED) fprintf(css_file, "}\n"); +>>> + + +\<print media style\><<< +(IGNORED) fprintf(css_file, "@media %s{", font_sty->media); +(IGNORED) fprintf(css_file, + (Font_css_base == NULL)? ".%s-%s" : Font_css_base, + match[1], match[2]); +if( !eq_str(match[4],"100") ){ + (IGNORED) fprintf(css_file, + (Font_css_mag == NULL)? "x-x-%s" : Font_css_mag, + match[4]); +} +(IGNORED) fprintf(css_file, "{"); +if( font_sty ) { + (IGNORED) fprintf(css_file, "%s", font_sty->body); +} +(IGNORED) fprintf(css_file, "}}\n"); +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Font-Css Contributions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\`'Font_Css("4"): .small-caps{font-variant: small-caps; }' + +\<process Font_Css(...):...\><<< +{ char *font_class [256]; + int last_class; + `<find usage`> + eoln_ch = (int) 'x'; + while( eoln_ch != EOF ) { + status = scan_str("Font_Css(\"", TRUE, lg_file); + status = scan_until_str("\"): ", 1, status, lg_file); + status = scan_until_end_str("", 2, status, lg_file); + if( status ){ int i; + for(i=0; i<last_class; i++){ + if( eq_str(match[1],font_class[i]) ){ + (IGNORED) fprintf(css_file, "%s\n", match[2]); + break; +} } } } } +>>> + + + +\<find usage\><<< +last_class = 0; +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { + status = scan_str("Font_Class(", TRUE, lg_file); + status = scan_until_str(",\"", 1, status, lg_file); + status = scan_until_str("\"): ", 1, status, lg_file); + status = scan_until_end_str("", 2, status, lg_file); + if( status ){ + font_class[last_class++] = match[1]; + match[1] = (Q_CHAR *) malloc(7); max_match[1] = 7; +} } +`<rewind lg file`> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Section{Load Env File} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Retrieve Info} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<load env file\><<< +{ FILE* file; + U_CHAR env_loc[512]; + env_loc[0] = '\0'; + `<find tex4ht.env`> + if( file ){ + `<get info from env file`> + (IGNORED) fclose(file); +} } +>>> + + +% (IGNORED) printf("Entering %s\n", env_loc[0]? &env_loc[0] +% :"tex4ht.env"); + + + +\<get info from env file\><<< +eoln_ch = (int) 'x'; +while( eoln_ch != EOF ) { Q_CHAR ch; + ch = (char) (eoln_ch = getc(file)); + if( eoln_ch != (int) '\n' ){ + status = scan_until_end_str("", 1, TRUE, file); + if( status ){ + switch( ch ){ + case 'A':{ `<script for chmod`> break;} + case 'C':{ `<script for copy`> break;} + case 'E':{ `<script for empty gifs`> break;} + case 'F':{ `<script for dvigif of glyps`> break;} + case 'G':{ `<script for dvigif`> break;} + case 'M':{ `<script for move`> break;} + case 'S':{ `<env permissions for system calls`> break;} + case 'X':{ `<script for file`> break;} + case '.':{ `<script for file ext`> break;} + case '<':{ `<env selector`> break;} + default:{ } +} } } } +>>> + + + + + +\<script for dvigif of glyps\><<< +if( debug ){ + (IGNORED) printf(".......'F' script\n"); } +dvigif_glyp_script = add_script(dvigif_glyp_script); +>>> + + +\<script for move\><<< +if( debug ){ + (IGNORED) printf(".......'M' script\n"); } +move_script = add_script(move_script); +>>> + + +\<script for copy\><<< +if( debug ){ + (IGNORED) printf(".......'C' script\n"); } +copy_script = add_script(copy_script); +>>> + + + + + +\<script for file\><<< +if( debug ){ + (IGNORED) printf(".......'X' script\n"); } +`<file-script`> = add_script(`<file-script`>); +>>> + +\<script for file ext\><<< +if( debug ){ + (IGNORED) printf(".......'.' script\n"); } +`<ext-script`> = add_script(`<ext-script`>); +>>> + + + + +\<script for chmod\><<< +if( debug ){ + (IGNORED) printf(".......'A' script\n"); } +chmod_script = add_script(chmod_script); +>>> + +\<script for empty gifs\><<< +if( debug ){ + (IGNORED) printf(".......'E' script\n"); } +empty_fig_script = add_script(empty_fig_script); +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Utilities for Retrieving Info} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<env selector\><<< +if( *(match[1]) != '/' ){ + U_CHAR *p; + BOOL env_skip; + for( p = match[1]; + (*p != '>') && (*p != '\n') && (*p != EOF ) ; + p++ ){} + if( *p == '>' ){ *p = '\0'; } + `<env-skip = skip segment match[1]`> + if( env_skip ){ + `<skip env segment`> + } else { + if( debug ){ + (IGNORED) printf("....... <%s>\n", match[1]); + } + } +} else if( debug ){ + (IGNORED) printf("....... <%s\n", match[1]); +} +>>> + +\<skip env segment\><<< + U_CHAR cur_block[90]; +if( debug ){ + (IGNORED) printf("....... <%s> skipping ...\n", match[1]); +} +(IGNORED) strcpy((char *) cur_block, (char *) match[1]); +status = FALSE; +while( !status && (eoln_ch != EOF) ){ + status = scan_str("</", TRUE, file); + status = scan_until_str(">", 1, status, file); + status = scan_until_end_str("", 2, status, file); + if( status ){ + *(match[1] + strlen((char *) match[1]) - 1) = '\0'; + status = eq_str(match[1], cur_block); + if( debug ){ + (IGNORED) printf("....... </%s>\n", match[1]); +} } } +>>> + + + +\<header functions\><<< +static struct script_struct * add_script( ARG_I(struct script_struct *) ); +>>> + +\<functions\><<< +`[ +static struct script_struct * add_script(script) + struct script_struct * script +;{ + struct script_struct* temp, * q; + temp = (struct script_struct *) + m_alloc(struct script_struct, (int) 1); + temp->command = match[1]; + if( debug ){ + (IGNORED) printf("....... %s\n", temp->command); } + temp->next = NULL_SCRIPT; + match[1] = (Q_CHAR *) malloc(70); + max_match[1] = 70; + if( script ){ + q = script; + while( q->next ){ q = q->next; } + q->next = temp; + } else { + script = temp; + } + return script; +} +>>> + + + + + + + + + +\<defines\><<< +struct script_struct{ + Q_CHAR *command; + struct script_struct *next; +}; +>>> + +\<vars\><<< +static struct script_struct + * dvigif_script = NULL_SCRIPT, + * dvigif_glyp_script = NULL_SCRIPT, + * move_script = NULL_SCRIPT, + * empty_fig_script = NULL_SCRIPT, + * copy_script = NULL_SCRIPT, + * `<file-script`> = NULL_SCRIPT, + * `<ext-script`> = NULL_SCRIPT, + * chmod_script = NULL_SCRIPT; +>>> + +\<defines\><<< +#define NULL_SCRIPT (struct script_struct *) 0 +>>> + + + + + + + + +% case 'H':{ `<env-htf-sty = htfcss.env file`> break;} +% +% \<env-htf-sty = htfcss.env file\><<< +% env_htf_sty = match[1]; +% match[1] = (Q_CHAR *) malloc(70); +% max_match[1] = 70; +% if( debug ){ +% (IGNORED) printf(".......'H' script: '%s'\n", +% env_htf_sty); } +% >>> +% +% \<vars\><<< +% static Q_CHAR* env_htf_sty = Q_NULL; +% >>> + + + +\Verbatim +% dvips -mode ibmvga -D 110 -f foo.idv -pp 92 > tmp.ps +% convert -crop 0x0 -density 110x110 -transparent '#FFFFFF' tmp.ps foo.gif +Gdvips -mode ibmvga -D 110 -f %1 -pp %2 > tmp.ps +Gconvert -crop 0x0 -density 110x110 -transparent '#FFFFFF' tmp.ps %3 +% t4ht -d%2 +Mmv %1 %2%3 +Ccp %1 %2%3 +% t4ht -d%2 -m%1 +Achmod %1 %2%3 +H/n/gold/5/gurari/tex4ht.dir/ +\EndVerbatim + + + +\SubSection{Open Directory} + +\<env file at work dir\><<< +if( !file ) { + if( debug ){ + (IGNORED) printf("tex4ht.env?\n"); + } + file = f_open("tex4ht.env", READ_TEXT_FLAGS); + (IGNORED) strcpy((char *) &env_loc[0], "tex4ht.env"); + if( debug && file ){ + (IGNORED) printf(".......Open: ./tex4ht.env\n"); } +} +>>> + +\<find tex4ht.env\><<< +{ Q_CHAR str[512], + *TEX4HTENV; + `<env file from command switch`> + `<env file at work dir`> + `<env file .tex4ht`> + `<TEX4HTENV env`> + `<env file at root dir`> + `<ENVFILE env`> + if( !file ) { `<env file from prog loc`> } + `<kpathsea env file`> + if( !file ) warn_i_str( 5, `<warn 1`>); +} +>>> + + + + + + + + +\<TEX4HTENV env\><<< +if( !file ){ + TEX4HTENV = getenv("TEX4HTENV"); + if( TEX4HTENV ){ + if( debug ){ + (IGNORED) printf("%s?\n", TEX4HTENV); + } + file = f_home_open(TEX4HTENV,READ_TEXT_FLAGS); + } +} +>>> + + + + + + +\<env file .tex4ht\><<< +#ifndef DOS_WIN32 + if( !file ) { + if( debug ){ + (IGNORED) printf(".tex4ht?\n"); + } + file = f_open(".tex4ht", READ_TEXT_FLAGS); + (IGNORED) strcpy((char *) &env_loc[0], ".tex4ht"); + if( debug && file ){ + (IGNORED) printf(".......Open: ./.tex4ht\n"); } + } +#endif +>>> + +\<ENVFILE env\><<< +#ifdef ENVFILE + if( !file ) { + if( debug ){ + (IGNORED) printf("%s?\n", ENVFILE); + } + file = f_home_open( ENVFILE,READ_TEXT_FLAGS); + (IGNORED) strcpy((char *) &env_loc[0], (char *) ENVFILE); + if( debug && file ){ + (IGNORED) printf(".......Open: %s\n", ENVFILE); } + } +#endif +>>> + + + +\<h-defines\><<< +#ifndef ENVFILE + +#endif +>>> + + + +\<warn 1\><<< +#ifdef DOS_WIN32 + "tex4ht.env" +#endif +#ifndef DOS_WIN32 + "tex4ht.env | .tex4ht" +#endif +>>> + + + + +\<kpathsea env file\><<< + +#ifdef KPATHSEA +if( !file ) { U_CHAR * envfile; + char *arch, *p, str[256]; + `<arch = tail of SELFAUTOLOC`> + envfile = (char *) 0; + `<envfile = kpse-find-file architecture/tex4ht.env`> + if ( !envfile ){ `<envfile = kpse-find-file tex4ht.env`> } + if ( !envfile ){ `<envfile = kpathsea tex4ht.env`> } + if ( envfile ){ + file = kpse_open_file (envfile, kpse_program_text_format); + (IGNORED) printf("(%s)\n", envfile); + } + if( debug && file ){ + (IGNORED) printf(".......Open kpathsea %s\n", envfile); + } +} +if( debug ){ + U_CHAR *p, *q; + `<trace T4HTINPUTS`> +} +#endif +>>> + +%%%<-- + +\<arch = tail of SELFAUTOLOC\><<< +p = arch = (char *) kpse_var_value( "SELFAUTOLOC" ); +while( *p != '\0' ){ + if( (*p == '/') || (*p == '\\') ){ + arch = p; + } + p++; +} +>>> + + +\<envfile = kpse-find-file architecture/tex4ht.env\><<< +if( arch ){ + (IGNORED) sprintf(str,"%s%ctex4ht.env", arch+1, *arch); + if( debug ){ + (IGNORED) printf( + "kpse_open_file (\"%s\", kpse_program_text_format)?\n", str ); + } + envfile= kpse_find_file (str, kpse_program_text_format, 0); +} +>>> + + +\<envfile = kpse-find-file tex4ht.env\><<< +if( debug ){ + (IGNORED) printf( + "kpse_open_file (\"tex4ht.env\", kpse_program_text_format)?\n"); +} +envfile= kpse_find_file ("tex4ht.env", kpse_program_text_format, 0); +>>> + + +% if( debug ){ +% (IGNORED) printf( "kpse_open_file (\"tex4ht.env\", ...)?\n"); +% } +% envfile= kpse_find_file ("tex4ht.env", kpse_program_text_format, 0); + + + + + + +\<trace T4HTINPUTS\><<< +p = (U_CHAR *) kpse_var_value( "T4HTINPUTS" ); +if( p ){ + (IGNORED) printf("T4HTINPUTS = %s\n", p); +} +q = getenv("T4HTINPUTS"); +if( q ){ (IGNORED) printf( + "Environmet var T4HTINPUTS: %s\n", q); +} +if( !p && !q ){ + (IGNORED) printf( "Missing T4HTINPUTS for kpathsea\n" ); +} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{kpathsea vs kpse-find-file} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The kpathsea utility might succeed where kpse-find-file fails. Maybe due to: +``Kpathsea's subdirectory searching has an + irremediable deficiency: If a directory D being searched for + subdirectories contains plain files and symbolic links to other + directories, but no true subdirectories, D will be considered a + leaf directory, i.e., the symbolic links will not be followed.'' +[\Link[http://www.tug.org/svn/texlive/trunk/Build/source/texk/kpathsea/kpathsea.info?view=markup]{}{}kpathsea.info\EndLink] + + + + +\<envfile = kpathsea tex4ht.env\><<< +if( system("kpsewhich --progname=tex4ht tex4ht.env > tex4ht.tmp") == 0 ){ + `<fileaddr = read tex4ht.tmp`> + envfile= kpse_find_file (fileaddr, kpse_program_text_format, 0); +} +>>> + + + +Don't know how to avoid the use of intermediate file: popen(...) and +fork() are not stadard utilities. Also the redirection \Verb+>+ might +need to be changed, e.g., to \Verb+>&+. + +\<fileaddr = read tex4ht.tmp\><<< +char fileaddr [256]; +int loc = 0; +FILE* file = f_open("tex4ht.tmp", READ_TEXT_FLAGS); +if( file ){ + while( (fileaddr[loc] = getc(file)) >=0 ){ + if( fileaddr[loc] == '\n' ){ fileaddr[loc] = '\0'; break; } + loc++; + } + (IGNORED) fclose(file); +} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Root Directory} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<env file at root dir\><<< +if( !file ){ + if( HOME_DIR ){ (IGNORED) sprintf(str,`<"s/tex4ht.env"`>, HOME_DIR); + if( debug ){ + (IGNORED) printf("%s?\n", str); + } + file = f_open(str,READ_TEXT_FLAGS); + (IGNORED) strcpy((char *) &env_loc[0], (char *) str); + if( debug && file ){ + (IGNORED) printf(".......Open: %s\n", str); } + } +} +#ifndef DOS_WIN32 + if( !file ){ + if( HOME_DIR ){ + (IGNORED) sprintf(str,"%s/.tex4ht", HOME_DIR); + if( debug ){ + (IGNORED) printf("%s?\n", str); + } + file = f_open(str,READ_TEXT_FLAGS); + (IGNORED) strcpy((char *) &env_loc[0], (char *) str); + if( debug && file ){ + (IGNORED) printf(".......Open: %s\n", str); } + } + } +#endif +#if defined(DOS_WIN32) || defined(__MSDOS__) + if( !file ){ + if( debug ){ + (IGNORED) printf("C:/tex4ht.env?\n"); + } + file = f_open("C:/tex4ht.env",READ_TEXT_FLAGS); + (IGNORED) strcpy((char *) &env_loc[0], "C:/tex4ht.env"); + if( debug && file ){ + (IGNORED) printf(".......Open: C:/tex4ht.env\n"); } + } +#endif +>>> + +\<"s/tex4ht.env"\><<< +#if defined(DOS_WIN32) || defined(__DJGPP__) + is_forward_slash(HOME_DIR)? "%s/tex4ht.env" : "%s\\tex4ht.env" +#else + "%s/tex4ht.env" +#endif +>>> + + + + + + + + + + + +\SubSection{Env File from Command Line} + +\<env file from command switch\><<< +if( tex4ht_env_file ){ + if( debug ){ + (IGNORED) printf("%s?\n", tex4ht_env_file); + } + file = f_home_open( tex4ht_env_file, READ_TEXT_FLAGS ); +} else { + file = NULL; +} +if( tex4ht_env_file ){ + (IGNORED) strcpy((char *) &env_loc[0], (char *) tex4ht_env_file); +} +if( debug && file ){ + (IGNORED) printf(".......Open: %s\n", tex4ht_env_file); } +>>> + +\<env file from prog loc\><<< +if( dos_env_file ){ + if( debug ){ + (IGNORED) printf("%s?\n", dos_env_file); + } + file = f_open( dos_env_file, READ_TEXT_FLAGS ) ; + (IGNORED) strcpy((char *) &env_loc[0], (char *) dos_env_file); + if( debug && file ){ + (IGNORED) printf(".......Open: %s\n", dos_env_file); } +} +>>> + + + +Search along the path: command line file $\rightarrow$ work +directory $\rightarrow$ home directory $\rightarrow$ system file. + +\<get .env directory from com ln\><<< +tex4ht_env_file = q; +>>> + +% if( !access(p+2,F_OK) ) tex4ht_env_file = q; +% else warn_i_str(6,q); + + +The function \`'int access(const char *pathname, int mode)', and the mode +\`'F_OK' that tests for the existence of file, are defined in the +following directory. The function returns 0 if ok and -1 on error . + +Where access comes from in dos? + +\<h-include before KPATHSEA\><<< +#ifndef __DJGPP__ +`<h-include near KPATHSEA`> +#endif +>>> + + + +The following is because \`'<unistd.h> +defines F_OK in DJGPP'. + +\<h-include after KPATHSEA\><<< +#ifdef __DJGPP__ +`<h-include near KPATHSEA`> +#endif +>>> + +\<h-include near KPATHSEANO\><<< +#ifndef F_OK +#ifdef DOS_WIN32 +#define F_OK 0 `% does file exist `% +#endif +#ifndef DOS_WIN32 +#define HAVE_UNISTD_H +#endif +#endif +#ifdef HAVE_IO_H +#include <io.h> +#endif +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +>>> + +\<h-include near KPATHSEA\><<< +#ifndef F_OK +#ifdef DOS_WIN32 +#define F_OK 0 `% does file exist `% +#endif +#ifndef KPATHSEA +#ifndef DOS_WIN32 +#define HAVE_UNISTD_H +#endif +#endif +#endif +#ifdef HAVE_IO_H +#include <io.h> +#endif +#ifndef KPATHSEA +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif +#endif +>>> + + + +\SubSection{Env File from Location of t4ht.c} + +\<main's vars\><<< +Q_CHAR * tex4ht_env_file = (Q_CHAR *) 0; +Q_CHAR * dos_env_file = +#if defined(__MSDOS__) + `<get dos env file`>; +#endif +#if !defined(__MSDOS__) + (Q_CHAR *) 0; +#endif + +>>> + + Under DOS, argv[0] usually includes the full path to the program - +even if it wasn't typed in. This can be used to find the program's own +directory, and hence the configuration file. I've implemented this +already as follows: + +\<get dos env file\><<< +get_env_dir(argv[0]) +>>> + +\<functions\><<< +#if defined(__MSDOS__) +`<get tex4ht.env in dos`> +#endif +>>> + +\<get tex4ht.env in dos\><<< +`[ +static char *get_env_dir(progname) + Q_CHAR *progname + +;{ int i; + Q_CHAR *p; + if(! progname || ! *progname) return NULL; `% Safety `% + i = (int) strlen((char *) progname); + while( (progname[--i] != (int) dir_path_slash(progname) ) + && i > 0) ; `%Search for slash`% + if(i == 0) return NULL; `%Not found? Give up`% + p = (Q_CHAR *) malloc(i+12); + if(p == NULL) return NULL; `%Space for new extention after dot`% + strncpy(p, progname, i+1); `%Copy up to slash`% + (IGNORED) strcpy((char *) &p[i+1], + "tex4ht.env"); `%Append new extention`% + return p; +} +>>> + + + + + + +The 12 above is for accomodating \''tex4ht.env'. + + Then, in main(), I changed: + +\`''char* tex4ht_env_file = (Q_CHAR *) 0;' + + to: + +\`'char* tex4ht_env_file = get_env_dir(argv[0]);' + + This works like a charm here, and allows me to use tex4ht from a +different directory without typing a single commandline option. + + + + +\Section{Open Files} + + +\<header functions\><<< +static FILE* f_open( ARG_II(const char*,const char*) ); +>>> + +\<functions\><<< +`[ +static FILE* f_open( name, flags ) + const char* name `; + const char* flags +;{ FILE* file; + if( (file = fopen(name,flags) ) != NULL ) { + (IGNORED) printf("(%s)\n",name); + } + return file; +} +>>> + + + + + +\<header functions\><<< +static FILE* f_home_open( ARG_II(const char*,const char*) ); +>>> + +\<functions\><<< +`[ +static FILE* f_home_open( name, flags ) + const char* name `; + const char* flags +;{ FILE* file; + U_CHAR *str; + if( *name == '~' ){ + if( HOME_DIR ){ + str = m_alloc(char, strlen((char *) HOME_DIR)+strlen(name)); + (IGNORED) sprintf(str,"%s%s", HOME_DIR, name+1); + file = f_open(str,flags); + free((void *) str); + return file; + } else { return NULL; } + } else { return f_open( name, flags ); } +} +>>> + + + + + + +\SubSection{General} + +\<header functions\><<< +static FILE* open_file( ARG_II(const C_CHAR *, const C_CHAR *) ); +>>> + +\<functions\><<< +`[ +static FILE* open_file(name,ext) + const C_CHAR *name`; const C_CHAR *ext +;{ FILE* file; + C_CHAR filename[255], *p; + if( eq_str( ext,LG_EXT ) ) { + (IGNORED) strcpy((char *) filename, (char *) job_name); + (IGNORED) strct(filename, ext); + } else { + (IGNORED) strcpy((char *) filename, name ); + p = filename; + while( TRUE ){ + if( *p == '.' ){ break; } + if( *p == '\0' ){ (IGNORED) strcpy((char *) p, ext); break; } + p++; + } + } + file = fopen(filename, READ_TEXT_FLAGS); + if( !file ) { + (IGNORED) warn_i_str(5,filename); + } else { (IGNORED) printf ("Entering %s\n", filename); } + + return file; +} +>>> + + +We have here a little inconsistency with tex4ht.c. There the input file +name is appended with the extension .dvi, allowing double extensions. +Here, if an extension is present, we remove it before putting .lg on +top of the name. Should we fix that? + + + + +\<defines\><<< +#define LG_EXT ".lg" +>>> + + + + + +% +% \SubSection{htfcss.env} +% +% +% \<file = open htfcss.env\><<< +% if( htf_cfg ){ +% file = open_file(htf_cfg, ".env"); +% } else { C_CHAR filename[255]; +% file = fopen("htfcss.env", READ_TEXT_FLAGS); +% if ( !file && env_htf_sty ){ +% (IGNORED) strcpy((char *) filename, (char *) env_htf_sty); +% (IGNORED) strct(filename, "htfcss.env"); +% file = fopen(filename, READ_TEXT_FLAGS); +% } +% if ( !file ){ +% (IGNORED) strcpy((char *) filename, (char *) HTFDIR ); +% (IGNORED) strct(filename, "htfcss.env"); +% file = fopen(filename, READ_TEXT_FLAGS); +% } +% `<htfcss.env in KPATHSEA`> +% if( !file ) { (IGNORED) warn_i_str(5,"htfcss.env"); } +% else { (IGNORED) printf ("Entering htfcss.env\n"); } +% } +% >>> +% +% + + + +\<mark start lg file\><<< +begin_lg_file = ftell(lg_file); +>>> + +\<rewind lg file\><<< +(IGNORED) fseek(lg_file, begin_lg_file, `<abs file addr`>); +>>> + +\<abs file addr\><<< +0>>> + + + + +\<vars\><<< +static FILE* lg_file; +static long begin_lg_file; +>>> + + + + + +\''open(file, ..._FLAGS)': All +text files should be opened with "r" or "w"; all binary files with "rb" +or "wb". This is the portable way and will work both under Unix and DOS; +as Unix doesn't distinguish between text and binary files, its compilers +will simply ignore the "b" part. + + On the subject of the .lg file: you open the tex4ht.env file in binary +mode ("rb"), which results in strange line endings in the .lg file +(CR/CR/LF). Changing the mode to "r" fixes this. + + +\<t4ht.h\><<< +#if defined(DOS_WIN32) || defined(__MSDOS__) +#define READ_BIN_FLAGS "rb" +#define READ_TEXT_FLAGS "r" +#define WRITE_BIN_FLAGS "wb" +#ifdef WIN32 +#define WRITE_TEXT_FLAGS "wb" +#else +#define WRITE_TEXT_FLAGS "w" +#endif +#else +#define READ_BIN_FLAGS "r" +#define READ_TEXT_FLAGS "r" +#define WRITE_BIN_FLAGS "w" +#define WRITE_TEXT_FLAGS "w" +#endif +>>> + + + +\Verbatim +I've been held up a bit by a +bug in tex4ht.c that caused emTeX to complain that the created .idv file +was corrupt: + +*** Fatal error 2106: corrupt DVI file (postamble not found) + + I found the cause, though: you open it with mode "w", which is text +mode. Changing this to "wb" solved the problem. +\EndVerbatim + + + + + + + + + +\Section{Utilities} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Error and Warning Messages} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<signals messages: 2--4\><<< +"Illegal storage address\n", `%2 segmentation`% +"Floating-point\n", `%3 `% +"Interrupt with Cntr-C\n", `%4 `% +>>> + +\<warn and err messages\><<< +`<command line options`>, `%0`% +"Insufficient memory\n", `%1`% +`<signals messages: 2--4`> +"Can't find/open file ``%s'\n", `%5`% +>>> + + + +\<defines\><<< +#define bad_arg err_arg(0) +#define bad_mem err_i(1) +>>> + + + + + + +\<header functions\><<< +static void err_i( ARG_I(int) ); +>>> + +\<functions\><<< +`[ +static void err_i(n) int n + +;{ (IGNORED) fprintf(stderr,"--- error --- "); + (IGNORED) fprintf(stderr, "%s", warn_err_mssg[n]); + exit(EXIT_FAILURE); +} +>>> + + + +\<header functions\><<< +static void err_arg( ARG_I(int) ); +>>> + +\<functions\><<< +`[ +static void err_arg(n) int n + +;{ (IGNORED) fprintf(stderr,"--- error --- "); + (IGNORED) fprintf(stderr, "%s", warn_err_mssg[n]); + exit(EXIT_FAILURE); +} +>>> + + + + + +\<header functions\><<< +static void warn_i_str( ARG_II(int,const Q_CHAR *) ); +>>> + +\<functions\><<< +`[ +static void warn_i_str(n,str) + int n`; + const Q_CHAR *str + +;{ (IGNORED) fprintf(stderr,"--- warning --- "); + (IGNORED) fprintf(stderr,warn_err_mssg[n], str); +} +>>> + + +% +% \<vars\><<< +% static C_CHAR warning[] = "--- warning --- "; +% >>> + + + + + +\<vars\><<< +static const C_CHAR *warn_err_mssg[]={ `<warn and err messages`> "" }; +>>> + +\<resplit argv for windows\><<< +#ifdef WIN32 + /* See comments in tex4ht */ + if (argc > 2) { + int i, nargc; + char **nargv, **pnargv, **pargv; + + nargv = (char **) xmalloc (2 * argc * sizeof (char *)); + pnargv = nargv; + pargv = argv; + *pnargv++ = xstrdup (*pargv++); + *pnargv++ = xstrdup (*pargv++); + nargc = 2; + + for (i=2; i < argc; i++) { + char *p, *q, *r; + p = q = *pargv++; + while (*p == ' ' || *p == '\t') { + p++; + q++; + } + while (*p != ' ' && *p != '\t' && *p) { + p++; + if (*p == '\0') { + *pnargv++ = xstrdup(q); + nargc++; + } else if (*p == ' ' || *p == '\t') { + r = p; + while (*p == ' ' || *p == '\t') + p++; + if (*p == '-' || *p == '\0') { + *r = '\0'; + *pnargv++ = xstrdup(q); + nargc++; + q = p; + } + } + } + } + + nargv[nargc] = NULL; + argv = nargv; + argc = nargc; + } +#endif +>>> + + + +\SubSection{Signals} + +\<h-include\><<< +#include <signal.h> +>>> + +\<header functions\><<< +static void +`<CDECL`> +sig_err(ARG_I(int)); +>>> + + + + +\<functions\><<< +`[ +static void +`<CDECL`> +sig_err(s) int s +;{ + (void) signal(s,SIG_IGN); `%ignore the signal`% + switch( s ){ +#ifdef SIGSEGV + case SIGSEGV: err_i(2); +#endif + case SIGFPE : err_i(3); +#if defined(SIGINT) && !defined(WIN32) + case SIGINT : err_i(4); +#endif + } + `<DJGPP signals`> +} +>>> + + + + +Forgetting \`'_pascal' and \`'_cdecl' modifiers: Each C function may +be either \`'_pascal' or \`'_cdecl'. This modifier defines how +parameters are passed to it. Default for Smalltalk definition is +\`'_cdecl'. Default for C functions depends on compiler settings, and +you can use other types uncompatible with Smalltalk. In Windows API +16-bit functions are \`'_pascal' and 32-bit \`'_cdecl'. + + + +\<CDECL\><<< +#ifdef CDECL +CDECL +#endif +>>> + + + + +\<set signals\><<< + +#ifdef SIGSEGV + (void) signal(SIGSEGV,sig_err); +#endif + (void) signal(SIGFPE,sig_err); +#ifdef KWIN32 + `<KWIN32 signals`> +#else +#ifdef SIGINT + (void) signal(SIGINT,sig_err); `%Control-c, user interrupt`% +#endif +#endif +>>> + + + +SIGFPE is handled by the C library, SIGSEGV too but not generated by +the system, so it does nothing but is harmless + +SetConsoleCtrlHandler is need to catch Ctrl+C and Ctrl+Break under +Windows, SIGINT is not generated by the system. + +\<KWIN32 signals\><<< +SetConsoleCtrlHandler((PHANDLER_ROUTINE)sigint_handler, TRUE); +>>> + + + +SIGSEGV, SIGILL, SIGTERM not implemented in MS-DOS. They are supplied just for +compatibility. Looks like that SIGINT is defined for windows but not for dos. +\ifHtml[\HPage{more}\Verbatim + Eitan> I also wonder whether the WIN32 really needs to discard the + Eitan> following code fragment. + +signal() is supported through the standard libc, but is mostly +ineffective. An example of the kind of code needed is attached. + + +/* Interrupt handler. mt_exit() is a cleanup_and_exit function */ +#ifdef _WIN32 +BOOL sigint_handler(DWORD dwCtrlType) +{ + mt_exit(3); + return FALSE; /* return value obligatory */ +} +#else +void sigint_handler (int sig) +{ + mt_exit(3); +} +#endif + + /* Catch signals, so we clean up if the child is interrupted. + This emulates "trap 'whatever' 1 2 15". */ +#ifdef _WIN32 + SetConsoleCtrlHandler((PHANDLER_ROUTINE)sigint_handler, TRUE); +#else +# ifdef SIGINT + signal (SIGINT, sigint_handler); +# endif +# ifdef SIGHUP + signal (SIGHUP, sigint_handler); +# endif +# ifdef SIGTERM + signal (SIGTERM, sigint_handler); +# endif +#endif +\EndVerbatim\EndHPage{}]\fi + +Msvc recommends not using printf, but we ignoring this recommendation +here with the assumption that the recommendation relates to I/O +interrupts that are not considered here. + + + + +\<header functions\><<< +#ifdef KWIN32 +static BOOL sigint_handler(ARG_I(DWORD)); +#endif +>>> + +\<functions\><<< +#ifdef KWIN32 +`[ +static BOOL sigint_handler(dwCtrlType) DWORD dwCtrlType +;{ + err_i(32); + return FALSE; `% return value obligatory `% +} +#endif +>>> + + +\SubSection{System Calls} + + + +\<vars\><<< +static Q_CHAR command[255]; +static int system_return; +>>> + + +The library \`'<stdlib.h>' includes a function +\`'int system(const char *cmdstring);'. When cmdstring is NULL, +the return value is 0 iff the platform does not support system calls. + + +\<vars\><<< +static BOOL system_yes; +>>> + +\<main's init\><<< +{ C_CHAR *yes = NULL; + system_yes = (`<system exist?`>); +} +>>> + + +Solaris-? issues the command \`'-c: bad option(s)' if we check for the +presence of the system function. + + + +\<system exist?\><<< +#ifdef SYSTEM_FUNCTION_OK +0 +#else +system( yes ) != 0 +#endif +>>> + +\<execute system command\><<< +(IGNORED) call_sys(command); +>>> + + + + +\<header functions\><<< +static void call_sys(ARG_I(Q_CHAR *)); +>>> + + + + +\<functions\><<< +`[ +static void call_sys(command) Q_CHAR * command +;{ + if( *command ){ + (IGNORED) printf("System call: %s\n", command); + system_return = system_yes? (int) system(command) : -1; + (IGNORED) printf("%sSystem return: %d\n", + system_return? "--- Warning --- " : "", system_return ); + if( always_call_sys ){ system_return = 0; } + } +} +>>> + + +\<vars\><<< +static BOOL always_call_sys = FALSE; +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Strings Concat and compare} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<defines\><<< +#define eq_str(x,y) (!strcmp(x,y)) +>>> + + + +strcat should be in string.h, but c++ doesn't find it there. +We use it just for concatenating an extension of +file name. Should have the interface +\`'char *strcat( ARG_II(C_CHAR *, const Q_CHAR *) );'. + +\<header functions\><<< +static void strct( ARG_II(C_CHAR *, const C_CHAR *) ); +>>> + +\<functions\><<< +`[ +static void strct( str1, str2 ) + C_CHAR * str1`; + const C_CHAR * str2 + +;{ Q_CHAR * ch; + ch = str1 + (int) strlen((char *) str1); + (IGNORED) strcpy((char *) ch, str2 ); +} +>>> + + + +\SubSection{String into Int} + +\<header functions\><<< +static long int get_long_int( ARG_I(Q_CHAR *) ); +>>> + +\<functions\><<< +`[ +static long int get_long_int(str) + Q_CHAR *str +;{ long int i; + Q_CHAR *ch; + ch = str; i = 0; + while( (*ch>= '0') && (*ch <='9') ){ + i = 10*i + *(ch++) - '0'; + } + return i; +} +>>> + + + +\SubSection{Dynamic Memory Alloc} + + +\<defines\><<< +#define m_alloc(typ,n) (typ *) malloc_chk((int) ((n) * sizeof(typ))) +>>> + + + +\<header functions\><<< +static void* malloc_chk(ARG_I(int)); +>>> + +\<functions\><<< +`[ +static void* malloc_chk( n ) int n +;{ void* p; + if((p = (void *) malloc( (size_t) n)) == NULL ) bad_mem; + return p; +} +>>> + + + + + +\<header functions\><<< +static void* r_alloc(ARG_II(void *, size_t)); +>>> + +\<functions\><<< +`[ +static void* r_alloc( q, n ) + void *q`; + size_t n +;{ void* p; + if((p = (void *) realloc( q, (size_t) n)) == NULL) bad_mem; + return p; +} +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{myfseek} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +The ftell() and fseek() are not consistent in ms-windows. The ftell() +accounts for \Verb=<cr>= and \Verb=<lf>= in the byte stream, where +fseek() ignore the <cr> bytes. A \Verb=READ_BIN_FLAGS= instead of +\Verb=READ_TEXT_FLAGS= seems to solve the problem. + +\<CopyTo read flags\><<< +READ_BIN_FLAGS +>>> + +A possible alternative is to define a private fseek. + + + +% +% +% (IGNORED) myfseek(in_file, (long) end_loc, `<abs file addr`>); +% +% +% \<header functions\><<< +% static BOOL scan_str( ARG_III(C_CHAR *, BOOL, FILE *) ); +% >>> +% +% \<functions\><<< +% `[ +% static BOOL scan_str(str,flag,file) +% Q_CHAR *str`; +% BOOL flag`; +% FILE* file +% ;{ Q_CHAR *p; +% +% >>> +% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Pattern Recognition Functions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +When failure (false \''status') arises, the input line is consumed to +its end. +The \''_until' functions place in ''match[i]' the string found. + +\<header functions\><<< +static BOOL scan_until_end_str( ARG_IV(const C_CHAR *, int, BOOL, FILE *) ); +>>> + +\<functions\><<< +`[ +static BOOL scan_until_end_str(str,n,flag,file) + const C_CHAR *str`; + int n`; + BOOL flag`; + FILE* file +;{ Q_CHAR *p; + int i; + if( !flag ) { return flag; } + p = match[n]; i = 0; + while( TRUE ){ + if( (i+1) >= max_match[n] ){ + max_match[n] += 10; + p = match[n] = (Q_CHAR *) + r_alloc((void *) match[n], (size_t) max_match[n]); + } + p[i] = (char) (eoln_ch = getc(file)); + if( (eoln_ch == (int) '\n') || (eoln_ch == EOF) ){ break; } + i++; + } + p[i] = '\0'; + i -= (int) strlen(str); + if( i>= 0 ){ return eq_str(p+i,str); } + return FALSE; +} +>>> + + + +\<vars\><<< +static Q_CHAR* match[10]; +static int max_match[10]; +>>> + + +\<main's init\><<< +{ int i; + for( i=0; i<=9; i++){ + match[i] = (Q_CHAR *) malloc(70); + max_match[i] = 70; + } +} +>>> + + +\<header functions\><<< +static BOOL scan_until_str( ARG_IV(const C_CHAR *, int, BOOL, FILE *) ); +>>> + +\<functions\><<< +`[ +static BOOL scan_until_str(str,n,flag,file) + const C_CHAR *str`; + int n`; + BOOL flag`; + FILE* file +;{ Q_CHAR *p, ch; + int i, j; + if( !flag ) { return flag; } + p = match[n]; i = 0; + while( TRUE ){ + ch = (char) (eoln_ch = getc(file)); + if( (eoln_ch == (int) '\n') || (eoln_ch == EOF) ){ return FALSE; } + if( (i+1) >= max_match[n] ){ + max_match[n] += 10; + p = match[n] = (Q_CHAR *) + r_alloc((void *) match[n], (size_t) max_match[n]); + } + p[i++] = ch; + j = i - (int) strlen(str); + if( j>= 0 ){ + p[i] = '\0'; + if( eq_str(p+j,str) ) { return TRUE; } + } + } +} +>>> + + + + + + +\<header functions\><<< +static BOOL scan_str( ARG_III(const C_CHAR *, BOOL, FILE *) ); +>>> + +\<functions\><<< +`[ +static BOOL scan_str(str,flag,file) + const C_CHAR *str`; + BOOL flag`; + FILE* file +;{ const Q_CHAR *p; + int temp_eoln_ch; + if( !flag ) { return flag; } + p = str; + while( *p != '\0' ){ + if( *(p++) != (temp_eoln_ch = getc(file)) ) { + while( (temp_eoln_ch != (int) '\n') + && (temp_eoln_ch != EOF) ){ temp_eoln_ch = getc(file); } + eoln_ch = temp_eoln_ch; return FALSE; + } + } + return TRUE; +} +>>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +\SubSection{Shorthands and Mnemonics} + + + +\<defines\><<< +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif +#ifndef BOOL +#define BOOL int +#endif +>>> + + + +\<defines\><<< +#define eq_str(x,y) (!strcmp(x,y)) +>>> + + + +%---------------------------------------------------- + +\OutputCodE\<t4ht.c\> + +\bye + + + diff --git a/support/TeX4ht/source/tex4ht-tei.tex b/support/TeX4ht/source/tex4ht-tei.tex new file mode 100644 index 0000000000..385f8d4e36 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-tei.tex @@ -0,0 +1,1716 @@ +% $Id: tex4ht-tei.tex 768 2020-07-10 13:13:51Z michal_h21 $ +% compile 3 times: latex tex4ht-tei +% or xhlatex tex4ht-tei "html,3,sections+" +% +% Copyright 2009-2019 TeX Users Group +% Copyright 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{tei,tei-mml,tei-mmltei,tei-math} + \def\CONFIG{\jobname} + \def\MAKETITLE{\title{Source for TEI}% + \author{Eitan M. Gurari \& Sebastian Rahtz}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{File Organization} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<tei\><<< +% tei.4ht (|version), generated from |jobname.tex +% Copyright 2009-2019 TeX Users Group +% Copyright |CopyYear.2000. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + +\<configure tei tex4ht\><<< +\if:latex |<Hinclude latex|> +\else |<Hinclude plain|> \fi +>>> + +\<configure tei plain\><<< +|<Hinclude plain lib|> +|<Hinclude plain + latex lib|> +>>> + +\<configure tei latex\><<< +|<Hinclude latex lib|> +|<Hinclude plain + latex lib|> +>>> + +\<configure tei Preamble\><<< +\Configure{ext}{xml} +\edef\Preamble{\Preamble,refcaption} +>>> + +\<tei-mml\><<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% tei-mml.4ht (|version), generated from |jobname.tex +% Copyright (C) |CopyYear.2000. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + +\<tei-math\><<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% tei-math.4ht (|version), generated from |jobname.tex +% Copyright (C) |CopyYear.2000. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + +\<tei-mmltei\><<< +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% tei-mmltei.4ht (|version), generated from |jobname.tex +% Copyright (C) |CopyYear.2000. Eitan M. Gurari +|<TeX4ht copywrite|> +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Origin of Hooks} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%% +\section{tex4ht} +%%%%%%%%%%%%%%%%%% + +\<configure tei tex4ht\><<< +|<tex4ht wrapper|> +|<tex4ht paragraphs|> +|<tex4ht cross-linking|> +|<tex4ht math|> +>>> + + + +%%%%%%%%%%%%%%% +\section{latex} +%%%%%%%%%%%%%%% + +\<configure tei latex\><<< +|<special latex environments|> +|<revised TITLE for latex|> +|<latex environments|> +|<latex lists|> +|<latex tables|> +|<latex env|> +|<latex,plain accents|> +|<latex accents|> +|<latex math|> +|<obey lines|> +|<latex etc|> +>>> + + + + +%%%%%%%%%%%%%%% +\section{plain} +%%%%%%%%%%%%%%% + +\<configure tei plain\><<< +|<latex,plain accents|> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{article, report, book} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<configure tei article\><<< +|<article,report,book utilities|> +|<article,report maketitle|> +|<article sections|> +|<article,report,book lists|> +|<article,report,book figures|> +|<article tocs|> +|<article,report|> +>>> + + +\<configure tei report\><<< +|<article,report,book utilities|> +|<article,report maketitle|> +|<article,report,book lists|> +|<article,report,book figures|> +|<report,book tocs|> +|<article,report|> +>>> + + + +\<configure tei book\><<< +|<article,report,book utilities|> +|<book maketitle|> +|<article,report,book lists|> +|<article,report,book figures|> +|<report,book tocs|> +>>> + + +\<configure tei amsart\><<< +|<sectioning utilities|> +|<article,report maketitle|> +|<ams article,report maketitle|> +|<ams art,proc,book|> +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{TUG Boat/Proc} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<configure tei ltugboat\><<< +\Configure{address} + {\HCode{<byline rend="address">}} + {\HCode{</byline>}} +\Configure{netaddress} + {\HCode{<byline rend="netaddress">}} + {\HCode{</byline>}} +\Configure{PersonalURL} + {\HCode{<byline rend="PersonalURL">}} + {\HCode{</byline>}} +>>> + + +\<configure tei ltugproc\><<< +|<ltugproc maketitle|> +\Configure{thanks author date and}{}{} + {|<tag proc author|>\HCode{<docAuthor>}} + {\HCode{</docAuthor>}} + {\HCode{<docDate>}} {\HCode{</docDate>}} + {\HCode{<!--and-->}} + {} +>>> + +\<tag proc author\><<< +{\Configure{thanks author date and}{}{}{}{}{}{}{}{}% +|<disable latex fonts|>|<proc title @author|>\Tag{)author)}{\@author}}% +>>> + +\<proc title @author\><<< +\count@\authornumber +\@tempcnta0 +\let\:temp\relax +\let\@author\empty +\loop + \ifnum\count@>0 + \advance\@tempcnta by \@ne + \edef\@author{\@author \ifx\@author\empty\else, \fi + \:temp{\number\@tempcnta}}% + \advance\count@ by \m@ne +\repeat +\let\ignorespaces\empty +\let\unskip\empty +\def\:temp##1{\csname theauthor##1\endcsname}% +>>> + + +\<configure tei ltugproc\><<< +\ConfigureEnv{abstract} + {}{} {}{} +\Configure{abstract} + {\bgroup + \HCode{<epigraph rend="abstract"><p>}\IgnoreIndent\par} + {\ifvmode\IgnorePar\fi \EndP\HCode{</p></epigraph>}\egroup} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{Configurations} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Front and Back Matter} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\begin{verbatim} +<TEI.2> + <teiHeader> [ TEI Header information ] </teiHeader> + <text> + <front> [ front matter ... ] </front> + <body> [ body of text ... ] </body> + <back> [ back matter ... ] </back> + </text> +</TEI.2> +\end{verbatim} + +The front and back elements are optional. + +\<tex4ht wrapper\><<< +\Configure{HTML} + {\HCode{<TEI.2>}} + {\HCode{</TEI.2>}} +\Configure{HEAD} + {\HCode{<teiHeader type="text" status="new"><fileDesc>}} + {\HCode{</fileDesc>\Hnewline + <revisionDesc><list + type="simple"><item></item></list></revisionDesc>\Hnewline + </teiHeader>}} +\Configure{TITLE} + {\HCode{<titleStmt><title>\Hnewline}} + {} +\Configure{TITLE+} + {\HCode{

        \Hnewline +

        \FileName\space from \jobname.tex + (TeX4ht)

        \Hnewline + }} +>>> + + + +\<<< +\Configure{HTML} + {\HCode{}|} + {\HCode{}} +>>> + + +The \verb++ is for clean-tei.xsl. + + + +\<<< +\Configure{TITLE} + {\HCode{\Hnewline + \ifTag{TITLE+}{\LikeRef{TITLE+}}{}\Hnewline + \ifTag{)author)}{\LikeRef{)author)}}{}\Hnewline + \Hnewline + }} + {}% +>>> + +\<<< +{\Configure{thanks author date and}{}{}{}{}{}{}{}{}% +|\Tag{)author)}{\@author}}% +>>> + + +\<<< +{\Configure{maketitle}{}{}{}{}{}{}{}{}% +|\Tag{TITLE+}{\@title}}% +>>> + +% \let\thanks=\:gobble +% +% \def\TeX{TeX}% +%\def\gobble:font##1##2{##2}\:TITLE: + +\<<< +\let\leavevmode=\empty \let\not@math@alphabet=\:gobbleII +\def\text@command##1{##1}\let\selectfont=\empty \let\\=\empty +\no:fonts \def\check@icl ##1\check@icr{}% +\:TITLE: \a:NoSection +>>> + +\<<< +\Configure{@TITLE}{\def\LaTeX{LaTeX}\let\fontencoding=\:gobble + \let\fontfamily=\:gobble \let\fontseries=\:gobble + \let\fontshape=\:gobble \let\usefont=\:gobbleIV } +>>> + + + + + + + + +\<<< +\Configure{InsertTitle}{\let\label=\lb:l + \let\ref=\o:ref \Configure{ref}{}{}{}} +\Configure{AfterTitle}{\let\index=\:index + \let\ref=\:ref \let\label=\lb:l } +\Configure{NoSection} + {\let\sv:index=\index \let\sv:label=\label \let\sv:ref=\ref + \let\sv:newline=\newline \def\newline{ }% + \let\sv:setfontsize=\@setfontsize \let\@setfontsize=\:gobbleIII + \let\index=\@gobble \let\label=\@gobble \let\ref=\@gobble + } + {\let\index=\sv:index \let\label=\sv:label \let\ref=\sv:ref + \let\newline=\sv:newline \let\@setfontsize=\sv:setfontsize + } +>>> + + + +\<<< +\Configure{maketitle} + {|\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{thanks author date and}{}{} + {|\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} + {} +>>> + +\<<< +\Configure{maketitle} + {|\HCode{}} + {\HCode{}} + {\HCode{}} + {\HCode{}} +\Configure{thanks author date and}{}{} + {|\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} + {} +>>> + + +\<<< +\Configure{BODY} + {\ifTag{TITLE+}% + {\HCode{}\PushStack\text:stack{front}}% + {\HCode{}\PushStack\text:stack{body}\ShowPar + \csname par\endcsname}% + } + {\IgnorePar\EndP \PopStack\text:stack\:temp \def\:tempa{front}% + \HCode{\ifx\:temp\:tempa

        \fi
        }} +>>> + +\<<< +\Configure{authors} + {\HCode{}} {\HCode{}} +\Configure{setdate} + {\HCode{}} {\HCode{}} +\Configure{thanks author date and}{}{} + {|\HCode{}} + {\HCode{}} + {\HCode{}} {\HCode{}} + {\HCode{}} + {} +>>> + + + + +\<<< +\Configure{maketitle} + {|\HCode{}% + \bgroup \Configure{centerline} + {\HCode{}} + {\HCode{}} + } + {\egroup \HCode{}} + {\HCode{}} + {\HCode{}} +>>> + +%%%%%%%%%%%%%%%%%% +\subsection{DTD's} +%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\Configure{PROLOG}{VERSION,DOCTYPE,*XML-STYLESHEET} +\:CheckOption{no-DOCTYPE} \if:Option + \Configure{PROLOG}{VERSION,*XML-STYLESHEET} +\fi +>>> + + + +\<<< +\Configure{VERSION} + {\HCode{\Hnewline}} +\Configure{VERSION} + {\HCode{\Hnewline}} +\Configure{DOCTYPE} + {\HCode{]>}} +>>> + +\<<< +\Configure{VERSION} + {\HCode{\Hnewline}} +\Configure{VERSION} + {\HCode{\Hnewline}} +\Configure{DOCTYPE} + {\HCode{]>\Hnewline}} +>>> + +\<<< +\Configure{VERSION} + {\HCode{\Hnewline}} +\Configure{VERSION} + {\HCode{\Hnewline}} +\Configure{DOCTYPE} + {\HCode{ >\Hnewline}} +>>> + + +\<<< +|% +}\writesixteen{--- file \jobname.ent ---}\HCode{% +|% +>>> + +\<<< +|% +|% +|% +>>> + + +\<<< +SYSTEM "teimml.dtd" [\Hnewline} +|\HCode{% +] +>>> + +\<<< +\Hnewline +>>> + +% \Hnewline + +\<<< +"\Hnewline + "teixlite.dtd"> +\Hnewline \%TEI.dtd; \Hnewline +>>> + +\<<< +"\Hnewline\space\space + "mathml2.dtd"> + \Hnewline \%mathml.dtd;\Hnewline +>>> + + +\<<< +\HCode{}% +>>> + +\<<< + + \Hnewline \%ENT-\jobname.ent; \Hnewline +>>> + + + +\<<< +\bgroup + \def\toctei##1##2##3{\HCode{##2\Hnewline}}% + \no:catcodes{34}{36}{12}\no:catcodes{94}{95}{12}\catcode`\~=12 + \Configure{tableofcontents} {} {} {}{}{}% + \:TableOfContents[tei]% +\egroup +>>> + + + +Instead of \verb=SYSTEM= earlier we had +\verb=PUBLIC\Hnewline "-//TEI U5-1995//DTD TEI Lite 1.0 Extensions//|"\Hnewline=. + + +\<<< +\let\:NOTATIONs=\empty +\def\Decl#1{\edef\:NOTATIONs{\:NOTATIONs#1\Hnewline}} +>>> + + +\<<< +\def\Decl#1{\edef\:temp{\the\:tokwrite{\string\doTocEntry + \string\toc tei{}{#1}{}}}\:temp +} +>>> + +\
        <<< + \def\Decl##1{{\everypar{}% + \ht:special{t4ht>\jobname.ent}\hbox{\HCode{##1\Hnewline}}% + \ht:special{t4ht>\FileName}}} + \Decl{\:NOTATIONs}\let\:NOTATIONs=\:UnDef +>>> + + +\begin{verbatim} +> oh yes. I copied the entity declaration into a comment after , +> because xsl has no access to the document subset... + +Consider this: + + + +" +"teixlite.dtd"> +%TEI.dtd; + +%ENT-1-3.ent; + " + "mathml2.dtd"> +%mathml.dtd; +]> + + +the entities are read in from an external file via the %ENT-1-3.ent; +unfortunately such parameter entities do not have to be expanded by +XML processors, so the file can not get read. xmltex is an example of +a system which fails to do so... + +we need to textually include the entity file, not reference it. +\end{verbatim} + + +\<<< +\HAssign\ent:cnt = 0 +\Configure{Preamble} + {} + {{\ifdim \lastskip>\z@ \unskip\fi + \IgnorePar\parindent\z@ \leavevmode}% + |
        % + } +| +>>> + + +\<<< +\Configure{Preamble} + {} + {{\ifdim \lastskip>\z@ \unskip\fi + \IgnorePar\parindent\z@ \leavevmode}% + } +| +>>> + +%%%%%%%%%%%%%%%%%%%% +\section{Css} +%%%%%%%%%%%%%%%%%%%% + +The following code has been copied from tex4ht-docbook.tex. It provides basic +support for writing to the CSS file produced by tex4ht. + +\<<< +| +\Configure{Preamble} + {|} {} +\Configure{CssFile}{\jobname.css} + {/* \aa:CssFile\space from \jobname.tex (TeX4ht) */} +\Configure{Needs}{l. + \the\inputlineno\space--- needs --- #1 ---} +\Configure{Needs-}{l. + \the\inputlineno\space--- needs --- #1 ---} +>>> + +\<<< +{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@ +\leavevmode}% +\immediate\write-1{--- file \aa:CssFile\space ---}% +\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}% +\ht:special{t4ht<\aa:CssFile}% +>>> + + +\<<< +\ScriptCommand{\CssFile}{% + \immediate\write-1{--- file \aa:CssFile\space ---}% + \def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}% + \def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}% + \def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special + {t4ht>\aa:CssFile}}% + \ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}\bb:CssFile + \hfil\break\NoFonts}{\EndNoFonts + \ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}} +\let\Css:File|=\CssFile +\def\CssFile{\futurelet\:temp\Css:Fl} +\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl + \else \expand:after{\Css:File \space}\fi} +\def\Css:fl[#1]{\Css:File\space \css:files #1,,|} +\def\css:files#1,#2|{\def\:temp{#1}\ifx \:temp\empty + \else \def\:temp{\in:css#1.|\css:files#2,,|}\fi + \:temp } +\def\in:css#1.#2|{\def\:temp{#2}\ifx \:temp\empty \input #1.css + \else \inc:ss#1.#2|\fi} +\def\inc:ss#1.|{\input #1 } +\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}} +>>> + + + +\<<< +\def\Css#1{{\def\:temp{\Configure{Needs}}% + \expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}} + +\expandafter\ifx \csname aa:Css\endcsname\relax + \Configure{Css}{Css: ##1} +\fi +>>> + +%%%%%%%%%%%%%%%%%% +\section{HTF} +%%%%%%%%%%%%%%%%%% + +Basic support for HTF fonts. I am not sure if this method is the best, +there seems to be no direct equivalent to HTML class and corresponding CSS. + +\<<< +\Configure{htf}{0}{+}{}{} +\Configure{htf}{4}{+}{}{}{}{}{}{}{} +\Configure{htf}{6}{+}{}{}{}{}{}{}{} +\Configure{htf}{8}{+}{}{}{}{}{}{}{} +\Configure{htf}{10}{+}{}{}{}{}{}{}{} +\Configure{htf}{12}{+}{}{}{}{}{}{}{} +\Configure{htf}{14}{+}{}{}{}{}{}{}{} +\Configure{htf}{16}{+}{}{}{}{}{}{}{} +\Configure{htf}{18}{+}{}{}{}{}{}{}{} +\Configure{htf}{20}{+}{}{}{}{}{}{}{} +\Configure{htf}{22}{+}{}{}{}{}{}{}{} +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Sections} +%%%%%%%%%%%%%%%%%% + +\
        <<< +\Configure{part} + {\OpenDiv{part}} {\CloseDiv{part}} + {\HCode{}} {\CloseHead} +\Configure{section} + {\OpenDiv{section}} {\CloseDiv{section}} + {\HCode{}} {\CloseHead} +\Configure{subsection} + {\OpenDiv{subsection}} {\CloseDiv{subsection}} + {\HCode{}} {\CloseHead} +\Configure{subsubsection} + {\OpenDiv{subsubsection}} {\CloseDiv{subsubsection}} + {\HCode{}} {\CloseHead} +\Configure{paragraph} + {\OpenDiv{paragraph}} {\CloseDiv{paragraph}} + {\HCode{}} {\CloseHead} +\Configure{subparagraph} + {\OpenDiv{subparagraph}} {\CloseDiv{subparagraph}} + {\HCode{}} {\CloseHead} +>>> + + + + +\
        <<< +\Configure{likepart} + {\OpenDiv{likepart}} {\CloseDiv{likepart}} + {\HCode{}} {\CloseHead} +\Configure{likesection} + {\OpenDiv{likesection}} {\CloseDiv{likesection}} + {\HCode{}} {\CloseHead} +\Configure{likesubsection} + {\OpenDiv{likesubsection}} {\CloseDiv{likesubsection}} + {\HCode{}} {\CloseHead} +\Configure{likesubsubsection} + {\OpenDiv{likesubsubsection}} {\CloseDiv{likesubsubsection}} + {\HCode{}} {\CloseHead} +\Configure{likeparagraph} + {\OpenDiv{likeparagraph}} {\CloseDiv{likeparagraph}} + {\HCode{}} {\CloseHead} +\Configure{likesubparagraph} + {\OpenDiv{likesubparagraph}} {\CloseDiv{likesubparagraph}} + {\HCode{}} {\CloseHead} +>>> + + + +\<<< +|
        +>>> + + +%\let\contentsname|=\empty + +\
        <<< +\Configure{tableofcontents} + {\ifvmode\IgnorePar\fi \EndP + \HCode{}} + {} {}{}{} +>>> + + + +\<<< +|
        +\ConfigureToc{appendix}{}{}{}{} +\ConfigureToc{chapter}{}{}{}{} +\ConfigureToc{likechapter}{}{}{}{} +>>> + +\
        <<< +\ConfigureToc{likeparagraph}{}{}{}{} +\ConfigureToc{likepart}{}{}{}{} +\ConfigureToc{likesection}{}{}{}{} +\ConfigureToc{likesubparagraph}{}{}{}{} +\ConfigureToc{likesubsection}{}{}{}{} +\ConfigureToc{likesubsubsection}{}{}{}{} +\ConfigureToc{paragraph}{}{}{}{} +\ConfigureToc{part}{}{}{}{} +\ConfigureToc{section}{}{}{}{} +\ConfigureToc{subparagraph}{}{}{}{} +\ConfigureToc{subsection}{}{}{}{} +\ConfigureToc{subsubsection}{}{}{}{} +>>> + + + + + + + +\<<< +\Configure{TocEntry}{\Link{#2}{#3}#4\EndLink} +>>> + + + +\
        <<< +\Configure{tableofcontents} + {\HCode{}} + {\HCode{}} + {}{}{} +>>> + + +\<<< +|
        +\ConfigureToc{appendix} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{chapter} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{likechapter} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +>>> + +\
        <<< +\ConfigureToc{likeparagraph} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +\ConfigureToc{likepart} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +\ConfigureToc{likesection} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +\ConfigureToc{likesubparagraph} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +\ConfigureToc{likesubsection} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +\ConfigureToc{likesubsubsection} + {} {\HCode{\Hnewline}} + {} {\HCode{}} +\ConfigureToc{paragraph} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{part} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{section} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{subparagraph} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{subsection} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +\ConfigureToc{subsubsection} + {\HCode{\Hnewline}} + {\ }{} {\HCode{}} +>>> + + + + + + + + + + + +\subsection{Mapping Utilities} + + +\begin{verbatim} + \section{...} + + + ............................. + + \subsection{...} + + ............................. + + ............................. + + \section{...} + + ............................. + +\end{verbatim} + + + + + + + + + + +\<<< +| +>>> + +\<<< +\HAssign\DivLevel=0 +\HAssign\DivCount=0 +\def\OpenDiv#1{% + \IgnorePar\EndP \PopStack\text:stack\:temp \def\:tempa{body}% + \ifx \:temp\:tempa \else \HCode{}\fi + \PushStack\text:stack{body}% + |% + \gHAdvance\DivLevel by 1 + \HCode{}\gHAdvance\P:level by 1 } +\def\CloseDiv#1{% + \IgnorePar\EndP \gHAdvance\P:level by -1 \HCode{
        }% + \gHAdvance\DivLevel by -1 +} +\def\CloseHead{\HCode{}% + |\ShowPar\par} +>>> + + +\<<< +\ifnum \DivLevel>0 \ifnum \DivLevel=0\LikeRef{dv)\DivCount}\relax + \gHAdvance\P:level by 1 + \HCode{}% +\fi\fi +>>> + +\<<< +\gHAdvance\DivCount by 1 +\Tag{dv)\DivCount}{\DivLevel}% +\HAdvance\DivLevel by 1 +\HAdvance\DivCount by 1 +\ifnum \DivLevel=0\LikeRef{dv)\DivCount}\relax + \HCode{

        }% + \gHAdvance\P:level by 1 +\fi +\HAdvance\DivLevel by -1 +\HAdvance\DivCount by -1 +>>> + + +The \verb+

        + is to ensure at least one paragaph in the preamble, e.g., +between the section heads of +\begin{verbatim} +................. +\section{Distributions}% +\subsection{Definitions} +............... +\end{verbatim} + + +\<<< +\gHAssign\P:level=0 +>>> + + + + + + + + + + + + + +\subsection{End Points} + +\
        <<< +\Configure{endsection} + {likesection,chapter,likechapter,appendix,part,likepart} +\Configure{endlikesection} + {section,chapter,likechapter,appendix,part,likepart} +\Configure{endsubsection} + {likesubsection,section,likesection,chapter,% + likechapter,appendix,part,likpart} +\Configure{endlikesubsection} + {subsection,section,likesection,chapter,% + likechapter,appendix,part,likpart} +\Configure{endsubsubsection} + {likesubsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikesubsubsection} + {subsubsection,subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endparagraph} + {likeparagraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikeparagraph} + {paragraph,subsubsection,likesubsubsection,subsection,% + likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endsubparagraph} + {likesubparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\Configure{endlikesubparagraph} + {subparagraph,likeparagraph,subsubsection,likesubsubsection,% + subsection,likesubsection,section,% + likesection,chapter,likechapter,appendix,part,likpart} +\ifx \part\:UnDef \else + \Configure{endpart}{likepart} + \Configure{endlikepart}{endpart} +\fi +>>> + + + + + +%%%%%%%%%%%%%%% +\section{Lists} +%%%%%%%%%%%%%%% + + +\<<< +\ConfigureList{trivlist}% + {\EndP\HCode{}\let\end:itm=\empty} + {\EndP\HCode{}\ShowPar} + {\end:itm\def\end:itm{\EndP\Tg}\HCode{}} +\ConfigureList{list}% + {\EndP\HCode{}\let\end:itm=\empty} + {\EndP\HCode{}\ShowPar} + {\end:itm\def\end:itm{\EndP\Tg}\HCode{}} +\ConfigureList{itemize}% + {\EndP\HCode{}\let\end:itm=\empty} + {\EndP\HCode{}\ShowPar} + {\end:itm\def\end:itm{\EndP\Tg}\DeleteMark} + {\HCode{}} +\ConfigureList{enumerate}% + {\EndP\HCode{}\let\end:itm=\empty} + {\EndP\HCode{}\ShowPar} + {\end:itm\def\end:itm{\EndP\Tg}\DeleteMark} + {\HCode{}\AnchorLabel} +>>> + + +\<<< +\ConfigureList{thebibliography}% + {\IgnorePar\EndP + \HCode{
        }\let\en:bib=\empty} + {\en:bib\HCode{
        }} + {\en:bib\def\en:bib{\HCode{}}% + \HCode{}} +>>> + + +\<<< +\Configure{HtmlPar} + {\HCode{}} + {\HCode{}} + {} {} +>>> + + + + + +\<<< +\Configure{cite}{}{}{\Link}{\EndLink} +\Configure{bibitem}{\Link}{\EndLink} +>>> + + + +%%%%%%%%%%%%%%%% +\section{Tables} +%%%%%%%%%%%%%%%% + + +\<<< +\Configure{tabular} + {||% + \HCode{ >}} + {\HCode{}% + |} + {|\HCode{}} + {\HCode{}} + {|% + \HCode{}} + {\HCode{}} +\HAssign\tabularN=0 +>>> + +\<<< +\gHAdvance\tabularN by 1 \PushStack\tabular:N\tabularN +\let\prevR:max=\R:max \let\prevC:max=\C:max \gHAssign\C:max=0 +>>> + +\<<< +\PopStack\tabular:N\i:var |% +\Tag{rc-\i:var}{rend="|" rows="\R:max" cols="\C:max"} +\global\let\R:max=\prevR:max \global\let\C:max=\prevC:max +>>> + + + +\<<< +\expandafter\tmp:toks\expandafter{\Clr}% +>>> + +\<<< +\the\tmp:toks +>>> + + + + + +\<<< +\HAssign\i:var=\HCol \HAdvance\i:var by \HMultispan +\HAdvance\i:var by -1 \ifnum \C:max<\i:var \gHAssign\C:max=\i:var \fi +>>> + +\<<< +\gHAssign\R:max=\HRow +>>> + +\<<< +\expandafter\ifx \csname cw:rc-\tabularN\endcsname \relax + \tmp:toks{ }% +\else + \expandafter\expandafter\expandafter\tmp:toks + \expandafter\expandafter\expandafter{\csname + cw:rc-\tabularN\endcsname}% +\fi +>>> + +\<<< +\the\tmp:toks +>>> + +\<<< +\Configure{hline}{} +\Configure{//[]}{} +>>> + + +\<<< +\Configure{verb}{}{} +\Configure{obeylines} + {\ifvmode \EndP + \HCode{
        }% + \gdef\ob:ln{div}% + \else \HCode{}% + \gdef\ob:ln{emph}% + \fi + } + {\ht:special{t4ht=}\ShowPar} {\hbox{\HCode{
        }}} +>>> + + +\<<< +\ifx \deferred@thm@head\:UnDef\else + \Configure{newtheorem} + {\par\HCode{}\IgnorePar\par} + {\HCode{}} + {} +\fi +>>> + + + + +%%%%%%%%%%%%%%%%% +\section{Figures} +%%%%%%%%%%%%%%%%% + +\<<< +\ConfigureEnv{figure} + {\ifvmode \IgnorePar\fi\EndP \HCode{}} + {\ifvmode \IgnorePar\fi\EndP \HCode{}} + {}{} +\Configure{caption} + {}{} + {\HCode{}} {\HCode{}} +>>> + + +%%%%%%%%%%%%%%%%% +\section{Accents} +%%%%%%%%%%%%%%%%% + + +\<<< +\Configure{centerline} + {\ifvmode \IgnorePar \fi \EndP\HCode{

        }} + {\EndP\HCode{

        }\ShowPar} +\Configure{leftline} + {\ifvmode \IgnorePar \fi \EndP\HCode{

        }} + {\EndP\HCode{

        }\ShowPar} +\Configure{rightline} + {\ifvmode \IgnorePar \fi \EndP\HCode{

        }} + {\EndP\HCode{

        }\ShowPar} +>>> + + +%%%%%%%%%%%%%%%%% +\section{Accents} +%%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{new-accents} \if:Option + | +\else + | +\fi +\let\^^_=\v +>>> + + +\<<< +\let\@acci=\' \let\@accii=\` \let\@acciii=\= +>>> + +\<<< +\:CheckOption{accent-} \if:Option + \Configure{HAccent}\acute{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\check{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\ddot{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\grave{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture} +\fi +\:CheckOption{mathaccent-} \if:Option + \Configure{HAccent}\"{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\'{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\.{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\={}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\H{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\^{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\`{AEIOUaeiou{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\b{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\d{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\t{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\u{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\v{}{\Picture+{}}{\EndPicture} + \Configure{HAccent}\~{AOaoNn{}}{\Picture+{}}{\EndPicture} +\fi +>>> + + +\<<< +\Configure{accent}{*} + {} + {} +\Configure{mathaccent}{*} + {} + {} +\Configure{accented}{*} + {} + {} +\Configure{accenting}{*} + {} + {} +>>> + + + + +\<<< +\Configure{accent}\`\grave{A{A}E{E}I{I}O{O}U{U}% + a{a}e{e}i{i}\i{i}o{o}u{u}{}{}} + {\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}} +\Configure{accent}\'\acute{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{}} + {\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}} +\Configure{accent}\^\hat{A{A}E{E}I{I}O{O}U{U}a{a}% + e{e}i{i}\i{i}o{o}u{u}{}{}} + {\a:accents{circ}{#1}} {\b:accents{hat}{#1}{#2}} +\Configure{accent}\~\tilde{A{A}O{O}a{a}o{o}N{N}n{n}{}{}} + {\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\"\ddot{A{A}E{E}I{I}O{O}U{U}Y% + {Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{34}} + {\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + + + + +The following are also placed under accents configuration. + +\<<< +\Configure{accent}\c\c{C{C}c{c}{}{}} + {\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}} +\Configure{accent}\t\t{{}{}} + {\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}} +\Configure{accent}\H\H{{}{}} {}{\b:accents{Huml}{#1}{#2}} +>>> + +The following originally have been defined to be parameter-less. + + + +\<<< +\Configure{accent}\.\dot{{}{}} {}{\b:accents{dot}{#1}{#2}} +\Configure{accent}\u\breve{{}{}}{}{\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}}{}{\b:accents{vec}{#1}{#2}} +\Configure{accent}\v\check{{}{}}{}{\b:accents{check}{#1}{#2}} +\Configure{accent}\=\bar{{}{}} {}{\b:accents{bar}{#1}{#2}} +>>> + + +% \= macron + +\<<< +\Configure{accent}\widetilde\widetilde{{}{}} + {}{\b:accents{widetilde}{#1}{#2}} +\Configure{accent}\widehat\widehat{{}{}} + {}{\b:accents{widehat}{#1}{#2}} +>>> + + +\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode. +\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode. + + + + +\<<< +| +>>> + +\<<< +| +>>> + +\<<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}#2\ht:special{t4ht@]}}} + {\ifmmode \expandafter\mathord\fi + {\HCode{}#3\HCode{}}} +\fi +>>> + + + +\<<< +\HCode{&\#x\expandafter \ifx\csname U#2#1\endcsname\relax + #2#1\else \csname U#2#1\endcsname\fi;}% +>>> + + +%\HCode{#1;}% + +%%%%%%%%%%%%%%%%%%%% +\section{Math} +%%%%%%%%%%%%%%%%%%%% + + + + +\<<< +\Configure{equation} + {} {\HCode{}} {\HCode{}} +\ConfigureEnv{equation} + {\IgnorePar\EndP + \HCode{

        }} + {\HCode{

        }\ShowPar\par} + {}{} +>>> + +\<<< +\Configure{$$} + {\Configure{@math}{display="block"}\DviMath} + {\EndDviMath{\csname HCondtrue\endcsname\noindent}}{} +\Configure{DviMath} + {\mathmltrue \NoFonts\IgnoreRule\HCode{}\a:math + |\IgnorePar} + {\HCode{}\EndIgnoreRule\EndNoFonts + |\mathmlfalse} +\def\:rend#1=#2=#3//{\if !#1!\else rend=#2\fi} +\def\m:rend#1=#2=#3//{\if !#1!\else display=#2\fi} +>>> + +\<<< +\sv:ignore +>>> + +\<<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + + +\<<< +\ConfigureEnv{gather} + {\ShowPar\par} {\ShowPar\par} + {}{} +>>> + + + + + + +\<<< +\ConfigureEnv{align*} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi} {}{} +\ConfigureEnv{alignat*} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{alignat} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{align} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{eqxample} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{flalign*} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{flalign} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{gather} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{gather*} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{gathered} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{matrix} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{xalignat*} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{xalignat} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +\ConfigureEnv{xxalignat} + {\ifmmode\else \IgnorePar\EndP \HCode{}\fi} + {\ifmmode\else \HCode{}\par\ShowPar\fi}{}{} +>>> + + + + + +%%%%%%%%%%%%%%%%%%%% +\section{Loose Ends} +%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\ConfigureEnv{verbatim} + {\ifinner\else \vfill\break\fi + \IgnorePar\EndP\HCode{

        }\EndNoFonts} + {\NoFonts \ht:special{t4ht=

        }\ShowPar\par} + {} {} +\ConfigureEnv{verbatim*} + {\ifinner\else \vfill\break\fi + \IgnorePar\EndP\HCode{

        }\EndNoFonts} + {\NoFonts \HCode{

        }\ShowPar\par} + {} {} +\Configure{verbatim}{\:nbsp}{\a:sp} +>>> + + +\<<< +\ConfigureEnv{flushleft} + {\IgnorePar\EndP\HCode{

        }% + \gHAdvance\P:level by 1 } + {\IgnorePar\EndP\gHAdvance\P:level by -1 \HCode{
        }} + {}{} +\ConfigureEnv{flushright} + {\IgnorePar\EndP\HCode{
        }% + \gHAdvance\P:level by 1 } + {\IgnorePar\EndP\gHAdvance\P:level by -1 \HCode{
        }} + {}{} +\ConfigureList{flushleft} + {}{} + {} {\par\ShowPar} +\ConfigureList{flushright} + {}{} + {} {\par\ShowPar} +>>> + + +\<<< +\ConfigureEnv{abstract} + {\IgnorePar\EndP\HCode{
        }% + \gHAdvance\P:level by 1 } + {\IgnorePar\EndP\gHAdvance\P:level by -1 \HCode{
        }} + {\HCode{}} + {\HCode{}} +>>> + + +\<<< +\newif\ifHCond +\Configure{HtmlPar} + {\EndP\HCode{% + \ifnum\P:level=0
        \fi +

        }\gHAdvance\P:level by 1 } + {\EndP\HCode{% + \ifnum\P:level=0

        \fi +

        }\gHAdvance\P:level by 1 } + {\gHAdvance\P:level by -1 \HCode{

        \ifnum\P:level=0
        \fi }} + {\gHAdvance\P:level by -1 \HCode{

        \ifnum\P:level=0
        \fi }} +>>> + + + + + + +\<<< +\Configure{newline}{\HCode{}} +>>> + +\<<< +\Configure{newline} + {\ifmtext \HCode{}% + \else \HCode{}\fi} +>>> + + + +\<<< +\ConfigureEnv{minipage} + {\IgnorePar\EndP\HCode{}} + {\IgnorePar\EndP\HCode{}\ShowPar} + {}{} +\Configure{newtheorem} + {\IgnorePar\EndP\HCode{}} + {\HCode{}\ShowPar\par} + {\IgnorePar\EndP\HCode{}\ShowPar\par} +>>> + + + + +\<<< +\ifx \deferred@thm@head\:UnDef\else + | +\fi +>>> + +\<<< +| +>>> + +\<<< +\Configure{proof} + {\IgnorePar\EndP\HCode{}} + {\HCode{}\ShowPar\par} + {\IgnorePar\EndP\HCode{}\ShowPar\par} +>>> + + + + +\<<< +\Configure{Link}{ref}{ target=}{ id=}{\empty} +>>> + +\<<< +\Decl{} +\Configure{url}{% + \urlLink[xr-ent\ent:cnt]{}{}#1\EndurlLink + \Decl{}% + \gHAdvance\ent:cnt by 1 +} +\LinkCommand\urlLink{xref,doc} +>>> + + xr-ent has to be a notation-type entity to fit with TEI's demand + of `\verb+doc ENTITY #IMPLIED+'. For instance, + +\begin{verbatim} + + +\end{verbatim} + +% \Decl{} +% \Decl{} + + +\<<< +\def\:tempc#1{% + \Configure{graphics*} + {#1} + {\HCode{
        }% + \Decl{}% + \gHAdvance\ent:cnt by 1 + }} +| +>>> + + +\<<< +\def\:tempc#1{% + \Decl{} + \Configure{graphics*} + {#1} + {\HCode{
        % + }% + \Decl{}% + \gHAdvance\ent:cnt by 1 + }} +| +>>> + +\<<< +\:tempc{eps} +\:tempc{jpg} +\:tempc{pdf} +\:tempc{png} +\:tempc{tif} +\:tempc{gif} +>>> + + +\<<< +\Configure{mathit}{\ifmathml\else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} +\Configure{mathbf}{\ifmathml\else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} +\Configure{mathtt}{\ifmathml\else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} +\Configure{mathsf}{\ifmathml\else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} +\Configure{mathrm}{\ifmathml\else \HCode{}\fi} + {\ifmathml\else \HCode{}\fi} +>>> + +\<<< +\Configure{textbf}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{textit}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{textrm}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{textup}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{textsc}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{textsf}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{textsl}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{texttt}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +\Configure{emph}{\ifmathml\else + |\HCode{}\fi} + {\ifmathml\else + \HCode{}|\fi} +>>> + + + +\<<< +\leavevmode\SaveEndP\bgroup +\Configure{HtmlPar} + {\HCode{}} + {\HCode{}} + {}{}% +>>> + +\<<< +\egroup \RecallEndP +>>> + +\endinput diff --git a/support/TeX4ht/source/tex4ht-unicode.tex b/support/TeX4ht/source/tex4ht-unicode.tex new file mode 100644 index 0000000000..4f87c827e0 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-unicode.tex @@ -0,0 +1,1258 @@ +% $Id: tex4ht-unicode.tex 912 2021-04-25 12:43:36Z michal_h21 $ +% latex tex4ht-unicode or xhlatex tex4ht-unicode "html,3,sections+" +% +% Copyright 2009-2021 TeX Users Group +% Copyright 1998-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\ifx \HTML\UnDef + \def\HTML{unicode} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{common-code.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\Needs{"ls -l tex4ht-*.tex > ls-links.log"} +\openin15=ls-links.log +\ifeof15 \else \closein15 +\bgroup + \catcode`\-=13 + \def-#1tex4ht-{\bgroup \catcode`\-=12 + \def-##1.tex{\egroup + [\Link[tex4ht\string-##1.html]{}{}##1\EndLink]} + -} + \input ls\string-links.log +\egroup +\fi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +\Link[http://www.hclrss.demon.co.uk/unicode/]{}{}Alan Wood's Unicode Resources\EndLink + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\chapter{General} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\Link[http://lists.w3.org/Archives/Public/www-math/]{}{}mailing list\EndLink + +\section{Unicode Values} + +See also +\Link[http://www.unicode.org/Public/UNIDATA/NamesList.txt]{}{}unicode alias names\EndLink + +\<<< +\def\UAacute{00C1} +\def\UCacute{0106} +\def\UDacute{010E} +\def\UEacute{00C9} +\def\UGacute{01F4} +\def\UIacute{00CD} +\def\ULacute{0139} +\def\UNacute{0147} +\def\UOacute{00D3} +\def\URacute{0154} +\def\USacute{015A} +\def\UUacute{00DA} +\def\UYacute{00DD} +\def\UZacute{0179} +\def\Uacute{00B4} +\def\Uaacute{00E1} +\def\Ucacute{0107} +\def\Udacute{010F} +\def\Ueacute{00E9} +\def\Ugacute{01F5} +\def\Uiacute{00ED} +\def\Ulacute{013A} +\def\Unacute{0144} +\def\Uoacute{00F3} +\def\Uracute{0155} +\def\Usacute{015B} +\def\Uuacute{00FA} +\def\Uyacute{00FD} +\def\Uzacute{017A} +\def\Ujacute{FFFD} +\def\UJacute{FFDD} + + +\def\UAbar{0100} +\def\UCbar{FFFD} +\def\UDbar{FFFD} +\def\UEbar{0112} +\def\UIbar{012A} +\def\ULbar{FFFD} +\def\UNbar{FFFD} +\def\UObar{014C} +\def\URbar{FFFD} +\def\USbar{FFFD} +\def\UTbar{FFFD} +\def\UUbar{016A} +\def\UYbar{FFFD} +\def\UZbar{FFFD} +\def\Uabar{0101} +\def\Ubar{00A7} +\def\Ucbar{FFFD} +\def\Uebar{0113} +\def\Uibar{012B} +\def\Unbar{FFFD} +\def\Uobar{014D} +\def\Urbar{FFFD} +\def\Uubar{016B} +\def\Uybar{FFFD} +\def\Ubreve{02D8} + +\def\UCcheck{010C} +\def\UEcheck{011A} +\def\URcheck{0158} +\def\UScheck{0160} +\def\UTcheck{0164} +\def\UZcheck{017D} +\def\Uccheck{010D} +\def\Ucheck{02C7} +\def\Uecheck{011B} +\def\Uncheck{0148} +\def\Uocheck{00F4} +\def\Uscheck{0161} +\def\Uucheck{0159} +\def\Uzcheck{017E} + +\def\UAddot{00C4} +\def\UOddot{00D6} +\def\UUddot{00DC} +\def\Uaddot{00E4} +\def\Uddot{00A8} +\def\Uoddot{00F6} +\def\Uuddot{00FC} + +\def\UUodot{016E} + +\def\UAgrave{00C0} +\def\Uagrave{00E0} +\def\Ugrave{0060} + +\def\UOhat{00D4} + +\def\Utilde{0098} + +\def\UAuml{00C4} +\def\UEuml{00CB} +\def\UIuml{00CF} +\def\UOuml{00D6} +\def\UUuml{00DC} +\def\UYuml{0178} +\def\Uauml{00E4} +\def\Ueuml{00EB} +\def\Uiuml{00EF} +\def\Uouml{00F6} +\def\Uuml{00A8} +\def\Uuuml{00FC} +\def\Uyuml{00FF} +>>> + + +\section{Odd Ends} + +\<<< +xmlns="http://www.w3.org/1999/xhtml" +>>> + + + + + +\subsection{TeX Engine} + +The \verb'\trap:base' is to catch empty bases of exponents like, e.g., +in \verb'$a^{^b}$'. + + + + + + + +\<<< +\def\MathRow#1{% + \Configure{\expandafter\:gobble\string#1*}{*}% + {<|.mrow\Hnewline + class="\expandafter\:gobble\string#1">}{}% + {\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}% +>>> + + +\<<< +\sv:ignore +>>> + +\<<< +\edef\sv:ignore{\if:nopar + \noexpand\IgnorePar\else \noexpand\ShowPar\fi}% +>>> + + +The \verb'\MathRow' requests a \verb'<|.mrow\Hnewline>...', instead of the contributions +of \verb'\mathop', \verb'\mathrel',...., for the next parameter. + + + + + +\subsection{latex.ltx} + + + + + + + + + + + + + +\section{Unicode} + + +\<<< +% unicode.4ht (|version), generated from |jobname.tex +% Copyright 2009-2021 TeX Users Group +% Copyright |CopyYear.1998. Eitan M. Gurari +| +>>> + + +\<<< +| +| +| +| +| +\def\:nbsp{\ifx\EndPicture\:UnDef\protect\leavevmode\ht:special{t4ht@+\string&{35}x00A0{59}}\a:HChar\else\leavevmode\nobreak\ \fi} +>>> + +\<<< +| +| +| +| +| +>>> + +\<<< +\ifx \mathdisplay@@pop\:UnDef + \ifx \emdf@La\:UnDef + | + \else + | + \fi +\else + | +\fi +\:CheckOption{new-accents} \if:Option \else + | +\fi +>>> + +\<<< +| +>>> + + + +\<<< +\def\:tempc{\arrowfill@ \relax \relax \rightarrow} +\HLet\rightarrowfill@\:tempc +\def\:tempc{\arrowfill@ \leftarrow \relax \relax} +\HLet\leftarrowfill@\:tempc +\def\:tempc{\arrowfill@ \relax \relax {\mathchar"3224}} +\HLet\leftrightarrowfill@\:tempc +>>> + +\<<< +\HLet\:tempc\rightarrowfill@ +\pend:defI\:tempc{\bgroup \let\relbar=\relax} +\append:defI\:tempc{\egroup} +\HLet\rightarrowfill@\:tempc +\let\:tempc\leftarrowfill@ +\pend:defI\:tempc{\bgroup \let\relbar=\relax} +\append:defI\:tempc{\egroup} +\HLet\leftarrowfill@\:tempc +\def\:tempc#1{\bgroup + \let \relbar =\relax \m@th + \setboxz@h {$#1\relax $}\ht \z@ \z@ $#1\mathord {\mathchar"3224}% + \mkern -6mu\cleaders \hbox {$#1\mkern -2mu\copy \z@ \mkern -2mu$}\hfill + \mkern -6mu\box \z@ $\egroup} +\HLet\leftrightarrowfill@\:tempc +>>> + + +\<<< +\Configure{accent}\dddot\dddot{{}{}} + {\a:accents{}{#1}} {\b:accents{dddot}{#1}{#2}} +\Configure{accent}\ddddot\ddddot{{}{}} + {\a:accents{}{#1}} {\b:accents{ddddot}{#1}{#2}} +\def\:dddot:over{\mathord{\HCode{...}}} +\def\:ddddot:over{\mathord{\HCode{....}}} +>>> + + +Three ways to apply \verb+ddots{x}+: + +\begin{verbatim} + + x + ¨ + +, + , + +\end{verbatim} + + + + \<<< + | +>>> + + + \<<< + | +\ifx \EnditemitemList\:UnDef + | +\fi +>>> + +\<<< +\Configure{itemitem}{}{}{\par\leavevmode}{} +>>> + + \<<< + | +>>> + + +Used to have also a \verb'\special{t4ht@[}...\special{t4ht@]}', +where the specials asked to igore the enclosed +content. It is provided for getting `realistic' measurements in mathml +applets. a candidadte for delition. + +\<<< + +% This will be redefined in mathml.4ht to produce a better markup +\def\unicode:mathop#1{\mathop{#1}} + +\:CheckOption{new-accents} \if:Option \else + | + \ifx \mathml:on\:UnDef + \Configure{accents} + {\ifmmode \expandafter\mathord\fi + {|% + \ht:special{t4ht@[}x\ht:special{t4ht@]}}} + {\ifmmode \expandafter\mathord\fi + {\HCode{}#3\HCode{}}} + \else + \:warning{unicode.4ht loaded after mathml.4ht} + \fi + \expand:after{\Configure{accent}}\csname OT1\string\b\endcsname + \b{|{}{}} + {\a:accents{}{#1}} {\b:accents{b}{#1}{#2}} + \def\:vec:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{2192}}} + \def\:grave:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{0060}}} + \def\:acute:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{00B4}}} + \def\:hat:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{005E}}} + \def\:widehat:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{005E}}} + \def\:tilde:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{007E}}} + \def\:widetilde:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{007E}}} + \def\:bar:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{00AF}}} + \def\:breve:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{02D8}}} + \def\:dot:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{02D9}}} + \def\:ddot:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{00A8}}} + \def\:uml:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{00A8}}} + \def\:ring:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{02DA}}} + \def\:Huml:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{02DD}}} + \def\:check:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{02C7}}} + \def\:d:under{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{02D9}}} + \def\:cedil:under{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{00B8}}} + \def\:b:under{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{00AF}}} + \def\:udot:over{\ifmmode\expandafter\unicode:mathop\fi{\x:unicode{0361}}} % inverted breve exists only as combined character +\fi +>>> + + +\<<< +\Configure{AA}{\ifmmode \expandafter\mathord\fi + {\x:unicode{212B}}} |%angstrom|% +>>> + +\<<< +\:CheckOption{new-accents} \if:Option \else + | + \expand:after{\Configure{accent}}\csname T1\string\b\expandafter\endcsname + \csname T1\string\b\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{b}{#1}{#2}} +\fi +>>> + + + + + + +\<<< +\leavevmode +\if !#1!\ht:special{t4ht@+&\#x#2;}% +\else \expandafter \ifx\csname U#2#1\endcsname\relax + \ht:special{t4ht@+&{35}x#2;}% +\else + \ht:special{t4ht@+&{35}x\csname U#2#1\endcsname;}% +\fi \fi x% +>>> + +The special replaces the `x' character. + +% {\ht:special{t4ht@+\string#1;}#2} +\section{Configured Symbols} + + + + +\<<< +\Configure{L} {\x:unicode{0141}} +\Configure{l} {\x:unicode{0142}} +>>> + +\<<< +\Configure{Longrightarrow} {\x:unicode{21D2}} +\Configure{bowtie} {\x:unicode{22C8}} +\Configure{doteq} {\x:unicode{2250}} +\Configure{cong} {\x:unicode{2245}} +\Configure{ddots} {\x:unicode{22F1}} +\Configure{hookleftarrow} {\x:unicode{21A9}} +\Configure{hookrightarrow} {\x:unicode{21AA}} +\Configure{longleftarrow} {\x:unicode{2190}} +\Configure{longleftrightarrow} {\x:unicode{2194}} +\Configure{Longleftrightarrow} {\x:unicode{21D4}} +\Configure{longmapsto} {\x:unicode{21A6}} +\Configure{longrightarrow} {\x:unicode{2192}} +\Configure{mid} {\x:unicode{2223}} +\Configure{models} {\x:unicode{22A7}} +\Configure{mapsto} {\x:unicode{21A6}} +\Configure{neq} {\x:unicode{2260}} +\Configure{notin} {\x:unicode{2209}} +\Configure{vdots} {\x:unicode{22EE}} +\Configure{angle} {\x:unicode{2220}} +\Configure{rightleftharpoons} {\x:unicode{21CC}} +\Configure{leftrightharpoons} {\x:unicode{21CB}} +>>> + +\<<< +\Configure{longleftarrow} {\x:unicode{2190}} +\Configure{longrightarrow} {\x:unicode{2192}} +>>> + + +\<<< +>>> + + + +\<<< +\Configure{cdots} {\x:unicode{22EF}} +\Configure{ldots} {\x:unicode{2026}} +>>> + +\<<< +\Configure{mathellipsis} {\textellipsis} +\Configure{cdots} {\x:unicode{22EF}} +\Configure{hbar} {\x:unicode{210F}} +| +>>> + + +\<<< +\Configure{@cdots} {\x:unicode{22EF}} +\Configure{iint} {\x:unicode{222C}} +\Configure{iiint} {\x:unicode{222D}} +\Configure{iiiint} {\iint\iint} +\Configure{idotsint} {\int\cdots\int} +\Configure{doteq} {\x:unicode{2250}} +| +>>> + + + +\<<< +\Configure{qedsymbol}{\x:unicode{25A1}} +>>> + +\<<< +\Configure{qedsymbol}{\x:unicode{25A1}} +>>> + + +\<<< +| +>>> + + +\<<< +\Configure{dotsc} {\x:unicode{2026}} +\Configure{dotso} {\x:unicode{2026}} +>>> + + + + +\<<< +\Configure{REV@lesssim }{\x:unicode{2272}} +\Configure{REV@gtrsim }{\x:unicode{2273}} +\Configure{openone }{\x:unicode{1D7D9}} +\Configure{altsuccsim }{\x:unicode{227F}} +\Configure{altprecsim }{\x:unicode{227E}} +\Configure{corresponds }{\x:unicode{225C}} +>>> + + +\section{Accents} + + +\<<< +A{00C1}C{0106}D{010E}E{00C9}G{01F4}I{00CD}L{0139}N{0143}% +O{00D3}R{0154}S{015A}U{00DA}Y{00DD}Z{0179}a{00E1}c{0107}% +d{010F}e{00E9}g{01F5}i{00ED}l{013A}n{0144}o{00F3}r{0155}% +s{015B}u{00FA}y{00FD}z{017A}j{FFFD}J{FFDD}\i{00ED}\j{FFFD}% +>>> + + +\<<< +o{0151}O{0150}U{0170}u{0171}% +>>> + + + + +\<<< +A{00C0}E{00C8}I{00CC}N{01F8}O{00D2}U{00D9}W{1E80}% +Y{1EF2}a{00E0}e{00E8}i{00EC}n{01F9}o{00F2}u{00F9}% +w{1E81}y{1EF3}\i{00EC}% +>>> + +\<<< +A{00C2}E{00CA}I{00CE}O{00D4}U{00DB}a{00E2}e{00EA}% +i{00EE}o{00F4}u{00FB}C{0108}c{0109}G{011C}g{011D}% +H{0124}h{0125}J{0134}j{0135}S{015C}s{015D}W{0174}% +w{0175}Y{0176}y{0177}Z{1E90}z{1E91}\i{00EE}\j{0135}% +>>> + +\<<< +A{00C3}N{00D1}O{00D5}a{00E3}n{00F1}o{00F5}I{0128}% +i{0129}U{0168}u{0169}V{1E7C}v{1E7D}E{1EBC}e{1EBD}% +Y{1EF8}y{1EF9}\i{0129}% +>>> + + +\<<< +H{1E26}h{1E27}W{1E84}w{1E85}X{1E8C}x{1E8D}% +t{1E97}A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}% +a{00E4}e{00EB}i{00EF}o{00F6}u{00FC}y{00FF}% +Y{0178}\i{00EF}% +>>> + +\<<< +K{0136}k{0137}L{013B}l{013C}N{0145}n{0146}% +R{0156}r{0157}S{015E}s{015F}T{0162}t{0163}% +E{0228}e{0229}D{1E10}d{1E11}H{1E28}h{1E29}% +C{00C7}c{00E7}G{0122}g{0123}% +>>> + +\<<< +C{010A}c{010B}E{0116}e{0117}G{0120}g{0121}% +I{0130}Z{017B}z{017C}A{0226}a{0227}O{022E}% +o{022F}B{1E02}b{1E03}D{1E0A}d{1E0B}F{1E1E}% +f{1E1F}H{1E22}h{1E23}M{1E40}m{1E41}N{1E44}% +n{1E45}P{1E56}p{1E57}R{1E58}r{1E59}S{1E60}% +s{1E61}T{1E6A}t{1E6B}W{1E86}w{1E87}X{1E8A}% +x{1E8B}Y{1E8E}y{1E8F}% +>>> + +\<<< +g{011F}I{012C}i{012D}O{014E}o{014F}% +U{016C}u{016D}A{0102}a{0103}E{0114}% +e{0115}G{011E}\i{012D}% +>>> + + +\<<< +C{010C}c{010D}D{010E}d{010F}% +E{011A}e{011B}L{013D}l{013E}N{0147}n{0148}R{0158}r{0159}% +S{0160}s{0161}T{0164}t{0165}Z{017D}z{017E}A{01CD}a{01CE}I{01CF}% +i{01D0}O{01D1}o{01D2}U{01D3}u{01D4}G{01E6}g{01E7}K{01E8}k{01E9}% +j{01F0}H{021E}h{021F}\i{01D0}\j{01F0}% +>>> + + + +\<<< +A{0100}a{0101}E{0112}% +e{0113}I{012A}i{012B}O{014C}o{014D}U{016A}u{016B}Y{0232}% +y{0233}G{1E20}g{1E21}% +>>> + +\<<< +A{00C5}a{00E5}U{016E}u{016F}% +>>> + +\<<< +A{1EA0}a{1Ea1}B{1E04}b{1E05}D{1E0C}d{1E0D}% +E{1EB8}e{1EB9}H{1E24}h{1E25}I{1ECA}i{1ECB}% +K{1E32}k{1E33}L{1E36}l{1E37}M{1E42}m{1E43}% +N{1E46}n{1E47}O{1ECC}o{1ECD}R{1E5A}r{1E5B}% +S{1E62}s{1E63}T{1E6C}t{1E6D}U{1EE4}u{1EE5}% +V{1E7E}v{1E7F}W{1E88}w{1E89}Y{1EF4}y{1EF5}% +>>> + + +\<<< +B{1E06}b{1E07}% +D{1E0E}d{1E0F}K{1E34}k{1E35}L{1E3A}l{1E3B}N{1E48}n{1E49}% +R{1E5E}r{1E5F}T{1E6E}t{1E6F}Z{1E94}z{1E95}h{1E96}% +>>> + + +\<<< +\expand:after{\Configure{accent}}\csname OT1\string\`\endcsname + \grave{|{}{}} + {\a:accents{}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|{}{}} + {\a:accents{}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\^\endcsname + \hat{|{}{}} + {\a:accents{}{#1}} {\b:accents{hat}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\~\endcsname + \tilde{|{}{}} + {\a:accents{}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\ddot\ddot{|{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\"\expandafter + \endcsname + \csname OT1\string\"\endcsname{|{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\r\endcsname + \mathring{|{}{}} + {\a:accents{}{#1}} {\b:accents{ring}{#1}{#2}} +>>> + +\<<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\d\endcsname}% + \csname OT1\string\d\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + + + + + +\<<< +\expand:after{\Configure{accent}}\csname T1\string\`\expandafter\endcsname + \csname T1\string\`\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{grave}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\'\expandafter\endcsname + \csname T1\string\'\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{acute}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\^\expandafter\endcsname + \csname T1\string\^\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{hat}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\~\expandafter\endcsname + \csname T1\string\~\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{tilde}{#1}{#2}} +\Configure{accent}\ddot\ddot{|{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\"\expandafter + \endcsname + \csname T1\string\"\endcsname{|{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\r\endcsname + \mathring{|{}{}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +>>> + + +\<<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\d\endcsname}% + \csname T1\string\d\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{d}{#1}{#2}} +>>> + + +The following are also placed under accents configuration. + +\<<< +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\c\endcsname}% + \csname OT1\string\c\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\t\endcsname}% + \csname OT1\string\t\endcsname{c{22C5}{}{}} + {\a:accents{}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname OT1\string\H\endcsname}% + \csname OT1\string\H\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{Huml}{#1}{#2}} +>>> + + +\<<< +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\c\endcsname}% + \csname T1\string\c\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{cedil}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\t\endcsname}% + \csname T1\string\t\endcsname{c{22C5}{}{}} + {\a:accents{}{#1}} {\b:accents{udot}{#1}{#2}} +\expand:after{\expand:after{\Configure{accent}}% + \csname T1\string\H\endcsname}% + \csname T1\string\H\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{Huml}{#1}{#2}} +>>> + +% + + + + + + + + +The following originally have been defined to be parameter-less. + +\<<< +\Configure{accent}\dot\dot{|{}{}} + {\a:accents{}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\.\expandafter + \endcsname + \csname OT1\string\.\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\u\endcsname + \breve{|{}{}} + {\a:accents{}{#1}} {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}} + {\a:accents{}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\v\endcsname + \check{|{}{}} + {\a:accents{}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname OT1\string\=\endcsname + \bar{|{}{}} + {\a:accents{}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + + +\<<< +\expand:after{\Configure{accent}}\csname T1\string\.\expandafter\endcsname + \csname T1\string\.\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{dot}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\u\expandafter\endcsname + \csname T1\string\u\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{breve}{#1}{#2}} +\Configure{accent}\vec\vec{{}{}} + {\a:accents{}{#1}} {\b:accents{vec}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\v\expandafter\endcsname + \csname T1\string\v\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{check}{#1}{#2}} +\expand:after{\Configure{accent}}\csname T1\string\=\expandafter\endcsname + \csname T1\string\=\endcsname{|{}{}} + {\a:accents{}{#1}} {\b:accents{bar}{#1}{#2}} +>>> + + + + + +%%%%%%%%%%%%%%%%%% +\section{Odd Ends} +%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{degree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + +\<<< +\Configure{textdegree}{{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x}} +>>> + + + +%%%%%%%%%%%%% +\subsection{Sistyle} +%%%%%%%%%%%%% + + +\<<< +\Configure{degC}{\leavevmode\ht:special{t4ht@+&{35}x00B0;}xC} +\Configure{degF}{\leavevmode\ht:special{t4ht@+&{35}x00B0;}xF} +\Configure{arcdeg}{\leavevmode\ht:special{t4ht@+&{35}x00B0;}x} +\Configure{arcmin}{\leavevmode\ht:special{t4ht@+&{35}x2032;}x} +\Configure{arcsec}{\leavevmode\ht:special{t4ht@+&{35}x2033;}x} +\Configure{ohm}{\leavevmode\ht:special{t4ht@+&{35}x2126;}x} +\Configure{micro}{\leavevmode\ht:special{t4ht@+&{35}x00B5;}x} +\Configure{angstrom}{\leavevmode\ht:special{t4ht@+&{35}x212B;}x} +>>> + + +\<<< +!*?: >>> + + +\<<< + cw:>>> + +\<<< +tail>>> + +\<<< +\xdef\:cursec{|
        }% +>>> + + +\<<< +\expandafter\edef\csname :RestoreCatcodes\endcsname{% + \expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else + \csname :RestoreCatcodes\endcsname \fi + \catcode`\noexpand :|=\the\catcode`:% + \let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|= + \noexpand\UnDefcS} +\catcode`\:|=11 +>>> + + + +\verb+\#+ instead of \verb+\HChar{35}+ is problematic +when sent to aux file as \verb+#+. + +We had also \verb'\append:def\@begindocumenthook{\HLet\"|=\ddot}' in +babel. It gets russian and brazil into infinite loop. Why it was +inserted. + +\`'\def\x:unicode#1{\HCode{&}\HChar{-35}\HCode{x#1;}}' is not a slution +because the mathml marking on it get confused. + +We use \`'\protect' with LaTeX, because compilation can fail in temporary files, +especially in TOC like environments. + + +\<<< +\ifdefined\protect% +\def\x:unicode#1{\protect\leavevmode\ht:special{t4ht@+\string&{35}x#1{59}}x} +\else +\def\x:unicode#1{\leavevmode\ht:special{t4ht@+\string&{35}x#1{59}}x} +\fi + +\Configure{htf}{12}{+} + {}{}{}{}{}{}{} +>>> + + + + + + +%%%%%%%%%%%%%%%%%%%%% +\section{babel.sty} +%%%%%%%%%%%%%%%%%%%%% + +\<<< +\Configure{quotedblbase}{\x:unicode{201E}} +\Configure{quotesinglbase}{\x:unicode{201A}} +>>> + + +\<<< +\:CheckOption{new-accents}\if:Option\else +\Configure{accent}\bbl@umlauta + \bbl@umlaute{|{}{34}} + {\a:accents{}{#1}} {\b:accents{uml}{#1}{#2}} +\fi +>>> + + +\<<< +\expand:after{\Configure{accent}}\csname OT1\string\"\endcsname + \ddot{} + {\a:accents{|}{#1}} + {\def\:temp{>}\def\:tempa{#2}\ifx \:temp\:tempa\HCode{»}% + \else \def\:temp{<}\ifx \:temp\:tempa\HCode{«}% + \else \b:accents{uml}{#1}{#2}\fi\fi} +>>> + +\<<< +A{00C4}E{00CB}I{00CF}O{00D6}U{00DC}Y{0178}% +a{00E4}e{00EB}i{00EF}\i{00EF}o{00F6}u{00FC}y{00FF}% +>>> + + + + + + +\<<< +\expand:after{\Configure{accent}}\csname OT1\string\'\endcsname + \acute{|{}{}} + {\a:accents{}{#1}} {\b:accents{acute}{#1}{#2}} +>>> + +\<<< +|% +{\@use@text@encoding \@curr@enc a}{03AC}% +{\@use@text@encoding \@curr@enc e}{03AD}% +{\@use@text@encoding \@curr@enc h}{03AE}% +{\@use@text@encoding \@curr@enc i}{03AF}% +{\@use@text@encoding \@curr@enc o}{03CC}% +{\@use@text@encoding \@curr@enc u}{03CD}% +{\@use@text@encoding \@curr@enc w}{03CE}% +>>> + + + + +\subsection{Questions} + +\begin{verbatim} + + +\delcode`\<="26830A +\delcode`\>="26930B +\delcode`\|="26A30C +\delcode`\\="26E30F + +% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! + +\def\mathhexbox#1#2#3{\leavevmode + \hbox{$\m@th \mathchar"#1#2#3$}} +\def\dag{\mathhexbox279} +\def\ddag{\mathhexbox27A} +\def\S{\mathhexbox278} +\def\P{\mathhexbox27B} +\end{verbatim} + + +%%%%%%%%%%%%% +\subsection{Cancellation Operation} +%%%%%%%%%%%%% + +Check also `Negated Mathematical Characters' in the mathml specifications. + +\<<< +\:CheckOption{new-accents} \if:Option \else + \Configure{accent}\not\not{|}% + {\ht:special{t4ht@+\string&{35}x#1;}=} + {\ht:special{t4ht@*\string&{35}x0338;}#2} +\fi +>>> + +The following symbols have mathrel settings. + +\<<< +\equiv{2262}% +\exists{2204}% +\in{2209}% +\ni{220C}% +\vert{2224}% +\parallel{2226}% +\sim{2241}% +\simeq{2244}% +\cong{2247}% +\approx{2249}% +={2260}% +\asymp{226D}% +<{226E}% +>{226F}% +\leq{2270}% +\geq{2271}% +\prec{2280}% +\succ{2281}% +\subset{2284}% +\supset{2285}% +\subseteq{2288}% +\supseteq{2289}% +\vdash{22AC}% +\models{22AD}% +\sqsubseteq{22E2}% +\sqsupseteq{22E3}% +{}{\ht:special{t4ht@+\string&{35}x2044;}x}% +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Redefined Macros} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%% +\subsection{eurosym} +%%%%%%%%%%%%% + +\<<< +\Configure{geneuro}{\ht:special{t4ht@+\string&{35}x20AC{59}}x} +\Configure{geneuronarrow}{\ht:special{t4ht@+\string&{35}x20AC{59}}x} +\Configure{geneurowide}{\ht:special{t4ht@+\string&{35}x20AC{59}}x} +>>> + + +%%%%%%%%%%%%% +\subsection{????} +%%%%%%%%%%%%% + + +\<<< +\def\textellipsis{\x:unicode{2026}} +>>> + + + +\<<< +\Configure{roman} + {\x:unicode{2170}}{\x:unicode{2174}}{\x:unicode{2179}} + {\x:unicode{217C}}{\x:unicode{217D}}{\x:unicode{217E}} + {\x:unicode{217F}} +\Configure{Roman} + {\x:unicode{2160}}{\x:unicode{2164}}{\x:unicode{2169}} + {\x:unicode{216C}}{\x:unicode{216D}}{\x:unicode{216E}} + {\x:unicode{216F}} +>>> + + + + + + + + + + + +\<<< +>>> +\<<< +>>> + +\<<< +\:CheckOption{new-accents} \if:Option \else + | +\fi +>>> + + +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> + +\<<< +| +>>> + +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> + +\<<< +\:CheckOption{new-accents} \if:Option \else + | +\fi +>>> + + +\<<< +>>> +\<<< +>>> + +\<<< +\:CheckOption{new-accents} \if:Option \else + | +\fi +>>> + + +\<<< +\:CheckOption{new-accents} \if:Option \else + | +\fi +>>> + + + + +\<<< +\def\A:charset{charset=iso-8859-1} +\Configure{es@accents}{\es:accents}{} +\def\es:accents#1\b:es@accents{\HCode{&\#x#1;}} +\Configure{es@accent} + {\string\OT1\string\'} + {|} +| +>>> + + + +\<<< +\Configure{guillemotleft}{\HCode{&\#x00AB;}} +\Configure{guillemotright}{\HCode{&\#x00BB;}} +>>> + +\<<< +\Configure{spanish"a}{\HCode{&\#x00AA;}} +\Configure{spanish"o}{\HCode{&\#x00BA;}} +\Configure{spanish"e}{\HCode{e}} +\Configure{spanish"A}{\HCode{A}} +\Configure{spanish"O}{\HCode{O}} +\Configure{spanish"E}{\HCode{E}} +\Configure{spanish'i}{\HCode{&\#x00ED;}} +>>> + + + + +\<<< +\Configure{es@accent} + {\string\OT1\string\'} + {|} +>>> + + +\<<< +\Configure{es@accent} + {\string\OT1\string\"} + {|{}{34}} +>>> + +\<<< +\Configure{es@accent} + {\string\OT1\string\~} + {|} +>>> + + + + +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> +\<<< +>>> + +\<<< +>>> + +\<<< +>>> + +\<<< +>>> + +%%%%%%%%%%%%%%%%%% +\section{Latin1} +%%%%%%%%%%%%%%%%%% + + +\<<< +\def\:tempc{\special{t4ht@+\string&{35}xAE{59}}x} +\HLet\textregistered\:tempc +>>> + + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-word.tex b/support/TeX4ht/source/tex4ht-word.tex new file mode 100644 index 0000000000..2bd6fd1475 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-word.tex @@ -0,0 +1,549 @@ +% $Id: tex4ht-word.tex 65 2010-11-17 19:16:45Z karl $ +% compile 3 times: latex tex4ht-word +% or xhlatex tex4ht-word "html,3,sections+" + +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) 2000-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +%%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifx \HTML\UnDef + \def\HTML{htmlw} + \def\CONFIG{\jobname} + \def\MAKETITLE{\author{Eitan M. Gurari}} + \def\next{\input mktex4ht.4ht \endinput} + \expandafter\next +\fi + +\input{common.tex} +\input{tex4ht-cpright.tex} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Preamble} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +% htmlw.4ht (|version), generated from |jobname.tex +% Copyright (C) 2009-2010 TeX Users Group +% Copyright (C) |CopyYear.2000. Eitan M. Gurari +| +>>> + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{General} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +% \Configure{Picture}{.wmf} +>>> + +\<<< +\Css{body {text-align:both;}} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Char Set} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\<<< +\def\:temp#1#2{% + \def\:tempa{#1}\ifx \languagename\:tempa + \def\A:charset{#2}\ifx \A:charset\empty\else + \def\A:charset{charset=#2}% + \fi\fi} +\:temp{afrikaans}{windows-1252} +\:temp{arabic}{windows-1256} +\:temp{austrian}{windows-1252} +\:temp{brazilian}{windows-1252} +\:temp{brazil}{windows-1252} +\:temp{catalan}{windows-1252} +\:temp{croatian}{windows-1251} +\:temp{czech}{windows-1251} +\:temp{danish}{windows-1252} +\:temp{dutch}{windows-1252} +\:temp{estonian}{windows-1251} +\:temp{finnish}{windows-1252} +\:temp{francais}{windows-1252} +\:temp{frenchb}{windows-1252} +\:temp{french}{windows-1252} +\:temp{galician}{windows-1252} +\:temp{germanb}{windows-1252} +\:temp{german}{windows-1252} +\:temp{greek}{windows-1253} +\:temp{hebrew}{windows-1255} +\:temp{hungarian}{windows-1250} +\:temp{ngerman}{windows-1252} +\:temp{norsk}{windows-1252} +\:temp{nynorsk}{windows-1252} +\:temp{polish}{windows-1252} +\:temp{polutonikogreek}{windows-1253} +\:temp{portuges}{windows-1252} +\:temp{portuguese}{windows-1252} +\:temp{romanian}{windows-1250} +\:temp{russian}{windows-1251} +\:temp{scottish}{windows-1252} +\:temp{slovak}{windows-1250} +\:temp{slovene}{windows-1250} +\:temp{spanish}{windows-1252} +\:temp{swedish}{windows-1252} +\:temp{ukrainian}{windows-1251} +\:temp{uppersorbian}{windows-1252} +\:temp{welsh}{windows-1252} +>>> + + +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1251} +>>> +\<<< +\def\A:charset{charset=windows-1251} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1251} +>>> +\<<< +\def\A:charset{charset=windows-1251} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1253} +>>> +\<<< +\def\A:charset{charset=windows-1255} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1250} +>>> +\<<< +\def\A:charset{charset=windows-1251} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1250} +>>> +\<<< +\def\A:charset{charset=windows-1250} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1251} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> +\<<< +\def\A:charset{charset=windows-1252} +>>> + + +\<<< +\def\A:charset{charset=windows-1255} +>>> + +\<<< +\def\A:charset{charset=windows-1252} +>>> + + +\<<< +\def\A:charset{charset=windows-1252} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Etc} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + + +\<<< +\Configure{toclvld} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvle} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvlf} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvlg} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvlh} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvli} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvlj} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvlk} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} +\Configure{toclvll} + {}{} + {\ifvmode \IgnorePar\fi \EndP\IgnorePar + \HCode{

        }\TitleMark\space\HtmlParOff} + {\HCode{

        }\HtmlParOn \IgnoreIndent \par} + +\Css{p.MsoHeading6 {margin-top:12.0pt; + margin-right:0cm; + margin-bottom:3.0pt; + margin-left:0cm; + font-size:11.0pt;}} +\Css{p.MsoHeading7 {margin-top:12.0pt; + margin-right:0cm; + margin-bottom:3.0pt; + margin-left:0cm; + font-size:12.0pt;}} +\Css{p.MsoHeading8 {margin-top:12.0pt; + margin-right:0cm; + margin-bottom:3.0pt; + margin-left:0cm; + font-size:12.0pt; + font-style:italic;}} +\Css{p.MsoHeading9 {margin-top:12.0pt; + margin-right:0cm; + margin-bottom:3.0pt; + margin-left:0cm; + font-size:11.0pt; + font-family:Arial;}} +>>> + + + +\begin{verbatim} +>> But they should go for h6, h7, h8 ... (which is not the case now). + +EG> But HTML does not recognize h* tags besides h1--h5. What we can do is +EG> to set diffent CSS code there--however, I didn't see differents in +EG> fonts there. -eitan + +This is true as far as plain html is concerned. But you can use higher +h? if you are planning to convert to *.doc because word interprets h1 as +heading 1 or h9 as heading 9 (presumably) as long as they are defined in +normal.dot. + +EG> Do you know how can I inspect the content of that file? Under +EG> emacs it all looks like junk. -eitan + +Which file do you mean? --- I suppose normal.dot. I do not think that +there is a possibility to view that file (apart from looking at it +with an hex editor). + +But you can see the result quite easily if you produce an html-file +with several headings (lets say h1 to h9) and load that file into +word. After saving that file in a word format (*.doc) you will realize +that your headings are assigned to word's styles Heading 1 to Heading +9. Start then a new document with a different template. Let's say +thesis. Copy the hole text by Edit/Select All, Edit/Copy and Edit/Paste +into the new document. Then you will realize that all headings are +formated according to the heading styles of the thesis template. + +This feature makes tex4ht even more interesting for converting +latex to word. Because you can write your texts with latex, convert +them to word and use then a template which is given to you by your +publisher. Unfortunately, German publishers do that quite often now +because nearly 90 % of all German lawyers are using word for writing +their essays these days. +\end{verbatim} + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Plain Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\<<< +\:CheckOption{fn-in}\if:Option + | + | +\fi +>>> + +\<<< +\Configure{vfootnote} + {|} + {|} + {|} +\Css{span.MsoFootnoteReference {vertical-align:super;}} +>>> + +\<<< +\Link{fn\FNnum}{fn\FNnum-bk}\HCode{}% + \ifx \FNmark\empty +\else \FNmark\fi\HCode{}\EndLink +>>> + + + +\<<< +| + \Link{fn\FNnum-bk}{fn\FNnum}\HCode{}% + \ifx \FNmark\empty +\else \FNmark\fi + \space\HCode{}\EndLink +>>> + +\<<< +| +>>> + +\<<< +\Configure{HtmlPar} + {\EndP\HCode{}\HCode{

        }} + {\EndP\HCode{}\HCode{

        }} + {\:xhtml{\Tg

        }} + {\:xhtml{\Tg

        }} +>>> + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Latex Footnotes} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\<<< +\:CheckOption{fn-out}\if:Option \else + \Log:Note{for offline footnotes use + command line option `fn-out'} + \edef\Preamble{\Preamble,fn-in} +\fi +>>> + + + +\<<< +\:CheckOption{fn-in}\if:Option + | + | + | +\fi +>>> + + +\<<< +\Configure{footnotemark} + {\leavevmode |% + \NoFonts + \Tag{|}{}} + {\EndNoFonts + |% + \expandafter\global\expandafter + \let\csname (|-bk)\endcsname\def} +>>> + + +\<<< +\Configure{footnotetext} + {|% + \leavevmode |% + \NoFonts + \Tag{|-bk}{} + } + {\EndNoFonts |} + {\expandafter\global\expandafter + \let\csname (|)\endcsname\def + |} +>>> + + + +\<<< +\SaveEndP\global\setbox\fn:box=\vtop\bgroup\ShowPar + |% + \ifvoid\fn:box\else \csname unvbox\endcsname\fn:box\fi +>>> + +\<<< +\EndP\egroup\RecallEndP +>>> + + + + + + +\<<< +\ifTag{|} + {\expandafter\ifx\csname (|)\endcsname\def + \Link{|-bk}{}% + \HCode{}% + \else + \Link{|-bk}{|}% + \HCode{}% + \fi + } + {\expandafter\ifx\csname (|)\endcsname\def + \else + \Link{}{|}% + \HCode{}% + \fi + }% +>>> + +\<<< +\ifTag{|} + {\space\HCode{}\EndLink + } + {\expandafter\ifx\csname (|)\endcsname\def + \else + \space\HCode{}\EndLink + \fi + }% +>>> + + + +\<<< +|% +\ifTag{|-bk} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \Link[ |\Hnewline + ]{|}{}% + \else + \Link[ |\Hnewline + ]{|}{|-bk}% + \fi + } + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \Link[ |\Hnewline + ]{}{|-bk}\fi + }% +>>> + + + + + + + +\<<< +\ifTag{|-bk} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \Link{|}{}% + \HCode{}% + \else + \Link{|}{|-bk}% + \HCode{}% + \fi + } + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else + \Link{}{|-bk} + \HCode{}% + \fi + }% +>>> + + +\<<< +\ifTag{|-bk} + {\HCode{}\EndLink} + {\expandafter\ifx\csname (|-bk)\endcsname\def + \else \HCode{}\EndLink\fi + }% +>>> + + + + +\<<< +\Css{span.footnotetext{ font-size:80\%; font-style:italic; } } +\Css{div.footnotes{border-bottom:0;}} +>>> + + +\<<< +\:CheckOption{fn-in}\if:Option + \Css{span.MsoFootnoteReference {vertical-align:super;}} +\fi +>>> + + +\<<< +fn\FNnum x\minipageNum +>>> + + +\<<< +| +>>> + +\<<< +| +>>> + +\<<< +| +>>> + + +\endinput diff --git a/support/TeX4ht/source/tex4ht-xhtml-xtpipes.tex b/support/TeX4ht/source/tex4ht-xhtml-xtpipes.tex new file mode 100644 index 0000000000..f6bf539948 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-xhtml-xtpipes.tex @@ -0,0 +1,659 @@ +% $Id: tex4ht-xhtml-xtpipes.tex 740 2020-06-13 22:35:32Z karl $ +% htlatex tex4ht-xhtml-xtpipes "xhtml,next,3" "" "-d./" +% +% Copyright 2009-2020 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + \Configure{ProTex}{log,<<<>>>,title,list,`,[[]]} + \usepackage{url} + \input{common.tex} +\begin{document} +\input tex4ht-cpright.tex +\input tex4ht-dir + + +%%%%%%%%%%%%%%%%%% +\part{Post Processing for Html Output Mode} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%% + +\AtEndDocument{\OutputCodE\} + +\Needs{"xmllint --valid --noout xhtml.4xt"} + +\<<< + + + + + + ` + ` + ` + ` + + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{email script} +%%%%%%%%%%%%%%%%%% + +\<<< + +>>> + + + ` + ` + ` + + + + +\<<< + + + + + + +>>> + + +\<<< + +>>> + + + + +\<<< +(`version) +>>> + + +\AtEndDocument{% + \OutputCodE\ + } +\ifdojava + \Needs{" + javac -classpath \TEXMFTEXivBIN tex4ht.jar + XhtmlEmails.java + -d \XTPIPES +"} +\fi + +\<<< +package tex4ht; +/* XhtmlEmails.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2008. Eitan M. Gurari +` */ + +import xtpipes.XtpipesUni; +import org.xml.sax.*; +import org.xml.sax.helpers.DefaultHandler; +import java.io.*; +import java.lang.reflect.*; +import java.util.HashMap; + +public class XhtmlEmails extends DefaultHandler { + PrintWriter out = null; + String data = ""; + public XhtmlEmails(PrintWriter out, + HashMap scripts, + Method method, PrintWriter log, boolean trace) { + this.out = out; + } + public void characters(char[] ch, int start, int length) { + data += new String(ch, start, length); + +//XtpipesUni.toUni(ch, start, length, "<>&"); + } + + public void startElement(String ns, String sName, + String qName, + Attributes atts) { + String s = "<" + qName + "\n"; + for (int i = 0; i < atts.getLength(); i++) { + String name = atts.getQName(i); + s += (" " + name + "=\"" + + XtpipesUni.toUni(atts.getValue(i), "<>&\"") + + "\""); + } + s += ">"; + ` + out.print(XtpipesUni.toUni(data, "&") + s); + data = ""; + } + public void endElement(String ns, String sName, String qName) { + String s = ""; + ` + out.print( XtpipesUni.toUni(data, "&") + s); + data = ""; + } + +} +>>> + + +\<<< +while( data.indexOf('@') >0 ){ + ` + ` +} +data = XtpipesUni.toUni(data, "<>&"); +>>> + + + + +\<<< +String [] pre = data.split( + "[`]*@" + , 2); +if( pre[0].endsWith("}") ){ + if( pre[0].indexOf("{") != -1 ){ + pre[0] = pre[0].substring( 0, pre[0].lastIndexOf("{") ); +} } +int len = pre[0] . length(); +if( len > 0 ){ + out.print( XtpipesUni.toUni(pre[0], "<>&") ); + data = data.substring(len); +} +>>> + +\<<< +String [] post = data.split( + "@[`]*" + , 2); +if( post[1] . length() > 0 ){ + data = data.substring(0, data.length() - post[1] . length()); +} +` +data = post[1]; +>>> + + +\<<< +if( data.indexOf("{") == -1 ){ + out.print( + "" + + XtpipesUni.toUni(data, "<>&") + + "" + ); +} else { + int idx = data.indexOf('@'); + String ext = data.substring(idx); + data = data.substring(0,idx); + ` +} +>>> + + + +\<<< +while( true ){ + pre = data.split( + "[`]+" + , 2); + if( pre.length < 2 ){ + out.print( XtpipesUni.toUni(data + ext, "<>&") ); + data = ""; + break; + } + len = pre[0] . length(); + if( len > 0 ){ + out.print( XtpipesUni.toUni(pre[0], "<>&") ); + data = data.substring(len); + } + data = data.substring(0, data.length() - pre[1].length()); + out.print( + "" + + XtpipesUni.toUni(data, "<>&") + + "" + ); + data = pre[1]; +} +>>> + +\<<< +\\p{javaLowerCase}\\p{javaUpperCase}\\d\\-_\\./&>>> + + +\url{http://tools.ietf.org/html/rfc2368} + +\begin{verbatim} +Alice Smith" +{alice, bob}@somewhere.com +alice@somewhere.com, bob@somewhere.com +\end{verbatim} + +%%%%%%%%%%%%%%%%%% +\section{Long Tables} +%%%%%%%%%%%%%%%%%% + + + +\<<< + +>>> + + +\<<< + + + + + + + +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Tabular} +%%%%%%%%%%%%%%%%%% + + + +\<<< + +>>> + + +\<<< + + + +OK 1 + + + + + + +OK 2 + + + + +>>> + + + + + +\<<< + + + +OK 1 + + + + + + +OK 2 + + + + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Empty HTML Element Script} +%%%%%%%%%%%%%%%%%% + +\<<< + +>>> + + +\<<< + +>>> + + + + +\<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + \<<< + +>>> + + + + + + + + + + +\<<< + + + + =" + + " + +>>> + + + + +%%%%%%%%%%%%%%%%%% +\section{Shared} +%%%%%%%%%%%%%%%%%% + + + +\<<< + + +>>> + +\<<< + + + + + + +]]> +>>> + + + + +\ifdojava +\AtEndDocument{\Needs{% + "pushd \XTPIPES || exit 1 + ; + jar cf tex4ht.jar * + ; + popd + ; + if [ ! -d \TEXMFTEXivBIN\space]; then exit 1; fi + ; + mv \XTPIPES tex4ht.jar \TEXMFTEXivBIN + ; + if [ ! -d \TEXMFTEXivXTPIPES\space]; then exit 1; fi + ; + cp \XTPIPES xtpipes/lib/* + \TEXMFTEXivXTPIPES +"}} +\fi + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/support/TeX4ht/source/tex4ht-xhtmml-xtpipes.tex b/support/TeX4ht/source/tex4ht-xhtmml-xtpipes.tex new file mode 100644 index 0000000000..37461cd573 --- /dev/null +++ b/support/TeX4ht/source/tex4ht-xhtmml-xtpipes.tex @@ -0,0 +1,751 @@ +% $Id: tex4ht-xhtmml-xtpipes.tex 740 2020-06-13 22:35:32Z karl $ +% htlatex tex4ht-xhtmml-xtpipes "xhtml,next,3" "" "-d./" + +% Copyright 2009-2020 TeX Users Group +% Copyright 1996-2009 Eitan M. Gurari +% Released under LPPL 1.3c+. +% See tex4ht-cpright.tex for license text. + +\documentclass{article} + \Configure{ProTex}{log,<<<>>>,title,list,`,[[]]} + \usepackage{url} + \input{common.tex} +\begin{document} +\input tex4ht-cpright.tex +\input tex4ht-dir + +%%%%%%%%%%%%%%%%%% +\part{Post Processing for HTML Output Mode} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%% +\section{Outline} +%%%%%%%%%%%%%%%%%% + +\AtEndDocument{\OutputCodE\} + +\Needs{"xmllint --valid --noout xhtmml.4xt"} + +\<<< + + + + + + `

        + `

      8. + ` + ` + ` + ` + + +>>> + + +% +\AtEndDocument{\OutputCodE\} + +\ifdojava + \Needs{" + if [ ! -d \XTPIPES\space]; then exit 1; fi + ; + javac XhtmmlUtilities.java -d \XTPIPES + "} +\fi + +\<<< +package tex4ht; +/* XhtmmlUtilities.java (`version), generated from `jobname.tex + Copyright (C) 2009-2010 TeX Users Group + Copyright (C) `CopyYear.2008. Eitan M. Gurari +` */ + +import org.w3c.dom.*; +public class XhtmmlUtilities { + ` + ` + ` + ` + ` + ` + ` +} +>>> + + + + + +\<<< + +>>> + + + + +\<<< +public static void mrow(Node dom) { + barsIntoFenced( dom ); + digitsIntoNumbers( dom ); +} +>>> + + +\<<< + +>>> + + + + +\<<< +public static void math(Node dom) { + barsIntoFenced( dom ); + digitsIntoNumbers( dom ); +} +>>> + + + + + + + + + + + + +%%%%%%%%%%%%% +\section{Empty Paragraphs} +%%%%%%%%%%%%% + +\

        <<< + +>>> + +\

        <<< + +>>> + + +\<<< +public static void p(Node dom) { + Node pNode = dom.getFirstChild(); + if( pNode.hasChildNodes() ){ + boolean drop = true; + Node child = pNode.getFirstChild(); + while( child != null ){ + short type = child.getNodeType(); + if( + (type == Node.ELEMENT_NODE) + || + (type == Node.CDATA_SECTION_NODE) + || + (type == Node.TEXT_NODE) + && + !((Text) child).getWholeText().trim().equals("") + ){ + drop = false; break; + } + child = child.getNextSibling(); + } + if( drop ){ + dom.removeChild( pNode ); + } + } else { + dom.removeChild( pNode ); + } +} +>>> + + + +%%%%%%%%%%%%% +\section{Tables} +%%%%%%%%%%%%% + + +Remove Empty Trailling Row + +\

        <<< + +>>> + + +\<<< +public static void table(Node dom) { + Node tableNode = dom.getFirstChild(); + if( tableNode.hasChildNodes() ){ + Node trChild = tableNode.getLastChild(); + while( (trChild != null) + && + !trChild.getNodeName().equals("tr") ){ + trChild = trChild.getPreviousSibling(); + } + if( (trChild != null) && trChild.hasChildNodes() ){ + Node tdChild = trChild.getLastChild(); + while( (tdChild != null) + && + !tdChild.getNodeName().equals("td") ){ + tdChild = tdChild.getPreviousSibling(); + } + if( !tdChild.hasChildNodes() ){ + tableNode.removeChild( trChild ); + } else { + Node child = tdChild.getFirstChild(); + if( + (child.getNodeType() == Node.TEXT_NODE) + && + ((Text) child).getWholeText().trim().equals("") + && + (child.getNextSibling() == null) + ){ + tableNode.removeChild( trChild ); +} } } } } +>>> + + + + + + + + +%%%%%%%%%%%%% +\section{List Items} +%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Outline} +%%%%%%%%%%%%% + + + +\
      9. <<< + +>>> + + + + +\<<< +public static void li(Node dom) { + Node liNode = dom.getFirstChild(); + Node liChild; + boolean hasBlock = false, hasInline = false; + ` + if( hasBlock && hasInline ){ + `

        + ` + } +} +>>> + + + + +%%%%%%%%%%%%% +\subsection{Place Inline Code into Paragraphs} +%%%%%%%%%%%%% + + + +\

        <<< +liChild = liNode.getLastChild(); +Element g = ((Document) dom).createElement("p"); +g.setAttribute("class", "noindent"); +while( liChild != null ){ + short type = liChild.getNodeType(); + if( ` ){ + ` + liChild = liChild.getPreviousSibling(); + } else { + Node nextChild = liChild; + liChild = liChild.getPreviousSibling(); + ` +} } +>>> + + +\<<< +nextChild = liNode.removeChild(nextChild); +type = nextChild.getNodeType(); +if( + (type != Node.COMMENT_NODE) + && + ( + (type != Node.TEXT_NODE) + || + !((Text) nextChild).getWholeText().trim().equals("") + ) +){ + if( g.hasChildNodes() ){ + g.insertBefore( nextChild, g.getFirstChild() ); + } else { + g.appendChild( nextChild ); +} } +>>> + +%%%%%%%%%%%%% +\subsection{Place Paragraphs into List Items} +%%%%%%%%%%%%% + +\<<< +if( liNode.hasChildNodes() ){ + liNode.insertBefore( g, liNode.getFirstChild() ); +} else { + liNode.appendChild( g ); +} +>>> + + +\<<< +if( g.hasChildNodes() ){ + Node nextChild = liChild.getNextSibling(); + if( nextChild == null ){ + liNode.appendChild( g ); + } else { + liNode.insertBefore( g, nextChild ); + } + g = ((Document) dom).createElement("p"); + g.setAttribute("class", "noindent"); +} +>>> + + + +%%%%%%%%%%%%% +\subsection{Check Nature of Item Content} +%%%%%%%%%%%%% + +\<<< +liChild = liNode.getFirstChild(); +while( liChild != null ){ + short type = liChild.getNodeType(); + if( ` ){ hasBlock = true; } + else if( type == Node.TEXT_NODE ){ + if( !((Text) liChild).getWholeText().trim().equals("") ){ + hasInline = true; + } } + else if( + (type != Node.COMMENT_NODE) + && + (type != Node.PROCESSING_INSTRUCTION_NODE ) + ){ + hasInline = true; + } + liChild = liChild.getNextSibling(); +} +>>> + + +\<<< +(type == Node.ELEMENT_NODE) +&& +( + liChild.getNodeName().equals("p") + || + liChild.getNodeName().equals("ol") + || + liChild.getNodeName().equals("ul") + || + liChild.getNodeName().equals("div") + || + liChild.getNodeName().equals("table") +) +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{Scripted Math |...|} +%%%%%%%%%%%%%%%%%% + + + + + +\<<< +static void barsIntoFenced(Node dom) { + Node rightBarNode = null; + Node mrowNode = dom.getFirstChild(); + Node mrowChild = mrowNode.getLastChild(); + while( mrowChild != null ){ + if( + mrowChild.getNodeName().equals("msub") + || + mrowChild.getNodeName().equals("msup") + || + mrowChild.getNodeName().equals("msubsup") + ){ + Node firstChild = mrowChild.getFirstChild(); + if( + (firstChild.getChildNodes().getLength() == 1) + && + firstChild.getTextContent().equals( "|" ) + ){ + rightBarNode = mrowChild; + } } + else + if( + (rightBarNode != null) + && + mrowChild.getNodeName().equals("mo") + && + (mrowChild.getChildNodes().getLength() == 1) + && + mrowChild.getTextContent().equals( "|" ) + ){ + if(mrowChild.getNextSibling() != rightBarNode){ + ` + } + rightBarNode = null; + } + mrowChild = mrowChild.getPreviousSibling(); +} } +>>> + + + + + + +\begin{verbatim} + A + |B|^2 + C + + A + + + | # + B # + # + # + | # + # + # + 2 # + # + # + + + C + +\end{verbatim} + + +\<<< +rightBarNode.removeChild( rightBarNode.getFirstChild() ); +Node sub = rightBarNode.getFirstChild(); +Node mfenced = ((Document) dom).createElement( "mfenced" ); +rightBarNode.insertBefore( mfenced, sub ); +((Element) mfenced).setAttribute("open","|"); +((Element) mfenced).setAttribute("close","|"); +((Element) mfenced).setAttribute("separator",""); +Node node = mrowChild.getNextSibling(); +while( node != rightBarNode ){ + Node next = node.getNextSibling(); + mrowNode.removeChild( node ); + mfenced.appendChild( node ); + node = next; +} +mrowNode.removeChild( mrowChild ); +mrowChild = mrowNode.getLastChild(); +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Digits into Numbers} +%%%%%%%%%%%%%%%%%% + +\<<< +static void digitsIntoNumbers(Node dom){ + Node mrowNode = dom.getFirstChild(); + Node mrowChild = mrowNode.getFirstChild(); + short state = `; + Node fromNode = null, + toNode = null; + while( mrowChild != null ){ + switch( state ){ + case `: + if( mrowChild.getNodeName().equals("mn") ){ + state = `; + fromNode = mrowChild; + toNode = mrowChild; + } + break; + case `: + boolean bool = true; + if( mrowChild.getNodeName().equals("mn") ){ + toNode = mrowChild; + bool = ( mrowChild.getNextSibling() == null ); + } + else + { ` } + if( bool ) + { ` + if( bool ){ + ` + node.replaceChild( ((Document) dom).createTextNode(num), + node.getFirstChild() + ); + } + state = `; + fromNode = null; + toNode = null; + } } + mrowChild = mrowChild.getNextSibling(); +} } +>>> + + +\<<< +0 +>>> + +\<<< +1 +>>> + +\<<< +Node next; +String num = ""; +Node node = fromNode; +while( node != toNode ){ + num += node.getTextContent(); + next = node.getNextSibling(); + mrowNode.removeChild( node ); + node = next; +} +num += node.getTextContent(); +>>> + +\<<< +for( Node node = fromNode; ; node = node.getNextSibling()){ + String str = node.getTextContent(); + if( str.length() > 1 ){ bool = false; break; } + if( !str.replaceAll("[0-9]","").equals("") ){ bool = false; break; } + if( node == toNode ){ break; } +} +>>> + + + +\<<< +String s = null; +Node base; +if( + ( mrowChild.getNodeName().equals("msub") + || + mrowChild.getNodeName().equals("msup") + || + mrowChild.getNodeName().equals("msubsup") + ) + && + ((s = (base = mrowChild.getFirstChild()) + . getTextContent()).length() == 1 ) + && + s.replaceAll("[0-9]","").equals("") +){ + ` + ` + mrowNode.removeChild( node ); + num += s; + Node mn = ((Document) dom).createElement("mn"); + mn.appendChild( ((Document) dom).createTextNode(num) ); + mrowChild.replaceChild( mn, base); + + bool = false; + state = `; + fromNode = null; + toNode = null; +} +>>> + + + +%%%%%%%%%%%%%%%%%% +\section{mstyle} +%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%% +\subsection{Mstyle as Parent of an Element} +%%%%%%%%%%%%% + +Merge mstyle into its child. For instance + +\begin{verbatim} + + F + +\end{verbatim} + +into + +\begin{verbatim} +F +\end{verbatim} + +\<<< + +>>> + +\<<< + + + + + + + + + +>>> + +%%%%%%%%%%%%% +\subsection{Mstyle as Parent of Text} +%%%%%%%%%%%%% + + +\begin{verbatim} + + div + +\end{verbatim} + +into + +\begin{verbatim} +div +\end{verbatim} + +\<<< + + ` + ` + ` + + +>>> + + +\<<< + + + + + + + +>>> + + +%%%%%%%%%%%%%%%%%% +\section{Shared} +%%%%%%%%%%%%%%%%%% + + + +\<<< + + +>>> + +\<<< + + + + + + +]]> +>>> + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% END END END END END END END END END END END END END END END END +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifdojava +\AtEndDocument{\Needs{% + "pushd \XTPIPES || exit 1 + ; + jar cf tex4ht.jar * + ; + popd + ; + if [ ! -d \TEXMFTEXivBIN\space]; then exit 1; fi + ; + mv \XTPIPES tex4ht.jar \TEXMFTEXivBIN + ; + if [ ! -d \TEXMFTEXivXTPIPES\space]; then exit 1; fi + ; + cp \XTPIPES xtpipes/lib/* + \TEXMFTEXivXTPIPES + ; +"}} +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/support/TeX4ht/source/wripro.tex b/support/TeX4ht/source/wripro.tex new file mode 100644 index 0000000000..30d0c025f2 --- /dev/null +++ b/support/TeX4ht/source/wripro.tex @@ -0,0 +1,518 @@ +% $Id: wripro.tex 414 2018-06-12 23:04:41Z karl $ +% Used in tex4ht.sty. Not installed in runtime. +% +% Copyright (C)) 2009-2010 TeX Users Group +% Copyright (C) 1996-2009, 2018 Eitan M. Gurari +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any +% later version. The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions +% of LaTeX version 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer of this work +% is the TeX4ht Project . +% +% If you modify this program, changing the +% version identification would be appreciated. + +%\openin15= wripro.tex +%\ifeof15 \closein15 \else \closein15 \input wripro.tex \fi + + + +\Section{Root Point} + +\<<< +\ifx\html:addr\:UnDeF + | + \Htmltrue +\fi +>>> + +\ifalprotex + +\<<< +| +| +| +>>> + +\fi + +\<<< +| +>>> + + +\SubSection{Directory for Files} + +\<<< +\writesixteen{--- needs --- tex4ht \jobname\space ---}% +>>> + + + + +\<<< +\ifx\HDir\:UnDef \let\HDir=\empty \fi +\let\:HDir=\HDir +\immediate\write16{--- needs --- TeX4ht \ifx\HDir\empty + \else-d \HDir\space\space\fi \jobname\space ---}% +>>> + + +\SubSection{Identifiers and Counters} + + +\<<< +\ifx \Htmltrue\:UnDef + \def\:temp{\csname newif\endcsname} + \expandafter\:temp \csname ifHtml\endcsname \Htmlfalse +\fi +>>> + + +\<<< +\ifx\tmp:cnt\:UnDeF \csname newcount\endcsname\tmp:cnt \fi +\def\g:advance#1{\bgroup \def\:temp{#1}% + \tmp:cnt=#1\afterassignment\:gplus \advance\tmp:cnt} +\def\:gplus{\expandafter\xdef\:temp{\the\tmp:cnt}\egroup} +\def\html:lbl{1} +\def\html:addr{\xdef\last:haddr{\file:id-\html:lbl}% + \g:advance\html:lbl by 1\relax } +>>> + +\<<< +\ifx \file:id\:UnDef + \gdef\file:id{|} + \global\let\maxfile:id=\file:id +\fi +>>> + +\<<< +1>>> + + + +\SubSection{Relax Right Margin} + +\<<< +\hbadness=10000 \vbadness=10000 +\:CheckOption{fussy} \if:Option \else + \hfuzz=99in \vfuzz=\hfuzz +\fi +\hyphenpenalty=1000 \exhyphenpenalty=1000 +\def\html:rightskip{\rightskip = 0pt plus 0.5\hsize minus0.5\hsize } +\html:rightskip +>>> + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SubSection{Foot and Head Lines} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \<<< + +\<<< +\ifx \footline\:UnDef \else + \footline={\hfil} \headline={\hfil} +\fi +>>> + + +\Section{Html Commmands From Users} + +The \''\let\ht:special=\special' is for protection +against redefinitions of the \''\special', as is the case in french.sty. + + +\<<< +\ifx \ht:special\:UnDef + \let\ht:special=\special +\fi +\def\HCode#1{\ifx \EndPicture\:UnDef + \relax\ifvmode\leavevmode\fi\ht:special{t4ht=#1}\fi} +\let\:HCode=\HCode +\let\Hbrakets\empty +\def\NewLineChar{\bgroup \catcode`\^=7 \:NewLineChar} +\def\:NewLineChar#1{\egroup \def\:newlnch{ #1}} +\NewLineChar{^^J} +>>> + + +\<<< +\def\HCode#1{} +>>> + +The \`+\HCode+' starts a new paragraph if introduced in vertical mode. +The \`+\leavevmode+' is included for proper spacing in dviht. + + + +\Section{Cross References within Html} + + - NCSA Mosaic can't handle the + end-of-anchor {\tt} tag if it is not on one line. +For instance, in {\tt +...}, + Mosaic paints everything blue until the next {\tt }it finds that is + entirely on one line. + +\<<< +\def\EndLink{\ifx \empty:lnk\empty \HCode{\Hbrakets}\fi} +\def\:HRef{\ifx [\:temp \expandafter\::HRef + \else \expandafter\:::HRef \fi } +\def\HT:tag{\ifx -\let:val \expandafter\H:Tag + \else \expandafter\HTa:g\fi } +\def\HTa:g{\H:Tag-} +\def\Link{\let\:attr\empty \futurelet\let:val\HRefT:ag} +\def\HRefT:ag{\ifx -\let:val \expandafter\H:RefTag + \else \expandafter\HRefTa:g\fi } +\def\HRefTa:g{\H:RefTag-} +\def\H:RefTag#1{\futurelet\:temp\:HRefTag} +\def\:HRefTag{\ifx [\:temp \expandafter\::HRefTag + \else \expandafter\:::HRefTag \fi } +>>> + + +A \`'\Link-{..}{b}' asks that a \''\Tag' will not be produced for `b'. +A \`'\Link[\empty]{b}{..}' asks that a \''\Ref' will not be produced for +`a'. The same is true for any other non-empty replacement to \''\empty' +A `b' for which we neither have a \''\Tag' and a \''\Ref' provides +a memory save in `strings out of', `string characters out of', and +`multiletter control sequences' (see log files). + +\<<< +\def\::HRef[#1]{\get:attr{#1}\::hRef\:::HRef} +\def\::HRefTag[#1]{\get:attr{#1}\::hRefTag\:::HRefTag} +\def\get:attr#1{\edef\:attr{\noexpand\get:atr #1 |}\:attr} +\def\get:atr#1 #2|#3#4{\def\:attr{\space#2}% + \def\:te:mpa{#1}\ifx \:te:mpa\empty \let\:te:mpa#4\else + \def\:te:mpa{#3[#1]}\fi \:te:mpa} +>>> + + +\<<< +\def\H:Tag#1#2{\:TagHTag{#2}\HCode{\Hbrakets<\tag:A\:newlnch + \NAME:"#2"\empty:lnk>}} +\def\::hRef[#1]#2{% + \HCode{\Hbrakets<\tag:A\:newlnch \if\relax#1#2\relax \NOHREF:{}\else + \HREF:"#1\if\relax#1\relax \else\:sharp #2\fi"\fi + \:attr \empty:lnk>}} +\def\:::HRef#1{% + \HCode{\Hbrakets<\tag:A\:newlnch \if\relax#1\relax \NOHREF:{}\else + \HREF:"\get:hfile{#1}\:sharp #1"\fi \:attr \empty:lnk>}} +>>> + + + +\<\><<< +\def\::hRef[#1]#2{\def\:te:mp{#1}\def\:te:mpa{#1#2}% + \HCode{<\tag:A\:newlnch \ifx\:te:mpa\empty \NOHREF: \else + \HREF:"#1\ifx\:te:mp\empty \else\:sharp #2\fi"\fi + \:attr \empty:lnk>}} +\def\:::HRef#1{\def\:te:mpa{#1}% + \HCode{<\tag:A\:newlnch \ifx\:te:mpa\empty \NOHREF: \else + \HREF:"\get:hfile{#1}\:sharp #1"\fi \:attr \empty:lnk>}} +>>> + + + + +\<<< +\def\::hRefTag[#1]#2#3{% + \if\relax#3\relax\else\:TagHTag{#3}\fi + \HCode{\Hbrakets<\tag:A\:newlnch \if\relax#1#2\relax \NOHREF:{#3}\else + \HREF:"#1\if\relax#2\relax \else\:sharp #2\fi"\fi + \if\relax#3\relax\else\space \NAME:"#3"\fi + \:attr \empty:lnk>}} +\def\:::HRefTag#1#2{% + \if\relax#2\relax\else\:TagHTag{#2}\fi + \HCode{\Hbrakets<\tag:A\:newlnch \if\relax#1\relax \NOHREF:{#2}% + \else\HREF:"\get:hfile{#1}\:sharp #1"\fi + \if\relax#2\relax\else\space \NAME:"#2"\fi + \:attr \empty:lnk>}} +\let\empty:lnk=\empty +\def\NOHREF#1{\space} +>>> + +\<\><<< +\def\::hRefTag[#1]#2#3{\def\:te:mp{#2}\def\:te:mpa{#1#2}\def\:te:mpb{#3}% + \ifx\:te:mpb\empty\else\:TagHTag{#3}\fi + \HCode{<\tag:A\:newlnch \ifx\:te:mpa\empty \NOHREF: \else + \HREF:"#1\ifx\:te:mp\empty \else\:sharp #2\fi"\fi + \ifx\:te:mpb\empty\else\space \NAME:"#3"\fi + \:attr \empty:lnk>}} +\def\:::HRefTag#1#2{\def\:te:mp{#1}\def\:te:mpa{#2}% + \ifx\:te:mpa\empty\else\:TagHTag{#2}\fi + \HCode{<\tag:A\:newlnch \ifx\:te:mp\empty \NOHREF: + \else\HREF:"\get:hfile{#1}\:sharp #1"\fi + \ifx\:te:mpa\empty\else\space \NAME:"#2"\fi + \:attr \empty:lnk>}} +>>> + + + + + + + +\''\def\NOHREF:#1{\ifx \hrEF:\HREF: \space NOHREF \fi}' is not part of html! + +\<<< +\def\HREF:{ href=} +\def\tag:A{a} +\def\NAME:{ name=} +>>> + + +% \let\hrEF:=\HREF: + + +We don't use \`'^^J' to break lines in \''\write' because user may +change it, and because I had unexplained problem with it in emtex. + +\<<< +\def\:TagHTag#1{\ifx -\let:val\else \Tag{|#1}{\file:id}\fi} +>>> + +\<<< +\def\H:Tag#1#2{} +\def\::HRef[#1]#2{} +\def\:::HRef#1{} +\def\::HRefTag[#1]#2#3{} +\def\:::HRefTag#1#2{} +\def\:TagHTag#1{} +>>> + + + + +\Section{Html Addresses} + +\SubSection{Retrieving for HREF} + +\<<< +\def\get:href{\expandafter\get::href} +\def\get::href#1-#2-{\ifnum #1=\file:id\space \else + |\fi + \:sharp |} +>>> + + + +\<<< +\def\get:href{\expandafter\get::href} +\def\get::href#1-#2-{\ifnum #1=\file:id\space \else + \:HDir |\fi + \:sharp |} +>>> + +\SubSection{Retrieving for NAME} + +\<<< +\def\get:htag{\expandafter\get::htag} +\def\get::htag#1-#2-{|} +>>> + + +\SubSection{Generating} + +\<<< +\make:addr{#2}>>> + +\<<< +\def\make:addr#1{% + \ifnum\clearcode:id>0 \romannumeral\clearcode:id Q\else PrTx\fi + |#1} +\ifx\clearcode:id\:UnDef + \def\clearcode::id{0} \def\clearcode:id{0} +\fi +>>> + +We had before \`'\space' after \`'#1'. It was not a problem because +\`'|<<< +\def\make:addr#1{% + \ifnum\clearcode:id>0 \romannumeral\clearcode:id Q\fi + |#1\space} +\ifx\clearcode:id\:UnDef + \def\clearcode::id{0} \def\clearcode:id{0} +\fi +>>> + + + + +\<<< +>>> + +Originally, we had \`'\romannumeral' for tail, but it created named +that are too long, and cause memory overflow. + + +The condition \`'\ifnum\clearcode:id>0' is set to hold only for +references to code fragments. + +Romannumeral might be better tags then just numerals because they +might be less likely to be generater manually. + +\SubSection{File Names} + + +\`=\Ref= and \`=\Tag= are mechanisms to exchange information. The +following can be used to connect locations. (Note, however, that +\`=\Tag= may appear in more than one location sending a sequences of tags +separated by comma. In such cases, we arbitrarily go for the first +choise.) + + +\<<< +\ifx \aXrefFile\:UnDef \let\aXrefFile=\empty \fi +>>> + + +\<<< +| +\def\get:hfile#1{% + \expandafter\ifx\csname + ||#1\endcsname\relax + \get@hfile{#1}% + \else + \expandafter\expandafter\expandafter\get::hfile + \csname ||#1\endcsname,//% + \fi } +\def\get::hfile#1,#2//{% + \ifnum \file:id=0#1 \else + |% + \fi } +\ifx\get@hfile\:Undef \let\get@hfile=\:gobble \fi +>>> + + +\<<< +\expandafter\ifx + \csname ||#1% + | file-name|>\endcsname\relax \else + \:LikeRef{|#1| file-name|>}% +\fi >>> + + +\<<< +\expandafter\ifx + \csname ||#1% + | file-name|>\endcsname\relax \else + \:HDir \:LikeRef{|#1| file-name|>}% +\fi >>> + + + +\<<< +\:LikeRef{|#1| file-name|>}>>> + + +The following alternative can act as basis for retrieving all +the file names, instead of just the first one. + +\<<< +\def\get:hfile#1{% + \expandafter\ifx\csname + cw:|#1\endcsname\relax + \get@hfile{#1}% + \else + \expandafter\expandafter\expandafter\get::hfile + \csname cw:|#1\endcsname,\empty end:Links,/ + \fi } +\def\end:Links#1//{} + +\def\get::hfile#1,#2//{% +\expandafter \ifx \csname #1\endcsname\end:Links + \expandafter\end:Links +\else + \ifnum \file:id=0#1 \FileName\else + \expandafter\ifx + \csname cw:|#1% + \empty F-\endcsname\relax \else + \:LikeRef{|#1\empty F-}% +\fi % + \fi +\expandafter\get::hfileA +\fi #2//} + +\def\get::hfileA#1{% +\ifx #1\space + \expandafter\get::hfile\else +\ifx #1\empty \else \space\fi% + \expandafter\get::hfile\expandafter#1\fi} +>>> + + + + +\Section{Other} + + +Dviht produce new line only after nonempty lines. The following +can be used to force non empty lines. + +\<<< +|%\def\HComment#1{\def\html:src{#1}} +\HComment{} |% \let\html:src=\empty +\catcode`\#=12 \def\:sharp{#} \catcode`\#=6 +>>> + + + + +\<<< +\ifx \html:par\:UnDef \def\html:par{\HCode{

        }} \fi +\def\html:invisible{\string&\#x00A0;} +>>> + +The \`' ' is needed for blank lines in \`'

        '
        +within netscape. Opposite order of comment and non-breaking-space will
        +not work, and the same if one of the entities is sliminates. On the
        +other other, mosaic show the nobreaking space as strin. Well, ...
        +
        +\<<<
        +|%\def\HComment#1{}|%
        +>>>
        +
        +\`'\HComment' seems to have no real value, unless we want to
        +trace the input for debugging.
        +
        +
        +\SubSection{Tags}
        +
        +\FreeCode\  % to ensure agains duplication
        +
        +\<<<
        + cw:>>>
        +
        +\<<<
        +|Q\aXrefFile >>>
        +
        +
        +
        +\ file-name\><<<
        +\empty F->>>
        +
        +\<<<
        +)>>>
        +
        +\<<<
        +|F\aXrefFile >>>
        +
        +
        +\FreeCode\
        +
        +\<<<
        +!*?: >>>
        diff --git a/support/TeX4ht/source/xtpipes.tex b/support/TeX4ht/source/xtpipes.tex
        new file mode 100644
        index 0000000000..6d19f51a67
        --- /dev/null
        +++ b/support/TeX4ht/source/xtpipes.tex
        @@ -0,0 +1,4518 @@
        +% $Id: xtpipes.tex 740 2020-06-13 22:35:32Z karl $
        +
        +% htlatex xtpipes "xhtml,3,next" "" "-d./"
        +% htlatex xtpipes "xhtml,3,next,doc" "" "-d./"
        +% htlatex xtpipes "xhtml,3,next,win"
        +% htlatex xtpipes "xhtml,3,next,win,doc"
        +
        +% generalize -i attribute to accept multiple directories, like for -classpath
        +% gcj support these ``generics''  with a ``-5'' or ``-1.5'' switch
        +
        +% Copyright 2009-2020 TeX Users Group
        +% Copyright 1996-2009 Eitan M. Gurari
        +% Released under LPPL 1.3c+.
        +% See tex4ht-cpright.tex for license text.
        +
        +\documentclass{article}
        +   \usepackage{url}
        +   \usepackage{verbatim}
        +   \input{common.tex}
        +   % make ` be the escape character, instead of |
        +   \Configure{ProTex}{java,<<<>>>,title,list,`}
        +\begin{document}
        +\input tex4ht-cpright.tex
        +\input tex4ht-dir.tex
        +
        +\def\CNT{0}
        +\bgroup
        +   \catcode`\^=7
        +   \catcode`\^^M=13  %
        +   \gdef\OP#1{%
        +      \edef\temp{%
        +        \noexpand\<#1\noexpand\><<<
        +            \CNT
        +        >>> %
        +      } \temp %
        +      \immediate\write15{...... \CNT\space #1}
        +      \HAdvance\CNT by 1 %
        +   }   %
        +\egroup
        +
        +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        +% \AddFile[optional: target file name; default: given file name]
        +%         (optional: target home dir; default MYDIR)
        +%         {file name}{dir}
        +
        +\ifOption{win}
        +   {\def\mv{move }}
        +   {\def\mv{mv }}
        +
        +\def\Slash{/}
        +{
        +   \catcode`\/=0
        +   \catcode`\\=12
        +   /ifOption{win}{/gdef/Slash{\}}{}
        +}
        +\def\SLASH{/}
        +
        +\def\AddFile{\futurelet\ext\AddFileA}
        +\def\AddFileA{%
        +   \if [\ext \def\ext[##1]{\def\ext{##1}\futurelet\dir\AddFileB}%
        +   \else     \def\ext{\def\ext{}\futurelet\dir\AddFileB}\fi
        +   \ext}
        +\def\AddFileB{%
        +   \if (\dir \def\dir(##1){\def\dir{##1}\AddFileC}%
        +   \else     \def\dir{\let\dir\MYdir\AddFileC}\fi
        +   \dir}
        +
        +
        +\def\AddFileC#1#2{%
        +   \expandafter\setStartDir \dir #2!%
        +   \bgroup
        +     \def\Slash{/}%
        +     \xdef\EndDir{\dir
        +                #2\Slash
        +             \ifx\ext\empty
        +                  \if !#1!\else #1\fi
        +             \else \ext\fi}%
        +   \egroup
        +   \MakeDir
        +   \if !#1!\else
        +      \Needs{"\mv #1\space \dir #2\Slash
        +                    \ifx\ext\empty #1\else \ext\fi"}%
        +   \fi
        +}
        +
        +\ifOption{win}
        +{
        +   \def\MakeDir{\relax
        +      \expandafter \ifx  \csname !\StartDir\endcsname\relax
        +         \expandafter\let\csname !\StartDir\endcsname=\empty
        +         \Needs{"if NOT EXIST \StartDir \space mkdir -p \StartDir"}%
        +      \fi
        +      \ifx \EndDir\empty \else
        +          \expandafter\AppendDir \EndDir////*%
        +          \expandafter\MakeDir
        +      \fi
        +   }
        +}{
        +   \def\MakeDir{\relax
        +      \expandafter \ifx  \csname !\StartDir\endcsname\relax
        +         \expandafter\let\csname !\StartDir\endcsname=\empty
        +         \Needs{"mkdir -p \StartDir"}%
        +      \fi
        +      \ifx \EndDir\empty \else
        +          \expandafter\AppendDir \EndDir////*%
        +          \expandafter\MakeDir
        +      \fi
        +   }
        +}
        +
        +\def\AppendDir#1/#2/#3/*{%
        +   \def\temp{#2}\ifx \temp\empty
        +      \let\EndDir=\empty
        +   \else
        +      \edef\StartDir{\ifx \StartDir\empty\else
        +                     \ifx \StartDir\SLASH \Slash \else
        +                     \StartDir\Slash\fi   \fi
        +                     #1}%
        +      \def\EndDir{#2/#3}%
        +      \expandafter\MakeDir
        +   \fi
        +}
        +\def\setStartDir#1#2!{%
        +    \def\StartDir{#1}\ifx\StartDir\SLASH\else
        +    \def\StartDir{}\fi
        +}
        +
        +
        +
        +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        +% % \AddFile[optional: target file name; default: given file name]
        +% %         (optional: target home dir; default MYDIR)
        +% %         {file name}{dir}
        +%
        +% \def\AddFile{\futurelet\ext\AddFileA}
        +% \def\AddFileA{%
        +%    \if [\ext \def\ext[##1]{\def\ext{##1}\futurelet\dir\AddFileB}%
        +%    \else     \def\ext{\def\ext{}\futurelet\dir\AddFileB}\fi
        +%    \ext}
        +% \def\AddFileB{%
        +%    \if (\dir \def\dir(##1){\def\dir{##1}\AddFileC}%
        +%    \else     \def\dir{\let\dir\MYdir\AddFileC}\fi
        +%    \dir}
        +% \def\AddFileC#1#2{%
        +%    \expandafter\setStartDir \dir #2!%
        +%    \edef\EndDir{\ifx \dir\empty \else \dir/\fi
        +%                 #2/\ifx\ext\empty \if !#1!XXX\else #1\fi\else \ext\fi}\MakeDir
        +%    \if !#1!\else
        +%       \Needs{"mv #1\space \dir /#2/\ifx\ext\empty #1\else \ext\fi"}%
        +%    \fi
        +% }
        +% \def\MakeDir{\relax
        +%    \expandafter \ifx  \csname !\StartDir\endcsname\relax
        +%       \expandafter\let\csname !\StartDir\endcsname=\empty
        +%       \Needs{"mkdir -p \StartDir"}%
        +%    \fi
        +%    \ifx \EndDir\empty \else
        +%        \expandafter\AppendDir \EndDir////*%
        +%        \expandafter\MakeDir
        +%    \fi
        +% }
        +% \def\AppendDir#1/#2/#3/*{%
        +%    \def\temp{#2}\ifx \temp\empty  \let\EndDir=\empty
        +%    \else
        +%       \edef\StartDir{\ifx \StartDir\empty\else
        +%                      \ifx \StartDir\SLASH /\else
        +%                      \StartDir/\fi   \fi
        +%                      #1}\def\EndDir{#2/#3}%
        +%    \fi
        +% }
        +% \def\setStartDir#1#2!{%
        +%     \def\StartDir{#1}\ifx\StartDir\SLASH\else
        +%     \def\StartDir{}\fi
        +% }
        +% \def\SLASH{/}
        +
        +
        +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        +
        +% TODO : make \WORK MSDOS / Linux agnostic.
        +\def\MYdir{\WORK}
        +
        +
        +\expandafter\let\csname !/\endcsname\empty
        +\expandafter\let\csname !/\endcsname\empty
        +\expandafter\let\csname !/home\endcsname\empty
        +\expandafter\let\csname !/home/4\endcsname\empty
        +\expandafter\let\csname !/home/4/gurari\endcsname\empty
        +\expandafter\let\csname !/home/4/gurari/xtpipes.dir\endcsname\empty
        +%\expandafter\let\csname !/home/4/gurari/tex4ht.dir/texmf\endcsname\empty
        +%\expandafter\let\csname !/home/4/gurari/xtpipes.dir\endcsname\empty
        +
        +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\part{Core}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{Control}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\subsection{Outline}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +\AtEndDocument{
        +   \OutputCode[java]\  % double .java to avoid problems on MS
        +   \OutputCodE\
        +   \OutputCodE\
        +}
        +
        +% \Needs{"
        +%    mkdir -p work.dir
        +%    ;
        +%    mkdir -p work.dir/xtpipes
        +% "}
        +
        +\ifdojava
        +\ifOption{win} {}{
        +\AtEndDocument{\Needs{"
        +    find \WORK\space -type f -iname '*.java' -print0
        +    | xargs -0 javac -d \XTPIPES\space -sourcepath \WORK
        +    ;
        +"}}
        +}
        +\fi
        +
        +
        +\ifOption{win} {
        +    \def\BIN{}
        +}{
        +    \def\BIN{(\XTPIPES)}
        +}
        +
        +% 
        +\expandafter\AddFile\BIN{xtpipes.dtd}{xtpipes\Slash lib}
        +
        +\AddFile{Xtpipes.java}{xtpipes}
        +
        +\<<<
        +package xtpipes;
        +/* Xtpipes.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +`
        +`
        +public class Xtpipes {
        +   `
        +   `
        +   `
        +   `
        +   `
        +   `
        +   `
        +   `
        +   `
        +   `
        +   `
        +   `
        +}
        +`
        +>>>
        +
        +\Needs{"\mv xtpipes.java.java \MYdir xtpipes.java"}
        +
        +NOTE: We can not place Xtpipes.class and xtpipes.class at the same
        +directory because MS Windows get confused between the two.
        +
        +
        +\<<<
        +/* xtpipes.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +import xtpipes.*;
        +public class xtpipes {
        +  public static void main(String [] args) throws Exception {
        +    Xtpipes.main(args);
        +} }
        +>>>
        +
        +
        +\<<<
        +public static String execute( Node node, String xml )
        +                                      throws Exception {
        +  String name = ".";
        +  String old = (String) map.get(name);
        +  map.put( name, (Object) xml );
        +  execute( node.getFirstChild() );
        +  String s = (String) map.get(name);
        +  if( old != null ){ map.put( name, (Object) old ); }
        +  return s;
        +}
        +>>>
        +
        +
        +
        +
        +
        +
        +
        +\<<<
        +private static HashMap  map;
        +private static boolean needScript;
        +>>>
        +
        +
        +The members of xtpipes need to be initiated each time the methods of
        +the program are invoked from external point.  That can happen multiple
        +times for a given run. Hence, the fields are not initiated in the
        +declaration points, but within the main method.  All the external
        +calls go directly or indirectly through that method.
        +
        +
        +\<<<
        +map = new HashMap   ();
        +needScript = true;
        +>>>
        +
        +
        +\<<<
        +// import xtpipes.util.InputObject;
        +// import xtpipes.util.FileInfo;
        +import xtpipes.XtpipesPrintWriter;
        +import java.net.URLConnection;
        +import java.io.*;
        +import java.lang.reflect.*;
        +import java.util.HashMap;
        +import java.util.Stack;
        +import javax.xml.parsers.*;
        +import javax.xml.transform.*;
        +import javax.xml.transform.dom.DOMSource;
        +import javax.xml.transform.stream.*;
        +import org.w3c.dom.*;
        +import org.xml.sax.*;
        +import org.xml.sax.helpers.*;
        +import java.net.URL;
        +>>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Invocation Interfaces}
        +%%%%%%%%%%%%%
        +
        +\<<<
        +public static void main(String args[]) throws Exception {
        +  `
        +  mainMethod(args);
        +}
        +>>>
        +
        +
        +
        +
        +\<<<
        +public static void xtpipes(String [] args,
        +                           OutputStream out,
        +                           PrintWriter log)
        +                                                throws Exception {
        +  `
        +  outPrintWriter = new XtpipesPrintWriter( out, true );
        +  logWriter = (log==null)? (new PrintWriter( System.err )) : log;
        +  mainMethod(args);
        +  outPrintWriter.flush();
        +}
        +>>>
        +
        +
        +
        +\<<<
        +public static void xtpipes(String [] args,
        +                           OutputStreamWriter out,
        +                           PrintWriter log)
        +                                                throws Exception {
        +  `
        +  outPrintWriter = new XtpipesPrintWriter( out );
        +  logWriter = (log==null)? (new PrintWriter( System.err )) : log;
        +  mainMethod(args);
        +  outPrintWriter.flush();
        +}
        +>>>
        +
        +\<<<
        +public static void xtpipes(String [] args,
        +                           XtpipesPrintWriter out,
        +                           PrintWriter log)
        +                                                throws Exception {
        +  `
        +  outPrintWriter = out;
        +  logWriter = (log==null)? (new PrintWriter( System.err )) : log;
        +  mainMethod(args);
        +  outPrintWriter.flush();
        +}
        +>>>
        +
        +
        +\<<<
        +private static boolean returnDom;
        +private static String result;
        +>>>
        +
        +\<<<
        +returnDom = false;
        +result = null;
        +>>>
        +
        +
        +\<<<
        +public static Document getDOM(String args[])
        +                               throws Exception {
        +  `
        +   returnDom = true;
        +   mainMethod(args);
        +   Document dom = null;
        +   if( result == null ){
        +     System.err.println(
        +       "--- xtpipes warning --- getDOM without  from 4xt file: "
        +         + scriptFile );
        +   } else {
        +      try{
        +         byte [] bytes = result.getBytes("UTF-8");
        +         InputStream is =  new ByteArrayInputStream( bytes );
        +         dom = domBuilder.parse (is);
        +      } catch ( org.xml.sax.SAXParseException e ){
        +         if( Xtpipes.trace ){
        +            Xtpipes.logWriter.println(
        +               "\n---------------------------------------------------\n"
        +                        + result +
        +               "\n---------------------------------------------------\n" );
        +         }
        +         String s = "";
        +         `
        +         if( scriptFile != null ){ s += "    script file: " + scriptFile; }
        +         instructionErr( null,
        +            "parsing error: " + e.getMessage() +s, 21 );
        +      } catch ( Exception e ){
        +         instructionErr( null, e.toString(), 5 );
        +      }
        +      `
        +   }
        +   return dom;
        +}
        +>>>
        +
        +\<<<
        +public static Document getDOM(String s, String args[])
        +                                           throws Exception {
        +   `
        +   returnDom = true;
        +   inData = s;
        +   mainMethod(args);
        +   Document dom = null;
        +   if( result == null ){
        +     System.err.println(
        +       "--- xtpipes warning --- getDOM without"
        +         + "  from 4xt file: "
        +         + scriptFile );
        +   } else {
        +      try{
        +         byte [] bytes = result.getBytes("UTF-8");
        +         InputStream is =  new ByteArrayInputStream( bytes );
        +         dom = domBuilder.parse (is);
        +      } catch ( org.xml.sax.SAXParseException e ){
        +         instructionErr( null, "improper xml: " + e.getMessage()
        +           + "\n code starts with: "
        +           + result.substring(0, Math.min(100,result.length()))
        +         , 17 );
        +      } catch ( Exception e ){
        +         instructionErr( null, e.toString(), 6 );
        +      }
        +      `
        +   }
        +   return dom;
        +}
        +>>>
        +
        +
        +\<<<
        +public static Document getDOM(String args[], PrintWriter log)
        +                               throws Exception {
        +   logWriter = (log==null)? new PrintWriter( System.err ) : log;
        +   return getDOM(args);
        +}
        +>>>
        +
        +\<<<
        +public static Document getDOM(String s, String args[], PrintWriter log)
        +                                           throws Exception {
        +   logWriter = (log==null)? (new PrintWriter( System.err )) : log;
        +   return getDOM(s, args);
        +}
        +>>>
        +
        +
        +
        +
        +\<<<
        +static PrintWriter logWriter = new PrintWriter( System.err );
        +>>>
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Core Entry Code}
        +%%%%%%%%%%%%%
        +g
        +
        +\<<<
        +private static void mainMethod(String args[]) throws Exception {
        +  try{
        +    `
        +    `
        +  } catch (Exception e){
        +     instructionErr( null, e.getMessage(), e.getStackTrace(), 31 );
        +  }
        +  try {
        +     DocumentBuilderFactory domFactory =
        +           DocumentBuilderFactory.newInstance();
        +     domFactory.setValidating(true);
        +     DocumentBuilder validatingDomBuilder =
        +                     domFactory.newDocumentBuilder();
        +     validatingDomBuilder.setEntityResolver(`);
        +     validatingDomBuilder.setErrorHandler(`);
        +     `
        +     `
        +     while( needScript ){
        +       if( scriptFile == null ){
        +          instructionErr( null, "Missing 4xt script file name", 32 );
        +       }
        +       `
        +       Document script = validatingDomBuilder.parse(scriptFile);
        +       `
        +       execute( script.getFirstChild() );
        +     }
        +     `
        +      Xtpipes.logWriter.flush();
        +  } catch( org.xml.sax.SAXParseException e ){
        +     String s = "Improper file " + scriptFile + ": " + e.getMessage();
        +     instructionErr( null, s, 2 );
        +  } catch( java.io.FileNotFoundException e ){
        +     String s;
        +     if( scriptFile.equals( e.getMessage() ) ){
        +        s =  "Could not find file: " + scriptFile;
        +     } else {
        +        s = "Problem at script " + scriptFile + ": Could not find file "
        +                                                     + e.getMessage();
        +     }
        +     instructionErr( null, s, 3 );
        +  } catch( Exception e ){
        +     String s = "Problems at file: " + scriptFile + "\n   " + e;
        +     instructionErr( null, s, 4 );
        +} }
        +>>>
        +
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Locate the Script File}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +\<<<
        +String f = FileInfo.searchFile( scriptFile );
        +if( f == null ){
        +   throw new java.io.FileNotFoundException( scriptFile );
        +} else {
        +   scriptFile = f;
        +}
        +>>>
        +
        +
        +
        +[\HPage{System Properties}
        +
        +\<<<
        +// `version
        +import java.util.*;
        +class sys{
        +  public static void main( String [] args ) {
        +     java.util.Properties p = System.getProperties();
        +     java.util.Enumeration keys = p.keys();
        +     while( keys.hasMoreElements() ) {
        +         String name = (String) keys.nextElement();
        +         String value = System.getProperty( name );
        +         logWriter.println( name + " : " + value );
        +} }  }
        +>>>
        +\EndHPage{}]
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Flow of Control}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +private static void execute( Node node ) throws Exception {
        +  while( node != null ){
        +    if( node.getNodeType()==Node.ELEMENT_NODE ){
        +      String instruction = node.getNodeName();
        +      `
        +      if( instruction.equals( "xtpipes" ) ){
        +         `
        +      } else if( instruction.equals( "set" ) ){
        +         `
        +      } else if( instruction.equals( "get" ) ){
        +         `
        +      } else if( instruction.equals( "print" ) ){
        +         `
        +      } else if( instruction.equals( "return" ) ){
        +         `
        +      } else if( instruction.equals( "if" ) ){
        +         `
        +      } else if( instruction.equals( "xslt" ) ){
        +         `
        +      } else if( instruction.equals( "dom" ) ){
        +         `
        +      } else if( instruction.equals( "sax" ) ){
        +         `
        +      } else {
        +         instructionErr( node, "Improper instruction: " + instruction, 11 );
        +    } }
        +    node = node.getNextSibling();
        +} }
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Comamnd Line Options: Outline}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +if( args[n] == null ){}
        +else if( args[n].equals("") ){}
        +else if( args[n].charAt(0)!='-' ){ inFile = args[n]; }
        +else if( args[n].equals("-m") ){
        +  messages = true;
        +  `
        +}
        +else if( args[n].equals("-s") ){
        +  `
        +}
        +else if( args[n].equals("-S") ){
        +  `
        +}
        +else if( args[n].equals("-i") ){
        +  `
        +}
        +else if( args[n].equals("-o") ){
        +  `
        +}
        +else if( args[n].startsWith("-x") ){
        +  `
        +}
        +else if( args[n].equals("-E") ){
        +  exceptionErrs = true;
        +}
        +else if( args[n].equals("-d") ){
        +  `
        +}
        +else if( args[n].equals("-trace") ){ trace=true; }
        +else if( args[n].equals("-help") ){ help=true; }
        +else { ` }
        +>>>
        +
        +
        +\<<<
        +System.err.println( xtpipes_call );
        +>>>
        +
        +\<<<
        +String xtpipes_call =
        +     "   xtpipes (`version)"
        +   + "\n   Command line options: "
        +   + "\n     java xtpipes [-trace] [-help] [-m] [-E] [-s script_file]"
        +   +                                               " [-S script_map]"
        +   + "\n                  [-i script_dir] [-o out_file] "
        +   + "\n                  [-x...ml2xml_arg...]  "
        +   +                     "(-d in_data | in_file)"
        +   + "\n     -m        messages printing mode"
        +   + "\n     -E        error messages into exception calls"
        +   + "\n     in_data   XML data directly into the command line\n"
        +;
        +>>>
        +
        +
        +
        +At least one  `-x'  command line option is required for ml2xml
        +to be called.  An empty postfix is also fine.
        +
        +
        +
        +\<<<
        +for( int n=0; n>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Comamnd Line Options: Processing}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +boolean help=false;
        +for( int n=0; n
        +}
        +`
        +`
        +new FileInfo(logWriter, i_scriptDir, trace);
        +if( inFile != null ){
        +   inputObject = new InputObject( inFile, logWriter );
        +   if( inputObject.getInputStream() == null ){
        +      instructionErr( null, "Could not find or open file: " + inFile, 28 );
        +   }
        +   inFile = inputObject.getFilename();
        +} else {
        +   inputObject = new InputObject( inData.getBytes("UTF-8"), logWriter );
        +}
        +inputObject.buildProfile( trace );
        +>>>
        +
        +\<<<
        +if( !returnDom ){
        +   if( help || ((inFile == null) && (inData == null)) ){
        +     `
        +     if( (inFile == null) && (inData == null) ){
        +        System.exit(0);
        +}  } }
        +>>>
        +
        +\<<<
        +if( !exceptionErrs ){
        +  for(int i=n+1; i>>
        +
        +
        +
        +
        +\<<<
        +n++;
        +if( n < args.length ){
        +   inData = args[n];
        +} else {
        +   System.err.println(
        +       "--- Error --- Missing field for -d argument" );
        +   inFile = null; inData = null; break;
        +}
        +>>>
        +
        +
        +
        +
        +
        +
        +\<<<
        +private static String     inFile,
        +                          inData;
        +private static boolean exceptionErrs, messages;
        +public static InputObject inputObject;
        +>>>
        +
        +
        +\<<<
        +inFile = null;
        +inData = null;
        +exceptionErrs = false;
        +messages = false;
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Output File}
        +%%%%%%%%%%%%%
        +
        +
        +The output file name mentioned in the input command line `-o file.out' is
        +employed in the following cases.
        +
        +\begin{itemize}
        +\item
        +Within sax commands without `name' argument
        +
        +\item Within the return instruction, if none of the sax commands wrote
        +  into the file.  The returnToFile field is used for book keeping of
        +  whether a sax command used the file earlier for an output target.
        +
        +
        +NOTE: check the case of `cond copy input preamble' ??
        +\end{itemize}
        +
        +
        +\<<<
        +n++;
        +if( n < args.length ){
        +   outFileName = args[n];
        +} else {
        +   System.err.println(
        +       "--- Error --- Missing field for -o argument" );
        +   inFile = null; inData = null; break;
        +}
        +>>>
        +
        +
        +\<<<
        +private static String outFileName;
        +private static PrintWriter outPrintWriter;
        +private static boolean returnToFile = false;
        +>>>
        +
        +\<<<
        +outFileName = null;
        +outPrintWriter = null;
        +>>>
        +
        +
        +
        +\<<<
        +if( outFileName != null ){
        +   try {
        +      FileWriter fw = new FileWriter( outFileName );
        +      outPrintWriter = new XtpipesPrintWriter( fw );
        +      returnToFile = true;
        +   } catch(Exception e){
        +      instructionErr( null, e.toString(), 12 );
        +}  }
        +>>>
        +
        +\<<<
        +if( outFileName != null ){
        +   outPrintWriter.close();
        +}
        +>>>
        +
        +\<<<
        +if( outPrintWriter == null ){
        +   outPrintWriter = new XtpipesPrintWriter(System.out,true);
        +}
        +>>>
        +
        +% 
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +\AddFile{XtpipesPrintWriter.java}{xtpipes}
        +
        +\<<<
        +package xtpipes;
        +/* XtpipesPrintWriter.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +import java.io.*;
        +public class XtpipesPrintWriter extends PrintWriter {
        +   public XtpipesPrintWriter() {
        +     super(System.out, true);
        +   }
        +   public XtpipesPrintWriter (PrintStream ps, boolean b){
        +     super(ps, b);
        +   }
        +   public XtpipesPrintWriter (OutputStream ps, boolean b){
        +     super(ps, b);
        +   }
        +   public XtpipesPrintWriter (FileWriter fw){
        +     super(fw);
        +   }
        +   public XtpipesPrintWriter (Writer wr){
        +     super(wr);
        +   }
        +   public void print(String str) {
        +     super.print( XtpipesUni.toUni(str, "") );
        +   }
        +   public void println(String str) {
        +     super.println( XtpipesUni.toUni(str, "") );
        +}  }
        +>>>
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{The xtpipes Script}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +The translation of a file is driven by a script that determines the
        +transformations to be applied to the diffrent fragments of the input
        +data.  The name of the script may be found in different locations.
        +
        +\begin{itemize}
        +\item
        +A xtpipes processing instruction within the input
        +\item
        +Command line option `-s'
        +\item
        +A .map  file that checks the data characteristics to determine the
        +script. Currently available only to input files, not to input strings.
        +\end{itemize}
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Command Line Options}
        +%%%%%%%%%%%%%
        +
        +
        +A script should satisfy  the rules of `xtpipes.dtd',
        +and a map should satisfy the rules of `xtpipes-map.dtd'.
        +
        +
        +
        +
        +\<<<
        +n++;
        +if( n < args.length ){ scriptFile=args[n]; }
        +else {
        +  System.err.println(
        +      "--- Error --- Missing field for -s argument" );
        +  inFile = null; inData = null;  break;
        +}
        +>>>
        +
        +
        +\<<<
        +n++;
        +if( n < args.length ){ scriptMap=args[n]; }
        +else {
        +  System.err.println(
        +      "--- Error --- Missing field for -S argument" );
        +  inFile = null; inData = null;  break;
        +}
        +>>>
        +
        +
        +\<<<
        +n++;
        +if( n < args.length ){
        +   i_scriptDir=args[n];
        +} else {
        +  System.err.println(
        +      "--- Error --- Missing field for -i argument" );
        +  inFile = null; inData = null; break;
        +}
        +>>>
        +
        +
        +
        +
        +\<<<
        +public static String scriptFile;
        +private static String scriptMap;
        +static String i_scriptDir;
        +>>>
        +
        +
        +\<<<
        +scriptFile = null;
        +i_scriptDir = null;
        +scriptMap = null;
        +>>>
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Getting the Start Up Script}
        +%%%%%%%%%%%%%
        +
        +The command line arguments may provide a pointer to
        +a `scriptFile' and a pointer to an algorithm `scriptMap'
        +for getting the script file name.
        +
        +With and without ml2xml
        +
        +\<<<
        +if( scriptMap != null ){
        +   try{
        +      String f = FileInfo.searchFile( scriptMap );
        +      if( f == null ){
        +         throw new java.io.FileNotFoundException( scriptMap );
        +      } else {
        +         scriptMap = f;
        +      }
        +      `
        +      saxReader.setContentHandler( new DefaultHandler(){
        +         `
        +        } );
        +      InputStream inputStream =
        +           (InputStream) (new File(scriptMap).toURI().toURL().openStream());
        +      saxReader.parse( new InputSource(inputStream) );
        +      saxReaderStack.push( saxReader );
        +   } catch( java.io.FileNotFoundException e ){
        +      instructionErr( null,
        +                      "File not found: " + e.getMessage()
        +                      + "; command line option -i",
        +                      33 );
        +   } catch( Exception e ){
        +      instructionErr( null, e.toString(), e.getStackTrace(), 27 );
        +   }
        +}
        +if( scriptFile == null ){
        +    scriptFile = "xtpipes-default.4xt";
        +}
        +>>>
        +
        +
        +\<<<
        +private Stack  condition = new Stack  ();
        +>>>
        +
        +\<<<
        +public void startDocument () {
        +   condition.push( Boolean.valueOf(true) );
        +}
        +>>>
        +
        +\<<<
        +public void startElement(String ns, String sName,
        +                        String qName, Attributes atts) {
        +   if( condition == null ){ return; }
        +   `
        +   boolean cond = ((Boolean) condition.peek()).booleanValue();
        +   if( qName.equals("when") ){
        +      if( cond ){ ` }
        +   }
        +   else
        +   if( qName.equals("command-line") ){
        +      if( scriptFile != null ){
        +        `
        +        condition = null;
        +        return;
        +   }  }
        +   else
        +   if( qName.equals("processing-instruction") ){
        +      if( cond ){
        +         String s = inputObject.getXtpipes();
        +         if( s != null ){
        +           Xtpipes.scriptFile = s;
        +           `
        +           condition = null;
        +           return;
        +   }  }  }
        +   else
        +   if( qName.equals("select") ){
        +      if( cond ){
        +        Xtpipes.scriptFile = atts.getValue("name");
        +        `
        +        condition = null;
        +        return;
        +   }  }
        +   condition.push( Boolean.valueOf(cond) );
        +}
        +>>>
        +
        +
        +
        +
        +\<<<
        +public void endElement(String ns, String sName, String qName) {
        +   if( condition == null ){ return; }
        +   `
        +   condition.pop();
        +}
        +>>>
        +
        +
        +
        +\<<<
        +String name = atts.getValue("name");
        +String value = atts.getValue("value");
        +if( name.equals("system-id") ){
        +   cond = value.equals(inputObject.getSystemId());
        +}
        +else
        +if( name.equals("public-id") ){
        +   cond = value.equals(inputObject.getPublicId());
        +}
        +else
        +if( name.equals("dtd-root") ){
        +   cond = value.equals(inputObject.getDtdRoot());
        +}
        +else
        +if( name.equals("root") ){
        +   cond = value.equals(inputObject.getRoot());
        +}
        +else
        +if( name.equals("ext") ){
        +   cond = inputObject.getFilename().endsWith("." + value);
        +}
        +else
        +if( name.equals("prefix") ){
        +   name = inputObject.getFilename();
        +   if( name != null ){
        +      int i = name.lastIndexOf('/');
        +      if( (i != -1) && ((i+1) < name.length()) ){
        +         name = name.substring(i+1);
        +      }
        +      i = name.lastIndexOf('\\');
        +      if( (i != -1) && ((i+1) < name.length()) ){
        +         name = name.substring(i+1);
        +      }
        +      cond = name.startsWith(value);
        +}  }
        +else
        +if( name.equals("meta-type") ){
        +   cond = value.equals(inputObject.getMetaType());
        +}
        +else
        +if( name.equals("content-type") ){
        +   cond = value.equals(inputObject.getContentType());
        +}
        +>>>
        +
        +
        +
        +
        +
        +
        +
        +\<<<
        +if( trace ){
        +   Xtpipes.logWriter.println( " Found script file in map: "
        +                                + Xtpipes.scriptFile );
        +}
        +>>>
        +
        +
        +\<<<
        +if( Xtpipes.trace ){
        +   String s =  "<" + qName + "\n";
        +   for(int i=0; i>>
        +
        +\<<<
        +if( Xtpipes.trace ){
        +   String s =  "";
        +   Xtpipes.logWriter.println( s );
        +}
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{DTDs}
        +%%%%%%%%%%%%%
        +
        +
        +
        +%%%%%%%%%%%%%
        +\immediate\openin15=xtpipes.dtd
        +\ifeof15 \else
        +   \immediate\closein15
        +   [\HPage{xtpipes.dtd}
        +     \verbatiminput{xtpipes.dtd}
        +   \EndHPage{}]
        +\fi
        +%%%%%%%%%%%%%
        +%
        +%%%%%%%%%%%%%
        +\immediate\openin15=xtpipes-map.dtd
        +\ifeof15 \else
        +   \immediate\closein15
        +   [\HPage{xtpipes-map.dtd}
        +     \verbatiminput{xtpipes-map.dtd}
        +   \EndHPage{}]
        +\fi
        +%%%%%%%%%%%%%
        +
        +\begin{verbatim}
        + ... 
        +\end{verbatim}
        +
        +\<<<
        +
        +)* >
        +
        +>>>
        +
        +
        +% 
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +
        +\expandafter\AddFile\BIN{xtpipes-map.dtd}{xtpipes\Slash lib}
        +
        +\<<<
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Indirect Scripts}
        +%%%%%%%%%%%%%
        +
        +
        +
        +If the root xtpipes element has no children, the input file is
        +searched for an alternative script within a processing instruction of
        +the form \verb++.
        +
        +\
        +   ...
        +   
        +
        +\end{verbatim}
        +
        +
        +If provided, the {\bf name attribute} is associated to the outcome.
        +If omitted, the output file name from the command line is assumed. If
        +such file name is not provided, the standard I/O stream is assumed.
        +
        +If the {\bf xml attribute} is not internally defined (within the hash
        +table), a file name is assumed.  If not provided, it stands for the
        +input file name provided in the command line.
        +
        +The \verb+content-handler+ attribute gets a comma seperated list of
        +classes names. The first argument refers to a content handler, the
        +other arguments refer to filters. A content handler gets five
        +arguments: output stream, an HashMap refering to the different scripts
        +enclosed by the sax instruction, a method, log stream, and a boolean
        +trace indicator.  A filter and a lexical-constractor gets three
        +arguments: output stream, log stream, and a boolean trace indicator.
        +
        +The sax instruction applies the filters and the content handler on the
        +provided xml string.  The script elements offer definitions of scripts
        +delivered to the content handler. The ScriptsManager content handler
        +of the distribution (Section~\ref{ScriptsManager}), for instance,
        +invokes these scripts when their corresponding named elemets are
        +encountered.
        +
        +
        +\<<<
        +| sax
        +>>>
        +
        +
        +\<<<
        +
        + )*  >
        +
        +
        +>>>
        +
        +\<<<
        +String errMsg = "";
        +try{
        +   `
        +   `
        +   `
        +   `
        +   XMLReader reader = saxReader;
        +   `
        +   errMsg = "setContentHandler( "
        +            + className[0].trim() + " )";
        +   saxReader.setContentHandler( (org.xml.sax.ContentHandler) ch );
        +   `
        +   `
        +   if( inputSource==null ){
        +       `
        +   } else {
        +       errMsg = "xtpipes sax parsing error";
        +       saxReader.parse( inputSource );
        +   }
        +   `
        +   saxReaderStack.push( reader );
        +} catch ( java.io.FileNotFoundException e ){
        +   instructionErr( node, errMsg
        +                   + "could not find file: " + e.getMessage(), 19 );
        +} catch ( ClassNotFoundException e ){
        +   instructionErr( node, errMsg
        +                   + " class not found: "
        +                   + e.getMessage() + "\n classpath = "
        +                   + System.getProperty("java.class.path")
        +                   + " ---", 22 );
        +} catch ( java.lang.reflect.InvocationTargetException e ){
        +   instructionErr( node, errMsg + ": " + e.getCause(), 23 );
        +} catch ( Exception e ){
        +   Xtpipes.logWriter.flush();
        +   e.printStackTrace();
        +   instructionErr( node, errMsg + ": " + e.toString(), 29 );
        +}
        +>>>
        +
        +\<<<
        +errMsg = "While parsing file " + xml + ": ";
        +InputStream inputStream = null;
        +if( Xtpipes.ml2xml == null ){
        +   if( Xtpipes.trace ){
        +       Xtpipes.logWriter.println(
        +         "No request for ml2xml configuration (command line option -x)" );
        +   }
        +   `
        +} else {
        +   `
        +}
        +saxReader.parse( new InputSource(inputStream) );
        +`
        +>>>
        +
        +\<<<
        +try{
        +    inputStream = (InputStream) (new File(xml).toURI().toURL().openStream());
        +} catch ( java.io.FileNotFoundException ioe ){
        +    try{
        +       URL url = null;
        +       try {
        +           url = new URL(xml);
        +       } catch ( java.net.MalformedURLException fnf ){
        +           url = new File(xml).toURI().toURL();
        +       }
        +       inputStream = (InputStream) (url.openStream());
        +    } catch ( java.io.FileNotFoundException fnf ){
        +        inputStream = (InputStream)
        +           (
        +              new File( new File(xml).toURI().toURL().toString() )
        +              . toURI().toURL()
        +              . openStream()
        +           );
        +}   }
        +>>>
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsubsection{SAX Reader}
        +%%%%%%%%%%%%%
        +
        +The sax reader is pushed into the stack when its job is done, for
        +use in other sax instructions.  The stack is needed because nested sax
        +instructions need unspecified number of readers. The filters may
        +change the sax readers, so the readers need saving for later storing
        +them in the stacks.
        +
        +\<<<
        +XMLReader saxReader;
        +if( saxReaderStack.empty() ){
        +   SAXParser saxParser = saxFactory.newSAXParser();
        +   saxReader = saxParser.getXMLReader();
        +   `
        +} else {
        +   saxReader = (XMLReader) saxReaderStack.pop();
        +}
        +>>>
        +
        +
        +
        +
        +\<<<
        +saxFactory = SAXParserFactory.newInstance();
        +saxFactory.setValidating(false);
        +>>>
        +
        +\<<<
        +private static Stack  saxReaderStack;
        +>>>
        +
        +
        +\<<<
        +saxReaderStack = new Stack  ();
        +>>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Handling DOCTYPE Statements}
        +%%%%%%%%%%%%%
        +
        +
        +The following code hides the DOCTYPE entry when searching the xtpipes
        +processing instruction and when loading an input file.
        +
        +\<<<
        +saxReader.setEntityResolver(new org.xml.sax.EntityResolver() {
        +   public InputSource resolveEntity(
        +                          String publicId, String systemId) {
        +     if( (new File(systemId)).exists() ){
        +        return new org.xml.sax.InputSource( systemId );
        +      }
        +      StringReader strReader = new StringReader("");
        +      return new org.xml.sax.InputSource(strReader);
        +   }
        +});
        +>>>
        +
        +The default SAX behavior observes the DOCTYPE statement and assumes
        +the following setup.
        +
        +\begin{verbatim}
        +saxReader.setEntityResolver(new org.xml.sax.EntityResolver() {
        +   public InputSource resolveEntity(
        +      String publicId, String systemId) {
        +      return null;
        +   }
        +});
        +\end{verbatim}
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsubsection{Input}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +Node xmlNode = node.getAttributes().getNamedItem( "xml" );
        +InputSource inputSource=null;
        +String xml = null;
        +if( xmlNode == null ){
        +   `
        +} else {
        +   xml = xmlNode.getNodeValue();
        +   String doc = (String) map.get(xml);
        +   if( doc!=null ){
        +      byte [] bytes = doc.getBytes("UTF-8");
        +      ByteArrayInputStream bais = new ByteArrayInputStream( bytes );
        +      inputSource = new InputSource( bais );
        +}  }
        +>>>
        +
        +
        +\<<<
        +if( inData == null ){
        +   xml = inFile;
        +} else {
        +   byte [] bytes = inData.getBytes("UTF-8");
        +   ByteArrayInputStream bais = new ByteArrayInputStream( bytes );
        +   inputSource = new InputSource( bais );
        +}
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsubsection{Output Stream}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +Node nameNode = node.getAttributes().getNamedItem("name");
        +PrintWriter out;
        +CharArrayWriter caos = null;
        +if( nameNode == null ){
        +   out = outPrintWriter;
        +   returnToFile = false;
        +} else {
        +   caos = new CharArrayWriter();
        +   out = new PrintWriter( caos );
        +}
        +>>>
        +
        +\<<<
        +if( nameNode != null ){
        +   String name = nameNode.getNodeValue();
        +   char [] chars = caos.toCharArray() ;
        +   map.put( name, (Object) new String(chars) );
        +}
        +>>>
        +
        +Note: Characters are prefered over bytes as they support
        +unicode.
        +
        +%%%%%%%%%%%%%
        +\subsection{Get Content Handler for SAX}
        +%%%%%%%%%%%%%
        +
        +\<<<
        +String [] className = node.getAttributes()
        +                     .getNamedItem( "content-handler" )
        +                     .getNodeValue()
        +                     .split(",");
        +>>>
        +
        +
        +
        +
        +The constructor of a content handler is provided five arguments:
        +
        +\begin{itemize}
        +\item
        +An output stream
        +\item
        +A hash map containing the enclosed defdinitions of scripts
        +\item A method name
        +\item A log stream
        +\item A trace flag
        +\end{itemize}
        +
        +
        +\<<<
        +Class [] argTypes = {
        +         PrintWriter.class, HashMap.class, Method.class,
        +         PrintWriter.class, boolean.class };
        +`
        +Object parmValues[] = new Object[5];
        +parmValues[0] = out;
        +`  parmValues[1] = scripts;
        +parmValues[2] = method;
        +parmValues[3] = Xtpipes.logWriter;
        +parmValues[4] = (Object) Xtpipes.trace;
        +Class cls = Class.forName( className[0].trim() );
        +Constructor c = cls.getConstructor( argTypes );
        +Object ch = (Object) c.newInstance( parmValues );
        +>>>
        +
        +\<<<
        +HashMap  scripts = new HashMap  ();
        +Node script = node.getFirstChild();
        +while( script != null ){
        +  if( script.getNodeType()==Node.ELEMENT_NODE ){
        +     String element = script.getAttributes().getNamedItem( "element" )
        +                                       .getNodeValue();
        +     if( scripts.containsKey(element) ){
        +        System.err.println(
        +           "--- Warning --- redfining script: " + element );
        +     }
        +     scripts.put( element, (Object) script );
        +  }
        +  script = script.getNextSibling();
        +}
        +>>>
        +
        +\<<<
        +Class  cls = Xtpipes.class;
        +Class [] argTypes = { Node.class, String.class };
        +method = cls.getMethod( "execute", argTypes );
        +>>>
        +
        +\<<<
        +private static Method method;
        +>>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Get Filters}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +for( int i=1; i>>
        +
        +
        +The filters are assumed to have a tri-parameter constructors which
        +get an output stream for first arguments, log stream for second argument, and
        +a trace boolean value for third argument.
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Get Lexical Handler for SAX}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +The constructor of a lexical handler is provided the
        +content handler as an argument.
        +
        +
        +
        +\<<<
        +Node lexAttr = node.getAttributes()
        +                  .getNamedItem( "lexical-handler" );
        +if( lexAttr != null ){
        +   String lexName = lexAttr.getNodeValue();
        +   argTypes = new Class[3];
        +   argTypes[0] = Class.forName( className[0].trim() );
        +   argTypes[1] = PrintWriter.class;
        +   argTypes[2] = boolean.class;
        +   parmValues = new Object[3];
        +   parmValues[0] = ch;
        +   parmValues[1] = Xtpipes.logWriter;
        +   parmValues[2] = (Object) Xtpipes.trace;
        +   errMsg = "Class.forName( " + lexName.trim() + ") " ;
        +   cls = Class.forName( lexName.trim() );
        +   errMsg = "get-constructor " +
        +                lexName.trim() +
        +                "( " + className[0].trim() + " ) " ;
        +   c = cls.getConstructor( argTypes );
        +   errMsg = "get-object " +
        +               lexName.trim() + "( ... ) " ;
        +   Object xh = (Object) c.newInstance( parmValues );
        +   errMsg = "set lexical handler " + lexName.trim() + " ";
        +   saxReader.setProperty(
        +       "http://xml.org/sax/properties/lexical-handler",
        +       (org.xml.sax.ext.LexicalHandler) xh
        +    );
        +}
        +>>>
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{Entity Resolver}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Interface}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +\<<<
        +new XtpipesEntityResolver()
        +>>>
        +
        +\<<<
        +class XtpipesEntityResolver implements  org.xml.sax.EntityResolver {
        +   `
        +}
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Implementation}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +public InputSource resolveEntity(String publicID, String systemID)
        +                                                    throws SAXException {
        +   if( Xtpipes.trace ){
        +      Xtpipes.logWriter.println( "Resolving: publicID = \" " + publicID
        +                + "\"  systemID = \"" + systemID + "\"" );
        +   }
        +   String file = FileInfo.searchFile( systemID );
        +   if( file != null ){
        +     try{
        +        file = new File(file).toURI().toURL().toString();
        +        return new InputSource( file );
        +     } catch( java.net.MalformedURLException mfe){
        +        throw new SAXException(
        +          "--- xtpipes error 30 --- improper file name: " + file  );
        +   } }
        +   return null;
        +}
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{File Information}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Outline}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +% 
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +
        +\AddFile{FileInfo.java}{xtpipes}
        +
        +\<<<
        +package xtpipes;
        +/* FileInfo.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +`
        +public class FileInfo{
        +     `
        +   public FileInfo(PrintWriter log, String iii_scriptDir, boolean trace) {
        +      FileInfo.log = log;
        +      FileInfo.ii_scriptDir = iii_scriptDir;
        +      FileInfo.trace = trace;
        +      `
        +      `
        +   }
        +   `
        +   `
        +   `
        +   `
        +}
        +>>>
        +
        +\<<<
        +static String [] classPaths = null;
        +static String [] scriptPaths = null;
        +static java.util.HashMap  registry =
        +                                  new java.util.HashMap ();
        +static String slash = System.getProperty("file.separator");
        +static String ii_scriptDir;
        +static PrintWriter log;
        +static boolean trace;
        +>>>
        +
        +
        +\<<<
        +import java.io.File;
        +import java.io.PrintWriter;
        +>>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Search Engine}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +\<<<
        +public static String searchFile( String file ){
        +   String key = ((ii_scriptDir == null)? "" : ii_scriptDir )
        +                + "!" + file;
        +   String result = (String) registry.get( key );
        +   if( result == null ){
        +      for(int i=0; i<2; i++){
        +         if( trace ){
        +            log.println( "Searching: " + file );
        +         }
        +         if( (new File(file)).exists() ){
        +            result = ( file.indexOf(slash) == -1 )?
        +                         (System.getProperty("user.dir") + slash + file)
        +                        :
        +                         file;
        +         }
        +         else {
        +            if( ii_scriptDir != null ){
        +               `
        +            }
        +            if( result == null ){
        +               `
        +         }  }
        +         if( result != null ){ break; }
        +         file =  new File(file).getName();
        +      }
        +      if( result != null ){
        +        result = FileInfo.cleanPath(result);
        +        registry.put(key, result);
        +      }
        +   }
        +   if( trace ){
        +      if( result == null ){
        +         log.println(
        +            "Directory paths from xtpipes command line option -i: "
        +                                            + ii_scriptDir );
        +      } else { log.println( "Found: " + result + "\n" ); }
        +      log.flush();
        +   }
        +   return result;
        +}
        +>>>
        +
        +
        +
        +\<<<
        +int k = scriptPaths.length;
        +while( k>0 ){
        +  k--;
        +  if( trace ){
        +    log.println( "Searching: " + file
        +                   + ", recursively in directory: " + scriptPaths[k] );
        +  }
        +  result = searchDirectory( new File(scriptPaths[k]), file);
        +  if( result != null ){ break; }
        +}
        +String s = ii_scriptDir + file;
        +if( (new File( s )).exists() ){ result = s; }
        +>>>
        +
        +
        +\<<<
        +int k = classPaths.length;
        +String toFile = "xtpipes" + slash + "lib" + slash + file;
        +while( k>0 ){
        +  k--;
        +  String s =  classPaths[k] + toFile;
        +  if( trace ){ log.println( "Searching: " + s ); }
        +  if( new File(s).exists() ){ result = s; break; }
        +}
        +>>>
        +
        +
        +\<<<
        +static String searchDirectory(File dir, String file) {
        +    String result = null;
        +    if( dir.isDirectory() ){
        +       String [] children = dir.list();
        +       for (int i=0; i>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Class Paths}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +\<<<
        +classPaths = FileInfo.getPaths( System.getProperty("java.class.path") );
        +>>>
        +
        +Script paths are to be encoded in a similar manner as class paths.
        +
        +\<<<
        +if( iii_scriptDir != null ){
        +   scriptPaths = FileInfo.getPaths( iii_scriptDir );
        +}
        +>>>
        +
        +\<<<
        +static String [] getPaths( String dirs ){
        +      String [] paths = null;
        +   paths = dirs.split( System.getProperty("path.separator") );
        +   int k = paths.length;
        +   while( k>0 ){
        +      k--;
        +      `
        +      int len = paths[k].length();
        +      if( (len>1) && (paths[k].lastIndexOf(slash + ".") == (len-1)) ){
        +         paths[k]  = paths[k].substring(0,len-1);
        +      } else if( (len>0) && ((len-1) != paths[k].lastIndexOf( slash )) ){
        +         paths[k] += slash;
        +   }  }
        +   return paths;
        +}
        +>>>
        +
        +
        +
        +\<<<
        +paths[k] = cleanPath( paths[k] );
        +>>>
        +
        +\<\><<<
        +if( (paths[k].length() > 0) && (paths[k].charAt(0) == '~') ){
        +  if( (paths[k].length() == 1)|| (paths[k].charAt(1) != '~') ){
        +    paths[k] = System.getProperty( "user.home" ) + paths[k].substring(1);
        +}  }
        +if( paths[k].charAt(0) == '.' ){
        +   paths[k] = System.getProperty( "user.dir" ) + slash + paths[k];
        +}
        +>>>
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{Input Objects for  XML Files}
        +%%%%%%%%%%%%%%%%%%
        +
        +The XML files my contain faults as a brute force approach is applied in
        +which the file is scanned directly without trying to build an XML object.
        +
        +%%%%%%%%%%%%%
        +\subsection{Outline}
        +%%%%%%%%%%%%%
        +
        +% 
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +
        +\AddFile{InputObject.java}{xtpipes}
        +
        +
        +\<<<
        +package xtpipes;
        +/* InputObject.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +`
        +
        +public class InputObject{
        +      `
        +   `
        +   `
        +   `
        +   `
        +   public InputStream getInputStream(){ return inputStream; }
        +   public String getFilename(){
        +      return (url == null)?
        +         ( (connection == null)? filename
        +                               :
        +                                 connection . getURL() . toString()
        +         )
        +       : url;
        +   }
        +   public String getContentType(){ return contentType; }
        +   public String getMetaType(){ return metaType; }
        +   public String getPublicId(){ return publicId; }
        +   public String getSystemId(){ return systemId; }
        +   public String getXtpipes(){ return xtpipes; }
        +   public String getRoot(){ return root; }
        +   public String getDtdRoot(){ return dtdRoot; }
        +}
        +>>>
        +
        +\<<<
        +InputStream inputStream = null;
        +URLConnection connection = null;
        +String filename = null;
        +static PrintWriter log;
        +>>>
        +
        +\<<<
        +import java.io.PrintWriter;
        +import java.net.URL;
        +import java.net.URLConnection;
        +import java.io.ByteArrayInputStream;
        +import java.io.File;
        +import java.io.InputStream;
        +>>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Constructor}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +\<<<
        +public InputObject( String filename, PrintWriter log ){
        +   InputObject.log = log;
        +   filename = filename.trim();
        +   try{
        +      inputStream = getInputStream(filename);
        +   } catch (Exception exp0){
        +      if( !filename.startsWith( "http://" ) ){
        +         try{
        +            String name = "http://" + filename;
        +            inputStream = getInputStream( name );
        +            filename = name;
        +         } catch (Exception exp1){
        +            try{
        +               String name = FileInfo.cleanPath(filename);
        +               inputStream = getInputStream( name );
        +               filename = name;
        +            } catch (Exception exp2){ inputStream = null; }
        +   }  }  }
        +   this.filename = filename;
        +}
        +>>>
        +
        +\<<<
        +public InputObject( byte [] bytes, PrintWriter log ){
        +   InputObject.log = log;
        +   inputStream = new ByteArrayInputStream( bytes );
        +}
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Stream from a  File Name}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +private java.io.InputStream getInputStream(
        +                                      String filename )
        +                                   throws java.io.IOException{
        +   if( filename == null ){ return null; }
        +   URL url;
        +   java.io.InputStream inputStream = null;
        +//   String loadingError = "Failed to get requested file.";
        +   try {
        +      url = new File(filename).toURI().toURL();
        +      inputStream =  getInputStream( url );
        +   } catch (Exception ie) {
        +       try {
        +           url = new URL(filename);
        +           inputStream =  getInputStream( url );
        +       } catch (java.io.FileNotFoundException ife) {
        +           throw new java.io.IOException(
        +              "File not found: " + filename);
        +       } catch (Exception ife) {
        +           throw new java.io.IOException(ife + "\n" + ie);
        +   }   }
        +   return inputStream;
        +}
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Stream from a URL}
        +%%%%%%%%%%%%%
        +
        +\<<<
        +private java.io.InputStream getInputStream( URL url )
        +                            throws java.io.FileNotFoundException,
        +                                             java.io.IOException {
        +   java.io.InputStream inputStream = null;
        +   String errMssg = "";
        +   try{
        +      connection = null;
        +      connection = url.openConnection();
        +      connection.setRequestProperty("User-Agent",
        +                      "["
        +                    + System.getProperty("os.name")
        +                    + " / "
        +                    + System.getProperty("os.arch")
        +                    + "]"
        +                    + "["
        +                    + System.getProperty("java.version")
        +                    + " - "
        +                    + System.getProperty("java.vendor")
        +                    + "]"
        +
        +           );
        +      inputStream = connection.getInputStream();
        +   } catch(java.io.FileNotFoundException ve){
        +      errMssg = "File not found: " + url;
        +      throw new java.io.FileNotFoundException(
        +                 "--- Ml2xml input error --- " + errMssg );
        +   } catch (javax.net.ssl.SSLHandshakeException ve){
        +      errMssg = "SSL Handshake Exception: " + ve.getMessage();
        +      throw new javax.net.ssl.SSLHandshakeException(
        +                 "--- Ml2xml input error --- " + errMssg );
        +   } catch (java.net.UnknownHostException ve){
        +      errMssg = "Unknown Host Exception: " + ve.getMessage();
        +      throw new java.net.UnknownHostException(
        +                   "--- Ml2xml input error --- " + errMssg );
        +   }
        +   return inputStream;
        +}
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Clean Path}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +public static String cleanPath( String path ){
        +     String slash = System.getProperty("file.separator");
        +     String userDir = System.getProperty( "user.dir" );
        +  `
        +  `
        +  `
        +  return path;
        +}
        +>>>
        +
        +\<<<
        +  if( (path.length() > 0) && (path.charAt(0) == '~') ){
        +    if( (path.length() == 1) || (path.charAt(1) != '~') ){
        +      path = System.getProperty( "user.home" )
        +                             + path.substring(1);
        +  } }
        +>>>
        +
        +\<<<
        +  if( path.startsWith("..") ){
        +     path = userDir.substring(0,
        +               Math.max(0,Math.max(
        +                 userDir.lastIndexOf("/")
        +                 ,
        +                 userDir.lastIndexOf("\\")
        +               )))
        +            + path.substring(2);
        +  }
        +  if( path.startsWith(".") ){
        +     path = userDir + slash + path.substring(1);
        +  }
        +>>>
        +
        +\<<<
        +  int i;
        +  while(
        +    ((i=path.indexOf("/..")) != -1)
        +    ||
        +    ((i=path.indexOf("\\..")) != -1)
        +  ){
        +    String s = path.substring(0,i);
        +    int j = Math.max(s.lastIndexOf("/"), s.lastIndexOf("\\"));
        +    path = path.substring(0,j) + path.substring(i+3);
        +  }
        +  while(
        +    ((i=path.indexOf("/.")) != -1)
        +    ||
        +    ((i=path.indexOf("\\.")) != -1)
        +  ){
        +    String s = path.substring(0,i);
        +    int j = Math.max(s.indexOf("/"), s.indexOf("\\"));
        +    path = path.substring(0,j) + path.substring(i+2);
        +  }
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Profile: Connecting and Reading the Input File}
        +%%%%%%%%%%%%%
        +
        +\<<<
        +public void buildProfile( boolean trace ){
        +   if( trace ){
        +      log.println(
        +         "xtpipes (`version)"
        +         + "\n   java.version: "    + System.getProperty("java.version")
        +         + "\n   java.class.path: " + System.getProperty("java.class.path")
        +         + "\n   os.name: "         + System.getProperty("os.name")
        +         + "\n   user.home: "       + System.getProperty("user.home")
        +         + "\n   user.dir: "        + System.getProperty("user.dir")
        +           );
        +   }
        +   if( connection != null ){
        +     `
        +   }
        +   `
        +   if( trace ){
        +      log.println(
        +           " url = "           + url
        +         + "\n contentType = " + contentType
        +         + "\n publicId = "    + publicId
        +         + "\n systemId = "    + systemId
        +         + "\n xtpipes = "     + xtpipes
        +         + "\n root = "        + root
        +         + "\n dtdRoot = "     + dtdRoot
        +      );
        +}  }
        +>>>
        +
        +
        +\<<<
        +contentType = connection . getContentType();
        +url = connection . getURL() . toString();
        +>>>
        +
        +
        +
        +\<<<
        +int max = 8192;
        +int buffSize = 4096;
        +byte [] buff = new byte [ buffSize ];
        +int m = 0;
        +int length = 0;
        +int ch;
        +int type = `;
        +String token = null;
        +while( m < max ){
        +   try{
        +      int k = Math.min( max - m, buffSize );
        +      length = inputStream.read( buff, 0, k );
        +      if( length == -1 ){ break; }
        +      if( length == 0  ){ continue; }
        +   } catch (java.io.IOException e){
        +      System.err.println( "--- xtpipes error --- : " + e );
        +      break;
        +   }
        +   for(int i = 0 ; i < length; i++ ){
        +     `
        +     m++;
        +}  }
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Profile: Scanning the Different Cases}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +\<<<
        +switch( ch = buff[i] ){
        +   case  '<':  token = "";
        +               type = `;
        +               break;
        +   case  '>':  if( token != null ){
        +                  token = token . replaceAll( "\\s+", " ");
        +                  `
        +                  token = null;
        +               }
        +               break;
        +   case '\n':
        +   case  ' ':  if( token != null ){
        +                  `
        +               }
        +               break;
        +   case  '"':
        +   case '\'':  if( token == null ){ break; }
        +               `
        +   default:    if( token != null ){
        +                  if( type == `
         ){
        +                     if( ch == 'D' ){
        +                        type = `;
        +                        token += (char) ch;
        +                     } else { token = null; type = `; }
        +                  }
        +                  else
        +                  if( token.equals("") && (type == `) ){
        +                     `
        +                  } else { token += (char) ch; }
        +}              }
        +>>>
        +
        +
        +\<<<
        +if( !token.trim().equals("") ){
        +   if( token.trim().charAt(0) == ch ){
        +     if( type == ` ){
        +        publicId = token.trim().substring(1);
        +        type = `;
        +        token = "";
        +        break;
        +     }
        +     else if( type == ` ){
        +        systemId = token.trim().substring(1);
        +        token = null;
        +        break;
        +     }
        +} }
        +>>>
        +
        +
        +\<<<
        +switch( ch ){
        +   case '!': type = `
        ;
        +             break;
        +   case '?': type = ` ;
        +             break;
        +   default:  if( Character.isLetter(ch)
        +                 && ((root == null) || (metaType == null)) ){
        +                type = `;
        +                token += (char) ch;
        +             } else { token = null; }
        +}
        +>>>
        +
        +\<<<
        +if( type == ` ){
        +   if( xtpipes == null ){
        +      int n = token.length();
        +      if( (n > 1) && (token.charAt( n - 1 ) == '?')
        +                  && (token.startsWith("xtpipes") ) ){
        +         String s = token . substring(7,n-1) . replaceAll( "\\s+", "");
        +         n = s.length();
        +         if( (n>6) && (s.startsWith("file="))
        +                   && (s.charAt(5) == s.charAt(n-1)) ){
        +           xtpipes = s.substring(6,n-1);
        +   }  }  }
        +} else if( type == ` ){
        +   if( metaType == null ){
        +      token = token . replaceAll( "\\s+", "");
        +      int k = token.indexOf("http-equiv");
        +      int n = token.indexOf("content");
        +      if( (k != -1) && (n != -1) ){
        +         if( token.length() > (Math.max(k,n)+3) ){
        +            if( token.substring(k+12).startsWith("Content-Type") ){
        +               token = token.substring(n+9);
        +               n = token.indexOf(";");
        +               if( n !=-1 ){ metaType = token.substring(0,n); }
        +   }  }  }  }
        +} else if( (type == `) && (root == null) ){
        +   root = token;
        +}
        +>>>
        +
        +\<<<
        +if( type == ` ){
        +   if( token.equals("meta") ){
        +      if( metaType == null ){
        +         type = `;
        +         token = " ";
        +      } else {
        +         token = null;
        +      }
        +   } else {
        +      if( root == null ){
        +        root = token;
        +      }
        +      token = null;
        +   }
        +} else if( type == ` ){
        +   if( token.equals("DOCTYPE") ){
        +      type = `;
        +      token = " ";
        +   } else { token = null; }
        +} else if( type == ` ){
        +   if( !token.trim().equals("") ){
        +      dtdRoot = token.trim();
        +      token = " ";
        +      type = `;
        +   } else { token = null; }
        +} else if( type == ` ){
        +   if( !token.trim().equals("") ){
        +      token = token.trim();
        +      if( token.equals("PUBLIC") ){
        +         type = `;
        +         token = "";
        +      } else if( token.equals("SYSTEM") ){
        +         type = `;
        +         token = "";
        +      } else { token = null; }
        +   }
        +} else { token += ' '; }
        +>>>
        +
        +
        +\<<<
        +String dtdRoot = null,
        +      publicId = null,
        +      systemId = null,
        +       xtpipes = null,
        +           url = null,
        +      metaType = null,
        +   contentType = null,
        +          root = null;
        +>>>
        +
        +\OP{undef type}
        +\OP{new tok}
        +\OP{root or meta}
        +\OP{pre doctype}
        +\OP{doctype}
        +\OP{doctype root}
        +\OP{doctype id}
        +\OP{public id}
        +\OP{system id}
        +\OP{proc instruction}
        +\OP{proc root}
        +\OP{meta}
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{Input Objects for XML Strings}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Search String for Indirection}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +scriptFile = inputObject.getXtpipes();
        +rootName = inputObject.getRoot();
        +needScript = true;
        +>>>
        +
        +
        +Remove XtPipesSearch!!!!!!!!!!!!!!
        +
        +\<\><<<
        +try{
        +       `
        +       saxReader.setContentHandler( new XtPipesSearch() );
        +      `
        +       saxReaderStack.push( saxReader );
        +} catch(Exception e){
        +e.printStackTrace();
        +   instructionErr( node, errMsg + e.toString(), 13 );
        +}
        +>>>
        +
        +\<<<
        +errMsg = "Searching   in "
        +        + inData.substring(0, Math.min(70,inData.length()))
        +        + "... : ";
        +byte [] bytes = inData.getBytes("UTF-8");
        +ByteArrayInputStream bais = new ByteArrayInputStream( bytes );
        +InputSource is = new InputSource( bais );
        +saxReader.parse(is);
        +>>>
        +
        +%%%%%%%%%%%%%
        +\subsection{The Search Engine}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +private static class XtPipesSearch extends DefaultHandler {
        +   public void  endElement(String uri,
        +                           String localName, String qName){
        +     `
        +   }
        +   public void processingInstruction(String target, String attrs) {
        +     if( !needScript && target.equals("xtpipes") ){
        +        `
        +}  } }
        +>>>
        +
        +
        +The input file is
        +searched for an alternative script within a processing instruction of
        +the form \verb++.
        +
        +
        +\<<<
        +rootName = qName;
        +>>>
        +
        +
        +\<<<
        +try {
        +   `
        +   saxReader.setContentHandler(new DefaultHandler() {
        +      public void startElement(String uri, String localName,
        +         String qName, Attributes atts) {
        +         String filename = atts.getValue("file");
        +         if( filename != null ){
        +            scriptFile = filename;
        +            `
        +            needScript = true;
        +      }  }
        +   });
        +   String str = "";
        +   StringReader reader = new StringReader(str);
        +   InputSource in = new InputSource(reader);
        +   saxReader.parse(in);
        +   saxReaderStack.push( saxReader );
        +} catch(Exception e){
        +   System.err.println( "--- Error 10 --- " + e );
        +}
        +>>>
        +
        +
        +
        +
        +
        +
        +
        +\<<<
        +private static String  rootName;
        +>>>
        +
        +
        +\<<<
        +rootName = null;
        +>>>
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{Information About the Transformation}
        +%%%%%%%%%%%%%%%%%%
        +
        +%%%%%%%%%%%%%
        +\subsection{User's System}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +logWriter.println(
        +     "xtpipes (`version)"
        +     + "\n java.version: "    + System.getProperty("java.version")
        +     + "\n java.class.path: " + System.getProperty("java.class.path")
        +     + "\n os.name: "         + System.getProperty("os.name")
        +     + "\n user.home: "       + System.getProperty("user.home")
        +     + "\n user.dir: "        + System.getProperty("user.dir")
        +);
        +for( int k=0; k>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Script to be Used}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +if( messages ){
        +   logWriter.println(
        +      "Requesting XtPipes script file: "
        +      + filename );
        +}
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Preamble Attribute}
        +%%%%%%%%%%%%%
        +
        +\<<<
        +if ( (attr != null) && messages ) {
        +   logWriter.println( attr.getNodeValue() );
        +}
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Tracing}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +static boolean trace;
        +>>>
        +
        +\<<<
        +trace = false;
        +>>>
        +
        +
        +
        +\<<<
        +if( trace ){
        +   logWriter.print( "[##] = xtpipes => " + instruction );
        +   if( node.hasAttributes() ){
        +      NamedNodeMap attributes = node.getAttributes();
        +      for(int i=0; i < attributes.getLength(); i++ ){
        +         Node attr = attributes.item(i);
        +         logWriter.print( " "   + attr.getNodeName()
        +                         + "=\"" + attr.getNodeValue() + "\"" );
        +   } }
        +   logWriter.println(); logWriter.flush();
        +}
        +>>>
        +
        +\<<<
        +if( trace ){
        +   logWriter.print( "--> true" );
        +}
        +>>>
        +
        +\<<<
        +if( trace ){
        +   logWriter.print( "--> true" );
        +}
        +>>>
        +
        +
        +\<<<
        +if( trace ){
        +   logWriter.println( "(" + scriptFile + ")" );
        +}
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{loose Ends}
        +%%%%%%%%%%%%%%%%%%
        +
        +%%%%%%%%%%%%%%%%%%
        +\subsection{Fix XML Defaults}
        +%%%%%%%%%%%%%%%%%%
        +
        +\<<<
        +private static String [] ml2xml = null;
        +static Class ml2xmlClassObj = null;
        +>>>
        +
        +\<<<
        +if( args[n].substring(2).equals("") ){
        +   if( ml2xml == null ){ ml2xml = new String[0]; }
        +} else {
        +   if( ml2xml == null ){
        +      ml2xml = new String[1];
        +   } else {
        +      String [] m2x = new String [ml2xml.length + 1];
        +      for(int cnt=0; cnt < ml2xml.length; cnt++){
        +        m2x[cnt] = ml2xml[cnt];
        +      }
        +      ml2xml = m2x;
        +   }
        +   ml2xml[ ml2xml.length - 1 ] = args[n].substring(2);
        +}
        +>>>
        +
        +
        +\<<<
        +try{
        +   ml2xmlClassObj = Class.forName( "ml2xml.Ml2xml" );
        +} catch (java.lang.ClassNotFoundException cnf ){
        +   instructionErr( null, "Class not found: ml2xml.Ml2xml", 25 );
        +}
        +Class [] argTyp = { String.class, String[].class };
        +Constructor con = ml2xmlClassObj.getConstructor( argTyp );
        +try{
        +   `
        +   inputStream = (InputStream) con.newInstance(
        +         new Object[]{xml, ml2xml}
        +      );
        +} catch(java.lang.reflect.InvocationTargetException ite){
        +   String s = "Problem at: ml2xml.Ml2xml(" + xml + ","
        +              + "new String[]{" ;
        +   for(int i=0; i < Xtpipes.ml2xml.length; i++){
        +      s += ((i==0)? "\"" : ", \"") + Xtpipes.ml2xml[i] + "\"";
        +   }
        +   s += "})";
        +   instructionErr( null, s + "; " + ite.getCause(), 38);
        +}
        +>>>
        +
        + ite.getTargetException().printStackTrace();
        +
        +
        +\<<<
        +if( Xtpipes.ml2xml != null ){
        +   Class [] argTyp = {};
        +   Method m = ml2xmlClassObj . getMethod( "closeFiles", argTyp );
        +   m.invoke( null, new Object[0] );
        +}
        +>>>
        +
        +\<<<
        +if( Xtpipes.trace ){
        +   String s = "Calling: ml2xml.Ml2xml(inputStream,"
        +              + "new String[]{" ;
        +   for(int i=0; i < Xtpipes.ml2xml.length; i++){
        +      s += ((i==0)? "\"" : ", \"") + Xtpipes.ml2xml[i] + "\"";
        +   }
        +   s += "})";
        +   Xtpipes.logWriter.println( s );
        +}
        +>>>
        +
        +
        +\<<<
        +if( ml2xmlClassObj != null ){
        +  Class [] argTypes = { };
        +  Method m = ml2xmlClassObj.getMethod( "closeFiles", argTypes );
        +  Object parmValues[] = new Object[0];
        +  m.invoke( null, parmValues );
        +}
        +>>>
        +
        +
        +\<<<
        +import java.lang.reflect.Constructor;
        +>>>
        +
        +Ml2xml is referenced through reflection instead of directly so that xtpipes can
        +be delivered also without that utility, e.g., for tex4ht where no treatment of faulty
        +XML file is to be done. In fact, this approach can be generalized to offer
        +arbitrary filter for the input.
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%% 
        +\subsection{Unicode Filter}
        +%%%%%%%%%%%%%%%%%%
        +
        +Non-ASCII characters are translated into unicode hexadecimal entities.
        +The same holds for ascii characters listed within the filter.
        +
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +\AddFile{XtpipesUni.java}{xtpipes}
        +
        +
        +\<<<
        +/* XtpipesUni.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +package xtpipes;
        +public class XtpipesUni{
        +   `
        +   `
        +}
        +>>>
        +
        +\<<<
        +private static int D800 = Integer.parseInt("D800", 16);
        +private static int DFFF = Integer.parseInt("DFFF", 16);
        +private static int DC00 = Integer.parseInt("DC00", 16);
        +private static int X400 = Integer.parseInt("400",16);
        +private static int X10000 = Integer.parseInt("10000",16);
        +
        +
        +public static String toUni( char[] ch, int start, int length,
        +                                           String filter ){
        +   StringBuffer buf = new StringBuffer(length);
        +   for (int i = 0; i < length; i++) {
        +       int chr = ch[ start + i ];
        +       boolean ascii =  (chr == '\n')
        +                        || (chr > 31) && (chr < 127) ;
        +       if( filter.indexOf(chr) > -1 ){ ascii = false; }
        +
        +       if( (chr >= D800) && (chr<= DFFF) ){
        +          chr = ((ch[i] - D800) * X400 + (ch[++i] - DC00)) + X10000;
        +       }
        +
        +
        +       buf.append(
        +         ascii ? Character.toString((char) chr)
        +               : ("&#x"
        +                 + Integer.toHexString(chr).toUpperCase()
        +                 + ";" ) );
        +   }
        +   return new String(buf);
        +}
        +>>>
        +
        +\<<<
        +public static String toUni( String s, String filter ){
        +   char [] ch = s.toCharArray();
        +   int length = ch.length;
        +   return toUni(ch, 0, length, filter);
        +}
        +>>>
        +
        +
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Error Messagesg}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +
        +
        +\<<<
        +private static void instructionErr( Node node, String e, int num )
        +                                     throws Exception {
        +   String err = "--- xtpipes error " + num + " --- ";
        +   if( node != null ){
        +      err += "At <" + node.getNodeName();
        +      NamedNodeMap attr = node.getAttributes();
        +      for(int i=0; i
        +   Xtpipes.logWriter.flush();
        +   if( exceptionErrs ) { throw new Exception( err );  }
        +   else {
        +      System.err.println( err );
        +      System.exit(1);
        +   }
        +}
        +>>>
        +
        +
        +
        +\<<<
        +private static void instructionErr( Node node, String e,
        +                                StackTraceElement[] st, int num )
        +                                     throws Exception {
        +   Xtpipes.logWriter.println(
        +      "--- xtpipes error " + num + " --- " + e
        +   );
        +   for(int i=st.length-1; i>=0; i-- ){
        +      Xtpipes.logWriter.println( st[i].toString() );
        +   }
        +   instructionErr( node, e, num );
        +}
        +>>>
        +
        +
        +
        +
        +\<<<
        +new ErrorHandler() {
        +    public void warning(SAXParseException e) throws SAXParseException {
        +      showSpecifics("warning",e);
        +    }
        +    public void error(SAXParseException e) throws SAXParseException {
        +      showSpecifics("error",e);
        +    }
        +    public void fatalError(SAXParseException e) throws SAXParseException {
        +      showSpecifics("fatal error",e);
        +    }
        +    public void showSpecifics(String s, SAXParseException e)
        +                                                throws SAXParseException {
        +      String err =   "--- xtpipes " + s + " 24 --- " + e.getSystemId()
        +                     + " line " + e.getLineNumber()
        +                     + " col "  + e.getColumnNumber()
        +                     + " : "    + e.getMessage() ;
        +      if( exceptionErrs ) { throw new SAXParseException(
        +                                     err, (org.xml.sax.Locator) null ); }
        +      else {
        +         System.err.println( err );
        +         System.exit(1);
        +}   } }
        +>>>
        +
        +
        +
        +
        +
        +The follower listeners catch errors but their messages are not
        +delivered through the call to the new exceptions (why?).  The field
        +errMssg is used so that error 16 will produce the same error messages.
        +
        +\begin{description}
        +\item[Catches errors in the XSLT file]
        +
        +
        +
        +\<<<
        +new ErrorListener() {
        +   public void warning(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   public void error(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   public void fatalError(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   void showSpecifics(TransformerException e)
        +                                               throws  TransformerException{
        +     String err = e.getMessage() ;
        +     String loc = e.getLocationAsString();
        +     if( loc != null ){ err = loc + ": " + err; }
        +     err = "XSL stylesheet problem: " + err;
        +     if( errMssg == null ){ errMssg = err; }
        +     throw new TransformerException(err);
        +}  }
        +>>>
        +
        +
        +\item [Catches errors in the XML file]
        +
        +\<<<
        +new ErrorListener() {
        +   public void warning(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   public void error(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   public void fatalError(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   void showSpecifics(TransformerException e)
        +                                               throws  TransformerException{
        +     String err = e.getMessage() ;
        +     String loc = e.getLocationAsString();
        +     if( loc != null ){ err = loc + ": " + err; }
        +     if( errMssg == null ){ errMssg = err; }
        +     err = "XML document prblem: " + err;
        +     throw new TransformerException(err);
        +}  }
        +>>>
        +
        +
        +\<<<
        +new ErrorListener() {
        +   public void warning(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   public void error(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   public void fatalError(TransformerException e) throws TransformerException {
        +     showSpecifics(e);
        +   }
        +   void showSpecifics(TransformerException e)
        +                                               throws  TransformerException{
        +     String err = e.getMessage() ;
        +     String loc = e.getLocationAsString();
        +     if( loc != null ){ err = loc + ": " + err; }
        +     throw new TransformerException(err);
        +}  }
        +>>>
        +
        +
        +
        +\end{description}
        +
        +
        +\<<<
        +public static String errMssg;
        +>>>
        +
        +%%%%%%%%%%%%%%%%%%
        +\section{Serialize Dom}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +\<<<
        +static String serialize( Node root ){
        +   if( root.getNodeType() == Node.TEXT_NODE) {
        +         return root.getNodeValue();
        +   }
        +   if( root.getNodeType() == Node.ELEMENT_NODE) {
        +      String ser = "";
        +      String tagName = root.getNodeName();
        +      ser += "<" + tagName;
        +      `
        +      ser += "\n>";
        +      `
        +      ser += "";
        +      return ser;
        +   }
        +   if( root.getNodeType() == Node.DOCUMENT_NODE) {
        +      String ser = "";
        +      `
        +      return ser;
        +   }
        +   if( root == null ){ return "null"; }
        +   return "";
        +}
        +>>>
        +
        +\<<<
        +NodeList children = root.getChildNodes();
        +if(children.getLength() > 0) {
        +   for(int i = 0; i < children.getLength(); i++) {
        +      ser += serialize(children.item(i));
        +}  }
        +>>>
        +
        +\<<<
        +NamedNodeMap attributes = root.getAttributes();
        +for(int i = 0; i < attributes.getLength(); i++) {
        +   Attr attribute = (Attr) attributes.item(i);
        +   ser += "\n" + attribute.getName() + "=\""
        +               + attribute.getValue() + "\" ";
        +}
        +>>>
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Clean Xmlns}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +static ArrayList nsName, nsValue;
        +static void cleanXmlns( Node root ){
        +   if( root.getNodeType() == Node.ELEMENT_NODE) {
        +      int top = nsName.size();
        +      `
        +      `
        +       for(int i=nsName.size(); i>top; ){
        +         i--;
        +         nsName.remove(i);
        +         nsValue.remove(i);
        +       }
        +   } else if( root.getNodeType() == Node.DOCUMENT_NODE) {
        +      nsName = new ArrayList();
        +      nsValue = new ArrayList();
        +      `
        +      nsName = null;
        +      nsValue = null;
        +}  }
        +>>>
        +
        +
        +
        +\<<<
        +NodeList children = root.getChildNodes();
        +if(children.getLength() > 0) {
        +   for(int i = 0; i < children.getLength(); i++) {
        +      cleanXmlns(children.item(i));
        +}  }
        +>>>
        +
        +\<<<
        +ArrayList remove = new ArrayList();
        +NamedNodeMap attributes = root.getAttributes();
        +for(int i = 0; i < attributes.getLength(); i++) {
        +   Attr attribute = (Attr) attributes.item(i);
        +   String name = attribute.getName();
        +   if( name.startsWith("xmlns") ){
        +     if( (name.length() == 5) || (name.charAt(5) == ':') ){
        +        String value = attribute.getValue();
        +        `
        +        if( bool ){ remove.add(attribute);
        +        } else { nsName.add(name); nsValue.add(value); }
        +}  } }
        +for(int i=remove.size(); i>0; ){
        +   i--;
        +  ((Element) root).removeAttributeNode( (Attr) remove.get(i) );
        +}
        +remove = null;
        +>>>
        +
        +\<<<
        +boolean bool = false;
        +for(int k=nsName.size(); k>0; ){
        +  k--;
        +  if( ((String) nsName.get(k)) . equals(name) ){
        +     bool = ((String) nsValue.get(k)) . equals(value);
        +     break;
        +} }
        +>>>
        +
        +\<<<
        +import java.util.ArrayList;
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%%%%%% 
        +\subsection{Default Script}
        +%%%%%%%%%%%%%%%%%%
        +
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +\expandafter\AddFile\BIN{xtpipes-default.4xt}{xtpipes\Slash lib}
        +
        +\<<<
        +
        +
        +
        +
        +>>>
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%
        +\part{Useful Pre Fabricated Modules}
        +%%%%%%%%%%%%%%%%%%
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\section{ScriptsManager: A Content Handler}
        +%%%%%%%%%%%%%
        +
        +\label{ScriptsManager}
        +
        +
        +%%%%%%%%%%%%% 
        +\subsection{Outline}
        +%%%%%%%%%%%%%
        +
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +\AddFile{ScriptsManager.java}{xtpipes\Slash util}
        +
        +\<<<
        +/* ScriptsManager.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +package xtpipes.util;
        +`
        +public class ScriptsManager extends DefaultHandler {
        +     `
        +     PrintWriter out = null, log = null;
        +     HashMap scripts = null;
        +     Method method = null;
        +     boolean savemode=false;
        +     String code="", match = null;
        +     Stack stack = new Stack();
        +   public ScriptsManager( PrintWriter out,
        +                          HashMap scripts,
        +                          Method method,
        +                          PrintWriter log, boolean trace ){
        +     this.out = out;
        +     this.log = (log==null)? new PrintWriter( System.err ) : log;
        +     this.scripts = scripts;
        +     this.method = method;
        +   }
        +   public void characters(char[] ch, int start, int length){
        +     add( XtpipesUni.toUni(ch, start, length, "<>&") );
        +   }
        +   `
        +   `
        +   protected void add(String s){
        +      if( savemode ){ code+=s; }
        +      else { out.print(s); }
        +}  }
        +>>>
        +
        +
        +\<<<
        +import org.xml.sax.helpers.DefaultHandler;
        +import org.xml.sax.*;
        +import java.io.*;
        +import java.lang.reflect.*;
        +import java.util.HashMap;
        +import java.util.Stack;
        +>>>
        +
        +%%%%%%%%%%%%%
        +\subsection{Start Elements}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +\<<<
        +public void startElement(String ns, String sName,
        +                        String qName, Attributes atts) {
        +   `
        +   `
        +   inBody = true;
        +   String s =  "<" + qName + "\n";
        +   for(int i=0; i
        +      s += " " + name + "=\"" +
        +         XtpipesUni.toUni(value, "<>&\"") + "\"";
        +   }
        +   if( flag ){ ` }
        +   s += ">" ;
        +   `
        +}
        +>>>
        +
        +
        +\<<<
        +boolean inBody = false;
        +>>>
        +
        +
        +\<<<
        +String key = (atts==null)?
        +               null
        +             : (qName + "::" + atts.getValue("class"));
        +boolean flag = (key != null) && scripts.containsKey(key);
        +
        +if( !flag ){
        +   key = qName;
        +   flag = scripts.containsKey(key);
        +}
        +>>>
        +
        +\<<<
        +if( flag ){
        +   Object [] state = { Boolean.valueOf(savemode), code, match };
        +   stack.push( state );
        +   savemode=true; code=""; match= key;
        +} else {
        +   Object [] state = { Boolean.valueOf(savemode), null, null };
        +   stack.push( state );
        +}
        +add( s );
        +>>>
        +
        +The parsing of an XML string is similar to that of done by a
        +left-to-right bottom up parser of a programming language.
        +Specifically, the token are read and send on to the output stream,
        +until an element whose name appears in the hash table of scripts is
        +encountered.  When such an element is encountered, its body is
        +assembled and the corresponding script is applied on the body.  The
        +processing might be recursive, in the sense that enclosed elements
        +might also have scripts to process them.
        +
        +The above applies also to an element name concatenated with its class
        +attribute value, with the substring `::' as a separator.
        +
        +%%%%%%%%%%%%%
        +\subsection{End Elements}
        +%%%%%%%%%%%%%
        +
        +
        +
        +\<<<
        +public void endElement(String ns, String sName, String qName){
        +   String s = "";
        +   add( s );
        +   Object [] state = (Object []) stack.pop();
        +   if( (String) state[1] != null ){
        +     `
        +     `
        +     `
        +     if( !s.equals("") ){
        +       `
        +       add( s );
        +     }
        +   } else { ` }
        +}
        +>>>
        +
        +
        +
        +
        +
        +
        +
        +\<<<
        +Object parmValues[] = new Object[2];
        +parmValues[0] = scripts.get( match );
        +parmValues[1] = code;
        +try {
        +  s = (String) method.invoke( null, parmValues );
        +} catch(java.lang.reflect.InvocationTargetException e){
        +   log.println("--- ScriptsManager Error 1 --- " + e.getCause() );
        +   log.flush();
        +} catch (Exception e){
        +   log.println("--- ScriptsManager Error 2 --- " + e );
        +   log.flush();
        +}
        +>>>
        +
        +
        +Can't invoke exception above.
        +
        +\<<<
        +savemode = ((Boolean) state[0]).booleanValue();
        +code = (String) state[1];
        +match = (String) state[2];
        +>>>
        +
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Name Spaces at Start of Elements}
        +%%%%%%%%%%%%%
        +
        +\<<<
        +if( name.startsWith("xmlns") ){
        +  if( (name.length() == 5) || (name.charAt(5) == ':') ){
        +     `
        +     if( !bool ){
        +        nsName.add(name); nsValue.add(value);
        +} }  }
        +>>>
        +
        +
        +
        +
        +
        +\<<<
        +HashSet registry = new HashSet();
        +for(int i=nsName.size(); i>top; ){
        +  i--;
        +  registry.add( (String) nsName.get(i) );
        +}
        +for(int i=top; i>0; ){
        +  i--;
        +  String nm = (String) nsName.get(i);
        +  if( ! registry.contains(nm) ){
        +     registry.add( nm );
        +     s += " " + nm + "=\"" +
        +         XtpipesUni.toUni( (String) nsValue.get(i), "<>&\"") + "\"";
        +} }
        +>>>
        +
        +
        +
        +
        +\<<<
        +ArrayList nsName = new ArrayList(),
        +                         nsValue = new ArrayList();
        +Stack nsStack = new Stack();
        +>>>
        +
        +\<<<
        +import java.util.ArrayList;
        +import java.util.HashSet;
        +import xtpipes.XtpipesUni;
        +>>>
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Name Spaces at End of Elements}
        +%%%%%%%%%%%%%
        +
        +
        +\<<<
        +int m = s.indexOf('>');
        +char [] attrs = s.substring(0,m).toCharArray();
        +int result = qName.length()+1,
        +    mark = result,
        +    from=-1,
        +    control = `;
        +char delimiter = ' ';
        +String name="";
        +for(int i=result; i: { `  break; }
        +    case `: { ` break; }
        +    case `: { ` break; }
        +} }
        +s =  (new String(attrs,0, Math.min(result,attrs.length)))
        +          + s.substring(m);
        +>>>
        +
        +
        +
        +\<<<
        +if( attrs[i] == '=' ){
        +   name = (new String(attrs,mark,result-mark-1)).trim();
        +   control = `;
        +}
        +>>>
        +
        +\<<<
        +if( (attrs[i] == '"') || (attrs[i] == '\'') ){
        +   delimiter = attrs[i];
        +   control = `;
        +   from = result;
        +}
        +>>>
        +
        +\<<<
        +if( attrs[i] == delimiter ){
        +   if( name.startsWith("xmlns")
        +       && ((name.length() == 5) || (name.charAt(5) == ':')) ){
        +      String value = (new String(attrs,from,result-from-1)).trim();
        +      `
        +      if( bool ){ result = mark; }
        +   }
        +   mark = result;
        +   control = `;
        +}
        +>>>
        +
        +
        +
        +%%%%%%%%%%%%%
        +\subsection{Name Spaces Inheritence}
        +%%%%%%%%%%%%%
        +
        +
        +
        +
        +
        +\<<<
        +int top = nsName.size();
        +nsStack.push( Integer.valueOf(top) );
        +>>>
        +
        +\<<<
        +int top = ((Integer) nsStack.pop()) . intValue();
        +for(int i=nsName.size(); i>top; ){
        +  i--;
        +  nsName.remove(i);
        +  nsValue.remove(i);
        +}
        +>>>
        +
        +
        +
        +
        +
        +\OP{xmlns name}
        +\OP{xmlns quote}
        +\OP{xmlns value}
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%% 
        +\section{ScriptsManagerLH: A Lexical Handler}
        +%%%%%%%%%%%%%%%%%%
        +
        +\label{ScriptsManagerLH}
        +
        +The lexical handler sends its strings to the content hadler.
        +
        +\AtEndDocument{
        +   \OutputCodE\
        +}
        +\AddFile{ScriptsManagerLH.java}{xtpipes\Slash util}
        +
        +\<<<
        +/* ScriptsManagerLH.java (`version), generated from `jobname.tex
        +   Copyright (C) 2009-2010 TeX Users Group
        +   Copyright (C) `CopyYear.2002. Eitan M. Gurari
        +` */
        +package xtpipes.util;
        +import org.xml.sax.ext.LexicalHandler;
        +// import org.xml.sax.ContentHandler;
        +import java.io.PrintWriter;
        +public class ScriptsManagerLH implements LexicalHandler {
        +       ScriptsManager contentHandler;
        +       PrintWriter log;
        +   public ScriptsManagerLH( ScriptsManager contentHandler,
        +                          PrintWriter log, boolean trace ){
        +     this.contentHandler = contentHandler;
        +     this.log = (log==null)? new PrintWriter( System.err ) : log;
        +   }
        +   public void comment(char[] ch, int start, int length){
        +     if( contentHandler.inBody ){
        +        String s = new String(ch, start, length);
        +        contentHandler.add(  "");
        +   } }
        +   public void startEntity(String x){}
        +   public void endEntity(String x){}
        +   public void startCDATA(){}
        +   public void endCDATA(){}
        +   public void startDTD(String x, String y, String z){}
        +   public void endDTD(){}
        +}
        +>>>
        +
        +\begin{itemize}
        +\item
        +The line breaks in the comments are to avoid sequences of comments
        +loosing their intermediate line breaks and as a result causing
        +overflow of buffers.
        +
        +\item The comments in the preamble are included through the
        +preamble pattribute of xtpipes.
        +\end{itemize}
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%%%%%%
        +\begin{thebibliography}{10}
        +\bibitem{ref}
        +{\sl The Reflection API},
        +Tutorial, Sun Microsystems,
        +\url{http://java.sun.com/docs/books/tutorial/reflect/TOC.html}.
        +\end{thebibliography}
        +
        +
        +
        +
        +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        +
        +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        +\ifOption{win}
        +{
        +     \AtEndDocument{
        +        \OutputCodE\
        +        \Needs{"dodoc"}
        +     }
        +}
        +{ \ifOption{doc}{
        +  \AtEndDocument{\Needs{"
        +     mkdir -p doc.dir
        +     ;
        +     cd doc.dir
        +     ;
        +     java
        +        -classpath
        +        ..:../cgjsapi.jar:../../../jldir.dir:../../../jldir.dir/jldoc.jar:../../../ml2xml.dir/ml2xml.dir/bin/ml2xml.jar
        +        jldoc.Jldoc
        +        -title "Xtpipes APIs"
        +        ../work.dir
        +     ;
        +     cd ..
        +     ;
        +     /usr/bin/rm -r doc.dir
        +  "}}}{}
        +}
        +
        +
        +
        +
        +\<<<
        +cd work.dir
        +if NOT EXIST bin mkdir bin
        + javac -Xlint:unchecked  -d bin  xtpipes/*.java
        + javac -Xlint:unchecked  -d bin  xtpipes/util/*.java
        + javac -Xlint:unchecked  -d bin  *.java
        +cd bin
        + jar cf xtpipes.jar *
        +cd ..
        +cd xtpipes
        +if NOT EXIST bin mkdir bin
        + move ..\bin\xtpipes.jar bin\.
        +cd ..
        +cd ..
        +>>>
        +
        +\ifOption{win}{
        +\immediate\write16{......... work.dir\string \xtpipes\string \lib\string \*}
        +\immediate\write16{......... work.dir\string \xtpipes\string \bin\string \xtpipes.jar}
        +}{}
        +
        +
        +\ifOption{doc}{\let\DOC\def}{}
        +
        +
        +
        +\ifx\DOC\def
        +%%%%%%%%%%%%%%%%%%%%%%%
        +\<<<
        +if NOT EXIST doc.dir mkdir doc.dir
        +cd doc.dir
        +java -classpath ../../jldoc.dir;../../jldoc.dir/jldoc.jar;../../ml2xml.dir/ml2xml.dir/bin/ml2xml.jar jldoc.Jldoc -title "Xtpipes APIs"  ../work.dir/xtpipes
        +cd ..
        +rmdir /s /q doc.dir
        +>>>
        +%%%%%%%%%%%%%%%
        +
        +\fi
        +\
        +
        +
        +
        +
        +../../..;..;../../jldoc;../../xtpipes/cgjsapi.jar;../../xtpipes/xtpipes.jar;../../jldoc/jldoc.jar;../../ml2xml.dir/ml2xml.dir/bin/ml2xml.jar
        +
        +\ifdojava
        +\ifOption{win} {}{
        +\AtEndDocument{\Needs{%
        +    "pushd \XTPIPES || exit 1
        +     ;
        +     jar cf xtpipes.jar *
        +     ;
        +     popd
        +     ;
        +     mkdir -p \LIB || exit 1
        +     ;
        +     mv \XTPIPES xtpipes.jar \LIB
        +     ;
        +     mkdir -p \HOME texmf/tex4ht/xtpipes/. || exit 1
        +     ;
        +     cp \XTPIPES xtpipes/lib/*
        +        \HOME texmf/tex4ht/xtpipes/.
        +"}}
        +}
        +\fi
        +
        +
        +
        +\ifdojava
        +\ifOption{win} {}{
        +  \AtEndDocument{\Needs{"
        +      mkdir -p \LIB\space || exit 1
        +      ;
        +      find \WORK\space -type f -iname '*.java' -print0
        +      | xargs -0 javac -d \XTPIPES\space -sourcepath \WORK
        +      ;
        +      pushd \XTPIPES || exit 1
        +      ;
        +      jar cf xtpipes.jar *
        +      ;
        +      popd
        +      ;
        +      mv \XTPIPES xtpipes.jar \LIB
        +      ;
        +      "}}}
        +\fi
        +
        +
        +\end{document}
        diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
        index 279de58e32..a273c42520 100644
        --- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
        +++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
        @@ -51,6 +51,7 @@ $mirrors = {
               'https://cran.asia/tex/' => 1,
               'https://ftp.harukasan.org/CTAN/' => 1,
               'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
        +      'https://mirror.kakao.com/CTAN/' => 1,
               'https://mirror.navercorp.com/CTAN/' => 1,
               'https://mirror.yongbok.net/ctan/' => 1,
             },
        @@ -174,6 +175,7 @@ $mirrors = {
               'https://ctan.mirror.globo.tech/' => 1,
               'https://ctan.mirror.rafal.ca/' => 1,
               'https://mirror.0xem.ma/tex-archive/' => 1,
        +      'https://mirror.its.dal.ca/ctan/' => 1,
               'https://muug.ca/mirror/ctan/' => 1,
             },
             'Costa Rica' => {
        diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
        index 1c4faeb3bd..dd24655fd1 100644
        --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
        +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
        @@ -26,7 +26,7 @@ depend container_split_src_files/1
         depend frozen/0
         depend minrelease/2016
         depend release/2021
        -depend revision/59162
        +depend revision/59166
         
         name 00texlive.image
         category TLCore
        @@ -4383,7 +4383,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
         
         name 00texlive.installer
         category TLCore
        -revision 59156
        +revision 59164
         shortdesc TeX Live standalone installer package
         longdesc This package defines the files to go into the installer
         longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
        @@ -98609,20 +98609,20 @@ catalogue-topics notes editorial
         
         name easybook
         category Package
        -revision 59148
        +revision 59166
         shortdesc Typeset Chinese books or notes
         relocated 1
         longdesc Easybook is a minimalist style template based on the ctexbook
         longdesc book document class.
        -containersize 12928
        -containerchecksum bd66df269356a968a74ffe634d72bb8f52aa2927d132911efde5d02d45aa4040aa4fa281f1ac0e471c7b6fc37103593593a94fe25d3578e3644a3dba64630113
        -doccontainersize 304988
        -doccontainerchecksum f0be8eb584384b31da6262331647d210bc10eecf6f42c5781ca8909cdbd1b9b09a56617d704e0df506ed982398afc714f8e3bea5c8fd10e696332ac10050563f
        +containersize 12924
        +containerchecksum 6f58e57c5e5d976468001ada714f3869880856db3303623534a8fa4265765a6b8d2e63111fc4eea9a529982d4bf7c425fadcdb5609cb93d6e3f882b9d9129ced
        +doccontainersize 305016
        +doccontainerchecksum e27d978ec2823cd87178c97a2683e194a2d5bae286d6b7fd39ad3a0a2f01578c74476a8b5d762f097ddb2a34c19ae990db20d4e06527266ab266da987bef0948
         docfiles size=76
          RELOC/doc/latex/easybook/README.md details="Readme"
          RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh"
        -srccontainersize 28508
        -srccontainerchecksum a345fbc88947ac76237fe32da8df60d8fd876a9c1e748e2d5903ae3b564590a9b0d7fcc6edf224cbe6b0e844e2ec2a3a13d23efb68a57f4eb9c464aaeb551a57
        +srccontainersize 28488
        +srccontainerchecksum 3d395be95c6dd89e45d29081c61de0c136476817b2022253ca956e7f40bd2df75847c8fdef7d6e61fd7a1ded6c22bcc02c41b1e0e9d2fb0ce62ce88e8fbca669
         srcfiles size=30
          RELOC/source/latex/easybook/easybook.dtx
          RELOC/source/latex/easybook/easybook.ins
        @@ -98633,7 +98633,7 @@ catalogue-contact-repository https://gitee.com/texl3/easybook
         catalogue-ctan /macros/latex/contrib/easybook
         catalogue-license cc-by-4
         catalogue-topics book-pub class chinese expl3
        -catalogue-version 1.25f
        +catalogue-version 1.25g
         
         name easyfig
         category Package
        @@ -257732,23 +257732,23 @@ catalogue-version 1.0
         
         name pxjahyper
         category Package
        -revision 59116
        +revision 59165
         shortdesc Hyperref support for pLaTeX
         relocated 1
         longdesc This package adjusts the behavior of hyperref on (u)pLaTeX so
         longdesc that authors can properly create PDF documents that contain
         longdesc document information in Japanese.
        -containersize 15144
        -containerchecksum 86bd8b18e1672950f1205e4abe4b792a55e9dd5d64883f589cbdb0636f01e3ff76b2c740c8bbd4cea010bafdcf2a75142eb903983e62fa556c216669dce17365
        -doccontainersize 121632
        -doccontainerchecksum 8c08071bd052e8c5dd3bf236149b8c9a9c151faa57b539f00665de43d603a2debf6ee84401b9161c517ae416e7bb062aa1d45a7b65887107f1c222f69f6f322d
        -docfiles size=36
        +containersize 16284
        +containerchecksum 416353c1cd02e7047e9cb76d2f37cc028d46c8f5197cce005f35fb6e22bdf3f0ce90fa568eebdcd7fed8581063f9f3ab1a59d4beefa3b266d0ab0a296baebf81
        +doccontainersize 132308
        +doccontainerchecksum a89de8e4203a709b469d48044540aa3d8d82a39c297c0fe0b3f32f07ae72682bab43b0397b1318d7b8f60243dd6d1adbae3c0f68b0d33d78d5be240dc9ecc246
        +docfiles size=40
          RELOC/doc/platex/pxjahyper/LICENSE
          RELOC/doc/platex/pxjahyper/README-ja.md details="Readme (Japanese)" language="ja"
          RELOC/doc/platex/pxjahyper/README.md details="Readme"
          RELOC/doc/platex/pxjahyper/pxjahyper.pdf details="Package documentation (Japanese)" language="ja"
          RELOC/doc/platex/pxjahyper/pxjahyper.tex
        -runfiles size=17
        +runfiles size=19
          RELOC/tex/platex/pxjahyper/pxjahyper-ajm.def
          RELOC/tex/platex/pxjahyper/pxjahyper-enc.sty
          RELOC/tex/platex/pxjahyper/pxjahyper.sty
        @@ -257756,7 +257756,7 @@ catalogue-contact-repository https://github.com/zr-tex8r/PXjahyper
         catalogue-ctan /language/japanese/pxjahyper
         catalogue-license mit
         catalogue-topics japanese hyper
        -catalogue-version 0.8
        +catalogue-version 0.9a
         
         name pxjodel
         category Package
        @@ -299125,7 +299125,7 @@ docfiles size=376
         
         name texlive-scripts
         category TLCore
        -revision 59159
        +revision 59164
         shortdesc TeX Live infrastructure programs
         longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
         longdesc tlmgr to run but still ours. Not included in tlcritical.
        @@ -299133,10 +299133,10 @@ depend texlive-scripts.ARCH
         depend texlive.infra
         execute addMap mathpple.map
         postaction shortcut type=menu name="TeX Live command-line"   cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
        -containersize 107976
        -containerchecksum 1626717d0837fa1e2608c0db1c63f63c27193357c1493ec0f767928f5b442085ee9de66761e6ce2e322dbe5bce30d1d2e8b8ccd0f4f68b0ead1f3418e49c6d17
        -doccontainersize 396936
        -doccontainerchecksum 6c4bdf04c6253a875e371fae3d92410335bee80a3fe69d1615b34304bc93cef46f21b1bf3535bea4ad407b7b2041faf7b608281823affca2221132eb91991608
        +containersize 107992
        +containerchecksum 8f39f84a0e0faa86caf38cac47556a8ef69339ccafbe087d25416401ec73478a5d90fabbf1e6f9715cb758455f5f6e7b7d82ec266e9ab6c0acf41d6bb6b7392d
        +doccontainersize 396960
        +doccontainerchecksum ca9df8ecf3dddc6f051576df0ea30474632e60c03ad814a63a82d35fe0645172113b863fdb4efb30f3e6fc46df35d3bb48848b5fef6869fd021844ec664606ab
         docfiles size=490
          doc.html
          texmf-dist/doc/man/man1/fmtutil-sys.1
        diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
        index 0129d654ae..0ad26081e1 100644
        --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
        +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
        @@ -1 +1 @@
        -5cc2ef9f639e830422a993a50f772303  texlive.tlpdb
        +ac5fb7f0c270715e7802864db07a3fa1  texlive.tlpdb
        diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
        index 7ebc5c1f8b..2c17ee86e8 100644
        --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
        +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
        @@ -1 +1 @@
        -1af9bffc0c911a8968a1098b3ad48857a286608891a42c2af92aa5a8e84f4f8da819b771fd7353c2948b239b06dd67061f5613e3c70fe4c61bb8563b8c28ddd0  texlive.tlpdb
        +4536b0bc9cb3d146b7ef528d81327c989981c4e8bdac982c33f07970490ca11f0f0c1d8ae5db8048c9c0bde3c03a6ff00ce269071d90d8f4929a85dedbc4f134  texlive.tlpdb
        diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
        index d8bedad9bf..2aec04c178 100644
        --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
        +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
        @@ -1,10 +1,10 @@
         -----BEGIN PGP SIGNATURE-----
         
        -iQEcBAEBCgAGBQJgmcdbAAoJEEzhh34ZQ4xwwCUH/RM9eyRbet1RV6R7kd9QJtO+
        -9uFKst6GFMEX0GTrhZyMNZwODJ8whxSr1EXc4+mxlJ3b8X03WM+ZvGqHd9b9GyhT
        -kBvdVDMzNPM3QlRJtdgViCzE60naBmzgPfGrGmYE+S93QDZ5qNyIm9z94LjW0nO9
        -SM6/yHZAfS3kwbPbdDtVQ1aDNvi9C/4DjTTNlZHsPSmsLbGdGbxRz2zfOIkjObTR
        -w2zyUVatrKLxTQFBl1SXXS4gXT25rQ/q3reRP5RqGFaKx9MA1EuJc46Mzmf4qLpB
        -OEpiXpSwdFdIDOWz7N556DsoiEOEKwUcEL8JPhADxFij+grQI1Ybkhj46ndbyGI=
        -=CUJc
        +iQEcBAEBCgAGBQJgmxjRAAoJEEzhh34ZQ4xw7qgIAIdqVQJsUQ6IapCBmOxIf7rU
        +cuGQG0QBMYbiHg4WOsrV1hs0qccfEE/fcbiyyFz8pRLapR1ISRfhC3tkWk6aGpCJ
        +cqgbTI2j5/55VN9TT9X24hzPFqTQZzYN0XFvbh1DqwZReX1JWJbvzCrYhIgARF+6
        +vTjFSaY8C+fxgwXtJbJHadahvwSzcwXkhvcuLs1SOqINlY6e5QZ3JPgPs28Xds8A
        +GLw5soRuc7PDojVz3SNcbLMgD/FjBWx91s3KNVK9krNHzgoPNjN9WO5r2rtWRwcc
        +qcaVWD3ODkKQYUyXEhpoj8GTkZ2XWkxzc5yZCdZxXTFObkil4HvfuoC9pW1sebY=
        +=BAjq
         -----END PGP SIGNATURE-----
        diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
        index 8af4f715f1..275f7cafc7 100644
        Binary files a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz and b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz differ
        diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
        index 2957c5916d..b692635060 100644
        --- a/systems/win32/miktex/tm/packages/next/pr.ini
        +++ b/systems/win32/miktex/tm/packages/next/pr.ini
        @@ -1,13 +1,13 @@
         
         [repository]
        -date=1620677709
        +date=1620764077
         lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
        -lstdigest=4be7efd75619f1fd914e9d4217841a5c
        +lstdigest=195ec6e6580c7f9e3a5858491ffadf99
         numpkg=4095
         relstate=next
        -version=7800
        +version=7801
         
         ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
         ;;;;-----BEGIN MIKTEX SIGNATURE-----
        -;;;; signature/miktex: fdIUfrPOGpB9NPKeNrvHQKO3VTKcMGQH0Ltc1pIHObUIAJLMctXCZWz0NgwZJyGh+1nSKal+b//BBJazY0rW/JaunVDVCCT1QKDFIS7rusmSWnj1lIPwyns+r8tWBaqnAyWahtS/yHy+gv65kCt7LuaMv6iFmjagQ7vXtmSC62FORxaybE+dp5AE2BoYOrl5OkDmnvsA4KBzKj8gYDNxPTVZHENveUYOtuXafnl9GSH9zrv/wGdzTpGUgwNWF8F54R0y0cHF6gjJl55RVi7Vxuq321mJs/052Q82nvIALeciecEaUpPhTxibA3MfSVnk3q85FnMDMRsE3zeKxk0sKQ==
        +;;;; signature/miktex: VJl/RIbd/BwnyRVZpjTnafCFh9JLaftFoOh/Qgisn8yA/vl0YRy/R16BdzIjoAJH9hEG1+Y5+whtPAhvv+k32CawLx7YYAmLp4eigvGGWV3YTZrXvlkEQAhp/VcCDIfJ1jEeG0gj6w1SFM92n+9VomNr8+S2Y4HO0itREvtxPRr1IsaWrqsni1whB74HQFS8JYtWzpmNPLqIdNboGE/HuLZgDI/Qw3CTx5f9t/e/ZS7klY3lgzGCOEKBax8NGppupebY4aMnyWATZiwqdd2djNzxRnPqSqiDIdboX/4FdXG/xD1n7QiSzU5tfWJce5z/cbOMPKSl2mDDyt/cearbcA==
         ;;;;-----END MIKTEX SIGNATURE-----
        diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
        index bac6ad3f41..9f51cd27a6 100644
        --- a/systems/win32/miktex/tm/packages/pr.ini
        +++ b/systems/win32/miktex/tm/packages/pr.ini
        @@ -1,13 +1,13 @@
         
         [repository]
        -date=1620677488
        +date=1620763880
         lastupd=mparhack newcomputermodern nicematrix ninecolors onedown pbalance pgf-pie pm-isomath polexpr pst-circ pxjahyper rmannot texfot tipauni ut-thesis vcell windycity worldflags xint xintsession
        -lstdigest=227ee6b9694e09a7123c78a158f1483d
        +lstdigest=5caf338831feb012834bf4373ccb0ada
         numpkg=4095
         relstate=stable
        -version=7800
        +version=7801
         
         ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
         ;;;;-----BEGIN MIKTEX SIGNATURE-----
        -;;;; signature/miktex: VdC3FHu/ywqK8oGffDLBpNPgxgkTSOUBIrEbcPSNgst5Yj5Hr+Rnd0xc9Txl3xBOcg9vhDc0kTxRw4F/FxOm+EmzTK+Pt4RUcr7bBpIluLPEqRrUpT518XeOtceTj5lNblwCiW0TnmNgoQkfg6CDQgxUpKBFHeFqDrQZvR6ZeI+yu+NBcfexzycVZY51f6wcQKEDc6lZ3GL7vPVoxHkzygNeyJOJ+Hnca7U44o9uTv8eWEZVAyGBvv9OCNgpv6JFSwHVwKznxBmWR5J+MJzCP+TDYDkEPx7XJ82bFJhJV1t/3K2kViLD1czwr3bqWu19LMaFcDzyPbwTdoBB+5Q8UQ==
        +;;;; signature/miktex: PPAdFj3G7YVefUgzjmBAZA46bv/OeMXlRMaq9xTt8LUc3409tPrY1wlArSxg5LWliTOzmY+PZ7XCUiyQO12XazZrEP7tZWdHA5u8SrGrQBCWpehqWsyOZsVPvGDWvg1qEYYysQ+Q4uLafVtSTmIBfjOpIUvHNSlaAmZcmZckZyWtqJqCZNGWg9JBxUdZGMGQJizW+7cdetyPwcBX8e4qltX6fLR/U4WMpaKCHqE5S2AhU4/xPwSqv9UHW4WVUdGjWMjGLE64EWZAA/4/9e5Zi5AQymlUJCtSElsjU+isAK1/jhs/b821A7Qg5f7eM2eQlunje3K7digeUSBg2yydVA==
         ;;;;-----END MIKTEX SIGNATURE-----
        diff --git a/systems/win32/w32tex/ChangeLog b/systems/win32/w32tex/ChangeLog
        index a5c3b348a2..5b39014f7f 100644
        --- a/systems/win32/w32tex/ChangeLog
        +++ b/systems/win32/w32tex/ChangeLog
        @@ -1,5 +1,47 @@
                            W32TeX (x86 & x64) ChangeLog
         
        +[2021/05/11]
        +(01) luajittex-dev-w32.tar.xz
        +     Update luajittex.dll and luajithbtex.dll.
        +(02) luajittex-exp-w32.tar.xz
        +     Update luajittex.dll and luajithbtex.dll.
        +(03) luajittex-w32.tar.xz
        +     Update luajittex.dll and luajithbtex.dll.
        +(04) luatex-dev-w32.tar.xz
        +     Update luatex.dll and luahbtex.dll.
        +(05) luatex-exp-w32.tar.xz
        +     Update luatex.dll and luahbtex.dll.
        +(06) luatex-w32.tar.xz
        +     Update luatex.dll and luahbtex.dll.
        +(07) pdftex-w32.tar.xz
        +     Update pdftex.dll.
        +(08) ptex-w32.tar.xz
        +     Update pmpost.dll.
        +(09) uptex-w32.tar.x
        +     Update upmpost.dll.
        +(10) web2c-w32.tar.xz
        +     Update mpost.dll.
        +(11) win64/luajittex-dev-w64.tar.xz
        +     Update luajittex.dll and luajithbtex.dll.
        +(12) win64/luajittex-exp-w64.tar.xz
        +     Update luajittex.dll and luajithbtex.dll.
        +(13) win64/luajittex-w64.tar.xz
        +     Update luajittex.dll and luajithbtex.dll.
        +(14) win64/luatex-dev-w64.tar.xz
        +     Update luatex.dll and luahbtex.dll.
        +(15) win64/luatex-exp-w64.tar.xz
        +     Update luatex.dll and luahbtex.dll.
        +(16) win64/luatex-w64.tar.xz
        +     Update luatex.dll and luahbtex.dll.
        +(17) win64/pdftex-w64.tar.xz
        +     Update pdftex.dll.
        +(18) win64/ptex-w64.tar.xz
        +     Update pmpost.dll.
        +(19) win64/uptex-w64.tar.xz
        +     Update upmpost.dll.
        +(20) win64/web2c-w64.tar.xz
        +     Update mpost.dll.
        +
         [2021/05/10]
         (01) context.tar.xz
              ConTeXt version: 2021.05.09 17:12.
        diff --git a/timestamp b/timestamp
        index 37267e2c47..bd863acdb3 100644
        --- a/timestamp
        +++ b/timestamp
        @@ -2,4 +2,4 @@
         #   The source CTAN of this site's material:
         dante.ctan.org
         #   The year-month-day-hour-minute of this site's material:
        -2021-05-11-02-02
        +2021-05-12-02-02
        diff --git a/usergrps/usergrps/bg.html b/usergrps/usergrps/bg.html
        index 7d07b924eb..322b50e35f 100644
        --- a/usergrps/usergrps/bg.html
        +++ b/usergrps/usergrps/bg.html
        @@ -293,7 +293,7 @@ Bulgaria