
Я хочу иметь границу сверху и снизу моего кода. Я попробовал установить ее lstset
следующим образом:
\lstset{frame=topline|bottomline}
Однако он просто удалил правую границу и оставил все границы нетронутыми. Когда я попробовал:
\lstset{frame=topline}
Он правильно сохранил верхнюю границу, удалив все остальные.
Аналогично, когда я попытался:
\lstset{frame=bottomline}
Он правильно сохранил нижнюю границу, удалив все остальные.
Как мне объединить два?
решение1
Согласно документации, frame
ключ принимает следующие значения:
none
,
leftline
,
topline
,
bottomline
,
lines
(Верх и низ),
single
для одиночных кадров,
shadowbox
.
(См. раздел «2.7 Элементы макета» на стр. 18 документации listings
версии 1.8d.)
Чтобы получить верхнюю и нижнюю линию, вы можете использовать встроенный lines
ключ следующим образом:
\lstset{frame=lines}
В дополнение к вышеупомянутым 7 предопределенным стилям вы также можете точно настроить линии вокруг списка, используя комбинацию t
, l
, r
, и b
для одинарных строк или версии с заглавными буквами для двойных строк.
Таким образом, одна строка выше и ниже списка будет соответствовать:
\lstset{frame=tb}
решение2
Согласно инструкции (страница 36) необходимо указать несколько параметров с помощью отдельных символов:
\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}