diff options
Diffstat (limited to 'macros/latex')
-rw-r--r-- | macros/latex/contrib/eolang/eolang.dtx | 132 | ||||
-rw-r--r-- | macros/latex/contrib/eolang/eolang.pdf | bin | 1415294 -> 1448472 bytes | |||
-rw-r--r-- | macros/latex/contrib/ffcode/DEPENDS.txt | 2 | ||||
-rw-r--r-- | macros/latex/contrib/ffcode/ffcode.dtx | 138 | ||||
-rw-r--r-- | macros/latex/contrib/ffcode/ffcode.pdf | bin | 487461 -> 493615 bytes | |||
-rw-r--r-- | macros/latex/contrib/siunitx/CHANGELOG.md | 8 | ||||
-rw-r--r-- | macros/latex/contrib/siunitx/siunitx-code.pdf | bin | 617655 -> 617721 bytes | |||
-rw-r--r-- | macros/latex/contrib/siunitx/siunitx-number.dtx | 8 | ||||
-rw-r--r-- | macros/latex/contrib/siunitx/siunitx.dtx | 2 | ||||
-rw-r--r-- | macros/latex/contrib/siunitx/siunitx.pdf | bin | 666267 -> 666266 bytes | |||
-rw-r--r-- | macros/latex/contrib/siunitx/siunitx.tex | 2 |
11 files changed, 207 insertions, 85 deletions
diff --git a/macros/latex/contrib/eolang/eolang.dtx b/macros/latex/contrib/eolang/eolang.dtx index 49a30283bb..74c346d52f 100644 --- a/macros/latex/contrib/eolang/eolang.dtx +++ b/macros/latex/contrib/eolang/eolang.dtx @@ -50,7 +50,7 @@ %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{eolang} %<*package> -[2022-11-13 0.5.0 Formulas and Graphs for EO Programming Language] +[2022-11-16 0.6.0 Formulas and Graphs for EO Programming Language] %</package> %<*driver> \documentclass{ltxdoc} @@ -62,7 +62,7 @@ \usepackage{graphicx} \usepackage{xcolor} \usepackage[runs=2,dtx]{docshots} -\usepackage{eolang} +\usepackage[nocomments]{eolang} \usepackage{href-ul} \PageIndex \EnableCrossrefs @@ -101,8 +101,8 @@ % \begin{document} % \begin{phiquation*} % a -> [[ % it's abstract! -% ^ !-> $.b.^{^2}, 0-> TRUE, -% b -> [[ c -> |fn|(56), +% ^ !-> $.b.^{^2}, 0/t-> TRUE, +% b -> [[ *-> |fn|(56), % @ -> |hello|($), % \Delta ..> 01-FE-C3 ]]]],\\ % x -> [[ \alpha_0 -> ? ]]. @@ -147,7 +147,14 @@ % (|\vDash|). % \end{itemize} -% Before any arrow you can put a number, which will be rendered as |\alpha| with an index. +% Before any arrow you can put a number, which will be rendered as |\alpha| with an index, for example +% |\phiq{0->x}| will render ``\phiq{0->x}''. +% Instead of a number you can use asterix too. + +% You can append a slash and a title to the number of an attribute, such as |0/g->x|. +% this will render as \phiq{0/g->x}. You can use fixed-width words too, for example +% \verb=\phiq{0/|foo|->x}= will render as ``\phiq{0/|foo|->x}''. It's also possible +% to use an asterix instead of a number, such that |\phiq{*/g->x}| renders as ``\phiq{*/g->x}'' % Numbers are automatically converted to fixed-width font, no need to always decorate them with vertical bars. @@ -173,8 +180,7 @@ % \DescribeEnv{sodg} % The environment |sodg| allows you to draw a \href{https://github.com/objectionary/sodg}{SODG} graph: % \begin{docshot} -% \documentclass{article} -% \pagestyle{empty} +% \documentclass{standalone} % \usepackage{eolang} % \begin{document} % \begin{sodg} @@ -208,7 +214,6 @@ % The following markers are supported for an edge: % \begin{itemize}\setlength\itemsep{0em} % \item ``|rho|'' places a backward snake arrow to the edge, -% \item ``|rrho|'' places a reverse |rho|, % \item ``|bend:<angle>|'' bend it right by the amount of ``|<angle>|,'' % \item ``|a:<txt>|'' attaches label ``|<txt>|'' to it, % \item ``|pi|'' makes it dotted, with $\pi$ label. @@ -343,7 +348,7 @@ % \begin{phiquation*} % \dfrac{\begin{split} % x->[[@->y, z->42, -% 0->?, 1->42]] +% 0/g->?, 1/|foo|->42]] % \end{split}}{\begin{split} % x->[[@->y, z->?, f ~> |pi|( % 0->[[ \psi !-> |hello|(12) ]], @@ -450,13 +455,13 @@ % \begin{sodg} % v0 % v1 xy:v0,.7,1 -% v0->v1 a:x bend:-10 +% v0->v1 a:x bend:-10 rho % v0+a xy:v0,3,0 \\ v0=>v0a % v2a xy:v1a,-.8,1.3 % v1a->v2a a:e % v0a+b xy:v0a,3,0 \\ v0a=>v0b % v3b xy:v2b,-1,-1 -% v2b->v3b a:\psi +% v2b->v3b a:\psi{} rho % \end{sodg} % \end{document} % \end{docshot} @@ -534,6 +539,7 @@ % Then, we process package options: % \changes{0.1.0}{2022/10/26}{Parsing of package options introduced.} +% \changes{0.6.0}{2022/11/14}{Package option \texttt{nocomments} added in order to enable comments suppression in temporary \texttt{.tex} files (may be pretty important for \texttt{.dtx} documents).} % \begin{macrocode} \RequirePackage{pgfopts} \RequirePackage{ifluatex} @@ -542,6 +548,7 @@ /eolang/.cd, tmpdir/.store in=\eolang@tmpdir, tmpdir/.default=_eolang\ifxetex-xe\else\ifluatex-lua\fi\fi, + nocomments/.store in=\eolang@nocomments, tmpdir } \ProcessPgfOptions{/eolang} @@ -580,6 +587,7 @@ % \changes{0.3.0}{2022/10/30}{New arrow added, that looks like \texttt{\char`\\leadsto}.} % \changes{0.5.0}{2022/11/11}{Automated formatting of \texttt{TRUE} and \texttt{FALSE} added.} % \changes{0.5.0}{2022/11/13}{A new syntax introduced for \texttt{\char`\\alpha}-attributes: \texttt{0->}.} +% \changes{0.5.0}{2022/11/14}{It's possible to use double names for attributes, such as \texttt{0/g->}.} % Then, we create a Perl script for |phiquation| processing using |VerbatimOut| from % \href{https://ctan.org/pkg/fancyvrb}{fancyvrb}: % \begin{macrocode} @@ -610,7 +618,10 @@ if ($env ne 'phiq') { $tex =~ s/\n*(\\label\{[^\}]+\})\n*/\1/g; } $tex =~ s/&/\\sigma{}/g; -$tex =~ s/(\s|^)([0-9]+)(->|\.\.>|~>|:=|!->)/\1\\alpha_{\2} \3/g; +$tex =~ s/([^^_]|^)([0-9]+|\*)\/(\\?[a-z]+|\|[a-z]+\|) + (->|\.\.>|~>|:=|!->)/\1\\alpha_{\2}\\vert{}\3\\space{}\4/xg; +$tex =~ s/([^^_]|^)([0-9]+|\*) + (->|\.\.>|~>|:=|!->)/\1\\alpha_{\2}\\space{}\3/xg; if ($env ne 'phiq') { $tex =~ s/\\begin\{split\}\n/\\begin{split}&/g; $tex =~ s/\n\s*\\end\{split\}/\\end{split}/g; @@ -630,7 +641,8 @@ $tex =~ s/\$/\\xi{}/g; $tex =~ s/(?<!\{)\^/\\rho{}/g; $tex =~ s/\[\[/\\llbracket\\mathrel{}/g; $tex =~ s/\]\]/\\mathrel{}\\rrbracket{}/g; -$tex =~ s/([\s,>\(])([0-9A-F]{2}(?:-[0-9A-F]{2})+|[0-9]+(?:\.[0-9]+)?)/\1|\2|/g; +$tex =~ s/([\s,>\(])([0-9A-F]{2}(?:-[0-9A-F]{2})+| + [0-9]+(?:\.[0-9]+)?)/\1|\2|/xg; $tex =~ s/TRUE/|TRUE|/g; $tex =~ s/FALSE/|FALSE|/g; $tex =~ s/\?/\\varnothing{}/g; @@ -668,7 +680,7 @@ if ($env eq 'phiq') { } print '\end{', $env, '}'; } -print '\endinput%'; +print '\endinput'; \end{VerbatimOut} \message{eolang: File with Perl script '\eolang@tmpdir/eolang-phi.pl' saved^^J}% @@ -690,17 +702,18 @@ print '\endinput%'; \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-post.tex]{ perl "\eolang@tmpdir/eolang-phi.pl" '#1' - "\eolang@tmpdir/\jobname/\hash.tex"}% + "\eolang@tmpdir/\jobname/\hash.tex" + \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi}% \setcounter{FancyVerbLine}{\value{eolang@lineno}}% } \newenvironment{phiquation*}% -{\VerbatimEnvironment% +{\catcode`\|=12 \VerbatimEnvironment% \setcounter{eolang@lineno}{\value{FancyVerbLine}}% \begin{VerbatimOut} {\eolang@tmpdir/\jobname/phiquation.tex}} {\end{VerbatimOut}\eolang@process{equation*}} \newenvironment{phiquation}% -{\VerbatimEnvironment% +{\catcode`\|=12 \VerbatimEnvironment% \setcounter{eolang@lineno}{\value{FancyVerbLine}}% \begin{VerbatimOut} {\eolang@tmpdir/\jobname/phiquation.tex}} @@ -722,7 +735,8 @@ print '\endinput%'; "\eolang@tmpdir/\jobname/\hash.tex"}% \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-post.tex]{ perl \eolang@tmpdir/eolang-phi.pl 'phiq' - "\eolang@tmpdir/\jobname/\hash.tex"}% + "\eolang@tmpdir/\jobname/\hash.tex" + \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi}% }\makeatother % \end{macrocode} % \end{macro} @@ -738,6 +752,7 @@ print '\endinput%'; % \changes{0.5.0}{2022/11/09}{Now edges may have \texttt{break} attribute, to make them shorter.} % \changes{0.5.0}{2022/11/10}{It is possible to use multiple ``equaltion sign'' symbols for transition arrows \texttt{=>}.} % \changes{0.5.0}{2022/11/12}{It is possible to use tikz commands inside \texttt{sodg} environment.} +% \changes{0.6.0}{2022/11/13}{The attribute \texttt{rrho} is retired, now \texttt{rho} works just fine in all situations.} % Then, we create a Perl script for |sodg| graphs processing using |VerbatimOut| from % \href{https://ctan.org/pkg/fancyvrb}{fancyvrb}: % \begin{macrocode} @@ -812,20 +827,22 @@ for (my $c = 0; $c < 0+@cmds; $c++) { $opts{'a'} = '\pi'; } } + if (exists $opts{'rho'} and not(exists $opts{'bend'})) { + $draw = $draw . '<MB:,phi-rho>'; + } $draw = $draw . ']'; my ($from, $to) = split (/->/, $head); $draw = $draw . " (${from}) "; if (exists $opts{'bend'}) { - $draw = $draw . 'edge [<F:draw=none,><MF:bend right=' . - num($opts{'bend'}) . '>]'; + $draw = $draw . 'edge [<F:draw=none><MF:,bend right=' . + num($opts{'bend'}) . '>'; + if (exists $opts{'rho'}) { + $draw = $draw . '<MB:,phi-rho>'; + } + $draw = $draw . ']'; } else { $draw = $draw . '--'; } - if (exists $opts{'rho'} or exists $opts{'rrho'}) { - $draw = $draw . ' pic[sloped,phi-rho]{parallel arrow={'; - $draw = $draw . '-' if not exists $opts{'rrho'}; - $draw = $draw . '0.3,-0.15}}'; - } if (exists $opts{'a'}) { my $a = $opts{'a'}; if (index($a, '$') == -1) { @@ -992,7 +1009,7 @@ foreach my $c (@cmds) { print '% ', $c, "\n"; } print '% --- (' . (0+@cmds) . " lines)\n"; -print '\endinput%'; +print '\endinput'; \end{VerbatimOut} \message{eolang: File with Perl script '\eolang@tmpdir/eolang-sodg.pl' saved^^J}% @@ -1019,8 +1036,11 @@ print '\endinput%'; \usetikzlibrary{snakes} \usetikzlibrary{decorations} \usetikzlibrary{decorations.pathmorphing} + \usetikzlibrary{decorations.pathreplacing} \usetikzlibrary{positioning} \usetikzlibrary{calc} + \usetikzlibrary{math} + \usetikzlibrary{arrows.meta} % \end{macrocode} % \end{macro} @@ -1045,8 +1065,59 @@ print '\endinput%'; \tikzstyle{phi-data} = [phi-thing,regular polygon, regular polygon sides=8] \tikzstyle{phi-empty} = [phi-object] -\tikzstyle{phi-rho} = [draw,decorate,decoration={ - snake,amplitude=.4mm,segment length=2mm,post length=1mm}] +\tikzset{% + phi-rho/.style={ + postaction={% + decoration={ + show path construction, + curveto code={ + \tikzmath{ + coordinate \I, \F, \v; + \I = (\tikzinputsegmentfirst); + \F = (\tikzinputsegmentlast); + \v = ($(\I) -(\F)$); + real \d, \a, \r, \t; + \d = 0.8; + \t = atan2(\vy, \vx); + if \vx<0 then { \a = 90; } else { \a = -90; }; + { + \draw[arrows={-latex}, decorate, + decoration={% + snake, amplitude=.4mm, + segment length=2mm, + post length=1mm + }] + ($(\F)!.5!(\I) +(\t: -\d em) +(\t +\a: 1ex)$) + -- ++(\t: 2*\d em); + }; + } + }, + lineto code={ + \tikzmath{ + coordinate \I, \F, \v; + \I = (\tikzinputsegmentfirst); + \F = (\tikzinputsegmentlast); + \v = ($(\I) -(\F)$); + real \d, \a, \r, \t; + \d = 0.8; + \t = atan2(\vy, \vx); + if \vx<0 then { \a = 90; } else { \a = -90; }; + { + \draw[arrows={-latex}, decorate, + decoration={% + snake, amplitude=.4mm, + segment length=2mm, + post length=1mm}] + ($(\F)!.5!(\I) +(\t: -\d em) +(\t +\a: 1ex)$) + -- ++(\t: 2*\d em); + }; + } + } + }, + decorate + } + } +} \tikzstyle{phi-pi} = [draw,dotted] \tikzstyle{phi-atom} = [phi-object,double] \tikzstyle{phi-box} = [xshift=-5pt,yshift=3pt,draw,fill=white, @@ -1064,7 +1135,7 @@ print '\endinput%'; % \href{https://tex.stackexchange.com/questions/661056}{here}: % \begin{macrocode} \makeatletter\newenvironment{sodg}% -{\VerbatimEnvironment% +{\catcode`\|=12 \VerbatimEnvironment% \setcounter{eolang@lineno}{\value{FancyVerbLine}}% \begin{VerbatimOut} {\eolang@tmpdir/\jobname/sodg.tex}} @@ -1075,7 +1146,8 @@ print '\endinput%'; "\eolang@tmpdir/\jobname/\hash.tex"}% \iexec[trace,stdout=\eolang@tmpdir/\jobname/\hash-post.tex]{ perl "\eolang@tmpdir/eolang-sodg.pl" - "\eolang@tmpdir/\jobname/\hash.tex"}% + "\eolang@tmpdir/\jobname/\hash.tex" + \ifdefined\eolang@nocomments | perl -pe 's/\%.*(\\n|$)//g'\fi}% \setcounter{FancyVerbLine}{\value{eolang@lineno}}% }\makeatother % \end{macrocode} diff --git a/macros/latex/contrib/eolang/eolang.pdf b/macros/latex/contrib/eolang/eolang.pdf Binary files differindex 763d5bf07b..92ebceb0d5 100644 --- a/macros/latex/contrib/eolang/eolang.pdf +++ b/macros/latex/contrib/eolang/eolang.pdf diff --git a/macros/latex/contrib/ffcode/DEPENDS.txt b/macros/latex/contrib/ffcode/DEPENDS.txt index 935840f850..d55ae167dd 100644 --- a/macros/latex/contrib/ffcode/DEPENDS.txt +++ b/macros/latex/contrib/ffcode/DEPENDS.txt @@ -1,3 +1,3 @@ -hard xkeyval +hard pgfopts hard minted hard tcolorbox diff --git a/macros/latex/contrib/ffcode/ffcode.dtx b/macros/latex/contrib/ffcode/ffcode.dtx index e3c430c8de..e50bb899eb 100644 --- a/macros/latex/contrib/ffcode/ffcode.dtx +++ b/macros/latex/contrib/ffcode/ffcode.dtx @@ -50,7 +50,7 @@ %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{ffcode} %<*package> -[2022-10-30 0.5.1 Fixed Font Code] +[2022-11-16 0.6.0 Fixed Font Code] %</package> %<*driver> \documentclass{ltxdoc} @@ -93,8 +93,7 @@ % \usepackage{ffcode} % \pagestyle{empty} % \begin{document} -% The function \ff{fibo()} -% is recursive: +% The function |fibo()| is recursive: % \begin{ffcode} % int fibo(int n) { % if (n < 2) { @@ -103,8 +102,8 @@ % return fibo(n-1)+fibo(n-2); % } % \end{ffcode} -% The line no.~\ref{ln:ret} -% terminates it. +% Line no.~\ref{ln:ret} returns \ff{n} +% and terminates it. % \end{document} % \end{docshot} @@ -141,10 +140,11 @@ % A pair of vertical lines decorate a TeX command inside the snippet. % If you want to print a single vertical line, use this: -% \ff{|\char`\\vert|}. +% ``\verb+|\char`\\vert|+''. % The command |\ff| behaves differently in math mode --- it doesn't % add gray frames: +% \docshotOptions{firstline=6,lastline=8} % \begin{docshot} % \documentclass{article} % \usepackage{ffcode} @@ -152,7 +152,7 @@ % \pagestyle{empty} % \begin{document} % \begin{equation*} -% x = \int_\ff{home}^N f(x). +% x = \int_{|home|}^N f(x). % \end{equation*} % \end{document} % \end{docshot} @@ -162,14 +162,14 @@ % You can highlight some lines in your |ffcode| environment, % or can use any other additional configuration parameters from % |minted| package: +% \docshotOptions{firstline=6,lastline=13} % \begin{docshot} % \documentclass{article} % \usepackage[paperwidth=3in]{geometry} % \usepackage{ffcode} % \pagestyle{empty} % \begin{document} -% \begin{ffcode*} -% {highlightlines={1,4-5}} +% \begin{ffcode*}{highlightlines={1,4-5}} % while (true) { % print("Hello!") % print("Enter your name:") @@ -189,28 +189,35 @@ % \section{Implementation} % \changes{v0.1.0}{2021/06/10}{Initial version} -% First, we parse package options: +% First, we parse package options with the help of +% \href{https://ctan.org/pkg/pgfopts}{pgfopts} package: +% \changes{v0.2.0}{2021/06/13}{Package options \texttt{nonumbers} and \texttt{noframes} added.} +% \changes{v0.3.0}{2021/09/07}{Package option \texttt{nocn} added.} +% \changes{v0.4.0}{2022/01/09}{Package option \texttt{nobars} added.} +% \changes{v0.6.0}{2021/11/14}{We use \texttt{pgfopts} instead of \texttt{xkeyval}.} +% \changes{v0.6.0}{2021/11/14}{Package option \texttt{novert} added, to disable redefinition of vertical bar.} % \begin{macrocode} -\RequirePackage{xkeyval} -\makeatletter -\DeclareOptionX{nopygments}{\PassOptionsToPackage{draft=true}{minted}} -\newif\ifff@noframes -\DeclareOptionX{noframes}{\ff@noframestrue} -% \changes{v0.4.0}{2022/01/09}{Package option "nobars" added.} -\newif\ifff@nobars -\DeclareOptionX{nobars}{\ff@nobarstrue} -% \changes{v0.2.0}{2021/06/13}{Package options "nonumbers" -% and "noframes" added.} -\newif\ifff@nonumbers -\DeclareOptionX{nonumbers}{\ff@nonumberstrue} -% \changes{v0.3.0}{2021/09/07}{Package option "nocn" added.} -\newif\ifff@nocn -\DeclareOptionX{nocn}{\ff@nocntrue} -\ProcessOptionsX\relax -\makeatother +\RequirePackage{pgfopts} +\pgfkeys{ + /ff/.cd, + nopygments/.store in=\ff@nopygments, + noframes/.store in=\ff@noframes, + nonumbers/.store in=\ff@nonumbers, + nobars/.store in=\ff@nobars, + novert/.store in=\ff@novert, + nocn/.store in=\ff@nocn, +} +\ProcessPgfOptions{/ff} % \end{macrocode} -% Then, we configure |minted| package: +% Then, we disable pygments for \href{https://ctan.org/pkg/minted}{minted}, if necessary: +% \begin{macrocode} +\makeatletter\ifdefined\ff@nopygments + \PassOptionsToPackage{draft=true}{minted} +\fi\makeatother +% \end{macrocode} + +% Then, we configure \href{https://ctan.org/pkg/minted}{minted} package: % \begin{macrocode} \RequirePackage{minted} \setminted{breaklines} @@ -222,8 +229,8 @@ % \begin{macro}{ffcode} % Then, we define |ffcode| environment: % \begin{macrocode} -\makeatletter\ifff@nonumbers - \ifff@nobars +\makeatletter\ifdefined\ff@nonumbers + \ifdefined\ff@nobars \newminted[ffcode]{text}{} \else \newminted[ffcode]{text}{framesep=6pt, @@ -232,8 +239,8 @@ \else \renewcommand{\theFancyVerbLine}{\textcolor{gray}% {\tiny\oldstylenums{\ttfamily\arabic{FancyVerbLine}}}} - \ifff@nocn - \ifff@nobars + \ifdefined\ff@nocn + \ifdefined\ff@nobars \newminted[ffcode]{text}{ linenos,numbersep=2pt } @@ -244,7 +251,7 @@ } \fi \else - \ifff@nobars + \ifdefined\ff@nobars \newminted[ffcode]{text}{ firstnumber=last,linenos,numbersep=2pt } @@ -260,12 +267,11 @@ % \end{macro} % \begin{macro}{\ff@print} -% Then, we define supplementary commands |\ff@print| and |\ff@printx|: -% \changes{v0.5.1}{2022/10/30}{Now, the command "ff" ignores italic and bold and always prints "texttt" as it should be.} +% Then, we define a supplementary macro |\ff@print|: +% \changes{v0.5.1}{2022/10/30}{Now, the command \texttt{ff} ignores italic and bold and always prints \texttt{\char`\\texttt} as it should be.} % \begin{macrocode} \makeatletter -\newcommand\ff@print{\begingroup\obeyspaces\ff@printx} -\newcommand\ff@printx[1]{\textnormal{\texttt{#1}}\endgroup} +\newcommand\ff@print[1]{\textnormal{\texttt{#1}}} \makeatother % \end{macrocode} % \end{macro} @@ -279,22 +285,60 @@ % \end{macrocode} % \end{macro} -% \begin{macro}{\ff} -% Finally, we define |\ff| command: +% \begin{macro}{tcolorbox} +% Then, we use \href{https://ctan.org/pkg/tcolorbox}{tcolorbox} to define |\ff@box| +% command for a gray box around verbatim text block: % \begin{macrocode} -\makeatletter\ifff@noframes - \newcommand\ff[1]{\ff@rule\ff@print{#1}} -\else +\makeatletter +\ifdefined\ff@noframes\else \RequirePackage{tcolorbox} - \newtcbox\ff@box{nobeforeafter,colframe=gray!80!white, + \newtcbox\ff@box{nobeforeafter,colframe=gray!80!white, colback=gray!5!white,boxrule=0.1pt,arc=1pt, boxsep=1.2pt,left=0.5pt,right=0.5pt,top=0.2pt,bottom=0.2pt, tcbox raise base} - \newcommand\ff[1]{\relax\ifmmode% - {\ff@rule\ff@print{#1}}% +\fi +\makeatother +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\ff@x} +% Then, we define |\ff@x| internal command for printing a piece of fixed-width-font text: +% \begin{macrocode} +\makeatletter +\NewDocumentCommand\ff@x{v}{% + \ifdefined\ff@noframes% + \ff@rule\ff@print{#1}% \else% - {\ff@box{\ff@rule\ff@print{#1}}}% - \fi} + \relax\ifmmode% + \ff@rule\ff@print{#1}% + \else% + \ff@box{\ff@rule\ff@print{#1}}% + \fi% + \fi% +} +\makeatother +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\ff} +% Then, we define |\ff| macro: +% \begin{macrocode} +\makeatletter +\def\ff{\ff@x} +\makeatother +% \end{macrocode} +% \end{macro} + +% \begin{macro}{novert} +% Finally, we let vertical bars work similar to |\ff|, as suggested +% \href{https://tex.stackexchange.com/a/665105/1449}{here} +% and \href{https://tex.stackexchange.com/a/665303/1449}{here} +% (unless |novert| package option is used): +% \begin{macrocode} +\makeatletter\ifdefined\ff@novert\else + \catcode`\|\active + \AtBeginDocument{\catcode`\|\active\protected\def|{\ff@x|}} + \catcode`\| 12 % \fi\makeatother % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/ffcode/ffcode.pdf b/macros/latex/contrib/ffcode/ffcode.pdf Binary files differindex a24f23e4b0..f87101ad3f 100644 --- a/macros/latex/contrib/ffcode/ffcode.pdf +++ b/macros/latex/contrib/ffcode/ffcode.pdf diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md index d1d7b1c61f..e26a8b74c1 100644 --- a/macros/latex/contrib/siunitx/CHANGELOG.md +++ b/macros/latex/contrib/siunitx/CHANGELOG.md @@ -7,6 +7,11 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ## [Unreleased] +## [v3.1.10] - 2022-11-16 + +### Fixed +- Rounding to uncertainty in some cases (see issue + [\#627](https://github.com/josephwright/siunitx/issues/627)) ## [v3.1.9] - 2022-10-23 ### Added @@ -1826,7 +1831,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.1.9...HEAD +[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.1.10...HEAD +[v3.1.10]: https://github.com/josephwright/siunitx/compare/v3.1.9...v3.1.10 [v3.1.9]: https://github.com/josephwright/siunitx/compare/v3.1.8...v3.1.9 [v3.1.8]: https://github.com/josephwright/siunitx/compare/v3.1.7...v3.1.8 [v3.1.7]: https://github.com/josephwright/siunitx/compare/v3.1.6...v3.1.7 diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf Binary files differindex 7bfe53e8a8..a57ecf29bc 100644 --- a/macros/latex/contrib/siunitx/siunitx-code.pdf +++ b/macros/latex/contrib/siunitx/siunitx-code.pdf diff --git a/macros/latex/contrib/siunitx/siunitx-number.dtx b/macros/latex/contrib/siunitx/siunitx-number.dtx index 1d11f909f0..b88e369c08 100644 --- a/macros/latex/contrib/siunitx/siunitx-number.dtx +++ b/macros/latex/contrib/siunitx/siunitx-number.dtx @@ -3168,9 +3168,9 @@ { \use:e { - \exp_not:N \@@_round_uncertainty:nnnnn + \exp_not:N \@@_round_uncertainty:nnnnnn \@@_round:nnn {#1} { } {#4} - {#2} {#3} {#1} + {#2} {#3} {#1} {#4} } } % \end{macrocode} @@ -3179,7 +3179,7 @@ % the uncertainty rounded up, which also links to additional treatment. We % therefore split paths here. % \begin{macrocode} -\cs_new:Npn \@@_round_uncertainty:nnnnn #1#2#3#4#5 +\cs_new:Npn \@@_round_uncertainty:nnnnnn #1#2#3#4#5#6 { \tl_if_blank:nTF {#1} { @@ -3191,7 +3191,7 @@ { \tl_if_blank:nTF {#4} { #5 } - { 0 - ( \tl_count:n {#4} - \tl_count:n {#2} - #5 + 1 ) } + { ( \tl_count:n {#6} - \tl_count:n {#4} ) - \tl_count:n {#2} } } { 0 } } diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx index b39fdd662e..d02beaf573 100644 --- a/macros/latex/contrib/siunitx/siunitx.dtx +++ b/macros/latex/contrib/siunitx/siunitx.dtx @@ -121,7 +121,7 @@ % % Identify the package and give the over all version information. % \begin{macrocode} -\ProvidesExplPackage {siunitx} {2022-10-23} {3.1.9} +\ProvidesExplPackage {siunitx} {2022-11-16} {3.1.10} {A comprehensive (SI) units package} % \end{macrocode} % diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf Binary files differindex 92efe61c67..9f1a21c58f 100644 --- a/macros/latex/contrib/siunitx/siunitx.pdf +++ b/macros/latex/contrib/siunitx/siunitx.pdf diff --git a/macros/latex/contrib/siunitx/siunitx.tex b/macros/latex/contrib/siunitx/siunitx.tex index 1c4b9ab910..a92d0ee0db 100644 --- a/macros/latex/contrib/siunitx/siunitx.tex +++ b/macros/latex/contrib/siunitx/siunitx.tex @@ -318,7 +318,7 @@ optional argument, \meta{options}, and one mandatory one, \meta{number}. The contents of \meta{number} are automatically formatted. The formatter removes both \enquote{soft} (\verb*| |) and \enquote{hard} spaces (|\,| and |~|), automatically identifies exponents (as standard marked using |e|, |E|, |d| or -|D|) and adds the appropriate spacing of large numbers.If required, +|D|) and adds the appropriate spacing of large numbers. If required, a leading zero is added before a decimal marker: both |.| and "," are recognised as decimal markers. \begin{LaTeXdemo} |