- TeX関連のリンク集
- MacTeX 2015 のメモ
- MacTeX 2013 のメモ
- MacTeX 2012 のメモ
- MacTeX 2011 のメモ
- MacTeX 2010 のメモ
- TeX for Snow Leopard (Mac OS X 10.6)
- 新しいマシンでTeX環境を構築する (for Mac OS X)
- 画像の読み込み関連
- "LaTeX Font Warning"を回避する
- Mac OS X の pTeX でヒラギノフォントを使う
- TeXShop用のマクロ
- TeXShopでのtips
- TeX macro
- default.sty
- TeX tips
- ps2pict
- Sublime Text2 で(p)LaTeX文書を扱う
インストール直後の状態ではヒラギノフォントがPDFに適切に埋め込まれないようで、
ターミナルで次を実行する必要がある。
$ sudo updmap-sys --setoption kanjiEmbed hiragino
MacTeX-2013 distribution がリリースされている。
(e-pTeX のバージョンは Version 3.1415926-p3.4-110825-2.6)
MacbookAir (2011), OS X 10.8.4 (Mountain Lion), TeXShop 3.18 で pTeX は問題なく動いている。
やっておくべき?おまじない:
(1) texmf.cnf の書き換え
shell_escape_commands = \ bibtex,bibtex8,\ kpsewhich,\ makeindex,\ mpost,\ repstopdf,\の部分を
shell_escape_commands = \ bibtex,bibtex8,bibtexu,pbibtex,upbibtex,biber,\ kpsewhich,\ makeindex,mendex,texindy,\ mpost,pmpost,\ repstopdf,epspdf,extractbb,\に書き換える(\の部分は実際にはバックスラッシュ)。
(2) ヒラギノフォントを埋め込むための設定。
ターミナルで次を実行する。
$ sudo updmap-sys --setoption kanjiEmbed hiragino
※主たる情報源:Mac - TeX Wiki
MacTeX 2013 をインストールしたら、pMetaPost が使えなくなった(バイナリ pmpost も見当たらなくなった)。
→久しぶりにやってみたら、今度は再インストールできた(何がまずかったのだろう…?)。
しかもヒラギノフォントも使えるようになっている!
以下は自分用の対応表です。
hminrn-h | ヒラギノ明朝 Pro W3・横 |
hminrn-v | ヒラギノ明朝 Pro W3・縦 |
hminrbn-h | ヒラギノ明朝 Pro W6・横 |
hminrbn-v | ヒラギノ明朝 Pro W6・縦 |
hgothrn-h | ヒラギノ角ゴ Pro W3・横 |
hgothrn-v | ヒラギノ角ゴ Pro W3・縦 |
hgothrbn-h | ヒラギノ角ゴ Pro W6・横 |
hgothrbn-v | ヒラギノ角ゴ Pro W6・縦 |
hgothrebn-h | ヒラギノ角ゴ Std W8・横 |
hgothrebn-v | ヒラギノ角ゴ Std W8・縦 |
hmgothrn-h | ヒラギノ丸ゴ Pro W4・横 |
hmgothrn-v | ヒラギノ丸ゴ Pro W4・縦 |
MacTeX-2012 distribution がリリースされている.
(e-pTeX のバージョンは Version 3.1415926-p3.3-110825-2.4)
Mac mini (Mid 2010) および MacbookAir (2011), Mac OS X 10.7.4 (Lion), TeXShop-64 で pTeX は問題なく動いている.
OTFパッケージが含まれているが,ヒラギノフォントを使うためにはちょっとした作業が追加で必要.
インストールおよび追加設定についての具体的手順が TeX Wiki内のページ で説明されており,これに従えば良い.
pMetaPost用のタイプセットエンジンを fuhmi's backyard にて配布しています.
ご自由にどうぞ.
ご自由にどうぞ.
MacTeX distribution の最新版がリリースされている(2011.7.4 に公開).
(pTeX のバージョンは,e-pTeX, Version 3.1415926-p3.2-110415-2.3)
Mac mini (Mid 2010), Mac OS X 10.7 (Lion), TeXShop-64 で pTeX は問題なく動いている.
OTF パッケージの有無については未確認(後述の方法でインストールした OTF パッケージは問題なく使えている模様).
MetaPost も問題なし(MetaPost のバージョンは 1.504).
熊本学園大の小川先生のサイトにて
MacTeX 2011 の pTeX でヒラギノフォントを使えるように設定する
Additional Tools for MacTeX/TeXLive 2011 というツールが配布されている.
合わせて GPL Ghostscript 9.02 もインストールするようにとのこと.
MacTeX distribution の最新版がリリースされている(2010.9.8)。
このバージョンから、日本語TeXもパッケージに含まれるようになった。
(pTeX のバージョンは 3.1415926-p3.1.11)
奥村先生による jsclass ファイル群も含まれている。
(ディレクトリは /usr/local/texlive/2010/texmf-dist/tex/platex/jsclasses )
インストールしたばかりなので、自分の日本語TeX環境では Drag and Drop pTeX を利用する状態のまま。
後で TeXShop で pLaTeX をデフォルトで使うための設定を調べてみよう。
ymatz :: log – TeX Live 2010にOTFパッケージを導入する にインストールの手順が示されている。
その手順をスクリプトにまとめたものが以下。
適当な名前で保存してターミナルで実行すると必要なファイルをダウンロードして OTF パッケージをインストールする。
※ このやり方だと expert オプションが正しく機能しないようだ。
これは otf パッケージの配布元の注意書きにあるように、
makeotf において ovp2ovf の ver. 2.1 (MacTeX 2010 同梱?) を使うため
VFファイルが適切に作成されないことに依るのだろう。
その手順をスクリプトにまとめたものが以下。
適当な名前で保存してターミナルで実行すると必要なファイルをダウンロードして OTF パッケージをインストールする。
#!/bin/sh curl http://psitau.kitunebi.com/otfstable.zip > ~/Desktop/otfstable.zip sudo unzip ~/Desktop/otfstable.zip -d /usr/local/texlive/texmf-local/tex/latex/ cd /usr/local/texlive/texmf-local/tex/latex/otfstable sudo ./makeotf cd /usr/local/texlive/texmf-local/fonts/tfm sudo ln -s ../../tex/latex/otfstable/tfm otfstable cd ../vf sudo ln -s ../../tex/latex/otfstable/vf otfstable sudo mkdir /usr/local/texlive/texmf-local/fonts/map sudo mkdir /usr/local/texlive/texmf-local/fonts/map/dvipdfm cd /usr/local/texlive/texmf-local/fonts/map/dvipdfm/ sudo ln -s "../../../tex/latex/otfstable/fontmap/hiraginox.map(for dvipdfmx)" hiraginox.map sudo mkdir /usr/local/texlive/texmf-local/fonts/opentype sudo mkdir /usr/local/texlive/texmf-local/fonts/opentype/public sudo mkdir /usr/local/texlive/texmf-local/fonts/opentype/public/hiragino cd /usr/local/texlive/texmf-local/fonts/opentype/public/hiragino/ sudo ln -s "/Library/Fonts/ヒラギノ明朝 Pro W3.otf" HiraMinPro-W3.otf sudo ln -s "/Library/Fonts/ヒラギノ明朝 Pro W6.otf" HiraMinPro-W6.otf sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Pro W3.otf" HiraKakuPro-W3.otf sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Pro W6.otf" HiraKakuPro-W6.otf sudo ln -s "/Library/Fonts/ヒラギノ角ゴ Std W8.otf" HiraKakuStd-W8.otf sudo ln -s "/Library/Fonts/ヒラギノ丸ゴ Pro W4.otf" HiraMaruPro-W4.otf sudo texhash
※ このやり方だと expert オプションが正しく機能しないようだ。
これは otf パッケージの配布元の注意書きにあるように、
makeotf において ovp2ovf の ver. 2.1 (MacTeX 2010 同梱?) を使うため
VFファイルが適切に作成されないことに依るのだろう。
小川先生のウェブページ (JIS X0212 for pTeX)で配布されている Drag & Drop pTeX をインストールするのが良い。これは「TeXShopからの使用を主目的に、ApplicationsフォルダにDrag & Dropすればインストールが済むバンドル・パッケージ」とのこと。
TeXShopでの設定の仕方は同梱の readme に書いてあるけれども、自分用の覚え書きとして。
(私は Shift_JIS / ヒラギノ埋め込み を利用)
- 内部設定で pTeX のパスを /Applications/pTeX.app/teTeX/bin に変更する。
- TeX + dvips + distiller の LaTeX の欄を dotexshop に変更する。
デスクトップにエイリアスを作っておくと便利かも。
pTeX.app を実行すると mktexlsr してくれる。
から pTeX と otf.sty のインストーラをダウンロードしてインストールする。
Beamerを使うならばGhostScriptもダウンロードしてインストールしておく。 から TeXShop をダウンロードしてインストールする。
から MacTeX-2008 distribution をダウンロードしてインストールする。
これは上記の pTeX と共存できる。
Beamerを使うならばGhostScriptもダウンロードしてインストールしておく。 から TeXShop をダウンロードしてインストールする。
- ハードディスクの容量が逼迫していないならば
から MacTeX-2008 distribution をダウンロードしてインストールする。
これは上記の pTeX と共存できる。
graphicxパッケージを利用する。
\usepackage[dvips]{graphics}で、epsファイルを(たとえばそれが hogehoge.eps ならば)
\includegraphics{hogehoge}によって取り入れることが出来る。
ImageMagick を使う。
コマンドライン上で
convert hogehoge.jpg hogehoge.epsとすれば、hogehoge.jpg というjpeg画像ファイルを hogehoge.eps というepsファイルに変換してくれる。
コマンドラインで
ebb hogehoge.pdfとして hogehoge.ebb というファイルを生成する必要がある。
※ pdfファイルのバージョンが高い(1.4以上)だと
Version of PDF file (1.4) is newer than version limit specification. Can't handle file type for file named hogehoge.pdfというエラーメッセージが返される.
一つの対処法として,pdfファイルのバージョンを無理矢理書き換えることで
ebb が通るファイルを作るという方法があり,
具体的には(もし hogehoge.pdf のバージョンが 1.4 ならば)
sed s/PDF-1.4/PDF-1.3/ hogehoge.pdf > fuwafuwa.pdfとすることで得られる fuwafuwa.pdf では ebb によって bounding box が取得できる.
参考にしたページ
プリアンブルに
\DeclareFontShape{JT1}{gt}{m}{it}{<->ssub*gt/m/n}{} \DeclareFontShape{JT1}{mc}{m}{it}{<->ssub*mc/m/n}{} \DeclareFontShape{JT1}{mc}{m}{sl}{<->ssub*mc/m/n}{} \DeclareFontShape{JT1}{mc}{m}{sc}{<->ssub*mc/m/n}{} \DeclareFontShape{JY1}{gt}{m}{it}{<->ssub*gt/m/n}{} \DeclareFontShape{JY1}{mc}{m}{it}{<->ssub*mc/m/n}{} \DeclareFontShape{JY1}{mc}{m}{sl}{<->ssub*mc/m/n}{} \DeclareFontShape{JY1}{mc}{m}{sc}{<->ssub*mc/m/n}{}という8行のおまじないを貼付けると良い。
otfパッケージを利用している場合には
\DeclareFontShape{JT1}{mg}{bx}{n}{<->ssub*mg/m/n}{} \DeclareFontShape{JY1}{mg}{bx}{n}{<->ssub*mg/m/n}{}の2行も付け加えておくと良いかも。
★参考にしたページ:
http://auemath.aichi-edu.ac.jp/~khotta/ghost/psfon...
otf パッケージを利用するのが一番簡単。
JIS X0212 for pTeX
から pTeX と otf.sty のインストーラをダウンロードして、インストールする。
必要に応じて mktexlsr をターミナルで実行。
TeX のソースファイルで
\usepackage[deluxe,expert]{otf}を読み込むことで、ヒラギノフォントが使える。
見本用のサンプルコード:
\documentclass{jsarticle} \usepackage[deluxe,expert]{otf} \begin{document} \begin{itemize} \item {\rmfamily ヒラギノ明朝ProW3} \item {\rmfamily\bfseries ヒラギノ明朝ProW6} \item {\gtfamily ヒラギノ角ゴProW3} \item {\gtfamily\bfseries ヒラギノ角ゴProW6} \item {\gtfamily\ebseries ヒラギノ角ゴStdW8} \item {\mgfamily ヒラギノ丸ゴProW4} \end{itemize} \end{document}
--Applescript direct set Source to "~/Documents/TeXstyles/" set Destination to "/usr/local/share/texmf/ptex/platex/misc/mystyle/" set Extentions to {".sty", ".cls"} repeat with ext in Extentions set ext to "*" & ext & " " do shell script "cp " & Source & ext & Destination with administrator privileges end repeat do shell script "/usr/local/bin/mktexlsr" with administrator privileges
--Applescript direct set Directory to "~/Documents/TeXstyles/" do shell script "open " & Directory
--Applescript direct set Directory to "~/Documents/memo/" set today to current date set y to (year of today) as text set y to (character 3 of y) & (character 4 of y) set m to (month of today) as integer if m < 10 then set m to "0" & (m as text) set d to (day of today) as text set ToBeOpen to "memo" & y & m & d & ".tex" set ToBeOpen to Directory & ToBeOpen do shell script "touch " & ToBeOpen do shell script "open " & ToBeOpen & " -a TeXShop"
--Applescript direct set Environments to {"pmatrix", "equation", "proof", "enumerate"} tell application "TeXShop" set Selected to the content of the selection of the front document choose from list Environments with prompt "選んで。" set env to result set Selected to "\\begin{" & env & "}\n" & Selected & "\n\\end{" & env & "}\n" set the content of the selection of the front document to Selected tell application "System Events" repeat with i from 1 to 2 keystroke "p" using control down end repeat end tell end tell
私自身が(注意点を忘れてしまって)「なんでうまくいかないんだろう?」と考え込みがちなちょっとしたポイントのメモ.
- engine ファイルは文字コードを utf-8,改行コードを LF にして作成しないと正しく動作しない
- 最後の空行は必要で,これを外すと正しく動作しない
- engine ファイルに実行権限が与えられていないと動作しない
~/Library/TeXShop/Engines に、以下の内容のファイルを
たとえば Landscape.engine というファイル名で保存する。
(既にある XeTeX.engine をコピーして中身を書き換えるとよい)
TeXソースファイルの先頭の行に
そのファイルをタイプセットする際には上記のスクリプトに従ってコンパイルするようになり、
適切に横長のPDFファイルが生成される。
※追記:engineファイルを利用しなくても、TeXソースの冒頭に
紙のサイズを geometry パッケージで指定しているのは個人的な好みなので,
この行は必ずしも必要ではない。
\AtBeginDvi 命令によって出力される PDF ファイルのサイズを指定できる、
というのがポイント。
(→奥村晴彦さんの美文書作成入門第5版,322ページ)
※追記2:少なくとも MacTeX 2011 の pLaTeX や pdfLaTeX を使っている限りにおいては単に
たとえば Landscape.engine というファイル名で保存する。
(既にある XeTeX.engine をコピーして中身を書き換えるとよい)
#!/bin/tcsh set path= ($path /usr/texbin /usr/local/bin) set tex_source = $argv[1]:r platex $tex_source.tex dvipdfmx -l -o $tex_source.pdf $tex_source.dvi※ 最後の空行も含めること。
TeXソースファイルの先頭の行に
%!TEX TS-program = Landscapeというコメント行を加えておくと、
そのファイルをタイプセットする際には上記のスクリプトに従ってコンパイルするようになり、
適切に横長のPDFファイルが生成される。
※追記:engineファイルを利用しなくても、TeXソースの冒頭に
\usepackage[reset,papersize={297truemm,210truemm},vmargin=2truecm,hmargin=3truecm]{geometry} \AtBeginDvi{\special{pdf: pagesize width 297truemm height 210truemm}}などと書き込んでおけば良い。
紙のサイズを geometry パッケージで指定しているのは個人的な好みなので,
この行は必ずしも必要ではない。
\AtBeginDvi 命令によって出力される PDF ファイルのサイズを指定できる、
というのがポイント。
(→奥村晴彦さんの美文書作成入門第5版,322ページ)
※追記2:少なくとも MacTeX 2011 の pLaTeX や pdfLaTeX を使っている限りにおいては単に
\usepackage[a4paper,landscape]{geometry}などとすれば出力されるPDFファイルもちゃんと横置きになっている.
~/Library/TeXShop/Engines に、以下の内容のファイルを
たとえば Beamer.engine というファイル名で保存する。
そのファイルをタイプセットする際には上記のスクリプトに従ってコンパイルするようになり、
適切にPDFファイルが生成される。
※ psnup は psutils という名前のコマンド群の中に含まれるもの。
デフォルトではインストールされていないようなので、
FinkCommander などを用いて psutils をインストールしておく必要がある。
※ 私の当初の環境では日本語が文字化けしていた。
これは ps2pdf で ps ファイルから pdf ファイルを生成する際に問題があったための模様。
小川さんのページからGhostScriptをダウンロードしてインストールし直し、
同梱されていたスクリプトで和文フォントを pdf に埋め込む設定にしたところ、解決した。
※※ 上記のスクリプトを使うよりも、MacTeX-2008 などに含まれている XeLaTeX を利用した方が
(1) XeLaTeX を利用する方がコンパイルにかかる時間が短い
(2) Mac OS が認識する任意のフォントが使える、デフォルトで文字化けもない
という利点があるのでよさそうだ。
MacTeX-2008 は Mac OS 10.5 以前の pTeX や 10.6 以降の Drag and Drop pTeX と共存できる(HDD容量は1GB強ほど余計に食うが)。
TeXShop の設定は pTeX/Shift JIS にしておいて、XeLaTeX 文書を扱うときは文頭に
たとえば Beamer.engine というファイル名で保存する。
#!/bin/tcsh set path= ($path /usr/texbin /usr/local/bin /sw/bin) set tex_source = $argv[1]:r set temp_ps = temp.ps platex $tex_source dvips -P pdf -f -t a4 -o $temp_ps $tex_source.dvi psnup -1 -W128mm -H96mm -pa4 $temp_ps $tex_source.ps rm $temp_ps ps2pdfwr -sPAPERSIZE=a4 $tex_source.ps $tex_source.pdfTeXソースファイルの先頭の行に
%!TEX TS-program = Beamerというコメント行を加えておくと、
そのファイルをタイプセットする際には上記のスクリプトに従ってコンパイルするようになり、
適切にPDFファイルが生成される。
※ psnup は psutils という名前のコマンド群の中に含まれるもの。
デフォルトではインストールされていないようなので、
FinkCommander などを用いて psutils をインストールしておく必要がある。
※ 私の当初の環境では日本語が文字化けしていた。
これは ps2pdf で ps ファイルから pdf ファイルを生成する際に問題があったための模様。
小川さんのページからGhostScriptをダウンロードしてインストールし直し、
同梱されていたスクリプトで和文フォントを pdf に埋め込む設定にしたところ、解決した。
※※ 上記のスクリプトを使うよりも、MacTeX-2008 などに含まれている XeLaTeX を利用した方が
(1) XeLaTeX を利用する方がコンパイルにかかる時間が短い
(2) Mac OS が認識する任意のフォントが使える、デフォルトで文字化けもない
という利点があるのでよさそうだ。
MacTeX-2008 は Mac OS 10.5 以前の pTeX や 10.6 以降の Drag and Drop pTeX と共存できる(HDD容量は1GB強ほど余計に食うが)。
TeXShop の設定は pTeX/Shift JIS にしておいて、XeLaTeX 文書を扱うときは文頭に
%!TEX encoding = UTF-8 Unicode %!TEX TS-program = XeLaTeXというコメント行を加えておくと良い。
Terminal.app ではデフォルトでは ~/.bashrc は読み込まれない。
~/.bash_profile を以下の内容で作成すると読み込まれるようになる。
if [ -f ~/.bashrc ] ; then . ~/.bashrc fi★参考にしたページ:
http://memo358.blog18.fc2.com/blog-entry-30.html
~/.bashrc にて次のエイリアスを登録しておく(asymptote で日本語を通すための下準備)。
alias platex-utf8='platex -kanji=utf8'★参考にしたページ:
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Asymp...
\newcommand{\set}[2] {\setbox1=\hbox{$\displaystyle\left\{#1#2\right\}$} \left\{#1\hskip0.35em\vrule height\ht1\hskip0.35em#2\right\}}※e-TeXを使っているならば、\middleというプリミティブが使えるので次のようでも良い。
\newcommand{\set}[2]{\left\{#1\,\middle\vert\,#2\right\}}
※ \@tfor を使うので \makeatletter と \makeatother で挟む必要がある。
より正直に言えば、0を適切に書くことに成功していない。
\makeatletter \def\permat#1{% \newcount\tempi% \newcount\tempj% \newcount\matsize% \@tfor\temp:=#1\do{\advance\matsize by 1}% \tempi=\matsize \multiply\tempi by 15 \advance\tempi by -8\relax% \tempj=\matsize \multiply\tempj by 7\relax \left(\begin{picture}(\tempi,\tempj)(-1,0)% \@tempcnta=0% \@tfor\temp:=#1\do{% \advance\@tempcnta by 1\relax\@tempcntb=1\relax% \tempi=\@tempcnta \multiply\tempi by 15 \advance\tempi by -15\relax% \tempj=\temp \multiply\tempj by -2 \advance\tempj by 1\relax \advance\tempj by \matsize \multiply\tempj by 6\relax% \put(\tempi,\tempj){$1$} } % \end{picture}\right)} \makeatother使用例:
$$ \permat{123},\quad \permat{132},\quad \permat{213},\quad \permat{231},\quad \permat{312},\quad \permat{321} $$成分は0は省略して1だけを書く仕様。
より正直に言えば、0を適切に書くことに成功していない。
\csname というマクロが定義されているかに応じた条件分岐は
\@ifundefined{csname}{未定義の場合}{定義済みの場合}というコマンドによって実行できる。
一つの応用例として、次のようなマクロを作ってみた:
\def\高{\@ifundefined{CID}{高}{\CID{8705}}}これは、OTFパッケージを読み込んでいる場合には \CID というコマンドが定義されているので \CID{8705} という命令を実行(いわゆる「はしご高」を出力)し、そうでなければ普通の「高」を出力するようなマクロである。
★参考にしたページ:
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=isd...
※ \@tfor を使うので \makeatletter と \makeatother で挟む必要がある。
\makeatletter \newcount\@permlength% \newcommand{\@prepermcount}[1]{% \@permlength=0\relax% \@tfor\temp:=#1\do{% \advance\@permlength by 1\relax% }% } \newcommand{\@permupper}[1]{% \@tempcnta=0% \,\@tfor\temp:=#1\do{% \advance\@tempcnta by 1\relax% \the\@tempcnta% \ifnum\@tempcnta<\@permlength% \ \ % \fi% }\,% } \newcommand{\@permlower}[1]{% \@tempcnta=0% \,\@tfor\temp:=#1\do{% \advance\@tempcnta by 1\relax% \temp% \ifnum\@tempcnta<\@permlength% \ \ % \fi}\,% } \newcommand{\perm}[1]{% \@prepermcount{#1}% \genfrac{(}{)}{0pt}{0}{\@permupper{#1}}{\@permlower{#1}}% } \makeatotherたとえば \perm{35124} のように使う。
まずは最小版(amsthm を読み込まない)
% 前提となるパッケージ \usepackage{framed,color} % 左線を書く (needs framed, color) \newenvironment{myleftbar}[1]{ \def\FrameCommand{{\color{#1}\vrule width 3pt }\hspace{10pt}}% \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed\par} % 左線付き定理環境を定義するためのマクロ \newcommand{\newtheorembar}[2][black]{ \newenvironment{#2}{\begin{myleftbar}{#1}\begin{vir#2}} {\end{vir#2}\end{myleftbar}} \newtheorem{vir#2}} % 定義の例 \newtheorembar[cyan]{ex}{例}
次に自分用(amsthm を読み込む,otf の利用を前提する)
% 前提となるパッケージ \usepackage{amsthm,framed,color} % 定理のスタイル (needs amsthm) \newtheoremstyle{frame} {\topsep}{\topsep}{\rmfamily\mcfamily} {0pt}{\sffamily\gtfamily\bfseries}{.}{.5em} {\thmname{#1} \thmnumber{#2}\thmnote{ (#3)}\rmfamily} % 左線を書く (needs framed, color) \newenvironment{myleftbar}[1]{ \def\FrameCommand{{\color{#1}\vrule width 3pt }\hspace{10pt}}% \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed\par} % 左線付き定理環境を定義するためのマクロ \newcommand{\newtheorembar}[2][black]{ \newenvironment{#2}{\begin{myleftbar}{#1}\begin{vir#2}} {\end{vir#2}\end{myleftbar}} \theoremstyle{frame} \newtheorem{vir#2}} % 定義の例 \newtheorembar[cyan]{ex}{例}otf パッケージを使う場合,デフォルトだと定理の見出しのフォントが太い明朝体になるので,
newtheoremstyle を使って見出しのフォントをゴシックとするような新しい theoremstyle を定義している.
与えられた拡大係数行列を持つ連立一次方程式を,変数の位置が縦に揃うようにして表示するためのマクロ.
alignat 環境を利用するので amsmath パッケージの読み込みが必要.
\makeatletter \newif\iffirstterm \newcount\c@varindex \newcount\coefficient \def\@pls{&{}+{}&} \def\@mns{&{}-{}&} \def\@eq{&{}={}&} \def\@void{&{}&} \def\suffix{{\@arabic{\c@varindex}}} \def\which#1{\ifcase\c@varindex\or #1\else?\fi} % 未知変数の命名規則 \def\unknown#1{\gdef\@unknown{#1}} \unknown{x_\suffix} % デフォルトの変数名は x_i \def\eq#1;#2 { \global\c@varindex=1\relax \global\firsttermtrue \@for\temp:=#1\do{ \global\coefficient=\temp\relax \ifnum\coefficient=0 \@void \else \ifnum\coefficient<0 \global\multiply\coefficient by -1\relax \iffirstterm \global\firsttermfalse - \else \@mns \fi \else \iffirstterm \global\firsttermfalse \else \@pls \fi \fi \ifnum\coefficient=1 \else \@arabic{\coefficient} \fi \@unknown \fi \global\advance\c@varindex by 1\relax } \@eq #2 } \def\lineq#1{\global\let\oldslash=\\\gdef\\{\oldslash\eq}\eq#1\global\let\\=\oldslash\global\let\oldslash=\relax} \makeatother
使用例:
\begin{alignat*}{5} \lineq{ 1, 0, 1, 2; 6 \\ -2, 1, 4, 1; 3 \\ 4, -3, -4, 1; -3 \\ -1, 1, 2, 1; 4 } \end{alignat*} \unknown{z_\suffix} \begin{alignat*}{5} \lineq{ 1, 0, 1, 2; 6 \\ -2, 1, 4, 1; 3 \\ 4, -3, -4, 1; -3 \\ -1, 1, 2, 1; 4 } \end{alignat*} \unknown{\which{x\or y\or z\or u}} \begin{alignat*}{5} \lineq{ 1, 0, 1, 2; 6 \\ -2, 1, 4, 1; 3 \\ 4, -3, -4, 1; -3 \\ -1, 1, 2, 1; 4 } \end{alignat*}
よく使うマクロの定義をまとめたスタイルファイルを作っておくと便利。
そのようなスタイルファイルの一例を挙げてみる。
(以下の内容を,ファイル名を "default.sty" として保存して使う。
別のファイル名にする場合には,2行目の ProvidePackage 命令の最初の引数を変更すること)
※ OTFパッケージをインストールしていない場合には5行目,18行目,19行目を削除する。
\NeedsTeXFormat{pLaTeX2e} \ProvidesPackage{default}[2009/12/21 v1.0 written by fuhmi] % 2行目 \RequirePackage{amsmath,amsthm,amssymb} \RequirePackage{stmaryrd,pifont,okumacro} \RequirePackage[deluxe,expert]{otf} % 5行目 \RequirePackage{type1cm} % Avoid unexpected font warnings by pTeX \DeclareFontShape{JT1}{gt}{m}{it}{<->ssub*gt/m/n}{} \DeclareFontShape{JT1}{mc}{m}{it}{<->ssub*mc/m/n}{} \DeclareFontShape{JT1}{mc}{m}{sl}{<->ssub*mc/m/n}{} \DeclareFontShape{JT1}{mc}{m}{sc}{<->ssub*mc/m/n}{} \DeclareFontShape{JY1}{gt}{m}{it}{<->ssub*gt/m/n}{} \DeclareFontShape{JY1}{mc}{m}{it}{<->ssub*mc/m/n}{} \DeclareFontShape{JY1}{mc}{m}{sl}{<->ssub*mc/m/n}{} \DeclareFontShape{JY1}{mc}{m}{sc}{<->ssub*mc/m/n}{} \DeclareFontShape{JT1}{mg}{bx}{n}{<->ssub*mg/m/n}{} % 18行目 \DeclareFontShape{JY1}{mg}{bx}{n}{<->ssub*mg/m/n}{} % 19行目 % PostScript Fonts: % Avant Garde, Bookman, Courier, Helvetica % New Century, Palatino, Times, Zapf Chancery \newcommand{\agfamily}{\fontfamily{pag}\selectfont} \newcommand{\bkfamily}{\fontfamily{pbk}\selectfont} \newcommand{\crfamily}{\fontfamily{pcr}\selectfont} \newcommand{\hvfamily}{\fontfamily{phv}\selectfont} \newcommand{\ncfamily}{\fontfamily{pnc}\selectfont} \newcommand{\plfamily}{\fontfamily{ppl}\selectfont} \newcommand{\tmfamily}{\fontfamily{ptm}\selectfont} \newcommand{\zcfamily}{\usefont{OT1}{pzc}{m}{n}} \newcommand{\textag}[1]{{\agfamily#1}} \newcommand{\textbk}[1]{{\bkfamily#1}} \newcommand{\textcr}[1]{{\crfamily#1}} \newcommand{\texthv}[1]{{\hvfamily#1}} \newcommand{\textnc}[1]{{\ncfamily#1}} \newcommand{\textpl}[1]{{\plfamily#1}} \newcommand{\texttm}[1]{{\tmfamily#1}} \newcommand{\textzc}[1]{{\zcfamily#1}} % Modification \numberwithin{equation}{section} \renewcommand{\labelenumi}{{\upshape(\theenumi)}} \renewcommand{\emph}[1]{{\gtfamily\sffamily\bfseries\boldmath#1}} % Frequently used \newcommand{\N}{\mathbb{N}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\Q}{\mathbb{Q}} \newcommand{\R}{\mathbb{R}} \newcommand{\C}{\mathbb{C}} \newcommand{\e}{\varepsilon} \newcommand{\abs}[1]{\left|#1\right|} \newcommand{\floor}[1]{\left\lfloor#1\right\rfloor} \newcommand{\ceil}[1]{\left\lceil#1\right\rceil} \newcommand{\set}[2] {\setbox1=\hbox{$\displaystyle\left\{#1#2\right\}$}% \left\{#1\hskip0.35em\vrule height\ht1\hskip0.35em#2\right\}} \newcommand{\then}{\DOTSB \;\Longrightarrow \;} % implication arrow "==>" % log-type operators \let\Re = \relax \let\Im = \relax \DeclareMathOperator{\Re}{Re} \DeclareMathOperator{\Im}{Im} \DeclareMathOperator*{\Res}{Res} \DeclareMathOperator{\tr}{tr}
たとえばTeXソースの冒頭に
geometryパッケージのオプション papersize と \AtBeginDvi 命令のパラメタを連動させること。
任意のサイズを指定できる。
(→奥村晴彦さんの美文書作成入門第5版,322ページ)
\usepackage[reset,papersize={297truemm,210truemm},vmargin=2truecm,hmargin=3truecm]{geometry} \AtBeginDvi{\special{pdf: pagesize width 297truemm height 210truemm}}などと書き込んでおけば横置き(ランドスケープ)のA4用紙となる。
geometryパッケージのオプション papersize と \AtBeginDvi 命令のパラメタを連動させること。
任意のサイズを指定できる。
(→奥村晴彦さんの美文書作成入門第5版,322ページ)
geometryパッケージを利用するのが簡単。
応用例として、たとえば
画像ファイルを「背景」として読み込み、「文字情報のレイヤー」をTeXで処理することで、
ちょっとしたポスターやちらしを作る、といったことも考えられる。
(この用途の場合には、多様な文字種が利用出来る XeLaTeX を利用するのが良いだろう。)
\usepackage[a4paper,margin=0mm]{geometry}% A4用紙,マージンなしとすれば良い。
応用例として、たとえば
\begin{document} \noindent \unitlength=1truemm \begin{picture}(210,297) % A4用紙のサイズは 210mm × 297mm \put(0,0){\includegraphics{form.pdf}} % pdf ファイルを読み込む % \put 命令でモノを配置する \end{picture} \end{document}のようにすれば、form.pdf というPDFファイルの上に文字などを書き込んだPDFファイルを作ることが出来る。
画像ファイルを「背景」として読み込み、「文字情報のレイヤー」をTeXで処理することで、
ちょっとしたポスターやちらしを作る、といったことも考えられる。
(この用途の場合には、多様な文字種が利用出来る XeLaTeX を利用するのが良いだろう。)
enumerate環境は番号付きのリストを出力するための環境で、たとえば
\begin{enumerate} \item TeX \item LaTeX \item XeTeX \item Omega \end{enumerate}などと書くと、デフォルトでは
1. TeX 2. LaTeX 3. XeTeX 4. Omegaのような出力が得られる。
ここでたとえば、あらかじめ
\renewcommand{\theenumi}{\Alph{enumi}} \renewcommand{\labelenumi}{【\,\theenumi\,】}のようにプリアンブルに書いておくと、上と同じソースの出力は
【A】 TeX 【B】 LaTeX 【C】 XeTeX 【D】 Omegaのようになる。
なお、カウンタの値の出力形式としては
\arabic(アラビア数字)
\roman(小文字のローマ数字)
\Roman(大文字のローマ数字)
\alph(小文字のアルファベット)
\Alph(大文字のアルファベット)
の5種類が用意されている。
amsthm パッケージでは \theoremstyle コマンドが認識する引数として
plain(見出しが立体ボールド、本文が斜体)
definition(見出しが立体ボールド、本文が立体)
remark(見出しが斜体、本文が立体)
が定義されている。これを追加するための原始的な方法は
以下のようにして \th@hogehoge という形のマクロを定義することである。
たとえば
見出しがサンセリフ・ゴシックの立体ボールド、本文がゴシックの定理環境が定義出来る。
plain(見出しが立体ボールド、本文が斜体)
definition(見出しが立体ボールド、本文が立体)
remark(見出しが斜体、本文が立体)
が定義されている。これを追加するための原始的な方法は
以下のようにして \th@hogehoge という形のマクロを定義することである。
たとえば
\makeatletter \def\th@comment{ \thm@headfont {\sffamily\gtfamily\bfseries }\gtfamily \thm@preskip \topsep \divide \thm@preskip \tw@ \thm@postskip \thm@preskip } \makeatotherと書いておくと、\theoremstyle{comment} とすることで
見出しがサンセリフ・ゴシックの立体ボールド、本文がゴシックの定理環境が定義出来る。
jsクラスで文字の大きさを 10pt 以外に指定するときは、
geometry パッケージのオプション引数における長さの指定を
in, cm などの単位ではなくて truein, truecm などによって行うこと。
例を挙げる。
\documentclass[a4paper,12pt]{jsarticle} \usepackage[papersize={210truemm,297truemm}, top=3truecm,bottom=3truecm,left=2truecm,right=2truecm]{geometry}とすれば、A4サイズ(210mm×297mm)の紙で上下に 3cm、左右に 2cm のマージンを設ける、
という指定がうまくいく。
コマンド(コントロールシーケンス)を
\csname コマンド名\endcsnameによって表現することが出来る.たとえば
\csname textbf\endcsname{hoge}は
\textbf{hoge}と等価である.
このことの簡単な応用の一例を挙げてみる.
\newcommand{\set}[3][big] {\csname#1l\endcsname\{#2\,\csname#1\endcsname|\,#3\csname#1r\endcsname\}}これは集合の内包的記述 { #2 | #3 } を表すマクロで,
オプション引き数 #1 によって中括弧や仕切り線の大きさを変えることが出来る.
※ こういう名前のソフトウェアなりパッケージなりがあるわけではない(と思う)。
※ pMetaPostという日本語化されたMetaPostがある(ことを最近知った)ので、もはや下記のような変な努力は必要ない。
※ pMetaPostという日本語化されたMetaPostがある(ことを最近知った)ので、もはや下記のような変な努力は必要ない。
日本語化された MetaPost が鈴木秀幸氏によって配布されているが、
これは古いバージョンに基づいたものである。
最新のバージョンの MetaPost で図画ファイルを作りつつ、
そこに日本語のラベルを貼り付けるには、どうすれば良いだろう?
「あきらめる」という道を選ぶことも一つの手だが、出来ればなんとか日本語ラベルを実現したい。
う〜ん…。
あ、MetaPost が生成する PS ファイルを TeX ファイルに読み込んで、
そこに無理やり「重ねうち」すれば、手間はかかるけれど、上記の望みは実現出来るじゃん。
というわけで、PS ファイルから、上記の目的を達するのに適した TeX ソースを吐き出すような
Perl スクリプトをやっつけで書いてみました。
これは古いバージョンに基づいたものである。
最新のバージョンの MetaPost で図画ファイルを作りつつ、
そこに日本語のラベルを貼り付けるには、どうすれば良いだろう?
「あきらめる」という道を選ぶことも一つの手だが、出来ればなんとか日本語ラベルを実現したい。
う〜ん…。
あ、MetaPost が生成する PS ファイルを TeX ファイルに読み込んで、
そこに無理やり「重ねうち」すれば、手間はかかるけれど、上記の望みは実現出来るじゃん。
というわけで、PS ファイルから、上記の目的を達するのに適した TeX ソースを吐き出すような
Perl スクリプトをやっつけで書いてみました。
#!/usr/local/bin/perl open(IN,$ARGV[0]) || die "しかし $ARGV[0] が見当たらなかった!\n"; while ($_ = <IN>) { if ($_ =~ /%%BoundingBox:/) { $_ =~ s/%%BoundingBox: //g; $_ =~ s/ /,/g; @data = split(/,/,$_); $picturewidth = $data[2]-$data[0]; $pictureheight = $data[3]-$data[1]; $paperwidth = $picturewidth+10; $paperheight = $pictureheight+10; print "%!TEX encoding = UTF-8 Unicode\n"; print "%!TEX TS-program = XeLaTeX\n"; print "\\documentclass{minimal}\n"; print "\\usepackage[dvipdfm]{graphicx}\n"; print "\\usepackage[cm-default]{fontspec}\n"; print "\\usepackage{type1cm}\n"; print "\\usepackage{amsmath,amsthm,amssymb}\n"; print "\\usepackage{stmaryrd,pifont}\n"; print "\\usepackage{ifthen}\n"; print "\\usepackage[paperwidth=$paperwidth"; print "pt,paperheight=$paperheight"; print "pt,margin=5pt]{geometry}\n"; print "\\begin{document}\n"; print "\\noindent%\n"; print "\\begin{picture}($picturewidth,$pictureheight)($data[0],$data[1])\n"; print "\\put($data[0],$data[1]){\\makebox{\\includegraphics{$ARGV[0]}}}%\n"; print "\\end{picture}%\n"; print "\\end{document}\n"; } } close(IN);特に何も工夫はない。
単に PS ファイルの Bounding Box の情報を抜き出してから
画像の大きさに「ほぼぴったり」の大きさの PDF ファイルを出力するようなオプションで
geometry パッケージを呼び出すようにしておいて、
その画像を picture 環境内にべたっと貼り付ける、という一連の作業を自動化しただけのもの。
あとは put 命令で試行錯誤しながらちまちまと文字を重ねうちしていけば良いだろう。
なお、このスクリプトは XeLaTeX での使用を想定して書かれている。
上記の内容を ps2pict.pl などという名前で保存しておき、
読み込みたい PS ファイル(それを hoge.mps としよう)と同じフォルダに置いておいて、
コマンドライン上で
読み込みたい PS ファイル(それを hoge.mps としよう)と同じフォルダに置いておいて、
コマンドライン上で
perl ps2pict.pl hoge.mps > out.texなどとやると、同じフォルダ内に
%!TEX encoding = UTF-8 Unicode %!TEX TS-program = XeLaTeX \documentclass{minimal} \usepackage[dvipdfm]{graphicx} \usepackage[cm-default]{fontspec} \usepackage{type1cm} \usepackage{amsmath,amsthm,amssymb} \usepackage{stmaryrd,pifont} \usepackage{ifthen} \usepackage[paperwidth=150pt,paperheight=169pt,margin=5pt]{geometry} \begin{document} \noindent% \begin{picture}(140,159)(-70,-89) \put(-70,-89){\makebox{\includegraphics{hoge.mps}}}% \end{picture}% \end{document}といった感じの内容を持つ out.tex というファイルが生成される。
mizchi blog "プログラミングエディタ Sublime Text2 を使ってみよう!"
とどろぐ! "Sublime Text 2でTeXをコンパイルする"
※ 1,2 は mizchi blog の記事を,3,4,5 はとどろぐ!の記事をそれぞれ参考にした.
※ MacTeX 2011 を使うことを前提とする.
とどろぐ! "Sublime Text 2でTeXをコンパイルする"
※ 1,2 は mizchi blog の記事を,3,4,5 はとどろぐ!の記事をそれぞれ参考にした.
※ MacTeX 2011 を使うことを前提とする.
View メニュー内の Show Console (ctrl+`) でコンソールを表示させておいて,
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())を実行する(一行で).
cmd+shift+p でコントロールパネルを開き,
Package Control: Install Package
を選ぶと,インストール可能なパッケージの一覧が取得される.
適当に latex とか文字を打ち込むと LaTeXTools が見つかるので,それを選ぶ.
Package Control: Install Package
を選ぶと,インストール可能なパッケージの一覧が取得される.
適当に latex とか文字を打ち込むと LaTeXTools が見つかるので,それを選ぶ.
そのままだとpLaTeXが通らないので,少しファイルをいじる.
~/Library/Application Support/Sublime Text 2/Packages/LaTeXTools/LaTeX.sublime-build
の34行目辺りにある
("-pdf" は pdflatex でコンパイルするためのオプション,
"-pv" はコンパイル後にPDFファイルをプレビューするためのオプション)
~/Library/Application Support/Sublime Text 2/Packages/LaTeXTools/LaTeX.sublime-build
の34行目辺りにある
"cmd": ["latexmk", "-e", "\\$pdflatex = 'pdflatex %O -interaction=nonstopmode -synctex=1 %S'", //"-silent", "-f", "-pdf"],の最後の "-pdf" を "-pv" に変更する.
("-pdf" は pdflatex でコンパイルするためのオプション,
"-pv" はコンパイル後にPDFファイルをプレビューするためのオプション)
こちらもまたpLaTeXを使うために,少しファイルを準備する.
(1) 適当な場所に dvipdfm_call.sh というシェルスクリプトファイルを作って設置する.
その中身は以下の通り.
私は ~/myscript/ というディレクトリを作って,そこに置いた.
(2) ホームディレクトリに ~/.latexmkrc というファイルを作成する.
その中身は以下のようにした.
(1) 適当な場所に dvipdfm_call.sh というシェルスクリプトファイルを作って設置する.
その中身は以下の通り.
#!/bin/sh if [ "$2" = "" ]; then dvipdfmx $1 else dvipdfmx -o $2 $1 fi(最後の空行を忘れないように)
私は ~/myscript/ というディレクトリを作って,そこに置いた.
(2) ホームディレクトリに ~/.latexmkrc というファイルを作成する.
その中身は以下のようにした.
$latex ="platex"; $bibtex = "pbibtex"; $makeindex = "mendex"; $dvipdf = "sh ~/myscripts/dvipdfmx_call.sh"; $dvips = "dvipsk"; $pdf_mode = 3; $pdf_previewer = "open -a preview.app";
タグ
最新コメント
2013-11-20
2013-11-15