diff options
author | Karl Berry <karl@freefriends.org> | 2020-03-05 22:08:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-03-05 22:08:19 +0000 |
commit | d379da24c3c8619aae41ef32e82cd06a72154d86 (patch) | |
tree | f666b8232edb45f0246a7a73eea8aee0e9342763 /Master/texmf-dist/tex/latex/acronym | |
parent | 938d0017220d59681ce920e3593cb9cdef66341e (diff) |
acronym (5mar20)
git-svn-id: svn://tug.org/texlive/trunk@54112 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/acronym')
-rw-r--r-- | Master/texmf-dist/tex/latex/acronym/acronym.sty | 127 |
1 files changed, 95 insertions, 32 deletions
diff --git a/Master/texmf-dist/tex/latex/acronym/acronym.sty b/Master/texmf-dist/tex/latex/acronym/acronym.sty index c582d6e9b9c..ebd2a86d946 100644 --- a/Master/texmf-dist/tex/latex/acronym/acronym.sty +++ b/Master/texmf-dist/tex/latex/acronym/acronym.sty @@ -5,7 +5,7 @@ %% The original source files were: %% %% acronym.dtx (with options: `acronym') -%% Copyright 1995--2009 by Tobias Oetiker (tobi@oetiker.ch) +%% Copyright 1995--2020 by Tobias Oetiker (tobi@oetiker.ch) %% and individual authors listed elsewhere. %% All rights reserved. %% @@ -40,8 +40,8 @@ %% %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesPackage{acronym}[2019/11/11 - v1.42 +\ProvidesPackage{acronym}[2020/02/07 + v1.44 Support for acronyms (Tobias Oetiker)] \RequirePackage{suffix,xstring} \newif\ifAC@footnote @@ -50,9 +50,15 @@ \newif\ifAC@nohyperlinks \AC@nohyperlinksfalse \DeclareOption{nohyperlinks}{\AC@nohyperlinkstrue} +\newif\ifAC@noacroprefix +\AC@noacroprefixfalse +\DeclareOption{noacroprefix}{\AC@noacroprefixtrue} \newif\ifAC@printonlyused \AC@printonlyusedfalse \DeclareOption{printonlyused}{\AC@printonlyusedtrue} +\newif\ifAC@printonlyreused +\AC@printonlyreusedfalse +\DeclareOption{printonlyreused}{\AC@printonlyreusedtrue} \newif\ifAC@withpage \AC@withpagefalse \DeclareOption{withpage}{\AC@withpagetrue} @@ -83,6 +89,7 @@ \def\AC@linebreakpenalty{3} \fi \def\AC@hyperlink#1#2{#2} +\def\AC@hyperref[#1]#2{#2} \def\AC@hypertarget#1#2{#2} \def\AC@phantomsection{} \ifAC@nohyperlinks @@ -90,6 +97,7 @@ \AtBeginDocument{% \@ifpackageloaded{hyperref} {\let\AC@hyperlink=\hyperlink + \let\AC@hyperref=\hyperref \newcommand*\AC@raisedhypertarget[2]{% \Hy@raisedlink{\hypertarget{#1}{}}#2}% \let\AC@hypertarget=\AC@raisedhypertarget @@ -103,6 +111,13 @@ }{}}% \fi \AtBeginDocument{% + \@ifpackageloaded{hyperref}{% + \let\AC@pageref=\@pagerefstar% + }{% + \let\AC@pageref=\pageref% + }% +} +\AtBeginDocument{% \providecommand\texorpdfstring[2]{#1}% \providecommand\pdfstringdefDisableCommands[1]{}% \pdfstringdefDisableCommands{% @@ -152,7 +167,7 @@ } \newcommand*\acresetall{\the\AC@clearlist\AC@clearlist={}} \def\AC@reset#1{% - \global\expandafter\let\csname AC@#1\endcsname\relax + \global\expandafter\let\csname AC@\AC@prefix#1\endcsname\relax } \newcommand*\AC@used{@<>@<>@} \newcommand{\AC@populated}{} @@ -167,17 +182,32 @@ }% } \newcommand*{\acronymused}[1]{% - \expandafter\ifx\csname acused@#1\endcsname\AC@used - \relax - \else - \global\expandafter\let\csname acused@#1\endcsname\AC@used - \global\let\AC@populated\AC@used - \fi} + \expandafter\ifx\csname acused@#1@once\endcsname\AC@used% + \expandafter\ifx\csname acused@#1@twice\endcsname\AC@used% + \relax% + \else% + \global\expandafter\let\csname acused@#1@twice\endcsname\AC@used% + \global\let\AC@populated\AC@used% + \fi% + \else% + \global\expandafter\let\csname acused@#1@once\endcsname\AC@used% + \ifAC@printonlyreused% + \relax% + \else% + \global\let\AC@populated\AC@used% + \fi% + \fi% +} \newcommand{\@firstupper}[1]{% \StrLeft{#1}{1}[\firstletter]% \StrGobbleLeft{#1}{1}[\remainder]% \MakeUppercase\firstletter\remainder% } +\ifAC@noacroprefix + \newcommand*\AC@prefix{} +\else + \newcommand*\AC@prefix{acronyms@} +\fi \newcommand*\newacro[1]{% \@ifnextchar[{\AC@newacro{#1}}{\AC@newacro{#1}[#1]}} \newcommand\AC@newacro{} @@ -239,33 +269,66 @@ \end{AC@deflist}% \fi}% \newcommand*\AC@acro[1]{% - \@ifnextchar[{\AC@@acro{#1}}{\AC@@acro{#1}[#1]}} -\newcommand\AC@@acro{} -\def\AC@@acro#1[#2]#3{% + \@ifnextchar[{% + \csname AC@\AC@prefix{}@acro\endcsname{#1}% + }{% + \csname AC@\AC@prefix{}@acro\endcsname{#1}[#1]% + }% +} +\expandafter\newcommand\csname AC@\AC@prefix{}@acro\endcsname{} +\expandafter\def\csname AC@\AC@prefix{}@acro\endcsname#1[#2]#3{% \ifAC@nolist% \else% - \ifAC@printonlyused% - \expandafter\ifx\csname acused@#1\endcsname\AC@used% - \item[\protect\AC@hypertarget{#1}{\aclabelfont{#2}}] #3% + \ifnum% + \ifAC@printonlyused 1% + \else\ifAC@printonlyreused 1% + \else 0\fi\fi% + =1% + \ifnum% + \ifAC@printonlyused% + \expandafter\ifx\csname acused@#1@once\endcsname\AC@used 1 \else 0 \fi% + \else\ifAC@printonlyreused% + \expandafter\ifx\csname acused@#1@twice\endcsname\AC@used 1 \else 0 \fi% + \else 0 \fi\fi% + =1% + \item[\protect\AC@hypertarget{#1}{% + \AC@hyperref[acro:#1]{\aclabelfont{#2}\hfill}% + }]\AC@hyperref[acro:#1]{#3}% \ifAC@withpage% \expandafter\ifx\csname r@acro:#1\endcsname\relax% \PackageInfo{acronym}{% Acronym #1 used in text but not spelled out in full in text}% \else% - \dotfill\pageref{acro:#1}% + \nobreak\leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{.}\mkern\@dotsep mu$}\hfill% + \nobreak\hb@xt@\@pnumwidth{% + \hfil\normalfont\normalcolor\AC@pageref{acro:#1}% + }% \fi% \fi\\% \fi% - \else% - \item[\protect\AC@hypertarget{#1}{\aclabelfont{#2}}] #3% - \fi% - \fi% - \begingroup + \else% + \item[\protect\AC@hypertarget{#1}{\AC@hyperref[acro:#1]{\aclabelfont{#2}\hfill}}]\AC@hyperref[acro:#1]{#3}% + \fi% + \fi% + \begingroup \def\acroextra##1{}% \@bsphack - \protected@write\@auxout{}% - {\string\newacro{#1}[\string\AC@hyperlink{#1}{#2}]{#3}}% + \ifAC@printonlyreused% + \protected@write\@auxout{}{% + \string\newacro{#1}[% + \expandafter\ifx\csname acused@#1@twice\endcsname\AC@used% + \string\AC@hyperlink{#1}{#2}% + \else% + {#2}% + \fi% + ]{#3}% + }% + \else% + \protected@write\@auxout{}{% + \string\newacro{#1}[\string\AC@hyperlink{#1}{#2}]{#3}% + }% + \fi% \@esphack \endgroup \ignorespaces} @@ -448,11 +511,11 @@ \fi }% \newcommand*\AC@placelabel[1]{% - \expandafter\ifx\csname AC@#1\endcsname\AC@used + \expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used \else {\AC@phantomsection\@verridelabel{acro:#1}}% \ifAC@starred\else% - \global\expandafter\let\csname AC@#1\endcsname\AC@used + \global\expandafter\let\csname AC@\AC@prefix#1\endcsname\AC@used \fi% \AC@addtoAC@clearlist{#1}% \fi @@ -497,7 +560,7 @@ \ifAC@dua \ifAC@starred\acl*{#2}\else\acl{#2}\fi% \else - \expandafter\ifx\csname AC@#2\endcsname\AC@used% + \expandafter\ifx\csname AC@\AC@prefix#2\endcsname\AC@used% \ifAC@starred\acs*{#2}\else\acs{#2}\fi% \else \ifAC@starred\acf*[#1]{#2}\else\acf[#1]{#2}\fi% @@ -507,7 +570,7 @@ \ifAC@dua \ifAC@starred\Acl*{#2}\else\Acl{#2}\fi% \else - \expandafter\ifx\csname AC@#2\endcsname\AC@used% + \expandafter\ifx\csname AC@\AC@prefix#2\endcsname\AC@used% \ifAC@starred\acs*{#2}\else\acs{#2}\fi% \else \ifAC@starred\Acf*[#1]{#2}\else\Acf[#1]{#2}\fi% @@ -522,7 +585,7 @@ \ifAC@dua \csname fn@#1@IL\endcsname% \else - \expandafter\ifx\csname AC@#1\endcsname\AC@used% + \expandafter\ifx\csname AC@\AC@prefix#1\endcsname\AC@used% \csname fn@#1@IS\endcsname% \else \csname fn@#1@IL\endcsname% @@ -595,7 +658,7 @@ \ifAC@dua \ifAC@starred\aclp*{#2}\else\aclp{#2}\fi% \else - \expandafter\ifx\csname AC@#2\endcsname\AC@used + \expandafter\ifx\csname AC@\AC@prefix#2\endcsname\AC@used \ifAC@starred\acsp*{#2}\else\acsp{#2}\fi% \else \ifAC@starred\acfp*[#1]{#2}\else\acfp[#1]{#2}\fi% @@ -605,7 +668,7 @@ \ifAC@dua \ifAC@starred\Aclp*{#2}\else\Aclp{#2}\fi% \else - \expandafter\ifx\csname AC@#2\endcsname\AC@used + \expandafter\ifx\csname AC@\AC@prefix#2\endcsname\AC@used \ifAC@starred\acsp*{#2}\else\acsp{#2}\fi% \else \ifAC@starred\Acfp*[#1]{#2}\else\Acfp[#1]{#2}\fi% @@ -634,7 +697,7 @@ }% \ifAC@starred\else\AC@logged{#2}\fi} \newcommand{\acused}[1]{% -\global\expandafter\let\csname AC@#1\endcsname\AC@used% +\global\expandafter\let\csname AC@\AC@prefix#1\endcsname\AC@used% \AC@addtoAC@clearlist{#1}} \newcommand*{\acsu}{\AC@starredfalse\protect\acsua}% \WithSuffix\newcommand\acsu*{\AC@starredtrue\protect\acsua}% |