Following up on this: Bob Stayton has helped to diagnose the issue and it
appears to be a limitation with the current support for indexing in
docbook-xsl.

It works for indexes in a single language, but doesn't completely work for
trying to build several indexes, each in different languages (e.g.,
separate indexes in English and Japanese). The issue is being tracked as
#238 <https://github.com/docbook/xslt10-stylesheets/issues/238> on GitHub.

Since I'm working against a deadline, I wrote a Smalltalk app to read the
FO file, generate an index in Japanese as FO-XML, and then write out a new
FO file before invoking FOP. Not ideal, but it works.

Thanks again for your collective help with this issue,

M.

On Mon, Jan 3, 2022 at 5:28 AM Kevin Dunn <[email protected]> wrote:

> I'll put in a plug for AH Formatter. I love open-source tools, and use
> them when I can. But after fighting with FOP for a while, only to discover
> repeatedly that it didn't implement the
> features I needed, I downloaded the free trial versions of AH Formatter
> and RenderX XEP. Both were much more powerful and easier to configure than
> FOP. XEP is the less expensive of the two, but ultimately the AHF
> extensions won me over, and I bought it. If your time is at all valuable,
> you should spend a couple of days with the free trial versions to see what
> they can do for you.
>
> That said, I was able to get multiple indexes using the method on p 312 of
> DBTCG. It works in both AHF and FOP. I have not tried using different fonts
> in the different indexes.
>
> Kevin
> ------------------------------
> *From:* M. Downing Roberts <[email protected]>
> *Sent:* Sunday, January 2, 2022 7:33 AM
> *To:* [email protected] <[email protected]
> >
> *Subject:* Re: [docbook-apps] Multiple languages in PDF?
>
> Hi,
>
> Thanks for your suggestions. I know AH is better but alas, I am using FOP.
>
> Still stuck,
>
> M.
>
>
>
> On Sun, Jan 2, 2022 at 7:10 PM Tony Graham <[email protected]> wrote:
>
> 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]
>
>

Reply via email to