2012/11/25

Ubuntu12.04のまっさらの状態からtex環境導入まで

私はUbuntu12.04を使っていたのですが、ソフトウェアセンターの進行状況に"検索"という項が出たままになり、キャンセルしても直らず、強制終了や再起動をしても直りませんでした。

ネットで検索しても解決方法はわからず・・・

このままだと、新しいアプリケーションのインストールやアップデートが行えないので、やむなくファイルのバックアップをとり、Ubuntu12.04を再インストールしました。

UbuntuでTeX環境をどうしようかと考えている人もいるかと思うので、自分の中で一番簡単だと落ち着いた方法を紹介します。

1.texliveのインストール
texの基本となる部分を作ります。

Ubuntuソフトウェアセンターを開き、検索窓に「texlive」と打ち込みます。

search_texlive.png

画像で示しているような検索結果が出たら、画像でオレンジに選択されているソフトウェアをインストールします。
(この際ユーザーが設定したパスワードを聞かれます。)

2.platexのインストール
texを日本語に対応させるためのものです。

Ubuntuソフトウェアセンター上の検索窓で「platex」と打ち込みます。
画像で選択しているソフトウェアをインストールします。(奥村晴彦さんによって拡張されたptexのパッケージです)。

search_okumuraplatex.png


3.おすすめTeXエディタ「Texmaker」のインストール
TeXのエディタはたくさんありますが、私は機能が充実していて、デザインもよい「Texmaker」をおすすめします。
設定さえすれば、ワンクリックでPDFファイルを作ることができます。

Ubuntuソフトウェアセンターの検索窓で「texmaker」と打ち込んで出てくるソフトウェアをインストールします。


search_texmaker.png


4.Texmakerの設定
インストールした「Texmaker」ですが、そのままでは日本語を含むTeXファイルをPDFにすることはできません。
上までの操作より少々難しくなりますが、丁寧に説明します。

1.Texmakerの日本語化(省略可・推奨)
現時点でUbuntuソフトウェアセンターからインストールされるTexmakerのバージョンは3.2です。

フォーラムのほうでTexmaker日本語化キット3.4が公開されており、これを用いても正常にメニューなどを日本語化することができました。以下にリンクを示します。

Texmaker 日本語化キット

リンク先で
「texmaker-3.4_ja.zip」をクリックすると、ログインを求められると思います。
ここは面倒くさがらずにアカウントを作成し、ログインしましょう。

ログインした状態でもう一度リンク先の「texmaker-3.4_ja.zip」をクリックするとzipファイルがダウンロードされます。それを適当な場所に展開します(ここでは~/Downloads 以下に展開したとします)。すると「texmaker-3.4_ja」というフォルダが生成されます。

中にある「README.txt」に日本語化の方法が書かれていますが、書き込みの権限などから端末操作を行う必要があるので、詳しく説明します。

端末を開き、そこに打ち込んでいくコマンドを示します。Downloadsとしている部分は展開した場所により変更してください。
~$ cd Downloads/texmaker-3.4_ja #ディレクトリの移動
~$ sudo cp qt_ja.qm /usr/share/texmaker #管理者権限でqt_ja.qmを/usr/share/texmakerにコピー
 #パスワードを聞かれる
~$ sudo cp texmaker_ja.qm /usr/share/texmaker #管理者権限でtexmaker_ja.qmを/usr/share/texmakerにコピー


以上を行い、Texmakerを起動すればメニューが日本語化されているはずです。

2.日本語変換が真っ黒になるのを防ぐ(強く推奨)
通常起動したTexmakerで文書を書いていると、日本語変換をした際、文字が黒く塗りつぶされて候補を表示するので非常に見にくいです。これを解決するため、私は以下に示すシェルを作成し端末から起動しています。
(端末起動に「Guake Terminal」を用いるとF12キーを押すだけで端末が起動されます。便利なのでソフトウェアセンターからインストールしてみてください。)

追記2012/11/26:まず端末上にて「sudo apt-get install ibus-qt4」と打ち込んでibus-qt4を導入しておく必要があります。)

まずhomeディレクトリに「tmk.sh」というファイルを作ります。
その内容は


#!/bin/sh
export QT_IM_MODULE="ibus"
texmaker &


とします。
実行権限の付与、パスを通すなど、端末で行う作業を以下に示します。端末を開いて、

~$ chmod +x tmk.sh #実行権限の付与
~$ mkdir mycommand #自作コマンドの保管場所mycommandの作成(名前は任意)
~$ mv tmk.sh mycommand #tmk.shをmycommandに移す
~$ PATH=~/mycommand:$PATH
~$ export PATH #パスを通す 


と入力すると、端末上でどのディレクトリにいても「tmk.sh」と入力すればTexmakerを変換の際文字が黒く塗りつぶされない状態で起動することができます。
追記2012/12/3:上の設定では、パソコンを起動するたびにPATHを通す作業をしなければならないので面倒です。以下のようにすることで、起動のたびに自動でPATHを設定することができます。

まず、ホームフォルダを開き、メニューから「表示>隠しファイルを表示する」にチェックを入れます。すると、「.bashrc」というファイルがあるので、適当なエディタで開き、一番最後の行に次の一文を書き加えます。
PATH=$PATH:~/mycommand

そして、保存し、端末上で
~$ source ~/.bashrc

と打ち込み変更を反映させます。

以降、パソコンを起動するたびに自動で「mycommand」へのPATHが設定されますので、端末を開き「tmk.sh」と入力するだけで、変換時に黒くならない状態でTexmakerを起動することができます。)

3.Texmakerの設定(本題)
ではTexmakerで日本語texを使用するための具体的な設定を説明します。

Texmakerを起動し、メニューの「オプション>Texmakerの設定」を開きます。すると以下のようなウィンドウが開くと思います。左側から「コマンド」タブを選ぶと表示される部分を編集します。

texmaker_command.png


赤で囲んだ部分が私が手を加えて変更した部分です。図のとおり、文字で書きますと

LaTeX
platex -synctex=1 -interaction=nonstopmode %.tex

Dvipdfm
dvipdfmx -f ptex-ipaex.map %.dvi

metapost
pmpost -interaction=nonstopmode %

のとおりに変更してください。「PDFビューア」の「埋め込み」のチェックは外しておいたほうが個人的には使いやすいです。

次に「クイックビルド」タブを選択すると以下のような画面になるかと思います。

texmaker_quick.png


画像で選んでいるように
LaTeX + dvipdfm +PDFファイルを表示」を選択してください。

最後に、スペルチェックが日本語全体にかかって赤の下線ばかりになるのが鬱陶しいのでスペルチェックを外します。

上までと同様にTexmakerの設定から「エディタ」タブを選択し、画像のカーソルがあるあたりの「インライン」のチェックを外します。これで自動的なスペルチェックが消えます。

texmaker_editor.png


(追記2013/01/17「エディタ」タブの中にある「エディタフォントのエンコーディング」(上から3つめ)の選択をUTF-8からEUC-JPに変更しておかないと簡単コンパイルを行った際に文字化けしました。)

以上でUbuntuにまっさらの状態からTeX環境を構築する手順の説明は終わりです。

TeX文書の作成にはいろいろなサイトや書籍が参考になりますのでご覧ください。

Texmakerにて文書を作成し、コンパイルしてPDFまで表示させるにはF1を押すか、クイックビルド左の矢印をクリックすればOKです。(初回のコンパイル前には文書を保存しておく必要があります。)

日本語TeX文書の例を以下に示します。初めてTeX文書を作られる方は試しにコピーして貼り付け、保存した後にTexmaker上でコンパイルしてみてください。


\documentclass[12pt]{jsarticle}
\usepackage[dvipdfm]{graphicx}
\usepackage{pxfonts}
\pagestyle{empty}

%% 高さの設定
\setlength{\textheight}{\paperheight} % ひとまず紙面を本文領域に
\setlength{\topmargin}{-5.4truemm} % 上の余白を20mm(=1inch-5.4mm)に
\addtolength{\topmargin}{-\headheight} %
\addtolength{\topmargin}{-\headsep} % ヘッダの分だけ本文領域を移動させる
\addtolength{\textheight}{-40truemm} % 下の余白も20mmに
%% 幅の設定
\setlength{\textwidth}{\paperwidth} % ひとまず紙面を本文領域に
\setlength{\oddsidemargin}{-5.4truemm} % 左の余白を20mm(=1inch-5.4mm)に
\setlength{\evensidemargin}{-5.4truemm} %
\addtolength{\textwidth}{-40truemm} % 右の余白も20mmに
\begin{document}


\title {TeXサンプル}
\author{Chaos Lab.}
\date{2012.11.25}
\maketitle

\section{コーシーの積分表示}
\subsection{コーシーの積分表示}
$f(z)$は領域$D$で正則であるとする。$D$内に単一閉曲線$C$があるとき、点$a$が$C$の内部にあるならば次式が成り立つ。
\begin{equation}
f(a)=\frac{1}{2\pi i}\int _C \frac{f(z)}{z-a}dz
\end{equation}
\subsection{練習問題}
次の積分を求めよ。ただし$C$は$|z|=2$とする。
\begin{equation}
\int _C\frac{z^3}{z+i}dz
\end{equation}
\subsubsection*{$<$解答$>$}
点$z=-i$は円$C$の内部にあり\footnote{$\frac{z^3}{z+i}=\frac{z^3}{z-(-i)} 虚数軸上の点(0,-i)は円C:|z|=2の内部にある。$}、
$f(z)=z^3$は$C$の内部で正則であるから、コーシの積分表示から
\begin{eqnarray*}
\frac{1}{2\pi i}\int _C\frac{z^3}{z+i}dz=f(-i)=(-i)^3&=&i\\
よって   \int _C\frac{z^3}{z+i}dz=2\pi i^2&=&\underline{-2\pi}
\end{eqnarray*}

\end{document}

それではまた次の記事で。
スポンサーサイト
2012/11/25

ピタゴラスの木

ピタゴラスの木というフラクタル図形があります。

詳しいことはリンク参照のこととして、私がこの図形を描こうとネットをさまよっていたところ、英語サイトのフォーラムでjavaによるピタゴラスの木を描画するプログラムを見つけました。参照元は申し訳ありませんが忘れてしまいました。以下にjavaのプログラムを載せますが、私が書いたわけではありません。


/*ピタゴラスの木を描くプログラム*/
import java.awt.*;
import java.util.Scanner;
import javax.swing.*;

public class Main extends JFrame {;

public Main(int n) {
setSize(900, 900);
setTitle("Pythagoras tree");
add(new Draw(n));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Give amount of steps: ");
new Main(sc.nextInt());
}
}

class Draw extends JComponent {
private int height = 900;
private int width = 900;
private int steps;

public Draw(int n) {
steps = n;

Dimension d = new Dimension(width, height);
setMinimumSize(d);
setPreferredSize(d);
setMaximumSize(d);
}

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.white);
g.fillRect(0, 0, width, height);
g.setColor(Color.black);

int x1, x2, x3, y1, y2, y3;
int base = width/7;

x1 = (width/2)-(base/2);
x2 = (width/2)+(base/2);
x3 = width/2;
y1 = (height-(height/15))-base;
y2 = height-(height/15);
y3 = (height-(height/15))-(base+(base/2));

//paint
g.drawPolygon(new int[]{x1, x1, x2, x2, x1}, new int[]{y1, y2, y2, y1, y1}, 5);

int n1 = steps;
if(--n1 > 0){
g.drawPolygon(new int[] {x1, x3, x2}, new int[] {y1, y3, y1}, 3);
paintMore(n1, g, x1, x3, x2, y1, y3, y1);
paintMore(n1, g, x2, x3, x1, y1, y3, y1);
}
}

public void paintMore(int n1, Graphics g, double x1_1, double x2_1, double x3_1, double y1_1, double y2_1, double y3_1){
double x1, x2, x3, y1, y2, y3;
//counting
x1 = x1_1 + (x2_1-x3_1);
x2 = x2_1 + (x2_1-x3_1);
x3 = ((x2_1 + (x2_1-x3_1)) + ((x2_1-x3_1)/2)) + ((x1_1-x2_1)/2);
y1 = y1_1 + (y2_1-y3_1);
y2 = y2_1 + (y2_1-y3_1);
y3 = ((y1_1 + (y2_1-y3_1)) + ((y2_1-y1_1)/2)) + ((y2_1-y3_1)/2);

//paint
g.setColor(Color.green);
g.drawPolygon(new int[] {(int)x1, (int)x2, (int)x2_1, (int)x1},
new int[] {(int)y1, (int)y2, (int)y2_1, (int)y1}, 4);

g.drawLine((int)x1, (int)y1, (int)x1_1, (int)y1_1);
g.drawLine((int)x2_1, (int)y2_1, (int)x2, (int)y2);
g.drawLine((int)x1, (int)y1, (int)x2, (int)y2);

if(--n1 > 0){
g.drawLine((int)x1, (int)y1, (int)x3, (int)y3);
g.drawLine((int)x2, (int)y2, (int)x3, (int)y3);
paintMore(n1, g, x1, x3, x2, y1, y3, y2);
paintMore(n1, g, x2, x3, x1, y2, y3, y1);
}
}
}



このファイルをコンパイルし実行すると、繰り返し回数を聞かれるので、値を代入するとウィンドウが開きそこにピタゴラスの木が表示されます。以下に様々な繰り返し回数Nに対する出力結果を示します。クリックで拡大してみてください。


pythagoras_step4.png pythagoras_step6.png
N=4                    N=6

pythagoras_step8.png pythagoras_step10.png
N=8                    N=10


pythagoras_step12.pngpythagoras_step15.png
N=12                    N=15



カオスとフラクタルは同時に顔を出すことが多く、カオス入門書などにもほとんどフラクタルについて触れられています。

JAVAの環境が揃っている方はぜひプログラムをコンパイルして実行してみてください。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。