xelatex가 동일한 결정적 소스에서 다른 파일을 생성하는 이유는 무엇입니까?

xelatex가 동일한 결정적 소스에서 다른 파일을 생성하는 이유는 무엇입니까?

간단한 라텍스 소스 파일을 가져옵니다:

\documentclass{article}
\usepackage{lipsum}
\usepackage{amsgen}
\begin{document}
\lipsum[1-10]
\end{document}

"라텍스"로 처리하면 항상 날짜를 제외한 모든 곳에서 동일한 동일한 DVI 파일을 얻게 됩니다.

"pdflatex"로 (여러 번) 처리하면 ID와 날짜를 제외하고 동일한 PDF 파일을 얻게 되며 "lualatex"에서도 마찬가지입니다.

그러나 "xelatex"로 (여러 번) 처리하면 크기가 매우 다른 PDF 파일이 생성됩니다. "vimdiff"를 사용하면 차이점을 쉽게 확인할 수 있습니다.

"xelatex"를 사용한 처리가 결정적이지 않은 이유는 무엇입니까? 동일한 소스에 대해 동일하지 않습니까?

답변1

이 문제는 드라이버: xdvipdfmx와 관련되어 있습니다. 글꼴에 대한 고유한 태그를 생성하기 위해 임의의 숫자가 사용됩니다. 노력하다

xelatex -no-pdf test

xdvipdfmx test.xdv
pdffonts test.pdf

태그가 다음과 같이 변경됩니다.

LYKESP+CMR10
CBIVMK+CMR10
...

당신이 달릴 때마다

xdvipdfmx test.xdv

답변2

차이점은 일부 부분의 실제 바이너리 인코딩입니다. 나는 PDF 렌더링이 전혀 변하지 않는다고 믿습니다. 내 경험상 파일 크기는 플러스 또는 마이너스 1바이트만 변경되었습니다(mac os x). 나는 두 개의 PDF에 대해 16진수 모드로 편집을 수행했습니다. 다음은 첫 번째 차이점이 나타나는 위치에 대한 스냅샷입니다.

인용구

따라서 이 첫 번째 차이점은 부분적으로 포함된 글꼴과 관련된 PDF의 일부에서 발생합니다. 무엇이 원인인지 모르겠습니다.

일반적으로 말하면 256바이트에 저장해야 하는 213바이트 항목이 있다고 말하면 마지막 43바이트는 임의 메모리일 수 있으며, 또한 하나 이상의 항목을 함께 압축하면 다양한 결과를 얻을 수 있다고 상상할 수 있습니다. 압축을 풀 때 구조 종결자 뒤에(또는 지정된 바이트 수 뒤에) 다양한 무작위 정크가 있을 수 있습니다. 비암호화 DNA처럼 말이죠. 아마도 비코딩은 아니지만 여기서 벗어나지는 말자.

XeTeX 소스 코드를 잘 아는 사람만이 설득력 있게 대답할 수 있을 것 같습니다.

정의되지 않은 것에 대해 걱정하지 마십시오 C-M-'. 잊어버린 키보드 단축키를 통해 캡처하려고 했습니다.

관련 정보