論文を投稿して査読結果が返って来て,それに対する修正原稿を送る際に,どこを変更したかが分かるようにマーキングせよ,と指示される雑誌がある.この作業をなんとか 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.
あー,努力の割にはちっとも幸せになった気がしないのは何故だろう.
最終更新時間: 2009-01-04 15:31
* [Hamo] That\'s a quick-wiettd answer to a diffi... (2012-12-31 00:50:26)
* [Muhammad] This is crystal clear. Thanks for tkaing... (2012-12-30 11:30:05)