这个问题是tex4ht:自定义 \includegraphics 转换为 HTML以及生成html的时候如何指定图像大小?
背景
在我的.tex
文件中,我指定要包含的图像如下:
\includegraphics[alt={alt tags, information}]{example-image-a}
并将img
元素包裹在其自己的容器中:
<div class="figure"><!--l. 7-->
<p class="noindent"></p>
<div class="my-box"><img src="mwe0x.png" alt="PIC" class=
"my-class" /></div>
<!--l. 8-->
<p class="indent"></p>
</div>
我使用以下内容cmh.cfg
:
\Preamble{html5}
\makeatletter
\define@key{Gin}{alt}{}
\Configure{GraphicsAlt}{my alt text}
\Configure{graphics}
{\HCode{<div class="my-box">}%
\Picture+[PIC]{ class="my-class"}}
{\EndPicture \HCode{</div>}}
\begin{document}
\EndPreamble
并使用以下调用生成上述 html 输出:
make4ht -u -f html5 -c cmh.cfg mwe.tex
目标
我希望ALT
通过includegraphics
通话来更新标签。
我尝试了以下修改cmh.cfg
\Picture+[\a:GraphicsAlt]{ class="my-class"}}
但这导致
缺少 $ 插入
问题
我如何更改我的cmh.cfg
文件以便img
元素接收自定义alt
标签和我的自定义类?
麦格
\documentclass{article}
\usepackage{graphicx}
\begin{document}
here is some text
\begin{figure}
\includegraphics[alt={descriptions,info}]{example-image-a}
\end{figure}
\end{document}
cmh.cfg
\Preamble{html5}
\makeatletter
\define@key{Gin}{alt}{}
\Configure{GraphicsAlt}{my alt text}
\Configure{graphics}
{\HCode{<div class="my-box">}%
\Picture+[PIC]{ class="my-class"}}
{\EndPicture \HCode{</div>}}
\begin{document}
\EndPreamble
称呼
make4ht -u -f html5 -c cmh.cfg mwe.tex
答案1
我将使用以下配置文件:
\Preamble{xhtml}
\makeatletter
\DeclareGraphicsExtensions{.png,.jpg,.svg}
\define@key{Gin}{alt}{\Configure{GraphicsAlt}{#1}}
\def\mygraphics{{\Configure{Needs}{File: \Gin@base\Gin@ext}\Needs{}}%
\ifvmode\IgnorePar\fi\EndP\HCode{<div class="my-box">}\Picture[\csname a:GraphicsAlt\endcsname]{{\Gin@base\Gin@ext} \csname a:Gin-dim\endcsname class="my-class"
}\HCode{</div>}\ShowPar}
\Configure{graphics*}
{png}
{\mygraphics}
\Configure{graphics*}
{jpg}
{\mygraphics}
\Configure{graphics*}
{jpeg}
{\mygraphics}
\Configure{graphics*}
{svg}
{\mygraphics}
\begin{document}
\EndPreamble
用于\DeclareGraphicsExtension
声明 HTML 支持的图形文件类型。\mygraphics
宏包含为图形插入的通用代码,尤其是尺寸、alt 和 class。然后将其用于支持的图形类型的配置中,这样我们就可以省去一些重复。alt 文本由 声明\define@key{Gin}{alt}{\Configure{GraphicsAlt}{#1}}
。
您还需要将example-image-a.png
文件复制到当前目录并使用ebb -x example-image-a.png
命令保存其尺寸。
结果:
<!--l. 8--><p class="noindent" >here is some text </p><figure class="figure">
<!--l. 10--><p class="noindent" ></p><div class="my-box"><img
src="example-image-a.png" alt="descriptions,info"
width="401" height="301" class="my-class" /></div>
</figure>