% 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. % % Пакет предоставляет возможность вставки листа % почти любого размера (ограничения описаны в руководстве % пользователя espdx): % % This is automaticaly generated file, do not edit it. % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{espdfreesize}[2010/02/20 v0.98 Inserting Free Size Sheets] \RequirePackage{espdstamp} % переключение размера возможно только в pdflatex. % Tем не менее, latex тоже сможет собрать такой документ, % но все большие страницы % обрежет по размерам формата, установленного в documentclass \RequirePackage{ifpdf} \ifpdf{} \else{\PackageWarningNoLine{espdfreesize} {It's better to compile this document with pdflatex.\MessageBreak In DVI you will get only part of the inserted big sheet}} \fi % в espdstamp для ускорения отрисовки рамки применен \savebox % в нашем случае это неудобно, будем рисовать персонально % на каждой странице \newcommand{\ESPDdrawFrameFree}{% \put(\ESPDltu{\ESPDframeX},\ESPDltu{\ESPDframeY}){% \setlength{\unitlength}{1mm}% \begin{picture}(0,0)(0,0) \linethickness{\ESPDlineThick} \put(0,\ESPDltu{\ESPDframeH}){\line(1,0){\ESPDltu{\ESPDframeW}}} \put(0,0){\line(1,0){\ESPDltu{\ESPDframeW}}} \put(0,0){\line(0,1){\ESPDltu{\ESPDframeH}}} \put(\ESPDltu{\ESPDframeW},0){\line(0,1){\ESPDltu{\ESPDframeH}}} \end{picture}}} % содержимое нестандартной графы 32 по умолчанию \newcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDemptyFormatName}} % определим нашу собственную нестандартную графу 32 \newcommand{\ESPDdrawColumnXXXIIfree}{% \setlength{\ESPD@tmpdima}{\ESPDframeX+\ESPDframeW-50mm}% \setlength{\ESPD@tmpdimb}{\ESPDframeY-3.7mm}% \put(\ESPDltu{\ESPD@tmpdima},\ESPDltu{\ESPD@tmpdimb}){% \makebox[50mm][r]{\ESPDfontIII\ESPDtheColumnXXXIIfree}}} % Определим новый стиль. Подробнее про определение своих стилей % можно прочитать в руководстве пользователя espdx, % или заглянуть в espdstamp.sty, % кусок оттуда был использован как основа для стиля freesize \ESPDnewStyle{freesize}{8mm} \ESPDputOnStyle{freesize}{frame}{\ESPDdrawFrameFree} \ESPDputOnStyle{freesize}{stamp}{\ESPDdrawStampIIa} \ifESPD@enable@columns@xix \ESPDputOnStyle{freesize}{columnsxix}{\ESPDdrawColumnsXIX} \fi \ifESPD@enable@column@xxvi \ESPDputOnStyle{freesize}{columnxxvi}{\ESPDdrawColumnXXVI} \fi \ifESPD@enable@columns@xxvii \ESPDputOnStyle{freesize}{columnsxxvii}{\ESPDdrawColumnsXXVIIi} \fi \ifESPD@enable@column@xxxi \ESPDputOnStyle{freesize}{columnxxxi}{\ESPDdrawColumnXXXI} \fi \ifESPD@enable@column@xxxii % наша новая графа 32 \ESPDputOnStyle{freesize}{columnxxxii}{\ESPDdrawColumnXXXIIfree} \fi \ifESPD@enable@column@xxxiii \ESPDputOnStyle{freesize}{columnxxxiii}{\ESPDdrawColumnXXXIII} \fi \ifESPD@enable@column@xxxiv \ESPDputOnStyle{freesize}{columnxxxiv}{\ESPDdrawColumnXXXIV} \fi \ifESPD@zonelabels% \ESPDputOnStyle{freesize}{zonelabels}{\ESPDdrawZoneLabelsI} \fi % вспомогательные счетчики для записей в лог \newcounter{ESPD@free@sizepagebegin} \newcounter{ESPD@free@sizepageend} % теперь самое сложное - сам переключатель \newcommand{\ESPDfreeSize}[3]{% \ESPDclearDoublePage% \setcounter{ESPD@free@sizepagebegin}{\value{page}}% запомним текущую страницу \pdfpagewidth=#1% \pdfpageheight=#2% \setlength{\ESPD@origin@y}{#2-1in}% \setlength{\ESPDframeW}{\pdfpagewidth-\ESPD@margin@si-\ESPD@margin@so}% \setlength{\ESPDframeH}{\pdfpageheight-\ESPD@margin@t-\ESPD@margin@b}% \ESPDstyle{freesize}% \expandafter{#3}% % зафиксируем факт вставки листа в \jobname.log \ESPDclearDoublePage% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDemptyFormatName}}% сброс графы 32 \setcounter{ESPD@free@sizepageend}{\value{page}}% \addtocounter{ESPD@free@sizepageend}{-1}% \ifthenelse{\value{ESPD@free@sizepagebegin}<\value{ESPD@free@sizepageend}}% латех начал новую страницу {\immediate\write0{espdfreesize: sheet(s) with size (#1 x #2) inserted at page(s) \noexpand[\arabic{ESPD@free@sizepagebegin}% -\arabic{ESPD@free@sizepageend}\noexpand]}} {\immediate\write0{espdfreesize: sheet(s) with size (#1 x #2) inserted at page(s) \noexpand[\arabic{ESPD@free@sizepageend}\noexpand]}} % теперь вернем всё как было до нас \setlength{\ESPD@origin@y}{\paperheight-1in}% \pdfpageheight=\paperheight% \pdfpagewidth=\paperwidth% \setlength{\ESPDframeW}{\paperwidth-\ESPD@margin@si-\ESPD@margin@so}% \setlength{\ESPDframeH}{\paperheight-\ESPD@margin@t-\ESPD@margin@b}% \ESPDstyle{\ESPD@default@style@other}% \newpage% } % Определим несколько готовых к употреблению форматов \newcommand{\ESPDlandscapeAIII}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa3FormatName}}% \ESPDfreeSize{420mm}{297mm}{#1}} \newcommand{\ESPDportraitAIII}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa3FormatName}}% \ESPDfreeSize{297mm}{420mm}{#1}} \newcommand{\ESPDlandscapeAII}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa2FormatName}}% \ESPDfreeSize{594mm}{420mm}{#1}} \newcommand{\ESPDportraitAII}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa2FormatName}}% \ESPDfreeSize{420mm}{594mm}{#1}} \newcommand{\ESPDlandscapeAI}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa1FormatName}}% \ESPDfreeSize{841mm}{594mm}{#1}} \newcommand{\ESPDportraitAI}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa1FormatName}}% \ESPDfreeSize{594mm}{841mm}{#1}} \newcommand{\ESPDlandscapeAZERO}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa0FormatName}}% \ESPDfreeSize{1189mm}{841mm}{#1}} \newcommand{\ESPDportraitAZERO}[1]{% \renewcommand\ESPDtheColumnXXXIIfree{\@nameuse{ESPDa0FormatName}}% \ESPDfreeSize{841mm}{1189mm}{#1}} \newcommand{\ESPDlandscapeBanner}[1]{% % Пятиметровое полотно для подшивки гармошкой в обычную папку А4. % Просто для демонстрации \ESPDfreeSize{5000mm}{297mm}{#1}}