带有 lwarp 的 chaptername

带有 lwarp 的 chaptername

我需要定义章节名称以打印“Seance 1”。我使用以下示例:

\documentclass{report}
\usepackage{lwarp}
\usepackage{lipsum}
\renewcommand{\chaptername}{Seance}
\begin{document}
\chapter{samedi 30 mai 2020}
\lipsum[1]
\end{document}

当我使用 lualatex 构建 pdf 文件时,我得到了我想要的东西。

在此处输入图片描述

但是当我使用 lwarp 获取 html 文件时,我丢失了“Seance”部分:

在此处输入图片描述

答案1

lwarp包调用内部宏\@chapcntformat来打印章节编号。该宏有一个参数,即章节级别的名称,在本例中为chapter。您可以重新定义宏以\chaptername在章节的情况下在编号前面打印。

梅威瑟:

\documentclass{report}
\usepackage{lwarp}
\usepackage{lipsum}
\renewcommand{\chaptername}{Seance}

\makeatletter
% redefine counter format to include \chaptername
\def\@chapcntformat#1{%
\ifstrequal{#1}{chapter}%
{\chaptername~\csname the#1\endcsname \protect \quad}%
{\csname the#1\endcsname \protect \quad}%
}
\makeatother

\begin{document}
\tableofcontents

\chapter{samedi 30 mai 2020}
\label{mychapter}
\lipsum[1]

\chapter{next meeting}
As discussed in \ref{mychapter}, lorem ipsum dolor sit amet.

\end{document}

生成的 html 的相关片段:

<h3 id="autosec-3"> <span class="sectionnumber">Seance&nbsp;1&#x2001;</span>samedi 30 mai 2020</h3>

截屏:

在此处输入图片描述

这种解决方法似乎对目录和交叉引用很有效,但是使用修改后的宏的其他东西可能会中断,因此建议对更复杂的文档进行适当的测试,以确定输出是否仍然正确。

相关内容