为什么 \usepackage[inline]{asymptote} 会导致 \ASYalign 错误?

为什么 \usepackage[inline]{asymptote} 会导致 \ASYalign 错误?

在内联 Asymptote 中,我可以使用如下包:

usepackage("amsfonts");
label("$\mathbb R$", (0,0)); 

一般来说,这种方法效果很好。但是,运行latexmk如下:

usepackage("myPersonalPackage");
label("$\mathbb R$", (0,0)); 

导致Undefined control sequence. l.2 \ASYalign错误。(我的个人包加载了一堆包,包括amsfonts包,所以这不是问题\mathbb。)

事实上,当我使用 vimtex 的编译器(我不是 100% 清楚它是什么,但我认为它是某种形式的latexmk)时,我收到以下错误:

  1 test.aux|3 error| Undefined control sequence. \bbl@cs                                            
  2 test.aux|3 error| LaTeX Error: Missing \begin{document}.
  3 test-1.tex|13 error| Undefined control sequence. \ASYalign
  4 test-1.tex|13 error| Undefined control sequence.

我理解\ASYalign在标记事物时会用到它,而摆弄我自己的包时我发现问题在于我的样式文件会自动加载\usepackage[inline]{asymptote}。 (实际上,内联选项不是破坏事物所必需的;\usepackage{asymptote}会导致相同的错误,假设我在 tex 文档本身中加载内联选项。)

我只是想知道 Asymptote 包中什么导致了这个错误(以及这个bbl@cs错误是什么;我无法弄清楚,因为我的辅助文件中唯一的东西是“ \relax”)。

如果有人有时间的话,这里有几点单独的说明:

  1. 运行 vimtex 的编译器两次通常可以解决问题,而运行latexmk两次则不会产生任何效果。
  2. 我听说删除该test-1.tex文件会有帮助,但它有时才有效。
  3. 有人有什么建议的解决方法吗,不需要我手动将 Asymptote 加载到每个 tex 文件上?(如果没有也没关系;这并不是说需要做太多工作,因为我无论如何都会使用代码片段来启动 tex 文件。)
  4. 或者,有人知道如何在usepackage("PACKAGE")Asymptote 的命令中传递选项吗?如果是这样,我可以做类似的事情usepackage("myPersonalPackage","skipAsy");

答案1

答案从评论中复制。

asy文档,第 53 页

例行公事

void usepackage(string s, string options="");

提供了一个方便的缩写

texpreamble("\usepackage["+options+"]{"+s+"}");

可用于导入 LaTeX 包。

相关内容