为包 scrjura 配置 tex4ht

为包 scrjura 配置 tex4ht

我正在起草有关可再生能源主题的协议。麻烦的是,客户有时需要一个 word 版本 = 我的协议。除非我使用KOMA-Script 包的一部分 包,否则html该软件包tex4ht可以很好地完成工作。但它使我的协议编写变得容易得多,如果没有它,我就不会想这样做。该软件包允许根据德国标准打印协议。scrjurascrjura

看看这个例子:

\documentclass{article}
\usepackage[english]{babel}
\usepackage{scrjura, indentfirst}
%\usepackage{tex4ht}

    \begin{document}
    \begin{contract}
      \Paragraph{title=Does it make sense?}

    This first sentences usually talk about the sense of the whole
    contract / agreement / whatever. Unlike many people think, it is not
    forbidden to lawyers to write plain text.

    But there are obstacles. We need some definitions.

    \Paragraph{title=Share-purchase}

    Let's assume we talk about a share-deal agreement. We'd have to name
    the shares.

    And the price.

    \end{contract}

    \end{document}

好的,使用 pdflatex 的输出是:

协议 pdftex

现在让我们添加\usepackage{tex4ht},保存文件并用 进行编译htlatex filename.tex。结果是失败了,但还差得很远:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
  "http://www.w3.org/TR/html4/loose.dtd">  
<html > 
<head><title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> 
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> 
<!-- html --> 
<meta name="src" content="stackexchange-html.tex"> 
<meta name="date" content="2011-08-12 16:00:00"> 
<link rel="stylesheet" type="text/css" href="stackexchange-html.css"> 
</head><body 
>
<a 
 id="x1-2r1"></a>
<!--l. 7--><p class="noindent" ><span 
class="cmsy-10x-x-120">§</span><span 
class="cmssbx-10x-x-120">&#x00A0;1</span> <span 
class="cmssbx-10x-x-120">Does it make sense?</span><a 
 id="Q1-1-1"></a><a 
 id="x1-3"></a>
   <a 
 id="x1-4r1"></a><a 
 id="x1-5r1"></a>(1)&#x00A0;This first sentences usually talk about the sense of the whole contract /
agreement / whatever. Unlike many people think, it is not forbidden to lawyers to
write plain text.
   <a 
 id="x1-6r2"></a><a 
 id="x1-7r1"></a>(2)&#x00A0;But there are obstacles. We need some definitions.
<a 
 id="x1-8r2"></a>
   <span 
class="cmsy-10x-x-120">§</span><span 
class="cmssbx-10x-x-120">&#x00A0;2</span> <span 
class="cmssbx-10x-x-120">Share-purchase</span><a 
 id="Q1-1-2"></a><a 
 id="x1-9"></a>
   <a 
 id="x1-10r1"></a><a 
 id="x1-11r1"></a>(1)&#x00A0;Let&#8217;s assume we talk about a share-deal agreement. We&#8217;d have to name the
shares.
   <a 
 id="x1-12r2"></a><a 
 id="x1-13r1"></a>(2)&#x00A0;And the price.

</body></html> 

如果您将其保存为 html 文件并在浏览器中打开,您会发现一切都正常,只是没有段落。粗体打印的标题与编号的“段落”显示在同一行,每个段落都应该有自己的段落,如上图所示。

有人能帮我编写一个 tex4ht 配置文件以获取包含适当段落的输出吗?

编辑:

该命令\Paragraph{title= ...}为以下文本提供了标题。我该如何将此告知 tex4ht?

答案1

我不懂 scrjura 的代码,所以这只是一些小技巧:

\Preamble{html} 
\begin{document} 
\ConfigureEnv{contract}{\HCode{<div class="contract">}}{\HCode{</div>}}{}{}
\Css{.contract {white-space:pre-wrap;}}
\EndPreamble 

例如将其保存为jura.cfg并调用htlatex yourfile "jura"。有一些错误消息,我不明白,但生成的代码没问题。

在代码中,我们指示tex4ht在环境contract标签 的开头和结尾插入<div>contract,然后我们使用css打印空格。更强大的策略是将一些内部宏放入钩子中scrjura,但我仍然不明白如何配置宏tex4ht,当我尝试使用它们时,我遇到了一些非常奇怪的错误


编辑

似乎有些操作在配置文件中无法实现。所以我们必须.4ht为 scrjura 开发文件。在文件中,step4ht.pdf我发现了定义钩子的最用户友好的解释tex4ht

如果我们有无参数的宏,我们首先必须定义钩子,它将被放在其内容的前面和后面。它们的结构如下:

\pend:def\bar{\a:bar} % before
\append:def\bar{\b:bar} % after

然后我们声明这个宏有两个钩子:

\NewConfigure{bar}{2}

并定义将放在那里的代码

\Configure{bar}{\HCode{<br />}}{}

在这种情况下,我们将把标签放在<br />宏的内容之前。

我发现很难理解 scrjura 的定义,主要是因为我不会说德语。所以经过反复试验,我找到了一些宏,我可以在其中放置手动中断。这是文件scrjura.4ht

\typeout{[scrjura for tex4ht]}

\ConfigureEnv{contract}{\HCode{<div class="contract">}}{\HCode{</div>}}{}{}

\pend:def\parformat{\a:parformat} 
\append:def\parformat{\b:parformat} 
\NewConfigure{parformat}{2}
\Configure{parformat}{\HCode{<br /><span class="sentence" />}\EndP}{}

\pend:def\contract@paragraph@font{\a:contract@paragraph@font} 
\apped:def\contract@paragraph@font{\b:contract@paragraph@font} 
\NewConfigure{contract@paragraph@font}{2}
\Configure{contract@paragraph@font}{\HCode{<br /><span class="paragraph" />}}{}

 \Css{.sentence{margin-left:2em;}}

tex4ht关于第一个的错误报告,如果我在和\Paragraph之间插入空行,这个错误就会消失。\begin{contract}\Paragraph{title=Does it make sense?}

现在的结果如下:

在此处输入图片描述

最好能在每个段落和句子上添加div一些class属性,但我仍然不知道该怎么做

相关内容