我正在起草有关可再生能源主题的协议。麻烦的是,客户有时需要一个 word 版本 = 我的协议。除非我使用KOMA-Script 包的一部分 包,否则html
该软件包tex4ht
可以很好地完成工作。但它使我的协议编写变得容易得多,如果没有它,我就不会想这样做。该软件包允许根据德国标准打印协议。scrjura
scrjura
看看这个例子:
\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 的输出是:
现在让我们添加\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"> 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) 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) 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"> 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) Let’s assume we talk about a share-deal agreement. We’d have to name the
shares.
<a
id="x1-12r2"></a><a
id="x1-13r1"></a>(2) 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
属性,但我仍然不知道该怎么做