Sunday, April 8, 2012

Build Scripts for LaTeX-BibTeX-XFig-GnuPlot Combo

Over the past 8 years, I needed to compile LaTeX documents for this or that reason. As time passed, I enhanced them with BibTeX, XFig, and Gnuplot. Further, I generally needed to produce PDF files validated by IEEE PDF eXpress. Here, I share some scripts I developed during the road to ease the pain.

First, note that there is a certain directory structure I stick to.

  • / -- LaTeX (.tex) and BibTeX (.bib) files are placed here.
  • /constants.tex -- LaTeX file for constants (variables, definitions, commands, etc.) shared between LaTeX and XFig files.
  • /make.sh -- Compiles the whole project.
  • /figs -- XFig (.fig), Gnuplot (.gnu), and EPS (.eps) files go here.
  • /figs/fig2eps.sh
  • /figs/make.sh -- Compiles the XFig and Gnuplot into EPS format.

Below is the entry point, /make.sh. (Make sure you have latex, bibtex, dvips, and pspdf commands available.)

In /make.sh, I follow LaTeX->DVI->PostScript->PDF path. The main reason for the preference of this path over LaTeX->PDF is to properly process scalable EPS figures produced by XFig. (Personally, I hate to see broken figures in published articles.)

Next, here goes /figs/make.sh script. (Per see, gnuplot is required during execution.)

Nothing fancy in /figs/make.sh. First, we process .fig files; second, we process .gnu files.

Finally, below goes /figs/fig2eps.sh script. (Make fig2dev, pdflatex, pdf2ps commands ready. Note that /figs/fig2eps.sh requires /constants.tex for shared LaTeX variables.)

After all these fuss, the whole project boils down to

$ ./make.sh paper bibtex
$ ./make.sh paper latex

and you are ready to go.

Scripts need a little bit more cleaning and they are probably the not most correct ones. Anyway, they served well until now, and I hope they would for you as well.

No comments:

Post a Comment