使用 make4ht+mathjax-node-page 时仍然出现意外结果

使用 make4ht+mathjax-node-page 时仍然出现意外结果

我在这里问了一个问题老问题,我完全按照答案操作,现在重音问题已经解决,但仍然有一些错误。这是我的 html,我已将其转换为图片。 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 我认为 tex4ht 或 make4ht 的默认 CSS 设置存在一些错误。希望有人可以修复它们。我使用 texlive 2019。

答案1

好吧,这似乎有很多问题 :) 我已经更新了 TeX4ht 源代码,修复了这里介绍的大部分问题,所以它们很快就会变得不再需要。一些问题也在 中得到修复make4ht,因此您将需要开发版本

问题 1 - 巨大文本。

这是由extarticle类引起的,因为文档选择 20pt 的字体大小作为基本字体大小。TeX4ht 可以检测字体大小并生成 CSS 指令以在文档中使用这些大小。在这种情况下,我们显然不希望出现这种情况。

要修复该问题,请使用以下版本extarticle.4ht

\ifnum\@ptsize>12\relax
\renewcommand\@ptsize{10}
\input{size\@ptsize.clo}
\fi
\Hinput{extarticle}
\endinput

命令的大小\verb将在配置文件中固定

问题 2 - 积分的大小

这是 TeX4ht 中的错误,它生成了错误的 MathML 结构。

问题 3 - 非斜体数学文本

中的错误make4ht,它应该由开发版本修复。

问题 4 - 缺少\boldsymbol支持

现在应该支持了。

请注意,一些问题也可能是由 MathML 与 TeX 的渲染方式不同引起的,情况并不总是相同的。我注意到,例如,第 7 节中的多行代码在 Firefox 中被拆分为多行,但在 MathJax 中仍保留在一行中。

这是更新后的配置文件:

\Preamble{xhtml,mathml,fn-in,html5}  
\Css{body{  
    margin:40px auto;  
    max-width:36em;  
    line-height:1.6;  
    font-size:1em; 0.88em;  
    color:\#222;  
    background-color:\#FEFEF7;  
    padding:0 10px;}}  
\Css{h1,h2,h3{line-height:1.2}}  
\Css{p.indent{text-indent:0;}}  
\Css{@media (min-width: 29.63em){  
  :root {  
    font-size: 3vw;  
  }  
}}  

\Css{@media (min-width: 40.74em){  
  :root {  
    font-size: 1.375em;  
  }  
}}  




\Css{body {  
font-family: STIXGeneral, "Linux Libertine O", Gentium, Georgia,  
"Times New Roman",  "Iowan Old Style",  
 Palatino Linotype, Palatino, serif;  
}}  

\Configure{verb}{\NoFonts\HCode{<code>}}{\HCode{</code>}\EndNoFonts}
%\Css{code{font-family:monospace,monospace}}
\begin{document}  
\catcode`\:=11

\def\myop#1{\PauseMathClass\HCode{<mo accent="true">}#1\HCode{</mo>}\EndPauseMathClass}
\def\:vec:over{\ifmmode\expandafter\myop\fi{\x:unicode{2192}}}
\def\:grave:over{\ifmmode\expandafter\myop\fi{\x:unicode{0300}}}
\def\:acute:over{\ifmmode\expandafter\myop\fi{\x:unicode{0301}}}
\def\:hat:over{\ifmmode\expandafter\myop\fi{\x:unicode{0302}}}
\def\:widehat:over{\ifmmode\expandafter\myop\fi{\x:unicode{0302}}}
\def\:tilde:over{\ifmmode\expandafter\myop\fi{\x:unicode{0303}}}
\def\:widetilde:over{\ifmmode\expandafter\myop\fi{\x:unicode{0303}}}
\def\:bar:over{\ifmmode\expandafter\myop\fi{\x:unicode{0304}}}
\def\:breve:over{\ifmmode\expandafter\myop\fi{\x:unicode{0306}}}
\def\:dot:over{\ifmmode\expandafter\myop\fi{\x:unicode{0307}}}
\def\:ddot:over{\ifmmode\expandafter\myop\fi{\x:unicode{0308}}}
\def\:uml:over{\ifmmode\expandafter\myop\fi{\x:unicode{0308}}}
\def\:ring:over{\ifmmode\expandafter\myop\fi{\x:unicode{030A}}}
\def\:Huml:over{\ifmmode\expandafter\myop\fi{\x:unicode{030B}}}
\def\:check:over{\ifmmode\expandafter\myop\fi{\x:unicode{030C}}}
\def\:d:under{\ifmmode\expandafter\myop\fi{\x:unicode{0323}}}
\def\:cedil:under{\ifmmode\expandafter\myop\fi{\x:unicode{0327}}}
\def\:b:under{\ifmmode\expandafter\myop\fi{\x:unicode{0331}}}
\def\:udot:over{\ifmmode\expandafter\myop\fi{\x:unicode{0361}}}


% handle integrals
\def\:tempc{\ifDisplayMath\mathop:prefix{largeop="true"}\fi\o:n:int::}
\HLet\n:int:\:tempc


\renewcommand\boldsymbol[1]{\HCode{<mstyle class="boldsymbol" mathvariant="bold-italic">}#1\HCode{</mstyle>}}

\def\mathop:prefix#1{%
   \Configure{mathop}{*}{<\a:mathml mo #1\Hnewline>}{</\a:mathml mo>}%
    {\Configure{mathop}{*}{<\a:mathml mo>}{</\a:mathml mo>}{}}}
\catcode`\:=12
\EndPreamble

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容