Seite 1 von 1

RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 15:10
von vanKey
Hallo zusammen,

ich möchte gerne mein Diagramm in der Latex-Schriftart "Helvetica" beschriften.
Ich bekomme aber immer den Fehler: "RuntimeError: Failed to process string with tex because latex could not be found"

Das Minimalbeispiel sieht wie folgt aus:

Code: Alles auswählen

import numpy as np
import pandas as pd
import os
import math
import matplotlib.pyplot as plt

plt.rcParams.update({
    "text.usetex": True,
    "font.family": "Helvetica"
})


a = pd.DataFrame([1,5,10],columns=["1"])

b = pd.DataFrame([
2,
4,
5,
],columns=["2"])


## Combine Data
data = pd.concat([a, b],axis=1)


### Plot 
plt.figure(1)
plt.plot(data["1"],data["2"], '-o')
plt.xlabel('Abstand ')
plt.ylabel('Hoehe')

Viele Grüße
vanKey

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 15:13
von __deets__
Und ist latex installiert, und auffindbar von dem Ort, von dem du deinen Code aufrufst?

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 15:31
von vanKey
Nein, Latex ist dort nicht installiert. Es ist ein Firmenrechner, wo ich auch keine Rechte habe, irgendwas zu installieren. Was kann ich dann noch tun?

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 15:34
von __deets__
Nix. Das Feature braucht Latex, du hast keines, also geht's nicht. Ob andere Fonts auch ohne Latex (also TTF oder was auch immer) verfuegbar sind, sollte die Dokumentation hergeben.

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 15:58
von __blackjack__
@vanKey: Was ist denn die „LaTeX Schriftart Helvetica“ für Dich konkret? Ist es die Schriftart, die am Ende ziemlich sicher nicht Helevetica, sondern ein freier Ersatz sein wird, oder das Rendering durch LaTeX/TeX was hier den Ausschlag gibt?

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 16:33
von vanKey
@blackjack: Ja das ist eine gute Frage. Sagen wir mal so. Wenn der Ersatz gut ist, dann ist es sicher besser als eine völlig andere Schriftart. Aber konkret möchte ich natürlich das Rendering durch LaTex.

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 17:08
von narpfel
@vanKey: Welche LaTeX-Features brauchst du denn konkret? Weil das Beispiel („Abstand“ und „Hoehe“) ja auch ohne LaTeX gut lesbar gerendert werden kann. Und einfache Formeln kann matplotlib auch selbst ohne LaTeX rendern.

Ansonsten ist TexLive IIRC portable, muss also nicht installiert werden, sondern kann einfach entpackt werden und funktioniert dann. Musst du halt abklären, ob das erlaubt wäre.

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 17:14
von kbr
@vanKey: Falls bereits Helvetica auf dem System zugänglich ist, dann brauchst du nicht den Umweg über LaTeX. Gleiche Fonts rendern sich immer gleich (druckfähige Fonts sind Vektordaten). Du kannst in matplotlib verfügbare Fonts direkt setzen. Falls Helvetica fehlt, könntest du Arial ausprobieren. Das ist zwar im Grunde eine kaputte Helvetica, kann man zur Not aber nehmen.

Re: RuntimeError: Failed to process string with tex because latex could not be found

Verfasst: Mittwoch 23. August 2023, 21:09
von __blackjack__
Der Umweg über LaTeX hilft auch nicht wenn keine Helvetica auf dem System verfügbar ist, denn das kann ja nicht auf magische Weise eine Helvetica herbei zaubern. In LaTeX die Schriftfamilie Helvetica zu ”verwenden” heisst in der Regel eine andere Schriftart zu verwenden. URW Nimbus Sans oder etwas davon abgeleitetes beispielsweise.