这回答展示如何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}
它们声明了两个环境,smalltext
和tinytext
。它们使用您最初在 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
结果如下: