latex:Proof を「証明」にしたい

\renewcommand*{\proofname}{証明}

広告

polyglot:プロジェクトの行数を数える

開発中のプロジェクトの様子を見るための有効な方法の一つがソースコードの行数を把握することです.
もちろん単一のファイルの行数を数えるにはwc -lなどとすれば良いわけです.しかし,プロジェクト全体の行数をうまく数えるにはどうしたらよいでしょうか?

polyglot がそのような目的に適うかもしれません.

プロジェクトページに書いてあるように,インストールは

curl -sSl https://raw.githubusercontent.com/vmchale/polyglot/master/bash/install.sh | sh -s

だけでいけます.

このツールを使うとソースコードの行数を言語ごとに集計してくれます.次の例は私が趣味で開発しているプロジェクトのディレクトリ直下で試した結果です:

$ poly
-------------------------------------------------------------------------------
 Language             Files       Lines         Code     Comments       Blanks
-------------------------------------------------------------------------------
 Cabal                    2         149          126           10           13
 Haskell                 10        2423         2069           83          271
 Makefile                 2          71           48            2           21
 Markdown                 4           8            6            0            2
 Plaintext                1          33           19            0           14
 TeX                      3        2705         2451            2          252
 YAML                     4         236           90          122           24
-------------------------------------------------------------------------------
 Total                   26        5625         4809          219          597
-------------------------------------------------------------------------------

余談ですが,polyglot はATSという言語で書かれているそうです.

わけもなくtexのコンパイルが通らなくなったときの対処

特に変なことをしていない(つまりついさっきまで正常にコンパイルが通った)のに突如texのコンパイルが通らなくなることがある.そんなときは *.aux, *.ilg, *.bbl, *.blg, *.lof, *.out を一度削除すると良いかもしれない.

自分はlatex原稿を管理するMakefileに次のようなターゲットを入れている:

clean : ## clear aux,out files
	$(RM) *.aux
	$(RM) *.ilg
	$(RM) *.idx
	$(RM) *.bbl
	$(RM) *.blg
	$(RM) *.lof
	$(RM) *.out

WSLにlatexを入れる(自分用メモ)

■やめといたほうがいい: sudo apt install texlive

■おすすめ:
sudo apt install wget perl-tk
mkdir tmp; cd tmp
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xzf install-tl-unx.tar.gz
cd install-tl-*
sudo ./install-tl

★最後に ~/.bashrc を編集して
export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH
export INFOPATH=$INFOPATH:/usr/local/texlive/2018/texmf-dist/doc/info
export MANPATH=$MANPATH:/usr/local/texlive/2018/texmf-dist/doc/man

(2018 のところは年によって数字が違うが,上のインストールスクリプト完了時のメッセージを参考にして欲しい).

■ネットワークインストーラがうまく動かない場合は iso を使う.ここが参考になる. 数GBあるのでFree Download Manager などのダウンロードツールを使う.

Windows10ではisoファイルを通常のフォルダのように開けるがWSLからはそのままでは見えない.isoファイルをダブルクリックして開いたときに割り当てられているドライブレターを確認しておく.手元のノートパソコンで試したときにはDドライブになっていた.

$ sudo mkdir -p /mnt/d
$ sudo mount -t drvfs D: /mnt/d
$ sudo /mnt/d/install-tl

Ubuntuでcoreを吐かせる(linux)(自分用メモ)

■どうやらUbuntuではデフォルトではコアファイルを生成させないようになっているらしい.Ubuntu には Apport というデバッグ用のクラッシュレポートを自動生成するソフトウェアが入っているがこいつがブロックしている…らしい.

以下対処法.

■1.$ sudo vim /etc/default/apport してファイルを次のように編集し保存する:

# set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=0

■2.$ sudo vim /etc/security/limits.conf して以下の行を追加し保存する:

* soft core unlimited

■3.念のため再起動しましょう.

■確認: $ ulimit -aして

core file size          (blocks, -c) unlimited

となっていればコアファイルが生成される.

■参考にしたサイト
Ubuntuでコアダンプが出力できないことがある

\bigvee が二つ重なったような字(latex)

正式に何という字なのか知らないが,たまに数学の本に \bigvee が重なったような記号が出てくる.(メタレベルでの論理和を表すこともあるらしい).総和記号(シグマ)のように真下に添え字が付いてほしいこともあるので\DeclareMathOperator を使ったらどうかと考えてみた.

Wee

\documentclass[]{article}
\usepackage{amsmath}
\DeclareMathOperator*{\Wee}{\bigvee\kern-.7em\bigvee}
\begin{document}
\begin{equation*}
\Wee_i \,p_i
\end{equation*}
\end{document}

Ubuntuのランチャーが消えた(自分用メモ)

ある朝気がかりな夢から覚めると,Ubuntuデスクトップを起動したときにランチャーが一切表示されない状態になっていた.右クリックメニューでターミナルは起動できたので $ firefox とか打ちながら情報を探した.結論から言うと次のようにしてうまく行った:

$ sudo rm -rf ~/.cache/compizconfig-1
$ sudo rm -rf ~/.compiz
$ sudo rm -rf ~/.Xauthority
$ sudo rm -rf ~/.config/autostart
$ sudo apt-get install --reinstall ubuntu-desktop unity compizconfig-settings-manager upstart
$ sudo dconf reset -f /org/compiz/
$ setsid unity

参考にしたページ
https://toxweblog.toxbe.com/2017/10/01/ubuntu-no-icon-menu/

ごはんを食べた

忙しい人のための概要:とりとめのない話で,特に内容はないです.

某月某日,「参照透明な海を守る会」のxhl(リーダー)とmaster_q(岡部究さん)と集まって食事をした.

知らない人もいるかも知れないので書いておくと「参照透明な海を守る会」というのは2011年の夏に『簡約!λカ娘』を出して以来通算12冊(うち一冊は1~6の総集編)の同人誌をコミケで出してきたサークルのことだ.ついでに言うと「λカ娘」は「らむだかむすめ」と読む.
よくわからないタイトルだと思われるかもしれないが,この同人誌のタイトルやサークル名は元ネタである安部真弘氏の『侵略!イカ娘』という漫画(とそのアニメ)を踏まえている.

「同人誌をコミケで出してる」というと絵や漫画みたいな印象になるかもしれないが,うちのサークルではプログラミング関係の話題を扱っている——まあ大体は.そうはいいつつ,僕はHaskellに関連して圏論についての,初歩的ながらやや理屈っぽい方向の話を書いてきたし,機械学習の本を眺めたときに学部生以来久しぶりに出会ったから,という理由で「Lagrangeの未定乗数法」について書いてみたり,ついにはプログラミングとは無関係な超準解析の話まで書くようになってしまった.(プログラミング言語の理論に超準解析を使うという話をしている人も世の中にはいるけれど,僕はそっち方面には触れていない.)好き勝手をやらせてくれているリーダーのxhlには感謝するしかない.

もともと2010年頃にxhlが『イカ娘』アニメを見ているときに謎の電波を受信したことから始まったものであり,その経緯はtogetterにまとめられている:https://togetter.com/li/63957
正直,一発ネタもいいところという感じだが行動力の化身たるxhlの謎パワーによって11号まで続いているのだ.

とはいえ2011年からそれなりの年月がたち,書く意欲やネタや執筆時間が足りなくなりつつある.前回の11号ではそれまで皆勤賞だったmaster_qがついに欠席した.そんなわけで,食事をしながら「今後このサークルどうしようか?」というような話もした.

「集まって食事をした」などと書くと,頻繁に集まって「うぇーい」とかやってる印象になるかもしれない.しかし,そんなことはない.というか,われわれは普段Skypeのチャットでしか会話をしておらず,直接会うのはコミケ当日ぐらいしかない.なので直接会う機会というのは本当に少ない.そしてその数少ない機会についてのことだからわざわざこうして駄文を書いている次第だ.

どうでもいい前置きが長くなった.まあでもこの続きもどうでもいい話だったりする.

こうやって集まると,ついついnushio(村主崇行)のことを思い出す.彼のことは『すごいHaskellたのしく学ぼう!』の訳者の一人として(名前くらいは)知ってる人が多いと思う.彼の(本来の)専門は宇宙物理だが,僕は彼の研究に詳しくはない.彼は『λカ娘』の1,2,4,5,7,8巻にも記事を書いていて,各巻の扉に『まどか☆マギカ』の各話のセリフをもじった問答を入れるというアイデアもnushioのものだ.この扉の問答はnushioが2017年の夏に突然亡くなったあとも続いている.しかし次号12巻で『まどか☆マギカ』の最終話の話数に達してしまうので「(出すとしたら)12号で最後でもいいかなー」という感じが漂っている.つまり12号を出したら一度サークル活動を停止しようかということだ.いろいろな都合で夏は難しそうなので,2019年の冬に最終号を出そうかというのが今の雰囲気.

こんな事を書いていると,親友の思い出を語るみたいな雰囲気が出てくるが,さてどうだろう.そもそもの話だが,友達関係って「対称的二項関係」なんだろうか? つまり「A氏がB氏の友人であるとき,B氏もA氏の友人か?」という話だ.「そんなの当たり前じゃないか」というかもしれないが,周囲からみて「友人」であっても本人は友人と思ってないかもしれない.それとも友人かどうかは自分が判断するものではなく他人が判断するものなのだろうか.考えれば考えるほどこういう話はわからない.まあこれ以上考えるのも面倒だからnushioもxhlもmaster_qも,今回来れなかったark_golgoも「友達」ということにしておこう.

幼い頃の交友関係というのは,選り好みして友達になるというよりは環境によって押し付けられて,偶然のようにして与えられるところからスタートする.そういう意味では「よくわからない関係」だ.気取った言い方をすれば「超越的だ」ということだ.偶然のようにして友人になるというのは学生時代を過ぎるとだんだん難しくなる.仕事の上で誰かと仲良くなることはあるが,仕事というのは思ったより早くなくなる.そして仕事がなくなったら関係は切れてしまう.そういう意味では幼い頃の友達とは違う.そんなわけで「よくわからないけれどなんとなく仲良くやれる」関係というのを学生時代が終わったあとに作れたというのは貴重だと思っている.

うちのサークルでは各々好き勝手な事を書いているが,変なことにならないように&記事の質を高めるために査読がある.査読というと堅苦しいがそんなに形式張ったものではなく,互いの記事を読んで改善できそうなポイントを述べたりするだけだ.その制度があるせいで,サークルのメンバーは互いの記事を読んでいる,あるいは少なくとも読もうとはしている.サークル活動は義務ではないし(売れっ子サークルならともかく)儲かるものでもない.そんなわけで,「なんか書くかなー」ぐらいのノリでみんな記事を書いている.そのはずなのだけど「何を書いてもいいよ」と言われて本当に任意の話を書くことは難しく,各人の頭の片隅でなんとなく引っかかっていたりすることを書くことになる.だから結局の所「自分が本当に興味を持っていること」を書くことになりがちなのだ.

そんなわけで,だんだん互いの関心が少しずつ理解できるようになってくる.会う頻度がかなり低いにも関わらず,サークルメンバーとしての仲間意識が出てくるのもそのせいじゃないかと思ったりもする.xhlはラムダ計算やコンピュータ言語のパージングの話を書くことが多い.master_qは低レイヤーをどうやって「ちゃんと」抽象化するかみたいなことに関心があり,最近はATSでOSを書き直すプロジェクト(Metasepi)をコツコツやっている.ark_golgoはやはり囲碁の話が多い.tanakh は最近SMTに興味を持っているらしい.

とりあえず必要な話が終わると店を移動してまた話し始めた.アニメの話とか,SFの話とか.超消費電力有機チップが(バイオテクノロジーと融合して)製造されるようになって,脳の皮質の一部をそれで置き換えるようになるんだよねとか,ポスト・ヒューマンが栄えて現行人類は「旧人類保護区」で20世紀風の暮らしをしていてIQは80以下に抑えられてるとか愛玩動物としてブリードされていて黒人と白人のまだら模様みたいなものがエピジェネティック遺伝工学を利用して作られる,みたいなくだらない話を延々としてお開きになった.

何かの折にまた集まれたらいいなと思う.

(自分用メモ)「ずれてく」プリンタへの対処

説明が難しいのですが,いまUbuntuデスクトップから使えるプリンタでは,複数ページ印刷するとページが変わるごとに印刷位置が右に五ミリぐらいずつずれていきます.一ページずつ印刷すればこの問題は起きません.そこで,たとえばfoo.pdf の pp.5-27をコマンドラインから印刷するときには

$ for i in {5..27}
> do
> lp -P $i foo.pdf
> done

とすればよいのですが,いちいち手で打つのが大変なので ~/.bashrc につぎのような関数を書いておくことにしました:

mylp(){
if test -f $1
then
for i in `seq $2 $3`
do
lp -P $i $1
done
fi
}

こうしておいてコマンドラインから

$ mylp foo.pdf 5 27

とすればよいわけです.根本的な問題の解決にはなっていませんが,これでよしとします.

(自分用メモ)latex文書で作ったPDFの「しおり」を文字化けさせない方法

hyperref を使って作った文書を Arobat Reader で見ると「しおり」が文字化けしてしまう.pxjahyper で文字化けを抑制できる:

\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}

参考にしたサイト
http://www.isc.meiji.ac.jp/~mizutani/tex/link_slide/hyperlink.html