在参考模板中使用 ODT 样式来格式化 make4ht

在参考模板中使用 ODT 样式来格式化 make4ht

继我最近的问题之后从 mk4ht oolatex 自定义 ODT 输出以及此处描述的改进的工艺替代方案: 使用 make4ht 的 ODT 模板(使用存储在 odt 文档/模板中的现有/创建的样式进行直接格式化)我想问一下在 tex/编译方面需要使用 make4ht 做些什么才能将 odt 模板中的样式连接到 latex 文件中的自定义命令或环境。

例如:

test我在一个名为 的 odt 文件中创建了一个名为 的样式basic.odt
在此处输入图片描述

我编译了一个 tex 文件(有关 MWE 请参阅下文),"C:\texmfs\install\miktex\bin\make4ht.exe" -f odt+odttemplate "test.tex" "odttemplate=./refTemplates/basic.odt"该文件使用 make4ht 编译我的 tex 文件,并带有指向模板 odt 文件的指针。

梅威瑟:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{xcolor}
\definecolor{specialtextcolor}{rgb}{0,0,1}

\newenvironment{test}
{\par\begin{color}{specialtextcolor}}
{\end{color}}


\begin{document}
    This is a normal paragraph.

    \section{Custom style access test}

    test text in the first level of section hierarchy 

    more text
    \medskip

    \begin{test}
        This is a test environment.
    \end{test}

    \medskip    

    more text

\end{document}

主要担心的是输出文件没有反映出他们使用了该test样式。

首先要澄清的一点是:

  1. make4ht 需要什么才能让 lua 脚本接管并从模板 odt 文件中的样式中提取所需的 css 格式?我希望使用这些 odt 模板文件,并摆脱 cfg 文件中的配置命令,我从未成功修改过这些命令以适用于其他样式(请参阅引用示例从 mk4ht oolatex 自定义 ODT 输出...我甚至无法将 tex 和 cfg 文件中的所有实例重命名为quote没有cmdquote编译错误)。

  2. 由于某些样式(如部分)无需手动创建或自定义任何界面配置即可访问,因此我假设

    a) 不需要自定义 cfg 文件,而且我的测试命令/环境非常简约,或者 b) 这些已经预先配置好了(比如在类或 sty 文件中)?如果是后者,那么这些记录或存储在哪里,以便我可以从这些预先存在的示例中学习?

答案1

您仍必须配置test环境才能使用该test样式。更困难的是,如果您想使用段落样式,则必须为环境配置段落处理。尝试以下配置:

\Preamble{xhtml}
% to simplify the things
\def\myendpar{\ifvmode\IgnorePar\fi\EndP}

% configure the environment
\ConfigureEnv{test}
{\myendpar\bgroup%
% when you want to modify the paragraph style, you must redefine the paragraph configuration to 
% use the test style name
\Configure{HtmlPar}%
{\EndP \HCode{<text:p text:style-name="test">}}%
{\EndP \HCode{<text:p text:style-name="test">}}%
{\HCode{</text:p>}}{\HCode{</text:p>}}%
\par\ShowPar}
{\myendpar\egroup}{}{}

\begin{document}

\EndPreamble

如您所见,您必须配置HtmlPar配置才能插入<text:p text:style-name="desired style name">。它不能自动插入。通常,您会test使用\NewConfigureOO\ConfigureOO命令为样式插入样式,但由于您在模板文件中配置它,因此在这种情况下您不需要它,我不会展示这一点。可以找到有关 ODT 输出的常用样式的一些信息这里

不幸的是,所使用的默认样式没有记录,您只能在文献资料中tex4ht搜索\ConfigureOOODT 输出

我还更新了odttemplate扩展,以实际加入来自模板和生成的文件的样式,因为tex4ht如果您仅使用 LibreOffice 创建的基本 ODT 文件,您将丢失添加的额外样式。

这是具有声明样式的空 ODT 文件的结果test

在此处输入图片描述

相关内容