Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jun 2012 21:00:03 -0500
From:      Antonio Olivares <olivares14031@gmail.com>
To:        Robert Bonomi <bonomi@mail.r-bonomi.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: converting mpost(ed) files individually to eps
Message-ID:  <CAJ5UdcMHr7hvrfJMKjzz7AVmYK3jChx8EgzzUBJf-x0awhAzDg@mail.gmail.com>
In-Reply-To: <201206190130.q5J1UQ1C015381@mail.r-bonomi.com>
References:  <201206190110.q5J1AorD015312@mail.r-bonomi.com> <201206190130.q5J1UQ1C015381@mail.r-bonomi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 18, 2012 at 8:30 PM, Robert Bonomi <bonomi@mail.r-bonomi.com> w=
rote:
>> > Date: Mon, 18 Jun 2012 19:50:01 -0500
>> > From: Antonio Olivares <olivares14031@gmail.com>
>> > Subject: converting mpost(ed) files individually to eps
>> >
>> > Dear folks,
>> >
>> > I am taking a plunge to learning a little bit of metapost. =A0I have
>> > found examples page using google.
>> >
>> > http://www.tlhiv.org/MetaPost/examples/examples.html
>> >
>> > I want to convert output files individually to eps.
>> >
>> > I can only convert the first one output say file.1 to file.eps, but
>> > when there are more files, ie, file.2, ..., file.10, all the files
>> > between .2 and .10 do not get converted/saved to *.eps extension.
>>
>> Correct. =A0The script you showd processes a _single_ argument only.
>> Use a 'for loop' to handle multiple files, something like =A0--
>> =A0 =A0for thisfile in file.* do
>> =A0 =A0 `mpost-eps $thisfile
>> =A0 =A0end
>>
>> >
>> > [[ sneck -- copy of script itself ]]
>> >
>> > I run the script
>> > $ ./mpost-eps file
>> > without *.mp extension. =A0but only one gets converted. =A0I don't kno=
w
>> > enough shell programming to do something like
>> > for i in file.i do
>> > $GS -dNOPAUSE -dBATCH -sDEVICE=3Depswrite -sOutputFile=3D$1.eps $1.i
>>
>> You were *close*. =A0what you wanted is (assuming MPOST and GS are defin=
ed:
>> =A0 for file in {{list or wildcard}} do
>> =A0 =A0$MPOST $file
>> =A0 =A0$GS -dNOPAUSE -dBATCH -sDEVICE=3Depswrite -sOutputFile=3D$file.ep=
s $file.1
>> =A0 end
>
> I may have understood. =A0if it is MPOST that is producing the multiple f=
iles,
> then you want:
> =A0 $MPOST
> =A0 for file in file.* =A0do
> =A0 =A0$GS -dNOPAUSE -dBATCH -sDEVICE=3Depswrite -sOutputFile=3D$file.eps=
 $file
> =A0 end
>
> This will produce a series of files named =A0file.1.eps, file.2.eps, etc.

I added this to the script:

$MPOST $1.mp
  for file in file.*  do
   $GS -dNOPAUSE -dBATCH -sDEVICE=3Depswrite -sOutputFile=3D$file.eps $file
  end

But I get error in line 16:

$ ./mpost-eps webfig
./mpost-eps: 16: Syntax error: word unexpected

File follows here:  mpost-eps:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
$ cat mpost-eps
#!/bin/sh

MPOST=3D/usr/bin/kertex/mpost
GS=3D/usr/bin/gs

ERROR=3D"Too few arguments : no file name specified"
[ $# -eq 0 ] && echo $ERROR && exit # no args? ... print error and exit

# check that the file exists
if [ -f $1.mp ]
then
# if it exists then metapost it,then convert with ghostscript, then
remove all the unneeded files

$MPOST $1.mp
  for file in file.*  do
   $GS -dNOPAUSE -dBATCH -sDEVICE=3Depswrite -sOutputFile=3D$file.eps $file
  end

#$MPOST $1.mp
#$GS -dNOPAUSE -dBATCH -sDEVICE=3Depswrite -sOutputFile=3D$1.eps $1.1

# these lines can be appended to delete other files, such as *.out
if [ -f $1.log ]
then
	rm *.log
fi
else
# otherwise give this output line with a list of available metapost
files echo the file doesnt exist butthead! Choose one of these:
ls *.mp
fi

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

It would probably be better if insead of
file.1.eps, file.2.eps, file.3.eps , ... , fileN.eps to write to
file-1.eps, file-2.eps, file-3.eps, ..., file-N.eps.

Some friends tell me that the file generated by metapost is already an
eps file, that I am only making things difficult :(

Thanks for your help & suggestions.

Regards,


Antonio



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ5UdcMHr7hvrfJMKjzz7AVmYK3jChx8EgzzUBJf-x0awhAzDg>