TeXShop의 소스에서 명령 및 관련 중괄호를 삭제하는 스크립트?

TeXShop의 소스에서 명령 및 관련 중괄호를 삭제하는 스크립트?

TeXShop에서 소스를 편집할 때 단어나 문구에서 강조를 제거하고 싶은 경우가 종종 있습니다. 하지만 \emph단어의 시작 부분과 {}그 주변을 삭제하는 것은 내가 원하는 것보다 조금 더 짜증납니다.

내가 찾고 있는 것은 \emph왼쪽에서 오른쪽으로 스캔하고 중괄호 사이의 텍스트를 제외한 모든 항목을 삭제하는 명령(예: )을 시작할 때 실행할 수 있는 스크립트라고 가정합니다. "\emph", "{" 및 "}")

나를 데려갈 무언가

This is \emph{emphasized} text 

에게

This is emphasized text 

코드 자체에서.

답변1

TeX 솔루션은 아니지만 vim과 같은 정규식을 사용할 수 있습니다.

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

\emph주의 사항: 내부 의 ( \emph{foo \emph{bar} baz}) 를 제거하지 않으며 \emph여러 줄에 걸쳐 있는 경우에도 제거하지 않습니다. (개선사항은 댓글로 남겨주세요!)

답변2

동일한 수정이 필요한 경우모두큰 문서나 일부 큰 부분에서 명령 \emph을 사용하려면 \emph 명령을 전혀 건드리지 말고 명령을 다시 정의하는 것이 좋습니다(서문이나 본문 문서에서). 가장 큰 장점은 강조된 각 단어를 터치하지 않고도 스타일 간에 쉽게 전환할 수 있다는 것입니다. 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}

엠프

답변3

내가 당신을 올바르게 이해했다면 당신은 다음과 같은 것을 원할 것입니다 :

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

관련 정보