我想在 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
命令,并且不能使用矩阵编辑器……