Macros & programming
Defining macrosDefining commands (\newcommand)・Redefining commands (\renewcommand)・Macros with arguments・Macro argument limits・Handy macros・How much to use macros・Naming commandsCustom environments (\newenvironment)Counters & lengthsxparse (\NewDocumentCommand)expl3 / LaTeX3 layerProgramming helpersetoolbox / ifthen / calc・Key-value interfaces (pgfkeys)Category codes & \makeatletterPackage & class authoringWriting style files・Writing a package