AntennaHouse / pdf5-ml

Antenna House PDF5-ML DITA-OT Plug-in
23 stars 9 forks source link

TOCに文字だけを表示したい(画像を排除したい) #113

Closed tmaeda3 closed 4 years ago

tmaeda3 commented 4 years ago

添付のマップとトピック sample-code.txt でTOCを出力すると、文字列だけでなく画像データ(subtitle.PNG)も出力されます。 sample-output

文字列「安全上のご注意」だけをTOCに出力するためのカスタマイズ方法を教えていただけないでしょうか。

ToshihikoMakita commented 4 years ago

あくまでもヒントですが、目次を作るときに高いレベルの呼び出しで「画像を処理しない」旨のトンネルパラメータを付加して.imageの処理でそのトンネルパラメータがtrue()だったら、画像処理をスキップするようにしたらいかがでしょうか?

一例ですが dita2fo_toc.xsl line 74, 110 を次のように修正、トンネルパラメータを渡します.

<xsl:call-template name="genMapTocMain">
    <xsl:with-param name="prmSkipImage" as="xs:boolean" tunnel="yes" select="true()"/>
</xsl:call-template>

dita2fo_bodyelements.xsl line 383 or later

<xsl:template match="*[contains(@class, ' topic/image ')]">
    <xsl:param name="prmSkipImage" as="xs:boolean" tunnel="yes" required="no" select="false()"/>
    <xsl:choose>
        <xsl:when test="$prmSkipImage"/>
        <xsl:when test="string(@placement) eq 'break'">
            <!-- block level image -->
        ...

というような感じです.

tmaeda3 commented 4 years ago

ありがとうございます。いろいろ試してみましたが、出力結果は変わりませんでした。

ToshihikoMakita commented 4 years ago

上記のコーディング通りにやってみた結果です.目次が目次に出てしまっているなどいまいちのところはありますが...

[修正前] before

[修正後]

after

参考にデータを添付します.

20191217-support.zip

tmaeda3 commented 4 years ago

dita2fo_toc.xsl line の54行目にも同じトンネルパラメーターを入れたら、画像が表示されなくなりました。ありがとうございました。