如何使 minted 选项与 tex4ht 配合使用?字体大小不变

如何使 minted 选项与 tex4ht 配合使用?字体大小不变

回答展示如何minted在 tex4ht 中使用。

但是选项似乎没有像 pdf 那样传递。

例如,尝试更改字体大小,如下所示这个答案tex4ht 无法使用与 pdf 相同的代码。HTML 中的字体大小保持不变。

这是 MWE 和使用的命令。问题是:如何使用 tex4ht 更改 minted 的字体大小?

\documentclass[12pt]{article}
\usepackage{minted}
\begin{document}

example 1

\begin{minted}{c}
int main() { 
printf("hello, world");
return 0;
}
\end{minted}

example 2

\begin{minted}[fontsize=\footnotesize]{Text}
`Methods for first order ODEs:
--- Trying classification methods ---
trying a quadrature
<- quadrature successful`
\end{minted}

example 3

\begin{minted}[fontsize=\tiny]{Text}
`Methods for first order ODEs:
--- Trying classification methods ---
trying a quadrature
<- quadrature successful`
\end{minted}

\end{document}

使用 TL 2021 进行编译lualatex -shell-escape foo.tex可获得预期输出

在此处输入图片描述

但使用 tex4ht 编译

make4ht --shell-escape -ulm default -c my_cfg.cfg foo.tex "mathjax,htm"

给出 HTML

在此处输入图片描述

这表明字体大小没有通过。

以下是my_cfg.cfg上述命令中使用的文件

\Preamble{xhtml,p-width}

%see https://tex.stackexchange.com/questions/554995/creating-better-html-code-with-minted-and-tex4ht
\ConfigureEnv{minted}{\NoFonts}{\EndNoFonts}{}{}
\begin{document}
\EndPreamble

有没有什么解决方法可以让所有的 minted 选项也能与 tex4ht 兼容?如果不是所有选项,至少让 fontsize 正常工作会很有用。

答案1

您使用 明确禁用了 TeX4ht 字体处理ConfigureEnv{minted}{\NoFonts}{\EndNoFonts}。因此,如果您删除此代码,您将获得正确的列表字体大小。但缺点是会创建大量 HTML 代码。如果您想要更简洁的代码,可以使用 CSS 声明特定环境的字体大小。

就我个人而言,我会为您想要使用的每种特定字体大小创建新的 minted 环境。请参阅更新的 MWE:

\documentclass[12pt]{article}
\usepackage{minted}
\newminted[smalltext]{Text}{fontsize=\footnotesize}
\newminted[tinytext]{Text}{fontsize=\tiny}
\begin{document}

example 1

\begin{minted}{c}
int main() { 
printf("hello, world");
return 0;
}
\end{minted}

example 2

\begin{smalltext}
`Methods for first order ODEs:
--- Trying classification methods ---
trying a quadrature
<- quadrature successful`
\end{smalltext}

example 3

\begin{tinytext}
`Methods for first order ODEs:
--- Trying classification methods ---
trying a quadrature
<- quadrature successful`
\end{tinytext}

\end{document}

重要的几行如下:

\newminted[smalltext]{Text}{fontsize=\footnotesize}
\newminted[tinytext]{Text}{fontsize=\tiny}

它们声明了两个环境,smalltexttinytext。它们使用您最初在 Minted 环境中使用的文本语法和脚尺寸。

然后您可以在 TeX4ht 中配置它们以生成一些 HTML 代码并使用 CSS 对其进行样式设置:

\Preamble{xhtml,p-width}

%see https://tex.stackexchange.com/questions/554995/creating-better-html-code-with-minted-and-tex4ht

\ConfigureEnv{minted}{\NoFonts}{\EndNoFonts}{}{}
\ConfigureEnv{smalltext}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="smalltext">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}{}{}
\Css{.smalltext{font-size:0.9rem;}}
\ConfigureEnv{tinytext}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="tinytext">}}{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}{}{}
\Css{.tinytext{font-size:0.7rem;}}
\begin{document}
\EndPreamble

结果如下:

在此处输入图片描述

相关内容