MWE 使用 edmac

MWE 使用 edmac

我正在尝试评估使用 plain 包构建一个卷的可行性,该卷的一部分是使用 edmac 以纯 tex 编写的关键版本集,其他部分或多或少是常规 LaTeX。我在这里处理的是一个极其复杂的设置,即 1990 年代的遗产代码,它的创建者早已去世,但该项目的其他人一直在使用他的系统,从那时起制作了几卷,显然他们不会放弃它。印刷的书确实看起来很棒。前面的卷是通过首先生成版本章节的 pdf 来构建的,对于每个章节,都需要在 tex 源中手动设置书中的起始编号,然后将这些 pdf 包含在书的主 LaTeX 文件中。目录自然也必须手动创建。当然可以再次这样做,但我至少想看看是否还有其他更好的方法。正如我所说,这件事非常复杂,涉及一个两步预处理系统,从通过 perl 脚本输入自定义梵文编码的文件到 devnag 预处理器的 dn 文件,后者在第二步生成 tex 源文件,以及在 edmac 之上提供抽象层的样式文件。虽然我是使用旧系统创建最后一卷的技术人员,但这样做是可能的,而无需深入了解用于创建该版本的纯文本。由于没有接触过纯文本,我现在正在努力创建一个 MWE,然后我可以将其输入到 LaTeX 文件中,如果可能的话,用真实世界文件构建示例失败了,我当然试过了。

\input edmac.doc

\beginnumbering
\pstart
\text{lemma}\Afootnote{note}\
\pend
\endnumbering

\bye

给我

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdftex)
 restricted \write18 enabled.
entering extended mode
(./mini.tex (./edmac.doc
EDMAC Critical edition macros.
 Revision: 3.7    < Date: 31 Aug 1993 15:57:20 >.
) Section 1 (./mini.1)
Runaway argument?
\Afootnote {note}\^^M\pend \endnumbering \par 
! Forbidden control sequence found while scanning use of \text.
<inserted text> 
                \par 
<to be read again> 
                   \bye 
l.9 \bye

可能缺少某些设置,但也许这也是兼容性问题?我还没有找到任何其他 MWE,或者首先是可读的文档。我确实尝试了 edmac.doc 中包含的最后一个示例,因为它专门用于 devnag 预处理器,但它也没有构建。

答案1

首先,回答所提问题。简而言之,应该\text以 结尾/,而不是\

错误信息解释

请注意,错误消息提示“参数失控?”,如果您按“H”,则会详细说明:

Runaway argument?
\Afootnote {note}\^^M\pend \endnumbering \par 
! Forbidden control sequence found while scanning use of \text.
<inserted text> 
                \par 
<to be read again> 
                   \bye 
l.9 \bye

? H
I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.

基本上,这意味着 的全部\Afootnote {note}\^^M\pend \endnumbering \par,我认为 的一部分,以及\bye(这个错误被捕获是因为\bye被声明为\outer),被视为 的参数\text(这不是你的意图),这表明对 的调用出了问题\text

edmac文档和MWE

的文档edmac很难找到:texdoc edmac只是节目1996 年的一封信readme鼓励你从 TUG 购买印刷版文档(我认为地址已经过时了)。但是,听说过 edmac/ledmac/reledmac 后,运行它就texdoc reledmac更有用了,并且显示了文档回顾历史,并提到

“edmac 概述:针对批判版本的纯 TEX 格式”,拖船 11(1990),第 623-643 页

可用的这里

按照该文档,我们可以准备以下 MWE(使用文档中的示例,并将名称\afootnote更新为\Afootnote问题中的名称):

\input edmac

\firstlinenum=1
\linenumincrement=1

% Some hacks for narrow columns. Not needed in real documents.
\vsize=20em
\hsize=15em
\hyphenpenalty=0
\exhyphenpenalty=0
\doublehyphendemerits=0
\finalhyphendemerits=0
\pretolerance=9999
\tolerance=9999
\emergencystretch=\maxdimen

\beginnumbering
\pstart This is a sample paragraph, with lines numbered automatically. \pend

The lines of this paragraph are not numbered.

\pstart And here the numbering begins again. \pend

\pstart
I saw my friend \text{Smith}\Afootnote{Jones C, D.}/ on Tuesday.
\pend

\bye

结果是:

输出


未经请求的建议:)

生成版本章节的 pdf,每个章节在书中的起始编号需要在 tex 源中手动设置,然后这些 pdf 会被包含在书的主 LaTeX 文件中。目录自然也需要手动创建。

请注意,这(手动指定每章的起始页码,并手动生成目录)也是 TeX 的创建者和25本书,也准备了他的许多书。考虑到你可能只在最后准备一次书的目录,这并不那么糟糕。自动化是不总是值得,记住这一点很有用总体框架何时这样做。

一套极其复杂的设置,20 世纪 90 年代的遗产代码,[...] 从那时起出版了几卷[...]。印刷的书确实看起来很棒。[...] 我至少想看看是否还有其他更好的方法。

我有时也尝试过类似的方法,但要知道,这可能最终会失败。请参阅此经典文章关于重写软件:传统代码“伤痕累累”,不得不遇到很多奇怪的情况和极端情况,如果从头开始做,你可能不会想到这些情况。制作一本看起来很棒的印刷书可能非常困难,这违背了使用 TeX(精美书籍)的主要目的。与其扔掉东西,从头开始想出更好的解决方案,我建议尝试从当前设置开始,逐步删除不再需要的东西,例如替换自定义编码/德夫纳格预处理器与其他东西(可能是不同的脚本),但始终比较“之前”和“之后”,以确保输出没有改变,或者至少没有以任何方式受到影响/变得更糟。

没有接触过纯文本

如果你只是想快速掌握 TeX 的实用思维模型,我强烈推荐这本书TeX 初学者指南作者:Seroul 和 Levy。(请参阅 Hans Hagen 的推荐在 ConTeXt 手册中。)花几天时间可能最终是值得的。但是,仍然要看上一点。

如果可能的话,我可以将其输入到 LaTeX 文件中

请注意ed-nfss.txt(从 1994 年开始)“特别是,EDMAC 使用自己的输出例程,而不是 LaTeX2e 的,因此很多特定于 LaTeX 输出例程的东西(比如浮点放置)将不会被执行”,所以(如果仍然如此)将其输入到 LaTeX 文件中可能会产生令人惊讶的结果。

相关内容