期望输出 HTML 文件名与输入/包含相同

期望输出 HTML 文件名与输入/包含相同

期望最终输出的 html 文件名与\includefilename 或\inputfilename 相同。如何使用获取它make4ht。我曾参考此链接如何控制 tex4ht 用于拆分子小节的 HTML 文件的名称?并没有达到预期的全部要求。

我的 MWE 是:

\documentclass{book}
\usepackage{lipsum,imakeidx}
\makeindex
\begin{document}
\frontmatter
\input{1234567890-bkseries}% Expect HTML Output FileName is 1234567890-bkseries.html
\title{Computing for Interactive}
\author{Parisa}
\input{1234567890-cpright}% Expect HTML Output FileName is 1234567890-cpright.html
\mainmatter
\include{1234567890-Intro}% Expect HTML Output FileName is 1234567890-Intro.html
\include{0987654321-Ch_01}% Expect HTML Output FileName is 1234567890-Intro.html
\include{1234567890-Ch_01_1E}% Expect HTML Output FileName is 1234567890-Intro.html
\backmatter
\input{0987654321-Author-Bio}% Expect HTML Output FileName is 1234567890-Intro.html
\printindex
\end{document}

如何控制 tex4ht 用于拆分子小节的 HTML 文件的名称?

答案1

如果所有包含的文件都以该\chapter命令开头,则可以使用以下配置文件:

\Preamble{xhtml,2}
\Configure{CutAt-filename}{%
  \filename@parse\CurrentFile%
  \NextFile{\[email protected]}%
}

\begin{document}
\EndPreamble

2命令中的选项将\Preamble确保所有章节都保存在单独的 HTML 页面中。配置\Configure{CutAt-filename}设置这些章节页面的名称。我们使用 LaTeX 的命令\filename@parse提取当前使用的不带扩展名的文件的名称。然后在命令中使用此文件名\NextFile,设置章节文件的名称。

这种方法有一个问题 - 您只需要\chapter在包含的文件中使用该命令,并且每个包含的文件只能包含一个章节,否则后续章节将覆盖给定文件中的第一个章节。如果您想支持多个章节,代码会稍微复杂一些,因为您需要检查当前名称是否以前使用过,并进行相应的处理。

相关内容