友人がLaTeXで論文を書くのを手伝っていますが、「検索と置換」のための迅速なソリューションが必要です。 Linuxで端末を使用して次のモードを見つけるには:
\caption{*\cite{*}}
そして\cite
に交換\protect\cite
私はケイトを使用しています。検索機能を使用して最初に2,000を超える一致を見つけ、検索を具体化して約300に絞り込みました。ただし、すべてを交換したくないので、さらに絞り込む必要があります。発生する部分\cite
だけを交換したいです。\cite
\caption{}
答え1
タイトルと引用符のテキストに特殊文字が含まれていないと仮定するGNU sed*
正規\
表現*
}
s:(\\caption\{[^\]+)(\\cite\{[^}]+\}\}):\1\\protect\2:g
私はそれが動作する必要があると思います。可能であれば空+
タイトルおよび/または引用文字列の修飾子をに変更できます*
。ファイルを変更せずに次のコマンドを使用してテストできます。
sed -nr 's:(\\caption\{[^\]+)(\\cite\{[^}]+\}\}):\1\\protect\2:gp' files
これが正しいインスタンスを見つけて変更したように見える場合は、オプションを使用してファイルをその場所で変更することができます-i
。別のコピーをまだ作業していない場合は、自動的にバックアップを作成できます。
sed -i.bak -r 's:(\\caption\{[^\]+)(\\cite\{[^}]+\}\}):\1\\protect\2:g' files
sed が機能しない場合、Perl でも同様の表現を使用できます。他のバージョンのsedも動作しますが、特殊文字を異なってエスケープする必要があるかもしれません。