LaTeXチートシート(2)

はじめに

参考文献 bibtex

ACMのbibtexでエラー

対処方法

  • doiを消す
  • seriesを消す
  • urlを消す

bibtexでURL

bibitex使ってURL貼り付ける方法

@Misc{Weisstein,
  author = "Weisstein, Eric W.",
  title = "Delta Function",
  note = "A Wolfram Web Resource (2017年2月8日閲覧)",
  howpublished = "{\url{http://mathworld.wolfram.com/DeltaFunction.html}}",
}

\usepackage{url} の追加は必須

newblock~エラー出たら下記を追加

\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}

参考資料:

URLを貼り付ける方法

URLはどうしても無い場合に限って使うべきです!!

LaTeXでURLを書く - 0032

url.sty を使う場合

LaTeX 2e の多くの環境では url.sty が使える.

\usepackage{url}
\url{http://www.ss.iij4u.or.jp/~sassano/ja/log/}

参考文献の参照をまとめて表記

[1],[2],[3][1,2,3] にする

% これを追記する
\usepackage{cite}

\cite{paper:LCFG, paper:lucie, paper:grid_system_install}

参考資料

箇条書き

\begin{description}
    \item[マグロ]\mbox{}\\
    ほげほげほげほげ
    \item[カツオ]\mbox{}\\
    ほげほげほげほげ
    \item[サンマ]\mbox{}\\
    ほげほげほげほげほげ
\end{description}

http://www.shaco-o.com/latex-itemizeenumerate

captionとlabelの順序を変えると,番号が狂うことがあるので注意する(実体験)

\begin{table}[htb]
    \caption{1ツイートに含まれる要素}
    \label{tab:tweet}
    \centering
    \begin{tabular}{|l|l|ll}\hline
        要素名 & 説明 \\\hline
        text & ツイートの本文 \\
        date & ツイートの日時 \\
        retweets & リツイートされた数  \\
        favorites & お気に入りに追加された数 \\
        hashtags & "\#"から始まるタグ \\
        geo & 地理情報が付与されていた場合の緯度経度\\ \hline
    \end{tabular}
\end{table}

参照する時は ref{tab:tweet} を使う.

表を楽につくる

表作成が楽にできるやつ

LaTeXの表を生成できるサイトTables Generator - muscle_keisukeの日記

画像

\usepackage[dvipdfmx]{graphicx}
\usepackage[dvipdfmx]{color}

\begin{figure}[htbp]
    \includegraphics[scale=0.3]{figures/software.png}
    \caption{ソフトウェア構成図}
    \label{fig:software}
\end{figure}

画像を横幅ぴったりに貼りたい時は,width=\linewidth を指定する.

\includegraphics[width=\linewidth]{hoge.eps}

texで文章の幅に合わせて画像を貼りたい - odenのメモ帳

記号

丸数字

①のような丸数字を使いたい場合は1の部分の数字を書き換えて使う

\textcircled{\scriptsize 1}

数式

基本的な書き方はチートシートを参照.

% 数式
\usepackage{amsmath}
\usepackage{amsfonts}

\begin{equation} \label{eq-nodes}
    \mathbb{N} = \{n_i \mid 1 \le i \le  N'\}
\end{equation}

\ref{eq-nodes}に示す.

数式内に日本語を入れる場合

mbox{}を挟む. https://kmuto.jp/latex/node41.html

\mbox{カレー} = \mbox{人参} + \mbox{じゃがいも} + \mbox{玉ねぎ} + \mbox{豚肉}

余白

パラメータが数多くあるため注意する.

% 本文中の図の余白
\setlength\intextsep{0pt}
% 図とキャプションの間の余白
\setlength\abovecaptionskip{0pt}
% ページの上下に出力される図と図の間のスペース
\setlength\floatsep{0pt}
% ページの上下に出力される図と本文の間のスペース
\setlength\textfloatsep{5pt} %dbltextfloatsep
% ページの途中に出力される図と本文の間のスペース
\setlength\intextsep{5pt}
% 表の余白
\tabcolsep=1pt

出典

箇条書きの余白の構造

以下のサイトに余白を図で説明した箇所がある.

『数式組版』を組む技術:箇条書き|きえだゆうすけ(p_typo)|note

enumerateの行間を埋める

% enumerateの行間を減らす
\let\oldenumerate\enumerate
\renewcommand{\enumerate}{
    \oldenumerate
    \setlength{\itemsep}{1.2pt} % 項目(item)間
    \setlength{\parskip}{0pt} % リスト(itemize)の前後の段落間
    \setlength{\parsep}{0pt} % 項目(item)内の段落間
}

itemizeの行間を埋める

% itemizeの行間を減らす
\let\olditemize\itemize
\renewcommand{\itemize}{
    \olditemize
    \setlength{\itemsep}{1.2pt} % 項目(item)間
    \setlength{\parskip}{0pt} % リスト(itemize)の前後の段落間
    \setlength{\parsep}{0pt} % 項目(item)内の段落間
}

ソースコード

基本的な使い方 minted 【推奨】

\documentclass{article}
\usepackage{minted}  % これを入れる
\begin{document}

% コードを以下で書く.言語がない場合は python の部分に text を指定する.
\begin{minted}[frame=single, fontsize=\footnotesize, linenos]{python}
def is_contain_word(keyword, items):
    if keyword in items:
        return True
    return False
\end{minted}

\end{document}

基本的な使い方 listings 【非推奨】

\usepackage{listings, jlisting}
\begin{lstlisting}[caption=example-config.yaml, label=config]{}
juice:
  - apple
  - orange
  - grape
\end{lstlisting}

jlisting.styがない場合はアップロードする.

ソースコードを番号付きできれいに

\lstset{
    language={Python},
    basicstyle={\ttfamily},
    identifierstyle={\small},
    commentstyle={\smallitshape},
    keywordstyle={\small\bfseries},
    ndkeywordstyle={\small},
    stringstyle={\small\ttfamily},
    frame=single,
    breaklines=true,
    columns=[l]{fullflexible},
    numbers=left,
    xrightmargin=0zw,
    xleftmargin=3zw,
    numberstyle={\scriptsize},
    stepnumber=1,
    numbersep=1zw,
    lineskip=-0.5ex,
}

ソースコードのキャプション前の余白を小さく

\begin{lstlisting}[caption=ログの例, label=code1, columns=fullflexible, breaklines=true, aboveskip=0pt, belowskip=0pt]
23.92.36.0 - - [27/Oct/2020:20:23:11 +0900] "GET / HTTP/1.1" 200 612 "-" "Java/1.8.0_265"
\end{lstlisting}

二段組でソースコードのキャプションが崩れる場合

情報処理学会のテンプレートで崩れる場合がある.この場合の対処は以下を行う.

\usepackage{here}
\usepackage{listings, jlisting}[language=yaml]

\begin{figure}[H]
    \begin{lstlisting}[caption=example-config.yaml, label=config]{}
    \end{lstlisting}
\end{figure}

ログを1件載せる場合

スペースを入れることで改行する. 以下の例ではhttps://shop.our-internet-company.pl/p-3880.html?gclid=Cj0KCQiAw4jvBRCJARIsAHYewPNbsjLで改行している.

\usepackage{listings} %listing caption
\usepackage{jlisting}

\renewcommand\lstlistingname{プログラム}
\renewcommand\lstlistlistingname{プログラム}

\lstset{
    language={Python},
    basicstyle={\ttfamily},
    identifierstyle={\small},
    commentstyle={\smallitshape},
    keywordstyle={\small\bfseries},
    ndkeywordstyle={\small},
    stringstyle={\small\ttfamily},
    frame=single,
    breaklines=true,
    columns=[l]{fullflexible},
    numbers=none,
    xrightmargin=0zw,
    xleftmargin=3zw,
    numberstyle={\scriptsize},
    stepnumber=1,
    numbersep=1zw,
    lineskip=-0.5ex,
}
\begin{document}
\begin{figure}[ht]
\begin{lstlisting}[caption=アクセスログの例, label=lst:log]{}
1PL - 2019/11/30 23:00:00 GET /p-9710.html HTTP/1.1 200 14226  https://shop.our-internet-company.pl/p-3880.html?gclid=Cj0KCQiAw4jvBRCJARIsAHYewPNbsjL CAycxbJdVeMl_Q4qaH-5qh48gij96mitVce4INSRXhgRznyQaAg40EALw_wcB Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
\end{lstlisting}
\end{figure}
\end{document}

ソースコードの一部を強調

LaTeXのフォントは \ttfamily で等幅フォントになる.\bfseriesで太字になる. フォントの性質上 \ttfamily\bfseries は併用できない. そこで,黒魔術を使ってフォントの入れ替えを行う.

% bfseriesとttfamilyを併用する黒魔術
\DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}

\lstset{
    basicstyle={\ttfamily\small}, %書体の指定 [ここ重要]
    frame=single , %フレームの指定
    breaklines=true, %行が長くなった場合の改行
    breakatwhitespace=false,
    tabsize=2, %Tabを何文字幅にするかの指定
    numbers=left, % 行番号の表示(left, none)
    stepnumber=1, % 行番号の増加数
    emph={baz,foo}, % 強調したい文字列をカンマ区切りで渡す [ここ重要]
    emphstyle={\bfseries\small}, % 強調するときの書体の指定 [ここ重要]
    alsoletter={-|":}, % 記号が含まれる場合に単語として認識しない対策
    sensitive=false,  % case sensitive(大文字小文字を区別)の有無
}

listingやソースコードを別名に

以下は Algorithm を Code へ変更している.

\renewcommand\lstlistingname{プログラム}
\renewcommand\lstlistlistingname{プログラム}

latex - How to change title in listings? - Stack Overflow

小山の設定例

\lstset{
    basicstyle={\ttfamily\small}, %書体の指定
    frame=single, % フレームの指定
    breaklines=true, % 行が長くなった場合の改行
    breakatwhitespace=true, % 空白で改行
    breakindent=0pt, % 改行したときのインデント
    tabsize=2, % Tabを何文字幅にするかの指定
    numbers=none, %left, % 行番号の表示
    stepnumber=1, % 行番号の増加数
    framexleftmargin=6mm, % 行場号を枠内に表示
    numbersep=5mm, % 行番号と本文の間隔 10pt
    emphstyle={\bfseries\small}, % 強調のスタイル
    sensitive=false,
}

擬似コード

以下にまとめた.

algorithmicxを使いLaTeXに擬似コードを追加 - Qiita

脚注

I'm writing something here to test \footnote{footnotes working fine}

https://www.overleaf.com/learn/latex/Footnotes

図表を2段組み

ミニページ

\begin{figure}[htbp]
\begin{minipage}{0.5\hsize}
% 環境
\begin{center}
    \includegraphics[width=\linewidth]{images/evaluation-environment.png}
    \caption{Experiment environments.}
    \label{fig:evaluation-env}
\end{center}

\end{minipage}
\begin{minipage}{0.5\hsize}

% 測定の方法
\begin{center}
    \includegraphics[width=\linewidth]{images/evaluation-method.png}
    \caption{The way to measure the response time.}
    \label{fig:evaluation-method}
\end{center}

\end{minipage}
\end{figure}