summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/siunitx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-04-05 03:02:06 +0000
committerNorbert Preining <norbert@preining.info>2023-04-05 03:02:06 +0000
commit085271aaf9917d7116be9774c6cd0a117aa4111e (patch)
treef222fa9f21aed2a069c8d380429558a802964b66 /macros/latex/contrib/siunitx
parente9f267fd4c8414d6146c5fee0dbe459613dd0f3b (diff)
CTAN sync 202304050302
Diffstat (limited to 'macros/latex/contrib/siunitx')
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md9
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin642235 -> 642304 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-locale.dtx18
-rw-r--r--macros/latex/contrib/siunitx/siunitx-number.dtx93
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin691121 -> 691514 bytes
6 files changed, 87 insertions, 35 deletions
diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md
index 9d37819ad8..49a16c2766 100644
--- a/macros/latex/contrib/siunitx/CHANGELOG.md
+++ b/macros/latex/contrib/siunitx/CHANGELOG.md
@@ -7,6 +7,12 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
## [Unreleased]
+## [v3.2.4] - 2023-04-04
+
+
+### Fixed
+- Parsing of 'full' uncertainty parts with leading zeros (see issues
+ [\#652](https://github.com/josephwright/siunitx/issues/652))
## [v3.2.3] - 2023-03-14
### Fixed
@@ -1882,7 +1888,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to
### Added
- First public testing release (as `si`)
-[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.2.3...HEAD
+[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.2.4...HEAD
+[v3.2.4]: https://github.com/josephwright/siunitx/compare/v3.2.3...v3.2.4
[v3.2.3]: https://github.com/josephwright/siunitx/compare/v3.2.2...v3.2.3
[v3.2.2]: https://github.com/josephwright/siunitx/compare/v3.2.1...v3.2.2
[v3.2.1]: https://github.com/josephwright/siunitx/compare/v3.2.0...v3.2.1
diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf
index 447e005499..3fa73c2087 100644
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/siunitx/siunitx-locale.dtx b/macros/latex/contrib/siunitx/siunitx-locale.dtx
index 6a0aa3ffea..43f432733a 100644
--- a/macros/latex/contrib/siunitx/siunitx-locale.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-locale.dtx
@@ -102,18 +102,18 @@
inter-unit-product = \, ,
output-decimal-marker = { , }
} ,
- locale / PL .meta:n =
- {
- exponent-product = \cdot ,
- inter-unit-product = \cdot ,
- output-decimal-marker = { , }
- } ,
locale / FR .meta:n =
{
exponent-product = \times ,
inter-unit-product = \, ,
output-decimal-marker = { , }
} ,
+ locale / PL .meta:n =
+ {
+ exponent-product = \cdot ,
+ inter-unit-product = \cdot ,
+ output-decimal-marker = { , }
+ } ,
locale / SI .meta:n =
{
exponent-product = \times ,
@@ -150,17 +150,17 @@
{
\RequirePackage { translations }
\DeclareTranslation { Catalan } { and } { i }
- \DeclareTranslation { Slovene } { and } { in }
\DeclareTranslation { Portuguese } { and } { e }
+ \DeclareTranslation { Slovene } { and } { in }
+ \DeclareTranslation { Brazilian } { to~(numerical~range) } { a }
\DeclareTranslation { Catalan } { to~(numerical~range) } { a }
\DeclareTranslation { English } { to~(numerical~range) } { to }
\DeclareTranslation { French } { to~(numerical~range) } { à }
\DeclareTranslation { German } { to~(numerical~range) } { bis }
\DeclareTranslation { Polish } { to~(numerical~range) } { do }
+ \DeclareTranslation { Portuguese } { to~(numerical~range) } { a }
\DeclareTranslation { Slovene } { to~(numerical~range) } { do }
\DeclareTranslation { Spanish } { to~(numerical~range) } { a }
- \DeclareTranslation { Brazilian } { to~(numerical~range) } { a }
- \DeclareTranslation { Portuguese } { to~(numerical~range) } { a }
\keys_set:nn { siunitx }
{
list-final-separator =
diff --git a/macros/latex/contrib/siunitx/siunitx-number.dtx b/macros/latex/contrib/siunitx/siunitx-number.dtx
index 8df5670c25..0b51a9cd1c 100644
--- a/macros/latex/contrib/siunitx/siunitx-number.dtx
+++ b/macros/latex/contrib/siunitx/siunitx-number.dtx
@@ -683,6 +683,7 @@
\cs_generate_variant:Nn \tl_if_blank:nTF { f }
\cs_generate_variant:Nn \tl_if_blank_p:n { f }
\cs_generate_variant:Nn \tl_if_in:NnTF { NV }
+\cs_generate_variant:Nn \tl_if_in:nnTF { nV }
\cs_generate_variant:Nn \tl_remove_all:Nn { NV }
\cs_generate_variant:Nn \tl_replace_all:Nnn { NnV }
% \end{macrocode}
@@ -1695,9 +1696,14 @@
% \begin{macro}{\@@_parse_uncert:N}
% \begin{macro}{\@@_parse_uncert:NNN}
% \begin{macro}{\@@_parse_uncert_auxi:N, \@@_parse_uncert_auxii:N}
-% \begin{macro} {\@@_parse_uncert_auxii:, \@@_parse_uncert_marker:}
-% \begin{macro}{\@@_parse_uncert_extend:nnn}
-% \begin{macro}{\@@_parse_uncert_after:N}
+% \begin{macro}{\@@_parse_uncert_auxii:}
+% \begin{macro}{\@@_parse_uncert_marker:}
+% \begin{macro}{\@@_parse_uncert_marker:nnn}
+% \begin{macro}{\@@_parse_uncert_marker:nnnw}
+% \begin{macro}{\@@_parse_uncert_marker:Nnnn}
+% \begin{macro}{\@@_parse_uncert_marker:w}
+% \begin{macro}{\@@_parse_uncert_marker:nnnnN}
+% \begin{macro}{\@@_parse_uncert_after:N}
% Parsing a combined uncertainty has a very restricted range of allowed
% tokens. A closing uncertainty token in the first place is an error,
% so we filter that out explicitly. After that, we check for digits,
@@ -1778,9 +1784,11 @@
% not too long, and extend the decimal if it is.
% Both of these require data from the collected partial number,
% so we extract that first. Checking the decimal part needs the length of the
-% not-yet-collected uncertainty. Handily, we know that it should be a set of
-% digits then a closing marker. So we can use that as a length: if it's
-% too long we can stop.
+% not-yet-collected uncertainty. There may be one or more parts to that, so
+% we have to grab p to the \emph{first} closing token to count the length:
+% just grabbing everything only works if there is only a single uncertainty.
+% We take protective steps against an entirely-missing closing token so that
+% there is not an uncontrolled error.
% \begin{macrocode}
\cs_new_protected:Npn \@@_parse_uncert_marker:
{
@@ -1792,29 +1800,61 @@
\int_compare:nNnTF
{ \tl_count:N \l_@@_partial_tl } > { \tl_count:n {#2} }
{ \@@_parse_loop_break:w }
- { \@@_parse_uncert_marker:nw {#3} }
+ { \@@_parse_uncert_marker:nnnw {#1} {#2} {#3} }
}
-\cs_new_protected:Npn \@@_parse_uncert_marker:nw
- #1#2 \q_recursion_tail \q_recursion_stop
+\cs_new_protected:Npn \@@_parse_uncert_marker:nnnw
+ #1#2#3#4 \q_recursion_tail \q_recursion_stop
{
- \int_compare:nNnTF
- { \tl_count:n {#2} - 1 } = { \tl_count:n {#1} }
- {
- \str_if_eq:eeTF
- { \exp_not:V \l_@@_uncert_tl }
- { \prg_replicate:nn { \tl_count:N \l_@@_partial_tl } { 0 } }
- { \@@_parse_uncert:NNN \c_false_bool }
- { \@@_parse_uncert:NNN \c_true_bool }
- \@@_parse_uncert_auxii:N
+ \tl_if_in:nVTF {#4} \l_@@_input_uncert_close_tl
+ {
+ \exp_after:wN \@@_parse_uncert_marker:Nnnn
+ \l_@@_input_uncert_close_tl
+ {#1} {#2} {#3}
}
- { \exp_after:wN \@@_parse_uncert_extend:nnn \l_@@_parsed_tl }
- #2 \q_recursion_tail \q_recursion_stop
+ { \@@_parse_loop_break:w }
+ #4 \q_recursion_tail \q_recursion_stop
+ }
+\cs_new_protected:Npn \@@_parse_uncert_marker:Nnnn
+ #1#2#3#4
+ {
+ \cs_set_protected:Npn \@@_parse_uncert_marker:w ##1 #1
+ { \@@_parse_uncert_marker:nnnnN {#2} {#3} {#4} {##1} #1 }
+ \@@_parse_uncert_marker:w
}
-\cs_new_protected:Npn \@@_parse_uncert_extend:nnn #1#2#3
+\cs_new_protected:Npn \@@_parse_uncert_marker:w { }
+% \end{macrocode}
+% With the separated out main part and the current uncertainty part
+% available, we can pad the main part if required then restart the
+% collection of the uncertainty having thrown away the decimal marker
+% and with the lengths lined up.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_parse_uncert_marker:nnnnN #1#2#3#4#5
{
- \tl_set:Nn \l_@@_parsed_tl { {#1} {#2} { #3 0 } }
- \@@_parse_uncert:NNN \c_true_bool
- \@@_parse_uncert_auxii:N
+ \tl_set:Nx \l_@@_parsed_tl
+ {
+ {#1}
+ {#2}
+ {
+ #3
+ \prg_replicate:nn
+ {
+ \int_max:nn
+ { 0 }
+ { \tl_count:n {#4} - \tl_count:n {#3} }
+ }
+ { 0 }
+ }
+ }
+ \tl_if_empty:NTF \l_@@_partial_tl
+ {
+ \@@_parse_uncert:NNN \c_false_bool
+ \@@_parse_uncert_auxii:N
+ }
+ {
+ \@@_parse_uncert:NNN \c_true_bool
+ \@@_parse_uncert_auxii:N
+ }
+ #4#5
}
% \end{macrocode}
% At the end of collection, we can either start another one or be done:
@@ -1860,6 +1900,11 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \subsection{Processing numbers}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx
index 3242c28007..78b5ffa776 100644
--- a/macros/latex/contrib/siunitx/siunitx.dtx
+++ b/macros/latex/contrib/siunitx/siunitx.dtx
@@ -122,7 +122,7 @@
%
% Identify the package and give the over all version information.
% \begin{macrocode}
-\ProvidesExplPackage {siunitx} {2023-03-14} {3.2.3}
+\ProvidesExplPackage {siunitx} {2023-04-04} {3.2.4}
{A comprehensive (SI) units package}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf
index b896144622..bdff52cf3b 100644
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ