MEP29: Textlicht-Markup #
Status #
Diskussion
Branches und Pull-Requests #
Derzeit keine, nur Proof of Concept.
Zusammenfassung #
Dieser Abgeordnete schlägt vor, dem Textkünstler ein leichtes Markup hinzuzufügen.
Detaillierte Beschreibung #
Die Verwendung unterschiedlicher Größen/Farben/Familien in einer Textanmerkung ist schwierig, da die
text
Methode Argumente für Größe/Farbe/Familie/Gewicht/usw. akzeptiert. die für den gesamten Text verwendet werden. Aber wenn man zum Beispiel andere Farben haben möchte, muss man sich die Galerie ansehen, wo ein solches Beispiel zur Verfügung steht:
Regenbogentext
Dieses Beispiel verwendet eine Liste von Zeichenketten sowie eine Liste von Farben, was die Verwendung umständlich macht. Eine Alternative wäre, einen eingeschränkten Satz von pango - ähnlichem Markup zu verwenden und dieses Markup zu interpretieren.
Einige Markup-Beispiele:
Hello <b>world!</b>`
Hello <span color="blue">world!</span>
Implementierung #
Ein Proof of Concept wird in markup_example.py bereitgestellt, aber es behandelt derzeit nur die horizontale Richtung.
Verbesserungen #
Dieser Proof of Concept verwendet Regex, um den Text zu parsen, aber es kann besser sein, den html.parser aus der Standardbibliothek zu verwenden.
Die Berechnung von Textfragmentpositionen könnte von der OffsetFrom-Klasse profitieren. Siehe zum Beispiel Punkt 5 in Verwenden komplexer Koordinaten mit Anmerkungen
Probleme #
Ein ernstes Problem ist der Umgang mit Text, der sowohl LaTeX- als auch HTML-ähnliche Tags enthält. Betrachten Sie zum Beispiel Folgendes:
$<b>Bold$</b>
Empfehlung wäre gegenseitiger Ausschluss.
Abwärtskompatibilität #
Im Moment keine, da es sich nur um einen Proof of Concept handelt
Alternativen #
Wie von @anntzer vorgeschlagen, könnte dies auch als Verbesserung von mathtext implementiert werden. Zum Beispiel:
r"$\text{Hello \textbf{world}}$"
r"$\text{Hello \textcolor{blue}{world}}$"
r"$\text{Hello \textsf{\small world}}$"