PageRenderTime 5ms CodeModel.GetById 27ms app.highlight 9ms RepoModel.GetById 0ms app.codeStats 1ms

/doc/German/userguide-de/userguide-de.t2t

http://txt2tags.googlecode.com/
Unknown | 1863 lines | 1243 code | 620 blank | 0 comment | 0 complexity | 69056791580169b49ae3f04526d4a962 MD5 | raw file
Possible License(s): GPL-2.0, GPL-3.0, WTFPL
   1Txt2tags Benutzerhandbuch
   2Aurelio, %%mtime(%c)
   3άbersetzung von Andreas Deininger
   4
   5%!target: html
   6%!options: --toc --toc-level 2 --css-sugar 
   7
   8%%!options: -o ../../../web/userguide/userguide.html
   9
  10% TRANSLATOR:
  11% - Don't worry about the PDF cover page
  12% - Don't worry about PDF at all, translate and check on HTML
  13% - Don't worry about the images
  14
  15% TRANSLATOR uncomment the next line
  16%%!options: -o benutzerhandbuch.html
  17
  18% TRANSLATOR uncomment the next line to use images on the same folder
  19%!preproc: IMGPATH img-lowres
  20
  21% TRANSLATOR:
  22% You can take new screenshots and make new images for the program
  23% interface and "first conversion" section. Remember to send them
  24% to the author!
  25
  26
  27%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  28%%% activate those lines when converting to HTML for PDF generation
  29%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  30%%% htmldoc does TOC
  31%!options(html): --no-toc --no-css-sugar -o userguide-pdf.html
  32%%% mask the 'nopdf' marks so they will not be removed
  33%!preproc(html): ^%nopdf  %yespdf
  34%%% removing first header, htmldoc ignores all until next <H1> (cool!)
  35%!postproc(html): '<H1>Txt2tags Benutzerhandbuch</H1>'  ''
  36%%% imagens are in the same dir
  37%!preproc: IMGPATH .
  38%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  39
  40% normalizing common text
  41%!preproc: CONFAREA	Konfigurationsbereich
  42%!preproc: HEADAREA	Kopfbereich
  43%!preproc: BODYAREA	Textbereich
  44%!preproc: MARKPROP	**Eigenschaften:**
  45%!preproc: MARKCONT	**Enthδlt:**
  46%!preproc: MARKDESC	**Beschreibung:**
  47%!preproc: MARKSYN	**Syntax:**
  48%!preproc: MARKDET	**Details:**
  49%!preproc: NOMARKS	Markierungen werden NICHT ausgewertet
  50%!preproc: NOMACRO	Makros werden NICHT ausgewertet
  51
  52%!preproc: URLMARKUP	http://txt2tags.org/markup.html
  53
  54% activate the areas disabled on the PDF version
  55%!preproc(html): ^%nopdf  ''
  56
  57% remove separator lines and strong lines
  58%!preproc(html): '^ *--------*'  ''
  59%!preproc(html): '^ *========*'  ''
  60
  61% highlight NEW topic on TOC
  62%%!postproc(html): '(<LI>.*Makros beherrschen lernen</A>)$' '\1 <b>[NEU!]</b>'
  63
  64%%% Little clean up for less large tables
  65%!postproc: /pessoal/sourceforge.net ''
  66
  67% border for all images
  68%!postproc: '(<IMG [^>]*BORDER)="0"'    '\1="1"'
  69
  70
  71%%% Embedded CSS code (ugly not?)
  72%
  73%!postproc(html): ^<HEAD>$ '<HEAD>\n<STYLE TYPE="text/css">\n@#@'
  74%!postproc(html): (@#@)$ 'body {background-color:#ddeeff; color:black;   \n\1'
  75%!postproc(html): (@#@)$ '      margin:3em; text-align:justify;}         \n\1'
  76%!postproc(html): (@#@)$ '#header {text-align:center;}                   \n\1'
  77%!postproc(html): (@#@)$ '.toc {border:1px solid black;padding:9px;\n\1'
  78%!postproc(html): (@#@)$ '            background-color:white;}           \n\1'
  79%!postproc(html): (@#@)$ '.toc li{list-style-type: none;}                \n\1'
  80%!postproc(html): (@#@)$ 'a {text-decoration:none;}\na:hover {color:red;}\n\1'
  81%!postproc(html): (@#@)$ 'a:visited {color:purple;}\ndl {margin:1em;}    \n\1'
  82%!postproc(html): (@#@)$ '#body h1 {text-align:center; color:white;      \n\1'
  83%!postproc(html): (@#@)$ '          background-color:blue; padding:8px;} \n\1'
  84%!postproc(html): (@#@)$ 'h2 {padding-top:20px;}\nhr {border-style:none;}\n\1'
  85%!postproc(html): (@#@)$ 'code {background-color:lightblue;}             \n\1'
  86%!postproc(html): (@#@)$ 'blockquote {border:1px solid black;padding:9px;\n\1'
  87%!postproc(html): (@#@)$ '            background-color:white;}           \n\1'
  88%!postproc(html): (@#@)$ 'table {border-style:solid; border-color:black;}\n\1'
  89%!postproc(html): (@#@)$ 'th {background-color:lightblue; padding:.5em;} \n\1'
  90%!postproc(html): (@#@)$ 'td {border-style:none; background-color:white;}\n\1'
  91%!postproc(html): (@#@)$ 'pre {border-style:solid; border-width:1px 1px; \n\1'
  92%!postproc(html): (@#@)$ '     background-color:lightblue; padding:8px;  \n\1'
  93%!postproc(html): (@#@)$ '     border-color:black;}                      \n\1'
  94%!postproc(html):  @#@$  </STYLE>
  95
  96% 26/Nov/2003: revised by anamimts
  97% 26/Jun/2004: updated to v2, new embedded CSS 
  98% 17/Jul/2004: revised by anamimts
  99% 01/Nov/2004: updated to v2.0 and 2.1, new chapters, PDF version
 100
 101% TODO Mastering Options [option-help], [option-css-sugar], ...
 102
 103========================================================================
 104
 105%nopdf	"Hallo! Hier kommt das txt2tags Benutzerhandbuch. Sie finden hier alle
 106%nopdf	Informationen zum Textkonvertierunsgwerkzeug txt2tags. Die neuste
 107%nopdf	Version ist stets erhδltlich bei http://txt2tags.org/userguide/. 
 108%nopdf	Fόr ergδnzende Informationen besuchen sie bitte 
 109%nopdf	[die txt2tags Webseite http://txt2tags.org]. Viel Spaί!"
 110%nopdf  
 111%nopdf	[Download PDF-Version http://txt2tags.org/userguide/benutzerhandbuch.pdf]
 112
 113========================================================================
 114
 115%nopdf%**Dieses Benutzerhandbuch enthδlt:**
 116
 117%%toc
 118
 119========================================================================
 120
 121= Teil I - Einfόhrung in txt2tags =[Einfuehrung]
 122
 123== Die ersten Fragen, die sich ihnen stellen ==[Erste-Fragen]
 124
 125Dieses Kapitel bietet einen άberblick όber txt2tags, in dem das Programm, dessen Zweck und dessen Mφglichkeiten vorgestellt werden
 126
 127------------------------------------------------------------------------
 128
 129=== Worum handelt es sich? ===
 130
 131Txt2tags ist ein Werkzeug zur Textformatierung und -konvertierung.
 132
 133Txt2tags konvertiert ein ASCII-Text Datei mit einigen wenigen Auszeichnungen zu jedem der unterstόtzten Ausgabeformate:
 134
 135- HTML Dokument
 136- XHTML Dokument
 137- SGML Dokument
 138- LaTeX Dokument
 139- UNIX man page
 140- Magic Point Prδsentation
 141- MoinMoin Seite
 142- PageMaker 6.0 Dokument
 143- ASCII-Text (keine Auszeichnungen)
 144
 145
 146------------------------------------------------------------------------
 147
 148=== Wieso sollte ich txt2tags benutzen? ===
 149
 150txt2tags kann fόr sie sehr nόtzlich sein, wenn sie:
 151- Dokumente in verschiedenen Formaten verφffentlichen mόssen
 152- fόr das Update von Dokumenten in verschiedenen Formaten verantwortlich sind
 153- technische Dokumentationen oder Handbόcher verfassen mόssen
 154- nicht wissen, wie sie ein Dokument in einem bestimmten Format schreiben sollen
 155- keinen speziellen Editor fόr ein bestimmtes Format besitzen
 156- mit einem einfachen Texteditor ihre Dokumente aktualisieren wollen
 157
 158
 159Die hauptsδchliche Motivation hinter all dem ist:
 160- Sparen sie Zeit, schreiben sie **Inhalte** und vergessen Sie die **Formatierung**
 161
 162
 163------------------------------------------------------------------------
 164
 165=== Was zeichnet txt2tags gegenόber δhnlichen Werkzeugen aus? ===
 166
 167Txt2tags wird sehr geradlinig erweitert, basierend auf grundlegenden Konzepten.
 168Das sind die wichtigsten Merkmale:
 169
 170| //Quellcode gut lesbar// | Txt2tags Auszeichnungen sind sehr einfach und in natόrlicher Weise gehalten.
 171| //Erzeugtes Dokument lesbar// | Ebenso wie der Quellcode ist auch das erzeugte Dokument gut lesbar, mit Einrόckungen und kurzen Zeilenlδngen.
 172| //Konsistente Auszeichnungen// | Txt2tags Auszeichnungen sind sehr spezifisch, sie eignen sich fόr alle Arten von Dokumenten und kφnnen dennoch nicht mit den eigentlichen Inhalten des Dokuments verwechselt werden.
 173| //Konsistente Regeln// | Ebenso einfach wie die Auszeichnungen selbst sind auch die Regeln, wie die Auszeichnungen miteinander verknόpft sind, es gibt keine  "Ausnahmen" oder "Spezialfδlle".
 174| //Einfache Strukturen// | Alle unterstόtzten Formatierungen sind **einfach**, ohne zusδtzlich Optionen oder sonstige komplizierte Schalter. Eine Auszeichnung ist lediglich eine Auszeichnung, ohne jegliche Optionen.
 175| //Einfach zu erlernen// | Aufgrund der einfachen Auszeichnungen und da der Quellcode lesbar ist, weist txt2tags eine flache, benutzerfreundliche Lernkurve auf.
 176| //Hόbsche Beispiele// | Die **Bespieldateien**, welche in dem Paket enthalten sind, geben reale Beispiele fόr einfache und auch komplexe Dokumente, die fόr und mit txt2tags geschrieben wurden.
 177| //Wertvolle Werkzeuge// | Die **Syntax-Dateien**, welche in dem Paket enthalten sind (fόr die Editoren vim, emacs, nano and kate), unterstόtzen sie beim Verfassen fehlerfreier Dokumente.
 178| //Drei Benutzerschnittstellen// | Es existieren eine sehr benutzerfreundliche **grafische Tk-Oberflδche**, eine **Webschnittstelle**, um das Programm im Inter- oder Intranet zu nutzen und eine **Kommandozeilen Version** des Programms fόr fortgeschrittene Benutzer sowie fόr das Skripting.
 179| //Skripting// | άber den mδchtigen Kommandozeilen-Modus kφnnen erfahrene Benutzer bestimmte Aufgaben **automatisieren** sowie konvertierte Dateien **nachtrδglich verδndern**.
 180| //Download und Aufruf / mehrere Plattformen// | Txt2tags ist ein einfaches **Python Skript**. Es braucht nicht kompiliert zu werden und benφtigt keine zusδtzlichen Module. Insofern lδuft es problemlos auf *NIX, Linux, Windows und Macintosh Computern.
 181| //Regelmδίige Updates// | Das Programm hat eine aktive Mailingliste, όber die Benutzer Korrekturen und Verbesserungen vorschlagen kφnnen. Der Autor selbst nutzt das Programm ausgiebig sowohl beruflich als auch privat, insofern wird die Entwicklung nicht kurzfristig eingestellt werden.
 182
 183
 184------------------------------------------------------------------------
 185
 186=== Muss ich fόr das Programm bezahlen? ===
 187
 188                || Definitiv NEIN! |
 189
 190Es ist frei, GPL, Open Source, Public Domain,
 191//<setzen sie hier ihr Lieblings-Schlagwort ein>//.
 192
 193Sie kφnnen das Programm kopieren, benutzen, verδndern, verkaufen und es sogar als das ihrige verφffentlichen. Fragen des Copyrights und der Softwarelizenzierung sind fόr den Autor von nachrangiger Bedeutung.
 194
 195------------------------------------------------------------------------
 196
 197
 198== Unterstόtzte Auszeichnungsstrukturen ==[Strukturen]
 199
 200Nachfolgend eine Aufzδhlung aller von txt2tags unterstόtzten Strukturen.
 201
 202- Kopfbereich (Titel des Dokuments, Name des Autors, Datum)
 203- Abschnittstitel (nummeriert oder nicht nummeriert)
 204- Absδtze
 205- Schriftarten
 206  - fett
 207  - kursiv
 208  - unterstrichen
 209- Schreibmaschinenschrift (fόr Originaltext)
 210  - Originaltext innerhalb eines Absatzes
 211  - einzelne Originaltext-Zeile
 212  - Originaltext-Bereich (mehrere Zeilen umfassend)
 213- Bereich fόr ein Zitat
 214- Verknόpfungen
 215  - URL/Internet Verknόpfungen
 216  - E-Mail Verknόpfungen
 217  - lokale Verknόpfungen
 218  - benannte Verknόpfungen
 219- Listen
 220  - Aufzδhlungslisten
 221  - nummerierte Listen
 222  - Definitionslisten
 223- horizontale Trennlinien
 224- Bilder (ausgerichtet)
 225- Tabellen (mit oder ohne Rahmen, ausgerichtet, όber mehrere Spalten hinweg)
 226
 227- Spezielle Auszeichnung fόr rohen Text (wird nicht geparst)
 228- Spezielles Makro fόr das aktuelle Datum (mit flexibler Formatierung)
 229- Kommentare (fόr Notizen, Aufgabenlisten, Fehlerbeschreibungen etc.)
 230
 231
 232------------------------------------------------------------------------
 233
 234== Unterstόtzte Ausgabeformate ==[Zielformate]
 235
 236: **HTML**
 237  Jeder weiί was HTML ist. (Hinweis: Internet)
 238
 239  Txt2tags erzeugt standardkonforme HTML Dokumente, die ansprechend aussehen und deren Quelltext gut lesbar ist. Es nutzt KEIN Javascript, keine Frames und auch keine sonstigen όberflόssigen Formatierungstechniken, die fόr einfache, technische orientierte Dokumente auch gar nicht gebraucht werden. Falls gewόnscht, kann allerdings eine getrennte CSS-Datei genutzt werden. Txt2tags erzeugt Code konform zum "//HTML 4.0 Transitional//"-Standard.
 240
 241  Seit Version 2.0 ist der von txt2tags erzeugte HTML-Code 100% standardkonform, dies kann mit dem [W3C-Validator http://validator.w3.org/] όberprόft werden.
 242
 243: **XHTML**
 244  Dies ist die neue HTML-Generation mit einem strikteren Regelwerk, so mόssen etwa alle Tags, die geφffnet wurden, auch wieder geschlossen werden. Dadurch kann der Code einfacher geparst und verstanden werden. Von Aufgabenzweck her gesehen kann  es grob generalisierend auch als HTML angesehen werden. Txt2tags erzeugt Code konform zum "//XHTML 1.0 Transitional//"-Standard.
 245
 246  Seit Version 2.0 ist der von txt2tags erzeugte XHTML-Code 100% standardkonform, dies kann mit dem [W3C-Validator http://validator.w3.org/] όberprόft werden.
 247
 248: **SGML**
 249  Dies ist ein verbreitetes Dokumentenformat fόr welches mit den [sgmltools http://www.sgmltools.org] mδchtige Anwendungen zur Konvertierung bereitstehen. Aus einer SGML-Datei kφnnen HTML-, PDF-, Postscript-, info, LaTeX, Lyx, RTF- sowie XML-Dokumente erzeugt werden. Die sgml2*-Werkzeuge erzeugen dabei automatisch Inhaltsverzeichnisse und kφnnen einzelnen Abschnitte auf getrennten Seiten anordnen (sgml2html).
 250
 251  Txt2tags erzeugt SGML Dateien die vom Systemtyp her linuxdoc Quellen gleichen, diese sind dafόr geeignet, unmittelbar mit sgml2* Werkzeugen konvertiert zu werden, hierfόr werden keine zusδtzlichen Katalogdateien benφtigt und auch sonst sind keine weiteren Anforderungen seitens des SGML-Standards vonnφten.
 252
 253: **LATEX**
 254  Dieses im akademischem Bereich bevorzugte Dokumentenformat ist leistungsfδhiger als sie es zu trδumen wagen. Komplette Bόcher, komplizierte Formeln und jeder noch so komplexe Text kann in LaTeX verfasst werden. Aber seien sie darauf gefasst sich ihre Haare auszuraufen, wenn sie versuchen, die Auszeichnungen per Hand zu schreiben ...
 255
 256  Txt2tags erzeugt kompilierfδhige LaTeX Quelldateien und όbernimmt dabei all die komplexen Maskierungsaufgaben und die sonstigen Ausnahmen. Sie als Autor mόssen sich nur noch um den Text selbst kόmmern.
 257
 258: **LOUT**
 259  Δhnlich leistungsstark wie LaTeX, aber mit einer einfacheren Syntax, welche ein "@"-Zeichen anstelle des "\"-Zeichens verwendet und in den meisten Fδllen ohne das Setzen von Klammern auskommt. Der Ansatz "Alles ist ein Objekt" macht die Auszeichnung sehr viel weniger komplex.
 260
 261  Txt2tags erzeugt gebrauchsfertige Lout Dateien, welche mittels des "lout"-Kommandos zu Postscript- oder PDF-Dateien konvertiert werden kφnnen.
 262
 263: **MAN**
 264  UNIX man pages blieben όber all die Jahre bestehen. Dokumentenformate kommen und gehen, man pages bleiben im Gegensatz dazu in Gebrauch, sie sind nicht zu verdrδngen.
 265
 266  Es gibt andere Werkzeuge um man Dokumente zu erzeugen, aber txt2tags hat
 267einen entscheidenden Vorteil: ein einziger Quelltext, vielerlei Zielformate. So kφnnen die Inhalte der man-page genau so gut in eine HTML-Seite, eine Magic Point- Prδsentation, etc. konvertiert werden.
 268
 269: **MGP**
 270  [Magic Point http://www.mew.org/mgp] ist ein sehr praktisches Prδsentationswerkzeug (δhnlich Microsoft PowerPoint), die einzelnen Folien werden dabei mittels einer Auszeichnungssprache definiert. Auf diese Weise kφnnen komplexe Prδsentationen in einem Editor erzeugt werden (etwa mittels vi/emacs/notepad).
 271
 272  Txt2tags erzeugt gebrauchsfertige .mgp Dateien, in denen bereits alle notwendigen Kopfzeilen fόr Schriften und fόr das generelle Erscheinungsbild definiert sind, Unterstόtzung fόr Akzente nach ISO-8859 inbegriffen.
 273
 274  **BONUS 1:** von txt2tags erzeugte .mgp Dateien nutzen XFree86 Type1
 275  Schriftarten! Dies bedeutet, dass sie keine zusδtzlichen TrueType Schriftart-Dateien fόr ihre Prδsentation benφtigen.
 276
 277  **BONUS 2:** die Farbdefinitionen fόr die Schriftarten sind so gewδhlt, dass selbst auf Systemen, auf denen nur eine geringe Farbtiefe zur Verfόgung steht (gestartet mit ``startx -- -bpp 8``), die Prδsentation dennoch ansprechend aussieht!
 278
 279  Das Schlόsselprinzip: Konvertieren und benutzen. Keine aufwδndigen Anpassungen oder sonstigen Anforderungen sind vonnφten.
 280
 281: **MOIN**
 282  Sie wissen nicht was [MoinMoin http://moin.sourceforge.net] ist?
 283  Es ist ein [WikiWiki http://www.c2.com/cgi/wiki]!
 284
 285  Die Moin Syntax ist nicht sonderlich adrett, insbesondere da stδndig
 286  ``{{{'''''Klammern und Hochzeichen'''''}}}``, hinzugefόgt werden mόssen. Auch hier bietet txt2tags mit seinen einfachen Auszeichnungen eine universelle Lφsung: ein Quelltext, vielerlei Zielformate.
 287
 288: **PM6**
 289  I wette sie wussten das noch nicht, aber tatsδchlich hat Adobe PageMaker 6.0  eine eigene Auszeichnungssprache! Schriftarten und -stile, Farbtabellen und die meisten anderen, όber Mausklick auswδhlbaren Eigenschaften sind in dieser Auszeichnungssprache verfόgbar. Der Import eines solchen Texts erfolgt όber den Menόpunkt "Import tagged text". Ein Hinweis am Rande: es handelt sich um ein <HTML "δhnliches"> Auszeichnungsformat.
 290
 291  Txt2tags erzeugt all diese Auszeichnungen und definiert zusδtzlich einen umfangreichen, funktionierenden Kopfbereich, in dem Absatzformate und -formatierungen gesetzt werden. Dies ist dabei der aufwδndigere Teil. **ACHTUNG:** Keine Zeilenumbrόche! Jeder Abschnitt muss eine einzelne Zeile umfassen.
 292
 293  Anmerkung des Autors:
 294  //Mein gesamtes, in portugiesisch verfasstes [Buch όber regulδre Ausdrόcke http://guia-er.sf.net]//
 295  //wurde im Editor VI geschrieben, mit txt2tags in das PageMaker-Format konvertiert und ging anschlieίend in//
 296  //Druck.//
 297
 298: **TXT**
 299  TXT ist Text. Der einzig wahre Formatierungs-Typ.
 300
 301  Obwohl die txt2tags Auszeichnungen sehr intuitiv und unauffδllig sind, kφnnen sie entfernt werden, indem die Quelldatei in reinen ASCII-Text konvertiert wird.
 302
 303  Titelzeilen sind dabei unterstrichen, und der Text ist mehr oder weniger der gleiche wie in der Quelltext-Datei.
 304
 305
 306------------------------------------------------------------------------
 307
 308== άbersicht όber die je nach Zielformaten unterstόtzten Strukturen ==[unterstuetzte-Strukturen]
 309
 310  || Struktur           | html | xhtml | sgml | tex | lout | man | mgp | moin | pm6 | txt |
 311  | Kopfzeile           |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  N   |  N  |  J  |
 312  | Abschnittstitel     |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  J  |
 313  | Absδtze             |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  J  |
 314  | fett                |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  -  |
 315  | kursiv              |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  -  |
 316  | unterstrichen       |  J   |   J   |  -   |  J  |  J   |  -  |  J  |  J   |  J  |  -  |
 317  | Schreibmaschine     |  J   |   J   |  J   |  J  |  J   |  -  |  J  |  J   |  J  |  -  |
 318  | Originaltextzeile   |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  -  |
 319  | Originaltextbereich |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  -  |
 320  | Zitate              |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  J  |
 321  | Internet Verknόpfungen     |  J   |   J   |  J   |  -  |  -   |  -  |  -  |  J  |  -  |  -  |
 322  | E-Mail Verknόpfung  |  J   |   J   |  J   |  -  |  -   |  -  |  -  |  J   |  -  |  -  |
 323  | lokale Verknόpfungen       |  J   |   J   |  J   |  N  |  N   |  -  |  -  |  J   |  -  |  -  |
 324  | benannte Verknόpfungen     |  J   |   J   |  J   |  -  |  -   |  -  |  -  |  J   |  -  |  -  |
 325  | Aufzδhlungslisten   |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  J  |
 326  | Nummerierte Listen  |  J   |   J   |  J   |  J  |  J   |  J  |  J  |  J   |  J  |  J  |
 327  | Definitionslisten   |  J   |   J   |  J   |  J  |  J   |  J  |  N  |  N   |  N  |  J  |
 328  | Trennlinien         |  J   |   J   |  -   |  J  |  J   |  -  |  J  |  J   |  N  |  J  |
 329  | Bilder              |  J   |   J   |  J   |  J  |  J   |  -  |  J  |  J   |  N  |  -  |
 330  | Tabellen            |  J   |   J   |  J   |  J  |  N   |  J  |  N  |  J   |  N  |  N  |
 331  || Extras             | html | xhtml | sgml | tex | lout | man | mgp | moin | pm6 | txt |
 332  | Bilder ausrichten   |  J   |   J   |  N   |  N  |  J   |  -  |  J  |  N   |  N  |  -  |
 333  | Tabellenzellen ausrichten |  J   |   J   |  J   |  J  |  N   |  J  |  N  |  J   |  N  |  N  |
 334  | mehrspaltige Zellen |  J   |   J   |  N   |  N  |  N   |  N  |  N  |  N   |  N  |  N  |
 335
 336  ||      | Legende
 337  | **J** | //Unterstόtzt//
 338  | **N** | //Nicht unterstόtzt (eventuell in zukόnftigen Versionen)//
 339  | **-** | //Nicht unterstόtzt (in diesem Zielformat nicht mφglich)//
 340% | **?** | //Nicht unterstόtzt (Ungewiss, ob eine Realisierung mφglich ist)//
 341
 342------------------------------------------------------------------------
 343
 344== Die drei Benutzerschnittstellen: GUI, Web und die Kommandozeile ==[Schnittstellen]
 345
 346Da die unterschiedlichen Nutzergruppen verschiedene Bedόrfnisse haben und in verschiedenen Umgebungen arbeiten, ist txt2tags sehr flexibel bezόglich der Art und Weise, wie es aufgerufen werden kann.
 347
 348Es existieren drei Benutzerschnittstellen fόr das Programm, jede davon mit mit ihren eigenen Mφglichkeiten und jeweils fόr einen anderen Zweck gedacht.
 349
 350- **GUI**: in Tk verfasst, eine Fensteroberflδche zum Anklicken fόr txt2tags .
 351- **Web**: in PHP verfasst, gestattet es den Benutzers txt2tags in einem Webbrowser ablaufen zu lassen,wodurch die clientseitige Installation von txt2tags όberflόssig wird.
 352- **Kommandozeile**: in Python verfasst, ist dies das Herzstόck des Programms. Alle Optionen sind όber die Optionsschalter der Kommandozeile konfigurierbar.
 353
 354
 355------------------------------------------------------------------------
 356
 357=== Graphische Tk Schnittstelle ===[GUI]
 358
 359Seit Version 1.0 steht eine hόbsche graphische Oberflδche zur Verfόgung, welche unter Linux, Windows, Mac und anderen Systeme lauffδhig ist.
 360
 361Das Programm erkennt automatisch, ob ihr System zur Anzeige der graphischen Schnittstelle fδhig ist, und startet diese, falls der Aufruf ohne jegliches Argument erfolgt. Der Aufruf der graphischen Schnittstelle kann auch όber den Aufruf mit der ``--gui``-Option erzwungen werden. Falls irgendwelche Ressourcen fehlen sollten, teilt das Programm ihnen dies mit.
 362
 363	**Hinweis:** Das Tkinter-Modul ist zwingend erforderlich. Da dieses jedoch bereits standardmδίig in der Python-Distribution enthalten ist, besitzen sie es eventuell schon.
 364
 365Die Schnittstelle ist ziemlich einfach und intuitiv:
 366
 367                     [IMGPATH/gui.png]  
 368
 369+ Sie lokaliseren die Quelldatei auf ihrem Datentrδger und deren Optionen werden geladen.
 370
 371+ Falls die Quelle dann noch leer sein sollte, mόssen sie eine auswδhlen.
 372
 373+ Zusδtzlich gibt es noch Optionen, die sie gegebenenfalls auswδhlen kφnnen, wobei jedoch keine dieser Optionen zwingend benφtigt wird.
 374
 375+ Zuletzt, drόcken Sie die Schaltflδche "Umwandlung starten!".
 376
 377
 378Sehr praktisch kann es sein, die Option "//Ausgabe an Bildschirm leiten//" auszuwδhlen. Hierdurch kφnnen sie den erzeugten Code in einem separatem Fenster όberprόfen, dabei wird zunδchst noch keine Datei gespeichert. Wenn der erzeugte Code dann ihren Vorstellungen entspricht, kφnnen sie diese Option wieder abwδhlen und die Datei wird gespeichert.
 379
 380Die voreingestellten Farben der Schnittstelle kφnnen in der Datei ``~/.txt2tagsrc`` geδndert werden, zur Einstellung muss dabei der Parameter ``%!guicolors`` gesetzt werden. Ein Beispiel:
 381
 382```
 383% nutze benutzerdefinierte Farben fόr die graphische Schnittstelle
 384% (Hintergrund1, Vordergrund1, Hintergrund2, Vordergrund2)
 385%!guicolors: blue white brown yellow
 386```
 387
 388------------------------------------------------------------------------
 389
 390=== Webschnittstelle ===
 391
 392Die Webschnittstelle ist im Internet verfόgbar όber die Adresse
 393http://txt2tags.org/online.php. Dort kφnnen sie dass Programm sofort austesten und nutzen, noch bevor sie es dann eventuell herunterladen.
 394
 395          [IMGPATH/web.png]  
 396
 397Sie kφnnen die Webschnittstelle auch in ihrem Intranet zur Verfόgung stellen, dadurch  brauchen sie dann txt2tags nicht lokal auf allen Rechnern in ihrem Intranet installieren.
 398
 399------------------------------------------------------------------------
 400
 401=== Kommandozeile als Schnittstelle ===[Kommandozeile]
 402
 403Fόr erfahrene Kommandozeilenbenutzer sollte die Ausgabe von --help genόgen:
 404
 405```
 406Usage: txt2tags [OPTIONEN] [Quelldateiname.t2t ...]
 407
 408  -t, --target        Typ des Zieldokuments festlegen. Derzeit unterstόtzt:
 409                      html, xhtml, sgml, tex, lout, man, mgp, moin, pm6, txt
 410  -i, --infile=DATEI  DATEI als Quellcodedatei festlegen ('-' fόr STDIN)
 411  -o, --outfile=DATEI DATEI as the Ausgabedatei festlegen ('-' fόr STDOUT)
 412  -n, --enum-title    Titelzeilen fortlaufend nummerieren (1, 1.1, 1.1.1, etc)
 413  -H, --no-headers    unterdrόcke Kopfzeile, Titel und Fuίzeile
 414      --headers       Kopf-, Fuί- und Titelzeilen anzeigen (Voreinstellung: EIN)
 415      --encoding      Zeichensatz des Zieldokuments (utf-8, iso-8859-1, etc)
 416      --style=DATEI   DATEI zur Definition des Dokumentenstils benutzen (δhnlich HTML CSS)
 417      --css-sugar     CSS-freundliche Auszeichnungen fόr HTML and XHTML-Zieldokumente einfόgen
 418      --css-inside    CSS-Stilinformationen innerhalb des HTML/XHTML Kopfbereichs einfόgen
 419      --mask-email    E-Mail-Adressen verbergen. x@y.z wird umgewandelt in <x (a) y z>
 420      --toc           Inhaltsverzeichnis hinzufόgen
 421      --toc-only      lediglich das Inhaltsverzeichnis ausgeben
 422      --toc-level=N   maximale Nummerierungstiefe im Inhaltsverzeichnis einstellen
 423      --rc            benutzerdefinierte Einstellungsdatei ~/.txt2tagsrc laden (Voreinstellung: EIN)
 424      --gui           Aufruf der graphischen Tk-Schnittstelle
 425  -q, --quiet         stiller Modus, jegliche Ausgaben werden unterdrόckt (auίer Fehlermeldungen)
 426  -v, --verbose       Statusmeldungen wδhrend der Konvertierung ausgeben
 427  -h, --help          diese Hilfeinformation anzeigen und Programm beenden
 428  -V, --version       Programmversion anzeigen und Programm beenden
 429      --dump-config   alle gefundenen Konfigurationsquellen ausgeben
 430
 431Abschalten von einzelnen Optionen:
 432     --no-outfile, --no-infile, --no-style, --no-encoding, --no-headers
 433     --no-toc, --no-toc-only, --no-mask-email, --no-enum-title, --no-rc
 434     --no-css-sugar, --no-css-inside, --no-quiet
 435
 436Beispiel:
 437     txt2tags -t html --toc meineDatei.t2t
 438
 439Per Voreinstellung wird die Ausgabe der Konvertierung in der Datei 'meineDatei.<target>' gespeichert.
 440Benutzen sie --outfile um den Namen der Ausgabedatei festzulegen.
 441Wird als Eingabedatei '-' angeben, liest das Programm von STDIN.
 442Wird als Eingabedatei '-' angegeben, erfolgt die Ausgabe nach STDOUT.
 443```
 444
 445==== Beispiele ====
 446
 447Vorausgesetzt, sie haben eine Quelldatei ``Datei.t2t``, los geht's mit der Konvertierung!.
 448
 449| **Konvertierung nach HTML**     | ``$ txt2tags -t html Datei.t2t``
 450| **Das gleiche, mit Umleitung**  | ``$ txt2tags -t html -o - Datei.t2t > Datei.html``
 451|  | .
 452| **inkl. Inhaltsverzeichnis**    | ``$ txt2tags -t html --toc Datei.t2t``
 453| **und die Titel nummeriert**    | ``$ txt2tags -t html --toc --enum-title Datei.t2t``
 454|  | .
 455| **kurze Inhaltsόbersicht**      | ``$ txt2tags --toc-only Datei.t2t``
 456| **diese dann noch nummeriert?** | ``$ txt2tags --toc-only --enum-title Datei.t2t``
 457|  | .
 458| **Einzeiler gelesen von STDIN** | ``$ echo -e "\n**bold**" | txt2tags -t html --no-headers -``
 459| **Test der E-Mail Maskierung**  | ``$ echo -e "\njohn.wayne@farwest.com" | txt2tags -t txt --mask-email --no-headers -``
 460| **Nachbearbeitung mittels sed** | ``$ txt2tags -t html -o- Datei.t2t | sed "s/<BODY .*/<BODY BGCOLOR=green>/" > datei.html``
 461
 462: //Anmerkung//
 463   Seit Version 1.6 kann mit Hilfe der ``%!preproc`` and ``%!postproc`` Konfigurationsfilter eine Vor- und Nachbearbeitung vorgenommen werden.
 464
 465
 466========================================================================
 467
 468
 469
 470= Teil II - Ok, I mφchte das Programm. Wie geht's weiter? =[Installation]
 471
 472Laden sie das Programm einfach herunter und installieren sie es auf ihrem Rechner.
 473
 474== Herunterladen & Installieren von Python ==[download-python]
 475
 476Zunδchst mόssen sie den Python-Interpreter herunterladen und auf Ihrem System installieren. Sollte Python bereits installiert sein, όberspringen sie diesen Schritt.
 477
 478
 479Python ist eine der tollsten Programmiersprachen die derzeit verfόgbar sind, und ist fόr
 480Windows, Linux, UNIX, Macintosh, und andere Systeme verfόgbar. Sie kφnnen es sich von der [Python Webseite http://www.python.org]. herunterladen. Auf derselben Seite finden sie auch Hinweise zur Installation. Txt2tags lδuft mit Python ab der Version 1.5 (oder neuer).
 481
 482Falls sie sich nicht sicher sind, ob auf ihrem System Python installiert ist, φffnen sie eine Konsole (tty, xterm, MSDOS) und geben sie am Kommandoprompt ``python`` ein. Falls Python nicht installiert sein sollte, wird sie ihre System darauf aufmerksam machen.
 483
 484
 485== Download von txt2tags ==[Download-txt2tags]
 486
 487Der offizielle Ort fόr die txt2tags-Distribution ist die Website des Programms, aufrufbar via http://txt2tags.org/src.
 488
 489Alle zum Programm gehφrigen Dateien finden sich in einem tarball (.tgz Datei), die Dateien kφnnen mit den meisten gebrδuchlichen Pack-Programmen (einschlieίlich Winzip) aus dem tarball entpackt werden
 490
 491Besorgen sie sich stets die **neueste** Version (wobei die neuste Version stets auch die hφchste Versionsnummer aufweist).
 492Die frόheren Versionen verbleiben lediglich zu Dokumentationszwecken auf der Seite.
 493
 494== Installation von txt2tags ==[Installation-txt2tags]
 495
 496Da es sich bei txt2tags um ein gewφhnliches Python-Skript handelt, muss txt2tags nicht gesondert installiert werden.
 497
 498Die einzige Datei, die sie brauchen, um das Programm zu nutzen ist, das txt2tags-Skript selbst. Bei allen anderen Dateien in der Download-Archivdatei handelt es sich entweder um Dokumentationsdateien, Werkzeuge oder Beispieldateien.
 499
 500Die sicherste Art und Weise, txt2tags ablaufen zu lassen besteht darin, es όber den Python-Compiler aufzurufen:
 501``` Eingabeprompt$ python txt2tags
 502
 503Wenn sie txt2tags auf ihrem Rechner als einzeln aufrufbares Programm "installieren" wollen, kopieren (oder verknόpfen) sie das txt2tags-Skript in ein Verzeichnis, welches in der Umgebungsvariable PATH enthalten ist und stellen sie sicher, dass ihr System weiί, mit welchem Programm ihre Datei aufzurufen ist.
 504
 505: **UNIX/Linux**
 506  Markieren sie das Skript als ausfόhrbar (``chmod a+x txt2tags``) und kopieren sie das Programm in ein Verzeichnis, das Bestandteil ihrer Umgebungsvariable PATH ist (``cp txt2tags /usr/local/bin``)
 507
 508: **Windows**
 509  Benennen sie das Skript txt2tags nach txt2tags.py um
 510  (``ren txt2tags txt2tags.py``) und kopieren sie es in ein Verzeichnis, das Bestandteil ihrer Umgebungsvariable PATH ist
 511  (``copy txt2tags.py C:\WINNT``)
 512
 513
 514Falls sie die graphische Benutzerschnittstelle des Programms nutzen wollen, kφnnen sie fόr das Programm anschlieίend ein Symbol auf ihrem Desktop anlegen.
 515
 516=== Spezielle Pakete fόr Windows-Benutzer ===
 517
 518Fόr txt2tags sind auch zwei .EXE-Dateien verfόgbar, mit denen das Programm auf Windows-Rechnern mit nur wenigen Mausklicks installiert werden kann:
 519
 520- Das bloίe txt2tag-Skript fόr all diejenigen, die den Python-Interpreter bereits installiert haben
 521  
 522- Die 'Stand-alone'-Version, welche keinen Python-Interpreter benφtigt (eine abgespeckte Python-Installationsdatei ist in diese Version integriert)
 523
 524
 525Besuchen Sie bitte die //txt2tags-Windows// Webseite um diese Pakete herunterzuladen:
 526http://txt2tags-win.sf.net
 527
 528== Installation von Dateien zum Hervorheben der Programmsyntax fόr Texteditoren ==[Editor-syntax]
 529
 530Txt2tags wird mit sehr nόtzlichen Dateien zum Hervorheben der Programmsyntax ausgeliefert, solche Dateien sind dabei fόr die folgenden Texteditoren verfόgbar:
 531
 532- Vim (www.vim.org)
 533- Emacs (www.emacs.org)
 534- Nano (www.nano-editor.org)
 535- Kate (http://kate.kde.org)
 536
 537
 538άber diese Dateien zum Hervorheben der Programmsyntax wird der Editor όber alle txt2tags-Regeln und Auszeichnungen informiert, dies unterstόtzt den Benutzer dabei, fehlerfreie Dokumente zu verfassen. Da die Auszeichnungen farbig hervorgehoben werden, sehen sie unmittelbar, ob sie die Auszeichnungsmarken in ihren Texten korrekt eingesetzt haben.
 539
 540           |  [IMGPATH/Kate.png]  |
 541           |  Beispieldatei, geφffnet im Editor Kate 
 542
 543Fόr jeden Editor erfolgt die Installation dieser Dateien zum Hervorheben der Programmsyntax unterschiedlich, lesen sie vor der Installation bitte die Kopfzeilen der jeweiligen Syntax-Datei sowie die Dokumentation zu ihrem Editor.
 544
 545========================================================================
 546
 547
 548
 549= Teil III - Verfassen und Konvertieren ihres ersten Dokuments =[Ihr-erstes-Dokument]
 550
 551== άberprόfung der Werkzeuge ==
 552
 553Um ihre erste Textumwandlung erfolgreich vornehmen zu kφnnen, brauchen sie drei Dinge: txt2tags, einen Texteditor und einen Webbrowser.
 554
 555+ Stellen Sie sicher, dass txt2tags auf ihrem Rechner installiert und funktionsfδhig ist.
 556
 557  - **Kommandozeilenschnittstelle:** Rufen Sie "txt2tags" auf der Kommandozeile auf, und sie sollten eine Meldung erhalten, die eine "Fehlende Eingabedatei" anmahnt. Falls der Aufruf von txt2tags fehlschlδgt, versuchen sie "python /Pfad/zu/txt2tags" oder auch "/Pfad/zu/Python
 558    /Pfad/zu/txt2tags" (falls Python nicht Bestandteil ihrer Umgebungsvariable PATH ist).
 559
 560  - **Graphische Schnittstelle:** Klicken sie auf das Programmsymbol um die graphische Benutzerschnittstelle zu starten.
 561
 562+ Starten sie einen Texteditor mit dem sie gut vertraut sind. Hierbei kann **jeder** Texteditor genutzt werden, angefangen vom guten alten vi όber MS-Word bis hin zum Texteditor aus der OpenOffice-Suite. Erstellen sie ein neues, leeres Dokument, das sie dann als ihr erstes txt2tags-Dokument verfassen.
 563
 564+ Starten Sie den von ihnen bevorzugten Webbrowser, sie brauchen ihn, um das Resultat der Konvertierung des von ihnen verfassten Dokuments in eine HTML-Seite zu όberprόfen.
 565
 566
 567------------------------------------------------------------------------
 568
 569== Schreiben sie den Kopfbereich des Dokuments ==
 570
 571+ Wechseln sie zu ihrem Texteditor und tippen sie auf der ersten Zeile den Titel ihres Dokuments: //Mein erstes Dokument//
 572+ Fόgen sie nun einen Untertitel hinzu, indem sie auf der zweiten Zeile den folgenden Text einfόgen:
 573  //Ein Test von txt2tags//
 574+ Anschlieίend kφnnen sie auf der dritten Zeile das Datum der Abfassung vermerken, wie etwa: //Freitag, 26. August 2005//
 575
 576Falls alles glatt gelaufen ist, sollten sie jetzt ein dreizeiliges Dokument mit folgendem Inhalt vor sich sehen:
 577
 578```
 579Mein erstes Dokument
 580Ein Test von txt2tags
 581Freitag, 26. August 2005
 582```
 583
 584Dies ist zwar nur ein kleiner Teil des gesamten Dokuments, wir kφnnen diesen Teil jedoch bereits konvertieren und anschlieίend die Ergebnisse όberprόfen.
 585
 586Speichern sie dazu das Dokument unter dem Namen ``Test.txt``. Merken sie sich dabei, in welchen Ordner sie die Datei abspeichern, sie benφtigen diese Information in Kόrze wieder.
 587
 588
 589------------------------------------------------------------------------
 590
 591== Die erste Umwandlung eines Dokuments - GUI Schnittstelle ==
 592
 593Falls sie txt2tags όber die Kommandozeilenschnittstelle bedienen wollen, όberspringen sie bitte diesen Schritt und befolgen sie die Anweisungen im nδchsten Abschnitt.
 594
 595Falls jedoch nach dem Aufruf von txt2tags die graphische Schnittstelle erscheint, folgen sie diesen Schritten:
 596
 597    [IMGPATH/erste-Konvertierung.png] 
 598
 599+ Klicken sie auf die mit "Blδttern" beschriftete Schaltflδche und wδhlen sie das Dokument ``Test.txt``, welches sie soeben erstellt und gespeichert haben (sicher haben sie sich den Ordner gemerkt, in dem sie das Dokument abgespeichert haben!).
 600+ Zurόck am Ausgangsschirm wδhlen sie "HTML Seite" in der mit "Wδhlen Sie das Format des Zieldokuments" beschrifteten Auswahlbox.
 601+ Klicken sie auf die Schaltflδche "Wandlung starten!".
 602
 603
 604   [IMGPATH/erste-Konvertierung-fertig.png] 
 605
 606   Nun wird ein Fenster erscheinen, welches sie darόber informiert, dass die Datei erfolgreich konvertiert wurde.
 607Beachten sie dabei, dass die erzeugte HTML-Seite in demselben Ordner gespeichert wurde wie die fόr die Konvertierung benutzte Quelldatei, die Datei weist dabei die Endung "html" auf.
 608
 609------------------------------------------------------------------------
 610
 611== Die erste Umwandlung eines Dokuments - Kommandozeile ==
 612
 613Falls sie txt2tags όber die graphische Schnittstelle bedienen wollen, befolgen sie bitte nicht diesen Schritt sondern folgen sie den Anweisungen im vorherigen Abschnitt.
 614
 615Falls sie jedoch txt2tags όber die Kommandozeile bedienen wollen, wechseln sie in den Ordner, in welchen sich das von ihnen erstellte Dokument abgespeichert haben und tippen dort das folgende Kommando ein: 
 616
 617``` txt2tags  --target html  Test.txt
 618
 619Beachten sie dabei bitte, dass Leerzeichen zwischen den einzelnen Bestandteilen des Kommandos, nicht aber innerhalb des Textpassage "--target" erlaubt sind, da es sich bei letzterer um eine Option handelt. Dieser Option folgt der Text "html", hierόber wird dem Programm mitgeteilt, in welches Format ihre Quelldatei konvertiert werden soll. Der letzte Bestandteil des Kommandos schlieίlich ist der Dateiname des Quelldokuments.
 620
 621Nach vollendeter Konvertierung wird die resultierende Datei unter dem Namen ``Test.html`` abgespeichert, wobei das Programm die folgende Mitteilung ausgibt: 
 622"//txt2tags erzeugte Test.html//". Sollte das nicht der Fall sein, erscheint eine entsprechende Meldung, der sie entnehmen kφnnen, welcher Fehler sich bei der Eingabe des Kommandos auf der Kommandozeile eingeschlichen hat. Lesen sie solche Meldungen sorgfδltig durch!
 623
 624Hier folgt ein Beispiel dafόr, wie sich das Ganze am Bildschirm prδsentiert:
 625
 626```
 627prompt$ txt2tags --target html Test.txt
 628txt2tags erzeugte Test.html
 629prompt$
 630```
 631
 632------------------------------------------------------------------------
 633
 634== άberprόfung des Resultats ==
 635
 636Φffnen sie die Datei ``Test.html`` in einem Webbrowser um zu όberprόfen, ob alles korrekt dargestellt wird.
 637
 638   [IMGPATH/Ergebnis-erste-Konvertierung.png] 
 639
 640Da ist das Resultat! Sie haben lediglich 3 kurze Textzeilen eingeben, und txt2tags hat den Rest erledigt und dabei sowohl den HTML-Kopfbereich (inklusive Dateiinformationen) erstellt als auch die Ausrichtung, Grφίe, Erscheinungsbild und Abstδnde fόr den Text adδquat festgelegt. Wie sie sehen kφnnen, erscheint der Titel ihres Texts auch in der Titelzeile des Browsers.
 641
 642  || Sie schreiben den Text, txt2tags erledigt den Rest ;) |
 643
 644Hinweis: Sie kφnnen auf von txt2tags erzeugte Dokumente auch CSS-Stylesheets anwenden, dadurch kann das Erscheinungsbild der Seite 100%-ig von ihnen festgelegt werden.
 645
 646------------------------------------------------------------------------
 647
 648== Verfassen des Dokuments ==
 649
 650Zurόck im Texteditor ist nun der nδchste Schritt die Eingabe der eigentlichen Inhalte des Dokuments. Sie kφnnen hierbei in Klartext schreiben, so wie sie das normalerweise beim Verfassen von E-Mail-Nachrichten auch tun. Sie werden sehen, dass txt2tags Abschnitte und Aufzδhlungen
 651automatisch erkennt, sie mόssen sie gar nicht besonders auszeichnen.
 652
 653Und dann wieder: speichern sie ihr Dokument, wandeln es um und όberprόfen sie das Ergebnis. 
 654Das ist der Entwicklungszyklus eines Dokuments in txt2tags. Sie konzentrieren sich ganz auf die Inhalte des Dokuments und sind mit ihrem Dokument schneller fertig als wenn sie ein mit Funktionen όberladenes Textverarbeitungsprogramm benutzt hδtten. Keine Mausklicks, keine Menόs, Fenster oder sonstige Ablenkungen.
 655
 656Vergleichen sie doch einfach die folgenden Inhalte der Quelldatei ``Test.txt``, welche in Klartext verfasst wurde, mit der bei der Konvertierung erzeugten HTML-Seite:
 657
 658```
 659Mein erstes Dokument
 660Ein Test von txt2tags
 661Freitag, 26. August 2005
 662
 663Gut, probieren wir halt mal dieses sagenhafte txt2tags Werkzeug.
 664Eigentlich weiί ich gar nicht was ich schreiben soll.
 665
 666Mmmmmm, I weiί was jetzt was ich tun werde:
 667- Mich zuerst duschen
 668- Dann eine Pizza essen
 669- Mich schlafen legen
 670```
 671
 672   [IMGPATH/Ergebnis-erste-Konvertierung-komplett.png] 
 673
 674
 675Sie kφnnen eine ganze Homepage erstellen, ohne auch nur das geringste Wissen όber HTML zu besitzen! Sie brauchen keinerlei Auszeichnungsmarken einfόgen. Und der Clou, dieselbe Quelldatei kann auch in jedes andere der von txt2tags unterstόtzten Formate umgewandelt werden.
 676
 677Neben dem Klartext versteht txt2tags einige ganz einfache Auszeichnungsmarken, welche sie nutzen kφnnen, falls sie eine andere Textformatierung oder -struktur benφtigen, wie etwa Fett- oder Kursivschrift, Titel, Bilder, Tabellen und anderes mehr. Hier zwei einfache Beispiele: ``**zeichnet fettgedruckte Passagen aus**`` und ``== kann fόr Titel genutzt werden ==``. Die Auszeichnungen lernen sie am besten mittels der [Demonstration von txt2tags Auszeichnungen http://txt2tags.org/markup.html].
 678
 679=======================================================================
 680
 681
 682= Teil IV - Die Konzepte von txt2tags beherrschen lernen =[Konzepte]
 683
 684== Die Bereiche eines .t2t Dokuments ==[Bereiche]
 685
 686Mit txt2tags ausgezeichnete Dateien sind in drei Bereiche aufgeteilt. Jeder Bereich hat einen anderen Zweck und besitzt seine eigenen Regeln. Es handelt sich dabei um:
 687
 688: //HEADAREA//
 689  Dies ist der Platz fόr den Titel des Dokuments, zusδtzlich kφnnen hier die Autoren, die Version und der Zeitpunkt der Abfassung des Dokuments angegeben werden. (optional)
 690: //CONFAREA//
 691  Dies ist der richtige Platz fόr im gesamten Dokument gόltige Einstellungen sowie fόr das Verhalten des Parsers beeinflussende Anweisungen. (optional)
 692: //BODYAREA//
 693  Dies ist der Platz fόr den Inhalt des Dokuments. (wird benφtigt)
 694
 695
 696Wie man aus der obigen Aufzδhlung ersehen kann, sind die ersten beiden Bereiche nicht zwingend erforderlich, insofern ist der //BODYAREA// der einzige Bereich, fόr den Text eingegeben werden muss.
 697
 698Die Abgrenzung der einzelnen Bereiche untereinander erfolgt nach speziellen Regeln, die wir im Detail im nδchsten Kapitel kennenlernen werden. Zunδchst wollen wir uns erstmal mit einer graphischen Darstellung der einzelnen Bereiche eines Dokuments zufrieden geben:
 699
 700```
 701             _____________
 702            |             |
 703            | KOPFBEREICH |       1. Zunδchst der Kopfbereich
 704            |             |
 705            |   KONFIG    |       2. Anschlieίend die Einstellungen
 706            |             |
 707            |    TEXT     |       3. Und schlieίlich der Text des Dokuments,
 708            |             |
 709            |     ...     |          der sich bis zum Ende erstreckt
 710            |     ...     |
 711            |___________ _|
 712
 713```
 714
 715Hier bereits ein Kurzόberblick darόber, wie die einzelnen Bereiche definiert sind:
 716
 717 |  **Kopfbereich**  | Die ersten drei Zeilen der Datei, oder eine Leerzeile als erste Zeile falls kein Kopfbereich erforderlich ist.
 718 |  **CONFAREA**   | Beginnt direkt im Anschluss an den Kopfbereich (zweite oder vierte Zeile) und endet mit Beginn des //Textkφrpers//.
 719 |   **Textkφrper**    | Die erste gόltige Textzeile (keine Kommentar- oder Parameterzeile) nach dem //HEADAREA//.
 720
 721
 722=== Komplettes Beispiel ===
 723
 724```
 725Der Titel meines tollen Dokuments
 726Dr. Andreas Deininger
 727Letzte Aktualisierung: %%mtime(%c)
 728
 729%! Target  : html
 730%! Style   : fancy.css
 731%! Encoding: iso-8859-1
 732%! Options : --toc --enum-title
 733
 734Hallo! Dies ist mein Test-Dokument.
 735Es endet bereits hier.
 736```
 737
 738------------------------------------------------------------------------
 739
 740== HEADAREA ==[Kopfbereich]
 741
 742Positionierung:
 743- Eindeutig festgelegte Position: Die **ersten 3 Zeilen** der Datei. Nicht mehr und nicht weniger
 744- Eindeutig festgelegte Position: Die **erste Zeile** der Datei falls es sich dabei um eine Leerzeile handelt. Dies bedeutet dann, dass auf den Kopfbereich verzichtet wird.
 745
 746
 747Der HEADAREA ist der einzige Bereich, dessen Position eindeutig anhand der Zeilennummern festgelegt ist: es handelt sich dabei um die ersten drei Zeilen der Quelldatei.
 748
 749Diese Zeilen kφnnen mit beliebigen Inhalten gefόllt werden, der Typ der Informationen ist nirgends statisch festgeschrieben.
 750Dennoch wird sich fόr die meisten Dokumente ein Aufbau der HEADAREAs in der folgenden Art anbieten:
 751
 752   - //1. Zeile//: Titel des Dokuments
 753   - //2. Zeile//: Name des Autors und/oder seine E-Mail-Adresse
 754   - //3. Zeile//: Version des Dokuments und/oder Zeitpunkt der Abfassung (hierfόr bietet sich das ``%%date``-Makro an)
 755
 756
 757Denken sie daran, dass die ersten drei Zeilen des Quelldokuments zugleich auch die
 758ersten drei Zeilen des Zieldokuments darstellen, welche abgesetzt und gegenόber dem Textkφrper stark hervorgehoben dargestellt werden (z. B. durch die Schriftgrφίe, Fettschrift). Falls das Dokument einen seitenorientierten Aufbau besitzt, wird der Kopfbereich alleinstehend zentriert auf der ersten Seite des Dokuments wiedergegeben.
 759
 760
 761==== Weniger (oder gar keine) Kopfzeilen ====
 762
 763Gelegentlich wird der Fall auftreten, dass der Autor des Dokuments weniger als drei Zeilen fόr den Kopfbereich benφtigt, etwa wenn er lediglich den Titel des Dokuments und/oder das Datum der Abfassung angeben mφchte.
 764
 765Lassen sie in solch einem Fall die zweite und/oder dritte Zeile ihres Dokuments einfach leer (Leerzeile) und es wird entsprechend auch kein Text im Kopf des Zieldokuments angegeben werden. Denken sie jedoch daran, dass diese Leerzeilen, auch wenn sie keinen Inhalt tragen, dennoch als ein Teil des Kopfbereich zδhlen, so dass der der Textkφrper des Dokuments nach wie vor frόhestens **nach** der dritten Zeile beginnen kann.
 766
 767Der Titel (die erste Zeile) ist das einzige Element im Kopfbereich des Dokuments, das zwingend angegeben werden muss. Falls sie die erste Zeile des Dokuments leer lassen und damit den Titel quasi auslassen, teilen sie txt2tags mit, dass das Dokument **keinen Kopfbereich** besitzt. Dies bedeutet dann zugleich, dass der //BODYAREA// direkt anschlieίend beginnen kann, in diesem speziellen Fall also bereits auf der zweiten Zeile des Dokuments.
 768
 769Der Verzicht auf die Angabe von Kopfzeilen ist besonders dann nόtzlich, wenn sie dem Dokument nach der Konvertierung eine eigene, von ihnen angepasst gestaltete Titelseite hinzufόgen mφchten. Gewφhnlich wird die Kommandozeilenoption ``--no-headers`` fόr diese Art der angepassten Dokumentgestaltung verwendet.
 770
 771==== Auf den Punkt gebracht ====
 772
 773 || In Kurzform: "Kopfzeilen sind lediglich durch ihre __Position__ definiert, nicht όber ihren Inhalt" |
 774
 775Platzieren sie beliebigen Text auf der ersten Zeile ihres Dokuments, und er wird auch im konvertierten Dokument auf der ersten Zeile erscheinen. Dasselbe gilt auch fόr die auf der zweiten und der dritten Dokumentenzeile platzierten Kopfzeilen.
 776
 777------------------------------------------------------------------------
 778
 779== CONFAREA ==[config-area]
 780
 781Positionierung:
 782- Beginnt direkt im Anschluss an den HEADAREA
 783  - Beginnt auf der **vierten Zeile** der Datei falls ein **Kopfbereich** angegeben wurde
 784  - Beginnt auf der **zweiten Zeile** der Datei falls **kein Kopfbereich** angegeben wurde
 785- Endet mit dem Beginn des BODYAREAs
 786  - Ein Leerzeile, eine Kommentarzeile oder eine Zeile in der keine Einstellung festgelegt wird beendet automatisch den CONFAREA
 787
 788
 789Der CONFAREA ist optional. Ein gewφhnlicher Benutzer kann viele txt2tags-Dateien verfassen ohne dass er όberhaupt weiί, dass ein CONFAREA existiert, ein erfahrener Benutzer aber wird dessen Mδchtigkeit und die όber seine Nutzung gebotene Flexibilitδt zu schδtzen wissen.
 790
 791Der CONFAREA kann dazu genutzt werden, dokumentenspezifische Einstellungen zu speichern, so dass diese bei der Konvertierung des Dokuments nicht jedesmal όber die Kommandozeile explizit als Kommandozeilenoptionen mit angegeben werden mόssen. Auf diese Art und Weise kφnnen zum Beispiel das Zielformat fόr die Konvertierung sowie die Kodierung der Datei festgelegt werden.
 792
 793Fόr weitergehende Informationen zu diesem Thema lesen sie bitte den Abschnitt [Einstellungen #Einstellungen-Ueberblick] .
 794
 795----------------------------------------------------------------
 796
 797== BODYAREA ==[body-area]
 798
 799Positionierung:
 800- Beginnt mit der ersten gόltigen Textzeile innerhalb der Datei
 801  - Zeilen innerhalb des Kopfbereichs, Zeilen welche Einstellungen enthalten sowie Kommentarzeilen sind **keine** gόltigen Textzeilen
 802- Endet zugleich mit dem Ende der Datei (EOF)
 803
 804
 805Jeglicher Text auίerhalb des Kopfbereichs und des CONFAREAs zδhlt zum BODYAREA.
 806
 807Der Textkφrper enthδlt die Inhalte des Dokuments sowie alle Auszeichnungen und -strukturen, welche von txt2tags erkannt werden. Innerhalb des Textkφrpers kφnnen auch Kommentare, etwa fόr //Aufgabenlisten (TODOs)// oder fόr sonstige, nur fόr den Verfasser bestimmte Notizen niedergeschrieben werden.
 808
 809Sie kφnnen die  Kommandozeilenoption ``--no-headers`` benutzen, um nur den Textkφrper des Dokuments zu konvertieren, der Kopfbereich wird dann unterdrόckt. Dies ist nόtzlich, wenn die Informationen des Kopfbereichs in einer separaten Datei hintergelegt sind, an diese Datei kann dann der konvertierte Textkφrper angehδngt werden.
 810
 811----------------------------------------------------------------
 812
 813== Einstellungen ==[Einstellungen-Ueberblick]
 814
 815Einstellungen sind spezielle Konfigurationsangaben, όber welche das Ergebnis der Konvertierung beeinflusst werden kann. Solche Einstellungen mόssen im CONFAREA des Quelldokuments platziert werden. Ihre Syntax lautet:
 816
 817 || %! Schlόsselwort : Wert |
 818
 819Liste aller gόltigen Schlόsselwφrter:
 820
 821 || Schlόsselwort  | Beschreibung |
 822 |   Target        | Definiert das Zielformat in welches das Dokument beim Fehlen von Kommandozeilenoptionen konvertiert wird.
 823 |  Options        | Definiert voreingestellt Optionen, welche bei der Konvertierung genutzt werden. Das Format ist dasselbe wie dasjenige von Kommandozeilenoptionen.
 824 |   Style         | Definiert das Aussehen des Dokuments. Damit kann einer HTML/XHTML-Datei eine CSS-Datei zugeordnet oder in einem LaTeX-Dokument ein Paket geladen werden.
 825 |  Encoding       | Definiert die Kodierung bzw. den Zeichensatz des Dokument. Findet immer dann Anwendung, wenn das Dokument Umlaute, mit Akzenten versehene Buchstaben oder andere nicht ASCII-Zeichen enthδlt.
 826 |   PreProc       | Eingabefilter. Definiert Regeln fόr das "Suchen und Ersetzen" welche auf das Quelldokument angewendet werden.
 827 |  PostProc       | Ausgabefilter. Definiert Regeln fόr das "Suchen und Ersetzen" welche auf das bereits konvertierte Dokument angewendet werden.
 828
 829Beispiel:
 830
 831```
 832%! Target  : html
 833%! Options : --toc --toc-level 3
 834%! Style   : fancy.css
 835%! Encoding: iso-8859-1
 836%! PreProc : "HPM"        "Hans-Peter Mόller"
 837%! PostProc: '<BODY.*?>'  '<BODY bgcolor="yellow">'
 838```
 839
 840-----------------------------------------------------------------------
 841
 842== Kommandozeilenoptionen ==[Options]
 843
 844Der schnellste Weg, das in txt2tags vordefinierte Verhalten abzuδndern besteht darin, die verfόgbaren Kommandozeilenoptionen zu nutzen. Diese Optionen sind dabei allerdings nur dann verfόgbar, wenn txt2tags auf der Kommandozeile aufgerufen wird, nicht aber wenn die graphische Schnittstelle oder die Webschnittstelle benutzt wird.
 845
 846Wie andere Systemwerkzeuge auch, akzeptiert das Programm eine Reihe von vordefinierten Optionen. Eine Option wird angegeben entweder όber einen Trennstrich gefolgt von einem Buchstaben oder όber zwei Trennstriche gefolgt von einem oder mehreren Wφrtern, Beispiele hierfόr sind ``-t`` bzw. ``--target``. Und da wir schon bei der Option target sind: dies ist die einzige Option, deren Angabe zwingend erforderlich ist, alle anderen sind optional.
 847
 848Zu den am hδufigsten genutzen Optionen zδhlen ``--outfile``, όber welche der Name der Ausgabedatei bestimmt werden kann, ``--toc``, welche die automatische Erzeugung eines Inhaltsverzeichnisses bewirkt und ``--encoding``, όber welche die Kodierung bzw. der Zeichensatz des Dokuments bestimmt werden kann. Die meisten Optionen kφnnen abgeschaltet werden, indem ihrem Name die Zeichenkette "no-" vorangestellt wird, zum Beispiel: ``--no-encoding`` and ``--no-toc``.
 849
 850Alternativ kφnnen sie die von ihnen gewόnschten Optionen fόr eine bestimmte Quelldatei auch innerhalb des CONFAREAs dieser Datei angeben, hierzu mόssen sie dort die ``%!options``-Einstellungen nutzen. Bei diesem Vorgehen brauchen sie dann die Optionen nicht nochmals auf der Kommandozeile eingeben.
 851Beispiel: ``%!options: --toc -o MeinDokument.html``. Eine Ausnahme stellt die Angabe des Zielformats dar, bei der Einstellung dieses Parameters innerhalb der Quelldatei kommt eine andere Zeichenkette zum Einsatz: ``%!target: html``.
 852
 853Verwenden sie die Option ``--help``, um eine komplette Liste aller in txt2tags verfόgbaren Optionen angezeigt zu bekommen.
 854
 855-----------------------------------------------------------------------
 856
 857== Benutzerdefinierte Konfigurationsdatei (RC-Datei) ==[rc]
 858
 859Die benutzerdefinierte Konfigurationsdatei (auch rc-Datei genannt, abgeleitet von __r__esource __c__ontrol) dient als zentraler Ort zur Speicherung von Einstellungen, die bei ALLEN Konvertierungen Berόcksichtigung finden. Anstelle dieselben Einstellungen in jeder von ihnen verfassten .t2t-Datei wiederholen, schreiben sie diese einfach einmal in ihre benutzerdefinierte Konfigurationsdatei. Die dort notierten Einstellungen werden dann zukόnftig bei jeder Konvertierung angewandt, egal ob sie mit txt2tags bereits bestehende oder neu erstellte Quelldateien bearbeiten.
 860
 861Abhδngig vom verwendeten Betriebssystem sind sowohl fόr den Dateinamen als auch fόr das Verzeichnis, in welchem die benutzerdefinierte Konfigurationsdatei abgespeichert wird, unterschiedliche Werte zu wδhlen. Alternativ kann der Speicherort dieser Datei vom Benutzer auch όber eine Umgebungsvariable deklariert werden.
 862
 863  ||                   | Speicherort fόr die RC Datei      |
 864  |           Windows: | ``%HOMEPATH%\_t2trc``
 865  |  Linux und andere: | ``$HOME/.txt2tagsrc``
 866  | benutzerdefiniert: | Umgebungsvariable ``T2TCONFIG``
 867
 868
 869Das Format der Einstellungen ist dabei identisch mit denjenigen, welche sie bereits zur Angabe von Einstellungen innerhalb des CONFAREAs von .t2t-Dateien kennengelernt haben. Ein Beispiel fόr eine solche benutzerdefinierte Konfigurationsdatei findet sich im txt2tags-Tarball im Verzeichnis ``doc/txt2tagsrc``.
 870
 871Beispiel:
 872
 873```
 874% Meine Konfigurationsparameter
 875
 876%%% HTML-Tags stets CSS-freundlich auszeichnen
 877%!options(html): --css-sugar
 878
 879%%% Voreingestellte Nummerierungstiefe fόr Inhaltsverzeichnisse anpassen (fόr alle Zielformate) 
 880%!options: --toc-level 4
 881
 882%%% ISO-8859-1 als Standardkodierung von txt2tags-Dokumenten festlegen
 883%!options: --encoding iso-8859-1
 884```
 885
 886Jede nicht leere Zeile, die keinen Kommentar und auch keine gόltige Einstellungsoptionen enthδlt, fόhrt zur Ausgabe einer Fehlermeldung, wenn txt2tags aufgerufen wird. Seien sie insofern bitte vorsichtig, wenn sie diese Datei bearbeiten.
 887
 888Txt2tags wendet beim Konvertierungsvorgang fόr jegliche Quelldateien automatisch die Inhalte der benutzerdefinierten Konfigurationsdatei an. Um bei der Konvertierung einer einzelnen Datei dieses Verhalten auίer Kraft zu setzen, existiert die Kommandozeilenoption ``--no-rc``.
 889
 890== Konfigurationsquellen und die Reihenfolge ihrer Anwendung ==[Konfigurationsquellen]
 891
 892Es existieren drei Mφglichkeiten, txt2tags darόber zu informieren, welche Optionen und Einstellungen bei der Konvertierung Berόcksichtigung finden sollen. Diese werden in der folgenden Reihenfolge gelesen und angewandt:
 893
 894+ Einstellungen, welche in der benutzerdefinierten Konfigurationsdatei vorgenommen wurden (RC)
 895+ Einstellungen im CONFAREA des Quelldokuments
 896+ Kommandozeilenoptionen
 897
 898
 899Txt2tags liest zunδchst die benutzerdefinierte Konfigurationsdatei ein (sofern vorhanden) und wendet die dort gefundenen Einstellungen auf das Quelldokument an.
 900Danach wird der CONFAREA der Quelldatei nach dort getδtigten Einstellungen durchsucht. Falls dort solche Einstellungen gefunden werden, werden diese ebenfalls angewandt, wobei ggf. bereits in der benutzerdefinierten Konfigurationsdatei gemachte Einstellungen όberschrieben werden. Schlieίlich finden auch noch die auf der Kommandozeile angegebenen Einstellungsparameter Anwendung, wobei diesen Einstellungen nochmals hφhere Prioritδt eingerδumt wird.
 901
 902Wurde also etwa die Kodierung fόr das Quelldokument in allen drei Konfigurationsquellen definiert, so wird der an der Kommandozeile fόr die Dokumentenkodierung angegebene Wert benutzt werden.
 903
 904-----------------------------------------------------------------------
 905
 906== Das %!include Kommando ==[include]
 907
 908Das ``include``-Kommando kann dazu genutzt werden, die Inhalte einer externen Datei in den Textbereich des Quelldokuments einzufόgen. Es handelt sich hierbei nicht um eine Konfigurationseinstellung sondern um ein Kommando, welches nur innerhalb des BODYAREAs des Dokuments gόltig ist.
 909
 910Mit Hilfe des ``include``-Kommandos kann ein groίes Dokument in mehrere kleinere Teildokumente (etwa als Kapitel innerhalb eines Buchs) aufgeteilt werden, oder aber es kann der gesamte Inhalt einer externen Datei in das Quelldokument eingefόgt werden. Ein Beispiel:
 911
 912```
 913Mein erstes Buch
 914Dr. Andreas Deininger
 915Erste Auflage
 916
 917%!include: Einleitung.t2t
 918%!include: Kapitel1.t2t
 919%!include: Kapitel2.t2t
 920...
 921%!include: Kapitel9.t2t
 922%!include: Nachwort.t2t
 923```
 924
 925An die ``%!include``-Zeichenkette wird einfach der Dateiname der einzufόgenden Datei angehδngt. Die (optionale) explizite Beschrδnkung der Einfόgeaktion auf ein spezifisches Ausgabeformat wird ebenfalls unterstόtzt, so dass auch dieses Kommando gόltig ist:
 926
 927``` %!include(html): Datei.t2t
 928
 929Beachten sie, dass όber die include-Anweisung der BODYAREA einer Datei in das Quelldokument eingefόgt wird. Sowohl Kopf- als auch CONFAREA der einzufόgenden Datei werden ignoriert. Dadurch kφnnen sie die eingefόgte Datei sowohl alleinstehend als auch im Gesamtzusammenhang des Hauptdokuments konvertieren.
 930
 931Zusδtzlich gibt es noch drei weitere Arten, Dokumente zu integrieren:
 932- Einfόgung als Originaltext
 933- Einfόgung als Rohtext
 934- Einfόgung als Auszeichnungen enthaltender Text
 935
 936
 937Wird die externe Datei als **Originaltext** eingefόgt, so bleibt die Originalformatierung (incl. Abstδnde der Zeichen untereinander) erhalten, genauso, wie wenn der Text innerhalb von txt2tags als Originaltextbereich ausgezeichnet worden wδre (mittels ```). Mφchten sie den Text auf diese Art und Weise einfόgen, umschlieίen sie die externe Textdatei mit zwei einfachen, rόckwδrts geneigten Hochzeichen:
 938
 939``` %!include: ``/etc/fstab``
 940
 941Wird die externe Datei als **Rohtext** eingefόgt, so wird die Textdatei gleichsam unbesehen eingefόgt, das heiίt, der Text wird nicht auf spezifische txt2tags-Auszeichnungen untersucht (geparst), genauso, wie wenn der Text innerhalb von txt2tags als Rohtextbereich ausgezeichnet worden wδre (mittels """). Mφchten sie den Text auf diese Art und Weise einfόgen, umschlieίen sie die externe Textdatei mit zwei geraden hochgestellten Anfόhrungszeichen:
 942
 943``` %!include: ""Klasse_Text.txt""
 944
 945Und schlieίlich gibt es noch die Mφglichkeit Text als **Auszeichnungen enthaltenden Text** einzufόgen, der Inhalt des einzufόgenden Dokuments wird dabei direkt in das resultierende Dokument durchgereicht, dabei wird der Text weder auf spezifische txt2tags-Auszeichnungen hin untersucht (geparst) noch werden irgendwelche Ersetzungen vorgenommen. Somit kφnnen zusδtzliche in txt2tags oder anderweitiger Syntax ausgezeichnete Textteile zu ihrem Dokument hinzugefόgt werden. Als nόtzlich kann sich das etwa erweisen wenn sie Informationen im Kopf-oder Fuίbereich hinzufόgen wollen oder falls sie Text mit einer komplizierten Syntax einfόgen wollen, welche nicht von txt2tags unterstόtzt wird:
 946
 947``` %!include(html): ''Fussbereich.html''
 948
 949Beachten Sie, dass der Dateiname mit zwei einfachen geraden Hochzeichen umschlossen ist. Da der Text bereits geparst ist, mόssen sie explizit das Zielformat angeben, um Fehler zu vermeiden (hier: html).
 950
 951-----------------------------------------------------------------------
 952
 953== Das %!includeconf Kommando ==[includeconf]
 954
 955Das ``includeconf``-Kommando dient dazu, Konfigurationen, welche in einer externen Datei definiert wurden, in das aktuelle Dokument mit aufzunehmen. Dieses Kommando ist nur innerhalb des CONFAREAs des Quelldokuments gόltig.
 956
 957Dieses Kommando ist etwa dann nόtzlich, wenn dieselben Konfigurationseinstellungen von mehreren Dateien geteilt werden sollen, sie kφnnen die Konfigurationsoptionen gleichsam zentralisieren. Bei jeder Datei, innerhalb welcher diese zentral abgelegten Konfigurationseinstellungen Anwendung finden sollen, ist dann innerhalb des CONFAREAs ``includeconf`` aufzurufen. Ein Beispiel:
 958
 959```
 960Mein erstes Dokument
 961Andreas Deininger
 962September, 2005
 963
 964%!includeconf: config.t2t
 965
 966Hallo, dies ist mein erstes Dokument.
 967```
 968
 969Das Format fόr Einstellungen innerhalb der externen Konfigurationsdatei ist dasselbe wie dasjenige das bei [benutzerdefinierten Konfigurationsdateien #rc] Anwendung findet.
 970
 971=======================================================================
 972
 973
 974
 975= Teil V - Auszeichnungen beherrschen lernen =[Auszeichnungen]
 976
 977άbersicht όber alle txt2tags Auszeichnungen:
 978 || Grundlegende Auszeichnungen | ``...............`` |     Schriftstile    | ``...............`` |
 979 |              //Kopfbereich// |  Erste 3 Zeilen     |            //Fett// |  ""**Wφrter**"" 
 980 |                    //Titel// |  = Wφrter =         |          //Kursiv// |  ""//Wφrter//"" 
 981 |        //Nummerierte Titel// |  + Wφrter +         |   //Unterstrichen// |  ""__Wφrter__"" 
 982 |                //Abschnitt// |  Wφrter             | //Schreibmaschine// |  ""``Wφrter``"" 
 983 ||                 Text Blocks | ``...............`` |              Andere | ``...............`` |
 984 |                    //Zitat// |  <TAB>Wφrter        |      //Trennlinie// |  ------------... 
 985 |               //Aufzδhlung// |  - Wφrter           |     //Dicke Linie// |  ============... 
 986 |   //Nummerierte Aufzδhlung// |  + Wφrter           |   //Verknόpfungen// |  ""[Angabe URL]"" 
 987 |         //Definitionsliste// |  : Wφrter           |            //Bild// |  ""[Bilddatei.jpg]"" 
 988 |        //Originaltextzeile// |  ``` Wφrter  |       //Kommentar// |  % Kommentare 
 989 |      //Originaltextbereich// | ""```\n Zeilen \n```"" |      //Rohtext// |  """"Wφrter"""" 
 990 |             //Rohtextzeile// |  """"""" Wφrter  |         //Tabelle// |  ""| Zelle 1 | Zelle 2 | Zelle 3..."" 
 991 |           //Rohtextbereich// | """""""\n Zeilen \n""""""" |    //Anker// |  = Marke =[Anker] 
 992
 993Allgemeine Regeln:
 994
 995- Die ersten drei Zeilen eines Dokuments zδhlen als **Kopfzeilen**, etwaige Auszeichnungen werden nicht ausgewertet.
 996- Der Text einer **Titelzeile** wird von "=" oder "+"-Zeichen umschlossen. Je mehr Zeichen, umso tiefer wird der Titel eingruppiert.
 997- Bei **Schriftstilen** sind keine Leerzeichen zwischen den Markierungszeichen und dem Inhalt erlaubt.
 998- Das **Kommentarzeichen** "%" muss ganz am Anfang der Zeile (in deren erster Spalte) stehen.
 999- Die Dateinamen von **Bildern** mόssen die Endung GIF, JPG, PNG (oder δhnlich) aufweisen.
1000- Die einzigen **mehrere Zeilen** umfassenden **Markierungen** sind Originaltext- und Rohtextbereiche.
1001- Auszeichnungen innerhalb von Originaltext- oder Rohtextbereichen werden **nicht** interpretiert.
1002- **(Dicke) Trennlininen** mόssen mindestens 20 Zeichen umfassen.
1003- Die **Nummerierungstiefe** von Zitaten und Aufzδhlungen wird όber deren Einrόckung definiert.
1004- Die **Titelzeile einer Tabelle** wird όber zwei || am Beginn der Zeile gekennzeichnet.
1005
1006
1007------------------------------------------------------------------------
1008%- MARKPROP Mehrzeilig, Leerzeichen, Ausrichtung, Verschachtelt
1009%- MARKCONT Makros, Schriftstile, Zitate, Aufzδhlungen, Tabellen, Originaltext, Rohtext, Trennlinien, Verknόpfungen, Bilder, Kommentare
1010%-----------------------------------------------------------------------
1011
1012== Kopfzeilen ==[Auszeichnung-Kopfzeile]
1013
1014- MARKDESC Zeichnet den Kopfbereich des Dokuments aus
1015- MARKPROP Mehrzeilig, Leerzeichen, !Ausrichtung, !Verschachtelt
1016- MARKCONT Makros
1017- MARKSYN
1018  - Die ersten 3 Zeilen der Quelldatei.
1019  - Falls sie gar keinen Kopfbereich angeben mφchten, lassen sie die erste Zeile des Quelldokuments leer.
1020    Passend fόr Einzeiler auf der Komandozeile oder bei selbstdefiniertem Kopfbereich.
1021  - Lassen sie die zweite und dritte Zeile des Quelldokuments leer, falls sie diese Teile des Kopfbereichs weglassen mφchten.
1022- MARKDET
1023  - NOMARKS
1024  - Die ersten drei Zeilen des Quelldokuments sind auch die ersten drei Zeilen im Zieldokument, wobei diese Zeichenketten stark vom sich anschlieίenden Textkφrper abgehoben werden und ggf. sogar alleine auf einer separaten Titelseite platziert werden (falls das Zielformat dies zulδsst). 
1025  - Generell kφnnen beliebige Inhalte fόr den Kopfbereich gewδhlt werden, auf den einzelnen Zeilen wird wird keine spezifische, statisch festgelegte Information benφtigt. Fόr die meisten Dokumente wird sich dennoch folgendes anbieten:
1026    - Zeile 1: Titel des Dokuments
1027    - Zeile 2: Name des Autor und/oder dessen E-Mail Adresse
1028    - Zeile 3: Erstellungsdatum und/oder Version des Dokuments (der richtige Platz fόr ""%%mtime"")
1029
1030
1031------------------------------------------------------------------------
1032
1033== Titelzeilen, Nummerierte Titelzeilen ==[Auszeichnung-Titel]
1034
1035- MARKDESC Zeichnet Abschnittstitel aus (nummeriert oder nicht nummeriert) 
1036- MARKPROP Mehrzeilig, Leerzeichen, !Ausrichtung, !Verschachtelt
1037- MARKCONT Rohtext
1038- MARKSYN
1039  - Hinweis: Falls die Abschnittstitel nummeriert werden sollen, ersetzen sie bei all den im folgenden aufgefόhrten Regeln das Zeichen "=" durch "+"
1040  - Jeweils gleich viele Gleichheitszeichen vor und hinter dem Abschnittstitel, ``=wie hier in Abschnittstitel I=``
1041  - Je mehr Zeichen angeben werden, umso tiefer wird der Abschnitt eingeordnet: ``=Titel=``, ``==Untertitel==``,
1042    ``===Titel unterhalb eines Untertitels===``, ...
1043  - Bei der Untergliederung sind maximal 5 Ebenen mφglich, ``=====wie hier=====``
1044  - Sind vor und hinter dem Titel nicht gleich viele "=" oder "+"-Zeichen angegeben, handelt es sich nicht um einen Abschnittstitel, ``=wie hier===``
1045  - Innerhalb einer Auszeichnung sind beliebig viele Leerzeichen erlaubt, ``=       wie hier  =``
1046  - Abschnittstiteln kann ein Textanker hinzugefόgt werden ``=wie hier=[Anker]``. Um auf einen solchen Anker zu verweisen, definieren sie eine ``[lokale Verknόpfung #Anker]``
1047  - Der Name des Ankers darf ausschlieίlich Buchstaben und Zahlen sowie die Zeichen "-" und "_" enthalten (A-Za-z0-9_-). Sonderzeichen im Namen des Ankers sind **nicht** erlaubt.
1048- MARKDET
1049  - NOMARKS
1050  - NOMACRO
1051
1052
1053------------------------------------------------------------------------
1054
1055== Abschnitt ==[Auszeichnung-Abschnitt]
1056
1057- MARKDESC Zeichnet einen Textabschnitt aus
1058- MARKPROP Mehrzeilig, Leerzeichen, !Ausrichtung, !Verschachtelt
1059- MARKCONT Makros, Schriftstile, Rohtext, Verknόpfungen, Bilder, Kommentare
1060- MARKSYN
1061  - Abschnitte sind Gruppen von Zeilen, die durch Leerzeilen voneinander getrennt sind
1062  - Ein Abschnitt kann auch durch andere Blockauszeichnungen, wie durch das Ende einer Aufzδhlung, eines Zitates, einer Tabelle oder eines Originaltextbereichs beendet werden
1063
1064
1065------------------------------------------------------------------------
1066
1067== Kommentar ==[Auszeichnung-Kommentar]
1068
1069- MARKDESC Wird zur Auszeichnung von Text benutzt, der nicht im Zieldokument erscheinen soll
1070- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, !Verschachtelt
1071- MARKCONT -
1072- MARKSYN
1073  - Eine Kommentarzeile beginnt mit einem Prozentzeichen in der ersten Spalte, ``% wie hier``
1074  - KEINE vorangehenden Leerzeichen erlaubt
1075- MARKDET
1076  - Als Kommentar ausgezeichneter Text taucht im umgewandelten Text nicht auf.
1077  - Keine Auszeichnung als Block mφglich, jede einzelne Kommentarzeile muss mit einem %-Zeichen beginnen
1078  - Nόtzlich zur Erinnerung an noch anstehende Aufgaben (TODO), zum Markieren von Fehlern oder fόr Anmerkungen, etwa von einem Herausgeber
1079
1080
1081------------------------------------------------------------------------
1082
1083== Fett, Kursiv, Unterstrichen ==[Auszeichnung-Schriftstil]
1084
1085- MARKDESC Wird genutzt um fetten/kursiven/unterstrichenen Text innerhalb eines Abschnitts, einer Tabelle, einer Aufzδhlung oder eines Zitats einzufόgen
1086- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, Verschachtelt
1087- MARKCONT Makros, Schriftstile, Rohtext, Verknόpfungen, Bilder
1088- MARKSYN
1089  - Zwei Sternchen umschlieίen fetten Text, ``**wie hier**``
1090  - Zwei Schrδgstriche umschlieίen kursiven Text, ``//wie hier//``
1091  - Zwei Unterstriche umschlieίen unterstrichenen Text, ``__wie hier__``
1092  - Zwischen den Auszeichnungen und den auszuzeichnenden Inhalten sind keine Leerzeichen erlaubt:
1093    ``** so etwas ** ist ungόltig``
1094- MARKDET
1095  - innerhalb einer mit einem Schriftstil ausgezeichneten Textphrase sind keine Zeilenumbrόche erlaubt, die Textpassage ist auf einer einzelnen Zeile der Quelldatei zu platzieren     
1096  - Makros innerhalb einer Schriftstil-Auszeichnung sind erlaubt: ``**%%date**``
1097  - Schriftstile kφnnen ineinander verschachtelt werden:
1098    ``""**__so__ //etwa//**""``
1099
1100
1101------------------------------------------------------------------------
1102
1103== Schreibmaschinenschrift ==[Auszeichnung-Schreibmaschine]
1104
1105- MARKDESC Fόgt Text in Schreibmaschinenschrift innerhalb eines Abschnittes, einer Tabelle, einer Aufzδhlung oder eines Zitats ein
1106- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, !Verschachtelt
1107- MARKCONT -
1108- MARKSYN
1109  - von zwei Hochzeichen umschlossen, ````wie hier zu sehen````
1110  - Die Hochzeichen mόssen direkt an den Inhalt anschlieίen (keine Leerzeichen erlaubt!):
1111    ```` So etwas `` ist ungόltig``
1112- MARKDET
1113  - NOMARKS
1114  - NOMACRO
1115  - Der gesamte Text, der in Schreibmaschinenschrift gesetzt werden soll, muss sich auf einer einzigen Zeile befinden, es sind keine Zeilenumbrόche innerhalb der Textphrase erlaubt
1116  - In manchen Zielformaten bleiben die Abstδnde zwischen den Zeichen erhalten, in anderen werden aufeinanderfolgende Leerzeichen zu einem einzigen verschmolzen
1117  - Sie kφnnen den Text in Schreibmaschinenschrift auch fett auszeichnen, indem sie ihn in die entsprechenden Zeichen einschlieίen:
1118    ``""**``Schreibmaschine fett ``**""``. Dies ist genauso mit den anderen Schriftstilen mφglich:
1119    etwa ``""//``kursiv``//""`` und ``""__``unterstrichen``__""``.
1120
1121
1122---------------------------------------------------------------------
1123
1124== Originaltext-Zeile, Originaltext-Bereich ==[Auszeichnung-Originaltext]
1125
1126- MARKDESC Damit kann Programm-Code oder andersweitig formatierter Text eingefόgt werden, hierbei bleiben die Wortabstδnde und die Zeilenumbrόche erhalten, die Ausgabe erfolgt in Schreibmaschinenschrift
1127- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, !Verschachtelt
1128- MARKCONT -
1129- MARKSYN **Originaltext-Zeile:**
1130  - Eine Originaltext-Zeile beginnt mit drei aufeinanderfolgenden einfachen Anfόhrungszeichen, gefolgt von einem Leerzeichen, an welches sich der Originaltext anschlieίt, ``""```"" etwa so``
1131  - Die einfachen Anfόhrungszeichen mόssen sich direkt am Zeilenanfang befinden, es sind keine vorangehenden Leerzeichen erlaubt
1132- MARKSYN **Originaltext-Bereich:**
1133  - Eine Zeile mit genau drei aufeinanderfolgenden einfachen Anfόhrungszeichen ```````, gefolgt von
1134    Textzeilen, gefolgt von einer weiteren Zeile genau drei aufeinanderfolgenden einfachen Anfόhrungszeichen ```````
1135  - Vor und nach den Auszeichnungsmarken sind KEINE Leerzeichen erlaubt.
1136- MARKDET
1137  - NOMARKS
1138  - NOMACRO
1139  - Falls das Ende der Quelldatei (EOF) erreicht wird, wird ein ggf. geφffneter Originaltext-Bereich geschlossen.
1140
1141
1142---------------------------------------------------------------------
1143
1144== Trennlinien, Dicke Trennlinien ==[Auszeichnung-Trennlinie]
1145
1146- MARKDESC Zeichnet eine Trennlinie oder eine dicke Trennlinie aus
1147- MARKPROP !Mehrzeilig, Leerzeichen, !Ausrichtung, !Verschachtelt
1148- MARKCONT -
1149- MARKSYN
1150  - Die Auszeichnung einer Trennlinie kann entweder mittels Strichen "-" oder Unterstrichen "_" vorgenommen werden
1151  - Fόr dicke Trennlinien wird das Gleichheitszeichen "=" verwendet 
1152  - Fόr eine Linie sind mindestens 20 Striche/Unterstriche/Gleichheitszeichen erforderlich
1153  - Am Anfang und am Ende der Linie kφnnen Leerzeichen platziert werden
1154  - Jegliche andere Zeichen innerhalb der Zeile heben die Auszeichnung als Linie auf
1155- MARKDET
1156  - Falls das Zielformat keine Trennlinien unterstόtzt, wird stattdessen eine Kommentarzeile ausgegeben
1157  - Eine dicke Trennlinie fόhrt bei unterschiedlichen Zielformaten zu unterschiedlichem Verhalten:
1158    - Eine dickere Trennlinie
1159    - Eine Pause bei Prδsentationsformaten, wie etwa bei Magic Point
1160    - Ein Seitenumbruch in seitenorientierten Ausgabeformaten, wie etwa bei LaTeX
1161
1162
1163---------------------------------------------------------------------
1164
1165== Verknόpfungen, Benannte Verknόpfungen ==[Auszeichnung-Verknuepfung]
1166
1167- MARKDESC Dient zur Auszeichnung eines entfernten (Internet) Links oder einer lokalen Verknόpfung
1168- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, !Verschachtelt
1169- MARKCONT Makros, Rohtext, Bilder
1170- MARKSYN
1171  - Jede gόltige Internet URL, FTP-, News- oder E-Mail Adresse wird erkannt und automatisch umgewandelt.
1172  - Die Angabe des Protokolls (http, https, ftp) ist optional, ``www.wiedies.com``
1173  - Fόr eine Verknόpfung kann ein Name angeben werden: ``[Klicken sie hier www.url.com]``
1174  - Auch ein Bild kann auf eine Verknόpfung verweisen: ``[[Bild.jpg] www.url.com]``
1175  - Makros innerhalb der Verknόpfungsadresse sind erlaubt: ``[siehe Quelldatei %%infile]``
1176  - Makros innerhalb des Verknόpfungsnamens sind erlaubt: ``[Spiegelung von %%outfile www.url.com]``
1177% - Schriftstile innerhalb des Verknόpfungsnamens sind erlaubt: ``[**Klicken** sie hier www.url.com]``
1178  - Alle Spezifikationen fόr einen einzelnen Link innerhalb der Quelldatei mόssen sich auf einer Zeile befinden, Zeilenumbrόche sind hier nicht erlaubt
1179- MARKDET
1180  - Falls das Zielformat keine Verknόpfungen unterstόtzt, erfolgt die Auszeichnung mittels Unterstreichung
1181
1182
1183---------------------------------------------------------------------
1184
1185== Zitate ==[Auszeichnung-Zitat]
1186
1187- MARKDESC Dient zur Auszeichnung eines Zitats (als eingerόckte Zeile)
1188- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, Verschachtelt
1189- MARKCONT Makros, Schriftstile, Zitate, Rohtext, Trennlinien, Verknόpfungen, Bilder, Kommentare
1190- MARKSYN
1191  - Eine Zeile, die mit einem Tabulatorzeichen (TAB) beginnt
1192  - Mehrere Tabulatorzeichen am Zeilenanfang erhφhen die Tiefe der Einrόckung fόr das Zitat
1193  - Aufzδhlungen und Tabellen innerhalb von Zitaten sind nicht erlaubt
1194- MARKDET
1195  - Falls das Ende der Quelldatei (EOF) erreicht wird, wird ein ggf. geφffnetes Zitat abgeschlossen.
1196  - Manche Zielformate unterstόtzen die Verschachtelung von Zitaten nicht, in diesem Fall werden die untergeordneten Zitate entsprechend auf die Ebene verschoben, auf der sich das aόίerste Zitat befindet.
1197  - Fόr die Tiefe der Verschachtelung von Zitaten gibt es kein Limit. Allerdings ist bei manchen Zielformaten die Verschachtelungstiefe beschrδnkt, Zitate unterhalb der tiefstmφglichen Ebene werden auf diese Ebene hochgestuft.
1198
1199
1200---------------------------------------------------------------------
1201
1202== Aufzδhlungen, Nummerierte Aufzδhlungen, Definitionslisten ==[Auszeichnung-Aufzaehlung]
1203
1204- MARKDESC Dient dazu, den Beginn eines Aufzδhlungspunkts innerhalb einer Aufzδhlung auszuzeichnen
1205- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, Verschachtelt
1206- MARKCONT Makros, Schriftstile, Aufzδhlungen, Tabellen, Originaltext, Rohtext, Trennlinien, Verknόpfungen, Bilder, Kommentare
1207- MARKSYN
1208  - Eine Zeile, welche mit einem Strich/Pluszeichen/Punkt beginnt, gefolgt von genau einem Leerzeichen
1209  - Das erste Zeichen einer Aufzδhlung kann KEIN Leerzeichen sein (Ausnahme: Definitionslisten)
1210  - άber ggf. vorhandene Leerzeichen am Zeilenanfang (gewφhnliche Leerzeichen, keine Tabulatorzeichen) wird die Nummerierungstiefe der Aufzδhlung festgelegt (Verschachtelung)
1211  - Tiefer eingruppierte Aufzδhlungen werden beendet, falls ein hφher angeordneter Aufzδhlungspunkt (von der Elternaufzδhlung aus gesehen) oder ein leerer Aufzδhlungspunkt folgt.
1212  - Mittels zweier aufeinanderfolgender Leerzeilen kφnnen alle geφffneten Aufzδhlungen geschlossen werden
1213- MARKDET
1214  - Auch falls das Ende der Quelldatei (EOF) erreicht wird, werden alle ggf. geφffneten Aufzδhlungen abgeschlossen.
1215  - Aufzδhlungen kφnnen auch gemischt werden, so ist etwa eine Definitionsliste innerhalb einer nummerierten Aufzδhlung problemlos mφglich.
1216  - Manche Zielformate unterstόtzen die Verschachtelung von Aufzδhlungen nicht, in diesem Fall werden alle Unterpunkte der Aufzδhlung auf die erste (oberste) Aufzδhlungsebene hochgestuft.
1217  - Grundsδtzlich besteht keine Beschrδnkung hinsichtlich der maximal mφglichen Tiefe von Aufzδhlungen. Bei einzelnen Zielformaten kφnnen jedoch durchaus Beschrδnkungen vorliegen, in diesem Fall werden diejenigen Aufzδhlungen, welche tiefer als die maximal zulδssige Tiefe ausgezeichnet sind, auf das tiefstmφgliche Niveau hochgestuft.
1218
1219
1220---------------------------------------------------------------------
1221
1222== Bilder ==[Auszeichnung-Bild]
1223
1224- MARKDESC Markiert ein Bild
1225- MARKPROP Mehrzeilig, !Leerzeichen, Ausrichtung, !Verschachtelt
1226- MARKCONT Makros
1227- MARKSYN
1228  - Der Name der Bilddatei, von eckigen Klammern umgeben, ``[meinbild.jpg]``
1229  - Dem Namen der Bilddatei muss als Erweiterung das Bildformat angehδngt sein, etwa PNG, JPG, GIF, ... (sowohl Groί- als auch Kleinschreibung erlaubt)
1230  - Symbole im Namen der Bilddatei sind erlaubt, ``[meinbild!~1.jpg]``
1231  - Makros im Namen der Bilddatei sind erlaubt, ``[report-%%date(%Y-%m-%d).png]``
1232  - Leerzeichen im Namen der Bilddatei sind NICHT erlaubt, ``[wie hier.jpg]``
1233  - Leerzeichen nach der φffnenden oder vor der schlieίenden Klammer sind NICHT erlaubt, ``[ meinbild.jpg ]``
1234- MARKDET
1235  - Falls im Zielformat keine Bilder unterstόtzt werden, wird der Name der Bilddatei innerhalb (runder Klammern) wiedergegeben.
1236  - άber die Position der Markierung des Bildes auf der Zeile wird die Ausrichtung des Bildes definiert:
1237    - ``[LINKS.jpg]`` blablablabla
1238    - blablablabla ``[ZENTRIERT.jpg]`` blablablabla
1239    - blablablabla ``[RECHTS.jpg]``
1240
1241
1242---------------------------------------------------------------------
1243
1244== Tabellen ==[Auszeichnung-Tabelle]
1245
1246- MARKDESC Dient zur Auszeichnung einer Tabellenzeile mit einer beliebigen Anzahl von Spalten
1247- MARKPROP Mehrzeilig, Leerzeichen, Ausrichtung, !Verschachtelt
1248- MARKCONT Makros, Schriftstile, Rohtext, Verknόpfungen, Bilder, Kommentare
1249- MARKSYN
1250  - Ein vorangestelltes "|"-Zeichen zeichnet eine Tabellenzeile aus
1251  - Zwei vorangestellte "||"-Zeichen zeichnen eine Zeile als Titelzeile einer Tabelle aus
1252  - Dem ersten "|"-Zeichen vorangestellte Leerzeichen fόhren zu einer zentrierten Anordnung der Tabelle innerhalb des Textflusses
1253  - Einzelne Zellen der Tabelle werden durch die Zeichenkette " | " (Leerzeichen "|"-Zeichen Leerzeichen) voneinander getrennt
1254  - Wird am Ende der ersten Tabellenzeile das "|"-Zeichen angegeben, so wird fόr die Tabelle eine Umrandung ausgeben
1255  - Abschlieίende "|"-Zeichen am Ende aller folgenden Tabellenzeilen werden ignoriert und dienen damit lediglich der besser optischen Darstellung der Tabelle
1256  - Wird eine Tabellenzelle mit mehr als einem "|"-Zeichen abgeschlossen, so erstreckt sich diese Zelle όber mehrere Spalten:
1257    "||" fόr 2 Spalten, "|||" fόr 3 Spalten (und so weiter)
1258  - Die Anordnung der Leerzeichen innerhalb einer Tabellenzelle bestimmt deren horizontale Ausrichtung
1259  - Beispiel: ``| Zeile | einer | Tabelle | mit | sechs | Spalten |``
1260- MARKDET
1261  - Alle zu einer Zeile der Tabelle gehφrigen Daten mόssen auf einer einzigen Zeile der Quelldatei angeordnet sein, innerhalb einer Tabellenzeile sind keine Zeilenumbrόche erlaubt
1262  - Zielformate mit spaltenorientierter Ausrichtung (wie SGML und LaTeX) nutzen die Ausrichtung der ersten Tabellenzeile als Voreinstellung fόr alle sich anschlieίenden Tabellenzeilen
1263  - Jede nicht als Tabellenzeile ausgezeichnete Textzeile schlieίt eine geφffnete Tabelle ab, die einzige Ausnahme hiervor stellen Kommentarzeilen dar
1264  - Die Anzahl der Zellen ist variabel, verschiedene Zeilen einer Tabelle kφnnen eine unterschiedliche Anzahl an Zellen aufweisen
1265  - Derzeit gibt es keine Mφglichkeit, innerhalb einzelner Spalten mehrere Zeilen zu einer einzigen Tabellenzelle zusammenzufassen.
1266  - Falls das Zielformat die Darstellung von Tabellen nicht unterstόtzt, werden die als Tabelle ausgezeichneten Zeilen als ein Originaltextbereich behandelt
1267
1268
1269---------------------------------------------------------------------
1270
1271== Rohtext, Rohtextzeilen, Rohtextbereich ==[Auszeichnung-Rohtext]
1272
1273- MARKDESC Wird genutzt um beliebigen Text vor dem Parsen zu "schόtzen", Auszeichnungen und Makros innerhalb des Rohtextes werden nicht expandiert.
1274- MARKPROP Mehrzeilig, !Leerzeichen, !Ausrichtung, !Verschachtelt
1275- MARKCONT -
1276- MARKSYN **Rohtext:**
1277  - Text umgeben von zwei Anfόhrungszeichen, ``""""wie hier""""``
1278  - Anfόhrungszeichen und Text direkt aneinander (keine Leerzeichen)
1279- MARKSYN **Rohtextzeile:**
1280  - Eine Zeile mit rohem Text beginnt mit drei aufeinanderfolgenden Anfόhrungszeichen, ``""" wie hier``
1281  - Die Anfόhrungszeichen mόssen sich unmittelbar am Zeilenanfang befinden, Leerzeichen davor sind nicht erlaubt
1282  - Ein Leerzeichen nach den Anfόhrungszeichen trennt diese vom nachfolgenden Text ab
1283- MARKSYN **Rohtextbereich:**
1284  - Ein Bereich mit rohem Text beginnt mit einer Zeile mit drei aufeinanderfolgenden Anfόhrungszeichen, daran kφnnen sich beliebig viele weitere Textzeilen anschlieίen. Abgeschlossen wird der Bereich durch eine Zeile mit drei aufeinanderfolgenden Anfόhrungszeichen
1285  - Leerzeichen vor oder nach den Markierungen sind NICHT erlaubt
1286- MARKDET
1287  - NOMARKS
1288  - NOMACRO
1289  - Falls das Ende der Quelldatei (EOF) erreicht wird, wird ein ggf. geφffneter Rohtextbereich abgeschlossen.
1290
1291
1292=======================================================================
1293
1294
1295
1296= Teil VI - Makros beherrschen lernen =[Makros]
1297
1298Makros sind fόr spezielle Zwecke definierte Schlόsselwφrter, die wδhrend der Konvertierung expandiert werden. Sie werden benutzt, um dynamische Informationen, wie etwas das aktuelle Datum oder Informationen όber das Quelldokument in dieses einzufόgen.
1299
1300Ein Makro wird όber die beiden Zeichen ``%%`` ausgezeichnet denen der Name des Makros folgt, ein Beispiel ist ``%%date``.
1301Einige Makros erkennen optionale Formatierungsanweisungen, welche innerhalb von Klammern unmittelbar nach dem Makronamen wiedergegeben werden, etwa in der Form  ``%%date(%Y-%m-%d)``. In solch einer Zeichenkette zur Formatierung kann herkφmmlicher Text mit speziellen Formatierungsanweisungen gemischt werden, letztere werden όber ein Prozentzeichen eingeleitet, dem ein einzelnes Zeichen als eigentliche Formatierungsanweisung folgt. Falls keine zusδtzliche Formatierungsanweisung angeben wird, wird eine sinnvolle, vorgegebene Einstellung genutzt.
1302
1303  || Makroname    | Wird expandiert nach ...                        | Voreinstellung |
1304  | ""%%date""    | Das aktuelle Datum                     |  %Y%m%d 
1305  | ""%%mtime""   | Der Zeitpunkt der letzten Δnderung der Quelldatei |  %Y%m%d 
1306  | ""%%infile""  | Der Pfad des Quelldokuments           |    %f 
1307  | ""%%outfile"" | Der Pfad der bei der Konvertierung erzeugten Datei |    %f 
1308  | ""%%toc""     | Das Inhaltsverzeichnis des Dokuments (Table of Contents) |    - 
1309
1310Generelle Regeln:
1311
1312- Beim Namen des Makros wird nicht zwischen Groί- und Kleinschreibung unterschieden, insofern sind ``%%date``, ``%%DaTe`` und
1313  ``%%DATE`` identisch
1314- Makros sind sowohl im Kopfbereich als auch im Textbereich des Dokuments gόltig. Eine Ausnahme stellt das Makro %%toc dar, welches lediglich im BODYAREA erlaubt ist
1315- Wird im CONFAREA ein Makro angegeben, wird όber dieses Makro automatisch der BODYAREA eingeleitet
1316- Ein Makro kann an jeder beliebigen Stelle innerhalb einer Zeile platziert werden, und es sind beliebig viele Makros innerhalb einer Zeile erlaubt
1317  (eine Ausnahme stellt %%toc dar, das nur dann gόltig ist, wenn es separat in einer Zeile angegeben wird)
1318- Makros kφnnen auch innerhalb der Auszeichnungen fόr Verknόpfungen und Bilder benutzt werden (auίer %%toc)
1319- Innerhalb von Titeln, von Originaltext- und Rohtextbereichen auftretende Makros werden nicht expandiert
1320
1321
1322Komplettes Beispiel (expandierte Makros sind in Fettschrift wiedergegeben):
1323
1324	Das ist das Benutzerhandbuch zu txt2tags, konvertiert ins Zielformat **%%outfile(%e)**
1325	mit Hilfe von txt2tags aus der Quelldatei **%%infile**. Die Umwandlung wurde
1326	durchgefόhrt am **%%date(%d. %B %Y um %X)**, wobei die letzte Δnderung am Quelldokument
1327	am **%%mtime(%d. %B %Y um %X)** vorgenommen wurde. Sowohl die Quelldatei
1328	als auch die erzeugte Datei befinden sich im Verzeichnis **%%infile(%D)**.
1329
1330-----------------------------------------------------------------------
1331
1332== %%date ==[Makro-date]
1333
1334Das ``%%date`` Makro wird zum aktuellen Datum und der aktuellen Uhrzeit expandiert. 
1335Es ist sehr nόtzlich um im Kopf- oder Fuίbereich das Datum wiederzugeben, an dem das Dokument erstellt wurde. 
1336Um den Zeitpunkt der letzten Δnderung des Quelldokuments wiederzugeben, benutzen sie bitte das [""%%mtime"" Makro #Makro-mtime].
1337
1338Das ""%%date""-Makro akzeptiert etliche Formatierungsanweisungen. Die komplette Liste kann auf der [Python Webseite http://www.python.org/doc/current/lib/module-time.html] abgerufen werden. Die gebrδuchlichsten Anweisungen sind nachfolgend aufgefόhrt:
1339
1340 || Anweisung | Beschreibung |
1341  |  %a  | Name des Wochentags (Kurzform), gemδί der aktuellen Lokale.
1342  |  %A  | Name des Wochentags (Langform), gemδί der aktuellen Lokale.
1343  |  %b  | Name des Monats (Kurzform), gemδί der aktuellen Lokale.
1344  |  %B  | Name des Monats (Langform), gemδί der aktuellen Lokale.
1345  |  %c  | Reprδsentation von Datum und Uhrzeit gemδί der aktuellen Lokale.
1346  |  %d  | Tag des Monats angegeben als Dezimalzahl [01,31].
1347  |  %H  | Stunde, angegeben als Dezimalzahl (24-Stunden Anzeige)  [00,23].
1348  |  %I  | Stunde, angegeben als Dezimalzahl (12-Stunden Anzeige)  [01,12].
1349  |  %m  | Monat angegeben als Dezimalzahl [01,12].
1350  |  %M  | Minute angegeben als Dezimalzahl [00,59].
1351  |  %p  | Das Δquivalent zu AM bzw. PM, gemδί der aktuellen Lokale.
1352  |  %S  | Sekunde angegeben als Dezimalzahl [00,61].  (1)
1353  |  %x  | Reprδsentation des Datums gemδί der aktuellen Lokale.
1354  |  %X  | Reprδsentation der Uhrzeit gemδί der aktuellen Lokale.
1355  |  %y  | Jahresangabe als Dezimalzahl (zweistellig, ohne Angabe des Jahrhunderts).
1356  |  %Y  | Jahresangabe als Dezimalzahl (vierstellig, einschlieίlich Angabe des Jahrhunderts).
1357  |  %%  | Das "%"-Zeichen selbst.
1358
1359Beispiele:
1360
1361 || Makro                            |  -->  | Resultate fόr den Zeitpunkt %%date(%d. %B %Y um %H:%M) |
1362  | ""%%date(Konvertiert am: %c)""   |  -->  | %%date(Konvertiert am: %c)
1363  | ""%%date(%d. %B %Y)""             |  -->  | %%date(%d. %B %Y)
1364  | ""%%date(%I:%M %p)""             |  -->  | %%date(%I:%M %p)
1365  | ""%%date(Dieser Wochentag ist ein %A im Monat %B.)"" |  -->  | %%date(Dieser Wochentag ist ein %A im Monat %B.)
1366
1367-----------------------------------------------------------------------
1368
1369== %%mtime ==[Makro-mtime]
1370
1371Das ``%%mtime`` Makro wird zum Zeitpunkt der letzten Δnderung des Quelldokuments expandiert. Dieses Makro ist hilfreich um anzugeben, wann die Datei das letzte Mal geδndert wurde. Dieses Makro ist eine "Schwester" des [""%%date""-Makros #Makro-date] und kann daher mit genau denselben Formatierungsanweisungen wie dieses aufgerufen werden.
1372
1373Hier ein Beispiel: das Quelldokument fόr dieses Benutzerhandbuch wurde zuletzt geδndert am **%%mtime(%c)**. Diese Datumsangabe wurde mittels des Makros ``%%mtime(%c)`` erzeugt.
1374
1375-----------------------------------------------------------------------
1376
1377== %%infile ==[Makro-infile]
1378
1379Das ``%%infile`` Makro wird expandiert zur Angabe des Speicherorts der Quelldatei im Dateisystem.
1380Es ist sehr nόtzlich, um auf HTML-Seiten Verknόpfungen der Art "//siehe die Quelle dieser Datei//" zu erzeugen. Wenn sie solche Verknόpfungen erzeugen, kφnnen sie damit Anfδnger unterstόtzen und ihnen Hilfestellung leisten, da diese dann ihren Quellcode als Vorlage fόr ihre eigene Seite verwenden kφnnen.
1381
1382Dieses Makro akzeptiert die folgenden Formatierungsanweisungen:
1383
1384 || %<Zeichen> | Beschreibung | Ausgabe fόr den Quelltext dieses Benutzerhandbuchs |
1385 |    %f       | Dateiname                           | %%infile(%f)
1386 |    %F       | Dateiname (ohne Erweiterung)        | %%infile(%F)
1387 |    %e       | Dateinamenerweiterung               | %%infile(%e)
1388 |    %p       | Absoluter Dateipfad                 | %%infile(%p)
1389 |    %d       | Pfad der Datei (nur Verzeichnisse)  | %%infile(%d)
1390 |    %D       | Pfad der Datei (nur das Elternverzeichnis) | %%infile(%D)
1391 |    %%       | Das "%"-Zeichen selbst              | %%infile(%%)
1392
1393Beispiele:
1394
1395 || Quelltext                                                   |  -->  | Wird expandiert nach  |
1396 | Das Elternverzeichnis dieses Handbuchs ist ""%%infile(%D)"". |  -->  | Das Elternverzeichnis dieses Handbuchs ist %%infile(%D). |
1397 | Ich benutzte die Dateinamenerweiterung ""%%infile(%e)"".     |  -->  | Ich benutzte die Dateinamenerweiterung %%infile(%e). |
1398 | ""[Siehe Quelldatei %%infile]""                 |  -->  | [Siehe Quelldatei %%infile]
1399 | Nach XHTML konvertiert trage ich den Namen ""%%infile(%F)"".xhtml |  -->  | Nach XHTML konvertiert trage ich den Namen %%infile(%F).xhtml
1400
1401Hinweis: Dieses Makro wird zur Zeichenkette "-" expandiert, falls von der Standardeingabe (STDIN) eingelesen wird.
1402
1403-----------------------------------------------------------------------
1404
1405== %%outfile ==[Makro-outfile]
1406
1407Das ``%%infile`` Makro wird expandiert zur Angabe des Speicherorts der Zieldatei im Dateisystem.
1408Es ist sehr nόtzlich, um den Dateinamen innerhalb des Kopf- oder Textbereichs des Dokuments wiederzugeben.
1409Dieses Makro ist eine "Schwester" des [""%%infile""-Makros #Makro-infile] und kann daher mit genau denselben Formatierungsanweisungen wie dieses aufgerufen werden.
1410
1411Beispiele:
1412
1413 || Quelltext                                |  -->  | Wird expandiert nach  |
1414 | Sie lesen gerade die Datei ""%%outfile"". |  -->  | Sie lesen gerade die Datei %%outfile.
1415 | txt2tags -t ""%%outfile(%e)"" -i ""%%infile"" -o ""%%outfile"" |  -->  | txt2tags -t %%outfile(%e) -i %%infile -o %%outfile
1416
1417Hinweis: Dieses Makro wird zur Zeichenkette "-" expandiert, falls auf die Standardausgabe (STDOUT) ausgegeben wird.
1418
1419-----------------------------------------------------------------------
1420
1421== %%toc ==[Makro-toc]
1422
1423Das ``%%toc`` Makro wird zu einem Inhaltsverzeichnis fόr das Dokument expandiert. 
1424Es ist sehr nόtzlich, um die genaue Stelle anzugeben, an der das Inhaltsverzeichnis wiedergegeben werden soll.
1425Sie kφnnen dieses Makro auch mehrmals innerhalb eines Dokuments nutzen und dabei zum Beispiel das Inhaltsverzeichnis ein zweites Mal am Ende des Dokuments wiedergeben. Dieses Benutzerhandbuch nutzt das Makro ""%%toc"" um das Inhaltsverzeichnis wie gewόnscht zu positionieren.
1426
1427Im  Unterschied zu allen anderen Makros erwartet das ""%%toc""-Makro keine Formatierungsanweisungen und folgt auch sonst anderen Regeln:
1428
1429- Es ist lediglich im BODYAREA des Dokuments gόltig
1430- Es muss alleinstehend auf einer einzelnen Zeile verwendet werden (dabei sind vorangehende und sich anschlieίende Leerzeichen erlaubt)
1431- Es erlangt nur Wirksamkeit in Verbindung mit der Kommandozeilenoption --toc, wird diese nicht angeben, wird das Makro ignoriert
1432- Wird innerhalb des Dokuments das Makro %%toc angetroffen, wird die voreingestellte automatische Positionierung/Formatierung des Inhaltsverzeichnisses deaktiviert. 
1433
1434=======================================================================
1435
1436
1437
1438= Teil VII - Einstellungen beherrschen lernen =[Einstellungen]
1439
1440Einstellungen sind spezielle, im CONFAREA des Quelldokuments aufgefόhrte Konfigurationsanweisungen, welche den Umwandlungsprozess beeinflussen kφnnen. Die Angabe solcher Einstellungen ist nicht zwingend erforderlich. Der gewφhnliche Benutzer kann sehr gut auch ohne sie auskommen. Aber Achtung: ihr Gebrauch kann sόchtig machen, wenn man einmal angefangen hat, sie zu benutzen, kann man nicht mehr davon ablassen, dies immer wieder zu tun :)
1441
1442Zeilen, in denen Einstellungen definiert werden sind //spezielle Kommentarzeilen//, welche zusδtzlich durch ein vorangestelltes Ausrufezeichen ("!") ausgezeichnet sind, dadurch unterscheiden sie sich von herkφmmlichen Kommentarzeilen. Die Syntax einer Einstellungen selbst ist zugleich einfach und doch variabel, sie setzt sich zusammen aus einem Schlόsselwort und einem Wert, wobei beide durch einen Doppelpunkt voneinander getrennt werden (":").
1443
1444 || %! Schlόsselwort : Wert |
1445
1446Details der Syntax:
1447
1448- Das Ausrufezeichen muss dem Kommentarzeichen unmittelbar folgen ("%!"), zwischen den beiden Zeichen ist kein Leerzeichen erlaubt.
1449
1450- Die Leerzeichen vor und nach dem Schlόsselwort und dem Trennzeichen sind allesamt optional und kφnnen auch weggelassen werden.
1451
1452- Weder bei der Angabe des Schlόsselwortes noch bei Definition des dazugehφrigen Werts wird zwischen Groί- und Kleinschreibung unterschieden
1453
1454
1455Regeln:
1456
1457- Einstellungen erlangen nur innerhalb des CONFAREAs Gόltigkeit, werden sie dagegen im Textkφrper des Dokuments angetroffen, werden sie als gewφhnliche Kommentare angesehen.
1458
1459- Falls dasselbe Schlόsselwort mehr als einmal innerhalb des CONFAREAs auftaucht, so wird derjenige Wert benutzt, der als letztes angegeben wurde. Ausnahme: Eine Ausnahme stellen die Einstellungen 'options', 'preproc' und 'postproc' dar, diese sind kumulativ.
1460
1461- Enthδlt eine Zeile mit einer Einstellung ein ungόltiges Schlόsselwort, so wird die Zeile als gewφhnliche Kommentarzeile angesehen.
1462
1463- Derart definierten Einstellungen wird Vorrang gegenόber Angaben aus einer benutzerdefinierten Konfigurationsdatei eingerδumt, sie selbst kφnnen jedoch mittels Kommandozeilenoptionen auίer Kraft gesetzt werden.
1464
1465
1466-----------------------------------------------------------------------
1467
1468== %!Target ==[Einstellung-target]
1469
1470άber die Einstellung ``target`` kann das Zielformat fόr die Konvertierung des Dokuments voreingestellt werden:
1471
1472``` %!target: html
1473
1474Der Benutzer kann dann einfach den folgenden Befehl aufrufen:
1475
1476``` $ txt2tags Datei.t2t
1477
1478Dadurch wird die Konvertierung in das innerhalb des Dokuments spezifizierte Zielformat vorgenommen.
1479
1480Fόr die Einstellung ``target`` kann kein optionales Zielformat angegeben werden, dies wδre auch vφllig widersinnig, wie das folgende (ungόltige!) Beispiel unmittelbar aufzeigt ``%!target(tex): html``.
1481
1482-----------------------------------------------------------------------
1483
1484== %!Options ==[Einstellung-options]
1485
1486Bei jeder Konvertierung eines Dokuments eine lange Anweisung auf der Kommandozeile anzugeben ist stupide und zugleich anfδllig fόr Fehler. Die Einstellung ``Options`` erlaubt es dem Benutzer daher, alle fόr die Konvertierung genutzten Optionen zusammen mit dem Quelldokument abzuspeichern. Auf diese Art und Weise wird sichergestellt, dass das Dokument immer auf die gleiche Art und Weise, also immer mit denselben Optionen konvertiert wird.
1487
1488Sie schreiben dazu die Optionen (ohne Fehler in ihrer Syntax!) genau so, wie sie sie auch an der Kommandozeile angeben wόrden, lassen aber den "txt2tags" Programmaufruf am Beginn der Anweisung, den Schalter fόr die Angabe des Zielformats und den Dateinamen fόr die Quelldatei am Ende der Anweisung einfach weg.
1489
1490Ein Beispiel: sie haben bislang immer das folgende Kommando benutzt, um ihr Dokument umzuwandeln:
1491
1492``` $ txt2tags -t html --toc --toc-level 2 --enum-title Datei.t2t
1493
1494Wenn sie jetzt die folgenden Einstellungen innerhalb ihres Quelldokuments platzieren, kφnnen sie sich zukόnftig die Angabe all dieser Optionen auf der Kommandozeile sparen:
1495
1496```
1497%!target: html
1498%!options(html): --toc --toc-level 2 --enum-title
1499```
1500
1501Da die benφtigte Kommandozeilenanweisung jetzt nur noch "``txt2tags Datei.t2t``" lautet, brauchen sie jetzt zur Konvertierung den von ihnen bevorzugten Texteditor gar nicht mehr verlassen, sie kφnnen jetzt wδhrend der Bearbeitung des Quelltexts zwischendurch gelegentlich die Umwandlung anstoίen. In vi lautet die dafόr erforderliche Befehlsfolge:
1502
1503``` :!txt2tags %
1504
1505-----------------------------------------------------------------------
1506
1507== %!Encoding ==[Einstellung-encoding]
1508
1509Die Einstellung  "Encoding" wird bei der Verfassung von Texten in anderen Sprachen als in Englisch benφtigt oder immer dann, wenn Umlaute, Buchstaben mit Akzenten oder andere lδnderspezifische Detailfunktionen genutzt werden sollen. In diesem Fall muss fόr das Zieldokument der //Zeichensatz// angepasst werden (falls erlaubt).
1510
1511Die fόr die Einstellung "Encoding" gόltigen Werte tragen denselben Namen wie diejenigen Werte, die als Zeichensatz fόr ein HTML Dokument gόltig sind, wie etwa //iso-8859-1// oder //koi8-r//. Falls sie unschlόssig sind, welche Kodierung sie benutzen sollen, kann ihnen evtl. diese [vollstδndige (und lange!) Liste http://www.iana.org/assignments/character-sets] Hilfestellung bieten.
1512
1513LaTeX benutzt Aliasnamen fόr die Kodierung des Dokuments. Dies stellt jedoch fόr Benutzer von txt2tags kein Problem dar, da txt2tags die Namen intern umsetzt. Einige Beispiele:
1514
1515      || txt2tags/HTML   |  >  | LaTeX  |
1516       | windows-1250    | >>> | cp1250 |
1517       | windows-1252    | >>> | cp1252 |
1518       | ibm850          | >>> | cp850  |
1519       | ibm852          | >>> | cp852  |
1520       | iso-8859-1      | >>> | latin1 |
1521       | iso-8859-2      | >>> | latin2 |
1522       | koi8-r          | >>> | koi8-r |
1523
1524
1525Falls txt2tags den Wert fόr die Kodierung nicht kennt, wird er unverδndert weitergegeben, insofern kann der Benutzer auch selbstdefinierte Kodierungen angeben und nutzen.
1526
1527-----------------------------------------------------------------------
1528
1529== %!PreProc ==[Einstellung-preproc]
1530
1531Bei den PreProc-Einstellungen handelt es sich um einen Eingabefilter, der auf das Quelldokument angewandt wird. Es handelt sich dabei um einen Such- und Ersetzungsvorgang, der durchgefόhrt wird, direkt nachdem die Zeile von der Quelldatei eingelesen wurde, noch bevor die Datei auf jegliche txt2tags-spezifische Auszeichnungen untersucht wurde.
1532
1533PreProc-Einstellungen sind nόtzlich, um Abkόrzungen fόr immer wiederkehrend genutzten Text zu definieren, wie etwa:
1534
1535```
1536%!preproc HPM                "Hans-Peter Mόller"
1537%!preproc ERSCHEINUNGS_DATUM "12. August 2005"
1538%!preproc PάNKTCHEN          "[Bilder/winzig/blauer_punkt.png]"
1539```
1540
1541Der Benutzer kann dann eine Textzeile der folgenden Art und Weise schreiben:
1542
1543``` Hallo, meine Name ist HPM. Heute ist der ERSCHEINUNGS_DATUM.
1544
1545Und txt2tags wird diese Linie so "zu Gesicht bekommen":
1546
1547``` Hallo, meine Name ist Hans-Peter Mόller. Heute ist der 12. August 2005.
1548
1549Der PreProc-Filter agiert dabei, nachdem der Autor das Dokument verfasst hat, aber noch bevor die eigentliche Konvertierung von txt2tags stattfindet. So gesehen ist es eine erste Konvertierung noch bevor die "richtige" Konvertierung stattfindet. Das Verhalten entspricht dabei demjenigen eines externen Sed- oder Perl-Filter, aufgerufen auf folgende Art und Weise:
1550
1551``` $ cat Datei.t2t | preproc-script.sh | txt2tags -
1552
1553Das von der txt2tags-Kernkomponente durchgefόhrte Parsen des Dokuments beginnt erst, nachdem alle mittels PreProc-Einstellungen definierten Ersetzungsvorgδnge durchgefόhrt wurden.
1554
1555-----------------------------------------------------------------------
1556
1557== %!PostProc ==[Einstellung-postproc]
1558
1559Bei den PostProc-Einstellungen handelt es sich um einen Ausgabefilter, der auf das bereits konvertierte Dokument angewandt wird. Es handelt sich dabei um einen Such- und Ersetzungsvorgang, der durchgefόhrt wird, nachdem txt2tags den Text auf spezifische Auszeichnungen hin untersucht und deren Verarbeitung abgeschlossen hat.
1560
1561PreProc-Einstellungen sind nόtzlich, um kleinere Verbesserungen oder Korrekturen am erzeugten Dokument vorzunehmen, etwa indem erzeugte Auszeichnungen geδndert oder ergδnzt werden oder indem zusδtzlicher Text hinzugefόgt wird. Einige kleine Beispiele:
1562
1563```
1564%!postproc(html): '<BODY.*?>' '<BODY BGCOLOR="green">'
1565%!postproc(tex) : "\\newpage" ""
1566```
1567
1568Wδhrend όber die Filter-Einstellungen in der ersten Zeile die Hintergrundfarbe eines  HTML-Dokuments geδndert wird, dient der zweite Filter dazu, Seitenumbrόche innerhalb eines LaTeX-Dokuments zu entfernen.
1569
1570PostProc-Filter arbeiten dabei analog zu externen Sed- oder Perl-Filter, aufgerufen auf folgende Art und Weise:
1571
1572
1573``` $ txt2tags -t html -o- Datei.t2t | postproc-script.sh > Datei.html
1574
1575Bevor Pre- und PostProc-Filter eingefόhrt wurden, war es όblich, kleine Skripte anzuwenden, um die Resultate der txt2tags-Konvertierung individuell anzupassen. Diese Skripte waren in der Tat eine Aneinanderreihung von vielen einzelnen sed- (oder sed-δhnlicher) Kommandos, um Aktionen der Art "Ersetze dies mit jenem" durchzufόhren. Jetzt kφnnen all diese Zeichenketten zur Textersetzung zusammen mit dem Text des Dokuments abgespeichert werden. Als zusδtzliches Plus kφnnen zur Mustersuche innerhalb der Filter Regulδre Ausdrόcke verwendet werden, da Python die hierfόr erforderliche Funktionalitδt zur Verfόgung stellt.
1576
1577-----------------------------------------------------------------------
1578
1579== %!Style ==[Einstellung-style]
1580
1581- Nόtzlich bei der Konvertierung in die Zielformate HTML oder XHTML, der jeweiligen Ausgabedatei wird dadurch eine CSS-Datei zur Definiton des Dokumentenstils zugeordnet
1582
1583- Nόtzlich auch bei der Konvertierung in das Zielformat LaTeX, bestimmt in diesem Fall ein Paket, welches mittels des ``\usepackage``-Kommandos geladen wird
1584
1585- Derselbe Effekt kann auch όber die Kommandozeilenoption ``--style`` erzielt werden
1586
1587- Die --style Option hat hφhere Prioritδt als %!style. Werden beide mit sich widersprechenden Optionen eingesetzt, erhδlt --style den Vorrang
1588
1589
1590-----------------------------------------------------------------------
1591
1592== Einstellungen ausschlieίlich fόr ein spezifisches Zielformat ==[Einstellung-specific]
1593
1594Alle Einstellungen (Ausnahme: %!target) kφnnen so definiert werden, dass sie nur bei der Konvertierung in ein spezifisches Zielformat Anwendung finden. Hierzu dient die Syntax ``%!Schlόsselformat(Zielformat): Wert``. Damit kann der Benutzer fόr unterschiedliche Zielformate unterschiedliche Einstellungen vornehmen.
1595
1596Als besonders nόtzlich erweist sich diese Art der Auszeichnung bei der Nutzung von Pre- und Postproc-Filtern. Gleichwohl kφnnen auch alle anderen Einstellungen zielformatspezifisch definiert werden. Derart kφnnen zum Beispiel unterschiedliche Dokumentstile fόr HTML und LaTeX-Dokumente definiert werden:
1597
1598```
1599%!style(html): fancy.css
1600%!style(tex) : amssymb
1601```
1602
1603Zielformatspezifische Einstellungen sind sehr nόtzlich, um das zu konvertierende Dokument individuell anzupassen:
1604
1605```
1606%!target: sgml
1607%!options(sgml): --toc
1608%!options(html): --style foo.css
1609%!options(txt ): --toc-only --toc-level 2
1610```
1611
1612In diesem Beispiel wurde SGML als Ausgabeformat voreingestellt, das erzeugte SGML-Dokument enthδlt dabei ein Inhaltsverzeichnis. Falls der Benutzer den Befehl ``txt2tags -t html Datei.t2t`` absetzt, finden lediglich die auf der dritten Zeile fόr das HTML-Zielformat definierten Einstellungen Anwendung, insofern wird die bei der Konvertierung erzeugte HTML-Datei mit der Datei "foo.css" assoziiert sein und kein Inhaltsverzeichnis besitzen.
1613
1614-----------------------------------------------------------------------
1615
1616== Details fόr PreProc and PostProc Filter ==[Filter-Details]
1617
1618- Filter bieten die Mφglichkeit des "Suchens und Ersetzen" innerhalb der Datei (analog zum Programm sed)
1619
1620- Filter folgen nicht dem Schema, dass (beim Auftreten mehrere gleichartiger Einstellungen) die zuletzt gefundene Einstellung genutzt wird, sondern sie kφnnen kumulativ angewendet werden. Folglich ist die Anzahl der Filter unbegrenzt hoch, sie kφnnen so viele Filter definieren, wie von ihnen benφtigt werden. Die einzelnen Filter werden dabei genau in der Reihenfolge angewandt, in der sie angegeben wurden.
1621
1622- Im Unterschied zu den anderen Einstellungen kφnnen daher sowohl Filter, die spezifisch fόr ein Zielformat definiert wurden als auch generische, fόr alle Zielformate definierte Filter bei einem Dokument Anwendung finden. Demonstriert wird dies durch das folgende Beispiel: bei der Konvertierung zu einem HTML-Dokument werden beide nachfolgend aufgefόhrten Filter Anwendung finden:
1623```
1624%!postproc      :   dieses   jenes
1625%!postproc(html):   dieses   anderes
1626```
1627
1628- Ein Filter muss genau ZWEI Argumente erhalten
1629
1630- Spezielle Escape-Sequenzen wie ``\n`` (Zeilenumbruch) und ``\t`` (Tabulatorzeichen) werden interpretiert
1631
1632- Um Textpassagen zu lφschen, ersetzen sie diese einfach mit einer leeren Zeichenkette
1633``` %!postproc: "unerwόnschte Zeichenkette" ""
1634
1635- Um Probleme zu vermeiden sollten sie immer dann, wenn sie PostProc-Filter nutzen um Tags auszutauschen, explizit ein Zielformat angeben: ``%!PostProc(Zielformat): <dieses> <jenes>``
1636
1637- PREproc wird angewandt direkt nachdem die Zeile gelesen wurde, und POSTproc kommt zum Tagen, nachdem alle Elemente geparst wurden. Dies entspricht der folgenden Befehlszeile (UUOC vorausgehend):
1638``` $ cat Datei.t2t | preproc.sh | txt2tags | postproc.sh
1639
1640- Der erste Teil des Filters, όber welchen das Ziel der Suche angegeben wird, wird nicht als gewφhnliche Zeichenkette eingelesen, sondern als Muster fόr einen regulδren Ausdruck angesehen. Machen sie sich keine Sorgen, wenn sie nicht wissen was regulδre Ausdrucke sind, sie mόssen dies nicht unbedingt wissen. Beachten sie aber in jedem Fall, dass sie, wenn sie bestimmte spezielle Zeichen innerhalb eines regulδren Ausdrucks einsetzen wollen, sie diese "maskieren" mόssen um sie nutzen zu kφnnen. Um ein Zeichen zu maskieren, mόssen sie diesem einen umgekehrten Schrδgstrich "\" voranstellen. Hier folgt eine Aufzδhlungen all derjenigen Zeichen, fόr die solch eine Maskierung vorgenommen werden muss:
1641``` \*  \+  \.  \^  \$  \?  \(  \)  \{  \[  \|  \\
1642
1643- Pythons regulδre Ausdrόcke sind verfόgbar! Diese sind δhnlich zu denen, die in Perl Verwendung finden (PCRE). Beispiel: Verwandle bei einer HTML-Konvertierung alle φffnenden und schlieίenden "B" Auszeichnungen zu "STRONG"-Marken:
1644``` %!postproc(html):   '(</?)B>'   '\1STRONG>'
1645
1646- Die Argumente fόr den Filter kφnnen auf dreierlei Art und Weise όbergeben werden:
1647    + Als einzelnes Word, wie etwa FOO (keine Leerzeichen)
1648    + Als von doppelten Anfόhrungszeichen umschlossene Zeichenkette, wie etwa "FOO"
1649    + Als von einfachen Anfόhrungszeichen umschlossene Zeichenkette, wie etwa 'FOO'
1650
1651- Falls Ihr Muster doppelte Anfόhrungszeichen enthδlt, schόtzen sie diese mit einfachen Anfόhrungszeichen (und umgekehrt). Einige korrekte Beispiele:
1652```
1653%!postproc:   MUSTER    ERSETZUNG
1654%!postproc:  "MUSTER"  "ERSETZUNG"
1655%!postproc:  'MUSTER'  'ERSETZUNG'
1656%!postproc:   MUSTER   "ERSETZUNG"
1657%!postproc:  "MUSTER"  'ERSETZUNG'
1658```
1659
1660
1661=======================================================================
1662
1663
1664
1665= Teil VIII - Schwarze Magie =[Schwarze-Magie]
1666
1667Diese Kapitel kann Neulingen wirklich nicht empfohlen werden. Hier wird aufgezeigt, wie man mit txt2tags-Filtern unter Einsatz von komplexen Mustern und regulδren Ausdrόcken seltsam anmutende Dinge realisiert.
1668
1669	**ACHTUNG!** Die im folgenden beschriebenen Praktiken werden NICHT empfohlen und kφnnen sogar Schδden hervorrufen. Im Extremfall kann es wδhrend des Konvertierungsprozesses sogar zum Verlust von Text aus dem Quelldokument kommen, welcher dann im Zieldokument nicht mehr auftaucht. Nutzen sie diese Dinge wirklich nur wenn sie sie unbedingt benφtigen und nur dann, wenn sie wirklich wissen, was sie tun.
1670
1671 || Ein Filter ist zwar ein sehr mδchtiges, zugleich aber auch gefδhrliches Werkzeug! |
1672
1673 || Bei falsch definierten Filtern kφnnen sich unerwartete Resultate einstellen! |
1674
1675Behalten Sie das bitte immer im Gedδchtnis.
1676
1677-----------------------------------------------------------------------
1678
1679== Einfόgen von mehreren Zeilen mittels %!PostProc (wie etwa von CSS-Regeln) ==[Nachbearbeitung-mehrzeilig]
1680
1681Soll in einem Filter das Muster zur Ersetzung mehrere Zeilen umfassen, so kann dies durch die Verwendung des Zeichen ``\n``, welches einen Zeilenumbruch darstellt, realisiert wird.
1682
1683Dies kann zum Beispiel nόtzlich sein, wenn nur einige wenige CSS_Regeln in ein  HTML-Zieldokument eingefόgt werden sollen, ohne dafόr eine eigene Datei anzulegen:
1684
1685```
1686%!postproc: <HEAD>      '<HEAD>\n<STYLE TYPE="text/css">\n</STYLE>'
1687%!postproc: (</STYLE>)  'body     { margin:3em               ;} \n\1'
1688%!postproc: (</STYLE>)  'a        { text-decoration:none     ;} \n\1'
1689%!postproc: (</STYLE>)  'pre,code { background-color:#ffffcc ;} \n\1'
1690%!postproc: (</STYLE>)  'th       { background-color:yellow  ;} \n\1'
1691```
1692
1693Alle Filter sind dabei an den ersten Filter gebunden und ersetzen die Zeichenkette, welche dieser eingefόgt hat. Auf diese Art und Weise wird die Zeichenkette "<HEAD>" verwandelt in:
1694
1695```
1696<HEAD>
1697<STYLE TYPE="text/css">
1698body     { margin:3em               ;}
1699a        { text-decoration:none     ;}
1700pre,code { background-color:#ffffcc ;}
1701th       { background-color:yellow  ;}
1702</STYLE>
1703```
1704
1705-----------------------------------------------------------------------
1706
1707== Nutzung von %!PreProc um Inhalte spezifisch nur in einem bestimmten Ausgabeformat zu erzeugen ==[Zielformat-spezifische-Inhalte]
1708
1709Manchmal besteht die Notwendigkeit, eine Textpassage immer nur dann einzufόgen, wenn in ein spezifisches Zielformat konvertiert wird und sie andernfalls wegzulassen. Dieses seltsam anmutende Verhalten kann όber die Nutzung von PreProc mittels eines Tricks implementiert werden.
1710
1711Der Ausgangspunkt besteht dabei darin, den zusδtzlichen Text im Quelldokument zunδchst als Kommentar auszuzeichnen. Die Auszeichnung erfolgt dabei aber in einer Weise, dass ein zielformatspezifischer Filter diese Zeilen wieder in "normalen" Text zurόck umwandelt.
1712
1713Falls sie zum Beispiel ein zusδtzlichen Abschnitt eingeben mφchten, der allerdings nur in einem HTML-Zieldokument erscheint, geben sie diesen Text als "speziellen" Kommentar ein, und zwar auf folgende Art und Weise:
1714
1715```
1716%html% Diese HTML-Seite wurde mit [txt2tags http://txt2tags.org] erstellt.
1717%html% Die dazugehφrige Quelltextdatei finden sie [here source.t2t].
1718```
1719
1720Da diese beiden Zeilen mit dem Zeichen ``%`` beginnen, handelt es sich um Kommentarzeilen, die normalerweise ignoriert werden. Nun fόgen sie der Quelldatei jedoch noch einen speziellen Filter hinzu:
1721
1722``` %preproc(html): '^%html% ' ''
1723
1724Dieser erkennt und entfernt die Kommentarauszeichnung am Zeilenanfang, dadurch werden Zeilen quasi "aktiviert", es handelt sich um keine Kommentarzeilen mehr. Da es sich um einen zielformatspezifischen Filter handelt, wird dieser nur bei der Konvertierung in ein HTML-Dokument angewandt.
1725
1726-----------------------------------------------------------------------
1727
1728== Δndern von txt2tags-Auszeichnungen mittels %!PreProc ==[Erzeugen-Auszeichnungen]
1729
1730Falls sie ein Profi im Umgang mit regulδren Ausdrόcken sind, kφnnen sie sogar die Syntax fόr das Quelldokument anpassen und dabei die vordefinierten Auszeichnungen dergestalt modifizieren, dass sie diese in einer fόr sie mφglicherweise einfacher erscheinenden Weise einzetzen kφnnen.
1731
1732Hier ein Beispiel: das Tabulatorzeichen am Zeilenanfang wird von txt2tags als eine Auszeichnung fόr ein Zitat interpretiert. Falls der Benutzer dieses Verhalten nicht mag oder sein Texteditor nicht gut mit Tabulatorzeichen klarkommt, kann er die Auszeichnung fόr ein Zitat umdefinieren. Nehmen wir an, er mφchte Zitate zukόnftig durch die Zeichenkette ">>> " am Zeilenanfang auszeichnen, so kann er dies όber einen einfachen Filter erreichen:
1733
1734``` %!PreProc: '>>> ' '\t'
1735
1736Im Quelldokument erscheinen jetzt Zitatpassagen in folgender Form: 
1737
1738```
1739>>> Dies ist ein Zitat.
1740>>> Der Benutzer hat hierfόr diese eigenartigen Auszeichnung definiert.
1741>>> Diese Auszeichnung wird jedoch von Preproc-Filtern zu Tabulatorzeichen zurόckkonvertiert.
1742```
1743
1744Bevor das Parsen des Text beginnt, wird die seltsame ">>> "-Auszeichnung zu einem Tabulatorzeichen konvertiert und txt2tags erkennt diese dann als Auszeichnungen fόr eine Zitatpassage.
1745
1746	**ACHTUNG!** άber den extremen Einsatz von PreProc Regeln kann letztlich die gesamte Syntax der Auszeichnungszeichen verδndert werden, wobei sich durchaus auch Konflikte zwischen einzelnen Auszeichnungen ergeben kφnnen Seien sie daher wirklich sehr vorsichtig, wenn sie so etwas implementieren mφchten.
1747
1748=======================================================================
1749
1750
1751
1752= Teil IX - Die Chronik von txt2tags =[Chronik]
1753
1754Im Juli 2001 erschien die erste φffentliche Version von txt2tags, sie trug die Versionsnummer 0.1. Aber die Ursprόnge liegen mehr als ein Jahr zurόck ...
1755
1756Dieses Kapitel gibt einen άberblick όber die Entwicklung des Werkzeugs, angefangen von ganz vorne bis hin zur aktuellen Version.
1757
1758== Januar 1999: Vorgeschichte ==[Chronik-1999-1]
1759
1760Vom Autor:
1761
1762	//"Meine allerersten Versuche, ein Werkzeug fόr die Textkonvertierung zu erstellen begannen bereits 1999, in Form eines sehr einfachen und wenig leistungsfδhigen Bourne Shell Skripts, das speziell ausgezeichneten Text in eine HTML-Seite umwandelt. Ja, ein weiteres txt2html-Werkzeug. Irgendwann muss doch irgendjemand sowas schon mal gemacht haben ... In aller Kόrze, das Werkzeug erkannte nur einfache Auszeichnungen wie ``*bold*``, ``/italic/``, ``_under_``, und maskierte die klassischen ``< & >`` Spezialzeichen von HTML. Nicht besonders eindrucksvoll, aber hey! ich war damals jung ;)"//
1763
1764
1765== Juni 1999: Immer noch Vorgeschichte ==[Chronik-1999-2]
1766
1767% scripts/antigos/txt2sgml-bash/txt2sgml  25/06/1999
1768
1769Der Autor mφchte noch etwas mehr sagen:
1770
1771	//"Einige Monate vergingen, und eine groίe Hyphe um SGML hatte bei der Firma, fόr die ich arbeitete (Conectiva) um sich gegriffen. Daher wurde txt2html in ein txt2sgml-Skript umgewandelt. Zu dieser Zeit habe ich ernsthaft versucht alles όber SED* zu lernen, insofern war txt2sgml ein 110-zeiliges Bourne Shell-Skript mit sehr viel SED-Code integriert."//
1772	
1773	* **SED:** UNIX Stream EDitor - ein automatisches Textbearbeitungswerkzeug
1774
1775Diese verbesserte SGML-Version unterstόtzte bereits mehr Strukturen, wie etwa Aufzδhlungen oder die Auszeichnung als Originaltext. Anhand  der folgenden Beispieldatei kφnnen sie den Ursprung der txt2tags-Aufzeichnungen erkennen:
1776
1777```
1778* Das war eine fettgedruckte Zeile (FETT zeilenorientiert angewandt? Nun gut ...)
1779
1780  --
1781- Nicht nummerierte Aufzδhlungen waren den Aufzδhlungen in txt2tags bereits sehr δhnlich
1782- aber man benutzte -- um eine Liste anzufangen oder abzuschlieίen
1783  --
1784
1785=----------------------
1786Originaltext wurde durch das Muster =-- abgetrennt.
1787Die zusδtzlichen Striche ------- waren mehr kosmetischer Natur.
1788=----------------------
1789```
1790
1791Noch nicht sehr eindrucksvoll, aber der groίe Schritt kommt jetzt ...
1792
1793== August 2000: Jetzt keine Vorgeschichte mehr ==[Chronik-2000]
1794
1795% verde666.org/sed/programas/txt2*/txt2sgml.sed  20000816 - 20010514
1796
1797Wieder spricht der Autor:
1798
1799	//"Ein Jahr verging, und zu diesem Zeitpunkt war ich wirklich in SED verliebt. Das txt2sgml.sh Shellskript wurde umgeschrieben und wurde dabei zu einem reinem, 350 Zeilen umfassenden SED-Skript. Etliche praktische Funktionalitδten wurden hinzugefόgt wie etwa Unterabschnitte, Erkennung von URLs und Aufzδhlungen innerhalb von Aufzδhlungen. Ich habe dieses Skript viel benutzt und verbessert, fast ein ganzes Jahr lang."//
1800
1801Eine Beispieldatei txt2sgml.sed:
1802```
1803* Sieh an, da sind diese drei ersten magischen Zeilen
1804* Der Titel des Dokuments / Autor / Datum
1805* Aber damals benφtigten sie diese Sternchen am Anfang
1806
1807HAUPTάBERSCHRIFT
1808
1809Kapitelangaben wurden όber Zeilen komplett in Groίbuchstaben gemacht.
1810Abschnitte wurden durch vorangestellte Leerzeichen gekennzeichnet.
1811Jedes einzelne Leerzeichen reprδsentierte eine Gliederungsebene fόr das Kapitel.
1812Auszeichnung fόr Schriftstile: *fett*, **betont**, "kursiv" und `Schreibmaschine`.
1813
1814- Aufzδhlung
1815  + Aufzδhlung eine Ebene tiefer
1816    = und eine Aufzδhlung noch eine Ebene tiefer
1817      (ausgezeichnet όber das '=', nicht durch Einrόckung)
1818
1819
1820Zwei Leerzeilen schlossen eine Aufzδhlung ab. Verknόpfungen wie www.beispiel.de
1821und E-Mail-Adressen wurden όber regulδre Ausdrόcke automagisch erkannt.
1822Und es gab eine seltsame Auszeichnung fόr Bilder:
1823%%image: path/to/image.jpg
1824```
1825
1826== Mai 2001: Umsetzung in Python und die Idee mehrerer Zielformate ==[Chronik-2001-1]
1827
1828Raten sie mal wer spricht:
1829
1830	//"Ich habe angefangen, mein [Buch όber Regulδre Ausdrόcke http://guia-er.sf.net] zu schreiben und verfasste den Text in einem Format, das fόr die Konvertierung mit  txt2sgml.sed bestimmt war. Auf diese Art und Weise konnte ich es nach SGML konvertieren (und anschlieίend nach HTML, wofόr ich das Programm sgml2html benutzte) und dann sofort im Browser όberprόft, wie das Buch denn so aussah. Da 'sofort' und 'sgml2html' jedoch nicht so recht zusammenpassten, habe ich das SED-Skript in ein Werkzeug namens txt2html.sed umgewandelt, mit dem ich direkt HTML erzeugen konnte. [...] Der Verleger nutzte Adobe PageMaker Software um seine Bόcher zu formatieren und das stellte fόr einen Linux-Fan, wie ich es bin ein Problem dar. Glόcklicherweise habe ich festgestellt, dass PageMaker eine HTML-δhnliche Sprache fόr die Auszeichnung seiner Dokumente besitzt, insofern wandelte ich mein Skript sukzessive in ein Konvertierungswerkzeug namens txt2pagemaker.sed um. Letztendlich hatte ich dann drei δhnliche SED-Skripte um mein Dokument nach SGML, HTML und ins PageMaker-Format umzuwandeln. Und einige weitere Shellskripte waren fόr die Erzeugung des Inhaltsverzeichnisses und fόr die Nachbearbeitung des umgewandelten Texts zustδndig. Mitten wδhrend ich das Buch schrieb, kam mir die Idee, alle diese Hilfsmittel in einem einzigen Werkzeug zu vereinen, und ich wδhlte mir Python als Programmiersprache dafόr aus. TXT2TAGS war geboren."//
1831
1832== Juli 2001: 0.x Serie: Erstes φffentliches Erscheinen von txt2tags ==[Chronik-2001-2]
1833
1834% v0.1 26 Jul 2001
1835
1836Ja, er ists:
1837
1838	//"Die Herausgabe des gedruckten Buchs (31. Juli) und die Verφffentlichung der allerersten Version 0.1 von txt2tags  (26. Juli) lagen zeitlich sehr nahe beieinander, es handelte sich nur um Tage. Beide hingen sehr stark voneinander aber und wurden zusammen entwickelt. Neben SHML, HTML und PageMaker wurden noch weitere Zielformate fόr diese Version implementiert: MoinMoin, Magic Point und gewφhnlicher Text. Mehr als ein Jahr lang folgten weitere Versionen in der 0.x Series und das Programm begann zu wachsen: UNIX Man Page als neues Zielformat, das ""%%date""-Makro, Unterstόtzung von Tabellen, eine Webschnittstelle, intelligente Ausrichtung von Bildern sowie die Erzeugung eines Inhaltsverzeichnisses. In Version 0.2 wurde ein Shell-Skript als Umhόllung hinzugefόgt, mit welchem die Dateioperation durchgefόhrt und die Kommandozeilenoptionen verarbeitet wurden. Ich habe das so gemacht, da ich mich mit der Shell sehr gut auskannte, in Python aber vφllig unbedarft war. Es sollte bis zur Version 0.9 dauern, ehe txt2tags wieder zu 100% aus Python Code bestand."//
1839
1840== September 2002: 1.x Serie: Wachstum ==[Chronik-2002]
1841
1842Geben sie das Mikrophon jetzt nicht endlich ab?
1843
1844	//"Die Idee von txt2tags hat sich als gut erwiesen. Ich habe mich entschieden, die Sache ernst zu nehmen. Der nδchste Schritt bestand darin, das Programm weiterzuverbreiten und andere darόber zu informieren: Dokumentation! Die Webseite des Programm wurde gestartet, Mailing-Listen (Englisch und Portugiesisch) wurden eingerichtet und das Benutzerhandbuch wurde begonnen. Die Anzahl der Benutzer stieg und viele Anregungen kamen. Ja, ich denke es funktioniert. Hier die neuen Mφglichkeiten, die zur  1.x-Serie hinzugefόgt wurden: Graphische Schnittstelle (GUI), Kompatibilitδt zu Windows & Mac,  LaTeX als Zielformat, %!style, include Kommandos sowie die mδchtigen Pre- und Postproc-Filter zur Vor- und Nachbearbeitung des Dokuments."//
1845
1846== Juli 2004: 2.x Serie: Reifeprozess ==[Chronik-2004]
1847
1848Ok, ich gebe das Mikrofon weiter:
1849
1850	//"Wachstum ist schwierig und manchmal auch seltsam. Erinnern sie sich dass ich sagte, dass ich ein Python-Neuling war? Nun, ich wurde besser, aber es hatten sich viele alte Fehler angehδuft, insofern war ein grφίere άberarbeitung des Programmquelltexts unvermeidbar. Die neue Version war bei einigen Auszeichnungen nicht abwδrtskompatibel, weswegen ein Skript fόr das Upgrade δlterer Versionen erstellt wurde. Es dauerte eine ganze Weile, aber schlieίlich wurde Version 2.0 verφffentlicht. Diese brachte jede Menge neuer Funktionen, mit wie XHTML als Zielformat, HTML-Code der gemδί W3C-Standards validiert werden kann, i18n, und eine RC Datei. Ein Team von άbersetzern hat sich eingestellt und das Programm und auch die dazugehφrige Dokumentation wurden in viele Sprachen όbersetzt. Lout als Zielformat wurde hinzugefόgt, und es kamen neue Makros hinzu://
1851	//""%%mtime"", ""%%infile"", ""%%outfile"", and ""%%toc"".//
1852	//Wird fortgesetzt ..."//
1853
1854
1855========================================================================
1856
1857
1858
1859
1860The End.
1861%nopdf([Quelltext einsehen userguidede.t2t])
1862[../../img/t2tpowered.png]
1863