Wiki2tex.awk: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(Kategorie Projekt added)
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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
Zeile 99: Zeile 100:
     }
     }
  }
  }
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

Aktuelle Version vom 27. November 2006, 04: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