CTAN Comprehensive TeX Archive Network

Directory macros/latex/contrib/math-shorthandz

README.md

math-shorthandz — smart shorthands for typesetting math in

The math-shorthandz package has shorthand macros for typesetting the most common mathematical expressions in . It provides compact commands to construct symbols with features such as multi-underlines, pre/succeeding scripts, fractions, differentials/derivatives and integrals with highly customizable positioning and (auto-)scaling. All commands are safe in text and distinguish their customization between display, inline, script and/or scriptscript contexts.

Every distance is measured in the math style of the operand, so commands look good in inline, display and exponent contexts. All tunable parameters are package options, read at call time, so they can be changed anywhere with \setkeys{shorthand}{key=value}. The package name ends in "z" on purpose: every command starts with z (e.g. \zdot instead of \cdot), which gives them a unified style and keeps them distinct from other commands.

Commands

  • \zint — integrals: single, multiple, contour or bridged; slant, stacked or right-side limits
  • \zdiff — differentials and derivatives
  • \zfrac — fractions (\frac, \nicefrac or slash) with optional parentheses
  • \zscript — up to four scripts around a nucleus
  • \zprime — primes as superscript or accent
  • \zlim — limit operator with variable and value
  • \zarg — scaled function argument
  • \zcond — "evaluated at" bar
  • \zdot — heavier dot-product operator
  • \zscale — style-aware scaling of math content
  • \zline, \zvec, \zmat — stacked underlines for vectors and matrices
  • \zpunct — punctuation at the end of a display line
\usepackage[zint-math-after=-0.3, zarg-kern=1mu]{math-shorthandz}
...
\zint[0][T] f\zarg{t}\zdiff+{t} = \zfrac[\beta+1] \zpunct{.}

Requirements

Lua or (the package loads unicode-math), kernel 2020-10-01 or newer, the packages amsmath, graphicx, nicefrac and xkeyval, and the XITS Math font (used for the integral glyphs; xits in Live).

Installation

Install it from your distribution (tlmgr install math-shorthandz), or copy math-shorthandz.sty into your local TEXMF tree under tex/latex/math-shorthandz/ (kpsewhich -var-value TEXMFHOME prints its location), or simply next to your document. Then load it with \usepackage{math-shorthandz}.

Documentation

The manual is math-shorthandz.pdf. To rebuild it from math-shorthandz.tex (which needs math-shorthandz.sty and math-shorthandz-listings.tex, plus the packages tcolorbox, listings, tikz, hypdoc and a few common ones):

lualatex math-shorthandz
makeindex -s gind.ist math-shorthandz.idx
lualatex math-shorthandz
lualatex math-shorthandz

or run l3build doc in the repository. The gind.ist index style is required; -shell-escape is not. With latexmk, add $makeindex = 'makeindex -s gind.ist %O -o %D %S'; to a latexmkrc.

Contributing and releasing

Issues and pull requests are welcome at https://github.com/tplobo/math-shorthandz.

Code and documentation guidelines

  • math-shorthandz.sty has one section per public command, in dependency order. Each section keeps the same internal order: options and constants, helper functions, then the public command, each with a short comment (docstring) describing arguments and behaviour. Follow the existing spacing, indentation and comment style.
  • Every tunable value is a package option (family shorthand, key names prefixed with the command name), read at call time. Positions and margins are ratios of the x-height or quad of the math style; scales follow the four-factor scheme described in the manual.
  • Any change to a command must be reflected in its section of math-shorthandz.tex (syntax box, option table, examples) and in the Change History. Examples are introduced by a short paragraph ending in ":".
  • There is no automated test suite: the manual itself is the test. A change is ready when l3build doc runs without errors and the examples look right.

Versioning

Version numbers follow Semantic Versioning (MAJOR.MINOR.PATCH):

  • MAJOR: renamed or removed commands or option keys, or changes that alter the output of existing input;
  • MINOR: new commands or options that keep existing input working;
  • PATCH: bug fixes and documentation changes without behaviour change.

Below 1.0.0, anything may change at any time. The Change History in the manual lists every version, newest first.

Releasing a new version

Maintainers only. Replace vX.Y.Z by the new version.

  1. Make sure the working tree is clean and on the main branch.
  2. Add the vX.Y.Z entry to the Change History in math-shorthandz.tex (l3build tag does not touch it).
  3. Update version and date in math-shorthandz.sty and in the manual title:
l3build tag vX.Y.Z
  1. Build the manual and check the log for errors and warnings:
l3build doc
  1. Commit and tag:
git add -A
git commit -m "Release vX.Y.Z"
git tag -a vX.Y.Z -m "math-shorthandz vX.Y.Z"
git push origin main
git push origin vX.Y.Z
  1. Build the CTAN archive:
l3build ctan
  1. Validate the upload without sending it (CTAN_EMAIL must hold the uploader address, or pass --email). For updates, replace the announcement with -m "text" or -F file; the default in build.lua is the text of the first release:
    export CTAN_EMAIL=you@example.org
    l3build upload --debug
  1. Upload:
l3build upload

License

Copyright (C) 2020-2026 Tiago Pomella Lobo. Distributed and modified under the Project Public License, version 1.3c or later (https://www.latex-project.org/lppl.txt). Maintenance status: author-maintained.

Author and support

Tiago Pomella Lobo — https://github.com/tplobo/math-shorthandz (source, issues and releases).

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

Math-shorthandz – Smart shorthands for typesetting math in

The package provides shorthand macros for typesetting the most common mathematical expressions in . It provides compact commands to construct symbols with highly customizable positioning and (auto-)scaling, such as:

  • zline – multi-underlines,
  • zscript – pre/succeeding scripts,
  • zfrac – fractions,
  • zdiff – differentials/derivatives,
  • zint – integrals with different placement of limits,
  • and more!

All commands are safe in text and distinguish their customization between display, inline, script and/or scriptscript contexts.

PackageMath-shorthandz
Bug tracker
Repository
Version1.0.0
LicensesThe Project Public License 1.3c
Copyright2020–2026 Tiago Pomella Lobo
MaintainerTiago Pomella Lobo
Contained inTeX Live as math-shorthandz
TopicsMaths
...
Guest Book Sitemap Contact Contact Author