summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/acro/acro.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/acro/acro.sty')
-rw-r--r--macros/latex/contrib/acro/acro.sty1644
1 files changed, 592 insertions, 1052 deletions
diff --git a/macros/latex/contrib/acro/acro.sty b/macros/latex/contrib/acro/acro.sty
index 03d0121d5f..98425268c1 100644
--- a/macros/latex/contrib/acro/acro.sty
+++ b/macros/latex/contrib/acro/acro.sty
@@ -8,7 +8,7 @@
% Web: https://bitbucket.org/cgnieder/acro/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2011--2019 Clemens Niederberger
+% Copyright 2011--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -23,17 +23,39 @@
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
% The acro package consists of the files
-% - acro.sty, acro_en.tex, acro_en.pdf, acro.history, README
+% - acro.sty, acro.definitions.tex, acro.cfg
+% - acro-manual.tex, acro-manual.pdf, acro-manual.cls
+% - acro.history, README
% --------------------------------------------------------------------------
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-\RequirePackage{expl3,xparse,l3keys2e,xtemplate,etoolbox}
+\RequirePackage{expl3,xparse,xtemplate,l3keys2e}
+\RequirePackage{etoolbox} % for the document hooks
+
+\ExplSyntaxOn
+
+\tl_const:Nn \c_acro_date_tl {2020/01/11}
+\tl_const:Nn \c_acro_version_major_number_tl {2}
+\tl_const:Nn \c_acro_version_minor_number_tl {11}
+\tl_const:Nn \c_acro_version_subrelease_tl {}
+\tl_const:Nx \c_acro_version_number_tl
+ {
+ \c_acro_version_major_number_tl .
+ \c_acro_version_minor_number_tl
+ }
+\tl_const:Nx \c_acro_version_tl
+ {
+ \c_acro_version_number_tl
+ \c_acro_version_subrelease_tl
+ }
+\tl_const:Nn \c_acro_info_tl {Typeset~ Acronyms}
+
\ProvidesExplPackage
{acro}
- {2019/12/30}
- {2.10d}
- {Typeset Acronyms}
+ {\c_acro_date_tl}
+ {\c_acro_version_tl}
+ {\c_acro_info_tl}
% --------------------------------------------------------------------------
% warning and error messages:
@@ -108,6 +130,195 @@
}
% --------------------------------------------------------------------------
+% temporary variables
+\tl_new:N \l__acro_tmpa_tl
+\tl_new:N \l__acro_tmpb_tl
+\tl_new:N \l__acro_tmpc_tl
+\prop_new:N \l__acro_tmpa_prop
+\prop_new:N \l__acro_tmpb_prop
+\seq_new:N \l__acro_tmpa_seq
+\seq_new:N \l__acro_tmpb_seq
+\int_new:N \l__acro_tmpa_int
+\int_new:N \l__acro_tmpb_int
+\int_new:N \l__acro_tmpc_int
+\int_new:N \l__acro_tmpd_int
+
+% --------------------------------------------------------------------------
+% variants of kernel commands
+\cs_generate_variant:Nn \quark_if_no_value:nTF {V}
+\cs_generate_variant:Nn \tl_put_right:Nn {NV,Nv}
+\cs_generate_variant:Nn \tl_if_eq:nnT {V}
+\cs_generate_variant:Nn \tl_if_eq:nnF {V}
+\cs_generate_variant:Nn \seq_use:Nnnn {c}
+\cs_generate_variant:Nn \seq_gset_split:Nnn {c}
+\cs_generate_variant:Nn \seq_set_split:Nnn {NnV}
+\cs_generate_variant:Nn \seq_if_in:NnT {NV}
+\cs_generate_variant:Nn \seq_if_in:NnTF {Ne}
+\cs_generate_variant:Nn \prop_put:Nnn {NnV,cnx,cnv}
+\cs_generate_variant:Nn \prop_get:NnNTF {cnc}
+\cs_generate_variant:Nn \prop_get:NnNF {cn,cnc}
+\cs_generate_variant:Nn \prop_get:NnN {cnc}
+\cs_generate_variant:Nn \cs_generate_variant:Nn {c}
+\cs_generate_variant:Nn \str_case:nn {V}
+
+% --------------------------------------------------------------------------
+% variables:
+\bool_new:N \l__acro_acc_supp_bool
+\bool_new:N \l__acro_addto_index_bool
+\bool_new:N \l__acro_capitalize_list_bool
+\bool_new:N \g__acro_case_sensitive_bool
+\bool_new:N \l__acro_citation_all_bool
+\bool_new:N \l__acro_citation_first_bool
+\bool_set_true:N \l__acro_citation_first_bool
+\bool_new:N \l__acro_create_macros_bool
+\bool_new:N \l__acro_custom_alt_format_bool
+\bool_new:N \l__acro_custom_long_format_bool
+\bool_new:N \l__acro_custom_short_format_bool
+\bool_new:N \l__acro_extra_punct_bool
+\bool_new:N \l__acro_extra_use_brackets_bool
+\bool_new:N \g__acro_first_acronym_declared_bool
+\bool_new:N \l__acro_first_instance_bool
+\bool_new:N \l__acro_first_only_short_bool
+\bool_new:N \l__acro_first_only_long_bool
+\bool_new:N \l__acro_first_reversed_bool
+\bool_new:N \l__acro_first_switched_bool
+\bool_new:N \l__acro_first_use_brackets_bool
+\bool_new:N \l__acro_first_upper_bool
+\bool_new:N \l__acro_following_page_bool
+\bool_new:N \l__acro_following_pages_bool
+\bool_new:N \l__acro_foreign_bool
+\bool_set_true:N \l__acro_foreign_bool
+\bool_new:N \l__acro_group_citation_bool
+\bool_new:N \l__acro_hyperref_loaded_bool
+\bool_new:N \l__acro_hyperref_use_bool
+\bool_new:N \l__acro_include_endings_format_bool
+\bool_new:N \l__acro_indefinite_bool
+\bool_new:N \l__acro_in_list_bool
+\bool_new:N \l__acro_is_included_bool
+\bool_new:N \l__acro_is_excluded_bool
+\bool_new:N \l__acro_list_all_pages_bool
+\bool_set_true:N \l__acro_list_all_pages_bool
+\bool_new:N \l__acro_list_reverse_long_extra_bool
+\bool_new:N \l__acro_log_acronyms_bool
+\bool_new:N \l__acro_log_acronyms_verbose_bool
+\bool_new:N \l__acro_mark_as_used_bool
+\bool_new:N \g__acro_mark_first_as_used_bool
+\bool_new:N \l__acro_override_list_format_bool
+\bool_new:N \l__acro_page_brackets_bool
+\bool_new:N \l__acro_page_display_bool
+\bool_new:N \l__acro_page_punct_bool
+\bool_new:N \l__acro_place_label_bool
+\bool_new:N \l__acro_print_only_used_bool
+\bool_set_true:N \l__acro_print_only_used_bool
+\bool_new:N \g__acro_rerun_bool
+\bool_new:N \g__acro_reset_at_barrier_bool
+\bool_new:N \l__acro_silence_bool
+\bool_new:N \l__acro_single_use_bool
+\bool_new:N \l__acro_sort_bool
+\bool_set_true:N \l__acro_sort_bool
+\bool_new:N \l__acro_strict_bool
+\bool_new:N \l__acro_trailing_tokens_bool
+\bool_new:N \l__acro_tooltip_bool
+\bool_new:N \l__acro_tooltip_inside_bool
+\bool_new:N \l__acro_upper_indefinite_bool
+\bool_new:N \l__acro_upper_short_bool
+\bool_new:N \l__acro_use_acronyms_bool
+\bool_set_true:N \l__acro_use_acronyms_bool
+\bool_new:N \l__acro_use_barrier_bool
+\bool_new:N \g__acro_use_barriers_bool
+\bool_new:N \l__acro_use_ending_form_bool
+\bool_new:N \l__acro_use_note_bool
+\bool_new:N \l__acro_xspace_bool
+
+\str_new:N \l__acro_current_id_str
+
+\tl_new:N \l__acro_list_entries_tl
+\tl_new:N \l__acro_endings_tl
+\tl_new:N \l__acro_trailing_tokens_tl
+\tl_new:N \l__acro_included_classes_tl
+\tl_new:N \l__acro_excluded_classes_tl
+\tl_new:N \l__acro_ignore_tl
+\tl_new:N \l__acro_default_indefinite_tl
+\tl_set:Nn \l__acro_default_indefinite_tl {a}
+\tl_new:N \l__acro_foreign_sep_tl
+\tl_new:N \l__acro_extra_instance_tl
+\tl_set:Nn \l__acro_extra_instance_tl {default}
+\tl_new:N \l__acro_page_instance_tl
+\tl_set:Nn \l__acro_page_instance_tl {none}
+\tl_new:N \l__acro_page_name_tl
+\tl_new:N \l__acro_pages_name_tl
+\tl_new:N \l__acro_next_page_tl
+\tl_new:N \l__acro_next_pages_tl
+\tl_new:N \l__acro_list_instance_tl
+\tl_set:Nn \l__acro_list_instance_tl {description}
+\tl_new:N \l__acro_list_type_tl
+\tl_new:N \l__acro_list_heading_cmd_tl
+\tl_set:Nn \l__acro_list_heading_cmd_tl {section*}
+\tl_new:N \l__acro_list_name_tl
+\tl_new:N \l__acro_list_before_tl
+\tl_new:N \l__acro_list_after_tl
+\tl_new:N \l__acro_custom_short_format_tl
+\tl_new:N \l__acro_first_between_tl
+\tl_new:N \l__acro_citation_connect_tl
+\tl_new:N \l__acro_between_group_connect_citation_tl
+\tl_new:N \l__acro_extra_brackets_tl
+\tl_new:N \l__acro_extra_punct_tl
+\tl_new:N \l__acro_first_brackets_tl
+\tl_new:N \l__acro_page_punct_tl
+\tl_new:N \l__acro_page_brackets_tl
+\tl_new:N \l__acro_last_page_tl
+\tl_new:N \l__acro_current_page_tl
+\tl_new:N \l__acro_list_table_tl
+\tl_new:N \l__acro_list_table_spec_tl
+\tl_new:N \l__acro_acc_supp_tl
+\tl_new:N \l__acro_acc_supp_options_tl
+\tl_new:N \l__acro_label_prefix_tl
+\tl_set:Nn \l__acro_label_prefix_tl {ac:}
+\tl_new:N \l__acro_index_short_tl
+\tl_new:N \l__acro_first_instance_tl
+\tl_set:Nn \l__acro_first_instance_tl {default}
+\tl_new:N \l__acro_short_tl
+\tl_new:N \l__acro_short_format_tl
+\tl_new:N \l__acro_list_short_format_tl
+\tl_new:N \l__acro_alt_tl
+\tl_new:N \l__acro_alt_format_tl
+\tl_new:N \l__acro_long_tl
+\tl_new:N \l__acro_long_format_tl
+\tl_new:N \l__acro_list_long_format_tl
+\tl_new:N \l__acro_single_form_tl
+\tl_set:Nn \l__acro_single_form_tl {long}
+\tl_new:N \l__acro_extra_format_tl
+\tl_new:N \l__acro_foreign_format_tl
+\tl_new:N \l__acro_foreign_list_format_tl
+\tl_set:Nn \l__acro_foreign_list_format_tl { \acroenparen }
+\tl_new:N \l__acro_index_format_tl
+
+\skip_new:N \l__acro_page_space_skip
+
+\dim_new:N \l__acro_short_width_dim
+\dim_set:Nn \l__acro_short_width_dim {3em}
+
+\int_new:N \g__acro_barrier_int
+
+\seq_new:N \l__acro_endings_seq
+\seq_new:N \l__acro_actions_seq
+\seq_new:N \g__acro_declared_acronyms_seq
+
+\prop_new:N \l__acro_citation_prop
+\prop_new:N \l__acro_citation_pre_prop
+\prop_new:N \l__acro_citation_post_prop
+\prop_new:N \l__acro_pdfstring_alt_prop
+\prop_new:N \l__acro_pdfstring_short_prop
+\prop_new:N \g__acro_properties_prop
+\prop_new:N \l__acro_trailing_tokens_prop
+\prop_new:N \l__acro_trailing_actions_prop
+\prop_new:N \l__acro_list_styles_prop
+\prop_new:N \l__acro_list_headings_prop
+\prop_new:N \l__acro_first_styles_prop
+\prop_new:N \l__acro_extra_styles_prop
+\prop_new:N \l__acro_page_styles_prop
+
+% --------------------------------------------------------------------------
% logging:
\prg_new_conditional:Npnn \acro_if_log: {p,T,F,TF}
{
@@ -116,9 +327,6 @@
{ \prg_return_false: }
}
-\bool_new:N \l__acro_log_acronyms_bool
-\bool_new:N \l__acro_log_acronyms_verbose_bool
-
\keys_define:nn {acro}
{
log .choice: ,
@@ -138,7 +346,7 @@
\cs_new:Npn \__acro_write_log:nn #1#2 { \ \ \ #1 ~ = ~ {#2} }
\cs_new:Npn \__acro_write_log_property:nnn #1#2#3
- { \__acro_write_log:nn {#2} { \__acro_get_property:nn {#3} {#1} } }
+ { \__acro_write_log:nn {#2} { \__acro_property_get:nn {#3} {#1} } }
\cs_new:Npn \__acro_ending_log_entry:nn #1#2
{
@@ -159,10 +367,10 @@
| ~ \msg_info_text:n {acro}~ --~ defining~ new~ acronym: \\
| \__acro_write_log:nn {ID} {#1} \\
| \__acro_write_log_property:nnn {#1} {short} {short} \\
- | \__acro_write_log_property:nnn {#1}{long} {long} \\
- | \__acro_write_log_property:nnn {#1}{alt} {alt} \\
- | \__acro_write_log_property:nnn {#1}{sort} {sort} \\
- | \__acro_write_log_property:nnn {#1}{class} {class} \\
+ | \__acro_write_log_property:nnn {#1} {long} {long} \\
+ | \__acro_write_log_property:nnn {#1} {alt} {alt} \\
+ | \__acro_write_log_property:nnn {#1} {sort} {sort} \\
+ | \__acro_write_log_property:nnn {#1} {class} {class} \\
| \__acro_write_log_property:nnn {#1} {list} {list} \\
| \__acro_write_log_property:nnn {#1} {extra} {extra} \\
| \__acro_write_log_property:nnn {#1} {foreign} {foreign} \\
@@ -183,6 +391,8 @@
| \__acro_write_log_property:nnn {#1} {foreign-lang} {foreign_lang} \\
| \\
| \__acro_write_log_property:nnn {#1} {cite} {citation} \\
+ | \__acro_write_log_property:nnn {#1} {before-citation} {before_citation} \\
+ | \__acro_write_log_property:nnn {#1} {after-citation} {after_citation} \\
| \__acro_write_log_property:nnn {#1} {index} {index} \\
| \__acro_write_log_property:nnn {#1} {index-sort} {index_sort} \\
| \\
@@ -207,7 +417,6 @@
| \__acro_write_log_property:nnn {#1} {list} {list} \\
| \__acro_write_log_property:nnn {#1} {extra} {extra} \\
| \__acro_write_log_property:nnn {#1} {foreign} {foreign} \\
- | \__acro_write_log_property:nnn {#1} {pdfstring} {pdfstring} \\
| \__acro_write_log_property:nnn {#1} {cite} {citation} \\
=================================================
}
@@ -274,172 +483,6 @@
}
% --------------------------------------------------------------------------
-% temporary variables
-\tl_new:N \l__acro_tmpa_tl
-\tl_new:N \l__acro_tmpb_tl
-\tl_new:N \l__acro_tmpc_tl
-\prop_new:N \l__acro_tmpa_prop
-\prop_new:N \l__acro_tmpb_prop
-\seq_new:N \l__acro_tmpa_seq
-\seq_new:N \l__acro_tmpb_seq
-\int_new:N \l__acro_tmpa_int
-\int_new:N \l__acro_tmpb_int
-\int_new:N \l__acro_tmpc_int
-\int_new:N \l__acro_tmpd_int
-
-% --------------------------------------------------------------------------
-% variants of kernel commands
-\cs_generate_variant:Nn \quark_if_no_value:nTF { V }
-\cs_generate_variant:Nn \tl_put_right:Nn { NV, Nv }
-\cs_generate_variant:Nn \tl_if_eq:nnT { V }
-\cs_generate_variant:Nn \tl_if_eq:nnF { V }
-\cs_generate_variant:Nn \seq_use:Nnnn { c }
-\cs_generate_variant:Nn \seq_gset_split:Nnn { c }
-\cs_generate_variant:Nn \seq_set_split:Nnn { NnV }
-\cs_generate_variant:Nn \seq_if_in:NnT { NV }
-\cs_generate_variant:Nn \prop_put:Nnn { NnV, cnx, cnv }
-\cs_generate_variant:Nn \prop_get:NnNTF { cnc }
-\cs_generate_variant:Nn \prop_get:NnNF { cn, cnc }
-\cs_generate_variant:Nn \prop_get:NnN { cnc }
-\cs_generate_variant:Nn \cs_generate_variant:Nn { c }
-\cs_generate_variant:Nn \str_case:nn { V }
-
-% --------------------------------------------------------------------------
-% variables:
-\bool_new:N \l__acro_silence_bool
-\bool_new:N \l__acro_mark_as_used_bool
-\bool_new:N \g__acro_mark_first_as_used_bool
-\bool_new:N \l__acro_use_single_bool
-\bool_new:N \l__acro_print_only_used_bool
-\bool_set_true:N \l__acro_print_only_used_bool
-\bool_new:N \l__acro_hyperref_loaded_bool
-\bool_new:N \l__acro_use_hyperref_bool
-\bool_new:N \l__acro_xspace_bool
-\bool_new:N \l__acro_custom_short_format_bool
-\bool_new:N \l__acro_custom_alt_format_bool
-\bool_new:N \l__acro_custom_long_format_bool
-\bool_new:N \l__acro_override_list_format_bool
-\bool_new:N \l__acro_strict_bool
-\bool_new:N \l__acro_create_macros_bool
-\bool_new:N \l__acro_first_upper_bool
-\bool_new:N \l__acro_upper_short_bool
-\bool_new:N \l__acro_indefinite_bool
-\bool_new:N \l__acro_upper_indefinite_bool
-\bool_new:N \l__acro_foreign_bool
-\bool_set_true:N \l__acro_foreign_bool
-\bool_new:N \l__acro_sort_bool
-\bool_set_true:N \l__acro_sort_bool
-\bool_new:N \l__acro_capitalize_list_bool
-\bool_new:N \l__acro_citation_all_bool
-\bool_new:N \l__acro_citation_first_bool
-\bool_set_true:N \l__acro_citation_first_bool
-\bool_new:N \l__acro_group_citation_bool
-\bool_new:N \l__acro_acc_supp_bool
-\bool_new:N \l__acro_tooltip_bool
-\bool_new:N \l__acro_inside_tooltip_bool
-\bool_new:N \l__acro_following_page_bool
-\bool_new:N \l__acro_following_pages_bool
-\bool_new:N \l__acro_addto_index_bool
-\bool_new:N \l__acro_is_excluded_bool
-\bool_new:N \l__acro_is_included_bool
-\bool_new:N \l__acro_page_punct_bool
-\bool_new:N \l__acro_page_brackets_bool
-\bool_new:N \l__acro_page_display_bool
-\bool_new:N \l__acro_new_page_numbering_bool
-\bool_new:N \l__acro_first_use_brackets_bool
-\bool_new:N \l__acro_first_only_short_bool
-\bool_new:N \l__acro_first_only_long_bool
-\bool_new:N \l__acro_first_reversed_bool
-\bool_new:N \l__acro_first_switched_bool
-\bool_new:N \l__acro_use_note_bool
-\bool_new:N \l__acro_extra_punct_bool
-\bool_new:N \l__acro_extra_use_brackets_bool
-\bool_new:N \l__acro_in_list_bool
-\bool_new:N \l__acro_place_label_bool
-\bool_new:N \l__acro_list_all_pages_bool
-\bool_set_true:N \l__acro_list_all_pages_bool
-\bool_new:N \g__acro_first_acronym_declared_bool
-\bool_new:N \l__acro_include_endings_format_bool
-\bool_new:N \l__acro_list_reverse_long_extra_bool
-\bool_new:N \l__acro_use_acronyms_bool
-\bool_set_true:N \l__acro_use_acronyms_bool
-
-\tl_new:N \l__acro_ignore_tl
-\tl_new:N \l__acro_default_indefinite_tl
-\tl_set:Nn \l__acro_default_indefinite_tl {a}
-\tl_new:N \l__acro_foreign_sep_tl
-\tl_new:N \l__acro_extra_instance_tl
-\tl_set:Nn \l__acro_extra_instance_tl {default}
-\tl_new:N \l__acro_page_instance_tl
-\tl_set:Nn \l__acro_page_instance_tl {none}
-\tl_new:N \l__acro_page_name_tl
-\tl_new:N \l__acro_pages_name_tl
-\tl_new:N \l__acro_next_page_tl
-\tl_new:N \l__acro_next_pages_tl
-\tl_new:N \l__acro_list_instance_tl
-\tl_set:Nn \l__acro_list_instance_tl {description}
-\tl_new:N \l__acro_list_type_tl
-% \tl_new:N \l__acro_list_tl
-\tl_new:N \l__acro_list_heading_cmd_tl
-\tl_set:Nn \l__acro_list_heading_cmd_tl {section*}
-\tl_new:N \l__acro_list_name_tl
-\tl_new:N \l__acro_list_before_tl
-\tl_new:N \l__acro_list_after_tl
-\tl_new:N \l__acro_custom_short_format_tl
-\tl_new:N \l__acro_first_between_tl
-\tl_new:N \l__acro_citation_connect_tl
-\tl_new:N \l__acro_between_group_connect_citation_tl
-\tl_new:N \l__acro_extra_brackets_tl
-\tl_new:N \l__acro_extra_punct_tl
-\tl_new:N \l__acro_first_brackets_tl
-\tl_new:N \l__acro_page_punct_tl
-\tl_new:N \l__acro_page_brackets_tl
-\tl_new:N \l__acro_last_page_tl
-\tl_new:N \l__acro_current_page_tl
-\tl_new:N \l__acro_list_table_tl
-\tl_new:N \l__acro_list_table_spec_tl
-\tl_new:N \l__acro_acc_supp_tl
-\tl_new:N \l__acro_acc_supp_options_tl
-\tl_new:N \l__acro_label_prefix_tl
-\tl_set:Nn \l__acro_label_prefix_tl { ac: }
-\tl_new:N \l__acro_index_short_tl
-\tl_new:N \l__acro_first_instance_tl
-\tl_set:Nn \l__acro_first_instance_tl {default}
-
-\tl_new:N \l__acro_short_tl
-\tl_new:N \l__acro_short_format_tl
-\tl_new:N \l__acro_list_short_format_tl
-
-\tl_new:N \l__acro_alt_tl
-\tl_new:N \l__acro_alt_format_tl
-
-\tl_new:N \l__acro_long_tl
-\tl_new:N \l__acro_list_long_format_tl
-
-\tl_new:N \l__acro_single_form_tl
-\tl_set:Nn \l__acro_single_form_tl {long}
-
-\tl_new:N \l__acro_extra_format_tl
-
-\tl_new:N \l__acro_foreign_format_tl
-\tl_new:N \l__acro_foreign_list_format_tl
-\tl_set:Nn \l__acro_foreign_list_format_tl { \acroenparen }
-
-\tl_new:N \l__acro_index_format_tl
-
-
-\skip_new:N \l__acro_page_space_skip
-
-\dim_new:N \l__acro_short_width_dim
-\dim_set:Nn \l__acro_short_width_dim {3em}
-
-\prop_new:N \l__acro_list_styles_prop
-\prop_new:N \l__acro_list_headings_prop
-\prop_new:N \l__acro_first_styles_prop
-\prop_new:N \l__acro_extra_styles_prop
-\prop_new:N \l__acro_page_styles_prop
-
-% --------------------------------------------------------------------------
% small commands for use at various places
\cs_new:Npn \acro_no_break: { \tex_penalty:D 10000 \scan_stop: }
@@ -450,10 +493,13 @@
\cs_new_eq:NN \acro_first_upper_case:n \__acro_first_upper_case:n
-\NewDocumentCommand \acfirstupper {m}
- { \acro_first_upper_case:n {#1} }
-
% --------------------------------------------------------------------------
+\tl_new:N \l_acro_config_file_name_tl
+\tl_new:N \l_acro_config_file_extension_tl
+
+\tl_set:Nn \l_acro_config_file_name_tl {acro}
+\tl_set:Nn \l_acro_config_file_extension_tl {cfg}
+
% options:
\keys_define:nn {acro}
{
@@ -463,6 +509,10 @@
messages / loud .code:n =
\bool_set_false:N \l__acro_silence_bool ,
messages .value_required:n = true ,
+ config-file-name .tl_set:N = \l_acro_config_file_name_tl ,
+ config-file-name .initial:n = acro ,
+ config-file-extension .tl_set:N = \l_acro_config_file_extension_tl ,
+ config-file-extension .initial:n = cfg ,
accsupp .bool_set:N = \l__acro_acc_supp_bool ,
accsupp-options .tl_set:N = \l__acro_acc_supp_options_tl ,
tooltip .bool_set:N = \l__acro_tooltip_bool ,
@@ -472,6 +522,8 @@
xspace .bool_set:N = \l__acro_xspace_bool ,
% xspace .code:n = \acro_option_deprecated:nn {xspace} {} ,
strict .bool_set:N = \l__acro_strict_bool ,
+ case-sensitive .bool_set:N = \g__acro_case_sensitive_bool ,
+ case-sensitive .initial:n = true ,
sort .bool_set:N = \l__acro_sort_bool ,
short-format .code:n =
\tl_set:Nn \l__acro_short_format_tl {#1}
@@ -506,7 +558,7 @@
override-list-format .initial:n = true ,
extra-format .tl_set:N = \l__acro_extra_format_tl ,
extra-format .value_required:n = true ,
- single .bool_set:N = \l__acro_use_single_bool ,
+ single .bool_set:N = \l__acro_single_use_bool ,
single-form .tl_set:N = \l__acro_single_form_tl ,
single-form .value_required:n = true ,
first-style .code:n = \acro_set_first_style:n {#1} ,
@@ -547,7 +599,7 @@
list-heading .value_required:n = true ,
list-name .tl_set:N = \l__acro_list_name_tl ,
list-name .value_required:n = true ,
- hyperref .bool_set:N = \l__acro_use_hyperref_bool ,
+ hyperref .bool_set:N = \l__acro_hyperref_use_bool ,
only-used .bool_set:N = \l__acro_print_only_used_bool ,
mark-as-used .choice: ,
mark-as-used / first .code:n =
@@ -604,11 +656,6 @@
}
% --------------------------------------------------------------------------
-% setup command:
-\NewDocumentCommand \acsetup { m }
- { \keys_set:nn {acro} {#1} \ignorespaces }
-
-% --------------------------------------------------------------------------
% we use xtemplate for different object types and with a different number of
% arguments; let's declare functions for usage later so we don't have to
% bother
@@ -633,7 +680,7 @@
\cs_new_protected:Npn \acro_first_instance:nn #1#2
{
- \acro_if_property:nnTF {#1} {first-style}
+ \acro_property_if_set:nnTF {#1} {first-style}
{
\tl_set_eq:NN
\l__acro_tmpa_tl
@@ -663,7 +710,9 @@
\cs_new_protected:Npn \acro_activate_hyperref_support:
{
- \bool_if:nT { \l__acro_hyperref_loaded_bool && \l__acro_use_hyperref_bool }
+ \bool_lazy_and:nnT
+ { \l__acro_hyperref_loaded_bool }
+ { \l__acro_hyperref_use_bool }
{
\sys_if_engine_xetex:TF
{
@@ -680,8 +729,9 @@
% #2: text
\cs_new_protected:Npn \__acro_make_link:nn #1#2
{
- \bool_if:nTF
- { \l__acro_use_hyperref_bool && \l__acro_hyperref_loaded_bool }
+ \bool_lazy_and:nnTF
+ { \l__acro_hyperref_use_bool }
+ { \l__acro_hyperref_loaded_bool }
{
\acro_hyper_link:nn {#1} { \phantom {#2} }
\acro_if_is_single:nTF {#1}
@@ -690,7 +740,6 @@
}
{#2}
}
-\cs_generate_variant:Nn \__acro_make_link:Nnn {NnV}
\cs_new:Npn \acro_color_link:n #1
{
@@ -730,22 +779,18 @@
\str_case:nn {#1}
{
{long} {
- \bool_if:nT
- {
- \l__acro_first_only_long_bool ||
- !\l__acro_first_only_short_bool
- }
+ \bool_lazy_or:nnT
+ { \l__acro_first_only_long_bool }
+ { !\l__acro_first_only_short_bool }
{
\acro_write_indefinite:nn {#2} {long}
\acro_write_expanded:nnn {#2} {first-long} {#3}
}
}
{short} {
- \bool_if:nT
- {
- !\l__acro_first_only_long_bool ||
- \l__acro_first_only_short_bool
- }
+ \bool_lazy_or:nnT
+ { !\l__acro_first_only_long_bool }
+ { \l__acro_first_only_short_bool }
{
\acro_soft_upper:
\acro_write_indefinite:nn {#2} {short}
@@ -758,11 +803,9 @@
\cs_new_protected:Npn \__acro_open_bracket:
{
- \bool_if:nT
- {
- !\l__acro_first_only_long_bool &&
- !\l__acro_first_only_short_bool
- }
+ \bool_lazy_and:nnT
+ { !\l__acro_first_only_long_bool }
+ { !\l__acro_first_only_short_bool }
{
\acro_space:
\tl_if_blank:VF \l__acro_first_between_tl
@@ -777,11 +820,11 @@
\cs_new_protected:Npn \__acro_close_bracket:
{
- \bool_if:nT
+ \bool_lazy_all:nT
{
- \l__acro_first_use_brackets_bool &&
- !\l__acro_first_only_short_bool &&
- !\l__acro_first_only_long_bool
+ { \l__acro_first_use_brackets_bool }
+ { !\l__acro_first_only_short_bool }
+ { !\l__acro_first_only_long_bool }
}
{ \tl_tail:N \l__acro_first_brackets_tl }
}
@@ -794,11 +837,9 @@
\str_case:nn {#1}
{
{long} {
- \bool_if:nT
- {
- \l__acro_first_only_long_bool ||
- !\l__acro_first_only_short_bool
- }
+ \bool_lazy_or:nnT
+ { \l__acro_first_only_long_bool }
+ { !\l__acro_first_only_short_bool }
{
\group_begin:
\bool_set_false:N \l__acro_first_upper_bool
@@ -807,11 +848,9 @@
}
}
{short} {
- \bool_if:nT
- {
- !\l__acro_first_only_long_bool ||
- \l__acro_first_only_short_bool
- }
+ \bool_lazy_or:nnT
+ { !\l__acro_first_only_long_bool }
+ { \l__acro_first_only_short_bool }
{
\group_begin:
\bool_set_false:N \l__acro_first_upper_bool
@@ -825,11 +864,11 @@
% #1: id
\cs_new_protected:Npn \__acro_foreign_sep:n #1
{
- \bool_if:nT
+ \bool_lazy_all:nT
{
- \l__acro_foreign_bool &&
- !\l__acro_first_only_short_bool &&
- !\l__acro_first_only_long_bool
+ { \l__acro_foreign_bool }
+ { !\l__acro_first_only_short_bool }
+ { !\l__acro_first_only_long_bool }
}
{ \acro_if_foreign:nT {#1} { \tl_use:N \l__acro_foreign_sep_tl } }
}
@@ -839,11 +878,11 @@
{
\acro_if_foreign:nT {#1}
{
- \bool_if:nT
+ \bool_lazy_all:nT
{
- \l__acro_foreign_bool &&
- !\l__acro_first_only_short_bool &&
- !\l__acro_first_only_long_bool
+ { \l__acro_foreign_bool }
+ { !\l__acro_first_only_short_bool }
+ { !\l__acro_first_only_long_bool }
}
{
\acro_write_foreign:n {#1}
@@ -861,9 +900,9 @@
\cs_new_protected:Npn \__acro_finalize_first:n #1
{
\bool_if:NF \l__acro_group_citation_bool
- { \acro_cite_if:nn { \l__acro_citation_first_bool } {#1} }
- \acro_index_if:nn { \l__acro_addto_index_bool } {#1}
- \acro_get_property:nnT {#1} {post}
+ { \acro_cite_if:Nn \l__acro_citation_first_bool {#1} }
+ \acro_index_if:Nn \l__acro_addto_index_bool {#1}
+ \acro_property_get:nnT {#1} {post}
{ \tl_use:N \l__acro_post_tl }
}
@@ -919,11 +958,6 @@
\__acro_finalize_first:n {#1}
}
}
-
-\bool_new:N \l__acro_first_instance_bool
-
-\NewExpandableDocumentCommand \aciffirst {+m+m}
- { \bool_if:NTF \l__acro_first_instance_bool {#1} {#2} }
% template for footnotes, sidenotes, ...
\cs_new:Npn \__acro_note_command:n #1 {#1}
@@ -983,12 +1017,6 @@
\prop_put:Nnn \l__acro_first_styles_prop {#1} {#2}
}
-% #1: name
-% #2: template
-% #3: settings
-\NewDocumentCommand \DeclareAcroFirstStyle {mmm}
- { \acro_declare_first_style:nnn {#1} {#2} {#3} }
-
% set a list style
\cs_new_protected:Npn \acro_set_first_style:n #1
{
@@ -1046,12 +1074,6 @@
\prop_put:Nnn \l__acro_etxra_styles_prop {#1} {#2}
}
-% #1: name
-% #2: template
-% #3: settings
-\NewDocumentCommand \DeclareAcroExtraStyle {mmm}
- { \acro_declare_extra_style:nnn {#1} {#2} {#3} }
-
% set an extra style
\cs_new_protected:Npn \acro_set_extra_style:n #1
{
@@ -1191,13 +1213,14 @@
{ \acro_get_abspage_from:N \l__acro_last_page_tl }
\int_set:Nn \l__acro_tmpd_int
{ \acro_get_page_number_from:N \l__acro_last_page_tl }
- \bool_if:nTF
+ \bool_lazy_and:nnTF
{
\int_compare_p:nNn
{ \l__acro_tmpa_int - \l__acro_tmpc_int }
=
{ \l__acro_tmpb_int - \l__acro_tmpd_int }
- &&
+ }
+ {
\int_compare_p:nNn
{ \l__acro_tmpb_int - \l__acro_tmpd_int } = {1}
}
@@ -1243,7 +1266,7 @@
\seq_put_right:Nn #1 {#3}
}
}
-\cs_generate_variant:Nn \acro_determine_page_ranges:NNn { NNV }
+\cs_generate_variant:Nn \acro_determine_page_ranges:NNn {NNV}
% --------------------------------------------------------------------------
\DeclareObjectType {acro-page-number} {1}
@@ -1291,12 +1314,6 @@
\prop_put:Nnn \l__acro_page_styles_prop {#1} {#2}
}
-% #1: name
-% #2: template
-% #3: settings
-\NewDocumentCommand \DeclareAcroPageStyle {mmm}
- { \acro_declare_page_style:nnn {#1} {#2} {#3} }
-
% set a page style
\cs_new_protected:Npn \acro_set_page_style:n #1
{
@@ -1348,12 +1365,7 @@
}
\cs_new_protected:Npn \__acro_set_list_heading:n #1
- {
- \tl_set:Nn \l__acro_list_heading_cmd_tl {#1}
- % \prop_get:NnN \l__acro_list_headings_prop
- % {#1}
- % \l__acro_list_heading_cmd_tl
- }
+ { \tl_set:Nn \l__acro_list_heading_cmd_tl {#1} }
\cs_new_protected:Npn \acro_declare_list_heading:nn #1#2
{
@@ -1362,9 +1374,6 @@
{ name-format = #2 {##1} }
}
-\NewDocumentCommand \DeclareAcroListHeading {mm}
- { \acro_declare_list_heading:nn {#1} {#2} }
-
% --------------------------------------------------------------------------
% typesetting the acronym list
\DeclareObjectType {acro-list} {2}
@@ -1376,11 +1385,11 @@
\bool_set_false:N \l__acro_is_excluded_bool
\tl_if_blank:nF {#2}
{
- \clist_map_inline:nn {#2}
+ \acro_property_get:nnT {#1} {class}
{
- \prop_get:NnNT \l__acro_class_prop {#1} \l__acro_tmpa_tl
+ \seq_set_split:NnV \l__acro_tmpa_seq {,} \l__acro_class_tl
+ \clist_map_inline:nn {#2}
{
- \seq_set_split:NnV \l__acro_tmpa_seq {,} \l__acro_tmpa_tl
\seq_if_in:NnT \l__acro_tmpa_seq {##1}
{ \bool_set_true:N \l__acro_is_excluded_bool }
}
@@ -1399,11 +1408,11 @@
\tl_if_blank:nTF {#2}
{ \bool_set_true:N \l__acro_is_included_bool }
{
- \clist_map_inline:nn {#2}
+ \acro_property_get:nnT {#1} {class}
{
- \prop_get:NnNT \l__acro_class_prop {#1} \l__acro_tmpa_tl
+ \seq_set_split:NnV \l__acro_tmpa_seq {,} \l__acro_class_tl
+ \clist_map_inline:nn {#2}
{
- \seq_set_split:NnV \l__acro_tmpa_seq {,} \l__acro_tmpa_tl
\seq_if_in:NnT \l__acro_tmpa_seq {##1}
{ \bool_set_true:N \l__acro_is_included_bool }
}
@@ -1425,14 +1434,12 @@
\acro_acc_supp:nn
{#1}
{
- \bool_if:nTF
- {
- \l__acro_custom_short_format_bool &&
- \l__acro_override_list_format_bool
- }
+ \bool_lazy_and:nnTF
+ { \l__acro_custom_short_format_bool }
+ { \l__acro_override_list_format_bool }
{ \l__acro_custom_short_format_tl }
{ \l__acro_list_short_format_tl }
- { \__acro_get_property:nn {short} {#1} }
+ { \__acro_property_get:nn {short} {#1} }
}
}
\group_end:
@@ -1447,30 +1454,30 @@
\acro_write_long:Vf \l__acro_list_long_format_tl
{
\prop_if_in:NnTF \l__acro_list_prop {#1}
- { \__acro_get_property:nn {list} {#1} }
- { \__acro_get_property:nn {long} {#1} }
+ { \__acro_property_get:nn {list} {#1} }
+ { \__acro_property_get:nn {long} {#1} }
}
\group_end:
\bool_if:NT \l__acro_foreign_bool
{ \acro_get_foreign:n {#1} }
- \acro_cite_if:nn { \l__acro_citation_all_bool } {#1}
+ \acro_cite_if:Nn \l__acro_citation_all_bool {#1}
}
% #1: id
\cs_new_protected:Npn \__acro_list_entry_extra:n #1
{
- \prop_get:NnNT \l__acro_extra_prop {#1} \l__acro_tmpa_tl
+ \acro_property_get:nnT {#1} {extra}
{
\acro_extra_instance:VV
\l__acro_extra_instance_tl
- \l__acro_tmpa_tl
+ \l__acro_extra_tl
}
}
% #1: id
\cs_new_protected:Npn \__acro_list_entry_page:n #1
{
- \bool_if:nT { \cs_if_exist_p:c { acro@#1@once } }
+ \cs_if_exist:cT {acro@#1@once}
{
\acro_page_number_instance:Vn
\l__acro_page_instance_tl
@@ -1490,7 +1497,7 @@
{extra} { \__acro_list_entry_extra:n {#2} }
{page} { \__acro_list_entry_page:n {#2} }
}
- { \__acro_get_property:nn {#1} {#2} }
+ { \__acro_property_get:nn {#1} {#2} }
}
% this macro may/should be redefined in templates:
@@ -1513,20 +1520,31 @@
% #3: excluded classes
\prg_new_protected_conditional:Npnn \acro_if_entry:nnn #1#2#3 {T,F,TF}
{
- \bool_if:nTF
+ \bool_lazy_or:nnTF
+ {
+ \bool_lazy_and_p:nn
+ { !\l__acro_single_use_bool }
+ { !\l__acro_print_only_used_bool }
+ }
{
- \bool_if_p:c { g__acro_#1_in_list_bool } &&
- (
- ( \l__acro_use_single_bool && \cs_if_exist_p:c { acro@#1@twice } )
- ||
- (
- !\l__acro_use_single_bool &&
- \cs_if_exist_p:c { acro@#1@once } &&
- \l__acro_print_only_used_bool
- )
- )
- ||
- ( !\l__acro_use_single_bool && !\l__acro_print_only_used_bool )
+ \bool_lazy_and_p:nn
+ { \bool_if_p:c {g__acro_#1_in_list_bool} }
+ {
+ \bool_lazy_or_p:nn
+ {
+ \bool_lazy_and_p:nn
+ { \l__acro_single_use_bool }
+ { \cs_if_exist_p:c {acro@#1@twice} }
+ }
+ {
+ \bool_lazy_all_p:n
+ {
+ { !\l__acro_single_use_bool }
+ { \cs_if_exist_p:c {acro@#1@once} }
+ { \l__acro_print_only_used_bool }
+ }
+ }
+ }
}
{
\acro_if_is_excluded:nnTF {#1} {#3}
@@ -1534,8 +1552,9 @@
{
\acro_if_is_included:nnTF {#1} {#2}
{
- \bool_if:nTF
- { \g__acro_use_barriers_bool && \l__acro_use_barrier_bool }
+ \bool_lazy_and:nnTF
+ { \g__acro_use_barriers_bool }
+ { \l__acro_use_barrier_bool }
{
\acro_if_in_barrier:nxTF {#1}
{ \int_use:N \g__acro_barrier_int }
@@ -1550,8 +1569,6 @@
{ \prg_return_false: }
}
-\tl_new:N \l__acro_list_entries_tl
-
% this macro is used in templates for fetching all items to be printed; it
% collects all entries in a tl which then is used where needed
%
@@ -1815,12 +1832,6 @@
\prop_put:Nnn \l__acro_list_styles_prop {#1} {#2}
}
-% #1: name
-% #2: template
-% #3: settings
-\NewDocumentCommand \DeclareAcroListStyle {mmm}
- { \acro_declare_list_style:nnn {#1} {#2} {#3} }
-
% set a list style
\cs_new_protected:Npn \acro_set_list_style:n #1
{
@@ -1842,6 +1853,28 @@
}
% --------------------------------------------------------------------------
+% case insensitivity of the ID:
+\cs_new:Npn \acro_case_insensitive:n #1
+ {
+ \bool_if:NTF \g__acro_case_sensitive_bool
+ { \tl_to_str:n {#1} }
+ { \str_lower_case:n {#1} }
+ }
+
+\cs_new_protected:Npn \acro_protected_case_insensitive:n #1
+ { \acro_case_insensitive:n {#1} }
+
+\cs_new:Npn \acro_case_insensitive:Nn #1#2
+ { \exp_args:Ne #1 { \acro_case_insensitive:n {#2} } }
+
+\cs_new:Npn \acro_case_insensitive:Nnn #1#2#3
+ { \exp_args:Ne #1 { \acro_case_insensitive:n {#2} } {#3} }
+
+\cs_new_protected:Npn \acro_case_insensitive_command:Nnnn #1#2#3#4
+ { \exp_args:Nnnx #1 {#2} {#3} { \acro_case_insensitive:n {#4} } }
+\cs_generate_variant:Nn \acro_case_insensitive_command:Nnnn {c}
+
+% --------------------------------------------------------------------------
% automatic typesetting, the internals of \ac:
% #1: id
@@ -1879,7 +1912,7 @@
\acro_single_form:nV {#1} \l__acro_single_form_tl
\acro_after:n {#1}
}
-
+
% #1: ID
% #2: long|first|<other>
\cs_new_protected:Npn \acro_single_form:nn #1#2
@@ -1935,8 +1968,9 @@
\prg_new_conditional:Npnn \acro_if_is_single:n #1 { p,T,TF }
{
- \bool_if:nTF
- { !\l__acro_use_single_bool || \cs_if_exist_p:c { acro@#1@twice } }
+ \bool_lazy_or:nnTF
+ { !\l__acro_single_use_bool }
+ { \cs_if_exist_p:c {acro@#1@twice} }
{ \prg_return_false: }
{ \prg_return_true: }
}
@@ -1946,11 +1980,10 @@
% --------------------------------------------------------------------------
% some helpers we'll need more often:
-\seq_new:N \g__acro_declared_acronyms_seq
-
\prg_new_conditional:Npnn \acro_if_defined:n #1 {p,T,F,TF}
{
- \seq_if_in:NnTF \g__acro_declared_acronyms_seq {#1}
+ \seq_if_in:NeTF \g__acro_declared_acronyms_seq
+ { \acro_case_insensitive:n {#1} }
{ \prg_return_true: }
{ \prg_return_false: }
}
@@ -1965,14 +1998,14 @@
% name is needed
% #1: property
% #2: id
-\cs_new:Npn \__acro_get_property:nn #1#2
+\cs_new:Npn \__acro_property_get:nn #1#2
{ \prop_item:cn {l__acro_#1_prop} {#2} }
% #1: id
% #2: property
% #3: set case
% #4: not set case
-\prg_new_protected_conditional:Npnn \acro_get_property:nn #1#2 {T,F,TF}
+\prg_new_protected_conditional:Npnn \acro_property_get:nn #1#2 {T,F,TF}
{
\tl_set:Nn \l__acro_tmpa_tl {#2}
\tl_replace_all:Nnn \l__acro_tmpa_tl {-} {_}
@@ -1984,32 +2017,14 @@
{ \prg_return_false: }
}
-\cs_new_protected:Npn \acro_get_property:nn #1#2
- { \acro_get_property:nnTF {#1} {#2} {} {} }
-\cs_generate_variant:Nn \acro_get_property:nn {V}
-
-% #1: id
-% #2: property
-% #3: set case
-% #4: not set case
-\prg_new_protected_conditional:Npnn \acro_if_property:nn #1#2 {T,F,TF}
- {
- \tl_set:Nn \l__acro_tmpa_tl {#2}
- \tl_replace_all:Nnn \l__acro_tmpa_tl {-} {_}
- \prop_if_in:cnTF
- {l__acro_ \l__acro_tmpa_tl _prop}
- {#1}
- { \prg_return_true: }
- { \prg_return_false: }
- }
-
-\seq_new:N \l__acro_actions_seq
+\cs_new_protected:Npn \acro_property_get:nn #1#2
+ { \acro_property_get:nnTF {#1} {#2} {} {} }
+\cs_generate_variant:Nn \acro_property_get:nn {V}
% within this command one can refer to the current id with `#1'
\cs_new_protected:Npn \acro_add_action:n #1
{ \seq_put_right:Nn \l__acro_actions_seq {#1} }
-\tl_new:N \l_acro_current_id_tl
\cs_new_protected:Npn \__acro_get_actions:n #1
{
\seq_map_inline:Nn \l__acro_actions_seq
@@ -2024,52 +2039,57 @@
\bool_if:NF \l__acro_in_list_bool { \leavevmode }
\acro_activate_hyperref_support:
% short:
- \prop_get:NnNF \l__acro_short_prop {#1} \l__acro_short_tl {}
- % \__acro_make_link:NnV \l__acro_short_tl {#1} \l__acro_tmpa_tl
+ \acro_property_get:nn {#1} {short}
% alt:
- \prop_get:NnNF \l__acro_alt_prop {#1} \l__acro_alt_tl
- % { \__acro_make_link:NnV \l__acro_alt_tl {#1} \l__acro_tmpa_tl }
+ \acro_property_get:nnF {#1} {alt}
{ \tl_set_eq:NN \l__acro_alt_tl \l__acro_short_tl }
% long:
- \acro_get_property:nn {#1} {long}
+ \acro_property_get:nn {#1} {long}
% foreign:
- \acro_get_property:nn {#1} {foreign}
+ \acro_property_get:nn {#1} {foreign}
% foreign-lang:
- \acro_get_property:nn {#1} {foreign-lang}
+ \acro_property_get:nn {#1} {foreign-lang}
% extra:
- \acro_get_property:nn {#1} {extra}
+ \acro_property_get:nn {#1} {extra}
% single:
- \acro_get_property:nn {#1} {single}
+ \acro_property_get:nn {#1} {single}
% first-style:
- \acro_get_property:nn {#1} {first-style}
+ \acro_property_get:nn {#1} {first-style}
% formatting
- \prop_get:NnNTF \l__acro_long_format_prop {#1}
- \l__acro_custom_long_format_tl
- { \bool_set_true:N \l__acro_custom_long_format_bool }
+ \acro_property_get:nnTF {#1} {long-format}
+ {
+ \tl_set_eq:NN \l__acro_custom_long_format_tl \l__acro_long_format_tl
+ \bool_set_true:N \l__acro_custom_long_format_bool
+ }
{ \bool_set_false:N \l__acro_custom_long_format_bool }
- \acro_get_property:nn {#1} {first-long-format}
- \prop_get:NnNTF \l__acro_format_prop {#1} \l__acro_custom_short_format_tl
- { \bool_set_true:N \l__acro_custom_short_format_bool }
+ \acro_property_get:nn {#1} {first-long-format}
+ \acro_property_get:nnTF {#1} {format}
+ {
+ \tl_set_eq:NN \l__acro_custom_short_format_tl \l__acro_format_tl
+ \bool_set_true:N \l__acro_custom_short_format_bool
+ }
{ \bool_set_false:N \l__acro_custom_short_format_bool }
- \prop_get:NnNTF \l__acro_alt_format_prop {#1} \l__acro_custom_alt_format_tl
- { \bool_set_true:N \l__acro_custom_alt_format_bool }
+ \acro_property_get:nnTF {#1} {alt-format}
+ {
+ \tl_set_eq:NN \l__acro_custom_alt_format_tl \l__acro_alt_format_tl
+ \bool_set_true:N \l__acro_custom_alt_format_bool
+ }
{ \bool_set_false:N \l__acro_custom_alt_format_bool }
- \acro_get_property:nn {#1} {single-format}
+ \acro_property_get:nn {#1} {single-format}
\acro_for_endings_do:n
{
\bool_if:cT {l__acro_##1_bool}
{ \__acro_set_ending_for:nnn {##1} {#1} {long} }
}
- \acro_get_property:nnF {#1} {long-post}
+ \acro_property_get:nnF {#1} {long-post}
{ \tl_clear:N \l__acro_long_post_tl }
- \acro_get_property:nnT {#1} {long-pre}
+ \acro_property_get:nnT {#1} {long-pre}
{ \tl_put_left:NV \l__acro_long_tl \l__acro_long_pre_tl }
\__acro_get_actions:n {#1}
}
% --------------------------------------------------------------------------
% plural endings and similar concepts:
-\seq_new:N \l__acro_endings_seq
\cs_new_protected:Npn \acro_for_endings_do:n #1
{ \seq_map_inline:Nn \l__acro_endings_seq {#1} }
@@ -2087,10 +2107,6 @@
}
}
-\tl_new:N \l__acro_endings_tl
-
-\bool_new:N \l__acro_use_ending_form_bool
-
% this does nothing if a non-existent ending (#1) or non-existent form (#3) is
% input
% #1: ending
@@ -2121,12 +2137,9 @@
{
\acro_if_ending_form_exist:nnT {##1} {#2}
{
- \bool_if:nT
- {
- \use:c { c_ \prop_item:cn {l__acro_#2_##1_form_prop} {#1} _bool }
- &&
- \use:c {l__acro_##1_bool}
- }
+ \bool_lazy_and:nnT
+ { \use:c {l__acro_##1_bool} }
+ { \use:c { c_ \prop_item:cn {l__acro_#2_##1_form_prop} {#1} _bool } }
{ \prop_get:cncF {l__acro_#2_##1_prop} {#1} {l__acro_#2_tl} {} }
}
}
@@ -2389,26 +2402,22 @@
}
}
-\NewDocumentCommand \ProvideAcroEnding {mmm}
- { \acro_provide_ending:nnn {#1} {#2} {#3} }
-
% --------------------------------------------------------------------------
% enable us to know if the acronym is used only once and provide a different
% style for that:
\prg_new_protected_conditional:Npnn \acro_is_used:n #1 { T,F,TF }
{
\acro_record_barrier:n {#1}
- \bool_if:nTF
+ \bool_lazy_and:nnTF
+ { \bool_if_p:c {g__acro_#1_used_bool} }
{
- \bool_if_p:c { g__acro_#1_used_bool } &&
- (
- (
- \bool_if_p:c { g__acro_#1_first_use_bool } &&
- \g__acro_mark_first_as_used_bool
- )
- ||
- ! \g__acro_mark_first_as_used_bool
- )
+ \bool_lazy_or_p:nn
+ {
+ \bool_lazy_and_p:nn
+ { \bool_if_p:c {g__acro_#1_first_use_bool} }
+ { \g__acro_mark_first_as_used_bool }
+ }
+ { !\g__acro_mark_first_as_used_bool }
}
{
\bool_if:NTF \l__acro_mark_as_used_bool
@@ -2430,11 +2439,9 @@
{ \thepage }
{ \arabic {page} }
{ \arabic {abspage} }
- \bool_if:nT
- {
- !\bool_if_p:c { g__acro_#1_label_bool } &&
- \l__acro_place_label_bool
- }
+ \bool_lazy_and:nnT
+ { !\bool_if_p:c {g__acro_#1_label_bool} }
+ { \l__acro_place_label_bool }
{
\bool_gset_true:c { g__acro_#1_label_bool }
\label{\l__acro_label_prefix_tl #1}
@@ -2454,11 +2461,11 @@
\cs_new_protected:Npn \__acro_aux_file:Nnnnn #1#2#3#4#5
{ \iow_shipout:Nn \@auxout { #1 {#2} {#3} {#4} {#5} } }
-\cs_generate_variant:Nn \__acro_aux_file:Nnnnn { Nxxxx }
+\cs_generate_variant:Nn \__acro_aux_file:Nnnnn {Nxxxx}
\cs_new_protected:Npn \__acro_aux_file_now:n #1
{ \iow_now:Nn \@auxout {#1} }
-\cs_generate_variant:Nn \__acro_aux_file_now:n { x }
+\cs_generate_variant:Nn \__acro_aux_file_now:n {x}
% --------------------------------------------------------------------------
% the commands for the auxiliary file:
@@ -2482,8 +2489,6 @@
\cs_new_protected:Npn \acro@pages #1#2
{ \tl_gset:cn {g__acro_#1_recorded_pages_tl} {#2} }
-\bool_new:N \g__acro_rerun_bool
-
\cs_new_protected:Npn \acro@rerun@check
{
\bool_if:NT \g__acro_rerun_bool
@@ -2567,14 +2572,13 @@
{
\__acro_typeset:nn {short}
{
- \bool_if:nTF
- { \l__acro_first_upper_bool }
+ \bool_if:NTF \l__acro_first_upper_bool
{ \exp_not:N \__acro_first_upper_case:n { \exp_not:n {#2} } }
{ \exp_not:n {#2} }
}
}
}
-\cs_generate_variant:Nn \acro_write_short:nn { nV , nv }
+\cs_generate_variant:Nn \acro_write_short:nn {nV,nv}
% typeset the alternative form:
% #1: ID
@@ -2585,14 +2589,15 @@
{
\__acro_typeset:nn {alt}
{
- \bool_if:nTF
- { \l__acro_first_upper_bool && \l__acro_upper_short_bool }
+ \bool_lazy_and:nnTF
+ { \l__acro_first_upper_bool }
+ { \l__acro_upper_short_bool }
{ \exp_not:N \__acro_first_upper_case:n { \exp_not:n {#2} } }
{ \exp_not:n {#2} }
}
}
}
-\cs_generate_variant:Nn \acro_write_alt:nn { nV , nv }
+\cs_generate_variant:Nn \acro_write_alt:nn {nV,nv}
% typeset a long form:
% TODO: rethink the formatting mechanism
@@ -2612,16 +2617,13 @@
}
}
}
-\cs_generate_variant:Nn \acro_write_long:nn { VV,Vo,Vf,V,v,vv }
+\cs_generate_variant:Nn \acro_write_long:nn {VV,Vo,Vf,V,v,vv}
\prg_new_conditional:Npnn \acro_if_foreign:n #1 {T,F,TF}
{
- \bool_if:nTF
- {
- \l__acro_foreign_bool
- &&
- \prop_if_in_p:Nn \l__acro_foreign_prop {#1}
- }
+ \bool_lazy_and:nnTF
+ { \l__acro_foreign_bool }
+ { \prop_if_in_p:Nn \l__acro_foreign_prop {#1} }
{ \prg_return_true: }
{ \prg_return_false: }
}
@@ -2648,7 +2650,7 @@
{
\acro_if_foreign:nT {#1}
{
- \prop_get:NnNT \l__acro_foreign_prop {#1} \l__acro_foreign_tl
+ \acro_property_get:nnT {#1} {foreign}
{
\group_begin:
\tl_use:N \l__acro_foreign_format_tl
@@ -2666,10 +2668,9 @@
\cs_new_protected:Npn \acro_get_foreign:n #1
{
- \prop_if_in:NnT \l__acro_foreign_prop {#1}
+ \acro_property_get:nnT {#1} {foreign}
{
\tl_use:N \l__acro_foreign_sep_tl
- \prop_get:NnN \l__acro_foreign_prop {#1} \l__acro_foreign_tl
\group_begin:
\tl_use:N \l__acro_foreign_list_format_tl
{
@@ -2713,7 +2714,7 @@
\tl_if_in:nnT {#2} {long}
{ \l__acro_long_post_tl }
}
-\cs_generate_variant:Nn \acro_write_expanded:nnn { nnV }
+\cs_generate_variant:Nn \acro_write_expanded:nnn {nnV}
% #1: ID
% #2: long|first-long|list-long|extra
@@ -2732,9 +2733,9 @@
% #1: id
\cs_new_protected:Npn \acro_after:n #1
{
- \acro_cite_if:nn { \l__acro_citation_all_bool } {#1}
- \acro_index_if:nn { \l__acro_addto_index_bool } {#1}
- \acro_get_property:nnT {#1} {post}
+ \acro_cite_if:Nn \l__acro_citation_all_bool {#1}
+ \acro_index_if:Nn \l__acro_addto_index_bool {#1}
+ \acro_property_get:nnT {#1} {post}
{ \tl_use:N \l__acro_post_tl }
}
@@ -2833,8 +2834,8 @@
% ----------------------------------------------------------------------------
% citations:
-\cs_new:Npn \__acro_citation_cmd:w { \cite } %{}
-\cs_new:Npn \__acro_group_citation_cmd:w { \cite } %{}
+\cs_new:Npn \__acro_citation_cmd:w { \cite }
+\cs_new:Npn \__acro_group_citation_cmd:w { \cite }
% #1 pre
% #2 post
@@ -2845,14 +2846,16 @@
{ \__acro_citation_cmd:w {#3} }
{
\quark_if_no_value:nTF {#2}
- { \__acro_citation_cmd:w [ #1 ] {#3} }
- { \__acro_citation_cmd:w [ #1 ] [ #2 ] {#3} }
+ { \__acro_citation_cmd:w [#1] {#3} }
+ { \__acro_citation_cmd:w [#1] [#2] {#3} }
}
}
-\cs_generate_variant:Nn \__acro_cite:nnn { VVV }
+\cs_generate_variant:Nn \__acro_cite:nnn {VVV}
\cs_new_protected:Npn \acro_cite:n #1
{
+ \acro_property_get:nnT {#1} {before-citation}
+ { \acro_no_break: \l__acro_before_citation_tl }
\prop_get:NnNT \l__acro_citation_prop {#1} \l__acro_tmpa_tl
{
\prop_get:NnN \l__acro_citation_pre_prop {#1} \l__acro_tmpb_tl
@@ -2864,6 +2867,8 @@
\l__acro_tmpc_tl
\l__acro_tmpa_tl
}
+ \acro_property_get:nnT {#1} {after-citation}
+ { \acro_no_break: \l__acro_after_citation_tl }
}
\cs_new_protected:Npn \acro_group_cite:n #1
@@ -2873,18 +2878,18 @@
\tl_set_eq:NN
\l__acro_citation_connect_tl
\l__acro_between_group_connect_citation_tl
- \acro_cite_if:nn { \l__acro_citation_first_bool } {#1}
+ \acro_cite_if:Nn \l__acro_citation_first_bool {#1}
\group_end:
}
-\cs_new_protected:Npn \acro_cite_if:nn #1#2
- { \bool_if:nT {#1} { \acro_cite:n {#2} } }
+\cs_new_protected:Npn \acro_cite_if:Nn #1#2
+ { \bool_if:NT #1 { \acro_cite:n {#2} } }
% ----------------------------------------------------------------------------
% indexing:
-\cs_new_protected:Npn \acro_index_if:nn #1#2
+\cs_new_protected:Npn \acro_index_if:Nn #1#2
{
- \bool_if:nT { (#1) && \l__acro_mark_as_used_bool }
+ \bool_lazy_and:nnT {#1} { \l__acro_mark_as_used_bool }
{
\prop_get:NnN \l__acro_index_cmd_prop {#2} \l__acro_tmpa_tl
\prop_get:NnN \l__acro_index_sort_prop {#2} \l__acro_tmpb_tl
@@ -2920,7 +2925,7 @@
}
{ \__acro_index_cmd:n {#4} }
}
-\cs_generate_variant:Nn \__acro_index:nnnn { VnVV }
+\cs_generate_variant:Nn \__acro_index:nnnn {VnVV}
% ----------------------------------------------------------------------------
% accessability support
@@ -2951,7 +2956,7 @@
#3
\EndAccSupp { }
}
-\cs_generate_variant:Nn \acro_do_acc_supp:nnn { VV }
+\cs_generate_variant:Nn \acro_do_acc_supp:nnn {VV}
\AtEndPreamble
{
@@ -2976,20 +2981,20 @@
% #3: tool tip text
\cs_new_protected:Npn \acro_write_tooltip:nnn #1#2#3
{
- \prop_get:NnNTF \l__acro_tooltip_prop {#1} \l__acro_tmpa_tl
- { \__acro_check_tooltip:nV {#2} \l__acro_tmpa_tl }
+ \acro_property_get:nnTF {#1} {tooltip}
+ { \__acro_check_tooltip:nV {#2} \l__acro_tooltip_tl }
{ \__acro_check_tooltip:nn {#2} {#3} }
}
-\cs_generate_variant:Nn \acro_write_tooltip:nnn { nnV }
+\cs_generate_variant:Nn \acro_write_tooltip:nnn {nnV}
% #1: printed text
% #2: tool tip text
\cs_new_protected:Npn \__acro_check_tooltip:nn #1#2
{
- \bool_if:NTF \l__acro_inside_tooltip_bool
+ \bool_if:NTF \l__acro_tooltip_inside_bool
{#1}
{
- \bool_set_true:N \l__acro_inside_tooltip_bool
+ \bool_set_true:N \l__acro_tooltip_inside_bool
\__acro_tooltip_cmd:nn {#1} {#2}
}
}
@@ -3109,10 +3114,6 @@
% --------------------------------------------------------------------------
% trailing tokens and what to do when present
-\prop_new:N \l__acro_trailing_tokens_prop
-\prop_new:N \l__acro_trailing_actions_prop
-\bool_new:N \l__acro_trailing_tokens_bool
-\tl_new:N \l__acro_trailing_tokens_tl
\cs_new_protected:Npn \acro_new_trailing_token:n #1
{ \bool_new:c {l__acro_trailing_#1_bool} }
@@ -3131,9 +3132,6 @@
{ \acro_activate_trailing_action:n {#2} }
\acro_new_trailing_token:n {#2}
}
-
-\NewDocumentCommand \AcroRegisterTrailing {mm}
- { \acro_register_trailing_token:Nn #1 {#2} }
\cs_new_protected:Npn \acro_for_all_trailing_tokens_do:n #1
{ \prop_map_inline:Nn \l__acro_trailing_tokens_prop {#1} }
@@ -3203,9 +3201,6 @@
\cs_new_protected:Npn \acro_space:
{ \acro_if_trailing_tokens:nF {dash,babel-hyphen} { \c_space_tl } }
-
-\NewDocumentCommand \acdot {} { \acro_dot: }
-\NewDocumentCommand \acspace {} { \acro_space: }
% ---------------------------------------------------------------------------
% reset outputs, they'll behave like the first time again (!not like the _only_
@@ -3237,41 +3232,19 @@
\cs_new_protected:Npn \acro_mark_all_as_used:
{ \acro_for_all_acronyms_do:n { \acro_mark_as_used:n {##1} } }
-\DeclareExpandableDocumentCommand \acifused { m }
- { \acro_if_acronym_used:nTF {#1} }
-
\prg_new_conditional:Npnn \acro_if_acronym_used:n #1 { p,T,F,TF }
{
- \bool_if:nTF
- {
- \bool_if_p:c { g__acro_#1_used_bool } &&
- ( !\acro_if_is_single_p:n {#1} )
- }
+ \bool_lazy_and:nnTF
+ { \bool_if_p:c {g__acro_#1_used_bool} }
+ { !\acro_if_is_single_p:n {#1} }
{ \prg_return_true: }
{ \prg_return_false: }
}
-\NewDocumentCommand \acresetall {}
- { \acro_reset_all: }
-
-\NewDocumentCommand \acuseall {}
- { \acro_mark_all_as_used: }
-
-\NewDocumentCommand \acreset { > { \SplitList { , } } m }
- { \ProcessList {#1} { \acro_reset:n } \ignorespaces }
-
-\NewDocumentCommand \acuse { > { \SplitList { , } } m }
- { \ProcessList {#1} { \acro_mark_as_used:n } \ignorespaces }
-
% --------------------------------------------------------------------------
% acronym barriers: allow local lists of only those acronyms used between two
% barriers
-\int_new:N \g__acro_barrier_int
-\bool_new:N \g__acro_use_barriers_bool
-\bool_new:N \g__acro_reset_at_barrier_bool
-\bool_new:N \l__acro_use_barrier_bool
-
\keys_define:nn {acro}
{
use-barriers .bool_gset:N = \g__acro_use_barriers_bool ,
@@ -3287,9 +3260,6 @@
{ \acro_reset_all: }
}
-\NewDocumentCommand \acbarrier {}
- { \acro_barrier: }
-
\cs_new_protected:Npn \acro_check_barriers:n #1
{
\bool_if:NT \g__acro_use_barriers_bool
@@ -3358,9 +3328,6 @@
\bool_set_false:N \l__acro_indefinite_bool
\bool_set_false:N \l__acro_first_upper_bool
\bool_set_false:N \l__acro_upper_indefinite_bool
- % \bool_set_false:N \l__acro_citation_all_bool
- % \bool_set_false:N \l__acro_citation_first_bool
- % \bool_set_false:N \l__acro_addto_index_bool
\acro_for_endings_do:n { \bool_set_false:c {l__acro_##1_bool} }
}
@@ -3376,8 +3343,7 @@
% #2: ID
\cs_new_protected:Npn \acro_check_and_mark_if:nn #1#2
{
- \bool_if:nTF
- { (#1) || !\l__acro_use_acronyms_bool }
+ \bool_lazy_or:nnTF {#1} { !\l__acro_use_acronyms_bool }
{ \acro_check_acronym:nn {#2} {false} }
{ \acro_check_acronym:nn {#2} {true} }
}
@@ -3388,12 +3354,6 @@
\cs_new_protected:Npn \acro_switch_on:
{ \bool_set_true:N \l__acro_use_acronyms_bool }
-\NewDocumentCommand \acswitchoff {}
- { \acro_switch_off: }
-
-\NewDocumentCommand \acswitchon {}
- { \acro_switch_on: }
-
% commands for (re)defining \ac-like macros:
\cs_new_protected:Npn \acro_define_new_acro_command:NN #1#2
{
@@ -3401,19 +3361,29 @@
% #2: definition where `#1' refers to the ID
\cs_new_protected:Npn #1 ##1##2
{
- \cs_set:Npn \__acro_tmp_command:n ####1 {##2}
- \exp_args:NNnx #2 ##1 {sO{}m}
+ \cs_set:Npn \__acro_tmp:n ####1 {##2}
+ \cs_new_protected:cpx
+ {acro_ \__acro_remove_backslash:N ##1 :nnn} ####1####2####3
{
\acro_begin:
\acro_reset_specials:
- \keys_set:nn {acro} {########2}
- \acro_check_and_mark_if:nn {########1} {########3}
- \exp_not:o { \__acro_tmp_command:n {####3} }
+ \exp_not:N \tl_if_blank:nF {####2} { \keys_set:nn {acro} {####2} }
+ \acro_check_and_mark_if:nn {####1} {####3}
+ \__acro_tmp:n {####3}
\acro_end:
}
+ #2 ##1 {sO{}m}
+ {
+ \acro_case_insensitive_command:cnnn
+ {acro_ \__acro_remove_backslash:N ##1 :nnn}
+ {####1}
+ {####2}
+ {####3}
+ }
}
}
\cs_generate_variant:Nn \acro_define_new_acro_command:NN {cc}
+\cs_generate_variant:Nn \acro_check_and_mark_if:nn {nx}
% commands for (re)defining \acflike-like macros:
\cs_new_protected:Npn \acro_define_new_acro_pseudo_command:NN #1#2
@@ -3422,15 +3392,24 @@
% #2: definition where `#1' refers to the ID and `#2' to the pseudo long form
\cs_new_protected:Npn #1 ##1##2
{
- \cs_set:Npn \__acro_tmp_command:nn ####1####2 {##2}
- \exp_args:NNnx #2 ##1 {smm}
+ \cs_set:Npn \__acro_tmp:nn ####1####2 {##2}
+ \cs_new_protected:cpx
+ {acro_ \__acro_remove_backslash:N ##1 :nnn} ####1####2####3
{
\acro_begin:
\acro_reset_specials:
- \acro_check_and_mark_if:nn {########1} {########2}
- \exp_not:o { \__acro_tmp_command:nn {####2} {####3} }
+ \acro_check_and_mark_if:nn {####1} {####3}
+ \__acro_tmp:nn {####3} {####2}
\acro_end:
}
+ #2 ##1 {smm}
+ {
+ \acro_case_insensitive_command:cnnn
+ {acro_ \__acro_remove_backslash:N ##1 :nnn}
+ {####1}
+ {####3}
+ {####2}
+ }
}
}
\cs_generate_variant:Nn \acro_define_new_acro_pseudo_command:NN {cc}
@@ -3595,10 +3574,6 @@
}
% --------------------------------------------------------------------------
-% additional variables:
-\tl_new:N \l__acro_current_property_tl
-
-% --------------------------------------------------------------------------
% key and order checking
\msg_new:nnn {acro} {no-id}
{
@@ -3627,36 +3602,47 @@
% #2: property
\cs_new_protected:Npn \__acro_property_check:nn #1#2
{
- \tl_if_blank:VT \l__acro_current_property_tl
+ \str_if_empty:NT \l__acro_current_id_str
{ \acro_serious_message:n {no-id} }
\str_if_eq:nnF {#2} {short}
{
- \bool_if:cF { l__acro_#1_short_set_bool }
+ \acro_property_if_set:nnF {#1} {short}
{
- \keys_set:nn { acro / declare-acronym } { short = {#1} }
+ \keys_set:nn {acro/declare-acronym} { short = {#1} }
\acro_harmless_message:nn {substitute-short} {#1}
}
}
- % \bool_new:c { l__acro_#1_#2_set_bool }
- \bool_set_true:c { l__acro_#1_#2_set_bool }
+ \acro_property_mark_set:nn {#1} {#2}
}
\cs_new_protected:Npn \__acro_first_property_check:nn #1#2
{
- \cs_if_exist:cTF { l__acro_#1_short_set_bool }
+ \cs_if_exist:cTF {l__acro_#1_short_set_bool}
{
- \bool_if:cT { l__acro_#1_short_set_bool }
+ \acro_property_if_set:nnT {#1} {short}
{ \acro_serious_message:nnn {doubled-property} {#1} {#2} }
}
- {
- \bool_new:c { l__acro_#1_short_set_bool }
- \bool_set_true:c { l__acro_#1_short_set_bool }
- }
+ { \bool_new:c {l__acro_#1_short_set_bool} }
+ \acro_property_mark_set:nn {#1} {short}
}
+% #1: ID
+% #2: property
+\prg_new_conditional:Npnn \acro_property_if_set:nn #1#2 {T,F,TF}
+ {
+ \bool_if:cTF {l__acro_#1_#2_set_bool}
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+% #1: ID
+% #2: property
+\cs_new_protected:Npn \acro_property_mark_set:nn #1#2
+ { \bool_set_true:c { l__acro_#1_#2_set_bool } }
+\cs_generate_variant:Nn \acro_property_mark_set:nn {V}
+
% --------------------------------------------------------------------------
% the internal property selection functions for \DeclareAcronym:
-\prop_new:N \g__acro_properties_prop
\cs_new_protected:Npn \acro_for_properties_do:n
{ \prop_map_inline:Nn \g__acro_properties_prop }
@@ -3667,14 +3653,14 @@
\cs_new_protected:Npn \acro_declare_property_generic:nnn #1#2#3
{
\prop_clear_new:c {l__acro_#1_prop}
+ \tl_clear_new:c {l__acro_#1_tl}
\cs_new_protected:cpn {__acro_declare_#1:nn} ##1##2 {#3}
\cs_generate_variant:cn {__acro_declare_#1:nn} {V}
- % \bool_new:c {l__acro_ \l__acro_current_property_tl _#1_set_bool}
\keys_define:nn {acro/declare-acronym}
{
#2 .code:n =
- \use:c {__acro_declare_#1:Vn} \l__acro_current_property_tl {##1}
- \bool_set_true:c {l__acro_ \l__acro_current_property_tl _#2_set_bool}
+ \use:c {__acro_declare_#1:Vn} \l__acro_current_id_str {##1}
+ \acro_property_mark_set:Vn \l__acro_current_id_str {#2}
}
\prop_gput:Nnn \g__acro_properties_prop {#2} {#1}
}
@@ -3696,13 +3682,12 @@
% #2: property name
\cs_new_protected:Npn \acro_declare_property:nn #1#2
{ \acro_declare_property:nnn {#1} {#2} {} }
-\cs_generate_variant:Nn \acro_declare_property:nn { V }
+\cs_generate_variant:Nn \acro_declare_property:nn {V}
-\cs_new_protected:Npn \acro_declare_simple_property:n #1
+\cs_new_protected:Npn \acro_declare_property_simple:n #1
{
\tl_set:Nn \l__acro_tmpa_tl {#1}
\tl_replace_all:Nnn \l__acro_tmpa_tl {-} {_}
- \tl_clear_new:c {l__acro_ \l__acro_tmpa_tl _tl}
\acro_declare_property:Vn \l__acro_tmpa_tl {#1}
}
@@ -3754,42 +3739,42 @@
\acro_for_endings_do:n
{
\prop_put:cnn {l__acro_long_##1_form_prop} {#1} {false}
- \bool_if:cF {l__acro_#1_long-##1_set_bool}
+ \acro_property_if_set:nnF {#1} {long-##1}
{ \prop_put:cnv {l__acro_long_##1_prop} {#1} {l__acro_default_long_##1_tl} }
\prop_put:cnn {l__acro_foreign_##1_form_prop} {#1} {false}
- \bool_if:cF {l__acro_#1_foreign-##1_set_bool}
+ \acro_property_if_set:nnF {#1} {foreign-##1}
{ \prop_put:cnv {l__acro_foreign_##1_prop} {#1} {l__acro_default_foreign_##1_tl} }
}
}
-\acro_declare_simple_property:n {first-style}
+\acro_declare_property_simple:n {first-style}
% list:
-\acro_declare_simple_property:n {list}
+\acro_declare_property_simple:n {list}
% defines `short-plural', `long-plural' and `long-plural-form' as well as the
% options `plural-ending', `short-plural-ending' and `long-plural-ending':
% \ProvideAcroEnding {plural} {s} {s}
% short indefinite article:
-\acro_declare_simple_property:n {short-indefinite}
+\acro_declare_property_simple:n {short-indefinite}
% long indefinite article:
-\acro_declare_simple_property:n {long-indefinite}
+\acro_declare_property_simple:n {long-indefinite}
% pre long:
-\acro_declare_simple_property:n {long-pre}
+\acro_declare_property_simple:n {long-pre}
% post long:
-\acro_declare_simple_property:n {long-post}
+\acro_declare_property_simple:n {long-post}
% post:
-\acro_declare_simple_property:n {post}
+\acro_declare_property_simple:n {post}
% sort:
\acro_declare_property:nnn {sort} {sort}
{
- \bool_if:cF { l__acro_#1_index-sort_set_bool }
+ \acro_property_if_set:nnF {#1} {index-sort}
{ \prop_put:Nnn \l__acro_index_sort_prop {#1} {#2} }
}
@@ -3803,36 +3788,35 @@
\cs_set_protected:Npn \acro_alt_error:n #1
{
- \bool_if:cF {l__acro_#1_alt_set_bool}
+ \acro_property_if_set:nnF {#1} {alt}
{ \acro_harmless_message:nn {no-alternative} {#1} }
}
% alt. indefinite article:
-\acro_declare_simple_property:n {alt-indefinite}
+\acro_declare_property_simple:n {alt-indefinite}
% foreign:
-\acro_declare_simple_property:n {foreign}
+\acro_declare_property_simple:n {foreign}
% foreign-lang:
-\acro_declare_simple_property:n {foreign-lang}
+\acro_declare_property_simple:n {foreign-lang}
% format:
-\acro_declare_simple_property:n {format}
+\acro_declare_property_simple:n {format}
% short format:
\acro_declare_property_alias:nn {short-format} {format}
% alt format:
-\acro_declare_simple_property:n {alt-format}
+\acro_declare_property_simple:n {alt-format}
% long format:
-\acro_declare_simple_property:n {long-format}
+\acro_declare_property_simple:n {long-format}
% first long format:
-\acro_declare_simple_property:n {first-long-format}
+\acro_declare_property_simple:n {first-long-format}
% pdfstring -- currently needs to be done `by hand':
-\prop_new:N \l__acro_pdfstring_short_prop
\cs_new_protected:Npn \__acro_declare_pdfstring:nw #1#2/#3/#4 \acro_stop:
{
\__acro_property_check:nn {#1} {pdfstring}
@@ -3850,17 +3834,17 @@
}
}
}
-\cs_generate_variant:Nn \__acro_declare_pdfstring:nw { V }
-\keys_define:nn { acro / declare-acronym }
+\cs_generate_variant:Nn \__acro_declare_pdfstring:nw {V}
+
+\keys_define:nn {acro/declare-acronym}
{
pdfstring .code:n =
- \__acro_declare_pdfstring:Vw \l__acro_current_property_tl #1 // \acro_stop: ,
+ \__acro_declare_pdfstring:Vw \l__acro_current_id_str #1 // \acro_stop:
}
-\prop_new:N \l__acro_pdfstring_alt_prop
\cs_new_protected:Npn \__acro_declare_pdfstring_alt:nw #1#2/#3/#4 \acro_stop:
{
- \__acro_property_check:nn {#1} { pdfstring-alt }
+ \__acro_property_check:nn {#1} {pdfstring-alt}
\prop_put:Nnn \l__acro_pdfstring_alt_prop {#1} {#2}
\acro_for_endings_do:n
{
@@ -3872,70 +3856,87 @@
{ \prop_put:cnn {l__acro_pdfstring_alt_##1_prop} {#1} {#2#3} }
}
}
-\cs_generate_variant:Nn \__acro_declare_pdfstring_alt:nw { V }
-\keys_define:nn { acro / declare-acronym }
+\cs_generate_variant:Nn \__acro_declare_pdfstring_alt:nw {V}
+
+\keys_define:nn {acro/declare-acronym}
{
pdfstring-alt .code:n =
- \__acro_declare_pdfstring_alt:Vw \l__acro_current_property_tl #1 // \acro_stop: ,
+ \__acro_declare_pdfstring_alt:Vw \l__acro_current_id_str #1 // \acro_stop:
}
% class:
-\acro_declare_simple_property:n {class}
+\acro_declare_property_simple:n {class}
% extra information:
-\acro_declare_simple_property:n {extra}
+\acro_declare_property_simple:n {extra}
% single appearances:
-\acro_declare_simple_property:n {single}
+\acro_declare_property_simple:n {single}
% single format:
-\acro_declare_simple_property:n {single-format}
+\acro_declare_property_simple:n {single-format}
% acc supp:
\acro_declare_property:nn {acc_supp} {accsupp}
% tooltip:
-\acro_declare_simple_property:n {tooltip}
+\acro_declare_property_simple:n {tooltip}
-% citation -- currently needs to be done `by hand':
-\prop_new:N \l__acro_citation_prop
-\prop_new:N \l__acro_citation_pre_prop
-\prop_new:N \l__acro_citation_post_prop
+% before-citation:
+\acro_declare_property_simple:n {before-citation}
+
+% after-citation:
+\acro_declare_property_simple:n {after-citation}
+
+% citation -- this needs a bit more work:
\cs_new_protected:Npn \__acro_declare_citation:nw #1#2[#3]#4[#5]#6#7 \acro_stop:
{
- % no options: #1: ID, #2: property, #3 is blank
- % 1 option: #1: ID, #4: property, #3: option, #5 is blank
+ % no options: #1: ID, #2: property, #7 is blank
+ % 1 option: #1: ID, #4: property, #3: option, #5: \q_no_value
% 2 options: #1: ID: #6: property, #3: first option, #5: second option
- \tl_if_blank:nF { #2#4#6 }
+ \tl_if_blank:nTF {#7}
{
- \tl_if_empty:nTF {#3}
- { \__acro_declare_citation_aux:nnnn {#1} { } { } {#2} }
+ \__acro_declare_citation_aux:nnnn {#1}
+ { \q_no_value }
+ { \q_no_value }
+ {#2}
+ }
+ {
+ \quark_if_no_value:nTF {#5}
{
- \tl_if_empty:nTF {#5}
- { \__acro_declare_citation_aux:nnnn {#1} {#3} { } {#4} }
- { \__acro_declare_citation_aux:nnnn {#1} {#3} {#5} {#6} }
+ \__acro_declare_citation_aux:nnnx {#1}
+ { \q_no_value }
+ {#3}
+ { \tl_head:n {#4} }
}
+ { \__acro_declare_citation_aux:nnnn {#1} {#3} {#5} {#6} }
}
}
-\cs_generate_variant:Nn \__acro_declare_citation:nw { V }
+\cs_generate_variant:Nn \__acro_declare_citation:nw {V}
-\keys_define:nn { acro / declare-acronym }
+\keys_define:nn {acro/declare-acronym}
{
cite .code:n =
\__acro_declare_citation:Vw
- \l__acro_current_property_tl #1 [][] \scan_stop: \acro_stop:
+ \l__acro_current_id_str #1 [\q_no_value][\q_no_value] \scan_stop: \acro_stop:
}
-
+\prop_gput:Nnn \g__acro_properties_prop {cite} {cite}
+
+% #1: ID
+% #2: pre
+% #3: post
+% #4: citation key
\cs_new_protected:Npn \__acro_declare_citation_aux:nnnn #1#2#3#4
{
\__acro_property_check:nn {#1} {cite}
\prop_put:Nnn \l__acro_citation_prop {#1} {#4}
- \tl_if_empty:nF {#2}
+ \quark_if_no_value:nF {#2}
{ \prop_put:Nnn \l__acro_citation_pre_prop {#1} {#2} }
- \tl_if_empty:nF {#3}
+ \quark_if_no_value:nF {#3}
{ \prop_put:Nnn \l__acro_citation_post_prop {#1} {#3} }
}
-
+\cs_generate_variant:Nn \__acro_declare_citation_aux:nnnn {nnnx}
+
% TODO:
% add index entries, by default \index{<sort>@<short>}
% index: overwrite default <sort>@<short> entry completely
@@ -3949,13 +3950,13 @@
% TeX code after an acronym is typeset
% index:
-\acro_declare_simple_property:n {index}
+\acro_declare_property_simple:n {index}
% index-sort:
-\acro_declare_simple_property:n {index-sort}
+\acro_declare_property_simple:n {index-sort}
% index-cmd:
-\acro_declare_simple_property:n {index-cmd}
+\acro_declare_property_simple:n {index-cmd}
% --------------------------------------------------------------------------
% acronym macros:
@@ -3976,13 +3977,16 @@
% --------------------------------------------------------------------------
% internal acronym declaring function:
\cs_new_protected:Npn \acro_declare_acronym:nn #1#2
+ { \acro_case_insensitive:Nnn \__acro_declare_acronym:nn {#1} {#2} }
+
+\cs_new_protected:Npn \__acro_declare_acronym:nn #1#2
{
\seq_gput_right:Nn \g__acro_declared_acronyms_seq {#1}
\bool_gset_true:N \g__acro_first_acronym_declared_bool
- \tl_set:Nn \l__acro_current_property_tl {#1}
+ \str_set:Nn \l__acro_current_id_str {#1}
\acro_for_properties_do:n
- { \bool_new:c {l__acro_#1_##1_set_bool} }
- \keys_set:nn { acro / declare-acronym } {#2}
+ { \bool_new:c {l__acro_ \l__acro_current_id_str _##1_set_bool} }
+ \keys_set:nn {acro/declare-acronym} {#2}
\bool_new:c {g__acro_#1_first_use_bool}
\bool_new:c {g__acro_#1_used_bool}
\bool_new:c {g__acro_#1_label_bool}
@@ -3993,27 +3997,20 @@
{ \bool_gset_true:c {g__acro_#1_in_list_bool} }
\__acro_create_page_records:n {#1}
\__acro_define_acronym_macro:n {#1}
- \tl_clear:N \l__acro_current_property_tl
- \bool_if:cF {l__acro_#1_short_set_bool}
+ \str_clear:N \l__acro_current_id_str
+ \acro_property_if_set:nnF {#1} {short}
{ \acro_serious_message:nnn {missing} {#1} {short} }
- \bool_if:cF {l__acro_#1_long_set_bool}
+ \acro_property_if_set:nnF {#1} {long}
{ \acro_serious_message:nnn {missing} {#1} {long} }
\__acro_log_acronym:n {#1}
}
-% --------------------------------------------------------------------------
-% the user command:
-\NewDocumentCommand \DeclareAcronym {mm}
- { \acro_declare_acronym:nn {#1} {#2} }
-
+
% --------------------------------------------------------------------------
% print the list:
% #1: list of classes
% #2: list of excluded classes
-\tl_new:N \l__acro_included_classes_tl
-\tl_new:N \l__acro_excluded_classes_tl
-
-\keys_define:nn { acro / print-acronyms }
+\keys_define:nn {acro/print-acronyms}
{
include-classes .tl_set:N = \l__acro_included_classes_tl ,
exclude-classes .tl_set:N = \l__acro_excluded_classes_tl ,
@@ -4032,7 +4029,8 @@
\cs_set:Npn \@noitemerr {}
\tl_clear:N \l__acro_included_classes_tl
\tl_clear:N \l__acro_excluded_classes_tl
- \keys_set:nn { acro / print-acronyms } {#1}
+ \tl_if_blank:nF {#1}
+ { \keys_set:nn {acro/print-acronyms} {#1} }
\__acro_aux_file_now:n { \acro@print@list }
\bool_if:NT \l__acro_sort_bool
{ \acro_sort_prop:NN \l__acro_short_prop \l__acro_sort_prop }
@@ -4050,9 +4048,6 @@
\group_end:
}
-\NewDocumentCommand \printacronyms { O{} }
- { \acro_print_acronyms:n {#1} }
-
% --------------------------------------------------------------------------
% language support
\RequirePackage {translations}
@@ -4088,10 +4083,6 @@
}
}
-\NewDocumentCommand \DeclareAcroTranslation {mm}
- { \acro_declare_translation:nn {#1} {#2} }
-\@onlypreamble \DeclareAcroTranslation
-
% tokenlists using the translations:
\tl_set:Nn \l__acro_list_name_tl { \GetTranslation {acronym-list-name} }
\tl_set:Nn \l__acro_page_name_tl { \GetTranslation {acronym-page-name}\@\, }
@@ -4101,478 +4092,27 @@
% --------------------------------------------------------------------------
% definition file:
-% \tl_const:Nn \c_acro_definition_file_name_tl {acro}
-% \tl_const:Nn \c_acro_definition_file_extension_tl {def}
-
-% \file_if_exist:nTF
-% { \c_acro_definition_file_name_tl .\c_acro_definition_file_extension_tl }
-% {
-% \@onefilewithoptions
-% {\c_acro_definition_file_name_tl} [] []
-% \c_acro_definition_file_extension_tl
-% }
-% { \acro_serious_message:n {definitions-missing} }
-
-
-% --------------------------------------------------------------------------
-% first appearance styles:
-\DeclareAcroFirstStyle {default} {inline}
- { }
-
-\DeclareAcroFirstStyle {reversed} {inline}
- { reversed = true }
-
-\DeclareAcroFirstStyle {short} {inline}
- {
- only-short = true ,
- brackets = false
- }
-
-\DeclareAcroFirstStyle {long} {inline}
- {
- only-long = true ,
- brackets = false
- }
-
-\DeclareAcroFirstStyle {square} {inline}
- { brackets-type = [] }
-
-\DeclareAcroFirstStyle {plain} {inline}
- {
- brackets = false ,
- between = --
- }
-
-\DeclareAcroFirstStyle {plain-reversed} {inline}
- {
- brackets = false ,
- between = -- ,
- reversed = true
- }
-
-\DeclareAcroFirstStyle {footnote} {note}
- { }
-
-\DeclareAcroFirstStyle {footnote-reversed} {note}
- { reversed = true }
-
-\DeclareAcroFirstStyle {sidenote} {note}
- { note-command = \sidenote {#1} }
-
-\DeclareAcroFirstStyle {sidenote-reversed} {note}
- {
- note-command = \sidenote {#1} ,
- reversed = true
- }
-
-\DeclareAcroFirstStyle {empty} {note}
- { use-note = false }
+\tl_const:Nn \c_acro_definition_file_name_tl {acro.definitions}
+\tl_const:Nn \c_acro_definition_file_extension_tl {tex}
-% --------------------------------------------------------------------------
-% extra info appearance styles:
-\DeclareAcroExtraStyle {default} {inline}
+\file_if_exist:nTF
+ { \c_acro_definition_file_name_tl .\c_acro_definition_file_extension_tl }
{
- brackets = false ,
- punct = true ,
- punct-symbol = .
- }
-
-\DeclareAcroExtraStyle {plain} {inline}
- {
- brackets = false ,
- punct = true ,
- punct-symbol =
- }
-
-\DeclareAcroExtraStyle {paren} {inline}
- {
- brackets = true ,
- punct = true ,
- punct-symbol =
- }
-
-\DeclareAcroExtraStyle {bracket} {inline}
- {
- brackets = true ,
- punct = true ,
- punct-symbol = ,
- brackets-type = []
- }
-
-\DeclareAcroExtraStyle {comma} {inline}
- {
- punct = true,
- punct-symbol = {,} ,
- brackets = false
- }
-
-% --------------------------------------------------------------------------
-% page number appearance styles:
-\DeclareAcroPageStyle {default} {inline}
- {
- punct = true ,
- punct-symbol = .
- }
-
-\DeclareAcroPageStyle {plain} {inline}
- { punct = false }
-
-\DeclareAcroPageStyle {comma} {inline}
- { punct = true }
-
-\DeclareAcroPageStyle {paren} {inline}
- {
- brackets=true ,
- punct-symbol = ~
- }
-
-\DeclareAcroPageStyle {none} {inline}
- { display = false }
-
-% --------------------------------------------------------------------------
-% list heading styles:
-\DeclareAcroListHeading {part} {\part}
-\DeclareAcroListHeading {part*} {\part*}
-\DeclareAcroListHeading {chapter} {\chapter}
-\DeclareAcroListHeading {chapter*} {\chapter*}
-\DeclareAcroListHeading {addchap} {\addchap}
-\DeclareAcroListHeading {section} {\section}
-\DeclareAcroListHeading {section*} {\section*}
-\DeclareAcroListHeading {addsec} {\addsec}
-\DeclareAcroListHeading {subsection} {\subsection}
-\DeclareAcroListHeading {subsection*} {\subsection*}
-\DeclareAcroListHeading {subsubsection} {\subsubsection}
-\DeclareAcroListHeading {subsubsection*} {\subsubsection*}
-\DeclareAcroListHeading {none} {\use_none:n}
-
-% --------------------------------------------------------------------------
-% list styles:
-\DeclareAcroListStyle {description} {list}
- { }
-
-\DeclareAcroListStyle {toc} {list-of}
- { }
-
-\DeclareAcroListStyle {lof} {list-of}
- { style = lof }
-
-\DeclareAcroListStyle {tabular} {table}
- { table = tabular }
-
-\DeclareAcroListStyle {longtable} {table}
- { table = longtable }
-
-\DeclareAcroListStyle {extra-tabular} {extra-table}
- { table = tabular }
-
-\DeclareAcroListStyle {extra-longtable} {extra-table}
- { table = longtable }
-
-\DeclareAcroListStyle {extra-tabular-rev} {extra-table}
- {
- table = tabular ,
- reverse = true
- }
-
-\DeclareAcroListStyle {extra-longtable-rev} {extra-table}
- {
- table = longtable ,
- reverse = true
- }
-
-% --------------------------------------------------------------------------
-% register some tokens to be checked for:
-\AcroRegisterTrailing . {dot}
-\AcroRegisterTrailing - {dash}
-\AcroRegisterTrailing \babelhyphen {babel-hyphen}
-
-\keys_set:nn {acro} { activate-trailing-tokens = dot }
-
-% --------------------------------------------------------------------------
-% the user commands
-% automatic:
-\NewAcroCommand \ac
- { \acro_use:n {#1} }
-
-\NewAcroCommand \Ac
- {
- \acro_first_upper:
- \acro_use:n {#1}
- }
-
-\NewAcroCommand \iac
- {
- \acro_indefinite:
- \acro_use:n {#1}
- }
-
-\NewAcroCommand \Iac
- {
- \acro_first_upper:
- \acro_indefinite:
- \acro_use:n {#1}
- }
-
-\NewAcroCommand \acp
- {
- \acro_plural:
- \acro_use:n {#1}
- }
-
-\NewAcroCommand \Acp
- {
- \acro_plural:
- \acro_first_upper:
- \acro_use:n {#1}
- }
-
-\NewAcroCommand \acsingle
- {
- \acro_get:n {#1}
- \acro_single:n {#1}
- }
-
-\NewAcroCommand \Acsingle
- {
- \acro_get:n {#1}
- \acro_first_upper:
- \acro_single:n {#1}
- }
-
-% short:
-\NewAcroCommand \acs
- { \acro_short:n {#1} }
-
-\NewAcroCommand \Acs
- {
- \acro_first_upper:
- \acro_short:n {#1}
- }
-
-\NewAcroCommand \iacs
- {
- \acro_indefinite:
- \acro_short:n {#1}
- }
-
-\NewAcroCommand \Iacs
- {
- \acro_first_upper:
- \acro_indefinite:
- \acro_short:n {#1}
- }
-
-\NewAcroCommand \acsp
- {
- \acro_plural:
- \acro_short:n {#1}
- }
-
-\NewAcroCommand \Acsp
- {
- \acro_first_upper:
- \acro_plural:
- \acro_short:n {#1}
- }
-
-% alt:
-\NewAcroCommand \aca
- { \acro_alt:n {#1} }
-
-\NewAcroCommand \Aca
- {
- \acro_first_upper:
- \acro_alt:n {#1}
- }
-
-\NewAcroCommand \iaca
- {
- \acro_indefinite:
- \acro_alt:n {#1}
- }
-
-\NewAcroCommand \Iaca
- {
- \acro_first_upper:
- \acro_indefinite:
- \acro_alt:n {#1}
- }
-
-\NewAcroCommand \acap
- {
- \acro_plural:
- \acro_alt:n {#1}
- }
-
-\NewAcroCommand \Acap
- {
- \acro_first_upper:
- \acro_plural:
- \acro_alt:n {#1}
- }
-
-% long:
-\NewAcroCommand \acl
- { \acro_long:n {#1} }
-
-\NewAcroCommand \Acl
- {
- \acro_first_upper:
- \acro_long:n {#1}
- }
-
-\NewAcroCommand \iacl
- {
- \acro_indefinite:
- \acro_long:n {#1}
- }
-
-\NewAcroCommand \Iacl
- {
- \acro_first_upper:
- \acro_indefinite:
- \acro_long:n {#1}
- }
-
-\NewAcroCommand \aclp
- {
- \acro_plural:
- \acro_long:n {#1}
- }
-
-\NewAcroCommand \Aclp
- {
- \acro_plural:
- \acro_first_upper:
- \acro_long:n {#1}
- }
-
-% first:
-\NewAcroCommand \acf
- { \acro_first:n {#1} }
-
-\NewAcroCommand \Acf
- {
- \acro_first_upper:
- \acro_first:n {#1}
- }
-
-\NewAcroCommand \iacf
- {
- \acro_indefinite:
- \acro_first:n {#1}
- }
-
-\NewAcroCommand \Iacf
- {
- \acro_first_upper:
- \acro_indefinite:
- \acro_first:n {#1}
- }
-
-\NewAcroCommand \acfp
- {
- \acro_plural:
- \acro_first:n {#1}
- }
-
-\NewAcroCommand \Acfp
- {
- \acro_plural:
- \acro_first_upper:
- \acro_first:n {#1}
- }
-
-% first-like:
-\NewPseudoAcroCommand \acflike
- { \acro_first_like:nn {#1} {#2} }
-
-\NewPseudoAcroCommand \iacflike
- {
- \acro_indefinite:
- \acro_first_like:nn {#1} {#2}
- }
-
-\NewPseudoAcroCommand \Iacflike
- {
- \acro_first_upper:
- \acro_indefinite:
- \acro_first_like:nn {#1} {#2}
- }
-
-\NewPseudoAcroCommand \acfplike
- {
- \acro_plural:
- \acro_first_like:nn {#1} {#2}
- }
-
-% --------------------------------------------------------------------------
-% endings:
-\ProvideAcroEnding {plural} {s} {s}
-
-% --------------------------------------------------------------------------
-% translations:
-% list name
-\DeclareAcroTranslation {acronym-list-name}
- {
- Fallback = Acronyms ,
- English = Acronyms ,
- French = Acronymes ,
- German = Abk\"urzungen ,
- Italian = Acronimi ,
- Portuguese = Acr\'onimos ,
- Spanish = Siglas ,
- Catalan = Sigles ,
- Turkish = K\i saltmalar
- }
-
-% page name
-\DeclareAcroTranslation {acronym-page-name}
- {
- Fallback = p. ,
- English = p. ,
- German = S. ,
- Portuguese = p.
- }
-
-% pages name
-\DeclareAcroTranslation {acronym-pages-name}
- {
- Fallback = pp. ,
- English = pp. ,
- German = S. ,
- Portuguese = pp.
- }
-
-% following page
-\DeclareAcroTranslation {acronym-next-page}
- {
- Fallback = f. ,
- English = f. ,
- German = f. ,
- Portuguese = s.
- }
-
-% following pages
-\DeclareAcroTranslation {acronym-next-pages}
- {
- Fallback = ff. ,
- English = ff. ,
- German = ff. ,
- Portuguese = ss.
+ \@onefilewithoptions
+ {\c_acro_definition_file_name_tl} [] []
+ \c_acro_definition_file_extension_tl
}
+ { \acro_serious_message:n {definitions-missing} }
% --------------------------------------------------------------------------
% allow for a configuration file:
-\tl_const:Nn \c_acro_config_file_name_tl {acro}
-\tl_const:Nn \c_acro_config_file_extension_tl {cfg}
\file_if_exist:nT
- { \c_acro_config_file_name_tl .\c_acro_config_file_extension_tl }
+ { \l_acro_config_file_name_tl . \l_acro_config_file_extension_tl }
{
\@onefilewithoptions
- {\c_acro_config_file_name_tl} [] []
- \c_acro_config_file_extension_tl
+ {\l_acro_config_file_name_tl} [] []
+ \l_acro_config_file_extension_tl
}
\file_input_stop: