删除Latex标签的最简单方法(但不是其内容)?

时间:2010-10-26 09:29:26

标签: latex tags

我正在使用TeXnicCenter编辑LaTeX文档。

我现在想删除某个标记(例如,emph{blabla}},它在我的文档中多次出现,但不是标记的内容(所以在这个例子中,我想删除所有强调)。 最简单的方法是什么?

也可能正在使用Windows 7上易于使用的其他程序。

编辑:为了回应正则表达式建议,重要的是它可以处理嵌套标记。

编辑2:我真的想从文本文件中删除标记,而不仅仅是禁用它。

4 个答案:

答案 0 :(得分:4)

使用正则表达式执行s/\\emph\{([^\}]*)\}/\1/g之类的操作。如果您不熟悉正则表达式,则说:

s -- replace
/ -- begin match section
\\emph\{ -- match \emph{
( -- begin capture
[^\}]* -- match any characters except (meaning up until) a close brace because:
  [] a group of characters
  ^ means not or "everything except"
  \} -- the close brace
  and * means 0 or more times
) -- end capture, because this is the first (in this case only) capture, it is number 1
\} -- match end brace
/ -- begin replace section
\1 -- replace with captured section number 1
/ -- end regular expression, begin extra flags
g -- global flag, meaning do this every time the match is found not just the first time

这是Perl语法,因为这是我熟悉的。以下perl“one-liners”将完成两项任务

perl -pe 's/\\emph\{([^\}]*)\}/\1/g' filename将“测试”将文件打印到命令行

perl -pi -e 's/\\emph\{([^\}]*)\}/\1/g' filename会更改文件。

您的编辑器中可能有类似的命令,但如果没有,这将(应该)起作用。

答案 1 :(得分:1)

Crowley应该已经添加了这个作为答案,但如果你替换所有\ emph {我应该能够做到这一点而不会打扰其他内容,我会为他做到这一点。它仍然会在括号中,但除非你做了一些奇怪的事情,否则它无关紧要。

正则表达式将是一个简单的s/\\emph\{/\{/g,但编辑器中的搜索和替换也会做到这一点。

编辑:对不起,在正则表达式中使用了错误的大括号,现在修复了。

答案 2 :(得分:1)

\renewcommand{\emph}[1]{#1}

答案 3 :(得分:0)

任何合理的高级编辑器都应该允许您使用regular expressions进行搜索/替换,将emph{bla}替换为bla等。