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}