summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/fig4latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-08-18 17:40:52 +0000
committerKarl Berry <karl@freefriends.org>2009-08-18 17:40:52 +0000
commit98ac773cee4cd6ed80acef55d20924f104ce2993 (patch)
tree965b7a10262a53e65a4824cc8448ceae4edcf0f7 /Master/texmf-dist/scripts/fig4latex
parent2df635cec7ad23cb94bf6870ebcdfc4b9132df3f (diff)
new script fig4latex (24jul09)
git-svn-id: svn://tug.org/texlive/trunk@14752 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/fig4latex')
-rwxr-xr-xMaster/texmf-dist/scripts/fig4latex/fig4latex158
1 files changed, 158 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/fig4latex/fig4latex b/Master/texmf-dist/scripts/fig4latex/fig4latex
new file mode 100755
index 00000000000..cda79cb1569
--- /dev/null
+++ b/Master/texmf-dist/scripts/fig4latex/fig4latex
@@ -0,0 +1,158 @@
+#!/usr/bin/env perl
+
+# Copyright 2009 Joseph E. Fields
+# email: fieldsj1@southernct.edu
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+$version = "0.2";
+
+# Version 0.2
+# Changed hashbang to use the '/usr/bin/env perl' hack for portability
+# Added a check on the return status of open("> Makefile").
+#
+# Version 0.1
+# Original release.
+
+#default values of a few variables
+
+$mag_factor = 1.0;
+$pdflatex = 0;
+$figure_directory = "./";
+
+
+&parse_command_line;
+
+
+if ($figure_directory =~ m/\/$/) {
+ $pref = $figure_directory;
+} else {
+ $pref = $figure_directory . "/";
+}
+
+
+#Look for files ending with the .fig extension in the current directory.
+
+opendir(THISDIR, ".");
+@fig_files = grep(/\.fig$/, readdir(THISDIR));
+
+open(MAKEFILE, "> Makefile") || die "Can't open Makefile for write. \n"; ;
+
+#First we run through the list of .fig files to make a list of corresponding
+#.tex files these are used as the dependencies for the "all" target.
+
+@tex_files = ();
+@base_names = ();
+
+foreach $fig (@fig_files) {
+ $tex_file_name = $fig;
+ $base = $fig;
+ $tex_file_name =~ s/\.fig$/\.tex/;
+ $base =~ s/\.fig$//;
+ push(@tex_files, $tex_file_name);
+ push(@base_names, $base);
+}
+print MAKEFILE "\#\n\# fig4latex makefile\n\#\n\n";
+print MAKEFILE "all: @tex_files\n\n";
+
+#For each .fig file we need to add appropriate lines to the Makefile
+
+if ($pdflatex == 1){
+ $ext = ".pdf";
+} else {
+ $ext = ".eps";
+}
+
+foreach $nm (@base_names) {
+ print MAKEFILE "\# translation into pstex\n\n";
+ print MAKEFILE "$nm\.tex: $nm$ext \n";
+ print MAKEFILE "\tfig2dev -L pstex_t -p $pref$nm$ext -m $mag_factor $nm\.fig > $nm\.tex\n\n";
+ print MAKEFILE "$nm\.pdf: $nm\.eps \n";
+ print MAKEFILE "\tepstopdf $nm\.eps\n\n";
+ print MAKEFILE "$nm\.eps: $nm\.fig \n";
+ print MAKEFILE "\tfig2dev -L pstex -m $mag_factor $nm\.fig > $nm\.eps\n\n";
+ print MAKEFILE "clean::\n";
+ print MAKEFILE "\trm -f $nm\.tex $nm\.eps $nm\.pdf\n\n\n";
+}
+
+close(MAKEFILE);
+
+print "\nNow run \'make\' to update your graphics files.\n\n";
+print "If you are changing from PdfLaTeX (-p) to LaTeX (-l), or vice versa, \n";
+print "run \'make clean\' then \'make\'.\n\n";
+
+sub parse_command_line{
+ while ($ARGV[0] =~ /^-/) {
+ $_ = shift @ARGV; # in a subroutine
+ if (/^-m$/) {
+ $mag_factor = shift @ARGV;
+ if ( ! ($mag_factor > 0.0) ) {
+ print "\nThe next thing after the -m option is supposed to be a number\n";
+ die("Bad arg for -m (magnification factor): $mag_factor\n\n");
+ }
+ }
+ elsif (/^-p$/) {
+ $pdflatex = 1;
+ }
+ elsif (/^-l$/) {
+ $pdflatex = 0;
+ }
+ elsif (/^-d$/) {
+ $figure_directory = shift @ARGV;
+ if (! (-d "../".$figure_directory)) {
+ print "\nArgument after -d must be the name of the directory\n";
+ print "containing the figures, which you should currently be in!\n\n";
+ die;
+ }
+ if ($figure_directory eq "") {
+ print "\nPlease specify a path to the figures (relative to the\n";
+ print " LaTeX source files). \n\n";
+ die;
+ }
+ }
+ elsif (/^-h$/ || /^--help$/) {
+ &usage && die;
+ }
+ elsif (/^--version$/) {
+ print "\nThis is Fig4latex, version $version.\n\n";
+ die;
+ }
+ else {
+ &usage && die;
+ }
+ }
+}
+
+sub usage{
+ print <<"MULTILINE";
+
+Usage: fig4latex [-d dir] [-m NUM] [-p] [-l] [-h]
+
+ -d DIR Directory containing the figures (a path relative to
+ the directory where your LaTeX source files are).
+ -m NUM Magnification factor.
+ -p Pdflatex -- create makefile for use with pdflatex -- the images
+ get converted to pdf format.
+ -l Latex -- create makefile for use with (regular) latex -- the images
+ are exported as eps format. (this is the default)
+ -h Help -- print this message and quit.
+
+This program creates a Makefile. Running 'make' will then search the
+current director for .fig files and use fig2dev (pstex and pstex_t) to
+create .tex files which are \input into your latex file to include the
+graphic. Any text in the figure with the 'special' flag set is processed
+by LaTeX.
+MULTILINE
+}
+