
いろいろ調べてみましたが、この質問に対する答えは見つかりませんでした。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.3
。mawk
は の特定の実装であり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 ファイルで問題が発生した場合は、パッケージを更新するか、新しいスクリプトをダウンロードすることをお勧めします。
詳細については、パッケージのドキュメントを参照してください。