CTAN Comprehensive TeX Archive Network

Directory support/newcommand

                |           NEWCOMMAND.PY	     |
		|				     |
                | More flexible argument processing  |
                | than what \newcommand provides     |
		|				     |
                | By Scott Pakin, scott+nc@pakin.org |


LaTeX's \newcommand is fairly limited in the way it processes optional
arguments, but the TeX alternative, a batch of \defs and \futurelets,
can be overwhelming to the casual LaTeX user.  newcommand.py is a
Python program that automatically generates LaTeX macro definitions
for macros that require more powerful argument processing than
\newcommand can handle.  newcommand.py is intended for LaTeX advanced
beginners (i.e., those who know how to use \newcommand but not
internal LaTeX2e commands such as \@ifnextchar) and for more advanced
users who want to save some typing when defining complex macros.

With newcommand.py, the user specifies a template for a macro's
arguments.  newcommand.py then custom-generates a macro definition
according to the user's specifications and includes a user-friendly
"Put code here" comment to indicate where the macro's main code should
appear.  newcommand.py supports arbitrary interleavings of required
and optional arguments, starred macros, mandatory literal text, macros
with more than nine arguments, optional arguments delimited by
parentheses instead of square brackets, and optional arguments whose
value defaults to the value given for a prior argument.  The generated
macros can easily be pasted into a LaTeX document and edited as


You'll need a Python interpreter (http://www.python.org/).  Besides
that, just make sure that newcommand.py is placed somewhere in your
path and that spark.py is somewhere that newcommand.py can find it.

Copyright and license

Copyright (C) 2010 Scott Pakin, scott+nc@pakin.org

This package may be distributed and/or modified under the conditions
of the LaTeX Project Public License, either version 1.3c of this
license or (at your option) any later version.  The latest version of
this license is in:


and version 1.3c or later is part of all distributions of LaTeX version
2006/05/20 or later.

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

newcommand – Generate new command definitions

Generating any other than the simple \newcommand-style commands, in , is tedious (in the least). This script allows the specification of commands in a ‘natural’ style; the script then generates macros to define the command.

LicensesThe Project Public License
Copyright2008 Scott Pakin
MaintainerScott Pakin
Contained inTeX Live as newcommand
TopicsMacro support
Guest Book Sitemap Contact Contact Author