So entfernen Sie Leerzeichen am Anfang einer Auflistung

So entfernen Sie Leerzeichen am Anfang einer Auflistung

Ich versuche, Maxima-Code mithilfe von lstlisting in LaTeX einzubetten, und erhalte über der Auflistung zusätzliche Leerzeichen. Dies steht in meiner Präambel:

\lstset{basicstyle=\ttfamily\color{blue},
breaklines=true,
breakatwhitespace=true,
boxpos=t,
resetmargins=true}

Hier ist der relevante LaTeX-Code:

\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}

und das ist das Ergebnis:

Bildbeschreibung hier eingeben

Ich möchte, dass die erste Zeile der Auflistung oben in der Tabelle ausgerichtet ist.

Kann jemand einen Vorschlag machen, wie man das beheben kann?

Antwort1

\documentclassEs wäre wirklich nett von Ihnen, ein vollständiges MWE von bis vorzulegen \end{document}, sodass wir nicht raten oder die Kristallkugel benutzen müssen.

Trotzdem habe ich den Ball verwendet und Dein Beispiel etwas abgewandelt. Bitte mach mir keine Vorwürfe, wenn ich falsche Annahmen mache.

Sie verwenden eine Tabelle, um in der linken Spalte einen Marker und in der rechten Spalte das Codebeispiel anzuzeigen. Sie schließen das Codebeispiel in eine lstlisting-Umgebung ein, die sich sehr ähnlich wie eine angezeigte Formel verhält, d. h., sie fügt oben und unten in Ihrem Code Leerzeichen ein.

Stattdessen möchten Sie, dass Ihr Code an der Beschriftung in der linken Spalte ausgerichtet ist, richtig?

Um Ihren Code auszurichten, müssen Sie den Befehl \lstinline!code!anstelle der obigen Umgebung verwenden. Anstelle des Ausrufezeichens als Trennzeichen ( !) können Sie jedes andere Zeichen wählen, das im Code nicht vorhanden ist und das Sie darstellen möchten.

Schließlich muss man die Tabelle davon überzeugen, friedlich mit zusammenzuarbeiten \lstinline. Das habe ich getan, indem ich die zweite Spalte in eine Spalte mit definierter Breite geändert habe, die in der Lage ist, lange Zeilen zu unterteilen. Um sie wie eine normale l-Spalte aussehen zu lassen, habe ich >{\raggedright\arraybackslash}sie um -Spalten erweitert. Dieser neue Spaltentyp wurde L(großes L) genannt.

Dies ist mein Beispiel:

\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}

Und das Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen