*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.
>

Reply via email to