summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-04-29 22:24:28 +0000
committerKarl Berry <karl@freefriends.org>2017-04-29 22:24:28 +0000
commit85935959636bed572e9a4916d5373565cbcdc79b (patch)
treecefad06ac27ff673ee40c9fdae8adaf2f732e731
parentf73d138cf7df8989e3e97d47731a4ca4754fd399 (diff)
lwarp (29apr17)
git-svn-id: svn://tug.org/texlive/trunk@44119 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua78
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl28
-rw-r--r--Master/texmf-dist/doc/latex/lwarp/README.txt2
-rw-r--r--Master/texmf-dist/doc/latex/lwarp/lwarp.pdfbin1472957 -> 1482832 bytes
-rw-r--r--Master/texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt49
-rwxr-xr-xMaster/texmf-dist/scripts/lwarp/lwarpmk.lua78
-rw-r--r--Master/texmf-dist/source/latex/lwarp/lwarp.dtx6211
-rw-r--r--Master/texmf-dist/source/latex/lwarp/lwarp.ins1
-rw-r--r--Master/texmf-dist/tex/latex/lwarp/lwarp-newproject.sty2217
-rw-r--r--Master/texmf-dist/tex/latex/lwarp/lwarp.sty2399
10 files changed, 5685 insertions, 5378 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua b/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
index 9b7e7e29197..07334170924 100755
--- a/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
+++ b/Build/source/texk/texlive/linked_scripts/lwarp/lwarpmk.lua
@@ -4,7 +4,7 @@
-- Print the usage of the lwarpmk command:
-printversion = "v0.29"
+printversion = "v0.30"
function printhelp ()
print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -45,8 +45,9 @@ 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)
+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".
@@ -90,6 +91,8 @@ local conffile = "lwarpmk.conf"
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.")
@@ -104,7 +107,7 @@ io.input(conffile) ;
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-_]*)\"") ;
+i,j,cvarname,cvalue = string.find (line,"([%w-_]*)%s*=%s*\"([%w%-_%.]*)\"") ;
-- Error if incorrect enclosing characters:
if ( i == nil ) then
print ( linenum .. " : " .. line ) ;
@@ -133,8 +136,9 @@ elseif ( cvarname == "latexname" ) then
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 == "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" ) ;
@@ -160,6 +164,16 @@ 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 ()
@@ -215,8 +229,10 @@ end
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")
+ 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
@@ -273,6 +289,24 @@ 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
@@ -288,8 +322,8 @@ print ("lwarpmk: " .. printversion .. " Automated make for the LaTeX lwarp pack
if arg[1] == "print" then
loadconf ()
-if ( uselatexmk == "true" ) then
- os.execute ( "latexmk -pdf -dvi- -ps- -pdflatex=\"" .. latexname .." %O %S\" " .. sourcename ..".tex" ) ;
+if ( latexmk == "true" ) then
+ compilelatexmk ("")
print ("lwarpmk: Done.")
else -- not latexmk
verifyfileexists (sourcename .. ".tex") ;
@@ -316,7 +350,11 @@ end -- not latexmk
elseif arg[1] == "printindex" then
loadconf ()
print ("lwarpmk: Processing the index.")
-os.execute("texindy -M lwarp_html.xdy " .. sourcename .. ".idx")
+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.")
@@ -330,7 +368,7 @@ elseif arg[1] == "printglossary" then
loadconf ()
print ("lwarpmk: Processing the glossary.")
-os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " .. sourcename ..
+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.")
@@ -342,15 +380,8 @@ print ("lwarpmk: Done.")
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
+if ( latexmk == "true" ) then
+ compilelatexmk ("_html")
pdftohtml ()
print ("lwarpmk: Done.")
else -- not latexmk
@@ -383,7 +414,12 @@ elseif arg[1] == "pdftohtml" then
elseif arg[1] == "htmlindex" then
loadconf ()
print ("lwarpmk: Processing the index.")
-os.execute("texindy -M lwarp_html.xdy " .. sourcename .. "_html.idx")
+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.")
@@ -397,7 +433,7 @@ elseif arg[1] == "htmlglossary" then
loadconf ()
print ("lwarpmk: Processing the glossary.")
-os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " ..sourcename ..
+os.execute(glossarycmd .. " -L " .. language .. " -I xindy -M " ..sourcename ..
"_html -t " .. sourcename .. "_html.glg -o " ..sourcename ..
"_html.gls " ..sourcename .. "_html.glo")
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
index f8f3e55ba42..ebc97294ea4 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,13 +1,13 @@
#!/usr/bin/env perl
-# $Id: tlmgr.pl 44076 2017-04-27 08:51:00Z preining $
+# $Id: tlmgr.pl 44109 2017-04-28 23:12:11Z karl $
#
# Copyright 2008-2017 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
#
-my $svnrev = '$Revision: 44076 $';
-my $datrev = '$Date: 2017-04-27 10:51:00 +0200 (Thu, 27 Apr 2017) $';
+my $svnrev = '$Revision: 44109 $';
+my $datrev = '$Date: 2017-04-29 01:12:11 +0200 (Sat, 29 Apr 2017) $';
my $tlmgrrevision;
my $prg;
if ($svnrev =~ m/: ([0-9]+) /) {
@@ -7134,6 +7134,12 @@ out).
If I<value> is given in addition, I<key> is set to I<value> in the
respective file. I<No error checking is done!>
+Here is a practical example of changing configuration values. If the
+execution of (some or all) system commands via C<\write18> was left
+enabled during installation, you can disable it afterwards:
+
+ tlmgr conf texmf shell_escape 0
+
For C<texmf>, an additional subcommand C<auxtrees> allows adding and
removing arbitrary additional texmf trees, completely under user
control. C<texmf auxtrees show> shows the list of additional trees,
@@ -7145,18 +7151,12 @@ C<ROOT/texmf.cnf>. Example:
tlmgr conf texmf auxtrees add /my/quick/test/tree
tlmgr conf texmf auxtrees remove /my/quick/test/tree
-In all cases the file used can be explicitly specified via the option
-C<--conffile I<file>>, in case one wants to operate on a different file.
+In all cases the configuration file can be explicitly specified via the
+option C<--conffile> I<file>, if desired.
-The C<PATH> value shown is that used by C<tlmgr>. The directory in
-which the C<tlmgr> executable is found is automatically prepended to the
-PATH value inherited from the environment.
-
-A practical example of changing configuration values: if the execution of
-(some or all) system commands via C<\write18> was left enabled during
-installation, you can disable it afterwards:
-
- tlmgr conf texmf shell_escape 0
+The C<PATH> value shown is as used by C<tlmgr>. The directory in which
+the C<tlmgr> executable is found is automatically prepended to the PATH
+value inherited from the environment.
Warning: The general facility is here, but tinkering with settings in
this way is strongly discouraged. Again, no error checking on either
diff --git a/Master/texmf-dist/doc/latex/lwarp/README.txt b/Master/texmf-dist/doc/latex/lwarp/README.txt
index cd0004b7712..f5b9d35fafe 100644
--- a/Master/texmf-dist/doc/latex/lwarp/README.txt
+++ b/Master/texmf-dist/doc/latex/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.29 README.txt
+LaTeX lwarp package v0.30 README.txt
Files included are:
diff --git a/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf b/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
index b334c8805d5..7cac958b166 100644
--- a/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
+++ b/Master/texmf-dist/doc/latex/lwarp/lwarp.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt b/Master/texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt
index 89da7124729..bd28114bd9b 100644
--- a/Master/texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt
+++ b/Master/texmf-dist/doc/latex/lwarp/lwarp_tutorial.txt
@@ -6,49 +6,55 @@
\usepackage{iftex}
% --- LOAD FONT SELECTION AND ENCODING BEFORE LOADING LWARP ---
+
\ifPDFTeX
-\usepackage{lmodern} % pdflatex
+\usepackage{lmodern} % pdflatex
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\else
-\usepackage{fontspec} % XeLaTeX or LuaLaTeX
+\usepackage{fontspec} % XeLaTeX or LuaLaTeX
\fi
-% --- HTML FILENAME AND LATEXMK SETTINGS ---
-% \newcommand{\HomeHTMLFilename}{index} % Filename of the homepage.
-% \newcommand{\HTMLFileName}{node-} % Filename prefix of other pages.
-% \newcommand{\UseLatexmk}{true}% Uncomment to use latexmk
-
% --- LWARP IS LOADED NEXT ---
-\usepackage{lwarp-newproject} % Possibly with the [lwarpmk] option.
-\usepackage{lwarp}
+\usepackage[
+% HomeHTMLFilename=index, % Filename of the homepage.
+% HTMLFilename={node-}, % Filename prefix of other pages.
+% IndexLanguage=english, % Language for xindy index, glossary.
+% latexmk, % Use latexmk to compile.
+% OSWindows, % Force Windows. (Usually automatic.)
+% mathjax, % Use MathJax to display math.
+]{lwarp}
% \boolfalse{FileSectionNames} % If false, numbers the files.
% --- OTHER PACKAGES ARE LOADED AFTER LWARP ---
\usepackage{makeidx} \makeindex
-\usepackage{xcolor}
-
+\usepackage{xcolor} % (Demonstration purposes only.)
\usepackage{hyperref,cleveref} % LOAD THESE LAST!
% --- LATEX AND HTML CUSTOMIZATION ---
\title{The Lwarp Tutorial}
\author{Some Author}
-\setcounter{tocdepth}{2} % Include subsections in the TOC.
+\setcounter{tocdepth}{2} % Include subsections in the \TOC.
\setcounter{secnumdepth}{2} % Number down to subsections.
-\setcounter{FileDepth}{1} % Split HTML files at sections
+\setcounter{FileDepth}{1} % Split \HTML\ files at sections
\booltrue{CombineHigherDepths} % Combine parts/chapters/sections
-\setcounter{SideTOCDepth}{1} % Include subsections in the sideTOC
-\SetFirstPageTop{Name and \fbox{HOMEPAGE LOGO}}
-\SetPageTop{\fbox{LOGO}}
-\SetPageBottom{Contact Information and Copyright}
-\NewCSS{lwarp_sagebrush.css}
+\setcounter{SideTOCDepth}{1} % Include subsections in the side\TOC
+\HTMLAuthor{Some Author} % Sets the HTML meta author tag.
+\HTMLLanguage{en-US} % Sets the HTML meta language.
+\HTMLDescription{A description.}% Sets the HTML meta description.
+\HTMLFirstPageTop{Name and \fbox{HOMEPAGE LOGO}}
+\HTMLPageTop{\fbox{LOGO}}
+\HTMLPageBottom{Contact Information and Copyright}
+\CSSFilename{lwarp_sagebrush.css}
\begin{document}
-\maketitle % (or a titlepage environment)
-% --- An abstract may be placed here. ---
+\maketitle % Or titlepage/titlingpage environment.
+
+% An article abstract would go here.
-\tableofcontents \listoffigures % --- MUST BE BEFORE THE FIRST SECTION.
+\tableofcontents % MUST BE BEFORE THE FIRST SECTION BREAK!
+\listoffigures
\chapter{First chapter}
@@ -68,6 +74,7 @@ See \cref{fig:withtext}.
\section{Some math}
Inline math: $r = r_0 + vt - \frac{1}{2}at^2$
+followed by display math:
\begin{equation}
a^2 + b^2 = c^2
\end{equation}
diff --git a/Master/texmf-dist/scripts/lwarp/lwarpmk.lua b/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
index 9b7e7e29197..07334170924 100755
--- a/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
+++ b/Master/texmf-dist/scripts/lwarp/lwarpmk.lua
@@ -4,7 +4,7 @@
-- Print the usage of the lwarpmk command:
-printversion = "v0.29"
+printversion = "v0.30"
function printhelp ()
print ("lwarpmk: Use lwarpmk -h or lwarpmk --help for help.") ;
@@ -45,8 +45,9 @@ 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)
+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".
@@ -90,6 +91,8 @@ local conffile = "lwarpmk.conf"
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.")
@@ -104,7 +107,7 @@ io.input(conffile) ;
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-_]*)\"") ;
+i,j,cvarname,cvalue = string.find (line,"([%w-_]*)%s*=%s*\"([%w%-_%.]*)\"") ;
-- Error if incorrect enclosing characters:
if ( i == nil ) then
print ( linenum .. " : " .. line ) ;
@@ -133,8 +136,9 @@ elseif ( cvarname == "latexname" ) then
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 == "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" ) ;
@@ -160,6 +164,16 @@ 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 ()
@@ -215,8 +229,10 @@ end
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")
+ 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
@@ -273,6 +289,24 @@ 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
@@ -288,8 +322,8 @@ print ("lwarpmk: " .. printversion .. " Automated make for the LaTeX lwarp pack
if arg[1] == "print" then
loadconf ()
-if ( uselatexmk == "true" ) then
- os.execute ( "latexmk -pdf -dvi- -ps- -pdflatex=\"" .. latexname .." %O %S\" " .. sourcename ..".tex" ) ;
+if ( latexmk == "true" ) then
+ compilelatexmk ("")
print ("lwarpmk: Done.")
else -- not latexmk
verifyfileexists (sourcename .. ".tex") ;
@@ -316,7 +350,11 @@ end -- not latexmk
elseif arg[1] == "printindex" then
loadconf ()
print ("lwarpmk: Processing the index.")
-os.execute("texindy -M lwarp_html.xdy " .. sourcename .. ".idx")
+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.")
@@ -330,7 +368,7 @@ elseif arg[1] == "printglossary" then
loadconf ()
print ("lwarpmk: Processing the glossary.")
-os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " .. sourcename ..
+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.")
@@ -342,15 +380,8 @@ print ("lwarpmk: Done.")
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
+if ( latexmk == "true" ) then
+ compilelatexmk ("_html")
pdftohtml ()
print ("lwarpmk: Done.")
else -- not latexmk
@@ -383,7 +414,12 @@ elseif arg[1] == "pdftohtml" then
elseif arg[1] == "htmlindex" then
loadconf ()
print ("lwarpmk: Processing the index.")
-os.execute("texindy -M lwarp_html.xdy " .. sourcename .. "_html.idx")
+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.")
@@ -397,7 +433,7 @@ elseif arg[1] == "htmlglossary" then
loadconf ()
print ("lwarpmk: Processing the glossary.")
-os.execute("xindy -L " .. language .. " -C utf8 -I xindy -M " ..sourcename ..
+os.execute(glossarycmd .. " -L " .. language .. " -I xindy -M " ..sourcename ..
"_html -t " .. sourcename .. "_html.glg -o " ..sourcename ..
"_html.gls " ..sourcename .. "_html.glo")
diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
index 73ca057c437..27c7a4d3f13 100644
--- a/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
+++ b/Master/texmf-dist/source/latex/lwarp/lwarp.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2017/04/15 v0.29 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2017/04/29 v0.30 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -58,8 +58,7 @@
\usepackage[log-declarations=false]{xparse}
-\usepackage[lwarpmk]{lwarp-newproject}
-\usepackage{lwarp}
+\usepackage[lwarpmk]{lwarp}
\usepackage{needspace}
@@ -91,7 +90,6 @@
\excludecomment{testing}
-
% \usepackage{morefloats}
% \usepackage{marginfix}
@@ -131,6 +129,12 @@
\DescribeEnv{#1}%
}
+\newcommand{\ItemDescribeOption}[1]{%
+\item[\texttt{#1}:]%
+\setlength{\parskip}{1.5ex}%
+\DescribeOption{#1}%
+}
+
\newcommand{\ItemDescribeCounter}[1]{%
\item[\texttt{#1}:]%
\setlength{\parskip}{1.5ex}%
@@ -300,7 +304,8 @@ code apply to the generation of \HTML, print, or both forms of output.
}
\newcommand{\limitspageref}{\pkg{cleveref} and \pkg{varioref} are supported,
-but printed page numbers do not map to \HTML.
+but printed page numbers do not map to \HTML, so a section name or a text phrase
+are used instead.
See \cref{sec:successfulcommands} to redefine the message which is printed
for page number references.
}
@@ -319,6 +324,13 @@ of the home page if it is after the abstract.
\newcommand{\limitstext}{\cs{textbf}, etc.\ are supported,
but \cs{bfseries}, etc.\ are not yet supported.}
+\newcommand{\limitsreferences}{%
+\cs{nameref} refers to the most recently-used section where the \cs{label}
+was defined. If no section has been defined before the \cs{label},
+the link will be empty.
+Index entries also use \cs{nameref} and have the same limitation.
+}
+
\newcommand{\limitsfootnotes}{
\pkg{lwarp} uses native \LaTeX\ footnote code, although with its own
\cs{box} to avoid the \LaTeX\ output routine. The usual functions work as-is.
@@ -910,24 +922,29 @@ For now, the number list is simply turned off.
\texttt{htmlglossary} to process the glossaries created by
\pkg{glossaries} using \texttt{xindy}.
-The packages \pkg{lwarp-newproject} and \pkg{lwarp} each take an option
-\DescribeOption[lwarp-newproject]{lwarpmklang}
-\DescribeOption[lwarp]{lwarpmklang}
-\texttt{lwarpmklang=english} to set the language used by \texttt{xindy}.
-Set the same option for both packages.
-This is passed to \texttt{xindy} using its \texttt{-L} option.
+The package \pkg{lwarp} takes an option
+\DescribeOption{IndexLanguage}
+\texttt{IndexLanguage=english} to set the language used by \texttt{xindy}.
+This is passed to \texttt{xindy} using its \texttt{-L} option, and is
+used for both index and glossary generation.
}
\newcommand{\osportabilityusage}{%
\pkg{lwarp} tries to detect which operating system is being used.
+\DescribeProgram{Unix}\DescribeProgram{Mac OS}\DescribeProgram{Linux}
+\textsc{Unix}~/ \textsc{Mac~OS}~/ \textsc{Linux} is the default
+(collectively referred to as ``\textsc{Unix}'' in the configuration files),
+and \textsc{MS-Windows} is supported as well.
-If \textsc{MS-Windows} is not correctly detected,
+If \textsc{Windows} is not correctly detected,
\DescribeProgram{MS-Windows} \DescribeProgram{Windows}
-use the command \cs{warpOSwindows} in the document
-\DescribeMacro{\warpOSwindows}
-preamble after \pkg{lwarp} is loaded. This modifies the
-operating-system path separator used by \pkg{lwarp}.
+use the \pkg{lwarp} option \texttt{OSWindows}.
+\DescribeOption{OSWindows}
+
+When detected or specified, the operating-system path separator used by \pkg{lwarp}
+is modified, the boolean \texttt{usingOSWindows} is set true.
+This boolean may be tested by the user for later use.
}
@@ -955,7 +972,7 @@ operating-system path separator used by \pkg{lwarp}.
%<*package>
% \fi
%
-% \CheckSum{10986}
+% \CheckSum{10974}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -1023,6 +1040,7 @@ operating-system path separator used by \pkg{lwarp}.
% \changes{v0.27}{2017/04/04}{\ 2017/04/04}
% \changes{v0.28}{2017/04/14}{\ 2017/04/14}
% \changes{v0.29}{2017/04/15}{\ 2017/04/15}
+% \changes{v0.30}{2017/04/29}{\ 2017/04/29}
@@ -1156,15 +1174,97 @@ operating-system path separator used by \pkg{lwarp}.
% For a detailed list of changes, see the Change History on page \pageref{sec:changehistory}.
%
% \begin{description}
+% \item[v0.30:] \
+% \begin{itemize}
+% \item \pkg{lwarp-newproject} has been removed, and its functions
+% \watchout[\pkg{lwarp-newproject}]
+% have been combined with \pkg{lwarp}.
+%
+% To modify existing documents, remove from the document source:
+% \begin{sourcedisplay}
+% \cs{usepackage}\{lwarp-newproject\}
+% \end{sourcedisplay}
+%
+% The \pkg{lwarp} package now produces the configuration files during
+% print output, and also accepts the option |lwarpmk| if desired.
+%
+% \item A number of macros
+% \watchout[HTML setup changes.]
+% related to \HTML\ settings have been converted to options, and
+% other macros and options have been renamed to create a consistent syntax:
+% \begin{center}
+% \begin{tabular}{ll}
+% \toprule
+% Old Macro & New Package Option \\ \midrule
+% \cs{HomeHTMLFileName} & |HomeHTMLFilename| \\
+% \cs{HTMLFileName} & |HTMLFilename| \\
+% \cs{useLatexmk} & |latexmk| \\
+% \cs{warpOSwindows} & |OSWindows| \\[2.5ex] \toprule
+% Old Package Option & New Package Option \\ \midrule
+% |lwarpmklang| & |IndexLanguage| \\
+% (new) & |xdyFilename| \\[2.5ex] \toprule
+% Old Macro & New Macro \\ \midrule
+% \cs{MetaLanguage} & \cs{HTMLLanguage} \\
+% \cs{HTMLauthor} & \cs{HTMLAuthor} \\
+% \cs{NewHTMLdescription} & \cs{HTMLDescription} \\
+% \cs{SetFirstPageTop} & \cs{HTMLFirstPageTop} \\
+% \cs{SetPageTop} & \cs{HTMLPageTop} \\
+% \cs{SetPageBottom} & \cs{HTMLPageBottom} \\
+% \cs{NewCSS} & \cs{CSSFilename} \\
+% \bottomrule
+% \end{tabular}
+% \end{center}
+%
+% \needspace{2\baselineskip}
+% \item Per the above changes, in existing documents,
+% modify the package load of \pkg{lwarp}, such as:
+% \begin{Verbatim}[tabsize=4,gobble=2]
+% \usepackage[
+% HomeHTMLFilename=index,
+% HTMLFilename={},
+% IndexLanguage=english
+% ]{lwarp}
+% \end{Verbatim}
+%
+% \item The file |lwarp_html.xdy| has been renamed |lwarp.xdy|.
+% To update each document's project:
+% \begin{enumerate}
+% \item Make the changes shown above.
+% \item Recompile the document in print mode.
+% This updates the project's configuration files, and also generates the
+% new file |lwarp.xdy|.
+% \item The old file |lwarp_html.xdy| may be deleted.
+% \end{enumerate}
+%
+% \item The new \pkg{lwarp} package option |xdyFilename| may be used to tell
+% |lwarpmk| to use a custom |.xdy| file instead of |lwarp.xdy|.
+% See \cref{sec:modifyxindy}.
+%
+% \item Improvements in index processing:
+% \begin{itemize}
+% \item |xindy|'s language is now used for index processing
+% as well as glossary.
+% \item Print mode without |latexmk| now uses |xindy| instead of |makeindex|.
+% \item |texindy|/|xindy| usage depends on |pdflatex| vs |xelatex|, |lualatex|.
+% \item For |pdflatex| and |texindy|, the |-C utf8| option is used. This is
+% supported in modern distributions, but a customized |lwarpmk.lua| may
+% need to be created for use with older distributions.
+% \end{itemize}
+%
+% \end{itemize}
+%
+% \needspace{2\baselineskip}
+%
% \item[v0.29:] \
% \begin{itemize}
% \item Add: |lwarpmklang| option for \pkg{lwarp-newproject} and \pkg{lwarp}.
% Sets the language to use while processing the glossary.
+% (As of v0.30, this has been changed to the |IndexLanguage| option.)
% \item Fix: \cs{includegraphics} when no optional arguments.
% \end{itemize}
% \item[v0.28:] \
% \begin{itemize}
-% \item \cs{HTMLauthor} \marg{name} assigns \HTML\ meta author if non-empty.
+% \item \cs{HTMLAuthor} \marg{name} assigns \HTML\ meta author if non-empty.
% Defaults to \cs{theauthor}.
% \item Booean |HTMLDebugComments| controls whether \HTML\ comments are
% added for closing \tag{div}s, opening and closing sections, etc.
@@ -1261,17 +1361,20 @@ operating-system path separator used by \pkg{lwarp}.
% \item A new tutorial is included in the documentation, and
% many obsolete sections have been removed.
% \item \cs{NewHTMLdescription} sets the \HTML\ meta description tag for each file.
-% See \cref{sec:htmldescription}.
-% \item \cs{HTMLFileName} may now be empty, allowing filenames without a prefix.
+% See \cref{sec:htmldescription}. (v0.30 changes this to \cs{HTMLDescription}.)
+% \item \cs{HTMLFilename} may now be empty, allowing filenames without a prefix.
% Lwarp no longer automatically appends a |-| character.
% \watchout
-% For existing projects, add a |-| to the end of \cs{HTMLFileName}.
-% \item \cs{HomeHTMLFileName} and \cs{HTMLFileName} no longer use
+% For existing projects, add a |-| to the end of \cs{HTMLFilename}.
+% \item \cs{HomeHTMLFilename} and \cs{HTMLFilename} no longer use
% escaped underscore\watchout\
% characters. Underscores may be used in filenames as-is.
+% (Version 0.30 changes these to package options |HomeHTMLFilename| and
+% |HTMLFilename|.)
% \item \pkg{lwarp} now tries to auto-detect the operating system,
% and \cs{warpOSwindows} is only needed if the auto-detection
-% fails to detect Windows.
+% fails to detect Windows. (As of v0.30, \cs{warpOSwindows} has been converted to
+% the |OSWindows| option.)
% \item Tabular column types |@|, |>|, and |<| are now supported.
% \item |BlockClass| and \cs{InlineClass} add an optional style.
% \item The |sidebar| and |example| environments have been moved to the
@@ -1378,8 +1481,10 @@ operating-system path separator used by \pkg{lwarp}.
% the conversion from a \LaTeX{}-generated \PDF\ file which happens to have \HTMLfive\ tags,
% to a number of \HTMLfive\ plain-text files and accompanying images.
%
-% A special |lwarp-newproject| package is used to set up the auxiliary files necessary for
-% the \HTML\ conversion. Included is a parallel version of the user's source document,
+% \pkg{lwarp} automatically generates the extra files necessary for
+% the \HTML\ conversion, such as \CSS\ and |.xdy| files, and configuration files
+% for the utility |lwarpmk|.
+% Also included is a parallel version of the user's source document,
% |<sourcename>-html.tex|, which selects \HTML\ output and then inputs the user's own source.
% This process allows both the printed and \HTML\ versions to co-exist side-by-side,
% each with their own auxiliary files.
@@ -1660,7 +1765,7 @@ operating-system path separator used by \pkg{lwarp}.
%
% (Watch for improvements in cross-references to figures and tables.)
%
-% \subsection{Word Processors}
+% \subsection{Word processors}
%
% It should be noted that the popular word processors
% \DescribeProgram{Word}\DescribeProgram{LibreOffice}\DescribeProgram{OpenOffice}
@@ -1670,7 +1775,7 @@ operating-system path separator used by \pkg{lwarp}.
% See recent developments in Microsoft\,\textregistered{} Word\,\textregistered{}
% and LibreOffice\,\texttrademark{} Writer.
%
-% \subsection{Commercial Systems}
+% \subsection{Commercial systems}
%
% Likewise, several professional systems exist whose
% \DescribeProgram{Adobe} \DescribeProgram{FrameMaker}
@@ -1751,13 +1856,10 @@ operating-system path separator used by \pkg{lwarp}.
%
% \item[The \pkg{lwarp} package:] This package.
%
-% \item[The \pkg{lwarp-newproject} package:] Accompanies \pkg{lwarp}, and used
-% to create configuration files.
-%
% \item[The |lwarpmk| utility:] Provided along with this package. This
% should be an operating-system executable in the same way that
% |pdflatex| or |latexmk| is. It is possible to have the
-% \pkg{lwarp-newproject} package generate a local copy of |lwarpmk|
+% \pkg{lwarp} package generate a local copy of |lwarpmk|
% called |lwarpmk.lua|.
% See \cref{sec:genlatexmk}.
%
@@ -2004,9 +2106,9 @@ operating-system path separator used by \pkg{lwarp}.
% It is also possible to use a local version of |lwarpmk|:
% \begin{enumerate}
% \item When compiling the tutorial in \cref{sec:tutorial},
-% use the |lwarpmk| option for the \pkg{lwarp-newproject} package:
+% use the |lwarpmk| option for the \pkg{lwarp} package:
% \begin{sourcedisplay}
-% |\usepackage[lwarpmk]{lwarp-newproject}|
+% |\usepackage[lwarpmk]{lwarp}|
% \end{sourcedisplay}
% \item When the tutorial is compiled with |pdflatex|, the file |lwarpmk.lua|
% will be generated along with the other configuration files.
@@ -2160,8 +2262,8 @@ operating-system path separator used by \pkg{lwarp}.
%
% Another copy may be found by entering into a command line:
% \DescribeFile{lwarp_tutorial.txt}
-% \userentry{texdoc -l lwarp\_tutorial.txt}
% \watchout[Note: |.txt| suffix!]
+% \userentry{texdoc -l lwarp\_tutorial.txt}
%
% This should be in the |doc/latex/lwarp/| directory along
% with this \PDF\ documentation.
@@ -2170,7 +2272,7 @@ operating-system path separator used by \pkg{lwarp}.
% \end{description}
%
% \emph{When using Windows, use an editor other than Notepad,
-% \watchout[Bad Formatting!]
+% \watchout[Bad formatting!]
% since Notepad does not accept the end-of-line from a Unix text file.}
%
% \item Compile the project: \userentry{pdflatex tutorial.tex}
@@ -2178,16 +2280,18 @@ operating-system path separator used by \pkg{lwarp}.
%
% (|xelatex| or |lualatex| may be used as well.)
%
+% \item View the resulting |tutorial.pdf| with a \PDF\ viewer.
+%
% \end{enumerate}
%
%
% A number of new files are created when |tutorial.tex| is compiled, as
% shown in \cref{fig:newprojectfiles}. These files are created by
-% the |lwarp-newproject| package.
+% the |lwarp| package.
%
% (Two of the new files are configuration files for the helper program |lwarpmk|.
-% Whenever a print version of the document is created while the |lwarp-newproject|
-% package is used, the configuration files for |lwarpmk| are updated to
+% Whenever a print version of the document is created,
+% the configuration files for |lwarpmk| are updated to
% record the operating system, \LaTeX\ program (|pdflatex|, |xelatex|, or |lualatex|),
% the filenames of the source code and \HTML\ output, and whether
% the additional helper program |latexmk| will be used to compile the document.)
@@ -2207,93 +2311,24 @@ operating-system path separator used by \pkg{lwarp}.
%
% \small
%
-% \begin{Verbatim}[gobble=2]
-%
-% % Save this as tutorial.tex for the lwarp package tutorial.
-%
-% \documentclass{book}
-%
-% \usepackage{iftex}
-%
-% % --- LOAD FONT SELECTION AND ENCODING BEFORE LOADING LWARP ---
-% \ifPDFTeX
-% \usepackage{lmodern} % pdflatex
-% \usepackage[T1]{fontenc}
-% \usepackage[utf8]{inputenc}
-% \else
-% \usepackage{fontspec} % XeLaTeX or LuaLaTeX
-% \fi
-%
-% % --- HTML FILENAME AND LATEXMK SETTINGS ---
-% % \newcommand{\HomeHTMLFilename}{index} % Filename of the homepage.
-% % \newcommand{\HTMLfiveName}{node-} % Filename prefix of other pages.
-% % \newcommand{\UseLatexmk}{true}% Uncomment to use latexmk
-%
-% % --- LWARP IS LOADED NEXT ---
-% \usepackage{lwarp-newproject} % Possibly with the [lwarpmk] option.
-% \usepackage{lwarp}
-% % \boolfalse{FileSectionNames} % If false, numbers the files.
-%
-% % --- OTHER PACKAGES ARE LOADED AFTER LWARP ---
-% \usepackage{makeidx} \makeindex
-% \usepackage{xcolor}
-%
-% \usepackage{hyperref,cleveref} % LOAD THESE LAST!
-%
-% % --- LATEX AND HTML CUSTOMIZATION ---
-% \title{The Lwarp Tutorial}
-% \author{Some Author}
-% \setcounter{tocdepth}{2} % Include subsections in the \TOC.
-% \setcounter{secnumdepth}{2} % Number down to subsections.
-% \setcounter{FileDepth}{1} % Split \HTML\ files at sections
-% \booltrue{CombineHigherDepths} % Combine parts/chapters/sections
-% \setcounter{SideTOCDepth}{1} % Include subsections in the side\TOC
-% \SetFirstPageTop{Name and \fbox{HOMEPAGE LOGO}}
-% \SetPageTop{\fbox{LOGO}}
-% \SetPageBottom{Contact Information and Copyright}
-% \NewCSS{lwarp_sagebrush.css}
-%
-% \begin{document}
-% \maketitle % (or a titlepage environment)
-%
-% % --- An abstract may be placed here. ---
-%
-% \tableofcontents \listoffigures % --- MUST BE BEFORE THE FIRST SECTION.
-%
-% \chapter{First chapter}
-%
-% \section{A section}
-%
-% This is some text which is indexed.\index{Some text.}
-%
-% \subsection{A subsection}
-%
-% See \cref{fig:withtext}.
-%
-% \begin{figure}\begin{center}
-% \fbox{\textcolor{blue!50!green}{Text in a figure.}}
-% \caption{A figure with text\label{fig:withtext}}
-% \end{center}\end{figure}
-%
-% \section{Some math}
-%
-% Inline math: $r = r_0 + vt - \frac{1}{2}at^2$
-% \begin{equation}
-% a^2 + b^2 = c^2
-% \end{equation}
-%
-% \printindex
-%
-% \end{document}
-% \end{Verbatim}
+% \VerbatimInput{lwarp_tutorial.txt}
+%
+% ^^A **************************************************************************
+% ^^A NOTE: lwarp_tutorial.txt is located in the TDS doc directory!
+% ^^A Copy it to the source directory if you wish to recompile lwarp.dtx!
+% ^^A (It is stored in the doc directory so that texdoc can find it and
+% ^^A the user can copy it.)
+% ^^A **************************************************************************
+%
% \endgroup
%
%
% \begin{table}
-% \caption{Files created in a new project\label{fig:newprojectfiles}}
+% \caption{Files created along with the print version\label{fig:newprojectfiles}}
% \begin{description}
%
% \item [|tutorial.pdf|:] The \PDF\ output from \LaTeX.
+% The print version of the document.
%
% \item [|tutorial\_html.tex|:] A small |.tex| file used to create
% a parallel \HTML\ version of the document, which co-exists with usual
@@ -2301,7 +2336,7 @@ operating-system path separator used by \pkg{lwarp}.
% own auxiliary files. In this way, both \PDF\ and \HTML\
% documents may co-exist side-by-side.
%
-% \item [Auxiliary files:] The usual \LaTeX\ files |tutorial.aux|, |tutorial.log|.
+% \item [Auxiliary files:] The usual \LaTeX\ files |.aux|, |.log|, |.out|, |.toc|, |.lof|, |.idx|.
% When an \HTML\ version of the document is created, |_html| versions
% of the auxiliary files will also be generated.
%
@@ -2320,12 +2355,13 @@ operating-system path separator used by \pkg{lwarp}.
% \item [|sample\_project.css|:] An example of a user-customized \CSS\ file,
% which may be used for project-specific changes to the \pkg{lwarp} defaults.
%
-% \item [|lwarp\_html.xdy|:] Used by \pkg{lwarp} while creating an index.
-% This file should not need to be modified by the user.
+% \item [|lwarp.xdy|:] Used by \pkg{lwarp} while creating an index.
+% This file should not be modified by the user.
+% A custom file may be used instead, if necessary.
%
% \item [|lwarp\_mathjax.txt|:] Inserted into the \HTML\ files when
% |MathJax| is used to display math.
-% This file should not need to be modified by the user.
+% This file should not be modified by the user.
%
% \item [|comment.cut|:] A temporary file used by \pkg{lwarp} to
% conditionally process blocks of text. This file may be ignored.
@@ -2333,7 +2369,7 @@ operating-system path separator used by \pkg{lwarp}.
%
% \hrule \medskip
% \label{sec:genlatexmk}
-% When the |lwarpmk| option is given to the \pkg{lwarp-newproject} package:
+% When the |lwarpmk| option is given to the \pkg{lwarp} package:
% \begin{description}
% \item [|lwarpmk.lua|:] A local copy of the |lwarpmk| utility.
%
@@ -2383,10 +2419,9 @@ operating-system path separator used by \pkg{lwarp}.
% Although, when using the utility |latexmk| (introduced later), the changed date is
% ignored and an actual change in contents must occur to cause a recompile.}
%
-% \item Process the index.\footnote{A \texttt{lwarpmk printglossary} command is also
+% \item Process the index.\index{index>processing}\footnote{A \texttt{lwarpmk printglossary} command is also
% available to process a glossary produced with the \textsf{glossaries} package.
-% Set its language using the \texttt{lwarpmklang} option for \pkg{lwarp-newproject}
-% and \pkg{lwarp}.}
+% See \cref{sec:glossaries}.}
% \userentry{lwarpmk printindex}
%
% \item Recompile again to include the index.
@@ -2412,7 +2447,7 @@ operating-system path separator used by \pkg{lwarp}.
% \item |lwarpmk| uses \LaTeX\ to process |tutorial_html.tex|
% to create \\
% |tutorial_html.pdf|.
-% \item |pdftotext| is then used to convert into the file |tutorial_html.html|.
+% \item |pdftotext| is then used to convert to the file |tutorial_html.html|.
% This file is a plain-text file containing \HTML\ tags and
% content for the entire document.
% \item |lwarpmk| manually splits |tutorial_html.html| into
@@ -2435,7 +2470,7 @@ operating-system path separator used by \pkg{lwarp}.
% Note that math is still displayed as its plain-text \LaTeX\ source
% \margintag{math}
% until the
-% images of the math expressions have not yet been generated. Math may be
+% images of the math expressions have been generated. Math may be
% displayed as \SVG\ images or by a MathJax script, as seen in
% \cref{sec:tutorialsvgmath,sec:tutorialmathjax}.
%
@@ -2444,10 +2479,9 @@ operating-system path separator used by \pkg{lwarp}.
% \userentry{lwarpmk html}
% \userentry{lwarpmk print}
%
-% \item Process the \HTML\ index and recompile:\footnote{A \texttt{lwarpmk htmlglossary} command is also
+% \item Process the \HTML\ index and recompile:\index{index>processing}\footnote{A \texttt{lwarpmk htmlglossary} command is also
% available to process a glossary produced with the \textsf{glossaries} package.
-% Set its language using the \texttt{lwarpmklang} option for \pkg{lwarp-newproject}
-% and \pkg{lwarp}.}
+% See \cref{sec:glossaries}.}
% \userentry{lwarpmk htmlindex}
% \userentry{lwarpmk html}
%
@@ -2509,13 +2543,9 @@ operating-system path separator used by \pkg{lwarp}.
% \margintag{math with MathJax}
%
% \begin{enumerate}
-% \item In the tutorial's source code, change
+% \item In the tutorial's source code, uncomment the |mathjax| package option for \pkg{lwarp}:
% \begin{sourcedisplay}
-% |\usepackage{lwarp}|
-% \end{sourcedisplay}
-% to
-% \begin{sourcedisplay}
-% |\usepackage[mathjax]{lwarp}|
+% mathjax, \% Use MathJax to display math.
% \end{sourcedisplay}
%
% \item Recompile \userentry{lwarpmk html}
@@ -2537,34 +2567,34 @@ operating-system path separator used by \pkg{lwarp}.
% \clearpage
% \subsection{Changing the CSS style}
%
-% \DescribeMacro{\NewCSS}
-% \cs{NewCSS} may be used to choose which |.css| file is used to display
-% each section of the web page. Use \cs{NewCSS} before |\begin{document}|
+% \DescribeMacro{\CSSFilename}
+% \cs{CSSFilename} may be used to choose which |.css| file is used to display
+% each section of the web page. Use \cs{CSSFilename} before |\begin{document}|
% to assign the style of the home page.
% If different parts of the website should have different styles,
-% call \cs{NewCSS} again before each section heading which creates a new file.
+% call \cs{CSSFilename} again before each section heading which creates a new file.
%
% The styles provided by \pkg{lwarp} include:
% \begin{description}
-% \item[|lwarp.css|:] A default style if \cs{NewCSS} is not used. This
+% \item[|lwarp.css|:] A default style if \cs{CSSFilename} is not used. This
% style is comparable to a plain \LaTeX\ document.
-% To set this style, you may use |\NewCSS{lwarp.css}|, or no \cs{NewCSS} call at all.
+% To set this style, you may use |\CSSFilename{lwarp.css}|, or no \cs{CSSFilename} call at all.
% \item[|lwarp\_formal.css|:] A formal style with a serif fonts and a traditional
% look.
% \item[|lwarp\_sagebrush.css|:] A style with muted colors, gradient backgrounds,
% additional borders, and rounded corners.
% \end{description}
%
-% To see each style in use, change the \cs{NewCSS} entry in the tutorial
-% |lwarpmk html|, and then reload the webpage.
+% To see each style in use, change the \cs{CSSFilename} entry in the tutorial,
+% |lwarpmk html| again, and then reload the webpage.
%
% A customized style may also be created.
% \margintag{Custom \CSS}
% For each new project a file
% called |sample_project.css| is generated. This may be renamed to
-% |<project>.css| then used by assigning |\NewCSS{<project>.css|.
+% |<project>.css| then used by assigning |\CSSFilename{<project>.css}|.
%
-% Note that |sample_project.css| is overwritten whenever \pkg{lwarp-newproject}
+% Note that |sample_project.css| is overwritten whenever \pkg{lwarp}
% is loaded in print mode.
% It is therefore important to rename the file \watchout[Rename it!]
% to something like |<project>.css| before
@@ -2575,6 +2605,8 @@ operating-system path separator used by \pkg{lwarp}.
% desired. Additional changes to the \CSS\ may be made by making entries
% later in the |<project>.css| file.
%
+%
+%
% \clearpage
%
% \subsection{Customizing the HTML output}
@@ -2587,43 +2619,49 @@ operating-system path separator used by \pkg{lwarp}.
%
% Note that if changes are made,
% \watchout[Changes!]
-% it is best to first use |lwarpmk clearall| to
-% clear all the \HTML, \PDF, and auxiliary files.
-% Also, if \cs{HomeHTMLFilename}, \cs{HTMLFileName}, or \cs{UseLatexmk} are
-% changed, it is necessary to reenable the |lwarp-newproject| package and
-% then recompile the print version in order to recreate the configuration
-% files for |lwarpmk|.
+% it is best to first:
+% \begin{enumerate}
+% \item Clear all the \HTML, \PDF, and auxiliary files: \userentry{lwarpmk clearall}
+% \item Recompile the print version in order to recreate
+% the configuration files for |lwarpmk|: \userentry{lwarpmk print}
+% \item Finally, recompile the \HTML\ version with the new settings: \userentry{lwarpmk html}
+% \end{enumerate}
%
-% \begin{description}
+% \begin{description}[style=unboxed]
%
-% \item[Placed in the preamble just before \pkg{lwarp} is loaded:] \
+% \item[Options for the \pkg{lwarp} package:] \ \newline
+% Use the following as options for |\usepackage[<options>]{lwarp}|:
%
% \begin{description}
%
-% \ItemDescribeMacro{\HomeHTMLFilename} Filename of the homepage, without
+% \ItemDescribeOption{HomeHTMLFilename} Filename of the homepage, without
% the ``|.html|'' suffix.
% Defaults to the \cs{BaseJobname}. A common setting is:
% \begin{sourcedisplay}
-% |\newcommand{HomeHTMLFilename}{index}|
+% |HomeHTMLFilename=index|
% \end{sourcedisplay}
% causing the
% homepage to be the file |index.html|. Underscores are allowed in
-% \margintag{filename underscore}
-% \cs{HomeHTMLFilename} and \cs{HTMLFilename}, but usually must be escaped
-% elsewhere, such as |\item [\href{file\_name.pdf}{text}] \|
+% \margintag{filename underscores}
+% |HomeHTMLFilename| and |HTMLFilename| options, but may need to be escaped
+% elsewhere, such as when appearing in a list:
% \index{underscore>filename}\index{file>underscore}
% \changes{v0.24}{2017/03/13}{Docs: Filename underscore.}
+% \begin{sourcedisplay}
+% \cs{item} [\cs{href}\{file\textcolor{red}{\textbackslash\_}name.pdf\}\{text\}] \textbackslash
+% \end{sourcedisplay}
%
-% \ItemDescribeMacro{\HTMLfiveName} A filename prefix for the rest of the \HTML\ web pages.
+% \ItemDescribeOption{HTMLFilename} A filename prefix for the rest of the \HTML\ web pages.
% Useful for numbered web pages with a common prefix. May be empty.
%
-% \ItemDescribeMacro{\UseLatexmk} A macro which controls whether
+% \ItemDescribeOption{latexmk} Controls whether
% \pkg{lwarp} uses |latexmk| to
% compile the document. This setting is written to |lwarpmk|'s configuration
-% files. Defaults to false. Set to true with:
-% \begin{sourcedisplay}
-% |\newcommand*{\UseLatexmk}{true}|
-% \end{sourcedisplay}
+% files. Defaults to false.
+%
+% \ItemDescribeOption{mathsvg} Selects \SVG\ display for math output. (The default.)
+%
+% \ItemDescribeOption{mathjax} Selects MathJax for math output.
%
% \end{description}
%
@@ -2715,7 +2753,7 @@ operating-system path separator used by \pkg{lwarp}.
%
% \ItemDescribeBoolean{FileSectionNames} If true, web page filenames are
% derived from a sanitized version of the section names. If false, web pages
-% are numbered. Either way, the \cs{HTMLFileName} is prefixed.
+% are numbered. Either way, the |HTMLFilename| option is used as a prefix.
%
% Example \HTML\ filenames:
% \changes{v0.20}{2016/09/11}{Docs: Examples for generating \HTML\ file names.}
@@ -2728,9 +2766,10 @@ operating-system path separator used by \pkg{lwarp}.
% Example: Homepage |index.html|, and |node-1|, |node-2|.
% (See \cs{SetHTMLFileNumber} to number grouped by chapter, for example.)
% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
-% \newcommand{\HomeHTMLFileName}{index}
-% \newcommand{\HTMLfiveName}{node-}
-% \usepackage{lwarp}
+% \usepackage[
+% HomeHTMLFilename=index,
+% HTMLFilename={node-}
+% ]{lwarp}
% \boolfalse{FileSectionNames}
% \end{Verbatim}
%
@@ -2738,9 +2777,10 @@ operating-system path separator used by \pkg{lwarp}.
%
% Example: |index.html|, and |About.html|, |Products.html|
% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
-% \newcommand{\HomeHTMLFileName}{index}
-% \newcommand{\HTMLfiveName}{}
-% \usepackage{lwarp}
+% \usepackage[
+% HomeHTMLFilename=index,
+% HTMLFilename={}
+% ]{lwarp}
% \booltrue{FileSectionNames}
% \end{Verbatim}
%
@@ -2749,9 +2789,10 @@ operating-system path separator used by \pkg{lwarp}.
% Example: Homepage |mywebsite.html|, and additional pages such
% as |mywebsite-About.html|, etc.
% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
-% \newcommand{\HomeHTMLFileName}{mywebsite}
-% \newcommand{\HTMLfiveName}{mywebsite-}
-% \usepackage{lwarp}
+% \usepackage[
+% HomeHTMLFilename=mywebsite,
+% HTMLFilename={mywebsite-}
+% ]{lwarp}
% \booltrue{FileSectionNames}
% \end{Verbatim}
% \end{description}
@@ -2760,23 +2801,51 @@ operating-system path separator used by \pkg{lwarp}.
% This may also be over-written
% by the \pkg{babel} package. Defaults to ``Abstract''.
%
-% \ItemDescribeMacro{\MetaLanguage} The \HTML\ language meta header.
-% Defaults to {en-US}.
+% \end{description}
+%
+%
+% \item[Placed before \texttt{\cs{begin}\{document\}},
+% or before any sectioning command which causes a file break:] \
+%
+% \begin{description}
+% \ItemDescribeMacro{\CSSFilename} \marg{filename.css} \quad
+% Sets the \CSS\ file to use for the following
+% files. May be changed before each each sectioning command which would
+% cause a file split.
+%
+% The \CSS\ styles of the web pages are set by the \cs{CSSFilename} command.
+% If \cs{CSSFilename} is not used, a default plain style is used to mimic printed
+% \LaTeX\ output. |lwarp_sagebrush.css| is a semi-fancy colored style as shown
+% in this tutorial. Change it to |lwarp_formal.css| for a more formal look,
+% or comment out the \cs{CSSFilename} command to see the default.
+% \cs{CSSFilename} may be used before each file break to set the \CSS\ for
+% individual pagess of the website.
+%
+% \ItemDescribeMacro{\HTMLLanguage} The \HTML\ file's |html lang| tag.
+% Defaults to |en-US|.
+%
+% \ItemDescribeMacro{\HTMLAuthor} The \HTML\ header's meta author.
+% Defaults to \cs{theauthor}.
%
-% \ItemDescribeMacro{\SetFirstPageTop} \marg{contents} \quad
+% \ItemDescribeMacro{\HTMLDescription} \marg{description} \quad
+% Sets the \HTML\ description tag for
+% the following files. May be changed before each each sectioning command which would
+% cause a file split.
+%
+% \ItemDescribeMacro{\HTMLFirstPageTop} \marg{contents} \quad
% A user-definable custom action applied
% to the top of the home page. Useful for logos, etc.
% Defaults empty.
% Ignored in print output.
%
-% \ItemDescribeMacro{\SetPageTop} \marg{contents} \quad
+% \ItemDescribeMacro{\HTMLPageTop} \marg{contents} \quad
% A user-definable custom action applied to
% the top of pages other than the home page. Useful for logos, etc.
% Defaults empty.
% |\LinkHome| may be used to place a link back to the homepage.
% Ignored in print output.
%
-% \ItemDescribeMacro{\SetPageBottom} \marg{contents} \quad
+% \ItemDescribeMacro{\HTMLPageBottom} \marg{contents} \quad
% A user-definable custom action applied to the
% bottom of each web page.
% Useful for authors, copyright notices, contact information, etc.
@@ -2786,40 +2855,21 @@ operating-system path separator used by \pkg{lwarp}.
%
% \end{description}
%
-% \item[Placed in the home page before the first section break:] \
+%
+% \needspace{2\baselineskip}
+% \item[Placed in the home page before the first sectioning command which causes a file break:] \
%
% \begin{description}
% \ItemDescribeMacro{\tableofcontents}
% Used to place a table of contents on the home page.
-% This command must be used before the first file split, so that a way is
-% available to navigate to other files from the homepage.
+% This command must be used before the first file split,
+% \watchout[TOC on the homepage!]
+% so that a way is available to navigate to other files from the homepage.
%
% Links to each chapter/section are provided, as selected by |tocdepth|.
% \end{description}
%
%
-% \item[Placed before any sectioning command which causes a file break:] \
-%
-% \begin{description}
-% \ItemDescribeMacro{\NewCSS} \marg{filename.css} \quad
-% Sets the \CSS\ file to use for the following
-% files. May be changed before each each sectioning command which would
-% cause a file split.
-%
-% The \CSS\ styles of the web pages are set by the \cs{NewCSS} command.
-% If \cs{NewCSS} is not used, a default plain style is used to mimic printed
-% \LaTeX\ output. |lwarp_sagebrush.css| is a semi-fancy colored style as shown
-% in this tutorial. Change it to |lwarp_formal.css| for a more formal look,
-% or comment out the \cs{NewCSS} command to see the default.
-% \cs{NewCSS} may be used before each file break to set the \CSS\ for
-% individual pagess of the website.
-%
-% \ItemDescribeMacro{\NewHTMLdescription} \marg{description} \quad
-% Sets the \HTML\ description tag for
-% the following files. May be changed before each each sectioning command which would
-% cause a file split.
-% \end{description}
-%
% \needspace{2\baselineskip}
% \item[Placed in the document wherever necessary:] \
%
@@ -2854,15 +2904,14 @@ operating-system path separator used by \pkg{lwarp}.
% and recompile as needed.
%
% \begin{enumerate}
-% \item In the tutorial's source code, at ``HTML FILENAME AND LATEXMK SETTINGS'',
-% insert the line:
+% \item In the tutorial's source code uncomment the |latexmk| option for the
+% \pkg{lwarp} package:
% \begin{sourcedisplay}
-% |\newcommand{\UseLatexmk}{true}|
+% latexmk, \% Use latexmk to compile.
% \end{sourcedisplay}
%
-% \item Directly recompile the printed version of the document.
-% \userentry{pdflatex tutorial.tex} \watchout[NOT \texttt{lwarpmk}!]
-% (Or |xelatex| or |lualatex|)
+% \item Recompile the printed version of the document.
+% \userentry{lwarpmk print}
%
% \begin{sloppy}
% \pkg{lwarp} updates its own configuration files (|lwarpmk.conf| and \newline
@@ -2894,17 +2943,11 @@ operating-system path separator used by \pkg{lwarp}.
% \item Remove the auxiliary files for the project:
% \userentry{lwarpmk cleanall}
%
-% \item Be sure that
-% \begin{sourcedisplay}
-% |\usepackage{lwarp-newproject}|
-% \end{sourcedisplay}
-% is still enabled in |tutorial.tex|.
-%
% \item Use |xelatex| or |lualatex| to recompile the printed version.
% \userentry{xelatex tutorial.tex} \quad -or-
% \userentry{lualatex tutorial.tex}
%
-% When the recompile occurs and \pkg{lwarp-newproject} is loaded,
+% When the recompile occurs,
% the configuration files for |lwarpmk| are modified to remember
% which \TeX\ engine was used. \XeLaTeX\ or \LuaLaTeX\ will be used for
% future runs of |lwarpmk|.
@@ -2924,22 +2967,24 @@ operating-system path separator used by \pkg{lwarp}.
%
% \changes{v0.29}{2017/04/15}{Docs: Using a glossary}
%
-% \pkg{lwarp} supports the \pkg{glossaries} package.
+% \pkg{lwarp} supports the \pkg{glossaries} package, although this tutorial
+% does not supply an example.
%
-% \DescribeOption[lwarp-newproject]{lwarpmklang}
-% \DescribeOption[lwarp]{lwarpmklang}
-% To assign a language to be used while processing the glossary,
-% use the |lwarpmklang| option:
+% \DescribeOption{IndexLanguage}
+% To assign a language to be used while processing the index and glossary,
+% use the |IndexLanguage| option:
% \index{language>glossary}
+% \index{language>index}
% \index{glossary>language}
+% \index{index>language}
%
% \begin{Verbatim}[gobble=2,frame=lines]
-% \usepackage[lwarpmklang=english]{lwarp-newproject}
-% \usepackage[lwarpmklang=english]{lwarp}
+% \usepackage[IndexLanguage=english]{lwarp}
% \end{Verbatim}
%
% \index{glossary>processing}
% To process the glossary for the print version:
+% \index{glossary>processing}
% \userentry{lwarpmk printglossary}
%
% To process the glossary for the \HTML\ version:
@@ -3102,6 +3147,28 @@ operating-system path separator used by \pkg{lwarp}.
% \item \ldots{} the rest of the preamble and the main document.
% \end{enumerate}
%
+%
+% \subsubsection{Indexes and UTF-8}
+% \index{UTF-8>index}
+% \index{index>UTF-8}
+%
+% \pkg{lwarp} uses the |xindy| program to processes indexes.
+%
+% While using |xelatex| or |lualatex|, |xindy| is used for the index.
+% Everything is handled in UTF-8 encoding, and should work as expected.
+%
+% While using |pdflatex|, the |texindy| program is used with the |-C utf8| option,
+% which is newly supported in recent distributions of \LaTeX. This option correctly
+% sorts index entries into headings while using Latin languages, but will not work
+% well with others. \XeLaTeX\ or \LuaLaTeX\ are recommended for non-Latin languages.
+%
+% For an older distribution of \LaTeX, it may be necessary to generate a local version of
+% |lwarpmk.lua| and modify it to remove the |-C utf8| option from the texindy call.
+% See \cref{sec:modifylwarpmk}.
+%
+%
+%
+%
% \subsection{\protect\pkg{lwarp} package loading and options}
% \label{sec:loading}
% \index{settings>lwarp package options}
@@ -3114,23 +3181,49 @@ operating-system path separator used by \pkg{lwarp}.
% \DescribePackage{lwarp}
% \index{lwarp>loading}\index{lwarp>options}
%
-% \DescribeOption[lwarp]{warpprint}
-% \DescribeOption[lwarp]{warpHTML}
+% \DescribeOption{warpprint}
+% \DescribeOption{warpHTML}
% Select the |warpprint| option to generate print output (default),
% or the |warpHTML| option to generate \HTMLfive{} output.
% The default is print output, so the print version may be
% compiled with the usual |pdflatex|, etc.
-% When \pkg{lwarp-newproject} is loaded in print mode, it creates
+% When \pkg{lwarp} is loaded in print mode, it creates
% |<project>_html.tex|, which sets the |warpHTML| option before calling
% the user's source code |<project>.tex|. In this way, |<project>.tex|
% can |\usepackage{lwarp}| without any options to create a printed version,
% while |<project>_html.tex| will create an \HTML\ version.
%
-% \DescribeOption[lwarp]{mathsvg}
-% \DescribeOption[lwarp]{mathjax}
+% \DescribeOption{mathsvg}
+% \DescribeOption{mathjax}
% For math display, select |mathsvg| (default), or |mathjax|.
% For more information about the math options, see \cref{sec:limitsmath}.
%
+% See \cref{tab:options} for the full list of options.
+%
+%
+% \begin{table}
+% \caption{Package options\label{tab:options}}
+% \centering
+% \begin{tabular}{>{\ttfamily}lp{3.25in}}
+% Option & Description \\ \hline
+% warpprint & Generate print output, and also generate configuration files. \\
+% warpHTML & Generate \HTML\ output. \\
+% mathsvg & Show math using \SVG\ images. \\
+% mathjax & Show math using MathJax. \\
+% OSWindows & Force compatibility with MS-Windows. \\
+% BaseJobname & The \cs{jobname} to use.
+% Set to the \cs{jobname} of the printed version even while generating \HTML. \\
+% HomeHTMLFilename & The filename of the home page. \\
+% HTMLFilename & A prefix for the filenames of the remaining web pages. \\
+% IndexLanguage & The |xindy| language option used for index and glossary generation. \\
+% latexmk & Boolean for |lwarpmk| to use |latexmk| for compiling documents.
+% Otherwise, |lwarpmk| attempts to recompile several times by itself. \\
+% lwarpmk & Generate a local copy of |lwarpmk.lua|. \\
+% xdyFilename & Tells |lwarpmk| to use a custom filename for |xindy|, instead of |lwarp.xdy|. \\
+% \end{tabular}
+% \end{table}
+%
+%
%
% \subsection{Selecting the operating system}
% \label{sec:OSportabilityusage}
@@ -3384,7 +3477,7 @@ operating-system path separator used by \pkg{lwarp}.
% \index{HTML>meta tag>description}
% \index{description>HTML meta tag}
% \index{meta tag, HTML>description}
-% \DescribeMacro{\NewHTMLdescription} \marg{A description of the web page.}
+% \DescribeMacro{\HTMLDescription} \marg{A description of the web page.}
% \quad The default is no description.
%
% Each page of \HTML\ output should have its own \HTML\ meta description,
@@ -3393,20 +3486,20 @@ operating-system path separator used by \pkg{lwarp}.
% is limited to around
% 150 characters in length, and should not include the \acro{ASCII} double quote character (").
%
-% Use \cs{NewHTMLdescription}
+% Use \cs{HTMLDescription}
% \margintag{placement}
% just before |\begin{document}| to set the description of the home page,
% and also just before each sectioning command such as \cs{chapter} or \cs{section}
% where a new file will be generated, depending on |FileDepth|. For example, if |FileDepth| is 1,
-% use \cs{NewHTMLdescription} just before each \cs{section} command, and that description will be
+% use \cs{HTMLDescription} just before each \cs{section} command, and that description will be
% placed inside the \HTML\ page for that \cs{section}. The same descrition will be used for
-% all following \HTML\ files as well, until reset by a new \cs{NewHTMLdescription}. It is best
+% all following \HTML\ files as well, until reset by a new \cs{HTMLDescription}. It is best
% to use a unique description for each \HTML\ file.
%
% To disable the generation of \HTML\ description meta tags,
% \margintag{disabling}
% use:\\
-% \hspace*{1em} |\NewCSSdescription{}|
+% \hspace*{1em} |\HTMLDescription{}|
%
%
% \subsection{HTML page meta author}
@@ -3414,9 +3507,9 @@ operating-system path separator used by \pkg{lwarp}.
% \index{HTML>meta tag>author}
% \index{author>HTML meta tag}
% \index{meta tag, HTML>author}
-% \DescribeMacro{\HTMLauthor} \marg{author} \quad Sets the contents
+% \DescribeMacro{\HTMLAuthor} \marg{author} \quad Sets the contents
% of the web page \tag{meta name="author"} tag.
-% Defaults to |\HTMLauthor{\theauthor}|.
+% Defaults to |\HTMLAuthor{\theauthor}|.
% May be set empty to cancel the meta author tag.
%
%
@@ -3436,16 +3529,58 @@ operating-system path separator used by \pkg{lwarp}.
%
% \label{sec:setcss}
%
-% \DescribeMacro{\NewCSS}
+% \DescribeMacro{\CSSFilename}
% For each section at which \HTML\ files are split,
-% |\NewCSS| may be used before the sectioning command to select a \CSS\ file for that and all
+% |\CSSFilename| may be used before the sectioning command to select a \CSS\ file for that and all
% following sections. This may be changed numerous times throughout the file, resulting in
-% different \HTML\ pages having different \CSS\ files assigned.
+% different \HTML\ pages having different \CSS\ files assigned:
+% \begin{Verbatim}[gobble=2,tabsize=4]
+% ...
+% \newCSS{myCSS.css}
+% \chapter{Another Chapter}
+% ...
+% \end{Verbatim}
% \index{CSS>file selection}
% \index{CSS>per HTML page}
% \index{settings>CSS selection}
%
%
+% \subsection{Modifying \protect\texttt{xindy} index processing}
+% \label{sec:modifyxindy}
+%
+% \DescribeProgram{xindy}
+% \DescribeFile{lwarp.xdy}
+% \pkg{lwarpmk} uses the file |lwarp.xdy| to process the index.
+% \index{lwarp.xdy>customizing}
+% \index{xindy>customizing}
+% This file is over-written by \pkg{lwarp} whenever a print version of
+% the document is processed.
+%
+% To customize index processing:
+% \begin{enumerate}
+% \item Copy |lwarp.xdy| to a new filename such as |projectname.xdy|
+% \item Make changes to |projectname.xdy|.
+% Keep the line which says
+% \begin{Verbatim}[gobble=2,tabsize=4]
+% (markup-locref :open "\hyperindexref{" :close "}")
+% \end{Verbatim}
+% This line creates the hyperlinks for the \HTML\ index. During print output
+% \cs{hyperindexref} becomes a null function.
+% \item In the document source use the |xdyFilename| option for \pkg{lwarp}:
+% \DescribeOption{xdyFilename}
+% \begin{Verbatim}[gobble=2,tabsize=4]
+% \usepackage[
+% ... other options ...
+% xdyFilename=projectname.xdy,
+% ]{lwarp}
+% \end{Verbatim}
+% \item Recompile the print version, which causes
+% \pkg{lwarp} to rewrite the |lwarpmk.conf| configuration file.
+% This tells |lwarpmk| to use the custom |projectname.xdy| file instead of |lwarp.xdy|.
+% \end{enumerate}
+%
+%
+%
%
% \subsection{Special cases and limitations}
% \label{sec:limitations}
@@ -3454,6 +3589,17 @@ operating-system path separator used by \pkg{lwarp}.
%
% \limitstext
%
+% \subsubsection{Cross-references}
+%
+% \limitsreferences
+%
+% \subsubsection{\pkg{cleveref} and \pkg{varioref} packages}
+%
+% \changes{v0.22}{2017/03/01}{\pkg{varioref}: Supported.}
+%
+% \limitspageref
+%
+%
% \subsubsection{Footnotes and page notes}
%
% \limitsfootnotes
@@ -3468,7 +3614,7 @@ operating-system path separator used by \pkg{lwarp}.
% \margintag{custom MathJax macros}
% see page \pageref{ex:mathjaxmacros}.
%
-% \subsubsection{Ntheorem}
+% \subsubsection{\pkg{ntheorem} package}
%
% \limitsntheorem
%
@@ -3478,7 +3624,7 @@ operating-system path separator used by \pkg{lwarp}.
% \limitsgraphics
%
%
-% \subsubsection{Xcolor}
+% \subsubsection{\pkg{xcolor} package}
%
% \limitsxcolor
%
@@ -3488,7 +3634,7 @@ operating-system path separator used by \pkg{lwarp}.
% \limitstabular
%
%
-% \subsubsection{Longtable}
+% \subsubsection{\pkg{longtable} package}
%
% \limitslongtable
%
@@ -3505,7 +3651,7 @@ operating-system path separator used by \pkg{lwarp}.
% \limitsminipage
%
%
-% \subsubsection{Mdframed}
+% \subsubsection{\pkg{mdframed} package}
%
% \limitsmdframed
%
@@ -3535,13 +3681,6 @@ operating-system path separator used by \pkg{lwarp}.
% \limitsabstract
%
%
-% \subsubsection{\pkg{cleveref} and \pkg{varioref} packages}
-%
-% \changes{v0.22}{2017/03/01}{\pkg{varioref}: Supported.}
-%
-% \limitspageref
-%
-%
% \subsubsection{\pkg{verse} and \pkg{memoir}}
%
% \limitsverse
@@ -3576,6 +3715,7 @@ operating-system path separator used by \pkg{lwarp}.
%
%
% \subsubsection{\pkg{glossaries} package}
+% \label{sec:glossaries}
%
% \DescribePackage{glossaries}
% \limitsglossaries
@@ -3610,7 +3750,7 @@ operating-system path separator used by \pkg{lwarp}.
% To assign the author's name for regular \pkg{lwarp} \HTML\
% \margintag{\tag{meta} author}
% files, and also for the \EPUB,
-% use \cs{HTMLauthor} \marg{name}. This assigns the name to the
+% use \cs{HTMLAuthor} \marg{name}. This assigns the name to the
% \tag{meta} author tag. It may be set empty, and it defaults to
% \cs{theauthor}.
%
@@ -3848,12 +3988,8 @@ operating-system path separator used by \pkg{lwarp}.
% \HTML. The print output compiles faster, and any errors in the printed
% version will be easier to figure out than the \HTML\ version.
%
-% The package \pkg{lwarp-newproject} must be loaded to set up the configuration
-% files, but may be commented out from then on unless the configuration changes.
-% A small amount of time is taken each time \pkg{lwarp-newproject} is run.
-%
% Remember that the configuration files are only rewritten when compiling the
-% printed version of the document, and when \pkg{lwarp-newproject} is enabled.
+% printed version of the document.
%
% Sometimes it is worth checking the |<project>_html.pdf| file, which is the
% \PDF\ containing \HTML\ tags. Also, |<project>_html.html| has
@@ -3865,6 +4001,7 @@ operating-system path separator used by \pkg{lwarp}.
%
%
% \subsection{Modifying \protect\texttt{lwarpmk}}
+% \label{sec:modifylwarpmk}
%
% \changes{v0.28}{2017/04/14}{Docs: Modfying lwarpmk and index processing.}
%
@@ -3878,11 +4015,10 @@ operating-system path separator used by \pkg{lwarp}.
% A project-local copy of |lwarpmk.lua| may be generated, modified, and then used to
% compile documents:
% \begin{enumerate}
-% \item Add the |lwarpmk| option to the \pkg{lwarp-newproject} package.
+% \item Add the |lwarpmk| option to the \pkg{lwarp} package.
% \item Recompile the printed version of the document.
-% The |lwarpmk| option causes \pkg{lwarp-newproject} to create a local
-% copy of |lwarpmk.lua|
-% \item The |lwarpmk| option may now be removed from the \pkg{lwarp-newproject} package.
+% The |lwarpmk| option causes \pkg{lwarp} to create a local copy of |lwarpmk.lua|
+% \item The |lwarpmk| option may now be removed from the \pkg{lwarp} package.
% \item Copy and rename |lwarpmk.lua| to a new file such as |mymake.lua|.
% \item Modify |mymake.lua| as desired.
% \item If necessary, make |mymake.lua| executable.
@@ -3896,24 +4032,6 @@ operating-system path separator used by \pkg{lwarp}.
% look for ``|xindy|''.
%
%
-% \subsection{Modifying \protect\texttt{xindy} index processing}
-%
-% \DescribeProgram{xindy}
-% \DescribeFile{lwarp_html.xdy}
-% \index{lwarp\_html.xdy>customizing}
-% \index{xindy>customizing}
-% \pkg{lwarpmk} uses the file |lwarp_html.xdy| to process the index.
-% This file is over-written by \pkg{lwarp-newproject} whenever a print version of
-% the document is processed.
-%
-% To customize index processing:
-% \begin{enumerate}
-% \item Copy |lwarp_html.xdy| to a new filename such as |projectname.xdy|
-% \item Make changes to |projectname.xdy|
-% \item Make a new version of |lwarpmk|, as previously described,
-% which uses |xindy| with |projectname.xdy| instead of |lwarp_html.xdy|.
-% \end{enumerate}
-%
%
%
% \clearpage
@@ -3969,6 +4087,8 @@ operating-system path separator used by \pkg{lwarp}.
% \begin{itemize}
% \item Use |lwarpmk again| followed
% by |lwarpmk html| or |lwarpmk print| to compile the document one more time.
+% \item \limitsreferences
+% \item \limitspageref
% \end{itemize}
%
% \item [Em-dashes or En-dashes in listing captions and titles:] \
@@ -4009,7 +4129,7 @@ operating-system path separator used by \pkg{lwarp}.
% \item [Plain-looking document:] ~
% \begin{itemize}
% \item The document's \CSS\ stylesheet may not be available, or may be
-% linked incorrectly. Verify any \cs{NewCSS} statements point to
+% linked incorrectly. Verify any \cs{CSSFilename} statements point to
% a valid \CSS\ file.
% \end{itemize}
%
@@ -4057,6 +4177,11 @@ operating-system path separator used by \pkg{lwarp}.
% \subsection{Compiling the \protect\texttt{lwarp.dtx} file}
%
% \begin{description}
+% \item [\texttt{lwarp\_tutorial.tex}:] Copy or link |lwarp_tutorial.txt|
+% from the \acro{TDS} |doc| directory to the |source| directory,
+% or wherever you wish to compile the documentation.
+% This file is included verbatim into the documentation, but is in the |doc|
+% directory so that it may be found by |texdoc| and copied by the user.
% \item [Illogical error messages caused by an out-of-sync |lwarp.sty| file:] ~
% \begin{enumerate}
% \item Delete the |lwarp.sty| file.
@@ -4192,8 +4317,6 @@ operating-system path separator used by \pkg{lwarp}.
%
% \clearpage
%
-%
-%
% \section{Detecting the \TeX\ Engine — pdflatex, lualatex, xelatex}
%
% \begin{macrocode}
@@ -4242,11 +4365,11 @@ operating-system path separator used by \pkg{lwarp}.
\fi
% \end{macrocode}
%
+
+
+% \clearpage
%
-%
-% \section{Handling package options}
-% \label{sec:handlingpackageoptions}
-%
+% \section{Early package requirements}
%
% \DescribePackage{etoolbox}
% Provides |\ifbool| and other functions.
@@ -4276,6 +4399,76 @@ operating-system path separator used by \pkg{lwarp}.
+% \clearpage
+%
+%
+% \section{Operating-System portability}
+% \label{sec:OSportability}
+% \changes{v0.11}{2016/03/11}{Added section: Operating-System portability.}
+%
+% \osportabilityusage
+%
+%
+%
+% \subsection{Common portability code}
+%
+% \DescribeBoolean{usingOSWindows} Set if the |OSWindows| option is used.
+% \begin{macrocode}
+\newbool{usingOSWindows}
+\boolfalse{usingOSWindows}
+% \end{macrocode}
+
+%
+% \subsection{Unix, Linux, and Mac\,OS}
+
+% \begin{macro}{\OSPathSymbol}
+% Symbol used to separate directories in a path.
+% \begin{macrocode}
+\newcommand*{\OSPathSymbol}{/}
+% \end{macrocode}
+% \end{macro}
+
+
+% \subsection{MS-Windows}
+
+% For MS-Windows:
+%
+% \begin{macro}{\LWR@setOSWindows}
+% Set defaults for the MS-Windows operating system.
+% \pkg{lwarp} attempts to auto-detect the operatings system,
+% and the |OSWindows| option may also be used to force
+% MS-Windows compatibility.
+%
+% \changes{v0.20}{2016/12/19}{Auto-detects operating system.}
+%
+% \begin{macrocode}
+\newcommand*{\LWR@setOSWindows}
+{
+\booltrue{usingOSWindows}
+\renewcommand*{\OSPathSymbol}{\@backslashchar}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% Test for windows during compile. The user may also specify
+% |OSWindows| package option in case this test fails.
+% \begin{macrocode}
+\ifwindows
+\LWR@setOSWindows
+\fi
+% \end{macrocode}
+
+
+
+
+
+%
+% \section{Package options}
+% \label{sec:handlingpackageoptions}
+%
+%
+
+
% \DescribePackage{kvoptions}
% Allows key/value package options.
% \begin{macrocode}
@@ -4334,10 +4527,11 @@ operating-system path separator used by \pkg{lwarp}.
% \begin{environment}{warpprint}
% Anything in the |warpprint| environment will be generated for print output only.
%
-% \DescribeOption[lwarp]{warpprint}
+% \DescribeOption{warpprint}
% If the |warpprint| option is given, boolean |warpingprint| is true and boolean |warpingHTML| is false,
% and may be used for |\ifbool| tests.
%
+%
% \begin{macrocode}
\DeclareVoidOption{warpprint}{%
\PackageInfo{lwarp}{Using option 'warpprint'}
@@ -4352,7 +4546,7 @@ operating-system path separator used by \pkg{lwarp}.
% \begin{environment}{warpHTML}
% Anything in the |warpHTML| environment will be generated for \HTML\ output only.
%
-% \DescribeOption[lwarp]{warpHTML}
+% \DescribeOption{warpHTML}
% If the |warpHTML| option is given, boolean |warpingHTML| is true and boolean |warpingprint| is false,
% and may be used for |\ifbool| tests.
%
@@ -4373,7 +4567,7 @@ operating-system path separator used by \pkg{lwarp}.
%
% \changes{v0.19}{2016/05/25}{Options: mathsvg and mathjax}
-% \DescribeOption[lwarp]{mathsvg}
+% \DescribeOption{mathsvg}
% Option |mathsvg| selects \SVG\ math display:
% \index{math>mathsvg option}
% \index{SVG>mathsvg option}
@@ -4385,7 +4579,7 @@ operating-system path separator used by \pkg{lwarp}.
}
% \end{macrocode}
%
-% \DescribeOption[lwarp]{mathjax}
+% \DescribeOption{mathjax}
% Option |mathjax| selects MathJax math display:
% \index{math>mathjax option}
% \index{MathJax>mathjax option}
@@ -4397,31 +4591,121 @@ operating-system path separator used by \pkg{lwarp}.
}
% \end{macrocode}
-% \DescribeOption[lwarp]{BaseJobname}
+
+
+% \DescribeOption{BaseJobname}
% Option |BaseJobname| sets the \cs{BaseJobname} for this document.
%
% This is the \cs{jobname} of the printed version, even if currently
% compiling the \HTML\ version.
% I.e. this is the \cs{jobname} without |_html| appended.
-% This is used to set \cs{HomeHTMLFileName} if the user did not provide one.
+% This is used to set \cs{HomeHTMLFilename} if the user did not provide one.
% \begin{macrocode}
\DeclareStringOption[\jobname]{BaseJobname}
% \end{macrocode}
-% \DescribeOption[lwarp]{lwarpmklang} Sets the language to be assigned
+% \DescribeOption{IndexLanguage} Sets the language to be assigned
% in |lwarpmk|'s configuration files. This is then used by |lwarpmk| while
-% processing the glossary.
+% processing the index and glossary.
%
% \changes{v0.29}{2017/04/15}{Add: \protect\texttt{lwarpmklang} option for \pkg{lwarp}.}
+% \changes{v0.30}{2017/04/28}{Option \protect\texttt{lwarpmklang} changed
+% to \protect\texttt{IndexLanguage}.}
+%
+% \begin{macrocode}
+\DeclareStringOption[english]{IndexLanguage}
+% \end{macrocode}
+
+
+
+% \DescribeOption{xdyFilename} Selects a custom |.xdy| file.
+% The default is |lwarp.xdy|.
+% A customized file should be based on |lwarp.xdy|, and must retain
+% the line
+% \begin{Verbatim}[gobble=4]
+% (markup-locref :open "\hyperindexref{" :close "}")
+% \end{Verbatim}
+%
+% \changes{v0.30}{2017/04/28}{Option \protect\texttt{xdyFilename} added.}
%
% \begin{macrocode}
-\DeclareStringOption[english]{lwarpmklang}
+\DeclareStringOption[lwarp.xdy]{xdyFilename}
% \end{macrocode}
+% \DescribeOption{lwarpmk} Tells \pkg{lwarp} to
+% generate a local copy of |lwarpmk| called |lwarpmk.lua|.
+% Useful for archiving for future use.
+% This file may be made executable and acts just like |lwarpmk|.
+%
+% If |lwarpmk| option, creates a local copy of |lwarpmk.lua|:
+% \begin{macrocode}
+\DeclareVoidOption{lwarpmk}{
+\PackageInfo{lwarp}{Using option 'lwarpmk'}
+\includecomment{LWR@createlwarpmk}
+}
+% \end{macrocode}
+
+
+
+% \DescribeOption{OSWindows} Tells \pkg{lwarp} to use MS-Windows compatibility.
+% Auto-detection of the operating system is attempted, and this option is only
+% necessary if the auto-detection fails.
+% See the automatically-generated |lwarpmk.conf| file to find out
+% whether the operating system was detected correctly.
+%
+% \changes{v0.30}{2017/04/27}{Option \texttt{OSWindows} replaces macro \cs{warpOSwindows}.}
+%
+% \begin{macrocode}
+\DeclareVoidOption{OSWindows}{
+\PackageInfo{lwarp}{Using option 'OSWindows'}
+\LWR@setOSWindows
+}
+% \end{macrocode}
+
+
+
+% \DescribeOption{HomeHTMLFilename}
+% The filename of the homepage.
+% The default is the jobname.
+% This option is stored into \cs{LWR@HomeHTMLFilename},
+% and later transferred into \cs{HomeHTMLFilename} for internal use.
+%
+% \changes{v0.30}{2017/04/27}{Options \texttt{HomeHTMLFilename} and \texttt{HTMLFilename}
+% replace macros \cs{HomeHTMLFilename} and \cs{HTMLFilename}.}
+%
+% \begin{macrocode}
+\DeclareStringOption[]{HomeHTMLFilename}
+% \end{macrocode}
+
+
+% \DescribeOption{HTMLFilename}
+% The filename prefix of web pages after the homepage.
+% The default is empty, no prefix.
+% This option is stored into \cs{LWR@HTMLFilename},
+% and later transferred into \cs{HTMLFilename} for internal use.
+%
+% \begin{macrocode}
+\DeclareStringOption[]{HTMLFilename}
+% \end{macrocode}
+
+
+
+% \DescribeOption{latexmk}
+% Option |latexmk| tells |lwarpmk| to use |latexmk| when compiling documents.
+%
+% \changes{v0.30}{2017/04/29}{Option \protect\texttt{latexmk} replaces macro \cs{UseLatexmk}.}
+%
+% \begin{macrocode}
+\DeclareBoolOption[false]{latexmk}
+% \end{macrocode}
+
+
+
% The default is print output,
+% \margintag{defaults}
% and \SVG\ math if the user chose \HTML\ output.
% \begin{macrocode}
\includecomment{warpprint}%
@@ -4429,28 +4713,45 @@ operating-system path separator used by \pkg{lwarp}.
\booltrue{warpingprint}%
\boolfalse{warpingHTML}%
\boolfalse{mathjax}%
+% \end{macrocode}
+
+
+% Optionally generate a local copy of |lwarpmk|. Default to no:
+% \begin{macrocode}
+\excludecomment{LWR@createlwarpmk}
+% \end{macrocode}
-% \ExecuteOptions{warpprint,mathsvg}
+% Execute the package options, with the defaults which have been set just above:
+% \margintag{Execute options}
+% \begin{macrocode}
\ProcessKeyvalOptions*\relax
% \end{macrocode}
+
+
% Assign the \cs{BaseJobname} if the user hasn't provided one:
% \begin{macrocode}
\providecommand*{\BaseJobname}{\LWR@BaseJobname}
% \end{macrocode}
-
-% \begin{macro}{\@nameedef} \marg{name} \marg{defn}
-%
-% Expands |<defn>| before assigning to |<name>|
+% Defaults unless already over-ridden by the user:
% \begin{macrocode}
-\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
+\ifcsempty{LWR@HomeHTMLFilename}{
+\newcommand*{\HomeHTMLFilename}{\BaseJobname}
+}{
+\csedef{HomeHTMLFilename}{\LWR@HomeHTMLFilename}
+}
+
+\csedef{HTMLFilename}{\LWR@HTMLFilename}
% \end{macrocode}
-% \end{macro}
+%
+
+
+
@@ -5499,72 +5800,2548 @@ top=1in,bottom=1in,%
-% \section{Operating-System portability}
-% \label{sec:OSportability}
-% \changes{v0.11}{2016/03/11}{Added section: Operating-System portability.}
+
+
+
+
+
+% \section{Configuration Files}
+
+
+% \changes{v0.20}{2016/12/20}{\pkg{lwarp-newproject}: Added.}
+% \changes{v0.30}{2017/04/27}{\pkg{lwarp-newproject} removed, and combined with \pkg{lwarp}.}
+
+
+
+
+
+% \begin{macrocode}
+\begin{warpprint}
+\typeout{lwarp: generating configuration files}
+\end{warpprint}
+% \end{macrocode}
+
+
+% \subsection{project\_html.tex}
%
-% \osportabilityusage
+% \DescribeFile{project_html.tex} Used to allow an \HTML\ version of the
+% document to exist alongside the print version.
%
-% \codeall
+% Only write |\jobname_html.tex| if generating the print version.
% \begin{macrocode}
-\begin{warpall}
+\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}
% \end{macrocode}
+
+
+
+
+% \subsection{lwarpmk.conf}
+%
+% \DescribeFile{lwarpmk.conf}
+% |lwarpmk.conf| is automatically (re-)created by the \pkg{lwarp} package when
+% executing\\
+% \hspace*{2ex} |pdflatex <project.tex>|,\\
+% or similar for |xelatex| or |lualatex|, in print-document generation mode,
+% which is the default unless the |warpHTML| option is given.
+% |lwarpmk.conf| is then used by the utility |lwarpmk|.
%
+% An example |lwarpmk.conf|:
+% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4,formatcom={\unskip}]
+% opsystem = "Unix" -- or "Windows"
+% latexname = "pdflatex" -- or "lualatex" or "xelatex"
+% sourcename = "projectname" -- your .tex source
+% homehtmlfilename = "index" -- or "projectname"
+% htmlfilename = "" -- or "projectname" if numbered HTML files
+% \end{Verbatim}
%
-% \subsection{Common portability code}
+% \changes{v0.29}{2017/04/15}{File \protect\texttt{lwarpmk.conf}: Add: \protect\texttt{language} option for config files.}
%
-% \DescribeBoolean{usingOSwindows}Set if \cs{warpOSwindows}.
+% \codeprint
% \begin{macrocode}
-\newbool{usingOSwindows}
-\boolfalse{usingOSwindows}
+\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"}
+}
+\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{macrocode}
-%
-% \subsection{Unix, Linux, and Mac\,OS}
-% \begin{macro}{\OSPathSymbol}
-% Symbol used to separate directories in a path.
+
+% \subsection{project.lwarpmkconf}
+%
+% \DescribeFile{project.lwarpmkconf} A project-specific configuration file for |lwarpmk|.
+%
+% \changes{v0.29}{2017/04/15}{File \protect\texttt{*.lwarpmkconf}: Add: \protect\texttt{language} option for config files.}
+%
% \begin{macrocode}
-\newcommand*{\OSPathSymbol}{/}
+\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}
% \end{macrocode}
-% \end{macro}
-% \subsection{MS-Windows}
-% For MS-Windows:
+% \subsection{lwarp.css}
+
+% \DescribeFile{lwarp.css}
+% This is the base \CSS\ layer used by \pkg{lwarp}.
%
-% \begin{macro}{\warpOSwindows}
-% Set defaults for the MS-Windows operating system.
-% \pkg{lwarp} attempts to auto-detect the operatings system,
-% so \cs{warpOSwindows} may not be necessary.
+% This must be present both when compiling the project
+% and also when distributing the \HTML\ files.
%
-% \changes{v0.20}{2016/12/19}{Auto-detects operating system.}
+% \changes{v0.26}{2017/03/30}{\texttt{lwarp.css}: Improved responsive
+% \texttt{marginpar} and \texttt{marginblock}.}
+% \changes{v0.30}{2017/04/26}{Fix: \protect\texttt{*.css} files only written in print mode.}
%
% \begin{macrocode}
-\newcommand*{\warpOSwindows}
+\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
{
-\booltrue{usingOSwindows}
-\renewcommand*{\OSPathSymbol}{\@backslashchar}
+ 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{Verbatim}% for syntax highlighting
+\end{warpprint}
% \end{macrocode}
-% Test for windows during compile. The user may also specify
-% \cs{warpOSwindows} later in case this test fails.
+
+
+
+
+% \subsection{lwarp\_sagebrush.css}
+
+% \DescribeFile{lwarp_sagebrush.css}
+% An optional \CSS\ which may be used for
+% a semi-modern appearance.
+%
+% If used, this must be present both when compiling the project
+% and also when distributing the \HTML\ files.
+%
% \begin{macrocode}
-\ifwindows
-\warpOSwindows
-\fi
+\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{Verbatim}% for syntax highlighting
+\end{warpprint}
% \end{macrocode}
-% \end{macro}
+
+
+% \subsection{lwarp\_formal.css}
+
+% \DescribeFile{lwarp_formal.css}
+% An optional \CSS\ which may be used for
+% a more formal appearance.
+%
+% If used, this must be present both when compiling the project
+% and also when distributing the \HTML\ files.
+%
% \begin{macrocode}
-\end{warpall}
+\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{Verbatim}% for syntax highlighting
+\end{warpprint}
+% \end{macrocode}
+
+
+
+% \subsection{sample\_project.css}
+
+% \DescribeFile{sample_project.css}
+% The project-specific \CSS\ file. Use with \cs{CSSFilename}.
+%
+% If used, this must be present both when compiling the project
+% and also when distributing the \HTML\ files.
+%
+% \begin{macrocode}
+\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{Verbatim}% for syntax highlighting
+\end{warpprint}
+% \end{macrocode}
+
+
+
+% \subsection{lwarp.xdy}
+
+% \DescribeFile{lwarp.xdy}
+% Used to modify the index for \pkg{lwarp}.
+%
+% This must be present when compiling the project,
+% but does not need to be present when distributing
+% the resulting \HTML\ files.
+%
+% \changes{v0.30}{2017/04/28}{File: \protect\texttt{lwarp\_html.xdy} renamed to \protect\texttt{lwarp.xdy}.}
+% \changes{v0.30}{2017/04/26}{Fix: \protect\texttt{lwarp.xdy} only written in print mode.}
+%
+% \begin{macrocode}
+\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{Verbatim}% for syntax highlighting
+\end{warpprint}
+% \end{macrocode}
+
+
+
+% \subsection{lwarp\_mathjax.txt}
+
+% \DescribeFile{lwarp_mathjax.txt}
+% Used by \pkg{lwarp} when using MathJax.
+%
+% This must be present when compiling the project,
+% but does not need to be present when distributing
+% the resulting \HTML\ files.
+%
+% \changes{v0.28}{2017/04/11}{File \protect\texttt{lwarp\_mathjax.txt}: Updated \protect\acro{CDN} repository.}
+% \changes{v0.30}{2017/04/26}{Fix: \protect\texttt{lwarp\_mathjax.txt} only written in print mode.}
+%
+%
+% \begin{macrocode}
+\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{Verbatim}% for syntax highlighting
+\end{warpprint}
+% \end{macrocode}
+
+
+
+% \subsection{lwarpmk option}
+
+% The following is only generated if the |lwarpmk| option
+% was given to \pkg{lwarp}.
+% \begin{macrocode}
+\begin{LWR@createlwarpmk}
% \end{macrocode}
+% \DescribeProgram{lwarpmk} Creates a local copy of |lwarpmk|:
+%
+% \changes{v0.21}{2017/02/11}{\protect\texttt{lwarpmk}: Fix: \protect\texttt{lwarpmk again} for Windows.}
+% \changes{v0.21}{2017/02/22}{\protect\texttt{lwarpmk}: Fix: \protect\texttt{lwarpmk limages} for Windows.}
+% \changes{v0.21}{2017/02/22}{\protect\texttt{lwarpmk}: Fix: \protect\texttt{lwarpmk} uses \texttt{lateximages} text file instead of shell script.}
+% \changes{v0.28}{2017/04/14}{\protect\texttt{lwarpmk}: Add: \protect\texttt{printglossary} and \protect\texttt{htmlglossary} commands.}
+% \changes{v0.29}{2017/04/15}{\protect\texttt{lwarpmk}: Add: \protect\texttt{language} option for config files.}
+% \changes{v0.30}{2017/04/22}{\protect\texttt{lwarpmk}: \protect\texttt{language} now used for both index and glossary generation.}
+% \changes{v0.30}{2017/04/22}{\protect\texttt{lwarpmk}: Fix: \protect\texttt{xindy} now used for print index generation with \protect\texttt{latexmk}.}
+% \changes{v0.30}{2017/04/28}{\protect\texttt{lwarpmk}: Fix: \protect\texttt{xindy} and \protect\texttt{texindy}
+% adjusted for \protect\texttt{pdflatex}, \protect\texttt{xelatex} and \protect\texttt{lualatex}.}
+% \changes{v0.30}{2017/04/28}{\protect\texttt{lwarpmk}: Add: \protect\texttt{xdyfile} configuration option.}
+%
+% \begin{macrocode}
+\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{Verbatim}% for syntax highlighting
+% \end{macrocode}
+%
+% \begin{macrocode}
+\end{LWR@createlwarpmk}
+% \end{macrocode}
+%
+
+
@@ -5838,8 +8615,8 @@ top=1in,bottom=1in,%
% \section{HTML filename generation}
%
-% The filename of the homepage is set to |\HomeHTMLFileName.html|.
-% The filenames of additional sections start with |\HTMLfiveName|, to which is
+% The filename of the homepage is set to |\HomeHTMLFilename.html|.
+% The filenames of additional sections start with |\HTMLFilename|, to which is
% appended a section number or a simplified section name, depending on |FileSectionNames|.
%
@@ -5853,31 +8630,31 @@ top=1in,bottom=1in,%
% The \cs{jobname} of the printed version, even if currently
% compiling the \HTML\ version.
% I.e. this is the \cs{jobname} without |_html| appended.
-% This is used to set \cs{HomeHTMLFileName} if the user did not provide one.
+% This is used to set \cs{HomeHTMLFilename} if the user did not provide one.
% \begin{macrocode}
\providecommand*{\BaseJobname}{\jobname}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\HTMLfiveName}
+% \begin{macro}{\HTMLFilename}
% \changes{v0.19}{2016/05/28}{Docs: Escape filename underscores.}
% \changes{v0.20}{2016/12/18}{No longer escape underscores.}
% The prefix for all generated \HTML\ files other than the home page,
% defaulting to empty. See \cref{sec:filenameexamples}.
%
% \begin{macrocode}
-\providecommand*{\HTMLfiveName}{}
+\providecommand*{\HTMLFilename}{}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\HomeHTMLFileName}
+% \begin{macro}{\HomeHTMLFilename}
% \changes{v0.19}{2016/05/28}{Docs: Escape filename underscores.}
% \changes{v0.20}{2016/12/18}{No longer escape underscores.}
% The filename of the home page, defaulting to the \cs{BaseJobname}.
% See \cref{sec:filenameexamples}.
%
% \begin{macrocode}
-\providecommand*{\HomeHTMLFileName}{\BaseJobname}
+\providecommand*{\HomeHTMLFilename}{\BaseJobname}
% \end{macrocode}
% \end{macro}
%
@@ -5932,11 +8709,11 @@ top=1in,bottom=1in,%
%
% \changes{v0.14}{2016/03/28}{Fix: Links to home page.}
% \changes{v0.17}{2016/04/11}{Fix: Links when entire doc is one \HTML\ page.}
-% \changes{v0.20}{2016/09/11}{HTMLFileName: removed additional trailing '-', and may be empty.}
+% \changes{v0.20}{2016/09/11}{HTMLFilename: removed additional trailing '-', and may be empty.}
% \changes{v0.20}{2016/09/11}{Sections called ``Index'' or ``index'' have an underscore
% prepended to their filenames if no prefix.}
%
-% Prints the filename for a given section: |\HTMLfiveName{}filenumber/name.html|
+% Prints the filename for a given section: |\HTMLFilename{}filenumber/name.html|
% \begin{macrocode}
\newcommand*{\LWR@htmlsectionfilename}[1]{%
\LWR@traceinfo{LWR@htmlsectionfilename A}%
@@ -5960,8 +8737,8 @@ 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%
}%
% \end{macrocode}
% For a \LaTeX\ section named ``Index'' or ``index'' without a prefix, create a filename
@@ -5970,7 +8747,7 @@ top=1in,bottom=1in,%
{%
\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.}%
@@ -5978,7 +8755,7 @@ top=1in,bottom=1in,%
% \end{macrocode}
% Otherwise, create a filename with the chosen prefix:
% \begin{macrocode}
-{\HTMLfiveName#1.html}%
+{\HTMLFilename#1.html}%
}%
\LWR@traceinfo{LWR@htmlsectionfilename Z}%
}
@@ -6017,7 +8794,7 @@ top=1in,bottom=1in,%
% \begin{macrocode}
\newcommand*{\LinkHome}{%
\LWR@subhyperrefclass{%
-\HomeHTMLFileName.html}%
+\HomeHTMLFilename.html}%
{Home}{linkhome}%
}
% \end{macrocode}
@@ -6919,13 +9696,18 @@ top=1in,bottom=1in,%
\catcode`\_=8
}
% \end{macrocode}
-% \begin{macro}{\SetFirstPageTop} \marg{text and logos}
+% \begin{macro}{\HTMLFirstPageTop} \marg{text and logos}
+%
+% \changes{v0.30}{2017/04/28}{Renamed from \cs{SetFirstPageTop}.}
+%
% \begin{macrocode}
-\newcommand{\SetFirstPageTop}{%
+\newcommand{\HTMLFirstPageTop}{%
\catcode`\_=12
\LWR@setfirstpagetopb
}
% \end{macrocode}
+%
+%
% \end{macro}
% \begin{macrocode}
\newcommand{\LWR@setpagetopb}[1]{%
@@ -6933,23 +9715,35 @@ top=1in,bottom=1in,%
\catcode`\_=8
}
% \end{macrocode}
-% \begin{macro}{\SetPageTop} \marg{text and logos}
+%
+%
+% \begin{macro}{\HTMLPageTop} \marg{text and logos}
+%
+% \changes{v0.30}{2017/04/28}{Renamed from \cs{SetPageTop}.}
+%
% \begin{macrocode}
-\newcommand{\SetPageTop}{%
+\newcommand{\HTMLPageTop}{%
\catcode`\_=12
\LWR@setpagetopb
}
% \end{macrocode}
% \end{macro}
+%
+%
% \begin{macrocode}
\newcommand{\LWR@setpagebottomb}[1]{%
\renewcommand{\LWR@pagebottom}{#1}
\catcode`\_=8
}
% \end{macrocode}
-% \begin{macro}{\SetPageBottom} \marg{text and logos}
+%
+%
+% \begin{macro}{\HTMLPageBottom} \marg{text and logos}
+%
+% \changes{v0.30}{2017/04/28}{Renamed from \cs{SetPageBottom}.}
+%
% \begin{macrocode}
-\newcommand{\SetPageBottom}{%
+\newcommand{\HTMLPageBottom}{%
\catcode`\_=12
\LWR@setpagebottomb
}
@@ -6970,7 +9764,7 @@ top=1in,bottom=1in,%
% \end{macrocode}
% \begin{macro}{\LWR@currentcss} The \CSS\ filename to use.
-% This may be changed mid-document using \cs{NewCSS},
+% This may be changed mid-document using \cs{CSSFilename},
% allowing different \CSS\ files to be used
% for different sections of the document.
@@ -6979,16 +9773,18 @@ top=1in,bottom=1in,%
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\NewCSS} \marg{new-css-filename.css}
-%
+% \begin{macro}{\CSSFilename} \marg{new-css-filename.css} \qquad
% Assigns the \CSS\ file to be used by the following \HTML\ pages.
+%
+% \changes{v0.30}{2017/04/28}{Renamed from \cs{NewCSS}.}
+%
% \begin{macrocode}
\newcommand*{\LWR@newcssb}[1]{%
\renewcommand*{\LWR@currentcss}{#1}
\catcode`\_=8
}
-\newcommand*{\NewCSS}{
+\newcommand*{\CSSFilename}{
\catcode`\_=12
\LWR@newcssb
}
@@ -6998,7 +9794,7 @@ top=1in,bottom=1in,%
% \codeprint
% \begin{macrocode}
\begin{warpprint}
-\newcommand*{\NewCSS}[1]{}
+\newcommand*{\CSSFilename}[1]{}
\end{warpprint}
% \end{macrocode}
% \end{macro}
@@ -7007,8 +9803,6 @@ top=1in,bottom=1in,%
% \section{HTML meta description and author}
%
-% \changes{v0.20}{2016/06/27}{Added \cs{NewHTMLdescription}.}
-% \changes{v0.28}{2017/04/06}{Added \cs{HTMLauthor}.}
% \codeall
@@ -7016,16 +9810,19 @@ top=1in,bottom=1in,%
\begin{warpall}
% \end{macrocode}
-% \begin{macro}{\HTMLauthor} \marg{authorname} \qquad The author to place into an \HTML\ meta tag.
+% \begin{macro}{\HTMLAuthor} \marg{authorname} \qquad The author to place into an \HTML\ meta tag.
%
% \index{HTML>meta tag>author}
% \index{author>HTML meta tag}
% \index{meta tag, HTML>author}
%
+% \changes{v0.28}{2017/04/06}{Added \cs{HTMLauthor}. (Renamed in v0.30.)}
+% \changes{v0.30}{2017/04/28}{Renamed from \cs{HTMLauthor}.}
+%
% \begin{macrocode}
-\newcommand{\theHTMLauthor}{\theauthor}
+\newcommand{\theHTMLAuthor}{\theauthor}
-\newcommand{\HTMLauthor}[1]{\renewcommand{\theHTMLauthor}{#1}}
+\newcommand{\HTMLAuthor}[1]{\renewcommand{\theHTMLAuthor}{#1}}
% \end{macrocode}
% \end{macro}
@@ -7040,24 +9837,27 @@ top=1in,bottom=1in,%
% \end{macrocode}
% This is placed inside an \HTML\ meta tag at the start of each file.
-% This may be changed mid-document using \cs{NewHTMLdescription},
+% This may be changed mid-document using \cs{HTMLDescription},
% allowing different \HTML\ descriptions to be used
% for different sections of the document.
%
% Do not use double quotes, and do not exceed 150 characters.\watchout
-% \begin{macro}{\NewHTMLdescription} \marg{New \HTML\ meta description.} \qquad
+% \begin{macro}{\HTMLDescription} \marg{New \HTML\ meta description.} \qquad
% Assigns the \HTML\ file's description meta tag.
%
% \index{HTML>meta tag>description}
% \index{description>HTML meta tag}
% \index{meta tag, HTML>description}
%
+% \changes{v0.20}{2016/06/27}{Added \cs{NewHTMLdescription}. (Renamed in v0.30.)}
+% \changes{v0.30}{2017/04/28}{Renamed from \cs{NewHTMLdescription}.}
+%
% \begin{macrocode}
-\newcommand{\LWR@currentHTMLdescription}{}
+\newcommand{\LWR@currentHTMLDescription}{}
-\newcommand{\NewHTMLdescription}[1]{%
-\renewcommand{\LWR@currentHTMLdescription}{#1}
+\newcommand{\HTMLDescription}[1]{%
+\renewcommand{\LWR@currentHTMLDescription}{#1}
}
\end{warpall}
@@ -8011,18 +10811,34 @@ top=1in,bottom=1in,%
% \section{Starting a new file}
% \label{sec:startingfile}
-% \codehtml
+% \codeall
% \begin{macrocode}
-\begin{warpHTML}
+\begin{warpall}
% \end{macrocode}
-% \begin{macro}{\MetaLanguage} Default language for the \HTML\ |lang| tag.
+% \begin{macro}{\HTMLLanguage} Default language for the \HTML\ |lang| tag.
% \index{language HTML metadata}
+%
+% \changes{v0.30}{2017/04/28}{Renamed from \cs{MetaLanguage}.}
+%
% \begin{macrocode}
-\newcommand*{\MetaLanguage}{en-US}
+\newcommand*{\LWR@currentHTMLLanguage}{en-US}
+
+\newcommand*{\HTMLLanguage}[1]{%
+\renewcommand*{\LWR@currentHTMLLanguage}{#1}%
+}
% \end{macrocode}
% \end{macro}
+% \begin{macrocode}
+\end{warpall}
+% \end{macrocode}
+
+
+% \codehtml
+% \begin{macrocode}
+\begin{warpHTML}
+% \end{macrocode}
% \begin{macro}{\LWR@filestart} \marg{title\_suffix}
@@ -8058,7 +10874,7 @@ top=1in,bottom=1in,%
% \end{macrocode}
% The language is user-adjustable:
% \begin{macrocode}
-\LWR@htmltag{html lang="\MetaLanguage"{}}\LWR@orignewline
+\LWR@htmltag{html lang="\LWR@currentHTMLLanguage"{}}\LWR@orignewline
% \end{macrocode}
% Start of the meta data:
% \begin{macrocode}
@@ -8071,8 +10887,8 @@ top=1in,bottom=1in,%
%
% Author:
% \begin{macrocode}
-\ifcsempty{theHTMLauthor}{}{
-\LWR@htmltag{meta name="author" content="\theHTMLauthor" /}\LWR@orignewline
+\ifcsempty{theHTMLAuthor}{}{
+\LWR@htmltag{meta name="author" content="\theHTMLAuthor" /}\LWR@orignewline
}
% \end{macrocode}
%
@@ -8086,9 +10902,9 @@ top=1in,bottom=1in,%
% \end{macrocode}
% If there is a description, add it now:
% \begin{macrocode}
-\ifdefempty{\LWR@currentHTMLdescription}{}{%
+\ifdefempty{\LWR@currentHTMLDescription}{}{%
\LWR@htmltag{%
-meta name="description" content="\LWR@currentHTMLdescription" /}%
+meta name="description" content="\LWR@currentHTMLDescription" /}%
\LWR@orignewline
}%
% \end{macrocode}
@@ -8184,12 +11000,12 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
}{}
% \end{macrocode}
%
-% Expand and detokenize \cs{HomeHTMLFileName} and \cs{HTMLFileName}:
+% Expand and detokenize \cs{HomeHTMLFilename} and \cs{HTMLFilename}:
% \begin{macrocode}
-\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}}
% \end{macrocode}
% Force onecolumn:
% \begin{macrocode}
@@ -8530,9 +11346,9 @@ link rel="stylesheet" type="text/css" href="\LWR@currentcss" /}%
% wishes to refer to the document's title and such. One practical use for this
% is to place the authors at the bottom of each \HTML\ page, such as:
%
-% \DescribeMacro{\SetPageBottom} \marg{text}
+% \DescribeMacro{\HTMLPageBottom} \marg{text}
% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4]
-% \SetPageBottom{
+% \HTMLPageBottom{
% \begin{center}\textcopyright~2016 \theauthor\end{center}
% }
% \end{Verbatim}
@@ -13007,14 +15823,12 @@ class="#3"\LWR@orignewline}#2\LWR@htmltag{/a}%
% \begin{macro}{\hyperindexref} \marg{autosecnumber}
%
% |\hyperindexref{web address}| is inserted into |*.ind| by
-% the xindy style file |lwarp_html.xdy|
+% the xindy style file |lwarp.xdy|
%
% \changes{v0.20}{2016/12/19}{Print mode provided in case hyperref not used.}
% \changes{v0.28}{2017/04/13}{Improved indexing.}
% \begin{macrocode}
-\newcommand*{\hyperindexref}[1]{
-\nameref{LWRindex-#1}%
-}
+\newcommand*{\hyperindexref}[1]{\nameref{LWRindex-#1}}
% \end{macrocode}
% \end{macro}
@@ -16112,70 +18926,6 @@ display:inline-block;"%
-% \clearpage
-
-% \section{lwarpmk.conf}
-
-% \DescribeFile{lwarpmk.conf}
-% |lwarpmk.conf| is automatically (re-)created by the \pkg{lwarp} package when
-% executing\\
-% \hspace*{2ex} |pdflatex <project.tex>|,\\
-% or similar for |xelatex| or |lualatex|, in print-document generation mode,
-% which is the default unless the |warpHTML| option is given.
-% |lwarpmk.conf| is then used by the utility |lwarpmk|.
-%
-% An example |lwarpmk.conf|:
-% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4,formatcom={\unskip}]
-% opsystem = "Unix" -- or "Windows"
-% latexname = "pdflatex" -- or "lualatex" or "xelatex"
-% sourcename = "projectname" -- your .tex source
-% homehtmlfilename = "index" -- or "projectname"
-% htmlfilename = "" -- or "projectname" if numbered HTML files
-% \end{Verbatim}
-%
-% \changes{v0.29}{2017/04/15}{File \protect\texttt{lwarpmk.conf}: Add: \protect\texttt{language} option for config files.}
-%
-% Defaults unless already over-ridden by the user:
-% \begin{macrocode}
-\providecommand*{\HomeHTMLFileName}{\BaseJobname}
-\providecommand*{\HTMLfiveName}{}
-\providecommand*{\UseLatexmk}{false}
-% \end{macrocode}
-
-
-% \codeprint
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-
-
-
-
@@ -16207,2555 +18957,7 @@ homehtmlfilename = "\HomeHTMLFileName"%
%
%
%
-% \clearpage
-%
-%
-% \iffalse
-%<*lwarp-newproject>
-% \fi
-%
-% \part{lwarp-newproject.sty}
-%
-% \changes{v0.20}{2016/12/20}{\pkg{lwarp-newproject}: Added.}
-%
-% \section{lwarp-newproject}
-%
-% \DescribePackage{lwarp-newproject}
-% \pkg{lwarp-newproject} is used to create lwarp-specific
-% system files in a new project.
-%
-% \DescribeOption[lwarp-newproject]{warpprint} Configuration files are only
-% created if the |warpprint| option was used. When this is the case,
-% \pkg{lwarp-newproject} knows that \cs{jobname} is the source code's filename
-% (as opposed to the |<project>_html.tex| filename).
-%
-% \DescribeOption[lwarp-newproject]{warpHTML} Does not create configuration files.
-% |warpprint| or |warpHTML| are passed to both \pkg{lwarp} and
-% \pkg{lwarp-newproject} by |lwarpmk|, depending on whether |lwarpmk print|
-% or |lwarpmk html| was used.
-%
-% \DescribeOption[lwarp-newproject]{BaseJobName} |BaseJobname=somename| sets
-% \cs{BaseJobname} to |somename|, which is used to set \cs{HomeHTMLFileName},
-% which is then written to the |lwarpmk.conf| and |<project>.lwarpmkconf|
-% configuration files.
-%
-% \cs{BaseJobname} is also written to |<project>_html.tex| as an option
-% given for the \pkg{lwarp} and \pkg{lwarp-newproject} packages during the
-% creation of \HTML\ output.
-%
-% \cs{BaseJobname} is the \cs{jobname} of the printed version, even while compiling
-% the \HTML\ version, where \cs{jobname} has |_html| appended.
-%
-% \DescribeOption[lwarp-newproject]{lwarpmk} Tells |lwarp-newproject| to
-% generate a local copy of |lwarpmk| called |lwarpmk.lua|.
-% Useful for archiving for future use.
-% This file may be made executable and acts just like |lwarpmk|.
-%
-% \DescribeOption[lwarp-newproject]{lwarpmklang} Sets the language to be assigned
-% in |lwarpmk|'s configuration files. This is then used by |lwarpmk| while
-% processing the glossary.
-%
-% In the document source:
-% \begin{Verbatim}[gobble=2,frame=lines,obeytabs,tabsize=4,formatcom={\unskip}]
-% \documentclass{article} % or book, report
-% ...
-% (font selection, input encoding)
-% ...
-% \newcommand*{\HomeHTMLFileName}{index}, or {projectname}
-% \newcommand*{\HTMLfiveName}{}
-% \usepackage{lwarp-newproject}
-% \usepackage{lwarp}
-% ...
-% (load other packages, the rest of the preamble)
-% ...
-% \NewCSS{project.css}
-% \NewHTMLdescription{Summarize this webpage.}
-% ...
-% \begin{document}
-% ...
-% \end{document}
-% \end{Verbatim}
-%
-% Place |\usepackage{lwarp-newproject}| just before |\usepackage{lwarp}| in the
-% document source. The operating system and \TeX\ engine will be auto-detected,
-% and a customized |lwarpmk.conf| file will be generated, along with
-% the other support files (|*.css|, |lwarp_html.xdy|, |lwarp_mathjax.txt|).
-% Rename |sample_project.css| to your own custom |projectname.css| and
-% edit it if desired.
-%
-% After the first compile, |\usepackage{lwarp-newproject}|
-% may be commented out unless the configuration changes.
-% For example, it may be re-enabled
-% to switch between |pdflatex|, |xelatex|, and |lualatex|, in which case
-% a new manual compile (without using |lwarpmk|) will auto-configure and
-% regenerate the files. It may also be left enabled at all times, in which case
-% the configuration files will be regenerated each time. Note that your own
-% |projectname.css| file will not be over-written by the newly regenerated
-% |sample_project.css|.
-%
-
-% Discard all options for \pkg{lwarp-newproject}:
-% \begin{macrocode}
-\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@}
-% \end{macrocode}
-
-
-% Generate config files?
-% \begin{macrocode}
-\newbool{LWRNP@genconf}
-\boolfalse{LWRNP@genconf}
-% \end{macrocode}
-
-% Optionally generate a local copy of |lwarpmk|. Default to no:
-% \begin{macrocode}
-\excludecomment{LWR@createlwarpmk}
-% \end{macrocode}
-
-% Process options:
-%
-% \changes{v0.29}{2017/04/15}{Add: \protect\texttt{lwarpmklang} option for \pkg{lwarp-newproject}.}
-%
-% \begin{macrocode}
-\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
-% \end{macrocode}
-
-
-% Assign the \cs{BaseJobname} if the user hasn't provided one:
-% \begin{macrocode}
-\providecommand*{\BaseJobname}{\LWRNP@BaseJobname}
-% \end{macrocode}
-
-% Defaults unless already over-ridden by the user:
-% \begin{macrocode}
-% \ifbool{LWRNP@genconf}{
-\providecommand*{\HomeHTMLFileName}{\BaseJobname}
-% }{}
-\providecommand*{\HTMLfiveName}{}
-\providecommand*{\UseLatexmk}{false}
-% \end{macrocode}
-%
-%
-
-
-\ifbool{LWRNP@genconf}{\typeout{lwarp-newproject: generating configuration files}}{}
-
-
-% \subsection{project\_html.tex}
-%
-% \DescribeFile{project_html.tex} Used to allow an \HTML\ version of the
-% document to exist alongside the print version.
-%
-% Only write |\jobname_html.tex| if generating the print version.
-% \begin{macrocode}
-\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
-}{}
-% \end{macrocode}
-
-
-% \subsection{project.lwarpmkconf}
-%
-% \DescribeFile{project.lwarpmkconf} The configuration file for |lwarpmk|.
-%
-% \changes{v0.29}{2017/04/15}{File \protect\texttt{*.lwarpmkconf}: Add: \protect\texttt{language} option for config files.}
-%
-% \begin{macrocode}
-\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
-}{}
-% \end{macrocode}
-
-
-
-
-% \subsection{lwarp.css}
-
-% \DescribeFile{lwarp.css}
-% This is the base \CSS\ layer used by \pkg{lwarp}.
-%
-% This must be present both when compiling the project
-% and also when distributing the \HTML\ files.
-%
-% \changes{v0.26}{2017/03/30}{\texttt{lwarp.css}: Improved responsive
-% \texttt{marginpar} and \texttt{marginblock}.}
-%
-% \begin{macrocode}
-\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{Verbatim}% for syntax highlighting
-% \end{macrocode}
-
-
-
-
-% \subsection{lwarp\_sagebrush.css}
-
-% \DescribeFile{lwarp_sagebrush.css}
-% An optional \CSS\ which may be used for
-% a semi-modern appearance.
-%
-% If used, this must be present both when compiling the project
-% and also when distributing the \HTML\ files.
-%
-% \begin{macrocode}
-\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{Verbatim}% for syntax highlighting
-% \end{macrocode}
-
-
-
-
-% \subsection{lwarp\_formal.css}
-
-% \DescribeFile{lwarp_formal.css}
-% An optional \CSS\ which may be used for
-% a more formal appearance.
-%
-% If used, this must be present both when compiling the project
-% and also when distributing the \HTML\ files.
%
-% \begin{macrocode}
-\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{Verbatim}% for syntax highlighting
-% \end{macrocode}
-
-
-
-% \subsection{sample\_project.css}
-
-% \DescribeFile{sample_project.css}
-% The project-specific \CSS\ file. Use with \cs{NewCSS}.
-%
-% If used, this must be present both when compiling the project
-% and also when distributing the \HTML\ files.
-%
-% \begin{macrocode}
-\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{Verbatim}% for syntax highlighting
-% \end{macrocode}
-
-
-
-% \subsection{lwarp\_html.xdy}
-
-% \DescribeFile{lwarp_html.xdy}
-% Used to modify the index for \pkg{lwarp}.
-%
-% This must be present when compiling the project,
-% but does not need to be present when distributing
-% the resulting \HTML\ files.
-%
-% \begin{macrocode}
-\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}
-% \end{Verbatim}% for syntax highlighting
-% \end{macrocode}
-
-
-
-% \subsection{lwarp\_mathjax.txt}
-
-% \DescribeFile{lwarp_mathjax.txt}
-% Used by \pkg{lwarp} when using MathJax.
-%
-% This must be present when compiling the project,
-% but does not need to be present when distributing
-% the resulting \HTML\ files.
-%
-% \changes{v0.28}{2017/04/11}{File lwarp\_mathjax.txt: Updated CDN repository.}
-%
-%
-% \begin{macrocode}
-\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{Verbatim}% for syntax highlighting
-% \end{macrocode}
-
-
-
-% \subsection{Lwarpmk option}
-
-% The following is only generated if the |lwarpmk| option
-% was given to \pkg{lwarp-newproject}.
-% \begin{macrocode}
-\begin{LWR@createlwarpmk}
-% \end{macrocode}
-
-% \DescribeProgram{lwarpmk} Creates a local copy of |lwarpmk|:
-%
-% \changes{v0.21}{2017/02/11}{lwarpmk: Fix: \protect\texttt{lwarpmk again} for Windows.}
-% \changes{v0.21}{2017/02/22}{lwarpmk: Fix: \protect\texttt{lwarpmk limages} for Windows.}
-% \changes{v0.21}{2017/02/22}{lwarpmk: Fix: \protect\texttt{lwarpmk} uses \texttt{lateximages} text file instead of shell script.}
-% \changes{v0.28}{2017/04/14}{lwarpmk: Add: \protect\texttt{printglossary} and \protect\texttt{htmlglossary} commands.}
-% \changes{v0.29}{2017/04/15}{lwarpmk: Add: \protect\texttt{language} option for config files.}
-%
-% \begin{macrocode}
-\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{Verbatim}% for syntax highlighting
-% \end{macrocode}
-
-% \begin{macrocode}
-\end{LWR@createlwarpmk}
-% \end{macrocode}
-
-
-% \iffalse
-%</lwarp-newproject>
-% \fi
%
%
%
@@ -18766,6 +18968,7 @@ end -- not --version
%
%
%
+%
% \clearpage
%
% \iffalse
@@ -26208,7 +26411,7 @@ style="width:\rndprintlength{\LWR@wrapwidth} ; %
% ^^A \begin{macro}{\pagecolor}
% \cs{pagecolor}
% \oarg{model} \marg{color}
-% is ignored. Use |\NewCSS| instead.
+% is ignored. Use |\CSSFilename| instead.
% \begin{macrocode}
\newcommand*{\LWR@pagecolor}[2][named]{}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/lwarp/lwarp.ins b/Master/texmf-dist/source/latex/lwarp/lwarp.ins
index 8811bb697af..5b07dcdb134 100644
--- a/Master/texmf-dist/source/latex/lwarp/lwarp.ins
+++ b/Master/texmf-dist/source/latex/lwarp/lwarp.ins
@@ -33,7 +33,6 @@ version 2005/12/01 or later.
\askforoverwritefalse
\generate{
\file{lwarp.sty}{\from{lwarp.dtx}{package}}
-\file{lwarp-newproject.sty}{\from{lwarp.dtx}{lwarp-newproject}}
\file{lwarp-abstract.sty}{\from{lwarp.dtx}{abstract}}
\file{lwarp-afterpage.sty}{\from{lwarp.dtx}{afterpage}}
\file{lwarp-algorithmicx.sty}{\from{lwarp.dtx}{algorithmicx}}
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'.