1

私は長い文書を書いており、いくつかの用語を頻繁にイタリック体にフォーマットしています。しばらくして、それが今私が望んでいることかもしれないことに気付いたので、テキストを斜体にフォーマットするラテックスコマンドをすべて削除したいと思います。

例:

\textit{Vim} is undoubtedly one of the best editors ever made. \textit{LaTeX} is an extremely powerful, intelligent typesetter. \textbd{Vim-LaTeX} aims at bringing together the best of both these worlds

この例のように、さまざまなコマンドに影響を与えずに、のすべてのインスタンスを認識し\textit{whatever}て変更する置換コマンドを実行するにはどうすればよいですか?whatever\textbd{Vim-LaTeX}

編集:技術的に役立つ答えはIgorからのものであるため、それを正しいものとしてマークします。それにもかかわらず、Konrad の回答は、従うべき適切な Latex 戦略を示しているため、考慮に入れる必要があります。

4

2 に答える 2

6

テキストでフォーマットコマンドを使用しないでください。

LaTeXは、セマンティックマークアップのアイデアに基づいて構築されています。したがって、「このテキストは斜体にする必要があります」と言う代わりに、関数を使用してテキストをマークアップする必要があります。例えば:

\product{Vim} is undoubtedly one of the best editors ever made. \product{LaTeX}
is an extremely powerful, intelligent typesetter. \product{Vim-LaTeX} aims at
bringing together the best of both these worlds

…次に、プリアンブル、パッケージ、またはドキュメントクラスで、マクロを(再)定義して、\product必要なフォーマットを設定します。そうすれば、コードを変更することなく、必要と思われるときにいつでもマクロを適応させることができます。

または、フォーマットを完全に削除したい場合は、マクロにその裸の引数を表示させるだけです。

\newcommand*\product[1]{#1}
于 2012-07-16T13:37:06.887 に答える
3

次の置換コマンドを使用します。

% s/\\textit{\([^}]*\)}/\1/

textitが複数行にまたがることができる場合:

%! perl -e 'local $/; $_=<>; s/\\textit{([^}]*)}/$1/g; print;'

そして、perlなしでもこれを行うことができます:

%s/\\textit{\(\_.\{-}\)}/\1/g

ここ:

  • \_.-改行文字を含む任意の記号
  • \{-}-*欲張りでないようにします。
于 2012-07-16T13:36:54.047 に答える