如何在 Lyx 中使用 2cell?

如何在 Lyx 中使用 2cell?

我想在 LyX (2.0.5.1) 中使用以下代码编写自然变换箭头2cell(请参阅答案)。问题是,LyX 似乎默认包含 xy 包,并且它只使用选项[all]。我找不到更改选项或完全禁用包的方法,如果我使用文档序言中的选项xy的包[all,2cell],我会收到有关加载包两次的投诉。有没有(好的)方法解决这个问题?

编辑:正如评论中指出的那样,当我在文档中xy使用时,LyX 会自动添加该包。可以禁用此功能吗?或者我可以更改用于该包的选项吗?\xymatrix

答案1

如果文档使用某些功能, LyX 具有内置支持,xy并且会自动将其添加到文档的序言中。\usepackage[all]{xy}xy

不幸的是,LyX 尚未提供修改传递给自动加载包的选项的接口;\PassOptionsToPackage不起作用,因为用户定义的前导部分来自LyX 生成的部分。通常将它们作为额外选项传递给文档类(在文本字段中文档设置->文档类别->自定义) 有效,但这会使它们被传递给所有包,而且似乎没有给出预期的结果xy

xy但是,该包还通过\xyoption命令为包选项提供了一个“后期”接口。在本例中,添加

\xyoption{2cell}

该文件的序言就可以做到这一点。

答案2

好吧,我找到了一种方法。如果我把

\usepackage[all,2cell]{xy}
\UseTwocells
\newcommand{\xym}[1]{\xymatrix{#1}}

在文档前言中,使用 而\xym不是 就可以了\xymatrix。但是这样我就不能使用矩阵编辑器了,而且感觉太像黑客了(更不用说我必须更改所有现有\xymatrix命令),所以如果有人能想出更好的解决方案,我仍然非常感兴趣!

编辑:\newcommand如果我只是在 ERT 框中使用,似乎就不必使用它\xymatrix。但我仍然必须更改旧\xymatrix命令,并且不能使用矩阵编辑器……

相关内容