OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] include MathML files with the help of XSL


You need to use the FOP plugin from JEuclid (JEuclid.sf.net). This will convert the MathML to FOP.
 
I will usually have all my MathML in separate files and then xinclude them.
 
    <equation align="center"><title>Here is a nice centered equation</title>
      <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href=""  />
    </equation>
The MathML support can be a little "touchy" but once its working, its pretty solid.
 
Regards
Dean Nelson
 
In a message dated 7/11/2012 6:57:23 A.M. Pacific Daylight Time, jazoja4@gmail.com writes:
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=""/>

    <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:

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 <jazoja4@gmail.com>
Here is the result of "dynamically include MathML files with the help of XSLT when generating HTML files":

Test setup:

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=""/>

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




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]