diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/siunitx/siunitx.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/siunitx/siunitx.dtx | 233 |
1 files changed, 175 insertions, 58 deletions
diff --git a/Master/texmf-dist/source/latex/siunitx/siunitx.dtx b/Master/texmf-dist/source/latex/siunitx/siunitx.dtx index 8d4beff96f9..24b29f6a258 100644 --- a/Master/texmf-dist/source/latex/siunitx/siunitx.dtx +++ b/Master/texmf-dist/source/latex/siunitx/siunitx.dtx @@ -543,6 +543,10 @@ This work consists of the file siunitx.dtx %\changes{v2.3h}{2011/10/14}{Improvements to output when using \pkg{tex4ht}} %\changes{v2.4}{2011/11/03}{Reduce number of math mode options, improving % consistency of output} +%\changes{v2.4a}{2011/11/28}{Extend search-and-replace code for UTF-8 +% characters} +%\changes{v2.4a}{2011/12/04}{Use a more cautious approach to changing +% settings at the start of the document} % %\begin{abstract} % Physical quantities have both numbers and units, and each physical @@ -3815,6 +3819,11 @@ This work consists of the file siunitx.dtx % Notice that these names capitalise the unit name (to make reading % the macro name easier!).\footnote{The function % \cs{SIUnitSymbolAngstrom} uses the name without accents.} +% +% \changes{v2.4a}{2011/12/04}{Use UTF-8 symbols with \XeTeX{} and \LuaTeX{} +% if \pkg{fontspec} is loaded} +% When using \XeTeX{} or \LuaTeX{}, if \pkg{fontspec} is loaded these options +% are redefined to use UTF-8 characters directly. % %\subsection{Other options} % @@ -4987,7 +4996,7 @@ This work consists of the file siunitx.dtx % % The usual preliminaries. % \begin{macrocode} -\ProvidesExplPackage {siunitx} {2011/11/14} {2.4} +\ProvidesExplPackage {siunitx} {2011/12/04} {2.4a} {A comprehensive (SI) units package} % \end{macrocode} % @@ -5406,6 +5415,19 @@ This work consists of the file siunitx.dtx %\end{macro} %\end{macro} % +% \begin{macro}{\siunitx_option_unchanged:Nnn} +% Needed to allow for altering of options at the start of the document +% only if they are unchanged. This needs to use the low-level implementation +% detail, hence the use of variable name directly. +% \begin{macrocode} +\cs_new_protected:Npn \siunitx_option_unchanged:Nnn #1#2#3 + { + \str_if_eq:VnT #1 {#2} + { \tl_set:Nn #1 {#3} } + } +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\tl_if_in:NVTF, \tl_replace_all:NnV} % Variants needed which are not in \pkg{expl3}. % \begin{macrocode} @@ -5464,7 +5486,9 @@ This work consists of the file siunitx.dtx \@ifpackageloaded { tex4ht } { \cs_set_eq:NN \siunitx_print_text_super:n \textsuperscript - \keys_set:nn { siunitx } { qualifier-mode = brackets, mode = text } + \siunitx_option_unchanged:Nnn \l_siunitx_qualifier_mode_tl + { subscript } { brackets } + \keys_set:nn { siunitx } { mode = text } } { } } @@ -6051,17 +6075,32 @@ This work consists of the file siunitx.dtx { \@ifpackageloaded { cmbright } { } - { \keys_set:nn { siunitx } { math-rm = \mathsf } } + { + \cs_set:Npn \siunitx_tmp:w ##1 { \mathrm {#1} } + \cs_if_eq:NNT \siunitx_number_mathrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { number-math-rm = \mathsf } } + \cs_if_eq:NNT \siunitx_unit_mathrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { unit-math-rm = \mathsf } } + } } - \keys_set:nn { siunitx } { text-rm = \sffamily } + \cs_set:Npn \siunitx_tmp:w { \rmfamily } + \cs_if_eq:NNT \siunitx_number_textrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { number-text-rm = \sffamily } } + \cs_if_eq:NNT \siunitx_unit_textrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { unit-text-rm = \sffamily } } } \tl_if_eq:NNT \l_siunitx_tmpa_tl \c_siunitx_texttt_tl { - \keys_set:nn { siunitx } - { - math-rm = \mathtt, - text-rm = \ttfamily - } + \cs_set:Npn \siunitx_tmp:w ##1 { \mathrm {#1} } + \cs_if_eq:NNT \siunitx_number_mathrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { number-math-rm = \mathtt } } + \cs_if_eq:NNT \siunitx_unit_mathrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { unit-math-rm = \mathtt } } + \cs_set:Npn \siunitx_tmp:w { \rmfamily } + \cs_if_eq:NNT \siunitx_number_textrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { number-text-rm = \ttfamily } } + \cs_if_eq:NNT \siunitx_unit_textrm:n \siunitx_tmp:w + { \keys_set:nn { siunitx } { unit-text-rm = \ttfamily } } } } % \end{macrocode} @@ -11915,14 +11954,19 @@ This work consists of the file siunitx.dtx % can appear in units in UTF-8 and related encodings. The idea is to % do a search and replace, thus avoiding any active characters. % \begin{macrocode} -\cs_new_protected:Npn \siunitx_unit_format_literal_extras: { - \siunitx_unit_format_literal_extras_aux:nN { 176 } - \SIUnitSymbolDegree - \siunitx_unit_format_literal_extras_aux:nN { 181 } - \SIUnitSymbolMicro - \siunitx_unit_format_literal_extras_aux:nN { 197 } - \SIUnitSymbolAngstrom -} +\cs_new_protected:Npn \siunitx_unit_format_literal_extras: + { + \siunitx_unit_format_literal_extras_aux:nN { 176 } + \SIUnitSymbolDegree + \siunitx_unit_format_literal_extras_aux:nN { 181 } + \SIUnitSymbolMicro + \siunitx_unit_format_literal_extras_aux:nN { 197 } + \SIUnitSymbolAngstrom + \siunitx_unit_format_literal_extras_aux:nN { 8451 } + \SIUnitSymbolCelsius + \siunitx_unit_format_literal_extras_aux:nN { 8486 } + \SIUnitSymbolOhm + } \cs_new_protected:Npn \siunitx_unit_format_literal_extras_aux:nN #1#2 { \char_set_lccode:nn { `\@ } {#1} @@ -14768,50 +14812,61 @@ This work consists of the file siunitx.dtx %\begin{macro}{\l_siunitx_redefine_symbols_bool} % Only one setting applies here! % \begin{macrocode} -\keys_define:nn { siunitx } { - redefine-symbols .bool_set:N = \l_siunitx_redefine_symbols_bool, -} -\keys_set:nn { siunitx } { - redefine-symbols = true -} +\keys_define:nn { siunitx } + { redefine-symbols .bool_set:N = \l_siunitx_redefine_symbols_bool } +\keys_set:nn { siunitx } { redefine-symbols = true } % \end{macrocode} %\end{macro} % % The redefinition of symbols has to do a number of checks to ensure % that there are no clashes. % \begin{macrocode} -\AtBeginDocument { - \bool_if:NT \l_siunitx_redefine_symbols_bool - { - \@ifpackageloaded { textcomp } - { - \keys_set:nn { siunitx } - { - math-degree = \text { \textdegree }, - text-degree = \textdegree, - } - \@ifpackageloaded { mathptmx } { } - { - \keys_set:nn { siunitx } { text-micro = \textmu } - \@ifpackageloaded { fourier } { } - { \keys_set:nn { siunitx } { text-ohm = \textohm } } - } - \str_if_eq:VnT \encodingdefault { OT1 } - { - \keys_set:nn { siunitx } - { - math-angstrom = \text { \capitalring { A } }, - text-angstrom = \capitalring { A } - } - } - } { } - \@ifpackageloaded { upgreek } - { - \keys_set:nn { siunitx } - { math-ohm = \Upomega } - } { } - } -} +\AtBeginDocument + { + \bool_if:NT \l_siunitx_redefine_symbols_bool + { + \@ifpackageloaded { textcomp } + { + \siunitx_option_unchanged:Nnn \l_siunitx_degree_math_tl + { { } ^ { \circ } } + { \text { \textdegree } } + \siunitx_option_unchanged:Nnn \l_siunitx_degree_text_tl + { \ensuremath { { } ^ { \circ } } } + { \textdegree } + \@ifpackageloaded { mathptmx } + { } + { + \siunitx_option_unchanged:Nnn \l_siunitx_micro_text_tl + { \c_siunitx_mu_tl } + { \textmu } + \@ifpackageloaded { fourier } + { } + { + \siunitx_option_unchanged:Nnn \l_siunitx_ohm_text_tl + { \ensuremath { \c_siunitx_omega_tl } } + { \textohm } + } + } + \str_if_eq:VnT \encodingdefault { OT1 } + { + \siunitx_option_unchanged:Nnn \l_siunitx_angstrom_math_tl + { \text { \AA } } + { \text { \capitalring { A } } } + \siunitx_option_unchanged:Nnn \l_siunitx_angstrom_text_tl + { \AA } + { \capitalring { A } } + } + } + { } + \@ifpackageloaded { upgreek } + { + \siunitx_option_unchanged:Nnn \l_siunitx_ohm_math_tl + { \text { \ensuremath { \c_siunitx_omega_tl } } } + { \Upomega } + } + { } + } + } % \end{macrocode} % %\begin{macro}{\l_siunitx_angstrom_math_tl} @@ -14930,6 +14985,68 @@ This work consists of the file siunitx.dtx %\end{macro} %\end{macro} % +% \begin{variable} +% { +% \c_siunitx_degree_int, +% \c_siunitx_micro_int, +% \c_siunitx_angstrom_int, +% \c_siunitx_celsius_int, +% \c_siunitx_ohm_int +% } +% For UTF-8 engines, it may be possible to use better symbols than those set +% up as standard. +% \begin{macrocode} +\pdftex_if_engine:F + { + \AtBeginDocument + { + \@ifpackageloaded { fontspec } + { + \int_const:Nn \c_siunitx_degree_int { 176 } + \int_const:Nn \c_siunitx_micro_int { 181 } + \int_const:Nn \c_siunitx_angstrom_int { 197 } + \int_const:Nn \c_siunitx_celsius_int { 8451 } + \int_const:Nn \c_siunitx_ohm_int { 8486 } + \siunitx_option_unchanged:Nnn \l_siunitx_angstrom_math_tl + { \text { \AA } } + { \tex_char:D \c_siunitx_angstrom_int } + \siunitx_option_unchanged:Nnn \l_siunitx_celsius_math_tl + { { } ^ { \circ } \kern - \scriptspace \text { C } } + { \tex_char:D \c_siunitx_celsius_int } + \siunitx_option_unchanged:Nnn \l_siunitx_degree_math_tl + { { } ^ { \circ } } + { \tex_char:D \c_siunitx_degree_int } + \siunitx_option_unchanged:Nnn \l_siunitx_micro_math_tl + { \text { \c_siunitx_mu_tl } } + { \tex_char:D \c_siunitx_micro_int } + \siunitx_option_unchanged:Nnn \l_siunitx_ohm_math_tl + { \text { \ensuremath { \c_siunitx_omega_tl } } } + { \tex_char:D \c_siunitx_ohm_int } + \siunitx_option_unchanged:Nnn \l_siunitx_angstrom_text_tl + { \AA } + { \tex_char:D \c_siunitx_angstrom_int } + \siunitx_option_unchanged:Nnn \l_siunitx_celsius_text_tl + { + \ensuremath + { { } ^ { \circ } \kern - \scriptspace \text { C } } + } + { \tex_char:D \c_siunitx_celsius_int } + \siunitx_option_unchanged:Nnn \l_siunitx_degree_text_tl + { \ensuremath { { } ^ { \circ } } } + { \tex_char:D \c_siunitx_degree_int } + \siunitx_option_unchanged:Nnn \l_siunitx_micro_text_tl + { \c_siunitx_mu_tl } + { \tex_char:D \c_siunitx_micro_int } + \siunitx_option_unchanged:Nnn \l_siunitx_ohm_text_tl + { \ensuremath { \c_siunitx_omega_tl } } + { \tex_char:D \c_siunitx_ohm_int } + } + { } + } + } +% \end{macrocode} +% \end{variable} +% %\subsection{Working with other packages} % %\begin{macro}{\l_siunitx_pgf_link_clist} @@ -16063,7 +16180,7 @@ This work consists of the file siunitx.dtx % \end{macrocode} % % \begin{macrocode} -\ProvidesExplFile {siunitx-version-1.cfg} {2011/11/14} {2.4} +\ProvidesExplFile {siunitx-version-1.cfg} {2011/12/04} {2.4a} {siunitx: Version 1 settings} % \end{macrocode} % @@ -17008,7 +17125,7 @@ This work consists of the file siunitx.dtx % \end{macrocode} % % \begin{macrocode} -\ProvidesExplFile {siunitx-abbreviations.cfg} {2011/11/14} {2.4} +\ProvidesExplFile {siunitx-abbreviations.cfg} {2011/12/04} {2.4a} {siunitx: Abbreviated units} % \end{macrocode} % @@ -17190,7 +17307,7 @@ This work consists of the file siunitx.dtx % \end{macrocode} % % \begin{macrocode} -\ProvidesExplFile {siunitx-binary.cfg} {2011/11/14} {2.4} +\ProvidesExplFile {siunitx-binary.cfg} {2011/12/04} {2.4a} {siunitx: Binary units} % \end{macrocode} % |