c-bata web

@c_bata_ のメモ。python多め

LaTeXメモ

レポートの作成等にLaTeXを使っているので,いちいち調べなくてもいいようにテンプレ的なものをメモ。

目次

よく見るサイト

その他、便利なTipsなど


インストール

MacTexをいれた。インストールとかアップデートにかなり時間かかったのでBasicTeXとcollection-langjapaneseでも良さそう。

$ brew cask install mactex
$ sudo tlmgr update --self --all
$ platex -kanji=utf8 -interaction=nonstopmode -file-line-error hoge.tex
$ dvipdfmx hoge

PDFビューアはSkimを使う。Pythontexファイルの更新を検知したらビルドを行うスクリプトを書いている。 openでプレビューを開くとフォーカスがそっちに行くので面倒。


実験のレポートを書くときのテンプレ

パッケージの追加等は,mejiro.styに記述。

\documentclass{jsarticle}
\usepackage{mejiro}
\begin{document}
%=============================================
\section{目的}


%=============================================
\section{原理}


%=============================================
\section{実験方法}


%---------------------------------------------
\subsection{使用器具}

実験で使用した器具を表\ref{tool}に示す。

\begin{table}[htbp]
\begin{center}
\caption{実験器具}
\begin{tabular}{|c|c|c|c|c|} \hline
名称 & メーカ & 型番 & 製造番号 & 規格 \\ \hline \hline
 &  &  &  &  \\ \hline
\end{tabular}
\label{tool}
\end{center}
\end{table}

%=============================================
\section{実験結果}


%=============================================
\section{考察}


%=============================================
\section{まとめ}


%=============================================
\begin{thebibliography}{9}

\end{thebibliography}
\end{document}

↓が自分用にカスタマイズしたスタイルファイル

\ProvidesPackage{mejiro}
%===========================================
%%% よく使うものを定義(打ち間違い防止になる。)
\newcommand{\name}{自分の名前}
\newcommand{\mail}{メールアドレス}
\newcommand{\school}{〜学校〜学科〜年}

%===========================================
%%% パッケージ関連
% 画像を貼る
\usepackage[dvipdfm]{graphicx}
% 画像を固定させるもの
\usepackage{here}
\usepackage{multicol}
% 文章を枠で囲める
\usepackage{framed}
% txtファイルを改行とかして表示してくれる
\usepackage{moreverb}
% \url{http://oku.edu.mie-u.ac.jp/~okumura/texwiki/}みたいにしたらURL使える
\usepackage{url}
\usepackage{ascmac,here,txfonts,txfonts}
\usepackage{color}
% 表を書くときに,列をまとめてくれる?ようなやつ
\usepackage{multirow}
% 箇条書きがかなり簡単になるパッケージ
\usepackage[at]{easylist}

%ソースコードの表示
\usepackage{listings,jlisting}
\renewcommand{\lstlistingname}{リスト}
\lstset{
  breaklines = true,
  language=Java,
  basicstyle=\ttfamily\scriptsize,
%  commentstyle={\itshape \color[cmyk]{1,0.4,1,0}},
  classoffset=1,
%  keywordstyle={\bfseries \color[cmyk]{0,1,0,0}},
%  stringstyle={\ttfamily \color[rgb]{0,0,1}},
  frame=tRBl,
  framesep=5pt,
  showstringspaces=false,
  numbers=left,
  stepnumber=1,
  numberstyle=\tiny,
  tabsize=2,
}


画像の表示

基本例

\begin{figure}[H]
\centering
\includegraphics[width=65mm]{./img/sample.eps}
\caption{サンプル}
\label{sample}
\end{figure}

画像を横に2枚並べる

\begin{figure}[htbp]
 \begin{minipage}{0.5\hsize}
  \begin{center}
   \includegraphics[width=75mm]{./img/sample1.eps}
  \end{center}
  \caption{サンプル1}
  \label{sample1}
 \end{minipage}
 \begin{minipage}{0.5\hsize}
  \begin{center}
   \includegraphics[width=75mm]{./img/sample2.eps}
  \end{center}
  \caption{サンプル2}
  \label{sample2}
 \end{minipage}
\end{figure}

png等を貼りつけ

epsはファイルサイズが膨らみがちで学会とかに提出するときファイルサイズを簡単にオーバーしてしまう。そういうときはpngで貼り付け

フォルダ内のpng画像をepsに変換

この前紹介したImageMagickを使えばフォルダ内のpngやjpgを一瞬でepsに変換できる。

$ for f in *.png; do
>convert $f ${f%.png}.eps;
>done


基本例

\begin{table}[htbp]
\begin{center}
\caption{サンプル}
\begin{tabular}{|c|c|c|} \hline
数字 & アルファベット & かな \\ \hline \hline
123 & abcde & あいうえお \\ \cline{2-3}
& fghij & かきくけこ \\ \cline{2-3}
& klmno & さしすせそ \\ \hline \hline
456 & pqrst & たちつてと \\ \cline{2-3}
& uvwxy & なにぬねの \\ \hline \hline
\end{tabular}
\label{sample}
\end{center}
\end{table}

f:id:nwpct1:20131215010328p:plain

↓には過去の実験レポートから複雑な表の例を抜粋してメモ。

少し複雑な例

\begin{table}[htbp]
\begin{center}
\caption{論理代数の諸定理}
\begin{tabular}{|c|c|} \hline
名称 & 公式 \\ \hline
公理 & \parbox{8zw}{\strut \centering $1+A = 1$ \\ $0・A=0$ \strut } \\ \hline
恒等の法則 & \parbox{8zw}{\strut \centering $0+A=A$ \\ $1・A=A$ \strut } \\ \hline
同一の法則 & \parbox{8zw}{\strut \centering $A+A=A$ \\ $A・A=A$ \strut } \\ \hline
補元の法則 & \parbox{8zw}{\strut \centering $A+\overline{A}=1$ \\ $A・\overline{A}=0$ \strut } \\ \hline
復元の法則 & $\overline{\overline{A}}=A$ \\ \hline
交換の法則 & \parbox{8zw}{\strut \centering $A+B=B+A$ \\ $A・B=B・A$ \strut }\\ \hline
結合の法則 & \parbox{13zw}{\strut \centering $A+(B+C)=(A+B)+C$ \\ $A・(B・C)=(A・B)・C$ \strut } \\ \hline
分配の法則 & \parbox{13zw}{\strut \centering $A・(B+C)=A・B+A・C$ \\ $A+B・C=(A+B)・(A+C)$ \strut }\\ \hline
吸収の法則 & \parbox{8zw}{\strut \centering $A・(A+B)=A$ \\ $A+A・B=A$ \\ $A+\overline{A}・B=A+B$ \\ $\overline{A}+A・B=\overline{A}+B$ \strut }\\ \hline
ド・モルガンの法則 & \parbox{8zw}{\strut \centering $\overline{A+B} = \overline{A}・\overline{B}$ \\ $\overline{A・B}=\overline{A}+\overline{B}$ \strut }\\ \hline
\end{tabular}
\label{ronridaisuu}
\end{center}
\end{table}

f:id:nwpct1:20131215011411p:plain

parboxを使えば,長い文章でも自然に表に組み込める。

複雑な例2

\begin{table}[htbp]
\begin{center}
\caption{BCD-7セグメント符号変換器の真理値表}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|} \hline
入力 & 表示 &\multicolumn{7}{|c|}{セグメント} \\ \cline{1-1} \cline{3-9}
xyzw & 文字 & a & b & c & d & e & f & g \\ \hline
0000 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
0001 & 1 & 1 & 0 & 0 & 1 & 1 & 1 & 1 \\
0010 & 2 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\
0011 & 3 & 0 & 0 & 0 & 0 & 1 & 1 & 0 \\
0100 & 4 & 1 & 0 & 0 & 1 & 1 & 0 & 0 \\
0101 & 5 & 0 & 1 & 0 & 0 & 1 & 0 & 0 \\
0110 & 6 & 1 & 1 & 0 & 0 & 0 & 0 & 0 \\
0111 & 7 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\
1000 & 8 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
1001 & 9 & 0 & 0 & 0 & 1 & 1 & 0 & 0 \\ \hline
\parbox{4zw}{\strut \centering 1010 \\ 1011 \\ 1100 \\ 1101 \\ 1110 \\ 1111 \strut} & -- & \multicolumn{7}{|c|}{--} \\ \hline
\end{tabular}
\label{sinritihyou}
\end{center}
\end{table}

f:id:nwpct1:20131215011249p:plain

複雑な例3

\begin{table}[htbp]
\begin{center}
\caption{特性試験結果2}
\label{特性試験結果2}
\begin{tabular}{|r|r|r|r|r|r|r|} \hline
\multicolumn{1}{|c|}{力率$\cos \phi$} & \multicolumn{1}{c|}{$\sin \phi$} & \multicolumn{1}{c|}{二次負荷電流} & \multicolumn{1}{|c}{\%抵抗電圧降下} & \multicolumn{1}{|c|}{\%リアクタンス電圧降下} & \multirow{2}{3zw}{\centering $q_rm$} & \multirow{2}{3zw}{\centering $q_rn$} \\
\multicolumn{1}{|c|}{$(m)$} & \multicolumn{1}{c|}{$(n)$} & \multicolumn{1}{c|}{$I_2$[A]} & \multicolumn{1}{c|}{$q_r$} & \multicolumn{1}{c|}{$q_x$} & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{} \\ \hline
\multirow{6}{6zw}{\raggedleft 1} & 0 & 0 & 0.00 & 0.00 & 0.00 & 0.00 \\ \cline{2-7}
& 0 & 2.5 & 1.33 & 0.577 & 1.33 & 0.00 \\ \cline{2-7}
& 0 & 5.0 & 2.66 & 1.15 & 2.66 & 0.00 \\ \cline{2-7}
& 0 & 7.5 & 3.99 & 1.73 & 3.99 & 0.00 \\ \cline{2-7}
& 0 & 10 & 5.32 & 2.31 & 5.32 & 0.00 \\ \cline{2-7}
& 0 & 12.5 & 6.65 & 2.88 & 6.65 & 0.00 \\ \hline
\multirow{6}{6zw}{\raggedleft (遅れ)0.8}& 0.6 & 0 & 0.00 & 0.00 & 0.00 & 0.00 \\ \cline{2-7}
& 0.6 & 2.5 & 1.33 & 0.577 & 1.06 & 0.798 \\ \cline{2-7}
& 0.6 & 5 & 2.66 & 1.15 & 2.12 & 1.60 \\ \cline{2-7}
& 0.6 & 7.5 & 3.99 & 1.73 & 3.19 & 2.39 \\ \cline{2-7}
& 0.6 & 10 & 5.32 & 2.31 & 4.26 & 3.19 \\ \cline{2-7}
& 0.6 & 12.5 & 6.65 & 2.88 & 5.32 & 3.99 \\ \hline
\end{tabular}
\end{center}
\end{table}

f:id:nwpct1:20131215011010p:plain

Excelの表をPDFで出力してlatexに貼り付ける

表に関してはExcelで弄ったほうが圧倒的に楽なのでこの方法をとっている. Excelで表を作成、出力してillustratorでアートボードをオブジェクトのサイズに変換.(illustrator高いので持ってない人は違うソフト探して下さい). 画像を貼りつける際にはmediabb.styを使用する.

参考

\begin{table}[htbp]
\centering
\caption{特徴量の組み合わせによる認証率}
\includegraphics[autoebb, scale=0.6]{./img/result/features_combination.pdf}
\label{fig:features_combination}
\end{table}

Excelの表をawktex用に変換する

Excelの表をターミナルで簡単にtex用に変換するにはawkを使うのが便利! awkで扱うにはまず、ExcelからTeXで使いたい部分の表をコピーしてテキストファイルに保存。 具体的には、↓みたいな感じのテキストファイルを作成する。

1       0.01    0.085
2       0.018   0.075
3       0.015   0.09
4       0.015   0.085
5       0.02    0.08

それぞれの列の間に&を挟み,行末に\\ \hlineを挟む場合は↓のようにすればOK

$ awk '{ print $1 " & "$2 " & " $3 " \\\\ \\hline"}' 入力ファイル名
1 & 0.01 & 0.085 \\ \hline
2 & 0.018 & 0.075 \\ \hline
3 & 0.015 & 0.09 \\ \hline
4 & 0.015 & 0.085 \\ \hline
5 & 0.02 & 0.08 \\ \hline


箇条書き

箇条書きにはeasylistパッケージというものを使うと本当に便利です。

参考:LaTeXでの箇条書き作成は easylist パッケージが便利

\begin{easylist}[itemize]
@ アジア
@@ モンゴル
@@ パキスタン
@ アフリカ
@@ エジプト
@@ ケニア
@ ヨーロッパ
\end{easylist}

これで箇条書きが出来る。ちなみにitemizeだけでなく↓にも対応!

  • enumerate
  • tractatus
  • checklist
  • booktoc
  • articletoc


ソースコード

ソースコードはjlistingsで綺麗に表示できる。

\lstinputlisting[caption=サンプル,label=sample]
{src/sample.java}


数式

数式関係は分からなくてもだいたい↓のWebアプリを使えばなんとかなる.

\begin{align}
e=n\frac{\Delta \phi}{\Delta t}
\end{align}

\( e=n\frac{\Delta \phi}{\Delta t} \)

\begin{subnumcases}{f(x)=\label{f(x)}}
1/3 & $x = 0$;\\
2/3 & $x = 1$;\label{.6666}\\
0 & その他の$x$.
\end{subnumcases}

f:id:nwpct1:20140107010851p:plain

詳しくはこちら

記号一覧

比較演算子
記号 LaTeX 記号 LaTeX
\( \neq \) \neq \( \simeq \) \simeq
\( \gg \) \gg \( \ll \) \ll
\( \geq \) \geq \( \leq \) \leq
\( \propto \) \propto


括弧
記号 LaTeX
( x ) \left( x \right)
{ x } \left{ x \right}
| x | \left| x \right|


よく使うギリシャ記号
記号 LaTeX 記号 LaTeX
\( \alpha \) \alpha \( \beta \) \beta
\( \gamma \) \gamma \( \Gamma \) \Gamma
\( \theta \) \theta \( \Theta \) \Theta
\( \pi \) \pi \( \Pi \) \Pi
\( \phi \) \phi \( \Phi \) \Phi
\( \psi \) \psi \( \Psi \) \Psi
\( \sigma \) \sigma \( \Sigma \) \Sigma
\( \omega \) \omega \( \Omega \) \Omega
\( \varphi \) \varphi \( o \) o
\( \chi \) \chi \( \nu \) \nu
\( \epsilon \) \epsilon \( \Delta \) \Delta
\( \zeta \) \zeta \( \eta \) \eta
\( \lambda \) \lambda \( \xi \) \xi
\( \rho \) \rho \( \tau \) \tau


参考文献

% 参考文献の参照は↓のような書き方。
・・・・・・・。\cite{book}


% ↓の文章を最後につける。
\begin{thebibliography}{9}
\bibitem{book} 著者 :
\newblock 本のタイトル
\newblock 出版社,2012.
\bibitem{google} Google:
\newblock \small{\url{http://google.com}}.
\newblock 2014年1月8日現在.
\end{thebibliography}
\end{document}

参考書籍の探し方

学校の授業のレポートで参考文献を書かないといけないけど,Googleで見つからない時に探す方法

  1. Google Booksで検索
  2. 英語で検索
  3. 情報系の課題ならLPI-JAPANのサイト内で検索(「検索キーワード site:http://www.lpi.or.jp/」)


便利なWebサービス

Excelの表をLaTeX用に変換

僕はawkを使って処理することが多いのですが、知り合いはWebサービスを利用する人が多いようです。↓のようなサービスが便利らしいです。

[改訂第6版] LaTeX2ε美文書作成入門

[改訂第6版] LaTeX2ε美文書作成入門

数式を画像で表示してくれる

これはかなり使い勝手の良いサービス。 画像の形式も10種類から選べる。