User Tools

Site Tools


docbook:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docbook:index [2012/02/03 22:54]
rlunaro
docbook:index [2014/12/24 10:42] (current)
Line 1: Line 1:
 +====== Docbook ======
 +
 +Cómo instalar Docbook en un sistema windows para generar documentos en html (una sóla página o varias páginas), chm, pdf y rtf (para Word).
 +
 +Las presentes páginas las he creado para documentar mis progresos: cómo crear desde cero un sistema de procesado de documentos y también cómo conseguir el objetivo propuesto de obtener varios formatos. Además lo quiero en Windows y Linux y que me soporte Unicode (porque soportaré documentos en varios idiomas, no necesariamente Western European). ​
 +
 +**Resumen de pruebas en linux**
 +
 +El fichero Makefile funciona prácticamente sin ajustar en Ubuntu 11 64 bit, gracias a que gran parte de los comandos son linux-alike.
 +
 +
 +===== Máquina virtual java =====
 +
 +Es preciso tener la máquina virtual java, así que recomiendo
 +que nos hagamos una descarga de http://​java.sun.com y procedamos
 +con la instalación.
 +
 +===== Instalar cygwin ==== 
 +
 +**Añadido recientemente,​ work in progress**
 +
 +He descubierto recientemen cygwin. Cygwin es un conjunto de utilidades Unix que funcionan en windows. Es una excelente idea instalarse cygwin para hacer funcionar docbook: todo resulta mucho más sencillo. ​
 +
 +El sitio web de cygwin es [[http://​www.cygwin.com]].
 +
 +
 +
 +===== Necesitamos un procesador de XSLT =====
 +
 +Bueno, no sé muy bien lo que es, pero necesitamos un procesador de xslt. Hay varios disponibles ((Tomado de http://​www.sagehill.net/​docbookxsl/​XSLprocessors.html#​XSLTprocessors)),​ pero yo me he decantado por xsltproc.  ​
 +
 +Me he decantado por xsltproc. Puede descargarse para windows [[http://​www.zlatkovic.com/​libxml.en.html|aquí]]. Es preciso descargar todos los paquetes, descomprimirlos y juntar todos los archivos en uno sólo: xsltproc usa iconv (que viene en otro de los paquetes) libxml (que viene en otro de los paquetes), etc. Así que me he descargado todo: 
 +
 +  * iconv
 +  * libxmlsec
 +  * openssl
 +  * libxml2
 +  * libxslt
 +  * zlib
 +
 +Para juntarlos todos, descomprimalos y el contenido de las carpetas
 +"​lib",​ "​bin",​ "​include"​ se ponen todos los archivos juntos.
 +
 +Yo he creado un paquete xsltproc_todo.zip que ya lo contiene así. Hemos incluido la
 +ruta al programa "​xsltproc"​ en el path, de forma que al abrir una
 +ventana de comandos, basta con escribir "​xsltproc"​ para que se ejecute
 +
 +<​code>​
 +c:\> xsltproc
 +</​code>​
 +
 +Nos tiene que salir la ayuda del programa. ​
 +
 +
 +===== Descargando las hojas de estilo XSL de DocBook =====
 +
 +Esto es realmente DocBook: unas hojas de estilo que nos permiten procesar un documento DocBook (que está en xml) para obtenerlo en un formato "​interesante":​ pdf, chm, etc. 
 +
 +Las hojas de estilo se descargan del [[http://​docbook.sourceforge.net/​|sitio web de Docbook en sourceforge]],​ para el caso de xsltproc hay que descargar el fichero "​docbook-xsl.1.74.0.zip"​ y descomprimirlo en el ordenador. Yo lo he extraido en c:\archivos de programa\docbook,​ con un par. 
 + 
 +La primera prueba sencilla.
 +
 +Hemos creado un libro muy sencillo:
 +
 +<code xml>
 +<?xml version="​1.0"​ encoding="​utf-8"?>​
 +<book lang="​es">​
 +  <​bookinfo>​
 +    <​title>​Mi primer documento DocBook</​title>​
 +  </​bookinfo>​
 +  <toc>
 +  </​toc>​
 +  <!-- Los comentarios tienen este aspecto -->
 +  <​chapter>​
 +    <​title>​Introducción</​title>​
 +    <​para>​La primera del documento y un párrafo.</​para>​
 +    <​para>​Otro párrafo de la introducción.</​para>​
 +  </​chapter>​
 +</​book>​
 +</​code>​
 +
 +Para generar la salida en formato html: 
 +
 +<​code>​
 +C:​\>​xsltproc --output minibook.html "​C:​\Archivos de programa\docbook\html\docbook.xsl"​ minibook.xml
 +</​code>​
 +
 +Para generar la salida en formato html help de microsoft:
 +
 +<​code>​
 +xsltproc --output prueba.html --stringparam use.extensions 0 /​usr/​share/​xml/​docbook/​stylesheet/​nwalsh5/​1.73.1/​htmlhelp/​htmlhelp.xsl libro.xml ​
 +</​code>​
 +
 +
 +Obtendremos un fichero html único.
 +
 +
 +===== Pasos adicionales para generar un fichero rtf o pdf ===== 
 +
 +Hay que instalarse una utilidad que se llama FOP.
 +
 +Esta utilidad, desarrollada por apache, puede descargarse del sitio
 +web de apache en http://​xmlgraphics.apache.org/​fop/​.
 +
 +En concreto el fichero fop-0.95-bin.zip.
 +
 +Lo he descomprimido en archivos de programa y he puesto la ruta
 +al programa "​fop.bat"​ en el PATH.
 +
 +
 +
 +HACEMOS UN FICHERO BAT QUE HACE LA COMPILACION DE UN DOCUMENTO EN WINDOWS
 +
 +<code bat>
 +rem
 +rem compilar - genera el libro en varios formatos: chm, html_single,​ html_multi, pdf, rtf
 +rem
 +
 +set document=minibook
 +
 +set docbook=C:​\Archivos de programa\docbook
 +
 +set XML_CATALOG_FILES=%docbook%\catalog.xml
 +
 +rem
 +rem HTML una sola pagina
 +rem
 +set dest_folder=html_single
 +rem copiamos todo el contenido de la carpeta images a la carpeta
 +rem de destino dest_folder
 +xcopy images %dest_folder%\images /e /i /y
 +xsltproc --output "​%dest_folder%\%document%.html"​ "​%docbook%\html\docbook.xsl"​ "​%document%.xml"​
 +
 +
 +rem
 +rem HTML multipágina
 +rem
 +set dest_folder=html_multi
 +rem copiamos todo el contenido de la carpeta images a la carpeta
 +rem de destino dest_folder
 +xcopy images %dest_folder%\images /e /i /y
 +xsltproc --output "​%dest_folder%\%document%.html"​ "​%docbook%\html\chunk.xsl"​ "​%document%.xml"​
 +
 +rem
 +rem CHM (ayuda de microsoft)
 +rem
 +set dest_folder=chm
 +rem copiamos todo el contenido de la carpeta images a la carpeta
 +rem de destino dest_folder
 +xcopy images %dest_folder%\images /e /i /y
 +xsltproc --output "​%dest_folder%\%document%"​ "​%docbook%\htmlhelp\htmlhelp.xsl"​ "​%document%.xml"​
 +
 +REM rem
 +REM rem RTF
 +REM rem
 +REM set dest_folder=rtf
 +REM rem copiamos todo el contenido de la carpeta images a la carpeta
 +REM rem de destino dest_folder
 +REM xcopy images %dest_folder%\images /e /i /y
 +REM xsltproc --output "​%dest_folder%\%document%.fo"​ "​%docbook%\fo\docbook.xsl"​ "​%document%.xml"​
 +REM fop "​%dest_folder%\%document%.fo"​ -rtf "​%dest_folder%\%document%.rtf"​
 +
 +
 +rem
 +rem PDF
 +rem
 +set dest_folder=pdf
 +rem copiamos todo el contenido de la carpeta images a la carpeta
 +rem de destino dest_folder
 +xcopy images %dest_folder%\images /e /i /y
 +xsltproc --output "​%dest_folder%\%document%.fo"​ "​%docbook%\fo\docbook.xsl"​ "​%document%.xml"​
 +fop "​%dest_folder%\%document%.fo"​ -pdf "​%dest_folder%\%document%.pdf"​
 +</​code>​
 +
 +===== Fichero makefile =====
 +
 +Al final le he dado otro cuarto de vuelta al asunto de docbook, y he hecho lo siguiente: ​
 +
 +  * he descargado cygwin ​
 +  * he instalado fop 
 +  * he instalado htmlhelp ​
 +  * he creado un fichero makefile que hace lo de los pasos anteriores, pero un poco más estructurado. lo adjunto aquí.
 +
 +
 +<code Makefile>​
 +#
 +# Makefile
 +#
 +#  make clean : clean out all unnecesary, temporal files
 +
 +#  make book my_book=filename-without-extension:​ will construct the book "​auditmap"​
 +#
 +#
 +#  make book  : generate all the documentation in various formats: ​
 +#               html single page, html multiple pages, chm, pdf 
 +#
 +#  make book_en : make the book in english
 +#
 +#  make html_single ​
 +#  make html
 +#  make chm 
 +#  make pdf
 +#  make rtf
 +#             : generate one specific document
 +#
 +#
 +
 +
 +# my book's name (FILENAME WITHOUT EXTENSION)
 +my_book ?= PUT_HERE_THE_FILENAME
 +
 +book_version = `cat version.txt`
 +
 +# options of the different programs
 +xsltproc_options = --nonet
 +
 +# directories and programs
 +tmp_dir = "​tmp"​
 +xsltproc_dir = "/​docbook-xsl-1.76.1"​
 +hhc = /​htmlhelp/​hhc.exe
 +fop = /​fop/​fop.bat ​
 +
 +.PHONY: book
 +book: chm html html_single pdf
 +
 +.PHONY: book_en
 +book_en: ​
 + make book my_book=PUT_HERE_THE_FILENAME_en
 +
 +.PHONY: chm
 +chm: 
 + # make chm directory if don't exist
 + if [ -d chm ] ; then true; else mkdir chm; fi; 
 + # copy the content of the gfx and images directory
 + cp -R gfx chm 
 + cp -R images chm
 + cp docbook.css chm
 + xsltproc $(xsltproc_options) --output chm/ chm.xsl "​$(my_book).xml"​
 + # to ignore errors, start the command with a hyphen
 + -$(hhc) chm/​htmlhelp.hhp
 + # move the resulting file into the "​version"​ directory
 + if [ -d "​$(book_version)"​ ] ; then true; else mkdir "​$(book_version)";​ fi;
 + mv "​chm/​htmlhelp.chm"​ "​$(book_version)/​$(my_book).chm"​
 +
 +.PHONY: pdf
 +pdf:
 + # make pdf directory if it don't exist
 + if [ -d pdf ] ; then true; else mkdir pdf; fi; 
 + xsltproc $(xsltproc_options) --output "​pdf/​$(my_book).fo"​ fo.xsl "​$(my_book).xml"​
 + $(fop) "​pdf/​$(my_book).fo"​ -pdf "​pdf/​$(my_book).pdf"​
 + # move the resulting file into the "​version"​ directory
 + if [ -d "​$(book_version)"​ ] ; then true; else mkdir "​$(book_version)";​ fi;
 + mv "​pdf/​$(my_book).pdf"​ "​$(book_version)/​$(my_book).pdf"​
 +
 +.PHONY: rtf
 +rtf:
 + # make rtf directory if it don't exist
 + if [ -d rtf ] ; then true; else mkdir rtf; fi; 
 + xsltproc $(xsltproc_options) --output "​rtf/​$(my_book).fo"​ fo.xsl "​$(my_book).xml"​
 + $(fop) "​rtf/​$(my_book).fo"​ -rtf "​rtf/​$(my_book).rtf"​
 + # move the resulting file into the "​version"​ directory
 + if [ -d "​$(book_version)"​ ] ; then true; else mkdir "​$(book_version)";​ fi;
 + mv "​rtf/​$(my_book).rtf"​ "​$(book_version)/​$(my_book).rtf"​
 +
 +.PHONY: html_single
 +html_single:​
 + # make html_single directory if it don't exist
 + if [ -d html_single ] ; then true; else mkdir html_single;​ fi; 
 + # copy the content of the gfx and images directory
 + cp -R gfx html_single ​
 + cp -R images html_single
 + cp docbook.css html_single
 + xsltproc $(xsltproc_options) --output "​html_single/​$(my_book).html"​ html_single.xsl "​$(my_book).xml"​
 + # move the resulting file into the "​version"​ directory
 + if [ -d "​$(book_version)"​ ] ; then true; else mkdir "​$(book_version)";​ fi;
 + cp -R "​html_single"​ "​$(book_version)"​
 +
 +.PHONY: html
 +html:
 + # make html directory if it don't exist
 + if [ -d html ] ; then true; else mkdir html; fi; 
 + # copy the content of the gfx and images directory
 + cp -R gfx html 
 + cp -R images html
 + cp docbook.css html
 + xsltproc $(xsltproc_options) --output "​html/​$(my_book).html"​ html.xsl "​$(my_book).xml"​
 + # move the resulting file into the "​version"​ directory
 + if [ -d "​$(book_version)"​ ] ; then true; else mkdir "​$(book_version)";​ fi;
 + cp -R "​html"​ "​$(book_version)"​
 +
 +
 +clean:
 + # to ignore errors, start the command with a hyphen
 + -rm -f chm/*
 + -rm -f html/*
 + -rm -f html_single/​*
 + -rm -f pdf/*
 + -rm -f rtf/*
 +
 +
 +
 +
 +
 +
 +
 +</​code>​
 +
 +
 +
 +===== Otros ficheros que me he descargado =====
 +
 +**xmlNotepad**:​ bloc de notas xml de Microsoft. Puede descargarse
 +del sitio web de descargas de microsoft http://​downloads.microsoft.com
 +
 +**Microsoft HTML Help Compiler**: compilador de ayudas de microsoft, para
 +generar los archivos de ayuda de microsoft (*.chm).
 +
 +**Manual de referencia de docbook**: puede descargarse de esta
 +página web http://​docbook.org/​tdg5/​index.html.
 +
 +Hay dos ficheros: uno es el fichero "​tdg5-en-0.0.20.chm"​ que viene
 +en formato chm, y el otro viene en formato zip: tdg5-0.0.25.zip.
 +
 +===== Personalizando la salida de docbook =====
 +
 +Para configurar el comportamiento de docbook es necesario definir algunos parámetros que afectan a las 
 +hojas de estilo xsl. 
 +
 +Yo he definido esos parámetors en varias hojas xsl que a continuación adjunto. ​
 +
 +==== chml.xsl ====
 +
 +<code xml>
 +<?xml version="​1.0"?>​
 +<​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0">​
 + <​xsl:​import href="​docbook-xsl-1.76.1/​htmlhelp/​htmlhelp.xsl"/>​
 + <​xsl:​param name="​generate.legalnotice.link"​ select="​1"/>​
 + <​xsl:​param name="​suppress.navigation"​ select="​0"/>​
 + <​xsl:​param name="​admon.graphics"​ select="​1"/>​
 + <​xsl:​param name="​admon.graphics.path">​gfx/</​xsl:​param>​
 + <​xsl:​param name="​html.stylesheet"​ select="​docbook.css"/>​
 + <​xsl:​param name="​toc.section.depth"​ select="​4"/>​
 +  <!-- Taken from http://​ds9a.nl/​docbook/​minimal-page.html -->
 +  <​xsl:​param name="​use.id.as.filename"​ select="'​1'"/>​
 +  <​xsl:​template name="​system.head.content">​
 +    <link rel="​stylesheet"​ href="​docbook.css"​ type="​text/​css"/>​
 +  </​xsl:​template>​
 +</​xsl:​stylesheet>​
 +
 +</​code>​
 +
 +==== html.xsl ====
 +
 +<code xml>
 +<?xml version="​1.0"?>​
 +<​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0">​
 + <​xsl:​import href="​docbook-xsl-1.76.1/​html/​chunk.xsl"/>​
 + <​xsl:​param name="​generate.legalnotice.link"​ select="​1"/>​
 + <​xsl:​param name="​suppress.navigation"​ select="​0"/>​
 + <​xsl:​param name="​admon.graphics"​ select="​1"/>​
 + <​xsl:​param name="​admon.graphics.path">​gfx/</​xsl:​param>​
 + <​xsl:​param name="​html.stylesheet"​ select="'​docbook.css'"/>​
 + <​xsl:​param name="​toc.section.depth"​ select="​4"/>​
 +  <!-- Taken from http://​ds9a.nl/​docbook/​minimal-page.html -->
 +  <​xsl:​param name="​use.id.as.filename"​ select="'​1'"/>​
 +  <​xsl:​template name="​system.head.content">​
 +    <link rel="​stylesheet"​ href="​docbook.css"​ type="​text/​css"/>​
 +  </​xsl:​template>​
 +</​xsl:​stylesheet>​
 +</​code>​
 +
 +==== html_single.xsl ====
 +
 +<code xml>
 +<?xml version="​1.0"?>​
 +<​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0">​
 + <​xsl:​import href="​docbook-xsl-1.76.1/​html/​docbook.xsl"/>​
 + <​xsl:​param name="​html.stylesheet"​ select="/​docbook/​docbook.css"/>​
 + <​xsl:​param name="​generate.legalnotice.link"​ select="​1"/>​
 + <​xsl:​param name="​suppress.navigation"​ select="​0"/>​
 + <​xsl:​param name="​admon.graphics"​ select="​1"/>​
 + <​xsl:​param name="​admon.graphics.path">​gfx/</​xsl:​param>​
 + <​xsl:​param name="​toc.section.depth"​ select="​4"/>​
 +  <!-- Taken from http://​ds9a.nl/​docbook/​minimal-page.html -->
 +  <​xsl:​param name="​use.id.as.filename"​ select="'​1'"/>​
 +  <​xsl:​template name="​system.head.content">​
 +    <link rel="​stylesheet"​ href="​docbook.css"​ type="​text/​css"/>​
 +  </​xsl:​template>​
 +</​xsl:​stylesheet>​
 +
 +</​code>​
 +
 +==== fo.xsl ====
 +
 +<code xml>
 +<?xml version="​1.0"?>​
 +<​xsl:​stylesheet xmlns:​xsl="​http://​www.w3.org/​1999/​XSL/​Transform"​ version="​1.0">​
 + <​xsl:​import href="​docbook-xsl-1.76.1/​fo/​docbook.xsl"/>​
 + <​xsl:​param name="​generate.legalnotice.link"​ select="​1"/>​
 + <​xsl:​param name="​suppress.navigation"​ select="​1"/>​
 + <​xsl:​param name="​admon.graphics"​ select="​1"/>​
 + <​xsl:​param name="​admon.graphics.path">​gfx/</​xsl:​param>​
 + <​xsl:​param name="​toc.section.depth"​ select="​4"/>​
 +  <!-- xsl:param name="​ignore.image.scaling"​ select="​0"/​ -->
 +  <​xsl:​param name="​paper.type"​ select="​A4"/>​
 +  <​xsl:​param name="​paper.size.portrait"​ select="​A4"/>​
 +  <​xsl:​param name="​default.image.width"​ select="​640"/>​
 +</​xsl:​stylesheet>​
 +
 +
 +</​code>​
 +
 +Es muy importante ese <​xsl:​template name="​system.head.content"​.... muchos sitios no lo indican, y sin eso, no se incluyen las hojas de estilo. ​
 +
 +Ah!!! que no se nos olvide copiar el fichero docbook.css en el resultado html, ya que de lo contrario, los estilos no se aplicarán.
 +
 +
 +==== El fichero docbook.css ====
 +
 +<code css>
 +/* css 2.0 stylesheet for DocBook generated XHTML                             */
 +/* (c) 2002 e-novative GmbH.                                                  */
 +/* http://​www.e-novative.de ​                                                  */
 +
 +/*
 +  01-02-2012
 +  Changes : superman_ha_muerto at yahoo dot com
 +  - Minor changes and personalization
 +  ​
 +  17-03-2003 - 21-03-2003
 +  Changes : Bruno.Vernay at LaPoste dot net
 +  - Replaced the title background with underline (better distinguish from
 +    programlisting.)
 +  - distinguish the h2 (from chapter) and the h2 from section
 +    (div[class=section])
 +
 +*/
 +
 +/* Note that due to different browser interpretation of the standards, the    */
 +/* html pages still do not look exactly the same on every browser and system ​ */
 +
 +/* This css file formats the html generated by the eDE                        */
 +/* Please modify this file according to your personal preferences. ​           */
 +
 +/* In many spots, this file is not too well-documented currently. However, ​   */
 +/* we will improve documentation over the time                                */
 +
 +/* basic settings for the document body, some elements inherit from these     */
 +body
 +{
 +  /* foreground color = black */
 +  color: #000;
 +
 +  /* background-color = white */
 +  background-color:​ #fff;
 +
 +  /* center the body content in browser window */
 +  /* Note: this is different from text-align ​  */
 +  /* margin depends on browser window width    */
 +  margin: auto;
 +
 +  /* padding ("​inner margin"​) leaves space between */
 +  /* browser window border and html body content ​  */
 +  padding: 24px;
 +
 +  /* width depends on browser window width */
 +  width: auto;
 +
 +  /* text-alignment ​   */
 +  /* alternative:​ left */
 +  text-align: justify;
 +}
 +
 +
 +/* set font for most elements ​                   */
 +/* p: paragraphs (regular text, docbook <​para>​) ​ */
 +/* (...) */
 +/* body: anything else  */
 +body, p, td, li, dt, dd, .itemizedlist
 +{
 +  /* set font size and line height ​                            */
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font: 12px/​18px ​ Arial, Helvetica, Sans-Serif;
 +}
 +
 +
 +/* pararaphs (docbook: <​para>​) */
 +p
 +{
 +  /* set font size and line height ​                            */
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font: 12px/18px Arial, Helvetica, Sans-Serif;
 +
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 0 15px 6px 15px;
 +}
 +
 +
 +/* images */
 +/* docbook: <​imageobject>​ */
 +img
 +{
 +  /* no margin */
 +  margin: 0;
 +
 +  /* no padding ("​inner margin"​) */
 +  padding: 0;
 +
 +  /* no border */
 +  border: 0;
 +}
 +
 +
 +/* emphasized text, can occur in most places */
 +/* docbook: <​emphasis>​ */
 +em
 +{
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +  /* italic */
 +  font-style: italic;
 +}
 +
 +
 +/* sect(ion)1 title */
 +h2
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 125%;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +
 +  /* underlined text */
 +  text-decoration:​ none;
 +
 +  /* foreground color: dark blue */
 +  color: #009;
 +
 +  /* background color: gray */
 +  /* background-color:​ #ddd; */
 +  border-bottom:​ solid 2px;
 +
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 15px 0 15px 0;
 +
 +  /* padding ("​inner margin"​) settings are top - right - bottom - left */
 +  /* (think clockwise) ​                                                */
 +  padding: 12px 15px 12px 15px;
 +}
 +
 +
 +/* modif BV 14-03-2003 :
 +  permet de distinguer titre de chapitre et titre de section */
 +/* section title apr�s un chapitre */
 +div[class=section] * h2
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 110%;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +
 +  /* underlined text */
 +  text-decoration:​ none;
 +
 +  /* foreground color: dark blue */
 +  color: #00A;
 +
 +  /* background color: gray */
 +  /* background-color:​ #f0f0f0; */
 +  border-bottom:​ solid 1px;
 +
 +  /* padding ("​inner margin"​) settings are top - right - bottom - left */
 +  /* (think clockwise) ​                                                */
 +  padding: 0 0 0 15px;
 +}
 +
 +/* sect(ion)2 title */
 +h3
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 110%;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +
 +  /* underlined text */
 +  text-decoration:​ underline;
 +
 +  /* foreground color: dark blue */
 +  color: #009;
 +
 +  /* background-color is a very light grey */
 +  /* alternative:​ #fff = white             */
 +  /* background-color:​ #fafafa; */
 +
 +  /* padding ("​inner margin"​) settings are top - right - bottom - left */
 +  /* (think clockwise) ​                                                */
 +  padding: 0 0 0 15px;
 +}
 +
 +
 +/* sect(ion)3 title */
 +h4
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 100%;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +
 +  /* underlined text */
 +  text-decoration:​ underline ;
 +
 +  /* foreground color: dark blue */
 +  color: #009;
 +
 +  /* background-color is a very light grey */
 +  /* alternative:​ #fff = white             */
 +  /* background-color:​ #fefefe; */
 +
 +  /* padding ("​inner margin"​) settings are top - right - bottom - left */
 +  /* (think clockwise) ​                                                */
 +  padding: 0 0 0 15px;
 +}
 +
 +
 +/* sect(ion)4 title */
 +h5
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 100%;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 300;
 +
 +  /* not underlined */
 +  text-decoration:​ underline ​ ;
 +
 +  /* foreground color: dark blue */
 +  color: #009;
 +
 +  /* background-color is a very light grey */
 +  /* alternative:​ #fff = white             */
 +  /* background-color:​ #fefefe; */
 +
 +  /* padding ("​inner margin"​) settings are top - right - bottom - left */
 +  /* (think clockwise) ​                                                */
 +  padding: 0 0 0 15px;
 +}
 +
 +
 +:​link,:​visited
 +{
 +  text-decoration:​ none;
 +}
 +
 +
 +
 +/* define special font for e-novative logo */
 +/* list of fonts provides fallbacks in case selected fonts are not present */
 +.logo
 +{
 +  font-family:​ Arial, Sans-Serif;
 +}
 +
 +
 +/* the following formats refer to the docbook tags of the same name           */
 +/* for more information,​ see the docbook reference at                         */
 +/* http://​www.docbook.org/​tdg/​en/​html/​docbook.html ​                           */
 +
 +.mediaobject
 +{
 +  /* center */
 +  text-align: center;
 +}
 +
 +
 +/*  */
 +.calloutlist,​ .figure, .table
 +{
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 15px 30px 15px 30px;
 +}
 +
 +
 +/*  */
 +.itemizedlist,​ .variablelist ​
 +{
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 15px 30px 15px 15px;
 +}
 +
 +/* blockquote formatting is a little more complex ​   */
 +/* because block quotes are rendered as a html table */
 +
 +/* blockquote block */
 +.blockquote
 +{
 +  /* override bottom margin, the other margins are inherited */
 +  margin-bottom:​ 30px;
 +}
 +
 +.blockquote p, .blockquote td
 +{
 +  /* set font size and line height ​                            */
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font: 12px/18px Arial, Helvetica, Sans-Serif;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 450;
 +}
 +
 +
 +.epigraph
 +{
 +  /* override bottom margin, the other margins are inherited */
 +  margin-bottom:​ 30px;
 +}
 +
 +.epigraph p, .epigraph td
 +{
 +  /* set font size and line height ​                            */
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font: 10px/14px Arial, Helvetica, Sans-Serif;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +}
 +
 +
 +
 +/* custom e-novative header and footer that are displayed on all pages */
 +#​customheader,​ #​customfooter
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 80%;
 +
 +  /* line height, relative to body font size */
 +  line-height:​ 200%;
 +
 +
 +  text-align: center;
 +  vertical-align:​ middle;
 +  color: #fff;
 +  background-color:​ #009;
 +}
 +
 +
 +/* leave more space between last paragraph and footer ​ */
 +/* some browser do not add up the bottom margin of the prior element */
 +/* and the top margin of the footer */
 +#​customfooter {
 +  margin-top: 15px;
 +}
 +
 +
 +
 +/* table { margin: 0 15px 6px 15px; } */
 +
 +
 +/* title and navigation links in header and footer */
 +.navheader th, .navheader td, .navfooter th, .navfooter td
 +{
 +  font-size: 11px;
 +  font-weight:​ 450;
 +}
 +
 +
 +/* table of contents, list of figures and list of tables */
 +.toc, .list-of-figures,​ .list-of-tables
 +{
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 15px 30px 15px 15px;
 +}
 +
 +
 +/* the "​headings"​ are rendered as paragraphs */
 +.toc p, .list-of-figures p, .list-of-tables p
 +{
 +  /* no margin */
 +  margin: 0;
 +}
 +
 +
 +.figure
 +{
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 5px 5px 5px 5px;
 +
 +  /* no padding ("​inner border"​) */
 +  padding: 0;
 +
 +  /* no border */
 +  border: 0;
 +
 +  /* center text */
 +  text-align: center;
 +}
 +
 +
 +/* figure title */
 +.figure p, .table p, .example p
 +{
 +  font-size: 80%;
 +}
 +
 +
 +/*
 +acronym {
 +        border-bottom:​ 1px dashed #00cc00;
 +        cursor: help;
 +}
 +*/
 +
 +
 +/* admonition headings */
 +div.note, div.important,​ div.warning,​ div.caution,​ div.tip
 +{
 +  padding: 0px 15px 0px 0px;
 +}
 +
 +div.note th, div.important th, div.warning th, div.caution th, div.tip th
 +{
 +  /* set font size and line height ​                            */
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font: 12px/18px Arial, Helvetica, Sans-Serif;
 +
 +  font-weight:​ 600;
 +
 +  text-decoration:​ underline;
 +
 +  /* left align */
 +  text-align: left;
 +}
 +
 +.note p, .important p, .warning p, .caution p, .tip p
 +{
 +  margin: 0;
 +}
 +
 +.note img, .important img, .warning img, .caution img, .tip img
 +{
 +  margin: 0px 15px 0px 15px;
 +}
 +
 +
 +/* programlisting */
 +pre.programlisting
 +{
 +  /* non-proportional font */
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ "​Courier New", Courier, Monospace;
 +
 +  /* color: black */
 +  color: #000;
 +
 +  /* background color: gray */
 +  background-color:​ #eee;
 +
 +  /* no margin */
 +  margin: 0;
 +
 +  /* gray dotted border, 1 px wide */
 +  border: 1px dotted #ddd;
 +
 +  /* padding ("​inner margin"​) settings are top - right - bottom - left */
 +  /* (think clockwise) ​                                                */
 +  padding: 6px 6px 6px 6px;
 +}
 +
 +
 +/* title page */
 +
 +
 +/* heading1 is used for document title */
 +h1
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 150%;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +
 +  /* line height, relative to body line height */
 +  line-height:​ 250%;
 +
 +  /* center */
 +  text-align: center;
 +
 +  /* foreground color: dark blue */
 +  color: #009;
 +
 +  /* background color: gray */
 +  background-color:​ #ddd;
 +
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 15px 0 15px 0;
 +
 +  /* no padding ("​inner margin"​) */
 +  padding: 0;
 +}
 +
 +
 +
 +/* author on title page is formatted as h3          */
 +/* these settings overwrite the regular h3 settings */
 +h3.author
 +{
 +  /* set font size and line height ​                            */
 +  /* list of fonts provides fallbacks in case selected fonts are not present */
 +  font: 12px/18px Arial, Helvetica, Sans-Serif;
 +
 +  /* bold face, higher number is more bold */
 +  font-weight:​ 600;
 +
 +  /* do not underline */
 +  text-decoration:​ none;
 +
 +  /* center text */
 +  text-align: center;
 +
 +  /* color: black */
 +  color: #000;
 +
 +  /* background-color is a very light grey */
 +  /* alternative:​ #fff = white             */
 +  background-color:​ #fefefe;
 +
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 0 15px 15px 15px;
 +
 +  /* no padding */
 +  padding: 0;
 +
 +  /* no border */
 +  border: 0;
 +}
 +
 +
 +/* copyright and date */
 +.copyright, .pubdate
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 90%;
 +
 +  /* center */
 +  text-align: center;
 +
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 15px 15px 15px 15px;
 +
 +  /* no padding ("​inner margin"​) */
 +  padding: 0;
 +
 +  /* no border */
 +  border: 0;
 +}
 +
 +
 +/* legal notice box */
 +div.legalnotice
 +{
 +  /* list of fonts provides fallbacks if a font is not present */
 +  font-family:​ Arial, Helvetica, Sans-Serif;
 +
 +  /* font size, relative to body font size */
 +  font-size: 90%;
 +
 +  /* color: black */
 +  color: #000;
 +
 +  /* background color: gray */
 +  background-color:​ #ddd;
 +
 +  /* margin settings are top - right - bottom - left (think clockwise) */
 +  margin: 10px 45px 10px 45px;
 +
 +  /* padding ("​inner margin"​) settings are top - right - bottom - left */
 +  /* (think clockwise) ​                                                */
 +  padding: 5px 5px 5px 5px;
 +
 +  /* solid black border, 1px wide */
 +  border: 1px solid #000;
 +}
 +
 +/*
 +Taken from http://​ds9a.nl/​docbook/​minimal-page.html
 +*/
 +.screen {
 +        font-family:​ monospace;
 +        font-size: 1em;
 +        display: block;
 +        padding: 10px;
 +        border: 1px solid #bbb;
 +        background-color:​ #eee;
 +        color: #000;   
 +        overflow: auto;
 +        border-radius:​ 2.5px;
 +        -moz-border-radius:​ 2.5px;
 +        margin: 0.5em 2em;
 + 
 +}
 +
 +.programlisting {
 +        font-family:​ monospace;
 +        font-size: 1em;
 +        display: block;
 +        padding: 10px;
 +        border: 1px solid #bbb;
 +        background-color:​ #ddd;
 +        color: #000;   
 +        overflow: auto;
 +        border-radius:​ 2.5px;
 +        -moz-border-radius:​ 2.5px;
 +        margin: 0.5em 2em;
 +}
 +
 +
 +.guimenu, ​
 +.guimenuitem
 +{
 +font-family:​ Arial;
 +color: #0000ff;
 +background-color:​ #c3c3c3;
 +}
 + 
 +.guibutton, ​
 +.guilabel, ​
 +.guiicon
 +{
 +font-family:​ Arial;
 +color: #0000ff;
 +background-color:​ #c3c3c3;
 +border-top: 1px solid #cfcfcf;
 +border-left:​ 1px solid #cfcfcf;
 +border-bottom:​ 1px solid #747474;
 +border-right:​ 1px solid #747474;
 +}
 +
 +.application
 +{
 +font-family:​ Arial, Helvetica, Sans-Serif;
 +font-style: italic;
 +}
 +
 +/* 
 +class="​tip"​
 +*/
 +
 +.tip,
 +.caution,
 +.note,
 +.important
 +{
 +outline:#​c8c8c8 solid thin;
 +margin: 20px;
 +}
 +
 +.tip table,
 +.caution table,
 +.note table,
 +.important table
 +{
 +  padding: 20px; 
 +}
 +
 +
 +
 +
 +
 +
 +</​code>​
 +
 +
 +===== Starter kit =====
 +
 +He compilado lo más esencial en un "​starter kit" que contiene: ​
 +
 +  * Un makefile para hacer crear pdf, html, html en una página
 +  * Una cheatseet con varios ejemplos
 +  * Un comienzo de libro, dividido en varios capitulos
 +  * Hojas de estilo y xsl personalizadas (en la carpeta xsl)
 +
 +
 +{{:​docbook-starter.zip|Descargar docbook start}}
  
docbook/index.txt · Last modified: 2014/12/24 10:42 (external edit)