![如何禁用带有参数的命令?](https://linux22.com/image/413500/%E5%A6%82%E4%BD%95%E7%A6%81%E7%94%A8%E5%B8%A6%E6%9C%89%E5%8F%82%E6%95%B0%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
caption
我在编译时必须删除该包tex4ht
我发现它在 tex4ht 模式下存在问题,因此
因此我编辑了我的主要包含 tex 文件并执行了以下操作
\ifdefined\HCode %do not load caption package in tex4ht mode
\else
\usepackage{caption}% use only with lualatex and pdflatex
\fi
但由于我已经使用过它,并且有很多像这样使用它的代码
\begin{figure}[!htbp]
\centering
\captionsetup{width=.8\textwidth}
\includegraphics[width=0.9\textwidth]{problems/p1}
\caption{problem 1 description}%
\end{figure}
现在上面的代码在 tex4ht 模式下无法编译,因为 tex4ht 不知道\captionsetup
来自caption
包的设置是什么。
我不想手动编辑我碰巧使用上述内容的所有文件,并将上述每个情况更改为以下内容
\begin{figure}[!htbp]
\centering
\ifdefined\HCode
\else
\captionsetup{width=.8\textwidth}
\fi
\includegraphics[width=0.9\textwidth]{problems/p1}
\caption{problem 1 description}%
\end{figure}
因此我再次更改了我的主 tex 包含文件,将其重新定义\captionsetup
为在 tex4ht 模式下为无任何内容,如下所示
\ifdefined\HCode %disable caption
\newcommand{\captionsetup}{}
\else
\usepackage{caption}
\fi
但上述方法不起作用。现在当我用 tex4ht 编译时,我得到错误
! Missing number, treated as zero.
<to be read again>
}
l.52 \captionsetup{width=.8\textwidth}
禁用采用此类参数的命令的正确方法是什么,这样我就不必手动编辑所有乳胶文件?
Linux 上的 TL 2020。
答案1
TeX4ht 现在可以处理 Caption 包,因此您无需禁用它。以下示例有效:
\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\begin{document}
\begin{figure}[!htbp]
\centering
\captionsetup{width=.8\textwidth}
\includegraphics[width=0.9\textwidth]{example-image.png}
\caption{problem 1 description}%
\end{figure}
\end{document}