Durch das Entfernen aller Markierungen wird das Paket automatisch geändert

Durch das Entfernen aller Markierungen wird das Paket automatisch geändert

Ich habe mich umgesehen und keine Antwort auf diese Frage gefunden. Ich verwende das changesPaket und muss alle Markierungen aus der Quelldatei entfernen. Es gibtdiese Frageüber die Verwendung derdelcmdchanges.bash, aber leider bleibt es unbeantwortet.

Meine Fragen sind folgende: Warum funktioniert das Skript nicht und gibt es eine Möglichkeit, es zum Laufen zu bringen? Gibt es ein anderes Skript? (hoffentlich eines, das auch auf einem Windows-Rechner verwendet werden kann)

Einige Hintergrundinformationen: Ich verwende eine Lubuntu 16.04-Maschine.

Ich versuche vergeblich, die Markierungen aus der folgenden Datei zu entfernen:

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

Ich habe das Skript in den gleichen Ordner wie input.tex gelegt, es ausführbar gemacht und verwendet

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

Ich erhalte keine Fehlermeldung, keine Abfrage bezüglich der gefundenen Markierung und der Inhalt der Ausgabedatei ist mit dem der Eingabe identisch.

Antwort1

Versuchen Sie den Befehl

awk -W version

Es wird Ihnen wahrscheinlich etwas wie Folgendes sagen mawk 1.3.3: mawkist eine bestimmte Implementierung von awk, die in dieser Version den Fehler (fehlende Funktion?) aufweist, dass sie Posix-Zeichenklassen nicht unterstützt. Das Skript delcmdchanges.bashverwendet die Zeichenklasse [:space:], die nicht richtig interpretiert wird.

Sie haben folgende Möglichkeiten:

  • Upgrade auf mawk1.3.4. Obwohl es schon seit einiger Zeit verfügbar ist, hat es den Weg noch nicht in mehrere Linux-Distributionen gefunden (wie Ubuntu 16.04 und 16.10 sowie alle aktuellen (= Nov. 2016) Debian-Versionen, einschließlich sid).

  • Installieren Sie eine andere Implementierung von awk, etwa gawk. Wenn sie nach der Installation nicht automatisch als Standard festgelegt wird (was bedeutet, dass awkjetzt aufgerufen wird gawk), ersetzen Sie sie im Skript awkdurch .gawk

  • Alternativ können Sie das Skript bearbeiten und alle Vorkommen von

    [[:space:]]
    

    von

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

    (Die Backslashes sind wörtlich zu nehmen, d.h. eine Zeichenfolge mit 11 Zeichen wird durch eine Zeichenfolge mit 13 Zeichen ersetzt.)

Antwort2

Neuere Versionen des Pakets enthalten ein neues, in Python geschriebenes Skript. Es kann verwendet werden, indem es python pyMergeChanges.py [-arh] <Input File> <Output File>aus dem Skriptordner ausgeführt wird.

Daher würde ich einer Person, die auf das Problem mit der Bash-Datei stößt, empfehlen, das Paket zu aktualisieren oder das neue Skript herunterzuladen.

Weitere Informationen finden Sie in der Paketdokumentation.

verwandte Informationen