177 lines
7.1 KiB
Plaintext
177 lines
7.1 KiB
Plaintext
|
% 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}}
|