summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/platex-tools
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-10-15 22:50:51 +0000
committerKarl Berry <karl@freefriends.org>2016-10-15 22:50:51 +0000
commit177eef25dd40b669810a53bb5c853ae7473ddbe1 (patch)
tree2678cb1a125a1d140de36493bd64185bf3437325 /Master/texmf-dist/tex/latex/platex-tools
parentcc71c12ada0ba4aa27acbb3ec40efa37826064fc (diff)
platex-tools (15oct16)
git-svn-id: svn://tug.org/texlive/trunk@42263 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/platex-tools')
-rw-r--r--Master/texmf-dist/tex/latex/platex-tools/plextarray.sty102
-rw-r--r--Master/texmf-dist/tex/latex/platex-tools/plextdelarray.sty48
-rw-r--r--Master/texmf-dist/tex/latex/platex-tools/pxeverysel.sty145
-rw-r--r--Master/texmf-dist/tex/latex/platex-tools/pxeveryshi.sty28
-rw-r--r--Master/texmf-dist/tex/latex/platex-tools/pxftnright.sty132
5 files changed, 455 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/platex-tools/plextarray.sty b/Master/texmf-dist/tex/latex/platex-tools/plextarray.sty
new file mode 100644
index 00000000000..210dba5dee6
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/platex-tools/plextarray.sty
@@ -0,0 +1,102 @@
+%
+% plextarray.sty
+% written by Hironobu Yamashita (@aminophen)
+%
+% This package is part of the platex-tools bundle.
+% https://github.com/aminophen/platex-tools
+%
+% This package `plextarray.sty' is based on:
+% * array.sty in latex-tools (2016/10/06 v2.4d)
+% * plext.sty in platex (2016/08/20 v1.2a)
+% and lltjext.sty from LuaTeX-ja project.
+%
+
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{plextarray}
+ [2016/10/07 v1.0f Tabular extension package for plext and array]
+\RequirePackage{plext}
+\RequirePackage{array}
+
+%% save definitions from array.sty
+\def\array{\col@sep\arraycolsep
+ \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\def\@halignto{}%
+ \@tabarray}
+\def\tabular{\def\@halignto{}\@tabular}
+\expandafter\def\csname tabular*\endcsname#1{%
+ \setlength\dimen@{#1}%
+ \edef\@halignto{to\the\dimen@}\@tabular}
+
+%% patching internal code for array.sty and plext.sty
+%
+\def\@startpbox#1{\bgroup
+ \box@dir\adjustbaseline %% added
+ \hsize=#1\@arrayparboxrestore
+ \everypar{%
+ \vrule \@height \ht\@arstrutbox \@width \z@
+ \everypar{}}%
+ }
+%
+\def\@tabarray{\@ifnextchar<\p@tabarray{\p@tabarray<Z>}}
+%
+%% merged \@array (from array.sty) and \p@array (from plext.sty)
+\def\p@array<#1>[#2]#3{%
+ %%%%% new code for box direction
+ \let\box@dir\relax
+ \iftdir
+ \if #1y\relax
+ \let\box@dir\yoko
+ \@tempcnta=\z@ % \(y)strutbox
+ \else\if #1z\relax
+ \@rotswtrue
+ \let\box@dir\tate
+ \@tempcnta=\tw@ % \zstrutbox
+ \else
+ \let\box@dir\tate
+ \@tempcnta=\@ne % \tstrutbox
+ \fi\fi
+ \else
+ \if #1t\relax
+ \let\box@dir\tate
+ \@tempcnta=\@ne % \tstrutbox
+ \else
+ \let\box@dir\yoko
+ \@tempcnta=\z@ % \(y)strutbox
+ \fi
+ \fi
+ %%%%% new code end
+ \setbox \@arstrutbox \hbox{\box@dir %% add \box@dir
+ % the behavior of \strutbox may be changed
+ % (box resister -> conditional macro) in the future;
+ % so, \strutbox should appear after \box@dir is applied.
+ \@tempcntb=\ifcase\@tempcnta\strutbox
+ \or\tstrutbox\or\zstrutbox\or\@ctrerr\fi
+ \@tempdima \ht \@tempcntb
+ \advance \@tempdima by\extrarowheight
+ \vrule \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \@tempcntb
+ \@width \z@}%
+ \fork@array@option<#1>[#2]% %% merged from plext
+ \begingroup
+ \@mkpream{#3}%
+ % following definition of \@preamble is from plext (\edef -> \xdef),
+ % but it's not the same as the one in array; why?
+ \xdef\@preamble{\ialign \noexpand \@halignto
+ \bgroup \tabskip \z@skip \@arstrut \@preamble
+ \tabskip \z@skip \cr}%
+ \endgroup
+ \@arrayleft
+ \@begin@alignbox %% defined inside \fork@array@option
+ \bgroup
+ \box@dir\adjustbaseline
+ \let\par\@empty
+ \let\@sharp##\let\protect\relax
+ \let\\\@arraycr\let\tabularnewline\\
+ \lineskip\z@skip\baselineskip\z@skip\@preamble}
+%
+\def\endarray{\crcr \egroup \egroup \@end@alignbox \@arrayright \gdef\@preamble{}}
+\def\endtabular{\endarray $\egroup\null}
+\expandafter \let \csname endtabular*\endcsname = \endtabular
+%
+%% all done
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/platex-tools/plextdelarray.sty b/Master/texmf-dist/tex/latex/platex-tools/plextdelarray.sty
new file mode 100644
index 00000000000..b81a88b3323
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/platex-tools/plextdelarray.sty
@@ -0,0 +1,48 @@
+%
+% plextdelarray.sty
+% written by Hironobu Yamashita (@aminophen)
+%
+% This package is part of the platex-tools bundle.
+% https://github.com/aminophen/platex-tools
+%
+% This package `plextdelarray.sty' is based on:
+% * delarray.sty in latex-tools (2014/10/28 v1.01)
+% * plext.sty in platex (2016/08/20 v1.2a)
+%
+
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{plextdelarray}
+ [2016/09/11 v1.0 array delimiter package for plext and delarray]
+\RequirePackage{plextarray}
+\RequirePackage{delarray}
+
+%% patching internal code for array.sty and plext.sty
+%
+\def\@tabarray{\@ifnextchar<\p@tabarray{\p@tabarray<Z>}}
+%
+%% adopt from \p@tabarray (from plext.sty)
+\def\p@tabarray<#1>{\m@th\@ifnextchar[%]
+ {\p@@array<#1>}{\p@@array<#1>[c]}}
+%
+%% adopt from \@@array (from delarray.sty)
+\def\p@@array<#1>[#2]{\@ifnextchar\bgroup
+ {\let\@arrayleft\relax\let\@arrayright\relax\p@array<#1>[#2]}%
+ {\p@del@array<#1>[#2]}}
+%
+%% adopt from \@del@array (from delarray.sty)
+\def\p@del@array<#1>[#2]#3#4#5{%
+ \setbox\z@\hbox{$\left#3\right#5$}%
+ \if#2c\def\@arrayleft{\left#3}\def\@arrayright{\right#5}%
+ \else\def\@arrayleft{\setbox\z@=\hbox\bgroup}% !!!
+ \def\@arrayright{\egroup% !!!
+ \dimen@=\dp\z@
+ \advance\dimen@-\ht\z@
+ \divide \dimen@ by \tw@
+ \advance\dimen@ by\fontdimen22 \textfont\tw@
+ \lower\dimen@\hbox{$\left#3\vcenter{\box\z@}\right#5$}}% !!!
+ \fi
+ \p@array<#1>[#2]{#4}}
+%
+%% all done
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/platex-tools/pxeverysel.sty b/Master/texmf-dist/tex/latex/platex-tools/pxeverysel.sty
new file mode 100644
index 00000000000..c73a8c4b657
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/platex-tools/pxeverysel.sty
@@ -0,0 +1,145 @@
+%
+% pxeverysel.sty
+% originally written by Takayuki Yato (ZR)
+% and modified by Hironobu Yamashita
+%
+% This package is distributed as part of the platex-tools bundle
+% maintained by Hironobu Yamashita
+% by courtesy of the original author.
+% https://github.com/aminophen/platex-tools
+%
+
+%% package declaration
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pxeverysel}
+ [2016/09/09 v0.4 Patch to everysel for (u)pLaTeX]
+
+%% if ctex classes/packages are already loaded, exit silently
+\ifdefined\CTEXoptions % defined at least CTeX 2007/05/06
+ \expandafter\endinput
+\fi
+
+%% preparations
+\def\pxys@pkgname{pxeverysel}
+\def\pxys@warn{\PackageWarningNoLine\pxys@pkgname}
+
+%% load it
+\RequirePackage{everysel}
+
+%% support for (u)pLaTeX font tracing
+\@ifpackageloaded{tracefnt}{%
+ \ifx\kanjiskip\@undefined\else\ifx\ucs\@undefined
+ \RequirePackage{ptrace}\else\RequirePackage{uptrace}\fi\fi}{}
+
+%--------------------------------------- helpers
+
+%% unique tokens
+\def\pxys@mark{\pxys@mark@}
+\def\pxys@fin{\pxys@fin@}
+
+%% \pxys@patch@cmd\CMD{<pre>}{<post>}{<new>}
+\@onlypreamble\pxys@patch@cmd
+\def\pxys@patch@cmd#1#2#3#4{%
+ \def\pxys@next##1#2##2#3##3\pxys@mark##4\pxys@fin{%
+ \ifx\pxys@mark##4\pxys@mark
+ \let\pxys@fragment\relax
+ \else
+ \def\pxys@fragment{##2}%
+ \def#1{##1#4##3}%
+ \fi}%
+ \expandafter\pxys@next#1\pxys@mark#2#3\pxys@mark\pxys@fin}
+
+%% \pxys@append@to\CSa\CSb
+\@onlypreamble\pxys@append@to
+\def\pxys@append@to#1#2{%
+ \expandafter\g@addto@macro\expandafter#1\expandafter{#2}}
+
+%% \pxys@term
+\let\pxys@term\relax
+
+%---------------------------------------
+
+%% variables
+\let\pxys@self@hook\@empty
+\let\pxys@everysel@hook\@empty
+\@onlypreamble\pxys@selectfont
+\let\pxys@selectfont\relax
+\@onlypreamble\pxys@org@selectfont
+\let\pxys@org@selectfont\relax
+\@onlypreamble\pxys@new@selectfont
+\let\pxys@new@selectfont\relax
+
+%% \@EverySelectfont@Init redefined
+\@onlypreamble\pxys@EverySelectfont@Init
+\let\pxys@EverySelectfont@Init\@EverySelectfont@Init
+\def\@EverySelectfont@Init{%
+ \pxys@preproc
+ \pxys@EverySelectfont@Init
+ \pxys@postproc}
+
+%% \pxys@preproc
+\@onlypreamble\pxys@preproc
+\def\pxys@preproc{%
+ % prepare
+ \expandafter\let\expandafter\pxys@selectfont
+ \csname selectfont \endcsname
+ \let\pxys@org@selectfont\pxys@selectfont
+ % extract "pre-\size@update" insertion
+ \pxys@append@to\pxys@selectfont\pxys@term
+ \pxys@patch@cmd\pxys@selectfont
+ {\pickup@font\font@name}{\size@update\pxys@term}% % plfonts/ptrace
+ {\pickup@font\font@name\pxys@self@hook\pxys@everysel@hook
+ \size@update\enc@update}%
+ \ifx\pxys@fragment\relax
+ \let\pxys@selectfont\pxys@org@selectfont
+ % extract "pre-\enc@update" insertion
+ \pxys@patch@cmd\pxys@selectfont
+ {\pickup@font\font@name}{\size@update\enc@update}% % ltfsstrc/tracefnt
+ {\pickup@font\font@name\pxys@self@hook\pxys@everysel@hook
+ \size@update\enc@update}%
+ \ifx\pxys@fragment\relax % failure
+ \let\pxys@selectfont\relax
+ \else
+ \pxys@append@to\pxys@self@hook\pxys@fragment
+ \fi
+ \else
+ \pxys@append@to\pxys@self@hook\pxys@fragment
+ \fi
+ \let\pxys@new@selectfont\pxys@selectfont
+ % prepare for everysel routine
+ \let\CheckCommand\@gobble
+ % hack for disabling duplicate font info
+ \expandafter\let\expandafter\pxys@ver@tracefnt
+ \csname ver@tracefnt.sty\endcsname
+ \expandafter\let\csname ver@tracefnt.sty\endcsname\@undefined}
+
+%% \pxys@postproc
+\@onlypreamble\pxys@postproc
+\def\pxys@postproc{%
+ % revert the hack for disabling duplicate font info
+ \expandafter\let\csname ver@tracefnt.sty\endcsname\pxys@ver@tracefnt
+ % post handling of everysel routine
+ \let\CheckCommand\pxys@CheckCommand
+ \let\pxys@CheckCommand\@undefined
+ \expandafter\let\expandafter\pxys@selectfont
+ \csname selectfont \endcsname
+ % extract the code insertion by everysel
+ \pxys@patch@cmd\pxys@selectfont
+ {\pickup@font\font@name}{\size@update\enc@update}{}%
+ \ifx\pxys@fragment\relax % failure
+ \let\pxys@new@selectfont\relax
+ \else % success
+ \pxys@append@to\pxys@everysel@hook\pxys@fragment
+ \fi
+ % commit the change
+ \ifx\pxys@new@selectfont\relax % failure
+ \let\pxys@selectfont\pxys@org@selectfont % revert
+ \pxys@warn{Failed in patching \string\selectfont}%
+ \else % success
+ \let\pxys@selectfont\pxys@new@selectfont
+ \fi
+ \expandafter\let\csname selectfont \endcsname\pxys@selectfont}
+
+%--------------------------------------- done
+\endinput
+%% EOF
diff --git a/Master/texmf-dist/tex/latex/platex-tools/pxeveryshi.sty b/Master/texmf-dist/tex/latex/platex-tools/pxeveryshi.sty
new file mode 100644
index 00000000000..8a534095d96
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/platex-tools/pxeveryshi.sty
@@ -0,0 +1,28 @@
+%
+% pxeveryshi.sty
+% written by Takayuki Yato (ZR)
+%
+% This package is distributed as part of the platex-tools bundle
+% maintained by Hironobu Yamashita
+% by courtesy of the original author.
+% https://github.com/aminophen/platex-tools
+%
+
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{pxeveryshi}
+ [2012/05/19 v0.1 everyshi package for pLaTeX]
+\RequirePackageWithOptions{everyshi}
+%
+\def\@EveryShipout@Output{%
+ \setbox8\vbox{%
+ \yoko
+ \@EveryShipout@Hook
+ \@EveryShipout@AtNextHook
+ \global\setbox\@cclv=\box\@cclv
+ }%
+ \gdef\@EveryShipout@AtNextHook{}%
+ \@EveryShipout@Org@Shipout\box\@cclv
+}
+%
+\endinput
+%% EOF
diff --git a/Master/texmf-dist/tex/latex/platex-tools/pxftnright.sty b/Master/texmf-dist/tex/latex/platex-tools/pxftnright.sty
new file mode 100644
index 00000000000..f16fa403624
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/platex-tools/pxftnright.sty
@@ -0,0 +1,132 @@
+%
+% pxftnright.sty
+% written by Hironobu Yamashita (@aminophen)
+%
+% This package is part of the platex-tools bundle.
+% https://github.com/aminophen/platex-tools
+%
+% This package `pxftnright' is based on:
+% * ftnright.sty in latex-tools (2014/10/28 v1.1f)
+%
+% Problems with ftnright to use with pLaTeX:
+% * \@startcolumn is redefined
+% (incompatible with vertical typesetting)
+% * \@makecol is redefined
+% (bottom float after footnote)
+% * \@makefntext is redefined
+% (incompatible with some pLaTeX classes)
+% * \footnotesep is not suitable for vertical typesetting
+% (rather a problem of \strutbox in pLaTeX2e kernel?)
+% so, this package provides patches.
+%
+
+\NeedsTeXFormat{pLaTeX2e}
+\ProvidesPackage{pxftnright}
+ [2016/09/07 v1.0 footnote layout package for pLaTeX]
+
+%% save \@makefntext definition from pLaTeX class
+\@ifpackageloaded{ftnright}{%
+ \PackageError{pxftnright}{%
+ Package ftnright is already loaded!\MessageBreak
+ Load pxftnright earlier}\@ehc
+}{}
+\let\pxftn@makefntext\@makefntext
+
+%% load ftnright package
+\RequirePackage{ftnright}
+
+%% patches for ftnright to work fine with pLaTeX
+%% This code is based on pLaTeX2e 2016/09/03 community ed.
+
+\def\@startcolumn{%
+ \ifx\@deferlist\@empty
+ \global\@fcolmadefalse
+ \global\@colroom\@colht
+ \else
+ \ifvoid\footins\else
+ \ftn@amount\ht\footins
+ \advance\ftn@amount\dp\footins
+ \advance\ftn@amount\skip\footins
+ \fi
+ \global\advance\@colht-\ftn@amount
+ \global\@colroom\@colht
+ \@xstartcol
+ \global\advance\@colht\ftn@amount
+ \global\advance\@colroom\ftn@amount
+ \fi
+ \if@fcolmade
+ \setbox\@cclv\box\@outputbox
+ \@makecol
+ \else
+%%%%% change for pLaTeX (import from \@reinserts in plcore)
+ \ifvoid\footins\else\insert\footins{%
+ \iftbox\footins\tate\else\yoko\fi
+ \unvbox\footins}\fi
+%%%%%
+ \fi}
+
+\def\@makecol{%
+%%%%% change for pLaTeX
+ \setbox\@outputbox\box\@cclv
+%%%%%
+ \if@firstcolumn
+ \if@twocolumn \else
+ \ifvoid\footins \else
+ \@latexerr{ftnright package
+ used in one-column mode}%
+ {The ftnright package was designed to
+ work with LaTeX's standard^^Jtwocolumn
+ option. It does *not* work with the
+ multicol package.^^JSo please specify
+ `twocolumn' in the
+ \noexpand\documentclass command.}%
+ \shipout\box\footins \fi\fi
+ \ifnum\insertpenalties>\z@
+ \@latexerr{ftnright package
+ scrambled footnotes}%
+ {There is too much footnote material in
+ the first column and ftnright^^Jis
+ unable to cope with this.^^JYou need
+ to reduce the amount to get a properly
+ formatted page.}%
+ \fi
+ \fi
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@combinefloats
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+%%%%% change for pLaTeX (import from \@makecol in plcore)
+ \setbox\@outputbox \vbox to\@colht {%
+ \boxmaxdepth\maxdepth
+ \@texttop
+ \dimen@ \dp\@outputbox
+ \unvbox \@outputbox
+ \iftdir\vbox{\hskip\z@}\fi
+ \vskip -\dimen@
+ \@textbottom
+ \if@firstcolumn\else
+ \ifvoid\footins\else % for pLaTeX
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox \footins
+ \color@endgroup
+ \fi
+ \fi
+ }%
+%%%%%
+ \fi
+ \global\maxdepth\@maxdepth
+}
+
+%% adjust \footnotesep for vertical typesetting
+\AtBeginDocument
+ {\global\footnotesep\ht\iftdir\tstrutbox\else\strutbox\fi}
+
+%% restore \@makefntext
+\let\@makefntext\pxftn@makefntext
+
+\endinput