diff options
author | Karl Berry <karl@freefriends.org> | 2013-01-18 23:26:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-01-18 23:26:48 +0000 |
commit | fb0e09783157c2c9f8e6899a25abc2442b8a77f6 (patch) | |
tree | 3ac58c5ecaa0f0e9130476ed1507cd8fdac116fc /Master/texmf-dist/tex/latex/acro/acro0.def | |
parent | 9a3b24b6c40172a8e489ab6d7409303db574c826 (diff) |
acro (17jan13)
git-svn-id: svn://tug.org/texlive/trunk@28867 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/acro/acro0.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/acro/acro0.def | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/acro/acro0.def b/Master/texmf-dist/tex/latex/acro/acro0.def new file mode 100644 index 00000000000..673a6d2a164 --- /dev/null +++ b/Master/texmf-dist/tex/latex/acro/acro0.def @@ -0,0 +1,168 @@ +% -------------------------------------------------------------------------- +% the ACRO package +% +% Typeset Acronyms +% +% -------------------------------------------------------------------------- +% Clemens Niederberger +% Web: https://bitbucket.org/cgnieder/acro/ +% E-Mail: contact@mychemistry.eu +% -------------------------------------------------------------------------- +% Copyright 2011-2013 Clemens Niederberger +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Clemens Niederberger. +% -------------------------------------------------------------------------- +% The acro package consists of the files +% - acro.sty, acro0.def, acro1.def, acro_en.tex, acro_en.pdf, README +% -------------------------------------------------------------------------- +% If you have any ideas, questions, suggestions or bugs to report, please +% feel free to contact me. +% -------------------------------------------------------------------------- +\ProvidesFile{acro0.def} + +% -------------------------------------------------------------------------- +% adding an acronym, internal command: +% #1: use/replace plural (boolean) +% #2: id +% #3: short +% #4: short plural +% #5: alt +% #6: long +% #7: long plural +% #8: class +% #9: extra +\cs_new:Npn \acro_new:nnnnnnnnn #1#2#3#4#5#6#7#8#9 + { + \IfBooleanTF { #1 } + { \prop_put:Nnn \l__acro_replace_plural_prop { #2 } { \c_true_bool } } + { \prop_put:Nnn \l__acro_replace_plural_prop { #2 } { \c_false_bool } } + \prop_put:Nnn \l__acro_short_prop { #2 } { #3 } + \prop_put:Nnn \l__acro_sort_prop { #2 } { #2 } + \prop_put:Nnn \l__acro_pdfstring_prop { #2 } { #3 } + \acro_create_page_records:n { #2 } + \IfNoValueTF { #4 } + { + \prop_put:Nnn \l__acro_short_plural_prop + { #2 } { \l__acro_default_plural_tl } + \prop_put:Nnx \l__acro_pdfstring_plural_prop + { #2 } { \exp_not:n { #3 } \exp_not:V \l__acro_default_plural_tl } + } + { + \prop_put:Nnn \l__acro_short_plural_prop { #2 } { #4 } + \prop_put:Nnx \l__acro_pdfstring_plural_prop { #2 } { \exp_not:n { #3 #4 } } + } + \IfNoValueTF { #5 } + { \prop_put:Nnn \l__acro_alt_prop { #2 } { #2 } } + { \prop_put:Nnn \l__acro_alt_prop { #2 } { #5 } } + \prop_put:Nnn \l__acro_long_prop { #2 } { #6 } + \IfNoValueTF { #7 } + { \prop_put:Nnn \l__acro_long_plural_prop { #2 } { \l__acro_default_plural_tl } } + { \prop_put:Nnn \l__acro_long_plural_prop { #2 } { #7 } } + \IfNoValueF { #8 } + { \prop_put:Nnn \l__acro_class_prop { #2 } { #8 } } + \IfNoValueF { #9 } + { \prop_put:Nnn \l__acro_extra_prop { #2 } { #9 } } + \bool_new:c { g__acro_#2_used_bool } + \bool_new:c { g__acro_#2_label_bool } + \bool_if:NT \l__acro_create_macros_bool + { + \cs_if_exist:cTF { #2 } + { + \bool_if:NT \l__acro_strict_bool + { \cs_set:cpn { #2 } { \ac { #2 } \acro_xspace: } } + } + { \cs_new:cpn { #2 } { \ac { #2 } \acro_xspace: } } + } + } + +% set custom format: +\cs_new:Npn \acro_format:nn #1#2 + { \prop_put:Nnn \l__acro_format_prop { #1 } { #2 } } + +% add citation: +\cs_new:Npn \acro_citation:nnnn #1#2#3#4 + { + \prop_put:Nnn \l__acro_citation_prop { #1 } { #4 } + \IfNoValueF { #2 } + { \prop_put:Nnn \l__acro_citation_pre_prop { #1 } { #2 } } + \IfNoValueF { #3 } + { \prop_put:Nnn \l__acro_citation_post_prop { #1 } { #3 } } + } + +% add pdfstring: +\cs_new:Npn \acro_pdfstring:nnn #1#2#3 + { + \prop_put:Nnx \l__acro_pdfstring_prop { #1 } { #2 } + \IfNoValueTF { #3 } + { + \prop_put:Nnx \l__acro_pdfstring_plural_prop + { #1 } { #2 \l__acro_default_plural_tl } + } + { + \prop_put:Nnx \l__acro_pdfstring_plural_prop + { #1 } { #2 #3 } + } + } + +% -------------------------------------------------------------------------- +% USER COMMANDS +% adding an acronym, user command: +% #1: use/replace plural (boolean) +% #2: id +% #3: short +% #4: short plural +% #5: alt +% #6: long +% #7: long plural +% #8: class +% #9: extra +\NewDocumentCommand \DeclareAcronym + { sm>{\SplitArgument{1}{,}}mo>{\SplitArgument{1}{,}}+mgo } + { \acro_new:nnnnnnnnn { #1 } { #2 } #3 { #4 } #5 { #7 } { #6 } } +\@onlypreamble \DeclareAcronym + +\NewDocumentCommand \DeclareAcronymFormat { mm } + { \acro_format:nn { #1 } { #2 } } +\@onlypreamble \DeclareAcronymFormat + +\NewDocumentCommand \DeclareAcronymCitation { moom } + { \acro_citation:nnnn { #1 } { #2 } { #3 } { #4 } } +\@onlypreamble \DeclareAcronymCitation + +\NewDocumentCommand \DeclareAcronymPDFString + { m >{ \SplitArgument { 1 } { , } } m } + { \acro_pdfstring:nnn { #1 } #2 } +\@onlypreamble \DeclareAcronymPDFstring + +% -------------------------------------------------------------------------- +% print the list: +\cs_new:Npn \acro_print_acronyms:nn #1#2 + { + \iow_now:Nx \@auxout { \string \acro@print@list } + \bool_if:NT \l__acro_sort_bool + { \acro_sort_prop:N \l__acro_short_prop } + \UseInstance { acro-title } { \l__acro_list_title_tl } + { \l__acro_list_name_tl } + \cs_if_exist:NTF \acro@printed@list + { + \UseInstance { acro-list } { \l__acro_list_instance_tl } + { \l__acro_list_type_tl } { #1 } { #2 } + } + { \@latex@warning@no@line {Rerun~to~get~acronym~list~right} } + } + +% user command: +\NewDocumentCommand \printacronyms { G{}O{} } + { \acro_print_acronyms:nn { #1 } { #2 } } + +\tex_endinput:D
\ No newline at end of file |