Kaynak Lateks vurgulayarak kodu
LaTeX kaynak kodu vurgulamak istiyorum. listings
en iyi seçim gibi gözüküyor paket durumlarda kullanmak benim için şimdiye kadar.
Ancak, artık daha fazla esneklik istiyorum. Aradığım şey geneldegerçeklexer. Özellikle, istiyorum (kendi dilinde bir tanım için) tanımlamak için (ve vurgulayın!) kendi numara stilleri. listings
kod numaraları vurgulama izin vermiyor. Ancak, böyle bir şey üretmek istiyorum:
listings
da dizeleri keyfi sınırlayıcıları ile baş edemez. Düşünün aşağıdaki geçerli Ruby kod:
s = %q!this is a string.!
Burada, !
neredeyse tarafından değiştirilebilirherhangi birsınırlayıcı.
(listings
Unicode da oldukça can sıkıcı, ama bu başka bir mesele işlemek.)
İdeal olarak, ben daha karmaşık lexing kuralları sağlamasına izin verir listings
bir uzantısı arıyorum. Ama bunun dışında, ayrıca uygun alternatifler arıyorum.
Other threads Lateks çıktı üretebilen Pygments kullanarak önerdi. Hatta bir paket– texments
– geçişi kolaylaştırmak için var.
Ancak, bu özellikleri fena halde yoksun. Özellikle benim ilgi listings
tarzı satır numaralandırma, kaynak kodu hattı başvuruları ve olasılığı gömme LaTeX kaynak kodu (seçenekler texcl
mathescape
listings
).
Örnek olarak, burada bir yedek de sağlamaları gereken bazı şeyler gösterir listings
ile kaynak kod yerleştirmek
CEVAP
Kalp Norman tavsiyesi alarak, birlikte (patched) vurgulayarak ve mümkün olduğunca çok sayıda özellikleri itti patlama olmadan için Pygments kullanılan bir çözüm sızdım ;-)
Ayrıca Lateks bir paket oluşturduk, Pygments bandı version 1.2 ... piyasaya çıktı bir kere
Zararlıdarp
mintedPygments birinci sınıf sağlamak için kullandığı bir paket LaTeX sözdizimi vurgulama. Örneğin, aşağıdaki çıktıyı verir.
İşte yukarıdaki kod (Unicode karakterleri de dahil olmak üzere XeTeX gerektirebilir dikkat edin) yeniden oluşturmak için en az bir dosya!
\documentclass[a4paper]{article}
\usepackage{fontspec}
\usepackage{minted}
\setsansfont{Calibri}
\setmonofont{Consolas}
\begin{document}
\renewcommand{\theFancyVerbLine}{
\sffamily\textcolor[rgb]{0.5,0.5,0.5}{\scriptsize\arabic{FancyVerbLine}}}
\begin{minted}[mathescape,
linenos,
numbersep=5pt,
gobble=2,
frame=lines,
framesep=2mm]{csharp}
string title = "This is a Unicode π in the sky"
/*
Defined as $\pi=\lim_{n\to\infty}\frac{P_n}{d}$ where $P$ is the perimeter
of an $n$-sided regular polygon circumscribing a
circle of diameter $d$.
*/
const double pi = 3.1415926535
\end{minted}
\end{document}
Bu dizgisini aşağıdaki komutu kullanarak:
xelatex -shell-escape test.tex
(Amadarpayrıca latex
ile çalışır ve pdflatex
...)
minted.sty
texments.sty
benzer çalışır ama ek özellikler sağlar.
Nasıl bunu elde etmek için
darp.listed on CTAN (package info)
belgelerelbette dahil.
darpşimdi Geoffrey böyle bir servet tarafından korunur. Geliştirme sürümü, en son
.sty
file dahil github.com/gpoore/minted, boş ve oradan kopyalanmış olabilir.
Bir kez daha, bana bu paketi üretmek için motive etmek için Norman için teşekkürler.
Nasıl TOTEM görünümü'Eclipse s ka...
İthalat mevcut kaynak kodu Github...
Nasıl böyle büyük mükafat olarak kayna...
Kaynak kodu ayıklamak .jar dosyası...
Java Kaynak Kodu Ekle...