我有一个docbook文档,当我创建PDF时,我希望它显示章节标题,前面没有单词"chapter"。根据这一点,以下内容应该有效:
我的自定义样式表:(doc.xsl)
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:import
href="/usr/share/xml/docbook/stylesheet/docbook-xsl-ns/fo/docbook.xsl"/>
<xsl:param name="local.l10n.xml" select="document('')"/>
<l:l18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="en">
<l:context name="title-numbered">
<l:template name="chapter" text="%n. %t"/>
</l:context>
</l:l10n>
</l:l18n>
</xsl:stylesheet>
当我使用此文档时:(doc.xml)
<book xmlns="http://docbook.org/ns/docbook" version="5.0"
xml:lang="en">
<title>Doc</title>
<chapter>
<title>Introduction</title>
<section>
<title>Purpose of the document</title>
<para></para>
</section>
</chapter>
</book>
以及这些命令:
xsltproc doc.xsl doc.xml > doc.fo
fop -fo doc.fo -pdf fo.pdf
生成的PDF在名为"简介"的章节前面仍然有"第1章"。
我尝试了不同的上下文名称,如"title",但它不起作用。我做错了什么,或者如何调试这个问题?
更新我发现了问题。行l:l18n
应读取l:i18n
。。。
我发现了问题。这是我发现的一个例子中的一个拼写错误,与I和l看起来太相似的字体结合在一起。
修复方法如下:
<l:l18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
在这一行中,它应该读取l:i18n
(带有i
而不是l
)