% % pxtextpos.sty % written by Hironobu Yamashita (@aminophen) % % This package is part of the gentombow bundle. % https://github.com/aminophen/gentombow % % This package is expected to be compatible with % * textpos.sty % 2005/10/13 v1.6a -- 2019/04/15 v1.9.1 % %% package declaration \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pxtextpos} [2020/10/11 v0.4b Patch to textpos for tombow] %% preparations \def\pxtxtpos@pkgname{pxtextpos} \def\pxtxtpos@warn{\PackageWarningNoLine\pxtxtpos@pkgname} \let\pxtxtpos@debug\@gobble %\def\pxtxtpos@debug#1{\typeout{\pxtxtpos@pkgname: [DEBUG] #1}}% for debug %% load it \RequirePackageWithOptions{textpos} % textpos requires everyshi, only if both conditions are met: % (1) \fmtversion is **older** than 2020/10/01 % (2) \ifTP@abspos == \iftrue % [TODO] tate-mode support is incomplete! \ifx\pfmtname\@undefined\else \ifx\@EveryShipout@Output\@undefined % LaTeX2e 2020-10-01: an emulation by ``everyshi-ltx.sty'' % => pLaTeX2e 2020-10-01 natively supports it \else % older: the real ``everyshi.sty'' is loaded \IfFileExists{pxeveryshi.sty}{\RequirePackage{pxeveryshi}}{} \fi \fi %% do it %-- similar to bounddvi.sty (checked 2020/10/08 v8.2) % detection of \iftombow availability is delayed until \AtBeginDocument, % to support both (u)pLaTeX kernel and ``gentombow.sty'' \AtBeginDocument{\pxtxtpos@do} \def\pxtxtpos@do{% \ifx\tombowtrue\@undefined \pxtxtpos@debug{Tombow feature unavailable, no patch applied}% \let\pxtxtpos@switch\relax % do nothing \fi \pxtxtpos@switch} % \def\pxtxtpos@switch{% \let\textblockorigin\pxtxtpos@textblockorigin \ifTP@abspos\textblockorigin{0pt}{0pt}\fi %% reset } %% known definition \def\pxtxtpos@textblockorigin#1#2{% \ifTP@abspos \TP@ox=-1in \addtolength\TP@ox{#1} \TP@oy=-1in \addtolength\TP@oy{#2} \ifTP@chatter\typeout{TextBlockOrigin set to #1 x #2}\fi \else \PackageError{textpos} {The \protect\textblockorigin\space command\MessageBreak may only be used if the package was given\MessageBreak the`absolute' option when it was invoked} {If you want to use the \protect\textblockorigin\space command, then \MessageBreak invoke the package with the syntax\MessageBreak \protect\usepackage[absolute]{textpos}} \fi } \@onlypreamble\pxtxtpos@textblockorigin %% check definition \ifx\textblockorigin\pxtxtpos@textblockorigin\else \pxtxtpos@warn{% Command \noexpand\textblockorigin is beyond my knowledge.\MessageBreak I will apply the patch anyway, but it may break:\MessageBreak Please report to the author of `\pxtxtpos@pkgname.sty'} \fi %% new definition \def\pxtxtpos@textblockorigin#1#2{% \ifTP@abspos \TP@ox=-1in \addtolength\TP@ox{#1} \TP@oy=-1in \addtolength\TP@oy{#2} %%% addition \iftombow \addtolength\TP@ox{1in}\addtolength\TP@oy{1in} \fi %%% \ifTP@chatter\typeout{TextBlockOrigin set to #1 x #2}\fi \else \PackageError{textpos} {The \protect\textblockorigin\space command\MessageBreak may only be used if the package was given\MessageBreak the`absolute' option when it was invoked} {If you want to use the \protect\textblockorigin\space command, then \MessageBreak invoke the package with the syntax\MessageBreak \protect\usepackage[absolute]{textpos}} \fi } \endinput %% EOF