Mac OS 上的 latexmkrc、asymptote 和子文件夹

Mac OS 上的 latexmkrc、asymptote 和子文件夹

我刚刚开始学习asymptote(实际上因为TikZ这些软件不太适合 3D 表面和曲线)。要设置我的系统,我想asymptote在子目录中工作,以便保持我的 LaTeX 项目整洁,即

\usepackage{asymptote}
\def\asydir{asypdf}

将我的文档中定义的 asy 文件存储为

\begin{asy}
    settings.outformat = "pdf";
    defaultpen(fontsize(10pt));
    label("Hello world!");
\end{asy}

在子文件夹中asypdf

我在 Mac OS 上使用我最喜欢的编辑器 TextMate2,它用于latexmk确定工作流程(pdflatex、bibtex 调用等)。我阅读了latexmk使用这些线.因此完整的 MWE 是

%!TEX TS-options = --shell-escape
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{asymptote}
\def\asydir{asypdf}
\begin{document}
            \begin{asy}
                settings.outformat = "pdf";
                defaultpen(fontsize(10pt));
                label("Hello world!");
            \end{asy}
\end{document}

我的问题/疑问在这里: latexmk无法识别文件夹结构?该.asy文件是在指定的子文件夹中创建的(我猜是 asymptote 创建的),但在主目录中latexmk创建了一个.tex文件,然后根本不会进行编译。

有没有办法让latexmk文件夹结构保持不变?还有其他方法可以将渐近线文件保存在子文件夹中吗?

错误消息(遗憾的是没有文件夹结构)是

cusdep asy pdf asypdf/asyt-1: Command for 'cusdep asy pdf asypdf/asyt-1' gave return code 256 cusdep asy pdf asyt-1: Command for 'cusdep asy pdf asyt-1'asyt.tex(使用和不使用文件夹 def 行来命名 MWE 时)

在 Mac OS 10.10 Yosemite 上使用 MacTeX 2014。

答案1

您需要创建一个 latexmkrc 文件,其规则如下

sub asy {return system("asy -o asypdf/ '$_'");}
add_cus_dep("asy","eps",0,"asy");
add_cus_dep("asy","pdf",0,"asy");
add_cus_dep("asy","tex",0,"asy");

我希望它能奏效。你也可以在 http://sourceforge.net/p/asymptote/discussion/409349/thread/e35300dd/

相关内容