1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

論文のrevisionをいい感じにするcommandたち

Last updated at Posted at 2023-01-07

自分用メモ.
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: hoge fuga

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%
}

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?