diff options
author | Karl Berry <karl@freefriends.org> | 2017-04-29 22:24:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-04-29 22:24:28 +0000 |
commit | 85935959636bed572e9a4916d5373565cbcdc79b (patch) | |
tree | cefad06ac27ff673ee40c9fdae8adaf2f732e731 /Master/texmf-dist/tex/latex/lwarp | |
parent | f73d138cf7df8989e3e97d47731a4ca4754fd399 (diff) |
lwarp (29apr17)
git-svn-id: svn://tug.org/texlive/trunk@44119 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/lwarp')
-rw-r--r-- | Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty | 2217 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/lwarp/lwarp.sty | 2399 |
2 files changed, 2321 insertions, 2295 deletions
diff --git a/Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty b/Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty deleted file mode 100644 index dadda5adcd6..00000000000 --- a/Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty +++ /dev/null @@ -1,2217 +0,0 @@ -%% -%% This is file `lwarp-newproject.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% lwarp.dtx (with options: `lwarp-newproject') -%% This is a generated file. -%% Copyright 2016-2017 Brian Dunn -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. - -\ProvidesPackage{lwarp-newproject} - -\RequirePackage{etoolbox} -\RequirePackage{comment} -\RequirePackage{fancyvrb} -\RequirePackage{ifplatform}% sense op-system platform -\RequirePackage{iftex}% sense pdflatex/lualatex/xelatex -\RequirePackage{kvoptions} -\SetupKeyvalOptions{family=LWRNP,prefix=LWRNP@} - -\newbool{LWRNP@genconf} -\boolfalse{LWRNP@genconf} - -\excludecomment{LWR@createlwarpmk} - -\DeclareVoidOption{warpprint}{\booltrue{LWRNP@genconf}} -\DeclareVoidOption{warpHTML}{\boolfalse{LWRNP@genconf}} -\DeclareVoidOption{lwarpmk}{\includecomment{LWR@createlwarpmk}} -\DeclareStringOption[\jobname]{BaseJobname} -\DeclareStringOption[english]{lwarpmklang} - -\booltrue{LWRNP@genconf}% warpprint - -\ProcessKeyvalOptions*\relax - -\providecommand*{\BaseJobname}{\LWRNP@BaseJobname} - -\providecommand*{\HomeHTMLFileName}{\BaseJobname} -\providecommand*{\HTMLfiveName}{} -\providecommand*{\UseLatexmk}{false} - -\ifbool{LWRNP@genconf}{\typeout{lwarp-newproject: generating configuration files}}{} - -\ifbool{LWRNP@genconf}{ -\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{\PassOptionsToPackage}% -{warpHTML,BaseJobname=\jobname}{lwarp-newproject}% -} -\immediate\write\LWR@file{% -\detokenize{\input}\string{\jobname.tex\string }% -} -\immediate\closeout\LWR@file -}{} - -\ifbool{LWRNP@genconf}{ -\ifcsdef{LWR@file}{}{\newwrite{\LWR@file}} -\immediate\openout\LWR@file=\jobname.lwarpmkconf -\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 = "\LWRNP@lwarpmklang"} -\immediate\closeout\LWR@file -}{} - - -\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} - - -\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} - - -\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} - - -\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} - - -\begin{VerbatimOut}{lwarp_html.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} - - -\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} - - -\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.29" - -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) -uselatexmk = "false" (or "true" to use latexmk to build PDFs) -languge = "english" (use a language supported by xindy) --- -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" --- 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 == "uselatexmk" ) then uselatexmk = cvalue -elseif ( cvarname == "language" ) then language = 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 -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 - --- 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 ( uselatexmk == "true" ) then - os.execute ( "latexmk -pdf -dvi- -ps- -pdflatex=\"" .. latexname .." %O %S\" " .. sourcename ..".tex" ) ; - 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("texindy -M lwarp_html.xdy " .. 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("xindy -L " .. language .. " -C utf8 -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 ( uselatexmk == "true" ) then - -- 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/texindy -M lwarp_html.xdy/" .. opquote - .. " -pdflatex=\"" .. latexname .." %O %S\" " - .. sourcename .."_html.tex" ) ; - if ( err ~= 0 ) then print ( "lwarpmk: Compile error.") ; os.exit(1) ; end - 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("texindy -M lwarp_html.xdy " .. 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("xindy -L " .. language .. " -C utf8 -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} - -\endinput -%% -%% End of file `lwarp-newproject.sty'. 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'. |