Yenya's World

Fighting With Beamer

A while ago I wrote about typesetting presentation slides in Beamer. Now I have decided to rewrite the slides for my UNIX courses in Beamer, but it brings many problems - I will write about two of them:

The first problem is with typesetting the C source code (quite frequent task for the UNIX course): I cannot use the [fragile] option to the frame environment, because it writes the text to the file and rereads it again, messing up the character encoding during the process (I use UTF-8 input encoding). I cannot use the semiverbatim environment, because the most tricky part - the indentation of the source code - is not preserved.

The second problem is with graphs and diagrams: I want them to have the same font as the surrounding text (both in typeface and size). So the file format should be something like LaTeX (for texts) + something for rectangles, lines, arrows, and other vector graphics. I have tried about all the formats XFig supports, but none of them work with PDFLaTeX, UTF-8 encoding, and meets the above requirements.

So, my dear lazyweb, how would you solve the above two problems (other than using OOImpress or something similar)?

4 replies for this story:

mf wrote:

I really don't know about the first one. I'm trying to stay away from utf8 as much as possible. As for the second one, pdflatex and vector graphics gives you only one option. You should create a separate pdf file with your graphs and diagrams and then embed it in your presentation using graphicx package. It shouldn't be too hard to make text with the same properties, but I really don't feel like playing with it right now.

Kirk wrote: second one: asymptote?

http://asymptote.sourceforge.net/

Yenya wrote: Re: asymptote

I have tried asymptote (thanks!), but I think xasy is too simplistic for my needs. And I don't need a non-interactive tool like the asymptote language (or MetaPost).

luispedro wrote:

How about \newcommand{\ind}{\hspace*{1.5em}} and then indent manually \begin{semiverbatim} for X in list: \ind X.process() ...

 Name: URL/Email: [http://... or mailto:you@wherever] (optional) Title: (optional) Comments: Key image: (valid for an hour only) Key value: (to verify you are not a bot)