Перейти к содержимому

Добавление программного кода в LaTex / LyX

10

Может быть, я просто толстый, но я не могу найти какой-либо разумный способ просто вставить мой (python) код в латекс, не теряя всю информацию о отступах (что очень важно для python).

У кого-нибудь есть яркие идеи? Меня не беспокоит подсветка синтаксиса; все, что я хочу, это моя клавиша Tab!

15 742 просмотра
Andrew Bolster спросил 15 лет назад
A 843

5 ответов

13
Принятый ответ

Моя любимая среда для этого чеканилась . Я использую его для ввода целых исходных файлов, таких как:

\inputminted[linenos,fontsize=\scriptsize] 

Вы также можете использовать его, не вводя файл, и, что более важно, определить, сколько отступов он сожрет после вставки:

\newminted \begin print('I am a Python script') \end 

Таким образом, ваш LaTeX по-прежнему имеет хороший отступ, но ваш дословный код - нет. Это также обеспечивает подсветку синтаксиса, что, как я знаю, вы упомянули, что вас не интересует. Просто не определяйте язык.

fideli ответил 15 лет назад
F 13 093
4

Вы захотите использовать дословную среду: http://web.mit.edu/vogt/www/latex/ltx-79.html

Если проблема возникает сразу после ее вставки ... вы используете IDE для создания документа? Попробуйте просто открыть файл в текстовом редакторе, таком как gedit или блокнот.

oadams ответил 15 лет назад
O 431
2

Я бы с minted, как это было предложено fideli, но это хорошо, чтобы быть в курсе о listingsпакете, который представляет собой раствор чистого латекса Ot проблему.

mintedПроисходит от Pygments, источника подсветки, написанного на Python. mintedcoimes с латексным мостом, на основе \write18, и пакет обеспечивает один для Pygments. Нет недостатка в сравнении с известными мне Пигментами: возможно, в какой-то момент они будут объединены.texmentsminted

Charles Stewart ответил 15 лет назад
C 2 184
1

Чтобы использовать пакет списков, вы должны включить пакет и загрузить необходимые языки в преамбуле:

\usepackage \lstloadlanguages 

Установите некоторые параметры внутри документа:

\lstset 

... а затем вы можете дать фрагменты в строке:

\begin print ("Hello, World!") \end 

... или читать их из файла:

\lstinputlisting[firstline=10,lastline=20] 

... или напишите код в строке: \lstinline!print ("Hello, World!")!

RolKau ответил 15 лет назад
R 781
1

For LyX, see this (imports a child document using the "listing" format).

Sparkler ответил 12 лет назад
S 128