htlatex:带有 alt 标签和自定义类的 img

htlatex:带有 alt 标签和自定义类的 img

这个问题是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>

相关内容