MikTeX 中的 dblatex 是否坏了,还是我做错了什么?

MikTeX 中的 dblatex 是否坏了,还是我做错了什么?

多年来,我一直在 Windows XP 上使用 MikTeX 从 LaTeX 生成 PDF。不过,我不太喜欢 LaTeX,想改用 DocBook。在 Windows 上安装和运行像 Apache FOP 这样的 DocBook 处理器很麻烦,所以为了绕过这个问题,我想dblatex暂时使用它。

问题是,虽然dblatex有,但它并不像广告中说的那样有效。我完成了 RTFM 的事情,但它没有帮助。例如,如果我使用命令dblatex --help,我得到的是一堆看起来像 LaTeX 命令的东西作为 latex 调用的参数,并有一个提示,表明有东西试图读取一个名为的文件--help,请求一个替代的文件名。

什么应该根据 dblatex 手册,我应该得到一屏的帮助。

如果我实际上提供了一个简单的 docbook 文件,我会收到错误消息,抱怨 DocBook 语法不是有效的 LaTeX 语法。嗯,不是 - 它是 DocBook。

起初,我以为 MikTeX 软件包(首次使用时会安装额外的软件包)一定出了问题,所以我完整安装了 MikTeX 2.8。没有变化。然后我想也许 MikTeX 2.8 有问题 - 所以我找出了 MikTeX 2.7 的旧 DVD 并从中完整安装了它。结果 - 一模一样。

使用 MikTeX 2.7,以下内容直接从我的命令提示符复制...

Q:\>dblatex --help

Q:\>latex  \makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode
\def\HCode"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1
.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[#1,xhtml,docbook]{tex4
ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandaf
ter\def\csname tex4ht\endcsname{#1,xhtml,docbook}\def\HCode####1{\documentstyle[
tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode .a.b.c
.\input  --help
This is pdfTeX, Version 3.141592-1.40.4 (MiKTeX 2.7)
entering extended mode
LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman, ngerman, french, loaded.
! I can't find file `--help'.
<*> ...}}}\makeatother\HCode .a.b.c.\input  --help

Please type another input file name:

需要说明的是,我输入的只是最上面那一行——那一dblatex --help行。其余部分看起来就像运行了一个批处理文件。MikTeX 中有一个 dblatex.bat,其内容似乎解释了上述行为,但如果我明确运行该文件,那就没关系了dblatex.exe——而且,该批处理文件似乎不在路径上。如果我将该批处理文件移动到其他地方,很快就会发现 dblatex.exe 正在寻找并运行该批处理文件——如果该文件不在那里,它会大声抱怨。

其他 MikTeX 内容(例如latexdvipdfm全部)均可完美运行。例如...

Q:\>latex --help
Usage: latex [OPTION...] [COMMAND...]
  -alias=APP                      Pretend to be APP.  This affects both the
                                  format used and the search path.
  -aux-directory=DIR              Use DIR as the directory to write auxiliary
                                  files to.
  -buf-size=N                     Set buf_size to N.
  -c-style-errors                 Enable file:line:error style messages.
  -disable-8bit-chars             Make only 7-bit characters printable by.

顺便说一句,这只是输出的前几行。

那么 - 发生了什么事?也许 MikTeX 并不包含dblatex- 只是一个巧合的同名程序?也许我在网上看到的那些提到在 MikTeX 中使用 dblatex 的帖子是假的,是为了惹恼我个人而设置的?

或者也许有一个不那么偏执的解释,比如也许 MikTeX 不喜欢我的 Windows XP 非常干净,上周才从头开始重新安装,目前的垃圾软件评级为零?或者它不喜欢成为我路径中的第一个项目,这样 MikTeX 程序就会自动优先于其他所有程序?

正如您所看到的,我正在努力寻找一个合理的解释——还有谁能提出更合理的解释吗?

答案1

从 Docbook 生成 PDF的dlatex是这个:http://dblatex.sourceforge.net/

您正在使用的是dblatex来自 MikTeX 的二进制文件,不幸的是,它恰好具有相同的名称,但它们的功能完全不同。

因此请安装并使用适当的dblatex

相关内容