Directory tex-archive/support/de-macro
Copyright 2005 Peter Gacs
Licensed under the Academic Free Licence version 2.1
DE-MACRO
Version 1.3 - this version is much more conservative about deleting
comments and inserting or deleting blank space: tries to
leave in all comments, adds space only when necessary, and
tries not to delete space in the main text.
The motivating comments came from Daniel Webb.
Version 1.2 - a syntactical bug corrected, thanks Brian de Alwis!
PURPOSE
This program can eliminate most private macros from a LaTeX file.
Applications:
- your publisher has difficulty dealing with many private macros
- you cooperate with colleagues who do not understand your macros
- preprocessing before a system like latex2html, which is somewhat
unpredictable with private macros.
PLATFORM
This is a Python program, which I only have tried to run under Unix. But
the Unix dependence is minimal (for example all the directory path
references are platform-independent). It should be easy to adapt the
program to Windows, and also to avoid command-line arguments.
In case your Python is not in /usr/bin, you should change the
top line (the "shebang" line) of the program accordingly.
This top line uses the -O option for python (stands for "optimize").
Without it, the program may run too slowly. If you do not care for speed,
a number of other complications (the database, the checking for newer
versions) could be eliminated.
USAGE
Warning: this documentation contains "less" and "greater" signs.
Important information is lost when it is displayed as html.
Click directly on the README file instead!
Command line:
de-macro [--defs <defs-db>] <tex-file-1>[.tex] [<tex-file-2>[.tex] ...]
Simplest example: de-macro testament
(As you see, the <> is used only in the notation of this documentation,
you do should not type it.)
If <tex-file-i> contains a command \usepackage{<defs-file>-private}
then the file <defs-file>-private.sty will be read, and its macros will be
replaced in <tex-file-i> with their definitions.
The result is in <tex-file-i>-clean.tex.
Only newcommand, renewcommand, newenvironment, and renewenvironment are
understood (it does not matter, whether you write new or renew).
These can be nested but do not be too clever, since I do not
guarantee the same expansion order as in TeX.
FILES
<tex-file-1>.db
<tex-file>-clean.tex
<defs-file>-private.sty
For speed, a macro database file called <defs-file>.db is created.
If such a file exists already then it is used.
If <defs-file>-private.sty is older than <tex-file-1>.db then it will not
be used.
It is possible to specify another database filename via --defs <defs-db>.
Then <defs-db>.db will be used.
(Warning: with some Python versions and/or Unix platforms, the database
file name conventions may be different from what is said here.)
For each <tex-file-i>, a file <tex-file-i>-clean.tex will be produced.
If <tex-file-i>-clean.tex is newer than <tex-file-i>.tex then it stays.
INPUT COMMAND
If a tex file contains a command \input{<tex-file-j>} or \input <tex-file-j>
then <tex-file-j>.tex is processed recursively, and <tex-file-j>-clean.tex
will be inserted into the final output.
For speed, if <tex-file-j>-clean.tex is newer than <tex-file-j>.tex
then <tex-file-j>.tex will not be reprocessed.
The dependency checking is not sophisticated, so if you rewrite some macros
then remove all *-clean.tex files!
Files
| Name | Size | Date | Notes |
|---|---|---|---|
README |
3474 | 2007-02-05 03:21:00 | |
de-macro |
34152 | 2007-02-06 02:38:00 | |
user-guide.pdf |
50828 | 2007-02-06 02:45:00 | |
user-guide.tex |
4040 | 2007-02-06 02:45:00 |
Download the complete
contents of this directory in one zip archive
(58.0k).
de-macro – Expand private macros in a document
De-macro is a Python script that helps authors who like to use
private LaTeX macros (for example, as abbreviations). A technical
editor or a cooperating author may balk at such a manuscript; you
can avoid manuscript rejection misery by running de-macro on it.
De-macro will expand macros defined in \(re)newcommand or
\(re)newenvironment commands, within the document, or in
the document’s “private” package file.
| Documentation |
Readme Package documentation |
| Version | 1.3 |
| License | Free license not otherwise listed, or more than one free license applies |
| Copyright | 2005 Péter Gács |
| Maintainer | Péter Gács |
| Contained in | TeXLive as de-macro |
| Topics |
support for development of TeX macros |
