| *print.txt* For Vim version 8.0. Last change: 2010 Jul 20 |
| |
| |
| VIM REFERENCE MANUAL by Bram Moolenaar |
| |
| |
| Printing *printing* |
| |
| 1. Introduction |print-intro| |
| 2. Print options |print-options| |
| 3. PostScript Printing |postscript-printing| |
| 4. PostScript Printing Encoding |postscript-print-encoding| |
| 5. PostScript CJK Printing |postscript-cjk-printing| |
| 6. PostScript Printing Troubleshooting |postscript-print-trouble| |
| 7. PostScript Utilities |postscript-print-util| |
| 8. Formfeed Characters |printing-formfeed| |
| |
| {Vi has None of this} |
| {only available when compiled with the |+printer| feature} |
| |
| ============================================================================== |
| 1. Introduction *print-intro* |
| |
| On MS-Windows Vim can print your text on any installed printer. On other |
| systems a PostScript file is produced. This can be directly sent to a |
| PostScript printer. For other printers a program like ghostscript needs to be |
| used. |
| |
| Note: If you have problems printing with |:hardcopy|, an alternative is to use |
| |:TOhtml| and print the resulting html file from a browser. |
| |
| *:ha* *:hardcopy* *E237* *E238* *E324* |
| :[range]ha[rdcopy][!] [arguments] |
| Send [range] lines (default whole file) to the |
| printer. |
| |
| On MS-Windows a dialog is displayed to allow selection |
| of printer, paper size etc. To skip the dialog, use |
| the [!]. In this case the printer defined by |
| 'printdevice' is used, or, if 'printdevice' is empty, |
| the system default printer. |
| |
| For systems other than MS-Windows, PostScript is |
| written in a temp file and 'printexpr' is used to |
| actually print it. Then [arguments] can be used by |
| 'printexpr' through |v:cmdarg|. Otherwise [arguments] |
| is ignored. 'printoptions' can be used to specify |
| paper size, duplex, etc. |
| |
| :[range]ha[rdcopy][!] >{filename} |
| As above, but write the resulting PostScript in file |
| {filename}. |
| Things like "%" are expanded |cmdline-special| |
| Careful: An existing file is silently overwritten. |
| {only available when compiled with the |+postscript| |
| feature} |
| On MS-Windows use the "print to file" feature of the |
| printer driver. |
| |
| Progress is displayed during printing as a page number and a percentage. To |
| abort printing use the interrupt key (CTRL-C or, on MS-systems, CTRL-Break). |
| |
| Printer output is controlled by the 'printfont' and 'printoptions' options. |
| 'printheader' specifies the format of a page header. |
| |
| The printed file is always limited to the selected margins, irrespective of |
| the current window's 'wrap' or 'linebreak' settings. The "wrap" item in |
| 'printoptions' can be used to switch wrapping off. |
| The current highlighting colors are used in the printout, with the following |
| considerations: |
| 1) The normal background is always rendered as white (i.e. blank paper). |
| 2) White text or the default foreground is rendered as black, so that it shows |
| up! |
| 3) If 'background' is "dark", then the colours are darkened to compensate for |
| the fact that otherwise they would be too bright to show up clearly on |
| white paper. |
| |
| ============================================================================== |
| 2. Print options *print-options* |
| |
| Here are the details for the options that change the way printing is done. |
| For generic info about setting options see |options.txt|. |
| |
| *pdev-option* |
| 'printdevice' 'pdev' string (default empty) |
| global |
| This defines the name of the printer to be used when the |:hardcopy| command |
| is issued with a bang (!) to skip the printer selection dialog. On Win32, it |
| should be the printer name exactly as it appears in the standard printer |
| dialog. |
| If the option is empty, then vim will use the system default printer for |
| ":hardcopy!" |
| |
| *penc-option* *E620* |
| 'printencoding' 'penc' String (default empty, except for: |
| Windows, OS/2: cp1252, |
| Macintosh: mac-roman, |
| VMS: dec-mcs, |
| HPUX: hp-roman8, |
| EBCDIC: ebcdic-uk) |
| global |
| Sets the character encoding used when printing. This option tells VIM which |
| print character encoding file from the "print" directory in 'runtimepath' to |
| use. |
| |
| This option will accept any value from |encoding-names|. Any recognized names |
| are converted to VIM standard names - see 'encoding' for more details. Names |
| not recognized by VIM will just be converted to lower case and underscores |
| replaced with '-' signs. |
| |
| If 'printencoding' is empty or VIM cannot find the file then it will use |
| 'encoding' (if VIM is compiled with |+multi_byte| and it is set an 8-bit |
| encoding) to find the print character encoding file. If VIM is unable to find |
| a character encoding file then it will use the "latin1" print character |
| encoding file. |
| |
| When 'encoding' is set to a multi-byte encoding, VIM will try to convert |
| characters to the printing encoding for printing (if 'printencoding' is empty |
| then the conversion will be to latin1). Conversion to a printing encoding |
| other than latin1 will require VIM to be compiled with the |+iconv| feature. |
| If no conversion is possible then printing will fail. Any characters that |
| cannot be converted will be replaced with upside down question marks. |
| |
| Four print character encoding files are provided to support default Mac, VMS, |
| HPUX, and EBCDIC character encodings and are used by default on these |
| platforms. Code page 1252 print character encoding is used by default on |
| Windows and OS/2 platforms. |
| |
| *pexpr-option* |
| 'printexpr' 'pexpr' String (default: see below) |
| global |
| Expression that is evaluated to print the PostScript produced with |
| |:hardcopy|. |
| The file name to be printed is in |v:fname_in|. |
| The arguments to the ":hardcopy" command are in |v:cmdarg|. |
| The expression must take care of deleting the file after printing it. |
| When there is an error, the expression must return a non-zero number. |
| If there is no error, return zero or an empty string. |
| The default for non MS-Windows or VMS systems is to simply use "lpr" to print |
| the file: > |
| |
| system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice) |
| . ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error |
| |
| On MS-Dos, MS-Windows and OS/2 machines the default is to copy the file to the |
| currently specified printdevice: > |
| |
| system('copy' . ' ' . v:fname_in . (&printdevice == '' |
| ? ' LPT1:' : (' \"' . &printdevice . '\"'))) |
| . delete(v:fname_in) |
| |
| On VMS machines the default is to send the file to either the default or |
| currently specified printdevice: > |
| |
| system('print' . (&printdevice == '' ? '' : ' /queue=' . |
| &printdevice) . ' ' . v:fname_in) . delete(v:fname_in) |
| |
| If you change this option, using a function is an easy way to avoid having to |
| escape all the spaces. Example: > |
| |
| :set printexpr=PrintFile(v:fname_in) |
| :function PrintFile(fname) |
| : call system("ghostview " . a:fname) |
| : call delete(a:fname) |
| : return v:shell_error |
| :endfunc |
| |
| Be aware that some print programs return control before they have read the |
| file. If you delete the file too soon it will not be printed. These programs |
| usually offer an option to have them remove the file when printing is done. |
| *E365* |
| If evaluating the expression fails or it results in a non-zero number, you get |
| an error message. In that case Vim will delete the file. In the default |
| value for non-MS-Windows a trick is used: Adding "v:shell_error" will result |
| in a non-zero number when the system() call fails. |
| |
| This option cannot be set from a |modeline| or in the |sandbox|, for security |
| reasons. |
| |
| *pfn-option* *E613* |
| 'printfont' 'pfn' string (default "courier") |
| global |
| This is the name of the font that will be used for the |:hardcopy| command's |
| output. It has the same format as the 'guifont' option, except that only one |
| font may be named, and the special "guifont=*" syntax is not available. |
| |
| In the Win32 GUI version this specifies a font name with its extra attributes, |
| as with the 'guifont' option. |
| |
| For other systems, only ":h11" is recognized, where "11" is the point size of |
| the font. When omitted, the point size is 10. |
| |
| *pheader-option* |
| 'printheader' 'pheader' string (default "%<%f%h%m%=Page %N") |
| global |
| This defines the format of the header produced in |:hardcopy| output. The |
| option is defined in the same way as the 'statusline' option. If Vim has not |
| been compiled with the |+statusline| feature, this option has no effect and a |
| simple default header is used, which shows the page number. The same simple |
| header is used when this option is empty. |
| |
| *pmbcs-option* |
| 'printmbcharset' 'pmbcs' string (default "") |
| global |
| Sets the CJK character set to be used when generating CJK output from |
| |:hardcopy|. The following predefined values are currently recognised by VIM: |
| |
| Value Description ~ |
| Chinese GB_2312-80 |
| (Simplified) GBT_12345-90 |
| MAC Apple Mac Simplified Chinese |
| GBT-90_MAC GB/T 12345-90 Apple Mac Simplified |
| Chinese |
| GBK GBK (GB 13000.1-93) |
| ISO10646 ISO 10646-1:1993 |
| |
| Chinese CNS_1993 CNS 11643-1993, Planes 1 & 2 |
| (Traditional) BIG5 |
| ETEN Big5 with ETen extensions |
| ISO10646 ISO 10646-1:1993 |
| |
| Japanese JIS_C_1978 |
| JIS_X_1983 |
| JIS_X_1990 |
| MSWINDOWS Win3.1/95J (JIS X 1997 + NEC + |
| IBM extensions) |
| KANJITALK6 Apple Mac KanjiTalk V6.x |
| KANJITALK7 Apple Mac KanjiTalk V7.x |
| |
| Korean KS_X_1992 |
| MAC Apple Macintosh Korean |
| MSWINDOWS KS X 1992 with MS extensions |
| ISO10646 ISO 10646-1:1993 |
| |
| Only certain combinations of the above values and 'printencoding' are |
| possible. The following tables show the valid combinations: |
| |
| euc-cn gbk ucs-2 utf-8 ~ |
| Chinese GB_2312-80 x |
| (Simplified) GBT_12345-90 x |
| MAC x |
| GBT-90_MAC x |
| GBK x |
| ISO10646 x x |
| |
| euc-tw big5 ucs-2 utf-8 ~ |
| Chinese CNS_1993 x |
| (Traditional) BIG5 x |
| ETEN x |
| ISO10646 x x |
| |
| euc-jp sjis ucs-2 utf-8 ~ |
| Japanese JIS_C_1978 x x |
| JIS_X_1983 x x |
| JIS_X_1990 x x x |
| MSWINDOWS x |
| KANJITALK6 x |
| KANJITALK7 x |
| |
| euc-kr cp949 ucs-2 utf-8 ~ |
| Korean KS_X_1992 x |
| MAC x |
| MSWINDOWS x |
| ISO10646 x x |
| |
| To set up the correct encoding and character set for printing some |
| Japanese text you would do the following; > |
| :set printencoding=euc-jp |
| :set printmbcharset=JIS_X_1983 |
| |
| If 'printmbcharset' is not one of the above values then it is assumed to |
| specify a custom multi-byte character set and no check will be made that it is |
| compatible with the value for 'printencoding'. VIM will look for a file |
| defining the character set in the "print" directory in 'runtimepath'. |
| |
| *pmbfn-option* |
| 'printmbfont' 'pmbfn' string (default "") |
| global |
| This is a comma-separated list of fields for font names to be used when |
| generating CJK output from |:hardcopy|. Each font name has to be preceded |
| with a letter indicating the style the font is to be used for as follows: |
| |
| r:{font-name} font to use for normal characters |
| b:{font-name} font to use for bold characters |
| i:{font-name} font to use for italic characters |
| o:{font-name} font to use for bold-italic characters |
| |
| A field with the r: prefix must be specified when doing CJK printing. The |
| other fontname specifiers are optional. If a specifier is missing then |
| another font will be used as follows: |
| |
| if b: is missing, then use r: |
| if i: is missing, then use r: |
| if o: is missing, then use b: |
| |
| Some CJK fonts do not contain characters for codes in the ASCII code range. |
| Also, some characters in the CJK ASCII code ranges differ in a few code points |
| from traditional ASCII characters. There are two additional fields to control |
| printing of characters in the ASCII code range. |
| |
| c:yes Use Courier font for characters in the ASCII |
| c:no (default) code range. |
| |
| a:yes Use ASCII character set for codes in the ASCII |
| a:no (default) code range. |
| |
| The following is an example of specifying two multi-byte fonts, one for normal |
| and italic printing and one for bold and bold-italic printing, and using |
| Courier to print codes in the ASCII code range but using the national |
| character set: > |
| :set printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,c:yes |
| < |
| *popt-option* |
| 'printoptions' 'popt' string (default "") |
| global |
| This is a comma-separated list of items that control the format of the output |
| of |:hardcopy|: |
| |
| left:{spec} left margin (default: 10pc) |
| right:{spec} right margin (default: 5pc) |
| top:{spec} top margin (default: 5pc) |
| bottom:{spec} bottom margin (default: 5pc) |
| {spec} is a number followed by "in" for inches, "pt" |
| for points (1 point is 1/72 of an inch), "mm" for |
| millimeters or "pc" for a percentage of the media |
| size. |
| Weird example: |
| left:2in,top:30pt,right:16mm,bottom:3pc |
| If the unit is not recognized there is no error and |
| the default value is used. |
| |
| header:{nr} Number of lines to reserve for the header. |
| Only the first line is actually filled, thus when {nr} |
| is 2 there is one empty line. The header is formatted |
| according to 'printheader'. |
| header:0 Do not print a header. |
| header:2 (default) Use two lines for the header |
| |
| syntax:n Do not use syntax highlighting. This is faster and |
| thus useful when printing large files. |
| syntax:y Do syntax highlighting. |
| syntax:a (default) Use syntax highlighting if the printer appears to be |
| able to print color or grey. |
| |
| number:y Include line numbers in the printed output. |
| number:n (default) No line numbers. |
| |
| wrap:y (default) Wrap long lines. |
| wrap:n Truncate long lines. |
| |
| duplex:off Print on one side. |
| duplex:long (default) Print on both sides (when possible), bind on long |
| side. |
| duplex:short Print on both sides (when possible), bind on short |
| side. |
| |
| collate:y (default) Collating: 1 2 3, 1 2 3, 1 2 3 |
| collate:n No collating: 1 1 1, 2 2 2, 3 3 3 |
| |
| jobsplit:n (default) Do all copies in one print job |
| jobsplit:y Do each copy as a separate print job. Useful when |
| doing N-up postprocessing. |
| |
| portrait:y (default) Orientation is portrait. |
| portrait:n Orientation is landscape. |
| *a4* *letter* |
| paper:A4 (default) Paper size: A4 |
| paper:{name} Paper size from this table: |
| {name} size in cm size in inch ~ |
| 10x14 25.4 x 35.57 10 x 14 |
| A3 29.7 x 42 11.69 x 16.54 |
| A4 21 x 29.7 8.27 x 11.69 |
| A5 14.8 x 21 5.83 x 8.27 |
| B4 25 x 35.3 10.12 x 14.33 |
| B5 17.6 x 25 7.17 x 10.12 |
| executive 18.42 x 26.67 7.25 x 10.5 |
| folio 21 x 33 8.27 x 13 |
| ledger 43.13 x 27.96 17 x 11 |
| legal 21.59 x 35.57 8.5 x 14 |
| letter 21.59 x 27.96 8.5 x 11 |
| quarto 21.59 x 27.5 8.5 x 10.83 |
| statement 13.97 x 21.59 5.5 x 8.5 |
| tabloid 27.96 x 43.13 11 x 17 |
| |
| formfeed:n (default) Treat form feed characters (0x0c) as a normal print |
| character. |
| formfeed:y When a form feed character is encountered, continue |
| printing of the current line at the beginning of the |
| first line on a new page. |
| |
| The item indicated with (default) is used when the item is not present. The |
| values are not always used, especially when using a dialog to select the |
| printer and options. |
| Example: > |
| :set printoptions=paper:letter,duplex:off |
| |
| ============================================================================== |
| 3. PostScript Printing *postscript-printing* |
| *E455* *E456* *E457* *E624* |
| Provided you have enough disk space there should be no problems generating a |
| PostScript file. You need to have the runtime files correctly installed (if |
| you can find the help files, they probably are). |
| |
| There are currently a number of limitations with PostScript printing: |
| |
| - 'printfont' - The font name is ignored (the Courier family is always used - |
| it should be available on all PostScript printers) but the font size is |
| used. |
| |
| - 'printoptions' - The duplex setting is used when generating PostScript |
| output, but it is up to the printer to take notice of the setting. If the |
| printer does not support duplex printing then it should be silently ignored. |
| Some printers, however, don't print at all. |
| |
| - 8-bit support - While a number of 8-bit print character encodings are |
| supported it is possible that some characters will not print. Whether a |
| character will print depends on the font in the printer knowing the |
| character. Missing characters will be replaced with an upside down question |
| mark, or a space if that character is also not known by the font. It may be |
| possible to get all the characters in an encoding to print by installing a |
| new version of the Courier font family. |
| |
| - Multi-byte support - Currently VIM will try to convert multi-byte characters |
| to the 8-bit encoding specified by 'printencoding' (or latin1 if it is |
| empty). Any characters that are not successfully converted are shown as |
| unknown characters. Printing will fail if VIM cannot convert the multi-byte |
| to the 8-bit encoding. |
| |
| ============================================================================== |
| 4. Custom 8-bit Print Character Encodings *postscript-print-encoding* |
| *E618* *E619* |
| To use your own print character encoding when printing 8-bit character data |
| you need to define your own PostScript font encoding vector. Details on how |
| to define a font encoding vector is beyond the scope of this help file, but |
| you can find details in the PostScript Language Reference Manual, 3rd Edition, |
| published by Addison-Wesley and available in PDF form at |
| http://www.adobe.com/. The following describes what you need to do for VIM to |
| locate and use your print character encoding. |
| |
| i. Decide on a unique name for your encoding vector, one that does not clash |
| with any of the recognized or standard encoding names that VIM uses (see |
| |encoding-names| for a list), and that no one else is likely to use. |
| ii. Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your |
| 'runtimepath' and rename it with your unique name. |
| iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1 |
| with your unique name (don't forget the line starting %%Title:), and |
| modify the array of glyph names to define your new encoding vector. The |
| array must have exactly 256 entries or you will not be able to print! |
| iv. Within VIM, set 'printencoding' to your unique encoding name and then |
| print your file. VIM will now use your custom print character encoding. |
| |
| VIM will report an error with the resource file if you change the order or |
| content of the first 3 lines, other than the name of the encoding on the line |
| starting %%Title: or the version number on the line starting %%Version:. |
| |
| [Technical explanation for those that know PostScript - VIM looks for a file |
| with the same name as the encoding it will use when printing. The file |
| defines a new PostScript Encoding resource called /VIM-name, where name is the |
| print character encoding VIM will use.] |
| |
| ============================================================================== |
| 5. PostScript CJK Printing *postscript-cjk-printing* |
| *E673* *E674* *E675* |
| |
| VIM supports printing of Chinese, Japanese, and Korean files. Setting up VIM |
| to correctly print CJK files requires setting up a few more options. |
| |
| Each of these countries has many standard character sets and encodings which |
| require that both be specified when printing. In addition, CJK fonts normally |
| do not have the concept of italic glyphs and use different weight or stroke |
| style to achieve emphasis when printing. This in turn requires a different |
| approach to specifying fonts to use when printing. |
| |
| The encoding and character set are specified with the 'printencoding' and |
| 'printmbcharset' options. If 'printencoding' is not specified then 'encoding' |
| is used as normal. If 'printencoding' is specified then characters will be |
| translated to this encoding for printing. You should ensure that the encoding |
| is compatible with the character set needed for the file contents or some |
| characters may not appear when printed. |
| |
| The fonts to use for CJK printing are specified with 'printmbfont'. This |
| option allows you to specify different fonts to use when printing characters |
| which are syntax highlighted with the font styles normal, italic, bold and |
| bold-italic. |
| |
| No CJK fonts are supplied with VIM. There are some free Korean, Japanese, and |
| Traditional Chinese fonts available at: |
| |
| http://examples.oreilly.com/cjkvinfo/adobe/samples/ |
| |
| You can find descriptions of the various fonts in the read me file at |
| |
| http://examples.oreilly.de/english_examples/cjkvinfo/adobe/00README |
| |
| Please read your printer documentation on how to install new fonts. |
| |
| CJK fonts can be large containing several thousand glyphs, and it is not |
| uncommon to find that they only contain a subset of a national standard. It |
| is not unusual to find the fonts to not include characters for codes in the |
| ASCII code range. If you find half-width Roman characters are not appearing |
| in your printout then you should configure VIM to use the Courier font the |
| half-width ASCII characters with 'printmbfont'. If your font does not include |
| other characters then you will need to find another font that does. |
| |
| Another issue with ASCII characters, is that the various national character |
| sets specify a couple of different glyphs in the ASCII code range. If you |
| print ASCII text using the national character set you may see some unexpected |
| characters. If you want true ASCII code printing then you need to configure |
| VIM to output ASCII characters for the ASCII code range with 'printmbfont'. |
| |
| It is possible to define your own multi-byte character set although this |
| should not be attempted lightly. A discussion on the process if beyond the |
| scope of these help files. You can find details on CMap (character map) files |
| in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0', |
| available from http://www.adobe.com as a PDF file. |
| |
| ============================================================================== |
| 6. PostScript Printing Troubleshooting *postscript-print-trouble* |
| *E621* |
| Usually the only sign of a problem when printing with PostScript is that your |
| printout does not appear. If you are lucky you may get a printed page that |
| tells you the PostScript operator that generated the error that prevented the |
| print job completing. |
| |
| There are a number of possible causes as to why the printing may have failed: |
| |
| - Wrong version of the prolog resource file. The prolog resource file |
| contains some PostScript that VIM needs to be able to print. Each version |
| of VIM needs one particular version. Make sure you have correctly installed |
| the runtime files, and don't have any old versions of a file called prolog |
| in the print directory in your 'runtimepath' directory. |
| |
| - Paper size. Some PostScript printers will abort printing a file if they do |
| not support the requested paper size. By default VIM uses A4 paper. Find |
| out what size paper your printer normally uses and set the appropriate paper |
| size with 'printoptions'. If you cannot find the name of the paper used, |
| measure a sheet and compare it with the table of supported paper sizes listed |
| for 'printoptions', using the paper that is closest in both width AND height. |
| Note: The dimensions of actual paper may vary slightly from the ones listed. |
| If there is no paper listed close enough, then you may want to try psresize |
| from PSUtils, discussed below. |
| |
| - Two-sided printing (duplex). Normally a PostScript printer that does not |
| support two-sided printing will ignore any request to do it. However, some |
| printers may abort the job altogether. Try printing with duplex turned off. |
| Note: Duplex prints can be achieved manually using PS utils - see below. |
| |
| - Collated printing. As with Duplex printing, most PostScript printers that |
| do not support collating printouts will ignore a request to do so. Some may |
| not. Try printing with collation turned off. |
| |
| - Syntax highlighting. Some print management code may prevent the generated |
| PostScript file from being printed on a black and white printer when syntax |
| highlighting is turned on, even if solid black is the only color used. Try |
| printing with syntax highlighting turned off. |
| |
| A safe printoptions setting to try is: > |
| |
| :set printoptions=paper:A4,duplex:off,collate:n,syntax:n |
| |
| Replace "A4" with the paper size that best matches your printer paper. |
| |
| ============================================================================== |
| 7. PostScript Utilities *postscript-print-util* |
| |
| 7.1 Ghostscript |
| |
| Ghostscript is a PostScript and PDF interpreter that can be used to display |
| and print on non-PostScript printers PostScript and PDF files. It can also |
| generate PDF files from PostScript. |
| |
| Ghostscript will run on a wide variety of platforms. |
| |
| There are three available versions: |
| |
| - AFPL Ghostscript (formerly Aladdin Ghostscript) which is free for |
| non-commercial use. It can be obtained from: |
| |
| http://www.cs.wisc.edu/~ghost/ |
| |
| - GNU Ghostscript which is available under the GNU General Public License. It |
| can be obtained from: |
| |
| ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/ |
| |
| - A commercial version for inclusion in commercial products. |
| |
| Additional information on Ghostscript can also be found at: |
| |
| http://www.ghostscript.com/ |
| |
| Support for a number of non PostScript printers is provided in the |
| distribution as standard, but if you cannot find support for your printer |
| check the Ghostscript site for other printers not included by default. |
| |
| |
| 7.2 Ghostscript Previewers. |
| |
| The interface to Ghostscript is very primitive so a number of graphical front |
| ends have been created. These allow easier PostScript file selection, |
| previewing at different zoom levels, and printing. Check supplied |
| documentation for full details. |
| |
| X11 |
| |
| - Ghostview. Obtainable from: |
| |
| http://www.cs.wisc.edu/~ghost/gv/ |
| |
| - gv. Derived from Ghostview. Obtainable from: |
| |
| http://wwwthep.physik.uni-mainz.de/~plass/gv/ |
| |
| Copies (possibly not the most recent) can be found at: |
| |
| http://www.cs.wisc.edu/~ghost/gv/ |
| |
| OpenVMS |
| |
| - Is apparently supported in the main code now (untested). See: |
| |
| http://wwwthep.physik.uni-mainz.de/~plass/gv/ |
| |
| Windows and OS/2 |
| |
| - GSview. Obtainable from: |
| |
| http://www.cs.wisc.edu/~ghost/gsview/ |
| |
| DOS |
| |
| - ps_view. Obtainable from: |
| |
| ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/ |
| ftp://ftp.dante.de/tex-archive/support/ps_view/ |
| |
| Linux |
| |
| - GSview. Linux version of the popular Windows and OS/2 previewer. |
| Obtainable from: |
| |
| http://www.cs.wisc.edu/~ghost/gsview/ |
| |
| - BMV. Different from Ghostview and gv in that it doesn't use X but svgalib. |
| Obtainable from: |
| |
| ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz |
| |
| |
| 7.3 PSUtils |
| |
| PSUtils is a collection of utility programs for manipulating PostScript |
| documents. Binary distributions are available for many platforms, as well as |
| the full source. PSUtils can be found at: |
| |
| http://knackered.org/angus/psutils |
| |
| The utilities of interest include: |
| |
| - psnup. Convert PS files for N-up printing. |
| - psselect. Select page range and order of printing. |
| - psresize. Change the page size. |
| - psbook. Reorder and lay out pages ready for making a book. |
| |
| The output of one program can be used as the input to the next, allowing for |
| complex print document creation. |
| |
| |
| N-UP PRINTING |
| |
| The psnup utility takes an existing PostScript file generated from VIM and |
| convert it to an n-up version. The simplest way to create a 2-up printout is |
| to first create a PostScript file with: > |
| |
| :hardcopy > test.ps |
| |
| Then on your command line execute: > |
| |
| psnup -n 2 test.ps final.ps |
| |
| Note: You may get warnings from some Ghostscript previewers for files produced |
| by psnup - these may safely be ignored. |
| |
| Finally print the file final.ps to your PostScript printer with your |
| platform's print command. (You will need to delete the two PostScript files |
| afterwards yourself.) 'printexpr' could be modified to perform this extra |
| step before printing. |
| |
| |
| ALTERNATE DUPLEX PRINTING |
| |
| It is possible to achieve a poor man's version of duplex printing using the PS |
| utility psselect. This utility has options -e and -o for printing just the |
| even or odd pages of a PS file respectively. |
| |
| First generate a PS file with the 'hardcopy' command, then generate new |
| files with all the odd and even numbered pages with: > |
| |
| psselect -o test.ps odd.ps |
| psselect -e test.ps even.ps |
| |
| Next print odd.ps with your platform's normal print command. Then take the |
| print output, turn it over and place it back in the paper feeder. Now print |
| even.ps with your platform's print command. All the even pages should now |
| appear on the back of the odd pages. |
| |
| There are a couple of points to bear in mind: |
| |
| 1. Position of the first page. If the first page is on top of the printout |
| when printing the odd pages then you need to reverse the order that the odd |
| pages are printed. This can be done with the -r option to psselect. This |
| will ensure page 2 is printed on the back of page 1. |
| Note: it is better to reverse the odd numbered pages rather than the even |
| numbered in case there are an odd number of pages in the original PS file. |
| |
| 2. Paper flipping. When turning over the paper with the odd pages printed on |
| them you may have to either flip them horizontally (along the long edge) or |
| vertically (along the short edge), as well as possibly rotating them 180 |
| degrees. All this depends on the printer - it will be more obvious for |
| desktop ink jets than for small office laser printers where the paper path |
| is hidden from view. |
| |
| |
| ============================================================================== |
| 8. Formfeed Characters *printing-formfeed* |
| |
| By default VIM does not do any special processing of |formfeed| control |
| characters. Setting the 'printoptions' formfeed item will make VIM recognize |
| formfeed characters and continue printing the current line at the beginning |
| of the first line on a new page. The use of formfeed characters provides |
| rudimentary print control but there are certain things to be aware of. |
| |
| VIM will always start printing a line (including a line number if enabled) |
| containing a formfeed character, even if it is the first character on the |
| line. This means if a line starting with a formfeed character is the first |
| line of a page then VIM will print a blank page. |
| |
| Since the line number is printed at the start of printing the line containing |
| the formfeed character, the remainder of the line printed on the new page |
| will not have a line number printed for it (in the same way as the wrapped |
| lines of a long line when wrap in 'printoptions' is enabled). |
| |
| If the formfeed character is the last character on a line, then printing will |
| continue on the second line of the new page, not the first. This is due to |
| VIM processing the end of the line after the formfeed character and moving |
| down a line to continue printing. |
| |
| Due to the points made above it is recommended that when formfeed character |
| processing is enabled, printing of line numbers is disabled, and that form |
| feed characters are not the last character on a line. Even then you may need |
| to adjust the number of lines before a formfeed character to prevent |
| accidental blank pages. |
| |
| ============================================================================== |
| vim:tw=78:ts=8:ft=help:norl: |