# Texinfo

Texinfo es un sistema tipográfico para la preparación de documentación tanto en línea como impresa desde un solo fichero fuente. Se implementa con un programa de software libre del mismo nombre, creado y publicado por el Proyecto GNU.
El propósito principal de Texinfo es proveer una forma sencilla de escribir manuales de software. Similar a la sintaxis de LaTeX, todas las características normales de un libro, como capítulos, secciones, referencias cruzadas, tablas e índices están disponibles para uso en documentos. Usando los diversos generadores de salidas que están disponibles en Texinfo, es posible guardar muchos tipos de documentación actualizados (como la documentación en línea provista vía un sitio web, documentación impresa, como la generada usando el sistema tipográfico TeX) usando un solo archivo fuente. Como el manual indica, "TeX trabaja con virtualmente todas las impresoras; Info trabaja con virtualmente todas las terminales de computadoras; la salida HTML trabaja virtualmente todos los navegadores web. Entonces, Texinfo puede ser usado por casi cualquier usuario de computadoras".

## Fichero fuente Texinfo

Texinfo permite estructurar un documento como un libro con capítulos, secciones, referencias cruzadas e índices. La mayor parte del texto fuente es texto plano, pero técnicamente es texto formateado marcado por comandos que empiezan con "@". Una muestra parcial de un fichero fuente sería:
La estructura de comandos de marcas, tales como los capítulos, denota una parte del texto fuente que será procesada solo para ciertos tipos de salida.

## Internacionalización

Para que pueda soportar otros lenguajes y caracteres en los textos, existen dos marcas especiales, una es @documentlanguage para establecer el idioma del texto, y la otra es @documentencoding, para la codificación de caracteres, tal como los acentos y la "ñ" si el idioma es el español.
En el caso de los idiomas, @documentlanguage ll[_cc], donde "ll" es el código del idioma (es: español, de: alemán, etc) y "cc" es opcional, e indica el país, por ejemplo @documentlanguage de_DE es para el alemán, hablado en Alemania.
En cuanto a la codificación de caracteres Texinfo soporta las siguientes codificaciones:
* US-ASCII: caracteres del alfabeto en inglés, no admite caracteres de otros idiomas.
* UTF-8: caracteres internacionales Unicode a 8 bits
* ISO-8859-1 (Latin 1), ISO-8859-15 (Latin 9), ISO-8859-2 (Latin 2): según las normas ISO, europeos occidentales los dos primeros, el último es para los idiomas de Europa Oriental (los que no usan caracteres cirílicos).
* KOI8-R, KOI8-U: Para el ruso y el ucraniano respectivamente.
Por ejemplo, para el idioma español, se podría utilizar la combinación:
En sistemas Windows es común la codificación de archivos de texto en ISO-8859-1, mientras que en sistemas unix, unicode UTF-8. La codificación ISO-8859-15 (ligeramente diferente del ISO-8859-1), incorpora el símbolo €.

## Salida generada

Para hacer posible que diversos formatos de salida de documentación puedan ser actualizados una sola vez, con solo cambiar el archivo original en Texinfo, muchos conversores de sintaxis están disponibles para que puedan ser utilizados en generar transliteraciones del archivo Texinfo en otros formatos. La mayoría de ellos son creados usando el programa makeinfo, que es parte de la distribución GNU Texinfo. Los formatos de salida soportados por Texinfo incluyen texto plano, info, HTML, DVI, PDF, XML y DocBook.

### HTML

    (Salida generada con makeinfo --html) Como HTML es el lenguaje estándar para documentos presentados en la World Wide Web, este formato de salida puede ser usado de manera efectiva para producir páginas de documentación en línea. Las notas del manual de Texinfo explican que el programa makeinfo intenta restringir sus archivos de salida a un cierto subconjunto de marcado en HTML que pueda ser leído por tantos navegadores que sea posible.

### DVI

    (Salida generada con texi2dvi) El formato de archivo independiente de dispositivos es generado por el sistema de tipografía TeX, y puede ser usado para generar comandos específicos a cada dispositivo que pueden ser vistos o impresos; por ejemplo, traducción a PostScript (archivos ps).

### PDF

    (Salida generada con text2dvi --pdf o texi2pdf) A partir del lenguaje PostScript, este formato fue desarrollado por Adobe Systems para intercambio de documentos portables. Como el formato PostScript, puede representar la apariencia exacta de un documento y soporta escalado arbitrario. Está diseñado para ser independiente de la plataforma y puede ser visto en una gran variedad de aplicaciones. Texinfo usa el programa pdftex, una variante de TeX, para generar PDF.

### DocBook

    (Salida generada con makeinfo --docbook) Este es un lenguaje de marcado basado en XML para documentación técnica que tiene un parecido a Texinfo, en esbozos amplios. Es también posible convertir archivos Docbook a Texinfo, usando el programa docbook2X.

### XML

    (Salida generada con makeinfo --xml) Para propósito general.

### Info

    (Salida generada con makeinfo) Este es un formato específico que esencialmente es una versión en texto plano de la sintaxis original de Texinfo en conjunción con unos cuantos caracteres de control para separar nodos y proveer elementos de navegación para menús, referencias cruzadas, secciones y otros elementos.
Para los formatos impresos en papel Texinfo usa TeX con el fin de proporcionar las instrucciones necesarias tal que los comandos Texinfo se interpreten como si fueran propios de TeX.
Es destacable la ausencia de las páginas man como formato de salida. Texinfo se emplea para escribir y formatear la documentación del software GNU que normalmente se usa en entornos de tipo Unix, tales como GNU/Linux, donde el formato tradicional para la documentación era las páginas man. Estas páginas tienen convenciones de formato muy estrictas, mientras que la aplicación normal de Texinfo se centra en tutorías y manuales de referencia. Por tanto no parece haber beneficio en el uso de Texinfo para crear páginas man, que son tradicionalmente guías de referencia rápida. No obstante, muchos programas GNU pergeñan unas páginas man introductorias (con frecuencia autodeclaradas sin mantenimiento), remitiendo al documento Info correspondiente. A lo anterior habría que añadirle que Texinfo genera en primera instancia el sistema de documentación Info, cuyas raíces están en el sistema interno de documentación de GNU Emacs, perteneciente a una tradición distinta a la de Unix.

## Historia y estado actual

El formato Texinfo fue creado por Richard M. Stallman, mientras que el desarrollo de la distribución de software fue liderado por Brian Fox (hasta la versión 3.8) y Karl Berry (después de la versión 3.8).
Texinfo se usa como el sistema oficial de formateado de la documentación Info del Proyecto GNU. Texinfo se publica bajo la Licencia Pública General de GNU y es parte del proyecto GNU.

## Notas y referencias

* ↑ La documentación oficial de Texinfo advierte que la primera sílaba de "Texinfo" se pronuncia como en "speck", no como en "hex"; esta pronunciación se deriva de la de TeX. En la palabra "TeX", la "Χ" es la letra griega "Ji" y no la letra inglesa "ex". "TeX" se pronuncia como si la "Χ" fuera el último sonido en el nombre "Bach", pero "Texinfo" se pronuncia como si la "Χ" fuera una "k". Es más, el nombre "Texinfo" debe escribirse con sólo una mayúscula (la "T") y el resto con letras minúsculas.
* ↑ Free Software Foundation, Inc. «@documentlanguage ll[_cc]: Set the Document Language» (en inglés). GNU, GNU Texinfo manual.
* ↑ Free Software Foundation, Inc. «@documentencoding enc: Set Input Encoding» (en inglés). GNU, GNU Texinfo manual.