Ü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
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
- Windows: Poppler gibt es mit XPDF unter http://www.foolabs.com/xpdf/download.html
- Ubuntu / Debian:
apt-get install 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