运行 tex4ebook 时我收到以下错误消息
--- warning --- File `EBGaramond-Regular-lf-ts1.htf' starts/ends with character code 255 (instead of 246)
--- warning --- File `EBGaramond-Regular-lf-ts1.htf' starts/ends with character code 255 (instead of 246)
--- error --- Illegal storage address
并给出错误代码 1,没有 epub 文件输出。
我需要在 MWE 中重现错误吗?或者有没有解决方案?
更新 1
在命名的 htf 文件中,前 9 行如下:
EBGaramond-Regular-lf-ts1 11 255
'¸' '' cedilla 11
'˛' '' ogonek 12
'‚' '' quotesinglbase 13
'' ''
'' ''
'' ''
'' ''
'„' '' quotedblbase 18
有人知道这是什么意思吗? 是不是哪里出了问题? 顺便说一句,用 notepad++ 查看了这个文件的编码,是 utf8(无 BOM)。
更新 2
我尝试制作 MWE,但这似乎很难。以下是运行 tex4ebook 时编译错误的最后一行。也许有帮助?我尝试在 MWE 中重现错误,然后再回来。
Searching `EBGaramond-Regular-lf-t1.htf' for `EBGaramond-Regular-osf-t1.htf'
(c:/texlive/2023/texmf-dist/tex4ht/ht-fonts/unicode/EB_Garamond_Regular/EBGaramond-Regular-lf-t1.htf)
[1
[FATAL] make4ht-lib: Fatal error. Command tex4ht returned exit code 1
C:\texlive\2023\bin\windows\runscript.tlu:921: command failed with exit code 1:
更新 3 - 最小工作示例
我发现了一个 MWE,它代表了运行 tex4ebook 时发生的情况并得到了上述非法存储地址的错误:
\documentclass[11pt,a4paper]{report}
\usepackage[cmintegrals,cmbraces]{newtxmath}
\usepackage{ebgaramond-maths}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{nextpage}
\usepackage{bbding}
% needs bbding.4ht by Michal H. in same folder for tex4ebook run
\usepackage{tex4ebook}
\providecommand\phantomsection{}
\usepackage[continuous,page]{pagenote}
% needs pagenote.4ht by Michal H. in same folder for tex4ebook run
\makepagenote
\let\footnote=\pagenote
\newcommand*{\addtonotesnewcommand}[1]{%
\ifpnhaschapter%
\ifnum\value{pnotesavechap}=\value{chapter}\else%
\setcounter{pnotesavechap}{\value{chapter}}%
\fi%
\else%
\ifnum\value{pnotesavechap}=\value{section}\else%
\setcounter{pnotesavechap}{\value{section}}%
\fi%
\fi%
\addtonotes{\vspace*{0.7\baselineskip}\protect\noindent\vspace*{0.35\baselineskip}\textsc{\large #1}}%
}% by Michal H.
\newcommand{\Quoteforchapter}[3]{%
\begin{flushright}
\begin{minipage}{#3}\small
\noindent\parbox{\textwidth}{\emph{#1}}\\[0.35\baselineskip]
\raggedleft\scriptsize #2
\end{minipage}
\end{flushright}}
\begin{document}
When running \TeX4ebook the following will happen:
\Quoteforchapter{>>Just to comment this out separately\\
the error disappears<<}{Some author}{0.4\textwidth}
\addtonotesnewcommand{First Chapter: Just to comment this out the error disappears}
\textsc{A Name}: Just to comment this out separately the error disappears\footnote{A footnote that becomes an pagenote}
\AsteriskThinCenterOpen : Just to comment this out separately the error disappears
\printnotes
\end{document}
当我说“错误消失”时,我的意思是生成了一个 epub 文件。出现错误时没有生成任何文件(错误代码 1)。
更新 4-将文件移动到新目录
我将.tex
和两个.4ht
文件(bbding、pagenote)移动到新目录,首先移动到 下OneDrive/...
,然后移动到 下C:/...
。但在这两种情况下,错误仍然存在。我使用了 not my.cfg
和 not my .mk4
。错误看起来和以前一样:
...
Transcript written on Testdocument_illegalstorageaddress.log.
[INFO] mkutils: xhtml,charset=utf-8,epub,uni-html4,html
[INFO] mkutils: executing: tex4ht -cmozhtf -utf8 -cmozhtf -utf8 "Testdocument_illegalstorageaddress.dvi"
--- error --- Illegal storage address
....
Searching `EBGaramond-Regular-lf-t1.htf' for `EBGaramond-Regular-osf-t1.htf'
(c:/texlive/2023/texmf-dist/tex4ht/ht-fonts/unicode/EB_Garamond_Regular/EBGaramond-Regular-lf-t1.htf)
[1
[FATAL] make4ht-lib: Fatal error. Command tex4ht returned exit code 1
C:\texlive\2023\bin\windows\runscript.tlu:921: command failed with exit code 1:
我还不知道现在该怎么办。
我另外尝试了另一种字体,我使用了\usepackage{lmodern}
。这样,错误就消失了,无论是在 OneDrive 下还是在 Windows C:/ 下。
如何修复已使用的字体的问题ebgaramond
?
答案1
错误illegal storage address
消失了when using the above MWE
。但具体原因尚不清楚,因为在其他 sourcename.tex 文件中,错误仍然存在。
我使用较早的字体(如在 MWE 中)tex4ebook -a debug -c config.cfg -e build.mk4 Testdocument.tex "fonts"
的选项运行,输出结果为 epub 文件。前一天运行 tex4ebook 时没有此选项,因此出现上述错误,没有 epub 输出。"fonts"
ebgaramond
"fonts"
但是当我现在再次运行 tex4ebookwithout
选项时"fonts"
也没有出现错误,这是应该的,因为前一天它导致了上述错误。
也许其他人知道整个问题的更合适的答案并在这里回答?