summaryrefslogtreecommitdiff
path: root/Master/texmf/asymptote/plain_strings.asy
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf/asymptote/plain_strings.asy')
-rw-r--r--Master/texmf/asymptote/plain_strings.asy43
1 files changed, 20 insertions, 23 deletions
diff --git a/Master/texmf/asymptote/plain_strings.asy b/Master/texmf/asymptote/plain_strings.asy
index 598d61e4249..138ab05ca05 100644
--- a/Master/texmf/asymptote/plain_strings.asy
+++ b/Master/texmf/asymptote/plain_strings.asy
@@ -83,19 +83,28 @@ string verbatim(string s)
}
// Split a string into an array of substrings delimited by delimiter
-string[] split(string s, string delimiter=" ")
+// If delimiter is an empty string, use space delimiter, discarding duplicates.
+string[] split(string s, string delimiter="")
{
+ bool prune=false;
+ if(delimiter == "") {
+ prune=true;
+ delimiter=" ";
+ }
+
string[] S;
int last=0;
int i;
int N=length(delimiter);
+ int n=length(s);
while((i=find(s,delimiter,last)) >= 0) {
if(i >= last)
S.push(substr(s,last,i-last));
last=i+N;
+ if(prune)
+ while(substr(s,last,1) == " ") ++last;
}
- int n=length(s);
- if(n >= last)
+ if(n > last || (n == last && !prune))
S.push(substr(s,last,n-last));
return S;
}
@@ -150,7 +159,12 @@ string graphic(string name, string options="")
{
if(latex()) {
if(options != "") options="["+options+"]";
- return "\includegraphics"+options+"{"+name+"}";
+ if(find(name," ") < 0)
+ return "\includegraphics"+options+"{"+name+"}";
+ else {
+ return "\includegraphics"+options+
+ (pdf() ? "{\""+stripextension(name)+"\".pdf}" : "{\""+name+"\"}");
+ }
}
if(settings.tex != "context")
notimplemented("graphic");
@@ -160,10 +174,10 @@ string graphic(string name, string options="")
string minipage(string s, real width=100bp)
{
if(latex())
- return "\begin{minipage}{"+(string) (width*pt)+"pt}"+s+"\end{minipage}";
+ return "\begin{minipage}{"+(string) (width/pt)+"pt}"+s+"\end{minipage}";
if(settings.tex != "context")
notimplemented("minipage");
- return "\startframedtext[none][frame=off,width="+(string) (width*pt)+
+ return "\startframedtext[none][frame=off,width="+(string) (width/pt)+
"pt]"+s+"\stopframedtext";
}
@@ -197,20 +211,3 @@ string phantom(string s)
}
restricted int ocgindex=0;
-
-void begin(picture pic=currentpicture, string name, string id="",
- bool visible=true)
-{
- if(!latex() || !pdf()) return;
- settings.twice=true;
- if(id == "") id=string(++ocgindex);
- tex(pic,"\begin{ocg}{"+name+"}{"+id+"}{"+(visible ? "1" : "0")+"}");
- layer(pic);
-}
-
-void end(picture pic=currentpicture)
-{
- if(!latex() || !pdf()) return;
- tex(pic,"\end{ocg}");
- layer(pic);
-}