Отрегулируйте размер шрифта XSL-FO с помощью Apache FOP - PullRequest
0 голосов
/ 21 октября 2018

У меня есть следующий документ Docbook 5.1

<?xml version="1.0" encoding="UTF-8"?>
<book xmlns="http://docbook.org/ns/docbook"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    version="5.1">
    <info>
        <title>Test</title>
    </info>
    <chapter>
        <title>Switchs of <systemitem class="domainname">corp.net</systemitem></title>
        <para>
            Switchs: <systemitem class="fqdomainname">switch-<replaceable>id</replaceable>.corp.net</systemitem>.
        </para>
    </chapter>
</book>

И я использую следующую таблицу стилей настройки

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/fo/profile-docbook.xsl"/>
    <xsl:param name="monospace.font.family">Liberation Mono</xsl:param>
    <xsl:attribute-set name="monospace.properties">
        <!-- XXX -->
    </xsl:attribute-set>
</xsl:stylesheet>

К сожалению, используемый мной моноширинный шрифт слишком велик, поэтому я хочууменьшите его до 85% от размера шрифта с засечками.

Первое, что я попробовал, было

<xsl:attribute name="font-size">0.85em</xsl:attribute>

Это работало хорошо, за исключением случаев, когда есть вложенный моноширинный текст.В этом случае внутренний слишком маленький.

Тогда я попытался

<xsl:attribute name="font-size">
    <xsl:value-of select="$body.font.master * 0.85"/>
    <xsl:text>pt</xsl:text>
</xsl:attribute>

Это не работает, когда моноширинный текст «внутри» текста большего размера (например, заголовки).

Я прочитал http://docbook.sourceforge.net/release/xsl/1.78.1/doc/fo/monospace.properties.html,, который рекомендует использовать font-size-adjust, но FOP 2.3 его не поддерживает.

Есть ли способ имитировать font-size-adjust поведение?

...