Gelugor, a USM Beamer Theme

Just last week, I had another Beamer-related inquiry from a postdoctoral fellow at the School of Mathematical Sciences, Universiti Sain Malaysia (USM). Was it possible to have a Beamer theme modelled after USM’s Powerpoint template?

I came up with Gelugor over the weekend. (Gelugor, Penang, Malaysia is the town where USM’s main campus is located.)

Screenshots and download link:

Brief example using the theme:

\documentclass{beamer}
\usetheme{Gelugor}

\author{This is Me}
\title{This is My Presentation}

\begin{document}

\begin{frame}[plain,t]
\titlepage
\end{frame}

\begin{frame}
\frametitle{First Frame}
My content
\end{frame}

\ThankYouFrame

\end{document}

Skudai, a Beamer Theme for UTM

This all started a couple of months back when Najmi asked me if it was possible to get a Beamer presentation to look like his university’s (Universiti Teknologi Malaysia, UTM) Powerpoint template.

The eventual result is Skudai, a UTM Beamer theme. (Skudai is the name of the city town in Johor, Malaysia, where UTM’s main campus is located.)

Screenshots and download link:

A brief example on using the theme:

\documentclass{beamer}
\usetheme{Skudai}

\author{This is Me}
\title{This is My Presentation}

\begin{document}

\begin{frame}[t]
\titlepage
\end{frame}

\begin{frame}
\frametitle{First Frame}
My content
\end{frame}

\end{document}

Converting BibTeX to EndNote format

You might somehow need to submit your research findings in a journal which however, needs you to submit compulsively in Microsoft Words format.
If your institution is subscribing to EndNote, perhaps you might want to install them, at least, in Wine on top of your Linux machine
For easy convertion from *.bib file to EndNote importable format (XML).. use this software, bib2endnote

Barcodes Galore

So you may need to include a barcode on some reports or forms that you’re generating. Or you might want to include a QR code for your organisation’s newsletter or flyer, to indicate a URL, or an event. Or even one for your personal contact details on your business card.

You can, of course, seek out a barcode generator to get a PNG of your barcode to be included in your document. But did you know about the pst-barcode package that’ll do the job nicely?

Example Barcodes

I mentioned the ean13isbn package in a previous post, but that package is only for generating ISBN barcodes. pst-barcode, on the other hand, can generate many different types of barcodes. Some simple examples below, taken from the pst-barcode package documentation. Remember to \usepackage{pst-barcode}.

\begin{pspicture}(-12pt,-6pt)(3.4,1in)
\psbarcode{9781860742712}{includetext}{ean13}
\end{pspicture}
\begin{pspicture}
\psbarcode{^453^178^121^239}{columns=2 rows=10}{pdf417}
\end{pspicture}
\begin{pspicture}(1in,1in)
\psbarcode{Herbert Voss ^142^164^186}
{rows=48 columns=48 parse}{datamatrix}
\end{pspicture}
\begin{pspicture}(-.5cm,-.7cm)(8,0.3in)
\psbarcode{0123456709498765432101234567891}
{includetext}{onecode}
\end{pspicture}

\begin{pspicture}(2in,2in)
\psbarcode{http://latex-my.blogspot.com/}
{}{qrcode}
\end{pspicture}

Encode Almost Anything with QR Codes

QR barcodes can be used to encode a wide range of data. You can use a camera phones to scan and decode them using a reader application (e.g. ZXing, Kaywa, Qrafter, etc.). (You can also use the ZXing online barcode decoder for testing purposes.) Depending on the decoded data, specific actions will be triggered.

For example, the QR code above encodes the URL of this blog. Scan it with a camera phone, and an Internet browser will open and load this blog automatically.

The following code encodes my contact details as a MeCard. After scanning it, a good barcode reader application will automatically decode the details and prompt you to add my contact details to your address book. (BTW my address and phone number in this barcode is fake.)

% Do not put newlines in the MECARD text
\begin{pspicture}(2in,2in)
\psbarcode{MECARD:N:Lian Tze,Lim;TEL:+60123456789;EMAIL:liantze\string@gmail.com;ADR:,109 Lorong Oak 47,Taman Oak,Butterworth,Pulau Pinang,13000,Malaysia;URL:http://liantze.penguinattack.org/;;}
{eclevel=M height=2 width=2}{qrcode}
\end{pspicture}

It seems MeCard is used more widely than vCard for QR codes on business cards, but if you want a vCard anyway, here’s the code. vCard does allow you to add a photo, which is nice. Note that you need to represent newline characters with ^^J for the code to compile.

% Line breaks occur only after ^^J%
\begin{pspicture}(2in,2in)
\psbarcode{BEGIN:VCARD^^J%
VERSION:3.0^^J%
N:Lian Tze;Lim^^J%
FN:Lim Lian Tze^^J%
PHOTO;VALUE=URL;TYPE=JPG:http://liantze.penguinattack.org/images/LLT-profile.jpg^^J%
TEL:+60123456789^^J%
ADR:;;109 Lorong Oak 47, Taman Oak;Butterworth;Pulau Pinang;13000;Malaysia^^J%
EMAIL:liantze\string@gmail.com^^J%
URL:http://liantze.penguinattack.org/^^J%
END:VCARD}
{eclevel=M height=2 width=2}{qrcode}
\end{pspicture}

You can also add a barcode encoding an iCalendar for an event, e.g. in a newsletter. A good reader app would be able to add the details automatically to your calendar. (Qrafter for the iOS worked for me.)

% Line breaks occur only after ^^J%
\begin{pspicture}(2in,2in)
\psbarcode{BEGIN:VCALENDAR^^J%
VERSION:2.0^^J%
BEGIN:VEVENT^^J%
SUMMARY:25th Pacific Asia Conference on Language, Information and Computation^^J%
ORGANIZER;CN=Assoc Prof Francis Bond:MAILTO:fcbond@ntu.edu.sg^^J%
URL:http://portal.cohass.ntu.edu.sg/PACLIC25/^^J%
LOCATION:Nanyang Technological University, Singapore^^J%
DTSTART;TZID=Asia/Singapore:20111216T090000^^J%
DTEND;TZID=Asia/Singapore:20111218T180000^^J%
END:VEVENT^^J%
END:VCALENDAR}
{eclevel=M height=2 width=2}{qrcode}
\end{pspicture}

What If I’m Generating to PDF directly?

If you’re using xelatex, apparently all the pstricks packages work smoothly and you get a flawless PDF.

If you’re using pdflatex, you can still use pst-barcode (and other pstricks packages) with a little extra bit of work. Here’s what your preamble should include:

\usepackage{pst-barcode}
\usepackage{auto-pdf-pst}

You will also need to install pdfcrop, available from CTAN; install with your TeXLive/MikTeX package manager). This is actually a Perl script that crops away extra whitespace around each page of a PDF file.

You must add the -shell-escape option when running pdflatex for this to work. What happens is that a ps file is generated and converted to a PDF on-the-fly, then cropped and included in the final output PDF file. Understandably, the whole process may take a bit longer than usual.

Hopefully this’ll help anyone who’s looking to batch generate reports or forms that need a barcode or two!

Printing Beamer Slides

Every now and then I’d go wild with \pause and \item in my Beamer presentations, to present information piecewise. (I’m aware that some people disapproves this.) (By the way, the Manhattan theme is a Keynote lookalike.)

\documentclass{beamer}
\usetheme{Manhattan}

\begin{document}
\begin{frame}
\frametitle{First Slide}

\begin{theorem}[Newton’s First Law]
Every body remains in a state of constant velocity unless acted upon by an external unbalanced force.
\end{theorem}
\pause
\begin{itemize}
\item First item in a list
\begin{enumerate}
\item First item in a list
\item Second item in a list
\end{enumerate}
\item Second item in a list
\end{itemize}
\end{frame}

\end{document}

For archival and distribution purposes, I usually invoke

\documentclass[trans]{beamer}

to get a PDF file in which all the overlays are “condensed” to their respective single slides.

When it comes to printing the slides for my own reference, though, I often prefer to have the presentations 4-up on an A4 sheet. In addition, the Manhattan themed presentation isn’t really printer-friendly. So I’d instruct Beamer to only use the Manhattan theme in beamer and trans modes; and that it should use some mostly-white theme as well, as placing the slides 4-up on an A4 paper in handout mode (code lifted from the Beamer manual).

\documentclass{beamer}
% \documentclass[handout]{beamer}
% \documentclass[trans]{beamer}

\mode{
\usetheme{Manhattan}
}

\mode{
\usetheme{default}
\usepackage{pgfpages,pgf}
\pgfpagesuselayout{4 on 1}[a4paper, landscape, border shrink=5mm]
\pgfpageslogicalpageoptions{1}{border code=\pgfstroke}
\pgfpageslogicalpageoptions{2}{border code=\pgfstroke}
\pgfpageslogicalpageoptions{3}{border code=\pgfstroke}
\pgfpageslogicalpageoptions{4}{border code=\pgfstroke}
}

Running pdflatex while activating the handout mode then gives me this output:

Just remember to process your file twice every time you change the mode, so that all hyperlinks and bookmarks are updated properly.

DIA + Lyx

Before I discover DIA, I used Microsoft Visio for schematic drawing to be included into my documents. The schematic drawn has to be exported into a graphic file, in which I prefer .png format. Then only it can be included in .tex document as a graphic.
Then I found DIA. You can search the web for more info on the software itself. In short, it is an open source software Lyx as well. What I found to be helpful is that, DIA has an extension to convert .dia files, where you save the schematic drawing, into graphic files in the format of .png which can be called directly by Lyx.
What I have to do is, draw whatever schematic that I want, save it in .dia format. Then in Lyx, insert the graphic as usual. At the graphic file name field, insert the .dia file name. Lyx will treat that as the graphic file where you can resize etc. similar to any graphic files included using the method. 
Another setting to be done is that to let Lyx know where to fine the DIA extension to convert .dia file to .png file so that Lyx can call it upon generating final document. The setting can be found under menu Tools > Preferences and under File Handling > Converters tab. Under From format pulldown menu, search for DIA and under To format pulldown menu, search for PNG. In Converter field, insert this

dia -e $$o -t png $$i

and click Add button. That is it. Now you can use .dia file directly to include graphic into you document. Happy trying. See you soon.

Unexplained error

I faced this kind of error before. What I mean by unexplained is that the location of error shown by Lyx does not contain any error. Sometime it is just one word without any LaTeX command at the location. By the way, I should mention for the benefit of newcomer, Lyx will highlight the supposedly error location. In this case of error, the highlight is at random location and you can explain what is the actual error. The unexplained error usually occurs, at least I experienced it, once I include a citation. I use BibTeX to generate reference list. The .bib file is linked to the Lyx file and once a citation is included, BibTeX will run the process of creating the list. Error will occur if the bib database contains error, usually it has an illegal character. You know, citation info can be exported directly from publisher’s webpage or even from Google Scholar page. The auto export function is the culprit of the error. Some of the article title or even the name of authors can have illegal characters. Most of it is characters like % and &, which is the command character in LaTeX. So, the errors can be overcomed by making sure that the bib database doesn’t have any of this illegal characters. That will it for now. See you soon!

Published with Blogger-droid v1.7.2

Getting started with Lyx

Well, to get started with Lyx is pretty straight forward. Of course you have to install the software, which you can download from lyx.org. The installation is again, straight forward. No much hassle. Just say yes to all the question. Unless you want to tweak some features.
Basically it is just like using word processor (Microsoft of OpenOffice or LibreOffice). Create a new file, then you are almost ready to go. If you are using source code editor, first command you put in is
\documentclass[]{}
Well, you have to do the same with Lyx. The function can be found in menu Document > Settings. Here basically you can do all the setting necessary. You can select the class file from dropdown menu under Document Class tab. By default, there are few classes already installed in Lyx. That includes article, IEEEtran, elsarticle, beamer (if I not mistaken), book etc. If the class is not installed, it will be marked as Unavailable.
To make a class available in Lyx dropdown menu, you have to create the layout file. It will link the class to the ui of Lyx so that it can be shown. Creating a layout file is very easy. Here is the most basic layout file that can work with any class file.
#% Do not delete the line below; configure depends on this
# \DeclareLaTeXClass[classfilename]{name-to-appear-in-dropdown-menu}
input stdclass.inc
With that the class file can already work provided that it is saved with the same file name as the class file name, i.e. the class file is myclass.cls, therefore the layout file should be named, myclass.layout. As simple as that.
To include the layout in the dropdown list, you have to save the layout file in layouts folder in Lyx program folder and reconfigure Lyx through menu Tools > Reconfigure and close and reopen Lyx afterwards. Or, if you don’t want it listed, you can just use local layout option (there is a local layout button next to the dropdown menu). However, using this option, you must have the layout file in the same folder as your document file.
If you have zero knowledge of LaTeX, don’t worry. Once you have selected the document class, you can start entering document content. On top left corner, just below File menu, there is a dropdown menu with option Standard as default. This is called style picker. Standard is for normal text. Here you can select title, author, section, chapter, section*, theorem etc. depending on what is available in class and defined in layout. To change you text into certain style, you don’t have to select text, just simply put the cursor anywhere in the text line, and change the style. Now you can start typing the content.
I think that should be it for now. Next time, we will see how to add more than text in Lyx. Until then, happy LaTeXing.