自分用メモ.
revisonのときに変更箇所をわかりやすくするためのコマンド,変数書き換えるだけで4パターンのバージョンを出力できる.
使い方
\setcounter{OutputVersion}{x}
% x = 0: submit, 1: revised, 2: diff, 3: highlight
Erase: \Erase{foo}
Add: \Add{bar}
Replace: \Replace{hoge}{fuga}
OutputVersion=0のとき
revision前のテキストを表示
Erase: foo
Add:
Replace: hoge
OutputVersion=1のとき
revision後のテキストを表示
Erase:
Add: bar
Replace: fuga
OutputVersion=2のとき
差分を表示(本当は取り消し線と"bar"と"fuga"は赤字)
Erase:
foo
Add: bar
Replace:hogefuga
OutputVersion=3のとき
revision後のテキストを強調して表示(本当は"bar"と"fuga"は赤字)
Erase:
Add: bar
Replace: fuga
文中で使うときの注意
%これはダメ
This is \Add{an} apple.
% OutputVersion=0のとき -> This is apple.(スペース2個)
It is \Erase{the} rainy.
% OutputVersion=1のとき -> It is rainy.(スペース2個)
%これはOK
This is \Add{an }apple.
% OutputVersion=0のとき -> This is apple.
It is\Erase{ the} rainy.
% OutputVersion=1のとき -> It is rainy.
コード
適宜プリアンブルの中で\input{preamble.tex}
で挿入する.
行末の%
は改行とインデントを無視させるため.
数式モードでの\RobustSout
の出力はインラインなので\sumとか\fracみたいなでかいやつはちっちゃくなる.
どうせ消すので妥協していますが,いい感じにできる方法があれば教えてください.
preamble.tex
\usepackage{ulem, color}
\newcommand{\Remove}[1]{\if0{#1}\fi} % 削除
\newcommand{\Redtext}[1]{\textcolor{red}{{#1}}} % 赤字
\newcommand{\Blacktext}[1]{\textcolor{black}{{#1}}} % 黒字
\DeclareRobustCommand{\redsout}{\bgroup\markoverwith{\Redtext{\rule[.5ex]{2pt}{0.6pt}}}\ULon} % 赤取消し線
\newcommand{\RobustSout}[1]{%
\relax% これがないとalign環境などでおかしくなる
\ifmmode% 数式モードか否か
\hbox{\redsout{$#1$}}% 数式モードなら\hboxで抜けて線引いて数式モードに戻る
\else%
\redsout{#1}%
\fi%
}
\newcounter{OutputVersion}% counter(変数的な?)を定義
% OutputVersion
% 0: submit, 1: revised, 2: diff, 3: highlight
\setcounter{OutputVersion}{1}% 値をセット
% \value{OutputVersion}で値を取得
% \ifnum[不等式]で判定
\newcommand{\Erase}[1]{%
\ifnum\value{OutputVersion}=0%
{#1}%
\else%
\ifnum\value{OutputVersion}=2%
\RobustSout{#1}%
\else%
\Remove{#1}%
\fi%
\fi%
}
\newcommand{\Add}[1]{%
\ifnum\value{OutputVersion}=0%
\Remove{#1}%
\else%
\ifnum\value{OutputVersion}=1%
{#1}%
\else%
\Redtext{#1}%
\fi%
\fi%
}
\newcommand{\Replace}[2]{%
\ifnum\value{OutputVersion}=2%
{\Erase{#1} \Add{#2}}% diffのときスペースを入れて見やすくするだけ
\else%
{\Erase{#1}\Add{#2}}%
\fi%
}
参考