From 18113d689eaddf1c57a5bc789f213daa4dfa358b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 25 Apr 2007 00:02:06 +0000 Subject: new latex package cmdstring (23apr07) git-svn-id: svn://tug.org/texlive/trunk@4189 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/cmdstring/README | 14 +++ .../texmf-dist/doc/latex/cmdstring/cmdstring.pdf | Bin 0 -> 357871 bytes .../texmf-dist/doc/latex/cmdstring/cmdstring.tex | 121 +++++++++++++++++++++ 3 files changed, 135 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/cmdstring/README create mode 100644 Master/texmf-dist/doc/latex/cmdstring/cmdstring.pdf create mode 100644 Master/texmf-dist/doc/latex/cmdstring/cmdstring.tex (limited to 'Master/texmf-dist/doc/latex/cmdstring') diff --git a/Master/texmf-dist/doc/latex/cmdstring/README b/Master/texmf-dist/doc/latex/cmdstring/README new file mode 100644 index 00000000000..30586634e23 --- /dev/null +++ b/Master/texmf-dist/doc/latex/cmdstring/README @@ -0,0 +1,14 @@ +For programmers, it is quite common to use the name of a macro (for +instance `foo' for the macro \foo, in other words, the letters f, o, +and o). For this purpose, it is customary to call \string which does +this sort of things... except that it prepends the escape character, +controlled by the counter \escapechar, in front of the name. The +traditional way of getting rid of it, is to set \escapechar to -1 +(without forgetting to restore the proper value at the end of the +process) or to make use of \@gobble. The former has the drawback not +to be expandible while the second isn't completely reliable. Here we +extend the expandible methods to make it reliable. + +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/cmdstring/cmdstring.pdf b/Master/texmf-dist/doc/latex/cmdstring/cmdstring.pdf new file mode 100644 index 00000000000..1b61691e456 Binary files /dev/null and b/Master/texmf-dist/doc/latex/cmdstring/cmdstring.pdf differ diff --git a/Master/texmf-dist/doc/latex/cmdstring/cmdstring.tex b/Master/texmf-dist/doc/latex/cmdstring/cmdstring.tex new file mode 100644 index 00000000000..767c6fe1bb8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/cmdstring/cmdstring.tex @@ -0,0 +1,121 @@ +\documentclass{article} + +\usepackage{etex} +\usepackage{xifthen} +\usepackage[ascii]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[warn]{textcomp} +\usepackage[a4paper, pdftex, margin=1.5in]{geometry} +\usepackage{lmodern} +\usepackage{typetex} +\usepackage{cmdstring} +\usepackage{microtype} +\usepackage{xcolor} +\usepackage{url} +\usepackage[bottom,hang]{footmisc} +\usepackage[babel]{csquotes} +\usepackage[british]{babel} +\usepackage{hyperref} + +\setcounter{secnumdepth}{-\maxdimen} + +\newcommand*{\pack}{\textsf} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\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 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title {The \pack{cmdstring} Package} +\author {Josselin Noirel} +\date {% + \getfileinfo{cmdstring.sty} + \expandafter \setdate \filedate + \today\ (\fileversion)} + +\begin{document} + +\maketitle + +\begin{abstract} + For programmers, it is quite common to use the \emph{name} of a~macro + (for instance `foo' for the macro \cmd{foo}, in other words, the letters + \emph{f}, \emph{o}, and~\emph{o}). For this purpose, it is customary + to call \cmd{string} which does this sort of things\dots\ except that it + prepends the escape character, controlled by the counter \cmd{escapechar}, + in front of the name. The traditional ways of getting rid of it, is to + set \cmd{escapechar} to~$-1$ (without forgetting to restore the proper + value at the end of the process) or to make use of \cmd{@gobble}. + The former has the drawback not to be expandible while the second isn't + completely reliable. Here we extend the expandible methods to make it + reliable. +\end{abstract} + +Use this package with +% +\begin{texcode} +\cmd[1]{usepackage}{cmdstring} +\end{texcode} +or +\begin{texcode} +\cmd[1]{RequirePackage}{cmdstring} +\end{texcode} +% +Then whatever the value of \cmd{escapechar}, +\tex{\cmd{cmdstring} {\meta{command}}} will give correct result. For +instance `\tex{\cmd{cmdstring}~\cmd{documentclass}}' gives `\cmdstring +\documentclass'; `\tex{\cmd{cmdstring}~\cmd{\\}}' gives `\cmdstring \\; +`\tex{\cmd{cmdstring}~\cmd{\SPACE}}' gives `\cmdstring \ ', i.e., the +command name without the escape~character. + +\newpage + +A~small test can be performed for all representative values of +\cmd{escapechar} +% +\begin{texcode} +\cmd{count}255 = -11 \newline +\cmd{loop} \cmd{escapechar} = \cmd{count}255 \newline +\ \ [\cmd{cmdstring} \cmd{documentclass}] \newline +\ \ [\cmd{cmdstring} \cmd{\\}] \newline +\ \ [\cmd{cmdstring} \cmd{\ }] \newline +\ \ \cmd{ifnum} \cmd{count}255 < 300 \cmd{advance} \cmd{count}255 by 1 \newline +\cmd{repeat} +\end{texcode} +% +which gives +% +\begin{list}{}{} +\item \font \tempfonta = ec-lmtt8 at 5pt + \tempfonta \baselineskip = 5.5pt \raggedright +\count255 = -11 +\loop + \escapechar = \count255 + [\cmdstring \documentclass]\nobreak\ % + [\cmdstring \\]\nobreak\ % + [\mbox{\cmdstring \ }] + \ifnum \count255 < 300 + \advance \count255 by 1 +\repeat \par +\end{list} + +\end{document} -- cgit v1.2.3