newcommand 包装 lstinline 在表格内不起作用

newcommand 包装 lstinline 在表格内不起作用

我喜欢拥有一致的文档,并且喜欢在写完文档后对格式做出一些决定。我使用自己的占位符 LaTeX 命令来包装一些单词或表达式。例如,我想使用一个名为\Shortcutwrap 的命令\lstinline,并带有合适的样式参数。(我\lstinline最终是否使用并不重要,我可能会将其更改为\textcolor或其他)。到目前为止,我的方法只是有效。但它在环境中不起作用tabular。我该如何让它工作?这是我的 MWE:

\documentclass{book}

\usepackage{tabularx}
\usepackage{listings}
\usepackage{xcolor}

\lstdefinestyle{inlcode}{
    language=C,
    identifierstyle=\color{blue!75!black}
}
\newcommand\Shortcut{\lstinline[style=inlcode]}

\begin{document}
  \Shortcut{test}            % <--- works

  \begin{tabular}[t]{cc}
    1 & 2 \\
    \Shortcut{one} & two   % <--- doesn't work
  \end{tabular}
\end{document}

答案1

我已经改变了您的自定义命令的定义以允许使用参数。

的一般语法\newcommand如下: \newcommand{<name>}[<number of arguments>]{<code>}

\documentclass{book}

\usepackage{tabularx}
\usepackage{listings}
\usepackage{xcolor}

\lstdefinestyle{inlcode}{
    language=C,
    identifierstyle=\color{blue!75!black}
}
\newcommand{\Shortcut}[1]{\lstinline[style=inlcode]{#1}}

\begin{document}
  \Shortcut{test}

  \begin{tabular}[t]{cc}
    1 & 2 \\
    \Shortcut{one} & two
  \end{tabular}

\end{document}

相关内容