CTAN Comprehensive TeX Archive Network

Directory macros/latex/contrib/projlib


The ProjLib Toolkit

This bundle is dated 2024/03/01.
New documentations are still being written. For now, only the core code is included in Live 2024 and MiK (old documentations have been removed from the distribution).


ProjLib can be interpreted as "Project Library" (in English), or as "Projet Libre" (in French, meaning "Free Project").

ProjLib is a collection of tools that help you write document. With the main package ProjLib loaded (note that it is case-sensitive), you no longer need to manually configure the appropriate multilingual settings nor to set up the theorem-like environments. In addition, a series of auxiliary functionalities are introduced.

To get started, simply put this line in your preamble:

For the options and detailed usage, please refer to the documentation.

The modules

Each module corresponds to a separate package, for example, the module theorem is projlib-theorem.sty. These modules are managed by the main package ProjLib.sty.

The modules include:

  1. module author - Enhanced author information block
    • Offering \address, \curraddr and \email, etc.
    • Allow writing in the AMS fashion (with option ams-fashion):
      • support \dedicatory, \keywords and \subjclass;
        • \thanks can be written outside \author;
        • the abstract environment can be placed before \maketitle.
  2. module datetime - Convert numeric date-time string to natural language
    • \TheDate and \Thedate for converting numeric date-time string to natural language, with multi-language support (if the command names \TheDate or \Thedate are occupied, then one can switch to the longer version \ProjLibDate and \ProjLibdate).
    • \ProjLibToday and \ProjLibToday (with the module language enabled, \today is redefined into \ProjLibToday, and thus supports additional arguments like only-year-month).
    • Multiple input and output format available.
  3. module draft - Useful commands during draft stage
    • \DNF for marking unfinished part. In addition, a report of all unfinished places shall be printed at the last of your document.
    • Reimplemented \blindtext to support more languages.
  4. module font - Font selection and configuration
    • Supporting New Computer Modern / Latin Modern, Palatino, Times, Garamond, Bembo, Biolinum, Noto, etc.
  5. module language - Multi-language configuration
    • \UseLanguage, \UseOtherLanguage for selecting languages, and \AddLanguageSetting for adding language-specific settings.
    • \DefineMultilingualText for defining multilingual text strings.
    • Currently support Chinese (simplified and traditional), English, French, German, Italien, Japanese, Portuguese (European and Brazilian), Russian and Spanish.
  6. module logo - The ProjLib logo
    • Draw the ProjLib logo in colorful or colorless fashion.
  7. module math - Efficient math setup
    • \DefineOperator and \DefineShortcut for setting up math macros efficiently.
    • \ListOfSymbols for printing list of symbols.
  8. module paper - Configuration of the paper style
    • Paper style configuration, with the themes light yellow, yellow, green, light gray, gray, dark, etc.
  9. module text - Text-related commands
    • Provide a few useful commands such as \ie, \eg, \cf, \etc ; and if you have your own version defined, they won't interfere with your definition.
    • \ItemDescription for writing leading description to items in itemize or enumerate.
  10. module theorem - Configuration of theorem-like environments
    • Setting up theorem-like environments based on the package create-theorem
      • \CreateTheorem, \SetTheorem and more...
        • In particular, supporting the modes name as is and name as context for the referencing names.
    • Offering two modes complex names (default) and simple names (better visual effect but less correct grammar) for the referencing names of those supported theorem-like environments.
    • \SwitchTheoremNumbering and \DisableTheoremNumbering for manipulating the numbering.
    • Preset environments include: application, assertion, assumption, axiom, claim, commentary, conclusion, conjecture, construction, convention, corollary, definition, definition-proposition, definition-theorem, example, exercise, fact, hypothesis, lemma, motivation, notation, observation, postulate, problem, property, proposition, question, recall, remark, theorem, their plural version (among the most commonly used are examples, facts and notations), and the corresponding unnumbered version with an asterisk * in the name.
  11. module titlepage - Interface for title page rendering
    • Currently support four title page styles: default, academic, simple and fancy.
Since the module theorem uses cleveref, it should be loaded after varioref and hyperref (same for the main package ProjLib).
Package dependencies:

How to get these files

You can get the .sty files mentioned above by compiling ProjLib.ins:

latex ProjLib.ins


This work is released under the Project Public License, v1.3c or later.

Download the contents of this package in one zip archive (82.3k).

ProjLib – A collection of facilitative tools

ProjLib is a collection of tools to help you write documents. With the main package ProjLib loaded, you no longer need to set up the theorem-like environments, nor to manually configure the appropriate multilingual settings. In addition, a series of auxiliary functionalities are introduced.

Version 2024-03-01
LicensesThe Project Public License 1.3c
Copyright2021–2024 Jinwen XU
MaintainerJinwen XU
Contained inTeX Live as projlib
MiKTeX as projlib
TopicsExperimental 3
Misc support
Guest Book Sitemap Contact Contact Author