Texinfo

**Texinfo** on merkintäkieli, jonka avulla yhdestä lähdekoodista voidaan luoda dokumentointia sekä verkkosivuille että tulostettavaan muotoon eri tiedostomuodoissa, kuten dvi, html, pdf, jne., sekä texinfon oma hypertekstimuoto, info).
Texinfon kääntää saman niminen tietokoneohjelma, joka on julkaistu vapaana ohjelmistona.
Texinfo yhdistetään Free Software Foundationin GNU-projektiin, jonka ohjelmien virallinen dokumentointimuoto se on ollut. Texinfon kehitti Richard M. Stallman, joka on FSF:n ja GNU:n perustaja.

Texinfon päätarkoitus on helpottaa ohjelmisto-oppaiden kirjoittamista. Sillä voidaan luoda kaikki kirjan normaalit rakenteet, kuten luvut, aliluvut, viittaukset, taulukot ja sisällysluettelot. Lisäksi texinfo mahdollistaa hypertekstin koneella luettavaan dokumentaatioon.
Paperitulosteiden muotoiluun Texinfo käyttää Donald Knuthin TeX-ohjelmaa, jonka makropaketti se itseasiassa on. Käyttämällä Texinfon eri kääntäjiä, on mahdollista päivittää useita dokumentointeja (kuten verkkosivu ja tulostettava manuaali) käyttäen ainoastaan yhtä lähdekoodia.

Texinfo tulisi lausua "tehinfo" - samoin kuin TeX-ladontajärjestelmän nimi, jossa X esittää kreikan kirjainta χ (khi). Kehittäjien mukaan "Texinfo" tulisi kirjoittaa isolla alkukirjaimella "T", mutta muuten pienillä kirjaimilla.

## Tiedostotyypit

Jotta useita tiedostotyyppejä voidaan päivittää samanaikaisesti, editoimalla Texinfon (.texi) lähdekoodia,
on tehty useita syntaksikääntäjiä, jotka voivat kääntää Texinfo-tiedoston muihin tiedostotyyppeihin. Useimmat tiedostot luodaan käyttämällä makeinfo-ohjelmaa,
joka on osa GNU Texinfo -jakelua.

;HTML
:(luodaan komennolla makeinfo --html.) HTML on verkkosivujen merkintätapa, ja tätä tiedostotyyppiä voidaan käyttää netissä julkaistavan dokumentaation tekemiseen. Texinfon manuaalin mukaan makeinfo-ohjelma yrittää rajoittaa tiedoston tiettyyn HTML-merkintätavan osajoukkoon, jotta mahdollisimman monilla selaimilla voitaisiin lukea valmista dokumenttia.
;DVI
:(luodaan komennolla texi2dvi.) DVI on TeX-ladontajärjestelmän laitteistoriippumaton tiedostotyyppi, joka on tarkoitettu tulosteiden luomiseen ja voidaan muuttaa PostScript (ps-tiedostoksi).
;PDF
:(luodaan komennolla texi2dvi --pdf tai texi2pdf.) PDF-tiedostotyyppi perustuu PostScript-kieleen. Adobe Systems kehitti tiedostomuodon laitteistoriippumattomien tiedostojen muodoksi. Kuten PostScript-tiedosto, PDF-tiedosto voi esittää dokumentin lopullista ulkoasua ja on rajatta skaalattavissa. PDF-tiedostot on tarkoitettu laitteistoriippumattomiksi ja niitä voidaan katsella useilla ohjelmistoilla. Texinfo käyttää pdftex-ohjelmaa, TeX-varianttia, tuottaakseen PDF-tiedoston.
;Docbook
:(luodaan komennolla makeinfo --docbook.) Tämä on XML-kieleen perustuva merkintätapa tekniselle dokumentaatiolle, joka muistuttaa pääpiirteiltään Texinfoa. On myös mahdollista kääntää Docbook-tiedostoja Texinfo-tiedostoiksi käyttämällä docbook2X-ohjelmistoa.
;XML
:(luodaan komennolla makeinfo --xml.) Yleisiin käyttötarkoituksiin.
;Info
:(luodaan komennolla makeinfo.) Tämä on GNU:n dokumentaation tiedostotyyppi, joka sisältää navigointielementtejä tekstin eri kohtiin, ristiviittauksille, aliluvuille ja niin edelleen. Info-tiedostotyyppiä voi katsella info-ohjelmistolla tai GNU Emacsilla.

On huomattava, että Unixin manuaalisivuja ei voi tuottaa Texinfon kääntäjillä. Texinfoa käytetään, kun kirjoitetaan GNU-ohjelmistojen dokumentointia, jota tarvitaan yleensä Unix-tyyppisissä ympäristöissä, missä man-sivut ovat perinteinen dokumentointitapa. Man-sivuilla on tarkka rakenne ja niitä käytetään yleensä pikaoppaina, kun taas Texinfon avulla tehdyt dokumenttien on tarkoitus olla laajoja ja kattavia oppaita. Tämän vuoksi GNU ei näe syytä muuttaa Texinfo-sisältöä man-sivuiksi. Useille GNU-ohjelmille on olemassa man-sivut, jotka kehottavat lukijaa tutustumaan Info-sivuun.

## Texinfo-lähdekoodi
Texinfo mahdollistaa dokumentin jäsentämisen kirjan tapaan, jolloin dokumentissa on lukuja, alilukuja, ristiviittauksia ja indeksejä. Lähdekoodi on lähes leipätekstiä, mutta teknisesti ottaen se on jäsenneltyä tekstiä, jota on jäsennetty komennoilla, jotka alkavat merkillä "`@`". Näyte lähdetiedostosta:


```
@ifnottex
@node Top
@top Short Sample

@insertcopying
@end ifnottex

@menu
* First Chapter::    The first chapter is the
                     only chapter in this sample.
* Index::            Complete index.
@end menu
```


Komennot merkitsevät rakennetta, kuten lukua, sekä erottavat lähdekoodista osia, joita tarvitaan vain tietyissä luotavissa tiedostotyypeissä.

## Historia ja status
Texinfo on GNU-projektin virallinen dokumentaatiotapa. Texinfo on lisensoitu GNU General Public License -lisenssillä.

Texinfo-formaatin loi Richard M. Stallman, yhdistäessään tulostettavia tiedostoja tuottavan BoTeX-formaatin, joka oli käytössä MIT-yliopistolla, verkkosivuilla käytettävään Info-dokumentaatiojärjestelmään, joka käyttää hyperlinkkejä. Info on myös Stallmanin luoma ja perustuu TECO versioon Emacsista. BoTeX perustui puolestaan aiempaan järjestelmään, jolla oli nimi Bolio (yhdistetään usein David A. Mooniin, ja jota käytettiin Lisp-tietokoneessa), jota muokattiin käyttämään TeX-formaattia ulostulonaan. Robert Chassell auttoi Stallmania  luomaan ensimmäisen kääntäjän Info-tiedostotyypin tekemiseen Emacs Lispiä varten. Texinfon ohjelmistokehitystä johti Brian Fox (versioon 3.8 asti), Karl Berry (versioon 5.2 asti), ja Gavin Smith (joulukuusta 2014 alkaen).
Texinfo "perustuu löyhästi Brian Reidin Scribe-merkintäkieleen ja muihin merkintäkieliin, jotka olivat tyypillisiä sen syntyaikana".

Info-ohjelman ja texinfon levinneisyyttä on haitannut se, että valtaosa GNU:n dokumentaatioista on levitetty GNU Free Documentation License -lisenssin alaisuudessa. Jotkut projektit, kuten Debian, pitävät GFDL:ää epävapaana lisenssinä sen sallimien pakollisten "muuttamattomien osioiden" ("invariant sections") vuoksi, eikä texinfo-dokumentaatiota toimiteta käyttöjärjestelmän mukana, eikä info-ohjelmaa asenneta.

Eric S. Raymond kertoi 2014 Stallmannin sanoneen, että Info-järjestelmä korvataan uudella kevyellä järjestelmällä, joka voi tuottaa tulosteita ja HTML-hypertekstiä. Korvaava järjestelmä olisi luultavasti AsciiDoc.

## Lähteet

## Aiheesta muualla
* GNU Texinfo kotisivu
* GNU Texinfo manuaali
* GNU Texinfo tiedostojen latauspalvelin