Modèle:Val/Documentation
This template is used to easily present values in scientific notation, including uncertainty and/or units, as prescribed by Wikipedia's Manual of Style.
Sommaire
Introduction
Val specializes in numeric values, especially those with scientific notations, uncertainty notations, and those with measurement values with physical units. Because these expressions are covered by the Manual of Style, Val provides the stylized output for you, and keeps them from wrapping across lines.
Express a numeral:
-
{{val|123456.78901}}
→ value, formated with gaps: Modèle:val/delimitnum/logic, or with Modèle:para → Modèle:val/delimitnum/logic. -
{{val|number|number}}
→ value ± uncertainty, like Modèle:val/delimitnum/logic±Modèle:val/delimitnum/logic -
{{val|number|Modèle:hilitenumberModèle:hilite}}
→ value(uncertainty), like Modèle:val/delimitnum/logic(56). -
{{val|number|number|number}}
→value Modèle:su like Modèle:val/delimitnum/logicModèle:su2
Express a measurement value: Erreur de script. The m2 is a "unit code" that Val uses to lookup the link to the unit's article, and the formatting of the unit symbol. Val links the units to the page it has on file for them. See Modèle:tl.
There are a large number of unit codes that Val understands and keeps "up to code". A unit code is the just abbreviated unit name, but these can get quite involved for a compound or composite unit, with "multipliers" or "dividers". See Module:Val/units.
Some unit-code flexibility is provided by having four parameters to work the unit-code system: whether to link one or not, (see Overlinking), and whether to link the numerator or denominator of a unit ratio separately.
-
{{val|number|ul=unit code}}
→ number Modèle:font color, such as Modèle:val/delimitnum/logic Modèle:val/unitswithlink -
{{val|number|u=unit code}}
→ number symbol -
{{val|number|u=unit code|uModèle:hilitel=unit code}}
→ number symbolModèle:bigModèle:font color, such as Modèle:val/delimitnum/logic Modèle:val/units/Modèle:val/unitswithlink -
{{val|number|ul=unit code|uModèle:hilite=unit code}}
→ number Modèle:font colorModèle:bigsymbol, such as Modèle:val/delimitnum/logic Modèle:val/unitswithlink/Modèle:val/units
To bypass the unit code system, if Modèle:para does not recognize your unit code, it will accept any wikitext and render it as usual.
- Erreur de script
- Erreur de script
See Module:Val/units for how to add units to the unit code system.
Sometimes a number and unit code is not enough. A prefix or suffix are also available, Modèle:para and Modèle:para.
- Erreur de script
- Erreur de script
See Modèle:tl to learn the val parameters by an example. It's comprehensive, and there's over 100 examples.
Arguments
Modèle:details Val takes three unnamed parameters. The first is always the numeric value. When the second and third are numbers they become the various uncertainty notations, but the second unnamed parameter can also serve to grammatically join the first and third numbers.
Val clears surrounding spaces in its unnamed parameters.
1Modèle:sup | A number in decimal point notation or in e notation. The main basis of the Val expression. Defaults to 10Modèle:sup. Erreur de script |
Modèle:para | Format strings of digits. Accepts Modèle:para for the integer part, but commas ignores the fractional part. Defaults to gaps, except for four digits. Four digits accept Modèle:para. Erreur de script. |
Modèle:para | Put something at the end of the main number (before anything else that might follow). Erreur de script |
2Modèle:sup |
Uncertainty in either format. Erreur de script |
3Modèle:sup | Asymmetric uncertainty. Erreur de script |
Modèle:para or Modèle:para and Modèle:para | Appends something after an uncertainty. Erreur de script. |
Modèle:para or Modèle:para | The unit code. Val adds a space and the unit. Modèle:para Link the unit. |
Modèle:para or Modèle:para | A unit code, but Instead of a space Val adds a slash and the unit, a "per" unit (the denominator), to form a ratio. Modèle:para Link the per unit. |
Modèle:para | Prefix the entire Val expression. Non-spaced, but accepts markup. Erreur de script |
Modèle:para | Suffix the entire Val expression. Non-spaced, but accepts markup. Erreur de script |
Modèle:para | Exponential. Val also accepts e notation. Erreur de script |
Modèle:para | Usually a unit is the short ton and billion means Modèle:val/delimitnum/logic×10Modèle:su2. But there are long versions of these units and others. Use Modèle:para to assign your unit to the long scale instead. The unit code's link will change and it will sort differently in tables. "See Long and short scales". |
Modèle:para | If set to any value, errors in the use of this template will not cause the page to be added to the Pages with incorrect formatting templates use category. This is useful for documentation and test pages that do not need to be fixed. |
Errors
There is strict checking on the validity of arguments; any incorrect use will result in an error, which is displayed using Modèle:tl. Pages that contain incorrect use of this template will show up on Category:Pages with incorrect formatting templates use.
Val checks for unsupported parameters and gives a relatively subtle warning if found. See tracking category to track any of these improper usages on existing on the wiki. Hold the mouse over "warning" to see details. Here is what warnings look like:
{{val|1.23|exp=6|u=m/s}}
→ Modèle:val/sandboxlua{{val|1.23|us=kbit/s}}
→ Modèle:val/sandboxlua{{val|1.23|.05|.04|.03|u=m/s}}
→ Modèle:val/sandboxlua
Format of numbers
Modèle:tl produces formatting compliant with Wikipedia's Manual of Style.
The MOS recommends that numbers either be delimited using thin spaces either side of the decimal, or commas to the left and no delimiters to the right. Articles should be consistent with respect to the style of delimiting. The template defaults to the former style, this can be adjusted using |fmt=
(see above).
Sorting
The sort key for each sortable unit is visible at Template:Val/list.
Here is a live example showing the minimal markup for a sortable table:
{| class="sortable" ! Val sort test |- | {{val|3|ul= Mm }} |- | {{val|5e6|u= m }} |- | {{val|1|u= km }} |- | {{val|2e3|u= m }} |- | {{val|4|u= m }} |} |
A sort value relates to a Val expression as follows.
- The numeric value is a starting point.
- If the unit has an SI Prefix, that order of magnitude is applied.
- The value of the unit from its own system of units is applied.
- If the unit is composite, each subunit is multiplied or divided per there dimension.
- The result is passed to Modèle:tl which applies a normalization formula.
- The output of Modèle:tlf is added (behaviorally only, i.e. "hidden") into the table as usual, via the data-sort-value attribute of a table.
More example expressions
- Number
Erreur de script
.{{val|Modèle:spaces1234567.1234567Modèle:spaces}}.
→ .
Modèle:val/delimitnum/logic.
Erreur de script
Erreur de script
Erreur de script
- Uncertainty
Erreur de script
Erreur de script
Erreur de script
- Units
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
- Exponents
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
Erreur de script
- Prefix/suffix
Erreur de script
Erreur de script
Erreur de script
- Numerator/Denominator
Erreur de script
- Even more examples
See the testcases at Modèle:tl.
Performance impact
Val is now a module. Modules have excellent performance compared to the normal template that uses parser functions.
Performance data is reported by MediaWiki software in the HTML page source of every page, and a very similar report is available on any preview page, below the edit box, titles "Parser profile data".
For uses in any page, even long list articles, Module:Val will have very little impact on page-load times.
FAQ and comments
- Q: Why should I use Val?
- A1: Val formats numbers:
- inserts spaces between groups of digits, meeting MoS standards.
- formats standard uncertainties in measurements, providing a ± character, correct spacing, and correct alignment
- formats exponents of 10 and scientific notation
- replaces "-" (hyphen) with a "−" (minus sign)
- A2: Val preserves spacing:
- It makes sure the value does not wrap at the end of a line, so that it can always be read as a single value on one line in the text.
- It spaces the various parts of the value where they should be
- A3: Configuring Val gives you your own code for automating the markup for, and a link to, any units in the entire Encyclopedia.
- A4: Val helps make Wikipedia more consistent. It adheres to the Wikipedia Manual of Style for numbers. Updates to the MoS can be applied to this template, and result in automatic modification on values that use it. All this makes sure all values on all pages have the same look and feel because they will all use the same spacing, font size, positioning, etc, and makes updating and checking by the bots easier because they can recognize a value for what it is.
- Q: Why not use <math>?
- A: For the same reasons HTML might be preferred over TeX:
- Because the font in math tags differs both in face and size from the prose, which can disturb the layout of a page when used inline with the prose.
- You cannot cut and paste a bitmap image rendered by the Latex.
- Images are slower to load and use more bandwidth, which is especially bad for the mobile version of Wikipedia.
- <math> does not automatically easily align to the Manual of Style for numbers.
- Q: Are there any known issues with Val?
- A1: This template is now a new Lua module as of Aug 6, 2015. Technically, there is no good reason not to try Val.
- A2: Issues are solved rapidly by an active set of responsive template coders. See the talk page.
- Q: How should I use Val?
- A1: Val probably already has your unit on its current list. If not, add your own unit there.
- A2: To avoid over linking switch from Modèle:para to Modèle:para and from Modèle:para to Modèle:para.
- A3: Any time you have a unit to link or a table to sort, Val already setup with that unit's link and sorting value.
- A3: Use Val along with Modèle:tl. See how to add units to Convert.
- A4: Where consistent styling of long list articles, with many hundreds or thousands of numbers or units is needed.
See also