LaTex / LyX'e programlama kodu ekleme


10

Belki de sadece kalınım, ama tüm girintili bilgileri (python için önemli) kaybetmeden lateks içine (python) yapıştırmak için herhangi bir mantıklı yol bulamıyorum.

Parlak fikirleri olan var mı? Sözdizimi vurgulama konusunda endişelenmiyorum; tek istediğim sekme anahtarım geri!

Yanıtlar:


13

Bunun için en sevdiğim ortam darp . Ben gibi tüm kaynak dosyaları girmek için kullanın:

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

Ayrıca bir dosya inputing olmadan kullanabilir ve daha da önemlisi, ne kadar girinti tanımlayabilirsiniz Gobbles kez yapıştırılan:

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

Bu şekilde LaTeX'iniz hala güzel bir şekilde girintilidir, ancak kelimesi kelimeleriniz girilmez. Bu ayrıca sözdizimi vurgulama da sağlar, ki ilginizi çekmediğini söylediniz. Sadece dili tanımlamayın.


4

Aynen ortamı kullanmak isteyeceksiniz: http://web.mit.edu/vogt/www/latex/ltx-79.html

Yapıştırdığınızda sorun hemen ortaya çıkıyorsa ... belgeyi yapmak için bir IDE kullanıyor musunuz? Dosyayı sadece gedit veya not defteri gibi düz bir metin düzenleyicide açmayı deneyin.


2

Ben mintedfideli'nin önerdiği gibi giderdim, ancak sorunun farkında olmak içinlistings saf bir Lateks çözümü olan paketin farkında olmak iyidir .

mintedPython'da yazılmış bir kaynak vurgulayıcı olan Pygments'tan türetilmiştir . minteddayalı bir Lateks köprü \write18ile gelir ve texmentspaket Pygments için bir sağlar. mintedBildiğim Pygments ile karşılaştırıldığında bir dezavantajı yok : belki ikisi bir noktada birleştirilecek.


1

Listeler paketini kullanmak için, paketi eklemeniz ve önsözde gerekli dilleri yüklemeniz gerekir:

\usepackage{listings}
\lstloadlanguages{Python}

Belgenin içindeki bazı seçenekleri ayarlayın:

\lstset{language=Python,tabsize=2}

... ve sonra snippet'leri satır içi verebilirsiniz:

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

... veya bir dosyadan okuyun:

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

... veya kodu satır içine yazın: \lstinline!print ("Hello, World!")!


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.