投稿

pandoc + xelatex で日本語 PDF を作る

前の記事「 Ubuntu 16.04 LTS 上で Pandoc を使って markdown から PDF を生成する 」では  lualatex を使っていましたが,PDF の作成(タイプセット)の遅さが不満でした. たかが20〜30秒くらい,と言われそうですけど... いろいろ調べてみると  xelatex  は lualatex よりも速いらしく,早速試してみることにします. 例題 前の記事と同じ例題で,以下の文章を test.md という名前で保存します. % テスト % コタ これはテストデータです. 日本語でも PDF ファイルを生成できます. - test1 - test2 - test3 xelatex は前の記事のインストールでインストールされているので,新しくインストールする必要はありません. PDF の生成 PDF の生成は以下のようにします. $ pandoc -V documentclass=bxjsarticle -V classoption=pandoc,ja=standard --latex-engine=xelatex test.md -o test.pdf 時間計測 どのくらいタイプセットが違うのか調べてみました. $ time pandoc -V documentclass=ltjarticle --latex-engine=lualatex test.md -o test.pdf real 0m23.911s user 0m23.220s sys 0m0.684s $ time pandoc -V documentclass=bxjsarticle -V classoption=pandoc,ja=standard --latex-engine=xelatex test.md -o test.pdf real 0m6.510s user 0m6.132s sys 0m0.388s lualatex を使う時と比べて  xelatex を使うほうが3倍ほど速いようです. 今日はここまで.

OS自作入門 on Ubuntu 16.04 (2日目)

2日目の内容は, 1日目 で作成したアセンブラコード(helloos2.s)のプログラム本体をちゃんとアセンブラで実装するようです.プログラム本体は DB 命令でよくわからない16進数のデータを打ち込んでいますが,これは言わば機械語のプログラムです.この機械語のプログラムをちゃんとアセンブラコードとして書いていきましょう. ツールのインストール 1日目に使ったツール以外にインストールするものはありません. helloos5.s への書き換え 16ビットバイナリの生成 2日目のアセンブラの説明を読むと分かるのですが,ここで出てくるアセンブラコードは 16 ビットの命令を前提としています.AX レジスタが 16 ビットというところから分かると思います.ただ,Ubuntu 16.04 で x86_64 版は 64 ビット OS ですので,16 ビット命令として機械語を生成する必要があります.ですので,アセンブラコードの先頭に .code16 という行を追加する必要があります. レジスタの書き方 NASK(NASM)では AX レジスタは単に AX と記述すればよかったのですが,GAS では % をつける必要があります.AX レジスタであれば,%axという具合です. 数値の書き方 NASK(NASM)では単に 0 と書けばよかったのですが,GAS では $ をつけて $0 とします.16進数の場合も同じで,0x0e を GAS では $0x0e と書きます. ORG 命令 コードの最初に出てくる ORG 命令ですが,これに対応する GAS の命令ないようです.無いってどういうこと?と疑問が膨らみますが,どうやら NASK(NASM)と GAS は構文が異なるだけでなく,細かい違いもあるようです. NASK の ORG 命令はプログラムの本体がどこにあるかを指定しますが,GAS ではプログラム中に書くのではなく,アセンブラにオプションとして与える方針です.とりあえずスキップして先に進みましょう.後でこれに対応する方法を書きます. JMP 命令 ORG 命令の下には JMP 命令があります.これは GAS でも同じように jmp entry と書けばOKです.ところで, helloos2.s では JMP

Ubuntu 16.04 LTS に広告ブロックを実装した Opera 37 をインストール

2016年5月4日にリリースされた Opera 37 を Ubuntu 16.04 LTS にインストールします. Opera 37 は広告ブロック機能が内蔵されていて,表示が高速らしいのでインストールしてみることにしました. apt でインストールされるのは Opera 36 なので,Opera 37 を 公式ホームページ からダウンロードします. 現時点では opera-stable_37.0.2178.32_amd64.deb がダウンロードできます. インストールは簡単で,ダウンロードしたファイルのあるディレクトリで, $ sudo dpkg -i opera-stable_37.0.2178.32_amd64.deb とするだけです. ランチャーの一番上にある「コンピューターを検索」で Opera を検索するとアイコンが出てきますので,ランチャーに登録しておくと便利かもしれません. Opera を起動すると,初期設定が始まります. ここで広告ブロックを有効化(デフォルトでは無効化されているようです)すればOKです. 使ってみた感想は... 「は,はやいっ!」 です. これまでデフォルトでインストールされていた Firefox を使っていましたが,それと比べて速度向上が体感できました. 試してみる価値はあると思います. 今のところ, ブログ更新には問題がない Gmail にも問題がない ので,しばらく Opera を使ってみようと思います. Firefox の出番は随分減っちゃうと思います. ただ,Opera に未対応のウェブページを閲覧するために Firefox は残してあります. ディスクの肥やしになってくれれば...

OS自作入門 on Ubuntu 16.04 (1日目)

「30日でできる!OS自作入門」(川合秀実著)で OS の勉強を始めたのですが,Ubuntu 16.04 LTS 環境で試したいと思います. 1日目は バイナリエディタで直接 OS イメージを作成する 18万行のアセンブラコードを書いて OS イメージを作成する 22行のアセンブラコードを書いて OS イメージを作成する 50行の「かなりそれっぽいソースプログラム」(アセンブラ)を書いて OS イメージを作成する の4つがありますが,4.だけ試します. ツールのインストール GNU assembler と QEMU をインストールします. $ sudo apt install binutils qemu インストールされた GNU assembler のバージョンは 2.26,QEMU のバージョンは 2.5.0 です. NASKとGASとの違い 構文が違うようです. NASK は NASM をベースとしたアセンブラで,「インテル構文」と呼ばれる書き方です. 一方,GAS は「AT&T構文」と呼ばれる書き方です. 書き方は異なりますが,大きく違うわけでは無いようで,意味的にはさほど変わりません. helloos2.s の書き換え DB命令の意味は,「ファイルの内容を1バイトだけ直接書く」ですが,GAS のAT&T構文では,DBの代わりに .byte と書きます. つまり, DB 1 となっているところを GAS では .byte 1 とします. 見た目は若干違いますが,意味は同じです. ところが,DB命令の次が文字列の場合は .byte ではなく,.ascii を使います. つまり, DB "HELLOIPL" は .ascii "HELLOIPL" と書きます.ややこしいですね. DW命令とDD命令は .word と .long に置き換えるだけです. RESB命令は少しややこしいです. .org を使えばいいのですが,単純な置き換えではありません. RESB 18 は .org .+18 と書きます. RESB命令を .org に書き換えて,次の数字の前に .+ を加えています.

Ubuntu 16.04 LTS 上で Pandoc を使って markdown から PDF を生成する

Ubuntu 16.04 LTS 上で Pandoc を使って markdown から PDF を生成させる方法です. インストール apt を使って pandoc をインストールしてもいいのですが,ここでは最新版(1.17.0.2)をインストールします. Pandoc のウェブページ( http://pandoc.org/ )より,pandoc-1.17.0.2-1-amd64.deb をダウンロードします. 次に,dpkg を使って以下のようにインストールします. $ sudo dpkg -i pandoc-1.17.0.2-1-amd64.deb pandoc でmarkdown から PDF を生成するために TeX 環境が必要ですので, apt を使って TeXLive 等をインストールします. $ sudo apt install texlive texlive-lang-cjk texlive-luatex texlive-xetex 以上でインストールは完了です. PDF の生成 以下の markdown を test.md というファイル名で保存します. % テスト % コタ これはテストデータです. 日本語でも PDF ファイルを生成できます. - test1 - test2 - test3 PDF の生成は以下のようにします. $ pandoc -V documentclass=ltjarticle --latex-engine=lualatex  test.md -o test.pdf Pandoc の使い方などは他のページ等でたくさん紹介されていますので,ここでは割愛します. ハマリポイント TeXLive 環境が不充分だといろいろエラーが出ます. 最初,texlive と texlive-lang-cjk しかインストールしていなくて,上のように PDF を生成させてみたところ, ! LaTeX Error: File `luatexbase.sty' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: sty) En

mozc で日本語入力

前回 の続きです. 日本語表示がきれいになりましたが,まだ日本語入力ができていません. mozc をインストールして日本語入力ができるようにします. 概要 yaourt で mozc と uim-mozc をインストールします.インストールに必要な pkg-config もインストールします.mozc の設定は基本的に こちら と同じです. pkg-config のインストール Pacman を使って pkg-config をインストールします. $ sudo pacman -S pkg-config mozc と uim-mozc のインストール 前に mozc をインストールした時 は非公式ユーザーリポジトリ  nsft-pur を使いましたが,現在は yaourt でもインストールできるようです.ただ,インストールの途中でコケることもしばしばらしいので,yaourt でインストールに失敗したら nsft-pur を使ってみるのがいいかもしれません.幸い,現時点ではインストールに成功するようです.加えて,yaourt を使う場合は自分のPCでコンパイルするため,gcc-5.3.0 や clang-3.7.1 などコンパイルに必要なツール等をインストールしたり,mozc のソースコードを git で取得したりといろいろ時間がかかります.お好みの方をお選びください.ここでは yaourt を使う方法を選択しています. 以下のように yaourt を使って mozc と uim-mozc をインストールします. $ yaourt -S mozc uim-mozc mozc の設定 基本的に こちら と同じです.~/.xprofile に以下の5行を追加します..xprofile がなければ新規で作成します. export GTK_IM_MODULE='uim' export QT_IM_MODULE='uim' export XMODIFIERS='@im=uim' uim-xim & uim-toolbar-gtk-systray & 以下のように uim-pref-gtk を起動して,システムトレイの表示を正しくします. $ uim-pr

ttf-ricty をインストールして美しい日本語表示に

前回 の続きです. ArchBang Linux をインストールした直後は日本語フォントがとても汚いです.ttf-ricty をインストールして,美しい日本語表示にします. 概要 yaourt をインストールします.ttf-ricty をインストールするのに必要な binutils と fakeroot もインストールします. Yaourt のインストール 最新の Pacman (5.0.0 以上)がインストールされていて設定ができていれば,yaourt のインストールの準備が整っています. まずは /etc/pacman.conf の最後の行に以下の3行を追加します. [archlinuxfr] SigLevel = Never Server = http://repo.archlinux.fr/$arch 次にターミナルで以下のようにして yaourt をインストールします. $ sudo pacman --sync --refresh yaourt これで完了です. binutils と fakeroot のインストール Pacman を使って以下のように binutils と fakeroot をインストールします. $ sudo pacman -S binutils fakeroot ttf-ricty のインストール Yaourt を使って ttf-ricty をインストールします. $ yaourt -S ttf-ricty 「sudo 使わなくて良いの?」と思われるかもしれませんが,yaourt を使うときに sudo は不要です. yaourt でインストールするときにいろいろ質問されます. 「編集しますか?」という質問にはすべて n で答えます. 「ビルドを続行しますか?」という質問にはすべて y で答えます. つまり,デフォルトの設定を使ってインストールを進めてもらうことになります. ttf-ricty のインストールが完了したら再起動させてみましょう. 設定を何も変更していませんが,美しい日本語表示に変わっています. 以上です. 宿題: 日本語入力がまだできません. 解決方法は こちら .