会\section
导致意外odt
TeX4ht 创建的文档中段落和列表之间出现的空白行。\section
但是,如果删除,则这些上下文中不会出现额外的空白行。
我的问题是:配置中的哪一段代码确实section
起到了这种作用?为什么?(请参见底部的代码。)
(我问这个问题是为了教育目的。我不是在报告错误。我也不是在处理现实世界的问题。我只是试图了解 TeX4ht 的工作原理。)
不\section
\documentclass{article}
\begin{document}
Paragraph.
\begin{enumerate}
\item List
\end{enumerate}
\end{document}
良好的输出:
<!------no section---------------->
<text:p text:style-name="Text-body">Paragraph. </text:p>
<!------no blank line---------------->
<text:list xml:id="list1" text:style-name="Enumerate">
<text:list-item>
<text:p text:style-name="Inside-enumerate">List</text:p>
</text:list-item>
</text:list>
和\section
\documentclass{article}
\begin{document}
\section{My section}
Paragraph.
\begin{enumerate}
\item List
\end{enumerate}
\end{document}
错误输出:
我所说的“空行”是指:<text:p text:style-name="First-line-indent"/>
第三行:
<text:h text:style-name="Heading-2" text:outline-level="2">1 Section</text:h>
<text:p text:style-name="Text-body">Paragraph. </text:p>
<text:p text:style-name="First-line-indent"/>
<text:list xml:id="list1" text:style-name="Enumerate">
<text:list-item>
<text:p text:style-name="Inside-enumerate">List</text:p>
</text:list-item>
</text:list>
请注意,标题后没有出现空白行。它出现稍后的,即在任何跟随列表的段落之后:
代码:
section
以下是来自的配置texmf/tex/generic/tex4ht/ooffice.4ht
(第 3460 行)
\ConfigureMark{section}
{\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble
\else \thesection\space\fi }
\Configure{section}
{\IgnorePar\EndP \HCode{<!--start of section-->}}
{\IgnorePar\EndP \HCode{<!--end of section-->}}
{\HCode{<text:h text:style-name="\csname a:Heading-2\endcsname"
\text:outlinelevel="2" ><text:span
text:style-name="section">}\TitleMark\space
\HCode{</text:span>}\IgnoreIndent}
{\HCode{</text:h>\Hnewline}\par\ShowPar}