在我的 XSLT 中,应该使用哪个字符串才能使 FOP 在标题中打印书名?我在任何地方都找不到这个,任何帮助都非常感谢!
编辑:
所以,
<xsl:when test="$sequence = 'even' and $position = 'right'">
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
</xsl:when>
将打印缩写的章节名称。我想做同样的事情,但针对书名。
答案1
用这个:
<xsl:when test="$sequence = 'even' and $position = 'right'">
<xsl:value-of select="ancestor-or-self::d:book/d:bookinfo/d:title"></xsl:value-of>
</xsl:when>
本例中的标题嵌套在 下<bookinfo>
。d:
标签是必需的。但要做到这一点,请确保已在样式表的开头导入了命名空间:
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:d="http://docbook.org/ns/docbook"
exclude-result-prefixes="d"
version="1.0">
此行之后您可以导入 docbook.xsl。
以书名开头的 docbook 示例:
<?xml version="1.0"?>
<book xmlns="http://docbook.org/ns/docbook" version="5.0">
<bookinfo>
<title>THIS IS THE TITLE OF THE BOOK</title>
</bookinfo>
...
...
</book>
答案2
http://www.sagehill.net/docbookxsl/PrintHeaders.html可能会有帮助。提供片段,也许我可以提供更多帮助。
答案3
有点晚了,但我在寻找方法时偶然发现了你的问题。
经过一番搜索我最终得到:
在本<xsl:template name="header.content">
节中:
<xsl:when test="$position = 'left'">
<xsl:value-of select="//d:book/d:title"/>,
<xsl:value-of select="//d:book/d:subtitle"/>
</xsl:when>
当标题不适合页眉的左侧部分时,您可以使用以下方法使左侧部分更宽(此示例中为 100%):
<xsl:param name="header.column.widths">1 0 0</xsl:param>
在您的配置 xslt 中的某处。
答案4
页眉可以显示在<fo:region-before>
定义页面顶部区域的位置。
我从您的示例中看到您测试了“偶数”。我知道您只需要在偶数页上使用此标题。您可以通过定义不同的页面母版 ( <fo:simple-page-master master-name="even">
) 来实现此目的 - 查找<fo:page-sequence-master>
和<fo:conditional-page-master-reference>
以显示奇数/偶数页。在此页面母版中,您可以定义页面的不同区域。