pdfpagesパッケージをdvipdfmxで使う場合は
\includepdf[pages=-,lastpage=9]{inc.pdf}
のようにlastpageでページ数を指定しなければならないという話だったけど,extractbbが起動できればページ数も取得できるなと思ったので遊んでみた.ドライバ内で定義されている\AM@getpagecountを書き換えればよいっぽいのでそうしてみた.
\documentclass[dvipdfmx]{jsarticle}
\usepackage{pdfpages}
\makeatletter
\catcode37=12\relax
\long\def\@find@pages#1:#2\relax{\def\@tempb{#1}\def\@tempc{%%Pages}\ifx\@tempb\@tempc\@set@AM@pagecount#2\fi}
\catcode37=14\relax
\def\@set@AM@pagecount#1:{\def\AM@pagecount{#1}}
\def\AM@getpagecount{%
\ifx\AM@pagecount\AM@undefined
\immediate\openin\@inputcheck="|extractbb -O \AM@currentdocname"%
\@tempswatrue
\loop
\ifeof\@inputcheck
\@tempswafalse
\else
\catcode37=12\relax
\immediate\read\@inputcheck to \@tempa
\catcode37=14\relax
\expandafter\@find@pages\@tempa:\relax
\fi
\if@tempswa\repeat
\immediate\closein\@inputcheck
\fi
\ifx\AM@pagecount\AM@undefined\def\AM@pagecount{1}\fi
}
\makeatother
\begin{document}
\includepdf[nup=2x1,pages=-]{inc.pdf}
\end{document}
改変無しの場合はinc.pdfが複数ページでも最初のページしかで読まれないけど,これだと全部読まれる. ppdvipdfmx.defの該当箇所を変更して試してみたりもした.とりあえず動いていそうだけど,どんなとこでもきちんと動くかはあまり自信ない(プロセス起動怖い……).以下パッチ.
--- ppdvipdfmx.def.orig 2015-07-26 21:46:10 +0000 +++ ppdvipdfmx.def 2015-07-26 21:48:33 +0000 @@ -52,10 +52,27 @@ Driver `dvipdfmx' cannot detect the total number\MessageBreak of pages of a PDF. Use option `lastpage' to give\MessageBreak me a hint} +\catcode37=12\relax +\long\def\@find@pages#1:#2\relax{\def\@tempb{#1}\def\@tempc{%%Pages}\ifx\@tempb\@tempc\@set@AM@pagecount#2\fi} +\catcode37=14\relax +\def\@set@AM@pagecount#1:{\def\AM@pagecount{#1}} \def\AM@getpagecount{% \ifx\AM@pagecount\AM@undefined - \def\AM@pagecount{1}% + \immediate\openin\@inputcheck="|extractbb -O \AM@currentdocname"% + \@tempswatrue + \loop + \ifeof\@inputcheck + \@tempswafalse + \else + \catcode37=12\relax + \immediate\read\@inputcheck to \@tempa + \catcode37=14\relax + \expandafter\@find@pages\@tempa:\relax + \fi + \if@tempswa\repeat + \immediate\closein\@inputcheck \fi + \ifx\AM@pagecount\AM@undefined\def\AM@pagecount{1}\fi } \newcommand*{\AM@checkpagenumber}[1]{} \def\AM@getpagedimen{%
Noriyuki Abe さんによるパッチということで, Andreas さんに送っておきました。
返信削除無断で後報告になって,すみません。 角藤
ありがとうございます.助かります.
返信削除Thank you very much for this patch. This is an interesting idea. Looks good to me.
返信削除Unfortunatey I cannot test it right now (my brain is my only parser at hand right now). I won't have access to my computer for the next 2 weeks.
When I'm back I will take a deeper look at it. But from what I have seem so far I'm sure it's worth to add this patch. I'll let you know..
非常に喜んでおられるようです。時間ができ次第採用するということです。 角藤
それはよかったです.やりとりをお任せしてしまってすみませんでした.ありがとうございます.
返信削除