Nota
Haga clic aquí para descargar el código de ejemplo completo
Representación de texto con LaTeX #
Matplotlib puede usar LaTeX para representar texto. Esto se activa configurando
sus rcParams, o configurando la propiedad en True en objetos individuales. El manejo de texto a través de LaTeX es más lento que el mathtext muy capaz de Matplotlib , pero es más flexible, ya que se pueden usar diferentes paquetes de LaTeX (paquetes de fuentes, paquetes matemáticos, etc.). Los resultados pueden ser sorprendentes, especialmente cuando tiene cuidado de usar las mismas fuentes en sus figuras que en el documento principal.text.usetex : True
usetex
Text
La compatibilidad con LaTeX de Matplotlib requiere una instalación de LaTeX que funcione . Para los backends *Agg, se requiere adicionalmente dvipng ; para el backend de PS,
se requieren adicionalmente PSfrag , dvips y Ghostscript . Para los backends de PDF y SVG, si LuaTeX está presente, se usará para acelerar algunos pasos de posprocesamiento, pero tenga en cuenta que no se usa para analizar la cadena TeX en sí (solo se admite LaTeX). Todos los ejecutables para estas dependencias externas deben estar ubicados en suPATH
.
Solo se admite una pequeña cantidad de familias de fuentes (definidas por el esquema PSNFSS ). Se enumeran aquí, con los comandos de selección de fuentes LaTeX correspondientes y los paquetes LaTeX, que se utilizan automáticamente.
familia genérica |
fuentes |
---|---|
serif ( |
Computer Modern Roman, Palatino ( |
sans serif ( |
Computer Modern Serif, Helvetica ( |
cursiva ( |
Cancillería de Zapf ( |
monoespaciado ( |
Computadora Máquina de escribir moderna, Courier ( |
La familia de fuentes predeterminada (que no requiere cargar ningún paquete LaTeX) es Computer Modern. Todas las demás familias son fuentes de Adobe. Times y Palatino tienen sus propias fuentes matemáticas complementarias, mientras que las otras fuentes serif de Adobe utilizan las fuentes matemáticas Computer Modern.
Para habilitar LaTeX y seleccionar una fuente, use, por ejemplo:
plt.rcParams.update({
"text.usetex": True,
"font.family": "Helvetica"
})
o de manera equivalente, configure su matplotlibrc en:
text.usetex : true
font.family : Helvetica
También es posible establecer en su lugar font.family
uno de los nombres de familia genéricos y luego configurar la familia genérica correspondiente; p.ej:
plt.rcParams.update({
"text.usetex": True,
"font.family": "sans-serif",
"font.sans-serif": "Helvetica",
})
(este era el enfoque requerido hasta Matplotlib 3.5).
Aquí está el ejemplo estándar, Representación de ecuaciones matemáticas usando TeX :
![../../_images/sphx_glr_tex_demo_001.png](/stable/_images/sphx_glr_tex_demo_001.png)
Tenga en cuenta que el modo de visualización matemática ( ) no es compatible, pero agregar el comando , como en la demostración anterior, producirá los mismos resultados.$$ e=mc^2 $$
\displaystyle
Los caracteres que no son ASCII (p. ej., el signo de grado en la etiqueta y anterior) se admiten en la medida en que inputenc los admita .
Nota
Para mantener la coherencia con el caso que no es usetex, Matplotlib usa casos especiales de líneas nuevas, de modo que las líneas nuevas únicas produzcan saltos de línea (en lugar de interpretarse como espacios en blanco en LaTeX estándar).
Matplotlib usa el paquete de guiones bajos_
para que los guiones bajos ( ) se impriman "tal cual" en modo de texto (en lugar de causar un error como en LaTeX estándar). Los guiones bajos siguen introduciendo subíndices en el modo matemático.
Nota
Ciertos caracteres requieren un escape especial en TeX, como:
# $ % & ~ ^ \ { } \( \) \[ \]
Por lo tanto, estos caracteres se comportarán de manera diferente dependiendo de
rcParams["text.usetex"]
(predeterminado: False
). Como se indicó anteriormente, los guiones bajos ( _
) no requieren escaparse fuera del modo matemático.
Opciones PostScript #
Para producir archivos PostScript encapsulados (EPS) que se pueden incrustar en un nuevo documento LaTeX, el comportamiento predeterminado de Matplotlib es destilar la salida, lo que elimina algunos operadores PostScript utilizados por LaTeX que son ilegales en un archivo EPS. Este paso produce resultados que pueden ser inaceptables para algunos usuarios, porque el texto se rasteriza en forma tosca y se convierte en mapas de bits, que no son escalables como el PostScript estándar, y el texto no se puede buscar. Una solución es establecer rcParams["ps.distiller.res"]
(predeterminado: 6000
) un valor más alto (quizás 6000) en la configuración de rc, lo que producirá archivos más grandes pero puede verse mejor y escalar razonablemente. Se puede activar una mejor solución, que requiere Poppler o XpdfrcParams["ps.usedistiller"]
, cambiando (predeterminado: None
) axpdf
. Esta alternativa produce PostScript sin rasterizar el texto, por lo que se escala correctamente, se puede editar en Adobe Illustrator y buscar texto en documentos PDF.
Posibles bloqueos #
En Windows, el
PATH
Es posible que sea necesario modificar la variable de entorno para incluir los directorios que contienen los ejecutables latex, dvipng y ghostscript. Consulte Variables de entorno y Configuración de variables de entorno en Windows para obtener más detalles.Usando MiKTeX con fuentes Computer Modern, si obtiene resultados extraños *Agg y PNG, vaya a MiKTeX/Opciones y actualice sus archivos de formato
En Ubuntu y Gentoo, la instalación básica de texlive no se envía con el paquete type1cm. Es posible que deba instalar algunos de los paquetes adicionales para obtener todas las ventajas que vienen con otras distribuciones de LaTeX.
Se han realizado algunos avances, por lo que Matplotlib utiliza los archivos dvi directamente para el diseño del texto. Esto permite que LaTeX se use para el diseño de texto con los backends pdf y svg, así como los backends *Agg y PS. En el futuro, una instalación de LaTeX puede ser la única dependencia externa.
Solución de problemas #
Intenta eliminar tu
.matplotlib/tex.cache
directorio. Si no sabe dónde encontrarlo.matplotlib
, consulte la configuración de matplotlib y las ubicaciones del directorio de caché .Asegúrese de que LaTeX, dvipng y ghostscript estén funcionando y en su
PATH
.Asegúrese de que lo que está tratando de hacer sea posible en un documento LaTeX, que su sintaxis LaTeX sea válida y que esté utilizando cadenas sin procesar si es necesario para evitar secuencias de escape no deseadas.
rcParams["text.latex.preamble"]
(predeterminado:''
) no se admite oficialmente. Esta opción proporciona mucha flexibilidad y muchas maneras de causar problemas. Desactive esta opción antes de informar problemas a la lista de correo.Si aún necesita ayuda, consulte Cómo obtener ayuda .