Source

tex2sws / tex4ht-sage.cfg

Full commit
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%            Copyright 2010 Robert A. Beezer <beezer@ups.edu>
%
%  Distributed under the terms of the GNU General Public License (GPL),
%  version 2 or any later version.  The full text of the GPL is available at:
%
%                     http://www.gnu.org/licenses/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% tex4ht-sage.cfg
%
% Supplies info for jsmath version to tex4ht command line and preamble
%   2009/01/28  Modified to build sage worksheets, dropped font info
%   2010/02/20  Significant improvements, many from Robert Marik
%   2010/07/22  Inlining of footnotes ("fn-in" to command options)
%
% Call as   htlatex <tex-source-file> "tex4ht-sage.cfg" " -cunihtf -utf8"
%   Implements environments of the sagetex package
%   Wraps contents of these environments with the
%   tags <sage>,</sage> as markers.
%   Then a script converts contents to
%   SAGE worksheet cell format
%   CSS additions to fine-tune jsMath spacing
%       suggested by David Cervone (jsMath author)
%
% Managing unicode fonts
% ----------------------
%   To restore minus symbol '-' from its translation to &#x2212;
%   use method described in
%   http://www.cse.ohio-state.edu/~gurari/docs/tug-07/tug07-10.xht
%   i.e. copy the hypertext font encoding file
%   texmf/tex4ht/ht-fonts/mozilla/charset/unicode.4hf to the work
%   directory and add the following record to the file:
%   '&#x2212;' '' '-' ''
%
%   To restore "'" from its translation to &#x2019; search the same file 
%   unicode.4htf for line begining with '&#x2019;' and replace by 
%   +&#x2019;+ ++ +'+ ++
%   with this setting the word "don't" remains as is and not "don&#x2019;t"

% No labels printed in resulting svg without this setting
\AtBeginDocument{\let\SetVertexNoLabel\relax}

% fn-in option makes footnotes "inline", rather than whole new pages
\Preamble{xhtml,jsmath,charset=UTF-8,fn-in,info}

\def\tempc#1#2{\ScriptEnv{#1}{\ifvmode \IgnorePar \else \break\fi
  \EndP\HCode{\Hnewline<sage>\Hnewline\Hnewline}\HCode{#2\Hnewline}\NoFonts}
{\ifvmode \IgnorePar \fi
  \EndP\HCode{\Hnewline</sage>}\EndNoFonts\csname par\endcsname\ShowPar}
}
\tempc{sageverbatim}{}
\tempc{sageblock}{}
\tempc{sagesilent}{\%hide}


\Css{/* jsMath suggested additions for spacing control */}
\Css{.jsMath_hiddenSpan {text-indent: 0px}}
\Css{.typeset {text-indent: 0px}} 

% ----------------------- Configuring output of \sage, \sagestr, \sageplot
% We read the outputs of Sage stored at \jobname.sout. 
% We read this file at \begin{document} to make ^ and _ work properly.
% As a sideeffect we have to redefine \@latex@warning@no@line 
% to suppress false warning related to multiply defined labels.
\makeatletter
\AtBeginDocument{%
{\def\@latex@warning@no@line#1{}
\InputIfFileExists{\jobname.sout}{}{\typeout{No file \jobname.sout.}}
}% restore \@latex@warning@no@line
}
\makeatother


% ----------------------- Configuring \sage, \sagestr, \sageplot
% The following lines produce input fields from \sage, \sagestr and
% \sageplot macros \sage and \sagestr simply pass the content,
% \sageplot wraps the content with show function
% 
\makeatletter
\let\orisage\sage
\let\orisagestr\sagestr
\newtoks\sagetextoks
\def\sage#1{\orisage{#1}\savesage{#1}}%
\def\sagestr#1{\orisagestr{#1}\savesage{#1}}%
\def\savesage#1{\HCode{<sage>\Hnewline <![CDATA[\Hnewline
 #1\Hnewline ]]>\Hnewline</sage>\Hnewline}}

% PNG graphics is O.K.
\Configure{graphics*}{png}
        {\Picture[pict]{\csname Gin@base\endcsname .png}}

% JPG graphics is O.K.
\Configure{graphics*}
        {jpg}
        {\Picture[pict]{\csname Gin@base\endcsname .jpg}}

\def\ST@sageplot[#1][#2]#3{\ST@wsf{try:^^J
 _st_.plot(\theST@plot, format='#2', _p_=#3)^^Jexcept:^^J
 _st_.goboom(\the\inputlineno)}%
\ifpdf
  \ifthenelse{\equal{#2}{notprovided}}%
    {\ST@inclgrfx{#1}{pdf}}%
    {\ST@inclgrfx{#1}{#2}}%
\else
  \ifthenelse{\equal{#2}{notprovided}}%
    {\ST@inclgrfx{#1}{eps}}%
    {\@ifundefined{ST@useimagemagick}%
      {\IfFileExists{\ST@plotdir/plot-\theST@plot.#2}%
        {% changed by Robert Marik - no error for png pictures
         % since png graphics is O.K. with tex4ht 
         \ifthenelse{\equal{#2}{png}}%
         { \ST@inclgrfx{#1}{#2}}%
         {\ST@missingfilebox%
         \PackageWarning{sagetex}{Graphics file
         \ST@plotdir/plot-\theST@plot.#2\space on page \thepage\space
         cannot be used with DVI output. Use pdflatex or create an EPS
         file. Plot command is}}%
       }% end of changes related to png graphics
        {\ST@missingfilebox%
         \PackageWarning{sagetex}{Graphics file
         \ST@plotdir/plot-\theST@plot.#2\space on page \thepage\space
         does not exist. Plot command is}%
         \gdef\ST@rerun{x}}}%
    {\ST@inclgrfx{#1}{eps}}}%
\fi
\stepcounter{ST@plot}%
\savesage{show(#3)}}

\makeatother


% ----------------------- Configuring inline math
% The following lines keep dollars as delimiters of mathematics
% and removes 
\Configure{$}
{\Configure{@math}{}\DviMath\HCode{\string$}}
{\HCode{\string$}\EndDviMath}{}
% ----------------------- End configuring inline math




% ----------------------- Configuring math
% removes html comments from math (causes bad rendering in some browsers)
% code from html-jsmath.4ht with removed \HCode{<!--l. \the\inputlineno-->}
\makeatletter
\catcode`\:11
\Configure{DviMath}
    {\a:DviJsmath \mathltxtrue
       \ifOption{mml-fonts}{}{\NoFonts}%
       \IgnoreRule \ifx \a:@math\empty\else
               \Tg<\a:@math\space class="math"\Hnewline >\fi
       \a:math
       \edef\sv:ignore{\if:nopar
    \noexpand\IgnorePar\else \noexpand\ShowPar\fi}%
\IgnorePar}
    {\ifx \a:@math\empty\else \Tg</\a:@math>\fi \EndIgnoreRule
     \ifOption{mml-fonts}{}{\EndNoFonts}%
     \mathltxfalse \After:Math \b:DviJsmath \sv:ignore
}
\catcode`\:12
\makeatother
% ----------------------- End configuring math

\def\tempc#1{\def\temp{\HCode{\string#1}\HCode{ }}\HLet#1\temp}

\tempc\#
\tempc\$
\tempc\lfloor
\tempc\rfloor
% \tempc\alpha
% \tempc\beta
% \tempc\gamma
% \tempc\delta
% \tempc\epsilon
% \tempc\varepsilon
% \tempc\zeta
% \tempc\eta
% \tempc\theta
% \tempc\vartheta
% \tempc\iota
% \tempc\kappa
% \tempc\lambda
% \tempc\mu
% \tempc\nu
% \tempc\xi
% \tempc\pi
% \tempc\varpi
% \tempc\rho
% \tempc\varrho
% \tempc\sigma
% \tempc\varsigma
% \tempc\tau
% \tempc\upsilon
% \tempc\phi
% \tempc\varphi
% \tempc\chi
% \tempc\psi
%
% \tempc\Gamma
% \tempc\Xi
% \tempc\Phi
% \tempc\Delta
% \tempc\Pi
% \tempc\Psi
% \tempc\Theta
% \tempc\Sigma
% \tempc\Omega
% \tempc\Lambda
% \tempc\Upsilon
%
% \tempc\Im
% \tempc\Re
% \tempc\aleph
% \tempc\angle
% \tempc\backslash
% \tempc\bot
% \tempc\cdots
% \tempc\clubsuit
% \tempc\ddots
% \tempc\diamondsuit
% \tempc\ell
% \tempc\emptyset
% \tempc\exists
% \tempc\flat
% \tempc\forall
% \tempc\hbar
% \tempc\heartsuit
% \tempc\imath
% \tempc\infty
% \tempc\jmath
% \tempc\ldots
% \tempc\nabla
% \tempc\natural
% \tempc\neg
% \tempc\partial
% \tempc\prime
%
% \tempc\sharp
% \tempc\spadesuit
% \tempc\surd
% \tempc\top
% \tempc\triangle
% \tempc\vdots
% \tempc\wp
%
% \tempc\Pr
% \tempc\arccos
% \tempc\arcsin
% \tempc\arctan
% \tempc\arg
% \tempc\cos
% \tempc\cosh
% \tempc\cot
% \tempc\coth
% \tempc\csc
% \tempc\deg
% \tempc\det
% \tempc\dim
% \tempc\exp
% \tempc\gcd
% \tempc\hom
% \tempc\inf
% \tempc\ker
% \tempc\lg
% \tempc\lim
% \tempc\liminf
% \tempc\limsup
% \tempc\ln
% \tempc\log
% \tempc\max
% \tempc\min
% \tempc\sec
% \tempc\sin
% \tempc\sinh
% \tempc\sup
% \tempc\tan
% \tempc\tanh

% \tempc\Downarrow
% \tempc\Leftarrow
% \tempc\Leftrightarrow
% \tempc\Longleftarrow
% \tempc\Longleftrightarrow
% \tempc\Longrightarrow
% \tempc\Rightarrow
% \tempc\Uparrow
% \tempc\Updownarrow
% \tempc\amalg
% \tempc\approx
% \tempc\ast
% \tempc\asymp
% \tempc\bigcap
% \tempc\bigcirc
% \tempc\bigcup
% \tempc\bigodot
% \tempc\bigoplus
% \tempc\bigotimes
% \tempc\bigsqcup
% \tempc\bigtriangledown
% \tempc\bigtriangleup
% \tempc\biguplus
% \tempc\bigvee
% \tempc\bigwedge
% \tempc\bowtie
% \tempc\bullet
% \tempc\cap
% \tempc\cdot
% \tempc\circ
% \tempc\cong
% \tempc\coprod
% \tempc\cup
% \tempc\dagger
% \tempc\dagger
% \tempc\dashv
% \tempc\ddagger
% \tempc\ddagger
% \tempc\diamond
% \tempc\div
% \tempc\doteq
% \tempc\downarrow
% \tempc\equiv
% \tempc\frown
% \tempc\geq
% \tempc\gg
% \tempc\hookleftarrow
% \tempc\hookrightarrow
% \tempc\in
% \tempc\int
% \tempc\leftarrow
% \tempc\leftharpoondown
% \tempc\leftharpoonup
% \tempc\leftrightarrow
% \tempc\leq
% \tempc\ll
% \tempc\longleftarrow
% \tempc\longleftrightarrow
% \tempc\longmapsto
% \tempc\longrightarrow
% \tempc\mapsto
% \tempc\mid
% \tempc\models
% \tempc\mp
% \tempc\nearrow
% \tempc\ni
% \tempc\not
% \tempc\nwarrow
% \tempc\odot
% \tempc\oint
% \tempc\ominus
% \tempc\oplus
% \tempc\oslash
% \tempc\otimes
% \tempc\parallel
% \tempc\perp
% \tempc\pm
% \tempc\prec
% \tempc\preceq
% \tempc\prod
% \tempc\propto
% \tempc\rightarriw
% \tempc\rightharpoondown
% \tempc\rightharpoonup
% \tempc\rightleftharpoons
% \tempc\searrow
% \tempc\setminus
% \tempc\sim
% \tempc\simeq
% \tempc\smile
% \tempc\sqcap
% \tempc\sqcup
% \tempc\sqsubseteq
% \tempc\sqsupseteq
% \tempc\star
% \tempc\subset
% \tempc\subseteq
% \tempc\succ
% \tempc\succeq
% \tempc\sum
% \tempc\supset
% \tempc\supseteq
% \tempc\swarrow
% \tempc\times
% \tempc\triangleleft
% \tempc\triangleright
% \tempc\uparrow
% \tempc\updownarrow
% \tempc\uplus
% \tempc\vdash
% \tempc\vee
% \tempc\wedge
% \tempc\wr
% %%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\EndPreamble