CD Booklet Template for LaTeX

Spring 2004

Although the proliferation of digital cameras on smart phones and other devices makes it easy to generate in a day many times more data than the recordable CD or its successors were designed to hold, the 700-MB capacity is still adequate for self-contained project snapshots and partial backups. For full backups of your entire ouvre there's no substitute for a second hard drive (internal or external), but when distributing your creative output to a wide target audience, the CD-R is a very economical choice. However, a hand-written envelope or jewel case insert might detract from the professional look you're trying to achieve.
Implementation details
Below you'll find my LaTeX-based solution to the problem of labeling CD jewel cases, a task I first attempted in the mid-1990s using Serif PagePlus (a poor man's InDesign). More recent offerings such as cdlabelgen and LibreOffice still suffer from the lack of support for nested bullet lists or fine-grained positioning. My template defines the dimensions of the CD booklet and reads two additional source files — the inside page layout and the outside page layout — for each CD booklet it is asked to create.
  • audio-cds.tex (example template for an entire audio CD collection, which reads a bunch of input files for the track listings)
  • single-cd.tex (pared-down example file if only one jewel case needs relabeling)
  • README.txt (instructions for manual typesetting)
  • Makefile (for automated typesetting and conversion to PDF using a simple make command)
  • audio-cds.pdf (sample typeset output)
  • (entire source tree in one zip file)
Update: ten years later
In 2014 I had the unfortunate experience of borrowing a CD from the Greenbelt library, only to find upon returning home that the disc inside, although recorded by the listed artist, actually contained a different album than the one on the the jewel case label. Thinking that the borrower before me had checked out both albums and replaced the discs in the wrong cases, I tried placing a request for the other album so that I could switch them back. As it turned out, the other album had been marked as "lost" in the catalog. I ended up visiting the record shop in downtown Silver Spring and purchasing the disc that matched the library's jewel case. I then made a modified template for the back of the jewel case, inserting a barcode based on the number of the item marked "lost" in the library catalog, to print a label for the library's disc.
You are free to download, modify, and use these files in any manner consistent with the following restrictions. You may share the files (modified or unmodified) with anyone (even publishing them on your own website). If you distribute to a third party the PDF, postscript, DVI, or other typeset output created from this template or its derivatives, you must make the source code for the typeset output available to said third party, under the same conditions that this template is made available to you.
Transferrable skills learned from this project
  • vertical positioning with raisebox
  • using the rotatebox command from the graphicx package for spine labels
  • generating a barcode from the number in a library catalog once the encoding scheme is known