ConTeXt:修改 .sty LaTeX 文件以进行自然演绎 Fitch 图

ConTeXt:修改 .sty LaTeX 文件以进行自然演绎 Fitch 图

我用 LaTeX 写了一本入门逻辑书,我想用 ConTeXt 写这本书。我使用了一个 .sty 文件(fitch.sty,作者是 Peter Selinger,不是由 TeXLive 发布的),可在此处下载1。(我没有把代码放在这里,因为它有 200 多行),我想让它在 ConTeXt 下工作,因为使用图形包进行派生是件令人望而生畏的事。在一个名为 fitch.hacker.tex 的文件中,Selinger 说:

“此包提供的宏混合了 TeX 和 LaTeX 原语。LaTeX 用于 \rule、\settowidth、\addtolength、\hspace……所有宏都假定在数学模式下调用。”

如果您尝试使用 mkiv 编译 fitch.sty,则只会出现两条错误消息:

1)在线

\newenvironment{nd}{\begingroup\nd*init\nd*beginc}{\nd*endc\endgroup}
\newenvironment{ndresume}{\begingroup\nd*init\nd*resumec}{\nd*endc\endgroup} 

靠近文件末尾,并且

2)第85行:

\newlength{\nd*dim} 

我认为错误 1) 很容易被替换,我的意思是,要使其在 ConTexT 下工作就足以定义相关命令。但我不知道如何将第 85 行“翻译”为 ConTexT,因为 \newlength 是一个定义长度寄存器的宏。所以:

¿有人能告诉我我对错误 1 ​​的判断是否正确吗?¿有人能告诉我 ConTexT 中是否存在具有 \newlenght 效果的命令或脚本吗?

答案1

\newlength{\nd*dim} 

\newskip\nd*dim

请注意,*这里是一个字母(因为@在 latex 中,包装代码中通常是一个字母),因为

\catcode`\*=11

靠近文件顶部

所以这只是定义一个跳过注册令牌,名称为nd*dim

相关内容