LaTeX覚書その3
のマクロを用いて\sectionの番号部分を変更する
問題と解決
- \sectionを使うと番号の部分が1,2,3...と表示される
- これを例えば問題1,問題2,問題3としたいときどうするか
- 最近覚えたのマクロを使って解決する
のマクロを使ってなんとかしてみる
とりあえず覚えたてなので俺の知ってるコマンドだけでなんとかしてみる。
\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を使うときでも番号がカウントされない
というわけで調べました。
のマクロコマンドに\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に変わるのコンパイルスクリプト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
の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}