Подтвердить что ты не робот

Как заставить обертывание строк в пакете листингов?

У меня проблема с пакетом листингов в латексе. Мне нужно добавить исходный код следующего XML-документа http://www.sparxsystems.com.au/downloads/profiles/EP_Extensions.xml в приложении к моему основному тезису. Проблема в том, что независимо от того, какие параметры я передаю в пакет, я, похоже, не могу поместить его на страницу. Строки в листинге слишком длинны, и пакет листингов их не обертывает, что кажется странным... Какая комбинация опций будет делать трюк?

В настоящий момент я использую следующую команду lstset:

\lstset{
breakindent=0em,
language=XML,
basicstyle=\footnotesize,
numbers=left,
numberstyle=\footnotesize,
stepnumber=2,
numbersep=5pt,
backgroundcolor=\color{white},
showspaces=false,
showstringspaces=false,
showtabs=false,
frame=single,
tabsize=2,
captionpos=b,
breaklines=true,
breakatwhitespace=true,
breakautoindent=true,
escapeinside={\%*}{*)},
linewidth=\textwidth
}

Который, без каких-либо других опций, и в сочетании со следующей командой:

\lstinputlisting{EP_Extensions.xml}

Перечисляет данный источник файла на следующий вывод: alt text

4b9b3361

Ответ 1

У меня была эта проблема...

breaklines работал у меня, хотя вам нужно установить его в true - по умолчанию это false:

\lstinputlisting[style=Python,
    caption=My Class,
    label={mine.py},
    breaklines=true,
  ]{../python/mine.py}

- это в значительной степени то, что я использовал

Ответ 2

У меня была эта проблема, и эта страница высоко ценится в google, поэтому вот решение для меня:

У меня было следующее включение: \usepackage[none]{hyphenat}, что вызывает проблему, описанную выше. Я использовал его, чтобы исправить проблему латекса, автоматически разбивая строки в середине слова, которое выглядит в какой-то степени глупо.

После долгих поисков альтернативы этому решению я не нашел ничего подходящего и уладил правильные ломаные линии, но неправильно разместил перенос.

Ответ 3

Все, что я могу сделать, это указать вам на listings docs и предположить, что в нем есть раздел с названием "Поля и форма линии". Являются ли эти варианты среди тех, которые вы пробовали?

В частности, я вижу опции с именами типа linewidth, breaklines и breakautoindent, которые, как видно, указывают, что listings поддерживает ваши потребности.

Ответ 4

Не большой ответ, но одна идея заключается в том, чтобы сложить исходный код, прежде чем включать его. Если вы используете linux, для этого может использоваться команда fold. Ясно, что это лучше всего работает, если текст имеет шрифт фиксированной ширины, который я бы рекомендовал в любом случае для списков кодов.