LaTeX belgesine nasıl kod eklerim? Gibi bir şey var mı:
\begin{code}## Heading ##
...
\end{code}
Gerçekten ihtiyacım olan tek şey girinti ve sabit genişlikli yazı tipi. Sözdizimi vurgulama kesinlikle gerekli olmasa da güzel olabilir.
LaTeX belgesine nasıl kod eklerim? Gibi bir şey var mı:
\begin{code}## Heading ##
...
\end{code}
Gerçekten ihtiyacım olan tek şey girinti ve sabit genişlikli yazı tipi. Sözdizimi vurgulama kesinlikle gerekli olmasa da güzel olabilir.
Yanıtlar:
listings
Paketi kullanın .
LaTeX başlığı için basit yapılandırma (önce \begin{document}
):
\usepackage{listings}
\usepackage{color}
\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\lstset{frame=tb,
language=Java,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
basicstyle={\small\ttfamily},
numbers=none,
numberstyle=\tiny\color{gray},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=true,
breakatwhitespace=true,
tabsize=3
}
İle belgenin ortasındaki varsayılan dili değiştirebilirsiniz \lstset{language=Java}
.
Belgedeki kullanım örneği:
\begin{lstlisting}
// Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;
public class Hello extends JApplet {
public void paintComponent(Graphics g) {
g.drawString("Hello, world!", 65, 95);
}
}
\end{lstlisting}
İşte sonuç:
figure
olması etkiyi başarabilir.
Aynen ortamı da kullanabilirsiniz
\begin{verbatim}
your
code
example
\end{verbatim}
Satır içi kodu nasıl ekleyeceğiniz aşağıda açıklanmıştır:
Sen ile satır içi kod ekleyebilirsiniz {\tt code }
veya \texttt{ code }
. Satır içi kodu biçimlendirmek istiyorsanız, kendi komutunuzu yapmak en iyisi olacaktır
\newcommand{\code}[1]{\texttt{#1}}
Ayrıca, kod bloklarının diğer dosyalardan
\lstinputlisting[breaklines]{source.c}
breaklines
gerekli değil, ama yararlı buluyorum. Bunun için \usepackage{
listeler belirtmeniz gerekeceğini unutmayın }
.
Güncelleme: Listeler paketi \lstinline
, \lstlisting
ve \lstinputlisting
komutlarıyla aynı sözdizimi vurgulama özelliklerine sahip olan komutu da içerir (yapılandırma ayrıntıları için Cloudanger'ın cevabına bakın). Diğer birkaç cevapta belirtildiği gibi, \mintinline
komutu sağlayan darplanmış paket de var . Gibi \lstinline
, \mintinline
normal darp edilmiş bir kod bloğu ile aynı sözdizimi vurgulamasını sağlar:
\documentclass{article}
\usepackage{minted}
\begin{document}
This is a sentence with \mintinline{python}{def inlineCode(a="ipsum)}
\end{document}
minted
Biçimlendirmeyi yapmak için Pygments'a dayanan gibi özel paketler , listings
pakete göre çeşitli avantajlar sunar . minted
Kılavuzdan alıntı yapmak için ,
Pygments, geleneksel paketlere kıyasla çok daha üstün sözdizimi vurgulama sağlar. Örneğin, girişler temel olarak yalnızca dizeleri, yorumları ve anahtar kelimeleri vurgular. Pygments ise kaynak dilin destekleyebileceği herhangi bir token türünü vurgulamak için tamamen özelleştirilebilir. Bu, dizeler, sayılar, farklı türde tanımlayıcılar ve HTML etiketleri gibi egzotik yapıların içindeki özel biçimlendirme dizilerini içerebilir.
-shell-escape
yönerge ile lateks çağırma gereksinimi , en iyi ihtimalle, mevcut yapı sistemlerinde küçük bir değişikliktir ve en kötüsü, bazı kullanıcıların güvenlik tercihleriyle uyumsuzdur.
Darbeli kullanın .
Güçlü Pygments kütüphanesini kullanarak LaTeX'te etkileyici sözdizimi vurgulamayı kolaylaştıran bir pakettir . Paket ayrıca, fancyvrb kullanarak vurgulanan kaynak kodu çıktısını özelleştirmek için seçenekler sunar .
Diğer paketlerden çok daha gelişmiş ve özelleştirilebilir!
-shell-escape
bazı insanlar için berbat olabilir.
Basılan içinde workes Overleaf , TeX Live ve MiKTeX.
Misal:
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}[mathescape, linenos]{python}
# Note: $\pi=\lim_{n\to\infty}\frac{P_n}{d}$
title = "Hello World"
sum = 0
for i in range(10):
sum += i
\end{minted}
\end{document}
Çıktı:
Burada henüz belirtilmediğinden, bir seçenek daha, paket eklemeye değer olabilir spverbatim
(sözdizimi vurgulaması yok):
\documentclass{article}
\usepackage{spverbatim}
\begin{document}
\begin{spverbatim}
Your code here
\end{spverbatim}
\end{document}
Ayrıca, sözdizimi vurgulaması gerekli değilse, paket alltt
:
\documentclass{article}
\usepackage{alltt}
\begin{document}
\begin{alltt}
Your code here
\end{alltt}
\end{document}