summaryrefslogtreecommitdiff
path: root/macros/xetex/latex/bidipagegrid/bidipagegrid.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/xetex/latex/bidipagegrid/bidipagegrid.sty')
-rw-r--r--macros/xetex/latex/bidipagegrid/bidipagegrid.sty444
1 files changed, 444 insertions, 0 deletions
diff --git a/macros/xetex/latex/bidipagegrid/bidipagegrid.sty b/macros/xetex/latex/bidipagegrid/bidipagegrid.sty
new file mode 100644
index 0000000000..4965243a9d
--- /dev/null
+++ b/macros/xetex/latex/bidipagegrid/bidipagegrid.sty
@@ -0,0 +1,444 @@
+%%
+%% This is file `bidipagegrid.sty'.
+%%
+%% __________________________________________________
+%% Copyright © 2014 Vafa Khalighi <persian-tex@tug.org>
+%%
+%% It may be distributed and/or modified under the LaTeX Project Public License,
+%% version 1.3c or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%%
+%% This work is “author-maintained” (as per LPPL maintenance status)
+%% by Vafa Khalighi.
+%%
+%%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \expandafter\let\expandafter\x\csname ver@bidipagegrid.sty\endcsname
+ \ifx\x\relax % plain-TeX, first loading
+ \else
+ \def\empty{}%
+ \ifx\x\empty % LaTeX, first loading,
+ % variable is initialized, but \ProvidesPackage not yet seen
+ \else
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
+ \else
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
+ \fi
+ \x{bidipagegrid}{The package is already loaded}%
+ \aftergroup\endinput
+ \fi
+ \fi
+\endgroup%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode40=12 % (
+ \catcode41=12 % )
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode47=12 % /
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode91=12 % [
+ \catcode93=12 % ]
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \expandafter\ifx\csname ProvidesPackage\endcsname\relax
+ \def\x#1#2#3[#4]{\endgroup
+ \immediate\write-1{Package: #3 #4}%
+ \xdef#1{#4}%
+ }%
+ \else
+ \def\x#1#2[#3]{\endgroup
+ #2[{#3}]%
+ \ifx#1\@undefined
+ \xdef#1{#3}%
+ \fi
+ \ifx#1\relax
+ \xdef#1{#3}%
+ \fi
+ }%
+ \fi
+\expandafter\x\csname ver@bidipagegrid.sty\endcsname
+\ProvidesPackage{bidipagegrid}%
+ [2014/07/13 v0.2 Print bidi page grid in background]%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
+ \def\x{\endgroup
+ \expandafter\edef\csname bidipagegrid@AtEnd\endcsname{%
+ \endlinechar=\the\endlinechar\relax
+ \catcode13=\the\catcode13\relax
+ \catcode32=\the\catcode32\relax
+ \catcode35=\the\catcode35\relax
+ \catcode61=\the\catcode61\relax
+ \catcode64=\the\catcode64\relax
+ \catcode123=\the\catcode123\relax
+ \catcode125=\the\catcode125\relax
+ }%
+ }%
+\x\catcode61\catcode48\catcode32=10\relax%
+\catcode13=5 % ^^M
+\endlinechar=13 %
+\catcode35=6 % #
+\catcode64=11 % @
+\catcode123=1 % {
+\catcode125=2 % }
+\def\TMP@EnsureCode#1#2{%
+ \edef\bidipagegrid@AtEnd{%
+ \bidipagegrid@AtEnd
+ \catcode#1=\the\catcode#1\relax
+ }%
+ \catcode#1=#2\relax
+}
+\TMP@EnsureCode{9}{10}% (tab)
+\TMP@EnsureCode{10}{12}% ^^J
+\TMP@EnsureCode{33}{12}% !
+\TMP@EnsureCode{34}{12}% "
+\TMP@EnsureCode{36}{3}% $
+\TMP@EnsureCode{38}{4}% &
+\TMP@EnsureCode{39}{12}% '
+\TMP@EnsureCode{40}{12}% (
+\TMP@EnsureCode{41}{12}% )
+\TMP@EnsureCode{42}{12}% *
+\TMP@EnsureCode{43}{12}% +
+\TMP@EnsureCode{44}{12}% ,
+\TMP@EnsureCode{45}{12}% -
+\TMP@EnsureCode{46}{12}% .
+\TMP@EnsureCode{47}{12}% /
+\TMP@EnsureCode{58}{12}% :
+\TMP@EnsureCode{59}{12}% ;
+\TMP@EnsureCode{60}{12}% <
+\TMP@EnsureCode{62}{12}% >
+\TMP@EnsureCode{63}{12}% ?
+\TMP@EnsureCode{91}{12}% [
+\TMP@EnsureCode{93}{12}% ]
+\TMP@EnsureCode{94}{7}% ^ (superscript)
+\TMP@EnsureCode{95}{8}% _ (subscript)
+\TMP@EnsureCode{96}{12}% `
+\TMP@EnsureCode{124}{12}% |
+\edef\bidipagegrid@AtEnd{\bidipagegrid@AtEnd\noexpand\endinput}
+\RequirePackage{tikz}
+\RequirePackage{atbegshi}[2009/12/02]
+\RequirePackage{kvoptions}[2009/07/17]
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname stockwidth\endcsname\relax
+ \def\bidipagegrid@width{\paperwidth}%
+ \def\bidipagegrid@height{\paperheight}%
+\else
+ \def\bidipagegrid@width{\stockwidth}%
+ \def\bidipagegrid@height{\stockheight}%
+\fi
+\SetupKeyvalOptions{%
+ family=bidipagegrid,%
+ prefix=bidipagegrid@,%
+}
+\def\bidipagegrid@init{%
+ \let\bidipagegrid@origin@a\@empty
+ \let\bidipagegrid@origin@b\@empty
+ \let\bidipagegrid@init\relax
+}
+\let\bidipagegrid@@init\bidipagegrid@init
+\def\bidipagegrid@origin@a{%
+ \ifnum\bidipagegrid@direction=\z@%
+ bl%
+ \else%
+ \ifnum\bidipagegrid@direction=\@ne%
+ br%
+ \fi%
+ \fi%
+}
+\def\bidipagegrid@origin@b{%
+ \ifnum\bidipagegrid@direction=\z@%
+ tr%
+ \else%
+ \ifnum\bidipagegrid@direction=\@ne%
+ tl%
+ \fi%
+ \fi%
+}
+\def\bidipagegrid@SetOrigin#1{%
+ \bidipagegrid@init
+ \ifx\bidipagegrid@origin@a\@empty
+ \def\bidipagegrid@origin@a{#1}%
+ \else
+ \ifx\bidipagegrid@origin@b\@empty
+ \else
+ \let\bidipagegrid@origin@a\bidipagegrid@origin@b
+ \fi
+ \def\bidipagegrid@origin@b{#1}%
+ \fi
+}
+\def\bidipagegrid@temp#1{%
+ \DeclareVoidOption{#1}{\bidipagegrid@SetOrigin{#1}}%
+ \@namedef{bidipagegrid@N@#1}{#1}%
+}
+\bidipagegrid@temp{bl}
+\bidipagegrid@temp{br}
+\bidipagegrid@temp{tl}
+\bidipagegrid@temp{tr}
+\def\bidipagegrid@temp#1#2{%
+ \DeclareVoidOption{#2}{\bidipagegrid@SetOrigin{#1}}%
+}%
+\bidipagegrid@temp{bl}{lb}
+\bidipagegrid@temp{br}{rb}
+\bidipagegrid@temp{tl}{lt}
+\bidipagegrid@temp{tr}{rt}
+\bidipagegrid@temp{bl}{bottom-left}
+\bidipagegrid@temp{br}{bottom-right}
+\bidipagegrid@temp{tl}{top-left}
+\bidipagegrid@temp{tr}{top-right}
+\bidipagegrid@temp{bl}{left-bottom}
+\bidipagegrid@temp{br}{right-bottom}
+\bidipagegrid@temp{tl}{left-top}
+\bidipagegrid@temp{tr}{right-top}
+\DeclareBoolOption[true]{enable}
+\DeclareComplementaryOption{disable}{enable}
+\DeclareBoolOption{foreground}
+\newlength{\bidipagegrid@step}
+\define@key{bidipagegrid}{step}{%
+ \setlength{\bidipagegrid@step}{#1}%
+}
+\DeclareStringOption[red]{firstcolor}
+\DeclareStringOption[blue]{secondcolor}
+\DeclareBoolOption[true]{arrows}
+\newlength\bidipagegrid@arrowlength
+\bidipagegrid@arrowlength=\z@
+\define@key{bidipagegrid}{arrowlength}{%
+ \setlength{\bidipagegrid@arrowlength}{#1}%
+}
+\define@key{bidipagegrid}{double}[true]{%
+ \@ifundefined{bidipagegrid@double@#1}{%
+ \PackageWarning{bidipagegrid}{%
+ Unsupported value `#1' for option `double'.\MessageBreak
+ Known values are:\MessageBreak
+ `false', `first', `last', `true'.\MessageBreak
+ Now `false' is used%
+ }%
+ \chardef\bidipagegrid@double\z@
+ }{%
+ \chardef\bidipagegrid@double\csname bidipagegrid@double@#1\endcsname\relax
+ }%
+}
+\@namedef{bidipagegrid@double@false}{0}
+\@namedef{bidipagegrid@double@first}{1}
+\@namedef{bidipagegrid@double@last}{2}
+\@namedef{bidipagegrid@double@true}{2}
+\chardef\bidipagegrid@double\z@
+
+\define@key{bidipagegrid}{direction}[RTL]{%
+ \@ifundefined{bidipagegrid@direction@#1}{%
+ \PackageWarning{bidipagegrid}{%
+ Unsupported value `#1' for option `direction'.\MessageBreak
+ Known values are:\MessageBreak
+ `LTR', `RTL'.\MessageBreak
+ Now `RTL' is used%
+ }%
+ \chardef\bidipagegrid@direction\@ne
+ }{%
+ \chardef\bidipagegrid@direction\csname bidipagegrid@direction@#1\endcsname\relax
+ }%
+}
+\@namedef{bidipagegrid@direction@LTR}{0}
+\@namedef{bidipagegrid@direction@RTL}{1}
+\chardef\bidipagegrid@direction\@ne
+
+\newcommand*{\bidipagegridsetup}{%
+ \let\bidipagegrid@init\bidipagegrid@@init
+ \setkeys{bidipagegrid}%
+}
+\bidipagegridsetup{%
+ step=1mm%
+}
+\InputIfFileExists{bidipagegrid.cfg}{}%
+\ProcessKeyvalOptions*\relax
+\AtBeginDocument{%
+ \ifdim\bidipagegrid@arrowlength>\z@
+ \else
+ \bidipagegrid@arrowlength=10\bidipagegrid@step
+ \fi
+}
+\def\bidipagegridShipoutDoubleBegin{%
+ \begingroup
+ \let\newlabel\@gobbletwo
+ \let\zref@newlabel\@gobbletwo
+ \let\@writefile\@gobbletwo
+ \let\select@language\@gobble
+}
+\def\bidipagegridShipoutDoubleEnd{%
+ \endgroup
+}
+\def\bidipagegrid@WriteDouble#1#2{%
+ \immediate\write#1{%
+ \@backslashchar csname %
+ bidipagegridShipoutDouble#2%
+ \@backslashchar endcsname%
+ }%
+}
+\def\bidipagegrid@ShipoutDouble#1{%
+ \begingroup
+ \if@filesw
+ \bidipagegrid@WriteDouble\@mainaux{Begin}%
+ \ifx\@auxout\@partaux
+ \bidipagegrid@WriteDouble\@partaux{Begin}%
+ \def\bidipagegrid@temp{%
+ \bidipagegrid@WriteDouble\@mainaux{End}%
+ \bidipagegrid@WriteDouble\@partaux{End}%
+ }%
+ \else
+ \def\bidipagegrid@temp{%
+ \bidipagegrid@WriteDouble\@mainaux{End}%
+ }%
+ \fi
+ \else
+ \def\bidipagegrid@temp{}%
+ \fi
+ \let\protect\noexpand
+ \AtBeginShipoutOriginalShipout\copy#1\relax
+ \bidipagegrid@temp
+ \endgroup
+}
+
+
+\newcommand*{\bidipagegrid@x@coordinate}{%
+ \ifnum\bidipagegrid@direction=\z@%
+ 0%
+ \else%
+ \ifnum\bidipagegrid@direction=\@ne%
+ \strip@pt\textwidth%
+ \fi%
+ \fi%
+}
+
+\newcommand*{\setLTRpagegrid}{\chardef\bidipagegrid@direction\z@}
+\newcommand*{\setRTLpagegrid}{\chardef\bidipagegrid@direction\@ne}
+
+\AtBeginShipout{%
+ \ifdim\bidipagegrid@step>\z@
+ \else
+ \bidipagegrid@enablefalse
+ \fi
+ \ifbidipagegrid@enable
+ \ifnum\bidipagegrid@double=\@ne
+ \bidipagegrid@ShipoutDouble\AtBeginShipoutBox
+ \else
+ \ifnum\bidipagegrid@double=\tw@
+ \@ifundefined{bidipagegrid@DoubleBox}{%
+ \newbox\bidipagegrid@DoubleBox
+ }{}%
+ \setbox\bidipagegrid@DoubleBox=\copy\AtBeginShipoutBox
+ \fi
+ \fi
+ \ifbidipagegrid@foreground
+ \expandafter\AtBeginShipoutUpperLeftForeground
+ \else
+ \expandafter\AtBeginShipoutUpperLeft
+ \fi
+ {%
+ \put(\bidipagegrid@x@coordinate,0){%
+ \makebox(0,0)[lt]{%
+ \begin{tikzpicture}[%
+ bl/.style={},%
+ br/.style={xshift=\bidipagegrid@width,xscale=-1},%
+ tl/.style={yshift=\bidipagegrid@height,yscale=-1},%
+ tr/.style={xshift=\bidipagegrid@width,%
+ yshift=\bidipagegrid@height,scale=-1}%
+ ]%
+ \useasboundingbox
+ (0mm,\bidipagegrid@height) rectangle (0mm,\bidipagegrid@height);%
+ \draw[%
+ \bidipagegrid@origin@a,%
+ step=\bidipagegrid@step,%
+ style=help lines,%
+ ultra thin%
+ ] (0mm,0mm) grid (\bidipagegrid@width,\bidipagegrid@height);%
+ \ifx\bidipagegrid@origin@b\@empty
+ \else
+ \draw[%
+ \bidipagegrid@origin@b,%
+ step=10\bidipagegrid@step,%
+ {\bidipagegrid@secondcolor},%
+ very thin%
+ ] (0mm,0mm) grid (\bidipagegrid@width,\bidipagegrid@height);%
+ \fi
+ \draw[%
+ \bidipagegrid@origin@a,%
+ step=10\bidipagegrid@step,%
+ {\bidipagegrid@firstcolor},%
+ very thin%
+ ] (0mm,0mm) grid (\bidipagegrid@width,\bidipagegrid@height);%
+ \ifx\bidipagegrid@origin@b\@empty
+ \else
+ \draw[%
+ \bidipagegrid@origin@b,%
+ step=50\bidipagegrid@step,%
+ {\bidipagegrid@secondcolor},%
+ thick%
+ ] (0mm,0mm) grid (\bidipagegrid@width,\bidipagegrid@height);%
+ \fi
+ \draw[%
+ \bidipagegrid@origin@a,%
+ step=50\bidipagegrid@step,%
+ {\bidipagegrid@firstcolor},%
+ thick%
+ ] (0mm,0mm) grid (\bidipagegrid@width,\bidipagegrid@height);%
+ \ifbidipagegrid@arrows
+ \ifx\bidipagegrid@origin@b\@empty
+ \else
+ \draw[%
+ \bidipagegrid@origin@b,%
+ {\bidipagegrid@secondcolor},%
+ stroke,%
+ line width=1pt,%
+ line cap=round%
+ ] (0mm,0mm) %
+ -- (\bidipagegrid@arrowlength,\bidipagegrid@arrowlength) %
+ (\bidipagegrid@arrowlength,.5\bidipagegrid@arrowlength) %
+ -- (\bidipagegrid@arrowlength,\bidipagegrid@arrowlength) %
+ -- (.5\bidipagegrid@arrowlength,\bidipagegrid@arrowlength);%
+ \fi
+ \draw[%
+ \bidipagegrid@origin@a,%
+ {\bidipagegrid@firstcolor},%
+ stroke,%
+ line width=1pt,%
+ line cap=round%
+ ] (0mm,0mm) %
+ -- (\bidipagegrid@arrowlength,\bidipagegrid@arrowlength) %
+ (\bidipagegrid@arrowlength,.5\bidipagegrid@arrowlength) %
+ -- (\bidipagegrid@arrowlength,\bidipagegrid@arrowlength) %
+ -- (.5\bidipagegrid@arrowlength,\bidipagegrid@arrowlength);%
+ \fi
+ \end{tikzpicture}%
+ }%
+ }%
+ }%
+ \ifnum\bidipagegrid@double=\tw@
+ \bidipagegrid@ShipoutDouble\bidipagegrid@DoubleBox
+ \fi
+ \fi
+}
+\bidipagegrid@AtEnd%
+\endinput
+%%
+%% End of file `bidipagegrid.sty'.