2013-11-04 41 views
2

我正在Ubuntu 13.04上使用DockBook 4.5和Apache FOP 1.1。 Docbook翻譯由Ubuntu提供,FOP直接從Apache下載。將標題或標題與圖像對齊?

第一個問題:有人請告訴我如何確保圖像的標題或標題與圖像對齊?例如:

Figure X: YYYYYY 
+---------------+ 
|    | 
|  Image  | 
|    | 
+---------------+ 

我知道我可以用下面的對齊imagedata

<figure id="figure-xxx"> 
<title>YYYYY</title> 

    <mediaobject> 
    <imageobject> 
     <imagedata align="center" fileref="xxx.png" scale="75"/> 
    </imageobject> 
    <caption>XXX/caption> 
    </mediaobject> 
</figure> 

然而,align="center"產生類似:

Figure X: YYYYYY 
      +---------------+ 
      |    | 
      |  Image  | 
      |    | 
      +---------------+ 

而且align="right"使情況變得更糟:

Figure X: YYYYYY 
        +---------------+ 
        |    | 
        |  Image  | 
        |    | 
        +---------------+ 

當我嘗試將align標籤添加到figuretitlemediaobjectimageobject,或caption,我得到類似的錯誤:

element figure: validity error : No declaration for attribute align of element figure 

和:

element mediaobject: validity error : No declaration for attribute align of element mediaobject 

也許我再次做錯事。嘗試在圖像周圍流動文本(Block Image Right and Flow Text Around It?)並將標題與圖像對齊(此問題)後,我仍然想知道DocBook是否可以在現實生活中使用圖像。

所以我的第二個問題:有人知道DocBook是否支持真實生活中的圖像?

編輯:對於第二個問題的答案,問題是使用Apache FOP而不是DocBook。

+0

你可以嘗試設置'

'標籤的寬度嗎?我不熟悉DocBook,但我確定適用基本的樣式規則:http://jsfiddle.net/MrPolywhirl/GTckP/? –

回答

3

我假設「Docbook翻譯」的意思是docbook-xsl(我不認爲確切的版本在這裏很重要,但通常它可能很重要)。

您可以通過自定義formal.title.properties屬性集來解決標題對齊問題。添加到您的定製層:

<xsl:attribute-set name="formal.title.properties"> 
<xsl:attribute name="text-align"> 
    <xsl:variable name ="align"> 
    <xsl:value-of select=".//imagedata/@align"/> 
    </xsl:variable> 
    <xsl:choose> 
    <xsl:when test="self::figure and $align !=''"> 
    <xsl:value-of select="$align"/> 
    </xsl:when> 
    <xsl:otherwise>left</xsl:otherwise> 
    </xsl:choose> 
</xsl:attribute> 
<xsl:attribute-set> 

含義:如果在imagedata元素上align值,使用圖形的標題,價值,否則使用「左」。請參閱http://www.sagehill.net/docbookxsl/TitleFontSizes.html#FormalTitleProperties

+0

謝謝mzjn。我已經停止使用Apache的FOP。它有太多的問題(像這樣並且無聲地丟棄漂浮的圖像/數字)。 – jww