syntax_highlight <source_file> | lpr

10

Adakah yang tahu tentang cara sederhana untuk menghasilkan PostScript yang sesuai dengan versi file sumber yang disoroti dengan sintaksis yang dapat disalurkan langsung ke printer PostScript?

Seperti kata-kata dari pertanyaan di atas mungkin menyarankan, saya mencari sesuatu yang bisa saya jalankan dari baris perintah. Saya sedang memikirkan interaksi seperti:

% syntax_highlight <SOURCE_FILE> | lp

... dengan saklar baris perintah sesuai kebutuhan, dll.

Yang terbaik yang saya temukan sejauh ini adalah utilitas Unix yang dipanggil highlight, tetapi memiliki masalah. Yang paling serius adalah ia tidak memiliki opsi untuk menampilkan PostScript secara langsung. (Karena highlightmemang mendukung keluaran LaTeX, saya mencoba menyatukan skrip yang akan mengotomatiskan proses menghasilkan file PostScript melalui * .tex => * .dvi => * .ps, tetapi tampilan visual dari hasil akhirnya mengerikan, jauh lebih buruk daripada file HTML yang highlightmenghasilkan input kode sumber yang sama.)

Terima kasih!

kjo
sumber

Jawaban:

13

Anda dapat menggunakan vim.

vim -c hardcopy -c quit /path/to/file

Ini akan mencetak file dan segera berhenti. Secara default, vim mencetak dengan penyorotan sintaksis.

Jika Anda perlu mencetak dari stdout dari beberapa perintah, Anda dapat melakukan ini:

cat some_file.c | vim -c hardcopy -c 'quit!' -

Jika Anda ingin menyimpan .ps untuk nanti, Anda bisa melakukannya dengan menambahkan pengalihan ke perintah hardcopy, seperti:

vim -c 'hardcopy > /path/to/saved.ps' -c 'quit' /path/to/file

Vim memungkinkan Anda mengatur banyak opsi yang berhubungan dengan pencetakan, jadi Anda mungkin ingin melihat dokumentasi jika Anda ingin mengubah itu. Tentu saja, ada banyak opsi penyorotan sintaks juga.

Shawn J. Goff
sumber
5

Ada beberapa program yang cukup mencetak berbagai bahasa pemrograman ke Postscript, yang tidak memerlukan perangkat lunak pihak ketiga untuk berjalan:

Jika Anda ingin menggunakan LaTeX, Anda memiliki lebih banyak opsi. Menggunakan LaTeX sebagian besar berguna jika Anda ingin memasukkan kode dan hal lain dalam dokumen yang sama; kalau tidak, itu berlebihan.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
3

Di Gedit, editor standar untuk gnome, Anda dapat mencetak ke file, pilih Postscript (PDF default) dan tandai pada tab ketiga, untuk menggunakan penyorotan, yang tidak aktif sebagai default, yang menghasilkan file ps bagus untuk saya.

Dan Gedit memiliki banyak file sintaks, untuk melayani banyak bahasa pemrograman, HTML, SQL, XML, file-file rc, apa saja.

Pengguna tidak diketahui
sumber
Ini berfungsi, kecuali bagi saya (gedit 3.10.4 pada Ubuntu 14.04.4) PDF yang dihasilkan dalam skala abu-abu, bukan warna. Juga mencetak langsung menghasilkan skala abu-abu.
MarnixKlooster ReinstateMonica
0

Memperluas jawaban Shawn J. Goff:

Anda dapat menggunakan perintah vim single-line berikut untuk membuat file .ps dari dalam vim:

:hardcopy > %.ps

Jika Anda lebih suka file .pdf, maka Anda dapat melakukan:

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

catatan:

  • Ini %adalah singkatan untuk nama file saat ini, sehingga HelloWorld.Cakan mencetak ke HelloWorld.C.psatauHelloWorld.C.pdf

Selain itu, untuk mengubah font yang diberikan, atur printerfont sebelum menjalankan perintah hardcopy. Misalnya, untuk memilih Kurir 8:

:set printerfont=Courier:h8

Menyatukan semuanya, saya memilih untuk meletakkan yang berikut ini di file .vimrc saya sehingga saya bisa menjalankan :HardcopyPsatau :HardcopyPdfperintah (yang juga dapat beroperasi pada rentang yang dipilih dalam file):

set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPs <line1>,<line2> hardcopy > %.ps && echo 'Created: %.ps'
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'
arr_sea
sumber