我已经用 LaTeX 记实验室笔记好几年了。我有自己的样式文件,它基于实验室手册班级。
不幸的是,当我本周早些时候升级到 TeX Live 2018 时,我的实验室笔记本无法再编译。我收到以下错误:
...
LaTeX Warning: Unused global option(s):
[index-totoc].
(./Notebook.aux) (/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd)
(/usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty)
(/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
ABD: EveryShipout initializing macros
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
(/usr/local/texlive/2018/texmf-dist/tex/latex/translator/translator-basic-dicti
onary-English.dict)
(/usr/local/texlive/2018/texmf-dist/tex/latex/siunitx/siunitx-abbreviations.cfg
) (/usr/local/texlive/2018/texmf-dist/tex/latex/siunitx/siunitx-binary.cfg)
No file Notebook.bbl.
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty))
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd) [1{/usr/local/t
exlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2]
(./FYNotebook.tex
! Undefined control sequence.
\UseRawInputEncoding ...tencodingname \@undefined
\let \DeclareFontEncoding@...
l.11 \experiment{NJOY}
?
抱歉,我没有 MWE。如果我从设置中删除任何东西,那么所有东西都会开始损坏。
有谁见过这个错误并且知道是什么原因造成的?
答案1
您的类是 8 位编码的,并且在代码中使用非 ASCII 字符。这会中断,因为 latex 的默认编码现在是 utf8。您可以使用以下方法避免错误\UseRawInputEncoding
:
\UseRawInputEncoding %without it you get the error.
\documentclass[12pt]{labbook}
\begin{document}
\experiment{NJOY}
\end{document}
答案2
用作宏参数的内部分隔符labbook.cls
。§
如果我添加
\chardef\labbook@us=\catcode`_
\catcode`_=3 % funny catcode
在该行之后\RequirePackage{makeidx} \makeindex
,将所有§
字符替换为_
(该字符在类中未使用),同时执行
\catcode`_=\labbook@us
就在最后之前\endinput
,示例文件可以毫无问题地进行编译。
无论如何,使用 8 位字符来达到这个目的都是错误的;不过,你可以添加
\UseRawInputEncoding
在任何文件的开头使用labbook.cls
,编译就会顺利进行。