Directory macros/generic/texdimens
texdimens
Copyright and License
Copyright (c) 2021 Jean-François Burnol
This file is part of the texdimens package distributed (see file LICENSE.md) under the LPPL 1.3c.
Release: 1.1 2021/11/17
Usage
Utilities and documentation related to TeX dimensional units, usable:
- with Plain TeX:
\input texdimens
- with LaTeX:
\usepackage{texdimens}
Development and issue tracking: https://github.com/jfbu/texdimens
Aim of this package
The aim of this package is to provide facilities to express dimensions (or dimension expressions evaluated by \dimexpr
) using the various available TeX units, to the extent possible.
Macros of this package (summary)
This package provides expandable macros:
\texdimenUU
withUU
standing for one ofpt
,bp
,cm
,mm
,in
,pc
,cc
,nc
,dd
andnd
,\texdimenUUup
and\texdimenUUdown
withUU
as above exceptpt
,\texdimenbothincm
and relatives,\texdimenbothbpmm
and relatives,\texdimenwithunit
.
\texdimenbp
takes on input some dimension or dimension expression and produces on output a decimal D
such that D bp
is guaranteed to be the same dimension as the input, if it admits any representation as E bp
; else it will be either the closest match from above or from below. For this unit, as well as for nd
and dd
the difference is at most 1sp
. For other units (not pt
of course) the distance will usually be larger than 1sp
and one does not know if the approximant from the other direction would have been better or worst.
The variants \texdimenbpup
and \texdimenbpdown
expand slightly less fast than \texdimenbp
but they allow to choose the direction of approximation (in absolute value).
The macros associated to the other units have the same descriptions.
\texdimenbothincm
, respectively \texdimenbothbpmm
, find the largest (in absolute value) dimension not exceeding the input and exactly representable both with the in
and cm
units, respectively exactly representable both with the bp
and mm
units.
\texdimenwithunit{<dimen1>}{<dimen2>}
produces a decimal D
such that D \dimexpr dimen2\relax
is parsed by TeX into the same dimension as dimen1
if this is at all possible. If dimen2<1pt
all TeX dimensions dimen1
are attainable. If dimen2>1pt
not all dimen1
are attainable. If not attainable, the decimal D
will ensure a closest match from below or from above but one does not know if the approximation from the other direction is better or worst.
In a sense, this macro divides <dimen1>
by <dimen2>
, see additional details in the complete macro description.
Acknowledgements
Thanks to Denis Bitouzé for raising an issue on the LaTeX3 tracker which became the initial stimulus for this package.
Thanks to Ruixi Zhang for reviving the above linked-to thread and opening up on the package issue tracker the issue #2 asking to add handling of the ex
and em
cases. This was done at release 0.99
via the addition of \texdimenwithunit
.
Renewed thanks to Ruixi Zhang for analyzing at issue #10 what is at stake into finding dimensions exactly representable both in the bp
and mm
units. Macros \texdimenbothbpmm
and \texdimenbothmmbp
now address this (release 1.0
).
Download the contents of this package in one zip archive (132.1k).
texdimens – Conversion of TeX dimensions to decimals
Utilities and documentation related to TeX dimensional units, usable both with Plain (\input texdimens) and with LaTeX (\usepackage{texdimens}).
Package | texdimens |
Bug tracker | https://github.com/jfbu/texdimens/issues |
Repository | https://github.com/jfbu/texdimens |
Version | 1.1 2021-11-17 |
Licenses | The LaTeX Project Public License 1.3c |
Copyright | 2021 Jean-François Burnol |
Maintainer | Jean-François Burnol |
Contained in | TeX Live as texdimens MiKTeX as texdimens |
Topics | Units e-TeX |