Allen J. Hall

Materials Science & Engineering, Productivity, and Life

Latex Hint: Use your computer leverage to output large amounts of data.

After a few weeks of doing cryogenic cathodoluminescence spectroscopy on some of my samples, I have gobs and gobs of spectra to look over, and the task is a bit daunting.  Oh sure, you can do so on the computer in many different ways, but often, I need to see my data on the page (old school) before I can really sort through it.  Sometimes even then there’s just too much of it and playing with the data in MatLab all together is critical.

Here’s what I came up with to help output my data very quickly into a printable document that included numerous graphs.  First, the primary goal of this quick method is to be quick- to get tons of graphics (of same proportions) into a doc for printing or perusing.  Second- it should be relatively minimal typing, if possible.  [We all know we can do it by hand 100x; while grad-student pay rate is low, there's gotta be a better way.]

  1. Get a directory listing for all the items wanted to be included and dump this in a text file.  (ls *.pdf > filelist.tex)
  2. Create a main.tex file which includes the code we’ll need to do this fast.  [You can reuse this file for other directories of graphics needed to be printed.]  My example uses the following:
    \documentclass[%
    ,secnumarabic%
    ,amssymb, amsmath,nobibnotes, aps, prl,superscriptaddress,letterpaper]{revtex4}
    \usepackage[pdftex]{color,graphicx,rotating}
    \setkeys{Gin}{width=0.85\columnwidth}
    
    %Simple way to call images and add filenames to captions - for lots of data.
    \newcommand{\dataimg}[1]{
    \includegraphics[width=3in]{#1}
    Filename: #1
    
    }
    
    \begin{document}
    \title{CL Results\\
    \textit{Internal document not for distribution.}}
    \date{\today}
    \author{Allen Hall}
    \maketitle
    
    \include{filenames}
    
    \printfigures
    \end{document}

    The important code is the “\include{}” line and also the “\newcommand{\dataimg}…” section. This is what is going to do all the work for us.

  3. Now, we need to take your filelist and add at the beginning of each line and end of each line the following:
    \dataimg{

    and at the end:

    }

    One way to do this simply is with a command line gawk command:

    Terminal Prompt> ls |awk '{ print "\\dataimg{"$0"}" }'
  4. So, now each line looks like: \dataimg{filename1.pdf}
  5. Once that is done, you can run the LaTeX compile, and you’ll have your file of graphs!  That’s a heck of a lot easier than writing each line out by hand.  [Use a program like TextMate or Gawk etc. to append and prepend each line with the necessary call.]

The benefit of the \newcommand is that it fills in the needed formatting for each graphics file, and attaches the filename for each graphic beside the graphics file itself.  You can make it prettier, I’m sure, but this is what I was able to do in a very short time frame.

There are many ways to accomplish this little task, you could use Gawk itself to write the latex file for you, I’ve seen some do makefiles to do this type of thing, or perl, or bash shell scripting etc.  But, the critical part is to leverage the computer to output a latex file for typsetting and save yourself some time.

One Comment

  1. Posted June 9, 2009 at 3:15 pm | Permalink

    Note- that terminal prompt command needs to be performed on the directory with your files. Let’s assume you want to save it as “filenames.tex” and also that you only want to add the .pdf files:

    >> ls *.pdf |awk ‘{ print “\\dataimg{“$0″}” }’ > filenames.tex

    should get the job done.

Post a Comment

Your email is never shared. Required fields are marked *

*
*

A Quick Introduction...

I'm a graduate student (PhD Candidate) at the University of Illinois at Urbana-Champaign.

I've studied and researched in two fields of Materials Science and Engineering (Polymers and Semiconductors). My interests are as diverse as my musical tastes and I usually have my hand in some crazy project during my free time.

I'm available for consulting and have access to a world-renown materials research user-facility supported by the D.O.E. If you would like to know more, please contact me.

Popular Tags

Amazon Associate Link Apple Support AppStore Bug CIGS CIS CLI Conferences Cross Platform Data Mining data visualization dual-driver headphones failure Friend Geek Tool Great Scientists HAM Radio Hardware Tips How To Humanitarian IEM IM In-Ear Monitors iPod Touch LaTeX Linux Mac OsX Materials Science and Engineering Matlab Obituary Open Source problem Productivity reciprocal space return Silent Key Software Software Review Support This Blog Thesis Writing Tip UIUC VOIP Windows xrd

Support This Blog

You can support this blog by shopping on Amazon through my Affiliate Store.