Rev 3 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
#!/bin/sh# MFOUR="m4 -B 8192"MFOUR="m4"#- (la)TeX characters which are special:NonTT='$^%&~_{}#'##- '^': NON-special chars -- can be used with TT :sedT='[^()'"${NonTT}]*"#(cat << 'END'undefine(`eval')undefine(`index')undefine(`format')undefine(`include')undefine(`substr')undefine(`paste')define(KEYWORD,`')define(COMMENT,`')define(TITLE,`\begin{Header}{$1}{$2}')define(USAGE,`\begin{verbatim}$1\end{verbatim}\end{Header}BLANK')define(ALIAS,`dnl')define(BEGIN_ARGUMENTS,`\begin{Arguments}')define(END_ARGUMENTS,`\end{Arguments}')define(ARGUMENTS,`\begin{Arguments}$1\end{Arguments}BLANK')define(ARG,``\item[\texttt{$1}:]$2'')define(ITEM,`\item[\texttt{$1}:]$2')define(DESCRIPTION,`\begin{Description}$1\end{Description}BLANK')define(NOTE,`\begin{Note}$1\end{Note}BLANK')define(VALUE,`\begin{Value}$1\end{Value}BLANK')define(SECTION,`\begin{Section}{$1}$2\end{Section}BLANK')define(VALUES,`\begin{Values}{$1}$2\end{Values}BLANK')define(REFERENCES,`\begin{References}$1\end{References}BLANK')define(SEEALSO,`\begin{SeeAlso}$1\end{SeeAlso}BLANK')define(EXAMPLES,`\begin{Examples}\begin{verbatim}$1\end{verbatim}\end{Examples}BLANK')define(LINK,`$1')define(CTRL,`\symbol{94}$1')define(LANG,`\verb@$1@')dnldefine(ITALIC,`\emph{$1}')dnldefine(TT,`\texttt{$1}')dnldefine(BOLD,`\textbf{$1}')dnldefine(PARA,`BLANK')dnldefine(LDOTS,`\ldots')define(EQUALS,`=')define(LT,<)define(LE,`\le')define(GE,`\ge')define(GT,>)define(LOG,`\log')define(EXP,`\exp')define(SQRT,`\sqrt{$1}')define(DISPLAYSTYLE,`{\displaystyle $1}')define(OVER,{{$1} \over {$2}})define(SUP,`{{$1}^{$2}}')define(SUB,`{{$1}_{$2}}')define(CHOOSE,`{$1 \choose $2}')define(PAREN,`{\left( $1 \right)}')define(SP,`')define(greekGamma,`\Gamma')define(greekalpha,`\alpha')define(greekpi,`\pi')define(greekmu,`\mu')define(greeksigma,`\sigma')define(greeklambda,`\lambda')define(boldgreekbeta,`\boldsymbol{\beta}')define(boldgreekepsilon,`\boldsymbol{\varepsilon}')define(EQBOLD,`\mathbf{$1}')define(EQN,`$ $1 $')define(DEQN,`\[ $1 \]')define(DEQTEX,`\[ $1 \]')define(DEQHTML,`')END# Fix up the input to protect things that m4 is sensitive about.## Should add s/[${NonTT}]/\\\&/g however only if NOT in verbatim things# -- just no use with 'sed' -- would need perl or such, alas....sed "s/LANG(\(${sedT}\))/TT(\1)/gs/LANG(\(${sedT}(${sedT})${sedT}\))/TT(\1)/g"'/^ALIAS/,/^EXAMPLES/s/^ *///^ARGUMENTS/,/^EXAMPLES/s/^ *///^DESCRIPTION/,/^EXAMPLES/s/^ *//s/unix/M4_unix/gs/#/M4_HASH/gs/\\(/M4_LP/gs/\\)/M4_RP/gs/`/M4_LQ/gs/'\''/M4_RQ/gs/LDOTS,/LDOTS(),/gs/,/M4_COMMA/gs/ @@ ?/,/gs/@@/,/gs/ifelse/M4_IFELSE/g' $* ) | $MFOUR |sed '/^$/ds/^BLANK[ ]*$//s/DOTS/\.\.\./gs/M4_unix/unix/gs/M4_HASH/#/gs/M4_LP/(/gs/M4_RP/)/gs/M4_LQ/`/gs/M4_RQ/'\''/gs/M4_COMMA/,/gs/M4_IFELSE/ifelse/g'