
でグラフィックスを導入すると\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 によって計算された実際の寸法が使用されます。
1 つの問題は、幅など 1 つの寸法のみを設定すると、他の寸法も同じ値に設定されてしまうことです。画像が正方形でない限り、通常はこのようなことは望ましくありません。すべての寸法の正しい値を取得するために、Graphics は.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>