 |
от Димитър Василев - FreeJak(3-07-2003)
рейтинг (5)
[ добре ]
[ зле ]
Вариант за отпечатване
Увод
Това са моите бележки относно печат на
кирилица под LPRNG и настройката на
български език в LyX. Замисълът ми е да обменим идеи за
това как може да стане и по-добре.
Доста често съм виждал питания и лично съм питал как се
настройва LPRNG,
а отговорите не ме устройваха.Затова седнах, помислих и
направих.
Необходими програми
LPRNG, apsfilter от www.apsfilter.org,
html2ps от www.tdb.uu.se/~jan/html2ps.html,
enscript и каквито се сетите други филтри, Ghostscript,
LaTeX, TeTeX, Perl, OpenOffice. Може да пропускам нещо, но
разработчиците на вашия Linux/*BSD не. Базовите инсталации
предлагат всичко необходимо за елементарен печат.
Проблемът се заключава в следното: Поради
"доминиращото" влияние на стратегическия партньор
на сегашното ни правителство на пазара за програмно
обезпечение и неговото безразличие към световните стандарти,
в България е наложено масово кодирането cp-1251. Повечето
филтри, разпространими или съвместими с LPRNG подържат
кирилица в UTF-8, KOI-8*.Откъдето следва въпроса:
"Как, да го вземат мътните, ще печатам?"
Решение
Печати всичко без HTML - не успях да се преборя с
html2ps и Open Office да рендва HTML ( поради стар хардуер,
но малки HTML яде за закуска).
Предполагам имате подръжка на принтера си в ядрото, без
значение дали е вързан към USB, паралелен или друг порт.
Въпросното печатащо устройство е вързано към него, работи и
е захранвано с ток по време на процедурите за настройка.
Влезте
във вашата система като root и инсталирайте apsfilter от
ports/изходен код.
Отидете в неговата директория -
/usr/(local)/share/apsfilter.
Там има скрипт SETUP, който като бъде изпълнен, започва да
ви пита за вашите настройки, желаната разделителна
способност и т.н. След инсталирането и тестването на
принтера, направете архив на следните файлове:
/etc/printcap,
/etc/apsfilter/apsfilterrc,
/etc/a2ps-site.cfg,/etc/a2ps.cfg,
/etc/enscript.cfg, /etc/lpd.*.
Сменете правата на LPRNG да приема
само от печат само от localhost и управление от root. Моят
/etc/lpd.conf: 'force_localhost' 1 или on. Моят
/etc/lpd.perms:
ACCEPT SERVICE=C SERVER REMOTEUSER=root
ACCEPT SERVICE=C LPC=lpd,status,printcap
REJECT SERVICE=C
ACCEPT SERVICE=M SAMEHOST SAMEUSER
ACCEPT SERVICE=M SERVER REMOTEUSER=root
REJECT SERVICE=M
DEFAULT ACCEPT
REJECT SERVICE=X, NOTREMOTEHOST=localhost,127.0.0.1 и т.н
NOT REMOTEUSER=root,freejak
Повече подробности - man lpd
/etc/apsfilter/apsfilterc:
##############################################################################
# $ApsCVS: src/apsfilter/template/apsfilterrc.in,v 1.42.2.8
2002/11/09 16:54:28 andreas Exp $
#
# Sample apsfilter template file for apsfilter 7.2.5
#
# This file is for customizing apsfilter's behaviour
# Enables you to configures some aspects of apsfilter to
fit your own needs.
#
#
# Possible locations for configuration files:
#
# a) global configuration for all printers:
$CONF_DIR/apsfilterrc
# b) printer specific: $CONF_DIR/$QUEUE/apsfilterrc
# c) printer specific, supplied by user:
$CONF_DIR/$QUEUE/apsfilterrc.$USER
# d) printer specific, controlled by user:
~$USER/.apsfilter/apsfilterrc.$QUEUE
# (admin must set USE_USER_CODE for this to be
used)
##############################################################################
#=============================================================================
# apsfilter specific configuration
#=============================================================================
# include special paths you need
# default:
PATH="/usr/local/bin:/usr/X11R6/bin:/usr/bin:/bin"
#
PATH="/opt/bin:/usr/openwin/bin:/usr/local/bin:/usr/X11R6/bin:/usr/bin:/bin"
# change this if your awk chokes on our programs and/or
command line options
# default: AWK=awk
#
AWK=/usr/bin/gawk
# who is to be notified in case of a failure
# default: NOTIFY=root
#
NOTIFY=root
# directory for temporary file creation
# default: TMPDIR=/tmp
#
TMPDIR=/tmp
###
### WARNING !
###
### This setting allows users to provide configuration in a
shell script;
### do _not_ set this if the input filter runs under a
privileged user.
###
### To be on the safe side, you can also create
user-specific config files
### $CONF_DIR/$QUEUE/apsfilterrc.$USER
### which contain settings that have been inspected by the
administrator.
###
# default: USE_USER_CODE=""
#
#USE_USER_CODE=set
#=============================================================================
# printer independent configuration
#=============================================================================
# search path for embedded images used by dvips; this path
will be extended
# by "$HOME:/tmp:/var/tmp" (where $HOME is the
home directory of the user)
# default: TEXINPUTS=""
#
#TEXINPUTS=/usr/accounts/andreas/pictures:/usr/share/dvips/pictures
# set this of your MakeTeXPK tool works correctly
# default: HAVE_MAKETEXPK=""
#
HAVE_MAKETEXPK=""
# dvips option for setting the resolution
# default: DVIPS_RES_DorP=-D
#
DVIPS_RES_DorP=-P
# ghostscript environment variables
# defaults:
#
GS_FONTPATH="/usr/X11R6/lib/X11/fonts/Type1:/var/X11R6/lib/X11/fonts/Type1"
# GS_LIB="$GS_FONTPATH"
#
GS_FONTPATH=/usr/X11R6/lib/X11/fonts/Type1
GS_LIB=/usr/X11R6/lib/X11/fonts/Type1
# set this if your (remote) print jobs are erroneously sent
in "raw" mode
# default: IGNORE_LPD_RAW=""
#
#IGNORE_LPD_RAW=set
#============================================================================
# printer dependent configuration
# (these should go into the printer specific
apsfilterrc)
#============================================================================
# media type; one of plain, coated, glossy, premium,
trans
# default: MEDIA="plain"
#
MEDIA=plain
# whether to print uni- or bi-directional
# default: SWEEP=bi
#
SWEEP=bi
# custom DVI-to-PrinterLanguage filter
(stdin->stdout)
# default: PRINT_DVI="" -> will use dvips
#
#PRINT_DVI='/usr/local/bin/my_super_filter -X -Y -Z -'
# escape sequences to be sent before/after a
"raw" print job
# defaults:
# RAW_PROLOGUE=""
# RAW_EPILOGUE=""
#
#RAW_PROLOGUE='\033&k2G\033(s2Q\033&k5W\033&l0L\033&a7L\033(s12H'
#RAW_EPILOGUE='\014'
# escape sequences to be sent before/after text output via
"recode"
# (in addition to the RAW_PROLOGUE and RAW_EPILOGUE
stuff)
# defaults:
# RECODE_PROLOGUE=""
# RECODE_EPILOGUE=""
#
# these are examples for the LaserJet/DeskJet/PaintJet
family
#RECODE_PROLOGUE='\033E\033&k2G\033(0N'
#RECODE_EPILOGUE='\033E'
# these are examples for the newer Stylus models (probably
740 and later)
#RECODE_PROLOGUE='\000\000\000\033\001@EJL 1284.4\012@EJL
\012\033@\033@'
#RECODE_EPILOGUE='\033@'
# codes (printf-style) to create a single blank page
# default: BLANK_PAGE='\012\014'
#
#BLANK_PAGE='\033@'
# ghostscript options; will be altered by quality/color/...
settings
# default: GS_FEATURES=""
#
#GS_FEATURES='-dBitsPerPixel=32 -dMicroweave
-sDithering=fscmyk'
# printer initialisation (used by gs)
# default: PS_INIT=""
#
#PS_INIT=stcolor.ps
# printer cleanup (used by gs)
# default: PS_EXIT=""
#
#PS_EXIT=showpage.ps
# options for the POST_FILTER (called after gs
processing)
# default: POST_FILTER_OPTS=""
#
#POST_FILTER_OPTS='-f /etc/my_pnm2ppa.conf'
# printer is a duplex capable printer
# default: HARDWARE_DUPLEX=""
#
#HARDWARE_DUPLEX=set
# disable duplex printing; only needed if HARDWARE_DUPLEX
is empty _and_ if
# apsfilter doesn't run on the local host
# default: DISABLE_DUPLEX=""
#
#DISABLE_DUPLEX=set
# set these if even/odd pages should be reversed for fake
duplex mode,
# and control whether the odd pages should be printed
first
# defaults:
# DUPLEX_REVERSE_EVEN=""
# DUPLEX_REVERSE_ODD=""
# DUPLEX_ODD_FIRST=""
#
#DUPLEX_REVERSE_EVEN=set
#DUPLEX_REVERSE_ODD=set
#DUPLEX_ODD_FIRST=set
# papertray selection
# default: PAPERTRAY=""
#> class options: tray0, ..., tray9
#
#PAPERTRAY=1
# maximum number of copies printed via "lpr -C
copies=42" or "lpr -Zcopies=42";
# this is independent of the "-#" and
"-K" switches to lpr
# default: MAXCOPIES=10
#
#MAXCOPIES=1
# printer is capable of printing multiple copies
# default: HARDWARE_COPIES=""
#
#HARDWARE_COPIES=set
# copies should be done at the remote server (if
possible);
# currently for NetWare and lpd servers
# default: REMOTE_COPIES=set
#
#unset REMOTE_COPIES
#============================================================================
# visual appearance of the printout
#============================================================================
# filter for ASCII files; one of a2ps, mpage, enscript,
recode
# default: ASCII_FILTER=a2ps
#> class options: a2ps, mpage, enscript, recode
#
#ASCII_FILTER=recode
# override a2ps default options
# defaults:
# A2PS_BASIC="--delegate=no -X iso1"
# A2PS_PAPERSIZE="$PAPERSIZE"
(case-corrected)
#
#don't format troff documents, by Joerg Wunsch <joerg@apsfilter.org>
#A2PS_BASIC='-Eplain'
#A2PS_PAPERSIZE=Letter
#A2PS_PAPERSIZE=A4stylus
# override the complete a2ps commandline
# default: A2PS_OPTS=""
#
#A2PS_OPTS='-X iso1 -m --borders=yes --prologue=color
--highlight-level=heavy'
# override mpage default options
# defaults:
# MPAGE_BASIC="-CISO-Latin.1 -f"
# MPAGE_PAPERSIZE="$PAPERSIZE"
(case-corrected)
#
#MPAGE_BASIC='-CISO-Latin.2 -f'
#MPAGE_PAPERSIZE=Letter
#MPAGE_PAPERSIZE=A4
# override the complete mpage commandline
# default: MPAGE_OPTS=""
#
#MPAGE_OPTS='-CISO-Latin.2 -a -e -r'
# override enscript default options
# defaults:
# ENSCRIPT_BASIC="-X 88591"
# ENSCRIPT_PAPERSIZE="$PAPERSIZE"
(case-corrected)
#
ENSCRIPT_BASIC='-X 88595 -C 88592'
#ENSCRIPT_PAPERSIZE=Letter
ENSCRIPT_PAPERSIZE=A4
# override the complete enscript commandline
# default: ENSCRIPT_OPTS=""
#
#ENSCRIPT_OPTS='-X 88592 -r --ps-level=1'
# set level of pretty-printing (0=none, 1=normal,
2=heavy)
# the text-to-PostScript converter must support this
# default: PRETTY_PRINTING=1
#> class options: pretty=0, pretty=1, pretty=2
#
PRETTY_PRINTING=1
# print headers and borders for ASCII files
# defaults:
# ASCII_HEADER=""
# ASCII_BORDER=""
#> class options: header, noheader, border, noborder
#
#ASCII_HEADER=set
#ASCII_BORDER=set
# multiple pages per sheet (can be 1,2,4,8)
# default: PS_NUP=1
#> class options: 1pps, 2pps, 4pps, 8pps
#
#PS_NUP=2
#
# same setting, but for ASCII files only
# default: ASCII_PPS="$PS_NUP"
#
#ASCII_PPS=2
# force paper orientation
# default: LANDSCAPE=""
#> class options: landscape, portrait
#
#LANDSCAPE=set
#
# same setting, but for ASCII files only
# default: ASCII_LANDSCAPE="$LANDSCAPE"
#
#ASCII_LANDSCAPE=set
# override htmldoc options
# default: HTMLDOC_OPTS="--webpage"
#
HTMLDOC_OPTS='--book --charset 8859-5 --no-title'
# override html2ps options
# default: HTML2PS_OPTS="-e ISO-8859-1 -u -H"
#
HTML2PS_OPTS='-e ISO-8859-5 -u -H'
# override recode options
# default: RECODE_OPTS="latin1..ibmpc"
#
#RECODE_OPTS='latin1..cp437'
# use pstools to alter the PostScript printout
# defaults:
# PS_BOOK=""
# PS_UTILS=""
#> class options: book
#
#PS_BOOK=set
#PS_UTILS='psselect -r'
# duplex printing (will be "faked" if printer
can't handle this by itself)
# default: DUPLEX=""
#> class options: duplex, simplex
#
#DUPLEX=set
# binding edge; must be long or short
# default: BINDING=long
#> class options: shortbind, longbind
#
#BINDING=short
/etc/a2ps.cfg:
# a2ps.cfg
-*- Makefile
-*-
#
# System configuration file for a2ps.
# Copyright (c) 1988-1993 Miguel Santana
# Copyright (c) 1995-2000 Akim Demaille, Miguel Santana
#
#
# This file is part of a2ps.
#
# This program is free software; you can redistribute it
and/or modify
# it under the terms of the GNU General Public License as
published by
# the Free Software Foundation; either version 2, or (at
your option)
# any later version.
#
# This program is distributed in the hope that it will be
useful,
# but WITHOUT ANY WARRANTY; without even the implied
warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
License
# along with this program; see the file COPYING. If
not, write to
# the Free Software Foundation, 59 Temple Place - Suite
330,
# Boston, MA 02111-1307, USA.
#
#
# This file defines everything a2ps needs to know about
# -- your system (access to the printers)
# It is strongly suggested that you check
these parameters
# are adapted to your system.
# -- customizable features
#
# It is related to the whole system, i.e., it is not the
file
# the users should modify themselves for their own
preferences.
# ~/.a2ps/a2psrc is the user's own configuration file,
which
# is read after this file.
#
#################################################################
# 1) Definition of some media #
# (Must be defined before --medium) #
#################################################################
# Medium: name, width height [llx lly urx ury]
Medium: A3 842 1190
Medium: A4 595 842
Medium: A5 420 595
Medium: B4 729 1032
Medium: B5 516 729
Medium: Letter 612 792
Medium: Legal 612 1008
Medium: Tabloid 792 1224
Medium: Ledger 1224 792
Medium: Statement 396 612
Medium: Executive 540 720
Medium: Folio 612 936
Medium: Quarto 610 780
Medium: 10x14 720 1008
# Desk Jet users: bigger margins
Medium: A4dj 595 842 24 50 571 818
Medium: Letterdj 612 792 24 40 588 768
#################################################################
# 2) Path to the a2ps resource #
#################################################################
# Default path where a2ps dropped its library files.
LibraryPath:
/usr/share/a2ps/sheets:/usr/share/a2ps/ps:/usr/share/a2ps/encoding:/usr/share/a2ps/afm:/usr/share/ogonkify/afm:/usr/share/a2ps/ppd:/usr/share/a2ps/fonts:/usr/share/ogonkify/fonts:/usr/share/a2ps
# It may be useful to extend it so that a2ps can see
some
# TeX or X11 resources: it likes AFM files and PF[AB]
files.
#AppendLibraryPath: foo
#################################################################
# 3) Default settings #
#################################################################
# Two virtual pages per sheet
Options: -2
# Set automatic pretty-printing on (set to
"plain" for off)
Options: --pretty-print
# By default, single sided printing.
Options: -s1
# Name of the document is the list of files
# (Don't put too many of them: it breaks some PS
interpreters)
Options: --title='#10!f|$n|, |'
# Header is the client of the job
Options: --header=%a
# Title of the page is the (short) name of the current
file
# or the first tagged text if there is
Options: --center-title=#?1|$t1|$n|
# Left part of the title is the mod. date of the file
# or empty is there is a tag2
Options: --left-title='#?2||$e $T|'
# Right part of the title is the page number
# or tag2 if there is
Options: --right-title='#?2|$t2|$Q|'
# If in landscape, print date on the left hand side
# If portrait, then print date on recto, and sheet # on
verso
Options: --left-footer=#?l!%E!#?v|%E|%s./%s#|!
# Center footer is the list of files on this sheet if
landscape
Options: --footer='#?l|#!s-$f-, -||'
# If in landscape, print date on the right hand side
# If portrait, then print date on verso, and sheet # on
recto
Options: --right-footer=#?l!%s./%s#!#?v|%s./%s#|%E|!
# We want the %%Page comments to be instructive.
# There are two predefined choices: #{pl.short} and
#{pl.long}
PageLabelFormat: #{pl.short}
# Report the number of lines which were wrapped.
Variable: cfg.wrapped 1
###############################################################
# 4) Preconfigured Variables
#
###############################################################
#
# Some variables for the delegations
#
# Calling AcrobatReader for PDF to PostScript.
#Variable: del.acroread \
# acroread -toPostScript
# Acrobat 4 lets us specify the medium, which is precious
sometimes, and
# that we should shrink the document to the size of the
medium.
#Variable: del.acroread \
# acroread -toPostScript -size "#wx#h"
-shrink
# Passes the options to psnup. A problem with psnup
is that even if
# no service is requested, the PostScript is altered.
There are such
# problems with dvips. A symptom is that the figure
are spread on
# several pages. To avoid that, with ``-1'', we use
cat instead of
# psnup -1.
# The files (in and out) are to be given if not stdin and
stdout.
Variable: del.psnup \
#?o!cat!psnup -#v #?V||-q| #?j|-d|| #?r||-c| -w#w
-h#h!
# Passes to psselect for PS page selection.
Variable: del.psselect \
#?p!psselect #?V||-q| -p#p!cat!
# Passes to psselect, and then psnup
Variable: del.psselnup #{del.psselect} | #{del.psnup}
# Calls to dvips. The sequence waits for the file
name, and
# produces on stdout.
Variable: del.dvips dvips #?p|-pp#p|| #?V||-q| -T#wpt,#hpt
-f
# We use a modified texi2dvi which accepts -b (--batch), -c
(--clean),
# and -l (--language).
Variable: del.texi2dvi \
texi2dvi4a2ps -b -c #?V|--verbose|--quiet| 1>&2
# a2ps will be called upon decompressed files.
Variable: del.a2ps\
a2ps #?p|-a#p|| #?V|-v2|-q| -#v -o- --stdin=$N
# convert, part of ImageMagick, is used for many image
formats
# If you want the name of the file to be printed along with
the picture,
# add `-label $f'
Variable: del.imagick convert -page #wx#h
# TeX MetaFont and MetaPost files.
Variable: del.metafont \
(TEXINPUTS=%d:$$TEXINPUTS && \
mft $f && tex $N.tex '\\end') #?V|1>&2|>
/dev/null|
Variable: del.metapost \
(TEXINPUTS=%d:$$TEXINPUTS && \
mft $f && mv $f.tex $N.tex && tex $N.tex '\\end')
#?V|1>&2|> /dev/null|
#
# Variables for special printers.
#
# Either GV (prefered) or Ghostview will be used as the
"display" printer
# We give -dNOPLATFONTS so that real fonts are used
# (Strange results appear with Ogonkify's fonts for
instance).
#Variable: ghostview ghostview -arguments -dNOPLATFONTS
Variable: ghostview gv -antialias -arguments
-dNOPLATFONTS
# Used for the `pdf' printer.
# Use as `#{ps2pdf} INPUT OUTPUT'.
# Variable: ps2pdf gs -g"#wx#h" -r72 -q -dNOPAUSE
-dBATCH -sDEVICE=pdfwrite -sOutputFile=$N.pdf -c save pop -f
#f0
Variable: ps2pdf ps2pdf -g"#wx#h" -r72
#Variable: ps2pdf distill -pairs -pagesize #w #h pts
#
# Some macro for ToC or page label
#
# Useful for the page label format:
# pl.short: just the page intervals
Variable: pl.short #!s|$p-|,|
# pl.long: file name and page intervals
Variable: pl.long #!s|$n $p-|,|
# The default layout for Table of Contents
Variable: toc \\Keyword{Table of Contents}\n\
#-1!f\
|$2# \\keyword{$-.20n} sheets $3s< to $3s> ($2s#)
pages \
$3p<-$3p> $4l# lines\n||
#################################################################
# 5) Preconfigured delegations
#
#################################################################
#
# Delegations are ways to hand off the processing of
some
# files to other filters.
#
# When delegating, interesting meta sequences are
# $f -- current filename, i.e.
the one to delegate.
# Note
that $f expands exactly to the file, which means
# that in
most cases you need '$f' (with the two quotes)
# to avoid
both (i) problems with space in names, and
# (ii)
other shell active characters, such as $.
# Yeah, I
know, we need something more elaborated in case
# the file
has quotes ' in it
# #f0 to #f9 -- temporary filename you can use.
# rm is
done by a2ps itself. No need to quote.
#
########## Compressed files
# A compressed file should be decompressed and processed by
a2ps
# A consequence is that the decompressed file may be
delegated.
Delegation: gzip-a2ps gzip:ps gzip -cd '$f' |
#{del.a2ps}
Delegation: gzip-a2ps compress:ps gzip -cd '$f' |
#{del.a2ps}
#Delegation: bzip-a2ps bzip:ps bzip -cd '$f'
| #{del.a2ps}
Delegation: bzip2-a2ps bzip2:ps bzip2 -cd '$f' |
#{del.a2ps}
########## DVI files
# Pass DVI files to dvips.
# * A problem with dvips is that even on failure it dumps
its
# prologue, hence it looks like a success (output is
produced). To
# avoid that, we use an auxiliary files and
conditional call to psnup
# instead of piping.
# * It tries to figure if the doc is landscape (use of
seminar for
# instance) by looking for `landscape' in the first
strings of
# the DVI file.
Delegation: dvips dvi:ps\
if strings '$f' | sed 10q | fgrep landscape >
/dev/null 2>&1; then \
#{del.dvips} -T#hpt,#wpt '$f' -o #f0 &&
#?o|cat|#{del.psnup} -r| #f0; \
else \
#{del.dvips} '$f' -o #f0 && #{del.psnup}
#f0; \
fi
########## HTML files
# Pass HTML to Netscape, hoping that there is an Netscape
running...
# Tricks:
# 1. Netscape can't output on stdout, hence use a tmp file
(#f0)
# 2. openfile refuses relative paths, so prepend cwd (%d)
when relative
# 3. remote 'openfile' -remote 'saveas' is bad, because it
is handled
# asynchronously, and the output can
correspond to a previously
# loaded page (not that of openfile). So
run Netscape twice.
# 4. It asks the user if s/he wants to replace an existing
output file,
# so rm before.
Delegation: Netscape html:ps \
rm -f #f0; \
if echo '$f' | grep '^/' >/dev/null 2>&1; then
\
${NETSCAPE:-netscape} -noraise -remote
'openfile($f)'; \
else \
${NETSCAPE:-netscape} -noraise -remote
'openfile(%d/$f)'; \
fi && \
${NETSCAPE:-netscape} -noraise -remote
'saveas(#f0,postscript)' && \
#{del.psselect} #f0 | #{del.psnup}
########## MetaFont / MetaPost files
Delegation: MetaFont mf:ps \
#{del.metafont} && #{dvips} $N.dvi |
#{psnup}
Delegation: MetaPost mp:ps \
#{del.metapost} && #{dvips} $N.dvi |
#{psnup}
########## PDF files
# Delegated to pdf2ps, GS 5.50
Delegation: pdf2ps pdf:ps \
pdf2ps '$f' #f0 && #{del.psselect} #f0 |
#{del.psnup}
# Delegated to AcrobatReader
#Delegation: Acrobat pdf:ps \
# #{del.acroread} < '$f' | #{del.psselnup}
########## PostScript files
# Pass the PostScript files to psnup and psselect
Delegation: PsNup ps:ps fixps #?V||-q| '$f' |
#{del.psselnup}
########## ROFF files
# Pass the roff files to groff. Ask grog how groff
should be called.
# Use fixps to ensure there is a %%BeginSetup/%%EndSetup
section.
Delegation: Groff roff:ps \
eval `grog -Tps '$f'` | fixps #?V!!-q! |
#{del.psselnup}
########## TeX files, supposed to be LaTeX files in
fact
# Use texi2dvi for TeX file
Delegation: texi2dvi tex:ps \
#{del.texi2dvi} -l latex -o #f0 '$f' && #{del.dvips}
-f #f0 | #{del.psnup}
########## Texinfo files
# Use texi2dvi for Texinfo file
# In a near future, we might no longer have to specify
--expand, but
# currently, it is safer.
Delegation: texi2dvi texinfo:ps \
#{del.texi2dvi} -e -o #f0 -l texinfo '$f' &&
#{del.dvips} -f #f0 | #{del.psnup}
######################## Using ImageMagick for images
########## GIF files
Delegation: ImageMagick gif:ps\
#{del.imagick} 'gif:$f' ps:- |
#{del.psselnup}
########## JPEG files
Delegation: ImageMagick jpeg:ps\
#{del.imagick} 'jpeg:$f' ps:- |
#{del.psselnup}
########## PNG files
Delegation: ImageMagick png:ps\
#{del.imagick} 'png:$f' ps:- |
#{del.psselnup}
########## TIFF files
Delegation: ImageMagick tiff:ps\
#{del.imagick} 'tiff:$f' ps:- |
#{del.psselnup}
########## XBM files
Delegation: ImageMagick xbm:ps\
#{del.imagick} 'xbm:$f' ps:- |
#{del.psselnup}
########## XPM files
Delegation: ImageMagick xpm:ps\
#{del.imagick} 'xpm:$f' ps:- |
#{del.psselnup}
#################################################################
# 6) Some interesting UserOptions/Printers #
#################################################################
# Print like an old fashioned ASCII printer
UserOption: lp -1m -Eplain -B --borders=no
# Print mails. Strip some headers.
UserOption: mail -gEmail --strip=1
UserOption: longmail -gEmail --strip=1 -2R
# Printing a booklet
# To print a booklet, we must be sure to output Simplex,
and 1 up.
# Install the lp hook for booklets.
UserOption: book -1Dlp.hook=#{lp.hook.book} -s1
# This variable defines a hook for `lp'. The output
is piped into
# psbook in order to print a booklet.
Variable: lp.hook.book \
#?o! psbook #?V,,-q, | psnup -2 #?V,,-q, | psset -nt |
\
! echo "Cannot be used with more than two pages per
sheet." >&2 ; exit 1!
# Some special setpagedevice requests
UserOption: manual -SManualFeed:true
# Force a2ps to issue a Simplex request.
UserOption: s1 -SDuplex:false
UserOption: simplex -SDuplex:false
# Nice display, i.e., use colors, and one virtual per
page.
UserOption: display -1 --prolog=color -Pdisplay
# It is better not to pipe in ghostview
Printer: display | cat > #f0 && #{ghostview} #f0
# Save into a file named after the input files.
# E.g. a2ps src/foo.c => foo.ps
Printer: file > $N.#.
# Dry run. Helpful to know the page usage etc.
Printer: void > /dev/null
# Produce PDF.
# It is better not to output in two up, or even worse: in
landscape.
Printer: pdf | cat >#f0 && #{ps2pdf} #f0 $N.pdf
UserOption: pdf -1 -P pdf --prologue=color
# We define the DefaultPrinter and the Unknown Printer just
in case
# a2ps-site.cfg fails to define them. Under normal
circumstances
# these entries *will* be overridden.
# First, the default printer (option -d, no argument)
DefaultPrinter: | #{lp.default}
# Second, a printer unknown to a2ps (option -P, argument is
#o)
UnknownPrinter: | #{lp} #o
#################################################################
# 7) Your local settings #
#################################################################
# How to call file(1), and if possible, follow the
links
FileCommand: /usr/bin/file -L
# Define a variable to call lp/lpr on the default printer,
preceded
# with a hook to post-process PostScript (to call psbook
for instance).
# Something like `#{lp.hook} lp #{lp.options}'
# or `#{lp.hook}
lpr #{lp.options}'.
Variable: lp.default #{lp.hook} lp #{lp.options}
# The same, but when a printer is specified.
# Something like `#{lp.hook} lp #{lp.options} -d'
# or `#{lp.hook}
lpr #{lp.options} -P'.
Variable: lp #{lp.hook} lp #{lp.options} -d
# To avoid that the next installation of a2ps destroys
your
# definitions, local customization would be better done
in
# a2ps-site.cfg.
Include: a2ps-site.cfg
/etc/a2ps-site.cfg:
# a2ps-site.cfg
-*-
Makefile -*-
#
# This file is included from a2ps.cfg
#
# In this file should be defined your specific values you
want to keep
# for other installation (future) installation of a2ps.
#################################################################
# 1) System dependent parameters #
#################################################################
# Default encoding
Options: --encoding=iso-8859-5
# Default medium
Options: --medium=A4dj
#################################################################
# 2) Your printers #
#################################################################
# By default, produce Level 1 PostScript.
# Currently it only means to consider only the 13 level 1
standard
# fonts, and not the 35 standard level 2 fonts.
DefaultPPD: level1
# NOTE:
# Because sending a file to a printer is system dependent
and because
# this file is meant to be system independent, there are
two variables
# defined in a2ps.cfg you should use here.
# - #{lp.default}
# Its value is typically `lp' or `lpr'.
# - #{lp}
# Its value is typically `lp -d' or `lpr -P'.
Immediately after
# #{lp} there should be the name of the printer.
#
### DefaultPrinter
# DefaultPrinter is the printer which is called upon `a2ps
-d'.
DefaultPrinter: | #{lp.default}
### UnknownPrinter
# The `UnknownPrinter' is the command used when the user
specified
# the name of the printer (a2ps -P <printer-name>),
but <printer-name>
# is not specified below as a special case.
# <printer-name> is available here as `#o'.
UnknownPrinter: | #{lp} #o
### Some special printers.
# This section is to fill only if you want to tune your
system.
# The entry `UnknownPrinter' is enough to handle any
case.
# For instance, I want to specify that arlette is a Level 2
PostScript
# printer. I specif no command, so the
`UnknownPrinter' command will
# be used.
#Printer: arlette level2
# dominique is a level 2 PostScript _without_ Duplex
support.
# Here I *want* a special command, not that of the
UnknownPrinter.
# We use the shell script psmandup to simulate Duplex.
#Printer: dominique level2 | #?d#psmandup -n|## #{lp}
dominique
# This is just to show that any command can be used.
Instead of
# printing, the output is piped in `wc'.
#Printer: wc | wc -l
# You can also save in a file if you wish.
#Printer: netscape >netscape.ps
# This example uses the fact that `$N' expands in the input
file name,
# so a2ps foo -P gzip will save the output in
foo.ps.gz.
#Printer: gzip | gzip -c > $N.#..gz
/etc/enscript.cfg:
#
# GNU Enscript configuration file.
# Copyright (c) 1995-2000 Markku Rossi.
#
# Author: Markku Rossi <mtr@iki.fi>
#
#
#
# This file is part of GNU enscript.
#
# This program is free software; you can redistribute it
and/or modify
# it under the terms of the GNU General Public License as
published by
# the Free Software Foundation; either version 2, or (at
your option)
# any later version.
#
# This program is distributed in the hope that it will be
useful,
# but WITHOUT ANY WARRANTY; without even the implied
warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
License
# along with this program; see the file COPYING. If
not, write to
# the Free Software Foundation, 59 Temple Place - Suite
330,
# Boston, MA 02111-1307, USA.
#
# Do we accept PostScript font's composite characters?
As a default,
# this is false because I think this is GhostScript
dependant.
AcceptCompositeCharacters: 0
# Lookup path for the AFM files.
AFMPath:
/usr/share/enscript/afm:/usr/local/lib/ps:/usr/lib/ps
# Append ^D character to the end of the output. Some
printers like HP
# LaserJet 5 require this but the default is `false'.
AppendCtrlD: 0
# How characters greater than 127 are printed:
# 1 generate clean 7-bit code; print characters
greater than 127
# in the backslash-octal notation `\xxx' (default)
# 0 generate 8-bit code
Clean7Bit: 0
# Default input encoding.
DefaultEncoding: iso-8859-5
# Default fancy header.
DefaultFancyHeader: enscript
# Default output media.
DefaultMedia: A4dj
# Where output goes as a default: `printer' or `stdout'
DefaultOutputMethod: printer
# Include following font files to all PostScript
outputs.
#
# DownloadFont: FooFont1
# DownloadFont: FooFont2
# The escape character for special escapes.
EscapeChar: 0
# What to do when a formfeed character is encountered from
input:
# column move to the beginning of the next column
# page move to the beginning of the next page
FormFeedType: column
# Specify whether the PageSize page device option is
generated to the
# output.
GeneratePageSize: 1
# The gray level which is used to print highlight bars.
HighlightBarGray: .97
# How high highlight bars are in lines. The default
is 0 so no
# highlight bars are printed.
# HighlightBars: 2
# Library path. Let's use built-in default.
# LibraryPath:
# How wrapped lines are marked in printout. Possible
values are: `none',
# `plus', `box' and `arrow'. As a default, we do not
mark them.
MarkWrappedLines: none
# Media definitions:
# name width height llx lly urx ury
Media: A3 842 1190 24 24 818 1166
Media: A4 595 842 24 24 571 818
Media: A5 420 595 24 24 396 571
Media: Legal 612 1008 24 24 588 984
Media: Letter 612 792 38 24 574 768
# HP DeskJet media (DeskJet can't print on the bottom
1/2" of the paper).
Media: A4dj 595 842 24 50 571 818
Media: Letterdj 612
792 24 40
588 768
# Spooler option to suppress the job header.
NoJobHeaderSwitch: -h
# How non-printable characters are printed: `caret',
`octal',
# `questionmark' or `space'.
NonPrintableFormat: octal
# PostScript output's first line.
OutputFirstLine: %!PS-Adobe-3.0
# Default page label format: `short' or `long'.
PageLabelFormat: short
# Enable / disable page prefeed.
PagePrefeed: 0
# The PostScript language level that enscript should
use.
PostScriptLevel: 2
# Printer name to spool to. As a default we want to
use system's
# default printer.
Printer: aps1
# The spooler command switch to select the printer queue.
This option
# can also be used to pass other flags to the spooler
command but they
# must be given bofore the queue switch.
QueueParam: -P
# Pass following Page Device options to the generated
output.
#
# Duplex printing.
# SetPageDevice: Duplex:true
# Printer spooler command name.
Spooler: lpr
# An absolute path to the states program.
StatesBinary: /usr/bin/states
# Create color outputs with States?
StatesColor: 0
# The name of the States configuration file.
StatesConfigFile: /usr/share/enscript/hl/enscript.st
# States' default highlight style.
StatesHighlightStyle: emacs
# Path for the States program.
# StatesPath: /usr/share/enscript/hl
# Pass following statusdict options to the generated
output.
#
# Use always paper tray 1.
# StatusDict: setpapertray:1
# Format string for table-of-contents entries.
#
# TOCFormat: $3v $-40N $3% pages $4L lines $E $C
# As a default, print this underlay text to all
document.
# Underlay: mtr's printout
# Underlay text angle.
# UnderlayAngle: 45
# Select underlay font.
UnderlayFont: Times-Roman200
# Select underlay gray.
UnderlayGray: .8
# Underlay text starting position.
# UnderlayPosition: +0-0
# Underlay style: `outline' or `filled'
UnderlayStyle: outline
# EOF
/etc/printcap:
#
# Copyright (c) 1983 Regents of the University of
California.
# All rights reserved.
#
# Redistribution and use in source and binary forms are
permitted
# provided that this notice is preserved and that due
credit is given
# to the University of California at Berkeley. The name of
the University
# may not be used to endorse or promote products derived
from this
# software without specific prior written permission. This
software
# is provided ``as is'' without express or implied
warranty.
#
# @(#)etc.printcap 5.2 (Berkeley) 5/5/88
#
# DecWriter over a tty line.
#lp|ap|arpa|ucbarpa|LA-180 DecWriter III:\
# :br#1200:fs#06320:tr=\f:of=/usr/lib/lpf:lf=/usr/adm/lpd-errs:
#lp:lp=/dev/lp0:sd=/usr/spool/lp0:of=/usr/lib/lpf:
lf=/usr/adm/lpd-errs
#
# Generic printer:
#DeskJet 670C text
#txt:\
#:lp=/dev/lp0:\
#:if=/usr/local/bin/lpfilter:\
#:sd=/var/spool/lpd:\
#:lf=/var/spool/lpd/log:\
#:af=/var/spool/lpd/acct:\
#:mx#0:\
#:sh:
#
# typical remote printer entry
#ucbvax|vax|vx|ucbvax line printer:\
# :lp=:rm=ucbvax:sd=/usr/spool/vaxlpd:lf=/usr/adm/lpd-errs:
#varian|va|Benson Varian:\
# :lp=/dev/va0:sd=/usr/spool/vad:mx#2000:pl#58:px#2112:py#1700:tr=\f:\
# :of=/usr/lib/vpf:if=/usr/lib/vpf:tf=/usr/lib/rvcat:cf=/usr/lib/vdmp:\
# :gf=/usr/lib/vplotf:df=/usr/local/dvif:\
# :vf=/usr/lib/vpltdmp:lf=/usr/adm/lpd-errs:
#versatec|vp|Versatec plotter:\
# :lp=/dev/vp0:sd=/usr/spool/vpd:sb:sf:mx#0:pw#106:pl#86:px#7040:py#2400:\
# :of=/usr/lib/vpfW:if=/usr/lib/vpsf:tf=/usr/lib/vcat:cf=/usr/lib/vdmp:\
# :gf=/usr/lib/vplotf:vf=/usr/lib/vpltdmp:lf=/usr/adm/lpd-errs:\
# :tr=\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\
#\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\
#\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n:
#
#lp|panasonic:lp=/dev/lp1:sd=/usr/spool/lp/panasonic:lf=/usr/bin/mail:mc#1:\
#
ft=$$c$$p$$r$$f:hl#2:fl#3:ht=$$c$$n$$r$$t:sh:
#
# HP Laser jet plus
#lp|hpj:\
# :lp=/dev/lp1:\
# :sd=/usr/spool/lp1:\
# :mx#0:\
# :of=/usr/spool/lp1/hpjlp:
# :lf=/usr/spool/lp1/hp-log:
#
#lp|Generic dot-matrix printer entry:\
# :lp=/dev/lp1:\
# :sd=/var/spool/lp1/lp:sh:\
# :if=/usr/bin/lpf:\
#
:df=/var/spool/lp1/filter.ps:\
#
:tf=/var/spool/lp1/filter.ps:\
#
:af=/var/spool/lp1/lp-acct:\
# :lf=/var/spool/lp1/lp-err:
# APS1_BEGIN:printer1
# - don't delete start label for apsfilter printer1
# - no other printer defines between BEGIN and END
LABEL
aps1|ijs/DESKJET_670;r=600x600;q=high;c=full;p=a4;m=auto:\
:lp=/dev/lp0:\
:if=/etc/apsfilter/basedir/bin/apsfilter:\
:sd=/var/spool/lpd/aps1:\
:lf=/var/spool/lpd/aps1/log:\
:af=/var/spool/lpd/aps1/acct:\
:mx#0:\
:sh:
# APS1_END - don't delete this
# APS2_BEGIN:printer2
# - don't delete start label for apsfilter printer2
# - no other printer defines between BEGIN and END
LABEL
#lp0|cdj670;r=600x600;q=high;c=full;p=a4;m=auto:\
# :lp=/dev/lp0:\
#
:if=/etc/apsfilter/basedir/bin/apsfilter:\
# :sd=/var/spool/lpd/lp:\
# :lf=/var/spool/lpd/lp/log:\
# :af=/var/spool/lpd/lp/acct:\
# :mx#0:\
# :sh:
# APS2_END - don't delete this
# APS3_BEGIN:printer3
# - don't delete start label for apsfilter printer3
# - no other printer defines between BEGIN and END
LABEL
#aps2|cdj670;r=600x600;q=high;c=full;p=a4;m=auto:\
# :lp=/dev/lp0:\
#
:if=/etc/apsfilter/basedir/bin/apsfilter:\
# :sd=/var/spool/lpd/aps2:\
# :lf=/var/spool/lpd/aps2/log:\
# :af=/var/spool/lpd/aps2/acct:\
## :mx#0:\
# :sh:
# APS3_END - don't delete this
Качете си и html2ps. Към нето има sample
конфигурация, която
можете да използвате за модел на вашия ~/.html2psrc.
Синтаксът е html2ps -f /path/to/*rcfile -o test.ps
./htmlfile.
Макар да върши работа само за латиница, е чудесен
инструмент.
Кирилишки HTML се печати през Open Office с опцията от
Print менюто
Print to File. След което lpr -Pprinter -C:high
filename.
Кирилица в Lyx.
Моят ~/.lyx/prefercences:
### This file is part of
###
========================================================
### LyX, The Document
Processor
###
### Copyright 1995
Matthias Ettrich
### Copyright 1995-2001
The LyX Team.
###
###
========================================================
# This file is written by LyX, if you want to make your
own
# modifications you should do them from inside LyX and
save
#
# MISC SECTION ######################################
#
# The default papersize to use.
\default_papersize "a4"
\kbmap true
\kbmap_primary
"/usr/local/share/lyx/kbd/american.kmap"
\kbmap_secondary
"/usr/local/share/lyx/kbd/bg-bds-1251.kmap"
#
# SCREEN & FONTS SECTION ############################
#
\screen_zoom 164
\screen_font_roman "Times"
\screen_font_roman_foundry "Rfx"
\screen_font_sans "Arial"
\screen_font_typewriter "Georgia"
\screen_font_sizes 5.00 7.00 8.00 9.00 18.00 20.00 22.00
24.00 26.00 28.00
#
# COLOR SECTION ###################################
#
\set_color "cursor" "#000000"
\set_color "background" "#faf0e6"
\set_color "foreground" "#000000"
\set_color "selection" "#add8e6"
\set_color "latex" "#8b0000"
\set_color "preview" "#000000"
\set_color "note" "#ffff00"
\set_color "notebg" "#ffff00"
\set_color "depthbar" "#cd5c5c"
\set_color "language" "#0000ff"
\set_color "command" "#000000"
\set_color "commandbg" "#f0ffff"
\set_color "commandframe" "#000000"
\set_color "special" "#4169e1"
\set_color "graphicsbg" "#faf0e6"
\set_color "math" "#00008b"
\set_color "mathbg" "#faf0e6"
\set_color "mathmacrobg" "#faf0e6"
\set_color "mathframe" "#ff00ff"
\set_color "mathcursor" "#000000"
\set_color "mathline" "#0000ff"
\set_color "captionframe" "#8b0000"
\set_color "collapsable" "#8b0000"
\set_color "collapsableframe"
"#cd5c5c"
\set_color "insetbg" "#cccccc"
\set_color "insetframe" "#cd5c5c"
\set_color "error" "#ff0000"
\set_color "eolmarker" "#a52a2a"
\set_color "added_space" "#a52a2a"
\set_color "appendixline" "#a52a2a"
\set_color "topline" "#a52a2a"
\set_color "tabularline" "#000000"
\set_color "tabularonoffline"
"#b0c4de"
\set_color "bottomarea" "#666666"
\set_color "pagebreak" "#4169e1"
\set_color "top" "#e5e5e5"
\set_color "bottom" "#999999"
\set_color "left" "#e5e5e5"
\set_color "right" "#999999"
\set_color "buttonbg" "#cccccc"
#
# PRINTER SECTION ###################################
#
#
# EXPORT SECTION ####################################
#
#
# TEX SECTION #######################################
#
\font_encoding "T2B"
#
# FILE SECTION ######################################
#
#
# ASCII EXPORT SECTION ##############################
#
#
# SPELLCHECKER SECTION ##############################
#
\spell_command "aspell"
#
# LANGUAGE SUPPORT SECTION ##########################
#
#
# 2nd MISC SUPPORT SECTION ##########################
#
\default_language bulgarian
#
# FORMATS SECTION ##########################
#
#
# CONVERTERS SECTION ##########################
#
Прави прости PDF-и, PS и т.н. За висш пилотаж в
TeX, ще трябва да
отделите повече време и да пишете с vi/emacs. Справки:
zadnik.org и
tetex.org, ако не се лъжа.
Поздрави,
Димитър Василев
<< Как да подкараме DRI с i845' Intel Extreme Graphics | Повече сигурност с pam_limits >>
|
 |