在 tabularx 环境中使用 `#` 或 `%` 字符调用 \pygment

在 tabularx 环境中使用 `#` 或 `%` 字符调用 \pygment

我有以下 MWE:

\documentclass{article}
\usepackage{pythontex}
\usepackage{tabularx}

\begin{document}

\begin{tabularx}{\linewidth}{X}
\pygment{c}{#include <stdio.h>} \\
\end{tabularx}

\end{document}

这给了我

Illegal parameter number in definition of \pytx@argdetok.
Illegal parameter number in definition of \pytx@arg.
Illegal parameter number in definition of \pytx@argdetok.
Illegal parameter number in definition of \pytx@arg.
Illegal parameter number in definition of \pytx@argdetok.
Illegal parameter number in definition of \pytx@arg.

我研究了一下的行为\pygment{c}{#include <stdio.h>}

  1. 此线路在外部tabularx环境中运行
  2. 如果我删除##include错误就会消失。

附注:

  1. 編輯: pdflatex main.tex && pythontex main.tex && pdflatex main.tex
  2. 这似乎是一个已知问题,请参阅这个答案的 G. Poore。

答案1

您可以在本地确保#安全:

在此处输入图片描述

\documentclass{article}
\usepackage{pythontex}
\usepackage{tabularx}


\begin{document}

{\catcode`\#=12
\noindent\begin{tabularx}{\linewidth}{X}
\pygment{c}{#include <stdio.h>} \\
\end{tabularx}}

\end{document}

相关内容