Ich mache ein Präsentationssystem in QML (mit C++ - Backend) ähnlich this one.Möglichkeiten zum Einbetten von Latex in QML
Ich möchte in der Lage sein, einige Latex-Code enthalten, um einige Mathe anzuzeigen (nur minimale Latex-Funktionen benötigt, wie Summen, Brüche, Super-und Substript und Math-Schriften).
Ich sehe folgende Möglichkeiten, dies zu tun:
- Mit latex2e:
- Kompilieren Sie den Latex-Code zu einem DVI-Dokument (mit
latex
) - umrechnen DVI zu SVG (mit
dvisvgm
) - Zeigen Sie dies mit einer
Image
in QML (die auch SVG unterstützt)
- Kompilieren Sie den Latex-Code zu einem DVI-Dokument (mit
- Mit Mathjax:
- Wickeln Sie den Latex-Code in einer kleinen HTML-Datei + gehören die Mathjax JS Bibliothek
- Letzte mit
WebKit
für QML
- kundenspezifische Lösung (C++):
- schreiben oder beinhaltet einen vorhandenen minimale Latex Mathe-Parser
- ein
QDeclarativeItem
schreiben mit Custom Painting
Gibt es eine andere Lösung, die ich nicht sehen, ? Ich bevorzuge die erste Lösung, da der zweite zu schwer und der dritte zu hart klingt.
Ich sehe das folgende Problem mit der Basislinie der mathematischen Formel: Ich möchte Inline-Formeln (innerhalb eines Absatzes) enthalten können. Derzeit werden Textabschnitte mit einem QML Text-Element wiedergegeben. Gibt es eine Möglichkeit, ein Bild in ein Text-Element (unter Verwendung von HTML-img-Element vielleicht) mit einer angegebenen Basislinie? Wie kann ich die Grundlinie eines gerenderten Latexdokuments bestimmen?
Hinweis: Die Zeit zum Vor-Rendering von Latex-Code ist nicht problematisch. Ich werde bereits gerenderte Formeln zwischenspeichern, daher sollte es kein Problem sein, latex
+ dvisvgm
für jede einzelne Formel im Präsentationsdokument aufzurufen.
Beachten Sie auch, dass ich einen Präprozessor verwende (ich schreibe den QML-Code nicht von Hand, sondern erzeuge ihn). Ich brauche also kein QML-Element für den Latex-Code, aber ich kann nur ein QML-Code-Snippet mit einem Image-Element generieren (für die erste Lösung). Dies sollte das Einbetten des gerenderten Bildes vereinfachen.
Ich brauche auch nicht das Umwickeln einer Formel bei der Verwendung von Inline-Latex.(Latex tut dies, wenn ich Inline-Formeln schreibe, aber ich benutze nur kleine Formeln, die ich sowieso nicht verpacken möchte.)
Ich wäre interessiert zu hören, auf welche Art und Weise Sie gingen und ob es für Ihre Zwecke funktioniert hat, da wir auch dieses Problem treffen. – gremwell
Ich verwendete Ansatz 1. Um die gerenderten Bilder in Absätze (Inline) einzubetten, habe ich den Text jedes Absatzes in einzelne Wörter aufgeteilt und sie manuell mit einem benutzerdefinierten Flow-Layout-Algorithmus platziert. Bilder können dann manuell positioniert werden. Wenn ich Zeit finde, schreibe ich das als Antwort mit genügend Details. Übrigens, SVG funktioniert nicht sehr gut, dafür habe ich das gerasterte PNG-Format benutzt. Meine App kann die gerenderte Auflösung anpassen (d. H. Das Bild rückkonvertieren), wenn das Bild skaliert wird, sodass Sie fast nicht bemerken, dass es sich um ein gerastertes Bild handelt. – leemes