scal 📅 School year calendar generator
======================================
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 <http://www.texample.net/tikz/examples/a-calender-for-doublesided-din-a4/>`_, itself using the complex yet powerful Till Tantau's `TikZ <http://www.ctan.org/pkg/pgf>`_ LaTeX package.
Examples
--------
- One-page calendar of a school year
- English:
`2023-2024 <https://spalax.frama.io/scal/examples/calendar-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-en-20232024.scl>`__).
- French
- 2023-2024:
`Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-A.scl>`__);
`Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-B.scl>`__);
`Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-C.scl>`__).
- 2024-2025:
`Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-A.scl>`__);
`Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-B.scl>`__);
`Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-C.scl>`__).
- 2025-2026:
`Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-A.scl>`__);
`Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-B.scl>`__);
`Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-C.scl>`__).
- Weekly planners (`How to print? <https://scal.readthedocs.io/en/latest/#examples>`__)
- English:
`2023-2024 <https://spalax.frama.io/scal/examples/weekly-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-en-20232024.scl>`__ ; `imposed <https://spalax.frama.io/scal/examples/weekly-en-20232024-impose.pdf>`__).
- French
- 2023-2024:
`Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-A.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A-impose.pdf>`__);
`Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-B.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B-impose.pdf>`__);
`Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-C.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C-impose.pdf>`__).
- 2024-2025:
`Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-A.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A-impose.pdf>`__);
`Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-B.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B-impose.pdf>`__);
`Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-C.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C-impose.pdf>`__).
- 2025-2026:
`Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-A.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A-impose.pdf>`__);
`Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-B.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B-impose.pdf>`__);
`Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-C.scl>`__ ; `imposé <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C-impose.pdf>`__).
What's new?
-----------
See `changelog <https://git.framasoft.org/spalax/scal/blob/main/CHANGELOG.md>`_.
Download and install
--------------------
See the end of list for a (quick and dirty) Debian package.
* Non-Python dependencies.
This program produces LuaLaTeX code, but does not compile it. So, LaTeX is not
needed to run this program. However, to compile the generated code, you will
need a working LaTeX installation, with ``lualatex``, and LuaLaTeX packages
`geometry <http://www.ctan.org/pkg/geometry>`_,
`babel <http://www.ctan.org/pkg/babel>`_,
`tikz <http://www.ctan.org/pkg/pgf>`_,
`fontspec <http://www.ctan.org/pkg/fontspec>`_,
and `translator` (provided by the `beamer <http://www.ctan.org/pkg/beamer>`_ package).
Those are provided by `TeXLive <https://www.tug.org/texlive/>`_ on GNU/Linux, `MiKTeX <http://miktex.org/>`_ on Windows, and `MacTeX <https://tug.org/mactex/>`_ on MacOS.
* From sources:
* Download: https://pypi.python.org/pypi/scal
* Install (in a `virtualenv`, if you do not want to mess with your distribution installation system)::
python3 setup.py install
* From pip::
pip install scal
* Quick and dirty Debian (and Ubuntu?) package
This requires `stdeb <https://github.com/astraw/stdeb>`_ to be installed::
python3 setup.py --command-packages=stdeb.command bdist_deb
sudo dpkg -i deb_dist/scal-<VERSION>_all.deb
Documentation
-------------
* The compiled documentation is available on `readthedocs <http://scal.readthedocs.io>`_
* To compile it from source, download and run::
cd doc && make html
Developpers
-----------
A partially supported `autoscl <https://framagit.org/spalax/scal/blob/main/bin/autoscl>`_ script is available in the `bin` directory. It can automatically download holiday dates from the internet, and generate the relevant `.scl` file. See `autoscl --help` for more information.
Raw data
{
"_id": null,
"home_page": "http://framagit.org/spalax/scal",
"name": "scal",
"maintainer": "",
"docs_url": null,
"requires_python": "<4,>=3.7",
"maintainer_email": "",
"keywords": "calendar latex school tikz",
"author": "Louis Paternault",
"author_email": "spalax@gresille.org",
"download_url": "https://files.pythonhosted.org/packages/2d/23/3966b615d0b7023ec5673866722ec3680c0c293cf9cfb841111e025dc013/scal-2.3.0.tar.gz",
"platform": null,
"description": "scal \ud83d\udcc5 School year calendar generator\n======================================\n\nI use this program about once a year to print a one-page school-year\ncalendar. But it can be used to represent any calendar.\n\nIt is heavily inspired by the simple yet powerful Robert Krause's `calendar <http://www.texample.net/tikz/examples/a-calender-for-doublesided-din-a4/>`_, itself using the complex yet powerful Till Tantau's `TikZ <http://www.ctan.org/pkg/pgf>`_ LaTeX package.\n\nExamples\n--------\n\n- One-page calendar of a school year\n\n - English:\n `2023-2024 <https://spalax.frama.io/scal/examples/calendar-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-en-20232024.scl>`__).\n\n - French\n\n - 2023-2024:\n `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-A.scl>`__);\n `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-B.scl>`__);\n `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20232024-C.scl>`__).\n\n - 2024-2025:\n `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-A.scl>`__);\n `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-B.scl>`__);\n `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20242025-C.scl>`__).\n\n - 2025-2026:\n `Zone A <https://spalax.frama.io/scal/examples/calendar-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-A.scl>`__);\n `Zone B <https://spalax.frama.io/scal/examples/calendar-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-B.scl>`__);\n `Zone C <https://spalax.frama.io/scal/examples/calendar-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/calendar-fr-20252026-C.scl>`__).\n\n- Weekly planners (`How to print? <https://scal.readthedocs.io/en/latest/#examples>`__)\n\n - English:\n `2023-2024 <https://spalax.frama.io/scal/examples/weekly-en-20232024.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-en-20232024.scl>`__ ; `imposed <https://spalax.frama.io/scal/examples/weekly-en-20232024-impose.pdf>`__).\n\n - French\n\n - 2023-2024:\n `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-A.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20232024-A-impose.pdf>`__);\n `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-B.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20232024-B-impose.pdf>`__);\n `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20232024-C.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20232024-C-impose.pdf>`__).\n\n - 2024-2025:\n `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-A.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20242025-A-impose.pdf>`__);\n `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-B.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20242025-B-impose.pdf>`__);\n `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20242025-C.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20242025-C-impose.pdf>`__).\n\n - 2025-2026:\n `Zone A <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-A.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20252026-A-impose.pdf>`__);\n `Zone B <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-B.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20252026-B-impose.pdf>`__);\n `Zone C <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C.pdf>`__ (`source <https://framagit.org/spalax/scal/-/raw/main/doc/examples/weekly-fr-20252026-C.scl>`__ ; `impos\u00e9 <https://spalax.frama.io/scal/examples/weekly-fr-20252026-C-impose.pdf>`__).\n\nWhat's new?\n-----------\n\nSee `changelog <https://git.framasoft.org/spalax/scal/blob/main/CHANGELOG.md>`_.\n\nDownload and install\n--------------------\n\nSee the end of list for a (quick and dirty) Debian package.\n\n* Non-Python dependencies.\n This program produces LuaLaTeX code, but does not compile it. So, LaTeX is not\n needed to run this program. However, to compile the generated code, you will\n need a working LaTeX installation, with ``lualatex``, and LuaLaTeX packages\n `geometry <http://www.ctan.org/pkg/geometry>`_,\n `babel <http://www.ctan.org/pkg/babel>`_,\n `tikz <http://www.ctan.org/pkg/pgf>`_,\n `fontspec <http://www.ctan.org/pkg/fontspec>`_,\n and `translator` (provided by the `beamer <http://www.ctan.org/pkg/beamer>`_ package).\n Those are provided by `TeXLive <https://www.tug.org/texlive/>`_ on GNU/Linux, `MiKTeX <http://miktex.org/>`_ on Windows, and `MacTeX <https://tug.org/mactex/>`_ on MacOS.\n\n* From sources:\n\n * Download: https://pypi.python.org/pypi/scal\n * Install (in a `virtualenv`, if you do not want to mess with your distribution installation system)::\n\n python3 setup.py install\n\n* From pip::\n\n pip install scal\n\n* Quick and dirty Debian (and Ubuntu?) package\n\n This requires `stdeb <https://github.com/astraw/stdeb>`_ to be installed::\n\n python3 setup.py --command-packages=stdeb.command bdist_deb\n sudo dpkg -i deb_dist/scal-<VERSION>_all.deb\n\nDocumentation\n-------------\n\n* The compiled documentation is available on `readthedocs <http://scal.readthedocs.io>`_\n\n* To compile it from source, download and run::\n\n cd doc && make html\n\nDeveloppers\n-----------\n\nA partially supported `autoscl <https://framagit.org/spalax/scal/blob/main/bin/autoscl>`_ script is available in the `bin` directory. It can automatically download holiday dates from the internet, and generate the relevant `.scl` file. See `autoscl --help` for more information.\n",
"bugtrack_url": null,
"license": "GPLv3 or any later version",
"summary": "LaTeX generation of school year calendars",
"version": "2.3.0",
"project_urls": {
"Documentation": "http://scal.readthedocs.io",
"Homepage": "http://framagit.org/spalax/scal",
"Source": "https://framagit.org/spalax/scal",
"Tracker": "https://framagit.org/spalax/scal/issues"
},
"split_keywords": [
"calendar",
"latex",
"school",
"tikz"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2ebbfc5d456a3baec614237076cad2930e2d30cb271c51bbb992d4d30dae94df",
"md5": "476f3af627faa4567eb340dec9588510",
"sha256": "8bf40e2e06a0293dafc9ae4b7aafd0524133085a86f4324f5f8eef0db3b7190b"
},
"downloads": -1,
"filename": "scal-2.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "476f3af627faa4567eb340dec9588510",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.7",
"size": 31834,
"upload_time": "2023-10-07T19:46:24",
"upload_time_iso_8601": "2023-10-07T19:46:24.880733Z",
"url": "https://files.pythonhosted.org/packages/2e/bb/fc5d456a3baec614237076cad2930e2d30cb271c51bbb992d4d30dae94df/scal-2.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2d233966b615d0b7023ec5673866722ec3680c0c293cf9cfb841111e025dc013",
"md5": "3531bd7c1a4f357ac6d6bd1e22abdd39",
"sha256": "9ad341f96e1b7fca7254cbb4e15cce52d22d8949442f73783d223b54bdd5ba86"
},
"downloads": -1,
"filename": "scal-2.3.0.tar.gz",
"has_sig": false,
"md5_digest": "3531bd7c1a4f357ac6d6bd1e22abdd39",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.7",
"size": 28329,
"upload_time": "2023-10-07T19:46:26",
"upload_time_iso_8601": "2023-10-07T19:46:26.618812Z",
"url": "https://files.pythonhosted.org/packages/2d/23/3966b615d0b7023ec5673866722ec3680c0c293cf9cfb841111e025dc013/scal-2.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-07 19:46:26",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "scal"
}