syntax_highlight <source_file> | LPR


10

Qualcuno sa un modo semplice per produrre il PostScript corrispondente a una versione evidenziata dalla sintassi di un file sorgente che può essere reindirizzato direttamente a una stampante PostScript?

Come probabilmente suggerisce la formulazione della domanda sopra, sto cercando qualcosa che posso eseguire dalla riga di comando. Sto pensando a un'interazione come:

% syntax_highlight <SOURCE_FILE> | lp

... con opzioni della riga di comando, se necessario, ecc.

La migliore che ho trovato finora è un'utilità Unix chiamata highlight, ma ha dei problemi. Il più grave è che non ha un'opzione per produrre direttamente PostScript. (Dato highlightche supporta l'output di LaTeX, ho provato a mettere insieme uno script che automatizzerebbe il processo di generazione del file PostScript tramite * .tex => * .dvi => * .ps, ma l'aspetto visivo del risultato finale è terribile, molto peggio di quanto non lo sia per il file HTML che highlightgenera per lo stesso input di codice sorgente.)

Grazie!

Risposte:


13

Puoi usare vim.

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

Questo stamperà il file e si chiuderà immediatamente. Per impostazione predefinita, vim stampa con l'evidenziazione della sintassi.

Se è necessario stampare dallo stdout di alcuni comandi, è possibile effettuare ciò:

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

Se si desidera salvare il file .ps per dopo, è possibile farlo aggiungendo il reindirizzamento al comando hardcopy, in questo modo:

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

Vim ti consente di impostare molte opzioni relative alla stampa, quindi potresti voler consultare la documentazione se vuoi modificarla. Naturalmente, ci sono anche molte opzioni di evidenziazione della sintassi .


5

Esistono diversi programmi che stampano piuttosto vari linguaggi di programmazione su Postscript, che non richiedono alcun software di terze parti per funzionare:

Se sei disposto a passare tramite LaTeX, hai più opzioni. Passare tramite LaTeX è utile soprattutto se si desidera includere codice e qualcos'altro nello stesso documento; altrimenti è eccessivo.


3

In Gedit, l'editor standard per gnome, puoi stampare su file, scegliere Postscript (PDF predefinito) e contrassegnare sulla terza scheda, per usare l'evidenziazione, che è disattivata come impostazione predefinita, che produce un bel file ps per me.

E Gedit ha molti file di sintassi, per servire molti linguaggi di programmazione, HTML, SQL, XML, file rc, lo chiami.


Funziona, tranne che per me (gedit 3.10.4 su Ubuntu 14.04.4) il PDF generato è in scala di grigi, non a colori. Anche la stampa diretta porta alla scala di grigi.
MarnixKlooster ReinstateMonica

0

Espandendo la risposta di Shawn J. Goff:

È possibile utilizzare il seguente comando vim a riga singola per creare un file .ps dall'interno di vim:

:hardcopy > %.ps

Se preferisci un file .pdf, puoi fare:

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

Nota:

  • È la %scorciatoia per il nome file corrente, quindi HelloWorld.Cverrà stampata su HelloWorld.C.psoHelloWorld.C.pdf

Inoltre, per modificare il carattere renderizzato, impostare printerfont prima di eseguire il comando hardcopy. Ad esempio, per selezionare Courier 8:

:set printerfont=Courier:h8

Mettendo tutto insieme, ho scelto di mettere quanto segue nel mio file .vimrc in modo da poter semplicemente eseguire il comando :HardcopyPso :HardcopyPdf(che può anche operare su un intervallo selezionato all'interno di un 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'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.