File fig2dev-3.2.6-fig2mpdf.patch of Package transfig.11759

Author: Michael Pfeiffer <p3fff@web.de>
Description: creating multilayered or singlelayer PDF or EPS figures for
 including into LaTeX documents.
Origin: http://p3f.gmxhome.de/fig2mpdf/fig2mpdf.html







diff --git a/fig2dev-3.2.6a/fig2dev/dev/genpstex.c b/fig2dev-3.2.6a/fig2dev/dev/genpstex.c
--- a/fig2dev-3.2.6a/fig2dev/dev/genpstex.c
+++ b/fig2dev-3.2.6a/fig2dev/dev/genpstex.c
@@ -49,6 +49,7 @@
 
 #include "fig2dev.h"
 #include "object.h"	/* does #include <X11/xpm.h> */
+#include "texfonts.h"
 
 extern double rad2deg;
 
@@ -76,7 +77,307 @@ extern int	genpdf_end(void);			/* genpdf
 extern void	genps_grid(float major, float minor);
 
 static char pstex_file[1000] = "";
+static int    iObjectsRead = 0;
+static int    iTextRead = 0;
+static int    iObjectsFileNumber = 0;
+static int    iStartDepth;
+static int    iLastDepth;
+static FILE * ptCreateFile;
+static char   szFileName[1000];
+static int    iLength;
+static int    iPdfOutputs = 0;
+
+#ifdef never
+static double		unitlength;
+static double		dash_mag = 1.0;
+ 
+static int		(*translate_coordinates)() = NULL;
+static int		(*translate_coordinates_d)() = NULL;
+#else
+extern double		unitlength;
+extern double		dash_mag;
+
+extern int		(*translate_coordinates)();
+extern int		(*translate_coordinates_d)();
+#endif
+
+#define TOP		840
+#define	SWAP(x,y)	{tmp=x; x=y; y=tmp;}
+#define TRANS(x,y)		(*translate_coordinates)(&x,&y)
+#define TRANS2(x1,y1,x2,y2)	(*translate_coordinates)(&x1,&y1); \
+				(*translate_coordinates)(&x2,&y2)
+#define TRANSD(x,y)		(*translate_coordinates_d)(&x,&y)
+
+static void genpstex_p_finalize_objects(int depth);
+
+/*************************************************************************
+ *************************************************************************/
+static
+translate2(xp, yp)
+  int	*xp, *yp;
+{
+	*xp = *xp + 1;
+	*yp = (double)(TOP - *yp -1);
+	}
+
+static
+translate1_d(xp, yp)
+  double	*xp, *yp;
+{
+	*xp = *xp + 1.0;
+	*yp = *yp + 1.0;
+	}
+
+static
+translate2_d(xp, yp)
+  double	*xp, *yp;
+{
+	*xp = *xp + 1.0;
+	*yp = (double)TOP - *yp -1.0;
+	}
+
+/*************************************************************************
+ *************************************************************************/
+void genpstex_p_option(opt, optarg)
+char opt, *optarg;
+{
+       if (opt == 'p')
+       {
+	   strcpy(pstex_file, optarg);
+       }
+       else
+	   genlatex_option(opt, optarg);
+}
+
+
+/*************************************************************************
+ *************************************************************************/
+void genpstex_p_start(objects)
+  F_compound	*objects;
+{
+	int	      tmp;
+	struct stat   tStat;
+	long          lUnitLength;
+
+        if (*pstex_file == '\0')
+        {
+		put_msg("Argument -p is mandatory to pstex_p.");
+		exit(1);
+	}
+
+	strncpy(szFileName, pstex_file, 900);
+	iLength = strlen(szFileName);
+
+	sprintf(szFileName + iLength, ".create");
+	ptCreateFile = fopen (szFileName, "wb");
+
+	if ( ! ptCreateFile)
+        {
+		put_msg("Couldn't open %s for writing", szFileName);
+		exit(1);
+	}
+	fstat(fileno(ptCreateFile), & tStat);
+	fchmod (fileno(ptCreateFile), tStat.st_mode | ((tStat.st_mode & (S_IRUSR | S_IRGRP | S_IROTH)) >> 2));
+	fprintf(ptCreateFile, "#!/bin/bash\n\n", szFileName);
+
+	fprintf(ptCreateFile, "while getopts \"r\" Option\n");
+	fprintf(ptCreateFile, "do\n");
+	fprintf(ptCreateFile, "  case $Option in\n");
+	fprintf(ptCreateFile, "    r) iOptRemove=1;;\n");
+	fprintf(ptCreateFile, "    *) echo \"illegal option -$Option\"\n");
+	fprintf(ptCreateFile, "  esac\n");
+	fprintf(ptCreateFile, "done\n");
+	fprintf(ptCreateFile, "shift $(($OPTIND - 1))\n");
+
+	texfontsizes[0] = texfontsizes[1] =
+		TEXFONTSIZE(font_size != 0.0? font_size : DEFAULT_FONT_SIZE);
+
+ 	unitlength = mag/ppi;
+	dash_mag /= unitlength*80.0;
+
+	translate_coordinates = translate2;
+	translate_coordinates_d = translate2_d;
+
+	TRANS2(llx, lly, urx, ury);
+	if (llx > urx) SWAP(llx, urx)
+	if (lly > ury) SWAP(lly, ury)
+
+	/* LaTeX start */
+
+	/* print any whole-figure comments prefixed with "%" */
+	if (objects->comments) {
+	    fprintf(tfp,"%%\n");
+	    print_comments("% ",objects->comments, "");
+	    fprintf(tfp,"%%\n");
+	}
+
+	lUnitLength = (long) (round(4736286.72*unitlength));
+	fprintf(tfp, "\\setlength{\\unitlength}{%lisp}%%\n",
+				lUnitLength);
+	/* define the SetFigFont macro */
+	define_setfigfont(tfp);
+
+	sprintf(szFileName + iLength, ".size");
+	fprintf(ptCreateFile, "if [ \"$iOptRemove\" == \"\" ]; then\n");
+	if (iPdfOutputs)
+		fprintf(ptCreateFile, "  echo \"\\setlength\\pdfpagewidth{%3.2fpt}\\setlength\\pdfpageheight{%3.2fpt}\" > %s\n",
+        	        (float) lUnitLength / 65536 * (urx - llx), (float) lUnitLength / 65536 * (ury - lly), szFileName);
+	else
+		fprintf(ptCreateFile, "echo -n\"\" > %s\n", szFileName);
+	fprintf(ptCreateFile, "else\n  rm -f %s\nfi\n", szFileName);
+}
+
+/*************************************************************************
+ *************************************************************************/
+void genpdftex_p_start(objects)
+  F_compound	*objects;
+{
+	iPdfOutputs = 1;
+	genpstex_p_start(objects);
+}
+
+
+/*************************************************************************
+ *************************************************************************/
+int genpstex_p_end()
+{
+	if (iTextRead)
+	{
+		fprintf(tfp, "\\end{picture}%%\n");
+		iTextRead = 0;
+	}
+	if (iObjectsRead)
+	{
+		genpstex_p_finalize_objects(iLastDepth);
+		iObjectsRead = 0;
+	}
+
+	/* LaTeX ending */
+	fprintf(tfp, "\\begin{picture}(%d,%d)\n", urx-llx, ury-lly);
+	fprintf(tfp, "\\end{picture}%%\n");
+
+	fclose(ptCreateFile);
+
+	/* all ok */
+	return 0;
+}
 
+
+/*************************************************************************
+ *************************************************************************/
+void genpstex_p_finalize_objects(depth)
+int depth;
+{
+	char	szFileName[1000];
+	int     iLength;
+
+	strncpy(szFileName, pstex_file, 900);
+	iLength = strlen(szFileName);
+
+
+	sprintf(szFileName + iLength, "%03d", iObjectsFileNumber++);
+	fprintf(ptCreateFile, "if [ \"$iOptRemove\" == \"\" ]; then\n");
+	if (iPdfOutputs)
+	{
+		fprintf(ptCreateFile, "  %s -L pstex -D +%d:%d %s", prog, depth, iStartDepth, from, szFileName);
+		fprintf(ptCreateFile, " | epstopdf -f > %s.pdf\n", szFileName, szFileName);
+	}
+	else
+		fprintf(ptCreateFile, "%s -L pstex -D +%d:%d %s %s.eps\n", prog, depth, iStartDepth, from, szFileName);
+	fprintf(ptCreateFile, "else\n  rm -f %s.", szFileName);
+	if (iPdfOutputs)
+		fprintf(ptCreateFile, "pdf");
+	else
+		fprintf(ptCreateFile, "eps");
+	fprintf(ptCreateFile, "\nfi\n");
+
+	fprintf(tfp, "\\begin{picture}(0,0)%%\n");
+/* newer includegraphics directive suggested by Stephen Harker 1/13/99 */
+#if defined(LATEX2E_GRAPHICS)
+#  if defined(EPSFIG)
+	fprintf(tfp, "\\epsfig{file=%s.eps}%%\n",szFileName);
+#  else
+	fprintf(tfp, "\\includegraphics{%s}%%\n",szFileName);
+#  endif
+#else
+	fprintf(tfp, "\\special{psfile=%s.eps}%%\n",szFileName);
+#endif
+	fprintf(tfp, "\\end{picture}%%\n");
+}
+
+/*************************************************************************
+ *************************************************************************/
+void genpstex_p_object(depth)
+int depth;
+{
+	if (iTextRead)
+	{
+		fprintf(tfp, "\\end{picture}%%\n");
+		iTextRead = 0;
+	}
+	if (iObjectsRead == 0)
+	{
+		iStartDepth = depth;
+		iObjectsRead = 1;
+	}
+	iLastDepth = depth;
+
+}
+
+void genpstex_p_arc(obj)
+F_arc	*obj;
+{
+	genpstex_p_object(obj->depth);
+}
+
+
+void genpstex_p_ellipse(obj)
+F_ellipse	*obj;
+{
+	genpstex_p_object(obj->depth);
+}
+
+void genpstex_p_line(obj)
+F_line	*obj;
+{
+	genpstex_p_object(obj->depth);
+}
+
+void genpstex_p_spline(obj)
+F_spline	*obj;
+{
+	genpstex_p_object(obj->depth);
+}
+
+
+
+/*************************************************************************
+ *************************************************************************/
+void genpstex_p_text(t)
+F_text	*t;
+{
+
+	if (!special_text(t))
+		genpstex_p_object(t->depth);
+	else
+	{
+		if (iObjectsRead)
+		{
+			genpstex_p_finalize_objects(iLastDepth);
+			iObjectsRead = 0;
+		}
+		if (iTextRead == 0)
+		{
+			fprintf(tfp, "\\begin{picture}(0,0)(%d,%d)\n", llx, lly);
+			iTextRead = 1;
+		}
+		genlatex_text(t);
+	}
+
+}
+
+/*************************************************************************
+ *************************************************************************/
 void
 genpstex_t_option(char opt, char *optarg)
 {
@@ -130,6 +431,32 @@ genpstex_option(char opt, char *optarg)
 	   genlatex_option(opt, optarg);
 }
 
+struct driver dev_pstex_p = {
+	genpstex_p_option,
+	genpstex_p_start,
+	gendev_null,
+	genpstex_p_arc,
+	genpstex_p_ellipse,
+	genpstex_p_line,
+	genpstex_p_spline,
+	genpstex_p_text,
+	genpstex_p_end,
+	INCLUDE_TEXT
+};
+
+struct driver dev_pdftex_p = {
+	genpstex_p_option,
+	genpdftex_p_start,
+	gendev_null,
+	genpstex_p_arc,
+	genpstex_p_ellipse,
+	genpstex_p_line,
+	genpstex_p_spline,
+	genpstex_p_text,
+	genpstex_p_end,
+	INCLUDE_TEXT
+};
+
 struct driver dev_pstex_t = {
 	genpstex_t_option,
 	genpstex_t_start,
diff --git a/fig2dev-3.2.6a/fig2dev/drivers.h b/fig2dev-3.2.6a/fig2dev/drivers.h
--- a/fig2dev-3.2.6a/fig2dev/drivers.h
+++ b/fig2dev-3.2.6a/fig2dev/drivers.h
@@ -32,8 +32,10 @@ extern struct driver dev_eps;
 extern struct driver dev_pdf;
 extern struct driver dev_pdftex;
 extern struct driver dev_pdftex_t;
+extern struct driver dev_pdftex_p;
 extern struct driver dev_pstex;
 extern struct driver dev_pstex_t;
+extern struct driver dev_pstex_p;
 extern struct driver dev_pstricks;
 extern struct driver dev_textyl;
 extern struct driver dev_tk;
@@ -78,6 +80,7 @@ struct {
 	{"pdf",		&dev_pdf},
 	{"pdftex",	&dev_pdftex},
 	{"pdftex_t",	&dev_pdftex_t},
+	{"pdftex_p",	&dev_pdftex_p},
 	{"pic",		&dev_pic},
 	{"pict2e",	&dev_pict2e},
 	{"pictex",	&dev_pictex},
@@ -86,6 +89,7 @@ struct {
 	{"ps",		&dev_ps},
 	{"pstex",	&dev_pstex},
 	{"pstex_t",	&dev_pstex_t},
+	{"pstex_p",	&dev_pstex_p},
 	{"pstricks",	&dev_pstricks},
 	{"ptk",		&dev_ptk},
 	{"shape",	&dev_shape},
diff --git a/fig2dev-3.2.6a/fig2dev/fig2dev.c b/fig2dev-3.2.6a/fig2dev/fig2dev.c
--- a/fig2dev-3.2.6a/fig2dev/fig2dev.c
+++ b/fig2dev-3.2.6a/fig2dev/fig2dev.c
@@ -691,6 +691,18 @@ help_msg(void)
 #endif /* NFSS */
     puts("  -p name	name of the PostScript file to be overlaid");
 
+    puts("PSTEX_P and PDFTEX_P Options:\n");
+    puts("  -p name	basename of the files to be created\n");
+#ifdef NFSS
+    puts("  -F		don't set font family/series/shape, so you can");
+    puts("		  set it from latex");
+#endif /* NFSS */
+    puts("  -d dmag	set separate magnification for length of line dashes to dmag\n");
+    puts("  -E num	set encoding for text translation (0 = no translation,");
+    puts("		  1 = ISO-8859-1, 2 = ISO-8859-2)");
+    puts("  -l lwidth	set threshold between thin and thick lines to lwidth\n");
+    puts("  -v		verbose mode\n");
+
     puts("SHAPE (ShapePar driver) Options:");
     puts("  -n name	Set basename of the macro");
     puts("		  (e.g. \"face\" gives faceshape and facepar)");
@@ -830,6 +842,12 @@ gendev_objects(F_compound *objects, stru
 
 int rec_comp(struct obj_rec *r1, struct obj_rec *r2)
 {
+	if (r2->depth == r1->depth)
+	{
+		if ((r1->gendev == dev->text) ^ (r2->gendev == dev->text))
+			return ((r1->gendev == dev->text) * 2 - 1);
+		return (0);
+	}
 	return (r2->depth - r1->depth);
 }
 
diff --git a/fig2dev-3.2.6a/fig2mpdf/copyright.txt b/fig2dev-3.2.6a/fig2mpdf/copyright.txt
--- a/fig2dev-3.2.6a/fig2mpdf/copyright.txt
+++ b/fig2dev-3.2.6a/fig2mpdf/copyright.txt
@@ -0,0 +1,25 @@
+The following files contain copyright and license info for
+the code they contain:
+fig2mpdf, fig2mpdf.1, transfig.3.2.4.patch, transfig-3.2.5-alpha7.patch
+
+-- fig2mpdf copyright begins here --
+
+    fig2mpdf/pdftex_p and pstex_p driver of fig2dev
+    Copyright (C) 2006 Michael Pfeiffer -- p3fff@web.de
+
+    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 2 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, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+    (Author's note: the license is in the file gpl.txt, which is included
+     in the archive.)
diff --git a/fig2dev-3.2.6a/fig2mpdf/fig2mpdf.1 b/fig2dev-3.2.6a/fig2mpdf/fig2mpdf.1
--- a/fig2dev-3.2.6a/fig2mpdf/fig2mpdf.1
+++ b/fig2dev-3.2.6a/fig2mpdf/fig2mpdf.1
@@ -0,0 +1,208 @@
+.TH fig2mpdf 1 "Jun 2006" "" "Including xfig figures into LaTeX documents"
+.SH NAME
+fig2mpdf \- creation of multilayer pdf or eps figures from fig files using latex for typesetting
+.SH SYNOPSIS
+.B fig2mpdf
+[\fIOPTION\fR]... \fIFILE\fR
+.SH DESCRIPTION
+.PP
+This tool can create pdf or eps figures using fig files as source. For beamer
+presentations, for example, you can use the multilayer mode to create
+multiple figures that can be overlayed to get a dynamic figure. For
+proper appearance you can use latex to typeset some or all texts,
+possibly containing formulas.
+
+The default interpretation of the given fig \fIFILE\fR depends on its suffix.
+.TP
+\fIfig\fR
+Normal conversion of a fig file. All texts are interpreted as postscript
+texts and all elements of the figure are included in the resulting figure.
+.TP
+\fIlfig\fR
+LaTeX interpretation of the file. All texts of the input file that have the
+special bit set are typeset by pdflatex resp. latex (see: Option \fB\-|+l\fR).
+.TP
+\fImfig\fR
+Multilayer file interpretation. Depending on the used depths of the
+figure it is split into multiple parts. For each part an output file is
+created (see: section \fBMultiLayerOutput\fR).
+.TP
+\fImlfig\fR or \fIlmfig\fR
+Combination of multilayer and LaTeX interpretation of the input (see: Suffix
+\fIlfig\fR and \fImfig\fR).
+.PP
+The default interpretation of the input can be changed by using the options below.
+.SH OPTIONS
+.PP
+.TP
+\fB\-e\fR
+produce an eps output file. Instead of creating a pdf file (the default)
+an eps figure is produced.
+.TP
+\fB\-|+l\fR
+force calling (pdf)latex (-) or do not use (pdf)latex (+) for
+typesetting the text marked with the special flag. With this option you
+can change the default behavior given by the input file suffix.
+.TP
+\fB\-|+m\fR
+force set (-) or unset (+) the multilayer interpretation (see:
+\fBMultiLayerOutput\fR below) which was previously set by the input
+file suffix.
+.TP
+\fB\-p\fR \fIranges\fR
+explicitly set the ranges of depths for splitting the input figure in
+multilayer mode. \fIranges\fR is a colon separated list of ranges of
+the form \fIupper-lower\fR or \fIdepth\fR where \fIupper\fR  is the
+top and \fIlower\fR the bottom depth in the range. If you use the
+\fIdepth\fR form the range consist of just that depth.
+.TP
+\fB\-i\fR
+include the the bottommost range (that is, the one with the highest depth) into
+all output figures. This is for compatibility to older versions of this
+tool.
+.TP
+\fB\-I\fR
+turn on pyramid mode. The figure of a corresponding range in multilayer
+mode includes all lower ranges too.
+.TP
+\fB\-g\fR \fIgapwidth\fR
+set the allowed gapwidth between two used depths to decide if these
+depths should be grouped together in one range. With this option you get
+more flexibility to insert objects with new depths. The default width is
+zero (no gap = consecutively numbered depths are grouped together).
+.TP
+\fB\-s\fR \fIstyle\fR
+replace the default style for selecting a font family in LaTeX mode.
+If this option is omitted the style `times' is set by default.
+.TP
+\fB\-H\fR \fIheader\fR
+replace the default header sequence for creating temporary
+LaTeX documents in LaTeX mode. To get maximum flexibility you can
+set the entire document header in the file \fIheader\fR (see:
+\fBCustomized Headers\fR  below).
+.TP
+\fB\-G\fR
+in multilayer mode change the default output file pattern to the PDF
+format which is  <name>.page<no>.<ext>
+.TP
+\fB\-v\fR
+be verbose and print out all executed commands
+.TP
+\fB\-V\fR
+print out the version of \fBfig2mpdf\fR
+.PP
+.SH "MultiLayerOutput"
+In xfig you can assign an individual depth to all objects of the
+figure. These depths are normally used to determine the order of
+printing the objects. \fBfig2mpdf\fR uses these depths to group the
+objects into ranges in automatic mode (if the ranges option is
+omitted). In the list of used depths, consecutively numbered depths are
+grouped into one range. That is, all gaps between used depths are used
+to logically split the figure. With \fB\-g\fR you can set the
+gapwidth which doesn't split the figure (default: zero).
+.PP
+The resulting list of ranges determines the number of output files. In
+default mode all objects with depths assigned to one range are
+collected and put into the corresponding output file. The contents of
+the output files can be changed with the two Options \fB\-i\fR and
+\fB\-I\fR.
+.PP
+The \fB\-i\fR option reduces the number of output files by one. The
+bottommost range, that is the range which consist of the highest depths
+of the figure, is included into all output files.
+.PP
+In pyramid mode, activated by the option \fB\-I\fR, the output files
+contain additionally all lower ranges. With this mode you can
+get stand alone figures that don't have to be overlayed to have
+meaningful content.
+.PP
+\fBExample 1\fR
+.PD 0
+.PP
+Assume that you have a fig file \fIfoo.fig\fR which contains the three ranges
+.IR "230-233",
+.IR "455-460"
+and
+.IR "499-500".
+.PD
+.PP
+With no options set you get three output files, one per range. But if you
+set the \fB\-i\fR option you get the following two files where the
+bottommost range is included in both of the files:
+.PD 0
+.PP
+  \fIfoo-0.pdf\fR with ranges \fI455-460\fR and \fI499-500\fR
+.PP
+  \fIfoo-1.pdf\fR with ranges \fI230-233\fR and \fI499-500\fR.
+.PD
+.PP
+\fBExample 2\fR
+.PD 0
+.PP
+The pyramid mode, activated by the option \fB\-I\fR, will produce the
+following files from the source file of \fBExample 1\fR:
+.PP
+  \fIfoo-0.pdf\fR with ranges \fI499-500\fR
+.PP
+  \fIfoo-1.pdf\fR with ranges \fI455-460\fR and \fI499-500\fR
+.PP
+  \fIfoo-2.pdf\fR with ranges \fI230-233\fR, \fI455-460\fR and \fI499-500\fR.
+.PD
+.PP
+\fBExample 3\fR
+.PD 0
+.PP
+If both options are set you will get just two files with the following
+contents:
+.PP
+  \fIfoo-0.pdf\fR with ranges \fI455-460\fR and \fI499-500\fR
+.PP
+  \fIfoo-1.pdf\fR with ranges \fI230-233\fR, \fI455-460\fR and \fI499-500\fR.
+.PD
+.PP
+.SH "Customized Headers"
+For various reasons you might want to change the standard latex generation,
+e.g., if you want to change the default font family. The following
+example represents a valid header file.
+
+The usage of this example file changes the font family to sans serif
+and adds an additional search path for includegraphics to the `figures'
+subdirectory.
+
+.PD 0
+  \\documentclass{article}
+.PP
+  \\usepackage{german,amssymb,amsmath}
+.PP
+  \\renewcommand{\\familydefault}{\\sfdefault}
+.PP
+  \\AtBeginDocument{\\graphicspath{{figures/}}}
+.PD
+
+The following packages are generally used: \fBcolor\fR, \fBgraphicx\fR and \fBepsfig\fR.
+.SH "Tex errors"
+Sometimes it might happen that latex generates an error while processing
+your special texts. To keep you informed about the occurrence of that
+error and about what has happened, in this case the log file is shown
+by invoking a less command.
+.SH "Files"
+In single layer mode for the resulting files the suffix fig is replaced
+by pdf (resp. eps) (i.e. foo.fig -> foo.pdf).
+.PP
+.PD 0
+In multilayer mode the base name of the source fig files is extended
+by '-<range>' and the suffix is set to pdf (resp. eps).
+.PP
+(i.e., foo.fig -> foo-0.pdf, foo-1.pdf, foo-2.pdf,  ...
+.PP
+    or foo.fig -> foo.page0.pdf, foo.page1.pdf, foo.page2.pdf, ...
+.PP
+       if the option \fB\-G\fR is set).
+.PD
+.SH "SEE ALSO"
+.IR xfig(1)
+.IR fig2dev(1)
+.IR gawk(1)
+.IR pdflatex(1)
+.IR latex(1)
+.IR dvips(1)
diff --git a/fig2dev-3.2.6a/fig2mpdf/fig2mpdf b/fig2dev-3.2.6a/fig2mpdf/fig2mpdf
--- a/fig2dev-3.2.6a/fig2mpdf/fig2mpdf
+++ b/fig2dev-3.2.6a/fig2mpdf/fig2mpdf
@@ -0,0 +1,653 @@
+#!/bin/sh
+
+unset POSIXLY_CORRECT
+
+gawk '
+#########################################################################
+#########################################################################
+BEGIN {
+
+  cmdGawk	= "gawk";
+  cmdCat	= "cat";
+  cmdLess	= "less";
+  cmdRm		= "rm"
+  cmdMv		= "mv"
+  cmdLatex	= "latex";
+  cmdPdftex	= "pdflatex";
+  cmdEpsToPdf	= "epstopdf";
+  cmdDvips	= "dvips";
+  cmdFig2dev	= "fig2dev";
+  cmdTouch	= "touch";
+
+  szVersion     = "1.1.2";
+  iError        = 0;
+  iGapWidth     = 1;
+
+
+  # get the options
+  szOptString = "&l%e&m$p%i%I$s$H$g%G%v%V%d";
+  getopt(szOptString);
+
+  if (aOptions["d"])
+  {
+    aOptions["v"] = "-";
+    for (iI = 0; iI < ARGC; iI++)
+      printf("ARGV[%d]=%s\n", iI, ARGV[iI]);
+
+    iDim = split(szOptString, aOpts, "[$%&]");
+    for (iI = 2; iI <= iDim; iI++)
+      debug("aOptions[%s] = >%s<\n", aOpts[iI], aOptions[aOpts[iI]]);
+  }
+
+
+
+  if (aOptions["V"] != "")
+  {
+    printf("fig2mpdf: version %s\n", szVersion);
+    iError = 1;
+    exit(0);
+  }
+
+  szTmpPrefix	= "_fig2mpdf"
+
+  iLine = -1;
+  iInString = 0;
+  iDepths = 1;
+
+  iInvalidDepth = -2
+  iAdminDepth   = 2000
+
+  szBase = ARGV[1];
+  szOrigFile = ARGV[1];
+  szOrigPath = ARGV[1];
+
+  # set default switch state
+  iDoMultiLayer = 0;
+  iDoLatex = 0;
+  iDoPdftex = 1;
+  iIncludeLowestRange = 1;
+
+  # set iDoLatex and iDoMultiLayer concerning the given suffix
+  match(szBase, /\.[^\.\/]+$/);
+  if (RLENGTH != -1)
+  {
+    szSuffix = substr(szBase, RSTART);
+    if (szSuffix == ".lfig")
+      iDoLatex = 1;
+    else if (szSuffix == ".mfig")
+      iDoMultiLayer = 1;
+    else if ((szSuffix == ".mlfig") || (szSuffix == ".lmfig"))
+    {
+      iDoLatex = 1;
+      iDoMultiLayer = 1;
+    }
+  }
+
+  ################################
+  # evalutate options
+
+  # set toggle latex
+  if (aOptions["l"] == "-")
+    iDoLatex = 1;
+  if (aOptions["l"] == "+")
+    iDoLatex = 0;
+
+  # set multilayer flag
+  if (aOptions["m"] == "-")
+    iDoMultiLayer = 1;
+  if (aOptions["m"] == "+")
+    iDoMultiLayer = 0;
+
+  # set toggle pdftex
+  if (aOptions["e"] == "-")
+    iDoPdftex = 0;
+
+  # evaluate do not include lowest layer in all figs
+  iIncludeLowestRange = (aOptions["i"] == "-");
+
+  # evaluate include all lower ranges in the sub figs
+  iIncludeAllLowerRanges = (aOptions["I"] != "-");
+
+  # check consistencies
+  # if there are ranges given -> do multilayer
+  if (aOptions["p"] != "")
+    iDoMultiLayer = 1;
+
+
+  if (aOptions["g"] != "")
+  {
+    if ( ! match (aOptions["g"], /^[0-9]+$/))
+      usage();
+
+    iGapWidth = aOptions["g"] + 1;
+  }
+
+  # get the basename of the source
+  gsub(/\.[^\/]+$/, "", szBase);
+  gsub(/^.*\//, "", szBase);
+
+  # get the path to the original
+  gsub(/[^\/]+$/, "", szOrigPath);
+}
+#########################################################################
+#########################################################################
+
+( iInString != 0) {
+  aszLine[iLine] = sprintf("%s\n%s", aszLine[iLine], $0);
+  iInString = (match($0, "\\\\001$") == 0);
+  iSubLine++;
+  next;
+}
+
+/^[135][ 	]/ {
+  iCmd		= $1;
+  iSubCmd	= -1;
+  iSubLine	= 0;
+  aiDepth[++iLine] = fnGetDepth($1);
+  aszLine[iLine] = $0;
+  next;
+}
+
+/^[2][ 	]/ {
+  iCmd		= $1;
+  iSubCmd	= $2;
+  iSubLine	= 0;
+  aiDepth[++iLine] = fnGetDepth($1);
+  aszLine[iLine] = $0;
+  next;
+}
+
+
+/^[4][ 	]/ {
+  iCmd		= $1;
+  iSubCmd	= $2;
+  iSubLine	= 0;
+  aiDepth[++iLine] = fnGetDepth($1);
+  aszLine[iLine] = $0;
+  iInString = (match($0, "\\\\001$") == 0);
+  next;
+}
+
+/^(6[ 	])|(-6)/ {
+  iCmd		= $1;
+  iSubCmd	= -1;
+  iSubLine	= 0;
+  next;
+}
+
+/^[^	]/ {
+  iCmd		= -1;
+  aiDepth[++iLine]	= fnGetDepth("A");
+  iSubLine		= 0;
+  aszLine[iLine]	= $0;
+  next;
+}
+
+/^[	]/ {
+  iSubLine++;
+  if ((iCmd == 2) && (iSubCmd == 5) && (iSubLine == 1))
+  {
+    if (match($0, "^\t[01] "))
+    {
+      szFileName = substr($0, RSTART + RLENGTH);
+      if ( ! match(szFileName, /^\//))
+        szFileName = sprintf("%s%s", szOrigPath, szFileName);
+      aszLine[iLine] = sprintf("%s\n\t%s %s", aszLine[iLine], $1, szFileName);
+    }
+    else
+      aszLine[iLine] = sprintf("%s\n%s", aszLine[iLine], $0);
+  }
+  else
+    aszLine[iLine] = sprintf("%s\n%s", aszLine[iLine], $0);
+}
+
+
+END {
+  iLine++;
+  iLowestLayer = 0;
+  iFirstRange = 0;
+
+  if (iError == 0)
+  {
+
+
+    if (iDoMultiLayer)
+    {
+      asort(aiDepths, aiSortedDepth);
+
+      # check for ranges as options
+      if (aOptions["p"] != "")
+      {
+        # we have explicit ranges
+        gsub(/-/, ":", aOptions["p"]);
+        iRanges = split(aOptions["p"], aszRanges, ",");
+      }
+      else
+      {
+        if (iDepths < 4)
+        {
+          iRanges = 1;
+          aszRanges[1] = "1:999";
+        }
+        else
+        {
+          iRanges = 0;
+          iLastRange = aiSortedDepth[iDepths - 2] + 0;
+          iRangeStart = iLastRange;
+          for (iI = iDepths - 3; iI > 0; iI--)
+          {
+            aiSortedDepth[iI] += 0;
+            if ((aiSortedDepth[iI] < iLastRange - iGapWidth) || (iI == 1))
+            {
+              if (aiSortedDepth[iI] >= iLastRange - iGapWidth)
+                iLastRange = aiSortedDepth[iI];
+
+              if (iLastRange != iRangeStart)
+                aszRanges[++iRanges] = sprintf("%d:%d", iLastRange, iRangeStart);
+              else
+                aszRanges[++iRanges] = sprintf("%d", iRangeStart);
+              iRangeStart = aiSortedDepth[iI];
+
+              if ((iI == 1) && (aiSortedDepth[iI] < iLastRange - iGapWidth))
+                aszRanges[++iRanges] = sprintf("%d", aiSortedDepth[iI]);
+            }
+            iLastRange = aiSortedDepth[iI];
+          }
+        }
+      }
+
+
+      # check for a multilayer file with only one range
+      if ((iRanges == 1) && iIncludeLowestRange)
+      {
+        iIncludeLowestRange = 0;
+      }
+
+      szInitRangeList = " -D ";
+      szSep = "";
+
+      if (iIncludeLowestRange)
+      {
+        szInitRangeList = sprintf("%s+%s", szInitRangeList, aszRanges[1]);
+        szSep = ",";
+      }
+      szRangeList = szInitRangeList;
+
+      # step through the ranges
+      for (iI = iIncludeLowestRange; iI < iRanges; iI++)
+      {
+        szFileBase = sprintf("%s-%d", szBase, iI - iIncludeLowestRange);
+
+        if (aOptions["I"])
+        {
+          szRangeList = sprintf("%s%s+%s", szRangeList, szSep, aszRanges[iI + 1]);
+          szSep = ",";
+        }
+        else
+          szRangeList = sprintf("%s%s+%s", szInitRangeList, szSep, aszRanges[iI + 1]);
+
+
+        if (iDoLatex)
+          szTargetFile = fnDoTexFig(szFileBase, szOrigFile, szRangeList, (iDoPdftex != 0));
+        else
+          szTargetFile = fnDoNormalFig(szFileBase, szOrigFile, szRangeList, (iDoPdftex != 0));
+
+
+        if (aOptions["G"])
+        {
+          match(szTargetFile, /\.[^.]*$/);
+          szCommand = sprintf("%s %s %s.page%d%s", cmdMv, szTargetFile, szBase, iI - iIncludeLowestRange, substr(szTargetFile, RSTART, RLENGTH));
+          debug("%s\n", szCommand);
+          system(szCommand);
+        }
+      }
+    }
+    else
+    {
+      szRangeList = "";
+
+      if (iDoLatex)
+        szTargetFile = fnDoTexFig(szBase, szOrigFile, szRangeList, (iDoPdftex != 0));
+      else
+        szTargetFile = fnDoNormalFig(szBase, szOrigFile, szRangeList, (iDoPdftex != 0));
+    }
+  }
+}
+
+
+
+#########################################################################
+#########################################################################
+function debug(str, arg0, arg1, arg2, arg3, arg4)
+{
+  if (aOptions["v"])
+    printf (str, arg0, arg1, arg2, arg3, arg4);
+}
+
+#########################################################################
+#########################################################################
+function fnGetDepth (iControl)
+{
+
+  if (iControl == 1)
+  {
+    iReturn = sprintf("%04d", $7);
+  }
+  else if (iControl == 2)
+  {
+    iReturn = sprintf("%04d", $7);
+  }
+  else if (iControl == 3)
+  {
+    iReturn = sprintf("%04d", $7);
+  }
+  else if (iControl == 4)
+  {
+    iReturn = sprintf("%04d", $4);
+  }
+  else if (iControl == 5)
+  {
+    iReturn = sprintf("%04d", $7);
+  }
+  else if ((iControl == 6) || (iControl == -6))
+  {
+    iReturn = sprintf("%04d", iInvalidDepth);
+  }
+  else
+  {
+    iReturn = sprintf("%04d", iAdminDepth);
+  }
+
+  if (iReturn >= 0)
+  {
+    if (ahDepths[iReturn] == 0)
+    {
+      ahDepths[iReturn] = 1;
+      aiDepths[iDepths++] = iReturn;
+    }
+  }
+
+  return (iReturn);
+
+}
+
+#########################################################################
+#########################################################################
+function fnDoNormalFig(szFileNameBase, szFigFile, szRangeList, iPdf,
+                         szEpsFile, szPdfFile, szTargetFile, szCommand)
+{
+
+  debug("FileNameBase >%s< FigFile >%s< Pdf:%d\n", szFileNameBase, szFigFile, iPdf);
+
+  if (iPdf)
+    szEpsFile = sprintf("%s%s.eps", szTmpPrefix, szFileNameBase);
+  else
+  {
+    szEpsFile = sprintf("%s.eps", szFileNameBase);
+    szTargetFile = szEpsFile;
+  }
+
+  szCommand = sprintf("%s -L eps %s %s %s 2> /dev/null", cmdFig2dev, szRangeList, szFigFile, szEpsFile);
+  debug("%s\n", szCommand);
+  system(szCommand);
+
+  if (iPdf)
+  {
+    szPdfFile = sprintf("%s.pdf", szFileNameBase);
+    szTargetFile = szPdfFile;
+    szCommand = sprintf("%s --outfile=%s %s", cmdEpsToPdf, szPdfFile, szEpsFile);
+    debug("%s\n", szCommand);
+    system(szCommand);
+
+
+    if ( ! aOptions["d"])
+    {
+      szCommand = sprintf("%s -f %s", cmdRm, szEpsFile);
+      debug("%s\n", szCommand);
+      system(szCommand);
+    }
+  }
+
+
+  return (szTargetFile);
+}
+
+
+#########################################################################
+#########################################################################
+function fnDoTexFig(szFileNameBase, szFigFile, szRangeList, iPdf,
+		       szEpsFile, szPdfFile, szTexDoc, szTexPdf, szTexLog, szTexAux, szTexInp, szTmpPs, szTmpPdf, szTexSiz, szTmpEps, szCommand, szHeader)
+{
+
+  debug("FileNameBase >%s< FigFile >%s< Pdf:%d\n", szFileNameBase, szFigFile, iPdf);
+
+  szEpsFile = sprintf("%s.eps", szFileNameBase);
+  szPdfFile = sprintf("%s.pdf", szFileNameBase);
+  szTexDoc = sprintf("%s%s_doc.tex", szTmpPrefix, szFileNameBase);
+  szTexPdf = sprintf("%s%s_doc.pdf", szTmpPrefix, szFileNameBase);
+  szTexDvi = sprintf("%s%s_doc.dvi", szTmpPrefix, szFileNameBase);
+  szTexLog = sprintf("%s%s_doc.log", szTmpPrefix, szFileNameBase);
+  szTexAux = sprintf("%s%s_doc.aux", szTmpPrefix, szFileNameBase);
+  szTexInpPref = sprintf("%s%s_inp", szTmpPrefix, szFileNameBase);
+  szTexInp = sprintf("%s.tex", szTexInpPref);
+  szTexCreator = sprintf("%s.create", szTexInpPref);
+  szTexSiz = sprintf("%s.size", szTexInpPref);
+
+  if (iPdf)
+    szCommand = sprintf("%s -L pdftex_p %s -p %s %s %s", cmdFig2dev, szRangeList, szTexInpPref, szFigFile, szTexInp);
+  else
+    szCommand = sprintf("%s -L pstex_p %s -p %s %s %s", cmdFig2dev, szRangeList, szTexInpPref, szFigFile, szTexInp);
+  debug("%s\n", szCommand);
+  system(szCommand);
+
+  szCommand = sprintf("./%s", szTexCreator);
+  debug("%s\n", szCommand);
+  system(szCommand);
+
+  # check if there is an own hederfile to include
+  if (aOptions["s"] == "")
+    aOptions["s"] = "times";
+
+  if (aOptions["H"] == "")
+  {
+    szHeader = sprintf("\\documentclass{article}\n\
+\\usepackage{german,amssymb,amsmath}\n\
+\\usepackage{%s}", aOptions["s"]);
+  }
+  else
+    szHeader = sprintf("\\input{%s}\n", aOptions["H"]);
+
+  szHeader = sprintf("%s\n\
+\\usepackage{color}\n\
+\\usepackage{ifpdf}\n\
+\\setlength{\\textwidth}{100cm}\n\
+\\setlength{\\textheight}{100cm}\n\
+\\setlength{\\topmargin}{-1in}\n\
+\\setlength{\\headsep}{0pt}\n\
+\\setlength{\\headheight}{0pt}\n\
+\\setlength{\\oddsidemargin}{-1in}\n\
+\\parindent=0cm\n\
+\\ifpdf\n\
+\\usepackage[pdftex]{graphicx}\n\
+\\DeclareGraphicsExtensions{.pdf,.png,.jpg}\n\
+\\usepackage{epsfig}\n\
+\\input{%s}\n\
+\\else\n\
+\\usepackage{graphicx}\n\
+\\usepackage{epsfig}\n\
+\\fi\n\
+", szHeader, szTexSiz);
+
+  szCommand = sprintf("%s > %s << EOF\n\
+%s\\begin{document}\n\
+\\pagestyle{empty}\n\
+\\input{%s}\n\
+\\end{document}\n\
+EOF", cmdCat, szTexDoc, szHeader, szTexInp);
+  if (aOptions["d"] != "")
+    debug("%s\n", szCommand);
+  system(szCommand);
+
+  if (iPdf)
+  {
+
+    szCommand = sprintf("%s -interaction batchmode %s", cmdPdftex, szTexDoc);
+    debug("%s\n", szCommand);
+    iReturn = system(szCommand);
+
+    if (iReturn)
+    {
+      szCommand = sprintf("%s %s | %s +G", cmdCat, szTexLog, cmdLess);
+      system (szCommand);
+    }
+    else
+    {
+      szCommand = sprintf("%s %s %s", cmdMv, szTexPdf, szPdfFile);
+      debug("%s\n", szCommand);
+      system(szCommand);
+    }
+
+  }
+  else
+  {
+    szCommand = sprintf("%s -interaction batchmode %s", cmdLatex, szTexDoc);
+    debug("%s\n", szCommand);
+    iReturn = system(szCommand);
+    if (iReturn)
+    {
+      szCommand = sprintf("%s %s | %s +G", cmdCat, szTexLog, cmdLess);
+      system (szCommand);
+    }
+    else
+    {
+      szCommand = sprintf("%s -q -E  %s -o %s 2>&1 > /dev/null", cmdDvips, szTexDvi, szEpsFile);
+      debug("%s\n", szCommand);
+      system(szCommand);
+    }
+  }
+
+  if ( ! aOptions["d"])
+  {
+    szCommand = sprintf("./%s -r", szTexCreator);
+    debug("%s\n", szCommand);
+    system(szCommand);
+  }
+
+  if ( ! aOptions["d"])
+  {
+    szCommand = sprintf("%s -f %s %s %s %s %s %s %s", cmdRm, szTexDoc, szTexLog, szTexAux, szTexDvi, szTexInp, szTexCreator, szTexPdf);
+    debug("%s\n", szCommand);
+    system(szCommand);
+  }
+
+  if (iPdf)
+    return (szPdfFile);
+  else
+    return (szEpsFile);
+}
+
+
+#########################################################################
+#########################################################################
+function getopt(sOptions, n, m, fHuntParam, iSearchMinus, iSPos, iCLen, iHuntSwitches, szSwChar, szOptChar) {
+# Options:      Flagoptions: %f
+#               Parameter:   $p
+
+  n = 1;                        # index in argv
+  m = 1;                        # processed entries in argv finally it points to the firs$
+  iSearchMinus = 1;             # indicate that a switch leading sign minus is expected
+
+  # check for initial -- to separate the gawk switches from the script switches
+  if (ARGV[n] == "--")
+    n++;
+
+
+  while (n < ARGC)
+  {
+    iHuntSwitches = 0;
+    iCLen = length(ARGV[n]);
+
+    szSwChar = substr(ARGV[n], 1, 1);
+    if ((szSwChar == "-") || (szSwChar == "+"))
+    {
+      if ((iSearchMinus == 0) || fHuntParam)
+        usage();
+      iHuntSwitches = 1;
+      iSPos = 2;
+      fHuntParam = 0;
+    }
+    else
+    {
+      iSPos = 1;
+
+      if (fHuntParam == 0)
+        iSearchMinus = 0;
+    }
+
+    while (iSPos <= iCLen)
+    {
+      if (iHuntSwitches)
+      {
+        szOptChar = substr(ARGV[n], iSPos, 1);
+        iOPos = index(sOptions, szOptChar);
+        if (iOPos == 0)
+        {
+          printf("unknown option \"%s\"\n", szOptChar);
+          usage();
+        }
+        if ((substr(sOptions, iOPos - 1, 1) == "&") || ((substr(sOptions, iOPos - 1, 1) == "%") && (szSwChar == "-")))
+        {
+          aOptions[szOptChar] = szSwChar;
+          iSPos = iSPos + 1;
+        }
+        else if ((substr(sOptions, iOPos - 1, 1) == "$") && (szSwChar == "-"))
+        {
+          fHuntParam = 1;
+          iHuntSwitches = 0;
+          iSPos = iSPos + 1;
+        }
+        else
+          usage();
+
+      }
+      else if (fHuntParam)
+      {
+        fHuntParam = 0;
+        aOptions[szOptChar] = substr(ARGV[n], iSPos, iCLen + 1 - iSPos);
+        iSPos = iCLen + 1;
+      }
+      else
+      {
+        ARGV[m++] = ARGV[n];
+        iSPos = iCLen + 1;
+      }
+    }
+    n = n + 1;
+  }
+  ARGC = m;
+}
+
+
+#########################################################################
+#########################################################################
+function usage() {
+  print "usage: fig2mpdf [-|+lm] [-eiIGvV] [-p <ranges>] [-g <gapwidth>] [-s <style>] [-H <headerfile>] file\n\
+\n\
+  -|+l         set|reset latex call\n\
+  -e           create an eps file instead of a pdf\n\
+  -|+m         set|reset multilayer creation\n\
+  -p <ranges>  colon separated list of layer ranges a-b,c,d-e,...\n\
+  -i           do include the deepest range in all figures\n\
+               (the one with the higest level number)\n\
+  -I           include all lower ranges (pyramide mode)\n\
+  -g <gap>     set layer gapwidth for automatically detecting ranges (default:0)\n\
+  -s <style>   replace \\usepackage{times} by \\usepackage{<style>} in the latex commands\n\
+  -H <header>  use file <header> for creating tex documents (only\n\
+                 \\begin{document}...\\end{document} is set by fig2mpdf)\n\
+  -G           name multilayer files in PGF file name format <name>.page<no>.<ext>\n\
+  -v           be verbose\n\
+  -V           print out the version of fig2mpdf\n";
+  exit 1;
+}
+' -- $*
+
diff --git a/fig2dev-3.2.6a/man/fig2dev.1.in b/fig2dev-3.2.6a/man/fig2dev.1.in
--- a/fig2dev-3.2.6a/man/fig2dev.1.in
+++ b/fig2dev-3.2.6a/man/fig2dev.1.in
@@ -64,8 +64,8 @@ Set the output graphics language.
 Valid languages are
 \fBbox, cgm, dxf, epic, eepic, eepicemu, emf, eps, gbx (Gerber beta
 driver), gif, ibmgl, jpeg, latex, map (HTML image map), mf (MetaFont),
-mp (MetaPost), mmp (Multi-MetaPost), pcx, pdf, pdftex, pdftex_t, pic,
-pict2e, pictex, png, ppm, ps, pstex, pstex_t, pstricks, ptk (Perl/tk),
+mp (MetaPost), mmp (Multi-MetaPost), pcx, pdf, pdftex, pdftex_t, pdftex_p, pic,
+pict2e, pictex, png, ppm, ps, pstex, pstex_t, pstex_p, pstricks, ptk (Perl/tk),
 shape (LaTeX shaped paragraphs), sld (AutoCad slide format), svg (beta
 driver), textyl, tiff, tikz, tk (tcl/tk), tpic, xbm and xpm\fR.
 
@@ -1149,6 +1149,61 @@ PostScript file generated using
 .B pstex.
 (see above)
 
+.SH PSTEX_P and PDFTEX_P OPTIONS
+The \fBpstex_p\fR language has the same intention as
+the combination of \fBpstex\fR and \fBpstex_t\fR.
+The only reason to use \fBpstex_p\fR is that you have partially overlayed texts.
+\fBpstex_p\fR splits the Fig file concerning the depths of existing texts. Because
+of it's necessary to get the resulting size of the figure for the pdf document
+you have to specify the target document format
+(i.e. using \fBpstex_p\fR rsp. \fBpdftex_p\fR).
+.br
+Two files results by using this language:
+.br
+.HP +.3i
+1) A bash script for creating and removing the necessary graphics files.
+Extension: \fB.create\fR
+.HP +.3i
+.HP +.3i
+2) The latex code which includes all graphics files and special texts. Content is
+put to stdout.
+
+.TP
+The \fBpstex_p\fR driver has the following special options:
+
+.TP
+.B \-p basename
+specifies the basename of the files to be created (see (1) above). This option
+is mandatory.
+.TP
+.B "\-d dmag"
+Set a separate magnification for the length of line dashes to
+.I dmag.
+.TP
+.B \-E num
+Set encoding for latex text translation (0 no translation, 1 ISO-8859-1, 2 ISO-8859-2)
+.TP
+.B "\-l lwidth"
+Sets the threshold between LaTeX thin and thick lines to
+.I lwidth
+pixels.
+LaTeX supports only two different line width: \\thinlines and \\thicklines.
+Lines of width greater than
+.I lwidth
+pixels are drawn as \\thicklines.
+Also affects the size of dots in dotted line style.
+The default is 1.
+.TP
+.B \-v
+Verbose mode.
+.TP
+.B \-F
+Don't set the font face, series, and style; only set it's size and the
+baselineskip. By default, fig2dev sets all 5 font parameters when it
+puts some text. The disadvantage is that you can't set the font from your
+LaTeX document. With this option on, you can set the font from your LaTeX
+document (like "\fB\\sfshape \\input picture.eepic\fR").
+
 .TP
 .B \-E num
 Set encoding for latex text translation
@@ -1542,6 +1597,13 @@ which aren't scaled at all.
 .PP
 Rotated text is only supported in the IBM-GL (HP/GL) and PostScript (including eps)
 languages.
+.PP
+In \fBpdftex_p\fR language \fIfig2dev\fR can not determine the exact sizes of
+the special texts set by pdflatex afterwards. If these texts are bigger than
+expected the calculated bounding box might be too small so that some texts passes
+over the figure boundaries. If this happen you have to put an invisible
+rectangle (line width 0) around the text or the entire figure.
+
 .SH COPYRIGHT
 Copyright (c) 1991 Micah Beck
 .br
@@ -1624,3 +1686,7 @@ Michael Schrick (m_schrick@hotmail.com)
 The GBX (Gerber) driver was written by
 .br
 Edward Grace (ej.grace@imperial.ac.uk).
+.sp
+The PSTEX_P and PDFTEX_P drivers (overlayed LaTeX texts) was written by
+.br
+Michael Pfeiffer (p3f@gmx.de)
openSUSE Build Service is sponsored by