Как удалить пробелы в начале листинга

Как удалить пробелы в начале листинга

Я пытаюсь встроить код Maxima в LaTeX с помощью lstlisting и получаю лишние пробелы над листингом. Это в моей преамбуле:

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

Вот соответствующий код LaTeX:

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

и вот результат:

введите описание изображения здесь

Я хочу, чтобы первая строка списка была выровнена по верху таблицы.

Может ли кто-нибудь подсказать, как это исправить?

решение1

Было бы очень мило с вашей стороны представить полный отчет о состоянии окружающей среды с \documentclassпо \end{document}, чтобы нам не пришлось гадать или гадать.

Тем не менее, я использовал мяч и немного изменил ваш пример. Пожалуйста, не вините меня за какие-либо неправильные предположения.

Вы используете таблицу, чтобы представить маркер в левом столбце и пример кода в правом столбце. Вы заключаете пример кода в -окружение lstlisting, которое действует очень похоже на отображаемые формулы, то есть добавляет пустое пространство сверху и снизу вашего кода.

Вместо этого вы хотите, чтобы ваш код был выровнен с меткой в ​​левом столбце, я прав?

Чтобы выровнять код, вам нужно использовать команду \lstinline!code!вместо вышеуказанной среды. Вместо восклицательного знака в качестве разделителя ( !) вы можете выбрать любой другой символ, которого нет в коде, который вы хотите представить.

Наконец, вы должны убедить свою таблицу, мирно сотрудничать с \lstinline. Я сделал это, изменив второй столбец на столбец определенной ширины, который может разделять длинные строки. Чтобы он был похож на обычный l-столбец, он был раньше, я добавил >{\raggedright\arraybackslash}к нему. Этот новый тип столбца был назван L(заглавная L).

Вот мой пример:

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

И вот результат:

введите описание изображения здесь

Связанный контент