在“tabu”中使用“mintinline”

在“tabu”中使用“mintinline”

这几乎是 2017 年版的这个问题,因为在这种情况下提供的解决方案不再起作用,并且这些 其他 答案,因为tabu有它自己的规则。

语法高亮功能有效,mintinline在单元格中使用可正确高亮代码。没有明显的问题,只是会引发以下错误: Package minted Error: Missing Pygments output; \inputminted wasor may be using frozencache with a missing file. \end{tabu}

以下是简短的 MWE 和编译结果:

\documentclass[preview]{standalone}
\usepackage{tabu,minted}
\begin{document}
    \mintinline{html}{<p>This works</p>}
    \begin{table}[htb]
        \centering
        \begin{tabu} to \linewidth {l | X[c] | c}
            Col1 & Col2                                   & Col3 \\
            \hline
            A    & \mintinline{html}{<p>This doesn't</p>} & B    \\
            C    & D                                      & E    \\
        \end{tabu}
        \caption{MWE Table}
        \label{tbl:table}
    \end{table}
\end{document}

MWE 编译的结果

应用第一个链接答案中的修复不起作用,并且不会改变给定的错误消息。除此之外,我在文档中没有找到任何有用的tabu信息minted

答案1

这似乎有效:在测量阶段使用\tabuDisableCommands它来做一些不同且不太复杂的事情,并且只在排版期间做它的事情。\mintinline

但它有一个缺点:\detokenize输入与逐字输入不同,因此在某些情况下此解决方案会失败。​​在像 OP 这样的表格中,列宽不取决于实际内容,\mintinline更安全的输入\renewcommand\mintinline[2]{}也可以。

\documentclass{article}
\usepackage{tabu,minted}

\tabuDisableCommands{%
  \renewcommand\mintinline[2]{\texttt{\detokenize{#2}}}%
}

\begin{document}

\mintinline{html}{<p>This works</p>}
\begin{table}[htb]
  \centering
  \begin{tabu} to \linewidth {l | X[c] | c}
    Col1 & Col2                                   & Col3 \\
    \hline
    A    & \mintinline{html}{<p>This doesn't</p>} & B    \\
    C    & D                                      & E    \\
  \end{tabu}
  \caption{MWE Table}
  \label{tbl:table}
\end{table}

\end{document}

相关内容