LaTeX, listagem de duas colunas em uma matriz

LaTeX, listagem de duas colunas em uma matriz

Estou tentando exibir códigos lado a lado, usando isto:

\begin{center} \begin{tabular}{c|c}  \begin{lstlisting}
while (x > 0) do
  x++; \end{lstlisting} & \begin{lstlisting}
x = 0; \end{lstlisting}  \end{tabular}\end{center}

Aqui está o que é exibido após a compilação:listagem de código de látex

O problema é que a linha vertical da tabela vai longe demais. Tentei brincar com os parâmetros de listagem abaixo e acima, e tentei usar minipáginas também, mas nada parece funcionar corretamente.

Meu segundo problema é que usando o código acima, o segundo código ("x = 0;") não está alinhado com o while. EDIT: o segundo problema é resolvido usando minipáginas, graças ao cfr

Você sabe como resolver isso?

Responder1

insira a descrição da imagem aqui

Conseguimos a imagem acima com o auxílio do arraypacote, você pode alterar a largura das colunas como quiser

% \usepackage{array}  


\begin{center} 
\begin{tabular}{p{3.9cm}|p{3.9cm}} 
 \begin{lstlisting}
while (x > 0) do
  x++; \end{lstlisting} &
   \begin{lstlisting}
x = 0; \end{lstlisting}  
\end{tabular}
\end{center} 

informação relacionada