texlive[42181] Master/texmf-dist: cooking-units (29sep16)
commits+karl at tug.org
commits+karl at tug.org
Thu Sep 29 22:34:14 CEST 2016
Revision: 42181
http://tug.org/svn/texlive?view=revision&revision=42181
Author: karl
Date: 2016-09-29 22:34:14 +0200 (Thu, 29 Sep 2016)
Log Message:
-----------
cooking-units (29sep16)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/cooking-units/README.md
trunk/Master/texmf-dist/doc/latex/cooking-units/cooking-units.pdf
trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.dtx
trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.ins
trunk/Master/texmf-dist/tex/latex/cooking-units/cooking-units.sty
Modified: trunk/Master/texmf-dist/doc/latex/cooking-units/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/cooking-units/README.md 2016-09-29 20:34:02 UTC (rev 42180)
+++ trunk/Master/texmf-dist/doc/latex/cooking-units/README.md 2016-09-29 20:34:14 UTC (rev 42181)
@@ -9,14 +9,14 @@
troublesome. This contains not only the question of how to print those
units, but also the question of the conversion of units. A cookery book
doesn't contain only SI units, it contains a much more colorful range
-of units (kg, dag, g, oz, ... for example) and this may cause some
+of units (kg, dag, g, oz, ... for example) and it may cause some
confusion if too many different units are used, but if you just write a
-cookery book for fun you don't think about this case ... until someone
+cookery book for fun you don't think about this ... until someone
(my mother in my case) tells you that it's too confusing.
This package solves both problems: It formats your input and
-you have the option to convert the units globally or locally using a key-value
-system.
+you have the option to convert the units globally or locally using an
+easy to use key-value system.
Please note that this package is not intended to be used to
print units (and numbers) physically correct. It should be used for
@@ -42,12 +42,7 @@
Changes
-------
- * v1.00a Converting 'Re' to 'eV' should be correct now.
- * v1.01 Added units 'ssp', 'csp' and 'dsp' (salt-, coffee-, dessertspoonful)
- English: litre (and only litre) now uses curly l
- British English: 'pinch' is written in full.
- * v1.02 Replaced \cufrac by \cuam
- New message: 'obsolete-command'.
+See section 'Change History' in the documentation.
Supported Languages
-------------------
@@ -64,4 +59,3 @@
for the details of that license.
-
Modified: trunk/Master/texmf-dist/doc/latex/cooking-units/cooking-units.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.dtx 2016-09-29 20:34:02 UTC (rev 42180)
+++ trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.dtx 2016-09-29 20:34:14 UTC (rev 42181)
@@ -20,14 +20,14 @@
troublesome. This contains not only the question of how to print those
units, but also the question of the conversion of units. A cookery book
doesn't contain only SI units, it contains a much more colorful range
-of units (kg, dag, g, oz, ... for example) and this may cause some
+of units (kg, dag, g, oz, ... for example) and it may cause some
confusion if too many different units are used, but if you just write a
-cookery book for fun you don't think about this case ... until someone
+cookery book for fun you don't think about this ... until someone
(my mother in my case) tells you that it's too confusing.
This package solves both problems: It formats your input and
-you have the option to convert the units globally or locally using a key-value
-system.
+you have the option to convert the units globally or locally using an
+easy to use key-value system.
Please note that this package is not intended to be used to
print units (and numbers) physically correct. It should be used for
@@ -54,12 +54,7 @@
Changes
-------
- * v1.00a Converting 'Re' to 'eV' should be correct now.
- * v1.01 Added units 'ssp', 'csp' and 'dsp' (salt-, coffee-, dessertspoonful)
- English: litre (and only litre) now uses curly l
- British English: 'pinch' is written in full.
- * v1.02 Replaced \cufrac by \cuam
- New message: 'obsolete-command'.
+See section 'Change History' in the documentation.
Supported Languages
-------------------
@@ -103,7 +98,7 @@
This work has the LPPL maintenance status `maintained'.
-This work consists of the files README, cooking-units.dtx and cooking-units.ins
+This work consists of the files README.md, cooking-units.dtx and cooking-units.ins
and the derived file cooking-units.sty.
\endpreamble
@@ -161,6 +156,7 @@
%\EnableCrossrefs
\labelformat{table}{table~#1}
+\labelformat{section}{section~#1}
\newcommand\mycs[1]{\cs{\textcolor{blue}{#1}}}
\newcommand\opt{\texttt}
@@ -181,12 +177,12 @@
-\NewDocumentCommand \dothewhitespace { O{ All your spaces are belong to us } }
+\NewDocumentCommand \dothewhitespace { O{ 42 } }
{
\textcolor{white} {#1} \\
}
-\NewEnviron { cuexamplecode }
+\NewEnviron { cuexamplecode }[1][]
{
\begin{center}
\begin{minipage}{0.4\linewidth}
@@ -195,6 +191,7 @@
\BODY
\end{minipage}
+ #1
\int_zero:N \l_tmpa_int
\begin{minipage}{0.5\linewidth}
\ttfamily
@@ -358,7 +355,21 @@
% \changes {2016/09/03} {1.01} {Separated Messerpsitze and pinch}
% \changes {2016/09/05} {1.02} {Replaced \cs{cufrac} by \cs{cuam}}
% \changes {2016/09/05} {1.02} {New message: 'obsolete-command'}
+% \changes {2016/09/09} {1.02a} {Changed name from \cs{@@_parse_fraction_in_input:www} to \cs{@@_parse_mixed_fraction_in_input:www}}
+% \changes {2016/09/09} {1.02b} {Changed name from \cs{@@_cunum_parse_range} (and derivatives) to \cs{@@_cutext_parse_range}.}
+% \changes {2016/09/09} {1.02c} {In \cs{@@_cutext_default:nnn} it is only
+% checked once if a range is inside.}
+% \changes {2016/09/09} {1.02d} {\cs{@@_calculate_input_and_store_in:nN} optimiert durch neue property-key: single.}
+% \changes {2016/09/09} {1.02d} {Add 'single' to property list of singlekeys.}
+% \changes {2016/09/16} {1.02e} {Only use \cs{phantom} if the argument (for \cs{phantom}) is not empty.}
+% \changes {2016/09/09} {1.02i} {Delete 'single' from property lists of singlekeys cause it is not as safe as I thought.}
+% \changes {2016/09/09} {1.02f} {Corrected mistake: 'ELektronenvolt' (note upperacse L) to 'Elektronenvolt' in german.}
+% \changes {2016/09/26} {1.03} {New option (and needed macros): add-temperature-to-check.}
+% \changes {2016/09/26} {1.03a} {\cs{cuaddsinglekeys} now tests if the unit exists (it didn't before).}
+% \changes {2016/09/26} {1.03b} {Replaced \cs{prop_clear_new:c} by \cs{prop_clear:c}.}
+% \changes {2016/09/26} {1.03b} {Recalculated all electron volt values for conversion (as 'kg' was wrong before). Let's hope they are correct this time.}
%
+%
% \GetFileInfo{\jobname.sty}
%
%\title{The \pkg{\jobname} package^^A
@@ -371,6 +382,7 @@
%
% \begin{documentation}
%
+%
% \begin{abstract}
% This package enables user to globally format units and to switch
% between them. It should be used for light-hearted things like
@@ -380,7 +392,7 @@
%
% \tableofcontents
%
-%
+%
% \section{Introduction}
%
%
@@ -524,7 +536,7 @@
%
% \lstinline|\cuam| works like a more primitive version \mycs{cunum}
% which doesn't need a unit, but doesn't check the input like \mycs{cunum}.
-% Like in \lstinline|\cunum| \texttt{\_} and \texttt{/} are used to imply a (mixed) fraction and \texttt{-{}-}
+% Like in \lstinline|\cunum| \texttt{\_} and \texttt{/} are used to imply a (mixed) fraction and \texttt{-{}-} is
% used to print ranges\footnote{Note that since v1.02 \mycs{myfrac} is obsolete.}:
%
% \begin{cuexamplecode}
@@ -831,7 +843,7 @@
%
%
% \begin{cuexample}
-% Suppose you are british (I am sorry, I can't think of another
+% Suppose you are British (I am sorry, I can't think of another
% reason to use those units) and you want to implement 'stone' (yes, I
% was surprised myself that such a unit exists, but it even appears in
% a Sherlock-Holmes story). You exactly know that \SI{1}{\st} equals
@@ -851,6 +863,7 @@
% \cunum[st=g]{1}{st} \\
% \cunum[st=kg]{1}{st} \\
% \cunum[kg=st]{1}{kg} \\
+% \cunum[st=kg]{16}{st} \\
% \end{cuexamplecode}
% \end{cuexample}
%
@@ -1422,9 +1435,52 @@
% Checks if the used temperature is below the absolute zero point.
% Currently \texttt{C}, \texttt{F}, \texttt{K} and \texttt{Re} are supported.
% While \lstinline|\cunum{0}{K}| is ok, \lstinline!\cunum{-1}{K}! raises an error,
-% same for the others. Is set to \texttt{false} by default.
+% same for the others. Is set to \texttt{false} by default. To add new units
+% see \opt{add-temperature-to-check}.
% \end{function}
%
+% \begin{function}{add-temperature-to-check}
+% \begin{syntax}
+% add-temperature-to-check =
+% \ \ \{
+% \ \ \ \ \meta{unit-key-1} = \meta{minimum-value-1} ,
+% \ \ \ \ \meta{unit-key-2} = \meta{minimum-value-2} ,
+% \ \ \ \ \dots
+% \ \ \}
+% \end{syntax}
+% This option adds \meta{unit-key-1} and so on to the list of units to be checked
+% if \opt{check-temperature} is active. The argument can be a comma-separated
+% list of \meta{unit-key} = \meta{minimum-value}. This sets the allowed minimum
+% value of \meta{unit-key} to \meta{minimum-value}.
+%
+% \end{function}
+%
+% For example, this package implements the allowed minimum values for the
+% temperatures \texttt{C}, \texttt{F}, \texttt{K} and \texttt{Re} to be checked if
+% \opt{check-temperature} is active:
+% \begin{lstlisting}
+% \cusetup
+% {
+% add-temperature-to-check =
+% {
+% K = 0,
+% C = -273.15 ,
+% F = -459.67 ,
+% Re = -218.52
+% }
+% }
+% \end{lstlisting}
+%
+% If you want to add a new value, for example degree R{\o}mer
+% (which has be defined in another example) you can write:
+% \begin{lstlisting}
+% \cusetup
+% {
+% add-temperature-to-check = { Ro = -135.90375 }
+% }
+% \end{lstlisting}
+%
+%
% ^^A \begin{cuexamplecode}
% ^^A \cusetup{check-temperature=true} @
% ^^A \cunum{0}{K} \\
@@ -1442,11 +1498,12 @@
% option is:
% a) experimental and probably will forever be and b) just a joke, you are not
% supposed to use this units in a cookery book (and as you see this package
-% doesn't support the arrangement of such huge numbers).
+% doesn't support the arrangement of such huge numbers). Also you may
+% want to check the values if you really want to use them, just to be sure.
%
% \end{function}
%
-% \begin{cuexamplecode}
+% \begin{cuexamplecode}[\hfill]
% \cusetup{ convert-to-eV=true } @
% \cunum{1}{kg} \\
% \cunum{1}{l} \\
@@ -1533,6 +1590,57 @@
%^^A \end{align}
%
%
+%^^A \section{Notes and other stuff}
+%^^A \subsection{Some details to electron volts}
+%^^A This section explains how I calculated the values for conversion into electron volt
+%^^A or the respective derivative. Let's begin with some constants (from Wikipedia), note that
+%^^A \begin{equation*}
+%^^A \num{1.23456(78)e-9} = \num[separate-uncertainty = true]{1.23456(78)e-9}
+%^^A \end{equation*}
+%^^A just for info.
+%^^A
+%^^A \begin{align}
+%^^A \SI{1}{\eV} &= \SI{1.6021766208(98)e-19}{\J} \\
+%^^A \hbar &= \SI{1.054571800(13)e-34}{\J\s} \\
+%^^A k_B &= \SI{1.38064852(79)e-23}{\J\per\K} = \SI{8.6173303(50)e-5}{\eV\per\K}\\
+%^^A c &= \SI{299792458}{\m\per\s}
+%^^A \end{align}
+%^^A
+%^^A Note that all those and following values are rounded to the second relevant figure of the
+%^^A uncertainty of the value.
+%^^A
+%^^A Well then, next are temperatures.
+%^^A
+%^^A Temperatures are fairly easy. Just convert the temperature of your choice to kelvin
+%^^A and multiplicate it with $k_B$:
+%^^A \begin{align}
+%^^A \SI{1}{\K} * k_B &= \SI{8.6173303(50)e-5}{\eV}
+%^^A \end{align}
+%^^A
+%^^A Next is more complicated. To compute the resulting unceartanity I using
+%^^A \enquote{Gauß'sches Fehlerfortpflanzungsgesetz} (I don't know if this has
+%^^A a translation). Anyway. We know that
+%^^A \begin{align*}
+%^^A \frac{\SI{1}{\eV}}{c^2} &= \frac{\SI{1.6021766208e-19}{\J}}{(\SI{299792458}{\m\per\s})^2}
+%^^A = \frac{\SI{1.6021766208e-19}{\kg\m\squared\per\s\squared}}{\SI{8,98755178736818E16}{\m\squared\per\s\squared}} = \\
+%^^A &\frac{\SI{1.6021766208e-3}{\kg}}{\num{8,98755178736818}} =
+%^^A \SI{1782661906,94091624922088}{\kg}
+%^^A \end{align*}
+%^^A
+%^^A Great, now we have to calucalte the unceartinity:
+%^^A \begin{align}
+%^^A f(\si{\eV},c) &= \frac{\si{\eV}}{c^2} \\
+%^^A df(\si\eV,c) &= \sqrt{ (\frac{\partial f}{\partial \si\eV})^2 * (\Delta \si\eV)^2 + (\frac{\partial f}{\partial c})^2 * (\Delta c)^2 } = \\
+%^^A &= \sqrt{ (\frac{1}{c^2})^2 * (\Delta \si\eV)^2 + (-2\frac{eV}{c^{-3}})^2 * (\Delta c)^2 }
+%^^A \end{align}
+%^^A
+%^^A Now we know that $\Delta c = 0$:
+%^^A \begin{align}
+%^^A df(\si\eV,c) &= \sqrt{ (\frac{1}{c^2})^2 * (\Delta \si\eV)^2 } =
+%^^A \sqrt{ \frac{1}{(\SI{299792458}{\m\per\s} )^2} * (\SI{0.0000000098e-19}{\J})^2 } \\
+%^^A &=
+%^^A \end{align}
+%
% \end{documentation}
%
% \begin{implementation}
@@ -1565,8 +1673,8 @@
% \begin{macrocode}
\ProvidesExplPackage
{cooking-units}
- {2016/09/05}
- {1.02}
+ {2016/09/26}
+ {1.03b}
{Ein Paket fuer Kocheinheiten}
% \end{macrocode}
% Chekcing if \pkg{expl3} is uptodate, otherwise abort the loading of the package.
@@ -1630,9 +1738,11 @@
\cs_generate_variant:Nn \tl_replace_all:Nnn { NVn }
\cs_generate_variant:Nn \tl_replace_once:Nnn { NnV, NVn }
\cs_generate_variant:Nn \tl_if_in:nnTF { nVTF }
+\cs_generate_variant:Nn \tl_if_in:NnTF { NVTF }
\cs_generate_variant:Nn \tl_if_in:NnT { NVT }
\cs_generate_variant:Nn \fp_compare:nNnT { cNnT }
\cs_generate_variant:Nn \fp_eval:n { c }
+
% \end{macrocode}
% \end{macro}
%
@@ -1803,6 +1913,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro} { \l_@@_temperatures_to_check_clist }
+% \changes {1.02h} {New.}
+% Stores units which should be tested if \opt{check-temperature} equals true.
+% \begin{macrocode}
+\clist_new:N \l_@@_temperatures_to_check_clist
+%\clist_set:Nn \l_@@_temperatures_to_check_clist { C , F , K , Re }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}
% {
% \l_@@_error_bool ,
@@ -1834,6 +1953,7 @@
\bool_new:N \l_@@_cutext_uppercase_word_bool
\bool_new:N \l_@@_error_for_unknown_value_bool
\bool_new:N \l_@@_parse_range_bool
+%\bool_new:N \l_@@_unit_is_singlekey_bool
% \end{macrocode}
% \end{macro}
%
@@ -2008,6 +2128,19 @@
check-temperature .default:n = { true } ,
% \end{macrocode}
%
+%\begin{macro}{ add-temperature-to-check }
+% Adds a temperature to check for \texttt{check-temperature}.
+% \begin{macrocode}
+ add-temperature-to-check .code:n =
+ {
+ \keyval_parse:NNn
+ \@@_temperature_to_check_print_error:n
+ \@@_temperatures_to_check_define:nn
+ {#1}
+ },
+ temperature-to-check .value_required:n = { true } ,
+% \end{macrocode}
+%
%\begin{macro}{ convert-to-eV }
% Another weird option, converts pretty much any unit defined by this
% package to electron volt or the respective derivative.
@@ -2226,10 +2359,35 @@
Command \ #1 is \ obsolete. \ Please \ use \ #2 instead.
}
{
- Don't \ use \ the \ old \ command \ ...
+ Don't \ use \ this \ old \ command \ ...
\msg_see_documentation_text:n { cooking-units }
}
% \end{macrocode}
+%
+% Error message if a new temperature to check is defined and no
+% minimal value is given.
+% \begin{macrocode}
+\msg_new:nnnn { cooking - units } { No-Value-given }
+ {
+ Please \ input \ a \ number \ to \ check \ for \
+ 'check-temperature'.
+ }
+ {
+ \msg_see_documentation_text:n { cooking-units }
+ }
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\msg_new:nnnn { cooking - units } { Minimum-already-defined }
+ {
+ A \ minimum \ for \ '#1' \ has \ already \ been \ defined.
+ }
+ {
+ You \ cannot \ redefine \ it.
+ \msg_see_documentation_text:n { cooking-units }
+ }
+% \end{macrocode}
% \end{macro}
%
% \section {Helper Macros}
@@ -2246,6 +2404,7 @@
\cs_new:Npn \@@_error_if_unit_not_defined:n #1
{
\clist_if_in:NnF \g_@@_list_of_defined_units_clist {#1}
+% \tl_if_exist:cF { l_@@_tmpa_ #1 _tl }
{ \msg_error:nnn { cooking-units } { unknown-unit } {#1} }
}
\cs_generate_variant:Nn \@@_error_if_unit_not_defined:n { V }
@@ -2267,17 +2426,14 @@
{
\bool_if:NTF \l_@@_parse_input_bool
{
-% \cs_set_eq:NN \@@_if_number_and_parse_aux: \prg_return_true:
\tl_map_inline:nn {#1}
{
\tl_if_in:NnF \l_@@_input_digits_tl {##1}
{
-% \cs_set_eq:NN \@@_if_number_and_parse_aux: \prg_return_false:
\tl_map_break:n { \use_iii:nnn }
}
}
\use_i:nn \prg_return_true: \prg_return_false:
-% \@@_if_number_and_parse_aux:
}
{ \prg_return_false: }
}
@@ -2345,6 +2501,29 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_deftranslation:Nnn}
+% Commands used in the option \texttt{temperature-to-check}.
+% If no value is given (first command) it raises an error. If a value
+% is given the unit is added to a check-list and a new
+% constant is defined.
+% \begin{macrocode}
+\cs_new:Npn \@@_temperature_to_check_print_error:n #1
+ {
+ \msg_error:nn { cooking-units } { No-Value-given }
+ }
+\cs_new:Npn \@@_temperatures_to_check_define:nn #1#2
+ {
+ \@@_error_if_unit_not_defined:n {#1}
+ \fp_if_exist:cTF { c_@@_ #1 _min_fp }
+ { \msg_error:nnn { cooking-units } { Minimum-already-defined } {#1} }
+ {
+ \clist_put_right:Nn \l_@@_temperatures_to_check_clist {#1}
+ \fp_const:cn { c_@@_ #1 _min_fp } {#2}
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection {Parsing and cheking numbers}
%
% This section contains macros helping an checking the input.
@@ -2355,13 +2534,13 @@
% \begin{macrocode}
\cs_new:Npn \@@_cunum_parse_input:N #1
{
- \tl_if_in:nnTF {#1} { \q_@@_range }
+ \bool_if:NTF \l_@@_parse_range_bool
{ \@@_parse_range_in_input:ww #1 \q_stop }
{
\tl_if_in:nnTF {#1} { / }
{
\tl_if_in:nnTF {#1} { _ }
- { \@@_parse_fraction_in_input:www #1 \q_stop }
+ { \@@_parse_mixed_fraction_in_input:www #1 \q_stop }
{ \@@_parse_fraction_in_input:ww #1 \q_stop }
}
{ \@@_parse_number_in_input:n {#1} }
@@ -2393,7 +2572,6 @@
% \begin{macrocode}
\cs_new:Npn \@@_parse_range_in_input:ww #1 \q_@@_range #2 \q_stop
{
- \bool_set_true:N \l_@@_parse_range_bool
\@@_parse_input_and_safe_in:nN {#1} \l_@@_tmpa_tl
\@@_parse_input_and_safe_in:nN {#2} \l_@@_tmpb_tl
\@@_calculate_and_print_input:N \l_@@_tmpa_tl
@@ -2430,7 +2608,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{ \@@_parse_fraction_in_input:www }
+% \begin{macro}{ \@@_parse_mixed_fraction_in_input:www }
% The same procedure as last function? The same procedure as every
% function!
%
@@ -2443,7 +2621,7 @@
% \end{align}
%
% \begin{macrocode}
-\cs_new:Npn \@@_parse_fraction_in_input:www #1_#2/#3 \q_stop
+\cs_new:Npn \@@_parse_mixed_fraction_in_input:www #1_#2/#3 \q_stop
{
\@@_parse_input_and_safe_in:nN {#1} \l_@@_mixed_fraction_tl
\@@_parse_input_and_safe_in:nN {#2} \l_@@_tmpa_tl
@@ -2604,6 +2782,15 @@
\cs_new:Npn \@@_calculate_input_and_store_in:nN #1#2
{
\fp_set:Nn \l_tmpa_fp {#1}
+% \tl_set:Nf #2
+% {
+% \fp_eval:n
+% {
+% \bool_if:NF \l_@@_unit_is_singlekey_bool
+% { \l_tmpa_fp * }
+% \tl_use:c { l_@@_tmpa_ \l_@@_tmp_unit_tl _ tl }
+% }
+% }
\tl_if_in:cnTF { l_@@_tmpa_ \l_@@_tmp_unit_tl _ tl } { \l_tmpa_fp }
{
\tl_set:Nf #2
@@ -2643,10 +2830,8 @@
}
\cs_new:Npn \@@_get_number_after_dot_aux:w #1. #2 .
{
- \quark_if_recursion_tail_stop_do:nn {#2}
- { \bool_set_false:N \l_tmpa_bool }
- \int_compare:nNnTF { \tl_count:n {#2} } < {\l_@@_significant_figures_plus_one_int }
- { \bool_set_false:N \l_tmpa_bool }
+ \quark_if_recursion_tail_stop:n {#2}
+ \int_compare:nNnF { \tl_count:n {#2} } < { \l_@@_significant_figures_plus_one_int }
{ \bool_set_true:N \l_tmpa_bool }
\use_none_delimit_by_q_recursion_stop:w
}
@@ -2661,6 +2846,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_round_calculated_input:NN #1#2
{
+ \bool_set_false:N \l_tmpa_bool
\@@_get_number_after_dot:n {#2}
\tl_set:Nf #1
{
@@ -2691,7 +2877,7 @@
\cs_new:Npn \@@_formatiere_fractions:nnn #1#2#3
{
\bool_set_true:N \l_@@_fraction_in_input_bool
- \tl_if_blank:nF {#1}
+ \tl_if_empty:nF {#1}
{
#1
\hbox_to_wd:nn { \l_@@_mixed_frac_dim } { }
@@ -2712,7 +2898,7 @@
{
\bool_if:NT \l_@@_check_temperature_bool
{
- \clist_if_in:nVT { C , F , K , Re } \l_@@_option_unit_tl
+ \clist_if_in:NVT \l_@@_temperatures_to_check_clist \l_@@_option_unit_tl
{
\fp_compare:cNnT
{ c_@@_ \l_@@_option_unit_tl _min_fp } > {#1}
@@ -2841,9 +3027,11 @@
} {#1}
\tl_if_empty:VF \l_tmpa_tl
{
-%% besser mit boolean arbeiten als nochmals ueberpruefen lassen?
\tl_if_in:NVT \l_tmpa_tl \l_@@_input_range_sign_tl
- { \tl_replace_once:NVn \l_tmpa_tl \l_@@_input_range_sign_tl { \q_@@_range } }
+ {
+ \tl_replace_once:NVn \l_tmpa_tl \l_@@_input_range_sign_tl { \q_@@_range }
+ \bool_set_true:N \l_@@_parse_range_bool
+ }
\@@_cunum_parse_input:V \l_tmpa_tl
}
\@@_cunum_print_correct_unit:nnn {#2} {#3} {#4}
@@ -2861,7 +3049,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_cunum_print_correct_unit:nnn #1#2#3
{
- \phantom {#1}
+ \tl_if_empty:nF {#1} { \phantom {#1} }
\tl_use:N \l_@@_value_unit_space_tl
\bool_if:nTF
{
@@ -2921,7 +3109,6 @@
{
\@@_cukeys_parse_and_create_single_key:nn {#1} {#2}
}{
-% \fp_set:Nn \l_tmpa_fp { \c_one_fp }
\fp_set_eq:NN \l_tmpa_fp \c_one_fp
\tl_set:Nn \l_@@_tmp_unit_tl {#1}
\@@_cukeys_parse_and_create_keys:nn {#1}
@@ -2969,6 +3156,10 @@
% \end{macro}
%
% \begin{macro}{ \@@_cukeys_create_key_prop:n }
+%
+% \changes {2016/09/22} {1.02f} {Save 'Liste', 'prop' and 'Erstes Ding' to \cs{l_tmpb_prop} and set the unit-prop lists equal to \cs{l_tmpb_prop}.}
+% \changes {2016/09/22} {1.02g} {Do not need \cs{tl_clear_new:c} as token list is already defined.}
+%
% All linked unit-keys are stored within \lstinline|\l_tmpa_clist| and are mapped
% one after another. At first a property list is created (or cleared), this property list
% stores the units linked to this unit, saves the created property list which contains the
@@ -3021,16 +3212,15 @@
% \begin{macrocode}
\cs_new:Npn \@@_cukeys_create_key_prop:n #1
{
+ \prop_clear:N \l_tmpb_prop
+ \prop_put:NnV \l_tmpb_prop { Liste } \l_tmpa_clist
+ \prop_put:NnV \l_tmpb_prop { prop } \l_tmpa_prop
+ \prop_put:NnV \l_tmpb_prop { Erstes Ding } \l_@@_tmp_unit_tl
\clist_map_inline:Nn \l_tmpa_clist
{
- \prop_clear_new:c { l_@@_cukeys_ ##1 _prop }
- \tl_clear_new:c { l_@@_tmpa_ ##1 _tl }
-% \tl_set:cn { l_@@_tmpa_ ##1 _tl } { 1 }
-% \tl_set:cn { l_@@_tmpa_ ##1 _tl } { \c_one_fp }
+ \prop_clear:c { l_@@_cukeys_ ##1 _prop }
+ \prop_set_eq:cN { l_@@_cukeys_ ##1 _prop } \l_tmpb_prop
\tl_set_eq:cN { l_@@_tmpa_ ##1 _tl } \c_one_fp
- \prop_put:cnV { l_@@_cukeys_ ##1 _prop } { Liste } \l_tmpa_clist
- \prop_put:cnV { l_@@_cukeys_ ##1 _prop } { prop } \l_tmpa_prop
- \prop_put:cnV { l_@@_cukeys_ ##1 _prop } { Erstes Ding } \l_@@_tmp_unit_tl
\clist_map_inline:Nn \l_tmpa_clist
{
\prop_put:cnx { l_@@_cukeys_ ##1 _prop }
@@ -3121,6 +3311,7 @@
\quark_if_recursion_tail_stop:n {#1}
\quark_if_recursion_tail_stop_do:nn {#2}
{ \msg_error:nn { cooking-units } { missing-argument } }
+ \@@_error_if_unit_not_defined:n {#1}
\clist_put_right:Nn \l_tmpa_clist {#1}
\tl_set:Nn \l_tmpa_tl {#2}
\tl_replace_all:NVn \l_tmpa_tl \c_@@_str_hash_one_tl { \l_tmpa_fp }
@@ -3132,7 +3323,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_cusinglekeys_create_key_prop:n #1
{
- \prop_clear_new:c { l_@@_cukeys_ #1 _prop }
+ \prop_clear:c { l_@@_cukeys_ #1 _prop }
\tl_set_eq:cN { l_@@_tmpa_ #1 _tl } \c_one_fp
% \tl_set:cn { l_@@_tmpa_ #1 _tl } { \c_one_fp }
\prop_put:cnV { l_@@_cukeys_ #1 _prop } { Liste } \l_tmpa_clist
@@ -3259,10 +3450,10 @@
\clist_if_in:NnTF \g_@@_list_of_defined_units_clist {#2}
{ \msg_error:nnn { cooking-units } { unit-already-defined } {#2} }
{
+ \clist_put_right:Nn \g_@@_list_of_defined_units_clist {#2}
\tl_new:c { l_@@_tmpa_ #2 _tl }
% \tl_set:cn { l_@@_tmpa_ #2 _tl } { \c_one_fp }
\tl_set_eq:cN { l_@@_tmpa_ #2 _tl } \c_one_fp
- \clist_put_right:Nn \g_@@_list_of_defined_units_clist {#2}
\clist_new:c { l_@@_predefined_option_#2_clist }
\keys_define:nn { cooking - units }
{
@@ -3320,10 +3511,14 @@
\bool_if:NTF \l_@@_parse_input_bool
{
\tl_set:Nn \l_tmpb_tl {#2}
- \tl_replace_once:Nnn \l_tmpb_tl { -- } { \q_@@_range }
- \tl_if_in:NnTF \l_tmpb_tl \q_@@_range
- { \@@_cunum_parse_range:Vn \l_tmpb_tl {#3} }
- { \@@_cutext_print_nummerical_output:Nn \l_tmpb_tl {#3} }
+ \tl_if_in:NVTF \l_tmpb_tl \l_@@_input_range_sign_tl
+ {
+ \tl_replace_once:NVn \l_tmpb_tl \l_@@_input_range_sign_tl { \q_@@_range }
+ \@@_cutext_parse_range:Vn \l_tmpb_tl {#3}
+% \bool_set_true:N \l_@@_parse_range_bool
+ }{
+ \@@_cutext_print_nummerical_output:Nn \l_tmpb_tl {#3}
+ }
}
{#2}
}
@@ -3331,12 +3526,12 @@
% \end{macro}
%
% \begin{macrocode}
-\cs_new:Npn \@@_cunum_parse_range:Nn #1 #2
+\cs_new:Npn \@@_cutext_parse_range:Nn #1 #2
{
- \@@_cunum_parse_range_aux:nww {#2} #1 \q_stop
+ \@@_cutext_parse_range_aux:nww {#2} #1 \q_stop
}
-\cs_generate_variant:Nn \@@_cunum_parse_range:Nn { V }
-\cs_new:Npn \@@_cunum_parse_range_aux:nww #1 #2 \q_@@_range #3 \q_stop
+\cs_generate_variant:Nn \@@_cutext_parse_range:Nn { V }
+\cs_new:Npn \@@_cutext_parse_range_aux:nww #1 #2 \q_@@_range #3 \q_stop
{
\tl_set:Nn \l_@@_tmpa_tl {#2}
\tl_set:Nn \l_@@_tmpb_tl {#3}
@@ -3650,7 +3845,7 @@
{ \@@_error_if_unit_not_defined:n {#1} }
% \deftranslation [ to=\l_@@_language_tl ] { #1 ( cu-unit ) } {#2}
\@@_deftranslation:Vnn \l_@@_language_tl { #1 ( cu-unit ) } {#2}
-cu-unitgender \@@_cuprint_define_printed_unit:nn
+ \@@_cuprint_define_printed_unit:nn
}
% \end{macrocode}
%
@@ -3768,7 +3963,7 @@
{ kcal } { Kilokalorie } [ Kilokalorien ] < f >
{ J } { Joule }
{ kJ } { Kilojoule }
- { eV } { ELektronenvolt } < n >
+ { eV } { Elektronenvolt } < n >
% \end{macrocode}
% \begin{macrocode}
{ Msp } [ Msp. ] { Messerspitze } [ Messerspitzen ] < f >
@@ -3935,8 +4130,9 @@
{ g } { 1000 }
{ oz } { 35.27399 }
{ lb } { 2.204 622 6 } %% 2.204 622 6
+ { eVc-2 } { 560958865.0e+27 } %% 560958865.0 +- 3.5 e+27
}
-\cuaddtokeys { kg } { eVc-2 } { 1.78266173e-16 }
+%\cuaddtokeys { kg } { eVc-2 } { 1.78266173e-16 }
% \end{macrocode}
% \begin{macrocode}
\cudefinekeys { d }
@@ -3944,8 +4140,9 @@
{ h } { 24 }
{ min }{ 1440 }
{ s } { 86400 }
+ { hbareV-1 } { 151926746.1e+7 * 86400 } %% 151926746.1 +- 2.1 e+7
}
-\cuaddtokeys { s } { hbareV-1 } { 6.582119514e-16 }
+%\cuaddtokeys { s } { hbareV-1 } { 6.582119514e-16 }
% \end{macrocode}
% \begin{macrocode}
\cudefinekeys { m }
@@ -3954,8 +4151,9 @@
{ cm } { 100 }
{ mm } { 1000 }
{ in } { 39.370079 }
+ { chbareV-1 } { 5067730.759 } %% 5067730.759 +- 0.070
}
-\cuaddtokeys { m } { chbareV-1 } { 1.97326972e-7 }
+%\cuaddtokeys { m } { chbareV-1 } { 1.97326972e-7 }
% \end{macrocode}
% \begin{macrocode}
\cudefinekeys { l }
@@ -3963,7 +4161,7 @@
{ dl } { 10 }
{ cl } { 100 }
{ ml }{ 1000 }
- { (chbareV-1)3 } { 1.30148943e+17 }
+ { (chbareV-1)3 } { 130148929.5e+12 * 1e-3 } %% (130148929.5 +- 5.4 e+12)*1e-3
}
% \end{macrocode}
% \begin{macrocode}
@@ -3972,8 +4170,9 @@
{ kJ }{ 1e-3 }
{ cal }{ 0.2388459 }
{ kcal }{ 0.2388459e-3 }
+ { eV }{ 624150912.6e+10 } %% 624150912.6 +- 3.9 e+10
}
-\cuaddtokeys { J } { eV } { 1.6021766208e-19 }
+%\cuaddtokeys { J } { eV } { 1.6021766208e-19 }
% \end{macrocode}
% \begin{macrocode}
\fp_const:Nn \c_@@_kb_eV_fp { 8.617 330 3 e-5 }
@@ -4009,10 +4208,10 @@
%
%
% \begin{macrocode}
-\fp_const:Nn \c_@@_K_min_fp { 0 }
-\fp_const:Nn \c_@@_C_min_fp { -273.15 }
-\fp_const:Nn \c_@@_F_min_fp { -459.67 }
-\fp_const:Nn \c_@@_Re_min_fp { -218.52 }
+%\fp_const:Nn \c_@@_K_min_fp { 0 }
+%\fp_const:Nn \c_@@_C_min_fp { -273.15 }
+%\fp_const:Nn \c_@@_F_min_fp { -459.67 }
+%\fp_const:Nn \c_@@_Re_min_fp { -218.52 }
% \end{macrocode}
%
%
@@ -4026,6 +4225,13 @@
set-option-for-C = { round-to-int = true } ,
set-option-for-K = { round-to-int = true } ,
set-option-for-Re = { round-to-int = true } ,
+ add-temperature-to-check =
+ {
+ K = 0,
+ C = -273.15 ,
+ F = -459.67 ,
+ Re = -218.52
+ } ,
}
% \end{macrocode}
%
@@ -4043,42 +4249,4 @@
% Local Variables:
% mode: doctex
% TeX-master: t
-% End:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+% End:
\ No newline at end of file
Modified: trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.ins 2016-09-29 20:34:02 UTC (rev 42180)
+++ trunk/Master/texmf-dist/source/latex/cooking-units/cooking-units.ins 2016-09-29 20:34:14 UTC (rev 42181)
@@ -19,7 +19,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% This work consists of the files README, cooking-units.dtx and cooking-units.ins
+%% This work consists of the files README.md, cooking-units.dtx and cooking-units.ins
%% and the derived file cooking-units.sty.
%%
\input l3docstrip.tex
@@ -39,7 +39,7 @@
This work has the LPPL maintenance status `maintained'.
-This work consists of the files README, cooking-units.dtx and cooking-units.ins
+This work consists of the files README.md, cooking-units.dtx and cooking-units.ins
and the derived file cooking-units.sty.
\endpreamble
@@ -49,7 +49,6 @@
\file{\jobname.sty}{\from{\jobname.dtx}{package}}
}
\endbatchfile
-
\endinput
%%
%% End of file `cooking-units.ins'.
Modified: trunk/Master/texmf-dist/tex/latex/cooking-units/cooking-units.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/cooking-units/cooking-units.sty 2016-09-29 20:34:02 UTC (rev 42180)
+++ trunk/Master/texmf-dist/tex/latex/cooking-units/cooking-units.sty 2016-09-29 20:34:14 UTC (rev 42181)
@@ -19,7 +19,7 @@
%%
%% This work has the LPPL maintenance status `maintained'.
%%
-%% This work consists of the files README, cooking-units.dtx and cooking-units.ins
+%% This work consists of the files README.md, cooking-units.dtx and cooking-units.ins
%% and the derived file cooking-units.sty.
%%
\@ifpackageloaded {xparse}
@@ -30,8 +30,8 @@
{ \RequirePackage {expl3} }
\ProvidesExplPackage
{cooking-units}
- {2016/09/05}
- {1.02}
+ {2016/09/26}
+ {1.03b}
{Ein Paket fuer Kocheinheiten}
\@ifpackagelater { expl3 } { 2016/05/18 }
{ }
@@ -65,9 +65,11 @@
\cs_generate_variant:Nn \tl_replace_all:Nnn { NVn }
\cs_generate_variant:Nn \tl_replace_once:Nnn { NnV, NVn }
\cs_generate_variant:Nn \tl_if_in:nnTF { nVTF }
+\cs_generate_variant:Nn \tl_if_in:NnTF { NVTF }
\cs_generate_variant:Nn \tl_if_in:NnT { NVT }
\cs_generate_variant:Nn \fp_compare:nNnT { cNnT }
\cs_generate_variant:Nn \fp_eval:n { c }
+
\cs_new_eq:NN \__cooking_units_frac:nn \sfrac
\prop_new:N \l__cooking_units_change_unit_prop
\tl_new:N \l__cooking_units_tmpa_tl
@@ -128,6 +130,7 @@
\clist_new:N \l__cooking_units_list_of_defined_keys_clist
\clist_new:N \g__cooking_units_list_of_defined_units_clist
\clist_new:N \g__cooking_units_allowed_unit_phrases_clist
+\clist_new:N \l__cooking_units_temperatures_to_check_clist
\bool_new:N \l__cooking_units_error_bool
\bool_new:N \l__cooking_units_eval_fractions_bool
\bool_new:N \l__cooking_units_parse_input_bool
@@ -197,6 +200,14 @@
input-range-sign .default:n = { -- } ,
check-temperature .bool_set:N = \l__cooking_units_check_temperature_bool ,
check-temperature .default:n = { true } ,
+ add-temperature-to-check .code:n =
+ {
+ \keyval_parse:NNn
+ \__cooking_units_temperature_to_check_print_error:n
+ \__cooking_units_temperatures_to_check_define:nn
+ {#1}
+ },
+ temperature-to-check .value_required:n = { true } ,
convert-to-eV .bool_set:N = \l__cooking_units_convert_to_eV_bool ,
convert-to-eV .default:n = { true } ,
use-numerals-below .int_set:N = \l__cooking_units_print_numerals_below_int ,
@@ -327,9 +338,25 @@
Command \ #1 is \ obsolete. \ Please \ use \ #2 instead.
}
{
- Don't \ use \ the \ old \ command \ ...
+ Don't \ use \ this \ old \ command \ ...
\msg_see_documentation_text:n { cooking-units }
}
+\msg_new:nnnn { cooking - units } { No-Value-given }
+ {
+ Please \ input \ a \ number \ to \ check \ for \
+ 'check-temperature'.
+ }
+ {
+ \msg_see_documentation_text:n { cooking-units }
+ }
+\msg_new:nnnn { cooking - units } { Minimum-already-defined }
+ {
+ A \ minimum \ for \ '#1' \ has \ already \ been \ defined.
+ }
+ {
+ You \ cannot \ redefine \ it.
+ \msg_see_documentation_text:n { cooking-units }
+ }
\cs_new:Npn \__cooking_units_error_if_unit_not_defined:n #1
{
\clist_if_in:NnF \g__cooking_units_list_of_defined_units_clist {#1}
@@ -398,15 +425,29 @@
\deftranslation [ to=#1 ] { #2 } {#3}
}
\cs_generate_variant:Nn \__cooking_units_deftranslation:Nnn { Vnn }
+\cs_new:Npn \__cooking_units_temperature_to_check_print_error:n #1
+ {
+ \msg_error:nn { cooking-units } { No-Value-given }
+ }
+\cs_new:Npn \__cooking_units_temperatures_to_check_define:nn #1#2
+ {
+ \__cooking_units_error_if_unit_not_defined:n {#1}
+ \fp_if_exist:cTF { c__cooking_units_ #1 _min_fp }
+ { \msg_error:nnn { cooking-units } { Minimum-already-defined } {#1} }
+ {
+ \clist_put_right:Nn \l__cooking_units_temperatures_to_check_clist {#1}
+ \fp_const:cn { c__cooking_units_ #1 _min_fp } {#2}
+ }
+ }
\cs_new:Npn \__cooking_units_cunum_parse_input:N #1
{
- \tl_if_in:nnTF {#1} { \q__cooking_units_range }
+ \bool_if:NTF \l__cooking_units_parse_range_bool
{ \__cooking_units_parse_range_in_input:ww #1 \q_stop }
{
\tl_if_in:nnTF {#1} { / }
{
\tl_if_in:nnTF {#1} { _ }
- { \__cooking_units_parse_fraction_in_input:www #1 \q_stop }
+ { \__cooking_units_parse_mixed_fraction_in_input:www #1 \q_stop }
{ \__cooking_units_parse_fraction_in_input:ww #1 \q_stop }
}
{ \__cooking_units_parse_number_in_input:n {#1} }
@@ -420,7 +461,6 @@
}
\cs_new:Npn \__cooking_units_parse_range_in_input:ww #1 \q__cooking_units_range #2 \q_stop
{
- \bool_set_true:N \l__cooking_units_parse_range_bool
\__cooking_units_parse_input_and_safe_in:nN {#1} \l__cooking_units_tmpa_tl
\__cooking_units_parse_input_and_safe_in:nN {#2} \l__cooking_units_tmpb_tl
\__cooking_units_calculate_and_print_input:N \l__cooking_units_tmpa_tl
@@ -442,7 +482,7 @@
{ \l__cooking_units_tmpb_tl }
}
}
-\cs_new:Npn \__cooking_units_parse_fraction_in_input:www #1_#2/#3 \q_stop
+\cs_new:Npn \__cooking_units_parse_mixed_fraction_in_input:www #1_#2/#3 \q_stop
{
\__cooking_units_parse_input_and_safe_in:nN {#1} \l__cooking_units_mixed_fraction_tl
\__cooking_units_parse_input_and_safe_in:nN {#2} \l__cooking_units_tmpa_tl
@@ -568,15 +608,14 @@
}
\cs_new:Npn \__cooking_units_get_number_after_dot_aux:w #1. #2 .
{
- \quark_if_recursion_tail_stop_do:nn {#2}
- { \bool_set_false:N \l_tmpa_bool }
- \int_compare:nNnTF { \tl_count:n {#2} } < {\l__cooking_units_significant_figures_plus_one_int }
- { \bool_set_false:N \l_tmpa_bool }
+ \quark_if_recursion_tail_stop:n {#2}
+ \int_compare:nNnF { \tl_count:n {#2} } < { \l__cooking_units_significant_figures_plus_one_int }
{ \bool_set_true:N \l_tmpa_bool }
\use_none_delimit_by_q_recursion_stop:w
}
\cs_new:Npn \__cooking_units_round_calculated_input:NN #1#2
{
+ \bool_set_false:N \l_tmpa_bool
\__cooking_units_get_number_after_dot:n {#2}
\tl_set:Nf #1
{
@@ -598,7 +637,7 @@
\cs_new:Npn \__cooking_units_formatiere_fractions:nnn #1#2#3
{
\bool_set_true:N \l__cooking_units_fraction_in_input_bool
- \tl_if_blank:nF {#1}
+ \tl_if_empty:nF {#1}
{
#1
\hbox_to_wd:nn { \l__cooking_units_mixed_frac_dim } { }
@@ -609,7 +648,7 @@
{
\bool_if:NT \l__cooking_units_check_temperature_bool
{
- \clist_if_in:nVT { C , F , K , Re } \l__cooking_units_option_unit_tl
+ \clist_if_in:NVT \l__cooking_units_temperatures_to_check_clist \l__cooking_units_option_unit_tl
{
\fp_compare:cNnT
{ c__cooking_units_ \l__cooking_units_option_unit_tl _min_fp } > {#1}
@@ -685,9 +724,11 @@
} {#1}
\tl_if_empty:VF \l_tmpa_tl
{
-%% besser mit boolean arbeiten als nochmals ueberpruefen lassen?
\tl_if_in:NVT \l_tmpa_tl \l__cooking_units_input_range_sign_tl
- { \tl_replace_once:NVn \l_tmpa_tl \l__cooking_units_input_range_sign_tl { \q__cooking_units_range } }
+ {
+ \tl_replace_once:NVn \l_tmpa_tl \l__cooking_units_input_range_sign_tl { \q__cooking_units_range }
+ \bool_set_true:N \l__cooking_units_parse_range_bool
+ }
\__cooking_units_cunum_parse_input:V \l_tmpa_tl
}
\__cooking_units_cunum_print_correct_unit:nnn {#2} {#3} {#4}
@@ -695,7 +736,7 @@
\cs_generate_variant:Nn \__cooking_units_cunum:nnNN { nnVV }
\cs_new:Npn \__cooking_units_cunum_print_correct_unit:nnn #1#2#3
{
- \phantom {#1}
+ \tl_if_empty:nF {#1} { \phantom {#1} }
\tl_use:N \l__cooking_units_value_unit_space_tl
\bool_if:nTF
{
@@ -754,14 +795,15 @@
}
\cs_new:Npn \__cooking_units_cukeys_create_key_prop:n #1
{
+ \prop_clear:N \l_tmpb_prop
+ \prop_put:NnV \l_tmpb_prop { Liste } \l_tmpa_clist
+ \prop_put:NnV \l_tmpb_prop { prop } \l_tmpa_prop
+ \prop_put:NnV \l_tmpb_prop { Erstes Ding } \l__cooking_units_tmp_unit_tl
\clist_map_inline:Nn \l_tmpa_clist
{
- \prop_clear_new:c { l__cooking_units_cukeys_ ##1 _prop }
- \tl_clear_new:c { l__cooking_units_tmpa_ ##1 _tl }
+ \prop_clear:c { l__cooking_units_cukeys_ ##1 _prop }
+ \prop_set_eq:cN { l__cooking_units_cukeys_ ##1 _prop } \l_tmpb_prop
\tl_set_eq:cN { l__cooking_units_tmpa_ ##1 _tl } \c_one_fp
- \prop_put:cnV { l__cooking_units_cukeys_ ##1 _prop } { Liste } \l_tmpa_clist
- \prop_put:cnV { l__cooking_units_cukeys_ ##1 _prop } { prop } \l_tmpa_prop
- \prop_put:cnV { l__cooking_units_cukeys_ ##1 _prop } { Erstes Ding } \l__cooking_units_tmp_unit_tl
\clist_map_inline:Nn \l_tmpa_clist
{
\prop_put:cnx { l__cooking_units_cukeys_ ##1 _prop }
@@ -833,6 +875,7 @@
\quark_if_recursion_tail_stop:n {#1}
\quark_if_recursion_tail_stop_do:nn {#2}
{ \msg_error:nn { cooking-units } { missing-argument } }
+ \__cooking_units_error_if_unit_not_defined:n {#1}
\clist_put_right:Nn \l_tmpa_clist {#1}
\tl_set:Nn \l_tmpa_tl {#2}
\tl_replace_all:NVn \l_tmpa_tl \c__cooking_units_str_hash_one_tl { \l_tmpa_fp }
@@ -841,7 +884,7 @@
}
\cs_new:Npn \__cooking_units_cusinglekeys_create_key_prop:n #1
{
- \prop_clear_new:c { l__cooking_units_cukeys_ #1 _prop }
+ \prop_clear:c { l__cooking_units_cukeys_ #1 _prop }
\tl_set_eq:cN { l__cooking_units_tmpa_ #1 _tl } \c_one_fp
\prop_put:cnV { l__cooking_units_cukeys_ #1 _prop } { Liste } \l_tmpa_clist
\prop_put:cnV { l__cooking_units_cukeys_ #1 _prop } { prop } \l_tmpa_prop
@@ -930,9 +973,9 @@
\clist_if_in:NnTF \g__cooking_units_list_of_defined_units_clist {#2}
{ \msg_error:nnn { cooking-units } { unit-already-defined } {#2} }
{
+ \clist_put_right:Nn \g__cooking_units_list_of_defined_units_clist {#2}
\tl_new:c { l__cooking_units_tmpa_ #2 _tl }
\tl_set_eq:cN { l__cooking_units_tmpa_ #2 _tl } \c_one_fp
- \clist_put_right:Nn \g__cooking_units_list_of_defined_units_clist {#2}
\clist_new:c { l__cooking_units_predefined_option_#2_clist }
\keys_define:nn { cooking - units }
{
@@ -973,19 +1016,22 @@
\bool_if:NTF \l__cooking_units_parse_input_bool
{
\tl_set:Nn \l_tmpb_tl {#2}
- \tl_replace_once:Nnn \l_tmpb_tl { -- } { \q__cooking_units_range }
- \tl_if_in:NnTF \l_tmpb_tl \q__cooking_units_range
- { \__cooking_units_cunum_parse_range:Vn \l_tmpb_tl {#3} }
- { \__cooking_units_cutext_print_nummerical_output:Nn \l_tmpb_tl {#3} }
+ \tl_if_in:NVTF \l_tmpb_tl \l__cooking_units_input_range_sign_tl
+ {
+ \tl_replace_once:NVn \l_tmpb_tl \l__cooking_units_input_range_sign_tl { \q__cooking_units_range }
+ \__cooking_units_cutext_parse_range:Vn \l_tmpb_tl {#3}
+ }{
+ \__cooking_units_cutext_print_nummerical_output:Nn \l_tmpb_tl {#3}
+ }
}
{#2}
}
-\cs_new:Npn \__cooking_units_cunum_parse_range:Nn #1 #2
+\cs_new:Npn \__cooking_units_cutext_parse_range:Nn #1 #2
{
- \__cooking_units_cunum_parse_range_aux:nww {#2} #1 \q_stop
+ \__cooking_units_cutext_parse_range_aux:nww {#2} #1 \q_stop
}
-\cs_generate_variant:Nn \__cooking_units_cunum_parse_range:Nn { V }
-\cs_new:Npn \__cooking_units_cunum_parse_range_aux:nww #1 #2 \q__cooking_units_range #3 \q_stop
+\cs_generate_variant:Nn \__cooking_units_cutext_parse_range:Nn { V }
+\cs_new:Npn \__cooking_units_cutext_parse_range_aux:nww #1 #2 \q__cooking_units_range #3 \q_stop
{
\tl_set:Nn \l__cooking_units_tmpa_tl {#2}
\tl_set:Nn \l__cooking_units_tmpb_tl {#3}
@@ -1195,7 +1241,7 @@
\clist_if_in:NnF \g__cooking_units_allowed_unit_phrases_clist {#1}
{ \__cooking_units_error_if_unit_not_defined:n {#1} }
\__cooking_units_deftranslation:Vnn \l__cooking_units_language_tl { #1 ( cu-unit ) } {#2}
-cu-unitgender \__cooking_units_cuprint_define_printed_unit:nn
+ \__cooking_units_cuprint_define_printed_unit:nn
}
\NewDocumentCommand \cusetup { m }
{
@@ -1267,7 +1313,7 @@
{ kcal } { Kilokalorie } [ Kilokalorien ] < f >
{ J } { Joule }
{ kJ } { Kilojoule }
- { eV } { ELektronenvolt } < n >
+ { eV } { Elektronenvolt } < n >
{ Msp } [ Msp. ] { Messerspitze } [ Messerspitzen ] < f >
{ pn } [ Prise ] { Prise } [ Prisen ] < f >
{ EL } [ EL ] { Essl{\"o}ffel }
@@ -1379,15 +1425,15 @@
{ g } { 1000 }
{ oz } { 35.27399 }
{ lb } { 2.204 622 6 } %% 2.204 622 6
+ { eVc-2 } { 560958865.0e+27 } %% 560958865.0 +- 3.5 e+27
}
-\cuaddtokeys { kg } { eVc-2 } { 1.78266173e-16 }
\cudefinekeys { d }
{
{ h } { 24 }
{ min }{ 1440 }
{ s } { 86400 }
+ { hbareV-1 } { 151926746.1e+7 * 86400 } %% 151926746.1 +- 2.1 e+7
}
-\cuaddtokeys { s } { hbareV-1 } { 6.582119514e-16 }
\cudefinekeys { m }
{
{ dm } { 10 }
@@ -1394,14 +1440,14 @@
{ cm } { 100 }
{ mm } { 1000 }
{ in } { 39.370079 }
+ { chbareV-1 } { 5067730.759 } %% 5067730.759 +- 0.070
}
-\cuaddtokeys { m } { chbareV-1 } { 1.97326972e-7 }
\cudefinekeys { l }
{
{ dl } { 10 }
{ cl } { 100 }
{ ml }{ 1000 }
- { (chbareV-1)3 } { 1.30148943e+17 }
+ { (chbareV-1)3 } { 130148929.5e+12 * 1e-3 } %% (130148929.5 +- 5.4 e+12)*1e-3
}
\cudefinekeys { J }
{
@@ -1408,8 +1454,8 @@
{ kJ }{ 1e-3 }
{ cal }{ 0.2388459 }
{ kcal }{ 0.2388459e-3 }
+ { eV }{ 624150912.6e+10 } %% 624150912.6 +- 3.9 e+10
}
-\cuaddtokeys { J } { eV } { 1.6021766208e-19 }
\fp_const:Nn \c__cooking_units_kb_eV_fp { 8.617 330 3 e-5 }
\cudefinesinglekey { C }
{
@@ -1439,10 +1485,6 @@
{ F } { #1 * 2.25 + 32 }
{ eV } { ( #1 * 1.25 + 273.15 ) * \c__cooking_units_kb_eV_fp }
}
-\fp_const:Nn \c__cooking_units_K_min_fp { 0 }
-\fp_const:Nn \c__cooking_units_C_min_fp { -273.15 }
-\fp_const:Nn \c__cooking_units_F_min_fp { -459.67 }
-\fp_const:Nn \c__cooking_units_Re_min_fp { -218.52 }
\cusetup
{
set-option-for-F = { round-to-int = true } ,
@@ -1449,8 +1491,14 @@
set-option-for-C = { round-to-int = true } ,
set-option-for-K = { round-to-int = true } ,
set-option-for-Re = { round-to-int = true } ,
+ add-temperature-to-check =
+ {
+ K = 0,
+ C = -273.15 ,
+ F = -459.67 ,
+ Re = -218.52
+ } ,
}
-
\endinput
%%
%% End of file `cooking-units.sty'.
More information about the tex-live-commits
mailing list