こえむのちょこっとメモ

大きなまとめにする程でもないけど記録したい事を残します

TeXnicle がやたらCPUリソースを消費している時は

TeXnicleがやたらCPUを消費している(30〜50%)時は、次の点を疑うといい。

  • 重いBiBTeXを読み込んでいる
  • \label の参照が複雑すぎる
  • \include が適切に行われていない

顕著に発生したのが、巷に出回っていたRFCのBiBTeXを読み込んだ時だった。これは、別のものに差し替えて解決した。

原因は、TeXnicleがファイルの更新を監視している事にある模様。CPUリソースを多量に消費しているときは、エディタも重くなるので感づきやすい。それも、執筆当時最新のMBP Mid 2013 (13inch)でもわかるくらいである。

Jenkins で認証付き Mercurial (hg) サーバからクローンできるようにする

Jenkins の実行ユーザのホームディレクトリに ".hgrc" ファイルを作成。例えば、https, http経由でアクセスするなら次の通り設定する。

[auth]
(好きな名前).prefix   = (ホスト名)/(リポジトリ名)
(好きな名前).schemes  = http https
(好きな名前).username = (ユーザ名)
(好きな名前).password = (パスワード)

書き方例。

[auth]
example.prefix   = repo.example.com
example.schemes  = http https
example.username = hoge
example.password = passw0rd

bitbucket等に連携させる方はどうぞ。

URIに直接ユーザ名・パスワードを書いても良いが、その方法だとリポジトリの更新をトリガーとしたビルドが動かないので、こちらが確実。また、直接パスワードを書く事に抵抗がある人にもいいかもしれない。

参考: hgrcの設定方法

表にfootnote(注釈)を入れる

プリアンブルに"\usepackage{footnote}"、表の前後に"\begin{savenotes}〜\end{savenotes}"を入れる事で、表のセルに注釈を挿入できる。

サンプル

LaTeXソース

\documentclass{jsarticle}
\usepackage{footnote}
\begin{document}

\begin{savenotes}
  \begin{table}[htbp]
    \caption{footnoteが出る表}
    \label{test1}
    \begin{center}
      \begin{tabular}{|c||l|l|} \hline
        項目 & 内容 & 備考 \\ \hline \hline
        1番  & テスト2 & footnoteが入る\footnote{これは表示される} \\ \hline
      \end{tabular}
    \end{center}
  \end{table}
\end{savenotes}

\end{document}  

Mac OS X で一発でスクリーンセーバーを起動する

コマンド一発。これ。
aliasを張っておくとより手軽に立ち上げられる。昼飯などで席を立つ時に使ってみて。

$ open -a ScreenSaverEngine

2013-09-03追記:

Mac OS X 10.8 (Mountain Lion)ではこのコマンドが効かない模様。別の方法を探る。

Beamerで2ペインにする

Beamerで右に文字、左に図を差し込みたい場合、"columns"を活用すると良い。

サンプル

LaTeXソース

\documentclass[dvipdfm,14pt]{beamer}

%-----------------------------------------------------------

\usetheme{Antibes}
\usecolortheme{dolphin}

\usepackage{graphicx}

\begin{document}

%-----------------------------------------------------------

\frame{
  \frametitle{説明と図}

  \begin{columns}[t]
    \begin{column}{0.7\textwidth}
      \begin{itemize}
        \item ここに説明を書く。
      \end{itemize}
    \end{column}
    \begin{column}{0.3\textwidth} 
      \begin{figure}
        \begin{center}
          \includegraphics[height=3.0cm]{./login.png}
          \caption{iPhone}
        \end{center}   
      \end{figure}
    \end{column}
  \end{columns}
}

%-----------------------------------------------------------

\end{document}

タイプセット結果

f:id:koemu:20130123204211p:plain

LaTeXでスライドを作成できる"Beamer"

(UpTeX 20111010版で動作させている事を前提に記述)

LaTeXは文章を書くものだと考えられがちだが、スライドも作る事が出来る。"Beamer"を用いる。

僕の考えるBeamerのメリット。

  • 動作が軽い
  • OSやバージョン等の環境依存が少ない
  • 数式が入れやすい(このためだけに使う人がいる)

逆にデメリットはこんな所だ。

  • アニメーションしない
  • DVI形式のファイルを表示しようとするとビューアが落ちる(PDF化しないと読めない)
  • PowerPointの「プレゼンテーションモード」のような機能があるビューアがない(あったら使いたい)

UpTeX 20111010版にはデフォルトで文章クラスが入っている。持っていない人は「Sourceforge」から落として入れればよい。

Beamerの使い方は簡単。通常の文章を書く時との違いは大きく分けて3点。

  • 文章クラスを変える
  • プリアンブルを細工する
  • 本文の書き方のルールを覚える

癖があるのは3番目だが、1回書けば要領は掴める程度の難易度なので、そんなに難しくない。

Beamerにはいくつかテーマが用意されている。「Beamer Theme Matrix」のページが参考になる(縦軸:theme, 横軸:colortheme)。

サンプル

LaTeXソース

\documentclass[dvipdfm]{beamer}

%-----------------------------------------------------------

\usetheme{Antibes}
\usecolortheme{dolphin}

\usepackage{graphicx}

%-----------------------------------------------------------

\title{Beamerサンプル}
\author{ここに名前を書く}
\institute{ここに所属を書く}
\date{\today}

\begin{document}

%-----------------------------------------------------------

\frame{\titlepage}

%-----------------------------------------------------------

\section{はじめに}
\subsection{Beamerについて}

\frame{
  \frametitle{Beamerについて}
  
  \begin{itemize}
    \item Beamerを用いると、LaTeXでもスライドを作れます。
    \item 数式もお手のもの!
  \end{itemize}

  \begin{eqnarray}
    \mathrm{idf_i} = \log \frac{|D|}{|\{d: d \ni t_{i}\}|}
  \end{eqnarray}

  \begin{itemize}
    \item 図も入ります。
  \end{itemize}
  
  \begin{center}    
      \includegraphics[height=3cm]{./iphone.png}
  \end{center}
}

%-----------------------------------------------------------

\end{document}

タイプセット結果

f:id:koemu:20130103152042p:plain
f:id:koemu:20130103151756p:plain

LaTeXで参考文献の参照時に名前を表示する

(UpTeX 20111010版で動作させている事を前提に記述)

参考文献を参照する際、情報系の論文では[1][2]...[n]や[ABCnn]という表記で行われる事が多い。しかし、〜〜(Foo Bar, 2013)など、名前を表記する習わしがある分野もある(特に社会科学系)。しかし、名前を表記する方法はちょっと細工しないと出来ない。やり方は次の通り。

$ nkf -w --overwrite jep.bst
  • 編集中の.texファイルのプリアンブル(\begin{document}の手前)に次の一行を加筆。
\usepackage{natbib}
  • Citationは次の通りに書く。
ほげほげ\citep*{foo}
  • 末尾の"bibliographystyle"を書き換える
\bibliographystyle{jep}

Citationの書き方は色々パターンがあるので、詳細は BiBTeX活用術(外部サイト) → 「文献の引用」を参照すること。

サンプル

BiBTeXソース

@book{Cusumano2004,
  author = {{Michael A. Cusumano}},
  isbn = {0-7432-1580-X},
  keywords = {Management,Software},
  publisher = {Free Press},
  title = {{The Business of software: what every manager, programmer, and entrepreneur must know to thrive   and survive in good times and bad}},
  year = {2004}
}

LaTeXソース

\documentclass{jsarticle}
\usepackage{natbib}

\begin{document}

\section{テスト}

ソフトウェア開発企業の研究\citep*{cusumano2004}によると…

\bibliographystyle{jep}
\bibliography{./sample}

\end{document}

タイプセット結果

f:id:koemu:20130102055543p:plain

*1:もちろんtexmf配下でもいい

LaTeXの文法を忘れた 今すぐ何とかしたい

このページで頒布されている「TeXマニュアル」を読む。

迷ったときは、奥村先生のWikiを頼ると良い。

BiBTeXについては、次のものを参考にする。Mendeleyは文献管理ツールで、BiBTeX形式でExportできるので文法を気にする頻度がグーンと下がってよい。

文章クラス、特に日本語関連はここを見とく。

卒論・修論・博論はjsbook、レポートやレジュメはjsarticleを使っておくといい感じ。

細かい話は、Googleで検索すると色々出てくる。都度探して、書き留めた方が良い。
良い本があると嬉しいけど、某所で聞いたら絶版らしい。

人からもらったLaTeXスタイルファイルが動かない!そんな時は?

(UpTeX 20111010版で動作させている事を前提に記述)

「人からもらったスタイルファイルが動かない!」

そんなときは、まずは参照元(自分が書いている方)のLaTeXファイルの文字コードと合致しているかをチェック。参照元はUTF-8、スタイルファイルはEUC-JPとなっていて、文字コードがずれていたばかりにうまく行かないというパターンは珍しくない。

尚、文字コード変換はnkfを使うと良い。

LaTeXで表の列幅を一定にする

LaTeXでは、表の列幅は中に入っている文字列のつまり具合で決まる。そのため、文字数が長いと紙の幅を飛び出す事がしばしある。
そこで、幅の最大値を固定してしまうことで、紙の幅を飛び出さないようにする事が出来る。

例文は次の通り。

\documentclass{jsarticle}
\begin{document}

\begin{table}[tb]
  \begin{center} 
    \caption{折り返せている表}
    \label{test1}
    \begin{tabular}{|c||l|p{20em}|} \hline
      項目 & 内容 & 備考 \\ \hline \hline
      1番  & 内容を書く & 長い文字列を書いても大丈夫なはずだがどうだろうか てすてすてす \\ \hline		
    \end{tabular}
  \end{center}
\end{table}

\begin{table}[tb]
  \begin{center} 
    \caption{折り返せていない表}
    \label{test2}
    \begin{tabular}{|c||l|l|} \hline
      項目 & 内容 & 備考 \\ \hline \hline
      1番  & 内容を書く & 長い文字列を書いても大丈夫なはずだがどうだろうか てすてすてす \\ \hline		
    \end{tabular}
  \end{center}
\end{table}

\begin{table}[tb]
  \begin{center} 
    \caption{短い文の表}
    \label{test3}
    \begin{tabular}{|c||l|p{20em}|} \hline
      項目 & 内容 & 備考 \\ \hline \hline
      1番  & 内容を書く & 短い \\ \hline		
    \end{tabular}
  \end{center}
\end{table}\ref{test1}は一定の幅を超えた文字列は折り返されている。表\ref{test2}は折り返されない。また、表\ref{test3}のように文字列が短い場合でも長さは固定される。

\end{document}

タイプセット結果は次の通り。
f:id:koemu:20130101202203p:plain