如何用 XML 标签包装段落?

如何用 XML 标签包装段落?

密切相关: 更改段落开始/结束命令

是否有 LaTeX“钩子”用于自动将段落包装在框中,或者最好是 XML 标签中?

我想将输出的文件加载到 XML 解析器中,但是每段作为单独的行

输入文件示例:

\documentclass{minimal}

\begin{document}                
    Hello World.

    Hello Again.
\end{document}

简单输出 XML 文件的示例:

<Document>
    <Paragraph>Hello World.</Paragraph>
    <Paragraph>Hello Again.</Paragraph>
</Document>

实际用例:

只是想以 XML 格式导出书籍章节以供 Sigil epub 编辑器输入。

答案1

我不确定你到底想做什么。如果你想创建一个 Epub 文件,你可以使用 将 LaTeX 源转换为 Epub tex4ebook。在终端中运行以下命令:

 tex4ebook filename.tex

如果你真的想创建自定义 XML 语法,那么这项任务就困难得多。你需要为数百个命令创建配置,而不仅仅是段落。

无论如何,要回答这个问题,您可以使用以下配置文件为段落配置标签:

\Preamble{xhtml}
\Configure{HtmlPar}
{\EndP\HCode{<paragraph>}}
{\EndP\HCode{<paragraph>}}
{\HCode{</paragraph>}}{\HCode{</paragraph>}}%
\begin{document}
\EndPreamble

使用以下方法编译您的文件:

make4ht -c config.cfg filename.tex

结果如下:

<!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 type='text/css' rel='stylesheet' href='sample.css' /> 
<meta content='sample.tex' name='src' /> 
</head><body>
<paragraph>Hello World.
</paragraph><paragraph>    Hello Again. </paragraph> 
</body> 
</html>

如您所见,有很多 HTML 标签。\Configure要将其更改为自定义 XML 方案,则需要更多命令。

答案2

作为 OP,这是我正在尝试做的事情的一个示例答案。

我希望有其他更清洁的方法来做到这一点。

\documentclass[openany, oneside, 12pt]{minimal}
\let\oldpar\par%
\newcommand{\TagParagraphs}{%
    \everypar={\textless Paragraph\textgreater}%
    \def\par{\unskip\textless/Paragraph\textgreater\oldpar}%
}%
\newcommand{\StopTaggingParagraphs}{%
    \let\par\oldpar%
}%
\begin{document}
    \TagParagraphs%
    Hello World.

    Hello Again.

\StopTaggingParagraphs%
\end{document}

相关内容