这仅仅是 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 声明标题页内的每个段落都应居中。
结果如下: