summaryrefslogtreecommitdiff
path: root/graphics/asymptote/base/external.asy
blob: 9e12610c4b2c526e04255156a388b960e1dfd3c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
usepackage("hyperref");
texpreamble("\hypersetup{"+settings.hyperrefOptions+"}");

// Embed object to be run in an external window. An image file name can be
// specified; if not given one will be automatically generated.
string embed(string name, string text="", string options="",
             real width=0, real height=0, string image="")
{
  string options; // Ignore passed options.
  if(image == "") {
    image=stripdirectory(stripextension(name))+"."+nativeformat();
    convert(name+"[0]",image,nativeformat());

    if(!settings.keep) {
      exitfcn currentexitfunction=atexit();
      void exitfunction() {
        if(currentexitfunction != null) currentexitfunction();
        delete(image);
      }
      atexit(exitfunction);
    }
  }
  if(width != 0) options += ", width="+(string) (width/pt)+"pt";
  if(height != 0) options +=", height="+(string) (height/pt)+"pt";
  return "\href{run:"+name+"}{"+graphic(image,options)+"}";
}

string hyperlink(string url, string text)
{
  return "\href{"+url+"}{"+text+"}";
}

string link(string label, string text="Play")
{
  return hyperlink("run:"+label,text);
}