2010年11月08日

large/section型補完

はじめまして.
私はいつも使っている YaTeX(野鳥)について
書いてみようと思います.

YaTeXについて詳しいことは,下記をご覧くださいませ.

http://www.yatex.org/

普段,TeXデータの編集作業を emacs 上でやっていますが,
そんなとき,知ってか知らずか,野鳥のTeX入力支援を利用しています.
これはYaTeXの機能だとは知らないまま使っているかもしれません.

コンパイルするにもemacs上でできたり,
\begin{xxx}\end{xxx}のカーソルジャンプ,
数式環境やパーレンで囲むための
C-c $ や C-c ) など,
いろいろと便利なのですが,実際,まだまだ使いこなせていません.

C-c )のようなショートカットで全角のパーレンも使えたら便利なのに….
(閑話休題)

野鳥のショートカットを1〜2個を覚えるだけで,
ぐーっと作業がはかどります.

ウルスに来て●年になりますが,
ここ2〜3年くらいで使うようになって,
こんなに便利だったのか〜と改めて実感してるいる
補完機能があります.(遅すぎですか?)

それは,

・large型補完 C-c l(またはL)
・section型補完 C-c s(またはS)

です.(みなさん,使ってますか?)敢えて説明します.

large型補完は,{\large xxx}という,ブレースの中にコマンドがあるもの
section型補完は,\section{xxx}のようにコマンドの後にブレースで引数をとるもの

に使います.

例えば,
TeXモードで,
C-c l (コントロールを押しながらc,そしてl)をキータイプすると,

emacsの下の部分(エコーエリア?)に

C-c_l1.png

と表示され,そこで,itshape とキータイプすると,

itshape1.png

とデータ上に出てきます.
カーソルは,閉じブレースの上にあって,
イタリックにしたい文字列をすぐに入力できます.

また,
範囲(xxx)を選択して,C-c L(大文字)とタイプすれば,

C-c_2.png

itshape2.png

となります.

嬉しいのは,
1.ベタに入力すると10回はキーをたたくところを3回で済む.
2.一度タイプしたものは履歴に残り,
次に \itshape を入れるときに,再度タイプする必要がなくなる.
3.最初に一度きちんと入力すれば,タイプミスも心配ない,また,
仮に間違ってタイプしても,同じタイプミスなので一括で修正できる.
といったところです.

これをいちいち手で入力していたら,
itsahpe とか tishape とか itahpe とかになる可能性だってあります.
(さすがにそんなに間違えないとは思いますが)

そんな訳で,
同じコマンドを大量に使うときに,とっても重宝しています.
スペルが長いもの,普段使い慣れていないものには間違いなく
威力発揮するでしょう.

少しずつでも覚えたい,野鳥のショートカット.
野鳥に限らず,emacsその他,便利な機能は知らないだけでいっぱいあるはず.
これは便利だから覚えとけ!っていうものがありましたら,ぜひ,教えてください.
よろしくお願いします.

Yukiko
posted by ウルス at 18:13| Comment(7) | TrackBack(0) | 日記
この記事へのコメント
このショートカット知らなかったです!今度使ってみようとおもいました.今までは原始的なコピぺをしてました.

(YaTexのショートカットなのかどうか知りませんが)
私は昔むかしにウルスで開かれていた「Emacs講座」で
紹介されていた,\bibitemのカウンター(ナンバリング)自動つけみたいなのを良く使っていて助かっています.
応用して段落ごとの繰り返し作業みたいなのでも使っていますよ.
Posted by まさこ at 2010年11月09日 09:25
> これは便利だから覚えとけ!っていうもの
たくさんありますよ :)

今回の記事の補足を少ししてみます。
> 2.一度タイプしたものは履歴に残り,
とありますが、"履歴" は、何も直前のコマンドのみを記録しているわけではありません。

例えば、\itshape のあと、\bfseries としてまた \itshape を補完したいときには、
C-c L (or l) のあとに M-p (or 上矢印↑) で履歴をいくつかさかのぼれます。M-n (or 下矢印↓)はその逆です。

何も \itshape などは、LaTeX の標準コマンドですから、すでに YaTeX の large 型コマンドの辞書(リスト)に登録されているわけで、実際には、最初の数文字入力したら、Tab キーを叩けば補完候補一覧が見えますので、コマンド名の文字列をすべて入力する必要はありません。

とりあえず、「Emacs は最初の数文字だけ叩いて Tab を叩きまくれ!」これは大事です :D

ちなみに、社内では、いくつかの書籍ごとに .yatexrc をローカルに置いていますが、そこにあるコマンドや環境も補完対象になります。

さらに、その場だけの補完候補がほしい場合ってありますよね?例えば、
\scalebox{.95}[1]{}

\Lbox[-1.25mm]{}
\textcolor{magenta}{}
などの section 型コマンド+引数付きで補完したい場合も,C-c S (or s) のあと,
scalebox{.95}[1]

Lbox[-1.25mm]
textcolor{magenta}
を貼り付けて、Enter を叩きます。その後「辞書に登録されていないからどうする?」と聞かれるところで、
N (メモリ)
というのがありますから、n を返してあげれば、Emacs を閉じるまでの間は、これらも補完候補に入ります。

あと、Emacs の abbreviation 機能を使いますと、入力中に該当する文字列の候補を出してくれて、Tab を叩いて Enter で一発補完とかは、昔からよくやられていることでして、最近は、anything mode + auto-complete mode 辺りを使うと幸せだと思います。

今年の春先ごろに、社内のエライ人に一度試しで使ってもらいましたが、どうもお気に召されなかったようで、結局導入は放置しました。あと、自分で書いた lisp に Emacs 22 で技術的な不具合が若干あって、不具合が起こる場合を理解した上じゃないと使えない開発版ということもあり (^^;; 全体導入は断念しています。いや、ほんとめちゃくちゃ便利だと思いますけどね─。

anything + auto-complete + yatex を見たい奇特な方がおられましたら、私のところまで見に来てくださいませ。
Posted by 山本 at 2010年11月09日 13:02
large型補完は使っていませんでした.教えていただいて助かります. 手元にあるYaTeX(野鳥)のlarge型補完とsection型補完の項目を読み直しました.便利な機能を活用していないことに気づきました.
私も\bibitemのカウンター付けはよく使っています.
Posted by ちづこ at 2010年11月09日 13:06
この機能活用してます!!
large/section型補完という名称は知りませんでしたが,便利ですよね.
前に教えてもらったのですが,section/subsection/subsubsection/paragraphでしたら,範囲を選択してから,M-x s/M-x ss/M-x sss/M-x pとやっても選択範囲を引数にとれます.
(M-x=Escを押した後にx, またはAltを押しながらx)
これも便利です.
また山本さんが言及している「Tab叩き」は入力間違いが減るのでいいと思います.
Posted by せいな at 2010年11月09日 13:39
数式環境内【:;】を使ってた文字補完は結構便利です。
例えば
【:e】→ \epsilon や
【;6】 → \partial は入力するよりラクですよ。
Posted by 稲村 at 2010年11月09日 15:19
せいな さん

>範囲を選択してから,M-x s/M-x ss/M-x sss/M-x p

ですが,範囲を選択しなくても該当行のどの位置から行っても
その行の先頭から行の末尾までを \section などで囲んでくれます.

これはベタのテキストのセクションづけの煩雑さを
少しでも軽減するために .emacs に登録したものです.
同じ行に見出し語以外の文字があると使えませんが
慣れれば野鳥の section 型補完より楽です.

囲んだ後の改行はいらないかな?とは思っていますが
基本的に TeX での組版結果に影響はないのでそのままにしています.
Posted by 青野 at 2010年11月10日 12:15
コメント&補足ありがとうございます.
section型補完で固定の引数まで登録できるとは
目からウロコです.
\bibitemのカウンター付けは大人気ですね.
実は,使ってませんでした.…使ってみます.
Posted by yukiko at 2010年11月10日 12:42
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/41640422

この記事へのトラックバック