Wiki2tex.awk: Unterschied zwischen den Versionen

Aus C3D2
Wechseln zu: Navigation, Suche
K (hat Satzung/wiki2tex.awk nach Wiki2tex.awk verschoben)
(Kategorie Projekt added)
 
Zeile 1: Zeile 1:
 +
[[Kategorie:Projekt]]
 
Ich habe zum Umwandeln der Dokumente in pdf ein kleines Skript zusammengehackt, das (sehr einfache) Wiki-Syntax in LaTeX umwandelt. Aufruf z.B. mit
 
Ich habe zum Umwandeln der Dokumente in pdf ein kleines Skript zusammengehackt, das (sehr einfache) Wiki-Syntax in LaTeX umwandelt. Aufruf z.B. mit
 
  awk -f wiki2awk.tex -v doc="Satzung" Satzung.wiki
 
  awk -f wiki2awk.tex -v doc="Satzung" Satzung.wiki

Aktuelle Version vom 27. November 2006, 06:40 Uhr

Ich habe zum Umwandeln der Dokumente in pdf ein kleines Skript zusammengehackt, das (sehr einfache) Wiki-Syntax in LaTeX umwandelt. Aufruf z.B. mit

awk -f wiki2awk.tex -v doc="Satzung" Satzung.wiki

Es erwartet noch zwei weitere Dateien im aktuellen Verzeichnis: 'header.tex' und 'footer.tex'. Der Inhalt der Variable 'doc' wird bei header.tex in die Überschrift eingesetzt. Es ist weit davon entfernt davon, perfekt zu sein, z.B. wusste ich nicht, wie man pdflatex dazu bringt, UTF-8 im Quelltext zu unterstützen. Vielleicht kann's ja jemand verbessern.

BEGIN {
    if (doc == "") {
        print "Art des Dokuments mit '-v doc=Name' angeben."
        exit
    }
    while (getline < "header.tex") {
        gsub("##DOC##", doc)
        print
    }

    enumerate=0
    eenumerate=0
}

/.*/ {
    gsub("ä","\"a")
    gsub("ü","\"u")
    gsub("ö","\"o")
    gsub("Ä","\"A")
    gsub("Ü","\"U")
    gsub("Ö","\"O")
    gsub("ß","\"s")
    gsub("§","\\textsection")
    gsub("€","EUR")
}

/===.*===/ {
    gsub("^===","")
    gsub("===space:*$","")
    gsub(".*","\\paragraph{&}")
    print
    print "\n"
    next
}

/==.*==/ {
    gsub("^==","")
    gsub("==space:*$","")
    gsub(".*","\\section*{&}")
    print
    print "\n"
    next
}

/^*\*space:+.*/ {
    if (eenumerate == 0) {
        print "\\begin{itemize}"
        eenumerate=1
    }

    gsub("^*\*","") > 0
    gsub(".*","\\item &")
    print
    next
}

/^*space:+.*/ {
    if (eenumerate == 1) {
        print "\\end{itemize}"
        eenumerate = 0
    }

    if (enumerate == 0) {
        print "\\begin{itemize}"
        enumerate=1
    }

    gsub("^*","") > 0
    gsub(".*","\\item &")
    print
    next
}

/^space:*$/ {
    if (enumerate == 1) {
        print "\\end{itemize}"
    }

    if (eenumerate == 1) {
        print "\\end{itemize}"
    }

    print
    enumerate = 0
    eenumerate = 0
    next
}

//

END {
    print "\n\n"
    while (getline < "footer.tex") {
        print
    }
}

footer.tex

\begin{flushright}
Die Gr"undungsmitglieder,  Dresden, den 30. August 2005
\end{flushright}


\end{document}

header.tex

\documentclass[10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage{ngerman}
%\usepackage[utf-8]{babel}
\usepackage{geometry}
\geometry{verbose,a4paper,tmargin=20mm,bmargin=20mm,lmargin=20mm,rmargin=20mm}

%opening

\title{##DOC## Netzbiotop Dresden e.V.}

\begin{document}

\maketitle