Macro support
This topic contains packages with support for development of (La)TeX macros.
Extend commands and environments.
Add commands to package after it's loaded.
Execute command after the next page break.
Alias counters.
Array data structures for (La)TeX.
Array data structures for (La)TeX.
Sort arrays (or portions of them).
Associate counters, making them step when a master steps.
Short commands starting '@'.
Make author, etc., available after \maketitle.
Code balanced quotes according to document language.
Split list, in TeX’s mouth.
Producing 'blind' text for testing.
A boolean expression evaluator and a switch command.
BX bundle base components.
Enclose the document body with some pieces of code.
Ghost insertion for proper xkanjiskip.
Dummy text in Japanese.
Adjust the position of parentheses at paragraph head.
Convert Japanese character code to Unicode.
Catch an external file into a macro.
Catch text delimited by docstrip tags.
Generic handling of TeX category codes.
Preserving and recalling standard catcodes.
Expandable conditional commands for LaTeX.
Extend “improperly closed environment” messages.
A patch for the label-checking code.
Change the resetting of counters.
Record classes used in a document.
Map and iterate over LaTeX3 clists.
Get command name reliably.
Store counter values per chapter.
Collect arguments of any command.
Collect text for later re-use.
Expandable iteration on comma-separated and filename lists.
Compare two strings.
Create new key-value syntax.
Make use of count1 to count9.
Support dynamic counters.
Declare register names locally.
Expand private macros in a document.
Macros for constructing interactive LaTeX scripts.
Do things after a group.
Apply a command to a list of items.
Declare active character substitution, robustly.
Create duckified dummy content.
Local allocation macros for LaTeX 2015.
Read an environment verbatim.
A new interface for environments in LaTeX.
Catch arguments delimited by end of line.
Avoid name clashes with e-TeX commands.
E-TeX support package.
e-TeX tools for LaTeX users and package writers.
Expandable token list operations.
e-TeX tools for LaTeX.
German translation of documentation of etoolbox.
A loader for etoolbox.sty in non-LaTeX formats.
Hooks for standard TeX token lists.
An expandable key=val implementation and friends.
Define expandable key=val macros using expkv.
Wrapper package for experimental LaTeX3.
Import and export values of LaTeX registers.
Expandable \@testopt (and related) macros.
A miscellany of support macros.
One-shot changes to token registers such as \everypar.
Fetch the current class name.
FIFO and stack implementation for package writers.
Hooks for input files.
Adjust behaviour of the ends of footnotes.
Access to 150 paragraphs of Lorem Fistrum very dummy text.
Fix miscellaneous two column mode features.
Fix JFM (for *pTeX).
Setting and clearing of flags in bit fields.
Improve on LaTeX's footnote handling.
A hyperref aware footnote environment.
Using array structures in LaTeX.
Iteration in LaTeX.
Provide an intuitive functional programming interface for LaTeX2.
Support for writing modular and customisable code.
Gathering items from a list-like environment.
Clean up title references.
Support macros for other packages.
More gobble macros for PlainTeX and LaTeX.
A LaTeX class to generate several types of graph papers.
Manipulating generalized token lists.
Make allocations local.
Construct package bundles.
Load patches for packages.
Hungarian dummy text (Lórum ipse).
Functionality from IEEEtran for use with other classes.
Compare a string against a set of other strings.
Check if a given input string is a number or dimension for TeX.
If-then-else command for processing potentially empty arguments.
Utility macro: peek ahead without ignoring spaces.
Determine if the current page is odd or even.
Conditional commands in LaTeX documents.
Extra tests for \ifthenelse.
Detect pTeX and its derivatives.
Translate input files on the fly.
Calculate inverse file paths.
Generate sentences in Kant's style.
Key based parser.
A ‘lipsum’ package for the Kurdish language.
LaTeX3 backend drivers.
LaTeX3 backend drivers (dev).
A testing and building system for (La)TeX.
Experimental LaTeX3 concepts.
LaTeX2ε option processing using LaTeX3 keys.
High-level LaTeX3 concepts.
Regular expression facilities for LaTeX.
Check the existence of labels, and fork accordingly.
Lists in TeX's mouth.
Use Lambda expression within LaTeX.
Zero-width boxes for annotations, etc.
Miscellaneous helper packages.
Easy access to the Lorem Ipsum and other dummy texts.
A simple package for including support files.
Process lists to do repetitive actions.
Various macros for keeping things local.
Macros for localizing TeX register allocations.
e-TeX showbox facilities for exploration purposes.
General looping macros for use with LaTeX.
Provide a graph datastructure for experimental LaTeX3.
Objects and proxies in LaTeX3.
Some LaTeX kernel commands for general use.
A collection of LaTeX API macros.
LaTeX utility macros.
List operations for LaTeX2ε.
Swap the definitions of two LaTeX macros.
The new \makecommand command always (re)defines a command.
Making a macro robust (legacy package).
Make an existing LaTeX command robust.
Miscellaneous list-related commands.
Miscellaneous tools by Mark Wooding.
Containers for data in LaTeX.
Uppercase the first letter of a word.
A set of useful macro tools.
An abstract of LaTeX facilities for use with Plain TeX.
LaTeX defining, expansion, and debugging commands.
Quickly define several similar macros.
A loop facility for Generic TeX.
Multiple environments using a “key=value” syntax.
Variations on the primitive command \expandafter.
Write information to files.
Generate new LaTeX command definitions.
Processing an environment’s body.
Generalisations of the page advance commands.
Resolve macro name conflict between packages.
Prevent paragraph indentation after environments or macros.
Avoid the need for protection.
Flexible and configurable page range typesetting.
Apply a macro to each line of an environment.
Patch loaded packages, etc.
Change the definition of an existing command.
Implements pdfTeX's escape features using TeX or e-TeX.
LuaTeX support for pdfTeX utility functions.
Make a counter reset at every page boundary.
A patched version of PiCTeX using fewer registers.
Dimens for picture macros.
A minimal method for making generic packages.
'Lorem ipsum' for Plain TeX developers.
Process key-value pairs.
Load properties from a file.
Define protected commands.
A ‘lipsum’ for Persian.
An easy way to typeset any part of The Holy Quran.
Bengali translations to the quran package.
German translations to the quran package.
English translation extension to the quran package.
Spanish Translations for the quran package.
Indonesian translation extension to the quran package.
Urdu translations to the quran package.
Randomise token strings.
Recycle top matter.
Conditional macro, etc., definitions.
High level patching of commands.
Set the font size relative to the current font size.
Remove from counter-reset lists.
Remove counters from reset list.
Repeat execution of macros.
Re-scan tokens with synctex information.
Declare robust command, with \newcommand checks.
Increase the number of available output streams in LaTeX.
Redefine symbols where names conflict.
LaTeX support files for SDAPS.
Transfig patch supporting shapepar.
Show label, ref, cite and bib keys.
Show label commands in the margin.
Create commands using parameters and keyval in parallel.
Save loading all of another package.
Patch LaTeX kernel spacing macros.
Tools to define and use stacks.
Highly customised stacking of objects, insets, baseline changes, etc.
Provide sectioning information for package writers.
Storing information for reuse.
Store the name of a defined command in a container.
Report files opened and closed in the log, including nesting level.
Deal with substrings in strings.
Define commands with suffixes.
Tabbing with accented letters.
“Tabbing” front-end to stackengine.
Macros to write format-independent packages.
Case conversion ignoring mathematics, etc.
A single TikZ node for the whole page.
Build tools to process tokens from an input stream.
Tool macros.
Find the last value of a counter.
Make sensible use of TeX tracing in LaTeX.
Trim spaces around an argument or within a macro.
Definitions with two optional arguments.
Suppress \outer flags in Plain TeX.
Watching TeX digest tokens.
Miscellaneous macros by Peter Williams.
In-place argument substitution.
Define commands with optional arguments.
Define commands with many optional arguments.
Associated counters stepping simultaneously.
Track the number of subsections etc. that occur in a specified tracklevel.
A reimplementation of the LaTeX for-loop macro.
Control text feeding onto the page.
Extended conditional commands.
Provision for expandable macros in package options.
Xkeyval viewer.
Extending etoolbox patching commands.
Define commands that peek ahead in the input stream.
Process trailing punctuation which may be redundant.
Define commands that appear not to eat spaces.
Chinese dummy text.