tex4ht 中小节/段落标题使用的字体大小不一致。如何修复?

tex4ht 中小节/段落标题使用的字体大小不一致。如何修复?

我注意到在 tex4ht 中,段落标题使用的字体大小与节标题的字体大小相同(即太大),而小节的字体大小小于段落使用的字体大小,而段落的字体应该更大或至少相同大小。

由于字体大小可以表明顺序,这会使标题看起来令人困惑。

字体大小应从章节到段落逐渐减小。现在它减小了,但一旦到达段落,它就开始增大。

在 PDF 中,它是一致的,因为大小从章节到段落正确地减小。下面的屏幕截图

平均能量损失

\documentclass{book}

\setcounter{tocdepth}{5}
\setcounter{secnumdepth}{5}

\begin{document}
\title{my book title}
\author{me}
\date{\today}
\maketitle

\part{first part}
\chapter{first chapter}
\section{first section}
\subsection{first subsection}
\subsubsection{first subsubsection}
\paragraph{first paragraph}

\end{document}

使用编译

make4ht -ulm default -a debug  foo.tex 'mathjax,htm'

给予

在此处输入图片描述

与 pdf 相比,其尺寸均匀减小(但很难看出段落使用的字体是否小于或与子部分相同,但至少它不像 HTML 那样大)

在此处输入图片描述

问题是: 如何让 tex4ht 中段落标题使用的字体大小不大于子小节?有没有办法控制这些设置?

TL 2022

票证链接

答案1

TeX4ht 实际上根本不为节指定任何字体大小。因此,浏览器使用的默认样式似乎导致命令<h5>生成的节级别\subsubsection小于正常文本。\paragraph生成的标题与周围文本大小相同,只是以粗体显示。由于段落文本紧跟在标题之后,因此您不能为此使用 HTML 节元素。

您可以使用 CSS 轻松更改它:

\Preamble{xhtml}
\Css{.partHead { font-size: 2em; }}
\Css{.chapterHead { font-size: 1.7411em; }}
\Css{.sectionHead { font-size: 1.5157em; }}
\Css{.subsectionHead { font-size: 1.3195em; }}
\Css{.subsubsectionHead { font-size: 1.1487em; }}
\begin{document}
\EndPreamble

结果如下:

在此处输入图片描述

答案2

标题生成的 html 如下所示(稍微清理了一下):

<h1 class='partHead' id='first-part'><span class='titlemark'>Part I<br /></span><a id='x1-1000I'></a>first part</h1>  
<h2 class='chapterHead' id='first-chapter'><span class='titlemark'>Chapter 1</span><br /><a id='x1-20001'></a>first chapter</h2>
<h3 class='sectionHead' id='first-section'><span class='titlemark'>1.1   </span> <a id='x1-30001.1'></a>first section</h3>
<h4 class='subsectionHead' id='first-subsection'><span class='titlemark'>1.1.1   </span> <a id='x1-40001.1.1'></a>first subsection</h4>
<h5 class='subsubsectionHead' id='first-subsubsection'><span class='titlemark'>1.1.1.1   </span> <a id='x1-50001.1.1.1'></a>first subsubsection</h5>
<span class='paragraphHead' id='first-paragraph'><a id='x1-60001.1.1.1.1'></a><span class='ec-lmbx-10'>first paragraph</span></span>

h1因此,部分级别与标题一起显示,h5但段落不显示h6(这是 html 中最深的标题级别),而是显示为普通文本。这比 大h5,通常是普通文本大小的 0.83 倍(请参阅http://zuga.net/articles/html-heading-elements/例如)。

class但是,段落标题有一个名为的定义paragraphHead。因此,您可以在 tex4ht 配置文件中为此添加一些自定义 css:

\Preamble{xhtml}
\Css{.paragraphHead{font-size:0.83em;}}
\begin{document}
\EndPreamble

将此文件保存为例如htparagraph.cfg并按如下方式编译:

make4ht -c htparagraph.cfg -ulm default -a debug foo.tex 'mathjax,htm'

结果:

在此处输入图片描述

请注意,由于某种原因,在我的输出中secnumdepth没有考虑到这一点,但我猜这不是这里的主要问题。

最好也进行配置\paragraph以便使用h5,但这可能是一个简单的解决方法。

相关内容