27 件 見つかりました。
画像ファイルを画像データたらしめているのは、ファイル名ではなく画像そのものである。つまり、画像に対していちいちファイル名を用意してそれを基に管理するのは面倒でナンセンスだと考える。(「横着プログラミング 第1回: Unixのメモ技術」を読んでこの考えに至った)
TeXによる文章で図を挿入する際には画像をファイル名で指定する。で、それに対してラベル文字列\label{...}を付し、これが後の参照に使われる(「図\ref{...}」が「図2.4」とかになる)。つまり画像(図)を管理するため2種類もの文字列が使われていることになるのだが、これは2重に面倒である。「ファイル名をラベル文字列とする」とルールを定めれば1重の面倒に改善されるが、それでもファイル名管理の煩わしさは残る。不精な私にとっては、アタマに思い描く画像とファイル名の対応をいちいち把握しておくことはとても面倒だ。
私はTeXの文章作成時には、YaTeXという便利なTeX文書作成補助パッケージを愛用している。これに参照コマンド\refの入力支援機能が備わっているが、そこではラベル文字列の代わりにキャプション文字列で図を管理する。通常キャプション文字列はファイル名などと同じになり得ないので、画像(図)を指定するための文字列を新たに増やしてしまっていることに相当する。これは別にyatexの設計が悪いわけではなく、平テキストで画像入り文章を扱っている以上仕方のないことなのだが、やっぱりこのテの把握と管理は面倒である。
画像のインライン表示によって、この面倒さを解決できないかなあと考えている。emacsは21から画像の表示がサポートされたようなので、例えばTeXのソース編集中に\includegraphics{...}付近に実際の画像の縮小版を表示させることも可能だと思う(画像表示の機構は知らないので、具体的な技術的課題なんかはわからん)。で、その図を\ref{...}する際にも、文書中の画像(図)をサムネイル表示させた上で参照先を選ばせるようにすれば、ラベル文字列との対応でいちいち悩む必要は無い。この時ラベル文字列はただの内部変数の様な役割なので、他と干渉さえしなければ何でもよいはず(ファイル名とか)。\ref{...}付近にも適宜画像を表示させれば、執筆中の文書の見通しも良くなりそうだ。
TeXとは関係ないが、メモツールhowmでも似た事情がある。ちょっとした画像をメモ代わりに残したくなることはあるが、いちいちそれっぽいファイル名を考えて後日アクセスできるようにするのが億劫で、結局残さないなんて本末転倒なこともある。日付+時間とかで必ずuniqueになるファイル名を適当に自動でつけ、メモ中にインライン表示できるようにすれば、気兼ねなく「メモ画像」を扱えるのではと思う。
とりあえず今日は思ったことをメモするだけ。実装したいが、どのくらいの手間暇がいるのだろうか?以下に画像表示のelisp例が記述されていた。
・横着プログラミング 第1回: Unixのメモ技術
・Poohのページ
何をするにも、reference、ドキュメントの類の使い勝手の良さが仕事の効率を大幅に左右する。
というわけで、Emacsのinfoのinfoを改めて眺めてみた。で、重要なキーバインドをメモ。
SPC, BS | 上下スクロール |
n, p | 次、前のnodeへ |
u, t | ひとつ上、トップのnodeへ |
l | 前に閲覧してた画面に戻る |
RET | リンクを辿る |
TAB, Shift + TAB | リンク文字間の移動 |
s | 現在のinfoファイルを検索 |
M-n | 現在の表示で新バッファ作成 |
d | Info初期画面へ |
? | ヘルプ |
コンピュータへの理解を深めるにはファイルのバイナリ(hex)表示が必須だが、Emacsのhexl-modeはこれを行ってくれる。アドレス関連の操作としては以下のキーバインドが設定されていた。
M-j hexl-goto-address M-g hexl-goto-hex-addressで、キーバインドは設定されていないが、現在のアドレスを知るための関数としてhexl-current-addressなるものがある。以下のようにしてキーバインドを割り付けた。
(define-key hexl-mode-map "\M-c" 'hexl-current-address)
NTEmacsの21.3.1で、Apel10.6、limit-1_14-200411201014、semi-1.14.6.tar.gzを入れた。
make make install LISPDIR=/C/programs/emacs-21.3/site-lisp VERSION_SPECIFIC_LISPDIR=LISPDIR=/C/programs/emacs-21.3/site-lispでいけた。次に wl-2.14.0.tar.gz を展開してMakefile中のLISPDIRとINFODIRを上記のように適宜編集し
make make install make install-infoとした。まあうまく動いているようだ。
Mule-UCSはUnicodeを使うためのパッケージ。http://unit.aist.go.jp/itri/itri-gist/ftp.m17n.org/ から入手できる。
インストールは
emacs -q --no-site-file -batch -l mucs-comp.elしてバイトコンパイルした後にlispのディレクトリに入れれば完了と書いてあった。
While compiling toplevel forms in file c:/temp/Mule-UCS-0.84.tar/Mule-UCS-0.84/lisp/un-define.el: ** reference to free variable progn ** The following functions are not known to be defined: find-charset, w32-regist-font-encoder Wrote c:/temp/Mule-UCS-0.84.tar/Mule-UCS-0.84/lisp/un-define.elc While compiling toplevel forms in file c:/temp/Mule-UCS-0.84.tar/Mule-UCS-0.84/lisp/un-supple.el: !! Symbol's value as variable is void ((progn))前者に関してはMeadow用の機能なので気にする必要はない(http://www.m17n.org/mlarchive/mule/200104/msg00011.html)ようだが、後者はヤバそうな雰囲気がある。実際にWanderlustの動作が変だった。http://masaru.org/diary/200209.html
コマンド中にverb命令は使えないようなので、まとめてtextttに変えたいなあと思ったことがあった。
Emacs上のreplace-regexpで以下のようにしたらうまくいった。クエスチョンは最短マッチにするための命令
Replace regexp \\verb|\(.*?\)| with: \\texttt{\1}
ecbというやつで、VC++のようにゴテゴテした便利な統合開発環境が得られるそうだ。Emacs Code Browser
ceditなるものも一緒に必要になるそうだ。まだ試してないけど面白そう。
参考:http://www5b.biglobe.ne.jp/~kzfmsp/200408b.html