Closed doraTeX closed 8 years ago
上記仕様に従って一通り実装完了。 Word 2011 / Excel 2011 / PowerPoint 2011 に貼り込んだ図版から TeX2img へのドラッグ&ドロップで画像を復元できることを確認。
現状の実装を Ver. 2.0.4 beta 1 としてまとめておきました。
Ver. 2.0.4 beta1 を起動しようとするとクラッシュしました。例によって Lion です。
15/09/30 15:19:31.746 [0x0-0x71071].com.loveinequality.TeX2img: objc[622]: cannot form weak reference to instance (0x7f8aa986cd00) of class NSWindow
15/09/30 15:19:32.437 com.apple.launchd.peruser.502: ([0x0-0x71071].com.loveinequality.TeX2img[622]) Job appears to have crashed: Illegal instruction: 4
15/09/30 15:19:32.576 ReportCrash: Saved crash report for TeX2img[622] version ??? (2.0.4b1) to /Users/npjilab/Library/Logs/DiagnosticReports/TeX2img_2015-09-30-151932_iwai-no-iMac.crash
15/09/30 15:19:32.577 ReportCrash: Removing excessive log: file://localhost/Users/npjilab/Library/Logs/DiagnosticReports/TeX2img_2015-08-24-183214_iwai-no-iMac.crash
これは本件とは無関係で, 0d010c9a3743ae6a7fbb3c3fa5714cc0ec889c0e に関連するこの問題でした。 0d010c9a3743ae6a7fbb3c3fa5714cc0ec889c0e を Revert してビルドし直し, Ver. 2.0.4 beta 1 を差し替えておきました。
これは本件とは無関係で, 0d010c9 に関連するこの問題でした。
そういえば、仕様が変わったのでしたね… 属性を消して元に戻しても、新しい OS で正常に動作するのでしょうか?
PDF のアノテーションへの埋め込みと復元が正常に機能することを確認しました。仕様については上記のもので良いと思います。
属性を消して元に戻しても、新しい OS で正常に動作するのでしょうか?
とりあえず大丈夫そうです。
PDF のアノテーションへの埋め込みと復元が正常に機能することを確認しました。
確認ありがとうございます。 これで MS Office は大丈夫ですね。
Keynote からのソース復元が何とかできないか試してみましたが,最新版 Keynote では,貼り込むときにPDF内の余計な情報(PDF内のアノテーションや余計なコメント)を削除して整理してから貼り込むようで,付加情報を保持させたまま貼り込むのは困難そうです。(これは LaTeXiT も同様です。)
Keynote はSVGをサポートしておらず,EPSもPDFに変換されて貼り込まれるので,ベクター画像を付加情報込みで Keynote に貼り込む手は全て封じられてしまいました。
Keynote からのソース復元が何とかできないか試してみましたが,
それについては元々 TeX2img の EA を使う仕組みのほうが優れていると思っていたので気にしていませんでした。画像形式によってそれぞれ対応するのは面倒ですし、たとえ頑張っても途中でソースが切れるかもしれないと思うと、PDF アノテーションだけにとどめた今の方法が最善だと思います。
Keynote 仕様変更で復元できなくなって残念がる人多いでしょうね。
では現行の仕様で満足するとしましょう。 続いて,これを Snow Leopard 版にも実装してみます。
では現行の仕様で満足するとしましょう。 続いて,これを Snow Leopard 版にも実装してみます。
よろしくお願いいたします。 PDF を挿入できるところが Office for Mac のうらやましいところでもあります。Windows で PDF をドラッグ・ドロップで PowerPoint に貼り付けられると良いのですが、どうもうまくいかない場合(そもそも画像が表示されない or 表示されてもディスプレイ上では汚い)が多いので EMF サポートを再開していただいたわけですが、やはり PDF のほうが使い勝手は良いですからね…
Snow Leopard 版にも導入しました。 仮想マシンに構築した Snow Leopard 上でのテストが成功すれば,そろそろ 2.0.4 / 1.10.4 のリリースと行きましょうか。
%%TeX2img Document
というラベル用の行から始まる。2行目以降が本来のソース(UTF-8)。%%TeX2img Document
であるテキスト形式アノテーションを検索し,それがあれば2行目以降をソースとして復元。※ 当初はアノテーションを書き込んだ著者名として TeX2img などと設定し,それによってラベルとしようと考えていたが,なぜかその方法でアノテーションの著者名を書き込んだPDFを作成したものを Preview.app で開くと Preview がクラッシュするというバグがあったので,その方法は中止。1行目にラベル行を設けるという実装法に変更した。
同じようにしてみています.テストのために,そっちで作ったPDFファイルをもらってもよいですか?
早っ!ありがとうございます.
時間がかかってしまいましたが,やっと同じようなことができました.生成したtest.pdfをおいてみましたが,きちんとできてますでしょうか?一応そちらのPDFは読めました.
!!!
Mac から Windows にソースを運べました。Windows から Mac は(いま Mac 環境にいないので)試せていません。一つだけ、出力すべきファイルと一緒に一時ファイルもろとも附いてきたことにびっくりしましたが…
お疲れ様です! OS の API で注釈の読み書きができる Mac とは異なり,Windows でそれを実現するのはさぞ大変だっただろうと想像します。 試してみたところ,Windwos 側で付けた注釈は改行コードが CR+LF であったためにヘッダ行がヘッダ行と認識されず,ソース復元に失敗してしまいました。 確かに, OS をまたぐときは改行コードが問題になりますね(ヘッダに限らず)。
という処理を入れてはいかがでしょう。
MuPDFがその機能を持っていたのでそれ自身はよかったのですが,ドキュメントが貧しすぎて苦労したのと,プロセスを起動してやりとりする部分を書くのが面倒でした.(dllでのダイナミックリンクにすればよいのですが,それは封じられているので…….)
こちらは
CR に続かない LF は CR+LF に置換してから読み始める。
を既にしてあるので,改行コードに関係なく読めるはずです.確かに内部は全部CRLFにした気がするので,注釈もCRLFでしょうね.
MacでPDF内のテキスト形式の注釈を読むときは,CR+LF は LF に置換してから読み始める。
をしてもらえるとよいかなと思います.
Mac から Windows にソースを運べました。
._hoge.jpg(でしたっけ?)みたいなファイルを読めば他の形式でも行けるでしょうか.このファイルどういう形式になっているのでしょう?
一つだけ、出力すべきファイルと一緒に一時ファイルもろとも附いてきたことにびっくりしましたが…
ありゃ,なんか変ですね.
一つだけ、出力すべきファイルと一緒に一時ファイルもろとも附いてきたことにびっくりしましたが…
ありゃ,なんか変ですね.
よくみると、TeX2img のコンソールに出てくる一時ファイル名とは異なるファイル名の PDF ファイルが、出力先ディレクトリに生成していました。こちらにはソースが埋め込まれていないことを除き、内容は本来出力すべきものと同じになっています。
はい,注釈をつける際に作った一時ファイルでしょう.多分mudrawのプロセス終了以前にこのファイルを消そうとしてしまっているのではないかと思います.(プロセスがつかんでいるので消せない.)何度か試してみると手元ではランダムで残ったりそうでなかったりしているので. 最大1秒までプロセス終了を待つことに手元でしてみました.多分これで大丈夫かと思います.
はい,注釈をつける際に作った一時ファイルでしょう.多分mudrawのプロセス終了以前にこのファイルを消そうとしてしまっているのではないかと思います.
作業ディレクトリの中で注釈をつけてから,ということはできないでしょうか?
できなくはないのですが,ソース埋め込みの処理を一カ所にまとめておきたいのと,埋め込み処理は出力フォルダでした方がよいと思うのとで,今みたいになっています.1秒待って終了処理が終わらないことはまずないと思うので大丈夫かと.
ソース埋め込みの処理を一カ所にまとめておきたい
確かに一箇所のほうが分岐が少ない、と思ったのですが
埋め込み処理は出力フォルダでした方がよいと
これは NTFS かどうかに関わるからだと思ったのですが、FAT でもアノテーションへの埋め込みはやったほうがよいので、あまり分岐が減った気がしないかなという感じがしました。実装がどうなっているのか分かっていないのであてずっぽうで申し訳ありませんが…
MacでPDF内のテキスト形式の注釈を読むときは,CR+LF は LF に置換してから読み始める。
をしてもらえるとよいかなと思います.
この処理を入れたところ,めでたく Windows の注釈を復元できました! ソース情報の互換性実現,感動的です。
._hoge.jpg(でしたっけ?)みたいなファイルを読めば他の形式でも行けるでしょうか.このファイルどういう形式になっているのでしょう?
これは情報が少ないですね……。普通,このファイルは他のOSでは目障りで削除される対象なので,その内容を解析しようとした試みがほとんど見当たりません。 一応,Wikipedia のリンクに,フォーマット仕様書,および Perl を用いた読み込みモジュールの実装が見つかりましたが。
Windows との互換性を実現した Ver. 2.0.5 beta 1 を置いておきました。
それでは極力一時フォルダで作業するようにしてみました.(ちなみにこのファイルは設定によらず消えるようにしています.)
これは情報が少ないですね……。普通,このファイルは他のOSでは目障りで削除される対象なので,その内容を解析しようとした試みがほとんど見当たりません。 一応,Wikipedia のリンクに,フォーマット仕様書,および Perl を用いた読み込みモジュールの実装が見つかりましたが。
ありがとうございます.さくっとできそうならばと思ったのですが,ちょっと面倒そうですね…….まぁ気が向いたら試してみます. もしこのファイルの実物があるようでしたらもらえますか?
ありがとうございます.ちょっとやるか悩みますが,読めるには読めそうですね.まぁ少しさきほどのリンク先もこめて眺めてみます.
Wikipedia最初のリンクの仕様と照らし合わせてもらったファイルを見てみました.9byte目から16byteは0で埋められていると書いてあるのに全然埋まっていないのが気になりますが……. どうもどちらもFinder Infoというのに入っているようなので,次はこれのフォーマットをしる必要がありそうなのですが,ご存じですか?
しかし最初のリンクの仕様のやつ,Appleのサイトじゃないですね.Appleは情報を公開していないのかな.そうするとあまりやる気がなくなってきたり…….
リンク先の仕様書,日付が1990年とか1994年とか書いてあって相当に古いですので,今は変わっている可能性が高いですね。Appleのサイトに仕様書が見つかりませんし,Finder Info の仕様も含め,最新の仕様は公開されていないのかもしれません。
Finder Infoのヘッダとかを表す構造体が手元の環境のどっかのヘッダファイルにあったりしないでしょうか?
おお,すげーありがとうございます.やる気が出てきました.
上記リンクのファイル名は vfs_xattr.c ですが,名前的にHFS+方は hfs_xattr.c が該当するのでしょうね。
おかげさまで読み込むことができるようになりました.処理部分をきちんと呼んだわけではないので,正確かそこまで自信がないですが……おそらく
https://github.com/abenori/TeX2img/blob/master/AppleDouble.cs
の上の方に書いた仕様かと思って処理しています.とりあえずいただいたサンプルは処理できているっぽいです.
おおっ,これはすごい!! 通常ゴミファイル扱いされる ._hoge.pdf の内容をまともに読もうとしたプログラムは世界的にも極めて異例と思われます。TeX2img がその道を開拓したとは感動的です!
このソースは自分にとっても貴重な資料です!ありがとうございます。
ゴミファイル扱いされるが故に実装した意味があるかは激しく謎ですが(笑)
そういえば教えてもらったソースはリソースフォークも見ているように見えるのですが,TeX2imgの場合はFinder情報の拡張属性に必ず入ると仮定しても大丈夫でしょうか?
実際に Win と Mac でファイルを行ったり来たりさせる実験を行ってみました。
というわけで、テストの範囲内ではすべて期待通りに動作していました。以上でテストとしては十分でしょうか?
Windows で NTFS の拡張属性を積極的に活用したのみならず、Apple Double の拡張属性のほうを読むというこれまた画期的な実装が行われたことは感動的です。
なお、本件とは別ですが Windows 版は最近 --margins
オプションが実装されています。
/margins=<VAL> 余白(一括/左右 上下/左 上 右 下)
これは pdfcrop.pl と同じようにスマートに余白を指定できる機能です。Mac 版にも付くと嬉しいです。
ありがとうございます.大丈夫そうですね.
新機能案:「PDF出力時にPDFのアノテーション情報にもTeXソース情報を含める」
メリット
仕様案
検討事項
制限