Welcome to `scal`'s documentation! ================================== I use this program about once a year to print a one-page school-year calendar. But it can be used to represent any calendar. It is heavily inspired by the simple yet powerful Robert Krause's `calendar `_, itself using the complex yet powerful Till Tantau's `TikZ `_ LaTeX package. .. contents:: Table of Contents :depth: 1 :local: Examples -------- - One-page calendar of a school year - English: `2022-2023 `__ (`source `__) ; `2023-2024 `__ (`source `__). - French - 2022-2023: `Zone A `__ (`source `__); `Zone B `__ (`source `__); `Zone C `__ (`source `__). - 2023-2024: `Zone A `__ (`source `__); `Zone B `__ (`source `__); `Zone C `__ (`source `__). - 2024-2025: `Zone A `__ (`source `__); `Zone B `__ (`source `__); `Zone C `__ (`source `__). - 2025-2026: `Zone A `__ (`source `__); `Zone B `__ (`source `__); `Zone C `__ (`source `__). - Weekly planners: .. admonition:: How to print those planners? :class: dropdown #. Download the `imposed `__ version of the files below (or impose them yourself using `pdfimpose `__ and ``pdfimpose perfect --group 3 weekly-en-2324.pdf``). #. Print them, two-sided, not reversed. #. Fold the sheets, that is: #. Take the stack of sheets in front of you, the title page being visible, not upside-down, in the bottom right corner of the sheet. #. Take the first three sheets of paper, and fold them (together, as if they were one single thick sheet): - first vertically: fold the top half of the sheets behind the bottom half; - then horizontally: fold the left half of the sheets behin the right half. You get a tiny, incomplete book (called a `signature `__), which cannot be opened yet because of folds. Set it aside. #. Repeat the previous step as many times as necessary to fold the whole stack of paper. #. Bind the several signatures you got, maybe add a cover. #. *VoilĂ !* - English: `2022-2023 `__ (`source `__ ; `imposed `__) ; `2022-2023 `__ (`source `__ ; `imposed `__). - French - 2022-2023: `Zone A `__ (`source `__ ; `imposed `__) ; `Zone B `__ (`source `__ ; `imposed `__) ; `Zone C `__ (`source `__ ; `imposed `__). - 2023-2024: `Zone A `__ (`source `__ ; `imposed `__) ; `Zone B `__ (`source `__ ; `imposed `__) ; `Zone C `__ (`source `__ ; `imposed `__). - 2024-2025: `Zone A `__ (`source `__ ; `imposed `__) ; `Zone B `__ (`source `__ ; `imposed `__) ; `Zone C `__ (`source `__ ; `imposed `__). - 2025-2026: `Zone A `__ (`source `__ ; `imposed `__) ; `Zone B `__ (`source `__ ; `imposed `__) ; `Zone C `__ (`source `__ ; `imposed `__). Download and install -------------------- See the `main project page `_ for instructions, and `changelog `_. Usage ----- Note that `scal` only produce the LuaLaTeX code corresponding to the calendar. To get the `pdf` calendar, save the code as a :file:`.tex` file, or pipe the output through ``lualatex``: .. code-block:: bash scal FILE | lualatex The list of built-in templates is returned by command: .. code-block:: bash scal templates list Here are the main command line options for `scal`. .. argparse:: :module: scal.__main__ :func: argument_parser :prog: scal Configuration file ------------------ The YAML UTF8-encoded file given in argument contains the information about the calendar. Here is, for example, the file corresponding to a school year calendar. .. literalinclude:: examples/calendar-fr-20252026-A.scl An annotated configuration file (with default values and examples) is available for each template. For instance, to get this configuration file for template `weekly.tex`, use: .. code-block:: bash scal templates config weekly.tex Indices and tables ------------------ * :ref:`genindex` * :ref:`modindex` * :ref:`search`