%!TEX program = lualatex % Copyright (c) 2021 Thomas Jenni % Permission is hereby granted, free of charge, to any person obtaining a copy % of this software and associated documentation files (the "Software"), to deal % in the Software without restriction, including without limitation the rights % to use, copy, modify, merge, publish, distribute, sublicense, and/or sell % copies of the Software, and to permit persons to whom the Software is % furnished to do so, subject to the following conditions: % The above copyright notice and this permission notice shall be included in all % copies or substantial portions of the Software. % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR % IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, % FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE % AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER % LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE % SOFTWARE. \documentclass{article} \usepackage{luacode} \usepackage{siunitx} \usepackage{amsmath} % siunitx config \sisetup{ output-decimal-marker = {.}, per-mode = symbol, separate-uncertainty = false, add-decimal-zero = true, exponent-product = \cdot, round-mode=off } % empty unit \DeclareSIUnit\unitless{} \DeclareSIUnit\inch{in} % init lua-physical \begin{luacode} physical = require("physical") N = physical.Number \end{luacode} \newcommand{\q}[1]{% \directlua{tex.print(physical.Quantity.tosiunitx(#1,"add-decimal-zero=true,scientific-notation=fixed,exponent-to-prefix=false"))}% } \newcommand{\qs}[1]{% \directlua{tex.print(physical.Quantity.tosiunitx(#1,"scientific-notation=true,exponent-to-prefix=false,round-integer-to-decimal=true"))}% } \newcommand{\qt}[1]{% \directlua{tex.print(physical.Quantity.tosiunitx(#1,"scientific-notation=engineering,exponent-to-prefix=true,round-integer-to-decimal=true"))}% } \newcommand{\qn}[1]{% \directlua{tex.print(physical.Quantity.tosiunitx(#1,"add-decimal-zero=true,scientific-notation=fixed,exponent-to-prefix=false",1))}% } \newcommand{\qu}[1]{% \directlua{tex.print(physical.Quantity.tosiunitx(#1,nil,2))}% } \begin{document} \section*{Example for the {\tt lua-physical} package}. Compile this Lua\LaTeX file with the command `{\tt lualatex lua-physical\_example.tex}'. \begin{enumerate} \begin{luacode} a = 12 * _cm b = 150 * _mm c = 1.5 * _m V = ( a * b * c ):to(_dm^3) \end{luacode} \item Find the volume of a cuboid with lengths $\q{a}$, $\q{b}$ and $\q{c}$. % \begin{equation*} V= a \cdot b \cdot c = \q{a} \cdot \q{b} \cdot \q{c} = \underline{\q{V}} \end{equation*} \begin{luacode} l = 12 * _in \end{luacode} \item Convert $\q{l}$ to the unit $\qu{_cm}$. % \begin{equation*} l = \q{l} \cdot \frac{\q{_in:to(_cm)}}{\qu{_in}} = \q{l:to(_cm)} \end{equation*} \begin{luacode} N.omitUncertainty = true d = N(1,0.0001) * ( _au ):to(_km) v = N(1,0.0001) * ( _c ):to(_km/_s) t = ( d/v ):to(_min) \end{luacode} \item Calculate the time, a lightray travels from the surface of the sun to the earth. The mean distance from the sun to the eart is $\qs{d}$. The speed of light is $\q{v}$. % \begin{equation*} t = \frac{d}{v} = \frac{\qs{d}}{\q{v}} = \underline{\q{t}} \end{equation*} \end{enumerate} \end{document}