Как добавить (большое) приложение с кодом в LaTeX / LyX?

Я хотел бы добавить приложение с кодом к моему документу LyX. Я уже рассмотрел несколько вариантов, но у всех есть свои проблемы.

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

В LyX есть возможность вставлять дочерние документы, но, похоже, это только для файлов .tex. Было бы идеально, если бы я мог просто вставить свой файл .java в качестве дочернего документа.

Я мог бы распечатать код в PDF, но он будет включать поля, которые испортят окончательный документ, так как PDF помещается на левом поле окончательного документа и затем есть поля PDF. Кроме того, этот PDF-файл всегда содержит весь код и белые области, где не вся страница заполнена.

Есть ли у кого-нибудь хорошая альтернатива?


person RemiX    schedule 15.03.2011    source источник
comment
Y Рассмотрите возможность размещения вашего вопроса на tex.stackexchange.com.   -  person BernardMarx    schedule 15.03.2011
comment
@Bernard @Remix подумайте о переносе этого вопроса ... кросспостинг не рекомендуется. Если вы хотите выполнить миграцию, просто отметьте модификацией.   -  person    schedule 15.03.2011


Ответы (4)


Пакет предложений найден здесь

http://www.ctan.org/tex-archive/macros/latex/contrib/listings/

позволяет включать внешние файлы исходного кода (см. ссылку на \lstinputlisting).

РЕДАКТИРОВАТЬ: здесь вы найдете несколько примеров того, как его использовать:

http://en.wikibooks.org/wiki/LaTeX/Packages/Listings

person Doc Brown    schedule 15.03.2011
comment
Я считаю, что внешний ресурс должен быть типа .sty или .tex. Если я вставлю файл .java, он выдаст ошибку: *** (невозможно \ читать с терминала в непрерывных режимах). Однако я не знаю, что это на самом деле означает. - person RemiX; 15.03.2011
comment
@RemiX: взгляните на вторую ссылку, которую я разместил выше. - person Doc Brown; 15.03.2011
comment
Спасибо. Я также решил экспортировать документ LyX в LaTeX, чтобы использовать фактические команды для большего контроля. - person RemiX; 16.03.2011

Если вам нужно скопировать и вставить код в список LyX, используйте Edit -> Paste Special -> Seletion или Ctrl + Alt + V.

person Cougar    schedule 04.04.2011

Как бы то ни было, по крайней мере, версии 2.0 LyX имеют возможность включать списки в качестве дочерних документов. Вставьте, Файл, Дочерний документ и выберите из раскрывающегося списка «Список программ». При этом используется пакет listings и вы можете сохранить исходный код в отдельном файле.

Если объявления не поддерживают ваш язык, вы всегда можете использовать что-то вроде выделить или source-highlight, чтобы сгенерировать латексный фрагмент кода с подсветкой синтаксиса, который вы можете добавить в качестве дочернего документа типа «Ввод»

person Ryan Pavlik    schedule 23.02.2012

Да, если вы скопируете и вставите код в поле списков LyX, вы потеряете все символы новой строки, но вы можете предварительно обработать свой код (вставьте дополнительную строку под каждой строкой):

$ cat foo.java | sed -e 's/$/\n/' > bar.java

Затем вы можете скопировать и вставить новый файл bar.java, и все будет в порядке.

person Forrest    schedule 16.03.2011