emacsで自動スペルチェック

Emacs上で英語論文を書くときに自動でスペルチェックしてくれる機能が欲しかったのでflyspellをいれてみた.というか設定してみた.

まずはスペルチェッカaspellをインストール
ubuntuの場合は

sudo apt-get install aspell aspell-en

でOK.

次にスペルチェックしたい文章が英語である場合は,~/.aspell.confというファイルをつくり

lang en_US

と書けばよい.


続いてemacs用に次を追加

(setq ispell-program-name "aspell")
(setq ispell-grep-command "grep")
(eval-after-load "ispell"
  '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]")))
(setq flyspell-issue-welcome-flag nil)

これであとは,M-x flyspell-modeとすれば辞書に載っていない単語には色がつく.
単語を修正したい場合や辞書に追加したい場合はM-x ispell-wordから適当なものを選択すればよい.

またflyspell-modeはカーソルの周辺だけをスペルチェックするので,全体をチェックしたい場合はM-x ispell-bufferを使う.

Firefoxで編集中ファイルの自動再読込

Inkscapeでプレゼン資料を作っているが,
Inkscapesvgファイルを編集・保存->Firefoxでリロードして描画という作業が面倒だったので,
保存されたら自動でリロードするようにしてみた.
というかid:tzik-tackにやってもらった.


やり方は,次のようなhtmlファイルを用意するだけ.

<html>
  <head>
    <title>Slide</title>
    <script type="application/javascript">
      document.addEventListener("DOMContentLoaded",function(){
        var target = document.getElementById("slide").contentWindow;
        var href = target.location.href;

        (function(){
          var self = arguments.callee;
          var req = new XMLHttpRequest;
          req.open("GET",href,true);
          req.onload = function(){
            if(self.old && req.responseText != self.old){
              target.location.reload(true);
            }
            self.old = req.responseText;
            setTimeout(self,1000);
          };
          req.send(null);
        })();
      },false);
    </script>
  </head>
<body>
<iframe id="slide" height="100%" width="100%" src="slide.svg"/>
</body>
</html>

これで,1秒ごとにファイルが変更されているかを確認し,更新してくれる.
svg以外でもiframeの中身を変えればやってくれる.

windows7のポート開放

外からVMsshをつなごうとしたが,windowsファイアウォールに阻まれてしまい,ポート開放が必要だった.

設定方法は
コントロール パネル->すべてのコントロール パネル項目->Windows ファイアウォール->詳細設定
から
受信の規則->新しい規則
を選び
ポート->TCP, 特定のローカルポート 80->接続を許可
を選べばよい

windows7のVMwareでdhcpの設定

まず,VM上のOSでifconfig(またはwindowsならipconfig)を実行しMACアドレスを確認.

次に,エディタを管理者権限で起動し,

C:\Users\All Users\VMware\vmnetdhcp.conf

を開き,一番下に

host $host名$ {
hardware ethernet $MACアドレス$;
fixed-address $固定したいIPアドレス$;
}

と書く.


あとは,
コントロールパネル->管理ツール->サービスからVMWare DHCPVMware NAT Serviceを再起動したらよい.


sshなどのポート転送は

C:\Users\All Users\VMware\vmnetnat.conf

を編集すれば良い.

JessyInkで作ったsvgファイルからハンドアウトを作る

ハンドアウトの作成ががなかなか大変だったのでメモ.
やり方は以下のとおり
Google Code Archive - Long-term storage for Google Code Project Hosting.を参考にした.

  • Firefoxハンドアウトをつくりたいsvgファイルを開き,「e」を押す.すると,各スライドが1つのレイヤーになったsvgファイルに変換されるので保存する.
  • 保存したファイルをInkscapeで開く.開いたらファイル->名前をつけて保存 を選び,右下のプルダウンメニューから「JessyInk PDFまたはPNGのZIP出力」を選びPDFのZIPとして保存する.
  • ZIPを解凍し,pdftkで結合する.

pdftk slide* cat output all.pdf

pdfnup --nup 2x4 --no-landscape all.pdf

XeLaTeX

XeLaTeXで日本語の入ったTeXファイルを簡単にコンパイルできたのでメモ.


ubuntuの場合インストールは,

sudo apt-get install texlive-xetex
sudo apt-get install texlive-latex-recommended


プレアンブルに

\usepackage{xltxtra}
\setmainfont{IPAex明朝}

と書けば

xelatex hoge.tex

コンパイルできる.


ついでに,
textext.pyの1行目を

#!/usr/bin/env python
# coding: utf-8

とし,710行目あたりのプレアンブルの設定を

texwrapper = r"""
\documentclass[landscape,a0]{article}
%s
\usepackage{xltxtra}
\setmainfont{IPAex明朝}
\pagestyle{empty}
\begin{document}
\noindent
%s
\end{document}
""" % (preamble, latex_text)

とすればtextextでも日本語が使えるようになった.

Inkscapeでプレゼンテーション

今まではLaTeX Beamerを使ってプレゼンをしていたのですが,InkscapeのJessyInkに乗り換えようと思います.
Beamerは数式を使った箇条書きメインのプレゼンをつくるには向いているのですが,
絵を貼りまくるにはコンパイルに時間が掛かったりして大変です.
どうせInkscapeで絵を描くのだから,全部Inkscapeだけでやればいいじゃないかという流れです.


まだ初心者で勉強用にまとめたものなので間違えなどが多々あると思います.
そのときはご指摘お願いします.

インストール方法

Inkscapeのインストール

sudo apt-get install inkscape

JessyInkのインストール
  • Inkscapeを起動し エクステンション->JessyInk->インストール/アップデート->適用 を順に選べばOK

スライドの作り方

基本設定

まずは ファイル->ドキュメントの設定 からページ設定.

  • 背景はわかりやすく黒が良さそう(RGBAで0,0,0,255)
  • ページサイズはプロジェクタの解像度に設定するといいと思う(1024x768, 800x600など.ベクタ画像なのでアスペクト比さえ合っていればいいかも).


マスタースライド作成

マスタースライドとは資料全体のテンプレートとなるもの.
背景やページタイトルの位置,スライド数の表示位置などを設定する.

作り方は,まずマスタースライド用のレイヤーを準備し,適当な名前をつける.(MASTERなど)
次に エクステンション->JessyInk->マスタースライド のレイヤー名に先ほどつけたレイヤー名を入力する.
後は,このレイヤーをテンプレートとなるように背景を描き,スライドタイトルを入れる位置を決め,スライド番号の位置を決める.
ページタイトルやスライド番号は適当なオブジェクトをおいておけば後で自動変換されるように設定できる.

例えば,

のように描く.

このままだと,どれがページタイトルにしたいオブジェクトなのかなどが分からないので,それをInkscapeに教えてやる.
やり方は,エクステンション->JessyInk->オートテキスト を選びダイアログを出し,
スライドタイトルにしたいオブジェクトを選び,ダイアログの「スライドタイトル」を選択し適用を押す.
「スライド数」や「スライド番号」も同様.
スライド番号に関連付けたテキストオブジェクトの方は右寄せにしておくと2桁になったとき良い感じになる.

これですべてのスライドの背景にマスタースライドが設定されます.

タイトルスライド作成

次にタイトルスライド.
通常マスタースライドをタイトルページでは使いたくないので,背景をもう一度塗りつぶす必要があります.
タイトル用のレイヤーを用意して適当に描きます.


一般スライド作成

JessyInkではマスタースライドを除くレイヤーが下から順に表示されていきます.
また,レイヤー名がスライドタイトルとなります.
マスタースライドと編集したいスライドのレイヤーを表示して作成していきましょう.


視覚効果を入れる
  • エクステンション->JessyInk->トランジション
    • スライドを移動するときの視覚効果を入れることができる.
  • エクステンション->JessyInk->エフェクト
    • オブジェクトを順に表示するようにできる.
    • サブレイヤーを使うと便利
      • ただし保存するときサブレイヤーを表示状態にする必要あり
      • サブレイヤーが独立したスライドとして表示される問題あり(解決法模索中)
    • オブジェクトをコピーしたときの挙動がよくわからない
  • エクステンション->JessyInk->ビュー
    • preziのように1つのスライドの一部を順に拡大してプレゼンをすることができる.

表示方法

FirefoxGoogle Chromeなどのブラウザを使います(IEは知らない)

  • 方向キーの←→でページ移動
  • iで全スライドを表示
  • Dで経過時間の設定
  • pでプログレスバー表示
  • tでタイマーリセット

数式が使いたい

textextを使えば可能.
linuxの場合,最新版のtextextをtextext — Random Museからダウンロードし,~/.config/inkscape/extensionsの中に展開したファイルをつっこめばインストール終わり.
pdf2svgが必要かも

メリット

  • 自由度が高い
  • svgの資源を利用できる
  • javascriptも使える

デメリット

  • 描画がブラウザ依存なので,環境によって表示が少し変わる
  • 必要なパーツは自分で用意しなければならない(矢印とかプレゼンでよく使うものがデフォルトで入っているわけではない)