latexdiffでsectionを変更したときに出るエラーをスキップする

latexdiffで,オプション--exclude-textcmd="section,subsection,subsubsection"を付けて実行すれば良い.

latexdiff --exclude-textcmd="section,subsection,subsubsection" a.tex b.tex > c.tex

執筆の管理

論文などの文書ファイルはGitとGithubでバージョン管理している. 論文を書く際に,書かないといけないことや見直さないといけないことをGithub isssuesにリストアップしている. コミットするときに,git commit -m "fix #123"などとしてリストを消していく.

リストの確認には,waffle.ioというサービスを使っている. これは,Githubと連携できてカンバン形式でそれぞれのissueを表示することができる. waffle.ioの看板には,BacklogReadyIn ProgressDoneのレーンがあって,issueをドラッグ&ドロップで動かすことができる. このレーンが結構使いやすい.

まず,Backlogに思いつく限りのタスクを,できるだけ小分けにして書く. レーンの中で順番が変えられるので,(必要があれば)優先順位順に並び替える.

In Progressには,今,作業しているissueを置く. ここに置いておけば,「今(昨日),何やってたっけ?」という思い出すための時間が相当削減される.

Readyには,今はやらないけど,頭の片隅に置いておきたいこと,を置いておく. 例えば,「参照のための論文を読む」というタスクや「シミュレーションが終わったらその結果を載せる」というタスクをここに置いて,たまに見て思い出す.

Doneには,最近closeしたissuesが置かれる. closeしてもドラッグ&ドロップで他のレーンに戻せる.

waffle.ioの4つくらいの適当な運用の仕方が僕のスタイルに合っている気がする. 査読コメントをBacklogに置いて,一つずつ消していくと進んでいるなぁ,という感じがするから,楽しい(多分).

fswatchによるファイル変更検知

fswatchをインストール

$ brew install fswatch

使い方

$ fswatch {監視したいディレクトリやファイル} | xargs -I{} {実行したいコマンド}

latexコンパイルとかに便利.

$ fswatch manuscript.tex | xargs -I{} pdflatex manuscript

gitとlatexdiffを連携させる

gitの前のバージョン(HEAD)を取り出して,現在のファイルとlatexdiffする. シェル上では次のように実行すれば良い.

$ git show HEAD:./$1.tex > tmp.tex
$ latexdiff tmp.tex $1.tex > diff_HEAD_$1.tex;

bashrcやzshrcに書いておくと便利.

function git_ldiff(){
    git show HEAD:./$1.tex > tmp.tex
    latexdiff tmp.tex $1.tex > diff_HEAD_$1.tex;
    pdflatex diff_HEAD_$1
    bibtex diff_HEAD_$1
    pdflatex diff_HEAD_$1
    rm tmp.tex
}

git_ldiffは次のように使う.

$ git_ldiff manuscript.tex

Total FinderみたいなものをOSX El Capitanで実現する

OSXがEl CapitanになってからTotalTerminalが動かなくなった. なので,Alfredの呼び出しを使ってみたり,iTerm2のホットキーを使ったりしていた. ただ,困ったことに,違うアプリを全画面表示しているときに同じウィンドウでターミナルが呼び出せない. 全画面表示していても,それの上にターミナルを呼び出したい. iTerm2をいじったらできた.

iTerm2のホットキーを設定する

  1. Preferences --> Keys --> Hotkey の「Show/hide iTerm2 with a system-wide hotkey」にチェック
  2. 「Hotkey:」の欄にお好みのショートカットを入力
  3. 「Hotkey toggles a dedicated window with profle:」の欄にチェックして,下のメニューから「Hotkey Window」を選択

iTerm2をLSUIElementをtureにする

>> defaults write [iTerm2のインストールパス]/iTerm.app/Contents/Info LSUIElement true

左いっぱいに広げたり,下いっぱいに広げたりする

  1. Preferences --> Profiles --> Hotkey Window の「Style:」を好みによって変える
  2. 「Space:」を「All Spaces」にする