texMemo: A Simple Memo Class for LaTeX and LyX

From 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.  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.

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

  1. David Lentini says:

    Thanks for sharing this! :-)

    I’ve been looking for a simple, functional memo class to use for my business for some time. I found the newflm class to be a bit too complex for my basic needs. Your efforts fit the bill to a tee.

    Cheers,
    David Lentini

  2. You have just saved me potentially hours of learning how to finger paint within the lines. Thank you for providing a solution that was quicker to implement than the problem was to identify. Good stuff here.

    One question: You say this requires Palatino, but that seems to be quite the arbitrary “requirement”, needed only because the class says it is. Unless I’m missing something, wouldn’t it be clearer/simpler to publish the exact same file but without that one line, thereby eliminating the need to say it requires a font setup, thus making it even more accessible to even more people?

    Regardless, it was sufficiently accessible for my needs, and I thank you.

    • Hi Chris,

      Thanks for the kind words. They are really appreciated. Given that I’m an attention starved media-whore-in-embryo, hearing back from grateful users really is one of the best bits of releasing stuff.

      Which is why the next part of this response is going to sound awful.

      Yes, the addition of Palatino is completely and 100% arbitrary. But then, most dependencies are. I don’t particularly care for Computer Modern (… would “loathe” be too strong a word, perhaps “detest” works better …), and that is why Palatino was included. I consider the use of fonts other than CM as my effort to make the world a slightly better typographical place.

      If you’d like to remove the font line, it’s a pretty easy fix. (The Document Class itself is straightforward.) Additionally, the document class was written mostly for my use. Thus, I’m inclined to leave it as is. I do release some software where I want the audience to be as wide as possible, Time Drive is a good example. But texMemo is not. It’s released in the hope that it is useful, not so that it will be adopted widely.

      Cheers,

      Rob

      • It doesn’t sound awful at all. I had to remove your Palatino dependency so that the Garamond Premier Pro demands of my style files could still work. :-)

        I’m now using your class for the second school project that needed a memo, so you’re again saving me time. Thanks…again!

  3. Thanks! This is great. Just what I needed. I needed to add my own sections and stuff so a restrictive cls would be annoying. This is what I needed and saved me from having to write my own. Thanks again!

  4. I’d like to add another big “Thank you!” for writing this and making it available. My needs are basic, too, and your .cls is just the sort of solution I was looking for. texMemo is working like a charm for me.

    Moltissime grazie per l’aiuto!

  5. When I try to open this template, it says that it was written in a different version of LyX and that lyx2lyx can’t convert it. Any ideas why this might be? I’m using LyX version 1.6.8 on a mac…

    • Hi Alistair,

      The template was created using LyX 2. Unfortunately, while documents created by older versions of LyX can be opened by newer versions, the reverse is not true. Unless you have a reason not to, I’d recommend that you upgrade to LyX 2. It’s been through a couple of stable versions now, and they’ve gotten a lot of the bugs out of it.

      Better, though, it offers support for a lot of new things: luatex, xelatex, Sweave, Knitr, etc. without having to do the backflips required of the older versions. texMemo doesn’t use any of those features, though. If you’d like, you can just open it up in a text editor and change the Version line to something small (I think LyX 1.6 topped out at version 250, so something smaller than that). That will let you load it and make use of the class.

      Cheers,

      Rob

  6. Hey Rob,

    I would like to write about your memo class on my blog (http://texblog.org/) and show how to make minor changes to the class file (remove the logo, add Memorandum as title). Would you be ok with that?

    Thanks and Regards,
    Tom

  7. Hi, thank you for texMemo. It works perfectly for me. It seems it doesn’t support bibtex (nor biblatex). Why? What would you suggest to add a bibliography to me texMemo documents? Thank you

  8. Hi Rob,

    I’ve found your class texMemo and I think it’s very interesting. But there was a problem: it is no easy translate into other languages.

    So I’ve hacking a little and I’ve created some commands and class options that make easier using texMemo in other languages. In addition I’ve added the solution propossed by Tom in http://texblog.org/2012/03/07/writing-a-memo-in-latex/

    If you want to see the final result you can find the work I’ve done in my blog cataLàTeX:

    http://catalatex.blogspot.com.es/2013/08/memorandums-amb-texmemocat.html

    Please, feel free to add any thing I’ve done in texMemo class if you think it’s worth. Or if you want to discuss something I’ll be glad to explain.

    Thanks for your work!

Trackbacks/Pingbacks

  1. Writing a memo in LaTeX « LaTeX Matters - [...] was recently looking for a memorandum template when I came across a neat memo class, texMemo, written by Rob …

Leave a Reply