rem2ps man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

REM2PS(1)							     REM2PS(1)

NAME
       rem2ps - draw a PostScript calendar from Remind output

SYNOPSIS
       rem2ps [options]

DESCRIPTION
       Rem2ps reads the standard input, which should be the results of running
       Remind with the -p option.  It emits PostScript	code  (which  draws  a
       calendar) to the standard output.

       See  the	 section  "Rem2PS Input Format" for details about the -p data.
       This may be useful if you wish to create other Remind back-ends.

OPTIONS
       -v     Be more verbose.	This causes Rem2ps to print progress  messages
	      to the standard error stream.  Normally, it is silent.

       -p file
	      Include  the  contents of file in the PostScript prologue.  This
	      allows you to define procedures, variables  etc.	which  can  be
	      used by the PS and PSFILE reminders.  You should not include any
	      document structuring comments in your prologue.

       -l     Produce the calendar in landscape mode rather than  the  default
	      portrait mode.

       -c[n]  If  n is omitted, disables the small calendars for next and pre‐
	      vious months which are normally generated.  If n is supplied, it
	      can range from 0 to 3, with the following meanings:

	      0	     Disable small calendars

	      1	     Place the small calendars at the bottom-right if there is
		     room; otherwise, place them at the top-left.

	      2	     Place the small calendars at the  top-left	 if  there  is
		     room; otherwise, place them at the bottom-right.

	      3	     Place the previous month's small calendar at the top-left
		     and the next month's at  the  bottom-right	 if  there  is
		     room;  otherwise, follow n=1.  A moment's thought reveals
		     that an option which splits the  calendars	 if  there  is
		     room and otherwise follows n=2 yields the same results as
		     n=3.

       -i     Use ISO 8859-1 standard encoding for the PostScript  fonts.   If
	      you do not use this option, the default encoding is used.

       -e     Make  the calendar fill the entire page.	By default, the calen‐
	      dar is slightly smaller than the page.  This  allows  days  with
	      many  reminders  to  "expand"  as needed.	 However, if you don't
	      have days which expand, you can use this option to make  all  of
	      the  boxes  slightly  bigger.   One caveat: If you do use the -e
	      option and one day has many reminders, the calendar  may	expand
	      off the page, losing some information.  Experiment!

       -m media
	      Set  the	page size.  If you use the -m option, you must specify
	      the media type, which can be one of the following.   (Sizes  are
	      approximate.)

	      Letter 8.5 x 11 in.

	      Legal  8.5 x 14 in.

	      Ledger 11 x 17 in.

	      Statement
		     5.5 x 8.5 in.

	      Executive
		     7.5 x 10 in.

	      A3     29.7 x 42 cm.

	      A4     21 x 29.7 cm.

	      A5     14.8 x 21 cm.

	      B4     25.7 x 36.4 cm.

	      B5     18.3 x 25.7 cm.

	      Folio  8.5 x 13 in.

	      Quarto 8.5 x 10.8 in.

	      10x14  10 x 14 in.

	      XxYin  X	by  Y inches, where X and Y can be floating-point num‐
		     bers.

	      XxYcm  X by Y centimetres, where X and Y can  be	floating-point
		     numbers.

	      Type  "rem2ps -m help" for a list of available media.  Note that
	      the media type (and all Rem2ps options) are case-sensitive.   If
	      you don't use the -m option, the media defaults to a compiled-in
	      default - this is usually Letter for North America  and  A4  for
	      Europe.	The  "-m  help"	 option	 will  display the compiled-in
	      default.

       -f[tshed] font
	      Set the font for the calendar title, the	small  calendars,  the
	      day-of-week headings, the calendar entries, and the day numbers,
	      respectively.  Font must be the name of a valid PostScript font.
	      The default fonts are equivalent to specifying:

		   -ftshe Helvetica -fd Helvetica-BoldOblique

	      In  other words, the heading, entry and small-calendar fonts are
	      set to Helvetica, and the font for the day  numbers  is  set  to
	      Helvetica-BoldOblique.

       -s[thed] size
	      Set the size (in points) of the text for the the calendar title,
	      day-of-week headings, the calendar entries, and the day numbers,
	      respectively.  Size must be a decimal number.  The default sizes
	      are equivalent to specifying:

		   -sthd 14 -se 8

	      In other words, the heading and day numbers are 14-point	fonts,
	      and the calendar entries are printed in 8-point text.

       -b size
	      Set  the	size of the blank white border in each calendar box to
	      size points.  The default border size is 6 points, or 1/12 in.

       -t size
	      Set the thickness of the black calendar grid lines.  The default
	      is 1, for a line thickness of one point (1/72 in.)

       -o[lrtb] size
	      Set  the left, right, top, and/or bottom margins to size points.
	      For this option only, size must be an  integer.	It  represents
	      the  margin  size in units of 1/72 in.  The default margin sizes
	      are 36, for half-inch margins.  If you wish to  punch  holes  in
	      the  calendar  page  to insert it into a binder, you may wish to
	      increase the left margin to one inch.  In that case, you	should
	      also  decrease  the heading font size to 12 points for good out‐
	      put:

	    # This gives good results for putting into a binder
	    rem2ps -ol 72 -sh 12

USAGE
       To use Rem2ps, you should pipe the output of Remind with the -p	option
       to  Rem2ps, and then send the result to a printer.  This is most easily
       illustrated with examples:

	    remind -p12 /dev/null 1 jan 1994 | rem2ps | lpr -Plaser

       That example creates a blank calendar for the entire year of 1994,  and
       sends it the the printer named "laser."

	    remind -p ~/.reminders | rem2ps -l -sd 18 > cal.ps

       This  reminder  creates	a  calendar  for the current month, filling in
       entries from the reminder file "~/.reminders."  The  calendar  is  pro‐
       duced  in  landscape  mode, with a font size of 18 for the day numbers.
       The result is put in the PostScript file "cal.ps."

VARIABLES AVAILABLE TO USER-SUPPLIED POSTSCRIPT CODE
       The following variables are available to PS and PSFILE-type  reminders.
       (This material is duplicated in the Remind manual page.)

       LineWidth
	      The width of the black grid lines making up the calendar.

       Border The  border  between  the center of the grid lines and the space
	      used to print calendar entries.  This border is  normally	 blank
	      space.

       BoxWidth and BoxHeight
	      The  width and height of the calendar box, from center-to-center
	      of the black gridlines.

       InBoxHeight
	      The height from the center of the bottom black gridline  to  the
	      top  of the regular calendar entry area.	The space from here to
	      the top of the box is used only to draw the day number.

       /DayFont, /TitleFont, /EntryFont, /SmallFont and /HeadFont
	      The fonts used to draw the  day  numbers,	 the  month  and  year
	      title,  the  calendar entries, the small calendars, and the day-
	      of-week headings, respectively.

       DaySize, TitleSize, EntrySize and HeadSize
	      The sizes of the above fonts.  (The size of the  small  calendar
	      font  is not defined here.)  For example, if you wanted to print
	      the Hebrew date next to the regular day number in the  calendar,
	      use:

	    REM PS Border BoxHeight Border sub DaySize sub moveto \
	       /DayFont findfont DaySize scalefont setfont \
	       ([hebday(today())] [hebmon(today())]) show

	      Note how /DayFont and DaySize are used.

       Note  that  if  you  supply  PostScript code, it is possible to produce
       invalid PostScript files.  Always test your PostScript thoroughly  with
       a  PostScript  viewer before sending it to the printer.	You should not
       use any document structuring comments in your PostScript code.

       In addition, prior to drawing a calendar page, Rem2ps emits the follow‐
       ing PostScript code:

	    save (mon) (yr) PreCal restore

       where  mon  and	yr  are	 the month and year of the calendar page.  The
       default PreCal procedure simply pops the arguments  and	does  nothing.
       However,	 you  can define a PreCal function in your prologue file to do
       whatever you want - it can draw a background for the  entire  calendar,
       for instance.

       In the context of the PreCal procedure, the following conditions hold:

       o      The  PostScript  origin is at the bottom left-hand corner of the
	      page, and PostScript units of 1/72" are in effect.

       o      The variables MinX, MinY, MaxX and MaxY define the bounding  box
	      within which the calendar will be drawn.

       o      The  font	 and  font-size	 variables,  as	 well  as  Border  and
	      LineWidth described previously, are valid.

       For an example, create a file called "myprolog" whose contents are:

		 /PreCal {
		  /yr exch def
		  /mon exch def
		  /xsiz1 MaxX MinX sub def
		  /ysiz1 MaxY MinY sub def
		  /xsiz xsiz1 MinX sub MinX sub def
		  /ysiz ysiz1 MinY sub MinY sub def
		  xsiz
		  ysiz
		  lt
		  {/len xsiz 1.41 mul def
		   MinX MinX add ysiz1 xsiz1 sub 2 div MinY add MinY add moveto}
		  {/len ysiz 1.41 mul def
		   xsiz1 ysiz1 sub 2 div MinX add MinX add MinY MinY add moveto}
		  ifelse
		  /Helvetica-Bold findfont 1 scalefont setfont
		  mon stringwidth pop
		  ( ) stringwidth pop add
		  yr stringwidth pop add
		  len exch div /len exch def
		  /Helvetica-Bold findfont len scalefont setfont
		  0.95 setgray
		  45 rotate
		  mon show
		  ( ) show
		  yr show
		 } bind def

       Use that file with the Rem2ps -p option to create  calendars  with  the
       year and month in large grey letters in the background of the calendar.

REM2PS INPUT FORMAT
       Remind  -p  sends the following lines to standard output.  The informa‐
       tion is designed to be easily parsed by back-end programs:

       # rem2ps begin
	      This line signifies the start of calendar data.	Back-ends  can
	      search for it to verify they are being fed correct information.

       month_name year num_days first_day monday_first
	      On this line, month_name is the name of the month whose calendar
	      information is about to follow.  num_days is the number of  days
	      in this month.  first_day is the weekday of the first day of the
	      month (0 = Sunday, 1 = Monday, 6 = Saturday.)  And  monday_first
	      is  1 if the -m flag was supplied to Remind, or 0 if it was not.
	      All this information is supplied so  back-ends  don't  need  any
	      date calculation facilities.

       sun mon tue wed thu fri sat
	      This  line consists of space-separated names of days in whatever
	      language Remind was compiled for.	 This information can be  used
	      by back-ends to annotate calendars, and means they don't have to
	      be created for a specific language.

       next_mon next_days
	      The name of the next month and the number of days in it.

       prev_mon prev_days
	      The name of the previous month and the number  of	 days  in  it.
	      The  next_mon and prev_mon lines could be used to generate small
	      inset calendars for the next and previous months.

       The remaining data consists of calendar entries, in the following  for‐
       mat:

       yyyy/mm/dd special tag dur time body

       Here,  yyyy  is	the year, mm is the month (01-12) and dd is the day of
       the month.  Note that the date components are always separated  by  "/"
       even  if the date separator in Remind has been set to "-".  The consis‐
       tent use of "/" is designed to ease parsing.

       special is a string used for  "out-of-band"  communication  with	 back-
       ends.   If  the	reminder  is  a	 normal reminder, special is "*".  The
       Rem2PS back-end understands the specials PostScript and PSFile.	 Other
       back-ends  may  understand  other specials.  A back end should silently
       ignore a reminder with a special it doesn't understand.

       tag is whatever tag the user provided with the TAG clause, or "*" if no
       tag  was	 provided.   If	 there	is  more than one TAG clause, the tags
       appear in a comma-separated list.  For example, the command REM TAG foo
       TAG bar TAG quux would result in foo,bar,quux in the tag field.

       dur  is	the  DURATION value in minutes, or "*" if no duration was pro‐
       vided.

       time is the time of the reminder in minutes past midnight,  or  "*"  if
       the reminder was not a timed reminder.

       body is the body of the reminder.

       After  a month's worth of reminders have been emitted, Remind emits the
       line:

       # rem2ps end

       However, back-ends should keep reading until EOF in case more data  for
       subsequent months is forthcoming.

       If  you	supply the -l option to remind, then reminders may be preceded
       by a line that looks like this:

       # fileinfo lineno filename

       The word fileinfo is literal; lineno and filename specify the line num‐
       ber  and file name of the file containing the reminder.	Back-ends that
       don't care about this information should ignore lines starting with "#"
       (except, of course, for the # rem2ps lines.)

AUTHOR
       Rem2PS	is   now   supported   by   Roaring   Penguin	Software  Inc.
       (http://www.roaringpenguin.com)

       Rem2PS was written by Dianne Skoll <dfs@roaringpenguin.com>.

BUGS
       All Rem2ps options are case-sensitive, unlike  Remind.	Any  time  you
       supply  a  font	name  or  size, line thickness, or border width, it is
       treated as a string and sent straight to	 the  PostScript  interpreter.
       Thus,  if  you supply invalid fonts or sizes, Rem2ps will not complain,
       but the resulting PostScript output will probably not work.

       You should ensure that the values you supply for margin widths are sen‐
       sible.	If  they  are too big for the media size, Rem2ps will not com‐
       plain, but again, the PostScript output will probably not work.

SEE ALSO
       remind

4th Berkeley Distribution	 11 April 2005			     REM2PS(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net