Ändern Sie die Schriftart von Tikz-Diagrammen in HTML, die von make4ht erstellt wurden

Ändern Sie die Schriftart von Tikz-Diagrammen in HTML, die von make4ht erstellt wurden

Ich erstelle ein HTML-Dokument aus einer Latex-Datei mithilfe von make4ht. Ich habe die Schriftart des Dokumenttexts mithilfe von CSS erfolgreich auf Libertinus Serif eingestellt. Aber ich kann die Schriftart, die von make4ht zum Erstellen von Tikz-Diagrammen verwendet wird, nicht einstellen. Kann mir jemand dabei helfen?

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

Mein Befehl ist make4ht -l -m draft -c myconfig.cfg -f html5 main.texund der Inhalt myconfig.cfgist

\Preamble{xhtml}

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

\begin{document}
\EndPreamble

Das Ergebnis ist:

Screenshot der Webseite

Sie können deutlich sehen, dass die Schriftarten abgesehen von den Größenunterschieden nicht gleich sind. Das Tikz-Bild verwendet die standardmäßige Schriftart Latin/Computer Modern und nicht Libertinus Serif, die im Absatz darüber verwendet wird (achten Sie auf das Ende des u und die Spitze des r).

Wie erstelle ich ein Tikz-Bild mit derselben Schriftart Libertinus Sans?

Antwort1

Im --luaTeX4ht-Modus werden alle Schriftarten unterdrückt, da wir das Laden von OpenType-Schriftarten verhindern müssen, da dies zu einem schwerwiegenden Fehler führt. Sie können jedoch weiterhin manuell auf Type-1-Schriftarten umschalten, nur für die TikZ-Umgebung. Diese Konfigurationsdatei sollte das tun:

\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

Beachten Sie, dass ich auch Ihre Konfiguration für die Textschriftart geändert habe, da der \CssBefehl am Ende der CSS-Datei Dinge hinzufügt, die @importRegeln jedoch am Anfang der CSS-Datei stehen müssen. Diese Konfiguration fügt sie direkt in das HTML-Dokument ein, wo sie funktioniert.

Dies ist das Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen