
Я пишу алгоритм с использованием lstlisting:
\lstset{language=C++}
\begin{lstlisting}[frame=single,caption=Algorithme de la méthode "HOG+SVM"]
HOGDescriptor hog;\\
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());\\
while(1)
{
Mat image=imread("image.jpg");
vecor<Rect> detected_persons;
hog.detectMultiScale(image,detected_persons, 0, Size(8,8), Size(32,32), 1.05, 2);
for(int i=0;i<detected_persons.size();i++)
{
rectangle(image, detected_persons[i], cv::Scalar(0,255,0),1,8,0);
}
imshow("image",image);
}
\end{lstlisting}
Но я получил такой вывод по этому алгоритму: отображатьКак это исправить?
решение1
Окружение lstlisting
не всегда выглядит хорошо для длинных строк, как вы заметили. Есть альтернативы (например, minted
), но вы можете настроить lstlisting
вывод, чтобы он выглядел лучше.
Например, базовый размер может быть установлен на малый, строки могут быть перенесены (и обозначены как таковые), отступы могут быть уменьшены. Следующий MWE был склеен излистинги: Установка размера табуляции при использовании пробелов для отступов в загруженном файле не работаети перенос строки lstlistingи вручную удалить отступ верхнего уровня.
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{listings}
\lstset{
language=C++,
basicstyle=\small, % font size
breaklines=true, % line wrap
postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{red}\hookrightarrow\space}}, % arrow on wrapped lines
literate={\ \ }{{\ }}1 % adjust tab size
}
\begin{document}
\begin{lstlisting}[frame=single,caption=Algorithme de la m\'{e}thode "HOG+SVM"]
HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
while(1)
{
Mat image=imread("image.jpg");
vecor<Rect> detected_persons;
hog.detectMultiScale(image,detected_persons, 0, Size(8,8), Size(32,32), 1.05, 2);
for(int i=0;i<detected_persons.size();i++)
{
rectangle(image, detected_persons[i], cv::Scalar(0,255,0),1,8,0);
}
imshow("image",image);
}
\end{lstlisting}
\end{document}