升级到 MacTex 2015 后,表格内列表不起作用

升级到 MacTex 2015 后,表格内列表不起作用

我已将我的 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 上编译它。另外,如果我更改codetexttt或,lstinline它就会工作。有人可以帮忙吗?

答案1

listings软件包有一个升级,修复了与以下内容相关的问题tabular(请参阅更改历史记录)。

不幸的是,该修复程序是在 TeX Live 因制作 DVD 而冻结之后发布的,因此必须使用tlmgr或通过 MacTeX、TeX Live Utility 来更新发行版。

更新后的版本应该可以解决这个问题。


关于你的代码,我会使用

\newcommand{\code}{\lstinline[language=java]}

没有参数,所以你可以自由使用

\code{whatever}

或者

\code|whatever|

如果需要 TeX 特殊字符(|您可以使用要打印的代码中没有的任何字符来代替,例如\verb)。

相关内容