环境

环境

对于 LaTeX,我曾经将一大堆\newcommand定义(我经常需要它们来编写讲义等)放入一个.sty文件中。将该文件放入我的texmf目录中后,我可以在需要时轻松地将其包含在 LaTeX 文档中。

我想知道 ConTeXt 项目的等效操作方式是什么?好吧,我知道在 ConTeXt 中存在“环境”的概念,但它们似乎主要用于样式设置(而不是宏定义),并且它们似乎仅限于单个项目。

所以我想问一下在 ConTeXt 中

  1. \define有比环境更好的地方进行群交,
  2. 有一种机制允许在多个项目之间共享此类定义

答案1

环境

在 ConTeXt 中放置宏和样式设置的地方是环境文件。用法非常简单。例如,将以下内容保存为env-test.tex

\startenvironment *

  \setuplayout[grid=yes]

  \def\something{something else}

\stopenvironment

然后你把你的文档文件

\environment env-test

\starttext

\something

\stoptext

要了解有关文档组织的更多信息,请参阅项目结构花园中的页面。

如果你需要更明确的例子,只需看看来源Metafun 手册

模块

如果您希望在各个文档之间共享宏和样式设置,您可能需要一个模块。您只需将模块保存在 TeX 搜索路径(例如texmftexmf-local或工作目录中即可。

实际上,模块和环境之间的主要区别在于,您可以使用将选项传递给模块,\usemodule[...][key=value]但将选项传递给环境的唯一方法是使用模式。(感谢 Aditya!)

将以下内容保存为t-test.tex。模块文件具有命名约定<prefix>-<name>,其中前缀t代表第三方。

\startmodule[test]

  \setuplayout[grid=yes]

  \def\something{something else}

\stopmodule

然后你可以通过说来使用这个模块\usemodule

\usemodule[test]

\starttext

\something

\stoptext

有关详细信息,请参阅模块花园中的页面。

相关内容