From ad72985f1b2d23650ced8fed8b86c4700b6ecee6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 16 Mar 2018 21:30:44 +0000 Subject: gentombow (16mar18) git-svn-id: svn://tug.org/texlive/trunk@46987 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/gentombow/LICENSE | 27 ++ Master/texmf-dist/doc/latex/gentombow/Makefile | 36 ++ Master/texmf-dist/doc/latex/gentombow/README.md | 54 +++ .../texmf-dist/doc/latex/gentombow/bounddvi-en.pdf | Bin 0 -> 43566 bytes .../texmf-dist/doc/latex/gentombow/bounddvi-en.tex | 135 +++++++ Master/texmf-dist/doc/latex/gentombow/bounddvi.pdf | Bin 0 -> 118273 bytes Master/texmf-dist/doc/latex/gentombow/bounddvi.tex | 148 ++++++++ .../texmf-dist/doc/latex/gentombow/gentombow.pdf | Bin 0 -> 149052 bytes .../texmf-dist/doc/latex/gentombow/gentombow.tex | 268 ++++++++++++++ .../texmf-dist/doc/latex/gentombow/pxgentombow.pdf | Bin 0 -> 188910 bytes .../texmf-dist/doc/latex/gentombow/pxgentombow.tex | 397 +++++++++++++++++++++ Master/texmf-dist/tex/latex/gentombow/bounddvi.sty | 87 +++++ .../texmf-dist/tex/latex/gentombow/gentombow.sty | 159 +++++++++ .../texmf-dist/tex/latex/gentombow/pxgentombow.sty | 335 +++++++++++++++++ 14 files changed, 1646 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/gentombow/LICENSE create mode 100644 Master/texmf-dist/doc/latex/gentombow/Makefile create mode 100644 Master/texmf-dist/doc/latex/gentombow/README.md create mode 100644 Master/texmf-dist/doc/latex/gentombow/bounddvi-en.pdf create mode 100644 Master/texmf-dist/doc/latex/gentombow/bounddvi-en.tex create mode 100644 Master/texmf-dist/doc/latex/gentombow/bounddvi.pdf create mode 100644 Master/texmf-dist/doc/latex/gentombow/bounddvi.tex create mode 100644 Master/texmf-dist/doc/latex/gentombow/gentombow.pdf create mode 100644 Master/texmf-dist/doc/latex/gentombow/gentombow.tex create mode 100644 Master/texmf-dist/doc/latex/gentombow/pxgentombow.pdf create mode 100644 Master/texmf-dist/doc/latex/gentombow/pxgentombow.tex create mode 100644 Master/texmf-dist/tex/latex/gentombow/bounddvi.sty create mode 100644 Master/texmf-dist/tex/latex/gentombow/gentombow.sty create mode 100644 Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/gentombow/LICENSE b/Master/texmf-dist/doc/latex/gentombow/LICENSE new file mode 100644 index 00000000000..99a0c323d19 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gentombow/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2016-2018 Hironobu Yamashita +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Master/texmf-dist/doc/latex/gentombow/Makefile b/Master/texmf-dist/doc/latex/gentombow/Makefile new file mode 100644 index 00000000000..e21e357c2d4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gentombow/Makefile @@ -0,0 +1,36 @@ +KANJI = -kanji=utf8 +FONTMAP = -f ipaex.map -f ptex-ipaex.map +TEXMF = $(shell kpsewhich -var-value=TEXMFHOME) + +all: bounddvi.pdf bounddvi-en.pdf \ + gentombow.pdf pxgentombow.pdf + +.SUFFIXES: .tex .dvi .pdf +.tex.dvi: + platex $(KANJI) $< + platex $(KANJI) $< + rm *.aux *.log +.dvi.pdf: + dvipdfmx $(FONTMAP) $< + +bounddvi-en.dvi: bounddvi-en.tex + latex $< + latex $< + rm *.aux *.log +gentombow.pdf: gentombow.tex + pdflatex $< + pdflatex $< + rm *.aux *.log + +.PHONY: install clean +install: + mkdir -p ${TEXMF}/doc/platex/gentombow + cp ./Makefile ${TEXMF}/doc/platex/gentombow/ + cp ./LICENSE ${TEXMF}/doc/platex/gentombow/ + cp ./README.md ${TEXMF}/doc/platex/gentombow/ + cp ./*.pdf ${TEXMF}/doc/platex/gentombow/ + cp ./*.tex ${TEXMF}/doc/platex/gentombow/ + mkdir -p ${TEXMF}/tex/platex/gentombow + cp ./*.sty ${TEXMF}/tex/platex/gentombow/ +clean: + rm -f *.dvi *.pdf diff --git a/Master/texmf-dist/doc/latex/gentombow/README.md b/Master/texmf-dist/doc/latex/gentombow/README.md new file mode 100644 index 00000000000..0c1f9d9cb35 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gentombow/README.md @@ -0,0 +1,54 @@ +# gentombow + +This bundle provides a LaTeX package for generating Japanese-style +crop marks (called 'tombow' in Japanese) for practical use in +self-publishing. + +## Bundle contents + +- pxgentombow.sty: + Generate crop marks (called 'tombow' in Japanese) for + practical use in self-publishing. + This package requires a core 'tombow' feature provided by + pLaTeX/upLaTeX, LuaTeX-ja or gentombow (described below). +- gentombow.sty: + Provides the core 'tombow' feature if not available. + The pLaTeX/upLaTeX kernel and LuaTeX-ja package have + a native 'tombow' feature, but the others + (pdfLaTeX, XeLaTeX etc.) do not; + in the latter case, this package provides a counterpart. +- bounddvi.sty: + Set papersize special to DVI file. + Can be used on LaTeX/pLaTeX/upLaTeX (with DVI output mode) + with dvips or dvipdfmx drivers. + Old version (v6.0) of this package, written by Koichi INOUE + in 2004, is available at + https://www.ma.ns.tcu.ac.jp/Pages/TeX/bounddvi.sty.html + (dead link). + Now it is maintained by Hironobu Yamashita by his courtesy. + +## Character encoding + +All the package files (.sty) contain ASCII characters only. +All the document files (.tex) are encoded in UTF-8. + +## Installation + +- *.sty -> $TEXMF/tex/platex/gentombow +- *.tex, *.pdf -> $TEXMF/doc/platex/gentombow + +## Repository + +The bundle is maintained on GitHub: + https://github.com/aminophen/gentombow + +## License + +The bundle may be distributed and/or modified under the terms of +the 3-clause BSD license (see [LICENSE](./LICENSE)). + +## Release Date + +2018-03-16 + +Hironobu Yamashita diff --git a/Master/texmf-dist/doc/latex/gentombow/bounddvi-en.pdf b/Master/texmf-dist/doc/latex/gentombow/bounddvi-en.pdf new file mode 100644 index 00000000000..cbbdb00ef2d Binary files /dev/null and b/Master/texmf-dist/doc/latex/gentombow/bounddvi-en.pdf differ diff --git a/Master/texmf-dist/doc/latex/gentombow/bounddvi-en.tex b/Master/texmf-dist/doc/latex/gentombow/bounddvi-en.tex new file mode 100644 index 00000000000..61e78f985b9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gentombow/bounddvi-en.tex @@ -0,0 +1,135 @@ +%# -*- ascii characters only -*- + +% Package v1.0--v6.0: Koichi INOUE +% Package v7.0-- : Hironobu Yamashita +% The package documentation (this file) was +% written by Hironobu Yamashita. + +\documentclass[a4paper]{article} +\usepackage{doc} +\usepackage{bounddvi} +\GetFileInfo{bounddvi.sty} +\title{Package \textsf{bounddvi} \fileversion} +\author{Koichi Inoue \& Hironobu Yamashita} +\date{\filedate} +\begin{document} + +\maketitle + +Package \textsf{bounddvi} sets papersize special into DVI file. +This package can be used in both tate (vertical) and yoko (horizontal) +writing directions of Japanese p\LaTeX/up\LaTeX, and both +\texttt{dvipdfmx} and \texttt{dvips} drivers are supported. +The \texttt{tombow} option defined in Japanese p\LaTeX\ kernel is +also supported. Of course, this package can be used also with the +original \LaTeX\ in DVI output mode. + +This package (since v7.0) is part of \textsf{gentombow} bundle: +\begin{verbatim} + https://github.com/aminophen/gentombow +\end{verbatim} +Originally it was part of \textsf{platex-tools} bundle, +but it has been moved since March 2018. + +\section*{Usage} + +Load this package in preamble. +\begin{verbatim} + \documentclass[a5paper]{article} + \usepackage{bounddvi} + ... +\end{verbatim} +Process the \texttt{.tex} file using \texttt{latex} + +\texttt{dvips} chain or \texttt{latex} + \texttt{dvipdfmx} chain. + +\section*{Known limitations} + +\begin{enumerate} +\item The compatibility with \textsf{geometry} package may not be +perfect, as both \textsf{geometry} and \textsf{bounddvi} embeds +papersize special into a DVI file. The loading order of these +two packages may affect the actual size of output. +\item This package supports ``\textsf{jsclasses}-like employment'' +of \verb+\mag+, because it's more widely used in Japan. This may +be incompatible with some classes or packages which employ +\verb+\mag+ in other ways. +\end{enumerate} +The details are described in the sections below. + +\subsection*{The behavior of multiple papersize specials} + +Sometimes multiple papersize specials may be embedded into a DVI +file. Among these specials, the specification which appears +\emph{at last} in DVI takes effect when \texttt{dvipdfmx} or +\texttt{dvips} (\TeX\ Live 2017 or later) is used\footnote{% +When \texttt{dvips} in \TeX\ Live 2016 or earlier is used, +the specification which appears \emph{first} in DVI took effect, +but the default behavior was changed in \TeX\ Live r42420 to +be compatible with \texttt{dvipdfmx}. The new option \texttt{-L0} +can be used to recover the old behavior.}. For example, when the +following source is processed with \texttt{dvipdfmx}, +\begin{verbatim} + % latex + dvipdfmx + \documentclass{...} + \usepackage{bounddvi} + \usepackage[dvipdfm]{geometry} +\end{verbatim} +the specification by \textsf{geometry} wins. + +\section*{Note about \texttt{\char92mag} handling} + +Among the packages in CTAN, there are two types of implementation +in terms of \verb+\mag+ employment. It seems that there is no +(official or practical) ``standard'' in \verb+\mag+ treatment. + +When the output is going to the physical size of A4 +($210\,\mathrm{mm} \times 297\,\mathrm{mm}$) with the setting of +\verb+\mag=2000+, there are two ways: some classes/packages can set +\begin{quote} + \texttt{\char92mag=2000}\\ + \texttt{\char92paperwidth=210mm} ($= 420\,\mathrm{truemm}$)\\ + \texttt{\char92paperheight=297mm} ($= 594\,\mathrm{truemm}$) +\end{quote} +and others can set +\begin{quote} + \texttt{\char92mag=2000}\\ + \texttt{\char92paperwidth=105mm} ($= 210\,\mathrm{truemm}$)\\ + \texttt{\char92paperheight=148.5mm} ($= 297\,\mathrm{truemm}$) +\end{quote} +The first way is adopted by \textsf{geometry} package etc, and it's +(probably) based on the behavior of the \verb+papersize+ special of +\texttt{dvips}. It does not handle true units properly, and accepts +only non-true units and evaluates them as if they were true units. +The second way is adopted by \textsf{jsclasses} document class etc, +and is also suppoted by \verb+pdf:pagesize+ special of +\texttt{dvipdfm(x)}. This can be more consistent with \LaTeX, since +all other layout parameters (e.g. \verb+\textwidth+) are set +according to the unit truemm. + +The \textsf{bounddvi} supports the latter, so some classes/packages +which are based on the former may or may not work properly when +using \textsf{bounddvi} package. + +\section*{References} + +\begin{itemize} +\item Setting paper size using \texttt{dvips} \& \texttt{dvipdfm} + (description in Japanese)\\ + \texttt{https://www.ma.ns.tcu.ac.jp/Pages/TeX/bounddvi.sty.html} +\end{itemize} + +\section*{ChangeLog} + +\begin{itemize} + \item 2002/03/10 v1.0 (KI) First version + \item 2002/10/30 v2.0 (KI) Add \texttt{dvipdfm} \texttt{pdf:pagesize} special + \item 2003/03/22 v3.2 (KI) Compatibility with \textsf{hyperref} + \item 2004/05/08 v4.0 (KI) Support for $\mathtt{\char92mag} \ne 1000$ + \item 2004/12/08 v5.2 (KI) Compatibility with \textsf{geometry} + \item 2004/12/15 v6.0 (KI) Not to use \texttt{dvipdfm(x)} \texttt{pdf:pagesize special} + \item 2016/10/25 v7.1 (HY) Support for p\LaTeXe\ tombow option, + compatibility with \textsf{graphics}/\textsf{color} packages + \item 2016/12/28 v7.2 (HY) Documentation for the new \texttt{dvips} behavior +\end{itemize} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/gentombow/bounddvi.pdf b/Master/texmf-dist/doc/latex/gentombow/bounddvi.pdf new file mode 100644 index 00000000000..ca36021fc9e Binary files /dev/null and b/Master/texmf-dist/doc/latex/gentombow/bounddvi.pdf differ diff --git a/Master/texmf-dist/doc/latex/gentombow/bounddvi.tex b/Master/texmf-dist/doc/latex/gentombow/bounddvi.tex new file mode 100644 index 00000000000..b21b9c33a51 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gentombow/bounddvi.tex @@ -0,0 +1,148 @@ +%# -*- coding: utf-8 -*- +\ifx\epTeXinputencoding\undefined\else % defined in e-pTeX (> TL2016) + \epTeXinputencoding utf8 % ensure utf-8 encoding for platex +\fi + +% パッケージ作者 (v1.0--v6.0):東京都市大学(旧称・武蔵工業大学)井上浩一 +% 修正版 (v7.0--) および本ドキュメント:山下弘展 (Hironobu Yamashita) + +\documentclass[a4paper]{jsarticle} +\usepackage{doc} +\usepackage{bounddvi} +\GetFileInfo{bounddvi.sty} +\title{Package \textsf{bounddvi} \fileversion} +\author{Koichi Inoue \& Hironobu Yamashita} +\date{\filedate} +\begin{document} + +\maketitle + +DVIファイルは用紙サイズ情報を含みませんが、PostScriptやPDFといった +用紙サイズを規定するフォーマットへ変換するプログラム(\texttt{dvips}や +\texttt{dvipdfmx})は、\verb+\special+命令によってDVIファイルに埋め込ま +れた用紙サイズ情報を解釈します。 +たとえば、幅100mm、高さ200mmの用紙に出力したい場合は +\begin{verbatim} + \special{papersize=100mm,200mm} +\end{verbatim} +のように指定してやることができます。 + +\textsf{bounddvi}パッケージは、クラスファイルなどが想定している用紙 +サイズ情報(\verb+\paperwidth+, \verb+\paperheight+)をDVIファイルに +\verb+\special+命令として埋め込むことで、\texttt{dvips}や +\texttt{dvipdfmx}の出力用紙サイズを指定する機能を提供します。 +\begin{verbatim} + \documentclass[a4j]{jarticle} + \usepackage{bounddvi} + \begin{document} + …本文… + \end{document} +\end{verbatim} +のように使います。p\LaTeX における横組と縦組の両方で使え、また +版面拡大(\verb+\mag+)が使われた場合にも対応しています(詳細は付録 +を参照してください)。また、v7.0以降、p\LaTeX カーネルのトンボ +オプションを使用した場合にも対応しており、p\LaTeX が仮定している +「トンボのノビ(2in)を含めたサイズ」に設定します。 + +本パッケージはv7.0以降、\textsf{gentombow}バンドルの一部として +配布されています: +\begin{verbatim} + https://github.com/aminophen/gentombow +\end{verbatim} +2017年までは\textsf{platex-tools}バンドルの一部でしたが、 +2018年以降は移転しました。 + +\section*{他のパッケージとの互換性} + +用紙サイズ設定機能だけを提供する\textsf{bounddvi}パッケージのほかにも、 +パッケージの機能の一部として用紙サイズ設定を行うものがいくつかあります。 +\begin{itemize} +\item 日本語環境でよく用いられる、p\LaTeX/up\LaTeX 用のクラスファイル + \textsf{jsclasses}(奥村さん作)の\texttt{papersize}オプション + との併用は問題ありません(ただし、このオプションを使用すれば用紙 + サイズ設定には十分ですから、本\textsf{bounddvi}パッケージを併用 + することにも特にメリットはありません)。 +\item 2016年以降の\textsf{graphics/graphicx}パッケージや + \textsf{color}パッケージには用紙サイズ設定機能 + (\texttt{setpagesize}オプション:デフォルトで有効)が + ありますが、併用しても問題は起きないでしょう。 +\item \textsf{hyperref}パッケージも上と同様で、併用しても + 問題は起きないでしょう。 +\item \textsf{geometry}パッケージと併用する場合は、 + 本\textsf{bounddvi}パッケージを\emph{後から}読み込むほうが + 安全でしょう。特に、\texttt{dvipdfmx}を使用して変換する場合に + トンボを付けたいなら、\textsf{bounddvi}を後から読み込むことで + うまくいく可能性があります(付録を参照)。 +\end{itemize} + +\section*{付録:複数の用紙サイズ指定が発行された場合の挙動} + +一つのDVIファイルに複数の用紙サイズ指定\verb+\special+命令が +埋め込まれる場合があります。このうち、\texttt{dvipdfmx}および +\TeX\ Live 2017以降の\texttt{dvips}では、DVIファイルの\emph{最後}に +指定されたものが有効になります\footnote{\TeX\ Live 2016以前の +\texttt{dvips}では、DVIファイルの\emph{最初}に指定されたものが有効 +でしたが、\TeX\ Live r42420で挙動が変更されました。\texttt{-L0}オプ +ションを指定すると従来の挙動に戻ります。}。たとえば\textsf{bounddvi}と +\textsf{geometry}を併用したソース +\begin{verbatim} + \documentclass{...} + \usepackage{bounddvi} + \usepackage[dvipdfm]{geometry} +\end{verbatim} +を\textsf{dvipdfmx}でPDFに変換すると、\textsf{geometry}パッケージの +指定が優先されます。このとき、用紙サイズの設定が正しいかどうかは +\textsf{geometry}パッケージに依存します。 + +\section*{付録:\texttt{\char92mag}の扱いについて} + +本\textsf{bounddvi}パッケージは、日本で広く使われている奥村さんの +\textsf{jsclasses}クラス流の\verb+\mag+の用法をサポートしています。 +しかし、\verb+\mag+の使い方はCTANにある多様なパッケージの中で統一 +されておらず、大きく分けて二通りの使い方があるようです。 + +たとえば、版面を2倍に拡大 (\verb+\mag=2000+) して物理的なA4サイズ +($210\,\mathrm{mm}\times297\,\mathrm{mm}$)の出力を得たい場合 +\begin{quote} + \texttt{\char92mag=2000}\\ + \texttt{\char92paperwidth=210mm} ($= 420\,\mathrm{truemm}$)\\ + \texttt{\char92paperheight=297mm} ($= 594\,\mathrm{truemm}$) +\end{quote} +と設定するものと +\begin{quote} + \texttt{\char92mag=2000}\\ + \texttt{\char92paperwidth=105mm} ($= 210\,\mathrm{truemm}$)\\ + \texttt{\char92paperheight=148.5mm} ($= 297\,\mathrm{truemm}$) +\end{quote} +と設定するものとが存在します。 +前者は\textsf{geometry}パッケージなどの方式で、おそらく\texttt{dvips}の +\verb+papersize+ specialの挙動(truedimenを正しく解釈せず、trueの付か +ない単位だけを受け付けてあたかもtrue付であるかのように評価)に則った +ものでしょう。後者は\textsf{jsclasses}クラスの方式で、これは +\texttt{dvipdfm(x)}の\verb+pdf:pagesize+ specialとも同じです。 +この方式のほうが、truedimenで設定された\LaTeX のほかのレイアウト変数 +(\verb+\textwidth+など)に対して一貫性があると思われます。 +本\textsf{bounddvi}パッケージがサポートしているのは後者の方式です。 + +\section*{参考} + +\begin{itemize} +\item dvipsやdvipdfmなどで用紙サイズを出力\\ + \texttt{https://www.ma.ns.tcu.ac.jp/Pages/TeX/bounddvi.sty.html} +\end{itemize} + +\section*{変更履歴} + +\begin{itemize} + \item 2002/03/10 v1.0 (KI) 最初の公開版 + \item 2002/10/30 v2.0 (KI) \texttt{dvipdfm}の\texttt{pdf:pagesize special}を使用 + \item 2003/03/22 v3.2 (KI) \textsf{hyperref}との互換性を改良 + \item 2004/05/08 v4.0 (KI) $\mathtt{\char92mag} \ne 1000$に対応 + \item 2004/12/08 v5.2 (KI) \texttt{dvips}で\textsf{geometry}との互換性を改良 + \item 2004/12/15 v6.0 (KI) \texttt{dvipdfm(x)}の\texttt{pdf:pagesize special}を不使用に + \item 2016/10/25 v7.1 (HY) p\LaTeXe{}のトンボサポート、 + 2016年の新しい\textsf{graphics}/\textsf{color}に対応 + \item 2016/12/28 v7.2 (HY) 新仕様の\texttt{dvips}をドキュメント化 +\end{itemize} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/gentombow/gentombow.pdf b/Master/texmf-dist/doc/latex/gentombow/gentombow.pdf new file mode 100644 index 00000000000..7224d7da4e7 Binary files /dev/null and b/Master/texmf-dist/doc/latex/gentombow/gentombow.pdf differ diff --git a/Master/texmf-dist/doc/latex/gentombow/gentombow.tex b/Master/texmf-dist/doc/latex/gentombow/gentombow.tex new file mode 100644 index 00000000000..662ead5e26b --- /dev/null +++ b/Master/texmf-dist/doc/latex/gentombow/gentombow.tex @@ -0,0 +1,268 @@ +%# -*- ascii characters only -*- + +\documentclass[a4paper]{article} +\usepackage{doc} +\makeatletter +%%% dangerous bend +\font\man=manfnt at 10pt +\def\dbend{\leavevmode\raise0pt\hbox{\man\char'177}} +\newenvironment{dangerous}{% + \ifnum\@listdepth>\z@ + \GenericError{}{Do not use `dangerous' environment inside any list}{}{} + \fi + \par\addvspace\medskipamount + \@tempdima=\dimexpr\textwidth-2zw\relax\small + \divide\@tempdima by\dimexpr1zw\relax\@tempcnta=\@tempdima + \leftskip=\dimexpr\textwidth-\@tempcnta zw\relax + \@totalleftmargin\dimexpr\leftskip+0zw + \linewidth=\dimexpr\@tempcnta zw-0zw + \parindent1zw\noindent\kern-\leftskip\hbox to\leftskip{\dbend\hss}% + \everypar{\everypar{}}\ignorespaces +}{\par\addvspace\medskipamount} +%%% misc +\newcommand{\Meta}[1]{$\langle$\mbox{}\textit{#1}\mbox{}$\rangle$} +%%% +\makeatother +\usepackage{longtable} +\usepackage{gentombow} +\usepackage{bxpapersize} +\GetFileInfo{gentombow.sty} +\title{Package \textsf{gentombow} \fileversion} +\author{Hironobu Yamashita} +\date{\filedate} +\begin{document} + +\maketitle + +It is convenient to print documents for final smaller paper sizes +on paper of the printer's standard physical paper size; +it allows printing close to the logical paper edge +and even outside the logical page. + +This package \textsf{gentombow} provides a Japanese-style +crop marks (called `tombow' in Japanese) for trimming paper stacks, +and place the document page at the center of a larger physical +paper sheet. It automatically detects the page size +(\verb+\paperwidth+, \verb+\paperheight+) which is +going to be set by document class. +This document itself is a demonstration of this package, +with final A4 paper printed on B4 (JIS B4; not ISO B4!) paper. + +Note that this package does nothing about output paper size +specification; use one of the followings to do it. +\begin{itemize} +\item \textsf{graphicx} package + with \texttt{setpagesize} feature added in 2016 + (supports all engines) +\item \textsf{bxpapersize} package + (supports all engines; by Takayuki YATO) +\item \textsf{bounddvi} package + (supports only DVI output mode; part of \textsf{gentombow} bundle) +\end{itemize} + +A basic usage: +\begin{verbatim} + \documentclass[a4paper]{article} + \usepackage{gentombow} + \usepackage{graphicx} + \begin{document} + The content + \end{document} +\end{verbatim} +For Japanese people, \textsf{pxgentombow} (also part of +\textsf{gentombow} bundle) is also available; +it requires Japanese p\LaTeX/up\LaTeX\ or Lua\TeX-ja. + +This package is part of \textsf{gentombow} bundle: +\begin{verbatim} + https://github.com/aminophen/gentombow +\end{verbatim} +Originally it was part of \textsf{platex-tools} bundle, +but it has been moved since March 2018. + +\section{Basic Functions} + +First, I introduce some basic functions of \textsf{gentombow} package. + +\subsection{Automatic Determination of Output Size} + +In this package, +the following printer's standard physical paper sizes are predefined; +A series (\texttt{a0}--\texttt{a10}), +B series (\texttt{b0}--\texttt{b10}), +C series (\texttt{c0}--\texttt{c10}), +\texttt{letter}, \texttt{legal} and \texttt{executive}. +In the current release, `B series' is JIS standard, +not ISO standard (this might be changed in the near future). +Also, some variations \texttt{a4var} and \texttt{b5var} are predefined. + +When one of the above sizes (except \texttt{a0}, \texttt{b0} +and \texttt{c0}) is detected, the output size is +automatically determined along with the following rule: +\begin{itemize} +\item When A series detected: + the output is going to be larger B series +\item When B/C series or + \texttt{letter}, \texttt{legal}, \texttt{executive} detected: + the output is going to be larger A series +\end{itemize} +The crop marks are automatically added. +The orientation (landscape/portrait) of the input paper is +also preserved. + +The following list shows common examples: +\begin{longtable}[c]{cc} + \hline + Detected page size & Output size \\ + \hline + a6 & b6 \\ + b6 & a5 \\ + a5 & b5 \\ + b5 & a4 \\ + a4 & b4 \\ + b4 & a3 \\ + a3 & b3 \\ + b3 & a2 \\ + \hline + c6 & a5 \\ + c5 & a4 \\ + c4 & a3 \\ + c3 & a2 \\ + \hline + letter & a3 \\ + legal & a3 \\ + executive & a4 \\ + \hline +\end{longtable} + +\subsection*{When Automatic Determination Failed} + +When the page size is different from any of the predefined sizes, +the page is placed with the surrounding 1~inch margins. +For example, when the page has $100\,\mathrm{mm}$ width and +$200\,\mathrm{mm}$ height, the output size is going to be +$100\,\mathrm{mm}+2\,\mathrm{in}$ width and +$200\,\mathrm{mm}+2\,\mathrm{in}$ height. + +\subsection{Job Info Printing} + +By default, the crop marks are printed with a banner, which shows +a job info like \makeatletter\texttt{\the\@bannertoken}\makeatother. +The format is similar to \verb+tombow+ option, which is +available in most of the common Japanese classes. +The default also reacts to \verb+tombo+ (without a job info) or +\verb+mentuke+ (do not print actual crop marks) class options. + +\section{Package Options} + +You can specify output size and/or disable job info printing +using package options. + +\subsection{Explicit Specification of Output Size} + +You can also force the output size using package option. +For example, +\begin{verbatim} + \documentclass[a4paper]{article} + \usepackage[tombow-a4]{gentombow} + \begin{document} + The content + \end{document} +\end{verbatim} +forces the output size to be a3 (the automatic determination +`b4' is discarded). Available sizes are the same as +the predefined sizes, that is, +A series (\texttt{a0}--\texttt{a10}), +B series (\texttt{b0}--\texttt{b10}), +C series (\texttt{c0}--\texttt{c10}) and +\texttt{a4var}, \texttt{b5var}, +\texttt{letter}, \texttt{legal}, \texttt{executive}. +The orientation (landscape/portrait) of the input paper is +also preserved again. + +The option format is: +\Meta{crop mark format}\texttt{-}\Meta{output size}. +The crop mark format is one of the following: +\verb+tombow+ (default), \verb+tombo+ (without a job info), +\verb+mentuke+ (do not print actual crop marks). + +\subsection{Disabling Job Info Printing} + +When you specify the output size explicitly, the crop mark format +can be given at the same time, as described previously. +When the output size is automatically determined, you can disable +job info printing by \verb+notombowbanner+ option. + +\section{Customization of Crop Mark} + +The \textsf{pxgentombow} package provides some commands to +customize crop mark format. + +\subsection{Banner content} + +Using \verb+\settombowbanner+, you can set the banner content. +An example using \verb+\pdfcreationdate+ (pdf\TeX\ primitive) +\begin{verbatim} + \documentclass[a4paper]{article} + \usepackage{gentombow} + \settombowbanner{\jobname\space (\pdfcreationdate)} + \begin{document} + The content + \end{document} +\end{verbatim} +will result in +{\settombowbanner{\jobname\space (\pdfcreationdate)}% + \makeatletter\texttt{\the\@bannertoken}\makeatother}. +The argument is an arbitrary token list. + +\subsection{Banner font} + +Using \verb+\settombowbannerfont+, you can change the font +with which the banner is printed. +\begin{verbatim} + \settombowbannerfont{cmss10 at 9pt} +\end{verbatim} +This feature internally calls the \TeX\ primitive \verb+\font+, +and accepts all fonts supported by the engine. When Lua\TeX\ or +Xe\TeX\ is used, a native OpenType font can also be given. + +\subsection{Crop mark line width} + +By default, the line width of crop marks is 0.1~pt. +This can be change to 1~pt by \verb+\settombowwidth{1pt}+. +The argument is an arbitrary dimension. + +\section{Additional Notes} + +Here is some additional notes for use with several classes/packages. + +\subsection{Note for \textsf{BXjscls} users} + +When using \textsf{BXjscls} (by Takayuki YATO) with size option +other than 10pt, please add \verb+nomag+ or \verb+nomag*+ to the +class option. For example, +\begin{verbatim} + \documentclass[a4paper,14pt]{bxjsarticle} + \usepackage{gentombow} +\end{verbatim} +will not work as expected (\textsf{gentombow} throws an error +for safety). + +\subsection{Note about Layout Settings} + +You should not change \verb+\hoffset+ or \verb+\voffset+ to non-zero +value, for the purpose of layout settings. Such settings will +conflict with the feature of \textsf{gentombow} package. +To set page layout correctly, you should adjust \verb+\oddsidemargin+ +or \verb+\topmargin+, or leave it to \textsf{geometry} package. + +\section*{Change History} + +\begin{itemize} + \item 2017/12/17 v0.9 First CTAN release + \item 2018/03/16 v0.9e Add \verb+\settombowbanner+, + \verb+\settombowbannerfont+ and + \verb+\settombowwidth+. +\end{itemize} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/gentombow/pxgentombow.pdf b/Master/texmf-dist/doc/latex/gentombow/pxgentombow.pdf new file mode 100644 index 00000000000..dbdb934c65c Binary files /dev/null and b/Master/texmf-dist/doc/latex/gentombow/pxgentombow.pdf differ diff --git a/Master/texmf-dist/doc/latex/gentombow/pxgentombow.tex b/Master/texmf-dist/doc/latex/gentombow/pxgentombow.tex new file mode 100644 index 00000000000..791ce2ab553 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gentombow/pxgentombow.tex @@ -0,0 +1,397 @@ +%# -*- coding: utf-8 -*- +\ifx\epTeXinputencoding\undefined\else % defined in e-pTeX (> TL2016) + \epTeXinputencoding utf8 % ensure utf-8 encoding for platex +\fi + +\documentclass[a4paper]{jsarticle} +\usepackage{doc} +\makeatletter +%%% import from jltxdoc.cls +\def\verb{\relax\ifmmode\hbox\else\leavevmode\vadjust{}\fi + \bgroup \let\do\do@noligs \verbatim@nolig@list + \ttfamily \verb@eol@error \let\do\@makeother \dospecials + \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} +\xspcode"5C=3 %% \ +\xspcode"22=3 %% " +%%% dangerous bend +\font\man=manfnt at 10pt +\def\dbend{\leavevmode\raise0pt\hbox{\man\char'177}} +\newenvironment{dangerous}{% + \ifnum\@listdepth>\z@ + \GenericError{}{Do not use `dangerous' environment inside any list}{}{} + \fi + \par\addvspace\medskipamount + \@tempdima=\dimexpr\textwidth-2zw\relax\small + \divide\@tempdima by\dimexpr1zw\relax\@tempcnta=\@tempdima + \leftskip=\dimexpr\textwidth-\@tempcnta zw\relax + \@totalleftmargin\dimexpr\leftskip+0zw + \linewidth=\dimexpr\@tempcnta zw-0zw + \parindent1zw\noindent\kern-\leftskip\hbox to\leftskip{\dbend\hss}% + \everypar{\everypar{}}\ignorespaces +}{\par\addvspace\medskipamount} +%%% logo +\def\pTeX{p\kern-.15em\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +%%% misc +\newcommand{\Meta}[1]{$\langle$\mbox{}\textit{#1}\mbox{}$\rangle$} +\newcommand{\jMeta}[1]{$\langle$\mbox{}\textsf{#1}\mbox{}$\rangle$} +%%% +\makeatother +\usepackage{longtable} +\usepackage{pxgentombow} +\usepackage{bounddvi} +\GetFileInfo{pxgentombow.sty} +\title{Package \textsf{pxgentombow} \fileversion} +\author{Hironobu Yamashita} +\date{\filedate} +\begin{document} + +\maketitle + +\begin{center} +English version is available: see \textsf{gentombow} package! +\end{center} + +日本の出版では、たとえば仕上がり寸法がA4サイズの場合、一回り大きな +B4サイズの用紙の中央にトンボ付きで印刷することがあるようです。 +このドキュメントは、実際にA4用紙をB4用紙の中央にトンボ付きで +配置している事例です。 + +\textsf{pxgentombow}パッケージは、クラスファイルなどが想定している用紙 +サイズ情報(\verb+\paperwidth+, \verb+\paperheight+)を検知し、 +それより一回り大きなサイズの用紙の中央にトンボ付きで出力するために +必要な機能を提供します。 +ただし、このパッケージは実際の出力サイズ指定を発行しませんので、 +以下のいずれかのパッケージと併用するとよいでしょう: +\begin{itemize} +\item \textsf{bounddvi}パッケージ(\textsf{gentombow}バンドル) +\item \textsf{bxpapersize}パッケージ(ZRさん作) +\item \textsf{graphicx}パッケージの2016年以降の版 + (\texttt{setpagesize}機能つきのもの) +\end{itemize} +\textsf{bounddvi}パッケージは、\textsf{pxgentombow}と同じく +\textsf{gentombow}バンドルに収録されていますが、 +名前のとおりDVIを経由する場合にしか利用できません。 +一方、\textsf{bxpapersize}パッケージは汎用で、Lua\TeX のような +PDF直接出力の場合にも利用できます。また、\textsf{graphicx}パッケージ +は画像挿入用のパッケージですが、2016年以降は自動的に出力サイズ指定も +行うようです($\verb+\mag+ \ne 1000$の場合には機能しません)。 + +使い方の例は +\begin{verbatim} + \documentclass[a4j]{jarticle} + \usepackage{pxgentombow} + \usepackage{bounddvi} + \begin{document} + …本文… + \end{document} +\end{verbatim} +です。p\LaTeX における横組と縦組の両方で使え、また\textsf{jsclasses}の +ような版面拡大(\verb+\mag+)が使われた場合にも対応しています。 +なお、\textsf{pxgentombow}パッケージはp\LaTeX とup\LaTeX および +Lua\TeX-jaのみで動作します。その他(pdf\LaTeX など)で使いたい +場合は、代わりに\textsf{gentombow}パッケージを使用してください。 + +本パッケージは、\textsf{gentombow}バンドルの一部として +配布されています: +\begin{verbatim} + https://github.com/aminophen/gentombow +\end{verbatim} +2017年までは\textsf{platex-tools}バンドルの一部でしたが、 +2018年以降は独立させてあります。 + +\section{簡単な使用法} + +はじめに、パッケージをオプション指定なしに使用する場合の機能を +説明します。 + +\subsection{用紙サイズの自動検知による出力サイズ決定} + +パッケージにはあらかじめA系列(\texttt{a0}--\texttt{a10})、 +B系列(\texttt{b0}--\texttt{b10})、C系列(\texttt{c0}--\texttt{c10})と +\texttt{letter}, \texttt{legal}, \texttt{executive}の用紙サイズが +定義されています。ここで、B系列はISOではなくJISです。 +また、変型版として\texttt{a4var}(\texttt{a4}の変型)と +\texttt{b5var}(\texttt{b5}の変型)も定義されています。 + +これらのうちいずれか(ただし\texttt{a0}, \texttt{b0}, \texttt{c0}を +除く)の用紙サイズを検知すると、 +出力サイズが次の規則で自動的に決定されます\footnote{なお、 +C系列と\texttt{letter}, \texttt{legal}, \texttt{executive}については +日本での慣習が不明の +ため、現時点ではA系列のサイズで出力することにしています。}。 +\begin{itemize} +\item 用紙サイズがA系列のとき: + 出力サイズは一回り大きなB系列 +\item 用紙サイズがB, C系列または + \texttt{letter}, \texttt{legal}, \texttt{executive}のとき: + 出力サイズは一回り大きなA系列 +\end{itemize} +この場合、パッケージを読みこんだだけでトンボが付きます。 +なお、用紙サイズが横長の場合は自動的に出力も横長になり、 +縦長の場合は自動的に縦長になります。 + +よく使われる用紙サイズの例を挙げます。 +\begin{longtable}[c]{cc} + \hline + 用紙サイズ & 出力サイズ \\ + \hline + a6 & b6 \\ + b6 & a5 \\ + a5 & b5 \\ + b5 & a4 \\ + a4 & b4 \\ + b4 & a3 \\ + a3 & b3 \\ + b3 & a2 \\ + \hline + c6 & a5 \\ + c5 & a4 \\ + c4 & a3 \\ + c3 & a2 \\ + \hline + letter & a3 \\ + legal & a3 \\ + executive & a4 \\ + \hline +\end{longtable} + +\subsection*{参考:用紙サイズの自動検知に失敗した場合の出力サイズ決定} + +仮に用紙サイズが定義済みのいずれとも異なる場合は、デフォルトでは +用紙の天地左右に1インチずつのノビを付けたサイズで出力します。 +たとえば、幅$100\,\mathrm{mm}$、高さ$200\,\mathrm{mm}$の用紙の場合、 +出力サイズは幅$100\,\mathrm{mm}+2\,\mathrm{in}$、 +高さ$200\,\mathrm{mm}+2\,\mathrm{in}$になります。 + +\subsection{トンボへのバナーの出力} + +デフォルトでは\makeatletter\texttt{\the\@bannertoken}\makeatother +のような形式で、トンボにジョブ情報(処理ファイル名と日付)を示すバナーが +出力されます。これは、\pLaTeX 向けの日本語クラスファイルの多くで +利用可能な\verb+tombow+オプションと同様です。 +ただし、クラスオプションに\verb+tombo+(ジョブ情報を出力しない)または +\verb+mentuke+(トンボの線を表示しない)が指定されている場合は、 +この設定が引き継がれます。 + +\section{パッケージオプション} + +パッケージオプションによって、出力サイズやバナーのジョブ情報の有無を +指定する方法を説明します。 + +\subsection{出力サイズの明示指定} + +自動決定されるサイズと異なるサイズに出力したい場合、 +パッケージオプションで明示的に指定することができます。たとえば +\begin{verbatim} + \documentclass[a4j]{jarticle} + \usepackage[tombow-a3]{pxgentombow} + \begin{document} + …本文… + \end{document} +\end{verbatim} +とすると、出力サイズは(自動決定のb4は無視されて)a3に変わります。 +指定可能なサイズは、定義済みの用紙サイズと同じものです。すなわち、 +A系列(\texttt{a0}--\texttt{a10})、 +B系列(\texttt{b0}--\texttt{b10})、 +C系列(\texttt{c0}--\texttt{c10})と +\texttt{a4var}, \texttt{b5var}, +\texttt{letter}, \texttt{legal}, \texttt{executive}です。 +なお、ここでも用紙サイズが横長の場合は自動的に出力も横長になり、 +縦長の場合は自動的に縦長になります。 + +オプションは\jMeta{トンボ形式}\texttt{-}\jMeta{出力サイズ}の書式で与えます。 +トンボ形式は、p\LaTeX の標準クラスと同じで +\verb+tombow+, \verb+tombo+, \verb+mentuke+のいずれかを選びます +(\verb+tombow+はジョブ情報を表示し、\verb+tombo+は表示しません。 +また、\verb+mentuke+はトンボの線を表示しません)。 + +\subsection{トンボに表示するジョブ情報の有無} + +用紙サイズを明示的に指定する場合は、前節のようにトンボ形式と出力サイズを +同時にオプションで与えることができます。 +逆に出力サイズを自動決定に任せつつ、ジョブ情報の有無だけを指定したい +場合は、トンボへのバナー出力を抑制する\verb+notombowbanner+オプションを +使用してください。 + +\section{詳細なカスタマイズ} + +\textsf{pxgentombow}パッケージは、トンボの見た目やバナーの内容を +カスタマイズする機能も提供します。 + +\subsection{トンボに表示するバナーの内容} + +\verb+\settombowbanner+命令を用います。例えば\epTeX の +\verb+\pdfcreationdate+プリミティブを使って +\begin{verbatim} + \documentclass[a4j]{jarticle} + \usepackage{pxgentombow} + \settombowbanner{\jobname\space (\pdfcreationdate)} + \begin{document} + …本文… + \end{document} +\end{verbatim} +とすると、バナーの表示内容は +{\settombowbanner{\jobname\space (\pdfcreationdate)}% + \makeatletter\texttt{\the\@bannertoken}\makeatother}になります。 +命令の引数には任意のトークン列を与えることができます。 + +\subsection{バナーの文字のフォント} + +\verb+\settombowbannerfont+命令を用います。例えば +\begin{verbatim} + \settombowbannerfont{cmss10 at 9pt} +\end{verbatim} +のような指定が可能です。内部的には\verb+\font+プリミティブを利用しており、 +使用している\TeX エンジンがサポートする任意のフォントを指定可能です +\footnote{Lua\TeX やXe\TeX (\textsf{gentombow}パッケージの場合)では、 +OpenTypeフォントを直接利用することもできます。}。 + +\subsection{トンボの線の太さ} + +デフォルトではトンボの線の太さは0.1~ptですが、 +\verb+\settombowwidth{1pt}+とすると1~ptになります。 +命令の引数には任意の寸法を与えることができますが、 +実用上は数pt以内が良いでしょう。 + +\section{その他の注意点} + +特定のクラスファイルやパッケージと一緒に使用する場合、 +いくつかの注意点があります。 + +\subsection{\textsf{jsclasses}で使用する場合の注意} + +奥村晴彦氏による\textsf{jsclasses}のクラス(2016年以降は日本語\TeX 開発 +コミュニティが管理)を使用していて、10pt以外のサイズオプションを +指定する場合は、以下のいずれかの方法をとってください。 +\begin{itemize} +\item クラスオプションに「トンボオプション」 + (\verb+tombow+または\verb+tombo+)を追加する。 +\item クラスオプションに「\verb+\mag+を使わないオプション」 + (\verb+nomag+または\verb+nomag*+)を追加する。 +\end{itemize} +これは、\textsf{jsclasses}クラス内で行われる\verb+\oddsidemargin+と +\verb+\topmargin+の計算の都合からくる制約です。たとえば +\begin{verbatim} + \documentclass[a4j,14pt]{jarticle} + \usepackage{pxgentombow} +\end{verbatim} +という使い方は\emph{誤り}です(このままでは誤った余白設定が +適用されますので、安全のため\textsf{pxgentombow}パッケージ +がエラーを出すようにしてあります)。代わりに +\begin{verbatim} + \documentclass[a4j,14pt,tombow]{jarticle} + \usepackage{pxgentombow} +\end{verbatim} +と書くようにしてください。 + +同様に、ZR氏による\textsf{BXjscls}のクラスを使用していて、10pt以外の +サイズオプションを指定する場合は +\begin{itemize} +\item クラスオプションに「\verb+\mag+を使わないオプション」 + (\verb+nomag+または\verb+nomag*+)を追加する。 +\end{itemize} +という対処が必要です(\textsf{BXjscls}クラスでは「トンボオプション」が +機能しないダミーになっていることに注意)。 + +\subsection{レイアウト設定の注意} + +余白などのレイアウト設定でありがちですが、 +\verb+\hoffset+や\verb+\voffset+の値を$0$以外に設定するのは +避けてください。このような設定は\textsf{pxgentombow}パッケージの +トンボ出力機能と衝突するため、正しい出力が得られません。 +レイアウト設定のために変更すべきなのはこれらの寸法ではなく、 +\verb+\oddsidemargin+や\verb+\topmargin+であることがほとんどです。 +したがって、それらを適切な値に設定するか、レイアウトの設定すべてを +\textsf{geometry}パッケージに任せてしまうのも一つの方法です。 + +\begin{dangerous} +たとえば左右の余白を$25\,\mathrm{mm}$に、上下の余白を +$30\,\mathrm{mm}$にしたいとき\footnote{ここでは「本文の領域以外」を +余白と定義します。すなわち、ヘッダとフッタは余白の一部です。}、 +まず「\TeX の1インチ」を +削除してから\verb+\oddsidemargin+や\verb+\topmargin+を変更すると、 +「見かけ上は」期待どおりの結果になることがあります。 +\begin{verbatim} + \setlength{\hoffset}{-1in}% <== NG + \setlength{\voffset}{-1in}% <== NG + \setlength{\oddsidemargin}{25mm} + \setlength{\topmargin}{30mm} + \setlength{\textwidth}{\paperwidth} + \addtolength{\textwidth}{-2\oddsidemargin} + \setlength{\textheight}{\paperheight} + \addtolength{\textheight}{-2\topmargin} + \addtolength{\topmargin}{-\headheight} + \addtolength{\topmargin}{-\headsep} +\end{verbatim} +しかし、この設定では\textsf{pxgentombow}パッケージがトンボを +追加するとき、正しい余白を維持することができません。 + +一方、\verb+\hoffset+や\verb+\voffset+は$0$のままで、以下のように +\verb+\oddsidemargin+や\verb+\topmargin+を設定していれば問題ありません。 +\begin{verbatim} + \setlength{\oddsidemargin}{-0.4mm}% 25mm = 1inch - 0.4mm + \setlength{\topmargin}{4.6mm}% 30mm = 1inch + 4.6mm + \setlength{\textwidth}{\paperwidth} + \addtolength{\textwidth}{-50mm} + \addtolength{\topmargin}{-\headheight} + \addtolength{\topmargin}{-\headsep} + \setlength{\textheight}{\paperheight} + \addtolength{\textheight}{-60mm} +\end{verbatim} +これと同等のレイアウト設定は、以下のように\textsf{geometry}パッケージで +行うのが簡単です。 +\begin{verbatim} + \usepackage[lmargin=25mm,rmargin=25mm, + tmargin=30mm,bmargin=30mm]{geometry} +\end{verbatim} +\end{dangerous} + +\section*{雑記} + +発端はこの話です。 +\begin{itemize} +\item 齋藤修三郎 (@psi\_tau) on Twitter, 2017年2月9日\\ + \texttt{https://twitter.com/psi\_tau/status/829873082911248386} +\end{itemize} + +また、現在検討中の事項を挙げておきます。 +\begin{itemize} +\item 現状では、用紙の横長・縦長がそのまま出力に反映されるので、 + これを逆転させるオプションの実装。また、任意の出力サイズを + 指定できるインタフェースの実現。 +\item 自動で決定できる出力サイズの拡張。現状では用紙サイズが + 定義値に完全一致する場合のみ自動決定されるが、中間のサイズでも + その一回り大きなサイズに出力したい場合があるのではないか。 +\item 出版用途ではカラー印刷の場合に、CMYKの版ごとにトンボを作る + 必要がある。\textsf{color}パッケージが利用可能な場合に、 + オプション次第でCKなど必要な色を選べるようにするとよい + のではないか\footnote{ただし作者の本業は出版ではないので、 + 商用を含む実用には程遠いかもしれない。}。 +\item $\verb+\mag+ \ne 1000$の場合について、\textsf{jsclasses}以外での + 動作は未確認。特に、\textsf{geometry}とは共存しない可能性が高い。 +\item \verb+\stockwidth+/\verb+\stockheight+が + \verb+\paperwidth+/\verb+\paperheight+より小さい場合の動作。 + 現在は警告を出すだけとしているが、さらに天地左右1inに + フォールバックしたほうが無難だろうか。 +\end{itemize} + +\section*{変更履歴} + +\begin{itemize} + \item 2017/02/10 v0.1 最初の公開版 + \item 2017/03/01 v0.4 トンボ形式の修正など + \item 2017/05/05 v0.5 \textsf{jsclasses}の$\verb+\mag+ \ne 1000$に対応、 + 最初のCTANリリース版 + \item 2017/05/06 v0.6 \textsf{jsclasses}との共存時のチェック強化、 + Lua\TeX-jaでの動作確認 + \item 2017/07/23 v0.7 ドキュメント更新 + \item 2017/12/17 v0.9 \textsf{gentombow}パッケージの新設 + \item 2018/03/16 v0.9e クラスオプションの\verb+tombow+等の引き継ぎ、 + トンボ書式のカスタマイズ機能の追加 + (\verb+\settombowbanner+, + \verb+\settombowbannerfont+, + \verb+\settombowwidth+の各命令) +\end{itemize} + +\end{document} diff --git a/Master/texmf-dist/tex/latex/gentombow/bounddvi.sty b/Master/texmf-dist/tex/latex/gentombow/bounddvi.sty new file mode 100644 index 00000000000..35432df5f05 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gentombow/bounddvi.sty @@ -0,0 +1,87 @@ +% +% bounddvi.sty +% 2016/12/28 v7.2-v7.0 h.y.acetaminophen@gmail.com +% 2004/12/15 v6.0-v1.0 inoue@ma.ns.tcu.ac.jp +% +% This package, originally written by Koichi Inoue +% and modified by Hironobu Yamashita, is distributed +% as part of the gentombow bundle. +% https://github.com/aminophen/gentombow +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bounddvi}[2016/12/28 v7.2 bounddvi] + +% catcode trick to hide \iftombow ... \else ... \fi +% since \iftombow is defined only in pLaTeX. +\ifx\pfmtname\@undefined + \catcode`\Q=14\relax +\else + \catcode`\Q=9\relax +\fi + +% Note: graphics/color drivers +% - dvips.def 2016/07/10 v3.1a or later +% - dvipdfmx.def 2016/07/10 v4.12 or later +% emit papersize special _only_ when \Gin@setpagesizetrue +% and \mag = 1000. When graphicx(s) or color is used with +% setpagesize option (= default since 2016) and \mag equals +% to 1000, we can exploit its routine. +% (they are using \AtBeginDocument{\AtBeginDvi{...}}) +% However, these .def files do _not_ care about tombow by pLaTeX; +% so, we set \stock{width,height} to invoke stock test in those +% files (probably meant for memoir.cls). +Q \iftombow +Q % if \stockwidth/\stockheight are not available, +Q % define them now +Q \ifx\stockwidth\@undefined \newdimen\stockwidth \fi +Q \ifx\stockheight\@undefined \newdimen\stockheight \fi +Q % if \stockwidth already has effective value, do nothing; +Q % otherwise assume pLaTeX-style tombow and set it to +Q % \paperwidth + 2in (similar for \stockheight) +Q \ifdim\stockwidth>\z@\else +Q \stockwidth\paperwidth \advance\stockwidth2in +Q \fi +Q \ifdim\stockheight>\z@\else +Q \stockheight\paperheight \advance\stockheight2in +Q \fi +Q \fi + +% reset catcode trick +\catcode`\Q=11\relax + +% following code is almost equivalent to +% \AtBeginDocument{\AtBeginDvi{...}} +% however, we append the specification to the _beginning_ of +% \@begindocumenthook; this ensures proper papersize when +% dvips (TeX Live 2016 or earlier) is used. +\begingroup +\def\@prependto@begindocumenthook{\global\setbox\@begindvibox + \vbox{\csname yoko\endcsname\unvbox\@begindvibox + \begingroup + % if \stockwidth/\stockheight are defined & have effective + % values, copy them to \paperwidth/\paperheight + % for current group + \ifx\stockwidth\@undefined\else \ifdim\stockwidth>\z@ + \paperwidth\stockwidth + \fi\fi + \ifx\stockheight\@undefined\else \ifdim\stockheight>\z@ + \paperheight\stockheight + \fi\fi + % adjust for \mag and emit papersize special + \divide\paperwidth\@m\multiply\paperwidth\mag + \divide\paperheight\@m\multiply\paperheight\mag + \special{papersize=\the\paperwidth,\the\paperheight}% + \endgroup}} +\toks@\expandafter\expandafter\expandafter + {\expandafter\@prependto@begindocumenthook\@begindocumenthook} +\xdef\@begindocumenthook{\the\toks@} +% append papersize special again to the _end_ of the +% current \@begindocumenthook; this will be meaningful e.g. when +% geometry is loaded before bounddvi. +% (geometry adds \AtBeginDocument{\AtBeginDvi{...}} specification) +\expandafter\g@addto@macro\expandafter\@begindocumenthook + \expandafter{\@prependto@begindocumenthook} +\endgroup + +\endinput diff --git a/Master/texmf-dist/tex/latex/gentombow/gentombow.sty b/Master/texmf-dist/tex/latex/gentombow/gentombow.sty new file mode 100644 index 00000000000..61bccca4987 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gentombow/gentombow.sty @@ -0,0 +1,159 @@ +% +% gentombow.sty +% written by Hironobu Yamashita (@aminophen) +% +% This package is part of the gentombow bundle. +% https://github.com/aminophen/gentombow +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{gentombow} + [2018/03/16 v0.9e Generate crop mark 'tombow'] +\def\pxgtmb@emu@pkgname{gentombow} + +%% error status (shared with pxgentombow.sty) +\ifx\pxgtmb@errlevel\@undefined + \chardef\pxgtmb@errlevel=\z@ +\fi + +%% supported engines +\ifx\pfmtversion\@undefined + \@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\@ne} +\fi +\ifnum\pxgtmb@errlevel>\z@\else + \PackageInfo{\pxgtmb@emu@pkgname}{% + pLaTeX, upLaTeX and LuaTeX-ja are natively\MessageBreak + supported by `pxgentombow' package;\MessageBreak + there is no need for this package.} + \RequirePackageWithOptions{pxgentombow} + \expandafter\endinput +\fi + +%%%%% EMULATION BEGIN + +% required for patching \@outputpage +\RequirePackage{etoolbox} + +% patch \@outputpage +\begingroup +\def\pxgtmb@emu@status{0} +\let\pxgtmb@emu@outputpage\@outputpage +\patchcmd\pxgtmb@emu@outputpage % try first patch + {\reset@font\normalsize\normalsfcodes}% + {% + \@@topmargin\topmargin + \iftombow + \@@paperwidth\paperwidth \advance\@@paperwidth 6mm\relax + \@@paperheight\paperheight \advance\@@paperheight 16mm\relax + \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax + \fi + \reset@font\normalsize\normalsfcodes} + {}{\def\pxgtmb@emu@status{1}} +\patchcmd\pxgtmb@emu@outputpage % try second patch + {\@begindvi \vskip \topmargin}% + {\@begindvi \@outputtombow \vskip \@@topmargin}% + {}{\def\pxgtmb@emu@status{1}} +% commit the change only when successful; otherwise +% tombow feature is never enabled, exit right away +\if 0\pxgtmb@emu@status\relax + \global\let\@outputpage\pxgtmb@emu@outputpage +\else + \PackageError{\pxgtmb@emu@pkgname}{% + Failed in patching \string\@outputpage!\MessageBreak + Sorry, I can't proceed anymore...}\@ehc + \expandafter\expandafter\expandafter\endinput\expandafter +\fi +\endgroup +% + +% provides equivalent for plcore.ltx +\newif\iftombow \tombowfalse +\newif\iftombowdate \tombowdatetrue +\newdimen\@tombowwidth +\setlength{\@tombowwidth}{.1\p@} +\newbox\@TL\newbox\@Tl +\newbox\@TC +\newbox\@TR\newbox\@Tr +\newbox\@BL\newbox\@Bl +\newbox\@BC +\newbox\@BR\newbox\@Br +\newbox\@CL +\newbox\@CR +\font\@bannerfont=cmtt9 +\newtoks\@bannertoken +\@bannertoken{} +\def\maketombowbox{% removed \yoko from all boxes + \setbox\@TL\hbox to\z@{\hss + \vrule width13mm height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ + \iftombowdate + \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}% + \fi}% + \setbox\@Tl\hbox to\z@{\hss + \vrule width10mm height\@tombowwidth depth\z@ + \vrule height13mm width\@tombowwidth depth\z@}% + \setbox\@TC\hbox{% + \vrule width10mm height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@}% + \setbox\@TR\hbox to\z@{% + \vrule height10mm width\@tombowwidth depth\z@ + \vrule width13mm height\@tombowwidth depth\z@\hss}% + \setbox\@Tr\hbox to\z@{% + \vrule height13mm width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@\hss}% + \setbox\@BL\hbox to\z@{\hss + \vrule width13mm depth\@tombowwidth height\z@ + \vrule depth10mm width\@tombowwidth height\z@}% + \setbox\@Bl\hbox to\z@{\hss + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth13mm width\@tombowwidth height\z@}% + \setbox\@BC\hbox{% + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth10mm width\@tombowwidth height\z@ + \vrule width10mm depth\@tombowwidth height\z@}% + \setbox\@BR\hbox to\z@{% + \vrule depth10mm width\@tombowwidth height\z@ + \vrule width13mm depth\@tombowwidth height\z@\hss}% + \setbox\@Br\hbox to\z@{% + \vrule depth13mm width\@tombowwidth height\z@ + \vrule width10mm depth\@tombowwidth height\z@\hss}% + \setbox\@CL\hbox to\z@{\hss + \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth + \vrule height10mm depth10mm width\@tombowwidth}% + \setbox\@CR\hbox to\z@{% + \vrule height10mm depth10mm width\@tombowwidth + \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}% +} +\def\@outputtombow{% + \iftombow + \vbox to\z@{\kern-13mm\relax + \boxmaxdepth\maxdimen + \moveleft3mm\vbox to\@@paperheight{% + \hbox to\@@paperwidth{\hskip3mm\relax + \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip3mm}% + \kern-10mm + \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% + \vfill + \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% + \vfill + \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% + \kern-10mm + \hbox to\@@paperwidth{\hskip3mm\relax + \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip3mm}% + }\vss + }% + \fi +} +\newdimen\@@paperheight +\newdimen\@@paperwidth +\newdimen\@@topmargin +\newcount\hour +\newcount\minute + +%%%%% EMULATION END + +%% load it +\RequirePackageWithOptions{pxgentombow} + +\endinput diff --git a/Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty b/Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty new file mode 100644 index 00000000000..7112737aa2d --- /dev/null +++ b/Master/texmf-dist/tex/latex/gentombow/pxgentombow.sty @@ -0,0 +1,335 @@ +% +% pxgentombow.sty +% written by Hironobu Yamashita (@aminophen) +% +% This package is part of the gentombow bundle. +% https://github.com/aminophen/gentombow +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pxgentombow} + [2018/03/16 v0.9e Generate crop mark 'tombow'] +\def\pxgtmb@pkgname{pxgentombow} + +%% error status (shared with gentombow.sty) +\ifx\pxgtmb@errlevel\@undefined + \chardef\pxgtmb@errlevel=\z@ +\fi + +%% supported engines +\ifx\pfmtversion\@undefined + \@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\@ne} +\fi +\ifnum\pxgtmb@errlevel>\z@ + \ifx\pxgtmb@emu@pkgname\@undefined % gentombow.sty not loaded + \PackageError{\pxgtmb@pkgname}{% + Only pLaTeX, upLaTeX and LuaTeX-ja are supported!\MessageBreak + Please use `gentombow' package instead}\@ehc + \expandafter\expandafter\expandafter\endinput\expandafter + \fi +\else + \@namedef{ver@gentombow.sty}{}% fake +\fi + +%% import from jsclasses +\hour\time \divide\hour by 60\relax +\@tempcnta\hour \multiply\@tempcnta 60\relax +\minute\time \advance\minute-\@tempcnta + +\ifnum\mag=\@m\else + % if BXjscls is detected and \mag != 1000, + % the layout will be definitely broken + \ifx\bxjs@param@mag\@undefined\else + \PackageError{\pxgtmb@pkgname}{% + It seems you are using Japanese `BXjscls'\MessageBreak + (bxjsarticle, bxjsbook, bxjsreport, etc.) or\MessageBreak + some derived class. Try adding `nomag' or\MessageBreak + `nomag*' to the class option list}\@ehc + \fi +\fi + +%% this package will use tombo feature in pLaTeX kernel +% if tombow-related option is not included in class option list, +% show info and enable it now +\iftombow\else + % if jsclasses is detected and \mag != 1000, it's too late + % -- When a size option other than `10pt' is specified, + % jsclasses uses \mag and calculates \oddsidemargin and \topmargin + % differently, depending on tombow status. + % In order to force `jsclasses' to calculate correctly, + % `tombow' or `tombo' is required as a class option. + % ... or, you may add `nomag' or `nomag*' instead. + \ifnum\mag=\@m\else \ifx\inv@mag\@undefined\else + \PackageError{\pxgtmb@pkgname}{% + It seems you are using Japanese `jsclasses'\MessageBreak + (jsarticle, jsbook, jsreport, etc.) or some\MessageBreak + derived class. Please add `tombow' or `tombo'\MessageBreak + to the class option list}\@ehc + \fi \fi + % BXjscls is already checked above, no check here + \PackageInfo\pxgtmb@pkgname{tombow feature enabled by \pxgtmb@pkgname} +\fi +\tombowtrue %\tombowdatetrue %% enabled by tombowbanner option +\setlength{\@tombowwidth}{.1\p@}% + +%% import from jsclasses +\@bannertoken{% + \jobname\space(\number\year-\two@digits\month-\two@digits\day + \space\two@digits\hour:\two@digits\minute)} + +%% prepare dimension +\ifx\stockheight\@undefined \newdimen\stockheight \fi +\ifx\stockwidth\@undefined \newdimen\stockwidth \fi + +%% prepare flag +\newif\ifpxgtmb@switch \pxgtmb@switchfalse +\newif\ifpxgtmb@landscape \pxgtmb@landscapefalse + +%% passed from class options +%% should be declared first inside this package (least priority) +\DeclareOption{tombow}{\tombowdatetrue} +\DeclareOption{tombo}{\tombowdatefalse} +\DeclareOption{mentuke}{\tombowdatefalse \setlength{\@tombowwidth}{\z@}} + +%% package options part 1 +\DeclareOption{tombowbanner}{\tombowdatetrue} +\DeclareOption{notombowbanner}{\tombowdatefalse} +\DeclareOption{tombowdate}{% obsolete since v0.9c (2018/01/11) + \PackageWarning{\pxgtmb@pkgname}{% + Option `tombowdate' is renamed;\MessageBreak + use `tombowbanner' instead}% + \tombowdatetrue} +\DeclareOption{notombowdate}{% obsolete since v0.9c (2018/01/11) + \PackageWarning{\pxgtmb@pkgname}{% + Option `notombowdate' is renamed;\MessageBreak + use `notombowbanner' instead}% + \tombowdatefalse} + +%% register a list of candidate papersize +% * \pxgtmb@addpapersize[]{}{}{} +% used for declaration of papersize. +% when no option is specified (that is, \ifpxgtmb@switch = \iffalse), +% also used for automatic stocksize determination. +% * if = \@empty, the next is assumed. +% * if = n, stocksize is set to papersize + 2in. +\def\pxgtmb@addpapersize{\@ifnextchar[{\pxgtmb@addp@persize}{\pxgtmb@addp@persize[\@empty]}} +\def\pxgtmb@addp@persize[#1]#2#3#4{% + % get current papersize and search through known standard in ascending order + \ifx\pxgtmb@guessedtombow\@empty + \ifx\pxgtmb@guessedpaper\@empty + % shorter edge -> \@tempdima, longer edge -> \@tempdimb + \ifdim\paperwidth>\paperheight\relax + \pxgtmb@landscapetrue + \@tempdima\paperheight \@tempdimb\paperwidth + \else + \pxgtmb@landscapefalse + \@tempdima\paperwidth \@tempdimb\paperheight + \fi + % \@ovri and \@ovro are used temporarily (safe enough) + \@ovri=#3\relax + \@ovro=#4\relax + % if \mag != 1000 and \inv@mag is defined, assume jsclasses-style \mag employment + \ifnum\mag=\@m\else \ifx\inv@mag\@undefined\else + \@ovri=\inv@mag\@ovri\relax + \@ovro=\inv@mag\@ovro\relax + \fi \fi + % compare + \ifdim\@tempdima=\@ovri\relax \ifdim\@tempdimb=\@ovro\relax + \def\pxgtmb@guessedpaper{#2}% + \ifx#1\@empty\else + \def\pxgtmb@guessedtombow{#1}% + \if n\pxgtmb@guessedtombow\else + \ExecuteOptions{tombow-#1}% package defaults to tombowdatetrue + \pxgtmb@switchfalse + \fi + \fi + \fi \fi + \else + \def\pxgtmb@guessedtombow{#2}% save for console message + \pxgtmb@setstock{#3}{#4}% set stockwidth/height + \fi\fi + \DeclareOption{tombow-#2}{% + \pxgtmb@switchtrue + \tombowdatetrue + \pxgtmb@setstock{#3}{#4}% + }% + \DeclareOption{tombo-#2}{% + \pxgtmb@switchtrue + \tombowdatefalse + \pxgtmb@setstock{#3}{#4}% + }% + \DeclareOption{mentuke-#2}{% + \pxgtmb@switchtrue + \tombowdatefalse + \setlength{\@tombowwidth}{\z@}% + \pxgtmb@setstock{#3}{#4}% + }% +} +\def\pxgtmb@setstock#1#2{% + \ifpxgtmb@landscape + \setlength\stockwidth{#2}% + \setlength\stockheight{#1}% + \else + \setlength\stockwidth{#1}% + \setlength\stockheight{#2}% + \fi + % if \mag != 1000 and \inv@mag is defined, assume jsclasses-style \mag employment + \ifnum\mag=\@m\else \ifx\inv@mag\@undefined\else + \stockwidth=\inv@mag\stockwidth\relax + \stockheight=\inv@mag\stockheight\relax + \fi \fi +}% +\@onlypreamble\pxgtmb@addpapersize +\@onlypreamble\pxgtmb@addp@persize +\@onlypreamble\pxgtmb@setstock + +%% initialize before search +\def\pxgtmb@guessedpaper{} +\def\pxgtmb@guessedtombow{} +\@onlypreamble\pxgtmb@guessedpaper +\@onlypreamble\pxgtmb@guessedtombow + +%% package options part 2 +% ISO A series <=> JIS B series in the ascending order +\pxgtmb@addpapersize{a10}{26mm}{37mm} +\pxgtmb@addpapersize{b10}{32mm}{45mm} +\pxgtmb@addpapersize{a9}{37mm}{52mm} +\pxgtmb@addpapersize{b9}{45mm}{64mm} +\pxgtmb@addpapersize{a8}{52mm}{74mm} +\pxgtmb@addpapersize{b8}{64mm}{91mm} +\pxgtmb@addpapersize{a7}{74mm}{105mm} +\pxgtmb@addpapersize{b7}{91mm}{128mm} +\pxgtmb@addpapersize{a6}{105mm}{148mm} +\pxgtmb@addpapersize{b6}{128mm}{182mm} +\pxgtmb@addpapersize{a5}{148mm}{210mm} +\pxgtmb@addpapersize{b5}{182mm}{257mm} +\pxgtmb@addpapersize{a4}{210mm}{297mm} +\pxgtmb@addpapersize{b4}{257mm}{364mm} +\pxgtmb@addpapersize{a3}{297mm}{420mm} +\pxgtmb@addpapersize{b3}{364mm}{515mm} +\pxgtmb@addpapersize{a2}{420mm}{594mm} +\pxgtmb@addpapersize{b2}{515mm}{728mm} +\pxgtmb@addpapersize{a1}{594mm}{841mm} +\pxgtmb@addpapersize{b1}{728mm}{1030mm} +\pxgtmb@addpapersize[n]{a0}{841mm}{1189mm} +\pxgtmb@addpapersize[n]{b0}{1030mm}{1456mm} + +%% package options part 3 +% ISO C series +\pxgtmb@addpapersize[a9]{c10}{28mm}{40mm} +\pxgtmb@addpapersize[a8]{c9}{40mm}{57mm} +\pxgtmb@addpapersize[a7]{c8}{57mm}{81mm} +\pxgtmb@addpapersize[a6]{c7}{81mm}{114mm} +\pxgtmb@addpapersize[a5]{c6}{114mm}{162mm} +\pxgtmb@addpapersize[a4]{c5}{162mm}{229mm} +\pxgtmb@addpapersize[a3]{c4}{229mm}{354mm} +\pxgtmb@addpapersize[a2]{c3}{324mm}{458mm} +\pxgtmb@addpapersize[a1]{c2}{458mm}{648mm} +\pxgtmb@addpapersize[a0]{c1}{648mm}{917mm} +\pxgtmb@addpapersize[n]{c0}{917mm}{1297mm} +% misc +\pxgtmb@addpapersize[b4]{a4j}{210mm}{297mm} +\pxgtmb@addpapersize[b5]{a5j}{148mm}{210mm} +\pxgtmb@addpapersize[a3]{b4j}{257mm}{364mm} +\pxgtmb@addpapersize[a4]{b5j}{182mm}{257mm} +\pxgtmb@addpapersize[b4]{a4var}{210mm}{283mm} +\pxgtmb@addpapersize[a4]{b5var}{182mm}{230mm} +\pxgtmb@addpapersize[a3]{letter}{8.5in}{11in} +\pxgtmb@addpapersize[a3]{legal}{8.5in}{14in} +\pxgtmb@addpapersize[a4]{executive}{7.25in}{10.5in} + +%% default options +\ExecuteOptions{tombowbanner}% package defaults to tombowdatetrue +\ProcessOptions + +%% display search result +% if any of explicit size option is specified, \ifpxgtmb@switch = \iftrue. +% otherwise, automatic size detection should be successful. +\ifpxgtmb@switch\else + % check status + \@tempcnta=\z@\relax + \ifx\pxgtmb@guessedpaper\@empty + \advance\@tempcnta\@ne\relax + \fi + \ifx\pxgtmb@guessedtombow\@empty + \advance\@tempcnta\tw@\relax + \else\if n\pxgtmb@guessedtombow + \advance\@tempcnta\tw@\relax + \fi\fi + % message + \ifodd\@tempcnta + %\PackageWarningNoLine\pxgtmb@pkgname{% + % No size option specified, and automatic papersize\MessageBreak + % detection also failed} + \else + \typeout{***** Package \pxgtmb@pkgname\space detected \pxgtmb@guessedpaper paper. *****} + \fi + \ifnum\@tempcnta>\@ne\relax + \PackageWarningNoLine\pxgtmb@pkgname{% + Output size cannot be determined. Please add size\MessageBreak + option (e.g. `tombow-a4') to specify output size.\MessageBreak + Falling back to +1in ..} + \stockwidth\paperwidth \advance\stockwidth 2in + \stockheight\paperheight \advance\stockheight 2in + \else + \typeout{***** Now the output size is automatically set to \pxgtmb@guessedtombow. *****} + \fi +\fi + +%% warnings +\ifdim\stockwidth<\paperwidth + \PackageWarningNoLine\pxgtmb@pkgname{% + \string\stockwidth\space is smaller than \string\paperwidth!\MessageBreak + Is this really what you want?} +\fi +\ifdim\stockheight<\paperheight + \PackageWarningNoLine\pxgtmb@pkgname{% + \string\stockheight\space is smaller than \string\paperheight!\MessageBreak + Is this really what you want?} +\fi + +%% make tombow box according to tombowdate & \@tombowwidth status +\maketombowbox + +%% shift amount +\hoffset .5\stockwidth +\advance\hoffset -.5\paperwidth +\advance\hoffset-1truein\relax +\voffset .5\stockheight +\advance\voffset -.5\paperheight +\advance\voffset-1truein\relax + +%% user interface +\newcommand{\settombowbanner}[1]{% + \iftombowdate\else + \PackageWarning{\pxgtmb@pkgname}{% + Package option `tombowbanner' is not effective.\MessageBreak + The banner may be discarded}% + \fi + \@bannertoken{#1}\maketombowbox} +\newcommand{\settombowbannerfont}[1]{% + \font\@bannerfont=#1\relax \maketombowbox} +\newcommand{\settombowwidth}[1]{% + \setlength{\@tombowwidth}{#1}\maketombowbox} + +%% patch internal for pdfpages to work with tombow +%% (tested on pdfpages 2017/10/31 v0.5l) +\def\pxgtmb@patch@pdfpages{% + \RequirePackage{etoolbox} + \patchcmd{\AM@output}{% + \setlength{\@tempdima}{\AM@xmargin}% + \edef\AM@xmargin{\the\@tempdima}% + \setlength{\@tempdima}{\AM@ymargin}% + \edef\AM@ymargin{\the\@tempdima}% + }{% + \setlength{\@tempdima}{\AM@xmargin\iftombow+1in\fi}% + \edef\AM@xmargin{\the\@tempdima}% + \setlength{\@tempdima}{\AM@ymargin\iftombow-1in\fi}% + \edef\AM@ymargin{\the\@tempdima}% + } + {\PackageInfo{\pxgtmb@pkgname}{Patch for pdfpages applied}} + {\PackageWarningNoLine{\pxgtmb@pkgname}{Patch for pdfpages failed}}% + } +\AtBeginDocument{\@ifpackageloaded{pdfpages}{\pxgtmb@patch@pdfpages}{}} + +\endinput -- cgit v1.2.3