
패키지와 함께 KOMA-Script를 어떻게 사용할 수 있나요 mathbbol
?
%\documentclass{article} % works
\documentclass{scrartcl} % fails
\usepackage{mathbbol}
\usepackage{pdfx} % just to calm PDF/A-validators a bit
\begin{document}
\thispagestyle{empty}
$\scriptstyle\mathbb{E}$
\end{document}
pdflatex
(Ubuntu 18.04 LTS의 TeX Live 2019)는 오류나 경고를 보고하지 않습니다. 그러나 veraPDF와 Acrobat의 Preflight는 모두 동일한 글꼴 불일치에 대해 불평합니다. veraPDF 상태
<validationReport profileName="PDF/A-1B validation profile" statement="PDF file is not compliant with Validation Profile requirements." isCompliant="false">
<details passedRules="102" failedRules="1" passedChecks="398" failedChecks="1">
<rule specification="ISO 19005-1:2005" clause="6.3.6" testNumber="1" status="failed" passedChecks="0" failedChecks="1">
<description>For every font embedded in a conforming file and used for rendering, the glyph width information in the font dictionary and
in the embedded font program shall be consistent.</description>
<object>Glyph</object>
<test>renderingMode == 3 || isWidthConsistent == null || isWidthConsistent == true</test>
<check status="failed">
<context>root/document[0]/pages[0](5 0 obj PDPage)/contentStream[0](7 0 obj PDContentStream)/operators[11]/usedGlyphs[0](ZCDUID+BBOLD7 69 0 0)</context>
</check>
</rule>
</details>
</validationReport>
Acrobat의 Preflight에서는 다음과 같이 말합니다.
List of glyph width mismatches (PDF data versus embedded font data)
649.3 versus 676.593 (676.593/1000)
FontForge는 PDF에서 BBOLD7의 너비("Em Size"가 1000인 경우 676)를 확인하고 RUPS(또는 $EDITOR)를 효과적으로 표시합니다.
<< /Type /Font /FirstChar 69 /LastChar 69 /Widths [649.3] … >>
이러한 불일치의 원인은 무엇입니까?
패키지는 pdfx
이 문제에 영향을 미치지 않는 것 같습니다. 클래스가 article
사용되거나 제거되거나 \scriptstyle
패키지 가 .\mathbb
mathbbol
amssymb
답변1
글꼴 bbold7
등은 원래 MetaFont로 디자인되었으며 MetaFont의 기능을 사용하여 광학적으로 크기가 조정된 글꼴을 많이 생성했습니다. 따라서 글꼴 크기마다 글자의 너비를 포함한 글꼴이 조금씩 다릅니다. (이것이 바로 가 있는 이유입니다 bbold5/bbold7/bbold10
.) 이러한 MetaFont 글꼴은 PDF에서 Type 3 비트맵 글꼴로 끝났으므로 오늘날 우리는 벡터 글꼴(이 경우 Adobe의 Type 1 형식)을 선호합니다. 의 벡터 버전은 , 및 bbold
의 세 가지 크기로만 존재 하지만 이러한 세 가지 크기만 제공하면 이러한 글꼴을 사용하는 모든 LaTeX 문서가 약간 변경됩니다.5
7
10
특히 글꼴 메트릭(주로 모든 문자의 너비/깊이/높이)은 Type 1을 사용하든 MetaFont 버전을 사용하든 변경되어서는 안 됩니다. 따라서 LaTeX는 tfm
원래 별도의 글꼴이 있었던 모든 크기에 대해 여전히 파일(TeX가 글꼴 메트릭을 읽는 곳)을 로드합니다. , 이는 5
, 6
, 7
, 8
, 9
, 10
및 12
입니다 17
.
모든 크기는 폐쇄된 기존 Type 1 버전에 매핑됩니다. 그런 다음 이 가장 가까운 버전의 크기가 조정되어 올바른 크기가 됩니다. 이렇게 하면 원래 모든 광학 크기에 존재했던 약간의 변형이 손실되지만 TeX는 여전히 원본 tfm 파일을 사용하기 때문에 TeX는 여전히 모든 문자에 대해 동일한 양의 공간을 예약하므로 기존 문서의 전반적인 변경 사항이 줄어듭니다. 이제 이러한 tfm
파일은 실제로 벡터 글꼴이 존재하지 않는 글꼴 버전을 설명하기 때문에 메트릭, 특히 너비가 글꼴 파일의 실제 너비와 일치하지 않아 이러한 오류가 발생합니다.
이에 대해 무엇을 할 수 있나요? 글꼴 메트릭을 약간 변경해도 괜찮다면 LaTeX에 기존 글꼴에 대한 메트릭만 사용하도록 지시할 수 있습니다.
% \documentclass[11pt]{article} % works
\documentclass[11pt]{scrartcl} % works
\DeclareFontFamily{U}{bbold}{}
\DeclareFontShape{U}{bbold}{m}{n}
{ <5> <6> bbold5
<7> <8> bbold7
<9> <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> bbold10
}{}
\usepackage{mathbbol}
\usepackage{pdfx} % just to calm PDF/A-validators a bit
\begin{document}
\thispagestyle{empty}
$\scriptstyle\mathbb{E}$
\end{document}
대신 기존 솔루션을 선호하고 원래 글꼴의 메트릭을 유지하려는 경우 해당 글꼴이 더 이상 존재하지 않더라도 bbold6/8/9/12/17
에서 크기가 조정된 문자 모양을 명시적으로 로드하는 가상 글꼴을 만들 수 있습니다 bbold5/7/10
. 잘못된 글꼴 메트릭을 사용하는 대신 가상 글꼴을 사용하면 pdfTeX가 수행 중인 작업을 이해하고 이를 PDF 파일에 올바르게 보고할 수 있습니다.
하지만 위의 해결 방법을 먼저 시도해 보는 것이 좋습니다. 이를 위한 가상 글꼴을 만드는 것이 훨씬 더 복잡하기 때문입니다.