%% rulerbox.sty %% Copyright 2019 Yuchang Yang < yang.yc.allium@gmail.com > % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % 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 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is Yuchang Yang. % % This work consists of the files rulerbox.sty, rulerbox.tex and % the generated manual file rulerbox.pdf. %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{rulerbox}[2019/04/18 v1.01 package rulerbox] \makeatletter \def\vb@xt@{\vbox to} \newdimen\rulerunit \rulerunit=1mm \newdimen\rulerwidth \rulerwidth=7pt \newdimen\rulersep \rulersep=3pt \newdimen\rtickrule \rtickrule=.4pt \newdimen\dim@margin \newdimen\dim@total@height \newdimen\dim@depth \def\ruler@vcells#1#2{% \leaders\vb@xt@#1\rulerunit{% \kern-.5\rtickrule \hrule\@height\rtickrule\@width#2\rulerwidth \vss}% \vfill\kern-#1\rulerunit} \def\ruler@hcells#1#2{% \leaders\hb@xt@#1\rulerunit{% \kern-.5\rtickrule \vrule\@width\rtickrule\@height#2\rulerwidth \hss}% \hfill\kern-#1\rulerunit} \newif\ifrulertop \rulertoptrue \newif\ifrulerbottom \rulerbottomtrue \newif\ifrulerleft \rulerlefttrue \newif\ifrulerright \rulerrighttrue \newif\ifruler@t \newif\ifruler@b \newif\ifruler@l \newif\ifruler@r \newbox\box@content \newbox\box@ruler@left \newbox\box@ruler@right \newbox\box@ruler@top \newbox\box@ruler@bottom \def\rulerbox{% \let\ifruler@t\ifrulertop \let\ifruler@b\ifrulerbottom \let\ifruler@l\ifrulerleft \let\ifruler@r\ifrulerright \@ifnextchar[%] {\ruler@box@option}{\ruler@box}} \def\ruler@box@option[#1]{% \ruler@tfalse \ruler@bfalse \ruler@lfalse \ruler@rfalse \@tfor\@iterator:=#1\do{\csname ruler@\@iterator true\endcsname}% \ruler@box} \long\def\ruler@box#1{% \leavevmode \setbox\box@content=\hbox{#1}% \dim@margin=\rulerwidth \advance\dim@margin\rulersep \dim@total@height=\ht\box@content \advance\dim@total@height\dp\box@content \dim@depth=\dp\box@content \ifruler@b \advance\dim@depth\dim@margin \fi \rulers@prepare \ruler@box@ } \def\rulers@prepare{% \ifruler@l\setbox\box@ruler@left=\hbox{\lower\dp\box@content\hbox{% \ooalign{% \vb@xt@\dim@total@height{\ruler@vcells{10}{1. }}\cr \hidewidth\vb@xt@\dim@total@height{\ruler@vcells{ 5}{ .75}}\cr \hidewidth\vb@xt@\dim@total@height{\ruler@vcells{ 1}{ .5 }}\cr }% }}\fi% \ifruler@r\setbox\box@ruler@right=\hbox{\lower\dp\box@content\hbox{% \ooalign{% \vb@xt@\dim@total@height{\ruler@vcells{10}{1. }}\cr \vb@xt@\dim@total@height{\ruler@vcells{ 5}{ .75}}\hidewidth\cr \vb@xt@\dim@total@height{\ruler@vcells{ 1}{ .5 }}\hidewidth\cr }% }}\fi% \ifruler@t\setbox\box@ruler@top=\hbox{% \ooalign{% \hb@xt@\wd\box@content{\ruler@hcells{10}{1 }}\cr \hb@xt@\wd\box@content{\ruler@hcells{ 5}{ .75}}\cr \hb@xt@\wd\box@content{\ruler@hcells{ 1}{ .5 }}\cr }% }\fi% \ifruler@b\setbox\box@ruler@bottom=\hbox{% \ooalign{% \vb@xt@\rulerwidth{\hb@xt@\wd\box@content{\ruler@hcells{10}{1 }}\vss}\cr \vb@xt@\rulerwidth{\hb@xt@\wd\box@content{\ruler@hcells{ 5}{ .75}}\vss}\cr \vb@xt@\rulerwidth{\hb@xt@\wd\box@content{\ruler@hcells{ 1}{ .5 }}\vss}\cr }% }\fi} \def\ruler@box@{% \lower\dim@depth\hbox{% \ifruler@l\kern\dim@margin\fi \vbox{% \ifruler@t \box\box@ruler@top \nointerlineskip \kern\rulersep \fi \hbox{% \ifruler@l \kern-\dim@margin \box\box@ruler@left \kern\rulersep \fi \box\box@content \ifruler@r \kern\rulersep \box\box@ruler@right \kern-\dim@margin \fi }% \ifruler@b \nointerlineskip \kern\rulersep \box\box@ruler@bottom \fi \kern\z@ }% \ifruler@r\kern\dim@margin\fi }} \makeatother %% %% End of file `rulerbox.sty'