On 02/01/2022 02:26, M. Downing Roberts wrote:
...
Another, simpler point I'm stuck on: I need to select a different font
for the Japanese index, i.e., I need to detect @type='ja' in the <index>
element and switch fonts.
If you are using AH Formatter, you can map the generic font family names
to specific fonts per script. [1]
I tried this in my customization layer:
<xsl:template match="indexentry">
<xsl:choose>
<xsl:when test="contains(' ja ', parent::type)">
"contains(' ja ', parent::type)" is true only when the string ' ja '
(including its space characters) contains the text content of the <type>
parent element of the <indexentry>. [1] There's several reasons why
that won't happen.
If you are generating <indexdiv> to group <indexterm>, then <indexterm>
isn't the parent element anyway.
One solution would be:
<xsl:when test="ancestor::index/@type = 'ja'">
Another would be a separate template for Japanese <indexentry>, if you
would find that clearer:
<xsl:template match="indexentry[ancestor::index/@type = 'ja']">
<fo:wrapper font-family="'Zen Old Mincho'">
<xsl:apply-templates/>
</fo:wrapper>
</xsl:template>
(fo:wrapper [3] is mostly a way to add inherited properties without
generating an extra area in the area tree.)
If your template is in a module that imports (directly or indirectly)
the usual template for <indexentry>, you can do: [4]
<xsl:template match="indexentry[ancestor::index/@type = 'ja']">
<fo:wrapper font-family="'Zen Old Mincho'">
<xsl:apply-imports/>
</fo:wrapper>
</xsl:template>
Or you could set the font in your template for <index>:
<xsl:template match="index[@type = 'ja']">
<fo:wrapper font-family="'Zen Old Mincho'">
<xsl:apply-imports/>
</fo:wrapper>
</xsl:template>
Regards,
Tony Graham.
--
Senior Architect
XML Division
Antenna House, Inc.
----
Skerries, Ireland
[email protected]
[1] https://www.antenna.co.jp/AHF/help/en/ahf-optset.html#script-font
[2] https://www.w3.org/TR/1999/REC-xpath-19991116/#function-contains
[3] https://www.w3.org/TR/xsl11/#fo_wrapper
[4] https://www.w3.org/TR/1999/REC-xslt-19991116#apply-imports
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]