2015年7月28日

昨日のは,.xbbがあればそちらから読んではどうかと言われたので,そうしてみることに.大体graphicxがやることに近い……つもり.なんとなく大丈夫そうだったら今度はこっちから作者に送ります…….(追記:送ってみた)

--- ppdvipdfmx.def.orig 2015-07-26 21:46:10 +0000
+++ ppdvipdfmx.def 2015-07-28 10:43:49 +0000
@@ -52,10 +52,40 @@
   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\@read@pages#1{%
+  \@tempswatrue
+  \loop
+    \ifeof#1
+      \@tempswafalse
+    \else
+      \catcode37=12\relax
+      \immediate\read#1 to \@tempa
+      \catcode37=14\relax
+      \expandafter\@find@pages\@tempa:\relax
+    \fi
+  \if@tempswa\repeat
+}
+\def\get@filename@rule#1#2#3{%
+  \filename@parse{#3}%
+  \edef\filename@rule{\filename@area\filename@base#2}%
+}
 \def\AM@getpagecount{%
   \ifx\AM@pagecount\AM@undefined
-    \def\AM@pagecount{1}%
+    \expandafter\expandafter\expandafter\get@filename@rule\csname Gin@rule@.pdf\endcsname\AM@currentdocname
+    \immediate\openin\@inputcheck=\filename@rule
+    \@read@pages\@inputcheck
+    \immediate\closein\@inputcheck
+  \fi
+  \ifx\AM@pagecount\AM@undefined
+    \immediate\openin\@inputcheck="|extractbb -O \AM@currentdocname"%
+    \@read@pages\@inputcheck
+    \immediate\closein\@inputcheck
   \fi
+  \ifx\AM@pagecount\AM@undefined\def\AM@pagecount{1}\fi
 }
 \newcommand*{\AM@checkpagenumber}[1]{}
 \def\AM@getpagedimen{%

0 件のコメント:

コメントを投稿

コメントの追加にはサードパーティーCookieの許可が必要です