2014年9月17日水曜日

psfragでepsファイルに数式を入力する

LaTeXで図を入力するにはepsファイルを作成するのがシンプルな方法である. gnuplotやtgifならepsファイルの出力をサポートしているしベクター画像だから, 拡大や縮小にも問題がほとんどおきない.

ただ, epsファイルに数式を入力したいとなると, 少し面倒な作業が必要になる. 方針としては,
  1. epsファイルをTeXに取り込んで, 文字部分を数式に置き換える(psfragを使う).
  2. dvipsでepsファイルを作成する.
  3. epsファイルから余分な情報を取り除く.
  4. 必要に応じて, バウンディングボックスを修正する.
という感じ. 一つづつ説明する.

  1. epsファイルをTeXに取り込んで, 文字部分を数式に置き換える(psfragを使う).
    gnuplotの場合はtgif形式に出力できる.

    set term tgif
    set output "hogehoge.obj"

    とすればよい.

    tgifで数式に変更したいところに, 適当な文字(例えばギリシャ文字のΩを入力したかったら, Omega とか)を入力しておく. そのあと, tgifからepsファイルに出力しておく.

    次に, texファイルで上で作ったepsファイルを取り込み, ソースのプリアンブルに

    \usepackage[dvips]{psfrag}

    を書きこみ, さらに本文中のepsファイルを取り込む前に

    \psfrag{Omega}{$\Omega$}

    と入力する(\mathversion{bold}とか\bfを入れるかは御自由に). これをlatexでコンパイルする. なお, 出てきたdviファイルを見てもあまり意味がない.
  2. dvipsでepsファイルを作成する.

    上で得られたdviファイルをdvipsでepsに変換する.

    dvips -D 1200 -E hogehoge.dvi -o fugafuga.eps

    この -D 1200 は解像度として1200dpiとすることを表す. 入れても入れなくても大差はないし, もっと大きな値にしてもよい. -E はepsを出力するオプション.
  3. epsファイルから余分な情報を取り除く.
    今までは上記で

    dvips -D 1200 hogehoge.dvi

    としたあとに

    ps2eps hogehoge.ps hogehoge.eps

    としていたのだが, これで作ったepsファイルはdvipsに対応していない場合がある. すると, arXivなどで投稿するときに, 画像ファイルの数式が出力されないといったおかしなことがおこることがある(日本数学会のアブストラクトで, 不等式やら\Omegaやらが出力されていないものがあったが, その理由はここに起因しているものと思われる). その問題は, 実はps2eps(i)にあったようで, このコマンドでepsを作ったときに, 一部のフォント情報が抜けてしまうらしい(詳しいことはよくわからない). そこで, 上のようにdvipsでepsファイルを作ってから, そのファイルのバウンディングボックスなどを設定することにした(ついでに不必要なプレビュー画像も削除することにした). ghostscriptを使って

    gs -q -sDEVICE=epswrite -sOutputFile=Final.eps -r1200 -dNOPAUSE -dBATCH -dEPSCrop fugafuga.eps

    とする(改行はしていない. 一行で記述する). windowsの場合はgswin32とかかもしれない. 細かいオプションについて調べてはいないが, たぶん -q はメッセージを出さない(quiet), epswriteはepsを出力するということ, OutputFileは出力ファイル名, -r1200は解像度を1200dpiとすること, -dNOPAUSEはエラーでストップしない, -dBATCH はよくわからない, -dEPSCrop はバウンディングボックスをオートで設定するということだと思う.
  4. 必要に応じて, バウンディングボックスを修正する.

    今回, 自分がやったときはうまくいったが, バウンディングボックスがうまく設定されていないときは, epsファイルをノートパッドなどで開いて, バウンディングボックスの数値を変更する. これは「eps bounding box 修正」とgoogle検索すればあれこれ情報があるはず.

なお, この方法でepsを作ると, プレビューで見たときに数式の部分などがジャギーになっていて綺麗に見えないかもしれないが, これはこれで正常である. texに取り込ませてみると, 綺麗に出力されているようなので問題はないようである.

2014年4月20日日曜日

プロキシ環境下での windows update

proxy環境下では、Windowsの自動更新がうまく働かないことがある。このときは、proxyをwindowsに設定してやる必要がある。

コマンドプロンプトで

proxycfg -u Proxy名:ポート番号
net stop wuauserv
net start wuauserv


とすればよい。

beamerのインストール

思っていた以上に苦労したので、メモしておく。

http://sourceforge.net/projects/latex-beamer/files/ にアクセスして

  • latex-beamer-3.07.tar.gz
  • pgf-1.01.tar.gz
  • xcolor-2.00.tar.gz

をダウンロードしてくる。そしたら、適当な解凍ソフト(例えば Lhaplus)を使って解凍し、

c:\usr\local\share\texmf\tex\latex\
(フォルダは適宜、自分の環境に合わせて変えること)


の中に、(texmfのところは、texmf-localがあれば、そちらに変えてもよい。そのときは、texmf-localのフォルダの下に、tex\latexのフォルダを作っておく)

  • latex-beamer
  • pgf
  • xcolor

の三つのフォルダを作り、それぞれの中に解凍したものを入れる。(latex-beamer-3.07.tar.gz の解凍した中身をlatex-beamerの中にコピーする etc.)

xcolorについては、インストールする必要がある。コマンドプロンプトから

cd c:\usr\local\share\texmf\tex\latex\xcolor
latex xcolor.ins

として、insファイルをコンパイルすること。

これで、とりあえず、beamerが使えるようになると思う。さらに、size14.cloファイルなどをダウンロード、インストールしなければいけないかもしれない。

# こういうところは、DebianやVineの方がラクチンですね…

2014年3月11日火曜日

SyncTeXの設定

bSyncTeXを用いると, pdfとtexソースでジャンプができるようになる. とりあえず, inverseサーチ(pdfからtexへのジャンプ)ができるようにした.

1. texファイルをコンパイルするときに

platex -synctex=1 hogehoge.tex


とオプション -synctex=1 をつけておく. すると, hogehoge.synctex.gz がで
きていて,

dvipdfmx hogehoge.dvi


としたときに, hogehoge.synctex.gz を取り込んでくれる.

2. evince や okular で, エディタを設定しておけば, inverseジャンプができるようになる. エディタの設定を, 自分の使うエディタ(emacs の場合は emacsclient)にすれば, (debian の場合は)設定が最初から入っている. okular のときは "Shift+左クリック" でジャンプする.

3. latexmk で SyncTeX を使うときには, オプションを入れることについては, (latexmkの最低限の設定の仕方を知っていれば)とくに困ることはないはず. latexmk -c で synctex.gz も削除するためには

$clean_ext = "synctex.gz";


と, 変数 clean_ext に加えておけばよい.

4. YaTeXでpdfをプレビューに使う場合には, .emacsに

(defvar YaTeX-dvi2-command-ext-alist '(("[agx]dvi\\|dviout" . ".dvi")
("ghostview\\|gv" . ".ps")
("acroread\\|pdf\\|Preview\\|TeXShop\\|Skim\\|evince\\|okular"
. ".pdf")))


として, okularで開くときに拡張子に .pdf をつけるように設定しておく. そ
して

(setq dvi2-command "okular")


を追加すると, Ctrl-c Ctrl-t p で okular をプレビューアにしてくれる.

2014年2月10日月曜日

UDP123が閉じられているときの時計あわせ

企業などのネットワークでは、セキュリティの事情でUDP123が閉じられているために、ntpdateが使えないことがある。以前にも手動での時計あわせとして、やり方を紹介したが、httpsが接続できるなら、nict.go.jpのデータを利用する方法がある。

date -s "`w3m -dump https://ntp-a1.nict.go.jp/cgi-bin/time`"
hwclock -w


とする。上の w3m -dump ...というのは、nict.go.jpの時刻データをhttpsで拾ってきて、標準出力で出力させるコマンドであり、この標準出力をdateコマンドに渡している。最後のhwclock -wはハードウェア時計をソフトウェア時計に合わせる設定である。

ちなみに、リンク先についてはnictの技術情報から選んだものである。自分で都合のよいものを選べば良い。

2013年4月29日月曜日

スクリーンのstandbyやsuspendをさせないようにする

講演でdebianなどのLinuxを使っているとき、通常はxwindowを使っているだろう。そのときに、standbyやsuspend, offになってしまうとVGAへの出力も止まってしまうので、そういうことをさせないようにするには

xset dpms 0 0 0


とする。最初の数字がstandbyになるまでの秒数、次の数字がsuspendになるまでの秒数、最後の数字がpoweroffになるまでの秒数。0にしてあるので、standbyにもsuspendにもpoweroffにもならない。shell scriptにでもしておいて、講演の時にscriptを起動させればよいだろう。

apt translationを減らす

Debian / Ubuntuのupdateの時間を短縮する方法。squeezeあたりからlocaleをなんでもかんでもチェックするようになったが、それをやめさせる方法。

1. 既に取得してしまっている翻訳情報を削除する。

既に apt-get update または aptitude update を実行している場合は、国際化情報を取得してしまっているので、それらを削除する。

cd /var/lib/apt/list
sudo rm -f *Translation*


2. 使用する言語の設定

/etc/apt/apt.conf に使用するlocaleを設定します。
エディタで /etc/apt/apt.conf を開いて(ファイルがなければ作成)次の行を追記します。

APT::Acquire::Language "ja_JP";
APT::Acquire::Language "en";
APT::Acquire::Translation "ja_JP";


3. パッケージデータベース更新

sudo aptitude update (または sudo apt-get update)


指定したlocaleの国際化情報は取得しなくなって、更新が早くなるはず。

chromiumでchromeのpdf viewerを使う方法

chromeからlibpdf.soを拾ってくる. OSのbit数を間違えないようにすること。

ar vx hoge.deb

とすると、debian-binary、control.tar.gz、data.tar.gzの3つのファイルが出てくるので、

tar xvf data.tar.gz

とすれば、debファイルからlibpdf.soを取ることができる。

そのあと、(環境によってファイルを保存するところが異なるが例えば debian wheezyの場合は)

sudo mv libpdf.so /usr/lib/chromium-browser/
sudo chmod 755 /usr/lib/chromium-browser/libpdf.so

とすればOK. chromiumでもchromeとだいたい同じような感じで、pdfを見ることができる。

ただし、pdfによっては、うまくいかないこともある。なんでだかはよくわからない。

2012年8月17日金曜日

usr権限でmake

たとえば, fugaをコンパイルして, ルート権限なしにユーザ権限で使う場合は

./configure --prefix /home/hoge/local/fuga
make
make install prefix=/home/hoge/local/fuga


とする. prefixをセットすることがポイント. アンインストールは/home/hoge/local/fugaを削除すればよい. configureが通らないなどがあるということは, どこかでroot権限を使っているという事. そういうソフトをつかうのはrootになれない環境ではそもそも利用できないのが自然だろう.

2012年6月27日水曜日

gnuplotのソース

gnuplotは2次元, 3次元のグラフを書いてくれるソフト. いくつかの具体例で, 適当にいじって遊んでみる. 実際に入力するのは, gnuplot> の後の部分だけ. ソースが絡まっているのは, あまり気にしない方向で使っている. これくらいの計算なら, 殆どのPCで困ることではない(OSが動かないと致命的ではあるが)

方向微分はできるけど、実は連続ですらない例


gnuplot> set xrange [-1:1] 
gnuplot> set yrange [-1:1]
gnuplot> splot (x**2*y)/(x**4+y**2)
gnuplot> set xrange [-0.5:0.5]
gnuplot> replot
gnuplot> set xrange [-0.1:0.1]
gnuplot> replot
gnuplot> set isosample 40
gnuplot> replot
gnuplot> set pm3d
gnuplot> replot
gnuplot> set yrange [-0.1:0.1]
gnuplot> replot
gnuplot> set contour
gnuplot> replot


等高線を書いて, 制約条件付き最大、最小問題を考えてみる


gnuplot> splot x**2+2*x*y+3*y**2
gnuplot> set contour base
gnuplot> replot
gnuplot> set xrange [-2:2]
gnuplot> set yrange [-2:2]
gnuplot> replot
gnuplot> set cntrparam levels incremental 0, 2, 30
gnuplot> replot
gnuplot> unset surface
gnuplot> replot



コンピュータをむやみやたらに信じてはいけないよ


gnuplot> set xrange [0.01:0.1]
gnuplot> plot sin(pi/x)


各点収束と一様収束の違いはこんな感じ


gnuplot> set xrange [0:1]
gnuplot> set yrange [0:1]
gnuplot> plot x**1
gnuplot> plot x**2
gnuplot> plot x**3
gnuplot> plot x**4
gnuplot> plot x**5
gnuplot> plot x**6
gnuplot> plot x**10
gnuplot> plot x**15
gnuplot> plot x**20
gnuplot> plot x**40
gnuplot> plot x**50
gnuplot> plot x**100
gnuplot> plot x**150
gnuplot> plot x**300
gnuplot> plot x**500
gnuplot> plot x**1000
gnuplot> plot x**1, x**2, x**3, x**4, x**5
gnuplot> plot x**1, x**5, x**10, x**50, x**100
gnuplot> plot (x*(1-x))**1
gnuplot> set yrange [0:0.3]
gnuplot> plot (x*(1-x))**1
gnuplot> plot (x*(1-x))**2
gnuplot> plot (x*(1-x))**3
gnuplot> plot (x*(1-x))**4
gnuplot> plot (x*(1-x))**5
gnuplot> set yrange [0:0.001]
gnuplot> replot
gnuplot> plot (x*(1-x))**5
gnuplot> plot (x*(1-x))**6
gnuplot> plot (x*(1-x))**7
gnuplot> plot (x*(1-x))**8
gnuplot> plot (x*(1-x))**9
gnuplot> plot (x*(1-x))**10
gnuplot> set yrange [0:0.3]
gnuplot> plot (x*(1-x))**1, (x*(1-x))**2, (x*(1-x))**3, (x*(1-x))**4, (x*(1-x))**5


2012年5月7日月曜日

debianで動かなかったもののリスト

理由はわからないけど、とりあえず試してみてうまく行かなかったもののリスト


スリムテンキーボード USB2.0ハブ(2ポート)/Tabキー付き BSTKH07シリーズ squeezeとwheezyのデフォルトカーネルで試してみたがどちらもダメだった。xevでキーコードを確認しようとしたが、認識できていないところをみると、カーネルのレベルで認識できていない様子。カーネルの再構築とかすればいいのかもしれないが、そこでかかる時間とか調べる時間が面倒なのでやる気がおきない。

2012年4月26日木曜日

X121eにdebianをインストール

Thinkpad x121eにdebianをインストールした。詳しいことはいずれ書くことにするが、注意しなければいけない点だけ挙げておくことにする。たぶん、書いている暇がなくなってきてしまったので、とりあえずやったことだけ公開することにする。
  • 素の状態では、debian squeezeをインストールするのは無理だと思っていたほうがよい。 というのも、debian squeezeのデフォルトのカーネル 2.6.32では有線のイーサネットを認識できないからである。 逃げ道は二通り。一つは、諦めて、debian wheezyをインストールする。wheezyなら有線のnicは問題なく認識する。 もう一つは、(試していないが)usbの有線LANを使ってsqueezeをインストールする方法。 そのあとで、backportから、カーネル3.2.0をインストールすれば、本体のイーサネットも認識できるようになる。 ちなみになぜ気がついたかというと、パーティションを切るためにknoppixを動かしたら、イーサネットが動いていたから、 おそらくカーネル周りだろうと予想したら、やっぱりその通りだったという感じ。
  • wheezyではkdebaseがなくなっているので、squeezeで使ったパッケージのリストを使うと、少しだけコケる。kde-standardをインストールすれば、大抵のことは大丈夫。
  • wheezyではfontのパッケージがttf-なんちゃらからfonts-なんちゃらに変更されたらしい。ダミーパッケージで回避できるとはいえ、fonts-なんちゃらをインストールしたほうが無難。
  • きちんと確認はしなかったが、無線LANはnon-freeのrealtekとのこと。 わからなければ、

    $ lspci |grep wifi

    として、無線LANのドライバを調べれば良い。私の場合はfirmware-realtekをインストールしてうまくいった。
  • wheezyではgnome-terminalとplasmaに相性の問題があるようで, どうやら, あちこちでエラーしているらしい. 理由はあまりよくわかっていなさそうな気がする. 逃げ道は, 別のterminalソフトを使うか, 特殊なgeometry設定をしておくこと.
  • Nepomukが動かないみたいで, desktop検索ができない. Virtuosoプラグインが必要だとごねるが, 何をinstallすればよいのかわからないのでNepomukごと止めてしまう.

    (9月13日 追記)Nepomukを動かすには、virtuoso-minimalをインストールすれば良いことがわかった。下記の方法を使えばdesktop検索のNepomukを止めることができるので、止め方についても一応残しておく。ただし、kdeのシステム設定からやった方が簡単かもしれない。ちなみに情報源はここ

    $HOME/.kde/share/config/nepomukserverrc の中身を下記のようにいじっておく.

    [Basic Settings]
    Start Nepomuk=false

    もうひとつ, $HOME/.kde/share/config/kdedrc をいじって, 次を加えておく.

    [Module-nepomuksearchmodule]
    autoload=false


    こうすると、Nepomukは何も言わなくなる。
  • set upについて

    Windows 250GB
    Debian root 28GB
    Debian home 170GB
    swap 8GB

    くらいでパーティションをきる. 実のところ, 一番危険なところ. knoppixでやった. 失敗すると, windowsが起動しなくなるので, windowsのバックアップDVDを作っておくこと(昔々, バックアップDVDを作らないで, パーティションを壊して, たいへんな目にあった).

    rootとhomeをわけておくのは, いざというときのための保険みたいなもの. この設定で作ると, 基本パーティションと拡張パーティションの両方の知識がいるので, 少し難しい. rootとhomeをわけずに作るのもアリ(ただし, デスクトップでSSD, HDD運用する場合は, rootとhomeをわけた方がよい. SSDは書き込まない方が寿命がのびるため)
  • タッチパッドの無効化

    /usr/share/X11/xorg.conf.d/50-synaptics.conf に下記を追加

    Section "InputClass"
    Identifier "no need for accelerometers in X"
    MatchProduct "SynPS/2 Synaptics TouchPad"
    Option "Ignore" "on"
    EndSection

    Xを再起動(ログオフ&ログイン)するとタッチパッドが無効化される.
  • センターボタンのスクロールを有効にする

    /usr/share/X11/xorg.conf.d/20-thinkpad.conf に下記を追加

    Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
    EndSection

英語ではあるが、次のサイトがとても参考になった。
InstallingDebianOnThinkpadX121e(AMD)wheezy
Installing Debian GNU/Linux on a Thinkpad X121e

2012年4月5日木曜日

dot.emacsについて

.emacsにいれた設定のリスト

  • 特定のモードにあまり関係のない設定

    • 画面上下の端の外にスクロールしたときの移動量を1にする設定

      (setq scroll-step 1)

    • 選択されたリージョンを色付きにしてわかりやすくする設定

      (transient-mark-mode t)

    • ~付ファイルは一カ所にまとめる方法. 例えば、~/emacs_Backup/にfilename~で保存されるようにするには

      (defun make-backup-file-name (filename)
      (expand-file-name
      (concat "~/emacs_Backup/" (file-name-nondirectory filename) "~")
      (file-name-directory filename)))

    • 対応する括弧の強調

      (show-paren-mode t)

    • shift + カーソル で行きたいウィンドウに行ける

      (windmove-default-keybindings)

    • bufferのきりかえをラクにしたい

      (iswitchb-mode 1)

    • iswitchb で選択中の内容を表示

      (defadvice iswitchb-exhibit 
      (after
      iswitchb-exhibit-with-display-buffer
      activate)
      "選択している buffer を window に表示してみる。"
      (when (and
      (eq iswitchb-method iswitchb-default-method)
      iswitchb-matches)
      (select-window
      (get-buffer-window (cadr (buffer-list))))
      (let ((iswitchb-method 'samewindow))
      (iswitchb-visit-buffer
      (get-buffer (car iswitchb-matches))))
      (select-window (minibuffer-window))))

    • 最初のスタート画面のメッセージを消す

      (setq inhibit-startup-message t)

    • battery メータを表示

      (display-battery-mode t)

    • 桁番号を表示

      (column-number-mode t)

    • タイトルにはファイル名

      (setq frame-title-format (format "%%f" (system-name)))

    • いちいち消すのも面倒なので、内容が空っぽならファイルごと削除する

      (if (not (memq 'delete-file-if-no-contents after-save-hook))
      (setq after-save-hook
      (cons 'delete-file-if-no-contents after-save-hook)))
      (defun delete-file-if-no-contents ()
      (when (and
      (buffer-file-name (current-buffer))
      (string-match "\\.howm" (buffer-file-name (current-buffer)))
      (= (point-min) (point-max)))
      (delete-file
      (buffer-file-name (current-buffer)))))

    • モードラインに時間を表示する

      (setq display-time-string-forms
      '(month "/" day " " dayname " "
      24-hours ":" minutes " "
      (if mail " Mail" "") ))
      (display-time)

  • YaTeX mode
    • 「usepackageが必要かい?」なんて提案はしないでおくれ

      (defun YaTeX-package-auto-usepackage (macro type) nil)

    • yatexでAMS-LaTeXのコマンドを使い、AMS数式環境下でもmath-modeになる

      (setq YaTeX-use-LaTeX2e t)
      (setq YaTeX-use-AMS-LaTeX t)

    • Ubuntu/Debian で野鳥のキーバインドを変更したのは誰?(仕方がないという事情は知ってるけど)

      (setq YaTeX-inhibit-prefix-letter nil)

    • Ubuntu/Debian で野鳥のキーバインドを変更したのは誰?(仕方がないという事情は知ってるけど)

      (setq YaTeX-inhibit-prefix-letter nil)

  • skk mode

    • 句読点を変更する

      (setq skk-kutouten-type 'jp2)
      (setq skk-kuten-touten-alist
      '((jp . ("。" . "、"))
      (jp2 . (". " . ", "))
      (en . (". " . ", "))))


2012年2月24日金曜日

ffmpegのあれこれ

aacファイルをmp3に変換するには

ffmpeg -i hoge.aac -vn -ab 128 -f mp3 hoge.mp3

ここで, オプションは次のとおり
  • -i: 入力ファイル名
  • -vn: 音声のみ取り出す
  • -ab: オーディオビットレート(kb)
  • -ar: オーディオサンプリング周波数
  • -f: 変換先のフォーマット
jpgファイルからaviの動画ファイルを作るには

ffmpeg -r 1 -i test_%03d.jpg -vcodec mjpeg -sameq out.avi

%03dは連番ファイルの番号(03はファイルの連番の桁数). ファイルを連番にするには

declare -i num=1 for file in *.jpg do mv ${file} test_`printf %03d $num`.jpg num=${num}+1 done

とすればよい.

deborphan

deborphanで使っていないファイルとかが確認できるようす. ただし, 転んでも泣かない.

$ deborphan --guess-all

で孤立してしまっているソフトが探せる. 削除すると, 別の孤立したソフトが出てくる場合もあるので, 何度か調べる必要がある.

$ deborphan --find-config

で設定ファイルの残骸が見つかる.

$ sudo dpkg -P `deborphan --find-config`

でいらない設定ファイルが削除される.

2012年1月22日日曜日

rsyncを使ったバックアップ

HDDにユーザ領域をバックアップする方法として, rsyncを使う方法がある. HDDをext3でフォーマットして, ディレクトリの所有者を変更したのち,

rsync -auvz --delete /home/USER /media/disk/HOSTNAME/

とすればよい. これで, USERディレクトリとHOSTNAMEディレクトリが同期される. このときに, --deleteオプションをつけているため, 削除したファイルは同期によって削除される.

2012年1月21日土曜日

USBマスストレージメモリをext3でフォーマットする

USBメモリはfat32やntfsでフォーマットされていることが多いが, gitなどでロングネームファイルや大文字小文字を区別するファイルを管理したいときは, ext3でフォーマットしたい. 以下, USBメモリが/dev/sdbに接続されていると仮定する.

まず, メモリのパーティションを作成する.

sudo cfdisk /dev/sdb

を使えばよい. windowsと共用するときは,
fat32(LBA)とext3の二つのパーティションを作ればよいだろう.
なお, fat32のパーティションを作成するときは, 最初のパーティションに作ること. これは, windowsではusbメモリの最初のパーティションしか認識しないため. 以下, /dev/sdb2にext3のパーティションを作ったとする.


次に, ext3フォーマットする.

sudo mkfs.ext3 /dev/sdb2

とすればよい. -L label を加えれば, ボリュームラベルを付加できる.

このままだと, マウントしてもrootしか読み書きができない. /media/disk/にマウントしたとして

sudo mkdir /media/disk/hogehoge
sudo chown USERNAME.USERGROUP /media/disk/hogehoge

として, hogehogeディレクトリを作成し, 所有者をUSERNAME, グループをUSERGROUPにする. USERNAMEやUSERGROUPを一般ユーザの名前とグループにすれば, 一般ユーザでも読み書きできる.

2012年1月8日日曜日

ntfs HDD のマウント

ntfsのHDDをマウントするときは、ntfs-3gをインストールして

$ sudo ntfs-3g /dev/sdc1 /media/USB_HDD/


みたいにすればおけ.

2011年12月4日日曜日

Kindle自炊に関するメモ

pdfをスキャンする. scansnapがお勧めだが, なんでもよい.

適当にトリミングする. これは, Adobe Acrobatがあるといいかも.

OCRにかける. 例えばAcrobatで頑張らせる. 時間がかかる...

pdftkでTitleとAuthorを入れる. 次のような感じで, metadataテキストファイル(ex. meta.dump)を作る

InfoKey: Title
InfoValue: hugahuga
InfoKey: Author
InfoValue: hogehoge san


そのあと,

$ pdftk input.pdf update_info meta.dump output output.pdf


とすれば, input.pdfにTitleとAuthorの入ったoutput.pdfが出力される. ちなみに

$ pdftk input.pdf dump_data


とすれば, 標準出力で, メタデータが取り出せる. Kindle 2(dx international ver)では日本語のタイトルや著者は認識してくれないらしく、ハックしても豆腐になってしまうので、諦めた。研究のための資料とかは英語が基本なので、あまり困ることもない。

連番ファイル

bashにおいて、たくさんのファイルをとりあえず連番ファイルに一括リネームするには、ファイルを一つのフォルダに保存しておいて、

declare -i i=1
for file in *.jpg
do
mv $file `printf %02d $i`.jpg
i=i+1
done


とする。この時、連番ファイルは01,02,...10,11,...と作られる。三桁ファイルにするときは%02dを%03dとすればよい。