列表和表格有错误

列表和表格有错误

以下是代码

\lstdefinestyle{mystyle}{
    frame=single,
}

\begin{figure*}[tbp!]
    \begin{center}
        \begin{tabular}{c}
            \lstset{style=mystyle}
            \lstinputlisting[]{code/method.cs}
        \end{tabular}       
    \end{center}
\end{figure*}

method.cs 中定义的内容:

public string[] reverse(string[] array)
{
    string[] newArray = new string[array.Length];
    for (int index = 0; index < array.Length; index++)
        newArray[array.Length-index-1] = array[index];

    return newArray;
}

错误信息:

Missing { inserted. \lstset{style=mystyle}
Missing } inserted. \lstset{style=mystyle}
Extra alignment tab has been changed to \cr. \lstset{style=mystyle}
You can't use `macro parameter character #' in restricted horizontal mode. \lstset{style=mystyle}
You can't use `macro parameter character #' in restricted horizontal mode. \lstset{style=mystyle}
You can't use `macro parameter character #' in restricted horizontal mode. \lstset{style=mystyle}
....

删除表格环境似乎可行,但我需要这样做才能实现居中。错误是什么?

编辑:

完整的 MWE:

\documentclass{article}

\usepackage{listings}

\lstdefinestyle{mystyle}{
    % backgroundcolor=\color{backcolour},   
    frame=single,
}

\begin{document}

\begin{figure*}[tbp!]
    \begin{center}
        %\begin{tabular}{c}
            \lstset{style=mystyle}
            \lstinputlisting[]{method.cs}
        %\end{tabular}      
    \end{center}
\end{figure*}

\end{document}

再次强调,我想要tabular环境。无论如何,我想知道为什么这不起作用。所以请不要建议删除tabular我已经知道可以工作的内容。

答案1

使用 MWE 时,列表环境已经居中,问题是它的宽度太长,因此看起来文本在左侧。 解决方案是这个答案(正如@leandriis 指出的那样)。

导致您出现错误的是框架。在表格环境中不能有框架。这是因为框架的定义与表格不兼容。您应该使用表格分隔符\begin{tabular}{|c|}\hline来创建框架。

两种方案的 MWE 及其边界以几何图形表示:

\documentclass{article}
\usepackage[showframe]{geometry}

\usepackage{listings}

\lstdefinestyle{mystyle}{
    %backgroundcolor=\color{green},   
    frame=single,
}

\begin{document}

\begin{figure*}[tbp!]
    \begin{center}
        \begin{tabular}{|c|}
            \hline
            \lstinputlisting[]{method.cs}\\
            \hline
        \end{tabular}      
    \end{center}
\end{figure*}

\begin{figure*}[tbp!]
    \begin{center}
        %\begin{tabular}{|c|}
            \lstset{style=mystyle}
            \lstinputlisting[]{method.cs}
        %\end{tabular}      
    \end{center}
\end{figure*}

\end{document}

相关内容