論文を投稿して査読結果が返って来て,それに対する修正原稿を送る際に, どこを変更したかが分かるようにマーキングせよ,と指示される雑誌がある. この作業をなんとか LaTeX で閉じられないかなあということで色々試して みた.具体的には,削除部分は赤い打消線で消し,新規部分は赤い文字にす る.こんな感じ.
あらかじめ明らかにしておくけど,こういうことをしようというアイディア 自体は私のオリジナルのものではない(ていうか実際たくさんの人が独自の ノウハウを持っているに違いない).
私が初めてそういう類のものを見たのは,とある雑誌の投稿論文の査読をし たときだった.条件付採録にして返送して,しばらくして送られて来た修正 原稿は,打消線による消去と赤字による追加がきれいに LaTeX でタイプセッ トされていた.すげー,と感動して,うっかりそれだけで採録判定してしま いそうになった(ぉ.いや,実際はちゃんと中身読んで判定しましたよ.大 丈夫だってば.
論文査読という仕事の性格上,そのとき私が読んだのが誰のどの論文かって のは公表できません.著者に直接「これどうやってるんですか?」と聞くわ けにもいきません.というわけで,独自に実装方法を探ってみることにした のであった.ちなみに,そのときの原稿は打消線は黒く,また数式が一つも ない原稿であった.今回書く方法は,打消線は赤で表示されて,数式もある 程度対応できる(はず).
まず,赤字にする方は話が早い.color.sty を使って,
\textcolor{red}{ 〜 }
とかすればよい.段落まるごとを囲むのは OK.でも複数の段落をまとめて 囲むことはできない.数式などの LaTeX コマンドが途中にある場合は,そ の部分を中かっこ { } で囲んでやる必要がある(その中では改行できない). \verb とかは使えないっぽい.
打消線はいろんな実現方法があるけど jumoline.sty を使うのが一番良さげ.
\Midline{ 〜 }
とかする.
ただしこのままでは黒い線しか出せないので,色を変えられるようにアドホッ クな変更を加えてみた.jumoline.sty は再配布や改変が認められていない ので,パッチ だけ置いておく. 一応 jumoline.sty オリジナルの機能には影響ないようにしてあるつもりだ けど,どうだろう.あまり自信ない.使い方は
{\setjumocolor{red}\Midline{ 〜 }}
って感じ.
LaTeX は下線とか打消線を実装するのがかなり難しいらしく,\textcolor で色をつける場合の制限より,もうちょっと多くの制限が加わる.ディスプ レイスタイルの数式を囲めないとか,\Midline 開始直後に改行するとダメ で
\Midline{%
はうー
}
のように % が必要になるとか.あと dvi の表示にえらい時間がかかる.し かたないのかな.
さて,さっきちょっと触れたけどディスプレイスタイルの数式を削除したり 追加したりする場合にどうするかという話.\textcolor の方はそのまま数 式全体を囲めばよい.しかし \Midline は無理だった.しかたないので以下 のような無理矢理な方法を取る.
\Midline の中に波かっこで囲んだ \mbox を置いて,その中に $〜$ で囲ん だ数式を \displaystyle つきで書く.eqnarray や align 環境の場合は,& で区切られた要素ごとにこれをやらければならない.ただし,align の場合 は一本のつながった打消線に見えるのだが,eqnarray は & で区切られた要 素間のスペースが広すぎて,分断されて見える.ぶー.あと参照番号に打消 線は入らないので,align* とかにしてそもそも出さない方がよいかも.あー, 涙ぐましすぎる.
というわけで方針は以上の通り.しかしあまりにも面倒臭いので, スタイルファイルの形に整理してみたのがこれ. プリアンブルで \noproofreadmark を指定すると, 打消部が消えて,赤字 の部分は普通に黒くなる(つまり最終原稿状態).その他,使い方はほぼ サンプル の通りだが,一応書いておく.
\usepackage{color}
\usepackage{jumoline}
\usepackage{proofread} % これより先に color と jumoline を読み込んでおく
% \noproofreadmark % 最終原稿のときに有効化する
\MidlineHeight=0.5ex
\UMOlineThickness=0.2ex % お好みで決める
\begin{document}
\delspan{削除する部分は delspan で,}\addspan{追加部分は addspan で指定する.}
\delspan{数式などのコマンドは {$y = ax + b$} のように中括弧でくくる.}
\addspan{これは delspan も addspan も同様.}
\delspan{%
delspan の場合,中括弧を開いた直後で改行するのであれば,コメントマー
ク \% が必要になるっぽい.
}
ディスプレイスタイルの数式は,addspan はできるが delspan できない.
打消線を入れるには,数式の \& で区切られた各辺を
strikemath でくくる.そのままだと,noproofreadmark が指定されたとき
に数式全体が消えてくれないので,全体を改めて delspanx (delspan では
ない)で囲む.(noproofreadmark を使わない場合は必要ない)
\delspanx{%
\begin{align}
\strikemath{\dot{x}} & \strikemath{= ax + bu}\\
\strikemath{y} & \strikemath{= cx}
\end{align}
}%
\addspan{
\begin{align}
x_{k+1} &= ax_k + bu_k\\
y_k & = cx_k
\end{align}
}
こんな感じのソースで,このような出力 が得られる.
他には,図や表をどうしようという問題が残っている.図はもう LaTeX の 守備範囲ではないかな.お絵書きソフトで色をつけるなり赤で×をつけるな りでよかろう.表はどうだろう.\addspan で全体を囲んだり,一部のセル を \addspan や \delspan するのは問題ないようだ.全体を削除する場合は… no idea.
あー,努力の割にはちっとも幸せになった気がしないのは何故だろう.
最終更新時間: 2007-08-20 03:32
* [ikvusplfiy] Hello my friend, your site is very good!... (2008-08-28 21:51:48)