开发者

Easiest way to remove Latex tag (but not its content)?

I am using TeXnicCenter to edit a LaTeX document.

I 开发者_运维知识库now want to remove a certain tag (say, emph{blabla}} which occurs multiple times in my document , but not tag's content (so in this example, I want to remove all emphasization). What is the easiest way to do so?

May also be using another program easily available on Windows 7.

Edit: In response to regex suggestions, it is important that it can deal with nested tags.

Edit 2: I really want to remove the tag from the text file, not just disable it.


Using a regular expression do something like s/\\emph\{([^\}]*)\}/\1/g. If you are not familiar with regular expressions this says:

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

This is with Perl syntax, as that is what I am familiar with. The following perl "one-liners" will accomplish two tasks

perl -pe 's/\\emph\{([^\}]*)\}/\1/g' filename will "test" printing the file to the command line

perl -pi -e 's/\\emph\{([^\}]*)\}/\1/g' filename will change the file in place.

Similar commands may be available in your editor, but if not this will (should) work.


Crowley should have added this as an answer, but I will do that for him, if you replace all \emph{ with { you should be able to do this without disturbing the other content. It will still be in braces, but unless you have done some odd stuff it shouldn't matter.

The regex would be a simple s/\\emph\{/\{/g but the search and replace in your editor will do that one too.

Edit: Sorry, used the wrong brace in the regex, fixed now.


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


any reasonably advanced editor should let you do a search/replace using regular expressions, replacing emph{bla} by bla etc.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜