OPのコメントで触れたように、右または左に浮く数字にマージンを導入するには、次を使用するだけで十分です。
<xsl:attribute-set name="figure.properties">
<xsl:attribute name="margin-left">6pt</xsl:attribute>
<xsl:attribute name="margin-right">6pt</xsl:attribute>
</xsl:attribute-set>
私の元の答え(以下)は不必要に複雑だったと思います。
という名前のテンプレートfloater
( http://www.sagehill.net/docbookxsl/SideFloats.html#CustomSideFloatfo:float
を参照) は、書式設定オブジェクトを出力します。このテンプレートは、デフォルト値 0 のstart.indent
およびend.indent
パラメータを取ります。残念ながら、これらのデフォルト値は、figure
テンプレートが を呼び出しても変更されないfloater
ため、問題が発生します。
これを機能させるには、テンプレート マッチングを少し修正するだけで済みますfigure
(以下のコードのコメントを参照してください)。したがって、以下をカスタマイズ レイヤーに追加します。
<xsl:template match="figure">
<xsl:variable name="param.placement"
select="substring-after(normalize-space($formal.title.placement),
concat(local-name(.), ' '))"/>
<xsl:variable name="placement">
<xsl:choose>
<xsl:when test="contains($param.placement, ' ')">
<xsl:value-of select="substring-before($param.placement, ' ')"/>
</xsl:when>
<xsl:when test="$param.placement = ''">before</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$param.placement"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="figure">
<xsl:choose>
<xsl:when test="@pgwide = '1'">
<fo:block xsl:use-attribute-sets="pgwide.properties">
<xsl:call-template name="formal.object">
<xsl:with-param name="placement" select="$placement"/>
</xsl:call-template>
</fo:block>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="formal.object">
<xsl:with-param name="placement" select="$placement"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="floatstyle">
<xsl:call-template name="floatstyle"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$floatstyle != ''">
<xsl:call-template name="floater">
<xsl:with-param name="position" select="$floatstyle"/>
<xsl:with-param name="content" select="$figure"/>
<!-- The following two lines added to introduce a 10pt 'margin' for floats (right or left) -->
<xsl:with-param name="start.indent">10pt</xsl:with-param>
<xsl:with-param name="end.indent">10pt</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$figure"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>