summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/jlabels/jlabels.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/jlabels/jlabels.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/jlabels/jlabels.sty')
-rw-r--r--macros/latex/contrib/jlabels/jlabels.sty143
1 files changed, 143 insertions, 0 deletions
diff --git a/macros/latex/contrib/jlabels/jlabels.sty b/macros/latex/contrib/jlabels/jlabels.sty
new file mode 100644
index 0000000000..fa892aa595
--- /dev/null
+++ b/macros/latex/contrib/jlabels/jlabels.sty
@@ -0,0 +1,143 @@
+%% This is jlabels.sty written by Jamal K. Tartir.
+%%
+%% jktartir@hotmail.com
+%%
+%% A latex package designed to make letter-sized pages of labels.
+%%
+%% Copyright 2011 by Jamal K. Tartir.
+%%
+%% All rights reserved.
+%%
+%% This file may be modified for individual use.
+%%
+%% A modified version of this file my not be
+%% distributed under its original name.
+
+%% Alternately, this work may be distributed and/or modified
+%% under the conditions of the LaTeX Project Public License.
+
+%%%%% PACKAGES %%%%%
+
+\RequirePackage{calc}
+\RequirePackage{ifthen}
+\RequirePackage{pstricks}
+\RequirePackage{etoolbox}
+
+%%%%% NEW LENGTHS %%%%%
+
+\newlength{\jlabelHorizontalPitch}
+\newlength{\jlabelVerticalPitch}
+
+%%%%% COUNTERS %%%%%
+
+\newcounter{jlabelxcoordinate}
+\newcounter{jlabelycoordinate}
+\newcounter{jlabelNumberOfRowsPerPage}
+\newcounter{jlabelNumberOfColumnsPerPage}
+\newcounter{jlabelNumberOfLabelsPerPage}
+\newcounter{jlabelNumberOfLabelsOnThisPage}
+\newcounter{jlabelNumberOfTimesThisLabel}
+
+%%%%% DEFINITIONS %%%%%
+
+\def\jlabeljustify{l}
+
+\def\jlabelfillstylec{%
+\gdef\setjlabelcoordinates{%
+\setcounter{jlabelxcoordinate}{%
+\value{jlabelNumberOfLabelsOnThisPage}/\value{jlabelNumberOfRowsPerPage}}%
+\setcounter{jlabelycoordinate}{%
+(\value{jlabelxcoordinate}*\value{jlabelNumberOfRowsPerPage})
+-\value{jlabelNumberOfLabelsOnThisPage}}}}
+
+\def\jlabelfillstyler{%
+\gdef\setjlabelcoordinates{%
+\setcounter{jlabelycoordinate}{%
+-\value{jlabelNumberOfLabelsOnThisPage}/\value{jlabelNumberOfColumnsPerPage}}
+\setcounter{jlabelxcoordinate}{%
+(\value{jlabelycoordinate}*\value{jlabelNumberOfColumnsPerPage})
++\value{jlabelNumberOfLabelsOnThisPage}}}}
+
+%%%%% COMMANDS %%%%%
+
+\newcommand{\jlabelLengths}[9][1in]{%
+%% #1: Units
+%% #2: Left Margin
+%% #3: Top Margin
+%% #4: Label Width
+%% #5: Label Height
+%% #6: Number of Rows
+%% #7: Number of Columns
+%% #8: Horizontal Gap
+%% #9: Vertical Gap
+%
+\setlength{\voffset}{-1in}
+\setlength{\hoffset}{-1in}
+\setlength{\textwidth}{8in}
+\setlength{\oddsidemargin}{0pt}
+\setlength{\evensidemargin}{0pt}
+\setlength{\headheight}{0pt}
+\setlength{\marginparsep}{0pt}
+\setlength{\footskip}{0pt}
+\setlength{\topmargin}{0pt}
+\setlength{\headsep}{0pt}
+\setlength{\marginparwidth}{0pt}
+\setlength{\marginparpush}{0pt}
+%
+\setlength{\unitlength}{#1}%
+%
+\setlength{\jlabelHorizontalPitch}{#4\unitlength}
+\setlength{\jlabelVerticalPitch}{#5\unitlength}
+%
+\addtolength{\hoffset}{#2\unitlength}
+\addtolength{\hoffset}{.5\jlabelHorizontalPitch}
+\setlength{\textheight}{#3\unitlength}
+\addtolength{\textheight}{.5\jlabelVerticalPitch}
+\addtolength{\jlabelHorizontalPitch}{#8\unitlength}
+\addtolength{\jlabelVerticalPitch}{#9\unitlength}
+%
+\setcounter{jlabelNumberOfRowsPerPage}{#6}
+\setcounter{jlabelNumberOfColumnsPerPage}{#7}
+\setcounter{jlabelNumberOfLabelsPerPage}{#6*#7}
+%
+\psset{xunit=\jlabelHorizontalPitch}
+\psset{yunit=\jlabelVerticalPitch}}
+
+\newcommand{\beginjlabels}[1][c]{%
+\csexpandonce{jlabelfillstyle#1}%
+\xdef\thisjlabelfillstyle{#1}%
+\thispagestyle{empty}%
+
+\setcounter{jlabelNumberOfLabelsOnThisPage}{0}
+
+\text{ }
+
+\vfill
+
+\noindent%
+\begin{pspicture}(0,0)}
+
+\def\endjlabels{\end{pspicture}}
+
+\newcommand{\jlabelt}[2][1]{%
+%
+\setcounter{jlabelNumberOfTimesThisLabel}{0}%
+\whiledo{\value{jlabelNumberOfTimesThisLabel}<#1}{%
+%
+\ifthenelse{%
+\value{jlabelNumberOfLabelsOnThisPage}<\value{jlabelNumberOfLabelsPerPage}}%
+{}{\endjlabels\newpage\beginjlabels[\thisjlabelfillstyle]}%
+%
+\setjlabelcoordinates%
+%
+\rput(\value{jlabelxcoordinate},\value{jlabelycoordinate})%
+{\begin{tabular}{\jlabeljustify}#2\end{tabular}}%
+%
+\addtocounter{jlabelNumberOfLabelsOnThisPage}{1}%
+%
+\addtocounter{jlabelNumberOfTimesThisLabel}{1}}%% end whiledo
+}
+
+\newcommand{\myjlabel}[2]{\csgdef{myjlabeladdress#1}{#2}}
+
+\newcommand{\jlabel}[2][1]{\jlabelt[#1]{\csexpandonce{myjlabeladdress#2}}}