すぐに忘れる Mathematica や LaTeX の細かいテクニックや、 UNIXコマンドのオプションなんかをまとめておきます。
Mathematica(のおそらくVer.3以降)で使える技です。
キーバインドを変えるには KeyEventTranslations.tr と MenuSetup.tr という2つの設定ファイル(テキストファイル)を編集すればよい。 以下では Windows用Mathematica9.0日本語版 をデフォルトのままインストールした場合の フォルダ構成で説明しています。
まず、 C:\Program Files\Wolfram Research\Mathematica\9.0\SystemFiles\FrontEnd\TextResources\Windows\KeyEventTranslations.trにキーバインドを定義します。 EventTranslations[{ という記述の後に以下の赤字のような Ctrl-p や Ctrl-n の定義を追記すればOKです。 さらに、デフォルトの Ctrl-w の動作(ウィンドウを閉じる)をコメントアウトします。 なお、Ctrl-k はうまく実装できなかったので、「カーソルから行末までを選択する」動作としました。 Ctrl-k の後に Ctrl-w を押すことで「行末までカット」ができます。
EventTranslations[{ (* Emacs-like keybindings *) Item[KeyEvent["p", Modifiers -> {Control}], "MovePreviousLine"], Item[KeyEvent["n", Modifiers -> {Control}], "MoveNextLine"], Item[KeyEvent["b", Modifiers -> {Control}], "MovePrevious"], Item[KeyEvent["f", Modifiers -> {Control}], "MoveNext"], Item[KeyEvent["e", Modifiers -> {Control}], "MoveLineEnd"], Item[KeyEvent["a", Modifiers -> {Control}], "MoveLineBeginning"], Item[KeyEvent["u", Modifiers -> {Control}], "ScrollPageUp"], Item[KeyEvent["v", Modifiers -> {Control}], "ScrollPageDown"], Item[KeyEvent["h", Modifiers -> {Control}], "DeletePrevious"], Item[KeyEvent["d", Modifiers -> {Control}], "DeleteNext"], Item[KeyEvent["w", Modifiers -> {Control}], "Cut"], Item[KeyEvent["k", Modifiers -> {Control}], "SelectLineEnd"], (* Evaluation *) Item[KeyEvent["Enter"], "EvaluateCells"], ... (* Notebook window control *) ... (* Item[KeyEvent["w", Modifiers -> {Control}], "Close"], *) ...
次に、 C:\Program Files\Wolfram Research\Mathematica\9.0\SystemFiles\FrontEnd\TextResources\Japanese\Windows\MenuSetup.trで、新たに定義したキーバインドとコンフリクトするデフォルトの キーバインドの設定を消去します。たとえば以下の例では、 Ctrl-n で「新規作成」にならないようにしています。
MenuItem["\:30ce\:30fc\:30c8\:30d6\:30c3\:30af (.nb) (&N)", "New"(*, MenuKey["n", Modifiers->{"Control"}] *)],
また、Ctrl-s で検索するためには、「保存」の設定を消去して、さらに検索の設定(下の例では省略していますが、FrontEnd`DialogOpen["Find.nb", True]が含まれる行)に Ctrl-s の設定を追加します。
MenuItem["\:4fdd\:5b58 (&S)", "Save"(*, MenuKey["s", Modifiers->{"Control"}] *)], ... MenuItem["\:691c\:7d22... (&F)", KernelExecute[...], MenuEvaluator -> "System", MenuKey["s", Modifiers->{"Control"}]],
なお、メニューを英語に設定している場合は、
KeyEventTranslations.tr と同じフォルダにある
MenuSetup.tr を編集すれば良いはずです。
私の使っている MenuSetup.tr と KeyEventTranslations.tr を 置いておきます。ほぼ Emacs仕様です。ただし、Ctrl-s は保存のままです。また、Ctrl-SPACE や Ctrl-l は動作しません。
In[1]:=Print[1,StyleForm[2,FontColor->RGBColor[1,0,0]],3]; 123 In[2]:=Print["a=",StyleForm[3,FontWeight->"Bold"]," dayo."]; a=3 dayo.
GraphicsパッケージのArrow.mを使えばよい。
Needs["Graphics`Arrow`"]; kaze=Table[Random[Real,{-2,2}],{24},{2}]; zure=1; Show[Graphics[ Table[ Arrow[{i*zure, 0}, {i*zure,0}+kaze[[i+1]], HeadScaling -> Relative], {i,0,Length[kaze]-1}] ],PlotRange -> All,AspectRatio->Automatic,Axes->{True,False}, AxesLabel->{time,None}];
一度変数を使うと、それらは継続しているセッションの間はMathematicaに 記憶されます。 (グローバル)変数を一括して初期化(何も代入されていない状態)するには、
ClearAll["Global`*"];
Conjugate[x+I*y] としても Conjugate[x+I*y] としか返してくれない。 Conjugate[3+I*y] としても 3-I*Conjugate[y] としか返してくれない。 x や y は実数とは限っていないのだから当然の結果。 x や y を実数としてしか扱わないときは、各々 x-I*y, 3-I*y と 返してほしい。そんなときは MyConjugate[x+I*y] で解決。
In[1]:=Conjugate[x+I*y] Out[1]=Conjugate[x+I*y] In[2]:=MyConjugate[x_] := x /. {Complex[a_, b_] :> Complex[a, -b]}; In[3]:=MyConjugate[x+I*y] Out[3]=x-I*y
文法チェックがうるさくなった。 たとえば、
a={4,};
と書いたファイルを Version4 のノートブック上で読み込む( Get[filename] )と、
Syntax::"com": "Warning: comma encountered with no adjacent expression; the expression will be treated as Null.
と怒られる。 Null を明示しろってことなので、a={4,Null}; と書いておけば怒られない。 また、ノートブックに直接 a={4,}; と書いて実行する分には Warning は出ない。
LaTeX2eで使える小技です。
overciteというパッケージ使ったらいい。 パッケージがなければ、ここを見て、 インストールしましょう。
\usepackage{overcite}
\makeatletter \renewcommand\thetable{\@Roman\c@table} \makeatother
\bein{document}の後で、
\setlength{\baselineskip}{20pt}
\usepackage{showkeys}
\renewcommand\theequation{\roman{equation}}
amsmath パッケージを使えば簡単。
\usepackage{amsmath} \numberwithin{equation}{section}
ヘッダーに
\pagestyle{empty}と書けばいい。こう書いても、表紙のあるページにページ番号が出るときは、 \maketitle の直後に
\thispagestyle{empty}
と書く。
pifont というパッケージを使って、以下のようにすればよい。
\documentclass{article} \usepackage{pifont} \begin{document} 白1,2,3 -- \ding{"C0},\ding{"C1},\ding{"C2} 黒1,2,3 -- \ding{"CA},\ding{"CB},\ding{"CC} \end{document}
番号の対応を考えるのが面倒なので、
などとすれば丸付き数字を表示できるようにもできます。 LaTeX のソースファイルの例と そのdvi ファイルを参照してください。
たとえば、記号λを数式環境じゃない場所で表示させるためには $\lambda$ とわざわざ $ で囲んで数式環境にしてやらなくてはいけないが、 次のようなマクロでは、数式環境でないところでは数式環境として、 数式環境ならもちろん数式環境として扱ってくれる。
\newcommand{\la}{\ensuremath{\lambda}}
表の各列を同じ幅にそろえるには、makebox を使って 幅を指定してやればよい。
\begin{tabular}{|r|r|r|} \makebox[80pt][r]{1} & \makebox[80pt][r]{22} & \makebox[80pt][r]{333}\\ 11 & 2222 & 333333 \end{tabular}
たとえば上で紹介した、overcite.sty は、 /pub/teX/CTAN/macros/latex/contrib/citeという名前のディレクトリにありました。
拾ってきたら、 /usr/share/texmf/tex/latex/packages/ っぽい名前の下のディレクトリに置きます。 ただし設定によっては、ここに置いただけでは tex がスタイルファイルを認識しないことがあります。 その場合はコマンドライン(Windowsならば、「スタート→アクセサリ→コマンドプロンプト」)で、
mktexlsrと打ちます。
Beamerクラスを使うと、LaTeXで きれいなプレゼンテーション資料を 作ることができます。
いくつかの日本語のwebページを参考にインストールしたのですが、 古いパッケージにリンクされていたためインストールしてもうまく動作せず はまりました。というわけで、最新版を探してインストールすることが大切です。 インストールに必要なファイルの現時点(31/Oct/2011)での最新版(であろう) のリンク先とインストール方法を記録しておきます:
latex xcolor.ins latex xcolor.dtx latex xcolor.dtx makeindex -s gind.ist xcolor.idx latex xcolor.dtx latex xcolor.dtx
なお、thebibliography
環境を使うと以下のようなエラーが出ました。
! LaTeX Error: File `beamericonarticle.bb' not found.C:\ptex\share\texmf\tex\latex\beamer\base\artというような 名前のフォルダにおいて、
ebb *.pdf
bbdingパッケージが あると、さまざまな記号をLaTeXで使えるようになります。 記号のためのフォントが必要なので、インストールが少し面倒です:
latex bbding.ins
なお bbding.styで作ったpdfファイルを gs7.07+GSview4.9で閲覧するとエラーが出て表示に失敗しましたが、 gs9.04+GSview4.9にすると表示できるようになりました。
終了させる方法がわからなくて、
Ctrl-Z や Ctrl-C を押してみても効かなくて泣きたくなるのが vi。
終了の方法は以下の2通りを覚えればよい。
変更した内容を保存せずに終了したいときは、
Escを押してから、:q!と押す。
変更した内容を保存してから終了したいときは、
Escを押してから、ZZと押す。大文字。
vi は、コマンドモードと書き込みモードのいずれかのモードにある。
Escキーでコマンドモードになる。
a,i,o,Oのどれかで書き込みモードになる。
コマンドモードのキー:
h → 左、 j → 上、 k → 下、 l → 右。
a → 書き込みモードになる。カーソル位置の後に書き込み。
i → 書き込みモードになる。カーソル位置の前に書き込み。
o → 書き込みモードになる。カーソル位置の次の行に空行作ってそこに書き込み。
O → 書き込みモードになる。カーソル位置の上の行に空行作ってそこに書き込み。
x → カーソルの位置にある1文字を削除。
dd → カーソルのある行を削除。
yy → カーソルの位置にある1文字をコピー。
p → カーソル位置の後にペースト。
:w → 保存。
:w nantoka.txt → nantoka.txtという名前のファイルに保存。
たとえば、カレントディレクトリのファイルをすべて、 ../mydata.tgz にまとめるやり方は、
% tar -zcvf ../mydata.tgz .
z が「gz 圧縮」、cが「まとめてください」、 v が「やかましい」というオプションスイッチ。 逆に解凍するときは、
% tar -zxvf mydata.tgz
x が「解凍してください」オプションスイッチ。
たとえば、/usr/local 以下のディレクトリにある *.sty というファイルを 探したかったら、
% find /usr/local/ -name "*.sty" -printでも locate の方が簡単。
% locate sty
locateを利用するには、updatedbコマンドを定期的に実行して ファイル名のデータベースを作りましょう。 locate単体では、「/usr/local/ 以下のディレクトリを探せ」などのように 細かい探し方はできないようだ。
ls のマニュアルを ls_man.txt という名前で保存するには、
% man ls | colcrt > ls_man.txt
.emacs に次の1行を書く。
;;; C-h to backspace (global-set-key "\b" 'delete-backward-char)
% ls -t
古いもの順ならば
% ls -tr
% df
% mailq
jで1行下を表示(=1行上にスクロール)、kで1行上。
スペースで1ページ下、bで1ページ上。
<でページの先頭、>でページの最後。
/nantoka でnantokaという語を前方検索。
n で次の候補。N で前の候補。
b.txt というファイルで aaa という文字が入っている行を表示するのは、
% grep aaa b.txt
でいい。 逆に、aaa という文字が入っていない行を表示させるには、
% grep -v aaa b.txt
ついでに、aaa という文字が入っている行数だけを知るには、
% grep -c aaa b.txt
uudeview というコマンドを使う。 たとえば、attached_mail というファイルに、 base64でエンコードされた添付ファイル付きのメイルを保存したとすると、
% uudeview attached_mail
で解凍できる。base64 だけじゃなくて、 uuencode なんかも解凍できるらしい。
/etc/inittab をいじって変更する。
ブート時に特定の場所でハングアップして起動できなくなってしまって、 /etc/inittab を編集できないときは次のようにする。 起動時のオプションとして、
LILO: linux 1
とする。するとランレベル1で起動するので、/etc/rc.d/ 以下にある ファイルを編集するなりなんなりして再起動すれば大丈夫。
rpm でインストールしたソフトの一覧を見る:
% rpm -qa
たとえば、pam-0.68-8 の説明を見たかったら、
% rpm -qi pam
レジストリエディタで HKEY_CURRENT_USER\Software\Microsoft\Command Processor にあるCompletionCharの値を9(16進数)にする。 Tabキーで補完。 候補が複数あるときは、Tabを押すごとに候補を次々表示してくれる。
MS IME の「プロパティ」→「入力設定」→「スペースの入力」を 「常に半角」にしている場合に、全角スペースを入力するには、 Ctrl+Shift+Spaceを押せばよい。
Windowsの入力言語が複数あるときは、
タスクバーにある言語バーの左に「JP」や「EN」のアイコンがあって邪魔。
入力言語から日本語以外をアンインストールすれば、アイコンを消すことができる。
「コントロールパネル」→「地域と言語のオプション」→「言語」タブ→
「テキストサービスと入力言語」の「詳細」をクリック。
「既定の言語」で「英語」を選択。
「インストールされているサービス」から「EN 英語」を選択して、削除。
東芝の DVD & HDDレコーダー RD-XシリーズはiEPG予約に対応しており、
PC で Webブラウザーを使ってテレビ番組の録画予約ができとても重宝しています。
RD-X9からはiEPG予約に対応しなくなったようです。
さて、firefox でこの機能を使うため、長らく
iEPG-Extension for RD-Style
というアドオンを使っていたのですが、firefoxのバージョンが3.5に
なったぐらいから動かなくなってしまいました。というわけで、
gooのテレビ番組表
テレビ王国のテレビ番組表
のiEPGマークを左クリックするとRD-X○で開くようになるスクリプトを作ってみました。
2010年10月からgooはiEPG予約に対応しなくなりました。
// ==UserScript== // @name iEPG to RD-X // @namespace hata // @description open an iEPG-link by RD-X4 // @include http://tv.so-net.ne.jp/chart/* // ==/UserScript== var allLinks = document.getElementsByTagName("a"); var sendURL = "http://rd-x4/@@@@@@"; for (i = 0; i < allLinks.length; i++) { var href = unescape(allLinks[i].href); if( href.match(/iepg\.tvpi/) ){ href = sendURL + href.replace(/^http:\/\//,""); allLinks[i].setAttribute("href", href); } }
firefox のウィンドウにカーソルが現れて、 上矢印キーを一回押しただけで画面の最上部まで移動するなどスクロールがおかしくなる ことがあります。
F7 キーを押して、キャレットブラウズモード(caret browsing) のオン/オフを切り替えると問題解決です。
もしくは、「ツール」→「オプション」→「詳細」→「一般」タブの「アクセシビリティ」で、
「ページ中の移動にカーソルを使用する(キャレットブラウズモード)」の
チェックを外してもOKです。
より根本的に解決するために、F7キーによるモードの切り替えを無効にする方法:
Firemacsという アドオンをインストールすれば、「u」を押すと PageUp、スペースを押すとPageDown、 「j」で1行上にスクロール、「k」で1行下にスクロール、など firefoxの閲覧を便利にできます。
もちろん、入力ボックスなどではuやjやkはきちんと使えます。
Top Pageに戻る。 |