Como adiciono borda na parte superior e inferior no lstset para código

Como adiciono borda na parte superior e inferior no lstset para código

Quero ter uma borda na parte superior e inferior do meu código. Tentei configurá-lo lstsetda seguinte maneira:

\lstset{frame=topline|bottomline}

No entanto, simplesmente removeu a borda direita e manteve todas as bordas intactas. Quando tentei:

\lstset{frame=topline}

Manteve corretamente a borda superior removendo todas as outras.

Da mesma forma, quando tentei:

\lstset{frame=bottomline}

Manteve corretamente a borda inferior removendo todas as outras.

Como posso combinar dois?

Responder1

De acordo com a documentação, a framechave aceita os seguintes valores:

none,

leftline,

topline,

bottomline,

lines(cabeçalho e rodapé),

singlepara quadros únicos,

shadowbox.

(Consulte a seção "2.7 Elementos de layout" na página 18 da listingsdocumentação versão 1.8d.)

Para obter resultados superiores e inferiores, você pode usar a lineschave integrada da seguinte maneira:

\lstset{frame=lines}

Além dos 7 estilos predefinidos mencionados anteriormente, você também pode ajustar as linhas ao redor da listagem usando uma combinação de t, l, re b para linhas simples ou versões maiúsculas para linhas duplas.

Uma única linha acima e abaixo da listagem corresponderia, portanto, a:

\lstset{frame=tb}

Responder2

De acordo com o manual (página 36) você deve especificar várias opções com caracteres únicos:

\documentclass{article}
\usepackage{listings}

\begin{document}
\lstset{language=Pascal}

\begin{lstlisting}[frame=tb] 
  for i:=maxint to 0 do
  begin
    { do nothing } 
  end;
\end{lstlisting}
\end{document}

insira a descrição da imagem aqui

informação relacionada