doraTeX/TeX2img

\includegraphicsをGUI化

Opened this issue · 21 comments

TeXShopではWindowに画像をDrag & Dropすると\includegraphics[]{hope.pdf}のように補完されるようですが,同じ機能がTeX2imgにもあると良いかと思います。ただ「Sourceを復元」と同じUIになるため,実装して下さる場合には,何らかの処置が必要かと思われます。どう思われますでしょうか。

おっしゃるように「ソースを復元」との重複が防げないので、困難かと思います。

「Sourceを復元」は「既存のFileを読み込む」と似ているため,Drag & Dropへの対応を

  • 「Input TeX code」では\includegraphics[]{hope.pdf}
  • 「Input TeX source」では「Sourceを復元」

としてみたら解決するのではないでしょうか。

よくわからないのですが、毎回ダイアログを出して選択を促すということですか?

それは直観的ではないですね。ソース復元する際は上のエリアに復元されるわけですから。

では「Input TeX source or PDF/PS/EPS file」の上に画像をDragすると,薄めの文字で\includegraphicsが現れて,それを「Input TeX Code」にDropするというのは,どうでしょうか。強引すぎる気もしますが。

そんなUIはmacOSアプリで見たことがないですね……
ありうるとしたら、環境設定パネルに「ドラッグ&ドロップの効果」みたいな選択項目を設けるくらいでしょうか……

XcodeのObjectsからDesignし始めるときは,右上に当てるようにしてから,現れたWindowを配置していくようなものだった覚えがあります。

XcodeのObjectsからDesignし始めるときは,右上に当てるようにしてから,現れたWindowを配置していくようなもの

それは自分は見たことがないですね……

簡単な方法としては,

  • オプションを押しながらドラッグしたら \includegraphics を挿入する

という方法が考えられます。オプションキーというのは機能を切り替えるためのキーなので,その動きはUIとしてそれなりに直感的と言っていいのではないかという気もします。

ただし,次なる懸念として,挿入されるものを \includegraphics ではなくいろいろとカスタマイズしたい,という要望が出てきたときに,挿入文字列のカスタマイズ機能を設けないとするのか,それともそれをカスタマイズするUIをどこかに何らかの形で設けるか,と考え始めると,なかなかやっかいです。
(ちなみに,TeXShopではドラッグ&ドロップで自動挿入される文字列をカスタマイズする機能は提供していません。)

オプションを押しながらドラッグしたら \includegraphics を挿入する

macOSらしい直感的な操作で素晴らしいと思います。

挿入文字列のカスタマイズ機能を設けないとするのか,それともそれをカスタマイズするUIをどこかに何らかの形で設けるか

\includegraphics以外の何かを思いつきませんでしたので,\includegraphicsということにして,要望があれば応じて対策を考える,ということになさったらいかがでしょうか。TeX2epsには書式に合わせた\imgがあると良いかもしれませんね。

TeXShopでは,

  • .tex をドラッグ&ドロップしたら \input{/path/to/hoge.tex} を挿入
  • .pdfをドラッグ&ドロップしたら \includegraphics{/path/to/hoge.pdf} を挿入
    ……

のように拡張子ごとに挿入コードが固定的に規定されており,それらのカスタマイズ法は用意されていません。

TeX2imgでは,

  • .tex\input{/path/to/hoge.tex}を挿入
  • 画像はSourceの復元を試みる
  • Optionがあれば\includegraphics{/path/to/hoge.png}のように挿入

とすれば良いのでは無いでしょうか。TeXShopへの要望として,

  • .styは\usepackage{/path/to/hoge}`を挿入

があるとPackage製作のときに便利かと思います。まずは,TeX2imgに取り入れて下さると嬉しいです。

.texは\input{/path/to/hoge.tex}を挿入

現状は .tex のドラッグ&ドロップも「ファイルの読み込み」ですので,\input{/path/to/hoge.tex} の挿入もも option ありの場合に限定すべきです。

TeXShopへの要望として,
.styは \usepackage{/path/to/hoge}を挿入

それは既にあるはずです。

\input{/path/to/hoge.tex} の挿入も option ありの場合に限定すべきです。

そうですね。この場合に,PreambleをDropした.texに合わせて上書きしているようですが,QuitしたときにDefaultに戻しておいた方が良いように思えます。

Preambleを編集した際も,現状のManage templatesSave current as a templateがあるのでDefaultにしても良い気がしますが。

PreambleをDropした.texに合わせて上書きしているようですが,QuitしたときにDefaultに戻しておいた方が良いように思えます。

Defaultにしても良い気がしますが。

それは設計**に反します。そもそも,「Default とは何か」というのも規定されていませんし,TeX2imgは「前回終了時のプリアンブルを保持する代わりに終了時に「破棄してよろしいですか」という確認ダイアログを出さない」ことで気軽に使える手軽アプリとして設計されているのです。プリアンブルの管理は「プロファイルの管理」で各自が行う設計**です。

なるほど。Preambleの編集を反映したい際は,Save current as a templateから同じ名前で保存してReplaceを選択することにします。

では,FileをDrag & Dropする挙動はそのままに,OptionをつけるとTeXShopのように「拡張子ごとに挿入コードを補完」するようにしたらどうでしょうか。

では,FileをDrag & Dropする挙動はそのままに,OptionをつけるとTeXShopのように「拡張子ごとに挿入コードを補完」するようにしたらどうでしょうか。

今のところ,optionをつけてドラッグ&ドロップするとTeXShopと同じコードを補完する設計で考えています。補完コードはTeXShopと同一に仕様をそろえておくのがよいでしょうね。

よろしくお願い致します。実装の難易度は分かりませんし,お忙しいとは思いますが「#87」「#89」も合わせて2.3.1となると嬉しいです。

それは既にあるはずです。

試してみたところ\usepackage{/path/to/hoge}ではなく,ただ単に\usepackage{hoge}と補完されるようです。意図的にDrag & Dropしている場合には\usepackage{/path/to/hoge}とした方が良いと思います。

TeXShopの場合は「styにはTEXINPUTSのパスが通っているはず」ということが前提となっていてそういう設計**となっているのでしょう。
また,\input\includegraphics の補完においては,TeXShopでは相対パスでの補完となっています。
TeX2imgの場合は,大本となる .tex ファイルの存在位置がテンポラリディレクトリになるため,.tex でも .sty でも .pdf でも,「常に絶対パス指定で補完する」というしようとしておきたいと思います。