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

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

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

1
задан Andrew Bolster
30.01.2023 18:53 Количество просмотров материала 2709
Распечатать страницу

5 ответов

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

\inputminted[linenos,fontsize=\scriptsize]{python}{script.py}

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

\newminted{python}{gobble=4,linenos,fontsize=\scriptsize}
\begin{pythoncode}
    print('I am a Python script')
\end{pythoncode}

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

13
отвечен fideli 2023-02-01 02:41

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

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

4
отвечен oadams 2023-02-01 04:58

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

minted происходит от Pygments, исходный маркер, написанный на Python. minted coimes с латексным мостом, на основе \write18 и texments пакета обеспечивает одно для Pygments. Нет никакой обратной стороны minted по сравнению с Pygments, что я знаю: может быть, два будет слились в какой-то момент.

2
отвечен Charles Stewart 2023-02-01 07:15

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

\usepackage{listings}
\lstloadlanguages{Python}

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

\lstset{language=Python,tabsize=2}

... и тогда вы можете либо дать фрагменты рядный:

\begin{lstlisting}
  print ("Hello, World!")
\end{lstlisting}

... или прочитайте их из файла:

\lstinputlisting[firstline=10,lastline=20]{Hello.py}

... или пишите этот код: \lstinline!print ("Hello, World!")!

1
отвечен RolKau 2023-02-01 09:32

для LyX, см. этой (импортирует дочерний документ в формате "список").

1
отвечен Sparkler 2023-02-01 11:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх