Matuc

Aus ELVIS-Wiki
Zur Navigation springenZur Suche springen

Matuc ist ein Konverter von Markdown zu HTML, sowie ein Werkzeug zur Automatisierung von Arbeitsschritten bei der Bearbeitung von Lehrmaterialien. Es kann auch genutzt werden, um eigene Skripte oder andere Editor-Plugins zu entwerfen.

Installation / Download

Windows

Für Windows gibt es ein Installationspaket, welches Python, GladTeX und Pandoc automatisch mitliefert. Für die Benutzung von GladTeX muss aber auch eine LaTeX-Distribution instaliert sein. Am einfachsten ist es daher, zuvor MikTeX zu installieren.

Der aktuellste Installer kann hier herunter geladen werden. Des Weiteren können unter Probleme und neue Funktionen melden.

Die Installation sollte NICHT durchgeführt werden, wenn die Umgebungsvariable %PATH% Länger als 1024 Zeichen lang ist. Wenn Sie nicht wissen, was dies bedeutet, können Sie dies getrost ignorieren. Der PATH enthält Verzeichnisse, in denen automatisch nach ausführbaren Programmen gesucht wird. Wenn Sie viele Entwicklerwerkzeuge installiert haben, sollten Sie vorher unbedingt die Länge von %PATH% überprüfen, da diese Variable ansonsten durch die Installationsroutine beschädigt wird.

MikTeX - Installation von Paketen

Nach der Installation von MikTeX müssen noch einige LaTeX-Pakete manuell nachinstalliert werden. Die Installation der Pakete(Package) erfolgt über den MikTeX Package Manager. Starten Sie den MikTeX Package Manager als Administrator.

Die nachfolgenden Pakete sind zu installieren:

  • zhmetrics
  • preview
  • koma-script
  • amsmath

Für die Installation können Sie nach den Packagen suchen. Geben Sie den Eingabefeld Name den Namen des Pakets ein und klicken Sie anschließend auf Filtern. Anschließend müssen Sie das zu installierende Paket in der Auflistung auswählen und das Pluszeichen für die Installation wählen.

Andere Betriebssysteme

Die Installation unter anderen Betriebssystemen besteht aus mehreren Schritten. Sie kann aber, mit einigen Anpassungen, auch unter Windows durchgeführt werden.

Als erstes muss man alle Abhängigkeiten installieren: Pandoc (>= 1.16), python (Version >= 3.2), GladTeX (1) und LaTeX, falls GladTeX verwendet wird.

Als nächstes holt man den Quellcode mittels Git (github.com):

git clone https://github.com/TUD-INF-IAI-MCI/AGSBS-infrastructure.git

Nach dem Herunterladen wechselt man in das neue Verzeichnis und führt folgenden Befehl aus:

sudo python3 setup.py install

Generelle Funktionsweise

Matuc ist ein Kommandozeilenprogramm. Da es als "eierlegende Wollmilchsau" konzipiert ist, besitzt es Unterkommandos, damit man nicht von einer Fülle von Optionen erschlagen wird. Ruft man also Matuc auf, muss man dahinter angeben, welches Unterpgrogramm man möchte. Gibt man keines an, wird der Hilfebildschirm ausgegeben:

    matuc <command> <options>

    <command> determines which action to take. The syntax might vary between
    commands. Use matuc <command> -h for help.

    Available commands are:

    addpnum         - generate new page number, relative to its predecessors
    conf            - set, init or update a configuration
    conv            - convert a project
    fixpnums        - fix incorrect page numbering of a document
    imgdsc          - generate image description (snippets)
    iswithinlecture - test, whether a certain path is part of a project
    new             - create new project structure
    mk              - invoke "mistkerl", a quality assurance helper
    toc             - generate table of contents
    version         - output program version

Anlegen von Lehrmaterialien

Wer sich gern die korrekte Verzeichnisstruktur von Matuc generieren lassen möchte, der kann das Kommando new benutzen. Hilfebildschirm:

matuc new

Um z.B. ein Buch mit einem Vorwort, zwei Anhangkapitel, mit fünf Kapiteln und auf Englisch zu erstellen, führt man folgendes aus:

matuc new -l en -c 5 -a 2 -p "Neues Material"

Nun wird der Ordner "Neues Material angelegt. Die Struktur innerhalb des Ordner ist:

  • Neues Material
    • .lecture_meta_data.dcxml
    • inhalt.md
    • anh01
      • anh01.md
    • anh02
      • anh02.md
    • k01
      • k01.md
    • k02
      • k02.md
    • k03
      • k03.md
    • k04
      • k04.md
    • k05
      • k05.md
    • v01
      • v01.md

Konfiguration

Matuc soll sich möglichst viele Einstellungen abhängig von Lehrmaterial automatisch merken. Dazu gehört u.a.:

  • Bearbeiter
  • Arbeitsgruppe, Institution
  • Titel, Quelle des Lehrmaterials
  • Semester der Bearbeitung
  • Tiefe der Nummerierung im Inhaltsverzeichnis
  • ...

Dies wird in einer Datei namens ".lecturemetadata.dcxml" im obersten Verzeichnis des zu bearbeitenden Lehrmaterials abgelegt.

Anlegen einer Konfiguration

Initial legt man eine Konfiguration mittels des Kommandos

matuc conf init

im aktuellen Verzeichnis, am besten dem Stammverzeichnis des Materials (des obersten Verzeichnisses des Bearbeiteten Lehrmaterials) an.

Man sollte nun unbedingt die Werte für die Konfiguration anpassen, siehe nächster Abschnitt.

Anpassung der Konfiguration

Die Informationen der Konfiguration sind sehr wichtig, da sie in jedes konvertierte Dokument eingebettet werden und daher korrekt sein müssen. Außerdem ist das Setzen der Sprache sehr wichtig für den Bearbeitungsprozess und für den Bildschirmleser des Benutzers der fertigen Dokumente.

Man kann sich mit

matuc conf show

alle Optionen anzeigen lassen, die es gibt. Mit

matuc conf update

kann man dann eine Option neu setzen. Lässt man bei genanntem Befehl die Argumente weg, so wird ein Hilfebildschir ausgegeben.

Es folgt ein Beispiel zum Setzen des Quelldokuments:

matuc conf -s "Interne Vorlesungsunterlagen" update
Aufbau der Konfigurationsdatei

Im Allgemeinen ist es nicht erforderlich die Konfigurationsdatei manuell zu bearbeiten. Die Anpassung kann direkt über Matuc erfolgen (siehe Anpassung der Konfiguration). Trotzdem kann man die Konfiguration auch per Hand mit einem UTF-8-fähigen Editor bearbeiten.

Die Konfigurationsdatei beinhaltet Meta-Informationen über das Buch und Zusatzinformationen, die die Konvertierung beeinflussen. Das Format der Datei ist XML. Dabei wird das Dublincore Format verwendet. Zusätzlich nutzt das MAGSBS-Modul einen gleichnamigen Namensraum, um zusätzliche INformationen abzuspeichern.

Im Folgenden sind die Felder des DublinCore-Formats bzw. des MAGSBS-Moduls mit ihrer jeweiligen Verwendung aufgeführt und durch ein Beispiel erklärt.

  • Autor der Quelldokumente: <MAGSBS:sourceAuthor>Max Mustermann, Karla Korrekturleserin</MAGSBS:sourceAuthor>
  • Bearbeiter des barrierefreien Materials: <dc:creator>Max Muster</dc:creator>
  • Herausgeber: <dc:publisher>TU Dresden</dc:publisher>
  • Arbeitsgruppe der Bearbeitung (Institution): <dc:contributor>AGSBS</dc:contributor>
  • Quelle des Lehrmaterials: <dc:source>Vorlesungsunterlagen des Lehrstuhls für Mensch-Computer Interaktion</dc:source>
  • Titel des Lehrmaterials/Buches: <dc:title>Titel des Buches/Vorlesung</dc:title>
  • Semester der Bearbeitung <dc:date>SS2016</dc:date>
    • An dieser Stelle sollten nur die Bezeichner SS und WS und die zwei- bzw. vierstellige Jahreszahl verwand werden
  • Tiefe des Inhaltsverzeichnisses: regelt, bis zu welcher Ebene Überschriften ins Inhaltsverzeichnis übernommen werden <MAGSBS:tocDepth>2</MAGSBS:tocDepth>
  • Abstand zwischen den Seitennavigationslinks: <MAGSBS:pageNumberingGap>5</MAGSBS:pageNumberingGap>
  • Präfix des Anhangs: Regelt, ob vor dem Inhaltsverzeichnis der Präfix "A" (Anhang) vorangestellt wird: <MAGSBS:appendixPrefix>0</MAGSBS:appendixPrefix>
  • Sprache des bearbeiteten Materials: <dc:language>de</dc:language>

Konfigurationen in Unterverzeichnissen

Falls Lehrmaterial nicht nur von einem Studenten bearbeitet wird, sollte in dem Unterverzeichnis des Materials, welches dem Studenten zugeteilt wurde, eine zusätzliche Konfiguration angelegt werden. Diese sollte dann den Namen des Beareiters enthalten.

Alle Unterkommandos von Matuc werden automatisch zuerst die Konfiguration verwenden, die "am nähsten" an der aktuellen Datei liegt, d.h. entweder im aktuellen Verzeichnis, dem darüber und so weiter. Damit kann z.B. im Stammverzeichnis der Bearbeiter auf "Max Mustermann" und im Verzeichnis anh01 der Bearbeiter auf "Otto Normalverbraucher" gesetzt werden.

Konvertierung von Dateien

Die Konvertierung nutzt intern Pandoc, erweitert dies aber um zusätzliche Ausgabefilter und Standardvorlagen. Pandoc sollte daher zur Umwandlung von Lehrmaterial nicht verwendet werden, da z.B. Seitenzahlen nicht umgewandelt werden.

Konvertierung einzelner Dateien

Die Konvertierung erfolgt mit dem Unterkommando "conv", die Umwandlung von "Hallo.md" würde also wie folgt ablaufen:

matuc conv "Hallo.md"

Matuc wird automatisch erkennen, ob LaTeX-Formeln in das MarkDown-Dokument eingebettet wurden und GladTeX und damit LaTeX aufrufen. Dies wird auch ein Verzeichnis bilder anlegen, sofern es noch nicht existiert.

Konvertierung mehrer Datien oder Materialien

matuc conv VERZEICHNIS konvertiert das gesamte Lehrmaterialverzeichnis.

Der Aufruf ist:

matuc conv VERZEICHNIS

Wobei VERZEICHNIS entweder "." ist, wenn man sich bereits in dem korrekten Verzeichnis befindet, oder eben der Verzeichnisname, in dem die Konvertierung stattfinden soll.

Zuerst erstellt matuc conv VERZEICHNIS das Inhaltsverzeichnis, so wie es auch

matuc toc

erstellen würde. Im Anschluss konvertiert es, mit Hilfe der Kopfdaten über die Veranstaltung aus der Konfiguration, alle Markdown-Dateien.

Erstellung eines automatischen Inhaltsverzeichnisses

Das Unterkommando matuc toc ermöglicht es automatisiert Inhaltsverzeichnisse zu erstellen. Dies wird von bei der Generierung der mehrerer Dateien mittels matuc conv VERZEICHNIS

automatisch ausgeführt.

Überschriften der jeweiligen Kapitel und Unterkapitel werden automatisch aus den Dateien extrahiert und nummeriert ins Inhaltsverzeichnis übernommen. Dies setzt allerdings voraus, dass die Verzeichnisstruktur auch den Vorgaben der Tutorenanleitung entspricht.

Matuc toc erwartet das Verzeichnis als Parameter, in dem nach Kapiteln gesucht werden soll. Wenn man sich im Stammverzeichnis des Lehrmaterials befindet, tippt man ".". Die Ausgabe wird direkt auf das Terminal geschrieben. Möchte man sie stattdessen in einer Datei speichern, muss der Parameter "-o", gefolgt von einem Dateinamen verwendet werden. Beispiel:

matuc toc -o "inhalt.md" .

Programmierschnittstelle MAGSBS

Das Modul MAGSBS ist ein in der Programmiersprache Python implementiertes Modul, welches folgende Funktionalitäten bereitstellt:

  • Konvertierung von Dokumenten mittels Pandoc
    • Modifikation einiger Konvertierungsprozesse, um die Barrierefreihei tund die Integration zu erhöhen
    • Ergänzung von Markdown um Syntaxelemente, wie z.B. Auszeichnung für Seitenzahlen
  • Automatisierung der Erstellung von Inhaltsverzeichnissen, Navigationsleisten o.ä.
  • automatisierte Verlinkung von Bildbeschreibungen, automatisierte Erstellung von Formelgrafiken sowie Alternativtexten durch LaTeX
  • Fehlersuche in Markdown-Dokumenten für häufig auftretende Fehler
  • uvm.

Zusammen mit dem MAGSBS-Modul kommt eine beispielhafte Kommandozeilenoberfläche mit dem Namen Matuc.