Длинные очереди в LaTeX
У меня есть некоторый код, который я пишу внутри стенографического окружения. Иногда строки слишком длинные, и сгенерированный PDF выглядит некрасиво - строка текста проходит над правым полем. Что я могу сделать, чтобы автоматически разбить эти длинные строки? Есть ли что-нибудь лучше, чем дословное окружение?
Спасибо Люсьен
5 ответов
Вы можете просто использовать шрифт фиксированной ширины, например \texttt{}
? Если вам требуется что-то более сложное, попробуйте пакеты moreverb, листинги или алгоритмические.
Конечно, у вас есть замечательный пакет "списки" для этого. Он поддерживает (если хотите) даже красивую печать многих языков исходного кода, а также "умный разрыв" длинных строк в зависимости от отображаемого языка.
Я настоятельно рекомендую использовать пакет списков для этого. Он будет красиво форматировать код, поддерживает большое количество языков (см. Стр.12) и эффективно используется тремя способами:
- Встроенные фрагменты включены с помощью
\lstinline!int x = 0;!
команда Типизированные блоки кода, в пределах
lstlisting
среда, такая как следующее\begin{lstlisting} for i:=maxint to 0 do begin { do nothing } end; \end{lstlisting}
Импортированные блоки кода, в которые код встроен в документ непосредственно из файла исходного кода, например,
\lstinputlisting{source.py}
С помощью этого пакета можно настроить множество параметров, например, для переноса строк и включения номеров строк, а полную информацию можно найти в документации по пакету, но хорошая базовая настройка представлена в записи викибук:
\lstset{ %
language=C, % choose the language of the code
basicstyle=\footnotesize, % the size of the fonts that are used for the code
numbers=left, % where to put the line-numbers
numberstyle=\footnotesize, % the size of the fonts that are used for the line-numbers
stepnumber=2, % the step between two line-numbers. If it's 1 each line will be numbered
numbersep=5pt, % how far the line-numbers are from the code
backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color}
showspaces=false, % show spaces adding particular underscores
showstringspaces=false, % underline spaces within strings
showtabs=false, % show tabs within strings adding particular underscores
frame=single, % adds a frame around the code
tabsize=2, % sets default tabsize to 2 spaces
captionpos=b, % sets the caption-position to bottom
breaklines=true, % sets automatic line breaking
breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
escapeinside={\%*}{*)} % if you want to add a comment within your code
}
Вы можете попробовать красивую печатную упаковку, например, LGrind. В противном случае вам придется вручную разбивать строки.