latexmkrc, asymptote and subfolders on Mac OS
You need to create a latexmkrc file with the following rules
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");
I hope it works. You can also see the discussion on http://sourceforge.net/p/asymptote/discussion/409349/thread/e35300dd/
Related videos on Youtube
Ronny
Updated on October 25, 2020Comments
-
Ronny about 3 years
I just started to learn
asymptote
(actually becauseTikZ
is not that great for 3D surfaces and curves on these). To set up my system i would likeasymptote
to work in a subdirectory in order to keep my LaTeX-Project nice and tidy, i.e.\usepackage{asymptote} \def\asydir{asypdf}
stores the asy-file that is defined in my document as
\begin{asy} settings.outformat = "pdf"; defaultpen(fontsize(10pt)); label("Hello world!"); \end{asy}
in the subfolder
asypdf
I am working on Mac OS with my favourite editor TextMate2, and that uses
latexmk
in order to determine the workflow (pdflatex, bibtex calls etc.). And I read about the configuration oflatexmk
using these lines. So the complete MWE is%!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}
And my problem/question here:
latexmk
does not recognize the folder structure? The.asy
file is created in the specified subfolder (by asymptote I suppose), butlatexmk
creates a.tex
file in the main directory, which is then not compiled at all.Is there a way to let
latexmk
now the folder structure? Is there another way to keep asymptote files in a subfolder?The error message (even without the folder structure sadly) is
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'
(when naming the MWEasyt.tex
with and without the folder def line)on Mac OS 10.10 Yosemite using MacTeX 2014.
-
Ronny about 9 yearsMy first line in the original file was a little different,
sub asy {return system("asy -o asypdf/ \"$_[0]\"");}
bu i don't now what these few characters[0]
change - it works both nevertheless. -
John Collins about 9 years
$_[0]
is definitely the correct thing to use. It denotes the first argument to the subroutine, and this argument is set to the base name of the file when the subroutine is called bylatexmk
.$_
is a Perl variable with a different meaning; only by accident will it equal the desired name, and normally it doesn't. See thelatexmk
documentation for examples.