Thursday, March 5, 2009

LaTeX Wedding Invitation HOWTO/Template by Justin

(Update below.)

First, you should probably realize that this is going to be way easier than you thought because the LaTeX ecosystem has gradually improved over the past few years. The TeTeX days were pretty good and I'm sure old Tom had good reasons for giving it up. Everybody needs a change I guess. Well, so did I. That's why I'm getting married. And because I'm getting married, my fiancée and I had to make invitations, which benefits you, of course.

So anyway, here's a template for the enterprising LaTeX user who's getting married and doesn't want ugly word processor fonts to destroy the typographical elegance of the document that irrevocably declares their commitment to happiness. After all, you're a typography nerd, so why would you demure and use something less than the best for your fiancé[e]? All of the packages listed here should be included with TeXLive and MacTeX. I don't know what people use on windows these days. Thankfully, my windows uptime is better than five zeros.

\documentclass[12pt,letterpaper]{report}

\usepackage[cam,width=4truein,height=6truein,letter,center]{crop}
\usepackage[T1]{fontenc}
\usepackage{calligra}
\usepackage{setspace}
\usepackage{anysize}
\marginsize{2cm}{2cm}{6.6cm}{1cm}

\thispagestyle{empty}
\begin{document}
\crop
\begin{center}
{\sc \scriptsize Mr and Mrs Bride's Parents}\\
{\calligra \small are pleased to announce the marriage of their daughter}\\
{\sc \scriptsize Deb}\\
{\calligra \small to}\\
{\sc \scriptsize Napoleon}\\
{\calligra \small son of}\\
{\sc \scriptsize Mr and Mrs Dynamite}\\
{\calligra \small on Wednesday, January 1, 3000 AD}\\
{\calligra \small in the Las Vegas, Nevada Temple}\\
\ \\
{\calligra \small The pleasure of your company is requested}\\
{\calligra \small at a celebration in their honor}\\
\ \\
\ \\
\begin{tabular}{l|l}
{\calligra\small Reception                 } & {\calligra\small Open House}\\
\sc{\scriptsize Overpriced Reception Center} & \sc{\scriptsize Somebody's House}\\
\sc{\scriptsize 775 East 1200 North        } & \sc{\scriptsize 4321 West 3540 North}\\
\sc{\scriptsize Las Vegas, Nevada          } & \sc{\scriptsize Las Vegas, Nevada}\\
\sc{\scriptsize Wednesday, January 1, 3000 } & \sc{\scriptsize Saturday, January 4, 3000}\\
\sc{\scriptsize 7:05 p.m. to 9:09 p.m.     } & \sc{\scriptsize 6:59 p.m. to 9:01 p.m.}\\
\end{tabular}\\
\ \\
\ \\
{\calligra \small The bride and groom are registered at}\\
{\calligra \small Deseret Industries}\\
\end{center}
\end{document}


Update (2013-09-09).

I have updated the template according to my increase in TeX/LaTeX knowledge gained between 2009 and 2013. Most of the changes are made according to my advancements in understanding TeX and LaTeX spacing. On our invitation (which deviates very little from the original template) we included at the bottom a cursivy circly-squiggle I found on google images.

With a document such as this, you need total control over spacing and layout, so I don't think it would be better to refactor the template more than I have (such as by creating a document class, or creating specialized environments). Most spacing choices should be obvious, however there's one that's somewhat arcane for LaTeX newbz that I wish to obviate. The command \hspace{\baselineskip} tells LaTeX to insert a vertical space of size \baselineskip. You can put any length command in the argument for \hspace that you want, including literal measurements, such as 27mm.

Also for newbz, regarding fonts: You could change, e.g., {\block Mr and Mrs Dynamite} to {\block Mr {\fancy \&} Mrs Dynamite}. If you have any questions, leave a comment and I'll try to help/direct you in the right direction as I have time. I'll try to answer those that have already been posted as I can.

These are some resources I have found to be very useful and helpful:

\documentclass[12pt]{article}

% TODO: figure out mount2 option
%\usepackage[cam,width=4truein,height=6truein,letter,center]{crop}
\usepackage[T1]{fontenc}
\usepackage{calligra}
\usepackage{setspace}
\usepackage[papersize={4in,6in},hmargin=0cm,vmargin={1.5cm,1cm}]{geometry}

% define new fonts
\newcommand{\fancy}{\calligra\small}
\newcommand{\block}{\sc\scriptsize}

\pagestyle{empty}

\begin{document}
  %\crop
  \begin{center}
    \begin{onehalfspacing}
      {\block Mr and Mrs Bride's Parents} \\
      {\fancy are chagrined to declaim the nuptiality of their daughter} \\
      {\block Deb} \\
      {\fancy to} \\
      {\block Napoleon} \\
      {\fancy son of} \\
      {\block Mr and Mrs Dynamite} \\
    \end{onehalfspacing}
    \begin{singlespacing}
      \begin{fancy}
        on AD 3000 January 1, Wednesday\\in the Las Vegas, Nevada Temple
        \vspace{\baselineskip} \\
        The repugnance of your company is demanded\\at a farce on their account
      \end{fancy}
      \vspace{\baselineskip} \\
      \begin{block}
        \begin{tabular}{l|l}
          {\fancy Reception}        & {\fancy Open House}      \\
          Overpriced Reception Hall & Somebody's House         \\
          775 East 1200 North       & 321 West 654 North       \\
          Las Vegas, Nevada         & Salt Lake City, Utah     \\
          3000 January 1, Wednesday & 3000 January 4, Saturday \\
          7:05 p.m. to 9:09 p.m.    & 6:59 p.m. to 9:01 p.m.   \\
        \end{tabular}
      \end{block}
      \vspace{\baselineskip} \\
      \begin{fancy}
        The bride and groom wish they could have registered at\\Deseret Industries\footnote{\tiny{``Do you guys have like a wedding registry?''  ``We sure don't.''}}
      \end{fancy}
    \end{singlespacing}
  \end{center}
\end{document}

14 comments:

  1. Great template! My fiance and I are indeed (typography) nerds.

    Thanks!

    ReplyDelete
  2. Hey, this is exactly what I was looking for. Thanks!

    ReplyDelete
  3. Thanks, we'll going to use it. Could you point me to ornamental fonts or symbols? like a flower or something like that.

    ReplyDelete
    Replies
    1. I don't know specifically. I searched for hours to find a circly-squiggle that we liked/tolerated. I wish there were some way with TikZ to create a custom cursive squiggle path. However, not only do LuaTeX/XeTeX greatly simplify font handling in TeX, they also default to UTF-8 for source file encoding. Just run 'xelatex invitation.tex' or 'lualatex invitation.tex'.

      Delete
    2. I meant that with LuaTeX/XeTeX, you can use any font available on your computer.

      Delete
    3. There's also this, which contains a TikZ package for making calligraphic symbols.

      Delete
  4. I googled "latex wedding invitations" with little hope -- I love when the internet exceeds my expectations. :)

    ReplyDelete
  5. Still being used today...

    ReplyDelete
  6. Awesome! I used the headers to make our save the date cards and will likely use it as the basis for the invitations. Thanks for sharing.

    ReplyDelete
  7. This is awesome thanks! I was wondering, how would you play with LaTeX to get two of these to a page with each a specific size (e.g 130mm)? I've tried using pgfpages, but have not had any success so far.

    ReplyDelete
    Replies
    1. Using TikZ/PGF seems like a good option. I wanted to do the same thing, including crop marks. Supposedly the 'crop' package can do it, but nobody seems to know how to make it work. We had to pay Kinkos to do that part with some "enterpri$e" adobe product, which annoyed my DIY/Linux geek/LaTeX sensibilities.

      There may be other LaTeX packages out there that can handle it, but I haven't found any yet. Maybe you could wrap the whole thing inside a minipage and using the 'multicols' package put two minipages side-by-side on a landscape page.

      Delete
  8. To my blessed commentors:

    This has been agitating at the bottom of my todo pile for, yes, over 4 years now.

    I always meant to 'complete' this LaTeX snippet/example by upgrading it's horrible spacifying and including instructions on how to layout multiple copies per page.

    I'm sorry I haven't done that yet. I've been very busy in graduate school and hardly think about this among hundreds of other little things I've been needing to do, like adjust the spray patterns on the sprinklers in my front yard. Anyway, the crop package is supposed to support mounting multiple copies (with crop marks), but I haven't been able to get it to work. No one else in the greater TeX community seems to know anything about it and I haven't contacted the package author yet.

    ReplyDelete
  9. I totally recommend pgfornament (http://altermundus.com/pages/tkz/ornament/) to add floral stuff. It is wonderful.

    ReplyDelete