trimclipパッケージと、picture環境の拡張

trimclipパッケージと、picture環境の拡張

- tat tsan の投稿
返信数: 6
別スレッドで standaloneパッケージを platex から使う話が出ています。私も standaloneパッケージを platex から使うべく、いろいろ試しています。さて、picture環境の拡張(eepicやpict2e)を \includestandalone[mode=tex]{file名}でインクルードすると中身が消えるという現象があります。

standaloneパッケージが呼んでいるpackage達をたぐってゆくと、最終的にtrimclipパッケージに含まれる \clipbox というコマンドに行きつきます。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage[dvipdfmx]{trimclip}
\usepackage{epic,eepic}
% \usepackage{pict2e,bxeepic}
\newcommand*{\sambleGbox}{%
\begin{picture}(100,100)
\Thicklines \put(50,50){\ellipse{80}{60}}
\thicklines \dashline{4}(0,50)(100,50) \dashline{4}(50,0)(50,100)
\end{picture}%
}
\begin{document}
\begin{center} \fbox{\trimbox{0 0 40 40}{\sambleGbox}} \end{center}
\begin{center} \fbox{\clipbox{0 0 40 40}{\sambleGbox}} \end{center}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
trimclipパッケージは各グラフィックDRIVERに対しtc-DRIVER.def というファイルを利用しています。tc-dvipdfmx.def は無いので、fallback としてtc-pgf.def が用いられているのですが、dvipdfmx近縁の xetex (tc-xetex.defはある)でも同じ不具合が起きています。

これらの tc-DRIVER.def にある \@cliptoboxdim が不具合の元凶で、これの定義の修正で何とかならないかと思うのですが、行き詰まりました。

なお各ドライバに対してこの「中身が消える」現象の有無を調べると


pTeX+dvips
LuaTeX
pdfTeX
XeTeX
pTeX+dvipdfmx
epic+eepic

×
× × ×
pict2e+bxeepic
× ×

となっています。×印で、中身が消えます。
tat tsan への返信

[解決] trimclipパッケージと、picture環境の拡張

- tat tsan の投稿
解決しました。

trimclipパッケージが参照している tc-xetex.def 内の \@cliptoboxdim
の定義をtexmf-dist/tex/xelatex/xetex-def/xetex.def 内の \GXT@clipbox
の定義で置き換えた所、XeLaTeX でのクリッピングが正しく機能するように
なりました。

pLaTeX + dvipdfmx では、配布状態では tc-dvipdfmx.def が存在せず tc-pgf.def
が参照されてしまうので、上記の修正後の tc-xetex.def を tc-dvipdfmx.def の
名前でコピーし(またはsymbolic linkを作成し)、参照可能な位置に置きます。
(graphicx.sty に渡されたドライバオプションを参照してくれる)


pTeX+dvips
LuaTeX
pdfTeX
XeTeX
pTeX+dvipdfmx
epic+eepic

×
×
pict2e+bxeepic

tat tsan への返信

Re: [解決] trimclipパッケージと、picture環境の拡張

- tat tsan の投稿
本件とその他の trimclip.sty の修正、dvipdfmx オプションの要望、
関連パッケージの gincltex.sty のバグフィックス、関連パッケージの
standalone.sty の修正、などを作者の Martin さんにお送りしたところ、
「時間が空き次第すぐにcheckする」とのお返事を頂きました。
tat tsan への返信

Re: [解決] trimclipパッケージと、picture環境の拡張

- Akira Kakuto の投稿
このへんの原因は,Karl Berry さんが,dvipdfmx.cfg において
-sPAPERSIZE=a0 から -dEPSCrop に改善したことにあると思います。
当然ドライバ側の変更が必要になります。Karl さんが把握している
xetex.def と dvipdfmx.def は変更してあります。

Akira Kakuto への返信

Re: [解決] trimclipパッケージと、picture環境の拡張

- tat tsan の投稿
-sPAPERSIZE=a0 と -dEPSCrop の比較をしてみましたが、
本件については無関係のようです。結果は tc-DRIVER.defの定義
だけに依存しており、gs のオプションには依存しませんでした。
tat tsan への返信

Re: [解決] trimclipパッケージと、picture環境の拡張

- Z. R. の投稿

私の推測としては、次のリンク先で指摘されている dvipdfmx の不具合が原因だと考えています。

これは、特定の PDF special の組み合わせが正常に処理されず、その結果、図の移動(回転)先が意図しない位置になってしまうというものです。ここでの例の場合、間違った位置に図が飛んだあとに正しい位置にクリップがかかるので、結果として図は完全に消えてしまってます。

graphicx 系の命令と TIkZ 系の命令を同時に使うと時々図が変な位置に飛んでしまう現象もこの不具合が原因だと思われます。