計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

MacにBasicTex (2018)を入れる

目次

BasicTex

MacTeXはフルで2G超えてインストールが大変だったり、MacTexで入るGhostscriptに問題もあるらしいので、最小限構成のBasicTexを入れることにする。BasicTexは余計なGUIアプリなどが入っていない。日本語環境やLatexitなどはあとで入れればいい。

インストール

BasicTex

Tex Wkiに書いてあるようにするだけ。caskで入れるといい。 BasicTeX - TeX Wiki

$ brew cask install basictex
$ sudo tlmgr update --self --all
$ sudo tlmgr paper a4
$ sudo tlmgr install collection-langjapanese

Ghostscript

Ghostscriptはhomebrewでインストールする。

$ brew install ghostscript

MacTexで入るバージョン9.23は脆弱性があるらしい。homebrewではバージョン9.25が入った(2018/11/26)。

Sphinxを使うときに必要になるもの

最小構成では色々足りなくてSphinxで数式を使うときにエラーがでる。以下のものを入れる。

  • ucs
  • anyfontsize
  • dvipng
$ sudo tlmgr install ucs
$ sudo tlmgr install anyfontsize
$ sudo tlmgr install dvipng

LaTeXiT

数式の画像を出力できるLaTeXiTも入れておく。caskで。

$ brew cask install latexit

Skim

SyncTeXに対応したPDFビューワのSkimを入れる。pdfやdviなどリアルタイムで確認できる。caskで入れる。

$ brew cask install skim

環境設定 --> 同期する --> ファイルの変更をチェック自動的にリロードするにチェックを入れて、PDF-TeX 同期サポートの初期値をEmacsにしておく

Emacsの設定

YaTeXを使う。

YaTeXの設定

基本的にはpdflatexを使用して、日本語を使う場合はtexソースファイルの先頭に

%#!platex -synctex=1

と書くことでタイプセットを指定して、日本語の時だけplatexを使う

設定ファイル

;;
;; YaTeX
;;
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq auto-mode-alist
      (append '(("\\.tex$" . yatex-mode)
        ("\\.ltx$" . yatex-mode)
        ("\\.cls$" . yatex-mode)
        ("\\.sty$" . yatex-mode)
        ("\\.clo$" . yatex-mode)
        ("\\.bbl$" . yatex-mode)) auto-mode-alist))
(setq YaTeX-inhibit-prefix-letter t)  ;; screenのコマンドC-tとかぶる。tじゃなくnil
(setq YaTeX-kanji-code nil)
(setq YaTeX-latex-message-code 'utf-8)
(setq YaTeX-use-AMS-LaTeX t)
(setq YaTeX-dvi2-command-ext-alist
      '(("TeXworks\\|texworks\\|texstudio\\|mupdf\\|SumatraPDF\\|Preview\\|Skim\\|TeXShop\\|evince\\|okular\\|zathura\\|qpdfview\\|Firefox\\|firefox\\|chrome\\|chromium\\|Adobe\\|Acrobat\\|AcroRd32\\|acroread\\|pdfopen\\|xdg-open\\|open\\|start" . ".pdf")))
;;(setq tex-command "platex -synctex=1")
(setq tex-command "pdflatex -synctex=1")
(setq dvi2-command "xdvi")
(when (equal system-type 'darwin)     ;; for Mac only
  (setq dvi2-command "/usr/bin/open -a Skim")
  (setq tex-pdfview-command "/usr/bin/open -a Skim"))
(setq bibtex-command "pbibtex")
(setq dviprint-command-format "dvipdfmx")


(add-hook 'yatex-mode-hook '(lambda () (auto-fill-mode -1))) ;; 自動で改行しない


;;
;; texファイルを開くと自動でRefTexモード
;;
;(add-hook 'latex-mode-hook 'turn-on-reftex)
(add-hook 'yatex-mode-hook 'turn-on-reftex)

Macの時だけSkimと連携するようにしている。

Jupyter notebookに拡張機能を入れる

公式 github

github.com

インストール

pipで入れて、1行コマンドをうつ

$ pip install jupyter_contrib_nbextensions
$ jupyter contrib nbextension install --user

設定

jupyterを起動して、ブラウザでlocalhost:8888/nbextensions/にアクセス。

欲しい機能にチェックをつけるだけ。

いくつかチェックをつけて、Comment/Uncomment Hoekeyemacsと同じのalt+;に設定しておいた。

zshやEmacsの設定ファイルをDropboxで管理する

以前はgitで管理していたが、バージョン管理するほどでもないし、自動的に同期してくれる方が便利なのでDropboxで管理することにした。

Dropbox

Dropbox内にdotfiles置き場を作る。以下のディレクトリにした。

~/Dropbox/research/etc/dotfiles

この中にzshemacs、他にもsshなどの各設定用ディレクトリを作成する。

zsh

.zshenv.zshrcなどの設定ファイルはZDOTDIR変数を設定するのはやめて、デフォルトのホームディレクトリに置くことにする。

各マシンごとの設定は.zshenv_ホスト名.zshrc_ホスト名に書いて(ホスト名はそれぞれのマシンの実際のホスト名が入る)、それぞれ.zshenv.zshrcからsourceしている。
以下の四つのファイルとzsh-syntax-highlightingを用意しておく

zsh-syntax--highlightingをインストールしてzshをカラフルに - 計算物理屋の研究備忘録

  • .zshenv
  • .zshenv_ホスト名
  • .zshrc
  • .zshrc_ホスト名
  • zsh-syntax-highlighting/

あとでまとめてホームディレクトリにシンボリックリンクを貼る。

Emacs

zshと同様に以下を用意

あとでまとめてホームディレクトリにシンボリックリンクを貼る。

シンボリックリンクをはるスクリプト

.gitconfigsshconfigファイルなども用意して

#!/bin/sh

# ---------- スクリプトがあるディレクトリの絶対パス
APATH=$(cd $(dirname $0) && pwd)


# ---------- zsh
ln -sv $APATH/zsh/.zshenv ~/
ln -sv $APATH/zsh/.zshenv_$HOSTNAME ~/
ln -sv $APATH/zsh/.zshrc ~/
ln -sv $APATH/zsh/.zshrc_$HOSTNAME ~/
ln -sv $APATH/zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ~/.zsh-syntax-highlighting.zsh


# ---------- ssh
if [ ! -d ~/.ssh ]
then
    mkdir ~/.ssh
    chmod 700 ~/.ssh
fi
ln -sv $APATH/ssh/config ~/.ssh/


# ---------- etc
ln -sv $APATH/aspell/.aspell.conf ~/
ln -sv $APATH/git/.gitconfig ~/



# ---------- Emacs
if [ ! -d ~/.emacs.d ]
then
    mkdir ~/.emacs.d
fi
if [ ! -d ~/.emacs.d/backup ]
then
    mkdir ~/.emacs.d/backup
fi
ln -sv $APATH/emacs/init.el ~/.emacs.d/
if [ -f $APATH/emacs/init_${HOSTNAME}.el ]
then
    ln -sv $APATH/emacs/init_${HOSTNAME}.el ~/.emacs.d/
fi
ln -sv $APATH/emacs/inits ~/.emacs.d/
ln -sv $APATH/emacs/mysnippets ~/.emacs.d/

Karabiner-Elementsの設定

Simple Modifications

Macの設定のキーボードのところの修飾キーの設定は変えない。うまくいかなかった。Karabinerの方で変更する。
Emacsのためにcontrolキーを増やす

  • caps_lock --> left_control
  • left_command --> left_control
  • right_command --> right_control
  • left_control --> left_command

Complex Modifications

Emacsキーバインド

Add ruleをクリック。 Import more roles from the Internet (open a web browser)をクリックしてブラウザが開いたら、 Emulation ModesEmacs key bindingsをImportする。

あとはKarabiner-Elementsで先ほどインポートしたものから好きなものを有効にする。

  • Emacs key bindings [control+keys] (rev 10)
  • Emacs key bindings [option+keys] (rev 5)

を有効にした。これだけでは C-kやC-yなどが使えないので

qiita.com

このサイトにあるように下記のEmacs modeをインポートした。

Karabiner-Elements complex_modifications rules

以下のものも有効にしておいた

  • [Emacs Mode] Control+W to Command+X
  • [Emacs Mode] Control+Y to Command+V
  • [Emacs Mode] Control+K to Command+Shift+Right,Command+X
  • [Emacs Mode] Control+/ to Command+Z

英数・かなキー

同様にInternational (Language Specific)For Japanese (日本語環境向けの設定) (rev 3)をインポートして下記を有効にする。

  • 英数・かなキーを他のキーと同時に押した時に、Optionキーを送信する

これがすごく便利。

Devices

使用しているキーボードが認識されているか確認できる

Virtual Keyboard

JISキーボードなのにUSキーボードに誤認されておかしくなった場合はここで直す。(入力ソースにUSも含んでいたことが原因?)

対処法が書いてあるサイトを見つけた。この通りにする。

qiita.com

Country codeを45にする。するとMacのキーボードの設定みたいなものが立ち上がるのでJISを選んで言う通りにすればきちんと認識された。

Macのメール設定

アカウントを追加

アカウントを追加しようと用意してあるグーグルのロゴをクリックしようしとしたら、 セキュリティ関係でできなかったので、その他のメールアカウントから手動でgmailを追加した。

---------- 2018/11/28 追記 ----------

最近やり直して見たらグーグルのロゴを選ぶやつからアカウントを追加できた。

---------- 追記終了 ----------

メールの初期設定

デフォルトのメール.appの環境設定。

一般

  • 未開封数のDockへの表示すべてのメールボックスに変更
  • 新着メッセージの通知すべてのメールボックスに変更

アカウント

作成したGmailアカウントで

アカウント情報

  • メールアドレスを編集して名前とアドレスを自分が普段使うものに。

迷惑メール

  • 迷惑メールフィルタを有効にするにチェック

表示

  • 未開封メッセージをボールドフォントで表示にチェック
  • 最新のメッセージを一番上に表示にチェック

作成

  • アカウントを追加して再起動してから、新規メッセージの送信元を変更する。

署名

  • アカウントを追加してから、署名を作成しておく。

Emacsでexpand-regionを使う

expand-region

選択したリージョンを単語、カッコ・・・と賢く一発で広げていってくれる。

github.com

インストール

Melpaからパッケージをいれるだけ

設定

(require 'expand-region)
(global-set-key (kbd "C-@") 'er/expand-region)
(global-set-key (kbd "C-M-@") 'er/contract-region)

使い方

  • C-@: 押すごとにリージョンを広げる
  • C-M-@: 押すごとにリージョンを狭める