第 3 章 样式定义

目录

1. 参数设置部分
2. 样式模板

最后生成的文件在版式和样式上想要达到自己想要的结果,就必须修改样式表。关于样式表的修改主要包含两个大的部分:一是修改现有的一些配置参数,如字体、字体大小等;二是直接修改某些板块的模板。修改参数相对简单,修改模板就需要做更多的工作。基本上所有的信息都在下面这两个站点里:

docbook xsl 参考手册

参数修改参考

本章仅以fo(pdf)样式表的修改为例做简要说明。

1. 参数设置部分

fo样式表的所有参数的设定都在文件docbook-xsl-1.79.1/fo/param.xsl里面。大概有个差不多1000多行的代码。在前面已经对语言、字体的设置做了调整,在这里我们进一步说明一下,并再列举几个简单的例子,说明参数是如何调整的。

  1. language
      1 <xsl:param name="l10n.gentext.default.language">zh_cn</xsl:param>
      2 <xsl:param name="l10n.gentext.language">zh_cn</xsl:param>

    这是对使用语言的设置,在样式表目录里有一个docbook-xsl-1.79.1/common/zh_cn.xml语言包文件,这是中文的语言包。这个文件里的内容都是预先设置好的固定文本。设置什么样的语言,处理程序就会找哪个语言包。docbook-xsl对中文的支持非常友好。

  2. font

    在样式表中主要有三类字体需要设置,如下所示:

      1 <xsl:param name="body.font.family">Source Han Serif CN,serif</xsl:param> 
      2 <xsl:param name="title.font.family">Source Han Sans CN,sans</xsl:param> 
      3 <xsl:param name="monospace.font.family">Source Han Mono SC,monospace</xsl:param> 

    这三种字体分别描述如下:

    1. body.font.family:就是文档正文部分所使用的字体,通常情况下正文一般使用衬线(serif)字体,在汉字里一般是宋体。在这里设置了两个选项,除了我们在fop.conf里设置的“Source Han Serif CN”之外,还增加了一个serif的选项。它的作用是保证这份设置文件在其他没有SourceHan字体的电脑里也可以正常的工作,可以找到替代的字体。因为每台电脑一定有一款字体会被命名为serif。

    2. title.font.family:就是各种标题部分所使用的字体,通常情况下标题一般使用非衬线(sans-serif)字体,在汉字里一般是黑体。同样,在“值”位置,有两个字体,除了“Source Han Sans CN”之外,还有sans,它的作用与body.font.family里的设置是一样的。

    3. monospace.font.family:就是等宽字体,等宽字体一般用在程序代码、屏幕输出、inline等元素里。平时我们的终端命令行就是使用的等宽字体。同样,也是有两款字体。

  3. line height

    设置正文的行高,这个可以根据自己的喜好设定。 1.7的意思是字体大小的1.7倍。

      1 <xsl:param name="line-height">1.7</xsl:param>
  4. paper size

    设定文档打印时版面的大小,有A0,A1,A3,A4... ....40几种尺寸可供选择。A4大概是平时用得最多的。

      1 <xsl:param name="paper.type">A4</xsl:param>
  5. monospace.verbatim.properties

    monospace.verbatim.properties是用于设置使用等宽字体文档元素的样式,例如前面提到的screen等。

      1 <xsl:attribute-set name="monospace.verbatim.properties"  
      2    use-attribute-sets="verbatim.properties monospace.properties">
      3   <xsl:attribute name="text-align">start</xsl:attribute>
      4   <xsl:attribute name="font-size">6px</xsl:attribute>
      5   <xsl:attribute name="font-weight">normal</xsl:attribute>
      6   <xsl:attribute name="background-color">#f8f8f8</xsl:attribute>
      7   <xsl:attribute name="border-style">solid</xsl:attribute>
      8   <xsl:attribute name="border-width">0.1px</xsl:attribute>
      9   <xsl:attribute name="border-color">#777777</xsl:attribute>
     10 </xsl:attribute-set>

    在上面的设置中,我们定义了文本的对齐方式、字号的大小、子的粗细、背景颜色及边界线的样式。在样式表中,还有很多类似这样的设置,例如admonition.properties 、 revhistory.table.properties等,都是依样画葫芦。