\includegraphics의 검색 순서는 무엇입니까?

\includegraphics의 검색 순서는 무엇입니까?

\includegraphics포함할 이미지 파일을 찾는 방법을 수정하는 방법에는 여러 가지가 있습니다 . 나는 \DeclareGraphicsExtensions및 에 관심이 있습니다 \graphicspath.

\includegraphics검색 알고리즘 이란 무엇입니까 ? 검색되나요

foreach extension in {<ext-list>}
    foreach directory in {<dir-list>}

, 또는 foreach directory ... foreach extension?

... 아니면 병렬로 검색할 수 있나요?

실제 LaTeX를 실행하기 전에 Makefile의 일부로 이미지를 변환하는 경우가 많기 때문에 질문드립니다. 또한 내 진술에는 파일 확장자를 제공하지 않습니다 \includegraphics. 나는 Makefile의 현재 절차가 마음에 들지 않으며 이를 최적화하고 싶습니다. 그러기 위해서는 \includegraphics검색 방법을 알아야 합니다 .

궁극적으로 나는 모든 이미지 소스 파일이 포함된 디렉토리와 모든 변환/조작된 이미지가 포함된 또 다른 디렉토리를 갖고 싶습니다. 나는 \includegraphics항상 모든 변환 대상이 있는 디렉터리에서 일치하는 파일 이름을 찾은 다음, 변환 대상 디렉터리에서 일치 항목을 찾지 못한 경우 소스 파일의 디렉터리를 검색하는지 확인하고 싶습니다 .

따라서 답변에 대해서는 다음과 같은 추가 질문이 있습니다. 이 동작은 안정적인가요, 아니면 변경될 수 있나요?

답변1

확장자가 제공되지 않으면 LaTeX의 표준 테스트를 사용하여 해당 파일이 존재하는지 확인하기 위해 각 확장자를 차례로 시도합니다 \IfFileExists.

\Gin@extensions따라서 파일 확장자( 명령을 통해 설정된 목록에 있음 \DeclareGraphicExtensions)가 .png, .jpg이고 .pdf목록이 is \input@path로 설정된 경우\graphispath{aaa/}{bbb/}

\includegraphics{foo}

다음을 사용하여 순서대로 테스트합니다.\IfFileExists

foo.png, foo.jpg그런 다음 foo.pdf파일이 발견되는 즉시 중지됩니다.

\IfFileExists{foo.png}

순서대로 테스트

foo.png, aaa/foo.png그리고bbb/foo.png

TeX의 원시 프리미티브가 파일을 발견하자마자 성공을 보고합니다 \openin.

각각의 경우 \openin먼저 현재 디렉토리를 검색한 다음 귀하 texmf.cnf또는 이에 상응하는 miktex 설정에 설정된 대로 전체 TEXINPUT 경로를 검색합니다.

설정에 따라 파일 시스템을 검색하거나 \input.

관련 정보