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.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
は併用できない.
そこで,黒魔術を使ってフォントの入れ替えを行う.
- formatting - LaTeX lstlisting not highlighting keywords when basic style is ttfamily - Stack Overflow
- latex - How do I emphasize parts of an lstlisting? - Stack Overflow
% 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}