Use theme font also for LaTeX

Aperta
#942 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
matplotlib, python

Direzione di ricerca

Inizia con l’esempio riproducibile di plotnine e analizza come vengono applicati i font del testo del theme insieme alle impostazioni LaTeX e mathtext di matplotlib. Segui la gestione dei font del theme e determina la configurazione pertinente di matplotlib; il lavoro è completato quando le labels renderizzate in LaTeX utilizzano la font family specificata dal theme senza richiedere rcParams globali separati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Apparently, matplotlib uses different rcParams for controlling the font used in LaTeX environments vs outside (see https://stackoverflow.com/a/27697390). This causes behaviour which is IMO inconsistent, where the font family specified in the theme is not used within LaTeX environments.

Reproducible example to show what I mean:

from plotnine import ggplot, geom_point, aes, theme, labs, element_text
from plotnine.data import penguins

(ggplot(penguins, aes(x="bill_length_mm", y="bill_depth_mm")) 
 + labs(x="l_bill", y=r"$d_\text{bill}$")
 + theme(text = element_text(family="Noto Serif"), figure_size=(3,2))
 + geom_point()
)

yields this:

Image

where the LaTeX in the y axis label does not use the serif font which I specified in the theme

Prepending this:

import matplotlib
matplotlib.rcParams['mathtext.fontset'] = 'custom'
matplotlib.rcParams['mathtext.rm'] = 'Noto Serif'
matplotlib.rcParams['mathtext.it'] = 'Noto Serif:italic'

achieves the desired result in this case, but of course, the theme information is no longer stored in the theme.

Is it possible to change the behaviour such that the LaTeX font follows the theme font?

Lingua principale
Python
Stelle
4.8k
Fork
260
Merge medio
2g 12h
PR unite (30g)
4

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di has2k1/plotnine

Tutte le issue di has2k1/plotnine

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.