我已将我的 Latex 安装更新至 MacTex 2015,并且以下 Latex 代码不再编译:
\documentclass[10pt]{article}
\usepackage{listings}
\lstset{language={java},
morekeywords={left,right}
keywordstyle=\bfseries,
basicstyle=\footnotesize\ttfamily
}
\def\java#1{\lstinline[language=java]{#1}}
\newcommand{\code}[1]{\java{#1}}
\begin{document}
\begin{table*}[t]\footnotesize
\centering
\def\arraystretch{1.1}
\begin{tabular}{lll}
A & B & C \\
1 & 2 & \code{left} and \code{right} \\
\end{tabular}
\caption{Summary}
\label{table:summary}
\end{table*}
\end{document}
错误信息是:
! Missing } inserted.
<inserted text>
}
l.24 \end
{tabular}
?
! Misplaced \crcr.
\endtabular ->\crcr
\egroup \egroup $\egroup
l.24 \end{tabular}
?
! Extra }, or forgotten $.
\endtabular ->\crcr \egroup \egroup
$\egroup
l.24 \end{tabular}
这是添加后日志文件的输出\listfiles
:
*File List*
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
listings.sty 2014/09/06 1.5e (Carsten Heinz)
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
lstmisc.sty 2014/09/06 1.5e (Carsten Heinz)
listings.cfg 2014/09/06 1.5e listings configuration
lstlang1.sty 2014/09/06 1.5e listings language file
我可以在 mactex 2014 上编译它。另外,如果我更改code
为texttt
或,lstinline
它就会工作。有人可以帮忙吗?
答案1
该listings
软件包有一个升级,修复了与以下内容相关的问题tabular
(请参阅更改历史记录)。
不幸的是,该修复程序是在 TeX Live 因制作 DVD 而冻结之后发布的,因此必须使用tlmgr
或通过 MacTeX、TeX Live Utility 来更新发行版。
更新后的版本应该可以解决这个问题。
关于你的代码,我会使用
\newcommand{\code}{\lstinline[language=java]}
没有参数,所以你可以自由使用
\code{whatever}
或者
\code|whatever|
如果需要 TeX 特殊字符(|
您可以使用要打印的代码中没有的任何字符来代替,例如\verb
)。