Changes

Jump to navigation Jump to search
2,965 bytes added ,  16:33, 28 May 2020
m
no edit summary
< [[Math]] [[Physics]] >
The units module comes with ConTeXt's default distribution, and can be accessed via <cmd>usemodule</cmd>[units]. However, in MkIV we have integrated an upgrade to this mechanism so if you're using that version you might want to skip this first part. Additional documentation about units in MkIV is available from the [[http://www.pragma-ade.com/general/manuals/units-mkiv.pdf Units manual]] The following is copied from the source file <tt>[[source:m-units.tex|m-units.tex</tt> ]] and only slightly modified:
----
* Scientific units can be typeset in math mode pretty well, but occasionally one has to take care of spacing.
Furthermore, entering these units is not that natural as wanted. Therefore this module presents a more natural way of doing things, like:
<texcodecontext source="yes">\usemodule[units]
1.23 \Cubic \Meter \Per \Second
</texcodecontext> This example shows that we use the order in which we say things, instead of typeset things. There is no dedicated manual for this module, but an article (in dutch) has been published in [[http://www.ntg.nl/maps/pdf/21_16.pdf Maps#21]], the journal of the NTG.  * This runtime loadable module implements a way of defining units. The core macro is <cmd>dimension</cmd>, a rather clever one that is able to cooperate with some other dimension related macros. As said, this module enables user to enter: <context source="yes">\usemodule[units]Some 10 \Square \Meter \Per \Second\ or more.</context>
This example shows (Note that we use the order in which we say thingsspace after <cmd>Second</cmd> needs to be explicitly specified; otherwise, instead of typeset things. There is a separate [http://www.pragma-ade.com/general/manuals/ manual for this module]it will get eaten. )
--> link is dead, couldn't find the manual --[[User:Hraban|Hraban]]
This runtime loadable module implements a way of defining units. The core macro * Units act upon signals that they insert in the text, in case no quantity is given you need to start the unit sequence using <cmd>dimensionUnit</cmd>, a rather clever one that is able to cooperate with some other dimension related macros. As said, this module enables user to enter:
<texcodecontext source="yes">some 10 \Square usemodule[units]Units of measurement is \Meter Unit \Per Milli \Second or moreMeter</texcodecontext>
The units itself are implemented as synonyms.
This definition means that we can ask for the meaning of a unit using <cmd>unitmeaning</cmd> and get a list of used units by saying <cmd>placelistofunits</cmd>.
We have to use the command <cmd>unitmeaning</cmd> instead of <cmd>meaning</cmd>, simply because the latter is a TeX primitive we don't want to looselose. We use the label text mechanism for translations.
----
===Macros defined in units===
External link: [[https://www.easyunitconverter.com/ Easy Unit Converter]] * ModifiersPrefixes: <cmd>SquareAtto</cmd>a, <cmd>Cubic</cmd>, <cmd>InverseFemto</cmd>f, <cmd>Pico</cmd>p, <cmd>Nano</cmd>n, <cmd>Micro</cmd>μ, <cmd>Milli</cmd>m, <cmd>Centi</cmd>c, <cmd>Deci</cmd>d, <cmd>Hecto</cmd>h, <cmd>Kilo</cmd>k, <cmd>Mega</cmd>M, <cmd>Giga</cmd>G, <cmd>Tera</cmd>T, <cmd>Peta</cmd> P, <cmd>Exa</cmd> E (missing: <cmd>Zetta</cmd> Z, <cmd>Yotta</cmd> Y, <cmd>Zepto</cmd> z, <cmd>Yocto</cmd> y)* Suffixes: <cmd>Linear</cmd> <sup>1</sup>, <cmd>Square</cmd> <sup>2</sup>, <cmd>Cubic</cmd> <sup>3</sup>, <cmd>Inverse</cmd> or <cmd>ILinear</cmd> <sup>-1</sup>, <cmd>ISquare</cmd> <sup>-2</sup>, <cmd>ICubic</cmd> <sup>-3</sup>
* Fraction: <cmd>Per</cmd>, <cmd>Percent</cmd>, <cmd>Permille</cmd>, <cmd>Promille</cmd>
* Time: <cmd>Second</cmd>, <cmd>Minute</cmd>, <cmd>Hour</cmd>, <cmd>Day</cmd>, <cmd>Month</cmd>, <cmd>Year</cmd>
* Length, Area, Volume: <cmd>Meter</cmd>, <cmd>Angstrom</cmd>, <cmd>Foot</cmd>, <cmd>Inch</cmd>, <cmd>Liter</cmd>
* Mass, Force and Pressure: <cmd>Gram</cmd>, <cmd>Atom</cmd>, <cmd>Newton</cmd>, <cmd>Pascal</cmd>, <cmd>Mol</cmd>, , <cmd>atAt</cmd>, <cmd>Atm</cmd>, <cmd>Bar</cmd>, <cmd>Force</cmd>* Energy , Electricity and ElectricityMagnetism: <cmd>Joule</cmd>, <cmd>Watt</cmd>, <cmd>Cal</cmd>, <cmd>Farad</cmd>, <cmd>Henry</cmd>, <cmd>Ohm</cmd>, <cmd>Siemens</cmd>, <cmd>Ampere</cmd>, <cmd>Coulomb</cmd>, <cmd>Volt</cmd>, <cmd>Tesla</cmd>, <cmd>Gauss</cmd>, <cmd>VoltAC</cmd>, <cmd>VoltDC</cmd>, <cmd>EVolt</cmd>, <cmd>Weber</cmd>
* Temperature: <cmd>Degrees</cmd>, <cmd>Kelvin</cmd>, <cmd>Celsius</cmd>, <cmd>Fahrenheit</cmd>
* Angle: <cmd>Rad</cmd>, <cmd>Deg</cmd>, <cmd>Sterant</cmd>
* Frequency, Optics and Acoustics: <cmd>Hertz</cmd>, <cmd>RevPerSec</cmd>, <cmd>RevPerMin</cmd>, <cmd>Candela</cmd>, <cmd>Lux</cmd>, <cmd>Bell</cmd>
* Chemistry and Radiation: <cmd>Atom</cmd>, <cmd>Mol</cmd>, <cmd>Molair</cmd>, <cmd>Equivalent</cmd>, <cmd>Bequerel</cmd>, <cmd>Sievert</cmd>, <cmd>Gray</cmd>
* Informatics: <cmd>Baud</cmd>, <cmd>Bit</cmd>, <cmd>Byte</cmd>
* Other (please sort in): <cmd>Gray</cmd>, <cmd>Weber</cmd>, <cmd>Henry</cmd>, <cmd>Sterant</cmd>, <cmd>Gauss</cmd>
* some old dutch (not listed)
 
===Define a new unit===
 
<context source="yes">
\usemodule[units]
\unit[Mynewunit]{Nu}{New Unit}
 
10 \Mynewunit
 
</context>
 
===Using the built-in command===
 
In MkIV you can use the built-in <cmd>unit</cmd> command. This time we don't use commands, if only because it is somewhat cumbersome. Let's give a few examples:
 
<texcode>
10 \unit{km/h}
\unit{10 km/h}
\unit{~1 km/h}
\unit{KiloMeter/Hour}
\unit{10 cubic meter / second}
\unit{kilo pascal square meter / second}
\unit{kilo pascal square meter / kelvin second }$
\unit{10 AC}
$\frac{10 \unit{m/s}}{20 \unit{m/s}}$
{\ss 30 \unit{kilo pascal square meter / second kelvin}}
\unit{123.22^-3 km/s}
\unit{123.22e-3 km/s}
</texcode>
 
ConTeXt will take care of spacing and formatting. The parser is fairly flexible, and the following all work and give the same output.
 
{|
! width="45%"|
! width="10%"|
! width="45%"|
|-
| <texcode>
\unit{10 kg}
\unit{10kg}
\unit{10 kilo gram}
\unit{10 kilogram}
\unit{10 Kilo Gram}
\unit{10 KiloGram}
</texcode>
|
|<context mode=mkiv>
\starttext
\startlines
\unit{10 kg}
\unit{10kg}
\unit{10 kilo gram}
\unit{10 kilogram}
\unit{10 Kilo Gram}
\unit{10 KiloGram}
\stoplines
\stoptext
</context>
|}
 
The command works in text as well as in math mode and spaces are normally ignored. You can define your own command:
 
<texcode>
\defineunits[un][alternative=text,separator=medium]
</texcode>
 
Valid separators are <code>cdot</code>, <code>big</code>, <code>medium</code>, and <code>space</code> with the first being the default. You can later tune the rendering with
 
<texcode>
\setupunits[un][separator=cdot]
</texcode>
 
In due time there will be a few more options. Numbers are formatted cf the digits mechanism (not discussed here).
 
 
 
[[Category:Math]]
[[Category:Modules]]

Navigation menu