How to create a multilingual, customisable CD disk jewel case calendar using LaTeX
LaTeX's versatility makes it a rather handy (and free!) tool for creating various goodies, including monthly calendars. So here's my stab at creating a LaTeX class and template for creating customisable, multilingual monthly calendars, that fit in CD or 3.5" disk jewel cases. Pictures and events can be added, and you can choose any month range for your calendar—it's not necessary that they begin on January and end on December.
You can make them for personal use, gifts or memorabilia for special events e.g. anniversaries. They may also be used for publicity or merchandise if you happen to be running a club or society. For example, you could make a calendar showcasing birds frequenting your neighbourhood for your local birdwatching club. Work-wise, you might want to make a calendar for your journal paper reading group, highlighting important dates for assignments and conference submissions in your field in the coming semester.
The monthly calendars
The cdcalendar
class will set up the calendar size to fit in a CD jewel case, and lay them out on an A4-sized paper:
\documentclass[12pt]{cdcalendar}
\begin{document}
%% June 2015
\monthCalendar{2015}{06}
\clearpage
%% July 2015
\monthCalendar{2015}{07}
\end{document}
If you want to make a smaller calendar to fit in 3.5" floppy cases instead, pass the small
option to the cdcalendar
class:
\documentclass[9pt,small]{cdcalendar}
For those who are interested in the technical details: the calendar is rendered with tikz
, and the 2-up or 4-up layout is done with pgfpages
.
Adding Illustrations
I've defined a \illustration
command for adding graphics to each page of the calendar:
\usepackage{graphicx}
%% syntax: \illustration[caption]{width}{image-file-name}
\illustration[We had fun at the birthday party!]{8.5cm}{Party.jpg}
The image will be added at the top left of the current page. The original proportion will be preserved, so you do have to choose an illustration of appropriate proportions to fit the empty space.
Adding/marking events
You can mark events on each month using the \event
command:
\event{2015-10-25}{Daylight saving time ends}
The event will be listed above the monthly calendar, and the date is circled in the calendar itself. Events must be given after the relevant \monthCalendar
and on the same page.
If your event spans over several days, you can give the duration (in days) as an option to \event
:
\event[5]{2015-07-26}{ACL 2015, Beijing}
Alternatively, you can also give the end date as the option instead:
\event[2015-07-31]{2015-07-26}{ACL 2015, Beijing}
Both forms of the command will give the same output.
If an event spans two months, e.g. \event[9]{2015-06-27}{Summer Camp}
, you'll have to issue this command in both months i.e. once for June and once for July:
\monthCalendar{2015}{06}
\event[9]{2015-06-27}{Summer Camp}
\clearpage
\monthCalendar{2015}{07}
\event[9]{2015-06-27}{Summer Camp}
\clearpage
Multilingual Calendars
The dates, month names and weekday initials can be localised to languages that are supported by the babel
, translator
and datetime2
.
For example, to get a calendar with Spanish dates, just pass spanish
as a class option:
\documentclass[12pt,spanish]{cdcalendar}
We've tested the following language options: british, spanish, french, ngerman, italian, portuges, polish, croatian, greek
.
Just remember to use LuaLaTeX to compile your project if it's in french
—it doesn't work well with PDFLaTeX, and XeLaTeX doesn't work well for this template.
Customising styles
The fonts and colours of most elements can be customised at any point in the calendar; take a look at the templates to see some examples. For convenience's sake, a \makeCover
command (and the necessary metadata commands) is also provided.
It's been a lot of fun creating this template—we're sure you'll find many more uses for this calendar. Enjoy!
Overleaf guides
- Creating a document in Overleaf
- Uploading a project
- Copying a project
- Creating a project from a template
- Using the Overleaf project menu
- Including images in Overleaf
- Exporting your work from Overleaf
- Working offline in Overleaf
- Using Track Changes in Overleaf
- Using bibliographies in Overleaf
- Sharing your work with others
- Using the History feature
- Debugging Compilation timeout errors
- How-to guides
- Guide to Overleaf’s premium features
LaTeX Basics
- Creating your first LaTeX document
- Choosing a LaTeX Compiler
- Paragraphs and new lines
- Bold, italics and underlining
- Lists
- Errors
Mathematics
- Mathematical expressions
- Subscripts and superscripts
- Brackets and Parentheses
- Matrices
- Fractions and Binomials
- Aligning equations
- Operators
- Spacing in math mode
- Integrals, sums and limits
- Display style in math mode
- List of Greek letters and math symbols
- Mathematical fonts
- Using the Symbol Palette in Overleaf
Figures and tables
- Inserting Images
- Tables
- Positioning Images and Tables
- Lists of Tables and Figures
- Drawing Diagrams Directly in LaTeX
- TikZ package
References and Citations
- Bibliography management with bibtex
- Bibliography management with natbib
- Bibliography management with biblatex
- Bibtex bibliography styles
- Natbib bibliography styles
- Natbib citation styles
- Biblatex bibliography styles
- Biblatex citation styles
Languages
- Multilingual typesetting on Overleaf using polyglossia and fontspec
- Multilingual typesetting on Overleaf using babel and fontspec
- International language support
- Quotations and quotation marks
- Arabic
- Chinese
- French
- German
- Greek
- Italian
- Japanese
- Korean
- Portuguese
- Russian
- Spanish
Document structure
- Sections and chapters
- Table of contents
- Cross referencing sections, equations and floats
- Indices
- Glossaries
- Nomenclatures
- Management in a large project
- Multi-file LaTeX projects
- Hyperlinks
Formatting
- Lengths in LaTeX
- Headers and footers
- Page numbering
- Paragraph formatting
- Line breaks and blank spaces
- Text alignment
- Page size and margins
- Single sided and double sided documents
- Multiple columns
- Counters
- Code listing
- Code Highlighting with minted
- Using colours in LaTeX
- Footnotes
- Margin notes
Fonts
Presentations
Commands
Field specific
- Theorems and proofs
- Chemistry formulae
- Feynman diagrams
- Molecular orbital diagrams
- Chess notation
- Knitting patterns
- CircuiTikz package
- Pgfplots package
- Typesetting exams in LaTeX
- Knitr
- Attribute Value Matrices
Class files
- Understanding packages and class files
- List of packages and class files
- Writing your own package
- Writing your own class