TeXShop のソースからコマンドと関連する中括弧を削除するスクリプトはありますか?

TeXShop のソースからコマンドと関連する中括弧を削除するスクリプトはありますか?

TeXShop でソースを編集しているとき、単語やフレーズの強調を削除したいことがよくあります。しかし、\emph単語の先頭とその{}前後の を削除するのは、思ったよりも面倒です。

私が探しているのは、コマンド( など)の先頭で実行できるスクリプトで\emph、左から右にスキャンして、中括弧内のテキスト以外のすべてを削除します(つまり、「\emph」、「{」、および「}」を削除します)。

私を

This is \emph{emphasized} text 

This is emphasized text 

コード自体に。

答え1

TeX ソリューションではありませんが、たとえば vim では正規表現を使用できます。

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

\emph注意:内側の ( \emph{foo \emph{bar} baz})は削除されません。また、\emph複数行にまたがる場合も削除されません。(改善点があればお気軽にコメントしてください!)

答え2

同様の変更を全て大きな文書や大きな部分でコマンド\emphを使用する場合は、\emph コマンドにはまったく触れず、コマンドを再定義することをお勧めします (前文または本文で)。主な利点は、強調する各単語に触れることなく、スタイルを簡単に切り替えることができることです。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}

強調

答え3

私が正しく理解していれば、次のようなものを望んでいると思います:

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

関連情報