LaTeX覚書その3

{\LaTeX}のマクロを用いて\sectionの番号部分を変更する

問題と解決

  • \sectionを使うと番号の部分が1,2,3...と表示される
  • これを例えば問題1,問題2,問題3としたいときどうするか
  • 最近覚えた{\LaTeX}のマクロを使って解決する

{\TeX}のマクロを使ってなんとかしてみる

とりあえず覚えたてなので俺の知ってるコマンドだけでなんとかしてみる。

\makeatletter
\newcommand{\Section}[1]{{%
        \newcount\@m
        \@m = 1
        \section*{問題 \the\@m #1}%
        \advance \@m by 1
}}%
\makeatother
\documentclass{jsarticle}
\begin{document}
\Section{ほげ}
\Section{ふが}
\end{document}

結果...失敗した
二回目に\Sectionを使うときでも番号がカウントされない
というわけで調べました。
{\LaTeX}のマクロコマンドに\refstepcounterなるものがあるらしい。
これがあるとコマンドを実行するたびに変数の値を一回カウントするという。しかも\labelによるラベル付と\refによる参照も可能である。 これを用いて書きなおすと次のような感じになった。

\makeatletter
\newcounter{m}
\setcounter{m}{0}
\newcommand{\Section}[2][]{{%
        \refstepcounter{m}#1
        \section*{問題 \arabic{m} #2}%
}}%
\makeatother
\documentclass{jsarticle}
\begin{document}
\Section[\label{hoge}]{ほげ}
\Section{ふが}
\end{document}

これできちんと番号がカウントされるようになった。

LaTeX覚書 その2

makeやomakeに変わる{\LaTeX}コンパイルスクリプトlatexmk

インストール手順

  • perlで書かれている
  • MacTeXや2009年以降のTeXLiveには標準で入っている
  • ない場合は以下のようにしてインストール
$ sudo apt-get install latexmk

環境設定

  • 設定は.latexmkrcファイルに書く
  • ~/.latemkrcファイルを作成
  • dviからpdfの変換にdvipdfmxをpdfを開くのにxdg-openを使う場合は次の設定
#!/usr/bin/env perl
$latex            = 'platex -shell-escape -synctex=1 -halt-on-error';
$latex_silent     = 'platex -shell-escape -synctex=1 -halt-on-error -interaction=batchmode';
$bibtex           = 'pbibtex';
$dvipdf           = 'dvipdfmx %O -o %D %S';
$makeindex        = 'mendex %O -o %D %S';
$max_repeat       = 5;
$pdf_mode     = 3; # generates pdf via dvipdfmx

$pvc_view_file_via_temporary = 0;

$pdf_previewer    = "xdg-open";

使い方

tex -> pdfへのタイプセット

$ latexmk hoge.tex
  • texからpdfへ変更してかつそれを監視(texが変更される度にpdfを更新)
  • 以下のコマンドを実行すると監視が始まるのでターミナル上で動くテキストエディタ以外を使う場合はそのままの状態でtexを編集
  • vi,vimを使う場合は別のターミナルウィンドウを開いて編集する
  • 監視を終えるにはCtrl+C
$ latexmk -pvc  hoge.tex

beamerの図挿入で図番号を出力する方法

  • 標準ではbeamerで図にキャプションを付けても図番号が表示されない
  • プリアンブルに以下を書き込むと表示される
\setbeamertemplate{caption}[numbered]
  • 図xや表yなどの表示にしたい場合は以下のように記述
\renewcommand{\figurename}{}
\renewcommand{\tablename}{}

LaTeX覚書 その1

{\LaTeX}のbeamerでxcolorを使う方法

  • listingsを用いてソースコードを載っける際にxcolorを使うことがある

  • しかしbeamerだとxcolorを次のように適用することができない

\usepackage[svgnames,dvipsnames]{xcolor}
  • beaemerでxcolorを使うときは\usepackage{}を使わずにbeamerのオプションとして次のように指定する
\documentclass[xcolor={svgnames,dvipsnames}]{beamer}

beamerのframe環境で使うオプションfragileについて

  • frame環境内でverbatim環境を使う場合はframe環境のオプションにfragileをつける必要がある
  • listing環境を使う場合も一緒である
  • 以下のように記述する
\begin{frame}[fragile]
\begin{vervatim}
...
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
\begin{lstlisting}[caption=hoge,label=fuga]
...
\end{lstlisting}
\end{frame}