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}