diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/lwarp/lwarp.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lwarp/lwarp.sty | 2399 |
1 files changed, 2321 insertions, 78 deletions
diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp.sty index 92cbbf80d3c..4edb7a40a24 100644 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp.sty +++ b/Master/texmf-dist/tex/latex/lwarp/lwarp.sty @@ -17,7 +17,7 @@ %% version 2005/12/01 or later. \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{lwarp} - [2017/04/15 v0.29 Allows LaTeX to directly produce HTML5 output.] + [2017/04/29 v0.30 Allows LaTeX to directly produce HTML5 output.] @@ -44,12 +44,30 @@ \RequirePackage{upquote} \else \fi + \RequirePackage{etoolbox}[2011/01/03] \RequirePackage{ifplatform}% sense op-system platform \RequirePackage{comment} \excludecomment{testing} +\newbool{usingOSWindows} +\boolfalse{usingOSWindows} + + +\newcommand*{\OSPathSymbol}{/} + + +\newcommand*{\LWR@setOSWindows} +{ +\booltrue{usingOSWindows} +\renewcommand*{\OSPathSymbol}{\@backslashchar} +} +\ifwindows +\LWR@setOSWindows +\fi + + \RequirePackage{kvoptions} \SetupKeyvalOptions{family=LWR,prefix=LWR@} @@ -88,7 +106,25 @@ \DeclareStringOption[\jobname]{BaseJobname} -\DeclareStringOption[english]{lwarpmklang} +\DeclareStringOption[english]{IndexLanguage} + +\DeclareStringOption[lwarp.xdy]{xdyFilename} + +\DeclareVoidOption{lwarpmk}{ +\PackageInfo{lwarp}{Using option 'lwarpmk'} +\includecomment{LWR@createlwarpmk} +} + +\DeclareVoidOption{OSWindows}{ +\PackageInfo{lwarp}{Using option 'OSWindows'} +\LWR@setOSWindows +} + +\DeclareStringOption[]{HomeHTMLFilename} + +\DeclareStringOption[]{HTMLFilename} + +\DeclareBoolOption[false]{latexmk} \includecomment{warpprint}% \excludecomment{warpHTML}% @@ -96,12 +132,19 @@ \boolfalse{warpingHTML}% \boolfalse{mathjax}% +\excludecomment{LWR@createlwarpmk} \ProcessKeyvalOptions*\relax \providecommand*{\BaseJobname}{\LWR@BaseJobname} -\def\@nameedef#1{\expandafter\edef\csname #1\endcsname} +\ifcsempty{LWR@HomeHTMLFilename}{ +\newcommand*{\HomeHTMLFilename}{\BaseJobname} +}{ +\csedef{HomeHTMLFilename}{\LWR@HomeHTMLFilename} +} + +\csedef{HTMLFilename}{\LWR@HTMLFilename} @@ -498,24 +541,2251 @@ top=1in,bottom=1in,% \end{warpHTML} -\begin{warpall} -\newbool{usingOSwindows} -\boolfalse{usingOSwindows} -\newcommand*{\OSPathSymbol}{/} +\begin{warpprint} +\typeout{lwarp: generating configuration files} +\end{warpprint} +\begin{warpprint} +\ifcsdef{LWR@file}{}{\newwrite{\LWR@file}} +\immediate\openout\LWR@file=\jobname_html.tex +\immediate\write\LWR@file{% +\detokenize{\PassOptionsToPackage}% +{warpHTML,BaseJobname=\jobname}{lwarp}% +} +\immediate\write\LWR@file{% +\detokenize{\input}\string{\jobname.tex\string }% +} +\immediate\closeout\LWR@file +\end{warpprint} -\newcommand*{\warpOSwindows} -{ -\booltrue{usingOSwindows} -\renewcommand*{\OSPathSymbol}{\@backslashchar} +\begin{warpprint} +\ifcsdef{LWR@file}{}{\newwrite{\LWR@file}} +\immediate\openout\LWR@file=lwarpmk.conf +\ifbool{usingOSWindows}{ +\immediate\write\LWR@file{opsystem = "Windows"} +}{ +\immediate\write\LWR@file{opsystem = "Unix"} } -\ifwindows -\warpOSwindows +\ifPDFTeX +\immediate\write\LWR@file{latexname = "pdflatex"} +\fi +\ifXeTeX +\immediate\write\LWR@file{latexname = "xelatex"} +\fi +\ifLuaTeX +\immediate\write\LWR@file{latexname = "lualatex"} \fi +\immediate\write\LWR@file{sourcename = "\jobname"} +\immediate\write\LWR@file{% +homehtmlfilename = "\HomeHTMLFilename"% +} +\immediate\write\LWR@file{htmlfilename = "\HTMLFilename"} +\immediate\write\LWR@file{latexmk = "\ifbool{LWR@latexmk}{true}{false}"} +\immediate\write\LWR@file{language = "\LWR@IndexLanguage"} +\immediate\write\LWR@file{xdyfile = "\LWR@xdyFilename"} +\immediate\closeout\LWR@file +\end{warpprint} -\end{warpall} +\begin{warpprint} +\ifcsdef{LWR@file}{}{\newwrite{\LWR@file}} +\immediate\openout\LWR@file=\jobname.lwarpmkconf +\ifbool{usingOSWindows}{ +\immediate\write\LWR@file{opsystem = "Windows"} +}{ +\immediate\write\LWR@file{opsystem = "Unix"} +} +\ifPDFTeX +\immediate\write\LWR@file{latexname = "pdflatex"} +\fi +\ifXeTeX +\immediate\write\LWR@file{latexname = "xelatex"} +\fi +\ifLuaTeX +\immediate\write\LWR@file{latexname = "lualatex"} +\fi +\immediate\write\LWR@file{sourcename = "\jobname"} +\immediate\write\LWR@file{% +homehtmlfilename = "\HomeHTMLFilename"% +} +\immediate\write\LWR@file{htmlfilename = "\HTMLFilename"} +\immediate\write\LWR@file{latexmk = "\ifbool{LWR@latexmk}{true}{false}"} +\immediate\write\LWR@file{language = "\LWR@IndexLanguage"} +\immediate\write\LWR@file{xdyfile = "\LWR@xdyFilename"} +\immediate\closeout\LWR@file +\end{warpprint} + + +\begin{warpprint} +\begin{VerbatimOut}{lwarp.css} +/* + CSS stylesheet for the LaTeX lwarp package + Copyright 2016-2017 Brian Dunn — BD Tech Concepts LLC +*/ + +/* a fix for older browsers: */ +header, section, footer, aside, nav, main, + article, figure { display: block; } + +A:link {color:#000080 ; text-decoration: none ; } +A:visited {color:#800000 ; } +A:hover {color:#000080 ; text-decoration: underline ;} +A:active {color:#800000 ; } + +a.tocpart {display: inline-block ; margin-left: 0em ; + font-weight: bold ;} +a.tocchapter {display: inline-block ; margin-left: 0em ; + font-weight: bold ;} +a.tocsection {display: inline-block ; margin-left: 1em ; + text-indent: -.5em ; font-weight: bold ; } +a.tocsubsection {display: inline-block ; margin-left: 2em ; + text-indent: -.5em ; } +a.tocsubsubsection {display: inline-block ; margin-left: 3em ; + text-indent: -.5em ; } +a.tocparagraph {display: inline-block ; margin-left: 4em ; + text-indent: -.5em ; } +a.tocsubparagraph {display: inline-block ; margin-left: 5em ; + text-indent: -.5em ; } +a.tocfigure {margin-left: 0em} +a.tocsubfigure {margin-left: 2em} +a.toctable {margin-left: 0em} +a.tocsubtable {margin-left: 2em} +a.toctheorem {margin-left: 0em} +a.toclstlisting {margin-left: 0em} + +body { + font-family: "DejaVu Serif", "Bitstream Vera Serif", + "Lucida Bright", Georgia, serif; + background: #FAF7F4 ; + color: black ; + margin:0em ; + padding:0em ; + font-size: 100% ; + line-height: 1.2 ; +} + +p {margin: 1.5ex 0em 1.5ex 0em ;} + +/* Holds a section number to add space between it and the name */ +span.sectionnumber { margin-right: .6em } + +/* Inserted in front of index lines */ +span.indexitem {margin-left: 0em} +span.indexsubitem {margin-left: 2em} +span.indexsubsubitem {margin-left: 4em} + +div.hidden { display: none ; } + +kbd { + font-family: "DejaVu Mono", "Bitstream Vera Mono", "Lucida Console", + "Nimbus Mono L", "Liberation Mono", "FreeMono", "Andale Mono", + "Courier New", monospace; + font-size: 100% ; +} + +span.strong { font-weight: bold; } + +span.textmd { font-weight: normal; } + +span.textsc { font-variant: small-caps; } + +span.textup { font-variant: normal; } + +span.textrm { + font-family: "DejaVu Serif", "Bitstream Vera Serif", + "Lucida Bright", Georgia, serif; +} + +span.textsf { + font-family: "DejaVu Sans", "Bitstream Vera Sans", + Geneva, Verdana, sans-serif ; +} + +span.attribution { + margin-left: 1em ; font-size: 80% ; font-variant: small-caps; +} + +span.citetitle { + margin-left: 1em ; font-size: 80% ; font-style: oblique; +} + +span.poemtitle { + font-size: 120% ; font-weight: bold; +} + +blockquote { +margin-left: 0px ; +margin-right: 0px ; +} + +blockquote p { + line-height: 1.5; + text-align: left ; + font-size: .85em ; + margin-left: 3em ; +margin-right: 3em ; +} + +blockquotation { +margin-left: 0px ; +margin-right: 0px ; +} + +blockquotation p { + line-height: 1.5; + text-align: left ; + font-size: .85em ; + margin-left: 3em ; +margin-right: 3em ; +} + +div.epigraph { + line-height: 1.2; + text-align: left ; + padding: 3ex 1em 0ex 1em ; +/* margin: 3ex auto 3ex auto ; */ /* Epigraph centered */ + margin: 3ex 1em 3ex auto ; /* Epigraph to the right */ +/* margin: 3ex 1em 3ex 1em ; */ /* Epigraph to the left */ + font-size: .85em ; + max-width: 27em ; +} + +div.epigraphsource{ + text-align:right ; + margin-left:auto ; +/* max-width: 50% ; */ + border-top: 1px solid #A0A0A0 ; + padding-bottom: 3ex ; + line-height: 1.2; +} + +div.epigraph p { padding: .5ex ; margin: 0ex ;} +div.epigraphsource p { padding: .5ex 0ex 0ex 0ex ; margin: 0ex ;} + +/* lettrine package: */ +span.lettrine { font-size: 3ex ; float: left ; } +span.lettrinetext { font-variant: small-caps ; } + +/* ulem and soul packages: */ +span.uline { + text-decoration: underline ; + text-decoration-skip ; +} + +span.uuline { + text-decoration: underline ; + text-decoration-skip ; + text-decoration-style: double ; +} + +span.uwave { + text-decoration: underline ; + text-decoration-skip ; + text-decoration-style: wavy ; +} + +span.sout { + text-decoration: line-through ; +} + +span.xout { + text-decoration: line-through ; +} + +span.dashuline { + text-decoration: underline ; + text-decoration-skip ; + text-decoration-style: dashed ; +} + +span.dotuline { + text-decoration: underline ; + text-decoration-skip ; + text-decoration-style: dotted ; +} + +span.letterspacing { letter-spacing: .2ex ; } + +span.capsspacing { + font-variant: small-caps ; + letter-spacing: .1ex ; +} + +span.highlight { background: #F8E800 ; } + +html body { + margin: 0 ; + line-height: 1.2; +} + +body div { + margin: 0ex; +} + +h1, h2, h3, h4, h5, h6, span.paragraph, span.subparagraph +{ + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + font-style: normal ; + font-weight: bold ; + text-align: left ; +} + +h1 { /* title of the entire website, used on each page */ + text-align: center ; + font-size: 2.5em ; + padding: .4ex 0em 0ex 0em ; +} +h2 { font-size: 2.25em } +h3 { font-size: 2em } +h4 { font-size: 1.75em } +h5 { font-size: 1.5em } +h6 { font-size: 1.25em } +span.paragraph {font-size: 1em ; font-variant: normal ; + margin-right: 1em ; } +span.subparagraph {font-size: 1em ; font-variant: normal ; + margin-right: 1em ; } + +/* Title of the file */ +h1 { + margin: 0ex 0em 0ex 0em ; + line-height: 1.3; + text-align: center ; +} + +/* Part */ +h2 { + margin: 1ex 0em 1ex 0em ; + line-height: 1.3; + text-align: center ; +} + +/* Chapter */ +h3 { + margin: 3ex 0em 1ex 0em ; + line-height: 1.3; +} + +/* Section */ +h4 { + margin: 3ex 0em 1ex 0em ; + line-height: 1.3; +} + +/* Sub-Section */ +h5 { + margin: 3ex 0em 1ex 0em ; + line-height: 1.3; +} + +/* Sub-Sub-Section */ +h6 { + margin: 3ex 0em 1ex 0em ; + line-height: 1.3; +} + +div.titlepage { + text-align: center ; +} + +.footnotes { + font-size: .85em ; + margin: 3ex 1em 0ex 1em ; + padding-bottom: 1ex ; +border-top: 1px solid silver ; +} + +.marginpar { + max-width:50%; + float:right; + text-align:left; + margin: 1ex 0.5em 1ex 1em ; + padding: 1ex 0.5em 1ex 0.5em ; + font-size: 85% ; + border-top: 1px solid silver ; + border-bottom: 1px solid silver ; + overflow-x: auto; +} + +.marginpar br { margin-bottom: 2ex ; } + +div.marginblock { + max-width:50%; + float:right; + text-align:left; + margin: 1ex 0.5em 1ex 1em ; + padding: 1ex 0.5em 1ex 0.5em ; + overflow-x: auto; +} + +div.marginblock div.minipage { + display: block ; + margin: 0pt auto 0pt auto ; +} + +div.marginblock div.minipage p { font-size: 85%} + +div.marginblock br { margin-bottom: 2ex ; } + +section.textbody div.footnotes{ + margin: 3ex 0em 0ex 0em ; + border-bottom: 2px solid silver ; +} + +.footnoteheader { + border-top: 2px solid silver ; + margin-top: 3ex ; + padding-top: 1ex ; + font-weight: bold ; +} + +.mpfootnotes { + text-align: left ; + font-size: .85em ; + margin-left: 1em ; + border-top: 1px solid silver ; +} + +/* Remove footnote top border in the title page. */ +div.titlepage div.mpfootnotes { + border-top: none ; +} + +ol { + margin: 1ex 1em 1ex 0em; + line-height: 1.2; +} + +ul, body dir, body menu { + margin: 1ex 1em 1ex 0em; + line-height: 1.2; +} + +li { margin: 0ex 0em 1ex 0em; } + +html { + margin: 0; + padding: 0; +} + +.programlisting { + font-family: "DejaVu Mono", "Bitstream Vera Mono", "Lucida Console", + "Nimbus Mono L", "Liberation Mono", "FreeMono", "Andale Mono", + "Courier New", monospace; + margin: 1ex 0ex 1ex 0ex ; + padding: .5ex 0pt .5ex 0pt ; + overflow-x: auto; +} + +section.textbody>pre.programlisting { +border-top: 1px solid silver ; +border-bottom: 1px solid silver ; +} + +.inlineprogramlisting { + font-family: "DejaVu Mono", "Bitstream Vera Mono", "Lucida Console", + "Nimbus Mono L", "Liberation Mono", "FreeMono", "Andale Mono", + "Courier New", monospace; + overflow-x: auto; +} + +div.abstract { + margin: 2em 5% 2em 5% ; + padding: 1ex 1em 1ex 1em ; +/* font-weight: bold ; */ + font-size: 90% ; +} + +div.abstract dl {line-height:1.5;} +div.abstract dt {color:#304070;} + +div.abstracttitle{ + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-weight:bold; + font-size:1.25em; + text-align: center ; +} + +span.abstractrunintitle{ + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-weight:bold; +} + +.verbatim { + overflow-x: auto ; +} + +.alltt { + overflow-x: auto ; +} + +.bverbatim { + margin: 1ex 0pt 1ex 0pt ; + padding: .5ex 0pt .5ex 0pt ; + overflow-x: auto ; +} + +.lverbatim { + margin: 1ex 0pt 1ex 0pt ; + padding: .5ex 0pt .5ex 0pt ; + overflow-x: auto ; +} + +.fancyvrb { + font-size:.85em ; + margin: 3ex 0pt 3ex 0pt +} + +.fancyvrblabel { + font-weight:bold; + text-align: center ; +} + +.verse { + font-family: "Linux Libertine Mono O", "Lucida Console", + "Droid Sans Mono", "DejaVu Mono", "Bitstream Vera Mono", + "Liberation Mono", "FreeMono", "Andale Mono", + "Nimbus Mono L", "Courier New", monospace; + margin-left: 1em ; +} + +div.singlespace { line-height: 1.2 ; } +div.onehalfspace { line-height: 1.5 ; } +div.doublespace { line-height: 2 ; } + +/* Minipage environments, vertically aligned to top, center, bottom: */ +.minipage { + /* display: inline-block ; */ + /* Mini pages which follow each other will be tiled. */ + margin: .25em .25em .25em .25em; + padding: .25em .25em .25em .25em; + display: inline-flex; + flex-direction: column ; + overflow: auto; +} + +/* Paragraphs in the flexbox did not collapse their margins. */ +/* Have not yet researched this. */ +.minipage p {margin: .75ex 0em .75ex 0em ;} + +.framebox { + margin: 0ex ; + padding: 0ex ; + border: 1px solid black; + border-radius: 0px ; + padding: .3ex .2em 0ex .2em ; + margin: .1ex ; + display: inline-block ; +} + +.mdframed { +/* padding: 0ex ; */ +/* border: 1px solid blafck; */ +/* border-radius: 0px ; */ + padding: 0ex ; + margin: 3ex 5% 3ex 5% ; +/* display: inline-block ; */ +} + +.mdframed p { padding: 0ex .5em 0ex .5em ; } + +.mdframed dl { padding: 0ex .5em 0ex .5em ; } + +.mdframedtitle { + padding: .5em ; + display: block ; + font-size: 130% +} + +.mdframedsubtitle { + padding: 0ex .5em 0ex .5em ; + display: block ; + font-size: 115% ; +} + +.mdframedsubsubtitle { + padding: 0ex .5em 0ex .5em ; + display: block ; +} + +.mdtheorem { + padding: 0ex .5em 0ex .5em ; + margin: 3ex 5% 3ex 5% ; +/* display: inline-block ; */ +} + +/* framed package */ +.framed { + margin: 3ex 0em 3ex 0em ; + border: 1px solid black; + border-radius: 0px ; + padding: .3ex 1em 0ex 1em ; + display: block ; +} + +.snugframed { + margin: 3ex 0em 3ex 0em ; + border: 1px solid black; + border-radius: 0px ; + display: block ; +} + +.framedleftbar { + margin: 3ex 0em 3ex 0em ; + border-left: 3pt solid black; + border-radius: 0px ; + padding: .3ex .2em .3ex 1em ; + display: block ; +} + +.framedtitle { +margin: 0em ; +padding: 0em ; + font-size: 130% +} + +.framedtitle p { padding: .3em } + +dl { + margin: 1ex 2em 1ex 0em; + line-height: 1.3; +} + +dl dt { + margin-top: 1ex; + font-weight: bold; +} + +dl dd p { margin-top: 0em; } + +nav.toc, nav.lof, nav.lot, nav.lol, nav.lothm { + font-family: "URW Classico", Optima, "Linux Biolinum O", + "DejaVu Sans", "Bitstream Vera Sans", + Geneva, Verdana, sans-serif ; + margin-bottom: 4ex ; +} + +nav.toc p, nav.lof p, nav.lot p, nav.lol p, nav.lothm p { + line-height: 1.2 ; + margin-top:.5ex ; + margin-bottom:.5ex; + font-size: .9em ; +} + +img, img.hyperimage, img.borderimage { + max-width: 600px; + border: 1px solid silver; + box-shadow: 3px 3px 3px #808080 ; + padding: .5% ; + margin: .5% ; + background: none ; +} + +img.inlineimage{ + padding: 0px ; + box-shadow: none ; + border: none ; + background: none ; + margin: 0px ; + display: inline-block ; + border-radius: 0px ; +} + +img.logoimage{ + max-width: 300px ; + box-shadow: 3px 3px 3px #808080 ; + border: 1px solid black ; + background:none ; + padding:0 ; + margin:.5ex ; + border-radius: 10px ; +} + +.section { +/* + To have each section float relative to each other: +*/ +/* + display: block ; + float: left ; + position: relative ; + background: white ; + border: 1px solid silver ; + padding: .5em ; +*/ + margin: 0ex .5em 0ex .5em ; + padding: 0 ; +} + +figure { + margin: 3ex auto 3ex auto ; + padding: 1ex 1em 1ex 1em ; + overflow-x: auto ; +} + +/* To automatically center images in figures: */ +/* +figure img.inlineimage { + margin: 0ex auto 0ex auto ; + display: block ; +} +*/ + +/* To automatically center minipages in figures: */ +/* +figure div.minipage, figure div.minipage div.minipage { + margin: 1ex auto 1ex auto ; + display: block ; +} +*/ + +figure div.minipage p { font-size: 85% ; } + +figure.subfigure, figure.subtable { + display: inline-block ; margin: 3ex 1em 3ex 1em ; +} + +figcaption .minipage { margin:0 ; padding: 0 } + +div.floatrow { text-align: center; } + +div.floatrow figure { display: inline-block ; margin: 1ex 2% ; } + +div.floatfoot { font-size: .85em ; + border-top: 1px solid silver ; line-height: 1.2 ; } + +figcaption , .lstlistingtitle { + font-size: .85em ; + text-align: center ; + font-weight: bold ; +margin-top: 1ex ; +margin-bottom: 1ex ; +} + +figure.subfigure figcaption, figure.subtable figcaption { + border-bottom: none ; background: none ; +} + +div.nonfloatcaption { + margin: 1ex auto 1ex auto ; + font-size: .85em ; + text-align: center ; + font-weight: bold ; +} + +/* For a \RawCaption inside a minipage inside a figure's floatrow: */ +figure div.floatrow div.minipage figcaption { +border: none ; +background: none ; +} + +table { + margin: 1ex auto 1ex auto ; + border-collapse: collapse ; + border-spacing: 0px ; + line-height: 1.3 ; + } + +tr.hline {border-top: 1px solid silver ; margin-top: 0ex ; + margin-bottom: 0ex ; } /* for \hline */ + +tr.tbrule {border-top: 1px solid black ; margin-top: 0ex ; + margin-bottom: 0ex ; } /* for \toprule, \bottomrule */ + +td {padding: 1ex .5em 1ex .5em ;} + +table td.tdl { text-align: left ; vertical-align: middle ; } +table td.tdc { text-align: center ; vertical-align: middle ; } +table td.tdr { text-align: right ; vertical-align: middle ; } +table td.tdp { text-align: left ; vertical-align: bottom ; } +table td.tdm { text-align: left ; vertical-align: middle ; } +table td.tdb { text-align: left ; vertical-align: top ; } +table td.tdP { text-align: center ; vertical-align: bottom ; } +table td.tdM { text-align: center ; vertical-align: middle ; } +table td.tdB { text-align: center ; vertical-align: top ; } +table td.tdlrule { text-align: left ; border-top: 1px solid silver ; + vertical-align: middle ; } /* for cmidrule */ +table td.tdcrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: middle ; } +table td.tdrrule { text-align: right ; border-top: 1px solid silver ; + vertical-align: middle ; } +table td.tdprule { text-align: left ; border-top: 1px solid silver ; + vertical-align: bottom ; } +table td.tdmrule { text-align: left ; border-top: 1px solid silver ; + vertical-align: middle ; } +table td.tdbrule { text-align: left ; border-top: 1px solid silver ; + vertical-align: top ; } +table td.tdPrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: bottom ; } +table td.tdMrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: middle ; } +table td.tdBrule { text-align: center ; border-top: 1px solid silver ; + vertical-align: top ; } + +/* Margins of paragraphs inside table cells: */ +td.tdp p , td.tdprule p , td.tdP p , td.tdPrule p { padding-top: 1ex ; + padding-bottom: 1ex ; margin: 0ex ; } +td.tdm p , td.tmbrule p , td.tdM p , td.tdMrule p { padding-top: 1ex ; + padding-bottom: 1ex ; margin: 0ex ; } +td.tdb p , td.tdbrule p , td.tdB p , td.tdBrule p { padding-top: 1ex ; + padding-bottom: 1ex ; margin: 0ex ; } + +td.tdp , td.tdprule , td.tdP , td.tdPrule + { padding: 0ex .5em 0ex .5em ; } +td.tdm , td.tdmrule , td.tdM , td.tdMrule + { padding: 0ex .5em 0ex .5em ; } +td.tdb , td.tdbrule , td.tdB , td.tdBrule + { padding: 0ex .5em 0ex .5em ; } + +/* table notes: */ +.tnotes { + margin: 0ex 5% 1ex 5% ; + padding: 0.5ex 1em 0.5ex 1em; + font-size:.85em; + text-align: left ; +} + +.tnotes dl dt p {margin-bottom:0px;} + +.tnoteitemheader {margin-right: 1em;} + +/* center, flushleft, flushright environments */ +div.center{text-align:center;} +div.center table {margin-left:auto;margin-right:auto;} +div.flushleft{text-align:left;} +div.flushleft table {margin-left:0em ; margin-right:auto;} +div.flushright{text-align:right;} +div.flushright table {margin-left:auto ; margin-right: 0em ;} + +/* program listing callouts: */ +span.callout { + font-family: "DejaVu Sans", "Bitstream Vera Sans", + Geneva, Verdana, sans-serif ; + border-radius: .5em; + background-color:black; + color:white; + padding:0px .25em 0px .25em; +margin: 0 ; + font-weight: bold; + font-size:.72em ; +} + +div.programlisting pre.verbatim span.callout{ +font-size: .85em ; +} + +div.published +{ + text-align: center ; + font-variant: normal ; + font-style: italic ; + font-size: 1em ; + margin: 3ex 0em 3ex 0em ; +} + +div.subtitle +{ + text-align: center ; + font-variant: normal ; + font-style: italic ; + font-size: 1.25em ; + margin: 3ex 0em 3ex 0em ; +} + +div.subtitle p { margin: 1ex ; } + +div.author +{ + font-variant: normal ; + font-style: normal ; + font-size: 1em ; + margin: 3ex 0em 3ex 0em ; +} + +div.author table { + margin: 3ex auto 0ex auto ; + background: none ; +} + +div.author table tbody tr td { padding: .25ex ; } + +span.affiliation {font-size: .85em ; font-variant: small-caps; } + +div.titledate { + text-align: center ; + font-size: .85em ; + font-style: italic; + margin: 6ex 0em 6ex 0em ; +} + +nav.topnavigation{ + text-align: left ; + padding: 0.5ex 1em 0.5ex 1em ; +/* margin: 2ex 0em 3ex 0em ; */ + margin: 0 ; + border-bottom: 1px solid silver ; + border-top: 1px solid silver ; + clear:right ; +} + +nav.botnavigation{ + text-align: left ; + padding: 0.5ex 1em 0.5ex 1em ; +/* margin: 3ex 0em 2ex 0em ; */ + margin: 0 ; + border-top: 1px solid silver ; + border-bottom: 1px solid silver ; + clear:right ; +} + +header{ + line-height: 1.2 ; + font-size: 1em ; +/* border-bottom: 2px solid silver ; */ + margin: 0px ; + padding: 0ex 1em 0ex 1em ; + text-align:center ; +} + +header p {margin:0ex;padding:4ex 0em 2ex 0em ;text-align:center;} + +footer{ + font-size: .85em ; + line-height: 1.2 ; + margin-top: 1ex ; + border-top: 2px solid silver ; + padding: 2ex 1em 2ex 1em ; + clear:right ; + text-align:left ; +} + +a.linkhome { font-weight:bold ; font-size: 1em ;} + +div.lateximagesource { padding: 0px ; margin: 0px ; display: none; } + +img.lateximage{ + padding: 0px 0px 0px 0px ; + box-shadow: none ; + border: none ; + background: none ; + margin: 0px 0px -.15ex 0px ; + /* pdfcrop leaves a slight margin, adjust to baseline */ + max-width: 100% ; + border-radius: 0ex ; + border: none ; +} + +nav.sidetoc { + font-family: "DejaVu Serif", "Bitstream Vera Serif", + "Lucida Bright", Georgia, serif; + float:right ; + width: 20%; + border-left: 1px solid silver; + border-top: 1px solid silver; + border-bottom: 1px solid silver; +/* border-top: 2px solid #808080 ; */ + background: #FAF7F4 ; + padding: 2ex 0em 2ex 1em ; + margin: 0ex 0em 2ex 1em ; + font-size:.9em ; + border-radius: 20px 0px 0px 20px ; + } + +div.sidetoccontents { +/* border-top: 1px solid silver ; */ + overflow-y: auto ; + width: 100% ; + text-align: left ; +} + +nav.sidetoc p {line-height:1.2 ; margin: 1ex .5em 1ex .5em ; + text-indent: 0 ; } +nav.sidetoc p a {color:black ; font-size: .7em ;} +div.sidetoctitle {font-size: 1.2em; font-weight:bold; text-align:center; + border-bottom: 1px solid silver ; } +nav.sidetoc a:hover {text-decoration: underline ; } + +section.textbody { margin: 0ex 1em 0ex 1em ;} + +div.multicolsheading { -webkit-column-span: all; + -moz-column-span: all; column-span: all; } +div.multicols { -webkit-columns: 3 380px ; + -moz-columns: 3 380px ; columns: 3 380px ; } +div.multicols p {margin-top: 0ex} + +/* Used to support algorithmicx: */ +span.floatright { float: right ; } + +/* Native LaTeX theorems: */ + +.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 */ + +span.theoremheader, +span.theoremheaderplain, +span.theoremheaderdefinition, +span.theoremheaderbreak, +span.theoremheadermarginbreak, +span.theoremheaderchangebreak, +span.theoremheaderchange, +span.theoremheadermargin +{ +font-style:normal ; font-weight: bold ; margin-right: 1em ; +} + +span.amsthmnameplain, +span.amsthmnamedefinition, +span.amsthmnumberplain, +span.amsthmnumberdefinition +{ +font-style:normal ; font-weight: bold ; +} + +span.amsthmnameremark, +span.amsthmnumberremark +{font-style:italic ; font-weight: normal ; } + +span.amsthmnoteplain, +span.amsthmnotedefinition +{font-style:normal ;} + +span.theoremheaderremark, +span.theoremheaderproof, +span.amsthmproofname +{font-style:italic ; font-weight: normal ; margin-right: 1em ; } + +span.theoremheadersc +{ +font-style:normal ; +font-variant: small-caps ; +font-weight: normal ; +margin-right: 1em ; +} + +.theoremendmark {float:right} + +div.amsthmbodyplain, div.theorembodyplain, div.theorembodynonumberplain, +div.theorembodybreak, div.theorembodynonumberbreak, +div.theorembodymarginbreak, +div.theorembodychangebreak, +div.theorembodychange, +div.theorembodymargin +{ +font-style:italic; +margin-top: 3ex ; margin-bottom: 3ex ; +} + +div.theorembodydefinition, div.theorembodyremark, div.theorembodyproof, +div.theorembodyplainupright, nonumberplainuprightsc, +div.amsthmbodydefinition, div.amsthmbodyremark, +div.amsthmproof +{ +font-style: normal ; +margin-top: 3ex ; margin-bottom: 3ex ; +} + +span.amsthmnoteremark {} + +/* +For CSS LaTeX and related logos: +Based on: +http://edward.oconnor.cx/2007/08/tex-poshlet +http://nitens.org/taraborelli/texlogo +*/ + +.latexlogofont { + font-family: "Linux Libertine O", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-variant: normal ; +} + +.latexlogo { + 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; +} + +.latexlogo sup { + text-transform: uppercase; + letter-spacing: .03em ; + font-size: 0.85em; + vertical-align: 0.15em; + margin-left: -0.36em; + margin-right: -0.15em; +} + +.latexlogo sub { + text-transform: uppercase; + vertical-align: -0.5ex; + margin-left: -0.1667em; + margin-right: -0.125em; + font-size: 1em; +} + +.xetexlogo { + 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; +} + +/* A smaller gap between Xe and Tex v.s. LaTeX: */ +.xetexlogo sub { + text-transform: uppercase; + vertical-align: -0.5ex; + margin-left: -0.0667em; + margin-right: -0.2em; + font-size: 1em; + letter-spacing: .03em ; +} + +/* A large gap between Xe and LaTeX v.s. TeX: */ +.xelatexlogo sub { + text-transform: uppercase; + vertical-align: -0.5ex; + margin-left: -0.0667em; + margin-right: -.05em; + font-size: 1em; + letter-spacing: .03em ; +} + +.amslogo { + font-family: "TeXGyreChorus","URW Chancery L", + "Apple Chancery","ITC Zapf Chancery","Monotype Corsiva", + "Linux Libertine O", "Nimbus Roman No 9 L", "FreeSerif", + "Hoefler Text", Times, "Times New Roman", serif; + font-style: italic; +} + +.lyxlogo { + font-family: "URW Classico", Optima, "Linux Biolinum O", + "DejaVu Sans", "Bitstream Vera Sans", Geneva, +Verdana, sans-serif ; +} + +/* Only display top and bottom navigation if a small screen: */ +/* Hide the sidetoc if a small screen: */ +nav.topnavigation { display:none; } +nav.botnavigation { display:none; } + +@media screen and (max-width: 45em) { +/* nav.sidetoc {display:none;} */ + nav.sidetoc { + float: none ; + width: 100% ; + margin: 5ex 0px 5ex 0px ; + padding: 0 ; + border-radius: 0 ; + border-bottom: 1px solid black ; + border-top: 1px solid black ; + box-shadow: none ; + } +/* nav.topnavigation { display:block } */ + nav.botnavigation { display:block } + .marginpar { + max-width: 100%; + float: none; + display:block ; + margin: 1ex 1em 1ex 1em ; + } +} + +@media print { + body { + font-family: "Linux Libertine O", + "DejaVu Serif", "Bitstream Vera Serif", + "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + } + nav.sidetoc { display:none; } + nav.topnavigation { display: none; } + nav.botnavigation { display: none; } +} + +@media handheld { + nav.sidetoc { display:none; } + nav.topnavigation { display:block } + nav.botnavigation { display:block } +} + +@media projection { + nav.sidetoc { display:none; } + nav.topnavigation { display:block } + nav.botnavigation { display:block } +} +\end{VerbatimOut} +\end{warpprint} + + +\begin{warpprint} +\begin{VerbatimOut}{lwarp_sagebrush.css} +@import url("lwarp.css") ; + +A:link {color:#105030 ; text-decoration: none ; } +A:visited {color:#705030 ; text-shadow:1px 1px 2px #a0a0a0;} +A:hover {color:#006000 ; text-decoration: underline ; text-shadow:0px 0px 2px #a0a0a0;} +A:active {color:#00C000 ; text-shadow:1px 1px 2px #a0a0a0;} + +h1, h2, h3, h4, h5, h6, span.paragraph, span.subparagraph +{ + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", + "Nimbus Roman No 9 L", "FreeSerif", + "Hoefler Text", Times, "Times New Roman", serif; + font-variant: small-caps ; +font-weight: normal ; + color: #304070 ; + text-shadow: 2px 2px 3px #808080; +} + +h1 { /* title of the entire website, used on each page */ + font-variant: small-caps ; + color: #304070 ; + text-shadow: 2px 2px 3px #808080; + background-color: #F7F7F0 ; + background-image: linear-gradient(to bottom, #F7F7F0, #C0C0C4); +} + +h1 { + border-bottom: 1px solid #304070; + border-top: 2px solid #304070; +} + +h2 { + border-bottom: 1px solid #304070; + border-top: 2px solid #304070; + background-color: #F7F7F0 ; + background-image: linear-gradient(to bottom, #F7F7F0, #DAD0C0); +} + +div.abstract { + background: #f5f5eb ; + background-image: linear-gradient(to bottom, #f5f5eb, #C8C8B8); + + border: 1px solid silver; + border-radius: 1em ; +} + +div.abstract dl {line-height:1.5;} +div.abstract dt {color:#304070;} + +div.abstracttitle{ + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-weight:bold; + font-variant: small-caps ; + font-size:1.5em; + border-bottom: 1px solid silver ; + color: #304070 ; + text-align: center ; + text-shadow: 1px 1px 2px #808080; +} + +span.abstractrunintitle{ + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-weight:bold; +} + +div.epigraph { + background: #f5f5eb ; + background-image: linear-gradient(to bottom, #f5f5eb, #C8C8B8); + + border: 1px solid silver ; + border-radius: 1ex ; + box-shadow: 3px 3px 3px #808080 ; +} + +.example { + background-color: #f5f5eb ; + background-image: linear-gradient(to bottom, #f5f5eb, #C8C8B8); + +} + +div.exampletitle{ + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-weight:bold; + font-variant: small-caps ; + border-bottom: 1px solid silver ; + color: #304070 ; + text-align: center ; + text-shadow: 1px 1px 2px #808080; +} + +.sidebar { + background-color: #f5f5eb ; + background-image: linear-gradient(to bottom, #f5f5eb, #C8C8B8); + +} + +div.sidebartitle{ + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-weight:bold; + font-variant: small-caps ; + border-bottom: 1px solid silver ; + color: #304070 ; + text-align: center ; + text-shadow: 1px 1px 2px #808080; +} + +.fancyvrblabel { + font-family: "URW Classico", Optima, "Linux Biolinum O", + "Linux Libertine O", "Liberation Serif", "Nimbus Roman No 9 L", + "FreeSerif", "Hoefler Text", Times, "Times New Roman", serif; + font-weight:bold; + font-variant: small-caps ; +font-size: 1.5em ; + color: #304070 ; + text-align: center ; + text-shadow: 1px 1px 2px #808080; +} + +.minipage { + background-color: #eeeee7 ; + border: 1px solid silver ; +border-radius: 1ex ; +} + +.framed .minipage , .framedleftbar .minipage { +border: none ; +background: none ; +padding: 0ex ; +margin: 0ex ; +} + +figure.figure .minipage, figcaption .minipage { border: none; } + +div.marginblock div.minipage { border: none; } + +figure , div.marginblock { + background-color: #eeeee7 ; + border: 1px solid silver ; + border-radius: 1ex ; + box-shadow: 3px 3px 3px #808080 ; +} + +figure figure { + border: 1px solid silver ; + margin: 0em ; +box-shadow: none ; +} + +/* +figcaption { + border-top: 1px solid silver ; + border-bottom: 1px solid silver ; + background-color: #e8e8e8 ; +} +*/ + +div.table { + box-shadow: 3px 3px 3px #808080 ; +} + +/* +.tnotes { + background: #e8e8e8; + border: 1px solid silver; +} +*/ + +nav.topnavigation{ + background-color: #b0b8b0 ; + background-image: linear-gradient(to bottom,#e0e0e0,#b0b8b0) ; +} + +nav.botnavigation{ + background-color: #b0b8b0 ; + background-image: linear-gradient(to top,#e0e0e0,#b0b8b0) ; +} + +header{ + background-color: #F7F7F0 ; + background-image: linear-gradient(to top, #F7F7F0, #b0b8b0); +} + +footer{ + background-color: #F7F7F0 ; + background-image: linear-gradient(to bottom, #F7F7F0, #b0b8b0); +} + +nav.sidetoc { + background-color: #F7F7F0 ; + background-image: linear-gradient(to bottom, #F7F7F0, #C0C0C0); + box-shadow: 3px 3px 3px #808080 ; + border-radius: 0px 0px 0px 20px ; + } + +div.sidetoctitle {color: #304070 ; } + +nav.sidetoc a:hover { + color:#006000 ; + text-decoration: none ; + text-shadow:0px 0px 2px #a0a0a0; +} + +@media screen and (max-width: 45em) { + nav.sidetoc { border-radius: 0 ; } +} + +\end{VerbatimOut} +\end{warpprint} + + +\begin{warpprint} +\begin{VerbatimOut}{lwarp_formal.css} +@import url("lwarp.css") ; + +A:link {color:#802020 ; text-decoration:none; } +A:visited {color:#802020 ; text-shadow:none ;} +A:hover {color:#400000 ; text-shadow:none ;} +A:active {color:#C00000 ; text-shadow:none ;} + +body { + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + background: #fffcf5; +} + +span.textrm { + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; +} + +span.textsf { + font-family: "DejaVu Sans", "Bitstream Vera Sans", + Geneva, Verdana, sans-serif ; +} + +h1, h2, h3, h4, h5, h6, span.paragraph, span.subparagraph +{ + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + color: #800000 ; + text-shadow: none ; +} + +h1, h2 { + background-color: #fffcf5 ; + background-image: none ; + border-bottom: 1px solid #808080; + border-top: 2px solid #808080; +} + +div.abstracttitle { + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + color: black ; + text-shadow: none ; +} + +span.abstractrunintitle { + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + color: black ; + text-shadow: none ; +} + +div.abstract { font-size: 100% } + +.sidebar { + background: #fffcf5; + background-image: none ; + margin: 2em 5% 2em 5%; + padding: 0.5em 1em; + border: none ; + border-top : 1px solid silver; + border-bottom : 1px solid silver; + font-size: 90% ; +} + +div.sidebartitle{ + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + color: #800000 ; + text-shadow: none ; + border: none ; +} + +.example { + background: #fffcf5; + background-image: none ; + margin: 2em 5% 2em 5%; + padding: 0.5em 1em; + border: none ; + border-top : 1px solid silver; + border-bottom : 1px solid silver; +} + +div.exampletitle{ + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + color: #800000 ; + text-shadow: none ; + border: none ; +} + +div.fancyvrblabel{ + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + color: #800000 ; + text-shadow: none ; + border: none ; +} + +.verse { + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; +} + +figure { + margin: 3ex 5% 3ex 5% ; + padding: 1ex 1em 1ex 1em ; + background-color: #fffcf5 ; + overflow-x: auto ; + border: none ; +/* border-top: 1px solid silver; */ +/* border-bottom: 1px solid silver; */ +} + +figcaption , .lstlisting { + border: none ; +/* border-top: 1px solid silver ; */ +/* border-bottom: 1px solid silver ; */ + background-color: #fffcf5 ; +} + +.tnotes { + background: #fffcf5 ; +} + +.theorem { + background: none ; +} + +.minipage { + background-color: #fffcf5 ; + border: none ; +} + +div.floatrow figure { border: none ; } + +figure figure { border: none ; } + +nav.toc, nav.lof, nav.lot, nav.lol { + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; +} + +nav.sidetoc { + font-family: "Linux Libertine O", "Hoefler Text", "Garamond", + "Bembo", "Janson", "TeX Gyre Pagella", "Palatino", + "Liberation Serif", "Nimbus Roman No 9 L", "FreeSerif", Times, + "Times New Roman", serif; + background-image: linear-gradient(to bottom, #fffcf5, #C0C0C0); + border-radius: 0px 0px 0px 20px ; +} + +div.sidetoctitle{ + color: #800000 ; +} + +header{ + background-color: #e0e0e0 ; + background-image: linear-gradient(to top, #fffcf5, #b0b0b0); + text-align:center ; +} + +footer{ + background-color: #e0e0e0 ; + background-image: linear-gradient(to bottom, #fffcf5, #b0b0b0); + padding: 2ex 1em 2ex 1em ; + clear:right ; + text-align:left ; +} + +nav.botnavigation { + background: #dedcd5 ; + border-top: 1px solid black ; +} +\end{VerbatimOut} +\end{warpprint} + + +\begin{warpprint} +\begin{VerbatimOut}{sample_project.css} +/* ( --- Start of project.css --- ) */ +/* A sample project-specific CSS file for lwarp --- ) */ + +/* Load default lwarp settings: */ +@import url("lwarp.css") ; +/* or lwarp_formal.css, lwarp_sagebrush.css */ + +/* Project-specific CSS setting follow here. */ +/* . . . */ + +/* ( --- End of project.css --- ) */ +\end{VerbatimOut} +\end{warpprint} + + +\begin{warpprint} +\begin{VerbatimOut}{lwarp.xdy} +(require "tex/inputenc/latin.xdy") +(merge-rule "\\PS *" "Postscript") +(require "texindy.xdy") +(require "page-ranges.xdy") +(require "book-order.xdy") +(markup-locref :open "\hyperindexref{" :close "}") +\end{VerbatimOut} +\end{warpprint} + + +\begin{warpprint} +\begin{VerbatimOut}{lwarp_mathjax.txt} +<!-- https://groups.google.com/forum/#!topic/ + mathjax-users/jUtewUcE2bY --> +<script type="text/x-mathjax-config"> +MathJax.Hub.Register.StartupHook("TeX AMSmath Ready",function () { + var seteqsectionDefault = {name: "", num: 0}; + var seteqsections = {}, seteqsection = seteqsectionDefault; + var TEX = MathJax.InputJax.TeX, PARSE = TEX.Parse; + var AMS = MathJax.Extension["TeX/AMSmath"]; + TEX.Definitions.Add({ + macros: { + seteqsection: "mySection", + seteqnumber: "mySetEqNumber" + } + }); + + PARSE.Augment({ + mySection: function (name) { + seteqsection.num = AMS.number; + var n = this.GetArgument(name); + if (n === "") { + seteqsection = seteqsectionDefault; + } else { + if (!seteqsections["_"+n]) + seteqsections["_"+n] = {name:n, num:0}; + seteqsection = seteqsections["_"+n]; + } + AMS.number = seteqsection.num; + }, + mySetEqNumber: function (name) { + var n = this.GetArgument(name); + if (!n || !n.match(/^ *[0-9]+ *$/)) + n = ""; else n = parseInt(n)-1; + <!-- $ syntax highlighting --> + if (n === "" || n < 1) + TEX.Error + ("Argument to "+name+" should be a positive integer"); + AMS.number = n; + } + }); + MathJax.Hub.Config({ + TeX: { + equationNumbers: { + formatTag: function (n) + {return "("+(seteqsection.name+"."+n).replace(/^\./,"")+")"}, + formatID: function (n) { + n = (seteqsection.name+'.'+n).replace + (/[:"'<>&]/g,"").replace(/^\./,""); + return 'mjx-eqn-' + n; + } + } + } + }); +}); +</script> + +<!-- http://docs.mathjax.org/en/latest/options/ThirdParty.html --> +<script type="text/x-mathjax-config"> + MathJax.Ajax.config.path["Contrib"] = + "https://cdn.mathjax.org/mathjax/contrib"; +</script> + +<!-- https://github.com/mathjax/MathJax-third-party-extensions/ + tree/master/siunitx --> +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + extensions: ["tex2jax.js","[Contrib]/siunitx/siunitx.js"], + jax: ["input/TeX","output/HTML-CSS"], + tex2jax: {inlineMath: [["$","$"],["\\(","\\)"]]}, + TeX: {extensions: ["AMSmath.js","AMSsymbols.js", "sinuitx.js"]} + }); + </script> + +<script type="text/x-mathjax-config"> +MathJax.Hub.Config({ + TeX: { + equationNumbers: { + autoNumber: "AMS" + } + } +}); +</script> + +<!-- Alternative CDN provider: --> +<script type="text/javascript" async +src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML-full"> +</script> + +<!-- No longer supported after April 30, 2017: --> +<!-- +<script + src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full"> +</script> +--> + +\end{VerbatimOut} +\end{warpprint} + + +\begin{LWR@createlwarpmk} + +\begin{VerbatimOut}{lwarpmk.lua} +#!/usr/bin/env texlua + +-- Copyright 2016-2017 Brian Dunn + +-- Print the usage of the lwarpmk command: + +printversion = "v0.30" + +function printhelp () +print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ; +end + +function printusage () +print ( [[ + +lwarpmk print [project]: Compile a print version. +lwarpmk printindex [project]: Process the index for the print version. +lwarpmk printglossary [project]: Process the glossary for the print version. +lwarpmk html [project]: Compile an HTML version. +lwarpmk htmlindex [project]: Process the index for the html version. +lwarpmk htmlglossary [project]: Process the glossary for the html version. +lwarpmk again [project]: Touch the source code to trigger recompiles. +lwarpmk limages [project]: Process the "lateximages" created by lwarp.sty. +lwarpmk pdftohtml [project]: + For use with latexmk or a Makefile: + Convert project_html.pdf to project_html.html and + individual HTML files. +lwarpmk clean [project]: Remove project.aux, .toc, .lof/t, .idx, .ind, .log, .gl* +lwarpmk cleanall [project]: Remove auxiliary files and also project.pdf, *.html +lwarpmk -h: Print this help message. +lwarpmk --help: Print this help message. + +]] ) +printconf () +end + +-- Print the format of the configuration file lwarpmk.conf: + +function printconf () +print ( [[ +An example lwarpmk.conf or <project>.lwarpmkconf project file: +-- +opsystem = "Unix" (or "Windows") +latexname = "pdflatex" (or "lualatex", or "xelatex") +sourcename = "projectname" (the source-code filename w/o .tex) +homehtmlfilename = "index" (or perhaps the project name) +htmlfilename = "" (or "projectname" - filename prefix) +latexmk = "false" (or "true" to use latexmk to build PDFs) +languge = "english" (use a language supported by xindy) +xdyfile = "lwarp.xdy" (or a custom file based on lwarp.xdy) +-- +Filenames must contain only letters, numbers, underscore, or dash. +Values must be in "quotes". + +]] ) ; +end + +-- Split one large sourcefile into a number of files, +-- starting with destfile. +-- The file is split at each occurance of <!--|Start file|newfilename|* + +function splitfile (destfile,sourcefile) +print ("lwarpmk: Splitting " .. sourcefile .. " into " .. destfile) ; +io.input(sourcefile) +io.output(destfile) +for line in io.lines() do +i,j,copen,cstart,newfilename = string.find (line,"(.*)|(.*)|(.*)|") ; +if ( (i~= nil) and (copen == "<!--") and (cstart == "Start file")) then -- split the file +io.output(newfilename) ; +else -- not a splitpoint +io.write (line .. "\n") ; +end +end -- do +end -- function + +-- Incorrect value, so print an error and exit. + +function cvalueerror ( line, linenum , cvalue ) + print ( linenum .. " : " .. line ) ; + print ("lwarpmk: incorrect variable value \"" .. cvalue .. "\" in lwarpmk.conf.\n" ) ; + printconf () ; + os.exit(1) ; +end + +-- Load settings from the project's "lwarpmk.conf" file: + +function loadconf () +-- Default configuration filename: +local conffile = "lwarpmk.conf" +-- Optional configuration filename: +if arg[2] ~= nil then conffile = arg[2]..".lwarpmkconf" end +-- Default language: +language = "english" +-- Default xdyfile: +xdyfile = "lwarp.xdy" +-- Verify the file exists: +if (lfs.attributes(conffile,"mode")==nil) then -- file not exists +print("lwarpmk: " .. conffile .." does not exist.") +print("lwarpmk: " .. arg[2] .. " does not appear to be a project name.\n") +printhelp () ; +os.exit(1) -- exit the entire lwarpmk script +else -- file exists +-- Read the file: +print ("lwarpmk: Reading " .. conffile ..".") +io.input(conffile) ; +-- Scan each line: +local linenum = 0 +for line in io.lines() do -- scan lines +linenum = linenum + 1 +i,j,cvarname,cvalue = string.find (line,"([%w-_]*)%s*=%s*\"([%w%-_%.]*)\"") ; +-- Error if incorrect enclosing characters: +if ( i == nil ) then +print ( linenum .. " : " .. line ) ; +print ( "lwarpmk: Incorrect entry in " .. conffile ..".\n" ) ; +printconf () ; +os.exit(1) ; +end +if ( cvarname == "opsystem" ) then + -- Verify choice of opsystem: + if ( (cvalue == "Unix") or (cvalue == "Windows") ) then + opsystem = cvalue + else + cvalueerror ( line, linenum , cvalue ) + end +elseif ( cvarname == "latexname" ) then + -- Verify choice of LaTeX compiler: + if ( + (cvalue == "pdflatex") or + (cvalue == "xelatex") or + (cvalue == "lualatex") + ) then + latexname = cvalue + else + cvalueerror ( line, linenum , cvalue ) + end +elseif ( cvarname == "sourcename" ) then sourcename = cvalue +elseif ( cvarname == "homehtmlfilename" ) then homehtmlfilename = cvalue +elseif ( cvarname == "htmlfilename" ) then htmlfilename = cvalue +elseif ( cvarname == "latexmk" ) then latexmk = cvalue +elseif ( cvarname == "language" ) then language = cvalue +elseif ( cvarname == "xdyfile" ) then xdyfile = cvalue +else +print ( linenum .. " : " .. line ) ; +print ("lwarpmk: Incorrect variable name \"" .. cvarname .. "\" in " .. conffile ..".\n" ) ; +printconf () ; +os.exit(1) ; +end +end -- do scan lines +end -- file exists +-- Select some operating-system commands: +if opsystem=="Unix" then -- For Unix / Linux / Mac OS: +rmname = "rm" +mvname = "mv" +touchnamepre = "touch" +touchnamepost = "" +dirslash = "/" +opquote= "\'" +elseif opsystem=="Windows" then -- For Windows +rmname = "DEL" +mvname = "MOVE" +touchnamepre = "COPY /b" +touchnamepost = "+,," +dirslash = "\\" +opquote= "\"" +else print ( "lwarpmk: Select Unix or Windows for opsystem" ) +end --- for Windows + +-- set xindycmd according to pdflatex vs xelatex/lualatex: +if ( latexname == "pdflatex" ) then +xindycmd = "texindy -C utf8" +glossarycmd = "xindy -C utf8" +else +xindycmd = "xindy -M texindy -C utf8" +glossarycmd = "xindy -C utf8" +end + +end -- loadconf + +function refreshdate () +os.execute(touchnamepre .. " " .. sourcename .. ".tex " .. touchnamepost) +end + +-- Scan the LaTeX log file for the phrase "Rerun to get", +-- indicating that the file should be compiled again. +-- Return true if found. + +function reruntoget (filesource) +io.input(filesource) +for line in io.lines() do +if ( string.find(line,"Rerun to get") ~= nil ) then return true end +end +return false +end + +-- Compile one time, return true if should compile again. +-- fsuffix is "" for print, "_html" for HTML output. + +function onetime (fsuffix) +print("lwarpmk: Compiling with " .. latexname .. " " .. sourcename..fsuffix) +err = os.execute( +-- "echo " .. + latexname .. " " .. sourcename..fsuffix ) +if ( err ~= 0 ) then print ( "lwarpmk: Compile error.") ; os.exit(1) ; end +return (reruntoget(sourcename .. fsuffix .. ".log") ) ; +end + +-- Compile up to five times. +-- fsuffix is "" for print, "_html" for HTML output + +function manytimes (fsuffix) +if onetime(fsuffix) == true then +if onetime(fsuffix) == true then +if onetime(fsuffix) == true then +if onetime(fsuffix) == true then +if onetime(fsuffix) == true then +end end end end end +end + +-- Exit if the given file does not exist. + +function verifyfileexists (filename) +if (lfs.attributes ( filename , "modification" ) == nil ) then +print ( "lwarpmk: " .. filename .. " not found." ) ; +os.exit (1) ; +end +end + +-- Convert <project>_html.pdf into HTML files: + +function pdftohtml () + -- Convert to text: + print ("lwarpmk: Converting " .. sourcename + .."_html.pdf to " .. sourcename .. "_html.html") + os.execute("pdftotext -enc UTF-8 -nopgbrk -layout " + .. sourcename .. "_html.pdf " .. sourcename .. "_html.html") + -- Split the result into individual HTML files: + splitfile (homehtmlfilename .. ".html" , sourcename .. "_html.html") +end + +-- Remove auxiliary files: + +function removeaux () + os.execute ( rmname .. " " .. + sourcename ..".aux " .. sourcename .. "_html.aux " .. + sourcename ..".toc " .. sourcename .. "_html.toc " .. + sourcename ..".lof " .. sourcename .. "_html.lof " .. + sourcename ..".lot " .. sourcename .. "_html.lot " .. + sourcename ..".idx " .. sourcename .. "_html.idx " .. + sourcename ..".ind " .. sourcename .. "_html.ind " .. + sourcename ..".log " .. sourcename .. "_html.log " .. + sourcename ..".gl* " .. sourcename .. "_html.gl* " + ) +end + +-- Create lateximages based on lateximages.txt: +function createlateximages () +print ("lwarpmk: Creating lateximages.") +io.input("lateximages.txt") +-- Create the lateximages directory, ignore error if alreadt exists +err = os.execute("mkdir lateximages") +-- Scan lateximages.txt +for line in io.lines() do +-- lwimgpage is the page number in the PDF which has the image +-- lwimgnum is the sequential lateximage number to assign for the image +i,j,lwimgpage,lwimgnum = string.find (line,"|(.*)|(.*)|") +-- For each entry: +if ( (i~=nil) ) then +-- Separate out the image into its own single-page pdf: +err = os.execute( +"pdfseparate -f " .. lwimgpage .. " -l " .. + lwimgpage .. " " .. sourcename .."_html.pdf lateximagetemp-%d.pdf") +-- Crop the image: +err = os.execute( +"pdfcrop --hires lateximagetemp-" .. lwimgpage ..".pdf lateximage-" .. lwimgnum ..".pdf") +if ( err ~= 0 ) then print ( "lwarpmk: File error.") ; os.exit(1) ; end +-- Convert the image to svg: +err = os.execute( +"pdftocairo -svg lateximage-" .. lwimgnum ..".pdf lateximage-" .. lwimgnum ..".svg") +if ( err ~= 0 ) then print ( "lwarpmk: File error.") ; os.exit(1) ; end +-- Move the result into lateximages/: +err = os.execute( +mvname .. " lateximage-" .. lwimgnum ..".svg lateximages" .. dirslash ) +if ( err ~= 0 ) then print ( "lwarpmk: File error.") ; os.exit(1) ; end +-- Remove the temporary files: +err = os.execute( +rmname .. " lateximage-" .. lwimgnum ..".pdf lateximagetemp-" .. lwimgpage ..".pdf") +if ( err ~= 0 ) then print ( "lwarpmk: File error.") ; os.exit(1) ; end +end +end -- do +end -- function + +-- Use latexmk to compile source and index: +-- fsuffix is "" for print, or "_html" for HTML +function compilelatexmk ( fsuffix ) + -- The recorder option is required to detect changes in <project>.tex + -- while we are loading <project>_html.tex. + err=os.execute ( "latexmk -pdf -dvi- -ps- -recorder " + .. "-e " + .. opquote + .. "$makeindex = q/" + .. xindycmd + .. " -M " .. xdyfile + .. " -L " .. language .. " /" + .. opquote + .. " -pdflatex=\"" .. latexname .." %O %S\" " + .. sourcename..fsuffix ..".tex" ) ; + if ( err ~= 0 ) then print ( "lwarpmk: Compile error.") ; os.exit(1) ; end +end + +-- lwarpmk --version : + +if (arg[1] == "--version") then +print ( "lwarpmk: " .. printversion ) + +else -- not -- version + +-- print intro: + +print ("lwarpmk: " .. printversion .. " Automated make for the LaTeX lwarp package.") + +-- lwarpmk print: + +if arg[1] == "print" then +loadconf () +if ( latexmk == "true" ) then + compilelatexmk ("") + print ("lwarpmk: Done.") +else -- not latexmk + verifyfileexists (sourcename .. ".tex") ; + -- See if up to date: + if ( + ( lfs.attributes ( sourcename .. ".pdf" , "modification" ) == nil ) or + ( + lfs.attributes ( sourcename .. ".tex" , "modification" ) > + lfs.attributes ( sourcename .. ".pdf" , "modification" ) + ) + ) then + -- Recompile if not yet up to date: + manytimes("") + print ("lwarpmk: Done.") ; + else + print ("lwarpmk: " .. sourcename .. ".pdf is up to date.") ; + end +end -- not latexmk + +-- lwarp printindex: +-- Compile the index then touch the source +-- to trigger a recompile of the document: + +elseif arg[1] == "printindex" then +loadconf () +print ("lwarpmk: Processing the index.") +os.execute( + xindycmd + .. " -M " .. xdyfile + .. " -L " .. language + .. " " .. sourcename .. ".idx") +print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.") +refreshdate () +print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.") +print ("lwarpmk: Done.") + +-- lwarp printglossary: +-- Compile the glossary then touch the source +-- to trigger a recompile of the document: + +elseif arg[1] == "printglossary" then +loadconf () +print ("lwarpmk: Processing the glossary.") + +os.execute(glossarycmd .. " -L " .. language .. " -I xindy -M " .. sourcename .. + " -t " .. sourcename .. ".glg -o " .. sourcename .. ".gls " + .. sourcename .. ".glo") +print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.") +refreshdate () +print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.") +print ("lwarpmk: Done.") + +-- lwarpmk html: + +elseif arg[1] == "html" then +loadconf () +if ( latexmk == "true" ) then + compilelatexmk ("_html") + pdftohtml () + print ("lwarpmk: Done.") +else -- not latexmk + verifyfileexists ( sourcename .. ".tex" ) ; + -- See if exists and is up to date: + if ( + ( lfs.attributes ( homehtmlfilename .. ".html" , "modification" ) == nil ) or + ( + lfs.attributes ( sourcename .. ".tex" , "modification" ) > + lfs.attributes ( homehtmlfilename .. ".html" , "modification" ) + ) + ) then + -- Recompile if not yet up to date: + manytimes("_html") + pdftohtml () + print ("lwarpmk: Done.") + else + print ("lwarpmk: " .. homehtmlfilename .. ".html is up to date.") + end +end -- not latexmk + +elseif arg[1] == "pdftohtml" then + loadconf () + pdftohtml () + +-- lwarpmk htmlindex: +-- Compile the index then touch the source +-- to trigger a recompile of the document: + +elseif arg[1] == "htmlindex" then +loadconf () +print ("lwarpmk: Processing the index.") +os.execute( + xindycmd + .. " -M " .. xdyfile + .. " -L " .. language + .. " " .. sourcename .. "_html.idx" +) +print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.") +refreshdate () +print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.") +print ("lwarpmk: Done.") + +-- lwarpmk htmlglossary: +-- Compile the glossary then touch the source +-- to trigger a recompile of the document: + +elseif arg[1] == "htmlglossary" then +loadconf () +print ("lwarpmk: Processing the glossary.") + +os.execute(glossarycmd .. " -L " .. language .. " -I xindy -M " ..sourcename .. + "_html -t " .. sourcename .. "_html.glg -o " ..sourcename .. + "_html.gls " ..sourcename .. "_html.glo") + +print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.") +refreshdate () +print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.") +print ("lwarpmk: Done.") + +-- lwarpmk limages: +-- Scan the lateximages.txt file to create lateximages, +-- then touch the source to trigger a recompile. + +elseif arg[1] == "limages" then +loadconf () +print ("lwarpmk: Processing images.") +createlateximages () +print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.") +refreshdate () +print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.") +print ("lwarpmk: Done.") + +-- lwarpmk again: +-- Touch the source to trigger a recompile. + +elseif arg[1] == "again" then +loadconf () +print ("lwarpmk: Forcing an update of " .. sourcename ..".tex.") +refreshdate () +print ("lwarpmk: " .. sourcename ..".tex is ready to be recompiled.") +print ("lwarpmk: Done.") + +-- lwarpmk clean: +-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl* + +elseif arg[1] == "clean" then +loadconf () +removeaux () +print ("lwarpmk: Done.") + +-- lwarpmk cleanall +-- Remove project.aux, .toc, .lof, .lot, .idx, .ind, .log, .gl* +-- and also project.pdf, *.html + +elseif arg[1] == "cleanall" then +loadconf () +removeaux () +os.execute ( rmname .. " " .. + sourcename .. ".pdf " .. sourcename .. "_html.pdf " .. + "*.html" + ) +print ("lwarpmk: Done.") + +-- lwarpmk with no argument : + +elseif (arg[1] == nil) then +printhelp () + +-- lwarpmk -h or lwarpmk --help : + +elseif (arg[1] == "-h" ) or (arg[1] == "--help") then +printusage () + +else +print ("lwarpmk: Unknown command \""..arg[1].."\".\n") +printhelp () +end + +end -- not --version +\end{VerbatimOut} +\end{LWR@createlwarpmk} \begin{warpHTML} @@ -654,8 +2924,8 @@ top=1in,bottom=1in,% \providecommand*{\BaseJobname}{\jobname} -\providecommand*{\HTMLfiveName}{} -\providecommand*{\HomeHTMLFileName}{\BaseJobname} +\providecommand*{\HTMLFilename}{} +\providecommand*{\HomeHTMLFilename}{\BaseJobname} \newcommand*{\SetHTMLFileNumber}[1]{% \setcounter{LWR@htmlfilenumber}{#1}% @@ -689,18 +2959,18 @@ top=1in,bottom=1in,% \OR \equal{\LWR@tempone}{??}% }% {% -\LWR@traceinfo{LWR@htmlsectionfilename B \HomeHTMLFileName.html}% -\HomeHTMLFileName.html% +\LWR@traceinfo{LWR@htmlsectionfilename B \HomeHTMLFilename.html}% +\HomeHTMLFilename.html% }% {% \LWR@traceinfo{LWR@htmlsectionfilename C \LWR@tempone}% \ifthenelse{% -\equal{\HTMLfiveName}{} \AND \equal{\LWR@tempone}{Index} \OR \equal{\LWR@tempone}{index}% +\equal{\HTMLFilename}{} \AND \equal{\LWR@tempone}{Index} \OR \equal{\LWR@tempone}{index}% }% {% \LWR@traceinfo{prefixing the index name with an underscore.}% \_#1.html}% -{\HTMLfiveName#1.html}% +{\HTMLFilename#1.html}% }% \LWR@traceinfo{LWR@htmlsectionfilename Z}% } @@ -718,7 +2988,7 @@ top=1in,bottom=1in,% \newcommand*{\LinkHome}{% \LWR@subhyperrefclass{% -\HomeHTMLFileName.html}% +\HomeHTMLFilename.html}% {Home}{linkhome}% } @@ -1114,7 +3384,7 @@ top=1in,bottom=1in,% \renewcommand{\LWR@firstpagetop}{#1} \catcode`\_=8 } -\newcommand{\SetFirstPageTop}{% +\newcommand{\HTMLFirstPageTop}{% \catcode`\_=12 \LWR@setfirstpagetopb } @@ -1122,7 +3392,7 @@ top=1in,bottom=1in,% \renewcommand{\LWR@pagetop}{#1} \catcode`\_=8 } -\newcommand{\SetPageTop}{% +\newcommand{\HTMLPageTop}{% \catcode`\_=12 \LWR@setpagetopb } @@ -1130,7 +3400,7 @@ top=1in,bottom=1in,% \renewcommand{\LWR@pagebottom}{#1} \catcode`\_=8 } -\newcommand{\SetPageBottom}{% +\newcommand{\HTMLPageBottom}{% \catcode`\_=12 \LWR@setpagebottomb } @@ -1148,31 +3418,31 @@ top=1in,bottom=1in,% \catcode`\_=8 } -\newcommand*{\NewCSS}{ +\newcommand*{\CSSFilename}{ \catcode`\_=12 \LWR@newcssb } \end{warpHTML} \begin{warpprint} -\newcommand*{\NewCSS}[1]{} +\newcommand*{\CSSFilename}[1]{} \end{warpprint} \begin{warpall} -\newcommand{\theHTMLauthor}{\theauthor} +\newcommand{\theHTMLAuthor}{\theauthor} -\newcommand{\HTMLauthor}[1]{\renewcommand{\theHTMLauthor}{#1}} +\newcommand{\HTMLAuthor}[1]{\renewcommand{\theHTMLAuthor}{#1}} \end{warpall} \begin{warpall} -\newcommand{\LWR@currentHTMLdescription}{} +\newcommand{\LWR@currentHTMLDescription}{} -\newcommand{\NewHTMLdescription}[1]{% -\renewcommand{\LWR@currentHTMLdescription}{#1} +\newcommand{\HTMLDescription}[1]{% +\renewcommand{\LWR@currentHTMLDescription}{#1} } \end{warpall} @@ -1610,9 +3880,17 @@ top=1in,bottom=1in,% \end{warpHTML} -\begin{warpHTML} +\begin{warpall} -\newcommand*{\MetaLanguage}{en-US} +\newcommand*{\LWR@currentHTMLLanguage}{en-US} + +\newcommand*{\HTMLLanguage}[1]{% +\renewcommand*{\LWR@currentHTMLLanguage}{#1}% +} + +\end{warpall} + +\begin{warpHTML} \newcommand*{\LWR@filestart}[1]{ @@ -1631,17 +3909,17 @@ top=1in,bottom=1in,% \RenewDocumentCommand{\LWR@htmlspanclass}{m o +m}{##3} \DeclareExpandableDocumentCommand{\InlineClass}{m o m}{##3} \LWR@htmltag{!DOCTYPE html}\LWR@orignewline -\LWR@htmltag{html lang="\MetaLanguage"{}}\LWR@orignewline +\LWR@htmltag{html lang="\LWR@currentHTMLLanguage"{}}\LWR@orignewline \LWR@htmltag{head}\LWR@orignewline \LWR@htmltag{meta charset="UTF-8" /}\LWR@orignewline -\ifcsempty{theHTMLauthor}{}{ -\LWR@htmltag{meta name="author" content="\theHTMLauthor" /}\LWR@orignewline +\ifcsempty{theHTMLAuthor}{}{ +\LWR@htmltag{meta name="author" content="\theHTMLAuthor" /}\LWR@orignewline } \LWR@htmltag{meta name="generator" content="LaTeX lwarp package" /}% \LWR@orignewline -\ifdefempty{\LWR@currentHTMLdescription}{}{% +\ifdefempty{\LWR@currentHTMLDescription}{}{% \LWR@htmltag{% -meta name="description" content="\LWR@currentHTMLdescription" /}% +meta name="description" content="\LWR@currentHTMLDescription" /}% \LWR@orignewline }% \LWR@htmltag{meta name="viewport" % @@ -1682,10 +3960,10 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}% \setcounter{FileDepth}{-5}% \boolfalse{HTMLDebugComments}% }{} -\edef\LWR@strresult{\HomeHTMLFileName} -\edef\HomeHTMLFileName{\detokenize\expandafter{\LWR@strresult}} -\edef\LWR@strresult{\HTMLfiveName} -\edef\HTMLfiveName{\detokenize\expandafter{\LWR@strresult}} +\edef\LWR@strresult{\HomeHTMLFilename} +\edef\HomeHTMLFilename{\detokenize\expandafter{\LWR@strresult}} +\edef\LWR@strresult{\HTMLFilename} +\edef\HTMLFilename{\detokenize\expandafter{\LWR@strresult}} \LWR@origonecolumn% \LWR@origscriptsize% \LWR@origraggedright% @@ -3689,9 +5967,7 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}% \endgroup \@esphack} -\newcommand*{\hyperindexref}[1]{ -\nameref{LWRindex-#1}% -} +\newcommand*{\hyperindexref}[1]{\nameref{LWRindex-#1}} \end{warpHTML} @@ -5011,39 +7287,6 @@ display:inline-block;"% \end{warpHTML} - -\providecommand*{\HomeHTMLFileName}{\BaseJobname} -\providecommand*{\HTMLfiveName}{} -\providecommand*{\UseLatexmk}{false} - -\begin{warpprint} -\ifcsdef{LWR@file}{}{\newwrite{\LWR@file}} -\immediate\openout\LWR@file=lwarpmk.conf -\ifwindows -\immediate\write\LWR@file{opsystem = "Windows"} -\else -\immediate\write\LWR@file{opsystem = "Unix"} -\fi -\ifPDFTeX -\immediate\write\LWR@file{latexname = "pdflatex"} -\fi -\ifXeTeX -\immediate\write\LWR@file{latexname = "xelatex"} -\fi -\ifLuaTeX -\immediate\write\LWR@file{latexname = "lualatex"} -\fi -\immediate\write\LWR@file{sourcename = "\jobname"} -\immediate\write\LWR@file{% -homehtmlfilename = "\HomeHTMLFileName"% -} -\immediate\write\LWR@file{htmlfilename = "\HTMLfiveName"} -\immediate\write\LWR@file{uselatexmk = "\UseLatexmk"} -\immediate\write\LWR@file{language = "\LWR@lwarpmklang"} -\immediate\closeout\LWR@file -\end{warpprint} - - \endinput %% %% End of file `lwarp.sty'. |