Cuando edito la fuente en TeXShop, a menudo encuentro que quiero quitar el énfasis de una palabra o frase. Pero eliminar \emph
el principio de la palabra y sus {}
alrededores es un poco más molesto de lo que me gustaría.
Supongo que lo que estoy buscando es un script que pueda ejecutar al inicio de un comando (como \emph
) que escaneará de izquierda a derecha y eliminará todo excepto el texto entre llaves (es decir, que eliminará el "\emph", el "{" y el "}")
Algo que me sacaría de
This is \emph{emphasized} text
a
This is emphasized text
En el propio código.
Respuesta1
No es una solución TeX, pero puedes usar una expresión regular, por ejemplo en vim:
:%s/\\emph{\([^}]*\)}/\1/g
Advertencias: no elimina \emph
el interno ( \emph{foo \emph{bar} baz}
), ni si \emph
abarca varias líneas. (¡No dudes en comentar si hay mejoras!)
Respuesta2
Si se deben hacer las mismas modificaciones paratodoel \emph
comando en documentos grandes o algunas partes grandes, le sugiero que no toque el comando \emph en absoluto, sino que redefina el comando (en el preámbulo o en el cuerpo del documento). La principal ventaja es que puedes cambiar fácilmente entre estilos sin tocar cada palabra resaltada. El 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}
Respuesta3
Si te entendí correctamente, quieres algo como esto:
\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}