Script para excluir um comando e chaves associadas da fonte no TeXShop?

Script para excluir um comando e chaves associadas da fonte no TeXShop?

Quando estou editando o código-fonte no TeXShop, muitas vezes descubro que quero remover a ênfase de uma palavra ou frase. Mas excluir \empho início da palavra e o {}entorno é um pouco mais chato do que eu gostaria que fosse.

Suponho que o que estou procurando é um script que eu possa executar no início de um comando (como \emph) que varrerá da esquerda para a direita e excluirá tudo, exceto o texto entre chaves (ou seja, isso excluirá o "\emph", o "{" e o "}")

Algo que me tiraria de

This is \emph{emphasized} text 

para

This is emphasized text 

No próprio código.

Responder1

Não é uma solução TeX, mas você pode usar uma expressão regular, por exemplo, no vim:

:%s/\\emph{\([^}]*\)}/\1/g

Advertências: não remove inner \emph's ( \emph{foo \emph{bar} baz}), nem se \emphabrange várias linhas. (Sinta-se à vontade para comentar sobre melhorias!)

Responder2

Se as mesmas modificações precisarem ser feitas paratodoso \emphcomando em documentos grandes ou em algumas partes grandes, sugiro que você não toque no comando \emph, mas redefina o comando (no preâmbulo ou no corpo do documento). A principal vantagem é que você pode alternar facilmente entre os estilos sem tocar em cada palavra enfatizada. O 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}

enf

Responder3

Se bem entendi você quer algo assim:

\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}

informação relacionada