Showing posts with label プログラミング. Show all posts
Showing posts with label プログラミング. Show all posts

Dvipdfmx のエラー@二号機

二号機 (OS: XUbuntu) において jsarticle のクラスで作成した日本語の tex ファイル(pLaTeX でコンパイル済)を dvipdfmx で pdf ファイルに変換しようとしたら,ここの質問者(dafu氏)と同じエラーが発生.

[解決法]
1. dafu 氏の自己レスを参考に cmap-adobe-japan2 と gs-cjk-resource と poppler-data を「デスクトップ上で右クリック>アプリケーション>システム>Synaptic パッケージマネージャ」でインストール.
2. ここを参考に /etc/texmf/dvipdfm/dvipdfmx.cfg と /etc/texmf/dvipdfmx/dvipdfmx.cfg の両方を chmod で書き込み可能にする(管理者権限が必要).

$ sudo chmod 777 /etc/texmf/dvipdfm/dvipdfmx.cfg
$ sudo chmod 777 /etc/texmf/dvipdfmx/dvipdfmx.cfg
3. Emacs などのテキストエディタでそれぞれのファイルの末尾に次の一文を追記.

f jis-cjk.map
4. 二つのファイルを保存し chmod で書き込み不可能に戻す.

$ sudo chmod 444 /etc/texmf/dvipdfm/dvipdfmx.cfg
$ sudo chmod 444 /etc/texmf/dvipdfmx/dvipdfmx.cfg
5. (必要かどうか不明だが念のため)次のコマンドを実行.

$ sudo update-vfontmap

Lisp-Stat

TeX で正規分布表などを表示したいと思い,Lisp-Stat を三号機 (OS: Mac OS X 10.6) にインストールした.インストールの方法はここを参照した. インストール自体は成功したが,
$ /usr/local/bin/xlispstat
(つまり絶対パス)でなければ起動しなかった.そのため .Xauthority のパスの設定を修正した.

TeX の箇条書きの番号を途中から始めたいとき

例えば,enumerate 環境を使って次のような文章が書きたいとしよう.
 1. かくかく
 2. しかじか

ところで,うんたらかんたら・・・.

 3. かもしか
 4. ちでじか
そんな時は TeX ファイルでは次のように書く(プリアンブルは省略).
\begin{enumerate}
\item かくかく
\item しかじか
\end{enumerate}

ところで,うんたらかんたら・・・.

\begin{enumerate}
\setcounter{enumi}{2} % <- \begin{enumerate} の直後.続けたい番号より一つ前!
\item かもしか
\item ちでじか
\end{enumerate}

丸囲み数字

丸囲み数字の出し方は色々あるが個人的には以下を薦める:次をプリアンブルに書けば良い.
\def\maru#1{\leavevmode\setbox0\hbox{$\bigcirc$}%
\copy0\kern-\wd0 \hbox to\wd0{\hfil{\scriptsize#1}\hfil}}

これで数字なら二桁,アルファベット・仮名なら一文字出力できる.

出力例:
\maru{6} \quad \maru{94} \quad \maru{a} \\ 
\maru{B} \quad \maru{\textrm{あ}} \quad \maru{\textrm{イ}}

参考:styleuse.sty

追記 (2012/01/16):数式モードで*や★,∵を出力する場合は上の \scriptsize は外した方が見易い.つまり,
\def\marub#1{\leavevmode\setbox0\hbox{$\bigcirc$}%
\copy0\kern-\wd0 \hbox to\wd0{\hfil{#1}\hfil}}
として,
\marub{$\ast$} \quad \marub{$\star$} \quad \marub{$\because$}
とする.

三号機に於ける XEmacs のマウスのホイール

三号機(原子炉でない方)の X11 内の XEmacs 21.4 でマウスのホイールが使えなかったが以下の方法で改善した.

1. ターミナルで chmod で ~/.xemacs/init.el を編集可能にする.
$ cd .xemacs
$ chmod 777 init.el
2. emacs で init.el を起動.
$ emacs init.el 
3. init.el の任意の場所(他の関数の間に挟まない事)に以下をコピペ.
;; scroll on wheel of mouses                                                                                         

(if (not (boundp 'MULE))
(if (featurep 'xemacs)
;; xemacs20, xemacs21
(progn
(define-key global-map 'button4
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-down 5)
(select-window curwin)
)))
(define-key global-map [(shift button4)]
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-down 1)
(select-window curwin)
)))
(define-key global-map [(control button4)]
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-down)
(select-window curwin)
)))
(define-key global-map 'button5
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-up 5)
(select-window curwin)
)))
(define-key global-map [(shift button5)]
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-up 1)
(select-window curwin)
)))
(define-key global-map [(control button5)]
'(lambda (&rest args)
(interactive)
(let ((curwin (selected-window)))
(select-window (car (mouse-pixel-position)))
(scroll-up)
(select-window curwin)
)))
)
)
)
4. emacs を閉じて chmod で init.el を編集不可能にする.
$ chmod 444 init.el

参考:
JUST LINUX

三号機に於ける文字化け対処法

三号機の X11 に於いて珍獣・モジバケに襲撃されたが,以下の方法にて撃退した:三号機の X11 で XEmacs または他のアプリ(例えばウェブブラウザ等)から XEmacs に文字列をコピペしようとした時に文字が「~~~~~~~」てな感じになったと.ウェブで調べたら以下のコマンドが lisp ファイル(自分の場合は ~/.xemacs/init.el)に書かれていなかったのが原因らしい.よって,
(setq x-select-enable-clipboard t)
を ~/.xemacs/init.el に追加.XEmacs 内のコピペに関しては解決したが,他のアプリからのコピペは上手くいかない.

参考:
徹夜族—Ubuntu 8.10 セットアップ ログ
CopyAndPaste

YaTeX のインストール

三号機では(XEmacs をインスコしてしまったからか) MacPorts で TeXmacs がインスコ出来ないようなので,ここを参考に YaTeX をインスコした.作業は全てターミナルで行った.


※ carbon Emacs をお使いの方は以下の方法では YaTeX をインストール出来ません.5. の方法を適宜読み替えてください.


1. 野鳥の公式サイトから yatex1.74.tar.gz をダウンロード.
2. ファイルがダウンロードされたディレクトリ(自分の場合は ~/downloads)に移動.OSX 10.6 ではダウンロード時に gzip が解凍される仕様のため gzip 解凍オプション抜きで tar コマンドでファイルを展開.
$ cd ~/downloads
$ sudo tar -xvf yatex1.74.tar
3. yatex1.74 に移動.
$ cd yatex1.74
4. chmod コマンドでファイルを編集可能にし,エディタ(ここではターミナルの Emacs)で makefile を開く.
$ chmod 777 makefile
$ emacs makefile
5. MacPorts は /opt/local/ 以下にインスコされるから,PREFIX の箇所を
PREFIX  = /opt/local
とする.また次の通り mule2 の項をコメントアウトし xemacs の項のコメントアウトを解除.
## mule2 
#EMACS = mule
#EMACSDIR= ${PREFIX}/lib/${EMACS}
## emacs20
#EMACS = emacs
#EMACSDIR= ${PREFIX}/share/${EMACS}
## XEmacs
EMACS = xemacs
EMACSDIR= ${PREFIX}/lib/${EMACS}
## Meadow (Sample)
#EMACS = meadow
#EMACSDIR = c:/usr/local/meadow
## CarbonEmacs on Darwin (Sample)
#EMACS = /Applications/Emacs.app/Contents/MacOS/Emacs
#PREFIX = /Applications/Emacs.app/Contents/Resources
#EMACSDIR = ${PREFIX}
6. 編集が終了したら保存.その後 chmod で再度編集不能にし make install でインストール.
$ chmod 444 makefile
$ sudo make install
$ sudo make install-info
7. エラーが無い事を確認した上で xemacs の設定ファイルを書き込み可能にして,
$ cd ~/.xemacs
$ chmod 777 init.el
とし init.el を編集可能にする.エディタで
$ emacs init.el 
と開き,以下の内容をファイルの最後に記述.
;;; YaTeX
;; yatex-mode の起動
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
;; 野鳥が置いてある directry の load-path 設定
;; default で load-path が通っている場合は必要ありません
(setq load-path
(cons (expand-file-name
"~/share/emacs/site-lisp/yatex") load-path))
;; 文章作成時の日本語文字コード
;; 0: no-converion
;; 1: Shift JIS (windows & dos default)
;; 2: ISO-2022-JP (other default)
;; 3: EUC
;; 4: UTF-8
(setq YaTeX-kanji-code 4)
8. X11 を起動し xterm 等で XEmacs を起動.
$ xemacs &
9. エラーメッセージや不具合等が無ければ成功.漢字のコードが合わなければコードが合う迄 7. の最終行を変更.成功したら chmod で init.el を編集不能にする.
$ chmod 444 ~/.xemacs/init.el

Perl 版 "Hello world" サンプルプログラム

前言撤回し、Perl で Hello world を作成;emacs でファイル名を hello.pl として下記の通り編集。
print "Hello World!\n";
こいつをコマンドラインで
$ perl hello.pl
とする。
Hello World!
と表示され成功。

色んな言語の "Hello, world!"

実は "Hello, world!" のサンプルプログラム集が既にあったようで。

ウィキペディア
Hello world 用のウィキの頁

Fortran の "Hello, world!"

Emacs で以下のファイル(ファイル名は sample00.f90)を編集。
write(*,*), 'Hello, world!'
stop
end
あとは、コマンドラインで
$ gfortran sample00.f90
とし、エラーメッセージが無い事を確認してから、
$ ./a.out
とすれば、"Hello, world!" が表示される。

Pascal の "Hello, world!"

emacs でファイル名を sample0.p として次の通り編集。
program sample0;
begin
writeln('Hello, world!');
end.
保存後、
$ fpc sample0.p 
としてコンパイル。あとは、
$ open sample0 
とすれば、ターミナルが開き "Hello, world!" が表示される。

Pascal ≠ Free Pascal

一号機で Pascal を使ってみようと思い、fink でコンパイラを探したら、Free Pascal なるものを発見。早速、
$ sudo fink install fpc
でダウンロード+インストール。鹿児島大の情報教育のページで Pascal のサンプルプログラムを見つけ、これを emacs にコピペ(ファイル名は sample0.p)して
$ fpc sample0.p  
としてコンパイル成功。然し、
$ sample0
としても、「コマンドが見つかりません」状態。何故?

調べてみたら、「Pascal と Free Pascal は別物。Free Pascal はどちらかと言うと Delphi に近い」らしい(参考)。

てことは、Free Pascal を使う時は Free Pascal 用のプログラムを書かなきゃいけんのか?

とりあえずエラーを一件ゲットだぜ!(次回へ続く)

参考:
高校数学の窓 LaTeX 版
free pascal
Free Pascal ‐ウィキペディア