使用 tex4ht 时如何保持标题页居中?

使用 tex4ht 时如何保持标题页居中?

这仅仅是 tex4ht 问题。

\begin{titlepage}...\end{titlepage}在一些文档中使用。在我开始p {text-align:justify; }在 tex4ht 配置中使用后,我注意到现在所有标题也都向左移动了。

当然,标题应该保持在页面中央。我还不知道该如何纠正这个问题。下面是使用的 MWE 和命令。

\documentclass[12pt]{book}

\begin{document}
\ifdefined\HCode
\Css{p{text-align:justify;}}
\fi 

\frontmatter
\begin{titlepage}
\begin{center}

 \textbf{My most important book}\par 

 \vspace{1.75in}
 \today 
\end{center}
\end{titlepage}
\newpage\null\thispagestyle{empty}\newpage

\mainmatter

This is my text

\end{document}

编译为 pdf 后得到

在此处输入图片描述

标题按预期居中。但是

  make4ht  -ulm default -a debug foo.tex "htm,svg,nostyle"

给予

在此处输入图片描述

你看,标题被当做段落处理,并向左移动。如果我删除\Css{p{text-align:justify;}}并重新编译,结果如下

在此处输入图片描述

接下来,我查看了生成的 HTML,看看添加一些 CSS 是否可以解决这个问题。以下是生成的 HTML

<!DOCTYPE html> 
<html lang='en-US' xml:lang='en-US'> 
<head><title></title> 
<meta charset='utf-8' /> 
<meta content='TeX4ht (https://tug.org/tex4ht/)' name='generator' /> 
<meta content='width=device-width,initial-scale=1' name='viewport' /> 
<link href='foo.css' rel='stylesheet' type='text/css' /> 
<meta content='foo.tex' name='src' /> 
</head><body>

<!-- l. 8 --><p class='indent'>


</p><!-- l. 9 --><p class='indent'>

</p><!-- l. 9 --><p class='indent'>

</p>
<div class='center'>
<!-- l. 10 --><p class='noindent'>
</p><!-- l. 12 --><p class='noindent'><span class='ec-lmbx-12'>My most important book</span>
</p><!-- l. 15 --><p class='noindent'>September 29, 2023</p></div>

<!-- l. 18 --><p class='indent'>

</p><!-- l. 18 --><p class='indent'>


</p><!-- l. 22 --><p class='indent'>   This is my text
</p>   
 
</body> 
</html>

它说应该添加标题,<div class='center'>但由于某种原因,一旦我添加p{text-align:justify;}它就不再起作用了。我的 CSS 技能有限,无法解决这个问题。

如何使用p{text-align:justify;}但仍保持标题页居中?

注意这只会影响titlepage环境。如果我使用命令中的普通标题,\maketittle那么标题将保持居中,没有问题。

TL 2023

答案1

尝试这个配置文件:

\Preamble{xhtml}
\ConfigureEnv{titlepage}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="titlepage">}}
{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}}{}{}
\Css{.titlepage p{text-align:center;}}
\begin{document}
\EndPreamble

它将环境的内容封闭titlepage<div class="titlepage">元素中,然后使用 CSS 声明标题页内的每个段落都应居中。

结果如下:

在此处输入图片描述

相关内容