键入一个字母后出现难以理解的错误

键入一个字母后出现难以理解的错误

顺便提一下代码

\item $\Sp^\Sigma(\C,K)$ has a left proper, cellular model category
structure, called the \textbf{projective model structure}, where a map
$f\colon X\rightarrow Y$ in $\Sp^\Sigma(\C)$ is a weak
equivalence (resp., a fibration), if $f_n\colon X_n\rightarrow Y_n$ is
a weak equivalence (resp., a fibration) in $\C$, for all $n\in\bbN$.

代码

\item $\Sp^\Sigma(\C,K)$ 有一个左正确、细胞模型类别
结构,称为 \textbf{射影模型结构},其中映射
$f\colon X\rightarrow Y$ 在 $\Sp^\Sigma(\C,K)$ 是弱 % ← 添加 ",K"
等价(分别是纤维化),如果 $f_n\colon X_n\rightarrow Y_n$ 是
对于所有的 $n\in\bbN$,$\C$ 中的一个弱等价物(即纤维化)。

唯一的区别在于标记的 K,当我尝试编译我的文档时,在第 1 行出现以下 Latex 错误:

! \OML/cmm/m/it/10.95 Y$ \OT1/cmr/m/it/10.95 in $[][]\OT1/cmr/m/n/10.95 (\U/eus/m/n/10.95 C\OML/cmm/m/it/10.95 ; K\OT1/cmr/m/n/10.95 )

这对我来说完全没有意义,而且我在网上找不到太多帮助。还请注意,如果我保留有问题的代码片段不变并继续输入其他内容,则编译时不会出现问题(即使我添加了大量代码)。

看到一些评论后,我试着更好地阐明问题。以下代码使用了我正在使用的所有包,并且编译没有问题

\documentclass[11pt]{amsart}

\usepackage[utf8]{inputenc}  % to allow unicode in source

\pagestyle{plain}

%% AMS and other general math packages:
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\let\amssquare\square
\usepackage{dsfont}
\usepackage{marvosym}
\usepackage{mathpartir}
\usepackage{mathtools} % for \mathclap, used to center extra-wide diagrams.
\usepackage{stmaryrd}

%% General style packages:
\usepackage{xcolor}
\definecolor{darkgreen}{rgb}{0,0.45,0}
\definecolor{darkred}{rgb}{0.75,0,0}
\definecolor{darkblue}{rgb}{0,0,0.6}
\usepackage[colorlinks,citecolor=darkgreen,linkcolor=darkred,urlcolor=darkblue]{hyperref}
\usepackage{breakurl}
\usepackage[mathscr]{eucal}
\usepackage{enumerate} % for customising enumerated listsEDIT:
\usepackage[capitalize]{cleveref}



%\parskip = 0.1in
%\parindent = 0.0in

%% For syntax of type theory:
\usepackage{mathpartir}

%% Graphics and diagrams packages:
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage[all]{xy}
\xyoption{2cell}
\xyoption{curve}
\UseTwocells

\newcommand{\Sp}{\mathsf{Sp}}
\newcommand{\C}{\mathscr{C}}
\newcommand{\bbN}{\mathbb{N}}


\begin{document}
\begin{itemize}
\item $\Sp^\Sigma(\C,K)$ has a left proper, cellular model category structure, called the \textbf{projective model structure}, where a map $f\colon X\rightarrow Y$ in $\Sp^\Sigma(\C,K)$ is a weak equivalence (resp., a fibration), if $f_n\colon X_n\rightarrow Y_n$ is a weak equivalence (resp., a fibration) in $\C$, for all $n\in\bbN$.
\end{itemize}
\end{document}

这是我的问题文件中使用的代码与我使用的完全相同,但不允许我进行编译。如果我在有问题的文件中替换第二次出现的

$\Sp^\Sigma(\C,K)$

$\Sp^\Sigma(\C)$

我没有产生任何错误。这是我在 texmaker 中编译时遇到的错误的屏幕截图。(该命令\end{document}存在于文件中,我只是无法截取屏幕截图)。同样,导致 texmaker 无法编译的唯一原因是添加了额外的,K。我无法从日志文件中获取错误,正如评论中所建议的那样。

答案1

很难回答,因为没有提供生成该消息的代码,并且片段有未定义的命令错误,但我能找到的最接近的例子是

 \documentclass[11pt]{amsart}

\usepackage[utf8]{inputenc} 
\pagestyle{plain}

%% AMS and other general math packages:
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\let\amssquare\square
\usepackage{dsfont}
\usepackage{marvosym}
\usepackage{mathpartir}
\usepackage{mathtools} 
\usepackage{stmaryrd}

%% General style packages:
\usepackage{xcolor}
\definecolor{darkgreen}{rgb}{0,0.45,0}
\definecolor{darkred}{rgb}{0.75,0,0}
\definecolor{darkblue}{rgb}{0,0,0.6}
\usepackage[colorlinks,citecolor=darkgreen,linkcolor=darkred,urlcolor=darkblue]{hyperref}
\usepackage{breakurl}
\usepackage[mathscr]{eucal}
\usepackage{enumerate} 
\usepackage[capitalize]{cleveref}

\usepackage{mathpartir}

%% Graphics and diagrams packages:
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage[all]{xy}
\xyoption{2cell}
\xyoption{curve}
\UseTwocells
\input{diagxy}
\def\Sp{SSSS}
\def\C{C}
\def\bbN{\mathbb{N}}
\addtolength\textwidth{-18pt}

\begin{document}
\begin{itemize}
\item $\Sp^\Sigma(\C,K)$ has a left proper, cellular model category
\mbox{structure,} called the \textbf{projective model structure}, where a map
$f\colon X\rightarrow Y$ in $\Sp^\Sigma(\C,K)$ is a weak
equivalence (resp., a fibration), if $f_n\colon X_n\rightarrow Y_n$ is
a weak equivalence (resp., a fibration) in $\C$, for all $n\in\bbN$.
\end{itemize}
\end{document}

产生

Overfull \hbox (3.40347pt too wide) in paragraph at lines 46--51
[]$\OML/cmm/m/it/10.95 SSSS[]\OT1/cmr/m/n/10.95 (\OML/cmm/m/it/10.95 C; K\OT1/c
mr/m/n/10.95 )$ has a left proper, cel-lu-lar model cat-e-gory []

这不是一个错误消息,而是一个警告消息,提示说线...蜂窝模型类别...太宽 3pt,无法容纳指定的线宽。


该段落的完整框输出包括

.....\OMS/cmsy/m/n/10.95 !
.....\penalty 500
.....\glue(\thickmuskip) 3.04161 plus 3.04161
.....\OML/cmm/m/it/10.95 Y

所以如果你发布了日志您将会看到没有错误,但是您的编辑器(您没有说是哪一个)对!(右箭头)感到困惑,并将此框输出显示为错误消息。

答案2

这是 Texmaker 中的一个错误,我可以使用以下输入文件重现它(使用默认设置,即不使用我在下面提到的配置更改):

\documentclass{article}
\begin{document}
abcdefghijklmnopqrstuvw $X \rightarrow Y$ and lots more text here: the quick~brown~fox jumps over the lazy dog.
\end{document}

错误截图

事情是这样的:当 TeX 设置了一个溢出的框时,它会将相关信息写入终端。这会换行到默认的行长,在这种情况下,其中一行以 开头!。Texmaker 对此感到困惑,因为它天真地将以 开头的任何行视为!错误。

这是一个需要报告给 Texmaker 的错误。


在 TeXmaker 修复此问题之前,出于独立的原因,这是我的建议(也是我安装 TeX Live 2017 后做的第一件事):增加行长以防止此类换行。以下是我所做的方法:

  1. 在终端中,运行kpsewhich texmf.cnf以查找文件的位置texmf.cnf。对我来说,它是/usr/local/texlive/2017/texmf.cnf。以 root 身份编辑该文件。(如果您无法以 root 身份编辑,您也可以创建自己的文件texmf.cnf并更新TEXMFCNF变量以指向您的文件。)
  2. 将以下行添加到texmf.cnf

    % We must have error_line < 255 and half_error_line < error_line - 15
    max_print_line=10000
    error_line=254
    half_error_line=238
    

这样可以为您提供尽可能长的行和尽可能多的上下文。例如,默认情况下,这是上述输入的警告:

Overfull \hbox (8.15326pt too wide) in paragraph at lines 3--4
[]\OT1/cmr/m/n/10 abcdefghijklmnopqrstuvw $\OML/cmm/m/it/10 X \OMS/cmsy/m/n/10 
! \OML/cmm/m/it/10 Y$ \OT1/cmr/m/n/10 and lots more text here: the quick brown 
fox

更改之后仍出现相同的警告:

Overfull \hbox (8.15326pt too wide) in paragraph at lines 3--4
[]\OT1/cmr/m/n/10 abcdefghijklmnopqrstuvw $\OML/cmm/m/it/10 X \OMS/cmsy/m/n/10 ! \OML/cmm/m/it/10 Y$ \OT1/cmr/m/n/10 and lots more text here: the quick brown fox

同样,以下是日志文件中之前和之后的字体信息行示例:

</usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb
></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb>
</usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></
usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></us
r/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/l
ocal/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/lo
cal/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb>

(请注意后面几行的随机断句)与

</usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2017/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb>

在这种情况下可能没有太大的区别,但尝试一下看看 - 我非常喜欢非换行(你的终端可能会将它们换行显示,但是当你复制粘贴日志时你将能够区分这些行)。

答案3

(评论太长,因此作为答案发布)

使用下面显示的代码,我无法复制您报告的错误消息。请告诉我们您使用的文档类以及是否使用任何特殊的数学相关包。

\documentclass{article}
\usepackage{amssymb} % for "\mathbb" macro
\providecommand\bbN{\mathbb{N}}
\providecommand\Sp{\mathsf{Sp}}
\providecommand\C{\mathcal{C}}

\begin{document}
\begin{itemize}
\item $\Sp^\Sigma(\C,K)$ has a left proper, cellular model 
category structure, called the \textbf{projective model structure}, 
where a map $f\colon X\rightarrow Y$ in $\Sp^\Sigma(\C,K)$ is a
weak equivalence (resp., a fibration), if $f_n\colon X_n\rightarrow Y_n$ 
is a weak equivalence (resp., a fibration) in $\C$, for all $n\in\bbN$.
\end{itemize}
\end{document}

相关内容