Re: Multiple languages in PDF?
Tony Graham <[email protected]> Sun, 2 Jan 2022 10:10:28 +0000
| Newsgroups | gmane.text.docbook.apps |
|---|---|
| Message-ID | <[email protected]> |
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