tex4ht 使用透明包时出现编译错误

tex4ht 使用透明包时出现编译错误

我尝试https://ctan.org/pkg/transparent包。与 tex4ht 一起使用时出现错误。相同的代码在 lualatex 和 pdf 中运行正常。

有没有办法让它与 tex4ht 一起工作?这是 MWE

\documentclass[12pt]{book}
\usepackage{graphicx}
\usepackage{transparent}
\begin{document} 

some text here

More text here

\transparent{1}\includegraphics[width=0.5\textwidth]{example-image-a}

More text here

More text here
\end{document}

使用编译

 make4ht  -ulm default -a debug foo2.tex "mathjax,htm,nostyle"

给出

/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
(./foo2.aux) (/usr/local/texlive/2023/texmf-dist/tex/latex/base/ts1cmr.fd)
! Undefined control sequence.
l.12 \transparent
               {1}\includegraphics[width=0.5\textwidth]{example-image-a}
? 

Linux 上的 TL 2023。

tex4ht 追踪

答案1

尝试这个配置文件transparent.4ht

\providecommand\transparent[1]{}
\NewConfigure{texttransparent}{2}
\providecommand\texttransparent[2]{\def\transparent:opacity{#1}\a:texttransparent#2\b:texttransparent}
\Configure{texttransparent}{\HCode{<span class="texttransparent" style="opacity:\transparent:opacity;">}}{\HCode{</span>}}
\Hinput{transparent}
\endinput

它定义了虚拟\transparent命令,但\texttransparent实际上可以用于 HTML 中的透明度。

以下是一个示例:

\documentclass[12pt]{article}

\usepackage{color}
\usepackage{transparent}

\begin{document}
\colorbox{yellow}{%
\bfseries
 \color{blue}%
 Blue and %
 \transparent{0.6}%
 transparent blue%
 }

 \bigskip
 Hello World
 \texttransparent{0.5}{Hello World}
 Hello World
 \end{document}

结果如下:

在此处输入图片描述

如您所见,\color\transparency都没有任何效果,因为我找不到如何可靠地支持它们以进行 HTML 输出的方法。

答案2

原始透明包不支持 dvi 模式,它仅适用于 lualatex 和 pdflatex。

如果你加载新的 pdfmanagement 和扩展的后端代码

\DocumentMetadata{}
\documentclass{article}

它将不再出错(只要 tex4ht 不禁用\DocumentMetadata),但我不知道 tex4ht 是否会在 html 中用它做一些明智的事情。

另外,您可以提供一个后备定义:

\documentclass[12pt]{book}
\usepackage{graphicx}
\usepackage{transparent}
\providecommand\transparent[1]{}
\begin{document} 

some text here

More text here

\transparent{1}\includegraphics[width=0.5\textwidth]{example-image-a}

More text here

More text here
\end{document}

相关内容