2010-10-26 3 views
1

Я использую TeXnicCenter для редактирования документа LaTeX.Самый простой способ удалить тег Latex (но не его содержимое)?

Теперь я хочу удалить определенный тег (скажем, emph{blabla}}, который происходит несколько раз в моем документе, но не в содержимом тега (поэтому в этом примере я хочу удалить все подчеркивания). Что является самым простым способом сделать так

может также использовать другую программу легко доступны на ОС Windows 7.

Edit:. В ответ на регулярных выражений предложений, важно, что он может иметь дело с вложенными тегами

Редактировать2: Я действительно хочу удалить тег из текстового файла, а не просто отключить его.

+0

Я собираюсь предположить, что вы имеете в виду \ EMPH {BlaBla}, если вы не по какой-то причине вы можете удалить \\ из моих регулярных выражений в моем ответе –

ответ

0

любой достаточно продвинутый редактор должен позволить вам поиск/замена с использованием regular expressions, заменив emph{bla} на bla и т.д.

+2

Не было бы лучше сказать: msgstr "заменить' \ emph {'на' {'"? – Crowley

3

Используя регулярное выражение, сделать что-то вроде 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 «остротами» будет выполнять две задачи

perl -pe 's/\\emph\{([^\}]*)\}/\1/g' filename будет «тест» печати файла в командной строке

perl -pi -e 's/\\emph\{([^\}]*)\}/\1/g' filename изменит файл на месте.

Аналогичные команды могут быть доступны в вашем редакторе, но если это не будет (должно) работать.

+0

+1, очень хорошая документация. – Heinzi

+0

Спасибо, если кто-то ответит, можно также сделать это с удовольствием –

+0

Будет ли он функционировать правильно, если в теге есть другой тег, чтобы удалить (т. Е. Будет ли закрывающая фигурная скобка до правильной закрывающей скобки)? – Rabarberski

1

Crowley должен был добавить это как ответ, но я сделаю это для него, если вы замените все \ emph {на {вы должны сделать это, не нарушая другого содержимого. Он все равно будет в фигурных скобках, но если вы не сделали какой-то странный материал, это не имеет значения.

Регулярное выражение будет простым s/\\emph\{/\{/g, но поиск и замена в вашем редакторе также сделает это.

Редактировать: К сожалению, используется неправильная фигурная скобка в регулярном выражении, исправлена.

+0

хороший обходной путь! (Я не смог понять ответ Кроули в то время) – Rabarberski

Смежные вопросы