PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LaTex zu EPUB, Lösung und Probleme



Minze
25-07-2013, 15:17
Guten Tag erneut, werte Netzgemeinde.

Da ich mit allen Mitteln versuche, mich vom Praktikumsbericht abzulenken, bastel ich (in Ermangelung an Putzgeräten und eines Kühlschranks, den ich leeressen könnte), an LaTex-"Problemen", welche ich zwar jetzt noch nicht, aber in Zukunft vielleicht mal haben werde. Im Moment versuche ich, aus einer .tex-Datei eine EPUB-Datei zu erstellen, was zur Zeit wohl ein populäres Thema ist. Aus diesem Grund möchte ich, da mir in diesem Forum kompetent geholfen wurde, dokumentieren, was ich bisher unternahm und welche Erfolge ich erzielte, um eventuell an EPUB Interessierten zumindest zu meinem Stand zu verhelfen.

Aufgabenstellung
Da die beabsichtigten Ergebnisse durchaus unterschiedlich sein können, hier meine genaue Aufgabe: In masochistischer Manier werde ich meine Masterarbeit mit LaTeX schreiben, ganz normal als pdf. Zusätzlich möchte ich diese Arbeit aber auch als Epub, einem für Ebookreader üblichen Format, ausgeben. Dabei ist mir bewusst, dass die Kindle-Geräte von Amazon wiederum ein anderes Format voraussetzen (mobi). Mein Hauptinteresse liegt ganz klar auf einer vernünftigen pdf-Ausgabe. Die Umgestaltung zum Epub sollte dabei so wenig wie möglich Änderungen am bestehenden Text verlangen, da man zum Abschluss einer solchen Arbeit gewöhnlich nur wenig Zeit hat, geschweige denn genug Zeit, sich um Feinheiten für eine alternative Ausgabe auf einem Ebookreader zu kümmern, die vermutlich niemand lesen wird. Es fällt deshalb definitiv aus, dass ich beispielsweise nach Beendigung meines Textes nochmal alle Formeln durchgehe, um da irgendetwas für die Epub-Darstellung zu ändern.
Im Internet kursieren bereits diverse Anleitungen, wie man vorgehen kann. Doch mir fällt es oft schwer, diese nachzuvollziehen, da oft nur ungenau beschrieben wird, was zum Beispiel in welcher Datei zu ändern ist, welche Einstellungen wo vorgenommen werden müssen.

Also nochmal kurz: Aus einer Tex-Datei, welche vor allem auf gute Erscheinung als pdf ausgelegt ist, möglichst automatisiert eine Epub-Datei erstellen.

LaTeX-Software
Zu beachten ist vermutlich, dass ich MikTeX in einer portablen Variante nutze (was Anweisungen, wie "gib dies oder das in die Kommandozeile" für mich schwer macht) und meine Texte mit TeXworks schreibe. Das läuft unter Windows 7.

Quellen
Neben undokumentierten google-Ergebnissen waren mir hauptsächlich die folgenden beiden Seiten hilfreich:

Dieser Vortrag (http://de.slideshare.net/ThomasFerber/vom-latexdokument-zum-ebook-ein-steiniger-weg) führt grundlegend ins pdf vs. Epub ein.
Auf der Seite Konvergenzbereich (http://www.latexbuch.de/latex-windows-7-installieren/#x1-190003.7) wird dargestellt, wie man tex4ht nutzen kann.
Auf der Seite Dausacker (http://de.dausacker.net/blog/latex-nach-epub-konvertieren) geht es um Feinheiten bei der Umwandlung html zu Epub.
Flupp (http://wiki.flupp.de/latex/tex4ht) bietet Ansätze zur Lösung diverser Probleme bei der Umwandlung zum html, welche bei mir jedoch nicht so recht funktionieren.


Erfolge
Installation tex4ht

Download tex4ht (https://www.tug.org/applications/tex4ht/mn-mswin.html)
Dateien in ein Verzeichnis ohne Leerzeichen entpacken
TeXworks: Menü "Bearbeiten" -> Einstellungen -> Textsatz -> Verarbeitungsprogramme -> neu hinzufügen
Pfad: C:\tex4ht\bin\ht\win32\htlatex.bat (NICHT die exe-Dateien nehmen, die auch in tex4ht enthalten sind)
Argumente: $fullname "html"
Diese Einstellungen kann man sich auch noch einmal im Bild tex4ht ansehen, welche sich anhänge.


Ausgabe einer html-Datei aus der tex-Datei

Im TeXworks-Fenster oben auf tex4ht umstellen
Textsatz starten, das dauert eine ganze Weile
Im Projektordner wird dann die Datei "name".html erstellt
Diese kann man im Browser betrachten
Manchmal kommt es (bei mir) zu Fehlermeldungen, wenn TeX startet, welche sich durch das Löschen der Zusatzdateien beheben ließen.


Die html-Datei zu EPUB konvertieren

Das Programm calibre (http://calibre-ebook.com/) downloaden und installieren
Die erstellte html-Datei in calibre öffnen und zu einem EPUB umwandeln (das erkläre ich hier nicht genauer, so kompliziert ist es nicht).
Ein Hinweis: Dausacker (http://de.dausacker.net/blog/latex-nach-epub-konvertieren) erwähnt noch diverse Änderungen, welche in html- und css-Datei vorgenommen werden sollen. Bei mir waren diese nicht nötig bzw. teilweise gar nicht möglich, da die zu ändernden Einträge in den Dateien gar nicht vorhanden waren.


Bilder einbinden
png-Dateien

Es heißt immer wieder mal, dass die Bilder im eps-Format gespeichert sein müssen
Bei der Einbindung des Paketes \usepackage{graphicx} und dem Nennen der Dateiart beim Aurufen des Bildes (\includegraphics[]{./bilder/nytva.png}) scheint dies aber nicht nötig
Problem: das klappt bei png-Grafiken, nicht aber bei pdf-Grafiken. Da ich üblicherweise einige (viele) Bilder mit tikz erstelle und als pdf ausgebe, würd ich diese ebenfalls gern so einfach einbinden.


pdf-Dateien
Lösung mit Imagemagick

ImageMagick installieren (http://www.imagemagick.org/script/index.php)
Ghostscript installieren (http://www.ghostscript.com/download)
Eingabeaufforderung öffnen, in das Verzeichnis mit den zu konvertierenden Bildern wechseln
Beispielbefehl, um alle pdf-Dateien im aktuellen Ordner ins png-Format zu überführen:
mogrify -format png *pdf
Optionen (http://www.imagemagick.org/ImageMagick-7.0.0/script/command-line- options.php#quality) für ImageMagick-Befehle
Info: der ImageMagick-Befehl mogrify ist besser als convert, da convert alle Bilder auf einmal in den Arbeitsspeicher lädt, mogrify jeweils ein Bild abarbeitet
Wenn man den schon genannten Befehl
mogrify -format png *pdf in eine bat-Datei schreibt und ausführt, wird der Befehl automatisch auf alle pdf-Bilder im aktuellen Verzeichnis (ohne Unterverzeichnisse) angewendet.
Aufgabe: Im Moment sehen meine png-Bilder noch schrecklich verpixelt aus, aber das ist sicher nur eine Frage der Optionen bzw. der Einstellung (nicht von meiner, sondern von ImageMagick)
Aufgabe: Bestimmt ist eine Lösung möglich, die auch alle Unterverzeichnisse im aktuellen Ordner einbezieht, aber mit -maxdepth 1 (wie hier (http://www.perturb.org/display/632_ImageMagick_resize_images.html) vorgeschlagen) hat es bei mir nicht funktioniert


Lösung mit pdftops
Bei mir hat es nicht funktioniert, dennoch möchte ich das Vorgehen nennen, evtl. hilft es anderen:

Download pdftops (http://www.foolabs.com/xpdf/download.html)
die Datei pdftops.exe in den Ordner mit den zu konvertierenden Bildern schieben
Eingabeaufforderung öffnen, in das Verzeichnis wechseln, dann pdftops dateiname.pdf zielname.png
Problem: Bei mir entstehen dann tatsächlich ps-Dateien, deren Platz in der html-Datei auch reserviert wird, nur die Bilder selbst erscheinen nicht. Grafikprogramm zeigen mir das Bild allerdings an, die Bilddatei sollte also nicht defekt sein.


Formeln einbinden

Formeln sollten zu Bildern umgewandelt werden, um darstellbar zu sein, tex4ht übernimmt das.
Wenn die Konvertierung von pdf- zu png-Bildern klappt (s. oben beschrieben), sind ImageMagick und Ghostscript zwar richtig installiert, dem System aber noch nicht bekannt:

Start - Systemsteuerung - System und Sicherheit - System - Erweiterte Systemeinstellungen (links)
Erweitert - Umgebungsvariablen
Unterer Bereich: Systemvariablen: den Eintrag "Path" suchen, bearbeiten
Den Pfad zu Ghostscript ans Ende hinzufügen, sieht bei mir so aus:
C:\Program Files\ImageMagick-6.8.6-Q16;...viele Einträge...;C:\Program Files\Calibre2\;C:\Program Files\gs\gs9.07\bin
Rechner neu starten, um die Änderung bzw. den Zusatz zu übernehmen

Formeln ganz normal über die align-Umgebung ins tex-Dokument schreiben
Problem: Bis jetzt werden nur die "komplizierten" Anteile einer Formel in Bilder verwandelt, also zum Beispiel Terme mit Bruchstrichen. Multiplikationspunkte bleiben als solche erhalten, werden auf meinem Ebookreader aber als nicht deutbares Zeichen dargestellt.

Deshalb ist es wohl sinnvoll, ALLE Formeln und Terme in Bilder umzuwandeln.
Flupp (http://wiki.flupp.de/latex/tex4ht#formeln) sagt, dass dies über die Option "html,pic-m,pic-align" funktioniert. Es gelingt mir allerdings nicht, diese Option funktionstüchtig einzugeben.
Auch der vorgeschlagene Befehl
\Configure{$}{\PicMath}{\EndPicMath}{} ändert nichts an der Behandlung der Bilder.
Auf Blaue Donau (http://www.cvr.cc/?p=504) werden viele mögliche Optionen und der Hinweis angeführt, diese Optionen als Parameter des tex4ht-Paketes anzugeben. Ich vermute, damit ist etwas gemeint, wie:
\usepackage[pic-align]{tex4ht}
Dann allerdings funktioniert die Ausgabe bei mir nicht mehr.



Zitate

Da über den oben angegeben Befehl nur tex4ht aufgerufen wird wenn TeX startet, funktioniert die Ausgabe von Zitaten und Literaturverzeichnis nicht sofort.
Deshalb:
tex4ht
Bibtex
tex4ht

Wenn das Dokument bereits als pdf vorliegt (mit richtig erstellten Zitaten), erscheinen die Zitate auch schon nach dem ersten Durchlauf richtig im html-Dokument.


Fragen, Probleme
So weit alles in Ordnung, Texte werden ordentlich ausgegeben. Das ist schon einmal ein schöner Erfolg und eine gute Basis für weitere Versuche.
Doch habe ich nun folgende Probleme:

Umlaute im CD der TUDD

Umlaute werden, wenn ich das Corporate Design der TU Dresden anwende, komplett ignoriert, sie erscheinen nicht in der html-Datei.


Nun, das ist mein Stand. Wer einen Tipp hat, wie die genannten Probleme zu bewältigen sind, möge sich bitte melden.

Minze
25-07-2013, 21:29
Im Westen nichts Neues, im Osten dagegen schon. Die Umwandlung von pdf-Bilder klappt jetzt recht elegant. Ich habe meinen ersten Beitrag aktualisiert. Für die Freunde der späten Nacht noch ein schönes Foto (http://imgur.com/t34OSwn).

Minze
25-07-2013, 23:33
Bevor ich mich verabschiede noch was zu den Formeln:
Die Formel
Q = v \cdot A wird in der html-Datei schön dargestellt, die Formel
v = \frac{Q}{A} allerdings nicht.
Nach dem Durchlauf von tex4ht entsteht eine Datei zztest.ps, welche Q/A tatsächlich als Bild anthält.
Sieht also so aus, als würde die ps-Datei mit der Formel erstellt, aber der zweite Schritt, daraus eine png-Datei zu machen, findet nicht statt.

Ich vermute, dass ein Programm ein anderes nicht aufruft, weiß aber nicht, welches. Ist es Ghostsript, das Imagemagick nicht findet? Oder umgekehrt? Und wie löse ich das Problem?

Und vor allem: Warum heißt es ImageMagick und nicht Imagemagic, was soll das? ;)

strolch
26-07-2013, 02:12
es ist nicht nur zur zeit ein aktuelles thema sondern schon seit langem ...
hier (http://www.mrunix.de/forums/showthread.php?t=74447) im forum wurde schon mehrfach drueber diskutiert. im letzten beitrag (http://www.mrunix.de/forums/showthread.php?t=74447#5) findest du einen vortrag, den ich damals recht informativ fand.

PS: schade das du mit der Kommandozeile nichts anfangen kannst ... ist gerade bei konvertierungen recht hilfreich.

Minze
26-07-2013, 09:53
Guten Morgen strolch,

ich hatte "zur Zeit" geschrieben, da mir die alten Ansätze zumeist darauf abzuzielen scheinen, wie man ein pdf so bearbeiten kann, dass es auf Ebookreadern lesbar ist (zum Beispiel durch schmalere Seitenränder, entweder schon bei der Erstellung des pdf oder nachträgliches Zuschneiden), wohingegen die "neuen" Ansätze zum Ziel haben, tatsächlich EPub (zum Beispiel über html) zu erstellen. Doch sei's drum, die Frage ist ja hier nicht, was "aktuell" bedeutet.

Nachdem ich mir den von dir verlinkten Vortrag angesehen habe, komme ich zu dem Schluss, dass ich meine Aufgabenstellung zu ungenau formuliert habe. Ich habe dies nun eingearbeitet.

Außerdem ist es mir gelungen, eine bat-Datei zu erstellen, welche ImageMagick automatisch im aktuellen Verzeichnis aufruft, was leichter war, als ich es mir dachte.

Bist du denn letztes Jahr bei diesem Vortrag gewesen?