.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
. if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "REM2PDF 1p"
.TH REM2PDF 1p "2022-04-10" "perl v5.32.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
rem2pdf \- draw a PDF calendar from Remind output
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\& remind \-pp [options] file | rem2pdf [options] > output.pdf
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBrem2pdf\fR reads the standard input, which should be the results of
running \fBremind\fR with the \fB\-p\fR, \fB\-pp\fR or \fB\-ppp\fR options. It emits
\&\s-1PDF\s0 code that draws a calendar to standard output.
.PP
\&\fBrem2pdf\fR uses the Pango text formatting library ()
and the Cairo graphics library () to produce
its output. The \s-1CPAN\s0 modules Pango ()
and Cairo () are prerequisites.
.PP
\&\fBrem2pdf\fR assumes that its input stream is valid \s-1UTF\-8.\s0 If this is not
the case, it may render output incorrectly or even fail to render
output at all.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\-\-landscape, \-l" 4
.IX Item "--landscape, -l"
Print the calendar in landscape orientation. Essentially, this swaps
the width and height of the output media.
.IP "\-\-small\-calendars=\fIn\fR, \-c\fIn\fR" 4
.IX Item "--small-calendars=n, -cn"
Control the inclusion of small calendars for the previous and next
month. Possible values for \fIn\fR are:
.RS 4
.IP "0" 4
Do not draw any small calendares
.IP "1" 4
.IX Item "1"
Place the small calendars at the bottom-right if there is room;
otherwise, place them at the top-left.
.IP "2" 4
.IX Item "2"
Place the small calendars at the top-left if there is room; otherwise,
place them at the bottom-right.
.IP "3" 4
.IX Item "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
\&\fIn\fR=1. A moment's thought reveals that an option which splits the
calendars if there is room and otherwise follows \fIn\fR=2 yields the
same results.
.RE
.RS 4
.RE
.IP "\-\-left\-numbers, \-x" 4
.IX Item "--left-numbers, -x"
Draw the day numbers in the top-left corner of each day's box rather than
the default top-right.
.IP "\-\-fill\-page, \-e" 4
.IX Item "--fill-page, -e"
Make the calendar fill the available space on the page.
.IP "\-\-media=\fImedia\fR, \-m\fImedia\fR" 4
.IX Item "--media=media, -mmedia"
Specify the paper size (Letter, A4, etc.) For a list of valid media sizes,
run:
.Sp
.Vb 1
\& rem2pdf \-\-media=help
.Ve
.Sp
The default media size will be marked with an asterisk.
.IP "\-\-width=\fIn\fR, \-w\fIn\fR, \-\-height=\fIm\fR, \-h\fIm\fR" 4
.IX Item "--width=n, -wn, --height=m, -hm"
Rather than specifying a named media size, directly specify the width
and height of the output in 1/72ths of an inch. You must specify both
width and height for the options to be respected.
.IP "\-\-title\-font=\fIfont\fR" 4
.IX Item "--title-font=font"
Specify the font used for the calendar title. It can be any font that
the Pango library on your system can use. The default is Sans. If
you choose a font with spaces in its name, you may need to quote this
argument.
.IP "\-\-header\-font=\fIfont\fR" 4
.IX Item "--header-font=font"
Specify the font used for the weekday names. The default is Sans.
.IP "\-\-daynum\-font=\fIfont\fR" 4
.IX Item "--daynum-font=font"
Specify the font used for the day numbers. The default is
Sans Bold Oblique.
.IP "\-\-entry\-font=\fIfont\fR" 4
.IX Item "--entry-font=font"
Specify the font used for calendar entries. The default is Sans.
.IP "\-\-small\-cal\-font=\fIfont\fR" 4
.IX Item "--small-cal-font=font"
Specify the font used for the small next\- and previous-month
calendars. The default is Sans.
.IP "\-\-title\-size=\fIn\fR" 4
.IX Item "--title-size=n"
Specify the size of the title font in 1/72ths of an inch. The default
is 14. This size, and indeed all following sizes, may be specified as
floating-point numbers.
.IP "\-\-header\-size=\fIn\fR" 4
.IX Item "--header-size=n"
Specify the size of the header font in 1/72ths of an inch. The default is 14.
.IP "\-\-daynum\-size=\fIn\fR" 4
.IX Item "--daynum-size=n"
Specify the size of the day number font in 1/72ths of an inch. The
default is 14.
.IP "\-\-entry\-size=\fIn\fR" 4
.IX Item "--entry-size=n"
Specify the size of the calendar entry font in 1/72ths of an inch.
The default is 8.
.IP "\-\-border\-size=\fIn\fR" 4
.IX Item "--border-size=n"
Specify the size of the blank border between the contents of a calendar
box and the centre of the lines surrounding it, in 1/72ths of an inch.
The default is 4.
.IP "\-\-line\-thickness=\fIn\fR" 4
.IX Item "--line-thickness=n"
Specify the thickness of the lines drawn on the calendar. The default is 1.
.IP "\-\-margin\-top=\fIn\fR" 4
.IX Item "--margin-top=n"
The size of the margin at the top of the page in 1/72ths of an inch.
The default is 36.
.IP "\-\-margin\-bottom=\fIn\fR" 4
.IX Item "--margin-bottom=n"
The size of the margin at the bottom of the page in 1/72ths of an inch.
The default is 36.
.IP "\-\-margin\-left=\fIn\fR" 4
.IX Item "--margin-left=n"
The size of the margin at the left of the page in 1/72ths of an inch.
The default is 36.
.IP "\-\-margin\-right=\fIn\fR" 4
.IX Item "--margin-right=n"
The size of the margin at the right of the page in 1/72ths of an inch.
The default is 36.
.IP "\-\-verbose, \-v" 4
.IX Item "--verbose, -v"
Print (on \s-1STDERR\s0) the name of the month and year for each month that
is rendered.
.SH "USAGE"
.IX Header "USAGE"
To use \fBrem2df\fR, pipe the output of \fBremind\fR with one of the
\&\fB\-p\fR, \fB\-pp\fR or \fB\-ppp\fR options into \fBrem2pdf\fR. The \s-1PDF\s0 output
will be sent to standard output. So for example, to print a 12\-month
calendar for the year 2030, use:
.PP
.Vb 1
\& remind \-pp12 /dev/null Jan 2030 | rem2pdf \-e \-l \-c=3 | lpr
.Ve
.PP
You can concatenate multiple \fBremind\fR runs. For example, the following
will produce a \s-1PDF\s0 calendar for January through March of 2023, and
June of 2023 (for a total of four pages);
.PP
.Vb 2
\& (remind \-pp3 Jan 2023 /dev/null ; \e
\& remind \-p June 2023 /dev/null) | rem2pdf \-e \-l \-c=3 > cal.pdf
.Ve
.SH "FORMATTED TEXT"
.IX Header "FORMATTED TEXT"
\&\fBrem2pdf\fR supports a \fB\s-1SPECIAL\s0\fR reminder type called \fB\s-1PANGO\s0\fR. This
lets you format text using the Pango markup language, described at
. Here are some
examples:
.PP
.Vb 3
\& REM Mon SPECIAL PANGO Bold and italic
\& REM Tue SPECIAL PANGO Fancy
\& REM Wed SPECIAL PANGO Bold red
.Ve
.PP
Other back-ends such as \fBrem2ps\fR and \fBrem2html\fR will ignore \s-1PANGO\s0
special reminders.
.PP
Neither \fBremind\fR nor \fBrem2pdf\fR will check the markup to ensure
it is syntactically correct. If you use invalid Pango markup, the
Pango library will print a warning and \fBrem2pdf\fR will not render any
output for the invalid reminder.
.SH "ABSOLUTELY-POSITIONED TEXT"
.IX Header "ABSOLUTELY-POSITIONED TEXT"
If your \fB\s-1PANGO\s0\fR special reminder starts with \f(CW\*(C`@\f(CIx\f(CW,\f(CIy\f(CW\*(C'\fR where \fIx\fR
and \fIy\fR are floating-point numbers, then the Pango marked-up test is
positioned absolutely with respect to the day's box (and is not
counted when calculating the box's height.)
.PP
A positive \fIx\fR value positions the left edge of the text \fIx\fR points
to the right of the left side of the calendar box, while a negative
\&\fIx\fR value positions the right edge of the text \fIx\fR points to the left
of the right side of the calendar box.
.PP
A positive \fIy\fR value positions the top edge of the text \fIy\fR points
below the top of the calendar box, while a negative \fIy\fR value
positions the bottom edge of the text \fIy\fR points above the bottom of
the calendar box.
.PP
If you use absolutely-positioned text, it's up to you to make sure it
doesn't overlap other text; \fBrem2pdf\fR takes no special precautions to
prevent this.
.PP
As an example, this places Sunrise and Sunset times at the bottom left
of each calendar box:
.PP
.Vb 1
\& REM SPECIAL PANGO @1,\-1 Rise [sunrise($U)] Set [sunset($U)]
.Ve
.PP
(Note that Pango expresses font sizes in 1024's of a point, so a size of
4800 works out to about 4.6 points.)
.SH "AUTHOR"
.IX Header "AUTHOR"
\&\fBRem2PDF\fR was written by Dianne Skoll
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fBremind\fR, \fBrem2ps\fR, \fBrem2html\fR, \fBtkremind\fR