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

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

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

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

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

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

Ответы [ 4 ]

7 голосов
/ 15 марта 2011

Пакет списков, найденный здесь

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

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

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

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

3 голосов
/ 04 апреля 2011

Если вам нужно скопировать и вставить код в список LyX, используйте Правка -> Специальная вставка -> Выбор или Ctrl + Alt + V.

2 голосов
/ 24 февраля 2012

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

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

1 голос
/ 16 марта 2011

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

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

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

...