这几乎是 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}
应用第一个链接答案中的修复不起作用,并且不会改变给定的错误消息。除此之外,我在文档中没有找到任何有用的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}