uTeXer - Unicode-Zeichen zu LaTeX

Über uTeXer

uTeXer ist ein Hilfsskript um mathematische Unicodezeichen und lateinische Ligaturen in LaTeX bzw. reinen Text zu konvertieren, damit sie für Blinde lesbar werden; es wurde in Python geschrieben. Das Skript ist nützlich für:

  • Übersetzen von Formeln von Webseiten oder aus PDFs in LaTeX-Zeichen
  • verschönern der Textversionen von PDFs, wie sie z.B. durch pdftotext (aus den Popplerutils) generiert werden; häufig sind dies lateinische Ligaturen, die den Text schwerer lesbar machen.

Damit können erstmals Papers oder andere wissenschaftliche Dokumente von Ligaturen befreit und mathematische Formeln teilweise für Blinde lesbar gemacht werden.

Download/Installation

Sie erhalten eine Kopie mit Git:

git clone https://github.com/humenda/utexer.git

oder hier eine zip-Datei.

Zur Ausführung von uTeXer benötigen Sie eine funktionierende Python3-Installation.

Installation unter GNU/Linux

Sie können

./install

ausführen, was das Programm unter /usr/local/* installiert, oder PREFIX auf /usr setzen (oder /opt bzw. /) um den Pfad zu ändern.

Sie können es auch direkt aus den Quellen ausführen.

Installation unter Windows

Wie bereits erwähnt sollte eine Python3-Version installiert sein.

Es gibt noch kein Installationsprogramm, deshalb muss man die Kommandozeile öffnen (Windowstaste +r, dort .html) und dort mit "cd" in das Verzeichnis von UTeXer wechseln. Man kopiert die zu konvertierende Textdatei in das Verzeichnis von UTeXer und nutzt UTeXer wie unten beschrieben.

Für die Zukunft ist geplant ein Installationsprogramm bereitzustellen.

Benutzung von uTeXer

uTeXer ist ein einfaches Programm, die Hilfeseite [englisch] sollte das Meiste erklären:

Usage: utexer [options] INPUTFILE

If no output file is specified with the -o option, the input file will be
overwritten. If no input file is specified, stdin/stdout will be used (but you
can redirect stdout with -o too).

Options:
  -h, --help            show this help message and exit
  -e ENC, --encoding=ENC
                        Set encoding for stdin (default UTF-8)
  -l, --ligature        replace ligatures through normal letters (at least in
                        Latin languages where they are only for better
                        readibility)
  -o FILE, --output=FILE
                        set output file (if unset, overwrite input file)
  -p, --pdftotext       Replace some signs generated just by PDFtotext
  -s, --strip-newpage   Strip the newpage character
  -u FILE, --userdict=FILE
                        set path to user-defined replacements/additions for
                        unicode mappings (format described in README)

Woher kommen die LaTeX-Befehle/wie passe ich diese an?

Die ursprüngliche Unicode-Tabelle wurde von

https://www.w3.org/Math/characters/unicode.xml

heruntergeladen.

Mit der -u Option können Sie eine zusätzliche Unicode-Tabelle angeben, um Unicode-Codepunkte zu überschreiben (oder sogar hinzuzufügen). Das Format ist einfach:

<decimal_number><tab><replacement>

Beispiel:

123 \{

Das erlaubt Ihnen LaTeX-Kommandos anzupassen. Ich mag beispielsweise \varnothing nicht und habe es durch das für mich intuitivere \emptyset ersetzt.

PDFs lesbar machen

PDFs enthalten oft Ligaturen und es ist zum vernünftigen Lesen mit Bildschirmleser selten ausreichend einfach nur den reinen Text abzuspeichern oder aus dem PDF-Betrachter zu kopieren. Um ein vernünftiges Resultat zu erreichen, sollte man den Text zuvor mit den Poppler-Utils extrahieren. Das ist eine Sammlung von Kommandozeilen-Programmen, die es z.B. sowohl für GNU/Linux als auch für Windows gibt (siehe weiter unten). Der Text der von dem Kommandozeilenwerkzeug "pdftotext" erzeugt wurde, kann dann als Eingabe für UTeXer verwendet werden und in vielen Fällen erhält man ein gut nutzbares Ergebnis.

Download von Poppler-Utils

Bekannte Limitierungen

Wie bereits angemerkt wurde, kann uTeXer keine ganzen Formeln übersetzen. Formeln die größer als eine Zeile sind, wie beispielsweise Brüche, Indizes und Potenzen werden (häufig) nicht erkannt, weil sie nicht in Unicode notiert werden, sondern durch Höhenveränderung erkenntlich gemacht werden. Das ist nur für PDF-Ausgaben problematisch, bei HTML werden oft Tags für Indizes und Potenzen genutzt.

Überstreichungen und Unterstreichungen gehen ebenfalls verloren.

Es gibt Zeichen in der Unicode-Tabelle, welche nicht übersetzt werden sollten oder welche zu nicht häufig gebrauchten LaTeX-Kommandos übersetzt werden:

  • \varnothing anstatt zu \emptyset
  • { } anstatt von \lbrace und \rbrace, weil sonst auch Quelltext ersetzt wird