lstlisting 後換行不起作用

lstlisting 後換行不起作用

在此輸入影像描述

我剛開始使用 Latex,所以這聽起來像是一個非常菜鳥的問題。我將一些程式碼放入 lstlisting 中,然後我想添加一些空行,然後添加“定義 bla bla”行。

問題 1:定義之前的空格,我不知道為什麼會發生這種情況...它在我的文件的其餘部分中沒有發生...

問題 2:我嘗試使用 \ 在 \lstlisting 之後插入換行符,但它不起作用...

這是我在該區域的程式碼:

\subsection*{Part C}

Read over and experiment with the following code:\\

\begin{lstlisting}
def is_b_list(x):
    """(object) -> bool
    Return whether x is a binary list.
    >>> is_b_list("b_list")
    False
    >>> is_b_list(0)
    True
    >>> is_b_list([0, 0])
    True
    >>> is_b_list([[0]])
    False
    """
    return (x == 0 or
           (isinstance(x, list) and len(x) == 2
            and all([is_b_list(y) for y in x])))
\end{lstlisting}

\\Define the size of a binary list as the number of left brackets in its Python representation, i.e the total number of list objects in the binary list. So 0 has size 0 and [0, 0] has size 1.

\begin{enumerate}
\item Experiment until you find a formula (probably recursive) that computes the number of different binary lists of size s. Notice that if you call the formula C(s) then C(0) computes 1 and (C1) also computes 1.

這就是我想要實現的目標:

在此輸入影像描述

答案1

你不應該使用\\太多。通常,您根本不應該在普通文字中使用它。您必須決定新段落從哪裡開始(程式碼中的空白行)以及不應該從哪裡開始(沒有空白行或%)。新段落始終會縮排(在“定義大小...”前面)以使新段落可見。如果您不希望在這種情況下出現這種情況,請使用\noindent.

最好的方法是保留空行,因為您不想獲得新的段落。這將使您的程式碼語義保持正確。如果您想在清單周圍獲得更大的間距,則每個清單的間距應該相同。因此,必須在序言中對其進行定義。請參閱我的 MWE:

% arara: pdflatex

\documentclass{article}
\usepackage{listings}
\lstset{aboveskip=\baselineskip,belowskip=\baselineskip,basicstyle=\ttfamily}

\begin{document}
\subsection*{Part C}
%
Read over and experiment with the following code:
%
\begin{lstlisting}
def is_b_list(x):
"""(object) -> bool
Return whether x is a binary list.
>>> is_b_list("b_list")
False
>>> is_b_list(0)
True
>>> is_b_list([0, 0])
True
>>> is_b_list([[0]])
False
"""
return (x == 0 or
(isinstance(x, list) and len(x) == 2
and all([is_b_list(y) for y in x])))
\end{lstlisting}
%
Define the size of a binary list as the number of left brackets in its Python representation, i.e.\ the total number of list objects in the binary list. So $0$ has size $0$ and $[0, 0]$ has size $1$.
%
\begin{enumerate}
    \item Experiment until you find a formula (probably recursive) that computes the number of different binary lists of size $s$. Notice that if you call the formula $C(s$) then $C(0)$ computes $1$ and $(C1)$ also computes $1$.
\end{enumerate}
\end{document}

在此輸入影像描述

如果稍後您決定更改間距,您可以重新定義aboveskip=10pt或任何其他措施或將其保留。如果您變更清單樣式,則可能會發生這種情況。例如,被盒子或類似物包圍。這為您提供了最大的靈活性。


注意:我將所有空白行替換為,%因為它似乎是一大段。您應該嘗試一下這些(一一刪除)以查看發生了什麼。例如,枚舉前面的間距太大(表示這不是新段落的開始)。

相關內容