import os
import os.path
import shutil
+from distutils.dir_util import copy_tree # shutil.copytree is so uncapable.
from StringIO import StringIO
from tempfile import mkdtemp, NamedTemporaryFile
import re
return p == 0
-def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
- cover=None, flags=None, customizations=None):
+def transform(wldoc, verbose=False, save_tex=None, save_texml=None, morefloats=None,
+ cover=None, flags=None, customizations=None, documentclass='wl', resources=None):
""" produces a PDF file with XeLaTeX
wldoc: a WLDocument
verbose: prints all output from LaTeX
save_tex: path to save the intermediary LaTeX file to
+ save_texml: path to save the intermediary TeXML file to
morefloats (old/new/none): force specific morefloats
cover: a cover.Cover factory or True for default
flags: less-advertising,
customizations: user requested customizations regarding various formatting parameters (passed to wl LaTeX class)
+ documentclass: LaTeX document class, defaults to wl
+ resources: a directory with resources, copied to place where LaTeX compilation is made
"""
# Parse XSLT
if customizations is not None:
root.set('customizations', u','.join(customizations))
+ root.set('documentclass', documentclass)
+
# add editors info
root.set('editors', u', '.join(sorted(
editor.readable() for editor in document.editors())))
texml = document.transform(style)
+ if save_texml:
+ texml.write(save_texml)
+
# TeXML -> LaTeX
temp = mkdtemp('-wl2pdf')
# LaTeX -> PDF
shutil.copy(get_resource('pdf/wl.cls'), temp)
+ shutil.copy(get_resource('pdf/wlpub.cls'), temp)
shutil.copy(get_resource('res/wl-logo.png'), temp)
+ if resources:
+ copy_tree(resources, temp)
try:
cwd = os.getcwd()
<xsl:template match="utwor">
<TeXML xmlns="http://getfo.sourceforge.net/texml/ns1">
<TeXML escape="0">
- \documentclass[<xsl:value-of select="@customizations"/>]{wl}
+ \documentclass[<xsl:value-of select="@customizations"/>]{<xsl:value-of select="@documentclass"/>}
<!-- flags and values set on root -->
</cmd>
</xsl:template>
+<xsl:strip-space elements="ilustr"/>
<xsl:template match="ilustr">
<cmd>
<xsl:attribute name="name">
<xsl:value-of select="wl:texcommand(name())" />
</xsl:attribute>
- <parm><xsl:value-of select="@src" /></parm>
+ <parm><TeXML escape="0"><xsl:value-of select="normalize-space(@src)" /></TeXML></parm>
<parm><xsl:apply-templates mode="inline" /></parm>
</cmd>
</xsl:template>
</math>
</xsl:template>
+<xsl:template match="latex" mode="inline">
+ <TeXML escape="0">
+ <xsl:apply-templates select="@*|node()" mode="identity"/>
+ </TeXML>
+</xsl:template>
+
<xsl:template match="tablewrap">
<cmd name="begin"><parm>table</parm><opt>h!</opt></cmd>
<xsl:apply-templates select="table"/>
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
+\usepackage{trimspaces}
\usepackage[overload]{textcase}
\usepackage{scalefnt}
\parindent 1em\noindent \hb@xt@ 1.8em{\hss \@makefnmark \enskip}#1.
}
+\def\trimspace#1{\trim@spaces{#1}}
+
\makeatother
\vspace{10pt}%
}
+\newcommand{\ilustr}[2]{
+ \vspace{1em}%
+ \begin{center}%
+ \par{\includegraphics[width=\textwidth]{\trimspace{#1}}\\#2}%
+ \end{center}%
+ \vspace{1em}%
+}
+
+
\newcommand{\motyw}[2][0]{%
\ifshowthemes
\mbox{}%
ext = "pdf"
uses_cover = True
uses_provider = True
- transform_args = [
+ transform_options = [
Option('-t', '--save-tex', dest='save_tex', metavar='FILE',
help='path to save the intermediary LaTeX file to'),
+ Option('-x', '--save-texml', dest='save_texml', metavar='FILE',
+ help='path to save the intermediary TeXML file to'),
Option('-m', '--morefloats', dest='morefloats', metavar='old/new/none',
- help='force morefloats in old (<1.0c), new (>=1.0c) or none')
+ help='force morefloats in old (<1.0c), new (>=1.0c) or none'),
+ Option('-R', '--resources', dest='resources', metavar='DIR',
+ help='a directory with additional resources'),
+ Option('-D', '--documentclass', dest='documentclass',
+ help='LaTeX document class, defaults to "wl"')
]