diff options
author | Karl Berry <karl@freefriends.org> | 2011-05-13 22:29:11 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-05-13 22:29:11 +0000 |
commit | af97fd519b6d7cfd718d9bf9442f05e1095d2be7 (patch) | |
tree | 9f754cd1e7d3da0a14d98e2a69e7bf77cdcf24e6 /Master/texmf-dist/tex/latex/eskdx/eskdfreesize.sty | |
parent | a120fe81ec01c892c26137a3c7f7f992213f930a (diff) |
eskdx 0.98 (13may11)
git-svn-id: svn://tug.org/texlive/trunk@22465 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/eskdx/eskdfreesize.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/eskdx/eskdfreesize.sty | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/eskdx/eskdfreesize.sty b/Master/texmf-dist/tex/latex/eskdx/eskdfreesize.sty new file mode 100644 index 00000000000..5986dcc2051 --- /dev/null +++ b/Master/texmf-dist/tex/latex/eskdx/eskdfreesize.sty @@ -0,0 +1,176 @@ +% 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. +% + +% Пакет предоставляет возможность вставки листа +% почти любого размера (ограничения описаны в руководстве +% пользователя eskdx): + + +% +% This is automaticaly generated file, do not edit it. +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{eskdfreesize}[2010/02/20 v0.98 Inserting Free Size Sheets] + +\RequirePackage{eskdstamp} + +% переключение размера возможно только в pdflatex. +% Tем не менее, latex тоже сможет собрать такой документ, +% но все большие страницы +% обрежет по размерам формата, установленного в documentclass +\RequirePackage{ifpdf} +\ifpdf{} +\else{\PackageWarningNoLine{eskdfreesize} + {It's better to compile this document with pdflatex.\MessageBreak + In DVI you will get only part of the inserted big sheet}} +\fi + + + +% в eskdstamp для ускорения отрисовки рамки применен \savebox +% в нашем случае это неудобно, будем рисовать персонально +% на каждой странице +\newcommand{\ESKDdrawFrameFree}{% + \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKDframeY}){% + \setlength{\unitlength}{1mm}% + \begin{picture}(0,0)(0,0) + \linethickness{\ESKDlineThick} + \put(0,\ESKDltu{\ESKDframeH}){\line(1,0){\ESKDltu{\ESKDframeW}}} + \put(0,0){\line(1,0){\ESKDltu{\ESKDframeW}}} + \put(0,0){\line(0,1){\ESKDltu{\ESKDframeH}}} + \put(\ESKDltu{\ESKDframeW},0){\line(0,1){\ESKDltu{\ESKDframeH}}} + \end{picture}}} + +% содержимое нестандартной графы 32 по умолчанию +\newcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDemptyFormatName}} + +% определим нашу собственную нестандартную графу 32 +\newcommand{\ESKDdrawColumnXXXIIfree}{% + \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW-50mm}% + \setlength{\ESKD@tmpdimb}{\ESKDframeY-3.7mm}% + \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){% + \makebox[50mm][r]{\ESKDfontIII\ESKDtheColumnXXXIIfree}}} + + + +% Определим новый стиль. Подробнее про определение своих стилей +% можно прочитать в руководстве пользователя eskdx, +% или заглянуть в eskdstamp.sty, +% кусок оттуда был использован как основа для стиля freesize +\ESKDnewStyle{freesize}{8mm} +\ESKDputOnStyle{freesize}{frame}{\ESKDdrawFrameFree} +\ESKDputOnStyle{freesize}{stamp}{\ESKDdrawStampIIa} +\ifESKD@enable@columns@xix + \ESKDputOnStyle{freesize}{columnsxix}{\ESKDdrawColumnsXIX} +\fi +\ifESKD@enable@column@xxvi + \ESKDputOnStyle{freesize}{columnxxvi}{\ESKDdrawColumnXXVI} +\fi +\ifESKD@enable@columns@xxvii + \ESKDputOnStyle{freesize}{columnsxxvii}{\ESKDdrawColumnsXXVIIi} +\fi +\ifESKD@enable@column@xxxi + \ESKDputOnStyle{freesize}{columnxxxi}{\ESKDdrawColumnXXXI} +\fi +\ifESKD@enable@column@xxxii + % наша новая графа 32 + \ESKDputOnStyle{freesize}{columnxxxii}{\ESKDdrawColumnXXXIIfree} +\fi +\ifESKD@enable@column@xxxiii + \ESKDputOnStyle{freesize}{columnxxxiii}{\ESKDdrawColumnXXXIII} +\fi +\ifESKD@enable@column@xxxiv + \ESKDputOnStyle{freesize}{columnxxxiv}{\ESKDdrawColumnXXXIV} +\fi +\ifESKD@zonelabels% + \ESKDputOnStyle{freesize}{zonelabels}{\ESKDdrawZoneLabelsI} +\fi + + +% вспомогательные счетчики для записей в лог +\newcounter{ESKD@free@sizepagebegin} +\newcounter{ESKD@free@sizepageend} + +% теперь самое сложное - сам переключатель +\newcommand{\ESKDfreeSize}[3]{% + \ESKDclearDoublePage% + \setcounter{ESKD@free@sizepagebegin}{\value{page}}% запомним текущую страницу + \pdfpagewidth=#1% + \pdfpageheight=#2% + \setlength{\ESKD@origin@y}{#2-1in}% + \setlength{\ESKDframeW}{\pdfpagewidth-\ESKD@margin@si-\ESKD@margin@so}% + \setlength{\ESKDframeH}{\pdfpageheight-\ESKD@margin@t-\ESKD@margin@b}% + \ESKDstyle{freesize}% + \expandafter{#3}% + % зафиксируем факт вставки листа в \jobname.log + \ESKDclearDoublePage% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDemptyFormatName}}% сброс графы 32 + \setcounter{ESKD@free@sizepageend}{\value{page}}% + \addtocounter{ESKD@free@sizepageend}{-1}% + \ifthenelse{\value{ESKD@free@sizepagebegin}<\value{ESKD@free@sizepageend}}% латех начал новую страницу + {\immediate\write0{eskdfreesize: sheet(s) with size (#1 x #2) inserted + at page(s) \noexpand[\arabic{ESKD@free@sizepagebegin}% + -\arabic{ESKD@free@sizepageend}\noexpand]}} + {\immediate\write0{eskdfreesize: sheet(s) with size (#1 x #2) inserted + at page(s) \noexpand[\arabic{ESKD@free@sizepageend}\noexpand]}} + % теперь вернем всё как было до нас + \setlength{\ESKD@origin@y}{\paperheight-1in}% + \pdfpageheight=\paperheight% + \pdfpagewidth=\paperwidth% + \setlength{\ESKDframeW}{\paperwidth-\ESKD@margin@si-\ESKD@margin@so}% + \setlength{\ESKDframeH}{\paperheight-\ESKD@margin@t-\ESKD@margin@b}% + \ESKDstyle{\ESKD@default@style@other}% + \newpage% +} + + +% Определим несколько готовых к употреблению форматов +\newcommand{\ESKDlandscapeAIII}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa3FormatName}}% + \ESKDfreeSize{420mm}{297mm}{#1}} + +\newcommand{\ESKDportraitAIII}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa3FormatName}}% + \ESKDfreeSize{297mm}{420mm}{#1}} + +\newcommand{\ESKDlandscapeAII}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa2FormatName}}% + \ESKDfreeSize{594mm}{420mm}{#1}} + +\newcommand{\ESKDportraitAII}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa2FormatName}}% + \ESKDfreeSize{420mm}{594mm}{#1}} + +\newcommand{\ESKDlandscapeAI}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa1FormatName}}% + \ESKDfreeSize{841mm}{594mm}{#1}} + +\newcommand{\ESKDportraitAI}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa1FormatName}}% + \ESKDfreeSize{594mm}{841mm}{#1}} + +\newcommand{\ESKDlandscapeAZERO}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa0FormatName}}% + \ESKDfreeSize{1189mm}{841mm}{#1}} + +\newcommand{\ESKDportraitAZERO}[1]{% + \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa0FormatName}}% + \ESKDfreeSize{841mm}{1189mm}{#1}} + +\newcommand{\ESKDlandscapeBanner}[1]{% + % Пятиметровое полотно для подшивки гармошкой в обычную папку А4. + % Просто для демонстрации + \ESKDfreeSize{5000mm}{297mm}{#1}} |