Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 将标题或标题与图像对齐?_Xml_Image_Apache Fop_Docbook - Fatal编程技术网

Xml 将标题或标题与图像对齐?

Xml 将标题或标题与图像对齐?,xml,image,apache-fop,docbook,Xml,Image,Apache Fop,Docbook,我正在Ubuntu 13.04上使用DockBook4.5和ApacheFop1.1。Docbook翻译由Ubuntu提供,FOP直接从Apache下载 第一个问题:有人能告诉我如何确保图片的标题或标题与图片对齐吗?例如: Figure X: YYYYYY +---------------+ | | | Image | | | +---------------+ 我知道我可以将imagedata与以下内容对齐:

我正在Ubuntu 13.04上使用DockBook4.5和ApacheFop1.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=“right”
会让情况变得更糟:

 Figure X: YYYYYY
                     +---------------+
                     |               |
                     |     Image     |
                     |               |
                     +---------------+
当我尝试将
align
标记添加到
标题
媒体对象
图像对象
、或
标题
,我会收到类似以下错误:

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

也许我又做错了什么。在尝试将文本环绕图像()并将标题与图像对齐(这个问题)之后,我开始怀疑DocBook是否可以在现实生活中处理图像

所以我的第二个问题是:有人知道DocBook是否支持现实生活中的图像吗

编辑:对于第二个问题的答案,问题在于ApacheFop而不是DocBook。

我认为“DocBook翻译”的意思是(我认为确切的版本在这里不太重要,但它通常很重要)

您可以通过自定义
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
值,则将该值用作图形标题,否则使用“left”


另请参见。

能否尝试设置
标签上的宽度?我不熟悉DocBook,但我确信基本的样式规则适用:?谢谢mzjn。我已经停止使用Apache的FOP。它有太多的问题(像这样,无声地丢弃浮动图像/数字)。
element mediaobject: validity error : No declaration for attribute align of element mediaobject
<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>