interesting packages - joaomlourenco/novathesis GitHub Wiki

Essential Packages Already Included in novathesis

  • microtype: A “magic” package that slightly adjusts character spacing to eliminate awkward gaps in justified text and reduces the number of hyphens at the end of lines.
  • glossaries-extra: Managing acronyms manually is a recipe for error. Use this to define terms once and have LaTeX handle the “First mention (Full Name)” vs. “Subsequent mention (Acronym)” logic automatically.
  • graphicx: The standard for including images. Always use \includegraphics[width=FACTOR\textwidth]{...} (e.g., \includegraphics[width=0.75\textwidth]{...}) to ensure your figures scale properly with your margins.
  • fontenc [T1]: Ensures your PDF uses modern fonts that support accented characters and allows for proper copy-pasting from the final document, by using \usepackage[T1]{fontenc}.
  • hyperref: Transforms your citations, references, and URLs into clickable links. It also automatically generates a PDF outline (bookmarks), making your document much easier to navigate on digital screens.
  • PGF/TikZ: A powerful tool for creating complex, high-quality vector graphics directly within LaTeX. It ensures that your diagrams use the same fonts and mathematical symbols as your main text for a perfectly integrated look.

Other Very Useful Packages

  • booktabs: Forget the standard horizontal and vertical lines. Use \toprule, \midrule, and \bottomrule to create clean, professional tables that look like they belong in a high-end journal.
  • cleveref: Tired of typing Figure~\ref{...}? This package automates it. Just use \cref{label}, and it will automatically detect if it’s a Figure, Table, or Equation and format the text accordingly.
  • enumitem: Gives you total control over lists (itemize, enumerate). Use it to reduce vertical spacing between items or to change numbering styles (e.g., a), b), c)).
  • siunitx: The absolute gold standard for units. Use \unit{10}{\milli\second} to ensure the spacing and font for units are always mathematically correct.
  • csquotes: Provides advanced facilities for inline and block quotations. It automatically handles nested quotes and ensures that punctuation is placed correctly according to your document's language settings.
  • todonotes: A lifesaver during the drafting phase. It allows you to place 'To-Do' notes in the margins or as a list at the beginning of the document, ensuring you never forget to address a pending task or a comment from your advisor.
  • algorithmicx: Provides a flexible environment for typesetting algorithms in a clear, structured way. It supports nested loops, conditionals, and can be customized to match the pseudocode style of your specific research community.
  • amsmath, amssymb: The industry standard for mathematical typesetting. They provide advanced environments for multi-line equations, custom operators, and a vast library of mathematical symbols.
  • amsthm: Offers a structured way to typeset theorems, definitions, lemmas, and proofs. It allows you to easily switch between different styles while maintaining consistent numbering.
  • listings: A robust package for including source code. It supports syntax highlighting, line numbering, and can import code directly from external files.
  • minted: An alternative to listings that uses the Python-based Pygments library for superior syntax highlighting. Ideal for professional-grade coloring of complex languages.
  • xurl: A simple but essential package that allows URLs to break at any character, preventing long web addresses from overflowing into the margins.
  • widows-and-orphans: Helps you maintain high typographic standards by identifying 'widows' (a single line at the top of a page) and 'orphans' (a single line at the bottom) and providing warnings.