刪除所有標記會自動變更包

刪除所有標記會自動變更包

我環顧四周,沒有找到這個問題的答案。我正在使用該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:],其解釋不正確。

您的選擇是:

  • 升級到mawk1.3.4。儘管它已經推出了一段時間,但尚未進入多個 Linux 發行版(例如 Ubuntu 16.04 和 16.10 以及所有當前(= 2016 年 11 月)Debian 版本,包括 sid)。

  • 安裝另一個實現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 檔案問題的人更新軟體包或下載新腳本。

有關更多信息,請參閱包文檔。

相關內容