| August 2, 2010 2:31 pm

Presidential-SealFrom a structural standpoint, memos are interesting documents.  They share some attributes in common with a letter, and others in common with a structured report.  Because of this, LaTeX uses have historically used a document class meant for one of those documents when composing memos.  There isn’t anything wrong with that.  It’s very easy to begin a new “article” and then add the needed “To”, “From”, “Subject” and “Date” lines manually.

However, while this is easy, it still requires that you do a bit of “finger painting”.  As a (more or less) dedicated user of LaTeX, I dislike finger painting.  Quite a bit, actually.  It might even be accurate to say that I am philosophically opposed to finger painting.

The major advantage of using LaTeX is that, like XHTML and CSS, it can separate your content from the markup and formatting that determines its appearance.  When you fingerpaint, however, you mix them all together.  Your appearance syntax and the content of your document get inseparably intertwined.  In some cases, you couldn’t separate them even if you wanted to.  For that reason, finger painting is just wrong.  But even though finger paining in LaTeX may feel wrong, I’ve never had a reason to create a better solution.

That is, until a few a weeks ago.

Quite recently, I’ve become involved in a new project and because of what the project is and the need to official keep records of communication, I’ve found myself writing memos.  Lot’s of memos.  More memos than I’ve ever written at any other point in my life.  Moreover, I’m going to be writing (many) memos for the foreseeable future.  On Friday, after finishing (yet another) memo, I decided that it was time to create a more formal memo template/document class for LaTeX.

I’m calling it texMemo.

texMemo – A Simple Document Class for LaTeX

texMemo is a very simple memo class.  Though I may be writing lots of memos, my needs are basic.

Based on the standard “article” class, texMemo supports all of article’s features in addition to a few others.  These include commands for type-setting the memo recipient (\memoto), sender (\memofrom), Subject (\memosubject), and Date (\memodate).

If you choose, you can also add a logo to your document using the \logo command.  The document logo can be an image, text, or any combination of the two.  It is typeset in the upper right hand corner of the page.

image

In addition to the LaTeX document class, I have created a layout file so that you can use texMemo from LyX.

Downloads and Installation

  • texMemo LaTeX Files.  All of the files needed to use the class (including texMemo.cls and examples).  To install, copy to an appropriate folder in your tex path (such as the local texmf folder) and refresh the tex database.  (Information about installing LaTeX document classes can be found here, while instructions for customizing your LaTeX installation are available in this article.)
  • texMemo LyX Files.  Contains the texMemo layout and examples.

Package Requirements

texMemo is based on the article class and uses Palatino as its default font.  As a result, the “palatino” package must be installed in order for it to work.  Most LaTeX distributions, however, include Palatino in their default installation.

Memo Examples

  • Example 1 (LyX).  Memo from John F. Kennedy to Lyndon B. Johnson inquiring about the formation of a space program.  It was written shortly after Yrui Gagarin became the first person to fly in space, reinforcing American fears about being left behind in a technological competition with the Soviet Union.  LyX Source, PDF Output.
  • Example 2 (LaTeX).  Johnson’s response, describing America’s current capabilities in space and the efforts required to establish American leadership in space exploration.  LaTeX Source, PDF Output.

Class Usage

To use the texmemo class, there are a few important macros.  These are:

  • \memoto{ … }.  The name of the memo recipient or group.
  • \memofrom{ … }.  The sender of the memo.
  • \memosubject{ … }.  The subject of the memo.
  • \memodate{ … }.  Date/time of the memo.
  • \memologo{ … }.  Optional argument that allows you to add a logo to the upper right hand corner of the document.  It may include either an image, text, or a combination of the two.

All sectioning commands are identical to those available in the standard “article” class.  By default, texMemo uses the Palatino font, though any other LaTeX font can also be used.  texMemo is compatible with XeTeX.

Comments

4 Responses to “texMemo: A Simple Memo Class for LaTeX and LyX”

Steve Litt wrote a comment on August 2, 2010

Hi Rob,

Next step — incorporate it as a LyX template so you can create a brand new new one via File->New_from_template.

SteveT

Liviu wrote a comment on August 2, 2010

Nice one.
A small issue: the “texMemo LyX Files” link points to xetexCV-LyX.zip

Rob Oakes wrote a comment on August 2, 2010

@Liviu. Thanks for the heads up (and for the words of encouragement). I’ve updated the “texMemo LyX Files” link to point at the correct location. Sorry for the mess-up.

@Steve, that’s a good idea. I’ve got a simple template that I use with it. When I have a minute, I’ll upload it and update the post.

Paul A. Rubin wrote a comment on August 25, 2010

First, thanks for putting this together. Second, in case anybody else trips over this, creating a new document and then switching it to the memo class may cause an options clash with the geometry package if your default document class specifies non-default margins. (My default class is article with US letter paper and 1″ margins all around.) Third, when I installed here (LyX 1.6.7), LyX refused to load the layout file (after reconfiguring). Turns out the problem was the Format value in the layout file, which as 19. I changed it to 11 (the highest of any of the layouts that ship with 1.6.7) and it loaded fine, and seems to work correctly.

Care to comment?