Pergunta

Existe alguma maneira de definir macros (como o Tex Macros O Latex define) nos documentos do DocBook?

O DocBook é muito detalhado, e Macros ajudaria muito. Não os encontrei em tutoriais do QuickStart.

Nesse caso, alguém poderia fornecer um exemplo simples ou um link para?

Obrigado

Foi útil?

Solução

<?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>

No documento, você faz referência às entidades através de um início & e terminando ; como em &project.impl.title;

No arquivo 'entities.ent', você especifica os elementos da entidade de maneira semelhante:

<?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'                  >  

Outras dicas

Não é exatamente o que você pediu, mas talvez seja útil para alguns de seus casos: você pode definir modelos na folha de estilo do invólucro onde você define fo comandos. Alguns exemplos:

Código:

<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>

Uso:

<symbolchar>le</symbolchar>

Código:

<xsl:template match="processing-instruction('linebreak')">
  <fo:block/>
</xsl:template>

Uso:

<?linebreak?>

Você já pensou em gerar docbook a partir de outro formato (como reestruturado text?)

Achei muito bom para documentação.

Além disso, você provavelmente poderia escrever um pré -processador de macro (ou procurar no M4) rapidamente. Se você estiver usando a versão XML do DocBook, um XSLT simples servirá. Basta inventar algumas tags e transformá -las. Recebem coisas de caldeira adicionadas automaticamente. E prepare -se para ficar com muita raiva do XSLT. Por não ser tudo o que poderia ser. Por fazer seu pensamento deformar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top