Chapter 7

Latex

Subsections of Latex

Commonly used commands

よく使うものをとりあえずメモ

プリアンブル

Packages

\documentclass[dvipdfmx]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx]{color}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{ascmac}
\usepackage{comment}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{here}
\usepackage{listings,jvlisting}
\usepackage{bm}
\usepackage{multicol}
\usepackage[square,sort,comma,numbers]{natbib}
\usepackage[subrefformat=simple]{subcaption}%サブキャプションを付けたいときに必要

gnuplotでlatex形式の数式を表示するための設定

% \usepackage{gnuplot-lua-tikz}
% \usepackage{tikz}

algorithm (疑似コード) の表示の設定

\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

### 参考文献の文献番号の表示形式を変更
\makeatletter%再定義に@が使用される場合に\makeatletterと\makeatotherで挟む
\def\@cite#1{\textsuperscript{#1)}}%引用文献の文献番号の表示方法を変更
\def\@biblabel#1{#1)}%参考文献の先頭も変更
\makeatother

文献番号等の色やリンクの設定

\usepackage[dvipdfmx]{hyperref}
\hypersetup{% hyperrefオプションリスト
    setpagesize=false,
    bookmarksnumbered=true,%ブックマークを作成
    bookmarksopen=true,%ブックマークを開く
    colorlinks=true,%カラーリンクを使用
    linkcolor=black, %内部参照リンクカラー
    citecolor=blue, %文献カラー
    % filecolor=, %ローカルファイル参照リンクカラー
    urlcolor=blue,
}

program(c言語)の記述形式についての設定

\renewcommand{\lstlistingname}{program}
% %c言語の設定 気に入ってる方
\lstset{
    language=c,
    basicstyle={\ttfamily\small},
    tabsize=2,
    frame=trBL,
    numbers=left,
    numberstyle={\ttfamily\small},
    breaklines=true,
    captionpos=t
    %キャプションを一番下にするならcaptions=b
}

jsreportでchapterの改行を削除する設定

% chapterの改行を削除
\makeatletter
\def\@makechapterhead#1{%
    \vspace*{2\Cvs}% 欧文は50pt
    {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
    \huge\headfont \@chapapp\thechapter\@chappos
    %% \par\nobreak
    %% \vskip \Cvs % 欧文は20pt
    \fi
     \interlinepenalty\@M%先頭の空白で、章とチャプター名の間に空白が挿入される
    \huge \headfont #1\par\nobreak
    \vskip 3\Cvs}
} % 欧文は40pt
\makeatother

In document

bibtexの表示

\bibliographystyle{junsrt}
\nocite{*}
\bibliography{reference}

Problem

グラフが記述した位置に正しく出力されない

もとのやり方

\begin{figure}[h]
\end{figure}

このやり方では画像を連続して出力する場合などにテキストの最後にまとめて出力されてしまう。

解決法

usepackage{here}
\begin{figure}[H]%[H]オプションで記述した位置に強制的に出力する
\end{figure}

参考

TeXで図をコード記述位置に強制的に出力する

図表番号が正しく表示されない。

問題点

\begin{figure}[H]
\label{graph3_4}
    \begin{center}
        \scalebox{0.9}{\input{kadai3_4_graph.tex}}
        \caption{$\alpha = 1/4 $における分散$\langle x(t)\rangle$と時間$t$の関係}
    \end{center}
\end{figure}

\begin{figure}[h]
\label{graph3_2}
    \begin{center}
        \scalebox{0.9}{\input{kadai3_2_graph.tex}}
        \caption{$\alpha = 1/2$における分散$\langle x(t)\rangle$と時間$t$の関係}       
    \end{center}
\end{figure}
    
\begin{figure}[h]
\label{graph3_1}
    \begin{center}
        \scalebox{0.9}{\input{kadai3_1_graph.tex}}
        \caption{$\alpha = 1$における分散$\langle x(t)\rangle$と時間$t$の関係}
    \end{center}
\end{figure}

\ref{graph3_4}, \ref{graph3_2}, \ref{graph3_1}

と書くと図4, 4, 4と出力されてしまう

解決法

captionの中にlabelをかく

\begin{figure}[H]
    \begin{center}
        \scalebox{0.9}{\input{kadai3_4_graph.tex}}
        \caption{$\alpha = 1/4 $における分散$\langle x(t)\rangle$と時間$t$の関係\label{graph3_4}}
    \end{center}
\end{figure}

参考

References

LaTeXでの参考文献の書き方

\begin{thebibliography}{99}
\bibitem{参照ラベル名1} 文献情報
\bibitem{参照ラベル2名} 文献情報
......
......
\end{thebibliography}

このように記述してタイプセットすると、文献番号が\bibitemの登録順に[1], [2], [3], … のように表される。

本文中で文献情報を参照するには次のように記述する

....といったことが指摘されている\cite{ラベル名a}\cite{ラベル名b}

これをタイプセットすると....といったことが指摘されている[6][9]のように表示される。

文中で文献番号だけでなくページ数などをオプション表示させるには次のように記述する。

....といったことが指摘されている
\cite{ラベル名a}\cite[第3章127ページ]{ラベル名b}。

引用を上付き右カッコで表示する

LaTeXの引用表示を[xxx]ではなくxxx)にする方法。プリアンブルに次のように書く。

\makeatletter
\def\@cite#1{\textsuperscript{#1)}}
\makeatother

他にいろいろ変えたければ、\textsuperscript{#1)}の部分を編集する (#1が冒頭に出てきたxxxにあたる)。 参考文献一覧の先頭も同様にに変えたい場合、プリアンブルの\makeatletter~\makeatother中に次のように書く。

\def\@biblabel#1{#1)}

\makeatleter, \maketotherとは?

また,再定義するマクロの名前や再定義の内容に @ が現れる場合は,次のように再定義全体を \makeatletter\makeatother で挟んでおく必要がある.

\usepackage{foo}
\makeatletter
\renewcommand\bar{... 20pt ...}
\makeatother

参考

bibtex の使い方

  1. .bib拡張子のファイルを用意し、内容を記述

    % 論文の場合
    @article{hoshino2019,
        author  = {Hikaru Hoshino and Yoshihiko Susuki and T. John Koo and Takashi Hikihara},
        journal = {Journal of Dynamic Systems, Measurement, and Control},
        title   = {Structural Analysis and Control of a Model of Two-Site Electricity and Heat Supply},
        year    = {2019},
        volume  = {141},
        number  = {10},
        pages   = {101004},
        doi     = {10.1115/1.4043703},
    }
    % 本の場合
    @book{biggar2014,
        author    = {Darryl R.Biggar and Mohammad Reza Hesamzadeh},
        title     = {The Economics of Electricity Market},
        publisher = {John Wiley & Sons},
        isbn      = {9781118775752},
        year      = {2014},
    }
    
  2. 本文中の参考文献を出力したい一に以下の記述を追加

    \bibliographystyle{junsrt} %参考文献出力スタイル
    \bibliography{hoge} %hoge.bibから拡張子を外した名前
    

    なお、参考文献出力スタイル(bibliographystyle)には主に以下のスタイルがあります。

    欧文用 和文用 特徴
    plain jplain 参考文献をアルファベット順で出力する
    unsrt junsrt 参考文献を引用された順で出力する

参考

Bulletins in latex

記号付き箇条書き

 見出し記号付きの箇条書きをするためには¥itemizeを使用する。

【入力例】

¥begin{itemize}
  ¥item aaa
  ¥item bbb
  ¥begin{itemize}
    ¥item ccc
  ¥end{itemize}
  ¥item ddd
¥end{itemize}

【出力例】

・ aaa
・ bbb
    - ccc
・ ddd

itemizeのマークの変更

 itemizeを入れ子にすると、各項目の見出しとなる記号が変化する。 これらの記号は、クラスファイルのなかで次の命令に定義されている。

レベル 命令 デフォルト
¥labelitemi
¥labelitemii
¥labelitemiii
¥labelitemiv

【入力例1】itemizeの第1レベルの見出し記号を”○”に変更

¥renewcommand{¥labelitemi}{○}
  ¥begin{itemize}
    ¥item マークが変わった!
  ¥end{itemize}

【出力例1】

○ マークが変わった!

【入力例2】見出し記号を1つだけ”○”に変更

¥begin{itemize}
  ¥item 普通のマーク
  ¥item[○]マークが変わります
¥end{itemize}

【出力例2】

・ 普通のマーク
○ マークが変わります

番号付き箇条書き

 見出し番号付きの箇条書きをするためには¥enumerateを使用する。

【入力例】

¥begin{enumerate}
  ¥item aaa
  ¥begin{enumerate}
     ¥item bbb
     ¥begin{enumerate}
        ¥item ccc
     ¥end{enumerate}
  ¥end{enumerate}
  ¥item ddd
  ¥item eee
¥end{enumerate}

【出力例】

1. aaa
    (a) bb
        i. ccc
2. ddd
3. eee

enumerateの番号の変更

 enumerateの番号の出力形式を変更するには、カウンタの値を出力する命令を定義し直す。

レベル カウンタ 出力する命令 デフォルトの出力
enumi ¥theenumi アラビア数字(1,2,3,・・・)
enumii ¥theenumii 小文字のアルファベット(a,b,c,・・・)
enumiii ¥theenumiii 小文字のローマ数字(小文字のローマ数字(ⅰ,ⅱ,ⅲ,・・・)
enumiv ¥theenumiv 大文字のアルファベット(A,B,C,・・・)

【例】¥enumiカウンタを大文字のローマ数字で出力する設定

¥renewcommand{¥theenumi}{¥Roman{enumi}}

番号の出力形式

命令 出力形式
¥arabic アラビア数字(1、2、3、・・・)
¥roman ローマ数字(ⅰ、ⅱ、ⅲ、・・・)
¥Roman ローマ数字(Ⅰ、Ⅱ、Ⅲ、・・・)
¥alph アルファベット(a、b、c、・・・)
¥Alph アルファベット(A、B、C、・・・)

見出し語付き箇条書き

 見出し語付きの箇条書きをするためには¥descriptionを使用する。

【入力例】

¥begin{description}
  ¥item[日時] ○月○日
  ¥item[場所] どこか
  ¥item[時間] ○時○分
  ¥end{description}

【出力例】

日時 ○月○日
場所 どこか
時間 ○時○分

参考

Figure

\begin{figure}[位置指定]
\centering
\includegraphics[オプション]{ファイル名}
\caption{図のタイトル\label{ラベル}
\end{figure}

.tex拡張子の図を挿入するときは次のように記述する

\begin{figure}[H]
\centering
\scalebox{0.6}{\input{ファイル名}}
\caption{図のタイトル\label{ラベル}}
\end{figure}

位置指定

位置指定 出力場所
h 記述した部分
t ページの上部
b ページの下部
p 独立したページ

オプション

オプション指定 指定方法
keepaspectratio 縦横の比を維持
scale 図のサイズの変更(例:scale=0.7)
width 横幅の指定(例:width=130mm)
height 高さの指定(例:height=60mm)
angle 回転角の指定(例:angle=90)
origin 回転角の時の原点,c:中心,tl:左上,tr:右上,bl:左下,br:右下(例:origin=c)
draft 図が入る枠だけ表示
clip BoundingBoxからはみ出た分を切り取る

複数枚のグラフを横に並べて表示

figure の中で minipage を使って,画像一つ分の領域を確保してから includegraphics を使う. \linewidth, \textwidth などを使って領域の幅を調整する. subcaption を使う時は,大抵プリアンブルに次のように書くとよい.

\usepackage[subrefformat=parens]{subcaption}

subcaption パッケージが使用しているスタイルと競合する場合は諦めて, (a)や(b)などの文字を直接打ち込んで挿入する. 以下は1行2列で2つの画像を挿入する例.

% --- Figure ------------------------------
\begin{figure}[H]
\begin{tabular}{cc}
  % -- (a) --
  \begin{minipage}{0.45\linewidth}
    \centering
    \includegraphics[keepaspectratio, scale=0.6]{fig/a.pdf} 
    \subcaption{1つめ}
  \end{minipage}
  % ---------

  % \vspace と \hspace を駆使して間隔を調節

  % -- (b) --
  \begin{minipage}{0.45\linewidth}
    \centering
    \includegraphics[keepaspectratio, scale=0.6]{fig/b.pdf}
    \subcaption{2つめ}

  \end{minipage}
  % ---------

  %% main caption
  \caption{Hogehoge}
  \label{fig:1}  
\end{tabular}
\end{figure*}
% -----------------------------------------

\minipage を応用すれば任意の配置で図を置くことができる. \subcaption{} は minipage の中に必ず入れないといけない点に注意. 入れなかった場合,普通の caption が図Xでなくて (c) 等になってしまう.

参考

Table

表の書き方

\begin{table}
   \label{ラベル名}
   \centering
   \caption{表題}
   \begin{tabular}{|c|c|c|}%3列で表示、列と列の間に縦罫線を引く
      \hline
      西暦 & 測定者 & 測定方法 & 測定結果 \\
      & & & $\times 10^8$ [m/sec] \\
      \hline \hline
      1638 & Galileo & 二人が離れてランプの光を見る & (音速10倍以上) \\
      1675 & Roemer & 木星の衛星の観測から & 2 \\
      \hline
   \end{tabular}
\end{table}

コマンド

コマンド 概要
\hline 横罫線を引く ※2回かけば2つ横罫線が引かれる
\multicolmn{横に結合するマスの数}{表示形式、|c|等}{文字} 横に並んだ表の要素を結合する
\cline{3-5} 任意の列に横罫線を引く(ここでは3列目から5列目に横罫線を引く)

packageを用いた表作成

概要 コマンド 備考 package
セルの結合(縦) \multirow{結合要素数}{*}{文字} 縦に並んだ表の要素を結合 multirow
幅を指定した横罫線 \toprule[] 表の最上部の横罫線を引きます.は線幅です.線幅を設定しないデフォルトを強く推奨します. booktabs
横罫線(列見出しと本文、幅指定) \midrule[] 列見出しと本文の間に横罫線を引きます. booktabs
横罫線(表の最下部、幅指定) \bottomrule[] 表の最下部の横罫線を引きます. booktabs
任意の行への縦罫線 \cmidrule{a-b} a 行目から b 行目まで罫線を引きます.trim の設定(lr)を強く勧めます. booktabs
行間スペース \addlinespace[] 行間にスペースを挿入します. booktabs
二重罫線(\cmidrule) \morecmidrules \cmidrule を二重罫線にするときに使います.他の罫線 (\toprule, \midrule, \bottomrule) では不要です. booktabs
スペースありの罫線 \specialrule{}{}{} 上下にスペースを挿入した罫線を引きます.これを使う場合,三つの引数が必須です. booktabs

※<wd>は幅指定(pt,em, cmなど)

※「」は線のトリミングの指定です.「(lr)」とすると,列の幅より少し短い罫線になります.格好良い罫線が引きますので,このオプションをつけることを強く推奨します.「l{-2.3mm}r{3.4mm}」のようにすると,罫線を左側に 2.3 mm 伸び,右側に 3.4 mm 短くなります.

※「」と「」は,罫線上下の空白の幅を指定します.幅指定は (1pt, 0.5em, 1.2mm) のようにします.

tabularの設定パラメータ

パラメータ 動作 備考
l 左詰(left)
r 右詰
c センタリング 引き続くブロックのセンタリング指定
p{長さ} 上/左詰めの幅指定カラム(paragraph)
m{長さ} 中/左詰めの幅指定カラム(middle) arry.styが必要
b{長さ} 下/左詰めの幅指定カラム(bottom) arry.styが必要
@{文字列} 文字列がセパレーターになる
` ` 縦線(1本)
` `

参考文献

Basic

LaTexコマンド集

概要 コマンド 詳細 パッケージ
文字サイズの変更 \scalebox{倍率}{文字} 特定の文字やtexファイルを<倍率>倍にして出力する。{倍率}の部分を{幅}[高さ]のようにかき分けてもOK! graphics
行間の調整 \begin{spacing}{倍率} 文章 \end{spacing} 指定した倍率に行間を変更する setspace
部分的に2段組みにする \begin{multicols}{2} 2段組にしたい文章 \end{multicols} 2のところをかえれば多段組にできるかも(?) multicol

特殊文字

表示 コマンド 概要
{\AA} 数式環境以外で単位を表示する。ただし数式中では\mathrm{\mathring{A}}とするか\mathrm{\AA}とする。

文字サイズ

コマンド 標準を10ptとしたときの大きさ
\tiny 5pt
\scriptsize 7pt
\footnotesize 8pt
\small 9pt
\normalsize 10pt
\large 12pt
\Large 14.4pt
\LARGE 17.28pt
\huge 20.74pt
\Huge 24.88pt

数式環境

環境名 環境 パッケージ 特徴
equation \begin{equation}\end{equation} 1行の数式を記入でき、数式番号がつく
equation \begin{equation*}・・・ amsmath equation環境とほとんど同じだが、数式番号がつかない
eqnarray \begin{eqnarray} 数式 $=$ 数式\数式 $=$ 数式\end{eqnarray} 複数行の数式を、$で挟んでいるをそろえて表示する。※数式番号は各行に表示されるが、\nonumberを使用してはならない。
eqnarray \begin{eqnarray*}・・・ 数式番号がつかない
split \begin{split} 数式 $= 数式 数式 $= 数式\end{split} amsmath eqnarray環境の代替。equation環境の中で使用し、&=をそろえて表示し、数式番号は複数行の中間に一つだけ表示する
align \begin{align} 数式 $= 数式\・・・ amsmath {&= で数式の=をそろえて表示し、数式番号を各行ごとに表示する。
align \begin{align*}・・・ amsmath 数式番号がつかない
aligned \begin{aligned}・・・ amsmath equation環境内で使用でき、一部分のみalign環境にすることができる
gather \begin{gather}・・・ amsmath 複数の数式を中央揃えで表示し、各行ごとに数式番号をつける

数式表示

コマンド パッケージ 概要
\bm{a} bm 括弧内の文字をベクトル(太字)で表示する
\label{数式のラベル} 数式にラベル付けできる。数式の数式番号やページ数を呼び出すときに使用する。数式環境下で使用する
\ref{ラベル名} 数式につけた式番号をラベル名を指定することで表示できる
\frac{分子}{分母} 分数表示
\int_{上限}^{下限} 積分表示
\left<括弧なら何でも>・・・\right<括弧> 括弧のサイズを括弧内の数式に自動で合わせる
\hspace{50pt} { }内に指定した幅の文だけスペースを生成。使用できる単位は「pt」「pc」「mm」「cm」
\; または \: または \, 空白を生成。左に行くにつれて大きくなる
\begin{pmatrix} a11 & a12 & a13\\\\ a21 & a22 & a23 \\\\ \end{pmatrix} amsmath 行列
\begin{vmatrix} a11 & a12 & a13\\\\ a21 & a22 & a23 \\\\ \end{vmatrix} amsmath 行列式
\cdot どっと(中央)
\cdots 3点ドット(中央)
\vdots 縦の3点ドット
\ddots 斜めの3点ドット

ギリシャ文字

**ギリシャ文字を使用する場合にも数式環境下で記述する必要がある。

出力 入力 出力 入力 出力 入力
α \alpha β \beta γ \gamma
δ \delta ϵ \epsilon ε \varepsilon
ζ \zeta η \eta θ \theta
ϑ \vartheta ι \iota κ \kappa
λ \lambda μ \mu ν \nu
ξ \xi o o π \pi
ϖ \varpi ρ \rho ϱ \varrho
σ \sigma ς \varsigma τ \tau
υ \upsilon ϕ \phi φ \varphi
χ \chi ψ \psi ω \omega
Γ \Gamma Λ \Lambda Σ \Sigma
Ψ \Psi Δ \Delta Ξ \Xi
Υ \Upsilon Ω \Omega Θ \Theta
Π \Pi Φ \Phi \sum
\prod

数学記号

出力 コマンド
\mathrm{\mathring{A}}
₁P₂ {}_1P_2
\leq
\geq
\in
± \pm
\simeq
\cdot
\partial
分数 frac{分子}{分母}
\nabla
Δ(デルタ,ラプラシアン) \Delta
\equiv
期待値の記号<> \langle, \rangle
$\rm{I\hspace{-.01em}I}$
A(数式中で斜体表示を解除) \rm{A}
A(行列を表すA,太字かつ斜体無し) \mathbf{A}

Vebatim環境内での数式表示

Verbatim環境内で数式を使う場合は**プリアンブルに\usepackage{fancyvrb}**と記述し、以下のようにドキュメント内に書く。

\begin{spacing}{0.8}
    \begin{Verbatim}[commandchars=\\\{\}, codes={\catcode`$=3\catcode`_=8\catcode`^=7}]
 $\sum_[i=1]^[n]M_i$
\end{Verbatim}
\begin{Verbatim}[%frame=single, numbers=left, commandchars=\\\{\},codes={\catcode`$=3\catcode`_=8\catcode`^=7}]
$f(x) = \frac{1}{x}
\end{Verbatim}

※どちらがいいのかわからない…

アルゴリズムの擬似コード

ソースコード

図の挿入(input)

表紙テンプレ

参考文献