New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[dvipdfmx] 特定STIX利用dviでクラッシュ(pdf_encoding_new_encoding) #114
Comments
@kmuto ソース(.tex)の開示は難しいのだと思いますが,DVIに含まれるフォントの一覧は開示可能ですか? 例えば,TeX Live には dviinfox や chkdvifont というツールが入っていて,それを使えば「DVIにから参照されるTFMファイルの一覧」を表示することができます。それがわかれば,フォントパッケージを探って再現例を作れる人が現れるかもしれません。 |
ありがとうございます、 chkdvifontの結果を問題のあるもの bad.log(lmr利用)、問題のないもの ok.log(代替でほかでも使っているhiramin利用)として書き出しました。 tfm/vfは @munepi さんに作成いただいた業務用のもので、やはり出しにくいところがあります。 |
以下のソースで再現できました。 \documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{stix2}
\begin{document}
A quick brown fox jumps over the lazy dog.
\[ \left( \int_0^\infty \frac{\sin x}{\sqrt{x}} dx \right)^2
= \sum_{k=0}^\infty \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1}
= \prod_{k=1}^\infty \frac{4k^2}{4k^2 - 1} = \frac{\pi}{2} \]
\[ \mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathit{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathbfit{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathbfscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathbfsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathsfit{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathbfsfit{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathbffrak{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\[ \mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ} \]
\end{document} |
パッチ作ってみました。 --- a/source/texk/dvipdfm-x/pdfencoding.c
+++ b/source/texk/dvipdfm-x/pdfencoding.c
@@ -74,7 +74,7 @@ typedef struct pdf_encoding
char *glyphs[256]; /* ".notdef" must be represented as NULL */
char is_used[256];
- struct pdf_encoding *baseenc;
+ int baseenc_id;
pdf_obj *tounicode;
pdf_obj *resource;
@@ -100,7 +100,7 @@ pdf_init_encoding_struct (pdf_encoding *encoding)
encoding->tounicode = NULL;
- encoding->baseenc = NULL;
+ encoding->baseenc_id= -1;
encoding->resource = NULL;
encoding->flags = 0;
@@ -437,7 +437,7 @@ pdf_encoding_new_encoding (const char *enc_name, const char *ident,
if (baseenc_id < 0 || !pdf_encoding_is_predefined(baseenc_id))
ERROR("Illegal base encoding %s for encoding %s\n",
baseenc_name, encoding->enc_name);
- encoding->baseenc = &enc_cache.encodings[baseenc_id];
+ encoding->baseenc_id = baseenc_id;
}
if (flags & FLAG_IS_PREDEFINED)
@@ -464,9 +464,11 @@ void pdf_encoding_complete (void)
*/
int with_base = !(encoding->flags & FLAG_USED_BY_TYPE3)
|| pdf_check_version(1, 4) >= 0;
+ pdf_encoding *baseenc = (encoding->baseenc_id < 0) ?
+ NULL : &enc_cache.encodings[encoding->baseenc_id];
ASSERT(!encoding->resource);
encoding->resource = create_encoding_resource(encoding,
- with_base ? encoding->baseenc : NULL);
+ with_base ? baseenc : NULL);
ASSERT(!encoding->tounicode);
encoding->tounicode = pdf_create_ToUnicode_CMap(encoding->enc_name,
encoding->glyphs, |
@h20y6m さんの再現ソースとパッチを投げておきました |
本題(dvipdfmx)とは関係ないですが
の修正版をリリースしました。 aminophen/tex-assort#1 |
https://tug.org/pipermail/dvipdfmx/2021-June/000285.html
|
r59525 にて正式な修正が入ったようです。 |
転載しておきます。
Slack より:
@kmuto @h20y6m とりあえず埋もれないようにファイルしておきます。もし後で平田さんにお伝えする時に,参照先として1箇所の方がよいかと思い。
The text was updated successfully, but these errors were encountered: