
Может быть, я просто тупой, но я не могу найти разумного способа просто вставить свой (python) код в latex, не потеряв при этом всю информацию об отступах (она довольно важна для python).
У кого-нибудь есть светлые идеи? Меня не волнует подсветка синтаксиса; все, что мне нужно, это вернуть клавишу Tab!
решение1
Моя любимая среда для этогоотчеканенный. Я использую его для ввода целых исходных файлов, таких как:
\inputminted[linenos,fontsize=\scriptsize]{python}{script.py}
Вы также можете использовать его без ввода файла и, что более важно, определить, какой отступ он должен иметь.поглощаетпосле вставки:
\newminted{python}{gobble=4,linenos,fontsize=\scriptsize}
\begin{pythoncode}
print('I am a Python script')
\end{pythoncode}
Таким образом, ваш LaTeX все еще будет хорошо отступлен, но ваш дословный код — нет. Это также обеспечивает подсветку синтаксиса, которая, как я знаю, вы упоминали, что вас не интересует. Просто не определяйте язык.
решение2
Вам следует использовать следующую среду:http://web.mit.edu/vogt/www/latex/ltx-79.html
Если проблема возникает сразу при вставке... используете ли вы IDE для создания документа? Попробуйте просто открыть файл в текстовом редакторе, например gedit или notepad.
решение3
Я бы выбрал minted
, как предложил Фидели, но хорошо бы знатьпакетlistings
, который представляет собой чистое латексное решение проблемы.
minted
происходит отПигменты, подсветчик исходного кода, написанный на Python. minted
сочетается с мостом Latex, основанным на \write18
, ипакетtexments
предоставляет один для Pygments. Насколько я знаю, недостатков по сравнению с Pygments нет minted
: возможно, в какой-то момент эти два будут объединены.
решение4
Для LyX см.этот(импортирует дочерний документ, используя формат «listing»).