sed를 사용하여 문서 제목 주위에 Latex 명령 삽입

sed를 사용하여 문서 제목 주위에 Latex 명령 삽입

제목이 모두 대문자인 문서가 있습니다. 예를 들면 다음과 같습니다.

NAME
       env - run a program in a modified environment

삽입하고 싶어요

\item[

제목 앞에 그리고

] \hfill \\

헤더 뒤의 결과는 다음과 같습니다.

\item[NAME] \hfill \\
       env - run a program in a modified environment

문서의 많은 부분에 LaTeX 형식을 추가하기 위해 sed 스크립트를 작성했지만 스크립트의 다음 줄은 작동하지 않습니다.

s/\([A-Z]\)*/\\item\[&\] \\hfill \\\\/g

원하는 출력(위의 예)을 생성하는 대신 다음을 얻습니다.

...\item[NAME] \hfill \\
\item[] \hfill \\ \item[] \hfill \\ \item[] \hfill \\ \item[] \hfill \\ \item[] \hfill \\ \i$
\item[] \hfill \\
...

보시다시피 제목 주위에 서식을 올바르게 삽입할 뿐만 아니라 문서의 다른 모든 내용도 대체합니다. 이 문제를 어떻게 해결할 수 있나요?

답변1

답변은 위의 댓글 스레드를 참조하세요. TL:DR 대답은 다음과 같습니다.

s/^\([A-Z]\)\+$/\\item\[&\] \\hfill \\\\/

답변2

수정하려는 줄이 항상 첫 번째 줄인 경우(귀하의 질문과 의견에서 알 수 있음) AWK를 사용하여 더 쉽게 만들 수 있습니다.

  {
    if (NR == 1)
   { print "\\item[" $0 "] \\hfill\\\\" }
  else
   { print ($0)}
  }

로 실행하세요 awk -f myScript.awk myManPage > myLaTeXmanPage.

답변3

일부 매뉴얼 페이지를 TeXify하려는 것 같습니다. 본 적 있나요?판독? LaTeX 및 man 형식 등을 이해하는 "만능 문서 변환기"입니다.

실제로 최종 목표가 PDF 매뉴얼 페이지를 생성하는 것이라면 PDF 매뉴얼 페이지를 man자동으로 생성할 수 있습니다. 예를 들어, bash(1)페이지의 PDF 버전을 얻으려면 :

man -T ps bash|ps2pdf - bash.pdf

ps2pdf패키지의 일부입니다 ghostscript.

관련 정보