From 4220324e99226b427519e0380034f951f67a011f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 18 Feb 2021 22:20:50 +0000 Subject: lwarp (18feb21) git-svn-id: svn://tug.org/texlive/branches/branch2020@57791 c570f23f-e606-0410-a88d-b1316a301751 --- .../texk/texlive/linked_scripts/lwarp/lwarpmk.lua | 19 +- Master/texmf-dist/doc/latex/lwarp/README.txt | 4 +- Master/texmf-dist/doc/latex/lwarp/lwarp.pdf | Bin 2653336 -> 3153568 bytes Master/texmf-dist/scripts/lwarp/lwarpmk.lua | 19 +- Master/texmf-dist/source/latex/lwarp/lwarp.dtx | 19534 +++++++++++++++---- Master/texmf-dist/source/latex/lwarp/lwarp.ins | 79 + .../texmf-dist/tex/latex/lwarp/lwarp-SIunits.sty | 121 +- .../texmf-dist/tex/latex/lwarp/lwarp-abstract.sty | 14 +- .../texmf-dist/tex/latex/lwarp/lwarp-accents.sty | 70 + .../tex/latex/lwarp/lwarp-accessibility.sty | 2 +- Master/texmf-dist/tex/latex/lwarp/lwarp-acro.sty | 9 +- .../tex/latex/lwarp/lwarp-adjmulticol.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-afterpage.sty | 2 - .../tex/latex/lwarp/lwarp-algorithm2e.sty | 42 +- .../tex/latex/lwarp/lwarp-algorithmicx.sty | 8 +- Master/texmf-dist/tex/latex/lwarp/lwarp-alltt.sty | 17 +- Master/texmf-dist/tex/latex/lwarp/lwarp-amscdx.sty | 34 + .../texmf-dist/tex/latex/lwarp/lwarp-amsmath.sty | 19 +- Master/texmf-dist/tex/latex/lwarp/lwarp-amsthm.sty | 51 +- .../texmf-dist/tex/latex/lwarp/lwarp-atbegshi.sty | 12 +- .../tex/latex/lwarp/lwarp-attachfile.sty | 2 +- .../tex/latex/lwarp/lwarp-attachfile2.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-authblk.sty | 11 +- .../texmf-dist/tex/latex/lwarp/lwarp-backnaur.sty | 32 + .../texmf-dist/tex/latex/lwarp/lwarp-backref.sty | 8 +- .../texmf-dist/tex/latex/lwarp/lwarp-biblatex.sty | 113 +- .../texmf-dist/tex/latex/lwarp/lwarp-booktabs.sty | 6 +- .../tex/latex/lwarp/lwarp-boxedminipage.sty | 36 + .../tex/latex/lwarp/lwarp-boxedminipage2e.sty | 14 +- Master/texmf-dist/tex/latex/lwarp/lwarp-braket.sty | 9 +- .../texmf-dist/tex/latex/lwarp/lwarp-breakurl.sty | 2 +- .../tex/latex/lwarp/lwarp-bussproofs.sty | 34 + Master/texmf-dist/tex/latex/lwarp/lwarp-cancel.sty | 5 + .../texmf-dist/tex/latex/lwarp/lwarp-caption.sty | 123 +- .../texmf-dist/tex/latex/lwarp/lwarp-caption3.sty | 97 + .../texmf-dist/tex/latex/lwarp/lwarp-centernot.sty | 6 +- .../texmf-dist/tex/latex/lwarp/lwarp-changes.sty | 344 +- .../texmf-dist/tex/latex/lwarp/lwarp-chemgreek.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-citeref.sty | 35 + .../texmf-dist/tex/latex/lwarp/lwarp-cleveref.sty | 132 + .../texmf-dist/tex/latex/lwarp/lwarp-cmbright.sty | 38 + .../tex/latex/lwarp/lwarp-colonequals.sty | 36 +- .../texmf-dist/tex/latex/lwarp/lwarp-colortbl.sty | 6 + .../latex/lwarp/lwarp-common-mathjax-letters.sty | 330 + .../lwarp/lwarp-common-mathjax-newpxtxmath.sty | 278 + .../lwarp/lwarp-common-mathjax-nonunicode.sty | 154 + .../lwarp/lwarp-common-mathjax-overlaysymbols.sty | 34 + .../tex/latex/lwarp/lwarp-common-multimedia.sty | 18 +- Master/texmf-dist/tex/latex/lwarp/lwarp-ctable.sty | 4 + .../texmf-dist/tex/latex/lwarp/lwarp-drftcite.sty | 28 + .../texmf-dist/tex/latex/lwarp/lwarp-easy-todo.sty | 4 +- .../tex/latex/lwarp/lwarp-econometrics.sty | 96 +- Master/texmf-dist/tex/latex/lwarp/lwarp-ed.sty | 2 +- Master/texmf-dist/tex/latex/lwarp/lwarp-embrac.sty | 3 + .../texmf-dist/tex/latex/lwarp/lwarp-enumitem.sty | 3 - .../texmf-dist/tex/latex/lwarp/lwarp-epigraph.sty | 66 +- Master/texmf-dist/tex/latex/lwarp/lwarp-epsf.sty | 30 + Master/texmf-dist/tex/latex/lwarp/lwarp-epsfig.sty | 8 +- .../tex/latex/lwarp/lwarp-epstopdf-base.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-epstopdf.sty | 2 +- Master/texmf-dist/tex/latex/lwarp/lwarp-errata.sty | 2 +- Master/texmf-dist/tex/latex/lwarp/lwarp-esvect.sty | 26 + .../texmf-dist/tex/latex/lwarp/lwarp-everyshi.sty | 3 + .../texmf-dist/tex/latex/lwarp/lwarp-fancybox.sty | 12 +- .../texmf-dist/tex/latex/lwarp/lwarp-fancyhdr.sty | 18 +- .../texmf-dist/tex/latex/lwarp/lwarp-fancyref.sty | 25 - .../texmf-dist/tex/latex/lwarp/lwarp-fancyvrb.sty | 46 +- Master/texmf-dist/tex/latex/lwarp/lwarp-fbox.sty | 102 + .../texmf-dist/tex/latex/lwarp/lwarp-fixmath.sty | 29 + Master/texmf-dist/tex/latex/lwarp/lwarp-fixme.sty | 6 +- Master/texmf-dist/tex/latex/lwarp/lwarp-float.sty | 22 +- .../texmf-dist/tex/latex/lwarp/lwarp-floatflt.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-floatrow.sty | 26 +- Master/texmf-dist/tex/latex/lwarp/lwarp-fnpara.sty | 21 + .../texmf-dist/tex/latex/lwarp/lwarp-fontaxes.sty | 22 +- Master/texmf-dist/tex/latex/lwarp/lwarp-forest.sty | 9 +- .../texmf-dist/tex/latex/lwarp/lwarp-fourier.sty | 86 + .../texmf-dist/tex/latex/lwarp/lwarp-fvextra.sty | 166 + Master/texmf-dist/tex/latex/lwarp/lwarp-gindex.sty | 42 + .../tex/latex/lwarp/lwarp-glossaries.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-graphics.sty | 34 +- .../texmf-dist/tex/latex/lwarp/lwarp-graphicx.sty | 2 +- Master/texmf-dist/tex/latex/lwarp/lwarp-hang.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-hepunits.sty | 84 + .../texmf-dist/tex/latex/lwarp/lwarp-hhtensor.sty | 47 + .../texmf-dist/tex/latex/lwarp/lwarp-hyperref.sty | 275 +- .../texmf-dist/tex/latex/lwarp/lwarp-idxlayout.sty | 12 +- .../texmf-dist/tex/latex/lwarp/lwarp-imakeidx.sty | 6 +- Master/texmf-dist/tex/latex/lwarp/lwarp-index.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-intopdf.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-isomath.sty | 32 + .../texmf-dist/tex/latex/lwarp/lwarp-isotope.sty | 86 + .../texmf-dist/tex/latex/lwarp/lwarp-jurabib.sty | 76 + .../tex/latex/lwarp/lwarp-karnaugh-map.sty | 9 +- .../texmf-dist/tex/latex/lwarp/lwarp-keyfloat.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-keystroke.sty | 70 + .../tex/latex/lwarp/lwarp-kpfonts-otf.sty | 76 + .../texmf-dist/tex/latex/lwarp/lwarp-kpfonts.sty | 87 + .../texmf-dist/tex/latex/lwarp/lwarp-lettrine.sty | 2 +- .../tex/latex/lwarp/lwarp-libertinust1math.sty | 334 + Master/texmf-dist/tex/latex/lwarp/lwarp-lineno.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-listings.sty | 52 +- .../texmf-dist/tex/latex/lwarp/lwarp-longtable.sty | 26 +- Master/texmf-dist/tex/latex/lwarp/lwarp-lpic.sty | 26 + .../tex/latex/lwarp/lwarp-luatodonotes.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-luavlna.sty | 23 + .../texmf-dist/tex/latex/lwarp/lwarp-lyluatex.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-makeidx.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-mathalpha.sty | 28 + .../tex/latex/lwarp/lwarp-mathastext.sty | 62 + .../tex/latex/lwarp/lwarp-mathdesign.sty | 65 + .../texmf-dist/tex/latex/lwarp/lwarp-mathdots.sty | 10 +- .../texmf-dist/tex/latex/lwarp/lwarp-mathfixs.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-mathpazo.sty | 34 + .../texmf-dist/tex/latex/lwarp/lwarp-mathptmx.sty | 32 + .../texmf-dist/tex/latex/lwarp/lwarp-mathspec.sty | 93 + .../texmf-dist/tex/latex/lwarp/lwarp-mathtools.sty | 133 +- .../texmf-dist/tex/latex/lwarp/lwarp-mattens.sty | 106 + .../texmf-dist/tex/latex/lwarp/lwarp-maybemath.sty | 30 + .../texmf-dist/tex/latex/lwarp/lwarp-mdframed.sty | 9 +- .../texmf-dist/tex/latex/lwarp/lwarp-mdwmath.sty | 29 + .../texmf-dist/tex/latex/lwarp/lwarp-menukeys.sty | 41 + Master/texmf-dist/tex/latex/lwarp/lwarp-mhchem.sty | 4 + Master/texmf-dist/tex/latex/lwarp/lwarp-minted.sty | 62 + .../texmf-dist/tex/latex/lwarp/lwarp-mismath.sty | 68 +- .../tex/latex/lwarp/lwarp-mleftright.sty | 27 + .../texmf-dist/tex/latex/lwarp/lwarp-moreverb.sty | 26 +- .../texmf-dist/tex/latex/lwarp/lwarp-multibib.sty | 26 + .../texmf-dist/tex/latex/lwarp/lwarp-multicol.sty | 4 - .../tex/latex/lwarp/lwarp-multiobjective.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-multirow.sty | 30 +- .../texmf-dist/tex/latex/lwarp/lwarp-nccmath.sty | 9 +- .../texmf-dist/tex/latex/lwarp/lwarp-newpxmath.sty | 41 + .../texmf-dist/tex/latex/lwarp/lwarp-newtxmath.sty | 51 + .../texmf-dist/tex/latex/lwarp/lwarp-newtxsf.sty | 50 + .../tex/latex/lwarp/lwarp-nfssext-cfr.sty | 348 +- .../texmf-dist/tex/latex/lwarp/lwarp-nicefrac.sty | 2 +- .../tex/latex/lwarp/lwarp-nicematrix.sty | 118 + .../texmf-dist/tex/latex/lwarp/lwarp-nowidow.sty | 1 - .../texmf-dist/tex/latex/lwarp/lwarp-ntheorem.sty | 20 +- .../tex/latex/lwarp/lwarp-parcolumns.sty | 5 +- .../texmf-dist/tex/latex/lwarp/lwarp-parnotes.sty | 4 +- .../tex/latex/lwarp/lwarp-patch-komascript.sty | 3 + .../tex/latex/lwarp/lwarp-patch-memoir.sty | 176 +- .../texmf-dist/tex/latex/lwarp/lwarp-pdfrender.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-physics.sty | 263 +- .../texmf-dist/tex/latex/lwarp/lwarp-picinpar.sty | 75 + .../texmf-dist/tex/latex/lwarp/lwarp-pinlabel.sty | 30 + .../texmf-dist/tex/latex/lwarp/lwarp-plimsoll.sty | 31 + .../texmf-dist/tex/latex/lwarp/lwarp-pstricks.sty | 5 + .../texmf-dist/tex/latex/lwarp/lwarp-pxfonts.sty | 28 + .../texmf-dist/tex/latex/lwarp/lwarp-quoting.sty | 2 +- .../tex/latex/lwarp/lwarp-realscripts.sty | 140 +- .../texmf-dist/tex/latex/lwarp/lwarp-repltext.sty | 26 + Master/texmf-dist/tex/latex/lwarp/lwarp-rlepsf.sty | 30 + .../texmf-dist/tex/latex/lwarp/lwarp-rmathbr.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-rotating.sty | 35 +- .../texmf-dist/tex/latex/lwarp/lwarp-rotfloat.sty | 1 + .../texmf-dist/tex/latex/lwarp/lwarp-scalerel.sty | 45 + .../texmf-dist/tex/latex/lwarp/lwarp-schemata.sty | 18 +- .../texmf-dist/tex/latex/lwarp/lwarp-scrextend.sty | 66 +- .../texmf-dist/tex/latex/lwarp/lwarp-selectp.sty | 22 + .../texmf-dist/tex/latex/lwarp/lwarp-seqsplit.sty | 44 + .../texmf-dist/tex/latex/lwarp/lwarp-shadethm.sty | 32 + .../texmf-dist/tex/latex/lwarp/lwarp-shuffle.sty | 54 + .../texmf-dist/tex/latex/lwarp/lwarp-sidenotes.sty | 12 +- .../texmf-dist/tex/latex/lwarp/lwarp-simplebnf.sty | 71 + .../texmf-dist/tex/latex/lwarp/lwarp-siunitx.sty | 161 +- Master/texmf-dist/tex/latex/lwarp/lwarp-skmath.sty | 232 + .../texmf-dist/tex/latex/lwarp/lwarp-slantsc.sty | 6 +- .../texmf-dist/tex/latex/lwarp/lwarp-splitbib.sty | 54 + .../texmf-dist/tex/latex/lwarp/lwarp-splitidx.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-statex2.sty | 2 +- .../tex/latex/lwarp/lwarp-statistics.sty | 268 + .../texmf-dist/tex/latex/lwarp/lwarp-statmath.sty | 53 +- .../texmf-dist/tex/latex/lwarp/lwarp-steinmetz.sty | 2 - .../texmf-dist/tex/latex/lwarp/lwarp-struktex.sty | 2 +- .../tex/latex/lwarp/lwarp-subcaption.sty | 21 +- Master/texmf-dist/tex/latex/lwarp/lwarp-subfig.sty | 10 +- Master/texmf-dist/tex/latex/lwarp/lwarp-svg.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-swfigure.sty | 32 + .../texmf-dist/tex/latex/lwarp/lwarp-tcolorbox.sty | 252 + Master/texmf-dist/tex/latex/lwarp/lwarp-tensor.sty | 54 + .../texmf-dist/tex/latex/lwarp/lwarp-termcal.sty | 44 + .../texmf-dist/tex/latex/lwarp/lwarp-textcomp.sty | 3 +- .../texmf-dist/tex/latex/lwarp/lwarp-textpos.sty | 4 +- .../tex/latex/lwarp/lwarp-thm-listof.sty | 50 + .../tex/latex/lwarp/lwarp-thm-restate.sty | 26 + Master/texmf-dist/tex/latex/lwarp/lwarp-thmbox.sty | 50 + .../texmf-dist/tex/latex/lwarp/lwarp-thmtools.sty | 29 + .../tex/latex/lwarp/lwarp-tikz-imagelabels.sty | 26 + Master/texmf-dist/tex/latex/lwarp/lwarp-tikz.sty | 21 +- .../texmf-dist/tex/latex/lwarp/lwarp-titlesec.sty | 17 +- .../texmf-dist/tex/latex/lwarp/lwarp-titling.sty | 39 +- .../texmf-dist/tex/latex/lwarp/lwarp-tocloft.sty | 30 +- .../texmf-dist/tex/latex/lwarp/lwarp-todonotes.sty | 2 +- .../texmf-dist/tex/latex/lwarp/lwarp-trivfloat.sty | 7 - .../texmf-dist/tex/latex/lwarp/lwarp-txfonts.sty | 28 + .../texmf-dist/tex/latex/lwarp/lwarp-txgreeks.sty | 44 + .../tex/latex/lwarp/lwarp-unicode-math.sty | 131 +- Master/texmf-dist/tex/latex/lwarp/lwarp-units.sty | 4 +- .../texmf-dist/tex/latex/lwarp/lwarp-upgreek.sty | 30 + Master/texmf-dist/tex/latex/lwarp/lwarp-url.sty | 5 +- Master/texmf-dist/tex/latex/lwarp/lwarp-ushort.sty | 30 + .../texmf-dist/tex/latex/lwarp/lwarp-varioref.sty | 28 + Master/texmf-dist/tex/latex/lwarp/lwarp-verse.sty | 4 +- .../tex/latex/lwarp/lwarp-witharrows.sty | 4 - .../texmf-dist/tex/latex/lwarp/lwarp-wrapfig.sty | 30 +- Master/texmf-dist/tex/latex/lwarp/lwarp-xcolor.sty | 34 +- Master/texmf-dist/tex/latex/lwarp/lwarp-xevlna.sty | 24 + .../texmf-dist/tex/latex/lwarp/lwarp-xfakebold.sty | 13 +- Master/texmf-dist/tex/latex/lwarp/lwarp-xfrac.sty | 7 - .../texmf-dist/tex/latex/lwarp/lwarp-xpinyin.sty | 2 + Master/texmf-dist/tex/latex/lwarp/lwarp.sty | 3352 ++-- 214 files changed, 25738 insertions(+), 6585 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-accents.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-amscdx.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-boxedminipage.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-bussproofs.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-caption3.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-citeref.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-cleveref.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-cmbright.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-common-mathjax-letters.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-common-mathjax-newpxtxmath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-common-mathjax-nonunicode.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-common-mathjax-overlaysymbols.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-drftcite.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-epsf.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-esvect.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-fbox.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-fixmath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-fnpara.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-fourier.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-fvextra.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-gindex.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-hepunits.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-hhtensor.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-isomath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-isotope.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-jurabib.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-keystroke.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-kpfonts-otf.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-kpfonts.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-libertinust1math.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-lpic.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-luavlna.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mathalpha.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mathastext.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mathdesign.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mathpazo.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mathptmx.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mathspec.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mattens.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-maybemath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mdwmath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-menukeys.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-minted.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-mleftright.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-multibib.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-newpxmath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-newtxmath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-newtxsf.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-nicematrix.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-picinpar.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-pinlabel.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-plimsoll.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-pxfonts.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-repltext.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-rlepsf.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-scalerel.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-selectp.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-seqsplit.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-shadethm.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-shuffle.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-simplebnf.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-skmath.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-splitbib.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-statistics.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-swfigure.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-tcolorbox.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-tensor.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-termcal.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-thm-listof.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-thm-restate.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-thmbox.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-thmtools.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-tikz-imagelabels.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-txfonts.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-txgreeks.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-upgreek.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-ushort.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-varioref.sty create mode 100644 Master/texmf-dist/tex/latex/lwarp/lwarp-xevlna.sty diff --git a/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua b/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua index dcf139cf615..95c5d37a137 100755 --- a/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua +++ b/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua @@ -1,8 +1,8 @@ #!/usr/bin/env texlua --- Copyright 2016-2020 Brian Dunn +-- Copyright 2016-2021 Brian Dunn -printversion = "v0.83" +printversion = "v0.895" requiredconfversion = "2" -- also at *lwarpmk.conf function printhelp () @@ -32,10 +32,11 @@ lwarpmk pdftohtml [-p project]: lwarpmk pdftosvg : Converts each PDF file to SVG. lwarpmk epstopdf : Converts each EPS file to PDF. lwarpmk clean [-p project]: Remove *.aux, *.toc, *.lof/t, - *.idx, *.ind, *.log, *_html_inc.*, .gl*, + *.idx, *.ind, *.bbl, *.log, *_html_inc.*, .gl*, *_html.pdf, *_html.html, *_html.sidetoc lwarpmk cleanall [-p project]: Remove auxiliary files, project.pdf, *.html lwarpmk cleanlimages: Removes all images from the "lateximages" directory. +lwarpmk -v: Print the version number. lwarpmk -h: Print this help message. lwarpmk --help: Print this help message. @@ -379,12 +380,13 @@ function removeaux () -- Remove auxiliary files: -- All .aux files are removed since there may be many bbl*.aux files. -- Also removes sourcename_html.pdf, sourcename_html.html, --- and sourcename_html.sidetoc. +-- and sourcename_html.sidetoc, plus comment_*.cut. -- os.execute ( rmname .. " *.aux " .. sourcename ..".toc " .. sourcename .. "_html.toc " .. sourcename ..".lof " .. sourcename .. "_html.lof " .. sourcename ..".lot " .. sourcename .. "_html.lot " .. + sourcename ..".bbl " .. sourcename .. "_html.bbl " .. " *.idx " .. " *.ind " .. sourcename ..".ps " .. sourcename .."_html.ps " .. @@ -393,7 +395,8 @@ os.execute ( rmname .. " *.aux " .. sourcename .. "_html.pdf " .. sourcename .. "_html.html " .. sourcename .. "_html.sidetoc " .. - " *_html_inc.* " + " *_html_inc.* " .. + " comment_*.cut" ) end @@ -890,6 +893,12 @@ print ("lwarpmk: Done.") elseif (arg[1] == nil) then printhelp () +-- lwarpmk -v: + +elseif (arg[1] == "-v" ) then +-- The version number has already been printed +-- by the lwarpmk intro. + -- lwarpmk -h or lwarpmk --help : elseif (arg[1] == "-h" ) or (arg[1] == "--help") then diff --git a/Master/texmf-dist/doc/latex/lwarp/README.txt b/Master/texmf-dist/doc/latex/lwarp/README.txt index 1a9232fc82e..f77e4ae669c 100644 --- a/Master/texmf-dist/doc/latex/lwarp/README.txt +++ b/Master/texmf-dist/doc/latex/lwarp/README.txt @@ -1,5 +1,5 @@ -LaTeX lwarp package v0.83 README.txt +LaTeX lwarp package v0.895 README.txt Files included are: @@ -41,7 +41,7 @@ and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later. -Copyright 2016-2020 Brian Dunn +Copyright 2016-2021 Brian Dunn Homepage: http://BDTechConcepts.com Email: bd@BDTechConcepts.com diff --git a/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf b/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf index 18cd82265d7..e49cbc84fbb 100644 Binary files a/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf and b/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf differ diff --git a/Master/texmf-dist/scripts/lwarp/lwarpmk.lua b/Master/texmf-dist/scripts/lwarp/lwarpmk.lua index dcf139cf615..95c5d37a137 100755 --- a/Master/texmf-dist/scripts/lwarp/lwarpmk.lua +++ b/Master/texmf-dist/scripts/lwarp/lwarpmk.lua @@ -1,8 +1,8 @@ #!/usr/bin/env texlua --- Copyright 2016-2020 Brian Dunn +-- Copyright 2016-2021 Brian Dunn -printversion = "v0.83" +printversion = "v0.895" requiredconfversion = "2" -- also at *lwarpmk.conf function printhelp () @@ -32,10 +32,11 @@ lwarpmk pdftohtml [-p project]: lwarpmk pdftosvg : Converts each PDF file to SVG. lwarpmk epstopdf : Converts each EPS file to PDF. lwarpmk clean [-p project]: Remove *.aux, *.toc, *.lof/t, - *.idx, *.ind, *.log, *_html_inc.*, .gl*, + *.idx, *.ind, *.bbl, *.log, *_html_inc.*, .gl*, *_html.pdf, *_html.html, *_html.sidetoc lwarpmk cleanall [-p project]: Remove auxiliary files, project.pdf, *.html lwarpmk cleanlimages: Removes all images from the "lateximages" directory. +lwarpmk -v: Print the version number. lwarpmk -h: Print this help message. lwarpmk --help: Print this help message. @@ -379,12 +380,13 @@ function removeaux () -- Remove auxiliary files: -- All .aux files are removed since there may be many bbl*.aux files. -- Also removes sourcename_html.pdf, sourcename_html.html, --- and sourcename_html.sidetoc. +-- and sourcename_html.sidetoc, plus comment_*.cut. -- os.execute ( rmname .. " *.aux " .. sourcename ..".toc " .. sourcename .. "_html.toc " .. sourcename ..".lof " .. sourcename .. "_html.lof " .. sourcename ..".lot " .. sourcename .. "_html.lot " .. + sourcename ..".bbl " .. sourcename .. "_html.bbl " .. " *.idx " .. " *.ind " .. sourcename ..".ps " .. sourcename .."_html.ps " .. @@ -393,7 +395,8 @@ os.execute ( rmname .. " *.aux " .. sourcename .. "_html.pdf " .. sourcename .. "_html.html " .. sourcename .. "_html.sidetoc " .. - " *_html_inc.* " + " *_html_inc.* " .. + " comment_*.cut" ) end @@ -890,6 +893,12 @@ print ("lwarpmk: Done.") elseif (arg[1] == nil) then printhelp () +-- lwarpmk -v: + +elseif (arg[1] == "-v" ) then +-- The version number has already been printed +-- by the lwarpmk intro. + -- lwarpmk -h or lwarpmk --help : elseif (arg[1] == "-h" ) or (arg[1] == "--help") then diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx index 26c58843b54..51892df0c1b 100644 --- a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx +++ b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx @@ -1,7 +1,7 @@ % % \iffalse meta-comment % -% Copyright 2016-2020 Brian Dunn +% Copyright 2016-2021 Brian Dunn % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -16,7 +16,7 @@ % \iffalse %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{lwarp} -% [2020/03/25 v0.83 Allows LaTeX to directly produce HTML5 output.] +% [2021/02/18 v0.895 Allows LaTeX to directly produce HTML5 output.] % %<*driver> \documentclass{ltxdoc} @@ -24,8 +24,8 @@ \PassOptionsToPackage{quiet}{textcomp}% Not all chars supported in TT font. \usepackage{lmodern} -% \usepackage{libertine} -\usepackage[space]{erewhon} +\usepackage{libertine} +% *88* \usepackage[space]{erewhon} \usepackage[varqu,varl]{inconsolata} % typewriter % \usepackage{roboto}% conflicts with \textsc inside a float % \usepackage{sourcecodepro} @@ -85,8 +85,10 @@ \newunicodechar{฿}{\textbaht} \newunicodechar{℠}{\textservicemark} -\usepackage[log-declarations=false]{xparse} +% \usepackage[log-declarations=false]{xparse} +\usepackage{xparse} +\usepackage{ifptex}% *8* remove later \usepackage[lwarpmk]{lwarp} @@ -163,6 +165,7 @@ \usepackage{enumitem} +\newlist{inlinedesc}{description*}{1} \usepackage{array} \usepackage{longtable} @@ -565,8 +568,8 @@ bibtex \textred{\_html}.gls \DescribeOption{GlossaryCmd}\DescribeDefault{makeglossaries} \DescribeOption[lwarpmk]{printglossary} \DescribeOption[lwarpmk]{htmlglossary} -\prog{lwarpmk} has the commands \texttt{lwarpmk printglossary} and -\texttt{lwarpmk htmlglossary}, which process the glossaries created by the +\prog{lwarpmk} has the commands \cmds{lwarpmk printglossary} and +\cmds{lwarpmk htmlglossary}, which process the glossaries created by the \pkg{glossaries} package using that package's \prog{makeglossaries} program. The shell command to execute is set by the \pkg{lwarp} option \optn{GlossaryCmd}, @@ -760,6 +763,10 @@ allowing other packages to work with it. \newcommand*{\limitspagenote}{% \pkg{pagenote} works as-is, but the \optn{page} option is disabled. + +Note that labels in page notes do not appear as expected, +\trouble[labels]{pagenote=\pkg{pagenote}} +even in the print version. } \newcommand*{\limitsendnotes}{% @@ -814,27 +821,6 @@ so care must be taken to avoid accidentally including valid \HTML\ code inside these environments. Adding a space on either side may be sufficient. } -\newcommand{\limitshspace}{% -\DescribeMacro{\hspace}% -\gindex{space>horizontal}% -\gindex{horizontal space}% -\cs{hspace} is converted to an inline \HTML\ span of the given width, -except that \texttt{0} width is ignored, -a width of \texttt{.16667em} is converted to -an \HTML\ thin breakable space (\texttt{U+2009}), -and a \cs{fill} is converted to a \cs{qquad}. - -\gindex{\texttt{\textasciitilde}}% -\gindex{\cs{,}}% -\DescribeMacro{\,}% -\texttt{\~} and \cs{,} are converted to \HTML\ entities. - -\DescribeMacro{\kern}% -\DescribeMacro{\hskip}% -\cs{kern} and \cs{hskip} are entered into the \HTML\ \PDF\ output as-is, -then interpreted by \prog{pdftotext}, and thus usually appear as a single space. -} - \newcommand{\limitstextcomp}{% Some \pkg{textcomp} symbols do not have Unicode equivalents, and thus are not supported. @@ -848,6 +834,11 @@ In the \CSS\ try referencing fonts which are more complete, but expect to see ga \newcommand{\limitsaccents}{% Native \LaTeX\ accents such as \cs{"} will work, but many more kinds of accents are available when using Unicode-aware \XeLaTeX\ and \LuaLaTeX. +If using accents in section names which will become file names, it is recommended +to use the \LaTeX\ accents such as \cs{"} and \cs{v} instead of Unicode accents. +The \LaTeX\ accents will have the accents stripped when creating the filenames, +whereas the Unicode accents will appear in the file names, which may cause +issues with some operating systems. } \newcommand{\limitsrelsize}{% @@ -1025,7 +1016,6 @@ instead of pdf\LaTeX. Many features are ignored during the \HTML\ conversion. The goal is source-level compatibility. -\cs{titlehead}, \cs{subject}, \cs{captionformat}, \cs{figureformat}, and \cs{tableformat} are not yet emulated. \testthis @@ -1035,6 +1025,10 @@ Please contact the author with any bug reports. } \newcommand{\limitsmemoir}{ +\pkg{lwarp} uses \pkg{caption}, which causes a warning from \pkg{memoir}. +\trouble[captions]{memoir=\pkg{memoir}>captions} +This is normal. Adjust captions via \pkg{caption}, instead of \pkg{memoir}. + While emulating \pkg{memoir}, \pkg{lwarp} pre-loads a number of packages (\cref{sec:patch-memoir-packages}). This can cause an options clash when the user's document later loads the same @@ -1062,19 +1056,52 @@ Since \pkg{lwarp} is intended to support the freestanding packages, which are often newer than the date declared by \pkg{memoir}, it is hoped that \pkg{memoir} will update and change its emulated version numbers to match. -\cs{verbfootnote} is not supported. +\cs{label} accepts an optional \optn{(bookmark)} argument, but this is +\margintag{\texttt{\cs{label}(bookmark)\{tag\}}} +ignored in \HTML. + +The \env{comment} environment is from the \pkg{comment} package, and thus +\trouble[\env{comment}]{comment=\env{comment}} +\trouble{memoir=\pkg{memoir}>comment=\env{comment}} +requires that the \cs{begin} and \cs{end} each be on its own line: +\begin{sourcedisplay} +\cs{begin}\{comment\} \\ +This is a comment. \\ +\cs{end}\{comment\} +\end{sourcedisplay} +Comments defined with \cs{newcomment} use \pkg{memoir}'s defintions, and +\margintag{\cs{newcomment}} +behave as expected, where the \cs{begin} and \cs{end} do have to each be on its own line. -\cs{newfootnoteseries}, etc. are not supported. +\cs{verbfootnote} is not supported.\watchout[verbatim footnotes] + +\cs{newfootnoteseries}, etc. are not supported.\watchout[\cs{newfootnoteseries}] \pkg{lwarp} loads \pkg{pagenote} to perform \pkg{memoir}'s pagenote functions, +\watchout[page notes] but there are minor differences in \cs{pagenotesubhead} and related macros. -Poem numbering is not supported. +To add support for pagenotes with \pkg{cleveref}, add: +\margintag{page notes with cleveref} +\trouble{memoir=\pkg{memoir}>page notes} +\begin{sourcedisplay} +\cs{crefname}\{pagenote\}\{page note\}\{page notes\} \\ +\cs{Crefname}\{pagenote\}\{Page note\}\{Page notes\} +\end{sourcedisplay} + +Note that for print mode, +\margintag{page note \cs{nameref}} +\cs{nameref} print the section name where the page notes are +declared in the text, but for \HTML\ it prints the name where the page notes are printed. + +Poem numbering is not supported.\watchout[poems] The \env{verbatim} environment does not yet support the \pkg{memoir} enhancements. +\watchout[\env{verbatim}] It is currently recommended to load and use \pkg{fancyvrb} instead. The \pkg{memoir} glossary system is not yet supported by \prog{lwarpmk}. +\watchout[glossaries] The \pkg{glossaries} package may be used instead, but does require the glossary entries be changed from the \pkg{memoir} syntax to the \pkg{glossaries} syntax. @@ -1116,6 +1143,10 @@ Horizontal spacing relies on \prog{pdftotext}'s ability to discern the layout text in the \HTML-tagged \PDF\ output. For some settings of \cs{HTMLleftmargini} or \cs{HTMLleftskip} the horizontal alignment may not work out exactly, in which case a label may be shifted by one space. +\trouble[\env{verse} margin]{verse=\pkg{verse}>margin} +\trouble{memoir=\pkg{memoir}>verse>margin} +During translation to \HTML, the stanza numbers are kept out of the left margin, +which would have caused \prog{pdftotext} to shift everything over. } @@ -1224,8 +1255,9 @@ before and after each image. \subsubsection{\brand{MathJax} option} \label{sec:limitsmathjax} -The popular \brand{MathJax} alternative (\url{mathjax.org}) may be used to display math. +The \brand{MathJax} (\url{mathjax.org}) \LaTeX-math to \HTML\ converter \margintag{\brand{MathJax} math option} +may be used to display math. \DescribeProgram{MathJax} \gindex{math>mathjax=\brand{MathJax} summary} \gindex{mathjax=\brand{MathJax}>summary} @@ -1237,8 +1269,9 @@ equation numbering and cross referencing to be almost entirely under the control \item As detokenized printed \LaTeX{} commands placed directly into the \HTML\ output for interpretation by the \brand{MathJax} display scripts. An additional script is used to pre-set the equation number format and value according to the current \LaTeX\ values, -and the \brand{MathJax} cross-referencing system is ignored in favor of the \LaTeX\ internal system, -seamlessly integrating with the rest of the \LaTeX\ code. +and the \brand{MathJax} equation numbering system is ignored in favor of the \LaTeX\ internal system, +seamlessly integrating with the rest of the \HTML\ output, including any math +appearing in non-\brand{MathJax} \SVG\ output. \end{enumerate} \subsubsection{Customizing \brand{MathJax}} @@ -1264,12 +1297,6 @@ Limitations when using \brand{MathJax} include: \cs{multicolumn} only fills a single cell, resulting in a short row. \cs{multirow} simply prints its text on the first line. -\item \brand{MathJax} does not support subequations. - \trouble[subequations]{mathjax=\brand{MathJax}>subequations}% - \trouble{math>subequations}% - This may be improved by parsing the \LaTeX{} - math expression to manually insert tags, but this has not yet been done. - \item Footnotes are emulated when used inside a \brand{MathJax} expression. \watchout[footnotes] For an equation with a single footnote, the correct footnote number is used. @@ -1289,7 +1316,7 @@ Limitations when using \brand{MathJax} include: \item Math appearing inside a lateximage, \margintag{lateximage} and therefore also inside a \tikz\ or \env{picture} - environment, is rendered as SVG math even if \brand{MathJax} + environment, is rendered as \SVG\ math even if \brand{MathJax} is used in the rest of the document. \item For \pkg{siunitx}, @@ -1305,19 +1332,23 @@ Limitations when using \brand{MathJax} include: While \brand{MathJax} is enabled inside \env{tabbing}, the browser may not correctly render the horizontal alignment of the math and text following after on the same line. -\item Other math-related macros and packages are not directly supported by \brand{MathJax}, +\item \brand{MathJax} includes the \prog{textmacros} extension, + \margintag{\cs{text}} + which supports various macros which are commonly used inside \cs{text}, + such as \cs{textbf} and text accents. + \pkg{Lwarp} supports this extension. + +\item Many other math-related macros and packages are \trouble[other macros and packages]{mathjax=\brand{MathJax}>unsupported packages} - including \cs{ensuremath} and \pkg{bigdelim}, - and occasionally-used macros such as \cs{relax}. + \trouble{package>mathjax=\brand{MathJax} support} + not directly supported by \brand{MathJax}, + including \cs{ensuremath} and occasionally-used macros such as \cs{relax}. While using \brand{MathJax}, \pkg{lwarp} provides emulation - for footnotes, \pkg{bm}, \pkg{mathtools}, - \pkg{nicefrac}, \pkg{siunitx}, and \pkg{units}. - -\item Starred macros are generally not supported - \trouble[starred macros]{starred macros>mathjax=\brand{MathJax}} - \trouble{math>starred macros and mathjax=\brand{MathJax}} - \trouble{mathjax=\brand{MathJax}>starred macros} - by MathJax or the \pkg{lwarp} emulations. + for many of these macros, as well as for footnotes and emulation for + dozens of packages (see \cref{tab:supported}). + In many cases these emulations simply ignore the package in a source-compatible way. + Others produce a result which represents the meaning, even if they don't look exact. + Look up each package in this document for a description of the limitations of each. \end{itemize} } @@ -1345,7 +1376,7 @@ package. \DescribeMacro{\inlinemathnormal} \DescribeMacro{\inlinemathother} An inline math expression is usually converted to a reusable hashed \SVG\ math -image, or a MathJax expression. The hash or expression depends on the contents +image, or a \brand{MathJax} expression. The hash or expression depends on the contents of the math expression. In most cases this math expression is static, such as \texttt{\$x+1\$}, so the image can be reused for multiples instances of the same expression. In some cases, @@ -1355,9 +1386,13 @@ change between uses. Another problem is complicated contents \margintag{complicated \attribute{alt} tag} which do not expand well in an \attribute{alt} tag. -The macro \cs{inlinemathother} may be used before a dynamic -math expression, and \cs{inlinemathnormal} after. Doing so tells \pkg{lwarp} to -use an unhashed \SVG\ math image, even if MathJax is in use. +Yet another problem is math packages which are only partially emulated +\margintag{\brand{MathJax} limitations} +in \brand{MathJax}. +The macro \cs{inlinemathother} may be used before a sequence of dynamic or complicated +math expressions, and \cs{inlinemathnormal} after. Doing so tells \pkg{lwarp} to +use unhashed \SVG\ math images for those particular expressins, even if \brand{MathJax} +is otherwise in use. See \cref{sec:localizingdynamicmath}. } @@ -1365,7 +1400,7 @@ See \cref{sec:localizingdynamicmath}. \DescribeMacro{\displaymathnormal} By default, or when selecting \cs{displaymathnormal}, \brand{Mathjax} math display environments print their contents -as text into \HTML, +as text into \HTML\ for \brand{MathJax} to interpret, and \SVG\ display math environments render their contents as \SVG\ images and use their contents as the \attribute{alt} tag of \HTML\ output. To do so, the contents are loaded into a macro for reuse. @@ -1376,7 +1411,7 @@ When selecting \cs{displaymathother}, it is assumed that the contents are more complicated than ``pure'' math. An example is an elaborate \tikz\ picture, -\margintag{MathJax unsupported} +\margintag{\brand{MathJax} unsupported} which will not render in \brand{MathJax} and will not make sense as an \HTML\ \attribute{alt} tag. \margintag{complicated \attribute{alt} tag} @@ -1389,6 +1424,27 @@ so complicated objects such as \tikz\ pictures are more likely to compile succes \newcommand{\limitscustomizemathjax}{% +\pkg{lwarp} detects and adjusts \brand{MathJax} equation numbering format for +\margintag{equation numbering} +\gindex{equation numbering>mathjax=\brand{MathJax}} +\gindex{math>equation numbering, mathjax=\brand{MathJax}} +\gindex{mathjax=\brand{MathJax}>equation numbering} +\trouble{equation numbering>mathjax=\brand{MathJax}} +\trouble{mathjax=\brand{MathJax}>equation numbering} +\trouble{math>equation numbering>mathjax=\brand{MathJax}} +\pkg{article} and \pkg{book} style equations as well as +\pkg{amsmath} \cs{numberwithin} for chapters, sections, and subsections. +Custom equation number formats may be set as follows, for example: +\begin{sourcedisplay} +\cs{renewcommand*}\{\cs{theequation}\}\{\cs{Alph}\{section\}.\cs{arabic}\{equation\}\} \\ +\textred{\cs{AtBeginDocument}\{} \\ + \fquad\cs{renewcommand*}\{\cs{theMathJaxsection}\}\{\cs{Alph}\{section\}.\} \\ +\textred{\}} +\end{sourcedisplay} +The \pkg{amsmath} \env{subequations} environment is supported, but only +\watchout[\env{subequation}] +with \cs{alpha} subequation numbering. + \brand{MathJax} does not have preexisting support every possible math function. \margintag{global customizations} Additional \brand{MathJax} function definitions may be @@ -1447,9 +1503,45 @@ macros may be defined as follows: To maintain compile speed, use the \env{warpMathJax} environment, and use a separate math environment for each definition. -Starred macros are generally not supported - \watchout[starred macros] - by MathJax or the \pkg{lwarp} emulations. +\DescribeMacro{\ifstar} +For \brand{MathJax}, use \cs{ifstar} instead of \cs{@ifstar}: +\gindex{starred macros} +\gindex{ifnextstar=\cs{@ifnextstar} with \brand{MathJax}} +\gindex{@ifstar=\cs{@ifstar} with \brand{MathJax}} +\gindex{mathjax=\brand{MathJax}>starred macros} +\trouble{mathjax=\brand{MathJax}>starred macros} +\trouble{math>starred macros and mathjax=\brand{MathJax}} +\gindex{mathjax=\brand{MathJax}>@ifstar=\cs{@ifstar} macros} +\trouble{mathjax=\brand{MathJax}>@ifstar=\cs{@ifstar} macros} +\trouble{math>@ifstar=\cs{@ifstar} macros and \brand{MathJax}} +\begin{sourcedisplay} +\cs{CustomizeMathJax}\{ \\ + \fquad \cs{def}\cs{myname}\{\\ + \fqquad \cs{ifstar}\cs{starredaction}\cs{unstarredaction} \\ + \fqquad \% \textred{(Do not place anything after!)} \\ + \fquad \} +\} +\end{sourcedisplay} + +\DescribeMacro{\ifnextchar} +For \brand{MathJax}, use \cs{ifnextchar} instead of \cs{@ifnextchar}: +\gindex{@ifnextchar=\cs{@ifnextchar} with \brand{MathJax}} +\gindex{ifnextchar=\cs{@ifnextchar} with \brand{MathJax}} +\gindex{mathjax=\brand{MathJax}>@ifnextchar=\cs{@ifnextchar} macros} +\trouble{mathjax=\brand{MathJax}>@ifnextchar=\cs{@ifnextchar} macros} +\trouble{math>@ifnextchar=\cs{@ifnextchar} macros and \brand{MathJax}} +\begin{sourcedisplay} +\cs{CustomizeMathJax}\{\cs{def}\cs{myname}\{\cs{ifnextchar} X \cs{found}\cs{notfound}\}\} +\end{sourcedisplay} +``\texttt{X}'' may be a single \acro{ASCII} character, +or a hex number inside braces, ex: +\begin{sourcedisplay} +\cs{CustomizeMathJax}\{\cs{def}\cs{myname}\{\cs{ifnextchar}\{0x7B\}\cs{found}\cs{notfound}\}\} +\end{sourcedisplay} +Use ``\texttt{(}'' or ``\texttt{\{0x28\}}'' for a left parenthesis, +``\texttt{\{0x7B\}}'' for a left brace, +``\texttt{\{0x7D\}}'' for a right brace, +or ``\texttt{\{0x5C\}}'' for a backslash. } %\newcommand{\limitscustomizeKaTeX}{% @@ -1479,10 +1571,10 @@ in section names use paren math \texttt{\textbackslash(x+y\textbackslash)} \trouble{math>file name} instead of dollar math \texttt{\$x+y\$}. (Dollar math works, but appears in the filename.) -Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfstring}: +Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfstring} +from the \pkg{hyperref} package: \begin{sourcedisplay} -\cs{section}\{A name with math \\ - \fqquad \cs{texorpdfstring}\{\$1+2=3\$\}\{text description\}\} +\cs{section}\{Some math \cs{texorpdfstring}\{\$1+2=3\$\}\{three\}\} \end{sourcedisplay} } @@ -1497,7 +1589,6 @@ Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfst If using \brand{MathJax}: \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>mathtools=\pkg{mathtools}} \begin{itemize} - \item Starred macros are not available. Starred environments do work. \item \pkg{mathtools} \optn{disallowspaces} does not work for \brand{MathJax}. Protect brackets which are not optional arguments, such as: \begin{sourcedisplay} @@ -1513,14 +1604,19 @@ Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfst \item For the new \env{cases}-like environments, \cs{text} must be used to set the normal roman font if desired. \item \env{alignat} in \brand{MathJax} requires math mode, but - in \LaTeX it doesn't. It may be required to use \env{warpHTML} and + in \LaTeX\ it doesn't. It may be required to use \env{warpHTML} and \env{warpprint} to isolate a version for each mode. - \item \cs{DeclareParedDelimiter} and related must be in the preamble + \item \cs{DeclarePairedDelimiter} and related must be in the preamble before \linebreak \texttt{\cs{begin}\{document\}}. - The starred versions of each macro are not created. \end{itemize} } +\newcommand{\limitsacro}{% +Define acronymn formats using \cs{textbf} instead +\watchout[formats] +of \cs{bfseries} etc. +} + \newcommand{\limitschemfig}{% If using \cs{polymerdelim} to add delimiters to a \cs{chemfig}, wrap both inside a single \env{lateximage}: @@ -1553,11 +1649,34 @@ This conversion is not total. Font control is via \CSS, and the custom \LaTeX\ font settings are ignored. +If the print version does not use \pkg{cleveref}, +\trouble[cref reference format undefined]{ntheorem=\pkg{ntheorem}>cref reference format} +\trouble{cref reference format} +\trouble{cleveref=\pkg{cleveref}>cref reference format} +place all \cs{theoremstyle} and \cs{newtheorem} +declarations in the preamble inside \cs{AtBeginDocument}.\footnote{% + \pkg{lwarp} uses \pkg{cleveref} for the \HTML\ conversion, + and loads \pkg{cleveref} \cs{AtEndPreamble}, just before \cs{AtBeginDocument}.% +} +For some theorems, it may also be required to add inside \cs{AtBeginDocument} +something such as: +\begin{sourcedisplay} +\cs{AtBeginDocument}\{ \% if not using cleveref package \\ + \fquad \cs{theoremstyle}\{definition\} \\ + \fquad \cs{newtheorem}\{dtheorem\}\{Definition\} \\ + \fquad \dots \\ + \fquad \cs{usepackage}\{etoolbox\} \% for \cs{ifdef} \\ + \fquad \cs{ifdef}\{\cs{cref}\}\{ \\ + \fqquad \cs{crefname}\{Proof\}\{Proof\}\{Proofs\} \\ + \fquad \}\{\} \\ +\} +\end{sourcedisplay} + \limitsntheoremnumbering } \newcommand{\limitsntheoremnumbering}{% -\pkg{ntheorem} has a bug with equation numbering in \AmS\ environments% +\pkg{ntheorem} has a bug with equation numbering in \AmS\ environments \trouble[Equation numbering]{ntheorem=\pkg{ntheorem}>numbering} \trouble{math>equation numbering>ntheorem=\pkg{ntheorem}} \trouble{AMSmath>ntheorem=\pkg{ntheorem}>numbering} @@ -1597,7 +1716,7 @@ the extension will be changed to \filenm{.svg} for \HTML: \end{sourcedisplay} \DescribeProgram{pdftocairo} -\margintag{PDF to SVG} +\margintag{\PDF\ to \SVG} To convert a \PDF\ image to \SVG, use the utility \prog{pdftocairo}: \userentry{pdftocairo -svg filename.pdf} For a large number of images, use \prog{lwarpmk}: @@ -1611,14 +1730,14 @@ For \EPS\ images converted to \PDF\ using the package \pkg{epstopdf}, use \userentry{lwarpmk pdftosvg *.PDF} to convert to \SVG\ images. When using \DVI\ \prog{latex}, -\margintag{DVI latex} +\margintag{\DVI\ \LaTeX} it is necessary to convert \EPS\ to \PDF\ and then to \SVG: \gindex{image>PDF or EPS>converting} \userentry{lwarpmk epstopdf *.eps\qquad \textrm{(or a list of filenames)}} \userentry{lwarpmk pdftosvg *.pdf\qquad \textrm{(or a list of filenames)}} For \PNG\ or \JPG -\margintag{PNG and JPG} +\margintag{\PNG\ and \JPG} \gindex{image>PNG and JPG} \gindex{PNG images} \gindex{JPG images} @@ -1627,8 +1746,8 @@ the same file may be used in both print or \HTML\ versions, and may be used with but will also be used without the file extension if it is the only file of its base name. -GIF files may be used for \HTML, -\margintag{GIF} +\GIF\ files may be used for \HTML, +\margintag{\GIF} \gindex{image>GIF} \gindex{GIF images} but another format must also be provided for print output. @@ -1777,9 +1896,9 @@ by an \SVG, \PNG, or \JPG\ version for \HTML. } \newcommand{\limitscolor}{% -\pkg{color} is superceded by \pkg{xcolor}, and -\pkg{lwarp} requires several of the features of \pkg{xcolor}. -When \pkg{color} is requested, \pkg{xcolor} is loaded as well. + \pkg{color} is superceded by \pkg{xcolor}, and + \pkg{lwarp} requires several of the features of \pkg{xcolor}. + When \pkg{color} is requested, \pkg{xcolor} is loaded as well. } \newcommand{\limitsxcolor}{% @@ -1965,6 +2084,36 @@ or the packages \pkg{multirow}, \pkg{longtable}, \pkg{supertabular}, or \pkg{xta \trouble[floatrow]{floatrow=\pkg{floatrow}>ttabbox=\cs{ttabbox}} which used \cs{ttabbox} from \pkg{floatrow}. \item \limitsresumetabular + \item To automate the use of \cs{StartDefiningTabulars} + \gindex{StartDefiningTabulars=\cs{StartDefiningTabulars}} + \gindex{tabular>StartDefiningTabulars=\cs{StartDefiningTabulars}} + \gindex{tabular>in environments, catcode of \&} + \margintag{For developers:} + and \cs{EndDefiningTabulars}, + these macros may be embedded inside an \HTML\ environment definition + to automatically change the catcode of \texttt{\&} before + absorbing the arguments. + Another environment may be embedded as well. + \begin{sourcedisplay} + \% Does the work after the catcode has been changed: \\ + \cs{newcommand}*\{\textblue{\cs{LWR@HTML@subsomename}}\}[2]\{\% \\ + \fquad \dots \\ + \fquad \textgreen{\cs{otherenvironmentname} [] \{\}}\quad \% for example \\ + \} \\ + \% Change catcode before absorbing arguments: \\ + \cs{newcommand}*\{\cs{LWR@HTML@somename}\{\% \\ + \fquad \textred{\cs{StartDefiningTabulars}} \\ + \fquad \textblue{\cs{LWR@HTML@subsomename}} \\ + \} \\ + \% Change catcode again at the end: \\ + \cs{newcommand}*\{\cs{LWR@HTML@endsomename}\}\{\% \\ + \fquad \dots \\ + \fquad \textgreen{\cs{endotherenvironmentname}} \quad \% for example \\ + \fquad \textred{\cs{StopDefiningTabulars}} \\ + \} \\ + \% Combine with the existing print definition: \\ + \cs{LWR@formattedenv}\{somename\} + \end{sourcedisplay} \end{itemize} \item [Cell contents:] \ @@ -2148,16 +2297,16 @@ when the containing enviroment ends, resulting in corrupted \HTML\ rows. To fix this, use \cs{ResumeTabular} as follows. This is ignored in print mode. \begin{sourcedisplay} -\textred{\cs{StartDefiningTabulars}} \% because \& is used in a definition \\ +\textred{\cs{StartDefiningTabulars}} \% \quad (\& is used in a definition) \\ \cs{newenvironment}\{outerenvironment\} \\ \{ \\ -\cs{tabular}\{cc\} \\ -left \& right \textbackslash\textbackslash \\ +\fquad \cs{tabular}\{cc\} \\ +\fquad left \& right \textbackslash\textbackslash \\ \} \\ \{ \\ -\textred{\cs{TabularMacro}\cs{ResumeTabular}} \\ -left \& right \textbackslash\textbackslash \\ -\cs{endtabular} \\ +\fquad \textred{\cs{TabularMacro}\cs{ResumeTabular}} \\ +\fquad left \& right \textbackslash\textbackslash \\ +\fquad \cs{endtabular} \\ \} \\ \textred{\cs{StopDefiningTabulars}} \\ \end{sourcedisplay} @@ -2432,11 +2581,12 @@ Unfortunately, the \HTML\ \attribute{alt} attribute is not used here. Also see \pkg{lwarp}'s \cs{fboxBlock} macro and \env{fminipage} environment for alternatives to \cs{fbox} for framing environments. -The \pkg{fancybox} documentation's example framed table +The \pkg{fancybox} documentation's example of a framed table \margintag{framed table example} using an \cs{fbox} containing a \env{tabular} does not work with \pkg{lwarp}, but the \env{FramedTable} environment does work if -\cs{fbox} is replaced by \cs{fboxBlock}. This method loses \HTML\ formatting. +\cs{fbox} is replaced by \cs{fboxBlock}. +This method does lose some \HTML\ formatting. A better method is to enclose the table's contents inside a \env{fminipage} environment. The caption may be placed either inside or outside the \env{fminipage}: \begin{sourcedisplay} @@ -2573,13 +2723,23 @@ If using \cs{newfloat}, \pkg{trivfloat}, and/or % would appear in the List of Figures/Tables before the enclosing figure/table, % therefore \pkg{lwarp} does not place subfigures in the LOF/LOT. +To have correct sub table numbers: +\trouble[table numbering]{table>numbering>subfig=\pkg{subfig}} +\trouble{subfig=\pkg{subfig}>numbering} +\trouble{subtable>numbering>subfig=\pkg{subfig}} +\begin{sourcedisplay} +\cs{usepackage}\{caption\}\\ +\cs{captionsetup}[table]\{position=top\} +\end{sourcedisplay} + + At present, the package options for \optn{lofdepth} and \optn{lotdepth} \trouble[\optn{lof/lotdepth}]{subfig=\pkg{subfig}>options} are not working. These counters must be set separately after the package has been loaded. In the document source, use \cs{hfill} and \cs{hspace*} -\trouble{horizontal spacing}{subfig>inline} +\trouble[horizontal spacing]{subfig=\pkg{subfig}>inline} between subfigures to spread them apart horizontally. The use of other forms of whitespace may cause paragraph tags to be generated, resulting in subfigures @@ -2661,18 +2821,17 @@ For math expressions while using \brand{MathJax}, \trouble[MathJax]{mathjax=\brand{MathJax}>siunitx=\pkg{siunitx}} a limited emulation is used. Most functions work reasonably well, but many options cannot be emulated. -\pkg{siunitx} macros with more than one optional value cannot absorb the second optional -value, and complicated parsing such as for \cs{ang} is not supported. +Complicated parsing such as for \cs{ang} is not supported. The result usually looks fine, and otherwise is enough to get the meaning across. -\pkg{lwarp}'s \brand{MathJax} emulation for \pkg{siunitx} is meant to be a -stop-gap measure until an extension is included in \brand{MathJax}. -As of this writing, the third-party \pkg{siunitx} extension -for \brand{MathJax} is not currently hosted at any public CDN, -thus \pkg{siunitx} is not usable with this extension unless a local copy -of this extension is created first. -See \cs{MathJaxFilename} to select a custom MathJax script, but \pkg{lwarp}'s -emulation would have to be diabled as well. +% \pkg{lwarp}'s \brand{MathJax} emulation for \pkg{siunitx} is meant to be a +% stop-gap measure until an extension is included in \brand{MathJax}. +% As of this writing, the third-party \pkg{siunitx} extension +% for \brand{MathJax} is not currently hosted at any public CDN, +% thus \pkg{siunitx} is not usable with this extension unless a local copy +% of this extension is created first. +% See \cs{MathJaxFilename} to select a custom \brand{MathJax} script, but \pkg{lwarp}'s +% emulation would have to be diabled as well. Document modifications required for \brand{MathJax}: \begin{itemize} @@ -2705,29 +2864,18 @@ These packages do work with \pkg{lwarp}'s option \optn{svgmath}. \newcommand{\limitsphysics}{% \pkg{physics} works as-is for \HTML\ with \SVG\ math. -For \brand{MathJax}, emulation is provided via \brand{MathJax} macros. -These are not the same as the third-party \brand{MathJax} extension. - -\begin{itemize} -\item The \optn{notrig} option is honored. -\item Starred macros are not yet detected.\watchout -\item Most macros don't work with \cs{big}, etc.\watchout -\item Macros do not auto-detect variable numbers of mandatory arguments. \watchout - Provide empty \texttt{\{\}} arguments for those which are not used. -\item Many of the macros do not work with auto-detected delimiters. \watchout - Use the delimiter-specific versions instead. - Some macros do not even consider the following arguments, - so they may work as expected. -\item For \cs{Re} and \cs{Im}, the arguments must be in braces.\watchout -\item For \cs{functionalderivative}, for the example in the manual with $(E-TS)$, - enclose the parens in braces. -\item \cs{expectationvalue} requires and uses two mandatory arguments, \watchout - unlike the third-party \brand{MathJax} \pkg{physics} extension. -\item Each of \cs{matrixquantity}, \cs{smallmatrixquantity}, - and \cs{matrixdeterminant} work, - while \cs{identitymatrix} and the following simply print a place-holder, - and must be replaced by hand. -\end{itemize} +For \brand{MathJax}, the \brand{MathJax} v3 \pkg{physics} extension is used. +% emulation is provided via \pkg{lwarp}'s \brand{MathJax} macros. +% These are not the same as the third-party \brand{MathJax} extension. +% +% \begin{itemize} +% \item The \optn{notrig} option is honored. +% \item Most macros don't work with \cs{big}, etc.\watchout +% \item Each of \cs{matrixquantity}, \cs{smallmatrixquantity}, +% and \cs{matrixdeterminant} work, +% while \cs{identitymatrix} and the following simply print a place-holder, +% and must be replaced by hand using \env{warpprint} and \env{warpHTML}. +% \end{itemize} } @@ -2743,7 +2891,8 @@ These are not the same as the third-party \brand{MathJax} extension. \newcommand{\limitsbabeltwo}{% When French is used, the caption separator is \trouble[\cs{CaptionSeparator}]{babel=\pkg{babel}>French} -changed to a dash. The following may be used to restore it to a colon: +changed to a dash. To restore it to a colon, +the following may be placed before \pkg{lwarp} is loaded: \begin{sourcedisplay} \cs{renewcommand}*\{\cs{CaptionSeparator}\}\{:\textasciitilde\} \end{sourcedisplay} @@ -2762,12 +2911,12 @@ changes do not affect the \HTML\ output. } \newcommand{\limitspolyglossia}{% -\trouble{Undefined control sequence>polyglossia=\pkg{polyglossia}} -\trouble{polyglossia=\pkg{polyglossia}>Undefined control sequence} +\trouble{Undefined control sequence \dots begindocument>polyglossia=\pkg{polyglossia}} +\trouble{polyglossia=\pkg{polyglossia}>Undefined control sequence \dots begindocument} \pkg{lwarp} uses \pkg{cleveref}, which has some limitations when using \pkg{polyglossia}, possibly resulting in the error \begin{sourcedisplay} -!~Undefined control sequence. \dots\ \cs{@begindocumenthook} +!~Undefined control sequence. \dots\ \cs{\_\_hook} begindocument \end{sourcedisplay} To test compatibility, add @@ -2824,27 +2973,6 @@ The defaults are as follows, and may be changed in the preamble after \bigskip } -\newcommand{\limitsxparse}{% -\trouble{xparse=\pkg{xparse}} -To remove from the log any warnings about redeclaring objects, -place the following before \pkg{lwarp} is loaded: -\begin{sourcedisplay} -\cs{usepackage}[log-declarations=false]\{xparse\} -\end{sourcedisplay} -} - -\newcommand{\limitsnewtxmath}{% -The proper load order is: -\trouble[loading sequence]{newtxmath=\pkg{newtxmath}} -\begin{sourcedisplay} -\textrm{\dots} \\ -\cs{usepackage}\{lwarp\} \\ -\textrm{\dots} \\ -\cs{usepackage}\{amsthm\} \\ -\cs{usepackage}\{newtxmath\} \\ -\textrm{\dots} \\ -\end{sourcedisplay} -} % For use in the documentation update section: @@ -2925,7 +3053,7 @@ This boolean may be tested by the user for later use. %<*package> % \fi % -% \CheckSum{43597} +% \CheckSum{53146} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -3051,6 +3179,17 @@ This boolean may be tested by the user for later use. % \changes{v0.81}{2020/03/04}{\ 2020/03/04} % \changes{v0.82}{2020/03/25}{\ 2020/03/25} % \changes{v0.83}{2020/03/27}{\ 2020/03/27} +% \changes{v0.84}{2020/04/24}{\ 2020/04/24} +% \changes{v0.85}{2020/05/01}{\ 2020/05/01} +% \changes{v0.86}{2020/05/12}{\ 2020/05/12} +% \changes{v0.87}{2020/06/03}{\ 2020/06/03} +% \changes{v0.88}{2020/07/19}{\ 2020/07/19} +% \changes{v0.89}{2020/09/03}{\ 2020/09/03} +% \changes{v0.891}{2020/09/22}{\ 2020/09/22} +% \changes{v0.892}{2020/10/07}{\ 2020/10/07} +% \changes{v0.893}{2020/11/26}{\ 2020/11/26} +% \changes{v0.894}{2020/12/24}{\ 2020/12/24} +% \changes{v0.895}{2021/02/18}{\ 2021/02/18} @@ -3074,7 +3213,7 @@ This boolean may be tested by the user for later use. % % \fileversion{} \Dash \filedate % -% {\small\textcopyright{} 2016--2020} Brian Dunn\\ \small \texttt{bd@BDTechConcepts.com} +% {\small\textcopyright{} 2016--2021} Brian Dunn\\ \small \texttt{bd@BDTechConcepts.com} % % \end{center} % @@ -3083,9 +3222,10 @@ This boolean may be tested by the user for later use. % The \pkg{lwarp} package converts \LaTeX\ to \HTML\ by using \LaTeX\ to process the % user's document and directly generate \HTML\ tags. External utility programs are only % used for the final conversion of text and images. Math may be represented -% by \SVG\ images or \brand{MathJax}. Hundreds of \LaTeX\ packages are supported, -% including dozens with \brand{MathJax} emulation. -% +% by \SVG\ images or \brand{MathJax}. +% More than 500 \LaTeX\ packages and classes are supported, +% of which more than 90 also support \brand{MathJax}. +% % Documents may be produced by \DVI\ or \PDF\ \LaTeX, Lua\LaTeX, \XeLaTeX; % by several CJK engines, classes, and packages; % or by customized systems such as \pkg{perltex} and \pkg{pythontex}. @@ -3273,11 +3413,261 @@ This boolean may be tested by the user for later use. % % \begin{description} % \needspace{2\baselineskip} +% \item[v0.895:] Vector packages, greatly improved \brand{MathJax} for \pkg{siunitx}. +% \begin{itemize} +% \item Fixed quotes in \HTML\ tags while using old font packages with +% \margintag{core} +% \XeLaTeX\ and \LuaLaTeX. +% \item Added \cs{ifblank} and \cs{ifstrequal} to \brand{MathJax} emulation. +% \margintag{\brand{MathJax}} +% \item \pkg{multirow}: Allow \cs{par} per v2.7. +% \margintag{packages} +% \item \pkg{acro}: Updated to v3.5. +% \item \pkg{fancyhdr}: Updated to v4.0. +% \item \pkg{changes}: Updated to v4.0.1. +% \item \pkg{epsfig}, \pkg{rotating}: Now work inside \env{lateximage}. +% \item \pkg{amscdx}: Verified to work with \SVG\ math. +% Warning added about use with \brand{MathJax}. +% \item Added \brand{MathJax} emulation for \pkg{isomath}, \pkg{mattens}, +% \pkg{maybemath}, \pkg{skmath}, \pkg{tensor}. +% \item Improved \brand{MathJax} emulation for \pkg{siunitx} \cs{ang}, +% \cs{num}, \cs{SI}. +% \item Added \pkg{epsf}, \pkg{impnattypo}, \pkg{isotope}, +% \pkg{lpic}, \pkg{luavlna}, +% \pkg{mdwmath}, \pkg{pinlabel}, \pkg{rlepsf}, +% \pkg{tikz-imagelabels}, \pkg{xevlna}. +% \item Verified to work as-is: \pkg{tensind}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.894:] \brand{MathJax} additions and improvements. +% \begin{itemize} +% \item Improved warning message for enabling \SVG\ graphics for +% \margintag{\brand{MathJax}} +% select math expressions while using \brand{MathJax}. +% \item Accept and ignore a star for \cs{hspace}. +% \item Ignores \cs{arabic}, \cs{number}, \cs{noalign}. +% \item Added \brand{MathJax} emulation for \pkg{backnaur}, +% \pkg{colortbl}, \pkg{nicematrix}. +% \margintag{packages} +% \item \pkg{booktabs}: \brand{MathJax} emulation now absorbs and discards trim. +% \item \pkg{menukeys}: Updated to v1.6.1. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.893:] Minor fixes, more packages. +% \begin{itemize} +% \item Added \brand{MathJax} emulation for \cs{mathnormal}. +% \margintag{\brand{MathJax}} +% \item Fixed \pkg{pstricks} \env{pspicture*}. +% \margintag{packages} +% \item Fixed \pkg{tikz} font macros. +% \item \pkg{braket}: Now uses the \brand{MathJax} extension. +% \item Added \pkg{esvect}, \pkg{fixmath}, \pkg{keystroke}, \pkg{mathastext}, +% \pkg{menukeys}, \pkg{picinpar}, \pkg{plimsoll}, \pkg{repltext}, +% \pkg{selectp}, \pkg{seqsplit}, \pkg{simplebnf}, \pkg{statistics}, +% \pkg{swfigure}. +% \item Added \brand{MathJax} emulation for \pkg{mathspec}. +% \item Verified to work as-is for \pkg{apxproof}, \pkg{syntaxdi}, \pkg{venndiagram}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.892:] \pkg{minted}, \pkg{fvextra}, \brand{MathJax} \cs{left} \Slash \cs{right}. +% \begin{itemize} +% \item \pkg{fourier}, \pkg{libertinust1math}, \pkg{newpxmath}, \pkg{newtxmath}, +% \margintag{\brand{MathJax}} +% \pkg{newtxsf}, \pkg{unicode-math}: Added \brand{MathJax} +% \cs{left} \Slash \cs{right} support for additional delimiters. +% \item \pkg{textpos}: Updated to v1.10. +% \margintag{packages} +% \item \pkg{xcolor}: Fixed optional args for \cs{fcolorbox} and related. +% \item Added \pkg{fvextra}, \pkg{minted}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.891:] \brand{MathJax} additions and improvements. +% \begin{itemize} +% \item Now displays inline \cs{verb} text as \cs{texttt}. +% \margintag{core} +% \item Fixed \pkg{alltt} and verbatims with \LaTeX\ lists. +% \item Now generates an error if nested each of \env{warpHTML}, \env{warpprint}, \env{warpMathJax} +% inside itself. +% \item Added \brand{MathJax} \prog{textmacros} extension, allowing +% \margintag{\brand{MathJax}} +% formatting inside \cs{text}. +% \item \pkg{biblatex}, \pkg{hyperref}: Added back page references. +% \margintag{packages} +% \item \pkg{fancyvrb}: Fixed \env{BVerbatim} with a label. +% \item \pkg{listings}: Fixed \brand{MathJax} with captions, improved \HTML\ sanitation. +% \item \pkg{babel-french}: Fixed \cs{texorpdfstring} conflict. +% \item Now honors Greek package options for \pkg{mathdesign}, +% \pkg{mathpazo}, \pkg{mathptmx}, +% \pkg{newpxmath}, \pkg{newtxmath}. +% \item Improved \brand{MathJax} for \pkg{colonequals}, \pkg{mathdesign}, +% \pkg{mathdots}, \pkg{mathfixs}, \pkg{mathtools}, \pkg{multiobjective}, +% \pkg{nicefrac}, \pkg{shuffle}, \pkg{units}. +% \item \pkg{unicode-math}: Added Greek macros, as well as macros for +% the first several categories listed in \cmds{texdoc unimath-symbols}. +% Improved symbol shape macros with Greek. Improved documentation. +% \item Added \pkg{bussproofs}, \pkg{cmbright}, \pkg{fourier}, +% \pkg{kpfonts}, \pkg{kpfonts-otf}, +% \pkg{libertinust1math}, \pkg{scalerel}, \pkg{txgreeks}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.89:] Additional \brand{MathJax} support. +% \begin{itemize} +% \item Adapted to upcoming \LaTeX\ kernel changes. +% \margintag{core} +% \item Allows load of \pkg{amsmath} before \pkg{lwarp}. +% \item Also removes \filenm{*.bbl} when cleaning aux files.\margintag{\prog{lwarpmk}} +% \item \brand{MathJax}: Neutralized \cs{protect}, \cs{mathcode} and related, +% \margintag{\brand{MathJax}} +% ligatures. Fixed nested environments. +% \item \pkg{caption}: Updated for v3.5, fix for label sep. +% \margintag{packages} +% \item \pkg{thmtools}: Updated for v0.72. Fixed \optn{swapnumber}, \optn{margin}. +% \item Improved \brand{MathJax} for \pkg{centernot}, \pkg{mathtools}, +% \pkg{mismath}, \pkg{SIunits}, \pkg{siunitx}, \pkg{statmath}. +% \item Added \brand{MathJax} emulation for \pkg{accents}, \pkg{hepunits}, +% \pkg{hhtensor}, \pkg{mathalpha}, \pkg{mathdesign}, +% \pkg{mathpazo}, \pkg{mathptmx}, +% \pkg{mleftright}, \pkg{newpxmath}, \pkg{newtxmath}, \pkg{newtxsf}, +% \pkg{pxfonts}, \pkg{shuffle}, \pkg{txfonts}, +% \pkg{upgreek}, \pkg{ushort}. +% \item Verified to work as-is: \pkg{authoraftertitle}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.88:] Indexing, boxing, theorems. +% \begin{itemize} +% \item \textgreen{Now has programmed support for more than 500 packages and classes, +% of which more than 60 also support \brand{MathJax}.} +% \item Fixed: \cs{ref*}, and also added \brand{MathJax} emulation. +% \margintag{core} +% \item If starting a new paragraph, \cs{hrulefill} creates a +% \element{div} with a thin horizontal line across the page. +% Use instead of \cs{hrule}. +% \item Fixed: Use \cs{chaptername} where appropriate. +% \item Fixed: Inline links causing extraneous paragraphs. +% \item Added \cmds{lwarpmk -v} to print the version number. +% \margintag{\prog{lwarpmk}} +% \item Added the \optn{IndexRef} option to control the display of index entries. +% \margintag{indexing} +% See \cref{sec:optionindexref}. +% \item Added \cs{IndexPageSeparator} and \cs{IndexRangeSeparator} for custom index styles. +% \item Added support for \pkg{gindex}, \prog{xindex}. +% \item Verified to work as-is with \pkg{varindex}. +% \item \pkg{cleveref}, \pkg{varioref}: Fix for starred macros. +% \margintag{packages} +% \item \pkg{varioref}: Removed page-related text from \HTML\ output. +% \item \pkg{xfakebold}: Updated to v0.08, using \pkg{pdfrender}. +% \item \pkg{caption}, \pkg{scrextend}: Fixed \cs{caption*}. +% \item Added \pkg{fbox}, \pkg{shadethm}, \pkg{tcolorbox}, \pkg{termcal}, +% \pkg{thmbox}, \pkg{thmtools}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.87:] \brand{MathJax}, bibliography packages. +% \begin{itemize} +% \item Added boolean \bool{FixSmallCaps} for fonts which render small caps as +% \margintag{core} +% all caps. +% \item Fixed \cs{bibliography} to use the \HTML\ version's \filenm{.bbl} file. +% Previously the \HTML\ bibliography relied on the print version's \filenm{.bbl}, +% thus would fail if the print document had not yet been created. +% \item Added \cs{ifstar} and \cs{ifnextchar} to \brand{MathJax}, and +% \margintag{\brand{MathJax}} +% removed \cs{DeclareIfstar}. +% \watchout[Removed \cs{DeclareIfstar}] +% See \cref{sec:limitscustomizemathjax}. +% \item \pkg{physics}: Now supports the \brand{MathJax} v3 extension. +% \margintag{packages} +% \item \pkg{mathtools}: Improved \cs{underbrakcet}, \cs{overbracket} for \brand{MathJax}. +% \item \pkg{nccmath}: Improved \cs{underrel} for \brand{MathJax}. +% \item \pkg{mhchem}: Now supports the \brand{MathJax} v3 extension for \cs{ce} inside math. +% \item \pkg{cancel}: Now supports the \brand{MathJax} v3 extension. +% \item \pkg{embrac}: Neutralized kerning for improved \HTML\ conversion. +% \item Added \pkg{citeref}, \pkg{drftcite}, \pkg{jurabib}, \pkg{multibib}, \pkg{splitbib}. +% \item Verified to work as-is with \pkg{bibtopic}, \pkg{collref}, \pkg{mciteplus}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.86:] \brand{MathJax} major updates. +% \begin{itemize} +% \item Fixed: Filename if named files with \filenm{*}, parens, period in section name. +% \margintag{core} +% \item Fixed: Labels in \env{eqnarray}, \env{lateximage}. +% \item Updated to \brand{MathJax} v3. New repository. +% \margintag{\brand{MathJax}} +% \item Fixed forward references for \brand{MathJax}. +% \item Improved \brand{MathJax} equation number formatting, now compatible with +% \pkg{amsmath} \cs{numberwithin} for chapters, sections, subsections, +% as well as \pkg{amsmath} \env{subequation}s. +% See \cref{sec:limitscustomizemathjax}. +% \item Added \cs{DeclareIfstar} to define starred \TeX\ macros in \brand{MathJax}. +% See \cref{sec:limitscustomizemathjax}. +% \item Generates an error if \cs{MathJaxFilename} file does not exist. +% \item \pkg{mathtools}, \pkg{nccmath}, \pkg{physics}: +% \margintag{packages} +% Added starred macros for \brand{MathJax}. +% \item \pkg{nccmath}: Fixed \cs{nr}, \cs{displaybreak} for \brand{MathJax}. +% \item \pkg{xcolor}: Fixed \cs{textcolor} with \pkg{babel-french}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.85:] \pkg{fontspec} +% \begin{itemize} +% \item \pkg{fontspec}: Fixed core font change macros for world languages. +% \margintag{packages} +% \item \pkg{acro}: Due to v3 changes, when defining acronym formats, +% \watchout[\pkg{acro} formats] +% use \cs{textbf} instead of \cs{bfseries}, etc. +% \item Fixed \pkg{idxlayout}, \pkg{mathtools}, \pkg{titlesec}, \pkg{url}. +% \end{itemize} +% \needspace{2\baselineskip} +% \item[v0.84:] Previous/next page links, numerous fixes. +% \begin{itemize} +% \item Added documentation of \env{BlockClass} and \cs{InlineClass} +% for \CSS\ \element{div}s and \element{span}s. +% \margintag{docs} +% See \cref{sec:classstyle}. +% \item Added \cs{LinkPrevious}, \cs{LinkNext} page links. +% See \cref{sec:htmlsettings}. +% \item Added \cs{FirstPageBottom}. +% \watchout[home page footer changed] +% Home page no longer shares \cs{PageBottom}. +% See \cref{sec:htmlsettings}. +% \item Improved coexistence with \pkg{comment}, support for nested environments. +% \margintag{core} +% \item No longer requires but still supports the \pkg{caption} package. +% \item Improved filenames and \HTML\ titles when using special characters. +% \item Change: Append \filenm{-0} to section named Index +% \watchout{previously \_index} +% to distinguish from \filenm{index.html} +% \item Fixed style tags for \cs{multicolumn}, \cs{multirow}. +% \item Fixed spacing in \env{tabbing}. +% \item Fixed \env{lateximage} for: \env{quote}, \env{quotation}, \env{verse}, +% \env{center}, \env{flushleft}, \env{flushright}, +% \element{par} tags, packages \pkg{verbatim}, \pkg{alltt}, \pkg{epigraph}. +% \item Fixed \pkg{textcomp} due to integration into \LaTeX\ kernel. +% \item Fixed \cs{itshape}, etc. Adapted to \LaTeX\ \pkg{fontaxes} integration. +% \item Fixed \cs{@fnsymbol}. +% \item Warns about section names with dollar-delimited math. +% \item Warns about a \element{span} containing a float, caption, section, +% \pkg{mdframed}, or other \element{div} object. +% \item Only warn about \XeTeX\ logo and \pkg{graphics} if actually used \cs{Xe}. +% \item \cmds{lwarpmk clean} also removes \filenm{comment_*.cut}. +% \margintag{\prog{lwarpmk}} +% \item \pkg{scrextend}, \pkg{scrartcl}, \pkg{scrbook}: Added \cs{titlehead}, +% \margintag{packages} +% \cs{subject}, \cs{subtitle}, \cs{publishers}. +% \item \pkg{titling}: Fixed \cs{printthanks}. +% \item \pkg{memoir}, \pkg{abstract}: Fixed for updated \pkg{memoir}. +% \item \pkg{memoir}: Fixed \cs{newcomment}, pagenotes, crossreferences. +% Fixed setting a recursive name. +% \item Fixed or improved: \pkg{amsthm}, \pkg{backref}, \pkg{biblatex}, \pkg{fixme}, +% \pkg{nfssext-cfr}, \pkg{ntheorem}, \pkg{parcolumns}, +% \pkg{realscripts}, \pkg{rotfloat}, \pkg{titling}. +% \item Added \pkg{boxedminipage}, renamed from \pkg{boxedminipage2e} per author. +% \item Verified to work as-is with \pkg{mcite}. +% \end{itemize} +% \needspace{2\baselineskip} % \item[v0.83:] \pkg{memoir} fixes. % \begin{itemize} -% \item \pkg{memoir}: Various fixes and updates, but subcaption labels +% \item \pkg{memoir}: Various fixes and updates. % \margintag{packages} -% still need work. (Out of time\dots) % \item \pkg{physunits}: Updated to v1.0.4. % \end{itemize} % \needspace{2\baselineskip} @@ -3447,7 +3837,7 @@ This boolean may be tested by the user for later use. % \cmidrule(r){1-1}\cmidrule(l){2-2} % (hard coded as ``image'') & \cs{ImageAltText} \\ % \cs{mathimagename} & \cs{MathImageAltText} \\ -% \cs{pacakgediagramname} & \cs{PackageDiagramAltText} \\ +% \cs{packagediagramname} & \cs{PackageDiagramAltText} \\ % \end{tabular} % \end{center} % \item Added \cs{ImageAltText} for the default \HTML\ \attribute{alt} text for @@ -3808,7 +4198,7 @@ This boolean may be tested by the user for later use. % \item \pkg{xfrac}: Improved \CSS. % \item \pkg{textcomp} and \pkg{xunicode}: Fix conflicts with \cs{textcircled}. % \item \pkg{ulem}: Improved compatibility with \pkg{CJKulem}, \env{lateximage}. -% \item MathJax and \pkg{siunitx}: Removed inoperable extension. +% \item \brand{MathJax} and \pkg{siunitx}: Removed inoperable extension. % \item Added \pkg{bitpattern}, \pkg{pdfcomment}, % \pkg{pdfmarginpar}, \pkg{tram}, \pkg{unitsdef}, \pkg{xechangebar}. % \item Added \pkg{musicography}, \pkg{octave}, \pkg{semantic-markup}. @@ -3890,10 +4280,10 @@ This boolean may be tested by the user for later use. % \margintag{\DVI\ \prog{latex}} % \item Fix for \optn{-\/-shell-escape} with \prog{latexmk}. % \margintag{\prog{latexmk}} -% \item Updated MathJax script to v2.7.4. +% \item Updated \brand{MathJax} script to v2.7.4. % \margintag{math} -% \item Fix: Mathjax chapter number removed from non-numeric tagged equations. -% \item Added MathJax support for \pkg{nicefrac}, \pkg{units}. +% \item Fix: \brand{Mathjax} chapter number removed from non-numeric tagged equations. +% \item Added \brand{MathJax} support for \pkg{nicefrac}, \pkg{units}. % \item Fix for \cs{[} and \cs{]} with \cs{displaymathnormal}. % \item Fix for \cs{includegraphics} filename expansion. % \margintag{images} @@ -3958,7 +4348,7 @@ This boolean may be tested by the user for later use. % \needspace{2\baselineskip} % \item[v0.57:] \pkg{algorithm2e}, \pkg{float} styles, tabular packages, internal improvements. % \begin{itemize} -% \item Added support for MathJax equations with \cs{footnote}, \cs{footnotemark}. +% \item Added support for \brand{MathJax} equations with \cs{footnote}, \cs{footnotemark}. % \margintag{MathJax} % \item Added \cs{StartDefiningMath} and \cs{StopDefiningMath} for % \margintag{math macros} @@ -3968,7 +4358,7 @@ This boolean may be tested by the user for later use. % \margintag{dynamic math} % delimit math expressions which depend on a variable condition % such as a counter. Such expressions will not be hashed for reuse, -% and will be converted to \SVG\ math images even when MathJax is enabled. +% and will be converted to \SVG\ math images even when \brand{MathJax} is enabled. % See \cref{sec:mathdynamic}. % \item Renamed \cs{EndDefiningTabulars} to \cs{StopDefiningTabulars}. % \watchout[new name] @@ -4135,7 +4525,7 @@ This boolean may be tested by the user for later use. % \item Improved \cs{ensuremath} hashing expansion. % \item Fix: \env{equation*} with \env{split}. % \item \env{tabbing} now works inside a \env{lateximage}. Use for math in \env{tabbing}. -% \item Fix: MathJax script was not executing in some conditions. +% \item Fix: \brand{MathJax} script was not executing in some conditions. % \margintag{MathJax} % \item Added \cs{CustomizeMathJax} to add custom functions. % See \cref{sec:limitsmath}. @@ -4169,8 +4559,8 @@ This boolean may be tested by the user for later use. % \item Improved support for display math containing complicated math objects, % such as \pkg{tikz-cd}. See \cref{sec:displaymathother}. % \item Fix: \cs{addcontentsline} inside \SVG\ math. -% \item Fix: SVG math containing an embedded \env{lateximage}. -% \item MathJax now handles \cs{ensuremath} in expressions.\margintag{MathJax} +% \item Fix: \SVG\ math containing an embedded \env{lateximage}. +% \item \brand{MathJax} now handles \cs{ensuremath} in expressions.\margintag{MathJax} % \item Fix: Added \env{alignat} environment. \margintag{misc. fixes} % \item Fix: \pkg{afterpackage} no longer required, which conflicted with \pkg{scrlfile}. % \item Fix: \pkg{titling} \cs{thanks} mark. @@ -4197,11 +4587,11 @@ This boolean may be tested by the user for later use. % ^^A Display math and other forms of \SVG\ image such as \env{picture} and % ^^A \tikz\ still use individual image files which are recreated each time % ^^A \cmds{lwarpmk limages} is run. -% ^^A \item Fixes: SVG math and/or \cs{underline} in a sectioning file name. +% ^^A \item Fixes: \SVG\ math and/or \cs{underline} in a sectioning file name. % ^^A \item Improved \SVG\ display math and tags. % ^^A \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags. % ^^A \item Improved \pkg{siunitx} units. -% ^^A \item Fix: \cs{ensuremath} with MathJax now creates a \env{lateximage}. +% ^^A \item Fix: \cs{ensuremath} with \brand{MathJax} now creates a \env{lateximage}. % ^^A \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz. % ^^A \item Fix: Made various macros robust, % ^^A additionally fixing \pkg{authblk}.\margintag{misc. fixes} @@ -4274,7 +4664,7 @@ This boolean may be tested by the user for later use. % ^^A \item \cs{PrintStack} changed to \cs{LWRPrintStack}.\watchout[name change] % ^^A \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes} % ^^A \item Fix: Stack unnesting. -% ^^A \item Fix: SVG math and \env{lateximage}s in numerous situations. +% ^^A \item Fix: \SVG\ math and \env{lateximage}s in numerous situations. % ^^A \item Fix: Spaces in \cs{usepackage}. % ^^A \item Fix: Now allows \brand{MathJax} inside \env{verse}. % ^^A \end{itemize} @@ -4296,7 +4686,7 @@ This boolean may be tested by the user for later use. % ^^A \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes} % ^^A \item Fix: ``Improper \cs{prevdepth}'' with minipages, lists. % ^^A \item Fix: Incorrect \SVG\ math and |lateximage|s with \pkg{subfig}. -% ^^A \item Fix: Lateximages from incorrect pages with Mathjax. +% ^^A \item Fix: Lateximages from incorrect pages with \brand{Mathjax}. % ^^A \item Fix: Missing sidetoc if using \pkg{listings}. % ^^A \item Fix: Added an \pkg{array} emulation package. % ^^A \item Added @@ -4969,7 +5359,7 @@ This boolean may be tested by the user for later use. % While generating \HTML\ output, \SVG\ files are used in place of \PDF. % Other formats such as \PNG\ and \JPG\ are used as-is. % -% SVG images may be used for math, +% \SVG\ images may be used for math, % and are also used for \env{picture}, \tikz, and similar environments. % The \SVG\ format has better browser and e-book support % than \MathML\ (as of this writing), @@ -5074,13 +5464,14 @@ This boolean may be tested by the user for later use. % Package names are colored according to their support level: % \begin{description} % \item[\spkg{name}:] Supported as-is. -% \item[\mpkg{name}:] Modifed to work with \HTML\ output, and also +% \item[\mpkg{name}:] Modifed to work with \HTML\ output, and perhaps also % as print output in \SVG\ math or \env{lateximage} environments. % \item[\epkg{name}:] Emulated for \HTML\ output. % \item[\ipkg{name}:] Ignored for \HTML\ output, but provides source-level compatibility. % \item[\sjax:] Supported as-is for \brand{MathJax}, subject to limitations. % \item[\ejax:] Emulated for \brand{MathJax} using custom macros, subject to limitations. % \item[\ijax:] Ignored by \brand{MathJax}, but may be used in the document source. +% May be converted to \SVG\ images. % \end{description} % % \renewcommand{\arraystretch}{1.5} @@ -5119,8 +5510,8 @@ This boolean may be tested by the user for later use. % % \midrule % -% Languages: & \spkg{babel}, \spkg{polyglossia}. -% \spkg{cjkpunct}, \spkg{xeCJK}.\\ +% Languages: & \spkg{babel}, \spkg{cjkpunct}, \ipkg{impnattypo}, \mpkg{luavlna}, +% \spkg{polyglossia}, \spkg{xeCJK}, \mpkg{xevlna}. \\ % % Chinese: & C\TeX, \spkg{ctex}, % \spkg{upzhkinsoku}, @@ -5159,7 +5550,7 @@ This boolean may be tested by the user for later use. % \ipkg{pagegrid}, \ipkg{pagesel}, \epkg{parallel}, \epkg{parcolumns}, % \ipkg{pdfcolparallel}, \ipkg{pdfcolparcolumns}, \ipkg{pdfcrypt}, \ipkg{pdfprivacy}, % \ipkg{preview}, \epkg{ragged2e}, \ipkg{returntogrid}, \ipkg{rmpage}, -% \epkg{scrlayer-scrpage}, \epkg{scrpage2}, \epkg{setspace}, +% \epkg{scrlayer-scrpage}, \epkg{scrpage2}, \epkg{setspace}, \ipkg{selectp}, % \ipkg{textarea}, \ipkg{threadcol}, % \ipkg{thumb}, \ipkg{thumbs}, \ipkg{titleps}, \ipkg{tocenter}, % \ipkg{turnthepage}, \ipkg{twoup}, \ipkg{typearea}, @@ -5184,31 +5575,38 @@ This boolean may be tested by the user for later use. % \ipkg{tocbasic}, \mpkg{tocbibind}, \mpkg{tocdata}, % \ipkg{tocloft}, \ipkg{tocstyle}, \spkg{tocvsec2}. \\ % -% Title page: & \cs{maketitle}, \env{titlepage}, \mpkg{authblk}, \mpkg{titling}. \\ +% Title page: & \cs{maketitle}, \env{titlepage}, \mpkg{authblk}, +% \spkg{authoraftertitle}, \mpkg{titling}. \\ % % Front \&\ back matter: & \mpkg{abstract}, \mpkg{appendix}. \\ % -% Indexing: & \prog{makeindex} and \prog{xindy} are supported, with hyperlinks. +% Indexing: & \prog{makeindex}, \prog{xindy}, and \prog{xindex} are supported, +% with hyperlinks. % -% \spkg{hvindex}, \epkg{idxlayout}, \mpkg{imakeidx}, \epkg{index}, \mpkg{makeidx}, -% \epkg{repeatindex}, \mpkg{splitidx}. +% \smallskip +% +% \mpkg{gindex}, \spkg{hvindex}, \epkg{idxlayout}, \mpkg{imakeidx}, +% \epkg{index}, \mpkg{makeidx}, +% \epkg{repeatindex}, \mpkg{splitidx}, \spkg{varindex}, \spkg{xindex}. % \\ % % Glossary: & \mpkg{gloss}, \mpkg{glossaries} and \prog{xindy}, \mpkg{nomencl}.\\ % -% Bibliography: & \spkg{babelbib}, \mpkg{backref}, \mpkg{biblatex}, \mpkg{bibunits}, -% \mpkg{chapterbib}, \mpkg{cite}, \ipkg{hypernat}, \mpkg{natbib}, -% \spkg{notes2bib}, \ipkg{showtags}. +% Bibliography: & \spkg{babelbib}, \spkg{bibtopic}, \mpkg{backref}, +% \mpkg{biblatex}, \mpkg{bibunits}, +% \mpkg{chapterbib}, \mpkg{cite}, \mpkg{citeref}, \spkg{collref}, \mpkg{drftcite}, +% \ipkg{hypernat}, \mpkg{jurabib}, \spkg{mcite}, \spkg{mciteplus}, \mpkg{multibib}, +% \mpkg{natbib}, \spkg{notes2bib}, \mpkg{splitbib}, \ipkg{showtags}. % % \\ % % \midrule % % Cross-references: & -% \ipkg{bookmark}, \epkg{breakurl}, \spkg{cleveref}, \epkg{fancyref}, +% \ipkg{bookmark}, \epkg{breakurl}, \spkg{cleveref}, \mpkg{fancyref}, % \ipkg{hypdestopt}, \epkg{hyperref}, \epkg{perpage}, \mpkg{prettyref}, -% \epkg{titleref}, \mpkg{url}, \spkg{varioref}, \spkg{xcite}, -% \mpkg{xr}, \mpkg{xr-hyper}, \ipkg{xurl}. \\ +% \epkg{titleref}, \mpkg{url}, \mpkg{varioref}, \spkg{xcite}, +% \mpkg{xr}, \mpkg{xr-hyper}, \ipkg{xurl}, \spkg{zref}. \\ % % \midrule % @@ -5237,25 +5635,42 @@ This boolean may be tested by the user for later use. % due to native \LaTeX\ processing.\\ % % Theorems: & Native \LaTeX\ theorems, -% \mpkg{amsthm}, \mpkg{ntheorem}, \mpkg{theorem}. \\ +% \mpkg{amsthm}, \spkg{apxproof}, \mpkg{ntheorem}, \mpkg{shadethm}, +% \mpkg{theorem}, \mpkg{thmbox}, \mpkg{thmtools}. \\ % % Additional math: & Math fonts via \SVG\ images, -% \spkg{amscd}, \spkg{autobreak}\ejax, \ipkg{autonum}, -% \mpkg{backnaur}, \mpkg{bm}\ejax, \spkg{braket}\ejax, -% \mpkg{breqn}, \mpkg{cases}, \spkg{centernot}\ejax, \spkg{colonequals}\ejax, -% \spkg{decimal}\ejax, +% \spkg{accents}\ejax, \spkg{amscd}\sjax, \spkg{amscdx}, \spkg{autobreak}\ejax, \ipkg{autonum}, +% \mpkg{backnaur}\ejax, \mpkg{bm}\ejax, \spkg{braket}\sjax, +% \mpkg{breqn}\ijax, \mpkg{bussproofs}\sjax, \mpkg{cases}\ijax, +% \spkg{centernot}\ejax, \spkg{cmbright}\ejax, +% \spkg{colonequals}\ejax, \spkg{decimal}\ejax, % \spkg{delarray}, \mpkg{DotArrow}\ejax, \spkg{dotlessi}\ejax, \spkg{dotlessj}\sjax, -% \spkg{extarrows}\ejax, \spkg{fouridx}\ejax, -% \spkg{guass}, \spkg{icomma}\ijax, \spkg{jkmath}, -% \spkg{leftidx}\ejax, \spkg{mathcomp}\ejax, \spkg{mathdots}\ejax, -% \spkg{mathfixs}\ejax, \spkg{mathpunctspace}\ijax, -% \spkg{mathspec}, \mpkg{mathtools}\ejax, \mpkg{mismath}\ejax, +% \spkg{esvect}\ejax, \spkg{extarrows}\ejax, \spkg{fixmath}\ejax, +% \spkg{fouridx}\ejax, \spkg{fourier}\ejax, +% \spkg{guass}, \spkg{hhtensor}\ejax, \spkg{icomma}\ijax, +% \spkg{isomath}\ejax, \spkg{jkmath}, +% \spkg{kpfonts}\ejax, \spkg{kpfonts-otf}\ejax, +% \spkg{leftidx}\ejax, \spkg{libertinust1math}\ejax, \spkg{mathalpha}\ejax, +% \spkg{mathastext}\ejax, \spkg{mathcomp}\ejax, \spkg{mathdesign}\ejax, +% \spkg{mathdots}\ejax, \spkg{mathfixs}\ejax, +% \spkg{mathpazo}\ejax, \spkg{mathptmx}\ejax, +% \spkg{mathpunctspace}\ijax, +% \spkg{mathspec}\ejax, \mpkg{mathtools}\ejax, \spkg{mattens}\ejax, +% \spkg{maybemath}\ijax, \spkg{mdwmath}\ejax, +% \mpkg{mismath}\ejax, \spkg{mleftright}\ejax, % \spkg{multiobjective}\ejax, \mpkg{nccmath}\ejax, -% \spkg{nicematrix}, \spkg{noitcrul}\ejax, \spkg{pb-diagram}, -% \ipkg{resizegather}, \spkg{rmathbr}\ejax, \spkg{stackrel}\ejax, -% \mpkg{statex2}\ejax, \spkg{statmath}\ejax, -% \spkg{subsupscripts}\ejax, \spkg{textualicomma}\ijax, -% \spkg{unicode-math}\ejax, \mpkg{witharrows}\ejax, +% \spkg{nicematrix}\ejax, \spkg{noitcrul}\ejax, +% \spkg{newpxmath}\ejax, \spkg{newtxmath}\ejax, \spkg{newtxsf}\ejax, +% \spkg{pb-diagram}, +% \spkg{pxfonts}\ejax, +% \ipkg{resizegather}\ijax, \spkg{rmathbr}\ejax, \spkg{scalerel}\ejax, +% \epkg{shuffle}\ejax, \spkg{skmath}\ejax, \spkg{stackrel}\ejax, +% \mpkg{statex2}\ejax, \mpkg{statistics}, \spkg{statmath}\ejax, +% \spkg{subsupscripts}\ejax, \spkg{tensind}, \spkg{tensor}\ejax, +% \spkg{textualicomma}\ijax, +% \spkg{txfonts}\ejax, \spkg{txgreeks}\ejax, +% \spkg{unicode-math}\ejax, \spkg{upgreek}\ejax, +% \spkg{ushort}\ejax, \mpkg{witharrows}\ejax, % \mpkg{xfakebold}\ejax, \mpkg{xy}. % Many others work as-is. \\ % @@ -5276,8 +5691,9 @@ This boolean may be tested by the user for later use. % \ipkg{fix2col}, \ipkg{flafter}, % \epkg{float}, \epkg{floatflt}, \epkg{floatrow}, \ipkg{fltrace}, \ipkg{ftcap}, % \ipkg{hypcap}, \mpkg{keyfloat}, \ipkg{morefloats}, \ipkg{multicap}, \spkg{newfloat}, -% \epkg{nonfloat}, \ipkg{placeins}, \epkg{rotfloat}, \ipkg{stfloats}, +% \epkg{nonfloat}, \mpkg{picinpar}, \ipkg{placeins}, \epkg{rotfloat}, \ipkg{stfloats}, % \mpkg{subcaption}, \mpkg{subfig}, \epkg{subfigure}, \spkg{subfloat}, +% \epkg{swfigure}, % \epkg{topcapt}, \epkg{trivfloat}, \epkg{wrapfig}. \\ % % \midrule @@ -5285,7 +5701,7 @@ This boolean may be tested by the user for later use. % Tabular: & % \env{tabular} environment, \mpkg{array}\ejax, \epkg{arydshln}\ejax, % \mpkg{bigdelim}\ejax, \mpkg{bigstrut}\ejax, \mpkg{booktabs}\ejax, -% \mpkg{colortbl}, \mpkg{ctable}, \mpkg{diagbox}, \mpkg{hhline}\ejax, \epkg{longtable}, +% \mpkg{colortbl}\ijax, \mpkg{ctable}, \mpkg{diagbox}, \mpkg{hhline}\ejax, \epkg{longtable}, % \epkg{ltablex}, \epkg{ltxtable}, % \mpkg{multirow}\ejax, \epkg{supertabular}, \epkg{tabularx}, \epkg{tabulary}, % \epkg{threeparttable}, \mpkg{threeparttablex}, @@ -5299,16 +5715,20 @@ This boolean may be tested by the user for later use. % References to \PDF\ files are changed to \SVG, other image types % are accepted as well. % \cs{rotatebox} and \cs{scalebox} are supported as well as \HTML\ can handle. -% \epkg{rotating} is emulated but all objects are unrotated. +% \epkg{rotating} is emulated but all objects are unrotated in \HTML. % \env{picture}, \mpkg{tikz}, and \mpkg{xy} are converted to an \SVG\ image. % +% \smallskip +% % \mpkg{asymptote}, \spkg{curves}, \spkg{datatool}, -% \spkg{eepic}, \epkg{epsfig}, \spkg{epstopdf}, +% \spkg{eepic}, \mpkg{epsf}, \epkg{epsfig}, \spkg{epstopdf}, % \epkg{figsize}, \ipkg{fitbox}, -% \spkg{grffile}, \mpkg{luamplib}, \epkg{media9}, -% \epkg{movie15}, \epkg{multimedia}, \mpkg{overpic}, +% \spkg{grffile}, \mpkg{lpic}, \mpkg{luamplib}, \epkg{media9}, +% \epkg{movie15}, \epkg{multimedia}, \mpkg{overpic}, \spkg{pict2e}, \mpkg{pinlabel}, % \mpkg{psfrag}, \mpkg{psfragx}, \mpkg{pst-eps}, \mpkg{pstool}, \mpkg{pstricks}, -% \spkg{rviewport}, \mpkg{svg}, \spkg{svg-extract}, \spkg{tikz-3dplot}. \\ +% \mpkg{rlepsf}, +% \spkg{rviewport}, \mpkg{svg}, \spkg{svg-extract}, \mpkg{tikz}, \spkg{tikz-3dplot}, +% \mpkg{tikz-imagelabels}, \mpkg{xy} \\ % % \midrule % @@ -5337,10 +5757,11 @@ This boolean may be tested by the user for later use. % \mpkg{quoting}, \mpkg{verse}. \\ % % Verbatim: & -% \mpkg{fancyvrb}, \mpkg{moreverb}, \spkg{shortvrb}, \mpkg{verbatim}. \\ +% \mpkg{fancyvrb}, \mpkg{fvextra}, \mpkg{moreverb}, \spkg{shortvrb}, \mpkg{verbatim}. \\ % -% Frames: & \mpkg{boxedminipage2e}, \mpkg{fancybox}, \mpkg{framed}, \mpkg{mdframed}, -% \epkg{niceframe}, \epkg{shadow}, \epkg{vertbars}. \\ +% Frames: & \mpkg{boxedminipage}, \mpkg{boxedminipage2e}, +% \mpkg{fancybox}, \mpkg{fbox}\ejax, \mpkg{framed}, \mpkg{mdframed}, +% \epkg{niceframe}, \epkg{shadow}, \mpkg{tcolorbox}\ejax, \epkg{vertbars}. \\ % % Multi-columns: & \epkg{adjmulticol}, \epkg{multicol}, % \ipkg{multicolrule}, \mpkg{vwcol}. \\ @@ -5354,13 +5775,14 @@ This boolean may be tested by the user for later use. % Direct formatting: & \cs{emph}, \cs{textsuperscript}, % \cs{textbf}, etc are supported. % \cs{bfseries}, etc.\ are only supported in some cases. -% \mpkg{cancel}, \epkg{ellipsis}, \mpkg{embrac}, \spkg{enparen}, +% \mpkg{cancel}\sjax, \epkg{ellipsis}, \mpkg{embrac}, \spkg{enparen}, % \ipkg{hyphenat}, \epkg{lettrine}, \epkg{lips}, -% \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \epkg{nolbreaks}, -% \ipkg{normalcolor}, +% \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \ipkg{moresize}, +% \epkg{nolbreaks}, \ipkg{normalcolor}, % \ipkg{pdfcol}, \ipkg{pdfcolmk}, -% \ipkg{pdfrender}, \epkg{realscripts}, \mpkg{relsize}\ejax, -% \ipkg{scalefnt}, \epkg{soul}, \epkg{soulpos}, \epkg{soulutf8}, \mpkg{stackengine}, +% \ipkg{pdfrender}, \mpkg{realscripts}, \mpkg{relsize}\ejax, +% \ipkg{scalefnt}, \mpkg{seqsplit}\ejax, \epkg{soul}, \epkg{soulpos}, +% \epkg{soulutf8}, \mpkg{stackengine}, % \epkg{textfit}, \epkg{thinsp}, \ipkg{trimclip}, \ipkg{truncate}, % \mpkg{ulem}, \mpkg{umoline}, \ipkg{underscore}, \ipkg{uspace}, % \mpkg{xellipsis}. \\ @@ -5389,15 +5811,26 @@ This boolean may be tested by the user for later use. % Appear in \SVG\ math expressions or embedded image environments. % \mpkg{fontaxes}, \mpkg{nfssext-cfr}, \mpkg{slantsc}, \ipkg{tabfigures}. % +% \smallskip +% % Tested to work as-is: Special font macros in \spkg{cfr-lm} and others -% which use \spkg{nfssext-cfr}. \\ +% which use \spkg{nfssext-cfr}. +% +% \smallskip % -% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \mpkg{bbding}, +% Also see the math section for math and \brand{MathJax} support for math font packages. \\ +% +% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \spkg{amssymb}\sjax, +% \mpkg{bbding}, % \mpkg{chemgreek}, \mpkg{dingbat}, \spkg{euro}, \mpkg{eurosym}, -% \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\ejax, \mpkg{marvosym}, -% \spkg{mathcomp}\ejax, \mpkg{metalogo}, \mpkg{metalogox}, -% \mpkg{pifont}, \spkg{textalpha}, -% \mpkg{textcomp}, \spkg{textgreek}, \mpkg{typicons}, \mpkg{xunicode}. +% \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\ejax, \spkg{latexsym}\sjax, +% \mpkg{marvosym}, +% \mpkg{metalogo}, \mpkg{metalogox}, +% \mpkg{pifont}, +% \spkg{textalpha}, +% \mpkg{textcomp}, \spkg{textgreek}, +% \mpkg{typicons}, +% \mpkg{xunicode}. % \\ % % \midrule @@ -5417,12 +5850,17 @@ This boolean may be tested by the user for later use. % \mpkg{chemmacros}, \mpkg{chemnum}, % \spkg{circuitikz}, \spkg{econometrics}\ejax, \spkg{elements}, % \mpkg{engtlc}\ejax, \spkg{fast-diagram}, \mpkg{ghsystem}, -% \spkg{hepnicenames}, \spkg{heppennames}, \spkg{karnaughmap}, \mpkg{karnaugh-map}, -% \mpkg{listings}, \spkg{linop}, \mpkg{mhchem}\sjax, \spkg{pgfgantt}, -% \mpkg{phfqit}, \spkg{physics}\ejax, \spkg{physunits}\ejax, \spkg{qcircuit}, -% \mpkg{register}, \spkg{simpler-wick}, -% \spkg{slashed}\ejax, \mpkg{steinmetz}\ejax, \spkg{structmech}, \mpkg{struktex}. -% \spkg{tikz-karnaugh}, \spkg{tikzcodeblocks} \\ +% \spkg{hepnicenames}, \spkg{heppennames}, \spkg{hepunits}\ejax, +% \mpkg{isotope}\ejax, +% \spkg{karnaughmap}, \mpkg{karnaugh-map}, \mpkg{keystroke}, +% \mpkg{listings}, \spkg{listingsutf8}, \spkg{linop}, \mpkg{menukeys}, +% \mpkg{mhchem}\sjax, \mpkg{minted}, \spkg{pgfgantt}, +% \mpkg{phfqit}, \spkg{physics}\sjax, \spkg{physunits}\ejax, +% \spkg{plimsoll}\ejax, \spkg{qcircuit}, +% \mpkg{register}, \mpkg{simplebnf}, \spkg{simpler-wick}, +% \spkg{slashed}\ejax, \mpkg{steinmetz}\ejax, \spkg{structmech}, \mpkg{struktex}, +% \spkg{syntaxdi}, +% \spkg{tikz-karnaugh}, \spkg{tikzcodeblocks}, \spkg{venndiagram} \\ % % \midrule % @@ -5434,6 +5872,10 @@ This boolean may be tested by the user for later use. % % \midrule % +% Calendars: & \mpkg{termcal} \\ +% +% \midrule +% % Admonitions: & \epkg{awesomebox}, \epkg{notes}. \\ % % Editorial: & \ipkg{changebar}, \spkg{changelog}, \mpkg{changes}, @@ -5447,7 +5889,7 @@ This boolean may be tested by the user for later use. % % Accessibility: & \epkg{accessibility}\ijax, \ipkg{accsupp}\ijax, % \ipkg{axessibility}\ijax, -% \ipkg{pdfcomment}\ijax, \ipkg{tagpdf}. \\ +% \ipkg{pdfcomment}\ijax, \ipkg{repltext}\ijax, \ipkg{tagpdf}. \\ % % \midrule % @@ -6091,7 +6533,7 @@ This boolean may be tested by the user for later use. % create a new file called |tutorial.tex|. % This may be done several ways: % \begin{description} -% \item [Copy from the documentation PDF:] \ +% \item [Copy from the documentation \PDF:] \ % % A listing is in \cref{fig:tutorial}, % which may be copied/pasted from the figure directly into your own editor, @@ -6211,10 +6653,10 @@ This boolean may be tested by the user for later use. % % \item [|lwarp\_mathjax.txt|:] Inserted into the \HTML\ files when % \brand{MathJax} is used to display math. -% This file should not be modified by the user. +% Do not modify, see \cs{MathJaxFilename} instead. % -% \item [|comment.cut|:] A temporary file used by \pkg{lwarp} to -% conditionally process blocks of text. This file may be ignored. +% \item [|comment\_*.cut|:] Temporary files used by \pkg{lwarp} to +% conditionally process blocks of text. These files may be ignored. % \end{description} % % \hrule \medskip @@ -6586,7 +7028,7 @@ This boolean may be tested by the user for later use. % % The \filenm{-images} directory contains \SVG\ images % automatically generated for inline and display math, \pkg{tikz}, etc. -% To remove all the images from the \filenm{lateximages} directory: +% To remove all the images from the \filenm{-images} directory: % \userentry{lwarpmk cleanlimages} % % @@ -6783,15 +7225,20 @@ This boolean may be tested by the user for later use. % \gindex{sideTOC=side\TOC>name} % \gindex{settings>language} % -% Regional localization is supported by \pkg{lwarp} via the following package options -% and macros: +% Regional localization is supported by \pkg{lwarp} via the package options +% and macros shown in \cref{tab:localization}. % +% \begin{table} +% \caption{Localization settings} +% \label{tab:localization} % \begin{description} % \item [Object names:] \LaTeX\ provides redefinable names for various objects, % and \pkg{lwarp} adds a few more. Use \cs{renewcommand} to change these. % \begin{description} % \item [\cs{abstractname}:] This macro is honored by \pkg{lwarp}. % \item [\cs{linkhomename}:] Displayed by the link to the homepage. +% \item [\cs{linkpreviousname}:] Displayed by the link to the previous page +% \item [\cs{linknextname}:] Displayed by the link to the next page. % \item [\cs{sidetocname}:] Displayed at the head of the side\TOC. % \end{description} % \item [\HTML\ settings:] See \cref{tab:htmlsettings} and @@ -6815,6 +7262,7 @@ This boolean may be tested by the user for later use. % \item [\optn{pdftotextEnc}:] To adjust the encoding of \prog{pdftotext}. % \end{description} % \end{description} +% \end{table} % % % \subsection{Accessibility} @@ -6838,8 +7286,11 @@ This boolean may be tested by the user for later use. % \HTML\ also provides the \attribute{title} attribute, which usually % generates a pop-up text. \pkg{lwarp} can add this to a reference or hyperlink. % \brand{MathJax} also has provisions for improved accessibility -% as well. +% as well. See \cref{tab:accessibility}. % +% \begin{table} +% \caption{Accessibiltiy settings} +% \label{tab:accessibility} % \begin{description} % \item [\cs{ImageAltText}:] The default \HTML\ \attribute{alt} text % for \cs{includegraphics} and \env{lateximage}s. @@ -6897,6 +7348,7 @@ This boolean may be tested by the user for later use. % This may be changed by redefining \cs{AltTextOpen} and \cs{AltTextClose}. % Set with \cs{renewcommand}. % \end{description} +% \end{table} % % % @@ -6951,7 +7403,7 @@ This boolean may be tested by the user for later use. % \margintag{Computer Modern}% % \gindex{font>Computer Modern}\gindex{Computer Modern}% % \watchout[\prog{pdflatex}]% -% \watchout[DVI \prog{latex}]% +% \watchout[\DVI\ \prog{latex}]% % which may be a ``type 3'' bit-mapped font which may not % convert well to plain text. A ``type 1'' vector font is required. % @@ -7062,10 +7514,9 @@ This boolean may be tested by the user for later use. % ^^A \gindex{ligatures}\gindex{font>ligatures} % \end{enumerate} % \end{itemize} -% \item |\usepackage{lwarp}| (\cref{sec:loading}) is placed after any of the above, followed by: % \item |\usepackage{newtxmath}| or other math-related font packages. -% Many of these load \pkg{amsmath}, which must be loaded after \pkg{lwarp}, -% so they must also be loaded after \pkg{lwarp}. +% Many of these load \pkg{amsmath}, which may now be loaded before \pkg{lwarp}. +% \item |\usepackage{lwarp}| (\cref{sec:loading}) is placed after any of the above, followed by: % \item |\setmonofont{TeX Gyre Cursor}| or similar may be required if using % \trouble[\pkg{fontspec} with monospaced fonts]{font>monospace} % \trouble{font>ligatures} @@ -7077,6 +7528,23 @@ This boolean may be tested by the user for later use. % with \pkg{fontspec} after loading the traditional font packages. % Monospaced output ligatures must be turned off % to produce the correct \HTML\ characters. +% +% Any monospace font with built-in ligatures may require these ligatures to +% \changes{v0.84}{2020/04/15}{Docs: \brand{JetBrain Mono} font.} +% be disabled for \HTML. In one example, \brand{JetBrain Mono}, +% \trouble[\brand{JetBrain Mono}]{font>JetBrain Mono=\brand{JetBrain Mono}} +% \trouble{jetbrain mono=\brand{JetBrain Mono}} +% \trouble[\HTML\ corrupted]{HTML>corrupted} +% \trouble{font>ligatures} +% it is required to use +% \begin{sourcedisplay} +% \cs{setmonofont}\{JetBrains Mono\}[\% \\ +% \dots \\ +% \textgreen{Contextuals=AlternateOff,} \\ +% ] +% \end{sourcedisplay} +% After \pkg{lwarp} is loaded, the ligature may be re-enabled for print mode +% by using \cs{setmonofont} again inside a \env{warpprint} environment. % \item \ldots{} the rest of the preamble and the main document. % \end{enumerate} % @@ -7089,17 +7557,12 @@ This boolean may be tested by the user for later use. % \gindex{UTF-8>index} % \gindex{index>UTF-8} % -% \pkg{lwarp} uses the \prog{xindy} program to processes indexes. -% \prog{xelatex} and \prog{lualatex} use \prog{xindy} and -% \prog{pdflatex} uses \prog{texindy}. +% \pkg{lwarp} supports \prog{makeindex}, \prog{xindy}, \prog{xindex}, +% and \pkg{glossaries}, \pkg{gloss}, and \pkg{nomencl}. +% +% See \cref{sec:indexingoverview} for indexing, and +% \cref{sec:glossaries} for the \pkg{glossaries} package. % -% The \pkg{lwarp} option \optn{xindyLanguage} may be used to set the language option -% for \pkg{xindy}, and the \optn{xindyCodepage} option may be used to set the codepage -% option for \pkg{xindy}. These are used for -% ^^A both -% index -% ^^A and glossary -% generation. % % % \clearpage @@ -7109,7 +7572,7 @@ This boolean may be tested by the user for later use. % \gindex{settings>lwarp=\pkg{lwarp} package options} % % \begin{table} -% \caption{\pkg{lwarp} package options\label{tab:options}} +% \caption{\pkg{Lwarp} package options\label{tab:options}} % \centering % \renewcommand{\arraystretch}{1.2} % \begin{tabular}{>{\ttfamily}lp{3.25in}} @@ -7129,8 +7592,8 @@ This boolean may be tested by the user for later use. % \midrule % \multicolumn{2}{l}{\small For indexing (\cref{sec:indexsetup}) and glossaries (\cref{sec:glossaries}):} \\ % makeindex & Use \prog{makeindex} to generate indices. \\ -% xindy & Use \prog{xindy} to generate indices. \\ % makeindexStyle & Set a custom style for \prog{makeindex}. \\ +% xindy & Use \prog{xindy} to generate indices. \\ % xindyStyle & Set a custom style for \prog{xindy}. \\ % xindyLanguage & The \prog{xindy} language option used for index % ^^A and glossary @@ -7138,9 +7601,12 @@ This boolean may be tested by the user for later use. % xindyCodepage & The \prog{xindy} codepage option used for index % ^^A and glossary % generation. \\ +% xindex & Use \prog{xindex} to generate indices. \\ +% xindexConfig & Set a custom configuration file for \prog{xindex}. \\ % PrintIndexCmd & Shell commands executed by \cmds{lwarpmk printindex}. \\ % HTMLIndexCmd & Shell commands executed by \cmds{lwarpmk htmlindex}. \\ % LatexmkIndexCmd & Shell commands executed by \prog{latexmk}. \\ +% IndexRef & How to format index links. \\ % GlossaryCmd & Shell command executed by \cmds{lwarpmk printglossary} and \cmds{lwarpmk htmlglossary}. \\ % \midrule % \multicolumn{2}{l}{\small Seldom necessary:} \\ @@ -7178,60 +7644,70 @@ This boolean may be tested by the user for later use. % % \begin{description}[itemsep=1\baselineskip] % -% \item[\optn{mathsvg}, \optn{mathjax}:] +% \item[\optn{mathsvg} \textmd{and} \optn{mathjax}:] % \DescribeOption{mathsvg} % \DescribeOption{mathjax} +% \DescribeDefault{mathsvg} +% Selects \SVG\ images or \brand{MathJax} for math display. +% See \cref{sec:limitsmath}. % ^^A \DescribeOption{mathKaTeX} % ^^A For math display, select \optn{mathsvg} (default), \optn{mathjax}, % ^^A or \optn{mathKaTeX}. -% For math display, select \optn{mathsvg} (default) or \optn{mathjax}. -% For more information about the math options, see \cref{sec:limitsmath}. -% % -% \item[\optn{latexmk}:] -% \DescribeOption{latexmk} +% \ItemDescribeOption{latexmk} % \DescribeDefault{false} Tells \prog{lwarpmk} to use \prog{latexmk} to recompile the % document several times if necessary. % Otherwise, \prog{lwarpmk} attempts to determing for itself whether to recompile. % See \cref{sec:htmlsettings}. % -% \item[\optn{dvips}:] -% \DescribeOption{dvips} +% \ItemDescribeOption{dvips} % \DescribeDefault{false} Tells \prog{lwarpmk} to use \prog{dvips} and \prog{ps2pdf} to convert % \DVI\ output to \PDF. % -% \item[\optn{dvipdfm}:] -% \DescribeOption{dvipdfm} +% \ItemDescribeOption{dvipdfm} % \DescribeDefault{false} Tells \prog{lwarpmk} to use \prog{dvipdfm} to convert % \DVI\ output to \PDF. % -% \item[\optn{dvipdfmx}:] -% \DescribeOption{dvipdfmx} +% \ItemDescribeOption{dvipdfmx} % \DescribeDefault{false} Tells \prog{lwarpmk} to use \prog{dvipdfmx} to convert % \DVI\ output to \PDF. % % -% \item[\optn{HomeHTMLFilename}:] -% \DescribeOption{HomeHTMLFilename} -% \DescribeDefault{\{\}} -% See \cref{sec:htmlsettings}. +% \ItemDescribeOption{HomeHTMLFilename} +% \DescribeDefault{\cs{BaseJobname}} % +% Filename of the homepage, without +% the ``\filenm{.html}'' suffix. +% Defaults to the \cs{BaseJobname}. A common setting is: +% \begin{sourcedisplay} +% |HomeHTMLFilename=index| +% \end{sourcedisplay} +% causing the +% homepage to be the file |index.html|. Underscores are allowed in +% \margintag{filename underscores} +% \optn{HomeHTMLFilename} and \optn{HTMLFilename} options, but may need to be escaped +% elsewhere, such as when appearing in a list: +% \gindex{underscore>filename}\gindex{filename>underscore in} +% \changes{v0.24}{2017/03/13}{Docs: Filename underscore.} +% \begin{sourcedisplay} +% \cs{item} [\cs{href}\{file\textred{\textbackslash\_}name.pdf\}\{text\}] \textbackslash +% \end{sourcedisplay} +% See \cref{sec:filenameexamples} for examples of naming and numbering \HTML\ files. % -% \item[\optn{HTMLFilename}:] -% \DescribeOption{HTMLFilename} -% \DescribeDefault{\{\}} -% See \cref{sec:htmlsettings}. +% \ItemDescribeOption{HTMLFilename} +% \DescribeDefault{} +% A filename prefix for the rest of the \HTML\ web pages. +% Useful for numbered web pages with a common prefix. May be empty. +% See \cref{sec:filenameexamples} for examples of naming and numbering \HTML\ files. % % -% \item[\optn{ImagesName}:] -% \DescribeOption{ImagesName} +% \ItemDescribeOption{ImagesName} % \DescribeDefault{image-} % The prefix for the images automatically generated by \pkg{lwarp} % for objects such as \SVG\ math and \env{lateximage}s. % % -% \item[\optn{ImagesDirectory}:] -% \DescribeOption{ImagesDirectory} +% \ItemDescribeOption{ImagesDirectory} % \DescribeDefault{\cs{jobname}-images} % The directory for the images automatically generated by \pkg{lwarp} % for objects such as \SVG\ math and \env{lateximage}s. @@ -7240,22 +7716,19 @@ This boolean may be tested by the user for later use. % \filenm{image-}. % % -% \item[\optn{PrintLatexCmd}:] -% \DescribeOption{PrintLatexCmd} +% \ItemDescribeOption{PrintLatexCmd} % \DescribeDefault{} Sets the shell commands executed by \cmds{lwarpmk print}. % If not specified, will automatically be set according to the detected \LaTeX\ engine % and the use of \optn{-\/-shell-escape}. % % -% \item[\optn{HTMLLatexCmd}:] -% \DescribeOption{HTMLLatexCmd} +% \ItemDescribeOption{HTMLLatexCmd} % \DescribeDefault{} Sets the shell commands executed by \cmds{lwarpmk html}. % If not specified, will automatically be set according to the detected \LaTeX\ engine % and the use of \optn{-\/-shell-escape}. % % -% \item[\optn{makeindex}:] -% \DescribeOption{makeindex} +% \ItemDescribeOption{makeindex} % \DescribeDefault{makeindex} Sets \optn{PrintIndexCmd}, \optn{HTMLIndexCmd}, % and \optn{LatexmkImageCmd} % to use \prog{makeindex} when generating indexes with @@ -7263,43 +7736,50 @@ This boolean may be tested by the user for later use. % If neither \optn{makeindex} nor \optn{xindy} is used, \optn{makeindex} is assumed. % % -% \item[\optn{xindy}:] -% \DescribeOption{xindy} +% \ItemDescribeOption{makeindexStyle} +% \DescribeDefault{lwarp.ist} +% If you wish to use a custom |.ist| file for +% index generation, see \cref{sec:modifymakeindex}. +% +% +% \ItemDescribeOption{xindy} % \DescribeDefault{makeindex} Sets \optn{PrintIndexCmd}, \optn{HTMLIndexCmd}, % and \optn{LatexmkImageCmd} % to use \prog{xindy} when generating indexes with % \cmds{lwarpmk printindex}, \cmds{lwarpmk htmlindex}, or \prog{latexmk}. % % -% \item[\optn{makeindexStyle}:] -% \DescribeOption{makeindexStyle} -% \DescribeDefault{lwarp.ist} -% If you wish to use a custom |.ist| file for -% index generation, see \cref{sec:packageoptions}. -% -% -% \item[\optn{xindyStyle}:] -% \DescribeOption{xindyStyle} +% \ItemDescribeOption{xindyStyle} % \DescribeDefault{lwarp.xdy} % If you wish to use a custom |.xdy| file for -% index generation, see \cref{sec:packageoptions}. +% index generation, see \cref{sec:modifyxindy}. % % -% \item[\optn{xindyLanguage}:] -% \DescribeOption{xindyLanguage} +% \ItemDescribeOption{xindyLanguage} % \DescribeDefault{english} If using an index or glossary, % see \cref{sec:packageoptions}. % % -% \item[\optn{xindyCodepage}:] -% \DescribeOption{xindyCodepage} +% \ItemDescribeOption{xindyCodepage} % \DescribeDefault{utf8} If using an index, % ^^A or glossary, % see \cref{sec:packageoptions}. % % -% \item[\optn{PrintIndexCmd}:] -% \DescribeOption{PrintIndexCmd} +% \ItemDescribeOption{xindex} +% \DescribeDefault{makeindex} Sets \optn{PrintIndexCmd}, \optn{HTMLIndexCmd}, +% and \optn{LatexmkImageCmd} +% to use \prog{xindex} when generating indexes with +% \cmds{lwarpmk printindex}, \cmds{lwarpmk htmlindex}, or \prog{latexmk}. +% +% +% \ItemDescribeOption{xindexConfig} +% \DescribeDefault{} +% If you wish to use a custom |xindex-*.lua| file for +% index generation, see \cref{sec:modifyxindex}. +% +% +% \ItemDescribeOption{PrintIndexCmd} % \DescribeDefault{} Sets the shell commands executed by \cmds{lwarpmk printindex}. % If not specified, will be set by the selection of \optn{makeindex} or % \optn{xindy}. May be used to specify the creation of multiple indexes. @@ -7321,7 +7801,7 @@ This boolean may be tested by the user for later use. % % If specifying \optn{PrintIndexCmd} manually, % \trouble{PrintIndexCmd} -% \trouble[xindy]{xindy=\pkg{xindy}>options>PrintIndexCmd=\optn{PrintIndexCmd}} +% \trouble[xindy]{xindy=\prog{xindy}>options>PrintIndexCmd=\optn{PrintIndexCmd}} % be sure to assign an \prog{xindy} % language and codepage with the |-L| and |-C| \prog{xindy} options, as the % \pkg{lwarp} \optn{xindyLanguage} and \optn{xindyCodepage} options are not @@ -7337,8 +7817,7 @@ This boolean may be tested by the user for later use. % with the \pkg{lwarp} \optn{PrintIndexCmd} option. % % -% \item[\optn{HTMLIndexCmd}:] -% \DescribeOption{HTMLIndexCmd} +% \ItemDescribeOption{HTMLIndexCmd} % \DescribeDefault{} Sets the shell commands executed by \cmds{lwarpmk htmlindex}. % If not specified, will be set by the selection of \optn{makeindex} or % \optn{xindy}. May be used to specify the creation of multiple indexes. @@ -7361,7 +7840,7 @@ This boolean may be tested by the user for later use. % \optn{xindyLanuage}, and \optn{xindyCodepage} options will be used if specified. % % If specifying \optn{HTMLIndexCmd} manually, -% \trouble[xindy]{xindy=\pkg{xindy}>options>HTMLIndexCmd=\optn{HTMLIndexCmd}} +% \trouble[xindy]{xindy=\prog{xindy}>options>HTMLIndexCmd=\optn{HTMLIndexCmd}} % be sure to assign an \prog{xindy} % language and codepage with the |-L| and |-C| \prog{xindy} options, as the % \pkg{lwarp} \optn{xindyLanguage} and \optn{xindyCodepage} options are not @@ -7371,8 +7850,7 @@ This boolean may be tested by the user for later use. % worthwhile to use a shell script, then refer to that script with \optn{HTMLIndexCmd}. % % -% \item[\optn{LatexmkIndexCmd}:] -% \DescribeOption{LatexmkIndexCmd} +% \ItemDescribeOption{LatexmkIndexCmd} % \DescribeDefault{} Sets the shell commands executed by \prog{latexmk}. % Unlike \optn{PrintIndexCmd} and \optn{HTMLIndexCmd}, \optn{LatexmkIndexCmd} % does not include any filenames, which will be provided instead by \prog{latexmk}. @@ -7396,36 +7874,63 @@ This boolean may be tested by the user for later use. % shown above to compile each of multiple indexes if necessary. % % If specifying \optn{LatexmkIndexCmd} manually, -% \trouble[xindy]{xindy=\pkg{xindy}>options>LatexmkIndexCmd=\optn{LatexmkIndexCmd}} +% \trouble[xindy]{xindy=\prog{xindy}>options>LatexmkIndexCmd=\optn{LatexmkIndexCmd}} % be sure to assign an \prog{xindy} % language and codepage with the |-L| and |-C| \prog{xindy} options, as the % \pkg{lwarp} \optn{xindyLanguage} and \optn{xindyCodepage} options are not % used for the \optn{LatexmkIndexCmd} option when it is set manually. % % -% \item[\optn{GlossaryCmd}:] -% \DescribeOption{GlossaryCmd} +% \ItemDescribeOption{IndexRef} +% \DescribeDefault{cref} +% \label{sec:optionindexref} +% Describes how to display the index entries for \HTML\ output. +% Possible values are \optn{ref}, \optn{nameref}, \optn{refnameref}, +% \optn{cref}, \optn{crefnameref}, \optn{autoref}, or a text string +% such as \optn{(link)} or \optn{(*)} for each index entry reference. +% (Adding parentheses around a single character makes the link +% larger and easier to click on.) +% The default is \optn{cref}, which is available even if the print document +% does not use \pkg{cleveref}, as the \pkg{lwarp} package relies on \pkg{cleveref} +% during \HTML\ output. +% Option \optn{autoref} gives the same results as \optn{cref}. +% +% \cs{ref} and \cs{cref} to starred or otherwise unknown links will display as +% |(*)| instead of |??|. +% +% If using \optn{cref} (the default), +% \trouble[??]{index>?? and non-functional link} +% \trouble{index>formatting} +% and if a reference appears as |??| with a non-functional link, +% use \pkg{cleveref}'s \cs{crefname} to give a name to that type of label. +% +% In general, \optn{crefnameref} gives the most information, +% but the index can become quite verbose. +% Using \optn{(*)} or similar yields a very compact index. +% +% +% \ItemDescribeOption{GlossaryCmd} % \DescribeDefault{\cmds{makeglossaries}} Sets the shell command % executed by \cmds{lwarpmk printglossary} and \cmds{lwarpmk htmlglossary}. % The print or \HTML\ glossary filename is appended to this command. % See \cref{sec:glossaries}. % % -% \item[\optn{OSWindows}:] -% \DescribeOption{OSWindows} \pkg{lwarp} attempts to automatically sense \brand{Windows}, +% \ItemDescribeOption{OSWindows} +% \pkg{lwarp} attempts to automatically sense \brand{Windows}, % but it may be forced with this option. % See \cref{sec:OSportabilityusage}. % % -% \item[\optn{pdftotextEnc}:] -% \DescribeOption{pdftotextEnc} -% \DescribeDefault{UTF-8} Used to specify +% \ItemDescribeOption{pdftotextEnc} +% \DescribeDefault{UTF-8} +% Used to specify % the encoding used by \prog{pdftotext} during the \PDF-\HTML\ conversion. % In most situations, the default is the correct choice. % % -% \item[\optn{lwarpmk}:] -% \DescribeOption{lwarpmk} If you wish to have \pkg{lwarp} generate a local +% \ItemDescribeOption{lwarpmk} +% If you wish to have \pkg{lwarp} generate a local % copy of \filenm{lwarpmk.lua} for archival or local-installation purposes, % compile the print version with the \optn{lwarpmk} option set. % See \cref{sec:packageoptions}. @@ -7439,7 +7944,7 @@ This boolean may be tested by the user for later use. % \end{quote} % % -% \item[\optn{warpprint} and \optn{warpHTML}:] +% \item[\optn{warpprint} \textmd{and} \optn{warpHTML}:] % \DescribeOption{warpprint} % \DescribeOption{warpHTML} % Usually controlled by \prog{lwarpmk}, and not set in the document. @@ -7454,8 +7959,7 @@ This boolean may be tested by the user for later use. % while |_html.tex| will create an \HTML\ version. % % -% \item[\optn{BaseJobname}:] -% \DescribeOption{BaseJobname} +% \ItemDescribeOption{BaseJobname} % \DescribeDefault{\cs{jobname}} Not intended for the user. % Used internally by \pkg{lwarp} when % creating the |*_html.tex| file used to compile the \HTML\ version. @@ -7478,49 +7982,67 @@ This boolean may be tested by the user for later use. % \begin{table}[p] % \caption{\HTML\ settings} % \label{tab:htmlsettings} -% \begin{tabular}{>{\ttfamily}lp{3in}} +% \renewcommand{\arraystretch}{1.1} +% \begin{threeparttable} +% \begin{tabular}{>{\ttfamily}lcp{3in}} % \toprule -% Macro \Slash Cntr \Slash Bool & Description \\ \midrule -% \cs{linkhomename} & Name of the link to the homepage. \\ +% Macro \Slash Cntr \Slash Bool & Loc\tnote{*} & Description \\ \midrule +% \cs{linkhomename} & P & Name of the link to the homepage. \\ +% \cs{linkpreviousname} & P & Name of the link to the previous page. \\ +% \cs{linknextname} & P & Name of the link to the next page. \\ % \midrule -% SideTOCDepth & Sectioning depth of the side\TOC. \\ -% \cs{sidetocname} & Name of the side\TOC. \\ +% SideTOCDepth & P & Sectioning depth of the side\TOC. \\ +% \cs{sidetocname} & P & Name of the side\TOC. \\ % \midrule -% FileDepth & Sectioning depth of the file splits. \\ -% CombineHigherDepths & Combine higher section levels. \\ -% FileSectionNames & Use section names for file names, else use numbers. \\ -% \cs{FilenameLimit} & Maximum length of the generated filenames. \\ +% FileDepth & P & Sectioning depth of the file splits. \\ +% CombineHigherDepths & P & Combine higher section levels. \\ +% FileSectionNames & P & Use section names for file names, else use numbers. \\ +% \cs{FilenameLimit} & P & Maximum length of the generated filenames. \\ % \midrule -% FootnoteDepth & Sectioning depth of footnotes. \\ +% FootnoteDepth & P & Sectioning depth of footnotes. \\ % \midrule -% \cs{abstractname} & The name of the abstract. \\ -% \cs{ImageAltText} & \cs{includegraphics} and other images' \attribute{alt} tag. \\ -% \cs{ThisAltText} \marg{text} & Assigns an \attribute{alt} \Slash \attribute{title} +% \cs{abstractname} & P & The name of the abstract. \\ +% \cs{ImageAltText} & PD & \cs{includegraphics} and other images' \attribute{alt} tag. \\ +% \cs{ThisAltText} \marg{text} & PD & Assigns an \attribute{alt} \Slash \attribute{title} % tag for the next image or link. \\ -% \cs{MathImageAltText} & The \SVG\ math image \env{lateximage} \attribute{alt} tag. \\ -% \cs{PackageDiagramAltText} & The suffix for a package's \env{lateximage} \attribute{alt} tags. \\ -% \cs{AltTextOpen} & Start an \HTML\ \attribute{alt} tag. \\ -% \cs{AltTextClose} & End an \HTML\ \attribute{alt} tag. \\ +% \cs{MathImageAltText} & PD & The \SVG\ math image \env{lateximage} \attribute{alt} tag. \\ +% \cs{PackageDiagramAltText} & PD & The suffix for a package's \env{lateximage} \attribute{alt} tags. \\ +% \cs{AltTextOpen} & PD & Start an \HTML\ \attribute{alt} tag. \\ +% \cs{AltTextClose} & PD & End an \HTML\ \attribute{alt} tag. \\ % \midrule -% \cs{CSSFilename} & The \CSS\ for the following files. \\ -% \cs{MathJaxFilename} & The MathJax script for the following files. \\ +% \cs{CSSFilename} & PS & The \CSS\ for the following files. \\ +% \cs{MathJaxFilename} & PS & The \brand{MathJax} script for the following files. \\ % \midrule -% \cs{HTMLLanguage} & The \HTML\ \attribute{lang} tag. \\ -% \cs{HTMLTitle} & The homepage's \element{title}, overriding \cs{title}. \\ -% \cs{HTMLTitleBeforeSection} & Set subpage \element{title}s to \newline +% \cs{HTMLLanguage} & PS & The \HTML\ \attribute{lang} tag. \\ +% \cs{HTMLTitle} & PS & The homepage's \element{title}, overriding \cs{title}. \\ +% \cs{HTMLTitleBeforeSection} & PS & Set subpage \element{title}s to \newline % \fqquad \attribute{\cs{HTMLTitle} - sectionname} \\ -% \cs{HTMLTitleAfterSection} & Set subpage \element{title}s to \newline +% \cs{HTMLTitleAfterSection} & PS & Set subpage \element{title}s to \newline % \fqquad \attribute{sectioname - \cs{HTMLTitle}}\\ -% \cs{HTMLAuthor} & The \HTML\ \attribute{author} meta tag, overriding \cs{author}. \\ -% \cs{HTMLDescription} & The \HTML\ \attribute{description} meta tag. \\ +% \cs{HTMLAuthor} & PS & The \HTML\ \attribute{author} meta tag, overriding \cs{author}. \\ +% \cs{HTMLDescription} & PS & The \HTML\ \attribute{description} meta tag. \\ % \midrule -% \cs{HTMLFirstPageTop} & Heading for the home page. \\ -% \cs{HTMLPageTop} & Heading for the other pages. \\ -% \cs{HTMLPageBottom} & Footing for all pages. \\ +% \cs{HTMLFirstPageTop} & P & Heading for the home page. \\ +% \cs{HTMLFirstPageBottom} & P & Footer for the home page. \\ +% \cs{HTMLPageTop} & PS & Heading for the other pages. \\ +% \cs{HTMLPageBottom} & PS & Footer for the other pages. \\ % \midrule -% HTMLDebugComments & Boolean to generate \HTML\ comments. \\ +% \cs{IndexPageSeparator} & P & Index page list separator. \\ +% \cs{IndexRangeSeparator} & P & Index page range separator. \\ +% \midrule +% FixSmallCaps & P & Set \optn{true} if small caps rendered as all caps. \\ +% HTMLDebugComments & P & Boolean to generate \HTML\ comments. \\ % \bottomrule % \end{tabular} +% \begin{tablenotes} +% \item [*] +% \begin{inlinedesc} +% \item [P:] Preamble, +% \item [D:] Anywhere in the document. +% \item [S:] Before a section. +% \end{inlinedesc} \hspace*{\fill} +% \end{tablenotes} +% \end{threeparttable} % \end{table} % % \Cref{tab:htmlsettings} shows several settings may be used @@ -7540,66 +8062,40 @@ This boolean may be tested by the user for later use. % % \begin{description}[style=unboxed] % -% \item[Options for the \pkg{lwarp} package:] \ \newline -% Use the following as options for |\usepackage[]{lwarp}|: +% \needspace{3\baselineskip} +% \item[Placed in the preamble before \texttt{\cs{begin}\{document\}}:] \ % % \begin{description} % -% \ItemDescribeOption{HomeHTMLFilename} \DescribeDefault{\cs{BaseJobname}} -% Filename of the homepage, without -% the ``\filenm{.html}'' suffix. -% Defaults to the \cs{BaseJobname}. A common setting is: -% \begin{sourcedisplay} -% |HomeHTMLFilename=index| -% \end{sourcedisplay} -% causing the -% homepage to be the file |index.html|. Underscores are allowed in -% \margintag{filename underscores} -% \optn{HomeHTMLFilename} and \optn{HTMLFilename} options, but may need to be escaped -% elsewhere, such as when appearing in a list: -% \gindex{underscore>filename}\gindex{filename>underscore in} -% \changes{v0.24}{2017/03/13}{Docs: Filename underscore.} -% \begin{sourcedisplay} -% \cs{item} [\cs{href}\{file\textred{\textbackslash\_}name.pdf\}\{text\}] \textbackslash -% \end{sourcedisplay} -% See \cref{sec:filenameexamples} for examples of naming and numbering \HTML\ files. -% -% \ItemDescribeOption{HTMLFilename} \DescribeDefault{} -% A filename prefix for the rest of the \HTML\ web pages. -% Useful for numbered web pages with a common prefix. May be empty. -% See \cref{sec:filenameexamples} for examples of naming and numbering \HTML\ files. -% -% \ItemDescribeOption{latexmk} \DescribeDefault{false} -% Controls whether \pkg{lwarp} uses \prog{latexmk} to -% compile the document. This setting is written to \prog{lwarpmk}'s configuration -% files. -% -% \ItemDescribeOption{mathsvg} \DescribeDefault{true} -% Selects \SVG\ display for math output. (The default.) -% -% \ItemDescribeOption{mathjax} \DescribeDefault{false} -% Selects \brand{MathJax} for math output. -% -% ^^A \ItemDescribeOption{mathKaTeX} \DescribeDefault{false} -% ^^A Selects Ka\TeX\ for math output. -% -% \ItemDescribeOption{makeindex} \DescribeDefault{makeindex} -% Selects \prog{makeindex} for index generation by \prog{lwarpmk}. -% -% \ItemDescribeOption{xindy} \DescribeDefault{makeindex} -% Selects \prog{xindy} for index generation by \prog{lwarpmk}. -% -% \end{description} \bigskip -% -% \item[Placed in the preamble before \texttt{\cs{begin}\{document\}}:] \ +% \ItemDescribeMacro{\HTMLFirstPageTop} \marg{contents} \DescribeDefault{} \quad +% A user-definable custom action applied +% to the top of the home page. Useful for logos, etc. +% \cs{LinkNext} may be used to link to the next web page. +% Defaults empty. +% Ignored in print output. % -% \begin{description} +% \ItemDescribeMacro{\HTMLFirstPageBottom} \marg{contents} \DescribeDefault{} \quad +% A user-definable custom action applied +% to the bottom of the home page. Useful for logos, etc. +% \cs{LinkNext} may be used to link to the next web page. +% Defaults empty. +% Ignored in print output. % % \ItemDescribeMacro{\linkhomename} \DescribeDefault{Home} % Name of the link to the home page. Paragraphs are allowed. % Redefine with \cs{renewcommand}. % \changes{v0.63}{2018/11/29}{Docs: \cs{linkhomename}.} % +% \ItemDescribeMacro{\linkpreviousname} \DescribeDefault{Previous} +% Name of the link to the previous page. Paragraphs are allowed. +% Redefine with \cs{renewcommand}. +% \changes{v0.84}{2020/04/24}{Docs: \cs{linkpreviousname}.} +% +% \ItemDescribeMacro{\linknextname} \DescribeDefault{Next} +% Name of the link to the next page. Paragraphs are allowed. +% Redefine with \cs{renewcommand}. +% \changes{v0.84}{2020/04/24}{Docs: \cs{linkpreviousname}.} +% % \ItemDescribeCounter{tocdepth} Sectioning depth of the table of contents. % See \cref{sec:stackdepths} for a list of \LaTeX{} stack depths. % @@ -7717,6 +8213,11 @@ This boolean may be tested by the user for later use. % Any pending footnotes are also placed at the bottom of each page % before each file break. % +% \ItemDescribeBoolean{FixSmallCaps} \DescribeDefault{false} +% Set |true| if \textsc{Small Caps} are rendering in all caps (``SMALL CAPS''). +% May be required for some fonts (\pkg{erewhon}, \pkg{utopia}, \pkg{fbb}, et al.), +% and packages such as \pkg{embrac}. +% % \ItemDescribeBoolean{HTMLDebugComments} \DescribeDefault{false} % Set |true| to generate \HTML\ comments, such as which section or \element{div} % is being opened or closed. @@ -7727,9 +8228,17 @@ This boolean may be tested by the user for later use. % by the \pkg{babel} package. Defaults to ``|Abstract|''. % Redefine with \cs{renewcommand}. % +% \ItemDescribeMacro{\IndexPageSeparator} \DescribeDefault{``, ''} +% Index page list separator. Adjust to match index style file. +% If using \pkg{gindex}, this is set automatically to \pkg{gindex}'s \cs{indexpagessep}. +% +% \ItemDescribeMacro{\IndexRangeSeparator} \DescribeDefault{``-\/-''} +% Index page range separator. Adjust to match index style file. +% If using \pkg{gindex}, this is set automatically to \pkg{gindex}'s \cs{indexrangesep}. +% % \end{description} % -% \needspace{2\baselineskip} +% \needspace{3\baselineskip} % \item[Placed before \texttt{\cs{begin}\{document\}}, % or before any sectioning command which causes a file break:] \ % @@ -7749,11 +8258,11 @@ This boolean may be tested by the user for later use. % % \ItemDescribeMacro{\MathJaxFilename} \marg{filename} % \DescribeDefault{\filenm{lwarp_mathjax.txt}} \quad -% Sets the MathJax script file to use for the following +% Sets the \brand{MathJax} script file to use for the following % files. May be changed before each each sectioning command which would % cause a file split. % -% The MathJax script file is copied into the head of each \HTML\ file. +% The \brand{MathJax} script file is copied into the head of each \HTML\ file. % This may be used to point to a local repository, add extensions, or change % the script somewhere in the middle of the document. % \cs{MathJaxFilename} may be used before each file break to set the script file for @@ -7803,31 +8312,40 @@ This boolean may be tested by the user for later use. % the following files. May be changed before each each sectioning command which would % cause a file split. % -% \ItemDescribeMacro{\HTMLFirstPageTop} \marg{contents} \DescribeDefault{} \quad -% A user-definable custom action applied -% to the top of the home page. Useful for logos, etc. -% Defaults empty. -% Ignored in print output. -% % \ItemDescribeMacro{\HTMLPageTop} \marg{contents} \DescribeDefault{} \quad % A user-definable custom action applied to % the top of pages other than the home page. Useful for logos, etc. % Defaults empty. -% \cs{LinkHome} may be used to place a link back to the homepage. +% \cs{LinkHome} may be used to place a link back to the homepage, as well as +% \cs{LinkPrevious} and \cs{LinkNext}. % Ignored in print output. % % \ItemDescribeMacro{\HTMLPageBottom} \marg{contents} \DescribeDefault{} \quad % A user-definable custom action applied to the -% bottom of each web page. +% bottom of pages other than the home page. % Useful for authors, copyright notices, contact information, etc. % Defaults empty. -% \cs{LinkHome} may be used to place a link back to the homepage. +% \cs{LinkHome} may be used to place a link back to the homepage, as well as +% \cs{LinkPrevious} and \cs{LinkNext}. % Ignored in print output. % +% \ItemDescribeMacro{\LinkHome} Creates a link to the home page. +% \gindex{link>home \Slash previous \Slash next page} +% \gindex{navigation>link to home \Slash previous \Slash next page} +% Usually used in \cs{HTMLPageTop} and related. +% +% \ItemDescribeMacro{\LinkPrevious} Creates a link to the previous \HTML\ page, +% unless already at the home page. +% Usually used in \cs{HTMLPageTop} and related. +% +% \ItemDescribeMacro{\LinkNext} Creates a link to the next \HTML\ page, unless +% already at the end. +% Usually used in \cs{HTMLPageTop} and related. +% % \end{description} % % -% \needspace{2\baselineskip} +% \needspace{3\baselineskip} % \item[Placed in the home page before the first sectioning command which causes a file break:] \ % % \begin{description} @@ -7883,13 +8401,15 @@ This boolean may be tested by the user for later use. % % \emph{Do not place anything else on the same line as \texttt{\cs{end}\{warpprint\}}}. % \watchout +% Also do not nest \env{warpprint} inside itself. % -% \ItemDescribeEnv{warpHTML} An environment which is only used +% \ItemDescribeEnv{warpHTML} An environment which is only included % while generating \HTML\ output. This is useful for website logos and % other items which have no purpose in printed output. % % \emph{Do not place anything else on the same line as \texttt{\cs{end}\{warpHTML\}}}. % \watchout +% Also do not nest \env{warpHTML} inside itself. % % \ItemDescribeMacro{\warpprintonly} \marg{contents} \quad % A macro version of the \env{warpprint} environment. @@ -8011,8 +8531,46 @@ This boolean may be tested by the user for later use. % \VerbatimInput[frame=lines]{sample_project.css} % % Finally use |\CSSFilename{.css}| in the document to activate the custom \CSS. -% -% +% +% +% \subsection{Assigning \CSS\ classes and styles} +% \label{sec:classstyle} +% +% \gindex{CSS>class=\attribute{class}} +% \gindex{CSS>style=\attribute{span}} +% \gindex{HTML>class=\attribute{class}} +% \gindex{HTML>style=\attribute{style}} +% \gindex{HTML>div=\element{div}} +% \gindex{HTML>span=\element{span}} +% +% \HTML\ \CSS\ classes and styles may be assigned to fragments of the document. +% +% \DescribeEnv{BlockClass} \oarg{style} \marg{class} +% +% An entire block of text, including paragraphs, may be assigned a \CSS\ class +% and optional \CSS\ style using the \env{BlockClass} environment. +% The result is placed inside a \element{div}. +% A \env{BlockClass} may nest other \env{BlockClass}es or \cs{InlineClass}es. +% +% \DescribeMacro{\InlineClass} +% \parg{\acro{wp} \CSS\ style} \oarg{web \CSS\ style} +% \marg{\CSS\ class} \marg{text} +% +% A section of text without paragraphs may be assinged a \CSS\ class and optional +% \CSS\ style using the \cs{InlineClass} macro. +% The result is placed inside a \element{span}. +% \cs{InlineClass} may be nested, but per the \HTML\ standard it must not contain +% \env{BlockClass}, nor may it contain a paragraph, nor several other objects +% such as \HTML\ figures. +% \cs{InlineClass} also accepts a second optional parameter, enclosed inside +% parentheses, which assigns the style while generating output for a word processor, +% while ignoring the web style. +% +% Nullified versions of \env{BlockClass} and \cs{InlineClass} are provided +% for the print version, so they may be used in the document without +% placing them inside \env{warpHTML} or \cs{warpHTMLonly}. +% +% % \subsection{Selecting the operating system} % \label{sec:OSportabilityusage} % \changes{v0.11}{2016/03/11}{Added section: Selecting the operating system.} @@ -8022,7 +8580,7 @@ This boolean may be tested by the user for later use. % % \subsection{Selecting actions for print, \HTML, or \brand{MathJax} output} % \label{sec:selectingoutput} -% \gindex{settings>selecting output} +% \gindex{settings>selecting print/\HTML\ output} % \changes{v0.15}{2016/04/05}{Docs: Clarify print/\HTML\ output.} % % The following environments and macros are used to select actions which only apply @@ -8050,6 +8608,8 @@ This boolean may be tested by the user for later use. % Do \emph{not} place anything else on the same line as |\end{warpHTML}|. % \trouble[\texttt{\cs{end}\{warpHTML\}}]{warpHTML} % The exact phrase is used to mark the end of the environment. +% Do not nest \env{warpHTML} inside itself. \watchout[nesting] +% \env{warpMathJax} may be used inside \env{warpHTML}. % % \DescribeEnv{warpprint} % Anything which is to be done only for print output @@ -8061,6 +8621,7 @@ This boolean may be tested by the user for later use. % \end{Verbatim} % As above, do not place anything else on the line with |\end{warpprint}|. % \trouble[\texttt{\cs{end}\{warpprint\}}]{warpprint} +% Do not nest \env{warpprint} inside itself.\watchout[nesting] % % \DescribeEnv{warpall} % Anything which is to be done for any output @@ -8071,6 +8632,8 @@ This boolean may be tested by the user for later use. % \end{warpall} % \end{Verbatim} % As above, do not place anything else on the line with |\end{warpall}|. +% \trouble[\texttt{\cs{end}\{warpall\}}]{warpall} +% Do not nest \env{warpall} inside itself.\watchout[nesting] % % % Macros are also provided for print-only or \HTML-only code: @@ -8087,6 +8650,10 @@ This boolean may be tested by the user for later use. % Anything which is to be done only while using \HTML\ output with \brand{MathJax} % is surrounded by a \env{warpMathJax} environment. % Usually, this is \cs{CustomizeMathJax}, used to add emulation macros. +% |\end{warpMathJax}| must appear on its own line. +% \trouble[\texttt{\cs{end}\{warpMathJax\}}]{warpMathJax} +% Do not nest \env{warpMathJax} inside itself. \watchout[nesting] +% \env{warpMathJax} may be used inside \env{warpHTML}. % % % \subsection{Commands to be placed into the \env{warpprint} environment} @@ -8328,9 +8895,73 @@ This boolean may be tested by the user for later use. % % \limitstext % -% \subsubsection{Horizontal space} % -% \limitshspace +% \subsubsection{Small caps} +% +% \DescribeBoolean{FixSmallCaps} +% \trouble{font>small caps} +% \trouble{small caps} +% \trouble{font>CJK} +% \trouble{CJK>font} +% Some fonts, such as \pkg{erewhon}, \pkg{utopia}, or \pkg{fbb}, and some packages +% such as \pkg{embrac}, copy/paste ``\textsc{Small Caps}'' +% as all caps (``SMALL CAPS''), +% which \pkg{lwarp} then reads as all caps, so the text is printed in all caps. +% If small caps are being rendered as all caps, set: +% \begin{sourceverb} +% \booltrue{FixSmallCaps} +% \end{sourceverb} +% Some CJK fonts may not work if \bool{FixSmallCaps} is set \optn{true}. +% \watchout[CJK fonts] +% \trouble{Chinese>font} +% \trouble{Japanese>font} +% \trouble{Korean>font} +% +% +% \subsubsection{Horizontal and vertical space and rules} +% +% \DescribeMacro{\hspace} +% \gindex{space>horizontal and vertical} +% \gindex{horizontal and vertical space} +% \gindex{vertical space} +% \cs{hspace} is converted to an inline \HTML\ span of the given width, +% except that \texttt{0} width is ignored, +% a width of \texttt{.16667em} is converted to +% an \HTML\ thin breakable space (\texttt{U+2009}), +% and a \cs{fill} is converted to a \cs{qquad}. +% +% \DescribeMacro{\vspace} +% \cs{vspace} is ignored for \HTML. +% +% \gindex{\texttt{\textasciitilde}} +% \gindex{\cs{,}} +% \marginpar{\hspace*{\fill}\texttt{\~}} +% \DescribeMacro{\,} +% \texttt{\~} and \cs{,} are converted to \HTML\ entities. +% +% \DescribeMacro{\kern} +% \DescribeMacro{\hskip} +% \cs{kern} and \cs{hskip} are entered into the \HTML\ \PDF\ output as-is, +% then interpreted by \prog{pdftotext}, and thus usually appear as a single space. +% +% \DescribeMacro{\rule} +% \cs{rule} is converted to an \HTML\ rule of the same dimensions, +% of the currently selected text color. +% +% \DescribeMacro{\hrule} +% \DescribeMacro{\vrule} +% \trouble{hrule=\cs{hrule}} +% \gindex{hrule=\cs{hrule}} +% Both \cs{hrule} and \cs{vrule} are ignored for \HTML. +% To create a horizontal dividing rule across the page, +% use \cs{hrulefill} in its own paragraph. +% +% \DescribeMacro{\hrulefill} +% \gindex{rule>horizontal} +% \gindex{horizontal rule} +% \cs{hrulefill} usually creates a one-inch rule, similar to a ``fill in the blank''. +% If it is used at the start of a new paragraph, it creates a \element{div} +% with a thin horizontal border across the page, as would often be done with \cs{hrule}. % % % \subsubsection{Text alignment} @@ -8474,7 +9105,7 @@ This boolean may be tested by the user for later use. % and \cs{StopDefiningTabulars} afterwards. % Also see the \pkg{lwarp} documentation for the \pkg{fancybox} package. % \item [To frame equations:] See \cref{sec:fancybox} for the \pkg{fancybox} package. -% \item [For fancy framed minipages:] See packages \pkg{boxedminipage2e}, +% \item [For fancy framed minipages:] See packages \pkg{boxedminipage}, % \pkg{shadow}, \pkg{fancybox}, \pkg{framed}, \pkg{mdframed}. % \item [Custom environments:] Use a custom environment to create a sidebar, % containing a \env{BlockClass} environment @@ -8502,6 +9133,44 @@ This boolean may be tested by the user for later use. % \DescribePackage{mdframed} % \limitsmdframed % + +% \subsubsection{\pkg{tcolorbox} package} +% \label{sec:limitstcolorbox} +% +% \DescribePackage{tcolorbox} +% \trouble{tcolorbox=\pkg{tcolorbox}} +% \pkg{tcolorbox} is emulated for \HTML\ and \brand{MathJax}, and +% supported as-is inside a \env{lateximage} or \SVG\ math. +% +% What has been tested to work (at least partly) includes: +% \begin{itemize}[nosep] +% \item \env{tcolorbox}, \cs{tcbox}. +% \item Title, subtitle. +% \item Upper, lower parts. +% \item Colors and title fonts. +% \item Floating objects. +% \item Some layered box features. +% \item Counters, labels, references. +% \item \pkg{listings}, \pkg{listingsutf8}. +% \item \optn{theorems}: +% Theorems are supported. +% \optn{math}, \optn{ams equation}, etc.\ are not supported. \watchout[math] +% Use a \env{tcolorbox} with regular math inside it. +% \cs{tcboxmath} and \cs{tcbhighmath} are suppored in \SVG\ math, and +% emulated in \brand{MathJax}. +% \item Fitting features: \cs{tcboxfit} becomes \cs{tcbox} in \HTML. +% \item Footnote numbering does not match the printed output.\watchout[footnotes] +% \item \brand{MathJax} emulation is provided for common macros. +% \end{itemize} +% +% If using \pkg{cleveref}, +% \trouble[undefined references]{reference>undefined>tcolorbox=\pkg{tcolorbox}} +% it may be necessary to name theorems such as: +% \begin{sourceverb} +% \crefname{tcb@cnt@mytheo}{my theorem}{my theorems} +% \end{sourceverb} +% +% % % \subsection{Section names} % \label{sec:limitssectionnames} @@ -8601,6 +9270,14 @@ This boolean may be tested by the user for later use. % \DescribePackage{varioref} % \limitscpageref % +% \pkg{cleveref} changes the behavior of \pkg{varioref} in that +% \trouble[\pkg{varioref} types]{varioref=\pkg{varioref}} +% the reference type is automatically printed if \pkg{cleveref} is loaded. +% \pkg{Lwarp} requires \pkg{cleveref}, so the \HTML\ version will always +% automatically print the reference types even if the print mode does not. +% The simplest way to make them match is to require the \pkg{cleveref} package +% for the document. +% % \subsubsection{Hyperlinks, \pkg{hyperref}, and \pkg{url}} % % \DescribePackage{hyperref} @@ -8823,7 +9500,12 @@ This boolean may be tested by the user for later use. % % If using a custom indexing style file, % \margintag{custom index style} -% see \cref{sec:modifymakeindex,sec:modifyxindy}. +% see \cref{sec:modifymakeindex,sec:modifyxindy,sec:modifyxindex}. +% +% To control how the index links appear in the \HTML\ output, +% \margintag{link appearance} +% see the \optn{IndexRef} option in \cref{sec:optionindexref}, +% \cpageref{sec:optionindexref}. % % See \cref{sec:index} for \pkg{lwarp}'s core index and glossary code, % \margintag{source code} @@ -8835,15 +9517,16 @@ This boolean may be tested by the user for later use. % and \cref{sec:memoirbackmatter} for \pkg{memoir}'s indexing patches. % % -% \subsubsection{Indexing with basic \LaTeX\ and \pkg{makeidx}} +% \subsubsection{Indexing with \pkg{makeidx}, \prog{makeindex}, +% \prog{xindy}, \prog{xindex}, \pkg{gindex}} % \label{sec:indexsetup} % % \changes{v0.38}{2017/08/24}{Docs: Index, \pkg{tocbibind}.} % \changes{v0.58}{2018/06/14}{Docs: Index, \prog{makeindex}, \pkg{imakeidx}.} % -% \gindex{xindy=\pkg{xindy}>and \pkg{hyperref}} -% \gindex{hyperref=\pkg{hyperref}>and \pkg{xindy}} -% \gindex{index>xindy=\pkg{xindy} and \pkg{hyperref}} +% \gindex{xindy=\prog{xindy}>and \pkg{hyperref}} +% \gindex{hyperref=\pkg{hyperref}>and \prog{xindy}} +% \gindex{index>xindy=\prog{xindy}>hyperref=and \pkg{hyperref}} % \trouble{index>missing entries} % \gindex{index>see, seealso, ranges} % \gindex{index>processing} @@ -8858,6 +9541,9 @@ This boolean may be tested by the user for later use. % % \needspace{2\baselineskip} % \item [For a single index using \prog{makeindex}:] +% \DescribeProgram{makeindex} +% \gindex{makeindex=\prog{makeindex}} +% \gindex{index>makeindex=\prog{makeindex}>setup} % \begin{sourcedisplay} % \cs{usepackage}\textred{[makeindex\textgreen{,latexmk}]} % \{\textblue{lwarp}\} @@ -8872,8 +9558,13 @@ This boolean may be tested by the user for later use. % Otherwise, use \userentry{lwarpmk printindex} \userentry{lwarpmk htmlindex} % to compile the indexes. % +% To use a custom configuration file, see \cref{sec:modifymakeindex}. +% % \needspace{8\baselineskip} % \item [For a single index using \prog{xindy}:] +% \DescribeProgram{xindy} +% \gindex{xindy=\prog{xindy}} +% \gindex{index>xindy=\prog{xindy}>setup} % \begin{sourcedisplay} % \cs{usepackage}[ \\ % \fqquad \textred{xindy,} \\ @@ -8889,11 +9580,63 @@ This boolean may be tested by the user for later use. % \prog{latexmk} will create the index automatically. % Otherwise, use \userentry{lwarpmk printindex} \userentry{lwarpmk htmlindex} % to compile the indexes. +% +% To use a custom configuration file, see \cref{sec:modifyxindy}. +% +% \needspace{8\baselineskip} +% \item [For a single index using \prog{xindex}:] +% \DescribeProgram{xindex} +% \gindex{xindex=\prog{xindex}} +% \gindex{index>xindex=\prog{xindex}>setup} +% \begin{sourcedisplay} +% \cs{usepackage}[ \\ +% \fqquad \textred{xindex,} \\ +% \fqquad \textgreen{latexmk} \hfill \textrm{}\\ +% ]\{\textblue{lwarp}\} +% \end{sourcedisplay} +% The usual \filenm{.idx} and \filenm{.ind} files will be used. +% +% \prog{lwarpmk} will use \prog{latexmk} if specified, in which case +% \prog{latexmk} will create the index automatically. +% Otherwise, use \userentry{lwarpmk printindex} \userentry{lwarpmk htmlindex} +% to compile the indexes. +% +% To use a custom configuration file, see \cref{sec:modifyxindex}. +% +% +% \needspace{8\baselineskip} +% \item [For a single index using \pkg{gindex}:] +% \DescribePackage{gindex} +% \gindex{gindex=\pkg{gindex}} +% \gindex{index>gindex=\pkg{gindex}>setup} +% \begin{sourcedisplay} +% \cs{usepackage}[ \\ +% \fqquad \textred{makeindex,} \\ +% \fqquad \textred{makeindexStyle=gindex.ist,} \\ +% \fqquad \dots or \dots \\ +% \fqquad \textred{makeindexStyle=gindexh.ist,} \\ +% \fqquad \textgreen{latexmk} \hfill \textrm{}\\ +% ]\{\textblue{lwarp}\} +% \end{sourcedisplay} +% The usual \filenm{.idx} and \filenm{.ind} files will be used. +% +% \prog{lwarpmk} will use \prog{latexmk} if specified, in which case +% \prog{latexmk} will create the index automatically. +% Otherwise, use \userentry{lwarpmk printindex} \userentry{lwarpmk htmlindex} +% to compile the indexes. +% +% To use a custom configuration file, copy \filenm{gindex.ist} to a new +% file, modify, then specify it with \optn{MakeindexStyle} as above. +% \pkg{lwarp} will automatically adapt to \pkg{gindex}'s \cs{indexpagessep} +% and \cs{indexrangesep} settings. % \end{description} % % % \subsubsection{Indexing with \pkg{index}} % +% \DescribeProgram{index} +% \gindex{index>index=\prog{index}>setup} +% % \pkg{lwarp} is told how to use \prog{makeindex} using the % \optn{PrintIndexCmd} and \optn{HTMLIndexCmd} options. % The file \filenm{lwarp.ist} is specified, which generates index letter heads for @@ -8943,6 +9686,9 @@ This boolean may be tested by the user for later use. % % \subsubsection{Indexing with \pkg{splitidx}} % +% \DescribeProgram{splitidx} +% \gindex{index>splitidx=\prog{splitidx}>setup} +% % \pkg{lwarp} is told how to use \prog{splitindex} using the % \optn{PrintIndexCmd} and \optn{HTMLIndexCmd} options. % The file \filenm{lwarp.ist} is specified, which generates index letter heads for @@ -9003,11 +9749,12 @@ This boolean may be tested by the user for later use. % \end{description} % % -% -% % \subsubsection{Indexing with \pkg{imakeidx}} % \label{sec:indexingimakeidx} % +% \DescribeProgram{imakeidx} +% \gindex{index>imakeidx=\prog{imakeidx}>setup} +% % Due to the number of methods which may be used to process multiple indexes, % the options for style file and \prog{xindy} language and codepage must be % specified in one of several different ways. These are described in detail later in @@ -9019,7 +9766,9 @@ This boolean may be tested by the user for later use. % \optn{options=} option, which must include % \pkg{lwarp}'s special \filenm{lwarp.ist} or \filenm{lwarp.xdy} file, % or a file based on them. -% If using a custom indexing style file, see \cref{sec:modifymakeindex,sec:modifyxindy}. +% If using a custom indexing style file, +% see \cref{sec:modifymakeindex,sec:modifyxindy,sec:modifyxindex}. +% % The \optn{splitindex} option is also available of shell escape is used, % in which case the \pkg{splitidx} package and \prog{splitindex} program will also be used. % @@ -9175,14 +9924,51 @@ This boolean may be tested by the user for later use. % % Use \userentry{lwarpmk printindex} \userentry{lwarpmk htmlindex} % to compile the indexes. +% +% \needspace{2\baselineskip} +% \item [For multiple indexes using \prog{xindex} and \pkg{imakeidx}, using shell escape:] \ +% +% \prog{xindex}, \prog{makeindex}, \prog{imakeidx}, and \prog{splitindex} can +% all work together: +% \begin{sourcedisplay} +% \cs{usepackage}\textred{[\% \\ +% \fquad xindex, \\ +% \fquad xindexConfig=-imakeidx, \\ +% \fquad \textgreen{latexmk} \\ +% ]} +% \{\textblue{lwarp}\} \\ +% \cs{usepackage}\textred{[makeindex\textgreen{,splitindex}]}\{\textblue{imakeidx}\} \\ +% \dots \\ +% \cs{makeindex}[\% \\ +% \fquad \textgreen{options=\{ -s lwarp.ist\} \}} \\ +% ] \\ +% \cs{makeindex}[ \\ +% \fquad name=secondname, \\ +% \fquad \textgreen{options=\{ -s lwarp.ist\} \}} \\ +% ] \\ +% \end{sourcedisplay} +% For the first compile, use: +% \watchout[enable shell escape] +% \userentry{pdflatex \textred{-\/-shell-escape} projectname.tex} +% \userentry{pdflatex \textred{-\/-enable-write18} projectname.tex \quad \textrm{(MiKTeX)}} +% or similar with \prog{xelatex} or \prog{lualatex}. +% \pkg{lwarp} will remember if shell escape was used. +% +% \prog{xindex} will use \prog{imakeidx}, +% and \prog{imakeidx} will automatically execute \prog{splitindex} if selected. +% +% If selected, \prog{latexmk} will automatically recompile the entire document +% as necessary. % \end{description} % % % \subsubsection{Indexes with \pkg{memoir}} % +% \gindex{index>memoir=\pkg{memoir}>setup} +% % \begin{description} % \needspace{7\baselineskip} -% \item [For a single index with \pkg{memoir} and \pkg{makeindex}:] +% \item [For a single index with \pkg{memoir} and \prog{makeindex}:] % \begin{sourcedisplay} % \cs{documentclass}\{\textblue{memoir}\} \\ % \cs{usepackage}\textred{[makeindex\textgreen{,latexmk}]}\{\textblue{lwarp}\} \\ @@ -9198,7 +9984,7 @@ This boolean may be tested by the user for later use. % to compile the indexes. % % \needspace{9\baselineskip} -% \item [For multiple indexes with \pkg{memoir} and \pkg{makeindex}, +% \item [For multiple indexes with \pkg{memoir} and \prog{makeindex}, % using \prog{latexmk}:] \ % % \pkg{lwarp}'s options are used, and are passed to \prog{latexmk}. @@ -9213,7 +9999,7 @@ This boolean may be tested by the user for later use. % when the user executes \cmds{lwarpmk print} and \cmds{lwarpmk html}. % % \needspace{19\baselineskip} -% \item [For multiple indexes with \pkg{memoir} and \pkg{makeindex}, +% \item [For multiple indexes with \pkg{memoir} and \prog{makeindex}, % \emph{without} \pkg{latexmk}:] \ % % \prog{lwarpmk} must be told how to create the indexes: @@ -9244,7 +10030,7 @@ This boolean may be tested by the user for later use. % to compile the indexes. % % \needspace{13\baselineskip} -% \item [For a single index with \pkg{memoir} and \pkg{xindy}:] +% \item [For a single index with \pkg{memoir} and \prog{xindy}:] % \begin{sourcedisplay} % \cs{documentclass}\{\textblue{memoir}\} \\ % \cs{usepackage}[ \\ @@ -9266,7 +10052,7 @@ This boolean may be tested by the user for later use. % to compile the indexes. % % \needspace{17\baselineskip} -% \item [For multiple indexes with \pkg{memoir} and \pkg{xindy}, +% \item [For multiple indexes with \pkg{memoir} and \prog{xindy}, % using \pkg{latexmk}:] \ % % \pkg{lwarp}'s options are used, and are passed to \prog{latexmk}. @@ -9286,7 +10072,7 @@ This boolean may be tested by the user for later use. % \prog{lwarpmk} will use \prog{latexmk} to create the indexes automatically. % % \needspace{24\baselineskip} -% \item [For multiple indexes with \pkg{memoir} and \pkg{xindy}, +% \item [For multiple indexes with \pkg{memoir} and \prog{xindy}, % \emph{without} \pkg{latexmk}:] \ % % \prog{lwarpmk} must be told how to create the indexes: @@ -9330,8 +10116,8 @@ This boolean may be tested by the user for later use. % \DescribeFile{lwarp.ist} % When using \prog{makeindex}, \prog{lwarpmk} uses the file |lwarp.ist| to process the index. % \gindex{lwarp.ist=\filenm{lwarp.ist}>customizing} -% \gindex{makeindex>customizing} -% \gindex{index>custom \pkg{makeindex} style file} +% \gindex{makeindex=\prog{makeindex}>customizing} +% \gindex{index>makeindex=\prog{makeindex}>custom style file} % This file is over-written by \pkg{lwarp} whenever a print version of % the document is processed. % @@ -9342,14 +10128,24 @@ This boolean may be tested by the user for later use. % Keep the lines which refer to \cs{hyperindexref}. % These lines creates the hyperlinks for the \HTML\ index. During print output % \cs{hyperindexref} becomes a null function. +% \item If changing +% \begin{sourceverb} +% delim_n -and- delim_r +% \end{sourceverb} +% in \filenm{projectname.ist}, then in the document preamble redefine +% \begin{sourceverb} +% \IndexPageSeparator -and- \IndexRangeSeparator +% \end{sourceverb} +% to match. % \item In the document source use the \optn{makeindexStyle} option for \pkg{lwarp}: % \DescribeOption{makeindexStyle} -% \begin{Verbatim}[gobble=2,tabsize=4] -% \usepackage[ -% ... other options ... -% \textred{makeindexStyle=projectname.ist}, -% ]{lwarp} -% \end{Verbatim} +% \begin{sourcedisplay} +% \cs{usepackage}[ \\ +% \fquad \dots other options \dots \\ +% \fquad \textred{makeindex}, \\ +% \fquad \textred{makeindexStyle=projectname.ist}, \\ +% ]\{lwarp\} +% \end{sourcedisplay} % Likewise, refer to the custom style file if using \cs{PrintIndexCmd}, % \cs{HTMLIndexCmd}, or \cs{LatexmkIndexCmd}. % \item Recompile the print version, which causes @@ -9366,8 +10162,8 @@ This boolean may be tested by the user for later use. % \DescribeFile{lwarp.xdy} % When using \prog{xindy}, \prog{lwarpmk} uses the file |lwarp.xdy| to process the index. % \gindex{lwarp.xdy=\filenm{lwarp.xdy}>customizing} -% \gindex{xindy=\pkg{xindy}>customizing} -% \gindex{index>custom \pkg{xindy} style file} +% \gindex{xindy=\prog{xindy}>customizing} +% \gindex{index>xindy=\prog{xindy}>custom style file} % This file is over-written by \pkg{lwarp} whenever a print version of % the document is processed. % @@ -9387,26 +10183,78 @@ This boolean may be tested by the user for later use. % \cs{hyperindexref} becomes a null function. % % To create custom styles, refer to the lines for \cs{textbf} and \cs{textit}. +% \item If changing any of +% \begin{sourceverb} +% markup-locref-list :sep +% markup-locclass-list :open +% markup-locclass-list :sep +% markup-crossref-layer-list :sep +% markup-range :sep +% \end{sourceverb} +% in \filenm{projectname.xdy}, then in the document preamble redefine +% \begin{sourceverb} +% \IndexPageSeparator -and- \IndexRangeSeparator +% \end{sourceverb} +% to match. % \item In the document source use the \optn{xindyStyle} option for \pkg{lwarp}: % \DescribeOption{xindyStyle} -% \begin{Verbatim}[gobble=2,tabsize=4] -% \usepackage[ -% ... other options ... -% \textred{xindyStyle=projectname.xdy}, -% ]{lwarp} -% \end{Verbatim} +% \begin{sourcedisplay} +% \cs{usepackage}[ \\ +% \fquad \dots other options \dots \\ +% \fquad \textred{xindy}, \\ +% \fquad \textred{xindyStyle=projectname.xdy}, \\ +% ]\{lwarp\} +% \end{sourcedisplay} % Likewise, refer to the custom style file if using \cs{PrintIndexCmd}, % \cs{HTMLIndexCmd}, or \cs{LatexmkIndexCmd}. % \item Recompile the print version, which causes % \pkg{lwarp} to rewrite the |lwarpmk.conf| configuration file. % This tells \prog{lwarpmk} to use the custom |projectname.xdy| file instead of |lwarp.xdy|. % \end{enumerate} +% +% +% \subsubsection{Using a custom \prog{xindex} style file} +% \label{sec:modifyxindex} +% +% \DescribeProgram{xindex} +% \gindex{xindex=\prog{xindex}>customizing} +% \gindex{index>xindex=\prog{xindex}>custom configuration file} +% To use a custom \prog{xindex} style file: +% \begin{enumerate} +% \item Copy |xindex-cfg.lua| to a new filename such as \filenm{xindex-projectname.lua}. +% The filename must start with \filenm{xindex-} and end with \filenm{.lua}.\watchout[filename] +% \item Make changes to \filenm{xindex-projectname.lua}. +% \item If changing +% \begin{sourceverb} +% itemPageDelimiter -and- rangeSymbol +% \end{sourceverb} +% in \filenm{xindex-projectname.lua}, then in the document preamble redefine +% \begin{sourceverb} +% \IndexPageSeparator -and- \IndexRangeSeparator +% \end{sourceverb} +% to match. +% \item In the document source use the \optn{xindexConfig} option for \pkg{lwarp}: +% \DescribeOption{xindexConfig} +% \begin{sourcedisplay} +% \cs{usepackage}[ \\ +% \fquad \dots other options \dots \\ +% \fquad \textred{xindex}, \\ +% \fquad \textred{xindexConfig=projectname}, \quad \% \textgreen{(without xindex- or .lua)} \\ +% ]\{lwarp\} +% \end{sourcedisplay} +% Likewise, refer to the custom style file if using \cs{PrintIndexCmd}, +% \cs{HTMLIndexCmd}, or \cs{LatexmkIndexCmd}. +% \item Recompile the print version, which causes +% \pkg{lwarp} to rewrite the |lwarpmk.conf| configuration file. +% This tells \prog{lwarpmk} to use the custom +% \filenm{xindex-projectname.lua} file instead of the default |xindex-cfg.lua|. +% \end{enumerate} % % % \subsubsection{Additional indexing limitations} % \prog{xindy} and \pkg{hyperref} may not work well together for print output -% \trouble[\pkg{xindy} with \pkg{hyperref}]{xindy=\pkg{xindy}>hyperref=\pkg{hyperref}} -% \trouble{index>xindy=\pkg{xindy} and \pkg{hyperref}} +% \trouble[\prog{xindy} with \pkg{hyperref}]{xindy=\prog{xindy}>hyperref=and \pkg{hyperref}} +% \trouble{index>xindy=\prog{xindy}>hyperref=and \pkg{hyperref}} % \trouble{index>see and seealso} % \trouble{index>reference ranges} % \trouble{index>styling references} @@ -9450,6 +10298,9 @@ This boolean may be tested by the user for later use. % % % \subsubsection{Index positions, \TOC, \pkg{tocbibind}} +% \gindex{index>placement} +% \gindex{index>tocbibind=\pkg{tocbibind}} +% % \limitstocbibind % % \limitstocloft @@ -9527,12 +10378,6 @@ This boolean may be tested by the user for later use. % % % -% \subsubsection{\pkg{newtxmath} package} -% -% \DescribePackage{newtxmath} -% \limitsnewtxmath -% -% % \subsection{Graphics} % \label{sec:limitsgraphics} % @@ -9751,6 +10596,41 @@ This boolean may be tested by the user for later use. % \DescribeClass{memoir} % \limitsmemoir % +% The custom frame commands in the \pkg{memoir} manual may be emulated by +% \trouble[\env{framewithtitle}, \env{titledframe}]{framewithtitle=\env{framewithtitle}} +% \trouble{titledframe=\env{titledframe}} +% \trouble{memoir=\pkg{memoir}>\env{framewithtitle}, \env{titledframe}} +% \gindex{memoir=\pkg{memoir}>\env{framewithtitle}, \env{titledframe}} +% placing the original defintions in the preamble inside \env{warpprint} +% environments, and then providing an \HTML\ equivalent: +% \begin{sourceverb} +% \begin{warpHTML} +% \newcommand{\FrameTitle}[2]{% +% \textbf{#2} +% } +% +% \newenvironment{framewithtitle}[2][\FrameFirst@Lab\ (cont.)]{% +% \begin{fminipage}{\linewidth} +% \textbf{#2} +% \begin{minipage}{\linewidth} +% } +% {\end{minipage}\end{fminipage}} +% +% \newcommand{\TitleFrame}[2]{% +% \par +% \textbf{#1}\par +% \fboxBlock{#2} +% } +% +% \newenvironment{titledframe}[2][\FrameFirst@Lab\ (cont.)]{% +% \par +% \textbf{#2} +% \begin{fminipage}{\linewidth} +% } +% {\end{fminipage}} +% \end{warpHTML} +% \end{sourceverb} +% % % \subsection{International languages} % \label{sec:international} @@ -9818,6 +10698,10 @@ This boolean may be tested by the user for later use. % \limitsfixme % % +% \subsubsection{\pkg{acro} package} +% \limitsacro +% \trouble{acro=\pkg{acro}} +% % \subsubsection{\pkg{chemfig} package} % % \limitschemfig @@ -9835,14 +10719,6 @@ This boolean may be tested by the user for later use. % See \cref{sec:mhchem}. % % -% \subsubsection{\pkg{xparse} package} -% -% \changes{v0.45}{2017/12/09}{Docs: \pkg{xparse} warnings.} -% \DescribePackage{xparse} -% \limitsxparse -% \gindex{xparse=\pkg{xparse}>warnings} -% -% % \subsubsection{\pkg{kotex} package} % % \DescribePackage{kotex} @@ -9875,7 +10751,7 @@ This boolean may be tested by the user for later use. % are used to set customized commands to be executed by % \cmds{lwarpmk print} and \cmds{lwarpmk html}. % \begin{description} -% \item [\optn{PrintLatexCmd}] should be set to shell commands which take \filenm{project.tex} +% \item[\optn{PrintLatexCmd}] should be set to shell commands which take \filenm{project.tex} % and generate \filenm{project.pdf}. % \item[\optn{HTMLLatexCmd}] should be set to take \filenm{project_html.tex} and % generate \filenm{project_html.pdf}. @@ -10515,7 +11391,7 @@ This boolean may be tested by the user for later use. % % Equation numbering is not automatic, but the equation numbers in \SVG\ math % will match the \LaTeX\ and \HTML\ output. -% SVG math is recommended when using the \AmS\ environments, which may have +% \SVG\ math is recommended when using the \AmS\ environments, which may have % multiple numbered equations per object. % % As of when last checked, \brand{LibreOffice} ignores the following: @@ -10581,13 +11457,6 @@ This boolean may be tested by the user for later use. % \watchout[\TeX\ boxes] % require \cs{newpage}, which will not work in a \TeX\ box. % -% \changes{v0.57}{2018/05/28}{Docs: Recreating the index for \pkg{lwarp} source.} -% To recreate the index for the \pkg{lwarp} documentation: -% \margintag{index recreation} -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] -% makeindex -s gglo.ist -o lwarp.gls lwarp.glo -% splitindex lwarp.idx -- -s gind.ist -% \end{Verbatim} % % % \subsection{Creating a development system} @@ -10607,7 +11476,7 @@ This boolean may be tested by the user for later use. % hundred additional \filenm{lwarp-*.sty} files for the various packages which are % supported. % -% To create the documentation \filenm{lwarp.pdf}, +% To create the initial documentation \filenm{lwarp.pdf}, % execute \userentry{pdflatex lwarp.dtx} % % \item[To make the development files visible to other projects:] \ @@ -10619,6 +11488,7 @@ This boolean may be tested by the user for later use. % % Inside this directory, create the file \filenm{update}, containing: % \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% rm lwarp-*.sty % ln -s /path_to_dev_directory/lwarp*.sty . % ln -s /path_to_dev_directory/lwarp_baseline_marker.png . % ln -s /path_to_dev_directory/lwarp_baseline_marker.eps . @@ -10654,6 +11524,39 @@ This boolean may be tested by the user for later use. % setenv PATH ${HOME}/bin:/opt/texbin_local:/opt/texbin:${PATH} % \end{Verbatim} % +% \item[To fully compile the \pkg{lwarp} documentation and indexes:] \ \null +% \changes{v0.57}{2018/05/28}{Docs: Recreating the index for \pkg{lwarp} source.} +% \changes{v0.87}{2020/05/17}{Docs: Updated docs to compile \pkg{lwarp} documentation.} +% \gindex{documentation>compile} +% \gindex{lwarp=\pkg{lwarp}>compiling documentation} +% \begin{sourcedisplay} +% pdflatex lwarp.ins \\ +% pdflatex lwarp.dtx \\ +% pdflatex lwarp.dtx \hfill \textgreen{} \\ +% makeindex -s gglo.ist -o lwarp.gls lwarp.glo \hfill \textgreen{} \\ +% splitindex lwarp.idx -- -s gind.ist \\ +% pdflatex lwarp.dtx \\ +% pdflatex lwarp.dtx \hfill \textgreen{} \\ +% makeindex -s gglo.ist -o lwarp.gls lwarp.glo \hfill \textgreen{} \\ +% splitindex lwarp.idx -- -s gind.ist \hfill \textgreen{} \\ +% pdflatex lwarp.dtx \\ +% pdflatex lwarp.dtx \hfill \textgreen{} +% \end{sourcedisplay} +% (The second round of index processing is required to fully resolve the +% final Index of Indexes.) +% +% To make it easier to update the documentation after a minor change, +% it is useful to create a command script called \filenm{make_index}, containing: +% \begin{sourceverb} +% makeindex -s gglo.ist -o lwarp.gls lwarp.glo +% splitindex lwarp.idx -- -s gind.ist +% \end{sourceverb} +% +% Note that Index of Indexes and the cross-references to the indexes +% \trouble[references]{index>documentation references} +% \trouble{documentation>index cross-references} +% may not be correct until the above has been accomplished. +% % \end{description} % % @@ -10920,17 +11823,20 @@ This boolean may be tested by the user for later use. % \item[\ctr{SideTOCDepth} < \ctr{FileDepth}:] A warning is displayed if these % counters are set such that the side\TOC\ will not be able to access all pages % of the website. -% \item[Duplicate filenames:] \pkg{lwarp} may generate file names from section names. -% While doing so, the filenames are simplified and special characters are removed. +% \item[Filenames:] \pkg{lwarp} may generate file names from section names. +% While doing so, the filenames are simplified, and special characters +% and math are removed. % If this process generates a duplicate filename, and error is generated, % describing the filename and which section name generated it. +% A warning is issued if dollar-delimited math is used. +% Parenthesis-delimited math is recommended instead. % \item[Multirow:] When \cs{multirow} or \cs{multicolrow} are used, % \trouble[\HTML\ corrupted]{HTML>corrupted} % \cs{mrowcell} or \cs{mcolrowcell} must be placed in the appropriate cells to % avoid corrupted \HTML\ output. % \item[(width,height) missing a comma:] \cs{makebox} and \cs{framebox} can accept % a parenthesis-delimited width and height, which must be separated by a comma. -% \item[``Load graphicx or graphics for improved SVG math baselines.'':] \SVG\ math +% \item[``Load graphicx or graphics for improved \SVG\ math baselines.'':] \SVG\ math % sizing and baselines are improved if either of these packages are used. % \item[``Load graphicx or graphics for improved XeTeX logo.'':] If these packages % are loaded, the \XeLaTeX\ logo can use the reversed ``E''. @@ -10985,9 +11891,20 @@ This boolean may be tested by the user for later use. % that your document's \LaTeX{} code is correct, before attempting % to generate an \HTML\ version. % -% \item [\texttt{\cs{end}\{warpHTML\}, \cs{end}\{warpprint\}, \cs{end}\{warpall\}}:] -% \trouble{warpHTML}\trouble{warpprint}\trouble{warpall} +% \item [\texttt{\cs{end}\{warpHTML\}, \cs{end}\{warpprint\}, +% \cs{end}\{warpall\}, \cs{end}\{warpMathJax\}}:] ~ \\ +% \trouble{warpHTML} +% \trouble{warpprint}\trouble{warpall}\trouble{warpMathJax} % Each of these must be without any other characters on the same line. +% \watchout[\env{warpHTML}, \env{warpprint}, \env{warpMathJax}, \env{warpall}] +% +% \item[``\texttt{Runaway argument? File ended while scanning use of \cs{next}}:] ~ \\ +% \trouble{warpHTML} +% \trouble{warpprint}\trouble{warpall}\trouble{warpMathJax} +% \trouble{Runaway argument? File ended \dots} +% \trouble{File ended while scanning use of \cs{next}} +% Don't use \env{warpHTML}, \env{warpprint}, \env{warpall}, or +% \env{warpMathJax} inside itself. % % \item [Options clash:] If using \pkg{memoir}, see \cref{sec:limitsmemoir}. % @@ -11029,6 +11946,12 @@ This boolean may be tested by the user for later use. % \end{sourcedisplay} % \trouble{Label(s) may have changed} % +% \item [``Temporary page! LaTeX was unable to guess the total +% number of pages \dots'':] \ +% Harmless. Recompile the document one more time. +% \trouble{Temporary page \dots unable to guess \dots} +% \trouble{LaTeX was unable to guess the total\dots} +% % \item [``Leaders not followed by proper glue'':] ~ \\ % This can be caused by % a missing |l@| or |l@| definition. @@ -11050,8 +11973,16 @@ This boolean may be tested by the user for later use. % \end{sourcedisplay} % inside a group first. % +% As a stop-gap measure, you may wish to try incrementing +% \label{sec:troubletexboxes} +% \margintag{\ctr{LWR@texboxdepth}} +% the counter \ctr{LWR@texboxdepth} before the problematic +% macro, and then decrementing it after. +% Doing so tells \pkg{lwarp} to avoid using a \cs{newpage} inside +% the macro, which may avoid this error. +% % Also, custom macros which appear inside a section, -% \trouble[macros in section,table,figure names]{sectioning>macro in name} +% \trouble[macros in section, table, figure names]{sectioning>macro in name} % \trouble{table>macro in name} % \trouble{figure>macro in name} % figure, or table name should be @@ -11061,7 +11992,7 @@ This boolean may be tested by the user for later use. % % If using BibTeX, see \cref{sec:limitsbibtex}.\watchout[BibTeX] % -% \item[``\texttt{!~Undefined control sequence. \dots\ \cs{@begindocumenthook}''}:] ~ +% \item[``\texttt{!~Undefined control sequence. \dots\ \cs{\_\_hook} begindocument''}:] ~ % \watchout[\pkg{polyglossia}] \\ % See \cref{sec:limitspolyglossia} % if using \pkg{polyglossia}. @@ -11080,6 +12011,27 @@ This boolean may be tested by the user for later use. % define new macros for print and \HTML\ modes, see \cref{sec:definingprinthtml} % regarding \cs{LWR@expandableformatted}. % +% \item[''\texttt{Token not allowed in a PDF string}'':] This \pkg{hyperref} +% \trouble{Token not allowed in a PDF string} +% \trouble{hyperref=\pkg{hyperref}>Token not allowed in a PDF string} +% warning appears while creating the print-mode document, not \HTML. +% A low-level macro is being used in a section name which appears +% in the \PDF\ bookmarks. \pkg{hyperref} removes this macro from +% the bookmark, and warns of doing so. +% To avoid this warning, use \cs{pdfstringdefDisableCommands} in +% the preamble to define simplified replacement macros for each, or use +% \cs{texorpdfstring} in the \cs{section} or related macro +% to declare what to use for the \TeX\ text, v.s. the \PDF\ bookmark. +% See the \pkg{hyperref} manual. +% +% \item[``\texttt{Command \cs{textquoteright} invalid in math mode}'':] This +% \trouble[quote character]{Command \cs{textquoteright} invalid in math mode} +% \trouble{math>Command \cs{textquoteright} invalid in math mode} +% \trouble{textquoteright=\cs{textquoteright} invalid in math mode} +% can occur when the document source has math containing +% the slanted quote |’| character, instead of using +% the upright quote |'| character. +% % \item[Complicated objects inside math:] Some objects, such as \tikz, % \trouble[``impure'' math objects]{math>non-math contents} % may not compile in \pkg{lwarp}'s normal math emulation. @@ -11168,7 +12120,7 @@ This boolean may be tested by the user for later use. % \item Enter \cmds{lwarpmk limages} to refresh the \env{lateximage} images. % \end{itemize} % -% \item[SVG images:] \ +% \item[\SVG\ images:] \ % % \limitssvgimages % @@ -11523,8 +12475,12 @@ This boolean may be tested by the user for later use. % \changes{v0.63}{2018/11/25}{Added p\TeX support.} % \changes{v0.79}{2020/01/05}{\pkg{luatex85}: Removed.} % \changes{v0.79}{2020/01/05}{\pkg{ifpdf}, \pkg{ifptex}: Provided by \pkg{iftex}.} +% \changes{v0.87}{2020/05/21}{\pkg{ifpdf}, \pkg{ifptex}: Restored to work on TL2019 and earlier.} +% ^^A *8* remove ifpdf, ifptex % \begin{macrocode} \RequirePackage{iftex}[2019/11/07] +\RequirePackage{ifpdf} +\RequirePackage{ifptex} \newif\ifxetexorluatex @@ -11610,14 +12566,17 @@ This boolean may be tested by the user for later use. {% Package #1,\MessageBreak or one which uses #1,\MessageBreak - must be loaded after lwarp + must be loaded after Lwarp.\MessageBreak + Enter 'H' for possible solutions% + } + {% + Move ``\protect\usepackage{#1}'' after + ``\protect\usepackage{lwarp}''.\MessageBreak + Package #1 may also be loaded by something else,\MessageBreak + which must also be moved after Lwarp.% } - {Move \detokenize{\usepackage}{#1} after - \detokenize{\usepackage}{lwarp}.\MessageBreak - Package #1 may also be loaded by something else,\MessageBreak - which must also be moved after lwarp.} } -{} +{\relax} } % \end{macrocode} % \end{macro} @@ -11668,11 +12627,14 @@ This boolean may be tested by the user for later use. % \begin{macrocode} \newcommand*{\LWR@loadbefore}[1]{% \@ifpackageloaded{#1} -{} +{\relax} { \PackageError{lwarp} - {Package #1 must be loaded before lwarp} - {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.} + {% + Package #1 must be loaded before lwarp.\MessageBreak + Enter 'H' for possible solutions% + } + {Move ``\protect\usepackage{#1}'' before ``\protect\usepackage{lwarp}''.} } } % \end{macrocode} @@ -11709,7 +12671,9 @@ This boolean may be tested by the user for later use. {% Package #1 is not supported\MessageBreak by lwarp's HTML conversion.\MessageBreak - Package(s) #2 may be useful instead% + Package(s)\MessageBreak + \space\space#2\MessageBreak + may be useful instead% } {% Package #1 might conflict with lwarp in some way,\MessageBreak @@ -11778,7 +12742,7 @@ This boolean may be tested by the user for later use. or is superceded by another class.\MessageBreak For a possible alternative, see class(es) #2. } -}{}% +}{\relax}% } % \end{macrocode} % \end{macro} @@ -11794,7 +12758,13 @@ This boolean may be tested by the user for later use. % \changes{v0.68}{2019/02/26}{Prevented \pkg{alg}, \pkg{algorithmic}, \pkg{fncylab}, \pkg{pdfcprot}.} % \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.} % \changes{v0.81}{2020/02/15}{Prevented \pkg{statex}.} +% \changes{v0.87}{2020/05/14}{Prevented \pkg{csvtools}.} +% \changes{v0.88}{2020/07/07}{Prevented \pkg{shadethm}.} +% \changes{v0.891}{2020/09/16}{Prevented \pkg{libgreek}.} +% \changes{v0.893}{2020/11/15}{Allowed \pkg{picinpar}.} +% \changes{v0.895}{2021/01/19}{Allowed \pkg{epsf}.} % +% ^^A *earlyloadnever *loadnever % \begin{macrocode} \LWR@earlyclassloadnever{jarticle}{ujarticle} \LWR@earlyclassloadnever{jbook}{ujbook} @@ -11808,23 +12778,21 @@ This boolean may be tested by the user for later use. \LWR@earlyloadnever{alg}{algorithm2e, algorithmicx} \LWR@earlyloadnever{algorithmic}{algorithm2e, algorithmicx} \LWR@earlyloadnever{bitfield}{bytefield} -\LWR@earlyloadnever{boxedminipage}{boxedminipage2e} \LWR@earlyloadnever{caption2}{caption} % \LWR@earlyloadnever{ccaption}{caption}% might be preloaded by memoir \LWR@earlyloadnever{colortab}{colortbl} +\LWR@earlyloadnever{csvtools}{datatool} \LWR@earlyloadnever{doublespace}{setspace} -\LWR@earlyloadnever{epsf}{graphicx} \LWR@earlyloadnever{fancyheadings}{fancyhdr} \LWR@earlyloadnever{fncylab}{cleveref} \LWR@earlyloadnever{formula}{siunitx} \LWR@earlyloadnever{glossary}{glossaries} \LWR@earlyloadnever{hyper}{hyperref} +\LWR@earlyloadnever{libgreek}{libertinust1math, newtx} \LWR@earlyloadnever{newthm}{ntheorem} \LWR@earlyloadnever{pdfcprot}{microtype} -\LWR@earlyloadnever{picinpar}{floatflt, wrapfig} \LWR@earlyloadnever{picins}{floatflt, wrapfig} \LWR@earlyloadnever{rplain}{fancyhdr} -\LWR@earlyloadnever{shadethm}{mdframed} \LWR@earlyloadnever{si}{siunitx} \LWR@earlyloadnever{sistyle}{siunitx} \LWR@earlyloadnever{slashbox}{diagbox} @@ -11860,6 +12828,7 @@ This boolean may be tested by the user for later use. % \changes{v0.45}{2017/12/03}{Allows \pkg{memoir}'s preloaded packages.} % \changes{v0.58}{2018/06/21}{Fix: \pkg{memoir} and \pkg{ccaption}.} % \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added to \cs{LWR@loadafter}.} +% \changes{v0.89}{2020/08/12}{Allow preload of \pkg{amsmath}, \pkg{amsthm}, \pkg{centernot}.} % % The following packages must be loaded after \pkg{lwarp}: % ^^A *loadafter @@ -11871,6 +12840,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{a5comb} \LWR@notmemoirloadafter{abstract} \LWR@loadafter{academicons} +\LWR@loadafter{accents} \LWR@loadafter{accessibility} \LWR@loadafter{accsupp} \LWR@loadafter{acro} @@ -11881,8 +12851,9 @@ This boolean may be tested by the user for later use. \LWR@loadafter{algorithm2e} \LWR@loadafter{algorithmicx} \LWR@loadafter{alltt} -\LWR@loadafter{amsmath} -\LWR@loadafter{amsthm} +\LWR@loadafter{amscdx} +% \LWR@loadafter{amsmath}% may be preloaded +% \LWR@loadafter{amsthm}% may be preloaded \LWR@loadafter{anonchap} \LWR@loadafter{anysize} \LWR@notmemoirloadafter{appendix} @@ -11891,10 +12862,11 @@ This boolean may be tested by the user for later use. \LWR@notmemoirloadafter{array} \LWR@loadafter{arydshln} \LWR@loadafter{asymptote} -% \LWR@loadafter{atbegshi}% used by morewrites +% \LWR@loadafter{atbegshi}% now in LaTeX core, also used by morewrites \LWR@loadafter{attachfile} \LWR@loadafter{attachfile2} \LWR@loadafter{authblk} +\LWR@loadafter{authoraftertitle}% Supported as-is, but must be loaded after. \LWR@loadafter{autobreak} \LWR@loadafter{autonum} \LWR@loadafter{awesomebox} @@ -11915,21 +12887,24 @@ This boolean may be tested by the user for later use. \LWR@notmemoirloadafter{booktabs} \LWR@loadafter{bophook} \LWR@loadafter{bounddvi} +\LWR@loadafter{boxedminipage} \LWR@loadafter{boxedminipage2e} \LWR@loadafter{braket} \LWR@loadafter{breakurl} \LWR@loadafter{breqn} \LWR@loadafter{bsheaders} +\LWR@loadafter{bussproofs} \LWR@loadafter{bxpapersize} \LWR@loadafter{bytefield} \LWR@loadafter{cancel} \LWR@loadafter{canoniclayout} \LWR@loadafter{caption} \LWR@loadafter{caption2} +\LWR@loadafter{caption3} \LWR@loadafter{cases} % catoptions is supported by the lwarp core % \LWR@loadafter{ccaption}% may be preloaded by memoir -\LWR@loadafter{centernot} +% \LWR@loadafter{centernot}% may be preloaded by newtx \LWR@loadafter{changebar} \LWR@loadafter{changelayout} \LWR@notmemoirloadafter{changepage} @@ -11944,6 +12919,9 @@ This boolean may be tested by the user for later use. \LWR@loadafter{chkfloat} \LWR@notmemoirloadafter{chngpage} \LWR@loadafter{cite} +\LWR@loadafter{citeref} +\LWR@loadafter{cleveref} +% cmbright may be preloaded \LWR@loadafter{cmdtrack} \LWR@loadafter{colonequals} \LWR@loadafter{color} @@ -11967,6 +12945,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{draftcopy} \LWR@loadafter{draftfigure} \LWR@loadafter{draftwatermark} +\LWR@loadafter{drftcite} \LWR@loadafter{easy-todo} \LWR@loadafter{ebook} \LWR@loadafter{econometrics} @@ -11981,6 +12960,7 @@ This boolean may be tested by the user for later use. \LWR@notmemoirloadafter{enumerate} \LWR@loadafter{enumitem} \LWR@notmemoirloadafter{epigraph} +\LWR@loadafter{epsf} \LWR@loadafter{epsfig} \LWR@loadafter{epstopdf} \LWR@loadafter{epstopdf-base} @@ -11988,10 +12968,11 @@ This boolean may be tested by the user for later use. \LWR@loadafter{eqparbox} \LWR@loadafter{errata} \LWR@loadafter{eso-pic} +\LWR@loadafter{esvect} \LWR@loadafter{etoc} \LWR@loadafter{eurosym} \LWR@loadafter{everypage} -\LWR@loadafter{everyshi} +% \LWR@loadafter{everyshi}% now in LaTeX core \LWR@loadafter{extarrows} \LWR@loadafter{extramarks} \LWR@loadafter{fancybox} @@ -11999,11 +12980,13 @@ This boolean may be tested by the user for later use. \LWR@loadafter{fancyref} \LWR@loadafter{fancytabs} \LWR@loadafter{fancyvrb} +\LWR@loadafter{fbox} \LWR@loadafter{fewerfloatpages} \LWR@loadafter{figcaps} \LWR@loadafter{figsize} \LWR@loadafter{fitbox} \LWR@loadafter{fix2col} +\LWR@loadafter{fixmath} \LWR@loadafter{fixme} \LWR@loadafter{fixmetodonotes} \LWR@loadafter{flafter} @@ -12032,17 +13015,20 @@ This boolean may be tested by the user for later use. \LWR@loadafter{foreign} \LWR@loadafter{forest} \LWR@loadafter{fouridx} +% fourier may be loaded before lwarp \LWR@loadafter{framed} \LWR@loadafter{ftcap} \LWR@loadafter{ftnright} \LWR@loadafter{fullminipage} \LWR@loadafter{fullpage} \LWR@loadafter{fullwidth} +\LWR@loadafter{fvextra} \LWR@loadafter{fwlw} \LWR@loadafter{gensymb} \LWR@loadafter{gentombow} % geometry is always loaded by lwarp, and lwarp-geometry is AtBeginDocument \LWR@loadafter{ghsystem} +\LWR@loadafter{gindex} \LWR@loadafter{glossaries} \LWR@loadafter{gmeometric} % \LWR@loadafter{graphics}% pre-loaded by xunicode @@ -12055,7 +13041,9 @@ This boolean may be tested by the user for later use. \LWR@loadafter{gridset} \LWR@loadafter{hang} \LWR@loadafter{hanging} +\LWR@loadafter{hepunits} \LWR@loadafter{hhline} +\LWR@loadafter{hhtensor} \LWR@loadafter{hypbmsec} \LWR@loadafter{hypcap} \LWR@loadafter{hypdestopt} @@ -12066,13 +13054,20 @@ This boolean may be tested by the user for later use. \LWR@loadafter{idxlayout} \LWR@loadafter{ifoddpage} \LWR@loadafter{imakeidx} +\LWR@loadafter{impnattypo} \LWR@notmemoirloadafter{index} % inputenc must be loaded before lwarp % inputenx must be loaded before lwarp % inputtrc may be loaded before lwarp \LWR@loadafter{intopdf} +\LWR@loadafter{isomath} +\LWR@loadafter{isotope} +\LWR@loadafter{jurabib} \LWR@loadafter{karnaugh-map} \LWR@loadafter{keyfloat} +\LWR@loadafter{keystroke} +% kpfonts may be loaded before lwarp +% kpfonts-otf may be loaded before lwarp \LWR@loadafter{layaureo} \LWR@loadafter{layout} \LWR@loadafter{layouts} @@ -12080,11 +13075,13 @@ This boolean may be tested by the user for later use. \LWR@loadafter{leftidx} \LWR@loadafter{letterspace} \LWR@loadafter{lettrine} +% libertinust1math may be loaded before lwarp \LWR@loadafter{lineno} \LWR@loadafter{lips} \LWR@loadafter{listings} \LWR@loadafter{listliketab} \LWR@loadafter{longtable} +\LWR@loadafter{lpic} \LWR@loadafter{lscape} \LWR@loadafter{ltablex} \LWR@loadafter{ltcaption} @@ -12095,6 +13092,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{luacolor} \LWR@loadafter{luamplib} \LWR@loadafter{luatodonotes} +\LWR@loadafter{luavlna} \LWR@loadafter{lyluatex} \LWR@loadafter{magaz} \LWR@notmemoirloadafter{makeidx} @@ -12103,14 +13101,24 @@ This boolean may be tested by the user for later use. \LWR@loadafter{marginfix} \LWR@loadafter{marginnote} \LWR@loadafter{marvosym} +% mathalpha may be loaded before lwarp +\LWR@loadafter{mathastext} \LWR@loadafter{mathcomp} +\LWR@loadafter{mathdesign} \LWR@loadafter{mathdots} \LWR@loadafter{mathfixs} +\LWR@loadafter{mathpazo} +\LWR@loadafter{mathptmx} +\LWR@loadafter{mathspec} \LWR@loadafter{mathtools} +\LWR@loadafter{mattens} +\LWR@loadafter{maybemath} \LWR@loadafter{mcaption} \LWR@loadafter{mdframed} +\LWR@loadafter{mdwmath} \LWR@loadafter{media9} \LWR@loadafter{memhfixc} +\LWR@loadafter{menukeys} \LWR@loadafter{metalogo} \LWR@loadafter{metalogox} \LWR@loadafter{mhchem} @@ -12119,12 +13127,15 @@ This boolean may be tested by the user for later use. \LWR@loadafter{midpage} \LWR@loadafter{minibox} \LWR@loadafter{minitoc} +\LWR@loadafter{minted} \LWR@loadafter{mismath} +\LWR@loadafter{mleftright} % morefloats must be allowed early for print mode \LWR@notmemoirloadafter{moreverb} % morewrites must be loaded before lwarp \LWR@notmemoirloadafter{movie15} \LWR@notmemoirloadafter{mparhack} +\LWR@loadafter{multibib} \LWR@loadafter{multicap} %\LWR@loadafter{multicol}% loaded by ltxdoc \LWR@loadafter{multicolrule} @@ -12141,11 +13152,14 @@ This boolean may be tested by the user for later use. \LWR@loadafter{nccmath} \LWR@notmemoirloadafter{needspace} % newclude must be loaded before lwarp -\LWR@loadafter{newtxmath} +% newpxmath may be preloaded +% newtxmath may be loaded before lwarp +% newtxsf may be loaded before lwarp % newunicodechar must be loaded before lwarp \LWR@notmemoirloadafter{nextpage} \LWR@loadafter{nicefrac} \LWR@loadafter{niceframe} +\LWR@loadafter{nicematrix} \LWR@loadafter{noitcrul} \LWR@loadafter{nolbreaks} \LWR@loadafter{nomencl} @@ -12187,7 +13201,9 @@ This boolean may be tested by the user for later use. \LWR@loadafter{phfqit} \LWR@loadafter{physics} \LWR@loadafter{physunits} +\LWR@loadafter{picinpar} \LWR@loadafter{pifont} +\LWR@loadafter{pinlabel} \LWR@loadafter{placeins} \LWR@loadafter{plarray} \LWR@loadafter{plarydshln} @@ -12195,6 +13211,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{plextarydshln} \LWR@loadafter{plcolortbl} \LWR@loadafter{plextdelarray} +\LWR@loadafter{plimsoll} \LWR@loadafter{prelim2e} \LWR@loadafter{prettyref} \LWR@loadafter{preview} @@ -12205,6 +13222,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{pstricks} % \LWR@loadafter{pxatbegshi}% may be used by morewrites \LWR@loadafter{pxeveryshi} +% \LWR@loadafter{pxfonts}% may be loaded before lwarp \LWR@loadafter{pxftnright} \LWR@loadafter{pxjahyper} \LWR@loadafter{quotchap} @@ -12217,6 +13235,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{repeatindex} \LWR@loadafter{resizegather} \LWR@loadafter{returntogrid} +\LWR@loadafter{rlepsf} \LWR@loadafter{rmathbr} \LWR@loadafter{rmpage} \LWR@loadafter{romanbar} @@ -12226,6 +13245,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{rviewport} \LWR@loadafter{savetrees} % scalefnt is loaded by babel-french +\LWR@loadafter{scalerel} \LWR@loadafter{schemata} \LWR@loadafter{scrextend} \LWR@loadafter{scrhack} @@ -12236,6 +13256,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{section} \LWR@loadafter{sectionbreak} \LWR@loadafter{sectsty} +\LWR@loadafter{selectp} \LWR@loadafter{semantic-markup} \LWR@notmemoirloadafter{setspace} \LWR@loadafter{shadow} @@ -12243,15 +13264,19 @@ This boolean may be tested by the user for later use. \LWR@notmemoirloadafter{showidx} \LWR@loadafter{showkeys} \LWR@loadafter{showtags} +\LWR@loadafter{shuffle} \LWR@loadafter{sidecap} \LWR@loadafter{sidenotes} +\LWR@loadafter{simplebnf} \LWR@loadafter{SIunits} \LWR@loadafter{siunitx} +\LWR@loadafter{skmath} \LWR@loadafter{slantsc} \LWR@loadafter{slashed} \LWR@loadafter{soul} \LWR@loadafter{soulpos} \LWR@loadafter{soulutf8} +\LWR@loadafter{splitbib} \LWR@loadafter{splitidx} \LWR@loadafter{srcltx} \LWR@loadafter{srctex} @@ -12259,6 +13284,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{stackengine} \LWR@loadafter{stackrel} \LWR@loadafter{statex2} +\LWR@loadafter{statistics} \LWR@loadafter{statmath} \LWR@loadafter{steinmetz} \LWR@notltjloadafter{stfloats} @@ -12269,6 +13295,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{subsupscripts} \LWR@loadafter{supertabular} \LWR@loadafter{svg} +\LWR@loadafter{swfigure} \LWR@loadafter{syntonly} \LWR@loadafter{t1inc} \LWR@loadafter{tabfigures} @@ -12276,20 +13303,28 @@ This boolean may be tested by the user for later use. \LWR@loadafter{tablefootnote} \LWR@notmemoirloadafter{tabularx} \LWR@loadafter{tabulary} -\LWR@loadafter{tascmac} \LWR@loadafter{tagpdf} +\LWR@loadafter{tascmac} +\LWR@loadafter{tcolorbox} +\LWR@loadafter{tensor} +\LWR@loadafter{termcal} \LWR@loadafter{textarea} % \LWR@loadafter{textcomp}% maybe before lwarp with font packages \LWR@loadafter{textfit} \LWR@loadafter{textpos} \LWR@loadafter{theorem} \LWR@loadafter{thinsp} +\LWR@loadafter{thm-listof} +\LWR@loadafter{thm-restate} +\LWR@loadafter{thmbox} +\LWR@loadafter{thmtools} \LWR@loadafter{threadcol} \LWR@loadafter{threeparttable} \LWR@loadafter{threeparttablex} \LWR@loadafter{thumb} \LWR@loadafter{thumbs} \LWR@loadafter{tikz} +\LWR@loadafter{tikz-imagelabels} \LWR@loadafter{titleps} \LWR@loadafter{titlesec} \LWR@loadafter{titletoc} @@ -12310,6 +13345,8 @@ This boolean may be tested by the user for later use. \LWR@loadafter{truncate} \LWR@loadafter{turnthepage} \LWR@loadafter{twoup} +% \LWR@loadafter{txfonts}% may be loaded before lwarp +% txgreeks may be loaded before lwarp % \end{macrocode} % \changes{v0.44}{2017/11/19}{Adjustment for \pkg{koma-script}.} % \begin{macrocode} @@ -12318,13 +13355,15 @@ This boolean may be tested by the user for later use. % \LWR@loadafter{ulem}% preloaded by ctexart and related classes \LWR@loadafter{umoline} \LWR@loadafter{underscore} -\LWR@loadafter{unicode-math} +% unicode-math may be loaded before lwarp \LWR@loadafter{units} \LWR@loadafter{unitsdef} +\LWR@loadafter{upgreek} \LWR@loadafter{upref} \LWR@loadafter{url} +\LWR@loadafter{ushort} \LWR@loadafter{uspace} -\LWR@loadafter{varioref}% no lwarp package provided +\LWR@loadafter{varioref} \LWR@notmemoirloadafter{verse} \LWR@loadafter{versonotes} \LWR@loadafter{vertbars} @@ -12343,6 +13382,7 @@ This boolean may be tested by the user for later use. \LWR@loadafter{xechangebar} \LWR@loadafter{xellipsis} % xetexko-vertical must be loaded before lwarp +\LWR@loadafter{xevlna} \LWR@loadafter{xfakebold} \LWR@loadafter{xfrac} \LWR@loadafter{xltabular} @@ -12368,9 +13408,12 @@ This boolean may be tested by the user for later use. % % \begin{macrocode} \newcommand{\LWR@mdfive}[1]{% -\PackageError{lwarp} -{No MD5 macro was found} -{Lwarp must find the macros pdfmdfivesum or mdfivesum.} + \PackageError{lwarp} + {No MD5 macro was found} + {% + Lwarp must find the macros \protect\pdfmdfivesum\space + or \protect\mdfivesum.% + } } % \end{macrocode} % @@ -12441,7 +13484,7 @@ This boolean may be tested by the user for later use. % % % \section{Unicode input characters} -% \changes{v0.18}{2016/05/17}{PDF Unicode input characters.} +% \changes{v0.18}{2016/05/17}{PDF=\PDF\ Unicode input characters.} % \gindex{Unicode>input characters} % % \codeall @@ -12499,7 +13542,8 @@ This boolean may be tested by the user for later use. {% Lwarp requires a vector font.\MessageBreak Install and load cm-super, lmodern, or another\MessageBreak - Type-1 vector font before loading lwarp% + Type-1 vector font before loading lwarp.\MessageBreak + Enter 'H' for possible solutions% } {% Install cm-super or lmodern.\MessageBreak @@ -12516,7 +13560,7 @@ This boolean may be tested by the user for later use. % % \section{Upright quotes} % -% In PDF\TeX, preserve upright quotes in verbatim text. +% In pdf\TeX, preserve upright quotes in verbatim text. % \pkg{upquote} also loads \pkg{textcomp}. % % \changes{v0.63}{2018/11/25}{p\TeX: Load \pkg{upquote}.} @@ -12532,11 +13576,48 @@ This boolean may be tested by the user for later use. % % % +% \section{Avoid bad font combinations} +% +% For \XeLaTeX\ and \LuaLaTeX, certain font combinations cause problems +% with \pkg{lwarp}. +% +% \pkg{libertinus-otf} has special handling for \cs{textquotedbl}. +% Search for \cs{LWR@orig@textquotedbl}. +% +% \changes{v0.895}{2021/01/14}{Use \pkg{kpfonts-otf} if \LuaLaTeX, \XeLaTeX.} +% +% \begin{macrocode} +\ifxetexorluatex + \AtBeginDocument{ + \@ifpackageloaded{kpfonts}{ + \PackageError{lwarp} + {% + When using XeLaTeX or LuaLaTeX,\MessageBreak + use kpfonts-otf instead of kpfonts% + } + {% + Replace: \protect\usepackage{kpfonts}\MessageBreak + with: \protect\usepackage{kpfonts-otf} + } + }{} + } +\fi +% \end{macrocode} % % % \section{Miscellaneous tools} % % +% \subsection{Variables} +% +% \begin{macrocode} +\newlength{\LWR@templengthone} +\newlength{\LWR@templengthtwo} +\newlength{\LWR@templengththree} +\newcounter{LWR@tempcountone} +% \end{macrocode} +% +% % \subsection{Lengths and units} % % \begin{macro}{\LWR@providelength} \marg{\cs{lengthname}} @@ -12593,11 +13674,16 @@ This boolean may be tested by the user for later use. % \begin{macro}{\LWR@patcherror} \marg{packagename} \marg{macroname} % % Prints an error if could not patch a macro. +% \changes{v0.89}{2020/09/01}{Improved message.} % \begin{macrocode} \newcommand*{\LWR@patcherror}[2]{% -\PackageError{lwarp} -{Unable to patch package #1, macro #2} -{Please contact the author of the Lwarp package.} + \PackageError{lwarp}% + {% + Unable to patch package #1,\MessageBreak + macro \LWRbackslash #2.\MessageBreak + Lwarp or #1 may need to be updated% + }% + {Please contact the maintainer of the Lwarp package.}% } % \end{macrocode} % \end{macro} @@ -12674,6 +13760,31 @@ This boolean may be tested by the user for later use. % \end{macro} % % +% \subsection{Inside boxes} +% +% Greater than zero if currently inside a \TeX\ box, +% thus should not use \cs{LWR@orignewpage}. +% See \cref{sec:troubletexboxes}. +% \changes{v0.88}{2020/06/06}{Added \ctr{LWR@texboxdepth}.} +% \begin{macrocode} +\newcounter{LWR@texboxdepth} +\setcounter{LWR@texboxdepth}{0} +% \end{macrocode} +% +% \begin{macro}{\LWR@maybe@orignewpage} +% Only do \cs{LWR@orignewpage} if not inside a \TeX\ box. +% \changes{v0.88}{2020/06/06}{Added.} +% \begin{macrocode} +\newcommand*{\LWR@maybe@orignewpage}{% + \LWR@traceinfo{LWR@maybe@orignewpage}% + \ifnumgreater{\value{LWR@texboxdepth}}{0} + {}% + {\LWR@orignewpage}% + \LWR@traceinfo{LWR@maybe@orignewpage done}% +} +% \end{macrocode} +% \end{macro} +% % % \subsection{Global boxes} % @@ -12728,7 +13839,8 @@ This boolean may be tested by the user for later use. % Results in the macro name without the leading backslash. % % Ref: \href{https://tex.stackexchange.com/questions/42318/removing-a-backslash-from-a-character-sequence} -% {\texttt{https://tex.stackexchange.com/questions/42318/removing-a-backslash-from-a-character-sequence}} +% {\texttt{https://tex.stackexchange.com/questions/42318/ \\ +% \hspace*{\fill}removing-a-backslash-from-a-character-sequence}} % % \changes{v0.79}{2020/01/18}{Added.} % \begin{macrocode} @@ -12742,6 +13854,55 @@ This boolean may be tested by the user for later use. % \end{macro} % % +% \subsection{Title case} +% +% \begin{macro}{\LWRtexttitlecase} +% \begin{macrocode} +\ExplSyntaxOn +\newcommand*{\LWRtexttitlecase}[1]{% + \text_titlecase:n{#1}% +} +\ExplSyntaxOff +% \end{macrocode} +% \end{macro} +% +% +% \subsection{LetLtxMacrocs} +% +% \begin{macro}{\LWR@LetLtxMacrocs} \marg{newcsname} \marg{oldcsname} +% +% \cs{LetLtxMacro} with cs names. +% +% \changes{v0.88}{2020/07/05}{Added.} +% \begin{macrocode} +\newcommand*{\LWR@LetLtxMacrocs}[2]{% + \expandafter\LetLtxMacro\csname #1\expandafter\endcsname% + \csname#2\endcsname% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Absorbing a star} +% +% \begin{macro}{\LWR@absorbstar} \marg{csname} +% +% Modifies a macro to aborb a star. +% Used for \pkg{cleveref}, since \pkg{hyperref} is emulated, so the +% starred macros are not created by \pkg{cleveref}. +% +% \changes{v0.88}{2020/07/05}{Added.} +% \begin{macrocode} +\newcommand*{\LWR@absorbstar}[1]{% + \LWR@LetLtxMacrocs{LWR@origns@#1}{#1}% + \csdef{#1}{\@ifstar{\csuse{LWR@origns@#1}}{\csuse{LWR@origns@#1}}} + \expandafter\robustify\csname #1\endcsname +} +% \end{macrocode} +% \end{macro} +% +% +% % \section{Operating-System portability} % \label{sec:OSportability} % \changes{v0.11}{2016/03/11}{Added section: Operating-System portability.} @@ -12960,9 +14121,9 @@ This boolean may be tested by the user for later use. % % \begin{macrocode} \DeclareVoidOption{warpprint}{% -\PackageInfo{lwarp}{Using option 'warpprint'} -\booltrue{warpingprint}% -\boolfalse{warpingHTML}% + \PackageInfo{lwarp}{Using option 'warpprint'} + \booltrue{warpingprint}% + \boolfalse{warpingHTML}% } % \end{macrocode} @@ -12976,9 +14137,9 @@ This boolean may be tested by the user for later use. % % \begin{macrocode} \DeclareVoidOption{warpHTML}{% -\PackageInfo{lwarp}{Using option 'warpHTML'}% -\booltrue{warpingHTML}% -\boolfalse{warpingprint}% + \PackageInfo{lwarp}{Using option 'warpHTML'}% + \booltrue{warpingHTML}% + \boolfalse{warpingprint}% } % \end{macrocode} % @@ -12996,9 +14157,9 @@ This boolean may be tested by the user for later use. % and may be used for \cs{ifbool} tests. % \begin{macrocode} \DeclareVoidOption{mathsvg}{% -\PackageInfo{lwarp}{Using option 'mathsvg'} -\boolfalse{mathjax}% -\boolfalse{LWR@origmathjax}% + \PackageInfo{lwarp}{Using option 'mathsvg'} + \boolfalse{mathjax}% + \boolfalse{LWR@origmathjax}% % \end{macrocode} % ^^A % \begin{macrocode} % ^^A \boolfalse{mathKaTeX}% @@ -13014,9 +14175,9 @@ This boolean may be tested by the user for later use. % If the \optn{mathjax} option is given, boolean |mathjax| is true, may be used for \cs{ifbool} tests. % \begin{macrocode} \DeclareVoidOption{mathjax}{% -\PackageInfo{lwarp}{Using option 'mathjax'} -\booltrue{mathjax}% -\booltrue{LWR@origmathjax}% + \PackageInfo{lwarp}{Using option 'mathjax'} + \booltrue{mathjax}% + \booltrue{LWR@origmathjax}% % \end{macrocode} % ^^A % \begin{macrocode} % ^^A \boolfalse{mathKaTeX}% @@ -13081,8 +14242,8 @@ This boolean may be tested by the user for later use. % \DescribeOption{makeindexStyle} Selects a custom |.ist| file. % \DescribeDefault{lwarp.ist} -% A customized file should be based on |lwarp.ist|, and must retain -% the lines related to \cs{hyperindexref}. +% A customized file should be based on |lwarp.ist|. +% See \cref{sec:modifymakeindex}. % % \changes{v0.58}{2018/06/21}{Added option \optn{makeindexStyle.}} % @@ -13093,11 +14254,8 @@ This boolean may be tested by the user for later use. % \DescribeOption{xindyStyle} Selects a custom |.xdy| file. % \DescribeDefault{lwarp.xdy} -% A customized file should be based on |lwarp.xdy|, and must retain -% the line -% \begin{Verbatim}[gobble=2] -% (markup-locref :open "\hyperindexref{" :close "}") -% \end{Verbatim} +% A customized file should be based on |lwarp.xdy|. +% See \cref{sec:modifyxindy}. % % \changes{v0.30}{2017/04/28}{Option \optn{xdyFilename} added.} % \changes{v0.54}{2018/04/06}{Option \optn{xdyFilename} changed to \optn{xindyStyle.}} @@ -13107,7 +14265,7 @@ This boolean may be tested by the user for later use. % \end{macrocode} -% \DescribeOption{xindyLanguage} Sets the \pkg{xindy} language to be assigned +% \DescribeOption{xindyLanguage} Sets the \prog{xindy} language to be assigned % \DescribeDefault{english} % in \prog{lwarpmk}'s configuration files. This is then used by \prog{lwarpmk} while % processing the index and glossary. @@ -13121,7 +14279,7 @@ This boolean may be tested by the user for later use. % \end{macrocode} -% \DescribeOption{xindyCodepage} Sets the \pkg{xindy} codepage to be assigned +% \DescribeOption{xindyCodepage} Sets the \prog{xindy} codepage to be assigned % \DescribeDefault{utf8} % in \prog{lwarpmk}'s configuration files. This is then used by \prog{lwarpmk} while % processing the index. @@ -13135,6 +14293,18 @@ This boolean may be tested by the user for later use. +% \DescribeOption{xindexConfig} Selects a custom |xindex-*.lua| file. +% \DescribeDefault{} +% A customized file should be based on |xindex-cfg.lua|. +% See \cref{sec:modifyxindex}. + +% \changes{v0.88}{2020/07/08}{Option \optn{xindexConfig} added.} +% \begin{macrocode} +\DeclareStringOption[]{xindexConfig} +% \end{macrocode} + + + % \limitspdftotextenc % % \changes{v0.54}{2018/04/06}{Add: \optn{pdftotextEnc}.} @@ -13156,8 +14326,8 @@ This boolean may be tested by the user for later use. \boolfalse{LWR@creatinglwarpmk} \DeclareVoidOption{lwarpmk}{ -\PackageInfo{lwarp}{Using option 'lwarpmk'} -\booltrue{LWR@creatinglwarpmk} + \PackageInfo{lwarp}{Using option 'lwarpmk'} + \booltrue{LWR@creatinglwarpmk} } % \end{macrocode} @@ -13173,8 +14343,8 @@ This boolean may be tested by the user for later use. % % \begin{macrocode} \DeclareVoidOption{OSWindows}{ -\PackageInfo{lwarp}{Using option 'OSWindows'} -\LWR@setOSWindows + \PackageInfo{lwarp}{Using option 'OSWindows'} + \LWR@setOSWindows } % \end{macrocode} @@ -13246,7 +14416,7 @@ This boolean may be tested by the user for later use. % \end{macrocode} % \DescribeOption{makeindex} Tells \pkg{lwarp} to -% use \pkg{makeindex} for index generation. +% use \prog{makeindex} for index generation. % When \filenm{lwarpmk.conf} and \filenm{*.lwarpmkconf} are generated, % \optn{PrintIndexCmd} and \optn{HTMLIndexCmd} will be set for \prog{makeindex} % with a single index file. @@ -13257,7 +14427,7 @@ This boolean may be tested by the user for later use. % \DescribeOption{xindy} Tells \pkg{lwarp} to -% use \pkg{xindy} for index generation. +% use \prog{xindy} for index generation. % When \filenm{lwarpmk.conf} and \filenm{*.lwarpmkconf} are generated, % \optn{PrintIndexCmd} and \optn{HTMLIndexCmd} will be set for \prog{xindy} % with a single index file. @@ -13267,6 +14437,28 @@ This boolean may be tested by the user for later use. % \end{macrocode} +% \DescribeOption{xindex} Tells \pkg{lwarp} to +% use \prog{xindex} for index generation. +% When \filenm{lwarpmk.conf} and \filenm{*.lwarpmkconf} are generated, +% \optn{PrintIndexCmd} and \optn{HTMLIndexCmd} will be set for \prog{xindex} +% with a single index file. +% \changes{v0.88}{2020/07/08}{Added \optn{xindex} option.} +% \begin{macrocode} +\DeclareBoolOption[false]{xindex} +% \end{macrocode} + + +% \DescribeOption{IndexRef} +% \DescribeDefault{cref} +% Tells \pkg{lwarp} how to +% display the index entries in \HTML output. +% See \cref{sec:optionindexref}. +% \changes{v0.88}{2020/07/18}{Added \optn{IndexRef} option.} +% \begin{macrocode} +\DeclareStringOption[cref]{IndexRef} +% \end{macrocode} + + % \DescribeOption{GlossaryCmd} \DescribeDefault{makeglossaries} % The shell command to use to compile the glossary. % The print or \HTML\ version of the glossary filename will be appended to this command. @@ -13392,7 +14584,8 @@ This boolean may be tested by the user for later use. % \cs{LWR@PrintIndexCmd} and \cs{LWR@HTMLIndexCmd} are tested to see if they are empty. % If so, they are set to a reasonable defaults for a single index using \prog{makeindex}, % then possibly set to defaults for \prog{xindy} -% if the \pkg{lwarp} \optn{xindy} option was selected. +% if the \pkg{lwarp} \optn{xindy} option was selected, +% then likewise for \prog{xindex} if the \optn{xindex} option was selected. % % \begin{macrocode} \ifdefempty{\LWR@PrintIndexCmd}{ @@ -13408,6 +14601,20 @@ This boolean may be tested by the user for later use. \jobname.idx% } }{} + \ifbool{LWR@xindex}{ + \ifdefvoid{\LWR@xindexConfig}{ + \renewcommand{\LWR@PrintIndexCmd}{% + xindex + \jobname.idx% + } + }{ + \renewcommand{\LWR@PrintIndexCmd}{% + xindex + -c \LWR@xindexConfig \space + \jobname.idx% + } + } + }{} }{} \ifdefempty{\LWR@HTMLIndexCmd}{ @@ -13423,6 +14630,20 @@ This boolean may be tested by the user for later use. \jobname_html.idx% } }{} + \ifbool{LWR@xindex}{ + \ifdefvoid{\LWR@xindexConfig}{ + \renewcommand{\LWR@HTMLIndexCmd}{% + xindex + \jobname_html.idx% + } + }{ + \renewcommand{\LWR@HTMLIndexCmd}{% + xindex + -c \LWR@xindexConfig \space + \jobname_html.idx% + } + } + }{} }{} \ifdefempty{\LWR@LatexmkIndexCmd}{ @@ -13437,11 +14658,22 @@ This boolean may be tested by the user for later use. -C \LWR@xindyCodepage% } }{} + \ifbool{LWR@xindex}{ + \ifdefvoid{\LWR@xindexConfig}{ + \renewcommand{\LWR@LatexmkIndexCmd}{% + xindex + } + }{ + \renewcommand{\LWR@LatexmkIndexCmd}{% + xindex + -c \LWR@xindexConfig + } + } + }{} }{} % \end{macrocode} % % -% % \subsection{Conditional compilation} % % \begin{macro}{\warpprintonly} \marg{contents} @@ -13474,28 +14706,63 @@ This boolean may be tested by the user for later use. % \end{macrocode} -% Use |comment_print.cut| for print mode, and -% |comment_html.cut| for \HTML\ mode. -% This helps \prog{latexmk} to more reliably know whether to recompile. -% -% \changes{v0.37}{2017/08/19}{\pkg{comment}: Maintains independent -% cutfiles for print, \HTML.} +% \begin{macro}{\LWR@includecomment} \marg{env name} \marg{partial filename} +% \begin{macro}{\LWR@excludecomment} \marg{env name} \marg{partial filename} % +% Use many \pkg{comment} cut files to avoid collision in case the +% user uses the \pkg{comment} package. Each filename is ``|comment_#2.cut|''. +% Based on the \pkg{comment} package. +% \changes{v0.84}{2020/03/30}{Independent cut files.} +% \changes{v0.891}{2020/09/15}{Error if nested comment.} % \begin{macrocode} -\ifbool{warpingHTML}{ -\def\DefaultCutFileName{\def\CommentCutFile{comment_html.cut}} -}{} - -\ifbool{warpingprint}{ -\def\DefaultCutFileName{\def\CommentCutFile{comment_print.cut}} -}{} +\def\LWR@includecomment + #1#2{\message{Lwarp: Including comment '#1'}% + \csarg\def{After#1Comment}{% + \CloseAndInputCutFile% + \csundef{LWR@#1commentused}% + } + \csarg\def{#1}{% + \endgroup + \ifcsdef{LWR@#1commentused}{ + \PackageError{lwarp}% + {Nested #1 environment}% + {% + Environment #1 cannot be nested.\MessageBreak + This can happen when a package is loaded + from inside a\MessageBreak + #1 environment.% + }% + }{\relax} + \csdef{LWR@#1commentused}{} + \message{Including '#1' comment.}% + \def\CommentCutFile{comment_#2.cut} + \SetUpCutFile + \ProcessComment{#1} + }% + \CommentEndDef{#1} +} + +\def\LWR@excludecomment + #1#2{\message{Lwarp: Excluding comment '#1'}% + \csarg\def{#1}{ + \endgroup + \message{Excluding '#1' comment.}% + \begingroup + \def\CommentCutFile{comment_#2.cut} + \def\ProcessCutFile{}% + \def\ThisComment####1{}% + \ProcessComment{#1} + }% + \csarg\def{After#1Comment}{\CloseAndInputCutFile \endgroup} + \CommentEndDef{#1}} % \end{macrocode} - +% \end{macro} +% \end{macro} % \begin{environment}{warpall} % Anything in the |warpall| environment will be generated for print or \HTML\ outputs. % \begin{macrocode} -\includecomment{warpall} +\LWR@includecomment{warpall}{all} % \end{macrocode} % \end{environment} @@ -13505,8 +14772,8 @@ This boolean may be tested by the user for later use. % For \HTML\ output: % \begin{macrocode} \ifbool{warpingHTML} - {\includecomment{warpHTML}} - {\excludecomment{warpHTML}}% + {\LWR@includecomment{warpHTML}{html}} + {\LWR@excludecomment{warpHTML}{html}} % \end{macrocode} % \end{environment} @@ -13515,8 +14782,8 @@ This boolean may be tested by the user for later use. % Anything in the |warpprint| environment will be generated for print output only. % \begin{macrocode} \ifbool{warpingprint} - {\includecomment{warpprint}} - {\excludecomment{warpprint}} + {\LWR@includecomment{warpprint}{print}} + {\LWR@excludecomment{warpprint}{print}} % \end{macrocode} % \end{environment} @@ -13526,25 +14793,25 @@ This boolean may be tested by the user for later use. % \changes{v0.79}{2020/01/26}{Added.} % \begin{macrocode} \begin{warpprint} -\excludecomment{warpMathJax} +\LWR@excludecomment{warpMathJax}{mathjax} \end{warpprint} \begin{warpHTML} \ifbool{mathjax} - {\includecomment{warpMathJax}} - {\excludecomment{warpMathJax}} + {\LWR@includecomment{warpMathJax}{mathjax}} + {\LWR@excludecomment{warpMathJax}{mathjax}} \end{warpHTML} % \end{macrocode} % \end{environment} -% \begin{environment}{LWR@creatinglwarpmk} +% \begin{environment}{LWRcreatelwarpmk} % Optionally generate a local copy of \prog{lwarpmk}. % Default to no. % \begin{macrocode} \ifbool{LWR@creatinglwarpmk} - {\includecomment{LWR@createlwarpmk}} - {\excludecomment{LWR@createlwarpmk}} + {\LWR@includecomment{LWRcreatelwarpmk}{lwarpmk}} + {\LWR@excludecomment{LWRcreatelwarpmk}{lwarpmk}} % \end{macrocode} % \end{environment} % @@ -13586,6 +14853,7 @@ This boolean may be tested by the user for later use. % ^^A % ^^A % +% \DescribePackage{fontspec} % Load \pkg{fontspec} if necessary: % \changes{v0.50}{2018/02/24}{Fix: Load \pkg{fontspec} if necessary.} % \begin{macrocode} @@ -13673,8 +14941,16 @@ This boolean may be tested by the user for later use. tracking=false, kerning=false, spacing=false} - -\DisableLigatures[f,q,t,T,Q]{encoding = *,family = *} +% \begin{macrocode} +% +% Disable ligatures for typewriter fonts. +% The comma was causing issues with \brand{MathJax} and \cs{,} followed by a comma. +% Ligatures for f, q, t, etc used to be disabled for non-typewriter fonts, but +% are now allowed. +% \changes{v0.89}{2020/08/01}{Disable typewriter ligatures.} +% ^^A \DisableLigatures[{,},f,q,t,T,Q]{encoding = *,family = *}% previous +% \begin{macrocode} +\DisableLigatures{encoding = *,family = tt*} % \end{macrocode} % ^^A % ^^A @@ -13744,7 +15020,7 @@ This boolean may be tested by the user for later use. % \changes{v0.20}{2017/01/12}{Page geometry set to 6in wide with large margins.} % \changes{v0.27}{2017/04/04}{Page geometry modified to reduce line overflow.} % \changes{v0.28}{2017/04/13}{Forced oneside to maintain large right margin.} -% \changes{v0.52}{2018/03/31}{Fix: MathJax script line wraps. Reduced right margin.} +% \changes{v0.52}{2018/03/31}{Fix: \brand{MathJax} script line wraps. Reduced right margin.} % \changes{v0.74}{2019/08/13}{Remembers user's geometry.} % % \codehtml @@ -14178,7 +15454,7 @@ This boolean may be tested by the user for later use. % \begin{macrocode} \begin{warpall} % \end{macrocode} - +% % Remember the original \cs{RequirePackage}: % \begin{macrocode} \LetLtxMacro\LWR@origRequirePackage\RequirePackage @@ -14230,7 +15506,6 @@ This boolean may be tested by the user for later use. -% ^^A *checkload % \begin{macro}{\LWR@checkloadfilename} \marg{filename} % Checks if this filename should be loaded after \pkg{lwarp}, % or never at all. @@ -14244,8 +15519,15 @@ This boolean may be tested by the user for later use. % \changes{v0.79}{2020/01/09}{Prevented \pkg{bxcjkjatype}, \pkg{hangul}.} % \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.} % \changes{v0.81}{2020/02/28}{Prevented \pkg{statex}.} -% +% \changes{v0.87}{2020/05/14}{Prevented \pkg{csvtools}.} +% \changes{v0.88}{2020/07/07}{Prevented \pkg{shadethm}.} +% \changes{v0.891}{2020/09/16}{Prevented \pkg{libgreek}.} +% \changes{v0.893}{2020/11/15}{Allowed \pkg{picinpar}.} +% \changes{v0.895}{2021/01/19}{Allowed \pkg{epsf}.} + % The following should never be loaded: +% +% ^^A *checkload *loadnever % \begin{macrocode} \newcommand*{\LWR@checkloadfilename}[1]{% \LWR@checkloadnever{#1}{ae}{cm-super, lmodern} @@ -14254,23 +15536,21 @@ This boolean may be tested by the user for later use. \LWR@checkloadnever{#1}{alg}{algorithm2e, algorithmicx} \LWR@checkloadnever{#1}{algorithmic}{algorithm2e, algorithmicx} \LWR@checkloadnever{#1}{bitfield}{bytefield} -\LWR@checkloadnever{#1}{boxedminipage}{boxedminipage2e} \LWR@checkloadnever{#1}{caption2}{caption} \LWR@checkloadnever{#1}{ccaption}{caption}% might be preloaded by memoir \LWR@checkloadnever{#1}{colortab}{colortbl} +\LWR@checkloadnever{#1}{csvtools}{datatool} \LWR@checkloadnever{#1}{doublespace}{setspace} -\LWR@checkloadnever{#1}{epsf}{graphicx} \LWR@checkloadnever{#1}{fancyheadings}{fancyhdr} \LWR@checkloadnever{#1}{fncylab}{cleveref} \LWR@checkloadnever{#1}{formula}{siunitx} \LWR@checkloadnever{#1}{glossary}{glossaries} \LWR@checkloadnever{#1}{hyper}{hyperref} +\LWR@checkloadnever{#1}{libgreek}{libertinust1math, newtx} \LWR@checkloadnever{#1}{newthm}{ntheorem} \LWR@checkloadnever{#1}{pdfcprot}{microtype} -\LWR@checkloadnever{#1}{picinpar}{floatflt, wrapfig} \LWR@checkloadnever{#1}{picins}{floatflt, wrapfig} \LWR@checkloadnever{#1}{rplain}{fancyhdr} -\LWR@checkloadnever{#1}{shadethm}{mdframed} \LWR@checkloadnever{#1}{si}{siunitx} \LWR@checkloadnever{#1}{sistyle}{siunitx} \LWR@checkloadnever{#1}{slashbox}{diagbox} @@ -14284,6 +15564,7 @@ This boolean may be tested by the user for later use. % % ^^A *loadbefore % The following should only be loaded before \pkg{lwarp}: +% \changes{v0.895}{2021/01/14}{\pkg{kpfonts} load before \pkg{lwarp}.} % \begin{macrocode} \LWR@checkloadbefore{#1}{ctex} \LWR@checkloadbefore{#1}{fontspec} @@ -14292,6 +15573,7 @@ This boolean may be tested by the user for later use. \LWR@checkloadbefore{#1}{nfssext-cfr} \LWR@checkloadbefore{#1}{fontaxes} \LWR@checkloadbefore{#1}{kotex} +\LWR@checkloadbefore{#1}{kpfonts}% textcomp option clash \LWR@checkloadbefore{#1}{luatexja} \LWR@checkloadbefore{#1}{luatexja-fontspec} \LWR@checkloadbefore{#1}{luatexko} @@ -14436,6 +15718,8 @@ This boolean may be tested by the user for later use. }% } \LetLtxMacro\usepackage\RequirePackage +\@onlypreamble\RequirePackage +\@onlypreamble\usepackage % \end{macrocode} % \end{macro} @@ -14455,8 +15739,9 @@ This boolean may be tested by the user for later use. % \begin{macrocode} \NewDocumentCommand{\LWR@ProvidesPackagePass}{m o}{ \PackageInfo{lwarp}{% - Using package `#1' and adding lwarp modifications,\MessageBreak - including options,}% + Using package `#1',\MessageBreak + and adding lwarp modifications, including options,\MessageBreak% + }% \IfValueTF{#2}% {\ProvidesPackage{lwarp-#1}[#2]}% {\ProvidesPackage{lwarp-#1}}% @@ -14565,28 +15850,6 @@ This boolean may be tested by the user for later use. -% \section{Additional required packages} - -% \codehtml -% \begin{macrocode} -\begin{warpHTML} -% \end{macrocode} - -% \DescribePackage{caption} -% \changes{v0.47}{2018/01/29}{\pkg{caption}: Also loads \pkg{lwarp-caption}.} -% \changes{v0.66}{2018/12/29}{\pkg{caption}: Fix for options clash.} -% \begin{macrocode} -\LWR@origRequirePackage{caption} -\AtBeginDocument{\RequirePackage{lwarp-caption}}% -% \end{macrocode} - -% \begin{macrocode} -\end{warpHTML} -% \end{macrocode} - - - - % \section{File handles} % Defines file handles for writes. @@ -14657,7 +15920,7 @@ This boolean may be tested by the user for later use. \immediate\openout\LWR@quickfile #1_html_inc.tex% lwarp \immediate\write\LWR@quickfile{\string\input{#1.tex}}% lwarp \immediate\closeout\LWR@quickfile% lwarp -\LWR@orignewpage% changed from clearpage +\LWR@maybe@orignewpage% changed from clearpage \if@filesw \immediate\write\@mainaux{\string\@input{#1_html_inc.aux}}% changed \fi @@ -14675,7 +15938,7 @@ This boolean may be tested by the user for later use. \immediate\write\@partaux{\relax}% \fi \@input@{#1_html_inc.tex}% changed - \LWR@orignewpage% changed from clearpage + \LWR@maybe@orignewpage% changed from clearpage \@writeckpt{#1}% \if@filesw \immediate\closeout\@partaux @@ -14707,29 +15970,29 @@ This boolean may be tested by the user for later use. % Used to copy the |.toc| file to |.sidetoc| to re-print the \TOC\ in % the side\TOC\ navigation pane. % \begin{macrocode} -\newwrite\LWR@copyoutfile % open the file to write to -\newread\LWR@copyinfile % open the file to read from +\newwrite\LWR@copyoutfile % open the file to write to +\newread\LWR@copyinfile % open the file to read from \newcommand*{\LWR@copyfile}[2]{% -\LWR@traceinfo{LWR@copyfile: copying #1 to #2} + \LWR@traceinfo{LWR@copyfile: copying #1 to #2} -\immediate\openout\LWR@copyoutfile=#2 -\openin\LWR@copyinfile=#1 -\begingroup\endlinechar=-1 -\makeatletter + \immediate\openout\LWR@copyoutfile=#2 + \openin\LWR@copyinfile=#1 + \begingroup\endlinechar=-1 + \makeatletter -\LWR@traceinfo{LWR@copyfile: about to loop} + \LWR@traceinfo{LWR@copyfile: about to loop} -\loop\unless\ifeof\LWR@copyinfile - \LWR@traceinfo{LWR@copyfile: one line} - \read\LWR@copyinfile to\LWR@fileline % Read one line and store it into \LWR@fileline + \loop\unless\ifeof\LWR@copyinfile + \LWR@traceinfo{LWR@copyfile: one line} + \read\LWR@copyinfile to\LWR@fileline % Read one line and store it into \LWR@fileline % \LWR@fileline\par % print the content into the pdf % print the content: - \immediate\write\LWR@copyoutfile{\unexpanded\expandafter{\LWR@fileline}}% -\repeat -\immediate\closeout\LWR@copyoutfile -\LWR@traceinfo{LWR@copyfile: done} -\endgroup + \immediate\write\LWR@copyoutfile{\unexpanded\expandafter{\LWR@fileline}}% + \repeat + \immediate\closeout\LWR@copyoutfile + \LWR@traceinfo{LWR@copyfile: done} + \endgroup } % \end{macrocode} % \end{macro} @@ -14847,9 +16110,7 @@ This boolean may be tested by the user for later use. % The new \HTML\ versions of macros and environments are used most of the time. % Copies of the print versions are used inside a \env{lateximage} environment, % which draws and remembers an image of the printed output, and also several -% other places. The copies of the print versions may also be used by the \HTML\ -% versions, such as when the \HTML\ version merely encloses the print version -% inside \HTML\ tags. +% other places. % % The general structure for providing print and \HTML\ versions of a macro or % environment is as follows: @@ -14859,13 +16120,14 @@ This boolean may be tested by the user for later use. % \item[For a preexisting macro, not defined with \pkg{xparse}:] An \HTML\ version % is provided with a special name, inside a \env{warpHTML} environment, % then \cs{LWR@formatted} is used to redefine and patch various macros: -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{5\baselineskip} +% \begin{sourceverb} % \begin{warpHTML} % \newcommand{\LWR@HTML@name}{...}% may also use xparse % % \LWR@formatted{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % |\LWR@formatted{name}| copies the original print version, % then redefines \cs{name} to use either the print or \HTML\ version depending % on which mode \pkg{lwarp} is using. \pkg{xparse} may be used to @@ -14874,16 +16136,18 @@ This boolean may be tested by the user for later use. % \item[For a preexisiting environment, not defined with \pkg{xparse}:] The process % is similar. Note the use of \cs{LWR@formattedenv} instead of \cs{LWR@formatted}. -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{5\baselineskip} +% \begin{sourceverb} % \begin{warpHTML} % \newenvironment{LWR@HTML@name}{...}% may also use xparse % % \LWR@formattedenv{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % \item[If the original used \pkg{xparse}:] A copy must be made using a new name: -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{7\baselineskip} +% \begin{sourceverb} % \begin{warpHTML} % \NewDocumentCommand{\LWR@print@name}{..}{..}% copy the original % @@ -14891,7 +16155,7 @@ This boolean may be tested by the user for later use. % % \LWR@formatted{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % Similar for an environment, using \cs{LWR@formattedenv}. % (\cs{LWR@formatted} and \cs{LWR@formattedenv} use \cs{LetLtxMacro} to % copy the original print definiton, @@ -14899,7 +16163,8 @@ This boolean may be tested by the user for later use. % so the print version must be manually recreated in the \pkg{lwarp} source.) % \item[For a new macro or environment, not using \pkg{xparse} for the print version:] \ -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{9\baselineskip} +% \begin{sourceverb} % \begin{warpall} % \newcommand{\name}{...}% NOT xparse! % \end{warpall} @@ -14909,7 +16174,7 @@ This boolean may be tested by the user for later use. % % \LWR@formatted{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % Similar for an environment. % The plain \cs{name} or environment \env{name} is used for the printed % version, and is placed inside \env{warpall}. @@ -14921,7 +16186,8 @@ This boolean may be tested by the user for later use. % by defining the \cs{LWR@print@} version with \pkg{xparse}, along with % \cs{name} defined without \pkg{xparse} to refer directly to the \cs{LWR@print} % version: -% \begin{Verbatim}[gobble=2,obeytabs,tabsize=4,frame=lines] +% \needspace{16\baselineskip} +% \begin{sourceverb} % \begin{warpall} % \NewDocumentCommand{\LWR@print@name}{...} {...}% -or- % \NewDocumentEnvironment{\LWR@print@name}{...} {...} {...} @@ -14938,7 +16204,7 @@ This boolean may be tested by the user for later use. % \LWR@formatted{name}% -or- % \LWR@formattedenv{name} % \end{warpHTML} -% \end{Verbatim} +% \end{sourceverb} % % \end{description} % @@ -15001,6 +16267,37 @@ This boolean may be tested by the user for later use. % \end{macro} % % +% +% \begin{macro}{\LWR@formatted@checkname} \marg{name} +% \changes{v0.893}{2020/11/15}{Added.} +% \begin{macrocode} +\newcommand*{\LWR@formatted@checkname}[1]{% + \ifcsundef{LWR@HTML@#1}{% + \PackageError{lwarp} + {% + \protect\LWR@HTML@#1 is not defined% + } + {Perhaps it is misspelled.} + }{\relax}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\LWR@formatted@checkendname} \marg{name} +% \changes{v0.893}{2020/11/15}{Added.} +% \begin{macrocode} +\newcommand*{\LWR@formatted@checkendname}[1]{% + \ifcsundef{endLWR@HTML@#1}{% + \PackageError{lwarp} + {% + \protect\endLWR@HTML@#1 is not defined% + } + {Perhaps it is misspelled.} + }{\relax}% +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\LWR@formatted} \marg{macroname} \qquad No backslash in the macro name. % % If not yet defined, defines \cs{LWR@print@} as @@ -15008,8 +16305,10 @@ This boolean may be tested by the user for later use. % Also redefines \cs{} to use \cs{LWR@@}, % where is set by \cs{LWR@formatting}, and is |print| or |HTML|. % +% \changes{v0.893}{2020/11/15}{Improved error handling.} % \begin{macrocode} \newcommand*{\LWR@formatted}[1]{% + \LWR@formatted@checkname{#1}% \ifcsundef{LWR@print@#1}{% \expandafter\LetLtxMacro\csname LWR@print@#1\expandafter\endcsname% \csname#1\endcsname% @@ -15033,8 +16332,10 @@ This boolean may be tested by the user for later use. % % An expandable version of \cs{LWR@formatted}. % +% \changes{v0.893}{2020/11/15}{Improved error handling.} % \begin{macrocode} \newcommand*{\LWR@expandableformatted}[1]{% + \LWR@formatted@checkname{#1}% \ifcsundef{LWR@print@#1}{% \expandafter\LetLtxMacro\csname LWR@print@#1\expandafter\endcsname% \csname#1\endcsname% @@ -15060,8 +16361,11 @@ This boolean may be tested by the user for later use. % Also redefines the environment || to use environment |LWR@@|, % where is set by \cs{LWR@formatting}, and is |print| or |HTML|. % +% \changes{v0.893}{2020/11/15}{Improved error handling.} % \begin{macrocode} \newcommand*{\LWR@formattedenv}[1]{% + \LWR@formatted@checkname{#1}% + \LWR@formatted@checkendname{#1}% \ifcsundef{LWR@print@#1}{% \expandafter\LetLtxMacro\csname LWR@print@#1\expandafter\endcsname% \csname#1\endcsname% @@ -15083,8 +16387,11 @@ This boolean may be tested by the user for later use. % % An expandable version of \env{LWR@formattedenv}. % +% \changes{v0.893}{2020/11/15}{Improved error handling.} % \begin{macrocode} \newcommand*{\LWR@expandableformattedenv}[1]{% + \LWR@formatted@checkname{#1}% + \LWR@formatted@checkendname{#1}% \ifcsundef{LWR@print@#1}{% \expandafter\LetLtxMacro\csname LWR@print@#1\expandafter\endcsname% \csname#1\endcsname% @@ -15233,6 +16540,7 @@ This boolean may be tested by the user for later use. \begin{warpHTML} % \end{macrocode} % +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \AtBeginDocument{ \ifbool{FormatWP}{ @@ -15250,11 +16558,11 @@ This boolean may be tested by the user for later use. \renewcommand*{\LWR@tagsubsubsectionend}{/h5} \renewcommand*{\LWR@tagparagraph}{h6} \renewcommand*{\LWR@tagparagraphend}{/h6} -\renewcommand*{\LWR@tagsubparagraph}{span class="subparagraph"} +\renewcommand*{\LWR@tagsubparagraph}{span class=\textquotedbl{}subparagraph\textquotedbl} \renewcommand*{\LWR@tagsubparagraphend}{/span} }% WPTitleHeading {% not WPTitleHeading, part and section starting at h1 -\renewcommand*{\LWR@tagtitle}{div class="title"} +\renewcommand*{\LWR@tagtitle}{div class=\textquotedbl{}title\textquotedbl} \renewcommand*{\LWR@tagtitleend}{/div} \renewcommand*{\LWR@tagpart}{h1} \renewcommand*{\LWR@tagpartend}{/h1} @@ -15273,7 +16581,7 @@ This boolean may be tested by the user for later use. {% chapter defined \ifbool{WPTitleHeading}{} {% not WPTitleHeading, part and chapter starting at h1 -\renewcommand*{\LWR@tagtitle}{div class="title"} +\renewcommand*{\LWR@tagtitle}{div class=\textquotedbl{}title\textquotedbl} \renewcommand*{\LWR@tagtitleend}{/div} \renewcommand*{\LWR@tagpart}{h1} \renewcommand*{\LWR@tagpartend}{/h1} @@ -15287,7 +16595,7 @@ This boolean may be tested by the user for later use. \renewcommand*{\LWR@tagsubsubsectionend}{/h5} \renewcommand*{\LWR@tagparagraph}{h6} \renewcommand*{\LWR@tagparagraphend}{/h6} -\renewcommand*{\LWR@tagsubparagraph}{span class="subparagraph"} +\renewcommand*{\LWR@tagsubparagraph}{span class=\textquotedbl{}subparagraph\textquotedbl} \renewcommand*{\LWR@tagsubparagraphend}{/span} }% not WPTitleHeading }% chapter defined @@ -15341,8 +16649,27 @@ This boolean may be tested by the user for later use. \let\LWR@origbigskip\bigskip \let\LWR@origtextellipsis\textellipsis -\let\LWR@orig@textquotedbl\textquotedbl +% \end{macrocode} +% \changes{v0.88}{2020/07/03}{Added \cs{vdots}.} +% \begin{macrocode} +\let\LWR@origvdots\vdots +% \end{macrocode} +% +% \pkg{libertinus-otf} has too much kerning for \cs{textquotedbl}, +% causing an extra space. +% \changes{v0.895}{2021/01/14}{Fixed \pkg{libertinus-otf} \cs{textquotedbl} kern.} +% \begin{macrocode} +\LetLtxMacro\LWR@orig@@textquotedbl\textquotedbl +\LetLtxMacro\LWR@orig@textquotedbl\LWR@orig@@textquotedbl +\AtEndPreamble{ +\@ifpackageloaded{libertinus-otf}{ + \renewcommand{\LWR@orig@textquotedbl}{\LWR@orig@@textquotedbl\kern-.15em} + \LetLtxMacro\textquotedbl\LWR@orig@textquotedbl +}{} +} +% \end{macrocode} +% \begin{macrocode} \LetLtxMacro\LWR@origttfamily\ttfamily \LetLtxMacro\LWR@origem\em @@ -15353,13 +16680,6 @@ This boolean may be tested by the user for later use. \let\LWR@origsp\sp \let\LWR@origsb\sb -\LetLtxMacro\LWR@origtextsuperscript\textsuperscript -\LetLtxMacro\LWR@orig@textsuperscript\@textsuperscript - -\AtBeginDocument{ -\LetLtxMacro\LWR@origtextsubscript\textsubscript -\LetLtxMacro\LWR@orig@textsubscript\@textsubscript -} \LetLtxMacro\LWR@origunderline\underline % \end{macrocode} @@ -15373,7 +16693,6 @@ This boolean may be tested by the user for later use. \let\LWR@orignewline\newline - \AtBeginDocument{% in case packages change definition \let\LWR@orig@trivlist\@trivlist \let\LWR@origtrivlist\trivlist @@ -15415,6 +16734,7 @@ This boolean may be tested by the user for later use. % \limitsaccents % % \changes{v0.37}{2017/08/18}{\protect\LaTeX\ accents: Added.} +% \changes{v0.84}{2020/04/12}{\protect\LaTeX\ accents: Add'l symbols.} % % \codehtml % \begin{macrocode} @@ -15430,29 +16750,41 @@ This boolean may be tested by the user for later use. % % For Unicode engines, only \cs{t} needs to be redefined: % \begin{macrocode} -\LetLtxMacro\LWR@origt\t +\LetLtxMacro\LWR@origtie\t % \end{macrocode} % For pdf\LaTeX, additional work is required: % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex -\LetLtxMacro\LWR@origequalaccent\= +\LetLtxMacro\LWR@origgraveaccent\` +\LetLtxMacro\LWR@origacuteaccent\' +\LetLtxMacro\LWR@origcircumflexaccent\^ +\LetLtxMacro\LWR@origtildeaccent\~ +\LetLtxMacro\LWR@origmacronaccent\= +\LetLtxMacro\LWR@origbreve\u \LetLtxMacro\LWR@origdotaccent\. -\LetLtxMacro\LWR@origu\u -\LetLtxMacro\LWR@origv\v -\LetLtxMacro\LWR@origc\c -\LetLtxMacro\LWR@origd\d -\LetLtxMacro\LWR@origb\b +\LetLtxMacro\LWR@origdiaeresisaccent\" +\LetLtxMacro\LWR@origdoubleacuteaccent\H +\LetLtxMacro\LWR@origcaronaccent\v +\LetLtxMacro\LWR@origdotbelowaccent\d +\LetLtxMacro\LWR@origcedillaaccent\c +\LetLtxMacro\LWR@origmacronbelowaccent\b % \end{macrocode} % The \HTML\ redefinitions follow. % % For pdf\LaTeX, Unicode diacritical marks are used: % \begin{macrocode} -\renewcommand*{\=}[1]{#1\HTMLunicode{0305}} -\renewcommand*{\.}[1]{#1\HTMLunicode{0307}} +\renewcommand*{\`}[1]{#1\HTMLunicode{0300}} +\renewcommand*{\'}[1]{#1\HTMLunicode{0301}} +\renewcommand*{\^}[1]{#1\HTMLunicode{0302}} +\renewcommand*{\~}[1]{#1\HTMLunicode{0303}} +\renewcommand*{\=}[1]{#1\HTMLunicode{0304}} \renewcommand*{\u}[1]{#1\HTMLunicode{0306}} +\renewcommand*{\.}[1]{#1\HTMLunicode{0307}} +\renewcommand*{\"}[1]{#1\HTMLunicode{0308}} +\renewcommand*{\H}[1]{#1\HTMLunicode{030B}} \renewcommand*{\v}[1]{#1\HTMLunicode{030C}} -\renewcommand*{\c}[1]{#1\HTMLunicode{0327}} \renewcommand*{\d}[1]{#1\HTMLunicode{0323}} +\renewcommand*{\c}[1]{#1\HTMLunicode{0327}} \renewcommand*{\b}[1]{#1\HTMLunicode{0331}} \fi % \end{macrocode} @@ -15467,18 +16799,24 @@ This boolean may be tested by the user for later use. % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex \newcommand*{\LWR@restoreorigaccents}{% -\LetLtxMacro\=\LWR@origequalaccent% -\LetLtxMacro\.\LWR@origdotaccent% -\LetLtxMacro\u\LWR@origu% -\LetLtxMacro\v\LWR@origu% -\LetLtxMacro\t\LWR@origt% -\LetLtxMacro\c\LWR@origc% -\LetLtxMacro\d\LWR@origd% -\LetLtxMacro\b\LWR@origb% + \LetLtxMacro\`\LWR@origgraveaccent% + \LetLtxMacro\'\LWR@origacuteaccent% + \LetLtxMacro\^\LWR@origcircumflexaccent% + \LetLtxMacro\~\LWR@origtildeaccent% + \LetLtxMacro\=\LWR@origmacronaccent% + \LetLtxMacro\u\LWR@origbreve% + \LetLtxMacro\.\LWR@origdotaccent% + \LetLtxMacro\"\LWR@origdiaeresisaccent% + \LetLtxMacro\H\LWR@origdoubleacuteaccent% + \LetLtxMacro\v\LWR@origcaronaccent% + \LetLtxMacro\t\LWR@origtie% + \LetLtxMacro\d\LWR@origdotbelowaccent% + \LetLtxMacro\c\LWR@origcedillaaccent% + \LetLtxMacro\b\LWR@origmacronbelowaccent% }% \else% XeLaTeX, LuaLaTeX: \newcommand*{\LWR@restoreorigaccents}{% -\LetLtxMacro\t\LWR@origt% + \LetLtxMacro\t\LWR@origtie% }% \fi% }% AtBeginDocument @@ -15513,7 +16851,7 @@ This boolean may be tested by the user for later use. % Default to no configuration files: % \changes{v0.61}{2018/10/02}{Don't write configuration files if processing \pkg{pstool} image.} % \begin{macrocode} -\excludecomment{LWRwriteconf} +\LWR@excludecomment{LWRwriteconf}{writeconf} % \end{macrocode} % % Generate configuration files if print mode and not \filenm{-pstool}: @@ -15531,7 +16869,7 @@ This boolean may be tested by the user for later use. } { \PackageInfo{lwarp}{Generating lwarp configuration files,}% - \includecomment{LWRwriteconf} + \LWR@includecomment{LWRwriteconf}{writeconf} } \end{warpprint} % \end{macrocode} @@ -15626,9 +16964,12 @@ This boolean may be tested by the user for later use. % Error message if not sure which \LaTeX\ engine is being used. % \begin{macrocode} \newcommand*{\LWR@unknownengine}{% - \PackageError{lwarp} - {Unknown LaTeX engine.} - {Lwarp only knows about pdflatex, dvi latex, xelatex, lualatex, and upLateX.} + \PackageError{lwarp}% + {Unknown LaTeX engine}% + {% + Lwarp only knows about pdflatex, DVI latex, + xelatex, lualatex, and upLateX.% + }% } % \end{macrocode} % \end{macro} @@ -15656,7 +16997,7 @@ This boolean may be tested by the user for later use. \newcommand*{\LWR@latexmkcmd}[1]{% latexmk \space \LWR@shellescapecmd \space #1 \space -recorder \space - \LWR@latexmkvar{makeindex}{\LWR@LatexmkIndexCmd} + \LWR@latexmkvar{makeindex}{\LWR@LatexmkIndexCmd}% } % \end{macrocode} % \end{macro} @@ -15958,7 +17299,6 @@ This boolean may be tested by the user for later use. % \changes{v0.58}{2018/06/20}{\filenm{lwarpmk.conf}: Generated \cs{AtBeginDocument}.} % \changes{v0.58}{2018/06/20}{\filenm{lwarpmk.conf}: Added options \optn{makeindex} and \optn{xindy}.} % \changes{v0.58}{2018/06/21}{\filenm{lwarpmk.conf}: Added option \optn{makeindexstyle}.} -% % \codeconfig % \begin{macrocode} \begin{LWRwriteconf} @@ -15984,7 +17324,6 @@ This boolean may be tested by the user for later use. % \changes{v0.58}{2018/06/20}{\filenm{*.lwarpmkconf}: Generated \cs{AtBeginDocument}.} % \changes{v0.58}{2018/06/20}{\filenm{*.lwarpmkconf}: Added options \optn{makeindex} and \optn{xindy}.} % \changes{v0.58}{2018/06/21}{\filenm{*.lwarpmkconf}: Added option \optn{makeindexstyle}.} -% % The \optn{makeindex} and \optn{xindy} options have already been handled % for \filenm{lwarp.conf}. % @@ -16041,6 +17380,15 @@ This boolean may be tested by the user for later use. % \changes{v0.76}{2019/10/02}{\filenm{lwarp.css}: Fix for small caps.} % \changes{v0.79}{2020/01/17}{\filenm{lwarp.css}: Fix: Nested \env{tabular}s.} % \changes{v0.81}{2020/02/22}{\filenm{lwarp.css}: Added \pkg{nolbreaks}.} +% \changes{v0.84}{2020/03/28}{\filenm{lwarp.css}: Added \pkg{koma-*} subject.} +% \changes{v0.84}{2020/04/10}{\filenm{lwarp.css}: Improved \pkg{realscripts}.} +% \changes{v0.84}{2020/04/13}{\filenm{lwarp.css}: Improved \pkg{nfssext-cfr}.} +% \changes{v0.84}{2020/04/18}{\filenm{lwarp.css}: Fix: Minipage tex align.} +% \changes{v0.84}{2020/04/24}{\filenm{lwarp.css}: Fix: Top nav if narrow window.} +% \changes{v0.88}{2020/07/04}{\filenm{lwarp.css}: Added \pkg{tcolorbox}, \pkg{thmbox}.} +% \changes{v0.88}{2020/07/14}{\filenm{lwarp.css}: Added \optn{indexheading} for \pkg{gindex}.} +% \changes{v0.893}{2020/10/18}{\filenm{lwarp.css}: Added \pkg{keystroke}.} +% \changes{v0.894}{2020/12/15}{\filenm{lwarp.css}: \TeX\ logos no longer below baseline.} % % ^^A *lwarp.css % @@ -16050,7 +17398,7 @@ This boolean may be tested by the user for later use. \begin{filecontents*}[overwrite]{lwarp.css} /* CSS stylesheet for the LaTeX Lwarp package - Copyright 2016-2020 Brian Dunn — BD Tech Concepts LLC + Copyright 2016-2021 Brian Dunn — BD Tech Concepts LLC */ @@ -16108,10 +17456,11 @@ span.sectionnumber { margin-right: 0em } span.indexitem {margin-left: 0em} span.indexsubitem {margin-left: 2em} span.indexsubsubitem {margin-left: 4em} +div.indexheading {margin-top: 2ex ; font-weight: bold} div.hidden, span.hidden { display: none ; } -kbd, span.texttt { +kbd, span.texttt, p span.texttt { font-family: "DejaVu Mono", "Bitstream Vera Mono", "Lucida Console", "Nimbus Mono L", "Liberation Mono", "FreeMono", "Andale Mono", "Courier New", monospace; @@ -16126,10 +17475,6 @@ span.textit, div.textit { font-style: italic; } span.textmd, div.textmd { font-weight: normal; } -span.texteb { font-weight: bolder; } - -span.textlg { font-weight: lighter; } - span.textup, div.textup { font-style: normal; font-variant: normal; @@ -16158,6 +17503,52 @@ span.textsf, div.textsf { Geneva, Verdana, sans-serif ; } +/* nfssext-cfr lining figures */ +span.textln, div.textln { + font-variant-numeric: lining-nums ; +} + +/* nfssext-cfr proportional figures */ +span.textp, div.textp { + font-variant-numeric: proportional-nums ; +} + +/* nfssext-cfr tabular figures */ +span.textt, div.textt { + font-variant-numeric: tabular-nums ; +} + +/* nfssext-cfr font weights */ +span.textdb, div.textdb { + font-weight: 500 ; +} + +span.textsb, div.textsb { + font-weight: 600 ; +} + +span.texteb, div.texteb { + font-weight: 800 ; +} + +span.textub, div.textub { + font-weight: 900 ; +} + +span.textlg, div.textlg { + font-weight: 300 ; +} + +span.textel, div.textel { + font-weight: 200 ; +} + +span.textul, div.textul { + font-weight: 100 ; +} + + + span.textcircled { border: 1px solid black ; border-radius: 1ex ; } span.underline { @@ -16170,6 +17561,8 @@ span.overline { text-decoration-skip: auto ; } +div.hrule { border-top: 1px solid silver } + /* for vertical text: */ div.verticalrl { writing-mode: vertical-rl } @@ -16202,16 +17595,16 @@ div.diagboxW { .supsubscript sub { position: relative; display: block; - font-size: .5em; + font-size: .7em; line-height: 1; } .supsubscript sup { - top: .5em; + top: .3em; } .supsubscript sub { - top: .5em; + top: .3em; } div.attribution p { @@ -16290,7 +17683,7 @@ div.epigraphsource p, div.dictumauthor p { padding: .5ex 0ex 0ex 0ex ; margin: 0 div.dictumauthor { font-style:italic } -/* copyrightbox package */ +/* copyrightbox package: */ div.copyrightbox { margin: .5ex .5em } div.copyrightbox p {margin: 0px .5em ; padding: 0px} div.copyrightboxnote {text-align: left ; font-size: 60%} @@ -16353,6 +17746,11 @@ span.capsspacing { span.highlight { background: #F8E800 ; } +/* keystroke package: */ +span.keystroke { + border-style: outset ; + padding: 0pt .5em 0pt .5em ; +} html body { @@ -16501,7 +17899,7 @@ div.bodywithoutsidetoc div.bodycontainer { } section.textbody div.footnotes{ - margin: 3ex 2em 0ex 2em ; + margin: 3ex 2em .5ex 2em ; border-bottom: 2px solid silver ; } @@ -16693,6 +18091,7 @@ div.wpminipage { border: 1px solid green ; margin: .5ex ; padding: .5ex ;} .minipage, .fminipage, .fcolorminipage { /* display: inline-block ; */ /* Mini pages which follow each other will be tiled. */ + text-align:left; margin: .25em .25em .25em .25em; padding: .25em .25em .25em .25em; display: inline-flex; @@ -16755,20 +18154,33 @@ div.wpminipage { border: 1px solid green ; margin: .5ex ; padding: .5ex ;} } -.mdframed { +/* mdframed, tcolorbox, shadebox packages */ +.mdframed, .tcolorbox, .shadebox { padding: 0ex ; margin: 2ex 0em 2ex 0em ; + border: 1px solid black ; +} + +.tcolorbox { + border-radius: 10pt ; + margin: 2ex 1em 2ex 1em ; } -.mdframed p { padding: 0ex .5em 0ex .5em ; } +.mdframed p, .tcolorbox p { padding: 0ex .5em 0ex .5em ; } -.mdframed dl { padding: 1ex .5em 0ex .5em ; } +.mdframed dl, .tcolorbox dl { padding: 1ex .5em 0ex .5em ; } -.mdframedtitle { +.mdframedtitle, .tcolorboxtitle { padding: .5ex 0pt 0pt 0pt ; border-radius: 10pt 10pt 0pt 0pt ; display: block ; margin-bottom: 1ex ; + border-bottom: 1px solid silver ; +} + +.tcolorboxsubtitle .tcolorbox { + margin: 2ex 0em 2ex 0em ; + border-radius: 0pt ; } .mdframedsubtitle { @@ -16872,7 +18284,10 @@ dl dd:after { content: "" ; display: block ; clear: both } dl dd p { margin-top: 0em; } -dd ul, dd ol, dd dl { clear: both ; padding-top: 1ex } +dd ul, dd ol, dd dl { + clear: both ; +/* padding-top: 1ex ; */ +} nav { @@ -17188,6 +18603,26 @@ span.verbatim { +div.titlehead +{ + text-align: left ; + font-style: normal ; + font-weight: normal ; + font-style: normal ; + font-size: .8em ; + margin: 1ex 0em 1ex 0em ; +} + +div.subject +{ + text-align: center ; + font-style: normal ; + font-weight: bold ; + font-style: normal ; + font-size: .8em ; + margin: 1ex 0em 1ex 0em ; +} + div.published { text-align: center ; @@ -17282,6 +18717,7 @@ footer { } +/* for \LinkHome, \LinkPrevious, and \LinkNext: */ a.linkhome { font-weight:bold ; font-size: 1em ;} @@ -17405,8 +18841,14 @@ nav .authorartist{ display:inline; } /* Native LaTeX theorems: */ -.theoremcontents { font-style: italic; margin-top: 3ex ; margin-bottom: 3ex ; } -.theoremlabel { font-style: normal; font-weight: bold ; margin-right: .5em ; } +.theoremcontents { + font-style: italic; margin-top: 3ex ; margin-bottom: 3ex ; +} + +.theoremlabel { + font-style: normal; font-weight: bold ; margin-right: .5em ; +} + /* theorem, amsthm, and ntheorem packages */ @@ -17480,6 +18922,35 @@ div.amsthmproof span.amsthmnoteremark {} +/* thmbox */ + +.thmbox { + font-style: italic; margin-top: 3ex ; margin-bottom: 3ex ; + border: 1px solid gray ; + padding: 1ex ; +} + +.thmboxtitle { + font-style: normal; font-weight: bold ; margin-right: .5em ; + border-bottom: 1px solid gray ; +} + +span.thmboxproofname, span.thmboxexamplename { + font-weight: bold ; +} + +div.thmboxproof, div.thmboxexample { + font-size: 0.85em ; + margin: 2ex ; +} + +div.thmboxleftbar { + border-left: 2px solid black ; + padding-left: 1em ; +} + + + /* For the backnaur package: */ div.backnaur { display: block ; @@ -17527,6 +18998,9 @@ span.nolbreaks { white-space: nowrap ; } /* For CSS LaTeX and related logos: Based on spacing demonstrated by the metafont package. + +The subscripts are shrunk instead of lowered below the baseline, +to avoid browser rendering errors with the line height in lists, etc. */ .latexlogofont { @@ -17538,7 +19012,6 @@ Based on spacing demonstrated by the metafont package. .latexlogo { font-family: "Linux Libertine O", "Nimbus Roman No 9 L", "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; - font-size: 1.1em; } .latexlogosup { @@ -17552,10 +19025,11 @@ Based on spacing demonstrated by the metafont package. .latexlogosub { text-transform: uppercase; - vertical-align: -0.27ex; +/* vertical-align: -0.27ex; */ margin-left: -0.08em; margin-right: -0.07em; - font-size: 1em; +/* font-size: 1em; */ + font-size: .7em ; } .latexlogotwoe { @@ -17565,24 +19039,25 @@ Based on spacing demonstrated by the metafont package. .latexlogotwoesub { font-style:italic ; - vertical-align: -0.27ex; +/* vertical-align: -0.27ex; */ margin-left: -0.11em; margin-right: -0.1em; - font-size: 1em; +/* font-size: 1em; */ + font-size: .7em ; } .xelatexlogo { font-family: "Linux Libertine O", "Nimbus Roman No 9 L", "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; letter-spacing: .03em ; - font-size: 1.1em; } .xelatexlogosub { - vertical-align: -0.27ex; +/* vertical-align: -0.27ex; */ margin-left: -0.0667em; margin-right: -.05em; - font-size: 1em; +/* font-size: 1em; */ + font-size: .7em ; letter-spacing: .03em ; } @@ -17620,6 +19095,7 @@ span.sidetocthetitle { display: none } box-shadow: none ; } span.sidetocthetitle { display: inline } + nav.topnavigation { display:block } nav.botnavigation { display:block } div.bodycontainer { width: 100% } .marginpar { @@ -18283,6 +19759,9 @@ page_compositor "." % \end{macrocode} + + + % \subsection{\filenm{lwarp_one_limage.cmd}} % % \DescribeFile{lwarp_one_limage.cmd} @@ -18337,10 +19816,13 @@ page_compositor "." % \subsection{\filenm{lwarp_mathjax.txt}} +% \credits{Davide P. Cervone} + % \DescribeFile{lwarp_mathjax.txt} -% The default MathJax script used by \pkg{lwarp} when using \brand{MathJax}. -% A recent version of MathJax is used, as served by the recommended repository. -% Adjustments are made to allow \LaTeX\ to control the equation tags. +% The default \brand{MathJax} script used by \pkg{lwarp} when using \brand{MathJax}. +% A recent version of \brand{MathJax} is used, as served by the recommended repository. +% Adjustments are made to allow \LaTeX\ to control the equation tags +% and provide for starred macros. % % \cs{MathJaxFilename} determines which script file is copied into the \HTML\ pages, % and defaults to \filenm{lwarp_mathjax.txt}. @@ -18353,8 +19835,8 @@ page_compositor "." % To generate a custom script, such as to use a local repository, % \margintag{custom script} % copy \filenm{lwarp_mathjax.txt} to a new file, -% make changes while keeping \pkg{lwarp}'s adjustments for equation numbering, -% and use \cs{MathJaxFilename} to select new filename. +% make changes while keeping \pkg{lwarp}'s adjustments for equation numbering +% and starred macros, and use \cs{MathJaxFilename} to select the new filename. % % \changes{v0.28}{2017/04/11}{File: \filenm{lwarp_mathjax.txt}: Updated \protect\acro{CDN} repository.} % \changes{v0.30}{2017/04/26}{Fix: \filenm{lwarp_mathjax.txt}: Only written in print mode.} @@ -18362,133 +19844,227 @@ page_compositor "." % \changes{v0.42}{2017/10/16}{File: \filenm{lwarp_mathjax.txt}: Updated \pkg{siunitx} script.} % \changes{v0.45}{2017/12/21}{File: \filenm{lwarp_mathjax.txt}: Allow \brand{MathJax} inside \env{tabbing}.} % \changes{v0.45}{2018/01/23}{File: \filenm{lwarp_mathjax.txt}: Allow \brand{MathJax} inside \env{verse}.} -% \changes{v0.59}{2018/07/13}{File: \filenm{lwarp_mathjax.txt}: Updated to MathJax v2.7.4.} -% \changes{v0.59}{2018/07/16}{File: \filenm{lwarp_mathjax.txt}: Fix: Removed chapter number from tagged non-numeric MathJax equations.} +% \changes{v0.59}{2018/07/13}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v2.7.4.} +% \changes{v0.59}{2018/07/16}{File: \filenm{lwarp_mathjax.txt}: Fix: Removed chapter number from tagged non-numeric \brand{MathJax} equations.} % \changes{v0.62}{2018/11/05}{File: \filenm{lwarp_mathjax.txt}: Removed inoperable \pkg{siunitx} extension.} -% \changes{v0.70}{2019/03/24}{File: \filenm{lwarp_mathjax.txt}: Updated to MathJax v2.7.5.} +% \changes{v0.70}{2019/03/24}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v2.7.5.} % \changes{v0.70}{2019/03/24}{File: \filenm{lwarp_mathjax.txt}: Loads \filenm{autoload-all.js} extension.} -% \changes{v0.76}{2019/10/05}{File: \filenm{lwarp_mathjax.txt}: Updated to MathJax v2.7.6.} -% +% \changes{v0.76}{2019/10/05}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v2.7.6.} +% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Updated to \brand{MathJax} v3 current.} +% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Improved equation numbering.} +% \changes{v0.86}{2020/05/03}{File: \filenm{lwarp_mathjax.txt}: Added support for starred macros.} +% \changes{v0.87}{2020/05/20}{File: \filenm{lwarp_mathjax.txt}: Now provides \cs{ifstar}, \cs{ifnextchar}.} +% \changes{v0.891}{2020/09/07}{File: \filenm{lwarp_mathjax.txt}: Renamed \filenm{tagformat} extension.} +% \changes{v0.892}{2020/09/26}{File: \filenm{lwarp_mathjax.txt}: Added \cs{left} \Slash \cs{right} delimiters.} +% \changes{v0.895}{2021/01/13}{File: \filenm{lwarp_mathjax.txt}: Added \cs{ifblank}, \cs{ifstrequal} macros.} % ^^A *lwarp_mathjax.txt % % \codeconfig % \begin{macrocode} \begin{LWRwriteconf} \begin{filecontents*}[overwrite]{lwarp_mathjax.txt} - - - - + }); - + // Create the Lwarp-macros package + Configuration.create('Lwarp-macros', { + handler: {macro: ['Lwarp-macros']} + }); - - + MathJax.startup.defaultReady(); - - + \end{filecontents*} % \end{Verbatim}% for syntax highlighting \end{LWRwriteconf} % \end{macrocode} -% ^^A A possible addition for siuntix: -% ^^A -% ^^A -% ^^A - - + % ^^A \subsection{\filenm{lwarp_KaTeX.txt}} @@ -18591,19 +20167,21 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX- % \changes{v0.59}{2018/08/21}{\prog{lwarpmk}: Consolidated compiling options into \optn{printlatexcmd} and \optn{HTMLlatexcmd}.} % \changes{v0.59}{2018/09/06}{\prog{lwarpmk}: Added \cmds{lwarpmk epstopdf}.} % \changes{v0.66}{2019/01/27}{\prog{lwarpmk}: Added \optn{ImagesDirectory} and \optn{ImagesName}.} -% \changes{v0.66}{2019/01/30}{\prog{lwarpmk}: Fix for \cmds{cleanlimages}.}% -% \changes{v0.68}{2019/03/02}{\prog{lwarpmk}: Improved error handling if incomplete compile.}% +% \changes{v0.66}{2019/01/30}{\prog{lwarpmk}: Fix for \cmds{cleanlimages}.} +% \changes{v0.68}{2019/03/02}{\prog{lwarpmk}: Improved error handling if incomplete compile.} % \changes{v0.71}{2019/04/11}{\prog{lwarpmk}: If wrong \filenm{lwarpmk.conf} version, % or wrong OS, -% displays the print command to recompile.}% -% \changes{v0.74}{2019/08/05}{\prog{lwarpmk}: \cmds{lwarpmk clean} removes add'l files.}% -% \changes{v0.74}{2019/08/14}{\prog{lwarpmk}: \cmds{lwarpmk epstopdf} and \cmds{pdftosvg} honor directories.}% -% \changes{v0.81}{2020/03/04}{\prog{lwarpmk}: Improved error if in \pkg{lwarp} source directory.}% +% displays the print command to recompile.} +% \changes{v0.74}{2019/08/05}{\prog{lwarpmk}: \cmds{lwarpmk clean} removes add'l files.} +% \changes{v0.74}{2019/08/14}{\prog{lwarpmk}: \cmds{lwarpmk epstopdf} and \cmds{pdftosvg} honor directories.} +% \changes{v0.81}{2020/03/04}{\prog{lwarpmk}: Improved error if in \pkg{lwarp} source directory.} +% \changes{v0.84}{2020/03/30}{\prog{lwarpmk}: \optn{clean} also removes \filenm{comment_*.cut}} +% \changes{v0.89}{2020/08/29}{\prog{lwarpmk}: \optn{clean} also removes \filenm{*.bbl}} % % The following is only generated if the \optn{lwarpmk} option % was given to \pkg{lwarp}. % \begin{macrocode} -\begin{LWR@createlwarpmk} +\begin{LWRcreatelwarpmk} % \end{macrocode} % % ^^A *lwarpmk.lua @@ -18611,10 +20189,10 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX- \begin{filecontents*}[overwrite]{lwarpmk.lua} #!/usr/bin/env texlua --- Copyright 2016-2020 Brian Dunn +-- Copyright 2016-2021 Brian Dunn -printversion = "v0.83" +printversion = "v0.895" requiredconfversion = "2" -- also at *lwarpmk.conf function printhelp () @@ -18645,10 +20223,11 @@ lwarpmk pdftohtml [-p project]: lwarpmk pdftosvg : Converts each PDF file to SVG. lwarpmk epstopdf : Converts each EPS file to PDF. lwarpmk clean [-p project]: Remove *.aux, *.toc, *.lof/t, - *.idx, *.ind, *.log, *_html_inc.*, .gl*, + *.idx, *.ind, *.bbl, *.log, *_html_inc.*, .gl*, *_html.pdf, *_html.html, *_html.sidetoc lwarpmk cleanall [-p project]: Remove auxiliary files, project.pdf, *.html lwarpmk cleanlimages: Removes all images from the "lateximages" directory. +lwarpmk -v: Print the version number. lwarpmk -h: Print this help message. lwarpmk --help: Print this help message. @@ -19008,12 +20587,13 @@ function removeaux () -- Remove auxiliary files: -- All .aux files are removed since there may be many bbl*.aux files. -- Also removes sourcename_html.pdf, sourcename_html.html, --- and sourcename_html.sidetoc. +-- and sourcename_html.sidetoc, plus comment_*.cut. -- os.execute ( rmname .. " *.aux " .. sourcename ..".toc " .. sourcename .. "_html.toc " .. sourcename ..".lof " .. sourcename .. "_html.lof " .. sourcename ..".lot " .. sourcename .. "_html.lot " .. + sourcename ..".bbl " .. sourcename .. "_html.bbl " .. " *.idx " .. " *.ind " .. sourcename ..".ps " .. sourcename .."_html.ps " .. @@ -19022,7 +20602,8 @@ os.execute ( rmname .. " *.aux " .. sourcename .. "_html.pdf " .. sourcename .. "_html.html " .. sourcename .. "_html.sidetoc " .. - " *_html_inc.* " + " *_html_inc.* " .. + " comment_*.cut" ) end @@ -19549,6 +21130,12 @@ elseif (arg[1] == nil) then printhelp () +-- lwarpmk -v: + +elseif (arg[1] == "-v" ) then +-- The version number has already been printed +-- by the lwarpmk intro. + -- lwarpmk -h or lwarpmk --help : elseif (arg[1] == "-h" ) or (arg[1] == "--help") then @@ -19568,7 +21155,7 @@ end -- not --version % \end{macrocode} % % \begin{macrocode} -\end{LWR@createlwarpmk} +\end{LWRcreatelwarpmk} % \end{macrocode} % @@ -19858,11 +21445,11 @@ end -- not --version % \DescribeBoolean{LWR@mathmacro} True if currently defining math macros. -% Used to disable \SVG\ math hashing and MathJax math contents while +% Used to disable \SVG\ math hashing and \brand{MathJax} math contents while % defining a macro using inline math. % Begin a macro, it is not guaranteed that the contents are static, and so % the image must be unique. The contents also almost certainly will not be -% parsed correctly by MathJax. +% parsed correctly by \brand{MathJax}. % \begin{macrocode} \newbool{LWR@mathmacro} \boolfalse{LWR@mathmacro} @@ -19908,7 +21495,7 @@ end -- not --version % value of a counter, then \cs{inlinemathother} must be used before the % inline math expression, and \cs{inlinemathnormal} must be used after. % -% For MathJax, the inline math expression is usually printed for MathJax to +% For \brand{MathJax}, the inline math expression is usually printed for \brand{MathJax} to % interpret. When marked as dynamic math, the following inline math expression % will be displayed as an unhashed inline \SVG\ image instead. % @@ -19984,7 +21571,7 @@ end -- not --version \newcommand*{\HTMLentity}[1]{% % \LWR@traceinfo{HTMLentity \detokenize{#1}}% \begingroup% -\LWR@FBcancel% +\LWR@hook@processingtags% \LWR@origampersand#1;% \endgroup% % \LWR@traceinfo{HTMLentity done}% @@ -20082,7 +21669,7 @@ end -- not --version % such as 100+ for one chapter, 200+ for another chapter, etc. % \begin{macrocode} \newcommand*{\SetHTMLFileNumber}[1]{% -\setcounter{LWR@htmlfilenumber}{#1}% + \setcounter{LWR@htmlfilenumber}{#1}% } % \end{macrocode} % \end{macro} @@ -20108,9 +21695,43 @@ end -- not --version % \end{macrocode} +% Updated each time a new \HTML\ file is begun. +% Used to provide \HTML\ previous/next web page links. +% \begin{macrocode} +\newcounter{LWR@HTMLpagenum} +\setcounter{LWR@HTMLpagenum}{0} +% \end{macrocode} + + +% \DescribeCounter{LWR@htmlseqfilenumber} +% A sequential count of the number of each \HTML\ file as it is being created. +% Number 0 is the home page. +% Unlike \cs{LWR@htmlfilenumber}, this one is known to increment by one +% for each file. This is used to generate previous \slash next links for +% each web page, via labels called |\BaseJobname-autofile-*|, and the +% last page is also labelled |\BaseJobname-autofile-last|. +% +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcounter{LWR@htmlseqfilenumber} +\setcounter{LWR@htmlseqfilenumber}{0} +% \end{macrocode} + +% \DescribeBoolean{LWR@setseqfilelabel} +% At each new \HTML\ file, this is false until a sectional unit is used, +% at which point this is set true and a label is placed. +% In this way, the previous/next labels will point to a named section. +% \begin{macrocode} +\newbool{LWR@setseqfilelabel} +\setbool{LWR@setseqfilelabel}{false} +% \end{macrocode} + + % \DescribeCounter{LWR@htmlfilenumber} % Records the number of each \HTML\ file as it is being created. % Number 0 is the home page. +% This might not be sequential, as the user may use +% \cs{SetHTMLFileNumber} to create groups of numbered nodes. % \begin{macrocode} \newcounter{LWR@htmlfilenumber} \setcounter{LWR@htmlfilenumber}{0} @@ -20125,6 +21746,8 @@ end -- not --version % \changes{v0.20}{2016/09/11}{Sections called ``Index'' or ``index'' have an underscore % prepended to their filenames if no prefix.} % \changes{v0.66}{2019/01/30}{Sanitize underscores.} +% \changes{v0.84}{2020/04/10}{Fix: Sections called ``Index'' or ``index'' have \filenm{-0} +% appended to their filenames if no prefix.} % % Prints the filename for a given section: |\HTMLFilename{}filenumber/name.html| % \begin{macrocode} @@ -20144,33 +21767,35 @@ end -- not --version % \LWR@traceinfo{about to assign temp}% \LWR@sanitize{#1}% \LWR@traceinfo{about to compare with ??}% -\ifthenelse{\equal{\LWR@sanitized}{??}}% +\ifdefstring{\LWR@sanitized}{??} {\LWR@traceinfo{found ??}}% {\LWR@traceinfo{not found ??}}% \LWR@traceinfo{about to compare with zero or empty}% -\ifthenelse{% - \equal{\LWR@sanitized}{0}% - \OR \equal{\LWR@sanitized}{}% - \OR \equal{\LWR@sanitized}{??}% -}% +\ifboolexpr{ + test {\ifdefstring{\LWR@sanitized}{0}} or + test {\ifdefstring{\LWR@sanitized}{}} or + test {\ifdefstring{\LWR@sanitized}{??}} +} {% \LWR@traceinfo{LWR@htmlsectionfilename B \HomeHTMLFilename.html}% \HomeHTMLFilename.html% }% % \end{macrocode} % For a \LaTeX\ section named ``Index'' or ``index'' without a prefix, create a filename -% with a leading underscore to avoid colliding with the \HTML\ filename |index.html|: +% with a trailing \filenm{-0} to avoid colliding with the \HTML\ filename |index.html|: % \begin{macrocode} {% \LWR@traceinfo{LWR@htmlsectionfilename C \LWR@sanitized}% - \ifthenelse{% - \equal{\HTMLFilename}{} \AND - \equal{\LWR@sanitized}{Index} \OR - \equal{\LWR@sanitized}{index}% + \ifboolexpr{ + test{\ifdefvoid{\HTMLFilename}} and + ( + test{\ifdefstring{\LWR@sanitized}{Index}} or + test{\ifdefstring{\LWR@sanitized}{index}} + ) }% {% - \LWR@traceinfo{Prefixing the index name with an underscore.}% - \_\LWR@sanitized.html% + \LWR@traceinfo{Adding a zero to the index filename.}% + \LWR@sanitized-0.html% }% % \end{macrocode} % Otherwise, create a filename with the chosen prefix: @@ -20189,18 +21814,18 @@ end -- not --version % % Prints the filename for the given label % -% \changes{v0.50}{2018/02/20}{Fix: SVG math in a section name.} +% \changes{v0.50}{2018/02/20}{Fix: \SVG\ math in a section name.} % \begin{macrocode} \newcommand*{\LWR@htmlrefsectionfilename}[1]{% -\LWR@traceinfo{LWR@htmlrefsectionfilename: !\detokenize{#1}!}% + \LWR@traceinfo{LWR@htmlrefsectionfilename: !\detokenize{#1}!}% % \end{macrocode} % \cs{LWR@nullfonts} to allow math in a section name. % \begin{macrocode} -\begingroup% -\LWR@nullfonts% -\LWR@htmlsectionfilename{\LWR@htmlfileref{#1}}% -\endgroup% -\LWR@traceinfo{LWR@htmlrefsectionfilename: done}% + \begingroup% + \LWR@nullfonts% + \LWR@htmlsectionfilename{\LWR@htmlfileref{#1}}% + \endgroup% + \LWR@traceinfo{LWR@htmlrefsectionfilename: done}% } % \end{macrocode} % \end{macro} @@ -20243,7 +21868,7 @@ end -- not --version % The filename must be detokenized for underscores. % \begin{macrocode} \newcommand*{\LinkHome}{% -\LWR@subhyperrefclass{\HomeHTMLFilename.html}{\linkhomename}{linkhome}% + \LWR@subhyperrefclass{\HomeHTMLFilename.html}{\linkhomename}{linkhome}% } % \end{macrocode} % \end{macro} @@ -20302,8 +21927,8 @@ end -- not --version % Creates a link to the homepage at the top of the page for use when the window is too % narrow for the side\TOC. % \begin{macrocode} -\newcommand*{\LWR@topnavigation}{ -\LWR@htmlelementclassline{nav}{topnavigation}{\LinkHome} +\newcommand*{\LWR@topnavigation}{% + \LWR@htmlelementclassline{nav}{topnavigation}{\LinkHome} } % \end{macrocode} % \end{macro} @@ -20313,8 +21938,8 @@ end -- not --version % Creates a link to the homepage at the bottom of the page for use when the window is too % narrow for the side\TOC. % \begin{macrocode} -\newcommand*{\LWR@botnavigation}{ -\LWR@htmlelementclassline{nav}{botnavigation}{\LinkHome} +\newcommand*{\LWR@botnavigation}{% + \LWR@htmlelementclassline{nav}{botnavigation}{\LinkHome} } % \end{macrocode} % \end{macro} @@ -20324,6 +21949,110 @@ end -- not --version % \end{macrocode} +% \section{Previous \Slash next navigation links} + +% \codeall +% \begin{macrocode} +\begin{warpall} +% \end{macrocode} + +% \begin{macro}{\linkpreviousname} What to call the link to the previous web page. +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\linkpreviousname}{Previous} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\linknextname} What to call the link to the next web page. +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\linknextname}{Next} +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpall} +% \end{macrocode} + + +% \codeprint +% \begin{macrocode} +\begin{warpprint} +% \end{macrocode} + +% \begin{macro}{\LinkPrevious} Creates a link to the previous web page if there is one. +% \begin{macrocode} +\newcommand*{\LinkPrevious}{} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\LinkNext} Creates a link to the next web page if there is one. +% \begin{macrocode} +\newcommand*{\LinkNext}{} +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpprint} +% \end{macrocode} + + +% \codehtml +% \begin{macrocode} +\begin{warpHTML} +% \end{macrocode} + +% \begin{macro}{\LinkPrevious} Creates a link to the previous web page if there is one. +% +% The links refer to the \LaTeX\ labels |\Basejobname-autofile-*| +% +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\LinkPrevious}{% + \ifnumless{\value{LWR@htmlseqfilenumber}}{1}{}{% + \setcounter{LWR@tempcountone}{\value{LWR@htmlseqfilenumber}-1}% + \LWR@subhyperrefclass{% + \LWR@htmlrefsectionfilename{% + \BaseJobname-autofile-\arabic{LWR@tempcountone}% + }% + }{\linkpreviousname}{linkhome}% + }% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\LinkNext} Creates a link to the next web page if there is one. +% +% The links refer to the \LaTeX\ labels |\Basejobname-autofile-*| \\ +% and the last is the label |\Basejobname-autofile-last| +% +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\newcommand*{\LinkNext}{% + \ifcsdef{r@\BaseJobname-autofile-last@lwarp}{% + \edef\LWR@tempone{% + \LWR@htmlfileref{\BaseJobname-autofile-\arabic{LWR@htmlseqfilenumber}}% + }% + \edef\LWR@temptwo{% + \LWR@htmlfileref{\BaseJobname-autofile-last}% + }% + \ifdefequal{\LWR@tempone}{\LWR@temptwo}{}{% + \setcounter{LWR@tempcountone}{\value{LWR@htmlseqfilenumber}+1}% + \LWR@subhyperrefclass{% + \LWR@htmlrefsectionfilename{% + \BaseJobname-autofile-\arabic{LWR@tempcountone}% + }% + }{\linknextname}{linkhome}% + }% + }{}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macrocode} +\end{warpHTML} +% \end{macrocode} + % \section{\cs{LWRPrintStack} diagnostic tool} @@ -20453,8 +22182,14 @@ end -- not --version \newcommand{\LWR@forcenewpage}{% \LWR@traceinfo{LWR@forcenewpage}% \ifinner\else% -\LWR@stoppars\LWR@orignewpage\LWR@startpars% + \LWR@traceinfo{LWR@forcenewpage A}% + \LWR@stoppars% + \LWR@traceinfo{LWR@forcenewpage B}% + \LWR@maybe@orignewpage% + \LWR@traceinfo{LWR@forcenewpage C}% + \LWR@startpars% \fi% +\LWR@traceinfo{LWR@forcenewpage done}% } % \end{macrocode} % @@ -20544,10 +22279,11 @@ end -- not --version % \subsection{Mapping \LaTeX\ sections to \HTML\ sections} % % \changes{v0.73}{2019/06/21}{Added \cs{book} for \pkg{memoir}.} +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \newcommand*{\LWR@tagtitle}{h1} \newcommand*{\LWR@tagtitleend}{/h1} -\newcommand*{\LWR@tagbook}{div class="book"} +\newcommand*{\LWR@tagbook}{div class=\textquotedbl{}book\textquotedbl} \newcommand*{\LWR@tagbookend}{/div} \newcommand*{\LWR@tagpart}{h2} \newcommand*{\LWR@tagpartend}{/h2} @@ -20559,15 +22295,30 @@ end -- not --version \newcommand*{\LWR@tagsubsectionend}{/h5} \newcommand*{\LWR@tagsubsubsection}{h6} \newcommand*{\LWR@tagsubsubsectionend}{/h6} -\newcommand*{\LWR@tagparagraph}{span class="paragraph"} +\newcommand*{\LWR@tagparagraph}{span class=\textquotedbl{}paragraph\textquotedbl} \newcommand*{\LWR@tagparagraphend}{/span} -\newcommand*{\LWR@tagsubparagraph}{span class="subparagraph"} +\newcommand*{\LWR@tagsubparagraph}{span class=\textquotedbl{}subparagraph\textquotedbl} \newcommand*{\LWR@tagsubparagraphend}{/span} \newcommand*{\LWR@tagregularparagraph}{p} % \end{macrocode} +% \subsection{Hook while processing tags} +% +% This is used to disable special text processing while processing \HTML\ tags. +% Special processing includes that done by +% \pkg{babel-french}, \pkg{luavina}, \pkg{xevlna}. +% +% \begin{macro}{\LWR@hook@processingtags} Disable special text processing +% while generating tags. +% Replaces \cs{LWR@FBcancel} in most places. +% \changes{v0.895}{2021/01/12}{Added.} +% \begin{macrocode} +\newcommand*{\LWR@hook@processingtags}{} +% \end{macrocode} +% \end{macro} + % \subsection{Babel-French tag modifications} @@ -20594,6 +22345,7 @@ end -- not --version {}% {% \LetLtxMacro\LWR@FBcancel\NoAutoSpacing% + \appto{\LWR@hook@processingtags}{\LWR@FBcancel}% }% \@ifundefined{frenchbsetup}% @@ -20606,31 +22358,31 @@ end -- not --version % \renewrobustcmd*{\FBcolonspace}{% \begingroup% - \LWR@FBcancel% + \LWR@hook@processingtags% \LWR@origampersand{}nbsp;% \endgroup% }% \renewrobustcmd*{\FBthinspace}{% \begingroup% - \LWR@FBcancel% + \LWR@hook@processingtags% \LWR@origampersand\LWR@origpound{}x202f;% \, \endgroup% }% \renewrobustcmd*{\FBguillspace}{% \begingroup% - \LWR@FBcancel% + \LWR@hook@processingtags% \LWR@origampersand{}nbsp;% ~, for \og xyz \fg{} \endgroup% }% \DeclareDocumentCommand{\FBmedkern}{}{% \begingroup% - \LWR@FBcancel% + \LWR@hook@processingtags% \LWR@origampersand\LWR@origpound{}x202f;% \, \endgroup% }% \DeclareDocumentCommand{\FBthickkern}{}{% \begingroup% - \LWR@FBcancel% + \LWR@hook@processingtags% \LWR@origampersand{}nbsp;% ~ \endgroup% }% @@ -20674,12 +22426,13 @@ end -- not --version % Break ligatures and use upright apostrophes in \HTML\ tags. % % \cs{protect} is in case the tag appears in \TOC, \LOF, \LOT. +% \changes{v0.85}{2020/04/30}{Fix: Added print macros for \pkg{fontspec}.} % \begin{macrocode} \newcommand*{\LWR@htmltagc}[1]{% \LWR@traceinfo{LWR@htmltagc !\detokenize{#1}!}% \begingroup% -\LWR@FBcancel% -\ifmmode\else\protect\LWR@origttfamily\fi% +\LWR@hook@processingtags% +\ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi% \protect\LWR@origtextless% \LWR@isolate{#1}% \protect\LWR@origtextgreater% @@ -20689,6 +22442,35 @@ end -- not --version % \end{macro} % +% \begin{macro}{\LWR@spanwarnformat} \marg{object} +% +% Warns if the given object is used inside a span. +% \begin{macrocode} +\newcommand*{\LWR@spanwarnformat}[1]{% + \ifnumcomp{\value{LWR@spandepth}}{>}{0}{% + \PackageWarning{lwarp}{% + A #1 is being used inside a span.\MessageBreak + Formatting may be lost,% + }% + }{}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\LWR@spanwarninvalid} \marg{object} +% +% Warns if the given object is used inside a span. +% \begin{macrocode} +\newcommand*{\LWR@spanwarninvalid}[1]{% + \ifnumcomp{\value{LWR@spandepth}}{>}{0}{% + \PackageWarning{lwarp}{% + A #1 is being used inside a span.\MessageBreak + This generates invalid HTML,% + }% + }{}% +} +% \end{macrocode} +% \end{macro} % \begin{environment}{LWR@nestspan} Disable \env{minipage}, \cs{parbox}, % and \HTML\ \element{div}s inside a \element{span}. @@ -20706,6 +22488,8 @@ end -- not --version % \changes{v0.44}{2017/11/15}{Added \env{list} and \env{trivlist}.} % \changes{v0.70}{2019/04/02}{Improved \env{minipage}, \cs{parbox} inside a span.} % \changes{v0.73}{2019/06/23}{Fix: \env{quote}, \env{quotation} inside a span.} +% \changes{v0.84}{2020/04/22}{Nullified \env{minipage}, \cs{parbox} inside a span.} +% \changes{v0.84}{2020/04/22}{Issue warnings inside a span.} % % \begin{macrocode} \newcommand*{\LWR@nestspanitem}{% @@ -20723,11 +22507,21 @@ end -- not --version {% not in a lateximage \LWR@traceinfo{LWR@nestspan: NOT inside a lateximage}% \addtocounter{LWR@spandepth}{1}% +% \end{macrocode} +% Nullify several objects inside the span: +% ^^A {\LWR@subhtmlelementclass{span}{inlineminipage}}% +% ^^A {\LWR@htmltagc{/span}}% +% \begin{macrocode} \RenewDocumentEnvironment{minipage}{O{t} o O{t} m}% - {\LWR@subhtmlelementclass{span}{inlineminipage}}% - {\LWR@htmltagc{/span}}% - \RenewDocumentEnvironment{BlockClass}{o m}{}{}% - \renewcommand{\BlockClassSingle}[2]{##2}% + {\LWR@spanwarnformat{minipage or \protect\parbox}}% + {}% + \RenewDocumentEnvironment{BlockClass}{o m}% + {\LWR@spanwarnformat{multi-paragraph object}}% + {}% + \renewcommand{\BlockClassSingle}[2]{% + {\LWR@spanwarnformat{multi-paragraph object}}% + ##2% + }% \renewcommand{\LWR@forcenewpage}{}% \renewcommand{\LWR@liststart}{% \let\item\LWR@nestspanitem% @@ -20811,13 +22605,14 @@ end -- not --version % \begin{macro}{\LWR@htmlclosecomment} % \changes{v0.47}{2018/01/25}{Add \cs{mbox} to prevent line breaks.} % \changes{v0.63}{2018/11/30}{Fix: Break ligature for \pkg{luatexko}.} +% \changes{v0.85}{2020/04/29}{Fix: Added print macros for \pkg{fontspec}.} % \begin{macrocode} \newcommand*{\LWR@htmlopencomment}{% {% % \LWR@traceinfo{LWR@htmlopencomment}% \begingroup% -\LWR@FBcancel% -\ifmmode\else\protect\LWR@origttfamily\fi% +\LWR@hook@processingtags% +\ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi% \LWR@print@mbox{\LWR@origtextless{}!-\/-}% \endgroup% }% @@ -20827,8 +22622,8 @@ end -- not --version {% % \LWR@traceinfo{LWR@htmlclosecomment}% \begingroup% -\LWR@FBcancel% -\ifmmode\else\protect\LWR@origttfamily\fi% +\LWR@hook@processingtags% +\ifmmode\else\protect\LWR@print@normalfont\protect\LWR@origttfamily\fi% \LWR@print@mbox{-\/-\LWR@origtextgreater}% \endgroup% }% @@ -20840,15 +22635,21 @@ end -- not --version % \begin{macro}{\LWR@htmlcomment} \marg{comment} % % \changes{v0.28}{2017/04/13}{Breaks ligatures in \HTML\ comments.} -% +% \changes{v0.85}{2020/04/29}{Fix: Added print macros for \pkg{fontspec}.} +% \changes{v0.893}{2020/10/16}{Disabled in math mode.} % \begin{macrocode} \newcommand{\LWR@htmlcomment}[1]{% -\LWR@htmlopencomment{}% -{% -\LWR@origttfamily% break ligatures -#1% -}% -\LWR@htmlclosecomment{}} +\ifmmode% +\else% + \LWR@htmlopencomment{}% + {% + \LWR@print@normalfont% + \LWR@origttfamily% break ligatures + #1% + }% + \LWR@htmlclosecomment{}% +\fi% +} % \end{macrocode} % \end{macro} % @@ -20874,6 +22675,7 @@ end -- not --version % \subsection{Div class and element class} + % \begin{macro}{\LWR@subhtmlelementclass} \marg{element} \oarg{style} \marg{class} % % Factored and reused in several places. @@ -20887,21 +22689,22 @@ end -- not --version % \changes{v0.34}{2017/08/02}{Moved optional argument in front of mandatory.} % \changes{v0.63}{2018/11/24}{Fix for \pkg{xeCJK}.} % \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.} +% \changes{v0.892}{2020/10/03}{Ignore empty class.} % % \begin{macrocode} \NewDocumentCommand{\LWR@subhtmlelementclass}{m O{} m}{% \LWR@traceinfo{LWR@subhtmlelementclass !#1!#2!#3!}% \ifblank{#2}% -{% empty option +{% empty style \LWR@htmltag{% - #1 % space - class=\textquotedbl#3\textquotedbl\ % space + #1% + \ifblank{#3}{}{ class=\textquotedbl#3\textquotedbl\ }% spaces }% }% -{% non-empty option +{% non-empty style \LWR@htmltag{% #1\LWR@indentHTML% - class=\textquotedbl#3\textquotedbl\LWR@indentHTML% + \ifblank{#3}{}{class=\textquotedbl#3\textquotedbl\LWR@indentHTML}% style=\textquotedbl#2\textquotedbl\LWR@orignewline% }% }% @@ -21043,12 +22846,12 @@ end -- not --version % \codehtml % \begin{macrocode} \begin{warpHTML} + \NewDocumentEnvironment{LWR@print@BlockClass}{o m}{}{}% + \NewDocumentEnvironment{LWR@HTML@BlockClass}{o m}% -{% - \LWR@htmldivclass[#1]{#2}% -} -{\LWR@htmldivclassend{#2}} + {\LWR@htmldivclass[#1]{#2}} + {\LWR@htmldivclassend{#2}} \LWR@formattedenv{BlockClass} \end{warpHTML} @@ -21073,7 +22876,7 @@ end -- not --version % \begin{macrocode} \begin{warpHTML} \newcommand{\LWR@HTML@BlockClassSingle}[2]{% -\LWR@htmlelementclassline{div}{#1}{#2}% + \LWR@htmlelementclassline{div}{#1}{#2}% } \LWR@formatted{BlockClassSingle} @@ -21497,14 +23300,18 @@ end -- not --version % \begin{macro}{\LWR@startpars} % Begin handling \HTML\ paragraphs. % This allows an \HTML\ paragraph to start, but one has not yet begun. +% \changes{v0.84}{2020/04/14}{Ignore if in \env{lateximage}.} % \begin{macrocode} \newcommand*{\LWR@startpars}% {% % \LWR@traceinfo{LWR@startpars}% % \end{macrocode} -% Ignore if inside a span: +% Ignore if inside a \env{lateximage} or \element{span}: % \begin{macrocode} -\ifnumcomp{\value{LWR@spandepth}}{>}{0}% +\ifboolexpr{ + test {\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}} or + test {\ifnumcomp{\value{LWR@spandepth}}{>}{0}} +}% {}% {% % \end{macrocode} @@ -21550,13 +23357,17 @@ end -- not --version % Any currently open \HTML\ paragraph is closed, and no more will be opened. % % \changes{v0.36}{2017/08/15}{Extra \protect\HTML\ source space after paragraphs.} +% \changes{v0.84}{2020/04/14}{Ignore if in \env{lateximage}.} % \begin{macrocode} \newcommand*{\LWR@stoppars}% {% % \end{macrocode} -% Ignore if inside a span: +% Ignore if inside a \env{lateximage} or \element{span}: % \begin{macrocode} -\ifnumcomp{\value{LWR@spandepth}}{>}{0}% +\ifboolexpr{ + test {\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}} or + test {\ifnumcomp{\value{LWR@spandepth}}{>}{0}} +}% {}% {% % \end{macrocode} @@ -21635,14 +23446,12 @@ end -- not --version % \begin{macrocode} \AtBeginDocument{ -\def\@afterindentfalse{\let\if@afterindent\iffalse} -\@afterindentfalse + \def\@afterindentfalse{\let\if@afterindent\iffalse} + \@afterindentfalse } \let\LWR@afterindent@syntaxhighlight\fi% syntax highlighting % \end{macrocode} - - % \begin{macrocode} \end{warpHTML} % \end{macrocode} @@ -21658,8 +23467,10 @@ end -- not --version % In the following, catcode is manually changed back and forth % without groups, since new macros are being defined which must % not be contained within the groups. +% \changes{v0.84}{2020/04/24}{Added \cs{FirstPageBottom}.} % \begin{macrocode} \newcommand{\LWR@firstpagetop}{} % for the home page alone +\newcommand{\LWR@firstpagebottom}{} % for the home page alone \newcommand{\LWR@pagetop}{} % for all other pages \newcommand{\LWR@pagebottom}{} % \end{macrocode} @@ -21678,6 +23489,19 @@ end -- not --version % % \end{macro} % +% \begin{macro}{\HTMLFirstPageBottom} \marg{text and logos} +% +% \changes{v0.84}{2020/04/24}{Added \cs{FirstPageBottom}.} +% +% \begin{macrocode} +\newcommand{\HTMLFirstPageBottom}[1]{% + \renewcommand{\LWR@firstpagebottom}{#1}% +} +% \end{macrocode} +% +% +% \end{macro} +% % % \begin{macro}{\HTMLPageTop} \marg{text and logos} % @@ -21752,7 +23576,7 @@ end -- not --version -% \section{MathJax script} +% \section{\brand{MathJax} script} % \codehtml % \begin{macrocode} @@ -21761,11 +23585,11 @@ end -- not --version % \begin{macro}{\LWR@mathjaxfilename} % \DescribeDefault{\filenm{lwarp_mathjax.txt}} -% The MathJax script filename to use. +% The \brand{MathJax} script filename to use. % This file is copied into the head of each \HTML\ page. % This may be changed mid-document using \cs{MathJaxFilename}, -% allowing the use of a custom MathJax script, such as for a local repository, -% or different MathJax script files to be used for different sections of the document. +% allowing the use of a custom \brand{MathJax} script, such as for a local repository, +% or different \brand{MathJax} script files to be used for different sections of the document. % % \changes{v0.70}{2019/03/24}{Added.} % \begin{macrocode} @@ -21774,7 +23598,7 @@ end -- not --version % \end{macro} % \begin{macro}{\MathJaxFilename} \marg{filename} \qquad -% Assigns the MathJax script file to be used by the following \HTML\ pages. +% Assigns the \brand{MathJax} script file to be used by the following \HTML\ pages. % % \changes{v0.70}{2019/03/24}{Added.} % \begin{macrocode} @@ -22198,7 +24022,7 @@ end -- not --version % \changes{v0.48}{2018/02/11}{Removed \cs{itshape}.} % \begin{macrocode} \AtBeginDocument{ -\def\thempfootnote{\@alph\c@mpfootnote} + \def\thempfootnote{\@alph\c@mpfootnote} } % \end{macrocode} % \end{macro} @@ -22440,6 +24264,7 @@ end -- not --version \begin{warpHTML} % \end{macrocode} + % \begin{macro}{\LWR@thisfilename} % The currently-active filename or number. % At first, this is the homepage. @@ -22513,6 +24338,27 @@ end -- not --version % \end{macro} +% \begin{macro}{\LWR@avoiddupfilenames} \qquad +% Instructions for how to avoid duplicate filenames. +% This is used in a warning in \cs{LWR@filenamenoblanks}, +% and in an error in \cs{LWR@newhtmlfile}. +% \begin{macrocode} +\newcommand*{\LWR@avoiddupfilenames}{% + To avoid duplicate filenames, use the optional\MessageBreak + short Table of Contents entry:\MessageBreak + \space\space\protect\section[Unique name, no math]{Name with math}% + \MessageBreak + or use \protect\texorpdfstring, from the hyperref package:\MessageBreak + \space\space% + \protect\section{\MessageBreak + \space\space\space\space\protect\texorpdfstring\MessageBreak + \space\space\space\space\space\space% + {Name with math}{Unique name, no math}\MessageBreak + \space\space} +} +% \end{macrocode} +% \end{macro} + % \begin{macro}{\LWR@filenamenoblanks} \marg{filename} % @@ -22539,6 +24385,7 @@ end -- not --version % \begin{macrocode} \edef\LWR@thisnewfilename{#1}% % \end{macrocode} +% % Replaces common macros with hyphens. % (\cs{\&} is done by \cs{LWR@nullfonts}.) % \begin{macrocode} @@ -22555,6 +24402,31 @@ end -- not --version % \begin{macrocode} \edef\LWR@thisnewfilename{\detokenize\expandafter{\LWR@thisnewfilename}}% % \end{macrocode} +% +% Warn if there is dollar math in the section name: +% \begin{macrocode} +\ifbool{FileSectionNames}{% + \IfSubStr{\LWR@thisnewfilename}{\LWRdollar}{% + \PackageWarning{lwarp} + {% + This section name:\MessageBreak + \space\space``\detokenize\expandafter{#1}''\MessageBreak + at the line number listed below,\MessageBreak + is using $dollar-delimited math$, + which generates\MessageBreak + complicated file names. It is better to use\MessageBreak + \space\space% + \protect\section{Name with \protect\(parenthesis math\protect\)}% + \MessageBreak + The math then will be removed from the file name.\MessageBreak + \MessageBreak + \LWR@avoiddupfilenames% + \MessageBreak + This section is found before or% + } + }{}% +}{} +% \end{macrocode} % \begin{macrocode} \LWR@traceinfo{LWR@filenamenoblanks edef: !\LWR@thisnewfilename!}% \fullexpandarg% @@ -22564,12 +24436,16 @@ end -- not --version \LWR@simplifyname*{ } % \end{macrocode} % Convert punctutation into hyphens: +% \changes{v0.86}{2020/05/04}{Fix: \filenm{*}, \filenm{(}, \filenm{)}, \filenm{.} in filename.} % \begin{macrocode} +\LWR@simplifyname*{*} +\LWR@simplifyname*{(} +\LWR@simplifyname*{)} +\LWR@simplifyname*{.} \LWR@simplifyname*{!} \LWR@simplifyname*{,} \LWR@simplifyname*{'} \LWR@simplifyname*{+} -\LWR@simplifyname*{,} \LWR@simplifyname*{/} \LWR@simplifyname*{:} \LWR@simplifyname*{;} @@ -22631,28 +24507,31 @@ end -- not --version % \begin{macrocode} \LWR@simplifycustom% % \end{macrocode} -% Convert multiple hyphens: -% \begin{macrocode} -\LWR@simplifyname*{-----} -\LWR@simplifyname*{----} -\LWR@simplifyname*{---} -\LWR@simplifyname*{--} -% \end{macrocode} +% % If pdf\LaTeX\ and not \optn{utf8} encoding, don't try to convert emdash, endash: % \changes{v0.52}{2018/04/01}{Fix: \cs{FileDepth} with non-utf8 encoding.} +% \changes{v0.84}{2020/04/21}{Fix: Dashes in filename.} % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex \ifdefstring{\inputencodingname}{utf8}{% -\LWR@simplifyname*{—} + \LWR@simplifyname*{—} % emdash -\LWR@simplifyname*{–} + \LWR@simplifyname*{–} % endash }{}% \else% not PDFTeX -\LWR@simplifyname*{—} -\LWR@simplifyname*{–} + \LWR@simplifyname*{—} + \LWR@simplifyname*{–} \fi% % \end{macrocode} +% +% Convert multiple hyphens: +% \begin{macrocode} +\LWR@simplifyname*{-----} +\LWR@simplifyname*{----} +\LWR@simplifyname*{---} +\LWR@simplifyname*{--} +% \end{macrocode} % If starts with a dash, remove the leading dash: % \begin{macrocode} \IfBeginWith{\LWR@thisnewfilename}{\detokenize{-}}{% @@ -22726,7 +24605,7 @@ end -- not --version % % Replaces strings inside \cs{tmpb}. % -% Modified from the original by \textsc{Petr Olsak}, from the \pkg{opmac} package. +% Modified from the original, by \textsc{Petr Olsak}, from the \pkg{opmac} package. % % \changes{v0.81}{2020/02/24}{Added.} % \begin{macrocode} @@ -22752,6 +24631,16 @@ end -- not --version % \end{macrocode} % \end{macro} +% \DescribeBoolean{LWR@MathJax@silentquotes} +% If true, double quotes (\cs{"} and |"|) are removed (used for \pkg{mathspec}). +% This unfortunately includes double quotes used inside \cs{text} with \brand{MathJax}. +% If false, double quotes are escaped. +% \begin{macrocode} +\newbool{LWR@MathJax@silentquotes} +\boolfalse{LWR@MathJax@silentquotes} +% \end{macrocode} + + % \begin{macro}{\LWR@subHTMLsanitize} % @@ -22775,11 +24664,21 @@ end -- not --version \LWR@replacestrings{<}{<}% \LWR@replacestrings{>}{>}% % \end{macrocode} -% The double quote occasionally causes problems. +% The quotes occasionally causes problems. +% For \pkg{mathspec}, also allow neutralization of \cs{"} and the |"| character. +% \changes{v0.891}{2020/09/09}{Neutralized single quotes.} +% \changes{v0.893}{2020/11/22}{Optionally neutralized single quotes.} % \begin{macrocode} - \LWR@replacestrings{"}{"}% + \ifbool{LWR@MathJax@silentquotes} + {% + \expandafter\LWR@replacestrings\expandafter{\LWRbackslash"}{}% + \LWR@replacestrings{"}{}% + }% + {\LWR@replacestrings{"}{"}}% + \LWR@replacestrings{'}{'}% + \LWR@replacestrings{`}{`}% % \end{macrocode} -% MathJax allows expressions to be defined with \cs{newcommand}. +% \brand{MathJax} allows expressions to be defined with \cs{newcommand}. % These expressions would appear with |##| for each argument, % and each must be changed to a single |#|. % This must be done after all the above changes. @@ -22803,10 +24702,8 @@ end -- not --version % and fully expand the strings: % \begin{macrocode} \begingroup% - \LWR@FBcancel% - \fullexpandarg% - \protect\StrSubstitute{\detokenize{#1}}% - {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]% + \LWR@hook@processingtags% + \edef\LWR@strresult{\detokenize{#1}}% \LWR@subHTMLsanitize% \LWR@strresult% \endgroup% @@ -22818,25 +24715,50 @@ end -- not --version % \begin{macro}{\LWR@HTMLsanitizeexpand} \marg{text} % % This version expands the argument before sanitizing it. +% This is only used for adding math to \brand{MathJax} expressions or +% \env{lateximage} \attribute{alt} tags. % % \changes{v0.36}{2017/08/16}{Fix for \pkg{babel-french}.} % \changes{v0.51}{2018/03/07}{Fix: Escapes double quotes.} -% \changes{v0.79}{2020/01/27}{Fix: \cs{\&}.} +% ^^A \changes{v0.79}{2020/01/27}{Fix: \cs{\&}.} +% \changes{v0.89}{2020/08/08}{Fix: Nested \brand{MathJax} environments.} +% ^^A *88* % \begin{macrocode} +\edef\LWR@beginspaceleftbrace{begin \LWRleftbrace} +\edef\LWR@beginspaceleftbrace{\detokenize\expandafter{\LWR@beginspaceleftbrace}} +\edef\LWR@beginleftbrace{begin\LWRleftbrace} +\edef\LWR@beginleftbrace{\detokenize\expandafter{\LWR@beginleftbrace}} + +\edef\LWR@endspacerightbrace{end \LWRrightbrace} +\edef\LWR@endspacerightbrace{\detokenize\expandafter{\LWR@endspacerightbrace}} +\edef\LWR@endrightbrace{end\LWRrightbrace} +\edef\LWR@endrightbrace{\detokenize\expandafter{\LWR@endrightbrace}} + \newrobustcmd{\LWR@HTMLsanitizeexpand}[1]{% % \end{macrocode} % Cancel French \pkg{babel} character handling, % and fully expand the strings: % \begin{macrocode} \begingroup% - \LWR@FBcancel% - \fullexpandarg% + \LWR@hook@processingtags% % \end{macrocode} % The difference between this and \cs{LWR@HTMLsanitize} (without ``expand'') % is the following \cs{expandafter}: % \begin{macrocode} - \protect\StrSubstitute{\detokenize\expandafter{#1}}% - {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]% + \edef\LWR@strresult{\detokenize\expandafter{#1}}% +% \end{macrocode} +% The math expression may includes spaces between tokens, +% but \brand{MathJax} does not want a space between \cs{begin} or \cs{end} +% and the following brace. +% This space is removed here. +% ^^A *88* +% \begin{macrocode} + \protect\StrSubstitute{\LWR@strresult}% + {\LWR@beginspaceleftbrace}{\LWR@beginleftbrace}[\LWR@strresult]% + \protect\StrSubstitute{\LWR@strresult}% + {\LWR@endspacerightbrace}{\LWR@endrightbrace}[\LWR@strresult]% +% \end{macrocode} +% \begin{macrocode} \LWR@subHTMLsanitize% \LWR@strresult% \endgroup% @@ -22869,10 +24791,8 @@ end -- not --version % \begin{macrocode} \newcommand*{\LWR@subcustomizedmathjax}[1]{% \begingroup% - \LWR@FBcancel% - \fullexpandarg% - \protect\StrSubstitute{\detokenize{#1}}% - {\detokenize{\&}}{\detokenize{&}}[\LWR@strresult]% + \LWR@hook@processingtags% + \edef\LWR@strresult{\detokenize{#1}}% \LWR@subHTMLsanitize% \xdef\LWR@customizedMathJax{% \LWR@customizedMathJax% @@ -22898,8 +24818,8 @@ end -- not --version \newcommand*{\CustomizeMathJax}[1]{% \ifbool{LWR@warnedcustomizemathjax}{}{% \StrLen{\detokenize{#1}}[\LWR@tempone]% - \ifnumgreater{\LWR@tempone}{200}{% - \AtBeginDocument{% + \ifnumgreater{\LWR@tempone}{350}{% + \AtEndDocument{% \PackageWarningNoLine{lwarp}{% To ensure faster MathJax compilation, place each\MessageBreak custom macro in its own \protect\CustomizeMathJax.\MessageBreak @@ -22931,7 +24851,8 @@ end -- not --version % \end{macrocode} % \end{macro} -% + +% ^^A *mathjax customizations % Default customizations: % \margintag{defaults} % @@ -22945,6 +24866,8 @@ end -- not --version % \changes{v0.51}{2018/03/18}{\brand{MathJax}: Nullifies \cs{ensuremath}.} % \changes{v0.57}{2018/05/24}{\brand{MathJax}: Supports \cs{footnote}, \cs{footnotemark}.} % \changes{v0.79}{2020/01/24}{\brand{MathJax}: Additional macros.} +% \changes{v0.893}{2020/10/14}{\brand{MathJax}: Added \cs{mathnormal}.} +% \changes{v0.894}{2020/12/22}{\brand{MathJax}: Added \cs{arabic}, \cs{number}, \cs{noalign}.} % % For footnotes, \cs{footnotename} is used in most cases, however % for \env{equation} the footnote is picked up from \LaTeX in \cs{LWR@doendequation}. @@ -22975,11 +24898,18 @@ end -- not --version \CustomizeMathJax{\def\LWRfootnote{1}} \CustomizeMathJax{\newcommand{\footnote}[2][\LWRfootnote]{{}^{\mathrm{#1}}}} \CustomizeMathJax{\newcommand{\footnotemark}[1][\LWRfootnote]{{}^{\mathrm{#1}}}} -\end{warpMathJax} % \end{macrocode} - +% +% \cs{hspace} is modified to accept and ignore a star: +% \changes{v0.894}{2020/12/21}{\brand{MathJax}: Accept starred \cs{hspace}.} % \begin{macrocode} -\begin{warpMathJax} +\CustomizeMathJax{\let\LWRorighspace\hspace} +\CustomizeMathJax{\renewcommand{\hspace}{\ifstar\LWRorighspace\LWRorighspace}} +% \end{macrocode} +% +% Various other customizations: +% \begin{macrocode} +\CustomizeMathJax{\newcommand{\mathnormal}[1]{{#1}}} \CustomizeMathJax{\newcommand\ensuremath[1]{#1}} \CustomizeMathJax{% absorb two optional arguments \newcommand{\LWRframebox}[2][]{\fbox{#2}} @@ -22989,9 +24919,28 @@ end -- not --version \CustomizeMathJax{\newcommand{\addtolength}[2]{}} \CustomizeMathJax{\newcommand{\setcounter}[2]{}} \CustomizeMathJax{\newcommand{\addtocounter}[2]{}} +\CustomizeMathJax{\newcommand{\arabic}[1]{}} +\CustomizeMathJax{\newcommand{\number}[1]{}} +\CustomizeMathJax{\newcommand{\noalign}[1]{\text{#1}\notag \\}} \CustomizeMathJax{\newcommand{\cline}[1]{}} \CustomizeMathJax{\newcommand{\directlua}[1]{\text{(directlua)}}} \CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}} +% \end{macrocode} +% +% \cs{protect}, \cs{mathchar}, and \cs{delimiter} are silently discarded; and +% \cs{mathcode} and \cs{delcode} are ignored. +% \changes{v0.89}{2020/07/27}{mathjax=\brand{MathJax}: Added \cs{protect}, and +% \cs{mathcode} and related.} +% \begin{macrocode} +\CustomizeMathJax{\newcommand{\protect}{}} +\CustomizeMathJax{\def\LWRabsorbnumber#1 {}} +\CustomizeMathJax{\def\LWRabsorbquotenumber"#1 {}} +\CustomizeMathJax{\newcommand{\LWRabsorboption}[1][]{}} +\CustomizeMathJax{\newcommand{\LWRabsorbtwooptions}[1][]{\LWRabsorboption}} +\CustomizeMathJax{\def\mathchar{\ifnextchar"\LWRabsorbquotenumber\LWRabsorbnumber}} +\CustomizeMathJax{\def\mathcode#1={\mathchar}} +\CustomizeMathJax{\let\delcode\mathcode} +\CustomizeMathJax{\let\delimiter\mathchar} \end{warpMathJax} \begin{warpHTML}% due to warpMathJax @@ -22999,7 +24948,7 @@ end -- not --version % \begin{macro}{\LWR@customizeMathJax} -% Prints MathJax commands to the \HTML\ output. +% Prints \brand{MathJax} commands to the \HTML\ output. % % \changes{v0.79}{2020/01/28}{MathJax: Hide definitions.} % \begin{macrocode} @@ -23011,16 +24960,19 @@ end -- not --version \LWR@stoppars \LWR@htmlcomment{MathJax customizations:} -\typeout{---} -\typeout{Package lwarp:} -\typeout{Processing MathJax customizations. If this takes too long,} -\typeout{see the Lwarp manual regarding customizing MathJax.} \begin{BlockClass}{hidden} \LWR@stoppars -\LWR@customizedMathJax +% \end{macrocode} +% +% Avoid ligatures while printing \brand{MathJax} customizations: +% \changes{v0.89}{2020/08/02}{Print \brand{MathJax} customizations with typewriter font.} +% \begin{macrocode} +{ + \LWR@print@ttfamily + \LWR@customizedMathJax +} \LWR@startpars \end{BlockClass} -\typeout{---} \LWR@startpars }{} @@ -23122,6 +25074,34 @@ end -- not --version \begin{warpHTML} % \end{macrocode} + +% \begin{macro}{\LWR@createfooter} If specified, create the first or later web page footer. +% \changes{v0.73}{2019/06/23}{Fix: Empty header/footer.} +% \changes{v0.84}{2020/04/24}{Added \cs{FirstPageBottom}.} +% \begin{macrocode} +\newcommand*{\LWR@createfooter}{% + \ifnumless{\value{LWR@htmlseqfilenumber}}{1}{% + \ifdefempty{\LWR@firstpagebottom}{}{% + \LWR@htmlelement{footer} + + \LWR@firstpagebottom + + \LWR@htmlelementend{footer} + }% + }{% + \ifdefempty{\LWR@pagebottom}{}{% + \LWR@htmlelement{footer} + + \LWR@pagebottom + + \LWR@htmlelementend{footer} + }% + }% +} +% \end{macrocode} +% \end{macro} + + % \begin{macro}{\LWR@newhtmlfile} \marg{section name} % \changes{v0.18}{2016/04/23}{side\TOC\ after title, improving responsive design.} % \changes{v0.21}{2017/02/22}{Skip title if not given.} @@ -23151,20 +25131,7 @@ end -- not --version % % No footer between files if \EPUB: % \begin{macrocode} -\ifbool{FormatEPUB} -{} -{ -% \end{macrocode} -% \changes{v0.73}{2019/06/23}{Fix: Empty header/footer.} -% \begin{macrocode} - \ifdefempty{\LWR@pagebottom}{}{% - \LWR@htmlelement{footer} - - \LWR@pagebottom - - \LWR@htmlelementend{footer} - } -} +\ifbool{FormatEPUB}{}{\LWR@createfooter} % \end{macrocode} % % @@ -23182,9 +25149,12 @@ end -- not --version \LWR@htmltag{/body}\LWR@orignewline \LWR@htmltag{/html}\LWR@orignewline \LWR@traceinfo{LWR@newhtmlfile: about to LWR@orignewpage} -\LWR@orignewpage - +\LWR@maybe@orignewpage +% \end{macrocode} +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} \addtocounter{LWR@htmlfilenumber}{1}% +\addtocounter{LWR@htmlseqfilenumber}{1}% % \end{macrocode} % % @@ -23221,23 +25191,25 @@ end -- not --version % \end{macrocode} % If the filename is not unique, create an error. % \begin{macrocode} - \PackageError{lwarp} + \PackageError{lwarp}% {% - Section name\MessageBreak + The section name:\MessageBreak ``#1'',\MessageBreak at the line number listed below,\MessageBreak generates the filename\MessageBreak ``\LWR@thisfilename'',\MessageBreak - which appears to be a duplicate.\MessageBreak - There is a previous section with an\MessageBreak - identical or similar name% - } + which appears to be a duplicate. There is a\MessageBreak + previous section with an identical or similar name.\MessageBreak + While generating file names, Lwarp sanitizes math,\MessageBreak + most symbols, and a few common short words,\MessageBreak + and this may cause a conflict.\MessageBreak + Enter 'H' for possible solutions% + }% {% - Lwarp sanitizes most symbols and a few common short words - when generating file names, and this may cause a conflict. - } - } -} + \LWR@avoiddupfilenames% + }% + }% +}% % \end{macrocode} % If using file numbers instead of names, the name is set to the next file number. % \begin{macrocode} @@ -23250,7 +25222,7 @@ end -- not --version % Uses pipe-separated fields for |split_html.gawk|. % Uses monospaced font with ligatures disabled for everything except the title. % -% \changes{v0.50}{2018/02/20}{Fix: SVG math in a section name.} +% \changes{v0.50}{2018/02/20}{Fix: \SVG\ math in a section name.} % \begin{macrocode} \LWR@traceinfo{LWR@newhtmlfile: about to print start file}% % \end{macrocode} @@ -23278,7 +25250,7 @@ end -- not --version % \end{macrocode} % -% Track the page numbers: +% Track the \PDF\ page numbers of the \HTML\ output: % \changes{v0.48}{2018/02/11}{Fix: \TOC, \LOF, \LOT\ links.} % \begin{macrocode} \setcounter{LWR@latestautopage}{\value{page}}% @@ -23332,10 +25304,17 @@ end -- not --version % % Start of the \element{textbody}: % \changes{v0.65}{2018/12/18}{Improved \CSS\ for page layout.} +% \changes{v0.84}{2020/04/24}{Added prev/next links.} % \begin{macrocode} \LWR@htmlelementclass{div}{bodycontainer} \LWR@htmlelementclass{section}{textbody} - +% \end{macrocode} +% +% Not yet found a new section in this file. +% Once one is found, a label will be placed for +% previous/next links. +% \begin{macrocode} +\boolfalse{LWR@setseqfilelabel} % \end{macrocode} % % @@ -23396,18 +25375,24 @@ end -- not --version % \prog{pdflatex} to generate characters and \prog{pdftotext} to read them. % If extra symbols appear in the text, % \trouble[accents in filenames]{filename>accents} +% \trouble{accents>file names} % \trouble{sectioning>accents} % \gindex{filename>accent in} % \gindex{accents>in section \& file names} % it may be that \prog{pdflatex} is actually producing a symbol over or under a % character, resulting in \prog{pdftotext} picking up the accent symbol separately. % -% \XeLaTeX{} and \LuaLaTeX{} directly support accented section and file names. +% \XeLaTeX{} and \LuaLaTeX{} directly support accented section and file names, % \gindex{accents>in section \& file names} % \gindex{Unicode>file \& section names} % \gindex{UTF-8>file \& section names} % \gindex{Xe\LaTeX>file \& section names} % \gindex{Lua\LaTeX>file \& section names} +% but it may be necessary to use \LaTeX\ accents instead of +% native Unicode accents. \LaTeX\ accents will have the accents stripped +% when creating file names, whereas using Unicode accents will create filenames +% which include accents, which may cause issues with some operating systems. +% % % % \codehtml @@ -23541,6 +25526,10 @@ end -- not --version % \begin{macro}{\LWR@createautosec} \marg{section type} % % Create an autosection tag. +% +% The use of \cs{textquotedbl} instead of |"| provides improved +% compatibility with \pkg{xeCJK}. +% % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} % \changes{v0.63}{2018/11/24}{Fix for \pkg{xeCJK}.} % \begin{macrocode} @@ -23663,10 +25652,23 @@ end -- not --version % % % +% \begin{macro}{\LWR@printchaptername} +% Print \cs{chaptername} in most cases, +% but this is nullified for \pkg{ctexbook}, \pkg{komascript}, \pkg{ujt*} classes. +% \changes{v0.88}{2020/06/20}{Conditionally print \cs{chaptername}.} +% \begin{macrocode} +\newcommand*{\LWR@printchaptername}{% + \ifdefvoid{\chaptername}{}{\chaptername~}% +} +% \end{macrocode} +% \end{macro} +% +% % \DescribeCounter{LWR@currentautosec} Records the page number when the section -% was created. If a math expression is included in the section name, -% and SVG math is used, the corresponding \env{lateximage} will cause the -% page number to change by the time the following autosec label is created. +% was created. (If a math expression is included in the section name, +% and \SVG\ math is used, the corresponding \env{lateximage} will cause the +% page number to change by the time the following autosec label is created, +% thus the initial page number is recorded here.) % \changes{v0.43}{2017/11/01}{\ctr{LWR@currentautosec}: Added.} % \changes{v0.66}{2019/01/28}{\ctr{LWR@currentautosec}: Fix for \LOF, \LOT float in home page.} % \begin{macrocode} @@ -23689,6 +25691,13 @@ end -- not --version \IfValueTF{#2}% {\LWR@traceinfo{LWR@section: starting #4 #2}}% {\LWR@traceinfo{LWR@section: starting #4 #3}}% +% \end{macrocode} +% Warn if starting a section inside a \element{span}: +% \changes{v0.84}{2020/04/22}{Warn inside a \element{span}.} +% \begin{macrocode} + \LWR@spanwarninvalid{section}% +% \end{macrocode} +% \begin{macrocode} \LWR@maybeprintpendingfootnotes{\csuse{LWR@depth#4}}% \LWR@stoppars% \LWR@startnewdepth{#4}% @@ -23757,10 +25766,11 @@ end -- not --version % Generate a new \LaTeX\ page so that \TOC\ and index page number points to the section: % \begin{macrocode} \LWR@traceinfo{LWR@section: not a new HTML file, about to LWR@orignewpage}% - \LWR@orignewpage% + \LWR@maybe@orignewpage% }% not new file % \end{macrocode} +% % Remember this section's name for \cs{nameref}: % \begin{macrocode} \IfValueT{#3}{% @@ -23768,6 +25778,7 @@ end -- not --version \IfValueTF{#2}{\LWR@setlatestname{#2}}{\LWR@setlatestname{#3}}% }% % \end{macrocode} +% % Print an opening comment with the level and the name; % ex: ``section'' ``Introduction'' % Footnotes may be used in section names, which would also appear in the @@ -23791,6 +25802,7 @@ end -- not --version \endgroup% }{} % \end{macrocode} +% % For inline sections paragraph and subparagraph, start a new paragraph now: % \begin{macrocode} \ifthenelse{% @@ -23799,6 +25811,7 @@ end -- not --version {\LWR@startpars}% {}% % \end{macrocode} +% % Create the opening tag with an autosec: % \begin{macrocode} \LWR@traceinfo{LWR@section: about to LWR@createautosec}% @@ -23808,12 +25821,14 @@ end -- not --version % \begin{macrocode} \setcounter{LWR@currentautosec}{\value{page}}% % \end{macrocode} +% % Check if starred: % \begin{macrocode} \IfBooleanTF{#1}% {% \LWR@traceinfo{LWR@section: starred}% % \end{macrocode} +% % Starred, but also forcing a \TOC\ entry, so % add unnumbered \TOC\ name or regular name: % \begin{macrocode} @@ -23826,10 +25841,12 @@ end -- not --version {}% }% starred % \end{macrocode} +% % Not starred, so step counter and add to \TOC: % \begin{macrocode} {% not starred % \end{macrocode} +% % Only add a numbered \TOC\ entry if section number is not too deep: % \begin{macrocode} \ifthenelse{% @@ -23837,6 +25854,7 @@ end -- not --version }% {% if secnumdepth % \end{macrocode} +% % If in the main matter, step the counter and add the \TOC\ entry. % For |article| class, \pkg{lwarp} assumes that all is mainmatter. % \begin{macrocode} @@ -23846,6 +25864,7 @@ end -- not --version \LWR@traceinfo{LWR@section: yes mainmatter}% \refstepcounter{#4}% % \end{macrocode} +% % Add main matter numbered \TOC\ entry with the \TOC\ name or the regular name: % \changes{v0.64}{2018/12/07}{Support for \pkg{ujarticle and related.}} % \begin{macrocode} @@ -23865,6 +25884,7 @@ end -- not --version \LWR@traceinfo{LWR@section: finished addcontentsline}% }% end of if main matter % \end{macrocode} +% % If not main matter, add unnumbered \TOC\ name or regular name: % \begin{macrocode} {% not main matter @@ -23875,6 +25895,7 @@ end -- not --version }% end of not main matter }% end of secnumdepth % \end{macrocode} +% % Deeper than secnumdepth, so add an unnumbered \TOC\ entry: % \begin{macrocode} {% @@ -23883,6 +25904,7 @@ end -- not --version }% }% % \end{macrocode} +% % For part, print ``Part'': % \begin{macrocode} \ifbool{LWR@mainmatter}% @@ -23895,6 +25917,7 @@ end -- not --version {\@partnameformat}% {}% % \end{macrocode} +% % Print the section number: % \begin{macrocode} \LWR@traceinfo{LWR@section: about to print section number}% @@ -23906,14 +25929,20 @@ end -- not --version {\protect\LWR@sectionnumber{\@partcntformat{#4}}}% {% \ifstrequal{#4}{chapter}% - {\protect\LWR@sectionnumber{\@chapcntformat{#4}}}% + {% +% \end{macrocode} +% \changes{v0.88}{2020/06/20}{Conditionally print \cs{chaptername}.} +% \begin{macrocode} + \LWR@printchaptername% + \protect\LWR@sectionnumber{\@chapcntformat{#4}}% + }% {\protect\LWR@sectionnumber{\@seccntformat{#4}}}% }% }% {}% \LWR@traceinfo{LWR@section: finished print section number}% }{}% -}% end of not starred +}% not starred % \end{macrocode} % Print the section name: % \begin{macrocode} @@ -23927,7 +25956,11 @@ end -- not --version \LWR@htmltag{\@nameuse{LWR@tag#4end}}% \LWR@orignewline% % \end{macrocode} -% Generate a \LaTeX{} label: +% +% Generate a \LaTeX{} label. +% +% Track the \PDF\ page numbers of the \HTML\ output. +% % \changes{v0.43}{2017/11/01}{Fix: Math in section name.} % \changes{v0.48}{2018/02/11}{Fix: \TOC, \LOF, \LOT\ links.} % \changes{v0.66}{2019/01/28}{Fix: \TOC, \LOF, \LOT\ links.} @@ -23937,6 +25970,18 @@ end -- not --version \setcounter{LWR@latestautopage}{\value{page}}% \LWR@newautopagelabel{LWR@currentautosec}\LWR@orignewline% % \end{macrocode} +% +% If this is the first section found in this file, +% create a label for prevous/next links: +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\ifbool{LWR@setseqfilelabel}{}{% + \label{\BaseJobname-autofile-\arabic{LWR@htmlseqfilenumber}}% + \booltrue{LWR@setseqfilelabel}% +}% +% \end{macrocode} +% +% % Start paragraph handing unless is an inline paragraph or subparagraph: % \begin{macrocode} \ifthenelse{% @@ -24190,7 +26235,7 @@ end -- not --version \newcommand*{\LWR@currentHTMLLanguage}{en-US} \newcommand*{\HTMLLanguage}[1]{% -\renewcommand*{\LWR@currentHTMLLanguage}{#1}% + \renewcommand*{\LWR@currentHTMLLanguage}{#1}% } % \end{macrocode} % \end{macro} @@ -24203,18 +26248,19 @@ end -- not --version % \changes{v0.52}{2018/04/01}{Fix: \cs{FileDepth} with non-utf8 encoding.} % \changes{v0.62}{2018/11/02}{Refactored.} % \changes{v0.64}{2018/12/07}{Added \pkg{utarticle} and related.} +% \changes{v0.84}{2020/04/21}{Improved spacing for \pkg{xeCJK}.} % \begin{macrocode} \ifPDFTeX% pdflatex or dvi latex \ifdefstring{\inputencodingname}{utf8}{% - \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash + \newcommand*{\theHTMLTitleSeparator}{ —\ }% EMdash }{% - \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen + \newcommand*{\theHTMLTitleSeparator}{ -\ }% hyphen }% \else% \ifpTeX - \newcommand*{\theHTMLTitleSeparator}{ - }% hyphen + \newcommand*{\theHTMLTitleSeparator}{ -\ }% hyphen \else - \newcommand*{\theHTMLTitleSeparator}{ — }% EMdash + \newcommand*{\theHTMLTitleSeparator}{ —\ }% EMdash \fi% \fi% % \end{macrocode} @@ -24280,7 +26326,7 @@ end -- not --version % \end{macrocode} -% \begin{macro}{\LWR@filestart} \oarg{sectionname} \qquad +% \begin{macro}{\LWR@filestart} \oarg{section name} \qquad % Creates the opening \HTML\ tags. % \changes{v0.19}{2016/05/25}{lwarp\_mathjax.txt loaded.} % \changes{v0.20}{2016/06/27}{Adds meta description.} @@ -24291,30 +26337,57 @@ end -- not --version \newcommand*{\LWR@filestart}[1][]{% \LWR@traceinfo{LWR@filestart !#1!}% % \end{macrocode} +% % Locally temporarily disable direct-formatting commands: % \begin{macrocode} \begingroup% \LWR@nullfonts% % \end{macrocode} +% % Save the section name for use while creating the % \HTML\ meta \attribute{title} tag: % \begin{macrocode} \edef\theHTMLSection{#1}% % \end{macrocode} +% +% Remove extra material: +% \changes{v0.84}{2020/04/12}{Improved \HTML\ title.} +% \begin{macrocode} +\StrSubstitute{\theHTMLSection}{\protect}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{-----}}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{----}}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{---}}{\detokenize{-}}[\theHTMLSection] +\StrSubstitute{\theHTMLSection}{\detokenize{--}}{\detokenize{-}}[\theHTMLSection] +% \end{macrocode} +% +% If starts with a dash, remove the leading dash: +% \begin{macrocode} +\IfBeginWith{\theHTMLSection}{\detokenize{-}}{% + \StrGobbleLeft{\theHTMLSection}{1}[\theHTMLSection]% +}{}% +% \end{macrocode} +% % Create the page's \HTML\ header: % \begin{macrocode} \LWR@htmltag{!DOCTYPE html}\LWR@orignewline % \end{macrocode} +% % The language is user-adjustable: +% +% NOTE: \cs{LWR@orig@textquotedbl} is used here because \cs{textquotedbl} is +% nullified by \cs{LWR@nullfonts} while starting the new file. +% % \begin{macrocode} \LWR@htmltag{% html lang=\LWR@orig@textquotedbl\LWR@currentHTMLLanguage\LWR@orig@textquotedbl% }\LWR@orignewline % \end{macrocode} +% % Start of the meta data: % \begin{macrocode} \LWR@htmltag{head}\LWR@orignewline % \end{macrocode} +% % Charset is fixed at UTF-8: % \begin{macrocode} \LWR@htmltag{% @@ -24355,6 +26428,7 @@ end -- not --version }\LWR@orignewline }% % \end{macrocode} +% % Mobile-friendly viewport: % \gindex{HTML>meta tag>viewport} % \gindex{viewport>HTML meta tag} @@ -24366,6 +26440,7 @@ end -- not --version content=\LWR@orig@textquotedbl{}width=device-width, initial-scale=1.0\LWR@orig@textquotedbl\ /% }\LWR@orignewline % \end{macrocode} +% % IE patch: % \changes{v0.63}{2018/11/30}{Fix: Break ligature for \pkg{luatexko}.} % \begin{macrocode} @@ -24379,6 +26454,7 @@ end -- not --version \LWR@htmltag{/script}\LWR@orignewline \LWR@htmltag{![endif]-\/-}\LWR@orignewline % \end{macrocode} +% % The page's title, if there is one. % A section name is also added if given. % \changes{v0.44}{2017/11/18}{Add \cs{HTMLTitle}.} @@ -24394,6 +26470,7 @@ end -- not --version \LWR@htmltag{/title}\LWR@orignewline% }% % \end{macrocode} +% % The page's stylesheet: % \begin{macrocode} \LWR@htmltag{% @@ -24404,6 +26481,7 @@ end -- not --version }% \LWR@orignewline % \end{macrocode} +% % Optional \brand{MathJax} support. The \HTML\ tags must be turned off % during the verbatim input, and the paragraph handling which was % turned on at the end of verbatim input must be immediately turned off @@ -24418,8 +26496,19 @@ end -- not --version % ^^A \ifbool{mathKaTeX}{% % ^^A \verbatiminput{lwarp_KaTeX.txt}% % ^^A }{% +% \changes{v0.86}{2020/05/03}{Error if missing file.} % \begin{macrocode} - \verbatiminput{\LWR@mathjaxfilename}% + \IfFileExists{\LWR@mathjaxfilename}% + {\verbatiminput{\LWR@mathjaxfilename}}% + {% + \PackageError{lwarp}% + {% + \protect\MathJaxFilename\space specified the file\MessageBreak + \space\space\LWR@mathjaxfilename\MessageBreak + which does not exist% + }% + {Specify an existing file, or remove \protect\MathJaxFilename.}% + }% % \end{macrocode} % ^^A }% % \begin{macrocode} @@ -24429,10 +26518,12 @@ end -- not --version }% end of mathjax {}% % \end{macrocode} +% % End of the header: % \begin{macrocode} \LWR@htmltag{/head}\LWR@orignewline % \end{macrocode} +% % Start of the body: % \begin{macrocode} \LWR@htmltag{body}\LWR@orignewline @@ -24546,23 +26637,13 @@ end -- not --version \let\LWR@origcaption\caption % \end{macrocode} % -% Labels: -% \cs{ltx@label} is used in \pkg{amsmath} environments and is also -% patched by \pkg{cleveref}. -% \gindex{label>in HTML} -% \margintag{Label in \HTML} -% \changes{v0.20}{2017/01/30}{Fix: math cross references.} -% \begin{macrocode} -\let\LWR@origltx@label\ltx@label -\let\ltx@label\LWR@htmlmathlabel -% \end{macrocode} % Not yet started any paragraph handling: % \begin{macrocode} \global\boolfalse{LWR@doingapar} \global\boolfalse{LWR@doingstartpars} % \end{macrocode} % Document and page settings: -% \changes{v0.45}{2017/12/08}{Fix: Lateximages on incorrect pages with Mathjax.} +% \changes{v0.45}{2017/12/08}{Fix: Lateximages on incorrect pages with \brand{Mathjax}.} % \begin{macrocode} \mainmatter \LWR@origpagenumbering{arabic} @@ -24591,6 +26672,13 @@ end -- not --version \LWR@htmlelementclass{section}{textbody} % \end{macrocode} % +% Create a label for previous/next links, and remember it has been done: +% \changes{v0.84}{2020/04/24}{Added prev/next links.} +% \begin{macrocode} +\booltrue{LWR@setseqfilelabel}% +\label{\BaseJobname-autofile-\arabic{LWR@htmlseqfilenumber}} +% \end{macrocode} +% % Patch the |itemize|, |enumerate|, and |description| environments and \cs{item}. % This works with the native \LaTeX\ environments, as well as % those provided by \pkg{enumitem}, \pkg{enumerate}, and \pkg{paralist}. @@ -24619,8 +26707,22 @@ end -- not --version % disable \cs{ensuremath} by printing a nullified % definition at the start of each file, and add further customizations: % \changes{v0.51}{2018/03/18}{MathJax: Nullifies \cs{ensuremath}.} +% \changes{v0.89}{2020/08/17}{MathJax: Improved info message.} % \begin{macrocode} +\ifbool{mathjax}{ + \typeout{---} + \typeout{Package lwarp:} + \typeout{Processing MathJax customizations for the first HTML page.} + \typeout{Later HTML pages will take the same amount of time.} + \typeout{If this takes too long, see the Lwarp manual regarding customizing MathJax.} +}{} + \LWR@customizeMathJax + +\ifbool{mathjax}{ + \typeout{Done.} + \typeout{---} +}{} % \end{macrocode} % % ^^A % Likewise for Ka\TeX: @@ -24691,7 +26793,9 @@ end -- not --version % Close the textbody: % \changes{v0.65}{2018/12/18}{Improved \CSS\ for page layout.} +% \changes{v0.84}{2020/04/24}{Added prev/next links.} % \begin{macrocode} +\label{\BaseJobname-autofile-last} \LWR@htmlelementclassend{section}{textbody} \LWR@htmlelementclassend{div}{bodycontainer} \LWR@htmlelementclassend{div}{bodyandsidetoc} @@ -24701,17 +26805,10 @@ end -- not --version \LWR@printpendingfootnotes % \end{macrocode} % -% Create the footer: -% -% \changes{v0.73}{2019/06/23}{Fix: Empty header/footer.} +% Create the footer if not \EPUB\: +% \changes{v0.84}{2020/04/24}{Fix: No footer for \EPUB} % \begin{macrocode} -\ifdefempty{\LWR@pagebottom}{}{% - \LWR@htmlelement{footer} - - \LWR@pagebottom - - \LWR@htmlelementend{footer} -} +\ifbool{FormatEPUB}{}{\LWR@createfooter} % \end{macrocode} % No bottom navigation if are finishing the home page, @@ -24735,7 +26832,7 @@ end -- not --version % \end{macrocode} % Seems to be required sometimes: % \begin{macrocode} -\LWR@orignewpage +\LWR@maybe@orignewpage } % \end{macrocode} % \end{macro} @@ -24744,41 +26841,93 @@ end -- not --version % \begin{macro}{\enddocument} % If labels have not changed, mark successful completion -% of the \env{lateximages} file. +% of the \filenm{lateximages.txt} file. % Executed as everything is being shut down. +% +% For the newer kernel hooks, see \cmds{texdoc lthooks-doc} and \cmds{texdoc ltshipout-doc}. % \changes{v0.70}{2019/03/26}{If labels changed, require recompile before making limages.} +% \changes{v0.89}{2020/07/28}{Adapt to \LaTeX\ core changes.} +% \begin{macrocode} +\ifdef{\AddToHook}{% newer kernel + \AddToHook{enddocument/info}{% + \if@filesw + \ifx \@multiplelabels \relax + \if@tempswa +% \end{macrocode} +% This is where warnings of duplicate labels would appear. +% \begin{macrocode} + \else +% \end{macrocode} +% No duplicate labels, so safe to create images. % \begin{macrocode} -\xpatchcmd{\enddocument} - {% - \if@tempswa - \@latex@warning@no@line{Label(s) may have changed. - Rerun to get cross-references right}% - \fi - } - {% - \if@tempswa - \@latex@warning@no@line{Label(s) may have changed. - Rerun to get cross-references right}% - \else \immediate\write\LWR@lateximagesfile{% |end|end|end|% }% - \fi + \fi + \fi\fi } - {} - { - \PackageWarningNoLine{lwarp} +}% newer kernel +{% older kernel + \xpatchcmd{\enddocument} {% - Could not patch \protect\enddocument.\MessageBreak - If labels have changed, be sure to recompile before\MessageBreak - creating lateximages with\MessageBreak - \space\space lwarpmk limages,\MessageBreak - or the images may be corrupt% + \if@tempswa + \@latex@warning@no@line{Label(s) may have changed. + Rerun to get cross-references right}% + \fi } - } + {% + \if@tempswa + \@latex@warning@no@line{Label(s) may have changed. + Rerun to get cross-references right}% + \else +% \end{macrocode} +% No duplicate labels, so safe to create images. +% \begin{macrocode} + \immediate\write\LWR@lateximagesfile{% + |end|end|end|% + }% + \fi + } + {} + { + \AtEndDocument{ + \PackageWarningNoLine{lwarp} + {% + Could not patch \protect\enddocument.\MessageBreak + If labels have changed, be sure to recompile before\MessageBreak + creating lateximages with\MessageBreak + \space\space lwarpmk limages,\MessageBreak + or the images may be corrupt% + } + } + } +}% older kernel % \end{macrocode} % \end{macro} + +% \section{Nullifying foreground \Slash background hooks} +% +% See \cmds{texdoc lthooks-doc} and \cmds{textdoc ltshipout-doc}. +% +% \changes{v0.89}{2020/07/28}{Foreground/background hooks: Adapt to \LaTeX\ core changes.} +% \begin{macrocode} +\ifdef{\RemoveFromHook}{ + \AfterEndPreamble{ + \IfHookEmptyTF{shipout/background}{}{ + \PackageInfo{lwarp}{Removing background hook} + \RemoveFromHook{shipout/background}[*] + } + \IfHookEmptyTF{shipout/foreground}{}{ + \PackageInfo{lwarp}{Removing foreground hook} + \RemoveFromHook{shipout/foreground}[*] + } + } +}{} +% \end{macrocode} + + + % \begin{macrocode} \end{warpHTML} % \end{macrocode} @@ -25010,24 +27159,27 @@ end -- not --version % % \subsection{Printing the thanks} % -% \codeall -% \begin{macrocode} -\begin{warpall} -% \end{macrocode} -% \DescribeMacro{\printthanks} Forces the \cs{thanks} to be printed. -% +% \begin{macro}{\printthanks} Forces the \cs{thanks} to be printed. % This is necessary in a \env{titlingpage} environment % when \cs{maketitle} was not used. -% \changes{v0.73}{2019/06/25}{Fix: Paragraph tags.} -% \begin{macrocode} -\newcommand*{\printthanks}{\LWR@stoppars\@thanks\LWR@startpars} -% \end{macrocode} % +% \changes{v0.84}{2020/03/29}{Fix: \cs{printthanks} in print mode.} % +% \codeprint % \begin{macrocode} -\end{warpall} +\begin{warpprint} +\newcommand*{\printthanks}{\@thanks} +\end{warpprint} % \end{macrocode} +% \changes{v0.73}{2019/06/25}{Fix: Paragraph tags.} +% \codehtml +% \begin{macrocode} +\begin{warpHTML} +\newcommand*{\printthanks}{\LWR@stoppars\@thanks\LWR@startpars} +\end{warpHTML} +% \end{macrocode} +% \end{macro} % \subsection{Printing the title, etc.\ in \HTML} @@ -25250,12 +27402,22 @@ end -- not --version % The original definition used \cs{\textbar} which was not being seen by \prog{pdftotext}. % % \changes{v0.34}{2017/08/07}{Text symbols instead of math.} +% \changes{v0.84}{2020/04/17}{\cs{LWR@formatted}, fixed double bar.} % % \begin{macrocode} -\def\@fnsymbol#1{\ifcase#1\or *\or \HTMLentity{dagger}\or \HTMLentity{Dagger}\or - \HTMLentity{sect}\or \HTMLentity{para}\or \text{\HTMLunicode{2016}}\or - **\or \HTMLentity{dagger}\HTMLentity{dagger} \or - \HTMLentity{Dagger}\HTMLentity{Dagger} \else\@ctrerr\fi} +\def\LWR@HTML@@fnsymbol#1{% + \ifcase#1\or *\or + \HTMLentity{dagger}\or + \HTMLentity{Dagger}\or + \HTMLentity{sect}\or + \HTMLentity{para}\or + \HTMLunicode{2016}\or + **\or + \HTMLentity{dagger}\HTMLentity{dagger} \or + \HTMLentity{Dagger}\HTMLentity{Dagger} \else + \@ctrerr\fi% +} +\LWR@formatted{@fnsymbol} % \end{macrocode} % \end{macro} % @@ -25450,10 +27612,16 @@ end -- not --version }% }% yes titling package {% no titling package - \newcommand{\published}[1]{}% - \newcommand*{\printpublished}{}% - \newcommand{\subtitle}{}% - \newcommand*{\printsubtitle}% +% \end{macrocode} +% \changes{v0.84}{2020/03/28}{Fixed \cs{subtitle}, \cs{printsubtitle} if no \pkg{titling}.} +% \changes{v0.84}{2020/03/28}{Added \cs{subtitle}, \cs{published} for \pkg{koma*}.} +% \begin{macrocode} + \def\@published{}% + \DeclareDocumentCommand{\published}{m}{\gdef\@published{##1}}% + \DeclareDocumentCommand{\printpublished}{}{}% + \def\@subtitle{}% + \DeclareDocumentCommand{\subtitle}{m}{\gdef\@subtitle{##1}}% + \DeclareDocumentCommand{\printsubtitle}{}{}% }% no titling package }% \AddSubtitlePublished % \end{macrocode} @@ -25493,12 +27661,12 @@ end -- not --version % \begin{macrocode} \DeclareDocumentEnvironment{abstract}{O{\abstractname}} { -\LWR@forcenewpage -\BlockClass{abstract} -\BlockClassSingle{abstracttitle}{#1} + \LWR@forcenewpage + \BlockClass{abstract} + \BlockClassSingle{abstracttitle}{#1} } { -\endBlockClass + \endBlockClass } % \end{macrocode} % \end{environment} @@ -25523,31 +27691,34 @@ end -- not --version % Ex: |"A quotation." \attribution{\textsc{Author Name}\\\textsl{Book Title}}| % % \changes{v0.73}{2019/06/25}{Fix: Paragraph tags.} +% \changes{v0.84}{2020/04/14}{Added print mode.} +% +% \codeall +% \begin{macrocode} +\begin{warpall} +\newcommand{\attribution}[1]{ + \begin{flushright} + \unskip + #1 + \end{flushright}% +} +\end{warpall} +% \end{macrocode} +% \end{macro} % % \codehtml % \begin{macrocode} \begin{warpHTML} -\newcommand{\attribution}[1]{% +\newcommand{\LWR@HTML@attribution}[1]{% \LWR@stoppars% \begin{BlockClass}{attribution} #1 \end{BlockClass} \LWR@startpars% } +\LWR@formatted{attribution} \end{warpHTML} % \end{macrocode} -% \codeprint -% \begin{macrocode} -\begin{warpprint} -\newcommand{\attribution}[1]{ - \begin{flushright} - \unskip - #1 - \end{flushright}% -} -\end{warpprint} -% \end{macrocode} -% \end{macro} % \subsection{Quotes, quotations} @@ -25558,25 +27729,31 @@ end -- not --version % \end{macrocode} % % \begin{environment}{quote} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment*{quote} +\newenvironment*{LWR@HTML@quote} { \LWR@forcenewpage \LWR@htmlblocktag{blockquote} } {\LWR@htmlblocktag{/blockquote}} + +\LWR@formattedenv{quote} % \end{macrocode} % \end{environment} % -% \changes{v0.71}{2019/04/27}{Fix: \env{blockquotation} tag.} % \begin{environment}{quotation} +% \changes{v0.71}{2019/04/27}{Fix: \env{blockquotation} tag.} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment*{quotation} +\newenvironment*{LWR@HTML@quotation} { \LWR@forcenewpage \LWR@htmlblocktag{blockquote} } {\LWR@htmlblocktag{/blockquote}} + +\LWR@formattedenv{quotation} % \end{macrocode} % \end{environment} @@ -25599,8 +27776,9 @@ end -- not --version % % \begin{environment}{verse} % \changes{v0.54}{2018/04/08}{Fix: Line spacing.} +% \changes{v0.84}{2020/04/14}{Added print mode.} % \begin{macrocode} -\renewenvironment{verse} +\newenvironment{LWR@HTML@verse} {\let\\\newline% lwarp \list{}{\itemsep \z@ \itemindent -1.5em% @@ -25609,6 +27787,8 @@ end -- not --version \advance\leftmargin 1.5em}% \item\relax} {\endlist} + +\LWR@formattedenv{verse} % \end{macrocode} % \end{environment} % @@ -25666,6 +27846,7 @@ end -- not --version % \end{macrocode} % % +% % \DescribeLength{\VerbatimHTMLWidth} Width to use in \HTML\ |Verbatim| environment. % % This width is used when placing line numbers to the right. @@ -25690,10 +27871,39 @@ end -- not --version % \end{macrocode} +% \begin{macro}{\verb} +% +% Patched to encapsulate the verbatim text inside span +% with a class of \attribute{texttt}. +% +% \changes{v0.891}{2020/09/12}{\cs{verb} as \cs{texttt}.} +% \begin{macrocode} +\LetLtxMacro\LWR@orig@verb@egroup\verb@egroup + +\def\LWR@verb@egroup@endspan{% + \LWR@orig@verb@egroup% + \LWR@htmltag{/span}% + \endgroup% +} +% \end{macrocode} +% +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} +% \begin{macrocode} +\xpretocmd{\verb} + {% + \begingroup% + \LWR@htmltag{span class=\textquotedbl{}texttt\textquotedbl}% + \let\verb@egroup\LWR@verb@egroup@endspan% + } + {} + {\LWR@patcherror{LaTeX}{verb}} +% \end{macrocode} +% \end{macro} + + % \begin{macro}{\LWR@atbeginverbatim} % \oarg{1: style} -% \marg{2: negative \cs{baselineskip} \cs{vspace}} -% \marg{3: class} +% \marg{2: class} % % Encloses a verbatim environment with the given \CSS\ class. % @@ -25702,29 +27912,32 @@ end -- not --version % \changes{v0.51}{2018/03/17}{Adds vertical offset.} % \changes{v0.63}{2018/11/24}{Fix for \pkg{xeCJK}.} % \begin{macrocode} -\newcommand*{\LWR@atbeginverbatim}[3][] +\newcommand*{\LWR@atbeginverbatim}[2][] {% % \end{macrocode} -% Avoid excessive space between lines: -% \begin{macrocode} -\setlength{\parskip}{0ex}% -% \end{macrocode} % Stop generating \HTML\ paragraph tags: % \begin{macrocode} \LWR@stoppars% % \end{macrocode} +% Avoid excessive space between lines: +% \changes{v0.891}{2020/09/12}{Fix for verbatim, \pkg{alltt} with lists} +% \begin{macrocode} +\setlength{\parskip}{0ex}% +\setlength{\topsep}{0pt}% +\setlength{\partopsep}{0pt}% +% \end{macrocode} % Create a new |pre| of the given class. % The tags may temporarily be turned off for internal use, such % as loading the \brand{MathJax} script. % \begin{macrocode} \ifbool{LWR@verbtags}{% - \LWR@htmltag{pre class=\textquotedbl#3\textquotedbl% + \LWR@htmltag{pre class=\textquotedbl#2\textquotedbl% \ifthenelse{\equal{#1}{}}{}{ style=\textquotedbl#1\textquotedbl}% }% - \LWR@orignewline% pre - \leavevmode\unskip\LWR@print@vspace*{-#2\baselineskip}% + \par% }{}% % \end{macrocode} +% % Use a mono-spaced font to preserve horizontal positioning. % If horizontal alignment is important for the user, use a mono-spaced font % in the \CSS\ for the |verse| class. @@ -25734,10 +27947,11 @@ end -- not --version % \end{macrocode} % \changes{v0.50}{2018/03/02}{Improved column alignment.} % \changes{v0.54}{2018/04/06}{Improved column alignment.} +% \changes{v0.85}{2020/04/29}{Fix: Added print macros for \pkg{fontspec}.} % \begin{macrocode} -% \LWR@print@normalsize% +\LWR@print@normalfont% \LWR@origttfamily% -\LWR@print@small% +\LWR@print@scriptsize% % \end{macrocode} % Since inside a \element{pre}, restore the original list processing: % \begin{macrocode} @@ -25745,7 +27959,7 @@ end -- not --version % \end{macrocode} % Turn off \pkg{babel-french} extra space before punctuation: % \begin{macrocode} -\LWR@FBcancel% +\LWR@hook@processingtags% % \end{macrocode} % Do not produce \HTML\ tags for \cs{hspace} inside a verse |par|. % Restore plain \LaTeX{} \cs{hspace} functionality: @@ -25757,20 +27971,18 @@ end -- not --version % \begin{macro}{\LWR@afterendverbatim} -% \marg{negative \cs{baselineskip} \cs{vspace}} % % Finishes enclosing a verbatim environment. % \changes{v0.54}{2018/04/07}{Added vspace argument.} % \begin{macrocode} -\newcommand*{\LWR@afterendverbatim}[1]{% +\newcommand*{\LWR@afterendverbatim}{% \endgroup% \par% % \end{macrocode} % At the end of the environment, close the |pre|: % \begin{macrocode} \ifbool{LWR@verbtags}{% - \LWR@print@vspace*{-#1\baselineskip}% - \noindent\LWR@htmltag{/pre}\LWR@orignewline% pre + \noindent\LWR@htmltag{/pre}\par% pre }{}% % \end{macrocode} % Resume regular paragraph handling: @@ -25786,15 +27998,16 @@ end -- not --version % % Patch \cs{verbatiminput} to add \HTML\ tags: % +% \changes{v0.84}{2020/04/16}{Added print mode.} % \begin{macrocode} -\let\LWRV@origverbatim@input\verbatim@input - -\renewcommand{\verbatim@input}[2]{% -\ifbool{LWR@verbtags}{\LWR@forcenewpage}{}% -\LWR@atbeginverbatim{2.5}{Verbatim}% -\LWRV@origverbatim@input{#1}{#2}% -\LWR@afterendverbatim{1.5}% +\newcommand{\LWR@HTML@verbatim@input}[2]{% + \ifbool{LWR@verbtags}{\LWR@forcenewpage}{}% + \LWR@atbeginverbatim{Verbatim}% + \LWR@print@verbatim@input{#1}{#2}% + \LWR@afterendverbatim% } + +\LWR@formatted{verbatim@input} % \end{macrocode} % \end{macro} @@ -25803,16 +28016,25 @@ end -- not --version % \begin{environment}{verbatim} % % \changes{v0.20}{2016/12/24}{Added.} +% \changes{v0.84}{2020/04/16}{Added print mode.} % % \begin{macrocode} \AfterEndPreamble{ \LWR@traceinfo{Patching verbatim.} \AtBeginEnvironment{verbatim}{% -\LWR@forcenewpage% -\LWR@atbeginverbatim{2.5}{verbatim}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {% + \LWR@forcenewpage% + \LWR@atbeginverbatim{verbatim}% + }% } \AfterEndEnvironment{verbatim}{% - \LWR@afterendverbatim{1}% + \ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}% + {}% + {% + \LWR@afterendverbatim% + }% } } % \end{macrocode} @@ -25826,16 +28048,24 @@ end -- not --version % \changes{v0.42}{2017/10/13}{Added.} % \changes{v0.52}{2018/03/27}{Fix to allow inside \env{lateximage}.} % \changes{v0.58}{2018/06/07}{Improved print/\HTML\ output selection.} +% \changes{v0.84}{2020/04/17}{Restore spacing.} % \begin{macrocode} \newcommand*{\LWR@HTML@tabbing}{% -\LWR@forcenewpage% -\LWR@atbeginverbatim{3}{tabbing}% -\LWR@print@tabbing% + \LWR@forcenewpage% + \LWR@atbeginverbatim{tabbing}% + \let\enskip\LWR@origenskip% + \let\quad\LWR@origquad% + \let\qquad\LWR@origqquad% + \let~\LWR@origtilde% + \let\,\LWR@origcomma% + \let\thinspace\LWR@origthinspace% + \let\negthinspace\LWR@orignegthinspace% + \LWR@print@tabbing% } \newcommand*{\LWR@HTML@endtabbing}{% \LWR@print@endtabbing% - \LWR@afterendverbatim{1}% + \LWR@afterendverbatim% } \LWR@formatted{tabbing} @@ -25872,7 +28102,7 @@ end -- not --version % \begin{macrocode} \begin{warpHTML} % \end{macrocode} - +% % \begin{macro}{\@begintheorem} \marg{name} \marg{number} % \begin{macrocode} \renewcommand{\@begintheorem}[2]{% @@ -25883,16 +28113,26 @@ end -- not --version } % \end{macrocode} % \end{macro} +% +% % \begin{macro}{\@opargbegintheorem} \marg{name} \marg{number} \marg{oparg} +% +% \LaTeX\ defines this, but \pkg{amsthm} \cs{relax}es it, +% so it will not be defined if \pkg{amsthm} is loaded before \pkg{lwarp}. +% \changes{v0.89}{2020/08/12}{Allow preload of \pkg{amsmath}, \pkg{amsthm}, \pkg{centernot}.} % \begin{macrocode} -\renewcommand{\@opargbegintheorem}[3]{% -\LWR@forcenewpage -\BlockClass{theoremcontents} -\trivlist -\item[\InlineClass{theoremlabel}{#1\ #2\ (#3)\ }]\itshape +\ifundef{\@opargbegintheorem}{}{ + \renewcommand{\@opargbegintheorem}[3]{% + \LWR@forcenewpage + \BlockClass{theoremcontents} + \trivlist + \item[\InlineClass{theoremlabel}{#1\ #2\ (#3)\ }]\itshape + } } % \end{macrocode} % \end{macro} +% +% % \begin{macro}{\@endtheorem} % \begin{macrocode} \renewcommand*{\@endtheorem}{% @@ -25968,8 +28208,11 @@ end -- not --version % \begin{macro}{\LWR@printopenlist} % May be locally redefined by \env{enumerate} or \env{description}. % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} -\newcommand*{\LWR@printopenlist}{ul style="\LWR@print@mbox{list-style-type:none}"} +\newcommand*{\LWR@printopenlist}{% + ul style=\textquotedbl\LWR@print@mbox{list-style-type:none}\textquotedbl{}% +} % \end{macrocode} % \end{macro} @@ -26172,6 +28415,7 @@ end -- not --version \LWR@nulllistfills% } % \end{macrocode} +% % \changes{v0.46}{2018/01/21}{Fix: Stack unnesting.} % \begin{macrocode} \newcommand*{\LWR@listend}{% @@ -26205,10 +28449,13 @@ end -- not --version % \begin{environment}{itemize} \oarg{options} % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \newcommand*{\LWR@itemizestart}{% \renewcommand*{\LWR@printcloselist}{\LWR@printcloseitemize} -\renewcommand*{\LWR@printopenlist}{ul style="\LWR@print@mbox{list-style-type:none}"} +\renewcommand*{\LWR@printopenlist}{% + ul style=\textquotedbl\LWR@print@mbox{list-style-type:none}\textquotedbl{}% +} \let\item\LWR@itemizeitem% \LWR@nulllistfills% } @@ -26223,10 +28470,13 @@ end -- not --version % \begin{environment}{enumerate} \oarg{options} % \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \newcommand*{\LWR@enumeratestart}{% \renewcommand*{\LWR@printcloselist}{\LWR@printcloseitemize} -\renewcommand*{\LWR@printopenlist}{ul style="\LWR@print@mbox{list-style-type:none}"} +\renewcommand*{\LWR@printopenlist}{% + ul style=\textquotedbl\LWR@print@mbox{list-style-type:none}\textquotedbl{}% +} \let\item\LWR@itemizeitem% \LWR@nulllistfills% } @@ -26325,22 +28575,22 @@ end -- not --version % \begin{macro}{\LWR@restoreoriglists} Restores the original \env{trivlist} environment. % \begin{macrocode} \newcommand*{\LWR@restoreoriglists}{% -\LWR@traceinfo{LWR@restoreoriglists}% -\LetLtxMacro\item\LWR@origitem% -\LetLtxMacro\@item\LWR@orig@item% -\let\@trivlist\LWR@orig@trivlist% -\let\trivlist\LWR@origtrivlist% -\let\endtrivlist\LWR@origendtrivlist% -\LetLtxMacro\itemize\LWR@origitemize% -\LetLtxMacro\enditemize\LWR@endorigitemize% -\LetLtxMacro\enumerate\LWR@origenumerate% -\LetLtxMacro\endenumerate\LWR@endorigenumerate% -\LetLtxMacro\description\LWR@origdescription% -\LetLtxMacro\enddescription\LWR@endorigdescription% -\let\@mklab\LWR@orig@mklab% -\let\makelabel\LWR@origmakelabel% -\let\@donoparitem\LWR@orig@donoparitem% -\let\@nbitem\LWR@orig@nbitem% + \LWR@traceinfo{LWR@restoreoriglists}% + \LetLtxMacro\item\LWR@origitem% + \LetLtxMacro\@item\LWR@orig@item% + \let\@trivlist\LWR@orig@trivlist% + \let\trivlist\LWR@origtrivlist% + \let\endtrivlist\LWR@origendtrivlist% + \LetLtxMacro\itemize\LWR@origitemize% + \LetLtxMacro\enditemize\LWR@endorigitemize% + \LetLtxMacro\enumerate\LWR@origenumerate% + \LetLtxMacro\endenumerate\LWR@endorigenumerate% + \LetLtxMacro\description\LWR@origdescription% + \LetLtxMacro\enddescription\LWR@endorigdescription% + \let\@mklab\LWR@orig@mklab% + \let\makelabel\LWR@origmakelabel% + \let\@donoparitem\LWR@orig@donoparitem% + \let\@nbitem\LWR@orig@nbitem% } % \end{macrocode} % \end{macro} @@ -26726,7 +28976,7 @@ end -- not --version % \subsubsection{Longtable variables} % \DescribeBoolean{LWR@starredlongtable} -% Per the \pkg{caption} pacakge, step the counter if |longtable*|. +% Per the \pkg{caption} package, step the counter if |longtable*|. % % \begin{macrocode} \newbool{LWR@starredlongtable} @@ -27960,6 +30210,7 @@ end -- not --version \booltrue{LWR@startedrow}% % \end{macrocode} % Create the row tag, with a class if necessary. +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \booltrue{LWR@intabularmetadata}% \ifboolexpr{% @@ -27967,19 +30218,19 @@ end -- not --version test{\ifnumcomp{\value{LWR@hdashedlines}}{>}{0}}% }% {% - \LWR@htmltag{tr class="hline" }% + \LWR@htmltag{tr class=\textquotedbl{}hline\textquotedbl }% \LWR@orignewline% }% {% not doing hline \ifbool{LWR@doingtbrule}% {% \ifdefvoid{\LWR@ruleHTMLcolor}{% - \LWR@htmltag{tr class="tbrule"}% + \LWR@htmltag{tr class=\textquotedbl{}tbrule\textquotedbl}% }{% \LWR@htmltag{% - tr class="tbrule" % space - style="border-top: 1px solid % space - \LWR@origpound\LWR@ruleHTMLcolor "% + tr class=\textquotedbl{}tbrule\textquotedbl\ % space + style=\textquotedbl{}border-top: 1px solid % space + \LWR@origpound\LWR@ruleHTMLcolor \textquotedbl{}% }% }% \LWR@orignewline% @@ -28030,15 +30281,16 @@ end -- not --version \LWR@traceinfo{atbang: #2 !\LWR@atbangspec!}% % \end{macrocode} % Only generate if is not empty; +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \ifdefempty{\LWR@atbangspec}% {}% {% not empty \LWR@htmltag{% - td class="td#1% + td class=\textquotedbl{}td#1% \LWR@subaddcmidruletrim{}{}% \LWR@printbartag{#2}% - "% + \textquotedbl{}% \LWR@tdstartstyles% \LWR@addcmidrulewidth% \LWR@addcdashline% @@ -28130,13 +30382,14 @@ end -- not --version \LWR@getexparray{LWR@tablecolspec}{\arabic{LWR@tableLaTeXcolindex}}% }% % \end{macrocode} -% print the start of a new table data cell: +% Print the start of a new table data cell: +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \LWR@traceinfo{LWR@tabledatasinglecolumntag: about to print td tag}% \LWR@htmltag{% - td class="td% + td class=\textquotedbl{}td% % \end{macrocode} -% append this column's spec: +% Append this column's spec: % \begin{macrocode} \LWR@strresult% % \end{macrocode} @@ -28146,7 +30399,7 @@ end -- not --version \LWR@addcmidruletrim% \LWR@addleftmostbartag% \LWR@printbartag{\arabic{LWR@tableLaTeXcolindex}}% - "% + \textquotedbl{}% % \end{macrocode} % Add styles for rules, alignment: % \changes{v0.42}{2017/10/26}{If \progcode{FormatWP} add cell alignment.} @@ -28385,15 +30638,6 @@ end -- not --version -% Used to compute margins, tabular trims, column offsets: -% \begin{macrocode} -\newlength{\LWR@templengthone} -\newlength{\LWR@templengthtwo} -\newlength{\LWR@templengththree} -\newcounter{LWR@tempcountone} -% \end{macrocode} - - % \begin{macro}{\LWR@tdstartstyles} % Begins possibly adding a table data cell style. % \begin{macrocode} @@ -28403,11 +30647,12 @@ end -- not --version % \begin{macro}{\LWR@tdaddstyle} % Starts adding a table data cell style. +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \newcommand*{\LWR@tdaddstyle}{% \ifbool{LWR@tdhavecellstyle}% {; }% - { style="}% + { style=\textquotedbl}% \booltrue{LWR@tdhavecellstyle}% } % \end{macrocode} @@ -28416,11 +30661,12 @@ end -- not --version % \begin{macro}{\LWR@tdendstyles} % Finishes possibly adding a table data cell style. % Prints the closing quote. +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \newcommand*{\LWR@tdendstyles}{% \ifbool{LWR@tdhavecellstyle}% {% - "% + \textquotedbl% \boolfalse{LWR@tdhavecellstyle}% }{}% } @@ -28778,11 +31024,14 @@ end -- not --version % \begin{macro}{\LWR@subaddtabularcellcolor} \marg{\HTML\ color} +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \newcommand*{\LWR@subaddtabularcellcolor}[1]{% - \LWR@htmltag{div class="cellcolor" style="% + \LWR@htmltag{div class=\textquotedbl{}cellcolor\textquotedbl\ % space + style=\textquotedbl{}% background:\LWR@origpound{}{}#1 % - " }% + \textquotedbl\ % + }% space \defaddtocounter{LWR@cellcolordepth}{1}% } % \end{macrocode} @@ -29140,29 +31389,22 @@ end -- not --version \LWR@maybenewtablerow% % \end{macrocode} % Begin the opening table data tag: +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} \LWR@htmltag{% - td colspan="#4" % + td colspan=\textquotedbl#4\textquotedbl\ % % \end{macrocode} % % \begin{macrocode} \IfValueT{#2}{ % rows? - rowspan="#2" % -% \end{macrocode} -% -% \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} -% \begin{macrocode} - \IfValueT{#1}{% vpos? - \ifstrequal{#1}{b}% - {style="\LWR@print@mbox{vertical-align:bottom}" }{}% - \ifstrequal{#1}{t}% - {style="\LWR@print@mbox{vertical-align:top}" }{}% - }% vpos? - }% rows? + rowspan=\textquotedbl#2\textquotedbl\ % + }% % \end{macrocode} % +% \changes{v0.84}{2020/04/16}{Fix: Multicolumn style.} +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} - class="td% + class=\textquotedbl{}td% % \end{macrocode} % Print the column type and vertical bars: % \begin{macrocode} @@ -29206,17 +31448,38 @@ end -- not --version { tvertbarrdoubledash}{}% % \end{macrocode} % Close the class tag's opening quote: +% \changes{v0.895}{2021/01/14}{Improved \HTML\ quotes.} % \begin{macrocode} - "% + \textquotedbl{}% % \end{macrocode} % \changes{v0.42}{2017/10/26}{If \progcode{FormatWP} add cell alignment.} % \begin{macrocode} \LWR@tdstartstyles% % \end{macrocode} +% +% Style for vertical position: +% \changes{v0.47}{2018/01/26}{Fix: Line wrap at \HTML\ hyphen.} +% \begin{macrocode} + \IfValueT{#1}{% vpos? + \ifstrequal{#1}{b}% + {% + \LWR@tdaddstyle% + \LWR@print@mbox{vertical-align:bottom}% + }{}% + \ifstrequal{#1}{t}% + {% + \LWR@tdaddstyle% + \LWR@print@mbox{vertical-align:top}% + }{}% + }% vpos? +% \end{macrocode} +% +% Style for row colors: % \changes{v0.49}{2018/02/18}{\pkg{xcolor}: Added tabular row colors.} % \begin{macrocode} \LWR@addtabularrowcolor% % \end{macrocode} +% Other styles: % \begin{macrocode} \LWR@addcmidrulewidth% \LWR@addcdashline% @@ -30019,7 +32282,7 @@ end -- not --version % \begin{macro}{\LWR@nullifyNoAutoSpacing} % For \pkg{babel-french}, turn off auto spacing at the start of the tabular, % then nullify the autospacing commands inside the tabular, -% since they were not compatible with the tabular column parsing code, +% since they were not compatible with the tabular parsing code for each cell, % which uses \pkg{xstring}. % \changes{v0.41}{2017/10/06}{\pkg{babel-french}: Fix: \cs{NoAutoSpacing} in a tabular.} % \changes{v0.78}{2019/10/29}{\pkg{babel-french}: Fix: Hyperlinks.} @@ -30073,16 +32336,7 @@ end -- not --version % a warning is issued here instructing the user to please isolate the \element{span} % to print-only. % \begin{macrocode} - \ifnumcomp{\value{LWR@spandepth}}{>}{0}{% - \PackageWarning{lwarp}{% - A tabular is being used inside a span such as\MessageBreak - a minipage. Some formatting may not be correct\MessageBreak - in the tabular.\MessageBreak - It is recommended to use \protect\warpprintonly\space or the\MessageBreak - warpprint environment to isolate the span to\MessageBreak - print-only,% - } - }{}% + \LWR@spanwarnformat{tabular}% \addtocounter{LWR@tabulardepth}{1}% % \end{macrocode} % Not yet started a table row: @@ -30345,7 +32599,7 @@ end -- not --version % \begin{macrocode} \ifbool{LWR@usedmultirow}{% \ifbool{LWR@foundmrowcell}% - {}% + {\relax}% {% \PackageError{lwarp}% {% @@ -30431,6 +32685,8 @@ end -- not --version % \begin{description} % \item [\cs{label}:] Adds \HTML\ tags (\cref{sec:labels}), % and another \filenm{.aux} entry (\cref{sec:lwarplabelsetup}). +% If \pkg{memoir} is used, its \cs{@mem@old@label} points to \pkg{lwarp}'s version, +% and \pkg{cleveref} patches. % \item [\cs{newlabel}:] Unchanged. When the |.aux| file is read, sets \cs{r@