
Estoy intentando incrustar el código de Maxima en LaTeX usando lstlisting y obtengo espacio en blanco adicional encima de la lista. Esto está en mi preámbulo:
\lstset{basicstyle=\ttfamily\color{blue},
breaklines=true,
breakatwhitespace=true,
boxpos=t,
resetmargins=true}
Aquí está el código LaTeX relevante:
\begin{tabular}{ll}
\textcolor{red}{\ttfamily (\%i1)} &
\begin{lstlisting}
divide(x*((x^2*p^2-t^2)^2 + 2*x*p^3*(x-(2*x^3+2*x^2+x+1)*t)), (x+1)*(t^2-x^2*p^2)^2, t);
\end{lstlisting}
\end{tabular}
Y este es el resultado:
Quiero que la primera línea del listado esté alineada con la parte superior de la tabla.
¿Alguien puede sugerir cómo solucionar este problema?
Respuesta1
Sería muy amable de tu parte presentar un MWE completo desde \documentclass
hasta \end{document}
, para que no tengamos que adivinar ni usar la bola de cristal.
Sin embargo, usé la pelota y modifiqué un poco tu ejemplo. Por favor, no me culpes por hacer suposiciones erróneas.
Está utilizando una tabla para presentar un marcador en la columna de la izquierda y el ejemplo de código en la columna de la derecha. Encierra el ejemplo de código en un lstlisting
entorno, que actúa de manera muy similar a una fórmula mostrada, es decir, agrega espacios en blanco en la parte superior e inferior de su código.
En lugar de eso, desea que su código esté alineado con la etiqueta en la columna de la izquierda, ¿verdad?
Para alinear su código, debe usar el comando \lstinline!code!
en lugar del entorno anterior. En lugar del signo de exclamación como delimitador ( !
), puede elegir cualquier otro carácter que no esté presente en el código que desee presentar.
Finalmente, debes convencer a tu mesa para que coopere pacíficamente \lstinline
. Lo hice cambiando la segunda columna a una columna de ancho definido y que puede dividir líneas largas. Para que me gustara una l
columna ordinaria, solía ser, >{\raggedright\arraybackslash}
le agregué. Este nuevo tipo de columna recibió el nombre L
(L mayúscula).
Este es mi ejemplo:
\documentclass{article}
\usepackage{listings}
\usepackage{color}
%% New
\usepackage{array} % to define new column declarations.
%% Define a new column declaration
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\lstset{basicstyle=\ttfamily\color{blue},
breaklines=true,
breakatwhitespace=true,
boxpos=t,
resetmargins=true}
\begin{document}
\begin{tabular}{l L{5cm} } % <--- I used the new L-column, made it 5
% <--- cm wide!
\textcolor{red}{\ttfamily (\%i1)} &
%% New: use inline listing, it has to be one line!
\lstinline!divide(x*((x^2*p^2-t^2)^2 + 2*x*p^3*(x-(2*x^3+2*x^2+x+1)*t)), (x+1)*(t^2-x^2*p^2)^2, t);!
\end{tabular}
\end{document}
Y el resultado: