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 textMethode 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}}$"