为什么 tex4ht 不旋转图像?

为什么 tex4ht 不旋转图像?

此 MWE 适用于lualatex

\documentclass[]{article}
\usepackage{mwe}
\begin{document}

\includegraphics[angle=90]{example-image}

\end{document}

图像旋转 90 度

Mathematica 图形

make4ht旋转

make4ht foo.tex

HTML 按原样显示图像。

Mathematica 图形

要做什么才能tex4ht旋转图像?这些图像是 TeXLive 2017 的一部分。

ls /usr/local/texlive/2017/texmf-dist/tex/latex/mwe/example-image.*
/usr/local/texlive/2017/texmf-dist/tex/latex/mwe/example-image.eps
/usr/local/texlive/2017/texmf-dist/tex/latex/mwe/example-image.jpg
/usr/local/texlive/2017/texmf-dist/tex/latex/mwe/example-image.pdf
/usr/local/texlive/2017/texmf-dist/tex/latex/mwe/example-image.png
/usr/local/texlive/2017/texmf-dist/tex/latex/mwe/example-image.tex

更新

发现错误。问题已修复。

我需要的是保留\DeclareGraphicsExtensions{.svg,.png,.eps,.jpg}但删除\Configure{graphics*}

为了清楚起见,这是最终的 .cfg

\Preamble{xhtml}

\DeclareGraphicsExtensions{.svg,.png,.eps,.jpg}

\makeatletter
\Configure{GraphicsAlt}{ALT\ifdefined\Grot@angle\Css{img[src="\PictureFile"]{transform: rotate(-\Grot@angle deg);}}\fi}
\makeatother

\begin{document}

\EndPreamble

现在make4ht -c ./nma.cfg foo.tex找到它p1.svg并旋转它。

\documentclass[]{article}
\usepackage{mwe}
\begin{document}

\includegraphics[width=\textwidth,angle=130]{p1}  %SVG image

\end{document}

感谢michal.h21的帮助和支持。

答案1

tex4ht确实不支持图像旋转,但可以使用一些技巧来添加支持。尝试以下配置文件:

\Preamble{xhtml}
\makeatletter
\Configure{GraphicsAlt}{ALT\ifdefined\Grot@angle\Css{img[src="\PictureFile"]{transform: rotate(-\Grot@angle deg);}}\fi}
\makeatother
\begin{document}
\EndPreamble

我利用了每个图像类型都会调用配置的事实GraphicsAlt,因此我们只需提供一次即可。\Grot@angle宏包含请求的角度。我们可以在定义当前图片时为其提供 CSS 声明。您的示例将生成以下 CSS 代码:

img[src="sample0x.png"]{transform: rotate(-90deg);}

它将以这种方式呈现(与另外两个样本一起):

在此处输入图片描述

tex4ht如您所见,旋转后的图片被裁剪了,这不太好,这也是我目前不想添加此功能的原因。如果有人知道如何使用 CSS 正确旋转图像,请告诉我。

相关内容