Closed kmaed closed 7 years ago
すみません、pdfpages 未考慮のまま \stockwidth と \stockheight を足したのは私ですし、少なくとも「トンボ無しの場合は \stockwidth/stockheight が不要なはずなのでそもそも定義しない」とすべきでした。
\trimtop と \trimedge を定義すればエラーは消えるのでしょうけど、その場合 tombo オプションで発行される papersize special との兼ね合いが面倒ですね。
トンボ無しの場合は \stockwidth/stockheight が不要なはずなのでそもそも定義しない
diff --git a/jsclasses.dtx b/jsclasses.dtx
index b6cfd11..c664494 100644
--- a/jsclasses.dtx
+++ b/jsclasses.dtx
@@ -700,16 +700,23 @@
% [2016-07-11] memoirクラスのマニュアルによると,トンボを含めた用紙の寸法は
% |\stockwidth|,|\stockheight|と呼ぶようですので,これを使うことにしました。
%
+% [2017-01-11] トンボオプションが指定されているとき「だけ」|\stockwidth|,
+% |\stockheight|を定義するようにしました。
+%
% \begin{macrocode}
-\newdimen\stockwidth \newdimen\stockheight
-\setlength{\stockwidth}{\paperwidth}
-\setlength{\stockheight}{\paperheight}
\iftombow
+ \newdimen\stockwidth \newdimen\stockheight
+ \setlength{\stockwidth}{\paperwidth}
+ \setlength{\stockheight}{\paperheight}
\advance \stockwidth 2in
\advance \stockheight 2in
\fi
\ifpapersize
- \AtBeginDvi{\special{papersize=\the\stockwidth,\the\stockheight}}
+ \iftombow
+ \AtBeginDvi{\special{papersize=\the\stockwidth,\the\stockheight}}
+ \else
+ \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+ \fi
\fi
% \end{macrocode}
%
@@ -944,11 +951,16 @@
% [2016-07-11] 新しく追加した|\stockwidth|,|\stockheight|も|\mag|にあわせて
% スケールします。
%
+% [2017-01-11] トンボオプションが指定されているとき「だけ」|\stockwidth|,
+% |\stockheight|が定義されています。
+%
% \begin{macrocode}
\setlength\paperwidth{\inv@mag\paperwidth}%
\setlength\paperheight{\inv@mag\paperheight}%
-\setlength\stockwidth{\inv@mag\stockwidth}%
-\setlength\stockheight{\inv@mag\stockheight}%
+\iftombow
+ \setlength\stockwidth{\inv@mag\stockwidth}%
+ \setlength\stockheight{\inv@mag\stockheight}%
+\fi
% \end{macrocode}
%
% \paragraph{pagesizeスペシャルの出力}
のちほどこれは commit しておきます。これで「トンボ系オプションがない場合」は pdfpages と互換になるのではないかと思います。
一方 \trimedge
と \trimtop
はどうしたものでしょう。memoir 以外に \stockwidth
\stockheight
を定義しているクラスを探して、それらすべてで \trimedge
\trimtop
が定義されているようなら、jsclasses にも追加で定義したほうが無難でしょうか。
ありがとうございます.
memoir 以外に
\stockwidth
\stockheight
を定義しているクラスを探して、それらすべてで\trimedge
\trimtop
が定義されているようなら、jsclasses にも追加で定義したほうが無難でしょうか。
% rg stockwidth -g '*.cls' -g '!jsclasses' -g '!luatexja' -g '!bxjscls' -l
texmf-dist/tex/latex/tui/tui.cls
texmf-dist/tex/latex/h2020proposal/h2020proposal.cls
texmf-dist/tex/latex/tudscr/tudscrbook.cls
texmf-dist/tex/latex/tudscr/tudscrreprt.cls
texmf-dist/tex/latex/tudscr/tudscrartcl.cls
texmf-dist/tex/latex/tudscr/tudscrposter.cls
texmf-dist/tex/latex/memoir/memoir.cls
texmf-dist/tex/latex/kotex-oblivoir/oblivoir-xlua.cls
texmf-dist/tex/latex/kotex-oblivoir/oblivoir-base.cls
見てみましたが,tui.cls, h2020proposal.cls, oblivoir-{xlua,base}.cls は memoir.cls を読み込み,tudscr は crop.sty 読み込み時の処理が書いてありました.
これで気付いたのですが,
\documentclass{article}
\usepackage{crop}
\usepackage{pdfpages}
\begin{document}
\includepdf[fitpaper]{aaa}
\end{document}
でも同じ問題が起きるのですね.こうなると,pdfpages に報告したほうがいいのかな?
\usepackage{crop}
見つけていただきありがとうございます。pdfpages に依頼していただけると助かります。pdfpages 側で対処していただけるなら、jsclasses は \trimtop/\trimedge を定義しないままで済みます。
なお luatexja のほうでは ltjsclasses と ltjclasses の両方に stockwidth/stockheight があるので、同じ問題が起きているかもしれません。
pdfpages に依頼していただけると助かります。
あとでメールを書きます.
\stockwidth/\stockheight の修正をリリースします。
現状を報告しておきますと,pdfpages の作者の Andreas Matthias さんには連絡がつきまして,既に修正していただきました.最新版ではこの問題は起こらなくなっています.最新の pdfpages のリリースは週末を予定しているとのことです.
最新版ではこの問題は起こらなくなっています.
安心ですね。ご連絡ありがとうございました。
pdfpages もアップデートされたので完了とします。
aaa.pdf
を pdfpages で取り込もうとを試すと
とエラーになります.原因は pdfpages が fitpaper オプション時に
\stockwidth
が定義されていれば memoir クラスだと判定して\trimtop
なども設定しようとするのですが,jsclasses では\trimtop
が定義されていないためのようです (cf.: #4).