您可以在 ConTeXt 中使用 LaTeX 包/在 LaTeX 中模拟 ConTeXt 吗?

您可以在 ConTeXt 中使用 LaTeX 包/在 LaTeX 中模拟 ConTeXt 吗?

是否可以在 ConTeXt 中使用 LaTeX 包?我想知道,因为我想使用 ConTeXt 更强大的格式化功能,但我还想在我的文档中使用几个 LaTeX 包(crossword特别xskak是)。任何有沒有任何方法可以做到这一点?

附录

尽管与这个问题,请不要关闭此问题作为重复问题,因为该问题绝不得到了满意的答案(至少,不适合我的情况)。

编辑

作为替代方案,我欣赏在 LaTeX+LuaTeX 中获取 ConTeXt 级别格式的方法(为什么是 LuaTeX?字体切换 + 比 XeTeX 具有更多功能。)。

答案1

最简洁的答案是不。

这可能是您发现链接帖子中的答案不令人满意的原因。

更准确地说,人们正在努力将 LaTeX 和 ConTeXt 连接起来。也就是说,有一个LaTeX针对 ConTeXt 的模块试图实现这一点。但是,它还没有完全开发,正如描述所述:

此目录包含 ConTeXt 的 LaTeX 兼容模块的粗略开端 - 本质上是 LaTeX 内核的完整重新实现,可在 ConTeXt 中运行。目前的重点是允许 LaTeX 文档摘录在 ConTeXt 文档中工作的代码;ConTeXt 编译完整的 LaTeX 文档的功能将在稍后实现(如果有的话)。(我确实希望在某个时候至少对某些软件包来说,软件包加载功能可以正常工作。)您应该预料到此代码会有错误。您应该预料到它偶尔无法与 ConTeXt 很好地兼容,我还没有记录这些错误,因为我还没有发现它们。您应该预料到它会不完整,有时甚至非常不完整。希望您也会觉得它有用。

此外,还有一些移植,例如TypeArea模块——KOMA 包的重新实现typearea。您可以测试此示例文件(使用 mkii,在安装模块并更新为mktexlsr) :

\setupoutput[pdftex]
\setupbodyfont[plr,11pt]
\enableregime[utf]

\usemodule[typearea]
\setupTypeArea[bcor=0mm,alphabets=3.1]

\starttext

\title{Testing typearea}

  Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 

  Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. 

  Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. 

  Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. 

  Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis. 
\stoptext

但是,总而言之,我们距离在 ConTeXt 中广泛使用 LaTeX 包还很远。这就是为什么我认为您的问题简而言之就是否定的。

以下是一些总结性想法:尽管 ConTeXt 允许模块扩展其功能,但它被设计为一个坚如磐石的宏包,可以替代 LaTeX,几乎可以独立完成所有工作。这已经意味着 LaTeX 能够做的几件事被遗漏了,更重要的是:未来(在 LaTeX 中)出现的东西很可能不会出现在 ConTeXt 中。我认为 @egreg 对 OP 的评论最能解释这一点:“你能用汽油来驱动柴油发动机吗?” 这两个程序在设计和目标上差别太大,因此确实需要一个适合 ConTeXt 的 LaTeX 虚拟机,正如 @UlrikeFischer 也指出的那样。

官方部分就说这么多。你实际上可以做什么-- 尽管出于多种原因我强烈建议不要这样做 --,方法是使用 Plain TeX(如果需要,使用 e-TeX 扩展)重新实现所需的功能,将这些功能存储在.tex发行版本地树中的一个或多个文件中,并\input在需要使用它们时将它们放入 ConTeXt 文件中。在大多数情况下,这不会造成损害,但我不能保证,这也是我不推荐此过程的原因之一。此外,该解决方案不可移植,在我看来,这太费事了,却收效甚微。最好只使用柴油……(如果不清楚如何使用它,请询问 TeX.SX。我认为我们当中有一些很棒的工程师 ;)

相关内容