diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/tex/latex/acromake/acromake.sty | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/acromake/acromake.sty b/Master/texmf-dist/tex/latex/acromake/acromake.sty new file mode 100644 index 00000000000..93291fec1b9 --- /dev/null +++ b/Master/texmf-dist/tex/latex/acromake/acromake.sty @@ -0,0 +1,110 @@ +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This is file `acromake.sty', written on +%% on <1995/7/16> by Paul A. Thompson, Ph.D. +%% +%% Copyright (C) 1995 Paul A. Thompson +%% All rights reserved. +%% +%% Advice and suggestions of D. Carlisle, D. Arseneau and P. Schmitt noted. +%% Errors responsibility of author. +%% +%% This file requires LaTeX2e. +%% --------------------------- +%% +%% No permission is granted to modify this file. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This algorithm is presented and discussed in TeX and TUG News, V4, #1. +%% The algorithm as presented there has several small problems, which are +%% solved here. +%% +%% This file generates acronyms. There are three parameters which may be +%% set by the user +%% 1. To generate an acronym +%% \acromk{ANSA}{{\tt ANSA}}{another nasty stupid acronym} +%% +%% The first argument is the name used in text to implement the acronym. +%% The second argument is the name printed in the text when the acronym +%% is used. The final argument is the full, non-acronymized version. +%% +%% So, if there was an acronym +%% \acromake{ANSA}{{\tt ANSA}}{another nasty stupid acronym} +%% it could be used as +%% +%% \ANSA is a new approach to the use of \ANSA, where \ANSA is ... +%% +%% This would result in +%% +%% another nasty stupid acronym ({\tt ANSA}) is a new approach to +%% the use of {\tt ANSA}, where {\tt ANSA} is ... +%% +%% 2. To use the acronym +%% here \ANSA whatever {foo}lish use of acronym you wish +%% This will generate the following: +%% Usage number Resolved text +%% 1 another nasty stupid acronym (ANSA) +%% 2 ANSA (page 2) +%% 3 (and beyond) ANSA +%% +%% 3. The following may be set by the user: +%% ACRcnta - count of uses of acronym macro which will be in full form +%% (default is 1) +%% ACRcntb - count of uses of acronym macro which will include page of +%% acronym def (default is 1 reference, or ACRcntb-ACRcnta) +%% useACRlb - should the page reference be used - 1-yes, 0-no +%% +%% For every acronym, the macro generates the acronym macro and a macro which +%% acts like a counter for acronym use. Since counters are quite rare, it is +%% not responsible to use a counter for every acronym - rather, a macro is +%% generated which fills this function. The acronym macro is called \foo, +%% while the counter macro is called \fooz. Thus, I would avoid calling any +%% acronym fooz, as this may be confoozing. +%% +%% The .sty file generates 1 counter if it is included. For each acronym +%% specified, the .sty file generates two macros, 1 for the acronym, and 1 for +%% the count of acronym use +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +\NeedsTeXFormat{LaTeX2e}% % 1 +\RequirePackage{xspace} +\newcommand{\pv}{} \newcounter{util} +\newcommand{\ACRcnta}{1}% full acronym generations +\newcommand{\ACRcntb}{2}% ACRcntb - ACRcnta = acronym + page number +\newcommand{\addtomacro}[2]{% % like \addtocounter, but for a macro + \setcounter{util}{#1}\addtocounter{util}{#2}\xdef#1{\theutil}}% +\newcommand{\acromake}[3]{% + \ifnum\ACRcnta<1\renewcommand{\ACRcnta}{1}\fi% + \expandafter\gdef\csname#1z\endcsname{0}% count occurrences + \expandafter\newcommand\csname#1\endcsname{% + \ifnum\csname#1z\endcsname=0\label{acro:#1}\fi% + \expandafter\addtomacro\expandafter{\csname#1z\endcsname}{1}% + #3 (#2)% expansion and acronym printed here + \ifnum\csname#1z\endcsname=\ACRcnta% + \expandafter\renewcommand\csname#1\endcsname{% + \expandafter\addtomacro\expandafter{\csname#1z\endcsname}{1}% + \renewcommand{\pv}{ (see Page \pageref{acro:#1})}% + \ifnum\csname#1z\endcsname>\ACRcntb% + \renewcommand{\pv}{#2}% + \else% + \ifnum\ACRcntb=0% + \renewcommand{\pv}{#2}% + \else% + \ifnum\thepage=0\pageref{acro:#1}% + \renewcommand{\pv}{#2}% + \else% + \renewcommand{\pv}{#2\ (see Page \pageref{acro:#1})}% + \fi% + \fi% + \fi% + \pv\xspace% + }% + \fi% + \xspace}% +} |