*Is there any single way to use the same method for generating PDFs? (instead of HTML)*
I modified the method described earlier to generate PDF files with MathML equations, but I didn't succeed. * Attempt one:* - I just changed the import href link from HTML to FO *Content of the transformation XSL file: (**PDF_MathML.xsl**) * *<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform"> * * <xsl:import href="./docbook-xsl-1.77.1/fo/docbook.xsl"/> <xsl:output method="html" encoding="utf-8" indent="yes" /> <xsl:template match="inlineequation | equation | informalequation"> <xsl:variable name="id" select="@id"/> <xsl:variable name="mathml" select="concat('math/',$id, '.math')"/> <xsl:apply-templates select="document($mathml,.)/*"/> </xsl:template> </xsl:stylesheet>* I used Apache-FOP on Windows: *fop.bat -c conf/fop.xconf -xml DSP_korrekted_2_abrak.xml -xsl PDF_MathML.xsl -param body.font.family Times-Roman -param title.font.family Times-Roman -pdf manual.pdf* It gave me some errors related to missing fo: namespace. (or maybe root? I cant remember well) * Attempt two:* - I modified the fo/math.xsl file, and included the following lines: *<xsl:template match="inlineequation | equation | informalequation"> <xsl:variable name="id" select="@id"/> <xsl:variable name="mathml" select="concat('math/',$id, '.math')"/> <xsl:apply-templates select="document($mathml,.)/*"/> </xsl:template>* It gave me a bunch of MathML-related warnings: - WARNING: Unknown formatting object "{http://www.w3.org/1998/Math/MathML} etc. etc. And then a bunch of MathML files not found: - WARNING: Page xxiv: Unresolved ID reference "Eq_1096" found. Ideas appreciated 2012/6/28 Zoltán János Jánosi <[email protected]> > Here is the result of "dynamically include MathML files with the help of > XSLT when generating HTML files": > > *Test setup:* > > - DocBook v4.4 files with equation, inlineequation and > informalequation tags, where every equatin has an id > - MathML files has the same name as the equations id's > - DocBook XSLT files v1.77.1 ( > > http://sourceforge.net/projects/docbook/files/docbook-xsl/1.77.1/docbook-xsl-1.77.1.zip/download > ) > > *Content of the transformation XSL file:* > > ** > *<?xml version="1.0" encoding="utf-8"?> > <xsl:stylesheet version="1.0" xmlns:xsl=" > http://www.w3.org/1999/XSL/Transform"> > * > * <xsl:import href="./docbook-xsl-1.77.1/html/docbook.xsl"/> > > <xsl:output method="html" encoding="utf-8" indent="yes" /> > <xsl:template match="inlineequation | equation | informalequation"> > > <xsl:variable name="id" select="@id"/> > <xsl:variable name="mathml" select="concat('math/',$id, '.math')"/> > > <xsl:apply-templates select="document($mathml,.)/*"/> > </xsl:template> > </xsl:stylesheet>* > > I used Saxon 6.5.5 ( > http://sourceforge.net/projects/saxon/files/saxon6/6.5.5/saxon6-5-5.zip/download) > as an XSLT 1.0 processor. (XSLT 2.0 processors gave errors with DocBook > v1.77.1) > > *The following command was used:* > > *java -jar saxon.jar -o output.html DSP_DocBook_v44_v0.45.xml > HTML5_MathML.xsl* > > The resulting html file contains the MathML equations and in FireFox they > look great. > > This solution is not perfect (lacks differrences of equation types), but > it works and is a good starting point for further development. >
