
\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
.