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

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
vanKey
User
Beiträge: 18
Registriert: Mittwoch 31. August 2022, 07:14

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
__deets__
User
Beiträge: 14543
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und ist latex installiert, und auffindbar von dem Ort, von dem du deinen Code aufrufst?
vanKey
User
Beiträge: 18
Registriert: Mittwoch 31. August 2022, 07:14

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?
__deets__
User
Beiträge: 14543
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
vanKey
User
Beiträge: 18
Registriert: Mittwoch 31. August 2022, 07:14

@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.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

@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.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@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.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten