summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/showdim/showdim.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/showdim/showdim.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/showdim/showdim.sty')
-rw-r--r--macros/latex/contrib/showdim/showdim.sty97
1 files changed, 97 insertions, 0 deletions
diff --git a/macros/latex/contrib/showdim/showdim.sty b/macros/latex/contrib/showdim/showdim.sty
new file mode 100644
index 0000000000..1bf74accc9
--- /dev/null
+++ b/macros/latex/contrib/showdim/showdim.sty
@@ -0,0 +1,97 @@
+% Copyright 1999 Michael John Downes.
+% Copyright 2012 TeX Users Group.
+% This file is part of the showdim package.
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "unmaintained".
+%
+% There are only two files in this package: showdim.sty and README.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{showdim}[2012/12/18 v1.2]
+
+% Print dimen in points, rounded to the nearest tenth.
+%
+\newcommand{\tenthpt}[1]{\dimen@#1\relax
+% Round up to the nearest tenth, by half-adding:
+ \advance\dimen@ \ifdim\dimen@<\z@-\fi .05\p@
+ \expandafter\tenth@extract\the\dimen@ pt}
+
+% Print dimen in picas, rounded to the nearest tenth.
+%
+\newcommand{\tenthpc}[1]{\dimen@#1\relax
+% Round up to the nearest tenth
+ \advance\dimen@ \ifdim\dimen@<\z@-\fi .05pc%
+ \divide\dimen@ 12 \expandafter\tenth@extract\the\dimen@ pc}
+
+% Print dimen in picas, rounded to the nearest hundredth.
+%
+\newcommand{\hundredthpc}[1]{\dimen@#1\relax
+% Round up to the nearest hundredth
+ \advance\dimen@ \ifdim\dimen@<\z@-\fi .005pc%
+ \divide\dimen@ 12 \expandafter\hundredth@extract\the\dimen@ pc}
+
+% Print dimen in tenths of a pica and whole points.
+%
+\newcommand{\tenthpcpt}[1]{\tenthpc{#1} (\points{#1})}
+
+% Print dimen in points and tenths of a pica.
+%
+\newcommand{\pttenthpc}[1]{\points{#1} (\tenthpc{#1})}
+
+% Print dimen in points followed by the equivalent in picas (to
+% two decimal places).
+%
+\newcommand{\pthundredthpc}[1]{\points{#1} (\hundredthpc{#1})}
+
+% Print dimen truncated to one place after the decimal point
+% (maximum).
+%
+\edef\@tempa#1pt{#1\string p\string t}\@tempa
+\def\tenth@extract#1.#2#3pt{#1\ifnum#2=\z@ \else.#2\fi}
+
+% Print dimen truncated to two places after the decimal point
+% (maximum).
+%
+\edef\@tempa#1pt{#1\string p\string t}\@tempa
+\def\hundredth@extract#1.#2#3pt{#1\h@extract#2#300\@nil}
+
+% Extract a hundredths value: .0 is converted to "", .1 and .10 are both
+% converted to ".1", and .03 or .93 are printed as is.
+%
+\def\h@extract#1#2#3\@nil{%
+ \ifnum#1#2=\z@ \else.#1\ifnum#2=\z@ \else#2\fi\fi}
+
+% Print dimen rounded to the nearest whole point.
+%
+\newcommand{\points}[1]{\dimen@#1\relax
+ \advance\dimen@ \ifdim\dimen@<\z@-\fi .5\p@
+ \expandafter\wholepart@extract\the\dimen@\@nil pt}
+
+% Convert a negative point value to a positive value, for use in
+% messages such as "height of box A is \negpoints{\dimen@} less
+% than height of box B", where the negativity is conveyed by the
+% word "less" and therefore the minus sign should be removed from
+% the actual value that is printed in order not to be redundant.
+%
+\newcommand{\negpoints}[1]{\points{-#1}}
+
+% Print dimen converted to the nearest whole pica.
+%
+\newcommand{\picas}[1]{\dimen@#1\relax
+ \advance\dimen@ \ifdim\dimen@<\z@-\fi .5pc%
+ \divide\dimen@ 12 \expandafter\wholepart@extract\the\dimen@\@nil pc}
+
+% Extract the whole part of a decimal number (i.e. the part before
+% the decimal point.)
+%
+\def\wholepart@extract#1.#2\@nil{#1}
+
+\endinput %