
Wenn ich Grafiken mit einführe \includegraphics[width=0.5\textwidth]{fig}
, verarbeitet tex4ht diese in eine bestimmte Anzahl von Pixeln (ich bin nicht sicher, wie – vermutlich gibt es eine ppi-Einstellung, die ich noch nicht gesehen habe?) und erstellt ein <img src="..." width="276" height="276">
Beispiel, aber was mir natürlich erscheinen würde, wäre beispielsweise <img src="..." style="width: 50%;">
.
Es gab schon einmal eine ähnliche Frage -- indiese Antwort, michal.h21 gibt ein Beispiel, wo diese Breiten als „276pt“ (oder ähnlich) erscheinen, aber
(1) ich sehe das nicht, wenn ich einen Test kompiliere – ich sehe nur Zahlen, die meines Wissens in px angegeben sein sollten – obwohl diese Antwort natürlich schon vor 6 Jahren kam;
(2) dies scheint ohnehin kein zulässiges HTML zu sein; und
(3) weder die px- noch die pt-Werte skalieren mit dem Ansichtsfenster (oder, was vielleicht relevanter ist, der formatierten Größe der umgebenden Abbildung).
Das führt mich zu der Frage: Gibt es eine Möglichkeit, relative Bildgrößen direkt mit tex4ht zu verwenden?
Antwort1
Bearbeiten: Der folgende Code ist jetzt in die TeX4ht-Quellen integriert. Sie können ihn mit der Gin-percent
Option anfordern. Es kann jedoch einige Zeit dauern, bis er in TeX Live integriert ist.
Die verlinkte Antwort ist wirklich alt und überholt. Sie können \Configure{Gin-dim}
den Befehl verwenden, um die Art und Weise zu ändern, wie Bildabmessungen jetzt berechnet werden. Standardmäßig greift TeX4ht auf Informationen zu Bildabmessungen zurück, die vom Grafikpaket bereitgestellt werden. Wenn Sie also explizite Abmessungen verwenden (wie width=0.5\textwidth
), wird die tatsächliche von TeX berechnete Abmessung verwendet.
Ein Problem besteht darin, dass, wenn Sie nur eine Dimension festlegen, z. B. die Breite, die andere Dimension auf denselben Wert gesetzt wird. Dies ist normalerweise nicht erwünscht, es sei denn, Ihr Bild ist quadratisch. Um den richtigen Wert für alle Dimensionen zu erhalten, verwendet Graphics eine .xbb
Datei für das Bild. Diese kann mit dem folgenden Befehl erstellt werden:
ebb -x *.jpg
Führen Sie den entsprechenden Befehl für jedes andere unterstützte Bildformat aus, das Sie verwenden. Dadurch wird sichergestellt, dass für implizit berechnete Abmessungen die richtigen Werte verwendet werden.
Nun zu Ihrer eigentlichen Frage. Dank des LaTeX 3-Projekts können wir das l3fp
Paket jetzt verwenden, um die Bildabmessungen in Prozent zu berechnen. Es ist viel einfacher zu verwenden als \dimexpr
der Befehl, der viele Einschränkungen hat.
Versuchen Sie es mit der folgenden .cfg
Datei:
\Preamble{xhtml}
\makeatletter
\ExplSyntaxOn
\Configure{Gin-dim}{style="width:\fp_eval:n{round(\Gin@req@width/\textwidth*100,2)}\char_generate:nn { `\% } { 12 }"}
\ExplSyntaxOff
\makeatother
\begin{document}
\EndPreamble
In dieser Konfiguration teilen wir die von Graphics bereitgestellte Bildbreite durch die Textbreite. Dies wird dann multipliziert, um den richtigen Prozentwert zu erhalten.
Für diese Beispieldatei:
% https://tex.stackexchange.com/q/563276/2891
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.5\textwidth]{example-image.png}
\end{document}
Sie erhalten diesen HTML-Code:
<p class='noindent'><img style='width:50%' alt='PIC' src='example-image.png' /> </p>