fdb_latexmk의 형식에 대해 아는 사람은 누구입니까?

fdb_latexmk의 형식에 대해 아는 사람은 누구입니까?

빌드 도구 latexmk가 널리 사용됩니다. xxx.tex로 컴파일하면 latexmk xxx중간 파일이 xxx.fdb_latexmk생성됩니다. 해당 텍스트 파일의 일부 속성을 알아낼 수 있지만 확실히 알고 싶습니다. 나는 소스 코드를 연구했습니다 latexmk .https://github.com/debian-tex/latexmk/blob/master/latexmk.pl, 하지만 제 펄 지식이 너무 약해서... 음, 잘 이해가 안 되네요.

내가 이미 이해한 것:

  • 첫 번째 줄은 # Fdb version 4제 경우에는 4.xxx인 latexmk 버전을 나타낼 수 있습니다.
  • 나머지는 아래에 설명된 섹션입니다. 단일 섹션의 경우가 있습니다.

각 섹션에는 특정 형식이 있습니다.

  • 첫 번째 줄은 들여쓰기가 없는 유일한 줄입니다. 다음과 같을 수 있습니다.
["lualatex"] 1702989679 "bewerbung.tex" "bewerbung.pdf" "bewerbung" 1702989681 0

규칙을 참조하는 것 같아서 규칙 라인이라고 부릅니다.

  • 라인까지 이어지는 각 후속 라인은 (generated)소스를 참조하므로 이를 소스 라인이라고 부릅니다.
  • 그런 다음 한 줄이 나옵니다 (generated).
  • (generated)라인까지 이어지는 각 라인은 (rewritten before read) 타겟을 참조하는 것처럼 보이므로 이를 타겟 라인이라고 부릅니다.
  • 섹션의 마지막 줄은(rewritten before read)

질문:

  • 위 목록은 일반적인 형식입니까, 아니면 실수로 내 파일에 적용되는 것입니까?
  • 규칙 줄은 규칙 이름이 사용자 정의되거나 내장될 수 있는 ["rule name"]으로 시작하는 것 같습니다. 나머지 줄, 특히 많은 숫자는 나에게 명확하지 않습니다.
  • 소스 라인은 "file path"소스 파일을 참조하는 것으로 시작하는 것 같습니다. 그런 다음 해석할 수 없는 숫자, 변경 사항을 식별하기 위한 파일 크기 및 해시, 그리고 따옴표로 묶인 내용이 표시됩니다. 소스 파일이 생성되지 않았지만 규칙 이름이 파일을 생성한 경우에는 비어 있습니다.
  • 대상 행은 명확해 보입니다. 생성된 파일 이름은 따옴표로 묶여 있습니다.

자세한 내용을 알아보는 데 누가 도움을 줄 수 있나요?

답변1

Latexmk 관리자가 여기에 있습니다. .fdb_latexmk 파일은 latexmk의 내부 사용을 위한 것이므로 (현재) 공식 문서는 없습니다. 이 답변은 문서에 가장 가까운 접근 방식입니다.

latexmk 소스 코드에서 상당히 짧은 서브루틴인 rdb_write는 작성된 내용을 표시하여 형식을 효과적으로 정의합니다. 값이 기록된 변수의 이름은 의미를 나타냅니다.

첫 번째 줄의 버전은 단순히 .fdb_latexmk 파일에 사용되는 레이아웃의 버전 번호입니다. 이러한 파일의 정보 종류를 변경해야 할 때마다 버전 번호를 업데이트합니다. latexmk는 .fdb_latexmk 파일을 읽을 때 fdb 버전 번호를 확인하고 버전 번호가 현재 버전과 다르면 읽기를 중단합니다. (파일은 분명히 다른 버전의 latexmk에 의해 생성되었을 것입니다.) 현재 fdb 버전은 4입니다.

들여쓰기는 순전히 파일을 읽는 사람의 편의를 위한 것이며 latexmk에서 파일을 읽을 때 무시됩니다. 빈 줄과 주석 줄은 무시됩니다(fdb 버전 번호를 제공하는 초기 주석 줄 제외). 주석 줄은 가능한 공백으로 시작하고 그 뒤에 '#' 또는 '%'가 오는 줄입니다.

전체적인 구조는 보시는 것과 똑같습니다.

각 규칙에는 규칙 이름으로 ["..."]로 시작하는 줄로 시작되는 섹션이 있습니다. 같은 줄에 이어지는 필드는 다음과 같습니다.

  1. 규칙이 마지막으로 실행된 시간이 시작된 시스템 시간입니다.
  2. 기본 소스 파일(예: pdflatex에 대한 문서의 .tex 파일)
  3. 기본 대상 파일(있는 경우)(예: pdflatex의 출력 .pdf 파일)
  4. 파일(예: 로그 파일 등)의 기본 이름입니다.
  5. 재실행이 필요한지 여부를 확인하기 위해 규칙을 마지막으로 확인한 시스템 시간입니다.
  6. 마지막 실행의 상태 코드: 성공의 경우 0입니다. 현재 가능한 다른 값은 다음과 같습니다. 규칙이 의도한 출력 파일을 생성하지 못한 경우 1, 다른 종류의 오류가 있는 경우 2.

해당 규칙 줄 다음에는 규칙의 각 (알려진) 소스 파일에 대한 줄이 있습니다. 각 줄에는 파일 이름(큰따옴표로 묶음)이 있고, 방금 측정한 대로 파일의 수정 시간, 크기 및 md5 서명이 있습니다. 규칙이 실행되기 전. 마지막으로 파일을 생성한 규칙의 이름이 큰따옴표로 묶여 있습니다.

그 다음에는 '(생성됨)'이 포함된 행으로 시작되는 규칙 데이터의 또 다른 부분이 있습니다. 이는 규칙 실행 중에 생성된 파일에 대한 파일 이름 목록(큰따옴표로 묶음, 한 줄에 하나씩)입니다.

규칙 데이터의 마지막 부분은 '(읽기 전에 다시 작성됨)'을 포함하는 줄로 시작됩니다. 그 뒤에는 파일 이름 목록이 나옵니다(역시 큰따옴표로 묶음, 한 줄에 하나씩). 일반적으로 이 목록은 비어 있습니다. 여기에 있는 모든 파일은 실행 시작 시 존재했고 실행 중에 읽혔지만 처음 읽기 전에 다시 작성되었습니다.

ASCII가 아닌 파일 이름이 발견되면 UTF-8로 코딩된다는 점을 추가해야 합니다.

관련 정보