雑記 - tex Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!TeX 関連の話

奥村先生のところの [[TeX Wiki|http://oku.edu.mie-u.ac.jp/~okumura/texwiki/]] に情報がたくさん集積されている。

以下、TeX 関連で調べたり試したこと備忘録(えてして書いたことを忘れちゃうんだよなぁ…)


!ebb
\usepackage[dvipdfm]{graphicx}
...
\includegraphics{aho.png}
という感じで、jpeg や png などの画像ファイルを張り込むことができる。
ただし、latex compile の前に画像のサイズ(bounding box)をあらかじめ調べる必要があり、以下のように
ebb aho.png
とかして、bb ファイルを作成しておくこと。

pdf も同じく貼り付けることができるが、ebb コマンドでは version 1.4 の pdf は bb ファイルを作成できない模様(↓)。
Version of PDF file (1.4) is newer than version limit specification.
Can't handle file type for file named aho.pdf
(蛇足:ebb は tetex に入っている。tetex-3.0 を調べた限りでは ebb は 2001 年から手が加えられていない。→ 今(2009年)の ebb は version 1.4 の pdf まで ok らしい。)

というわけで、何も考えずに Illustrator で pdf 出力すると version が対応してないかもしれないので注意す。

(追記)貼り付ける pdf ファイルの名前にも注意が必要。ファイル名の中にピリオド(.)が余計に含まれていると、latex コンパイル時に ebb ファイルを見つけることができずに失敗する。
例: aho-baka.pdf は大丈夫だけど、aho.baka.pdf みたいなのはダメ。(見事に嵌ってしまい小一時間悩みました)

!xbb
dvipdfm と dvipdfmx はかつて互換性があったらしい(よく知らない)が、今は互換性は無いらしい。で、 dvipdfmx の場合には、ebb じゃなくて xbb (extractbb) を使うとのこと。
  \usepackage[dvipdfm]{graphicx}
ebb (dvipdfm) は過去のモノっぽい。

!mediabb.sty
[[こちら|http://www.ma.ns.musashi-tech.ac.jp/Pages/TeX/mediabb.sty.html]]のページの mediabb.sty を使うと、bb ファイルを作らなくていいらしい。

(追記)mediabb.sty では特定の pdf しか扱えないなど制限があるし、extractbb を自動起動する方向っぽいので、[[mediabb は要らないんじゃないの?ということ|http://d.hatena.ne.jp/zrbabbler/20140803/1407089421]]らしい。

!Illustrator CS3 for Mac OS X で eps な図の編集テスト
TeX の原稿に図をはるために、Illustrator で図の eps ファイルを作るときの話。とりあえずテストしてみた事を列挙するが、作業環境によって異なる可能性あるので注意。

!!前準備
CM フォントを埋め込めるようにするため、あらかじめ Type1 の CM フォントをシステムに入れておいた。[[cm-type1.zip|http://ult.riise.hiroshima-u.ac.jp/~nagato/cm-type1.zip]]

Illustrator で作成した図は以下のようなもの
*矩形をスウォッチのベーシックテクスチャ(斜線とか水玉とか)で塗りつぶしたもの
*TeX による数式 eps を配置
*LaTeXiT による数式 PDFを配置
*数式の eps と PDF は、リンクしたものとリンクしてないもの配置
(補足)eps や pdf を Illustrator 作業ウインドウ上にドラッグした場合、それらはリンクになる。またファイルメニューの配置から「リンク」を外して配置した場合には非リンク(埋め込み)となる。なお、eps をドラッグしてリンク配置したものは、Illustrator 上では枠しか表示されないので注意。

なお、TeX による数式 eps は
\documentclass{article}
\pagestyle{empty}
\begin{document}
\[
   \int_0^\infty \sin\theta = \Gamma
\]
\end{document}
を dvi にしたのち
dvips -E -Ppdf a.dvi -o a.eps
のように作成した。

!!Illustrator で作成した図を eps に保存し、gv (on Linux) で表示してみる
作成した図形は TeX で利用する為に eps 形式で保存し他の環境(Vine Linux 4.2, Plamo 4.5)で gv で正しく表示されるか確認した。eps 保存時のオプションは「プレビュー無し」 &「 フォントは埋め込み」をデフォルトとし、さらに配置した画像を含める場合と含めない場合とを調べた。その結果、
*Illustrator3 eps 形式ではフォントを埋め込めないため、文字や数式がまともに表示されない。
*Illustrator10 eps, CS3 eps で保存すると、配置した画像を含める含めないに関わらずテクスチャ部分が今ひとつきれいに表示されない。文字や数式は全て正しく表示された。
*Illustrator8 eps 形式の場合、配置した画像を含めないオプションで保存したものは数式 eps & pdf をリンクにした部分のみ表示されず、画像を含めるオプションで保存したものは全て正しく表示される。
という結果。

というわけで、
*テクスチャとかを貼るのであれば、配置した画像を含めるにチェックを入れ、Illustrator 8 eps 形式で保存するのがよさそう。
*テクスチャとか貼らないのであれば、Illustrator 10 や CS3 の eps で保存するのが良さそう。

しかし、Illustrator のテクスチャの塗りつぶしは今一だなぁ。せっかくのベクトル画像なのに、テクスチャパターンの継ぎ合わせ部分が滑らかにつながっていない。。。Illustrator でテクスチャは使わない方がいい気がする。

!!作成した eps を tex に include して印刷してみる
作成した eps 単独での話は、以上の通り。これらの eps ファイルを includegraphics で埋め込み tex を作成し、dvipdfmx で pdf にしたものについては、ほぼ上述の状況と同じ。

「ほぼ」と書いたのは、作成した pdf ファイルをMac OS X 上の Preview.app で開いたところ、Illustrator 10&CS3 形式で作成した図の文字(ヒラギノ)が表示されない&印刷されないという問題が追加されたから。この問題は tex コンパイル& dvipdfmx を行った環境に依存しない。 しかしながら、この問題はAcrobat を使えば問題ないため、Preview.app の問題かもしれない。
というわけで、作成した PDF をどのような環境において表示印刷するかにも依存するという非常に悩ましい状況。(PSやPDFに詳しくないので、これらの現象をきちんと整理できない。。。)

なんだか問題の因果関係がわからないのだけれども、Illustrator 8 eps 形式で配置した画像を含めて保存した eps を使うのが最も問題がなさそう。

!!違う、ダメだ!
'''だーーーー、だめだだめだ、数式によっては、最終的にうまく表示できないものがあるみたい。'''使っているフォントに問題があるのかもしれない。(書類を書かないといけないのでペンディング)
後日、改めてテストする事にする。

!!LaTeXiT
書類を書き終えたので、改めて少し考えてみた。フォントを組み込むと数式の一部が化けてしまうのが問題だった訳だ。ということは、フォントをアウトライン化してあればいいのかも。
LaTeXiT で数式の PDF で作るときにアウトライン化されていれば良いのかな、と思って LaTeXiT の preference を見てみたら、、、
{{attach_image_anchor('latexit.png')}}

なんだ、あるじゃない ^-^;;; export format が幾つか選べますね、LaTeXiT。すばらしい。きっとそういう要望があったんでしょうね。

!丸数字
丸の中に数字を書くには \textcircled を用いる
\textcircled{\footnotesize3}

!数式関連メモ
default で宣言すべし
\usepackage{amsmath,amssymb}
italic な vector
\mbox{\boldmath$v$}}
数式揃え
\begin{align}
    f &= f(x) \\
    g &= g(x)
\end{align}

!kanjiskip
とある概要を書いていたところ、両端揃えが効いていないことに気付く。元になった latex の format を読んでみると、
\kanjiskip=\kskip
と書いてあったのだが、\kskip は別の箇所で
\setlength{\kskip}{.1cm}
としてあった。これだと全角文字間が .1cm に固定されてしまい、塩梅が悪い。そこで伸長性を持たせるために
\setlength{\kskip}{.1cm plus 2pt minus 2pt}
みたいに修正。[[ここ|http://ascii.asciimw.jp/pb/ptex/base/xkanjiskip.html]]を参考にした。

!texlive2011 のインストール
インストール手順は、こちら→[[tlptexliveリポジトリ|http://tutimura.ath.cx/ptexlive/?tlptexlive%A5%EA%A5%DD%A5%B8%A5%C8%A5%EA]]の内容に従った。ネットワーク経由でラクチン。

wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar zxf install-tl-unx.tar.gz
su -
cd ~nagato/install-tl-20111209/
./install-tl
で、Install 開始。ネットワーク越しにファイルを大量に落としてくるので、のんびり待つ。しばらく待つと Welcom to TeX Live! で終わる。その後、日本語追加パッチを適用するために、
tlmgr update --self --all
tlmgr --repository http://www.tug.org/~preining/tlptexlive/ update --all
tlmgr --repository http://www.tug.org/~preining/tlptexlive/  install pmetapost pxdvi
後は /usr/local/texlive/2011/bin/x86_64-linux/ に PATH を通せばよい。あるいは
/usr/local/texlive/2011/bin/x86_64-linux/tlmgr path add
とすれば /usr/local/bin/ に symbolic link を作成してくれる。

以上で utf-8 な日本語 tex source を
platex でコンパイル、pxdvi でプレビュー、そして dvipdfmx で pdf を作成できる。

!YaTeX-kanji-code
yatex を使っているとき、YaTeX-kanji-code を nil にしていないと、設定された文字コードでファイルが(強制的に)保存されてしまう。(1 なら S-JIS、2 なら JIS、3 なら EUC、4 なら UTF-8 で保存される。)
普通は
(setq YaTeX-kanji-code nil)
としておくのが良いと思う。

!YaTeX から呼び出すコマンド
タイプセットするコマンドを設定するには、
(setq tex-command "platex")
dvi ビューアのコマンド設定は、
(setq dvi2-command "pxdvi")

!ベクトル表記
\mbox{\boldmath $x$}

!xbb
上で入れた texlive2011 環境で、pdf の埋め込みをしようとしたら、ebb じゃなくて xbb ファイルが必要と言われた。ebb コマンドはあるが、xbb コマンドはなかったので
ln -s dvipdfmx xbb
とした。あとは PDF ファイルの xbb ファイルを作成すればよい。

!footnote
tabular 環境では \footnote は使えないらしい。\footnotemark コマンドで印を付けて、\footnotetext{ほげほげ} で
テキストを指定してやればよい。

!圏点(文字の上の点)
\usepackage{pxrubrica}
したうえで、
\kenten{ほげほげ}
のようにすれば、ほげほげの上に点が付く

!input
latex ファイルを main.tex, sub1.tex, sub2.tex のように分割し、main.tex 内で \input で参照するのはよくやる手
\input sub1
\input sub2
sub1.tex や sub2.tex 単独でも latex compile できるようにプリアンブルを書いた場合、単純に \input するとプリアンブルを重複して解釈しようとするため NG。こういう場合、main.tex で
\usepackage{docmute}
すれば sub1.tex 内のプリアンブルを無視し、latex compile が通るはず。

!\wrapfigure
右に図を配置して幅を 0.4\textwidth にするなら
\begin{wrapfigure}{r}{0.4\textwidth}
図の高さ(行数)を指定するなら(例えば 10行)なら
\begin{wrapfigure}[10]{r}{0.4\textwidth}

!条件分岐 \ifthenelse
ifthen package を使って、条件によって内容を分岐させたいときの話
\usepackage{ifthen}

\newboolean{flag}  % flag の宣言
\setboolean{flag}{true}
%\setboolean{flag}{false}

\begin{document}
中略文章
\ifthenelse{\boolean{flag}}{
ここに flag が true のときの文章を書く
}{
ここに flag が false のときの文章を書く
}