doraTeX / TeX2img

TeX2img for macOS
https://tex2img.tech
Other
26 stars 2 forks source link

「クリップボードにコピー」後に自動ペーストする機能 #71

Closed doraTeX closed 8 years ago

doraTeX commented 8 years ago
2015-12-11 10 33 00

この画面において,「生成ファイルをクリップボードにコピー」のサブ項目に

 自動的にペースト:プルダウンメニュー

というものを用意すると,Illustrator 自動配置と同様の利便性が生まれて便利そう。

プルダウンメニューの項目には,Finder でコピーした画像ファイルのペーストに対応しているアプリの一覧を並べる。 今までに確認済みのものは以下の通り。

aminophen commented 8 years ago

そういえば、Illustrator で配置できるのは EPS だけなのでしょうか? もし PDF も可能ならそれも推奨してはいかがでしょう? 少なくとも gs9.15 以上では、pdfwrite でアウトライン化した方が綺麗になるわけですし。

doraTeX commented 8 years ago

PDFも配置はできるのですが,その場合「配置後にグループ化解除」は効きません。 これは,EPSを配置するとシンプルな構造のオブジェクトが貼られるのに対し,PDFは多重にクリッピングマスクが重なった複雑な構造のオブジェクトが貼られるからです。

次の図をご覧ください。

2015-12-11 11 12 48

上半分はEPSを貼った結果,下半分はPDFを貼った結果をアウトライン表示したものです。

PDFの方は,MediaBoxサイズのクリッピングマスクが二重にかかった,複雑なオブジェクトになっていることが分かります。 この状態から一つ一つの文字をばらしたり加工したりしようとすると,「オブジェクト→クリッピングマスク解除」を2回行い,かつこのクリッピングマスクを構成している余計な長方形のパス(二重に重なって二つあります)を削除する必要があります。

EPSの方は,「グループ化解除」を1回実行すれば個別の文字に砕くことができます。

aminophen commented 8 years ago

EPSの方は,「グループ化解除」を1回実行すれば個別の文字に砕くことができます。

なるほど、確かに EPS のほうが便利ですね。(そういえばいつも私はアウトライン化 PDF を出力して Inkscape でグループ解除を何回もやっていました。EPS だとそんなには要らなくなるんですね)

doraTeX commented 8 years ago

次のアプリについて,自動ペースト機能を実装しました。

2015-12-16 0 09 33

なお,Word 2016 / PowerPoint 2016 は普通に

  1. Finder で画像ファイル(複数可)をコピー
  2. Office 上でペースト

とすると画像が貼り込まれます(Excel は不可)。

それに対し,Word 2011 / PowerPoint 2011 は,クリップボードからの画像のペーストには対応していません。

そこで,今回の自動ペースト機能では,貼り付け先の Word や PowerPoint のバージョンを判定し,それが 2011 以下の場合には,ペーストではなく,Office が持っている直接的な画像貼り込み機能を利用して,あたかもペーストしたかのような挙動を実現することにしました。

なお,同じ方法を 2016 に対して適用すると,今度はアクセス許可についての面倒なウィンドウが出てしまいます。

2015-12-16 0 17 10

よって,

という現状の場合分けが最善と言えるでしょう。

なお,Pages / Numbers / Keynote は,普通にペーストによる画像貼り付けが利用できますので,それをそのまま利用しています。

doraTeX commented 8 years ago

自動ペースト機能を設けた Ver 2.1.5 beta 2 をビルドしました。 なお,#64 の名案が見つかるまで,pdftops 経由のアウトライン化SVG生成を行うようにした Ver. 2.1.5 beta 1 での変更は一旦 Revert しておきました。

aminophen commented 8 years ago

自動ペースト機能を設けた Ver 2.1.5 beta 2 をビルドしました。

Word 2011 / PowerPoint 2011 しか試せていませんが、自動ペーストに成功しました。