% 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 2003/12/01 or later. % % This work has the LPPL maintenance status "maintained". % % This Current Maintainer of this work is Konstantin Korikov. % % This work consists of all files listed in manifest.txt. % % Пакет предоставляет возможность вставки листа % почти любого размера (ограничения описаны в руководстве % пользователя xespdx): % % This is automaticaly generated file, do not edit it. % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{xespdfreesize}[2010/02/20 v0.98 Inserting Free Size Sheets] \RequirePackage{xespdstamp} % переключение размера возможно только в pdflatex. % Tем не менее, latex тоже сможет собрать такой документ, % но все большие страницы % обрежет по размерам формата, установленного в documentclass \RequirePackage{ifpdf} \ifpdf{} \else{\PackageWarningNoLine{xespdfreesize} {It's better to compile this document with pdflatex.\MessageBreak In DVI you will get only part of the inserted big sheet}} \fi % в xespdstamp для ускорения отрисовки рамки применен \savebox % в нашем случае это неудобно, будем рисовать персонально % на каждой странице \newcommand{\XESPDdrawFrameFree}{% \put(\XESPDltu{\XESPDframeX},\XESPDltu{\XESPDframeY}){% \setlength{\unitlength}{1mm}% \begin{picture}(0,0)(0,0) \linethickness{\XESPDlineThick} \put(0,\XESPDltu{\XESPDframeH}){\line(1,0){\XESPDltu{\XESPDframeW}}} \put(0,0){\line(1,0){\XESPDltu{\XESPDframeW}}} \put(0,0){\line(0,1){\XESPDltu{\XESPDframeH}}} \put(\XESPDltu{\XESPDframeW},0){\line(0,1){\XESPDltu{\XESPDframeH}}} \end{picture}}} % содержимое нестандартной графы 32 по умолчанию \newcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDemptyFormatName}} % определим нашу собственную нестандартную графу 32 \newcommand{\XESPDdrawColumnXXXIIfree}{% \setlength{\XESPD@tmpdima}{\XESPDframeX+\XESPDframeW-50mm}% \setlength{\XESPD@tmpdimb}{\XESPDframeY-3.7mm}% \put(\XESPDltu{\XESPD@tmpdima},\XESPDltu{\XESPD@tmpdimb}){% \makebox[50mm][r]{\XESPDfontIII\XESPDtheColumnXXXIIfree}}} % Определим новый стиль. Подробнее про определение своих стилей % можно прочитать в руководстве пользователя xespdx, % или заглянуть в xespdstamp.sty, % кусок оттуда был использован как основа для стиля freesize \XESPDnewStyle{freesize}{8mm} \XESPDputOnStyle{freesize}{frame}{\XESPDdrawFrameFree} \XESPDputOnStyle{freesize}{stamp}{\XESPDdrawStampIIa} \ifXESPD@enable@columns@xix \XESPDputOnStyle{freesize}{columnsxix}{\XESPDdrawColumnsXIX} \fi \ifXESPD@enable@column@xxvi \XESPDputOnStyle{freesize}{columnxxvi}{\XESPDdrawColumnXXVI} \fi \ifXESPD@enable@columns@xxvii \XESPDputOnStyle{freesize}{columnsxxvii}{\XESPDdrawColumnsXXVIIi} \fi \ifXESPD@enable@column@xxxi \XESPDputOnStyle{freesize}{columnxxxi}{\XESPDdrawColumnXXXI} \fi \ifXESPD@enable@column@xxxii % наша новая графа 32 \XESPDputOnStyle{freesize}{columnxxxii}{\XESPDdrawColumnXXXIIfree} \fi \ifXESPD@enable@column@xxxiii \XESPDputOnStyle{freesize}{columnxxxiii}{\XESPDdrawColumnXXXIII} \fi \ifXESPD@enable@column@xxxiv \XESPDputOnStyle{freesize}{columnxxxiv}{\XESPDdrawColumnXXXIV} \fi \ifXESPD@zonelabels% \XESPDputOnStyle{freesize}{zonelabels}{\XESPDdrawZoneLabelsI} \fi % вспомогательные счетчики для записей в лог \newcounter{XESPD@free@sizepagebegin} \newcounter{XESPD@free@sizepageend} % теперь самое сложное - сам переключатель \newcommand{\XESPDfreeSize}[3]{% \XESPDclearDoublePage% \setcounter{XESPD@free@sizepagebegin}{\value{page}}% запомним текущую страницу \pdfpagewidth=#1% \pdfpageheight=#2% \setlength{\XESPD@origin@y}{#2-1in}% \setlength{\XESPDframeW}{\pdfpagewidth-\XESPD@margin@si-\XESPD@margin@so}% \setlength{\XESPDframeH}{\pdfpageheight-\XESPD@margin@t-\XESPD@margin@b}% \XESPDstyle{freesize}% \expandafter{#3}% % зафиксируем факт вставки листа в \jobname.log \XESPDclearDoublePage% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDemptyFormatName}}% сброс графы 32 \setcounter{XESPD@free@sizepageend}{\value{page}}% \addtocounter{XESPD@free@sizepageend}{-1}% \ifthenelse{\value{XESPD@free@sizepagebegin}<\value{XESPD@free@sizepageend}}% латех начал новую страницу {\immediate\write0{xespdfreesize: sheet(s) with size (#1 x #2) inserted at page(s) \noexpand[\arabic{XESPD@free@sizepagebegin}% -\arabic{XESPD@free@sizepageend}\noexpand]}} {\immediate\write0{xespdfreesize: sheet(s) with size (#1 x #2) inserted at page(s) \noexpand[\arabic{XESPD@free@sizepageend}\noexpand]}} % теперь вернем всё как было до нас \setlength{\XESPD@origin@y}{\paperheight-1in}% \pdfpageheight=\paperheight% \pdfpagewidth=\paperwidth% \setlength{\XESPDframeW}{\paperwidth-\XESPD@margin@si-\XESPD@margin@so}% \setlength{\XESPDframeH}{\paperheight-\XESPD@margin@t-\XESPD@margin@b}% \XESPDstyle{\XESPD@default@style@other}% \newpage% } % Определим несколько готовых к употреблению форматов \newcommand{\XESPDlandscapeAIII}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa3FormatName}}% \XESPDfreeSize{420mm}{297mm}{#1}} \newcommand{\XESPDportraitAIII}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa3FormatName}}% \XESPDfreeSize{297mm}{420mm}{#1}} \newcommand{\XESPDlandscapeAII}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa2FormatName}}% \XESPDfreeSize{594mm}{420mm}{#1}} \newcommand{\XESPDportraitAII}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa2FormatName}}% \XESPDfreeSize{420mm}{594mm}{#1}} \newcommand{\XESPDlandscapeAI}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa1FormatName}}% \XESPDfreeSize{841mm}{594mm}{#1}} \newcommand{\XESPDportraitAI}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa1FormatName}}% \XESPDfreeSize{594mm}{841mm}{#1}} \newcommand{\XESPDlandscapeAZERO}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa0FormatName}}% \XESPDfreeSize{1189mm}{841mm}{#1}} \newcommand{\XESPDportraitAZERO}[1]{% \renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa0FormatName}}% \XESPDfreeSize{841mm}{1189mm}{#1}} \newcommand{\XESPDlandscapeBanner}[1]{% % Пятиметровое полотно для подшивки гармошкой в обычную папку А4. % Просто для демонстрации \XESPDfreeSize{5000mm}{297mm}{#1}}