서브 파일 컴파일 질문

Oct 05 2020

문서가 있다고 가정 해 보겠습니다.

% Preamble
\usepackage{subfiles}
% Preamble
\begin{document}
    \maketitle
    \subfile{FileA}
    \subfile{FileB}
    \subfile{FileC}
\end{document}

몇 가지 질문 :

  1. 파일이 아직 컴파일되지 않았다고 가정하고 FileA라고 컴파일합니다. 제목이 표시 되나요? 아니면 제목을 표시하려면 메인 파일을 실행해야하나요?
  2. 내가보기에, 서브 파일은 나머지 서브 파일과는 독립적으로 컴파일됩니다. 즉, 해당 섹션 만 컴파일하는 반면, 메인 파일을 컴파일하는 것은 내가 \input서브 파일에서 전체 TeX 코드를 사용 하거나 그 안에 있는 것과 동일 합니다. 다른 서브 파일은 그대로두고 일부 서브 파일을 동시에 컴파일하는 방법이 있습니까 (예 : 서브 파일의 결과가 pdf에 표시되지 않는 대신 변경되지 않음)?
  3. 서브 파일을 컴파일하고 여러 서브 파일의 결과가 해당 서브 파일과 동일한 페이지에있는 경우, 후속 서브 파일의 결과가 해당 서브 파일 컴파일로 인한 결과로 "덮어 쓰기"됩니까?
  4. 방금 서브 파일을 컴파일했습니다. 어떤 이유로 컴파일 시간이 메인 파일을 컴파일하는 것과 같습니다. 이런 일이 일어날까요?
  5. 4로 편집 : 방금 메인 파일을 닫고 서브 파일을 실행했는데 결과가 서브 파일이 아닌 전체 파일을 컴파일하는 것으로 나타났습니다. 이는 서브 파일이 "자체 컴파일 가능"한 것과 모순되는 것 같습니다. 누군가 자세히 설명 할 수 있습니까?

그런데 저는 TeXStudio를 사용합니다.

답변

1 gernot Oct 06 2020 at 18:18

댓글이 너무 깁니다.

질문 1 :\maketitle 명령 이 포함 된 문서에 제목이 나타납니다 . 메인 파일에 있고 일부 서브 파일을 컴파일하면 서브 파일이 메인 파일에서 프리앰블 만 취하고 나머지는 무시하기 때문에 제목이 나타나지 않습니다.

다시 질문 2 : 이 질문은에 한정되지 않으며 subfiles대답은 기본적으로 '아니요'입니다. 내가 아는 한, TeX 프로세서 중 어느 것도 캐싱을 수행하지 않고 변경된 부분 만 입력합니다. 일부 패키지는 다음 실행에 대한 집중적 인 계산 결과를 캐시 할 수있는 가능성을 제공합니다 (예 :에서 외부화 pgfplots). 더 큰 규모에서는 프로젝트를 빌드하기위한 도구 (예 make: ant과 같은 도구)를 사용 하여 변경된 프로젝트의 일부만 컴파일 할 수 있습니다. 그러나 TeX 파일의 경우 전체 파일을 타이핑하는 tex 프로세서를 계속 호출합니다.

다시 질문 3 : 이것이 TeX와 서브 파일 패키지가하는 일에 대한 오해라고 생각합니다. 주 문서를 조판 할 때 .NET texFramework를 무시하고 서브 파일 의 소스를 로드합니다 pdf. 따라서 서브 파일을 조판하면 서브 파일에 pdf대해 새 s 가 생성 되지만 기본 파일의 pdf는 그대로 둡니다. TeXStudio는 사용자가보기 tex위해 즉석에서 조판 된 파일을 실제로 편집하고 있다는 사실을 위장 pdf할 수 있습니다.

질문 4 : 서브 파일을 조판 할 때 처리 시간이 주 파일을 조판 할 때보 다 확실히 짧습니다. 그러나 대부분의 상황에서는 프로그램을 시작하고 파일을 여는 데 텍스트를 조판하는 것보다 훨씬 더 많은 시간이 걸리기 때문에 눈치 채지 못할 것입니다. 주 파일이 크고 / 또는 일부 부분에 컴퓨팅 집약적 인 그래픽이 포함 된 경우에만 실시간 절약 효과를 볼 수 있습니다.

다시 질문 5 : 이것은 아마도 TeXStudio 및 / 또는 사용 문제 일 것입니다. TeXStudio는 아마도 항상 파일 세트를 '현재'파일 세트로 타이프 셋하고, 아마도 서브 파일 만 타이프 셋하기를 원한다는 것을 알지 못했을 것입니다.

일반 권장 사항 : 단일 tex 파일로 시작하십시오. 너무 커지면 \input또는 을 사용하여 구성하십시오 \include. 문서의 일부를 독립적으로 조판 할 수 있어야하는 경우에만 subfiles.