首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DocBook宏?

DocBook宏?
EN

Stack Overflow用户
提问于 2010-04-08 22:42:06
回答 3查看 1.2K关注 0票数 6

有没有办法在DocBook文档中定义宏(就像TeX宏或latex定义的宏)?

DocBook非常冗长,宏会有很大帮助。我在快速入门教程中找不到它们。

如果是这样的话,谁能提供一个简单的例子或链接到?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-15 04:12:34

我不确定这是不是你想要的/它是否完全满足了你的需求,但我正在考虑ENTITY。您可以在顶部定义它们(在您的XML文档的顶部,所以是通用的XML,没有特定于DocBook的内容)。就像这里看到的'doc.release.number‘和’doc.release ase.date‘。但也可以通过单独的文件包含它们。如第3个实体行所示。这里系统的意思是,来自另一个文件'entities.ent‘。

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [

  <!ENTITY  doc.release.number                 "1.0.0.beta-1"       >
  <!ENTITY  doc.release.date                   "April 2010"         >

  <!ENTITY  %   entities  SYSTEM  "entities.ent" >

  %entities;

]>

<!--  This document is based on http://readyset.tigris.org/nonav/templates/userguide.html  -->
<article  lang="en">
  <articleinfo>
    <title>&project.impl.title; - User Manual</title>
    <subtitle></subtitle>
    <date>&project.impl.release.date;</date>
    <copyright>
      <year>doc.release.year</year>
      <holder>Team - &project.impl.title;</holder>
    </copyright>
    <releaseinfo>&doc.release.number;</releaseinfo>
  </articleinfo>

  <section>
    <title>Introduction</title>
    <para>
    The &project.impl.title; has been created to clean up (X)HTML and XML documents as part of 


    </para>
  <section>
</article>

在文档中,您可以通过&project.impl.title;中的起始&和结束;引用实体

在文件'entities.ent‘中,您可以用类似的方式指定实体元素:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<!ENTITY  project.impl.title            'Maven Tidy Plug-in'    >
<!ENTITY  project.impl.group-id         'net.sourceforge.docbook-utils.maven-plugin'    >
<!ENTITY  project.impl.artifact-id      'maven-tidy-plugin'     >
<!ENTITY  project.impl.release.number   '1.0.0.beta-1'          >
<!ENTITY  project.impl.release.date     'April 2010'            >
<!ENTITY  project.impl.release.year     '2010'                  >
<!ENTITY  project.impl.url              '../'                   >
<!ENTITY  project.spec.title            ''  >
<!ENTITY  project.spec.release.number   ''  >
<!ENTITY  project.spec.release.date     ''  >
<!ENTITY  doc.release.year              '2010'                  >  
票数 7
EN

Stack Overflow用户

发布于 2010-08-02 19:39:05

这并不完全符合您的要求,但可能对您的某些情况有帮助:您可以在包装器样式表中定义模板,您可以在其中定义fo命令。下面是一些例子:

代码:

代码语言:javascript
复制
<xsl:template match="symbolchar">
  <fo:inline font-family="Symbol">
    <xsl:choose>
      <xsl:when test=".='ge'">&#x2265;</xsl:when>
      <xsl:when test=".='le'">&#x2264;</xsl:when>
      <xsl:when test=".='sqrt'">&#x221A;</xsl:when>
      <xsl:otherwise>?!?</xsl:otherwise>
    </xsl:choose>
  </fo:inline>
</xsl:template>

用法:

代码语言:javascript
复制
<symbolchar>le</symbolchar>

代码:

代码语言:javascript
复制
<xsl:template match="processing-instruction('linebreak')">
  <fo:block/>
</xsl:template>

用法:

代码语言:javascript
复制
<?linebreak?>
票数 2
EN

Stack Overflow用户

发布于 2010-04-08 22:50:25

您是否考虑过从另一种格式(如reStructuredText)生成DocBook?

我发现它非常适合用来编写文档。

此外,您还可以非常快速地编写宏预处理器(或查看m4)。如果您使用的是DocBook的XML版本,那么简单的XSLT就可以了。只需编写一些标签并转换它们即可。自动添加样板内容。准备好对XSLT感到非常愤怒吧。因为它不是它所能做到的。让你的思维扭曲。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2600827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档