Skript zum Löschen eines Befehls und der zugehörigen geschweiften Klammern aus der Quelle in TeXShop?

Skript zum Löschen eines Befehls und der zugehörigen geschweiften Klammern aus der Quelle in TeXShop?

Wenn ich die Quelle in TeXShop bearbeite, stelle ich oft fest, dass ich die Betonung eines Wortes oder einer Phrase entfernen möchte. Aber das Löschen von „“ \empham Anfang des Wortes und der {}Umgebung ist etwas ärgerlicher, als ich es gerne hätte.

Ich nehme an, dass ich nach einem Skript suche, das ich zu Beginn eines Befehls (wie \emph) ausführen kann, das von links nach rechts scannt und alles außer dem Text zwischen den geschweiften Klammern löscht (d. h., es löscht „\emph“, „{“ und „}“).

Etwas, das mich von

This is \emph{emphasized} text 

Zu

This is emphasized text 

Im Code selbst.

Antwort1

Keine TeX-Lösung, aber Sie können einen regulären Ausdruck verwenden, beispielsweise in vim:

:%s/\\emph{\([^}]*\)}/\1/g

Vorbehalte: Entfernt keine inneren \emph's ( \emph{foo \emph{bar} baz}), auch nicht, wenn sich die \emphüber mehrere Zeilen erstreckt. (Kommentare für Verbesserungen sind willkommen!)

Antwort2

Wenn die gleichen Änderungen vorgenommen werden müssen füralleWenn Sie den \emphBefehl in großen Dokumenten oder großen Teilen verwenden, schlage ich vor, dass Sie den \emph-Befehl überhaupt nicht anfassen, sondern neu definieren (in der Präambel oder im Hauptteil des Dokuments). Der Hauptvorteil besteht darin, dass Sie problemlos zwischen Stilen wechseln können, ohne jedes hervorgehobene Wort anfassen zu müssen. Das MWE:

\documentclass{article}
\begin{document}
% Normal behaviour  
normal text \emph{emphasis text} \par
% Emphasis out
\renewcommand{\emph}[1]{#1}
normal text \emph{emphasis text} \par
% Emphasis become bold text
\renewcommand{\emph}[1]{\textbf{#1}} 
normal text \emph{emphasis text} \par
% Emphasis become underlined text
\renewcommand{\emph}[1]{\underline{#1}}
normal text \emph{emphasis text} \par
\end{document}

emph

Antwort3

Wenn ich Sie richtig verstanden habe, möchten Sie so etwas:

\documentclass{article}

% \disable takes two arguments and only uses the second
\makeatletter
\let\disable\@secondoftwo
\makeatother

\begin{document}

This is \emph{emphasized} text

This is \disable\emph{emphasized} text

\end{document}

verwandte Informationen