Sunday, January 20, 2013

How to do math slides with LaTeX and Scribus – and not with Beamer

Yeah, I keep (really) hating  LaTeX/Beamer. Thankfully, there is a better way to make slides with LaTeX on a WYSIWYG software. It is Scribus running LaTeX as a external tool. Here is how to get started.

Yesterday I got a comment from wipeout on a remix of a math presentation I did in 2011. He asked if it could be done all in Beamer. I did research and ended writing this post. I have been using LaTeX for more than 10 years. It is a beautiful tool to typeset beautiful math. But LaTeX is neither a word processor, a desktop publishing tool, nor slideware. In words of its creator
Producing good slides requires visual formatting, which means LaTeX is not well suited for the task.
                                                                       – Leslie Lamport
LaTeX/Beamer doesn't create the visuals you need, but rather the ones it can. It limits your control of at least 3 things: Positing, Alignment, and Color. Oh and add Imagery to it. Speaking of design elements, I get the idea behind templates. They try to help bringing unity to the overall slide stack. The problem with Beamer's templates is that they are meant standardize, be unnoticeable, exactly the opposite of what a presentation should be…

There is a better cross-platform and free way to typeset math in LaTeX and stil make effective visual. Introducing Scribus, a professional layout and publishing software supporting EPS and SVG import/export, and PDF support.  The following example is an exaggeration, but it shows the potential of Scribus and LaTeX to build other type of visuals. 

  I'll just show the LaTeX relevant steps.

  1. Open Scribus's Preferences and go to External Tools. Check that the pdflatex command is the right now. In my case it is located /usr/texbin.
  2. Insert a Render Frame  ("D" is the keyboard shortcut). Click and Drag to define define the position and size of the frame. If the pdflatex path is right, Scribus renders a LaTeX sample. Right-Click on the frame selected "Edit Source…". The Editor will  open.
  3.  Stretch the Editor's window and make the "Enter code" field bigger by moving the field's right border to further to the right. The screenshot shows the "Font/Header" tab. That's where the interesting configurations are.

    Basically you need two (three) additional packages, anyfontsize to make the LaTeX render slide-big (like in the example). The set the size by enter the command \fontsize{<size>}{<leading>}\selectfont.  Leading is the distance between two consecutive line's baseline. It should larger that the size.

    In addition to the size you need the color packages.  Check out the xcolor documentation here
That's it. Click on "Update" instead in "OK" to re-render without closing the Editor window.

Obviously there is fine print. When are done with your stack, save it as pdf. As for Scribus 1.4.2. (on Mac) a error message is displayed: "Object is a placed pdf background." Ignore it. But make sure to click on "Embed PDF & EPS files" on the "Save as PDF" window.

A neat feature is you can modify most of the LaTeX's Render Frame window options. There are written on a  XML file usually under the name latex.xml. On Mac OS X 10.8.2 and Scribus 1.4.2. it is located at /Applications/Scribus.app/Contents/share/scribus/editorconfig/100_latex.xml

Still interested? Take a look at these two links on Scribus as PDF Presentation tool and Render Frames.
Water drop image from Wikimedia Commons by Sven Hoppe  under GNU Free Documenation License.

2 comments:

  1. Check out http://www.eecs.harvard.edu/~tov/pubs/alms/alms-popl2011-slides.pdf.
    Created with Beamer, but the author has put A LOT of custom visual design and hacking and hacking and hacking in it.

    ReplyDelete
  2. That proves my point. The amount of work to make Beamer not look like Beamer is insane. There are better ways. Thanks for stopping by…

    ReplyDelete