
當我使用 引入圖形時\includegraphics[width=0.5\textwidth]{fig}
, tex4ht 將其處理為一定數量的像素(我不確定如何 - 大概有一個我沒有遇到過的 ppi 設定?)並生成一個<img src="..." width="276" height="276">
例如,但對我來說看起來很自然的是,說,<img src="..." style="width: 50%;">
。
之前有一個類似的問題——這個答案,michal.h21 給出了一個示例,其中這些寬度顯示為“276pt”(或類似),但是
(1)我在編譯測試時沒有看到這一點- 我只看到數字,我理解應該以px 為單位 - - 當然,這個答案已經是 6 年前的事了;
(2) 無論如何,這似乎不是合法的 html; (3) px和
pt 值都不會隨視窗縮放(或者,也許更相關的是,周圍圖形的樣式大小)。
所以這引出了我的問題:有沒有辦法直接使用 tex4ht 的相對圖片大小?
答案1
編輯:下面的程式碼現在內建到 TeX4ht 來源中,您可以使用該Gin-percent
選項來要求它。不過,可能需要一些時間才能包含在 TeX Live 中。
那個連結的答案確實很舊而且過時了。現在您\Configure{Gin-dim}
可以使用命令更改圖像尺寸的計算方式。預設情況下,TeX4ht 依賴 Graphics 套件提供的有關圖像尺寸的資訊。因此,如果您使用顯式尺寸(例如width=0.5\textwidth
),則使用 TeX 計算的實際尺寸。
一個問題是,如果您僅設定一個維度(例如寬度),則另一個維度將設定為相同的值。您通常不希望這樣,除非您的圖像是正方形。為了獲得所有尺寸的正確值,圖形使用.xbb
圖像檔案。可以使用以下命令創建它:
ebb -x *.jpg
為您使用的所有其他受支援的映像格式執行類似的命令。這將確保隱式計算的尺寸使用正確的值。
現在,回答你的實際問題。感謝 LaTeX 3 項目,我們現在可以使用該l3fp
套件來計算圖像尺寸的百分比。它比命令更容易使用\dimexpr
,但命令有很多限制。
嘗試以下.cfg
文件:
\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
在此配置中,我們將 Graphics 提供的圖像寬度除以文字寬度。然後將其相乘以以獲得正確的百分比值。
對於此範例檔案:
% https://tex.stackexchange.com/q/563276/2891
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=0.5\textwidth]{example-image.png}
\end{document}
您將獲得以下 HTML 程式碼:
<p class='noindent'><img style='width:50%' alt='PIC' src='example-image.png' /> </p>