Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I'm increasingly fed up with the arbitrary restrictions that the standard LaTeX letter class has. Today I discovered that the table environment is not defined in the standard letter class, which means one can't use labels or captions.

CTAN has a list of letter related packages. Can anyone suggest a good LaTeX letter class to work with for general use? I'd like something as flexible and with as few restrictions as possible, well maintained, not excessively complicated to use, and not buggy. I was earlier recommended newlfm (on comp.text.tex). That post was about the fact that the letter class does not allow the addition of a subject.

A similar question has been asked already, "A clean letter class for office use, including serial letters", where scrlttr2 is recommended.

share|improve this question
    
I've run into this issue trying to use figures in a letter - I get the error "environment figure undefined" –  David Jan 22 '12 at 19:44
    
@David: What alternatives are you considering? –  Faheem Mitha Jan 22 '12 at 20:17
    
I was considering article, report until I found this answer, in the future I will give scrlttr2 a try. –  David Jan 23 '12 at 3:33

2 Answers 2

up vote 9 down vote accepted

I recommend using the scrlttr2 class.

  • It is extremely flexible
  • It is actively maintained
  • It is stable since many years; if there would occur any bug I'm sure the author would deal with it quickly
  • There are templates (German example)
  • The class includes concepts which distinguish it from other classes, such as variables, pseudo lengths
  • You can use option files to store macros or to extend functionality
  • You could even use \section, \subsection, \subsubsection, \paragraph and \minisec: the KOMA-Script author provides the option file section.lco for it, with an example
  • It benefits from features of the KOMA-Script bundle
  • You can use scrpage2 with it for header and footer
  • You can use tables and figures with captions, for example if you load the float and the caption package
  • Here's a German presentation about separation of content and presentation using scrlttr2: briefdemo.pdf (source code)

Originally, the KOMA-Script manual, including the sclttr2 documentation, has been written in German, also published as a book. There's an english translation, which could be a bit behind the most current features (currently 2011-05-30).

As a general remark: I expect a letter class to provide letter functionality, a book class to offer book features etc. - not a class to do all. There are many classes for different purposes and even if one uses two classes, the results can be merged.

share|improve this answer
    
Thanks for the recommendation. I see scrlttr2 allows use of a subject. Do you know whether you can use the table environment, or is this something I'll have to find out for myself? –  Faheem Mitha Aug 6 '11 at 23:43
    
It doesn't look like the table environment is defined here either. What a drag. Does anyone know why it isn't? –  Faheem Mitha Aug 7 '11 at 8:12
    
@Faheem: Floats are not defined by the letter classes are these are unlikely to be appropriate. You can use a tabular just fine, but it will not float (or have a caption). –  Joseph Wright Aug 7 '11 at 11:39
    
@Faheem: it's because floating tables and figures are very unusual in letters. It's more common to write a letter and to provide another possibly big document as appendix, for separate use. –  Stefan Kottwitz Aug 7 '11 at 11:47
1  
@Faheem: even in a scientific correspondence, separating letter and document would be a good idea. For example, the document could be fowarded without the letter or it could be worked on, such as revised and sent back. –  Stefan Kottwitz Aug 7 '11 at 13:17

I've never quite seen the advantage of a letter class. I just use article class (plus a letterhead package that I wrote for my university.) Using the article class obviously solves the problems with respect to undefined environments in (some of) the letter classes.

For mail merge type documents I use the datatool package, which allows me to store the addresses in a .csv file and allows an unlimited number of fields as needed. The documentation has examples of using it for mail merge. Here's an example of how I use it: Example of mailmerge package with an xls spreadsheet. But my needs are quite minimal, so this may not be the best solution for everyone.

share|improve this answer
    
I don't understand why a reply basically saying that a letter class is not useful is voted up so much. Is this really something that many of you believe? –  Faheem Mitha Aug 7 '11 at 12:58
1  
I think this discussion shouldn't take place in the comments, so I've replied in chat. What's "useful" is a pretty subjective (and your question borders on that, too.) The main functionality that I have for letters is (i) my university letterhead and (ii) mail merge capability. (i) can't be solved by a generic letter class, and (ii) can be solved very well with datatool. So for me, (and others, I suspect) there's no need for a specific letter class. –  Alan Munn Aug 7 '11 at 13:18

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.