名前: Shintaro 日時: 2007-04-05 14:03:01 IPアドレス: 221.114.128.*
はじめまして。 どうにも困った問題があり、関連した情報を見つけることができなかったので、 こちらのほうへ質問させていただきます。 お時間或るときにアドバイスいただけると非常に助かります。 Windows XP Pro sp2にてtexinst755.zipからインストールしたLaTeXを 利用させていただいています。 現在jsclassのjsbookを使って500ページほどの図書をLaTeXにて作成中です。 また対訳本とするために、Matthias Eckermann氏のParallel.sty (beta4 2003/04/13版)を利用しています。 Parallel.styにはいくつかモードがありますが、このなかで、ページ単位で 対訳を表示するページモードを使い、左開きの本で、左ページに原文、 右ページに邦訳がレイアウトされるように設定しています。 さて、肝心の問題なのですが、pagenumberingが通常のarabicの場合は、 上記のParallel.sty(一部を本メール下部に添付)はまくレイアウトを してくれます。 ところが、本文の前の前書きや謝辞に相当する部分は本文とは別に pagenumberingをromanとしているのですが、このばあいParallelがうまく 左に原文、右に邦訳、というレイアウトをしてくれません。 具体的には、 右ページ 原文E1 左ページ 空白 右ページ 邦訳E1 左ページ 空白 右ページ 原文E2 左ページ 空白 右ページ 邦訳E2 : となり、余計な空白ページが入り込みます。 本来は、 右ページ 空白 左ページ 原文E1 右ページ 邦訳E1 左ページ 原文E2 右ページ 邦訳E2 : となって欲しいわけですが。。。 (arabicの場合はこのようにうまく配置されます) さて、いろいろと試して見た結果、どうもpagenumberingがromanの場合、 Parallel.styはページ単位での対訳レイアウトできないということが分かりました。 それで、コンパイルする際のエラーメッセージと、Paralley.styの ページモードでのマクロを眺めていて、その原因と思われるところを 見つけました。 (ページモードのParallel.styのマクロは下記に添付しています) マクロについてはそれほど詳しくなく、また下記添付のページ対訳マクロも 十分に理解をしたわけではありませんが、どうも\ifodd\thepage の部分で、ページ番号がromanのときには\ifoddが奇数ページの判断が できていないのでは?というのが当方の予想です。 それでお伺いしたいのは、 (1)ページ番号がromanの場合、\ifodd\thepageという条件判断は 特に問題なくちゃんと使えるのか、あるいはページ番号が (例えばxiのような)数字でない文字列になってしまって いるばあいは\ifoddは奇数ページの判断ができないのか? (2)もし上記予想が正しい場合、ページ番号がromanでも下記マクロが うまく働くよう、\ifodd\thepageの部分の処理を変えることで 正常に対訳レイアウトがなされるようにする方法はあるか? また具体的にどうすればよいか? (3)もし(1)予想が正しくない場合、何が原因と考えられるか? またその回避方法はあるか? という2点です。 長くなってしまいましたが、どうぞよろしくお願いいたします。 ---------------エラーメッセージの一部--------------------- [12] [13] [14]) [15] ! Missing number, treated as zero. <to be read again> x l.206 \ifodd\thepage \relax \else \mbox{} \newpage\fi\par ? (どうもxが数字で無いので、\ifoddがうまく条件判断できていないように 見える) ----------------Parallel.styのページ対訳マクロ部分のみ------------------ \newcommand{\ParallelParTwoPages}{% \ifnum\ParallelBoolVar=\@ne \par\begingroup \global\ParallelWhichBox=\@ne \newpage \vbadness=10000 \vfuzz=3ex \splittopskip=\z@skip \loop% \ifnum\ParallelBoolVar=\@ne% \ifnum\ParallelWhichBox=\@ne \ifvoid\ParallelLBox \mbox{} \newpage \else\global\ParallelWhichBox=\z@\fi \else \ifvoid\ParallelRBox \mbox{} \newpage \else\global\ParallelWhichBox=\@ne\fi \fi \ifnum\ParallelWhichBox=\z@ \ifodd\thepage \mbox{} \newpage \fi \hbox to\textwidth{% \vbox{\vsplit\ParallelLBox to.98\textheight}}% \else \ifodd\thepage\relax\else \mbox{} \newpage \fi \hbox to\textwidth{% \vbox{\vsplit\ParallelRBox to.98\textheight}}% \fi \vspace*{\fill}\newpage \fi \ifvoid\ParallelLBox\ifvoid\ParallelRBox \global\ParallelBoolVar=\z@ \fi\fi \ifnum\ParallelBoolVar=\@ne \repeat \par \endgroup \fi}
この書き込みへの返事: