概要

TeX 文書の作成やら PDF 文書の生成やらに関する事.

古い記述があると思う.以下が現在 (データ移行日: 2008-05-24) も有効な方法なのかはいちいち確認していない.最近は TeX 書かないし.

Table of Contents

PDF 文書にしおりを付加

基本

TOC (Table Of Contents) をしおりにするには,プリアンブルに以下を追記する (但し,オプションには個人的な好みが入っている).

\usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,bookmarkstype=toc,colorlinks=true,linkcolor=blue]{hyperref}
% EUC-JP 処理系の場合
\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}
% Shift_JIS 処理系の場合
% \AtBeginDvi{\special{pdf:tounicode 90ms-RKSJ-UCS2}}

注意点

  • PDF の生成には dvipdfm(x) を用いる必要がある.
  • しおりに追加される文字列 (\section{} の文字列など) には,テキスト装飾は利用できない.代わりに以下のように書く.
    \section{\texorpdfstring{TeX用文字列(装飾可)}{PDF用文字列(装飾不可)}}
  • しおりがない場合に比べ,1 回多くタイプセットする必要がある.

参考 URI

DVI/PS/PDF 生成 Makefile

基本

下記のような Makefile を作成し,生成元の TeX ファイルと同階層の位置に置く.

# Makefile for hoge.tex

.PHONY:    all dvi ps pdf clean distclean
.SUFFIXES: .tex .aux .bbl .dvi .ps .pdf

LATEX  = platex
BIBTEX = jbibtex
DVIPS  = dvips
DVIPDF = dvipdfmx
RM     = rm

TARGET  = hoge
FIGURES = figure1.eps figure2.eps

all: dvi ps pdf
dvi: $(TARGET).dvi
ps:  $(TARGET).ps
pdf: $(TARGET).pdf
clean:
	$(RM) -f *~ *.aux *.toc *.lot *.lof *.log *.bbl *.blg
distclean:	clean
	$(RM) -f *.pdf *.ps *.dvi

.tex.aux:
	$(LATEX) $*
.aux.bbl:
	$(BIBTEX) $*
.tex.dvi:
	$(LATEX) $*
	$(LATEX) $*
	$(LATEX) $*
.dvi.ps:
	$(DVIPS) $*
.dvi.pdf:
	$(DVIPDF) $*

$(TARGET).aux: $(TARGET).tex
$(TARGET).bbl: $(TARGET).tex $(TARGET).aux
$(TARGET).dvi: $(TARGET).tex $(TARGET).bbl $(FIGURES)
$(TARGET).ps:  $(TARGET).dvi
$(TARGET).pdf: $(TARGET).dvi

利用するには以下の通り (# 以降はコメント).

$ make dvi        # DVI ファイルのみ生成
$ make ps         # DVI/PS ファイルを生成
$ make pdf        # DVI/PDF ファイルを生成
$ make            # DVI/PS/PDF ファイルを生成
$ make clean      # ログファイルなどを削除
$ make distclean  # 上記に加えて DVI/PS/PDF ファイルも削除

注意点

  • 変数 TARGET には,生成元の TeX ファイル名 (拡張子なし) を指定する.
  • 変数 FIGURES には,挿入する画像ファイル名をスペース区切りで指定する.
  • 使用するコマンド (dvipdfm など) を変更すると,それに合わせてファイル依存関係を修正しなければならない場合がある.
  • 3 回タイプセットするのは,相互参照解決と目次 (または しおり) 生成のため.
  • \cite を一度も使っていない文書の場合,.aux.bbl の次の行をコメントアウトしてタイプセットする必要がある.
    • そういう文書の場合はどう対処するのが (jBibTeX での) “正解” なんだ ?

参考 URI

verbatim 環境を利用した別の環境の定義

基本

例えば次のように code 環境を定義する.

\usepackage{verbatim}
\newenvironment{code}%
 {\quote \setlength{\baselineskip}{12pt} \verbatim}%
 {\endverbatim \endquote}

利用するには以下の通り.

\begin{code}
#include <iostream>
int main(int argc, char** argv)
{
    return 0;
}
\end{code}

注意点

  • verbatim パッケージ必須.
  • \verbatim, \endverbatim の代わりに \begin{verbatim}, \end{verbatim} を用いるとタイプセット時にエラーが生じる.
  • 行末には % をつけておいた方が良い様子.浅学のため理由は不明.

参考 URI

URL 文字列を適切に表示する

基本

プリアンブルに以下を書く.

\usepackage{url}
% \renewcommand{\url}{\begingroup \def\UrlLeft{URL:<} \def\UriRight{>} \urlstyle{tt} \Url}
% \renewcommand{\url}{\begingroup \urlstyle{tt} \Url}  % 上との違いは好みの問題.
\urlstyle{sf}  % フォントを変えるだけならこれだけで良い.

あとは使うだけ.

\url{http://www.example.com/~user/my_script.cgi?cmd=show#anchor}

注意点

  • url.sty 必須.
  • URL 文字列中の記号もそのまま入力して良い.チルダをわざわざ \textasciitilde と入力し直す なんて事をしなくて済む.
  • URL 文字列が長すぎる場合は自動的に適切な箇所 (例えばスラッシュの直後) で改行してくれる.

参考 URI

jsarticle で 10pt 以外の文字サイズを指定した場合の geometry の振る舞い

基本

\documentclass[a4paper,12pt]{jsarticle}
\usepackage{geometry}

とすると,本文が用紙からはみ出したような状態になるため,以下のように用紙サイズを明示的に指定する必要がある.

\documentclass[a4paper,12pt]{jsarticle}
\usepackage[papersize={210truemm,297truemm}]{geometry}

xdvi(k) の表示に用いられるフォントを変更する

基本

/usr/share/texmf/xdvi/vfontmap を編集するだけで良い様子.

いつからかは不明だが /var/lib/texmf/xdvi/vfontmap の方になっていた.(Gentoo, GCC 4.1.1, ptex-3.1.8.1_p20050418)


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS