diff options
author | Karl Berry <karl@freefriends.org> | 2007-04-24 23:58:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-04-24 23:58:20 +0000 |
commit | 372e8497bf41d3fe0563c5c44fac9957c553a376 (patch) | |
tree | ff72cd23185aebdbf816380f6f3fbb404c00b1dd /Master/texmf-dist/doc/latex | |
parent | 6d57ece139d5b666d50415ba2465a992b805b3f4 (diff) |
new latex package xnewcommand (23apr07)
git-svn-id: svn://tug.org/texlive/trunk@4185 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex')
-rw-r--r-- | Master/texmf-dist/doc/latex/xnewcommand/README | 10 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.pdf | bin | 0 -> 275079 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.tex | 153 |
3 files changed, 163 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/xnewcommand/README b/Master/texmf-dist/doc/latex/xnewcommand/README new file mode 100644 index 00000000000..5bb8aabe6a4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xnewcommand/README @@ -0,0 +1,10 @@ +For most purposes, the features of \newcommand suffice. Nonetheless, +\newcommand lacks some interesting features like the ability to make +definition global or to use the \protected prefix supplied by +e-TEX. This--surprisingly small--package makes possible to pass an +optional argument \newcommand so that is becomes possible to use the +\global and \protected prefixes. + +This material is subject to the LaTeX Project Public License. +See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html +for the details of that license. diff --git a/Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.pdf b/Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.pdf Binary files differnew file mode 100644 index 00000000000..08e7d055700 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.pdf diff --git a/Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.tex b/Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.tex new file mode 100644 index 00000000000..0c637fe14a0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xnewcommand/xnewcommand.tex @@ -0,0 +1,153 @@ +\documentclass{article} + +\usepackage{etex} +\usepackage[ascii]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[warn]{textcomp} +\usepackage[a4paper, pdftex, margin=1.5in]{geometry} +\usepackage{lmodern} +\usepackage{typetex} +\usepackage{xnewcommand} +\usepackage{microtype} +\usepackage{xcolor} +\usepackage{url} +\usepackage[bottom,hang]{footmisc} +\usepackage[babel]{csquotes} +\usepackage[british]{babel} +\usepackage{hyperref} + +\setcounter{secnumdepth}{-\maxdimen} + +\newcommand*{\setdate}{} +\def \setdate #1/#2/#3#4{% + \year = #1 + \month = #2 + \day = #3#4 +} + +\makeatletter +\newcommand*{\getfileinfo}[1]{% + \def \filename {#1}% + \def \@tempb ##1 ##2 ##3\relax ##4\relax {% + \def \filedate {##1}% + \def \fileversion {##2}% + \def \fileinfo {##3}% + }% + \edef \@tempa {\csname ver@#1\endcsname}% + \expandafter \@tempb \@tempa \relax ? ? \relax \relax +} +\makeatother + +\newcommand*{\pack}{\textsf} + +\title {The \pack{xnewcommand} package} +\author {Josselin Noirel\\\url{http://www.jnoirel.fr/}} +\date {% + \getfileinfo{xnewcommand.sty}% + \expandafter \setdate \filedate + \today\ (\fileversion)} + +\begin{document} + +\maketitle + +\tableofcontents + +\begin{abstract} + For most purposes, the features of \cmd{newcommand} suffice. + Nonetheless, \cmd{newcommand} lacks some interesting features like + the ability to make definition global or to use the \cmd{protected} + prefix supplied by \eTeX. This---surprisingly small---package makes + possible to pass an~optional argument \cmd{newcommand} so that is + becomes possible to use the \cmd{global} and \cmd{protected} + prefixes. +\end{abstract} + +\section{Usage} + +Load the package with +% +\begin{texcode} + \cmd[1]{usepackage}{xnewcommand} +\end{texcode} +% +Then \cmd{newcommand} can take an additional optional argument: +% +\begin{texcode} + \cmd[syntax,5]{newcommand}[prefix]{command}[number][default]{definition} +\end{texcode} +% +where \meta{prefix} can be any valid prefix or combination of them: +% +\begin{description} +\item [\cmd{long}] The command will accept `long arguments', in + other words, its arguments may contain ends + of paragraph (explicit \cmd{par} or empty + lines); + +\item [\cmd{global}] The command is defined globally, in other + words, the definition won't be confined to + the current group; + +\item [\cmd{protected}] The command will be robust in moving + arguments and won't undergo systematic + expansion at the beginning of tabular cells; + +\item [\cmd{outer}] Makes the macro \cmd{outer} (not very useful, + but included for the sake of completeness). +\end{description} + +The same syntax applies to the commands \cmd{renewcommand}, +\cmd{DeclareRobustCommand}, \cmd{newenvironment} and +\cmd{renewenvironment}. + +\section{Remarks} + +It should not break anything. The normal syntax is preserved: +% +\begin{texcode} +\cmd[syntax,2]{newcommand}{command}{definition} +\end{texcode} +% +is equivalent to +% +\begin{texcode} +\cmd[3]{newcommand}[\cmd{long}]{\<command\>}{\<definition\>} +\end{texcode} +% +and +% +\begin{texcode} +\cmd[syntax,2]{newcommand}*{command}{definition} +\end{texcode} +% +is equivalent to +% +\begin{texcode} +\cmd[3]{newcommand}[]{\<command\>}{\<definition\>} +\end{texcode} +% +Any macro that uses \cmd{star@or@long} will inheritate the features +described above. + +\section{Examples} + +Global definition: +% +\begin{texcode} +\cmd{newcommand}[\cmd{global}]\marg{command}\marg{definition} +\end{texcode} +% +Protected definition: +% +\begin{texcode} +\cmd{newcommand}[\cmd{protected}]\marg{command}\marg{definition} +\end{texcode} +% +Combination of both: +% +\begin{texcode} +\cmd{newcommand}[\cmd{global} \cmd{protected}]\marg{command}\marg{definition} +\end{texcode} + +\end{document} |