AH Formatter MathML fonts on Linux

Inasmuch as AH Formatter supports MathML 3.0 but on Linux ships with a minimal font-config.xml file, if you are formatting non-trivial MathML on Linux, then you’ll probably need to add some mathematical fonts to your font-config.xml.

identity-matrixIf x2y2 counts as trivial because you could do it with “ordinary” fonts, then non-trivial would include anything requiring “stretchy” characters, such as the identity matrix example from the MathML 3.0 spec that is shown on the right rendered without and with mathematical fonts. AH Formatter on Linux uses the STIX fonts by default, so the simplest way to get your MathML rendering correctly is to make sure that the STIX fonts are installed and that AH Formatter will use them. Continue reading “AH Formatter MathML fonts on Linux”

Validating XSL-FO

Inasmuch as it’s something that people ask for, I demoed in the DemoJam at XML Prague that I’d been working on a Relax NG schema and Schematron rules for validating XSL-FO. Most of both the schema and the Schematron were generated directly from the XML source for the XSL 1.1 Recommendation. Additionally, the Schematron used a parser written in XSLT for handling the XSL-FO expression language, so the Schematron could evaluate property values rather than just matching on property value strings.

Relax NG and Schematron validation in oXygen

There was also an oXygen add-on framework in the works, and, naturally, the schema and Schematron also covered Antenna House extensions.

If you look at the screenshot, you’ll see:

  • Schematron error for the interrelated <axf:document-info> elements.
  • No error for ‘column-count="-1 - -2"‘ because the value evaluates as a positive integer.
  • oXygen ‘tooltip’ information for fo:block extracted from the XML for the XSL 1.1 Recommendation.
  • The ‘neutral’ and ‘out-of-line’ formatting objects, as well as the XSL 1.1 ‘point’ fo:change-bar-begin and fo:change-bar-end formatting objects that can appear anywhere inside a fo:flow, are available where they are allowed.
  • Schematron error for the invalid font-size value.

XSL 1.1 properties

Inasmuch as I find it useful and 50% of the people that I’ve shown it to find it useful, the XSL 1.1 Properties quick reference is now available at http://www.mentea.net/resources/xsl11-properties.pdf. It crams all the properties, their values, and their defaults into two A4 pages for when you just want to know the allowed value of a particular property. When printed, it works best when the pages flip along the long edge, and when viewed online, the property names link to their definitions in the XSL 1.1 spec. Continue reading “XSL 1.1 properties”

Adapt Saxon-CE event model to XSL-FO?

Inasmuch as the Print and Page Layout Community Group at the W3C is looking at how to get feedback from the XSL formatter and I’ve also been reading about how Saxon-CE handles user input, I’m now wondering whether the same sort of pattern could be adapted to handling feedback from the XSL formatter. Saxon-CE does it through template rules that match the element that receives the event and are in a mode that reflects the type of event, and similarly an XSL formatter could trigger on exceptional events such as overflow occurring or even on mundane events such as completion of a page sequence, and the templates in the corresponding modes could match on either FOs in the FO tree or areas in the area tree. Continue reading “Adapt Saxon-CE event model to XSL-FO?”

generate-id() in xsl:attribute-set

Inasmuch as xsl:attribute-set is most often thought of for adding constant sets of XSL-FO properties, it’s easy to forget that, as it says in the XSLT 2.0 spec:

Evaluating the same attribute set more than once can produce different results, because although an attribute set does not have parameters, it may contain expressions or instructions whose value depends on the evaluation context. Continue reading “generate-id() in xsl:attribute-set”

Khmer pagination

Inasmuch as Khmer – more specifically, my lack of knowledge about how to best format Khmer – made up a slide in my “XSL-FO meets the Tower of Babel” talk at the MultilingualWeb workshop in Luxembourg last week, Richard Ishida directed me to his page about Khmer, from which I found Franklin Huffman’s “Cambodian System of Writing“, and in the 153-page book, I found half a page on page numbering and section numbering in Khmer. Continue reading “Khmer pagination”

XSL-FO Meetup at XML Prague 2012

Inasmuch as XML Prague 2012 includes “Pre-conference Friday“, the W3C XML Print and Page Layout Working Group is looking to host a XSL-FO meetup before XML Prague on Friday, 10 February 2012. The format and content will depend on your feedback. Possible ideas include:

  • Update on the XSL-FO 2.0 work
  • ‘Ignite’ lightning talks on XSL-FO
  • XSL-FO tutorial

If you use Twitter, register your interest at the “XSL-FO meetup @ XML Prague 2012” page on Lanyrd.com, otherwise send me email. If you have suggestions for the format or content, likewise add something to the Lanyrd page or send me email.