This is rem2ps.h in view mode; [Download] [Up]
/***************************************************************/
/* */
/* REM2PS.H */
/* */
/* Define the PostScript prologue */
/* */
/* This file is part of REMIND. */
/* Copyright (C) 1992, 1993, 1994 by David F. Skoll */
/* */
/***************************************************************/
char *PSProlog1[] =
{
"% This file was produced by Remind and Rem2PS, written by",
"% David F. Skoll.",
"/ISOLatin1Encoding where { pop save true }{ false } ifelse",
" /ISOLatin1Encoding [ StandardEncoding 0 45 getinterval aload pop /minus",
" StandardEncoding 46 98 getinterval aload pop /dotlessi /grave /acute",
" /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring",
" /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent",
" /sterling /currency /yen /brokenbar /section /dieresis /copyright",
" /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron",
" /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph",
" /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright",
" /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute",
" /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute",
" /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth",
" /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply",
" /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn",
" /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae",
" /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute",
" /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex",
" /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex",
" /udieresis /yacute /thorn /ydieresis ] def",
"{ restore } if",
"",
"/reencodeISO { %def",
" findfont dup length dict begin",
" { 1 index /FID ne { def }{ pop pop } ifelse } forall",
" /Encoding ISOLatin1Encoding def",
" currentdict end definefont pop",
"} bind def",
"/copyFont { %def",
" findfont dup length dict begin",
" { 1 index /FID ne { def } { pop pop } ifelse } forall",
" currentdict end definefont pop",
"} bind def",
"",
"% L - Draw a line",
"/L {",
" newpath moveto lineto stroke",
"} bind def",
"% string1 string2 strcat string",
"% Function: Concatenates two strings together.",
"/strcat {",
" 2 copy length exch length add",
" string dup",
" 4 2 roll",
" 2 index 0 3 index",
" putinterval",
" exch length exch putinterval",
"} bind def",
"% string doheading",
"/doheading",
"{",
" /monthyr exch def",
"",
" /TitleFont findfont",
" TitleSize scalefont setfont",
" monthyr stringwidth",
" /hgt exch def",
" 2 div MaxX MinX add 2 div exch sub /x exch def",
" MaxY Border sub TitleSize sub /y exch def",
" newpath x y moveto monthyr show",
" newpath x y moveto monthyr false charpath flattenpath pathbbox",
" pop pop Border sub /y exch def pop",
" MinX y MaxX y L",
" /topy y def",
" /HeadFont findfont HeadSize scalefont setfont",
"% Do the days of the week",
" MaxX MinX sub 7 div /xincr exch def",
" /x MinX def",
NULL
};
char *PSProlog2[] =
{
" {",
" HeadSize x y HeadSize 2 mul sub x xincr add y CenterText",
" x xincr add /x exch def",
" } forall",
" y HeadSize 2 mul sub /y exch def",
" MinX y MaxX y L",
" /ytop y def /ymin y def",
"}",
"def",
"/CenterText",
"{",
" /maxy exch def",
" /maxx exch def",
" /miny exch def",
" /minx exch def",
" /sz exch def",
" /str exch def",
" str stringwidth pop",
" 2 div maxx minx add 2 div exch sub",
" sz 2 div maxy miny add 2 div exch sub",
" moveto str show",
"} def",
"% Variables:",
"% curline - a string holding the current line",
"% y - current y pos",
"% yincr - increment to next line",
"% xleft - left margin",
"% width - max width.",
"% EnterOneWord - given a word, enter it into the box.",
"% string EnterOneWord",
"/EnterOneWord {",
" { EnterOneWordAux",
" {exit} if }",
" loop",
"} bind def",
"% EnterOneWordAux - if the word fits, enter it into box and return true.",
"% If it doesn't fit, put as much as will fit and return the string and false.",
"/EnterOneWordAux {",
" /word exch def",
" /tmpline curline word strcat def",
" tmpline stringwidth pop width gt",
" {MoveToNewLine}",
" {/curline tmpline ( ) strcat def /word () def}",
" ifelse",
" word () eq",
" {true}",
" {word false}",
" ifelse",
"} bind def",
"% MoveToNewLine - move to a new line, resetting word as appropriate",
"/MoveToNewLine {",
" curline () ne",
" {newpath xleft y moveto curline show /curline () def /y y yincr add def} ",
" {ChopWord}",
" ifelse",
"} bind def",
"% ChopWord - word won't fit. Chop it and find biggest piece that will fit",
"/ChopWord {",
" /curline () def",
" /len word length def",
" /Fcount len 1 sub def",
"",
" {",
" word 0 Fcount getinterval stringwidth pop width le",
" {exit} if",
" /Fcount Fcount 1 sub def",
" } loop",
"% Got the count. Display it and reset word",
" newpath xleft y moveto word 0 Fcount getinterval show",
" /y y yincr add def",
" /word word Fcount len Fcount sub getinterval def",
"} bind def",
"/FinishFormatting {",
" word () ne",
" {newpath xleft y moveto word show /word () def",
" /curline () def /y y yincr add def}",
" {curline () ne",
" {newpath xleft y moveto curline show /word () def",
" /curline () def /y y yincr add def} if}",
" ifelse",
"} bind def",
"% FillBoxWithText - fill a box with text",
"% text-array xleft width yincr y FillBoxWithText new-y",
"% Returns the new Y-coordinate.",
"/FillBoxWithText {",
" /y exch def",
" /yincr exch def",
" /width exch def",
" /xleft exch def",
" /curline () def",
" {EnterOneWord} forall",
" FinishFormatting",
" y",
"} bind def",
"% Variables for calendar boxes:",
"% ytop - current top position",
"% ymin - minimum y reached for current row",
"% border ytop xleft width textarray daynum DoCalBox ybot",
"% Do the entries for one calendar box. Returns lowest Y-coordinate reached",
"/DoCalBox {",
" /daynum exch def",
" /textarr exch def",
" /wid exch def",
" /xl exch def",
" /yt exch def",
" /border exch def",
"% Do the day number",
" /DayFont findfont DaySize scalefont setfont",
" xl wid add border sub daynum stringwidth pop sub",
" yt border sub DaySize sub moveto daynum show",
"% Do the text entries. Precharge the stack with current y pos.",
" /ycur yt border sub DaySize sub DaySize sub 2 add def",
" /EntryFont findfont EntrySize scalefont setfont",
" ycur",
" textarr",
" { exch 2 sub /ycur exch def xl border add wid border sub border sub EntrySize 2 add neg",
" ycur FillBoxWithText }",
" forall",
"} bind def",
"2 setlinecap",
"% Define a default PreCal procedure",
"/PreCal { pop pop } bind def",
NULL
};
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.