Cambiar la fuente de los diagramas tikz en html producidos por make4ht

Cambiar la fuente de los diagramas tikz en html producidos por make4ht

Estoy creando un documento html a partir de un archivo latex usando make4ht. Configuré exitosamente la fuente del cuerpo del documento en Libertinus Serif usando CSS. Pero no puedo configurar la fuente que utiliza make4ht para crear diagramas tikz. ¿Alguien puede ayudarme a hacer eso?

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{positioning}

% These lines don't help either:
% \usepackage{fontspec}
% \setmainfont{Libertinus Serif}
% \setsansfont{Libertinus Sans}
% \setmonofont{Libertinus Mono}[Scale=MatchLowercase]
\usepackage{libertinus}

\begin{document}

``Lorem'' ``ipsum''

\begin{tikzpicture}
  \node (x) {``Lorem''};
  \node[right=of x] (y) {``ipsum''};
  \draw[->] (x) to (y);
\end{tikzpicture}

\end{document}

Mi comando es make4ht -l -m draft -c myconfig.cfg -f html5 main.texy el contenido de myconfig.cfges

\Preamble{xhtml}

\Css{
  @import url('https://fonts.cdnfonts.com/css/libertinus-serif');
  body{ 
    font-family: "Libertinus Serif", serif; 
  }
} 

\begin{document}
\EndPreamble

El resultado es:

captura de pantalla de la página web

Puedes ver claramente que, aparte de la diferencia de tamaño, las fuentes no son iguales. La imagen de Tikz utiliza la fuente latina/computadora moderna predeterminada, y no Libertinus Serif utilizada en el párrafo anterior (preste atención a la cola de u y la punta de r).

¿Cómo hago para que una imagen tikz se represente con la misma fuente Libertinus Sans?

Respuesta1

Todas las fuentes se suprimen en el --luamodo TeX4ht, porque necesitamos evitar la carga de fuentes OpenType, lo que provoca un error fatal. Aún puedes cambiar manualmente a fuentes Tipo 1 solo para el entorno TikZ. Este archivo de configuración debería hacer eso:

\Preamble{xhtml}
\AddToHook{env/tikzpicture/begin}{\fontfamily{LibertinusSerif-TLF}\selectfont}

\Configure{@HEAD}{\HCode{
<style type="text/css">
  @import url('https://fonts.cdnfonts.com/css/libertinus-serif');
  body{ 
    font-family: "Libertinus Serif", serif; 
  }
</style>}}
\begin{document}
\EndPreamble

Tenga en cuenta que también cambié su configuración para la fuente del texto, porque el \Csscomando agrega cosas al final del archivo CSS, pero las @importreglas deben estar en la parte superior del archivo CSS. Esta configuración los coloca directamente en el documento HTML, donde funciona.

Este es el resultado:

ingrese la descripción de la imagen aquí

información relacionada