Listagem de código dentro do ambiente tabu

Listagem de código dentro do ambiente tabu

Estou tentando inserir uma pequena listagem de código em uma tabutabela, porém não consigo construir um PDF.

O código que estou tentando usar (bem, uma forma simplificada) é o seguinte:

% !TEX encoding = UTF-8 Unicode
\documentclass[11pt]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)

%%% PAGE DIMENSIONS
\usepackage{geometry} % to change the page dimensions
\geometry{a4paper} % or letterpaper (US) or a5paper or....

%%% PACKAGES
\usepackage{listings} % code listings
\usepackage{tabu} % for tables

\begin{document}

\begin{tabu}{X|X}
  \begin{lstlisting}
    myFunction() {
      do.Something();
    }
  \end{lstlisting}
  & This does something
\end{tabu}

\end{document}

E aqui estão os erros no log de construção:

D:/mwe.tex:22: Forbidden control sequence found while scanning use of \lst@next. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]
D:/mwe.tex:22: Forbidden control sequence found while scanning use of \lst@next. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]
D:/mwe.tex:22: Missing $ inserted. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]
D:/mwe.tex:22: Forbidden control sequence found while scanning use of \lst@next. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing \endgroup inserted. [\end{tabu}]
D:/mwe.tex:22: Missing } inserted. [\end{tabu}]

Quando a listagem está fora do tabuambiente, tudo funciona conforme o esperado. Usar um ambiente de tabela diferente, como tabular, produz a listagem dentro de uma tabela.

Há algum problema com meu código Tex? Não tabusuporta listagens de código? Ou perdi algo extremamente óbvio? Só uso LaTeX há alguns dias, então me perdoe se for esse o caso!

Responder1

Pelo que eu sei, tabunão suporta listingsnem no tabu*meio ambiente.

No entanto, descobri que pythontexfunciona:

\documentclass[11pt]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)

%%% PAGE DIMENSIONS
\usepackage{geometry} % to change the page dimensions
\geometry{a4paper} % or letterpaper (US) or a5paper or....

%%% PACKAGES
\usepackage{pythontex} % code listings
\usepackage{tabu} % for tables

\begin{document}

\begin{tabu*}{X|X}
  \begin{pygments}{c}
    myFunction() {
      do.Something();
    }
  \end{pygments}
  & This does something
\end{tabu*}

\end{document}

É preciso correr

pdflatex <filename>
pythontex <filename>
pdflatex <filename>

e então a saída é

insira a descrição da imagem aqui

informação relacionada