すべてのマークアップを削除するとパッケージが自動的に変更されます

すべてのマークアップを削除するとパッケージが自動的に変更されます

いろいろ調べてみましたが、この質問に対する答えは見つかりませんでした。changesパッケージを使用していて、ソースファイルからすべてのマークアップを削除する必要があります。この質問使用についてdelcmdchanges.bashしかし、残念ながら、その質問には回答がありません。

私の質問は次のとおりです。スクリプトが動作しないのはなぜですか。また、動作させる方法はあるのでしょうか。別のスクリプトはありますか。(できれば Windows マシンでも使用できるスクリプト)

背景 - 私は lubuntu 16.04 マシンを使用しています。

次のファイルからマークアップを削除しようとしていますが、うまくいきません。

\documentclass{article}

\usepackage{changes} %I could use [final] to hide the markup from the PDF, but I need the ``evidence'' removed from the source

\begin{document}
 Some text \added{some added text}, and some \replaced{replaced}{replactd} text. \deleted{also, some deleted.}
\end{document}

私はスクリプトをinput.texと同じフォルダに置き、スクリプトを実行可能にして使用しました。

sh ./delcmdchanges.bash -i input.tex output.tex

エラーは発生せず、見つかったマークアップに関するクエリも表示されず、出力ファイルの内容は入力と同一です。

答え1

コマンドを試してください

awk -W version

おそらく、 のようなことが書かれていますmawk 1.3.3mawkは の特定の実装でありawk、このバージョンでは Posix 文字クラスをサポートしないというバグ (機能不足?) があります。スクリプトはdelcmdchanges.bash文字クラス を使用しています[:space:]が、これは正しく解釈されません。

選択肢は次のとおりです:

  • 1.3.4にアップグレードしますmawk。かなり前から利用可能でしたが、いくつかの Linux ディストリビューション (Ubuntu 16.04 や 16.10、sid を含むすべての現在の (=2016 年 11 月) Debian リリースなど) にはまだ組み込まれていません。

  • の別の実装awk( など)をインストールしますgawk。インストール後に自動的にデフォルトに設定されない場合は(つまり、 がawkを呼び出すようになった場合はgawk)、スクリプト内のawkを に置き換えます。gawk

  • または、スクリプトを編集して、

    [[:space:]]
    

    による

    [ \t\r\n\v\f]
    

    (バックスラッシュは文字通りに解釈されるため、11 文字の文字列は 13 文字の文字列に置き換えられます)。

答え2

パッケージの新しいバージョンには、Python で書かれた新しいスクリプトが含まれています。python pyMergeChanges.py [-arh] <Input File> <Output File>スクリプト フォルダーから実行して使用できます。

したがって、bash ファイルで問題が発生した場合は、パッケージを更新するか、新しいスクリプトをダウンロードすることをお勧めします。

詳細については、パッケージのドキュメントを参照してください。

関連情報