• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Druckformatierung in HTML - HTML als Alternative zu LaTeX

Mircode

Neues Mitglied
Hallo zusammen!

Ich hasse Latex (Gripes about LaTeX bringt es auf den Punkt) und bin schon länger auf der Suche nach Alternativen. HTML scheint mir fast perfekt geeignet zu sein. Seit HTML 5 können sogar Formeln und Vektorgrafiken eingebunden werden und damit steht es LaTeX aus meiner Sicht nur in einem einzigen Punkt nach: Es kann leider keine ordentliche Seitenformatierung mit Kopf- und Fußzeile (außer einem winzigen bisschen css), Seitenrändern und allem Schnickschnack.

Wenn dieses eine Problem vom W3C noch angepackt wird, bin ich der erste, der umsteigt. Bis dahin lässt sich vielleicht eine Frickellösung erarbeiten:

Jede Seite ist eine Tabelle oder ein div oder sonstwas, dazwischen kann man mit css Seitenumbrüche erzwingen. Man müsste nur eine Möglichkeit haben, ein solches Element mit Fließtext (und Bildern und allem möglichen) zu füllen, bis es voll ist und dann auf der nächsten Seite weiterzumachen. Hat vielleicht jemand eine Idee dafür? Mit Javascript vielleicht zum Beispiel?

Es ist mir nicht so wichtig, dass es in allen Browsern gleich aussieht und auch wenn man manuell die Standard Kopf- und Fußzeilen des Browsers löschen muss oder sonstige Einstellungen treffen, stört es mich wenig. Hauptsache es funktioniert mit einem Browser und man kann ein PDF daraus generieren, mit FreePDF oder PDFCreator zum Beispiel.

Grundsätzlich bin ich auch offen für andere Alternativen zu Latex. Folgende Anforderungen habe ich:
- Vektorgrafiken
- Formeln
- Macros
- Tabellen
- Unicode
- kostenlos

Bin offen für Ideen und Kommentare.

MfG
Mirko
 
Die Frage weckt Assoziationen an die frühen 90'er, als Texte und Layout in separaten Programmen erstellt wurden, wie bsw. Aldus Pagemaker oder Ventura Publisher.

Als Websprache würde mir noch XML einfallen, sollte es dir allerdings um Print gehen, würde ich den Blick in Richtung Adobe InDesign lenken, auch wenn das natürlich nicht kostenlos erhältlich ist.
 
Willkommen im Forum.

Makros hast du in HTML nicht. HTML ist eine reine Auszeichnungssprache.

Vektorgrafiken und vor allem Formeln… Hm. Bin da nicht auf dem neuesten Stand, aber geh mal davon aus, dass das auch eher nicht so toll hinhaut.

- Mathematical Markup Language

Wenn es dein Ziel ist, ein PDF in „Textsatz-Qualität“ zu generieren, bist du mit LaTeX sozusagen ganz oben, was die Qualität der Tools angeht.

Es hält dich aber nichts davon ab, ein LaTeX-Dokument (oder Teile davon) bereits automatisiert zu generieren, also etwa ein HTML-Dokument nur zum Rendern nach PDF in LaTeX zu konvertieren.

DocBook könntest du dir vielleicht noch ansehen.

Meiner Meinung nach bist du mit dem LaTeX-Kosmos aber am besten dran, wenn du Qualität willst. Einen vergleichbaren HTML/CSS-Stack wirst du jedenfalls nicht finden. Das ist auch typografisch nicht vergleichbar (ich sage nur Silbentrennung).

Ähm, ach ja: Word, LibreOffice?
 
Danke für die Antworten!

Sorry, das hätte ich vielleicht noch erwähnen sollen: Word und Adobe InDesign fallen raus. Ich benutze überhaupt nur LaTeX, weil es mir gefällt, alles als einen "Quellcode" zu erstellen, der dann gerendert wird. Mit dem neuen xml-basierten docx-Format von Word wäre das theoretisch auch möglich, aber das ist zu kompliziert.

@mermshaus:
Makros gibt es in reinem HTML nicht, das stimmt. Aber über JavaScript und css lässt sich da ja viel machen. Z.B. irgendwelche Abkürzungen definieren, die dann vor dem Anzeigen ersetzt werden. Oder man könnte auch automatisch Inhalts- und Quellenverzeichnis generieren. Außerdem kann man HTML auch als Zwischenformat nutzen und als Ausgabe von einem eigenen Programm benutzen. Silbentrennung wäre auch möglich, wenn man eine Referenzdatei mit getrennten Worten hat.

Vektorgrafiken und Formeln:
HTML 5 unterstützt SVG und MathML direkt als Teil des HTML-Dokuments.

Wenn ich den HTML -> LaTeX -> PDF Weg gehen möchte, hätte ich mich wieder mit allen Problemen von LaTeX rumzuschlagen. Meine Formatierungswünsche sind oft sehr speziell und auf unterster Ebene gefrickelt und ich kann mir kaum vorstellen, dass irgendwelche Konvertierungstools das alles unterstützen würden.

Von DocBook habe ich noch nichts gehört, werde es mir aber mal angucken.

LibreOffice kenne ich auch nicht. Vielleicht kann man da auch in dessen Dateiformat arbeiten.

Ich weiß schon, dass sich LaTeX für meine Zwecke sehr gut eignet, daher ist es ja auch Standard und ich benutze es auch. Aber es ist einfach ein Krampf. Die Arbeit mit HTML z.B. ist deutlich entspannter und effektiver.
 
Ich weiß nicht wirklich, was ich dazu sagen soll, weil ich weder dich noch deine genauen Erwartungen oder Anforderungen kenne.

Ich halte HTML für keine ernsthafte LaTeX-Alternative.



Edit: Den letzten Satz meine ich exakt wörtlich. Ich weiß aus Erfahrung, dass solche Aussagen gerne abgeschwächt gelesen werden, wenn sich jemand eine Idee in den Kopf gesetzt hat.
 
Zuletzt bearbeitet:
"Ich halte HTML für keine ernsthafte LaTeX-Alternative."

Ich nehme diesen mit Nachdruck gegebenen Hinweis zur Kenntnis, möchte aber doch wissen, warum nicht. Und ich möchte bitte kein "weils für was anderes gedacht ist", sondern Dinge, an denen es scheitern würde.

"wenn sich jemand eine Idee in den Kopf gesetzt hat."

Durchschaut! :-) Und ganz recht! Ich werde nicht ruhen, bevor LaTeX von Grund auf durchdacht erneuert oder abgelöst wird! Leset meine Worte, Donald E. Knuth und Leslie Lamport! ICH werde eine neue Ära des Textsatzes einläuten!

Ihr werdet schon sehn! ;-)
 
Mircode schrieb:
Und ich möchte bitte kein "weils für was anderes gedacht ist", sondern Dinge, an denen es scheitern würde.

Keine Ahnung, wie ich die benennen könnte. Was würdest du jemandem antworten, der die beste Programmiersprache aller Zeiten (oder so was) erstellen will und fragt, woran das konkret scheitern würde?
 
Ich würde nichts sagen, ich würde ihn natürlich gehässig gegen den Baum rennen lassen :)

Was ich aber meine ist: ich habe ja angedeutet, dass ich HTML (und JavaScript und css) benutzen würde. Gibt es denn ein unverzichtbares Feature des Textsatzes, wozu LaTeX fähig ist und was in HTML wahrscheinlich eher nicht realisierbar ist?

Oder wie kommst du denn zu der Aussage, dass du HTML nicht für eine Alternative zu LaTeX hältst?
 
Gibt es denn ein unverzichtbares Feature des Textsatzes, wozu LaTeX fähig ist und was in HTML wahrscheinlich eher nicht realisierbar ist?

Nun ich denke mit HTML ist es nicht machbar Formeln darzustellen ohne ein Bild zu Integrieren. Wenn ich das Tutorial welches ich gerade überflogen habe richtig interpretiert habe.
 
Das Pythonprojekt sieht interessant aus. Aber auch hier ein Problem:

In PDF exports, math-tags are rendered as raster images and not in print-quality due to technical limitations.

Ich fürchte, am ehesten lohnt es sich, aufzugeben, bevor man zu viel Zeit investiert und erst dann aufgibt. Ich habe meine Idee mal weiterverfolgt, ein bisschen rumgespielt und gesehen, welche Hürden auf mich zukämen. Hier meine Idee:

Man teilt sein Dokument in Format- und Inhaltbereiche. Ein Formatbereich sieht zb. so aus:

<span class="format">
<table style="height:29.7cm; width:21cm; page-break-after:always">
<tr><td>header left</td><td style="width:14cm">header center</td><td>header right</td></tr>
<tr style="height:23.7cm"><td>left border</td><td class="text flow"></td><td>right border</td></tr>
<tr><td>footer left</td><td>footer center</td><td>footer right</td></tr>
</table>

Dann kommt ein Inhaltsbereich:

<span class="content">Bla bla bla</span>

Am Ende steht ein Skript, was alle Inhalte in die darüberliegenden Formatbereiche füllt und so viele Formatbereiche (=Seiten) aneinanderhängt, wie es braucht.
Das ist realisierbar, indem das Skript den textflow-Element so lange Stück für Stück mit Inhalt füllt, so lange bis sich seine offsetHeight ändert (es also zu voll geworden ist) und das letzte Stück dann wieder wegnimmt. Hab ich probiert, geht sehr gut.

Sogar Silbentrennung geht hiermit:
Silbentrennung in HTML mit JavaScript

Damit ist das schlimmste Problem gelöst. Aber es bringt natürlich weitere mit sich:
Es kann passieren, dass eine Seite mit "<b> FETTER " endet und die nächste mit "TEXT </b>" anfängt. Immer alle Tags automatisch zu schließen und auf der nächsten Seite wieder zu öffnen ist sicher nochmal Arbeit. Ganz zu schweigen von mehrseitigen Tabellen.

Und die Kleinigkeiten bringen einen dann sicher um: Seitenzahlen, Links- und Rechtsseitigkeit, Inhaltsverzeichnis, mal eine Querseite drin, Kapitelnamen in den Kopfzeilen, ...

Das alles lässt sich sicherlich lösen aber der Aufwand wird wahrscheinlich größer als alles LaTeX-Gekrampfe meiner Zukunft zusammen.

Bleibt mir nur, zu hoffen, dass HTML eines Tages die Druckformatierung von Hause aus unterstützt. Allerdings verheißen auf dieser Seite:
SELFHTML: Stylesheets / CSS-Eigenschaften / Layouts fr Printmedien
die ganzen "Wegen mangelnder Browserunterstützung wird diese Eigenschaft jedoch in CSS 2.1 nicht übernommen werden."-Texte nichts Gutes.

Wann immer wieder jemandem eine tolle Alternative über den Weg läuft bin ich natürlich weiterhin offen.
 
Warum ist HTML5 keine Alternative?
Du zählst eigentlich selber genug Gründe auf, wieso nicht.

* Layout wird mit dem bisschen CSS gebaut,
* Implementierung in andere externe Programme gibt es nicht, viele externe Programme können mit LateX Templatres umgehen, sogar PHP-Warenwirtschaften gibt es, die LateX Templates verwenden.
* LateX Automatismen wie z.B. Seriendruck fehlen soweit ich weiss komplett in HTML5.
* Die Platzhalter Verwaltung müsste man bei HTML6 jedes mal mit einem neu erstellten Template machen, das riecht verdammt nach viel Arbeit.

Wesentlicher Grund für ein Scheitern von HTML5 wird aber wie schon erwähnt die Kombination mit anderen Programmen sein. LateX lässt sich wunderbar in Anwendungen integrieren und viele bringen die entsprechende Schnittstelle aschon fix und fertig mit.
Für dein Vorhaben mag HTML5 geeignet sein, aber wie schon weiter oben gesagt, deine Anforderungen sind uns unbekannt.

LibreOffice/OpenOffice arbeitet mit XML-Dateien, könnte also genau das sein, was du suchst. Noch dazu ist das Dateiformat das einzige Standartisierte in diesem Bereich und kann zu 100% nachgelesen werden.
 
Zurück
Oben