소스 파일에서 LaTeX 키워드를 나열하고 계산하는 방법은 무엇입니까?

소스 파일에서 LaTeX 키워드를 나열하고 계산하는 방법은 무엇입니까?

특정 문서에 나타나는 LaTeX 키워드를 나열(결국 계산하고 계산)하려고 합니다. 기본적으로 LaTeX의 "유효한" 키워드는 다음을 통해 식별할 수 있습니다.

  1. 실제로 "%" 기호로 시작하지 않습니다(주석 처리되므로 사용되지 않음).
  2. 백슬래시로 시작됩니다.
  3. Is 뒤에는 여는 중괄호(또는 옵션이 제공되는 경우 왼쪽 괄호)가 옵니다.

나는 다른 "특별한" 경우가 있다는 것을 알고 있습니다. 즉, 키워드 뒤에 아무것도(공백) 없거나 다른 키워드가 있는 경우가 있습니다. 그러나 이러한 경우는 상대적으로 드물고 부정확함에 대해 신경 쓰지 않습니다. 나의 주요 목표는 결국 다양한 유형의 문서에 포함된 다양한 키워드의 수에 대한 대략적인 아이디어를 얻는 것입니다.

awk를 사용하여 다양한 방법을 시도했지만 아무 것도 작동하지 않습니다. 참고용으로 LaTeX 파일의 MWE(말도 안 되고 작동하지도 않습니다!)를 첨부했습니다.

\documentclass[a4paper]{scrreprt} % Mode production
\usepackage[T1]{fontenc}
\renewcommand{\thechapter}{\Alph{chapter}}
\fancypagestyle{FrontPageTestReportStyle}
\fancyfoot[C]{}
\newcommand{\WaterMark}[1]{%
\begin{tikzpicture}[remember picture,overlay]
\node[rotate=60]
\end{tikzpicture}%
\begin{figure}[H]
\centering
\begin{minipage}[b]{.46\textwidth}
\centering
\includegraphics[width=#2]{#3}\caption {#4}
\end{minipage}
\caption {#3}
\end{figure}
\raggedright
\begin{tabular}{|c|cS|cS|}
\hline
\multirow{2}{*}{Part number}&\multicolumn{2}{c|}{Cavity A}&\multicolumn{2}{c|}{Cavity B}\\
\end {tabular}
\end{table}

답변1

이것은 소스 파일에서 LaTeX 명령을 분할하는 스크립트입니다. 로 시작하는 주석을 제거합니다 %. 모든 주요 명령 \과 모든 환경 이름을 출력합니다 .

sed -e 's/^\(\(\)*\)%.*/\1/' \
    -e 's/\([^\\]\(\\\\\)*\)%.*/\1/' \
    -e 's/\\./\n&/g' |
sed -n -e 's/^\\begin *{\([^{}]*\)}.*/\1/p' \
       -e 's/^\\end *{.*//' \
       -e 's/^\(\\[@A-Za-z][@A-Za-z]*\).*/\1/p' \
       -e 's/^\(\\[^@A-Za-z]\)/\1/p' |

설명하다:

  1. 첫 번째 패스에서는 sed각 백슬래시 앞에 개행 문자를 추가합니다. 처음 두 표현식에서 주석이 제거됩니다. \%이전 주석은 유지되지만 여전히 제거됩니다 \\.
  2. 두 번째 sed단계에서 첫 번째 표현식은 \begin명령의 환경 이름을 인쇄하고 두 번째 표현식은 \end명령을 무시합니다. 세 번째 표현식은 이름이 문자인 명령을 인쇄하고, 네 번째 표현식은 이름이 기호인 명령을 인쇄합니다.

스크립트는 축자적 환경을 처리하지 않습니다.

답변2

이거 변형 같은데이 문제.

그래서 나는 이 대답을 살펴볼 것입니다:

for w in `cat test.tex`; do echo $w; done|sort|egrep '\\[a-z]*{'|uniq -c
  1 A}&\multicolumn{2}{c|}{Cavity
  1 \begin{figure}[H]
  1 \begin{minipage}[b]{.46\textwidth}
  1 \begin{tabular}{|c|cS|cS|}
  1 \begin{tikzpicture}[remember

정규식에는 약간의 작업이 필요할 수 있지만 시작하는 데에는 도움이 됩니다.

관련 정보