2014-10-08 4 views
0

나는 (TeX/LaTeX) .tex 파일의 큰 컬렉션을 가지고 있는데, 나는이 파일들을 분석하는 파이썬 스크립트를 작성하고있다. 나는 단지 LaTeX 파일을 분석하기를 원하며, 따라서 모든 순수 TeX 파일을 제거하고 싶다.프로그래밍 방식으로 TeX와 LaTeX 파일을 구별하는 방법

나는 모든 파일에 \begin{document}이 포함되어 있다고 생각했지만 꽤 많은 양의 파일을 거부합니다. 여러 파일이 책, 장부 목록 또는 장부에있는 장이기 때문에 \begin{document} 명령

아무도 내 컬렉션에서 모든 순수 TeX 파일을 필터링하는 방법을 알고 있습니까?

+0

호기심에서 벗어나 어쨌든 파일을 처리하는 방법을 모르는 경우 (예 : 챕터가 포함 된 LaTeX 조각 일 수도 있고 옵션 모음 만있을 수도 있음) 주어진 차이가있는 유스 케이스를 제공 할 수 있습니까? –

+0

'\ begin {document}'을 사용하여 주요 LaTeX 파일을 찾은 다음 LaTeX 파편이 들어있는 파일을 찾기 위해 해당 파일에서'\ input'과'\ include '를 검색하십시오. 알려진 LaTeX 파일에 포함되지 않은'\ begin {document} '이없는 파일은 대개 일반 TeX 파일입니다. –

+0

@BenjaminBannier : 저는 학교 프로젝트를 위해 가장 자주 사용되는 LaTeX 인쇄체를 결정하려고합니다. – askemottelson

답변

-3

그래, 모든 파일 이름을 배열에 추가하십시오. 디렉토리를 나열하여이를 수행하십시오.

x = os.listdir("path") 

이렇게하면 디렉토리 내용이 변수 x에 추가됩니다. 그것을 통해 다음 루프 :

PureTex = [] 
    for Char in x: 
     if Char.endswith('.tex'): 
      PureTex.append(Char) 
     else: 
      pass 

는 이제 PureTex 배열이 순수 파일이 포함됩니다.

+0

그의 문제는 전형적인 대회에서 * TeX와 LaTeX 파일 모두'.tex' *로 끝난다는 것입니다. –

1

\input 또는 \include으로 입력 할 수있는 파일에 민감하기를 원한다는 것을 전제로 완전히 그렇게 할 수는 없을 것 같습니다. 특정 파일이 주어지면, 아마도 당신이 찾은 다음 중 첫 번째 파일을 발견함으로써 상당한 신뢰감으로 분류 할 수 있습니다.

  1. 텍 파일 일반적으로 \bye, 그리고는 일반적으로 LaTeX의 파일에 정의 아닙니다.
  2. \begin 매크로는 '보통'TeX 파일에 정의되어 있지 않을 수 있습니다 (\endplain 형식으로 정의되어 있음).

당신이 할 수있는 것처럼 보이는 통계 분석을 위해서는 충분할 것이라고는 생각할 수있는 최선의 방법 일 것입니다.

TeX 파일을 작성하는 사람이 \begin을 정의하는 것을 막을 수있는 방법은 없습니다. LaTeX 파일을 작성하는 사람도 있습니다. \bye을 의미하는 것으로 정의 할 수 없습니다. 당신의 관점에서 볼 때 문제는 과 같은 것이 LaTeX에서는 드물지만, TeX 구문은 LaTeX 파일에서 실제로 금지되어 있습니다 (그 반대도 마찬가지입니다). 실제로, LaTeX는 단지 TeX 형식이기 때문에,이 둘 사이에 어떤 차이도 전혀 없다. ()

후자의 지점을 집으로 운전하기 위해서는 이 아니지만 LaTeX가 아닌 TeX 형식 인 ConTeXt과 같은 것이 있습니다. 그것은 다소 드문 일입니다.

관련 문제