Acabo de empezar a trabajar con Latex, por lo que puede parecer una pregunta muy novata. Puse un código en una lista y luego quiero agregar una línea en blanco y luego la línea "Definir el bla bla".
Problema 1: Ese espacio antes de Definir, no sé por qué ocurre eso... no sucede en el resto de mi documento...
Problema 2: Intento insertar un salto de línea después de \lstlisting usando \ pero no funciona...
Este es mi código para esa área:
\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.
Esto es lo que me gustaría lograr:
Respuesta1
No deberías usarlo \\
demasiado. Normalmente, no deberías usarlo en absoluto en texto normal. Tienes que decidir dónde comienza un nuevo párrafo (línea en blanco en el código) y dónde no debería (sin línea en blanco ni a %
). Un párrafo nuevo siempre tendrá esa sangría (delante de "Definir el tamaño...") para que ese nuevo párrafo sea visible. Si no quieres eso en este único caso, usa \noindent
.
La mejor manera sería dejar las líneas vacías, ya que no desea obtener nuevos párrafos. Esto mantendrá correcta la semántica de su código. Si desea aumentar el espacio alrededor de su anuncio, debe ser el mismo para todos los anuncios. Y por eso hay que definirlo en el preámbulo. Por favor vea mi 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}
Si más adelante decides cambiar el espaciado, puedes simplemente redefinirlo aboveskip=10pt
o cualquier otra medida o dejarlo de lado. Esto podría suceder si cambia el estilo de sus listados. Por ejemplo, estar rodeado por una caja o similar. Esto le brinda la máxima flexibilidad.
NB: reemplacé todas tus líneas en blanco porque %
parece ser un párrafo grande. Deberías jugar con estos (eliminar uno por uno) para ver qué está sucediendo. Por ejemplo, el espacio delante de su enumeración era demasiado grande (lo que sugiere que este no era el comienzo de un nuevo párrafo).