DocBook es un formato que tiene algún parecido con HTML pues ambos provienen de un ancestro común (el estándar para documentos SGML). A continuación se presenta un ejemplo:
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article lang="es" id="ejemplo">
<artheader>
<title>Un ejemplo de DocBook</title>
<abstract>
<para>Nociones básicas de DocBook.</para>
</abstract>
<author>
<firstname>Tomás</firstname><surname>Ramírez</surname>
</author>
<date>2 de Septiembre de 2001</date>
<address>tomas.ramirez@dominio.org</address>
</artheader>
<sect1 id="idsec1">
<title>Título de la sección</title>
<sect2 id="idsec1.1">
<title>Título de subsección</title>
<para>Los textos se encierran entre marquillas que indican como
debe presentarse el texto, las marquillas se abren con <nombre_marq>;
y se cierran con </nombre_marq>, por ejemplo la marquilla <para>
se emplea antes de iniciar un párrafo, y el párrafo debe cerrarse con
</para>. Otro ejemplo de tag es <programlisting>, cuyo efecto
se presenta a continuación:</para>
<programlisting>
int main()
{
int n,k;
}
</programlisting>
</sect2>
<sect2 id="idsec1.2">
<title>Título de la segunda subsección</title>
<para>Pueden emplearse varios tipos de documentos, este es
un ejemplo de un artículo. Cada documento puede estructurarse
en capítulos, secciones, subsecciones.</para>
</sect2>
</sect1>
</article>
Tag con el que se inicia un párrafo en Docbook.
Los textos se encierran entre marquillas que indican como debe presentarse el texto, las marquillas se abren con <nombre_marq> y se cierran con </nombre_marq>, por ejemplo la marquilla <para> se emplea antes de iniciar un párrafo, y el párrafo debe cerrarse con </para>. Otro ejemplo de tag es <programlisting>, que permite mostrar una porción de texto en un tipo de letra diferente (apropiada para preentar programas).
int
main() {
int n,k;
}
Pueden emplearse varios tipos de documentos, este es un ejemplo de un artículo. Cada documento puede estructurarse en capítulos, secciones, subsecciones.
Suponiendo que edita el ejemplo en un archivo ejdb.sgml, y que en su sistema ya está instalado el paquete sgmltools-2, podrá generar un PostScript con:
sgmltools -b ps ejdb.sgml
Programa para convertir de Docbook a otros formatos (por ejemplo a PostScript con la opción -b ps). Para generar un HTML, emplee el mismo programa sgmltools, pero en la opción -b, en lugar de emplear ps, emplee html. Otros formatos que puede emplear son: dvi, rtf y txt. A continuación se presenta la apariencia del PostScript generado (visto con gv):
Otra posibilidad para generar HTML y PostScript a partir de documentos en DocBook (SGML o XML) se presentan brevemente en otra sección (ver Localización y configuración de algunos programas). Para aprender DocBook recomendamos de forma especial el Tutorial de DocBook:Un enfoque integrado y a través de ejemplos
Eventualmente deseará crear documentos de forma colaborativa con otras personas que tengan acceso a la red de su colegio. Precisamente para esa labor, existe CVS que controla las versiones de los archivos tipo texto de un directorio (que en terminología de CVS es un módulo), ofrece un mecanismo para que varias personas trabajen simultaneamente sobre la misma información y para detectar conflictos y permitir al usuario que lo genera, resolverlo (conflicto se refiere a dos ediciones diferentes de una misma porción de texto).
Para desarrollar en grupo con CVS basta tener en cuenta:
Hay un repositorio central donde está la copia "oficial" más actualizada. (puede ver como crear el repositorio e importar un módulo en la sección sobre Servicio CVS). Usted ha configurado las variables de ambiente (ver Ambiente y variables de ambiente) CVSROOT y CVS_RSH con la localización del repositorio y el programa para ingresar a la máquina donde está. Las posibilidades son:
Si el repositorio está en la misma máquina en la que usted está trabajando en, digamos en el directorio /var/cvs:
export CVS_RSH=" "
export CVSROOT=/var/cvs
Si el repositorio está en un directorio en otra máquina, y la otra máquina tiene un servidor ssh o rsh (ver telnet y ssh) y usted tiene cuenta en esa máquina (o su clave pública ssh está autorizada en alguna cuenta de esa máquina, ver Servicio ssh). Suponiendo que la otra máquina es purpura.micolegio.edu.co, que cuenta con ssh , que el repositorio está en el directorio /home/juan/cvs, y que en esa máquina usted puede usar con ssh la cuenta juan:
export CVS_RSH=ssh
export CVSROOT=juan@purpura.micolegio.edu.co:/home/juan/cvs
Si el repositorio está en un directorio de otra máquina, el protocolo pserver de CVS funciona en esa máquina y usted tiene una cuenta en esa máquina o está autorizado para usar pserver en el repositorio:
export CVS_RSH=" "
export CVSROOT=:pserver:juan@purpura.micolegio.edu.co:/home/juan/cvs
cvs login
Cada desarrollador debe obtener una copia de ese repositorio y dejarla en su cuenta para trabajarla. Esto es hacer un checkout, por ejemplo para obtener una copia local del módulo quimica:
cvs checkout quimica
En lugar de checkout puede emplear co. Si lo requiere puede pasar opciones generales a CVS antes de checkout (como -z3 que indica transmitir información comprimida):
cvs -z3 co quimica
Cada desarrollador con alguna frecuencia debe actualizar su copia local con respecto a la del repositorio central, para mantener al dia su copia con los cambios más recientes introducidos por otras personas. Esto es hacer un update (es importante que lo haga antes de comenzar a hacer cambios a su copia local). Por ejemplo puede usar:
cvs -z3 update -Pd
Note que en este comando la opción -z3 es una opción general de CVS, mientras que -Pd es particular a update (indica que no deben agregarse a la copia local directorios que estén vacios en el repositorio).
Cada desarrollador trabaja en su copia personal, y cuando completa una parte del trabajo (mejor asegurandose de no introducir errores), publica la actualización junto con un comentario (en el siguiente ejemplo es "Ortografía corregida"):
cvs commit -m "Ortografía corregida"
Eventualmente al intentar esta operación, si otro usuario realizó una actualización primero que tiene alguna diferencia con respecto a los cambios que se quieren agregar, CVS detecta el conflicto, modifica el archivo para resaltar los conflictos y permite solucionar el conflicto antes de repetir esta operación. Por ejemplo un conflicto puede verse como:
<<<<<<1.3
la presion interna de un gas es directamente proporcional a su temperatura.
-
La presión interna de un gas es inversamente proporcional a la temperatura
>>>>>>
Para solucionar el conflicto elimine las líneas que CVS agregó y deje la versión más precisa (o mezclelas), para este caso sólo quedaría:
La presión interna de un gas es directamente proporcional a la temperatura.