Alterar fonte dos diagramas tikz em html produzido por make4ht

Alterar fonte dos diagramas tikz em html produzido por make4ht

Estou construindo um documento HTML a partir de um arquivo latex usando make4ht. Configurei com sucesso a fonte do corpo do documento para Libertinus Serif usando CSS. Mas não consigo definir a fonte usada pelo make4ht para construir diagramas tikz. Alguém pode me ajudar a fazer isso?

\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}

Meu comando é make4ht -l -m draft -c myconfig.cfg -f html5 main.texe o conteúdo de myconfig.cfgé

\Preamble{xhtml}

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

\begin{document}
\EndPreamble

O resultado é:

captura de tela da página da web

Você pode ver claramente que, além da diferença de tamanho, as fontes não são as mesmas. A imagem Tikz está usando a fonte padrão Latin/Computer Modern, e não Libertinus Serif usada no parágrafo acima (preste atenção na cauda de u e no nariz de r).

Como faço para renderizar a imagem tikz com a mesma fonte Libertinus Sans?

Responder1

Todas as fontes são suprimidas no --luamodo TeX4ht, pois precisamos evitar o carregamento de fontes OpenType, o que causa um erro fatal. Você ainda pode alternar manualmente para fontes Tipo 1 apenas para o ambiente TikZ. Este arquivo de configuração deve fazer isso:

\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

Observe que também alterei sua configuração para a fonte do texto, pois o \Csscomando adiciona coisas no final do arquivo CSS, mas as @importregras devem estar no topo do arquivo CSS. Esta configuração os coloca diretamente no documento HTML, onde funciona.

Este é o resultado:

insira a descrição da imagem aqui

informação relacionada