vimでdiffを使う

2012/10/29未分類import
編集ファイルを開いた上で,コマンドモードで次のコマンドを入力する."filename"が比較したいファイルの名前だ.
:vertical diffsplit filename
そうすると,色付けされた差分が縦(左右)分割で表示される.
"vertical"オプションをつけないと横(上下)で分割されて表示される.
おそらくverticalをつけた方が見やすいだろう(特に16:9のディスプレイを使っている場合は).

TeXで図をコード記述位置に強制的に出力する

2012/07/04未分類import

pLaTex(w32tex角藤版)での場合(2012年7月記載)

platexでは普通,図の位置はコンパイラ任せである.
複数の図を続けて記述してしまったときなどは,
		\begin{figure}[htbp] %位置指定のオプション.here, top, bottom, page(フロートで章の最後へまとめて表示)
		\begin{center}
		\includegraphics[width=30zw,bb=0 0 1280 1024]{figure/}
		\captionsetup{margin=90pt}	
		\caption{説明文}
		\label{fig}
		\end{center}
		\end{figure}	
というような書式で書いた場合,章や節の最後にまとめて図が吐き出されるということが仕様である.
位置指定のオプションで[h]とだけ指定しても失敗することが多いのである.
論文ならこれでも許容できるが,もう少しくだけた技術文書では読みづらくなり不便である.
今までは\clearpageで対応してきたのだが,もっとうまい手があるようだ.
プリアンブルで
\usepackage{here}
というパッケージを読み込み,
		\begin{figure}[H] %Hで強制的に記述した場所に図を出力できる.
		\begin{center}
		\includegraphics[width=30zw,bb=0 0 1280 1024]{figure/}
		\captionsetup{margin=90pt}	
		\caption{説明文}
		\label{fig}
		\end{center}
		\end{figure}	
というように「H」と位置指定のオプションを記述することで強制的にhereで図を出力できる.
このhereパッケージは最近のplatexのインストールパッケージ(少なくともWindows版には)に標準で入っているようだ.
ならば,使わない手はない.

LuaLaTeX(LuaTeX-ja)+jlreqクラスでの場合(2022年4月記載)

2022年4月時点では,TeX Live 2021等でパッケージをフルインストール(scheme-fullオプションでインストール)していれば,hereパッケージは導入済みである.

LuaLaTeX(LuaTeX-ja)とjlreqクラスを使って文書を作成する場合,プリアンブルに以下のような記載を最低限追加し*1
\documentclass[11pt,report]{jlreq}
\usepackage{graphicx}
\usepackage{here}
\usepackage[hang,small,bf]{caption}
\usepackage{layout}
document環境内の本文中に次のような書式で図を挿入すれば,コード記述位置に図が強制的に出力される.
	\begin{figure}[H]
		\begin{center}
			\includegraphics[width=300pt]{figure/filename.pdf}
			\captionsetup{margin=60pt}	
			\caption{説明文}
			\label{fig-label-name}
		\end{center}
	\end{figure}	
なお,図の大きさを決定するのには,同じくdocument環境内の終わりに\clearpage\layout というコマンドを記述し,
現在設定されている本文の幅・高さなどの情報を把握しておくと便利である.

挿入する画像のファイル形式について

過去のpLaTeXではEPSファイルがトラブルの起こりづらく,かつ取り扱いやすい画像ファイルとして重宝されたが,時代は変わった.
画像や図のソースはPDFさえ用意していればトラブルは起こらない*2
JPEGやPNGファイルも基本問題なく取り扱える.
煩雑だったPNGやJPEGのアスペクト比の指定*3も必要が(たぶん)なくなった.
開発されている方々には唯々感謝するばかりである.

*1 : 2012年7月記載のところにはcaptionパッケージの指定はしていなかったので,サンプルの書式をそのままコピペしてもエラーが出る場合があったと思いますが,ご容赦ください.本節追記時に気がつきました.

*2 : 品質を追い求めるなら,PDFファイルを生成するプログラムや設定に注意しなければならないが,それはEPSも同じである.

*3 : 2012年7月記載の例における『bb=0 0 1280 1024』のオプション部分.厳密にいうとバウンディングボックスという値の設定オプション.TeXを始めた頃はこれを指定しないと,JPEGファイル等の画像の縦横比が崩れるので,それら画像ファイルは画素数をいちいち調べて手入力していた…….EPSはこの操作が不要だった.

bcで指数表示

2012/03/13未分類import
bcで10のx乗を計算したい場合*1,次のように入力する.
e(l(10)*x)
これ以外の記法はない!
けど,計算結果をさかのぼれて,コピペができるのでbcは便利です.

以下に実行例を示す.
e(l(10)*11)
99999999999.99999999120939984719
e(l(10)*1)
9.99999999999999999992
e(l(10)*0)
1.00000000000000000000
e(l(10)*10)
9999999999.99999999920085453156
e(l(10)*-10)
.00000000010000000000

*1 : 『注意』で追記したとおり,xは実数です.

注意(2024/05/25追記)

コメントをいただきましたが,情報が足りませんでした.
上のxは整数とは限りません.実数です.整数であれば,ご指摘の通り“10^11”でも動作します.

また,“e(l(10)*x)”を実行するにはbcの実行時に“bc -l”として数学ライブラリを読み出さなければなりません.
$ bc -l
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
10^11
100000000000
e(l(10)*11.5)
316227766016.83793316924633719948
e(l(10)*11)
99999999999.99999999120939984719
quit
もし参照される方がいたら,ご注意ください.
それにしても,10年以上前の記事……全く覚えていない……….
しかも,エゴサやったら『bc 指数』でGoogle検索トップに出てくる!
こんなメモ書きが上位に出てくるって,bcは相当なマイナーなのでしょう多分(普及してほしいけど).

vimで折畳みを使う

2012/03/06未分類import
以前から誤操作をしたときに「折畳みがありません」というエラーが出たことがあったので,
存在は知っていたが使ったことがなかった.試しに使ってみたら,非常に便利だった.
:set foldmethod=marker
という入力をすることで,マーカーを使用した折畳みが利用できるようになる.
初期設定ではマーカーは三重の中括弧である.
{{{
折畳みたい部分
}}}
というように記述すると,折畳みを利用できる.
TeXでは三重の中括弧は特にコメントアウトする必要はないが念のため,
%{{{
折畳みたい部分
%}}}
としておくとわかりやすい.上の「畳み込みたい部分」にカーソルを合わせコマンドモードで,
za
と入力することで,折畳みを閉じたり開いたりできる.
すべて折畳みたいときは,
zm
すべて開きたいときは
zr
と入力する.
TeXで注意しなければならないのは,数式環境を折畳みときだ.
数式中に意図せず三重の中括弧が含まれていることが結構あるので,その場合はそこで折畳みが終わってしまう.
適当に半角スペースをいれて折畳みに影響がないようにしておくと良い.

もっと手軽に折畳みをするには,
ビジュアルモードで「折畳みたい部分」を選択し,その状態で
zf
と入力する.こうすると勝手にコメントアウトつきの三重括弧が挿入され,折畳みが行われる.
折畳みたい部分の始まり%{{{
折畳みたい部分
折畳みたい部分の終わり%}}}
のように挿入してくれる.

table環境やarray環境で行間を変更する

2012/03/02未分類import
table環境やarray環境で行間を変更したいことは間々ある.
そのときは変更したい環境の直前で\arraystretchコマンドを再定義する.
\renewcommand{\arraystretch}{1}
初期値は上の例のように1である.
間隔を1.5倍にしたければ1.5へ,0.5倍にしたければ0.5とすればよい.
変更したい環境が終わったら,この値を1に戻すようにしておくと良い.