如何在 tex4ht 中缩放数学?

如何在 tex4ht 中缩放数学?

我需要使用 tex4ht 缩放一些数学公式。我认为这仅在将 latex 编译为 HTML 时才有效,此时需要告诉 tex4ht 使用 svg 而不是 mathjax 来计算数学公式。

ps.(如果 math 可以使用 mathjax 模式扩展,那就更好了,但是当我尝试使用 make4ht 并使用 mathjax 模式进行下面的 MWE 时,它也没有扩展,我认为这是因为 mathjax 不支持这些扩展命令)。

但我无法让它工作。我尝试了\scalebox\resizebox\adjustbox。它们都没有用。但它们都可以在 PDF 中使用 lualatex。

我是不是做错了什么,还是 tex4ht 不支持这个功能?下面是 MWE 以及我使用的命令和 .cfg

\documentclass[12pt]{article}     
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{adjustbox}

\newcommand*{\mycell}{%
\begin{minipage}{\linewidth}
\begin{align*}y''+(y')^{2}+y' +  y''+(y')^{2}+y'+y''+(y')^{2}+y' +y'' + (y')^{2}+y' + y''+(y')^{2}+y' +  y''+(y')^{2}+y'+y''+(y')^{2}+y' +y''+(y')^{2}+y' &= 0 
\end{align*}
\end{minipage}
}

\begin{document}   

\mycell 

\scalebox{0.3}{\mycell}

\resizebox{2in}{!}{\mycell}

\adjustbox{width=3in}{\mycell} 

\end{document}

现在lualatex foo2.tex给出

在此处输入图片描述

所以它成功了。现在使用以下方式编译为 HTML

make4ht -ulm  default -a debug -c svg.cfg foo2.tex "htm"

其中 svg.cfg 是我在切换到 mathjax 进行数学计算之前使用的旧 svg.cfg 文件的小版本,我现在不确定它是否需要进行任何更改。

\Preamble{ext=htm,charset="utf-8",p-width,pic-align}
\DeclareGraphicsExtensions{.svg,.png,.jpg}
\Configure{Picture}{.svg}

\Configure{VERSION}{}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}
\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{}
\Configure{@HEAD}{\HCode{<meta charset="utf-8"/>\Hnewline}}

\DeclareGraphicsExtensions{.svg,.png}

%need this below for MATH.
\Configure{Picture}{.svg}

\begin{document}
%add any custome \Css or HTML commands here as needed.

%These to tell tex4ht to make inline math images also
\Configure{$}{\PicMath}{\EndPicMath}{}
\Configure{PicMath}{}{}{}{class="math";align="absmiddle"}

生成的 HTML 将数学显示为 svg 图像,但所有数学都是相同大小。编译为 pdf 时没有进行缩放。

问题是:tex4ht 是否支持数学方程式的缩放,即使使用图像进行数学运算而不是 mathjax?

Linux 上的 TL 2021。

答案1

您需要更改数学中的字体大小以使文本变小。任何框大小调整都不起作用,因为只有数学内容会转换为图片,而不是数学之外的转换。试试这个:

\documentclass[12pt]{article}     
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{adjustbox}

\newcommand\smallermath[1]{\begingroup\footnotesize #1\endgroup}
\newcommand*{\mycell}{%
\begin{minipage}{\linewidth}
\begin{align*}y''+(y')^{2}+y' +  y''+(y')^{2}+y'+y''+(y')^{2}+y' +y'' + (y')^{2}+y' + y''+(y')^{2}+y' +  y''+(y')^{2}+y'+y''+(y')^{2}+y' +y''+(y')^{2}+y' &= 0 
\end{align*}
\end{minipage}
}

\begin{document}   

\mycell 

\scalebox{0.3}{\mycell}

\resizebox{2in}{!}{\mycell}

\adjustbox{width=3in}{\mycell} 

\smallermath{\mycell}

\end{document}

我添加了一个新命令, \smallermath用于选择\footnotesize字体大小。结果如下:

在此处输入图片描述

对于 MathJax 模式,您需要使用 CSS 调整字体大小。尝试此.cfg文件:

\Preamble{xhtml,mathjax}
\renewcommand\smallermath[1]{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="smallermath">}#1\HCode{</div>}}
\Css{.smallermath{font-size:0.8em;}}
\begin{document}
\EndPreamble

它重新定义\smaallermath生成<div class="smallermath">然后使用 CSS 定义字体大小。

结果:

在此处输入图片描述

相关内容