.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" 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 "Games::Go::Sgf2Dg::Dg2Ps 3pm" .TH Games::Go::Sgf2Dg::Dg2Ps 3pm "2019-10-27" "perl v5.30.0" "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" Games::Go::Sgf2Dg::Dg2Ps \- convert Games::Go::Sgf2Dg::Diagrams to PostScript .SH "SYNOPSIS" .IX Header "SYNOPSIS" use Games::Go::Sgf2Dg::Dg2Ps .PP .Vb 2 \& my $dg2ps = Bnew> (options); \& $dg2ps\->convertDiagram($diagram); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBGames::Go::Sgf2Dg::Dg2Ps\fR converts a Games::Go::Sgf2Dg::Diagram into PostScript. .SH "NEW" .IX Header "NEW" .ie n .IP "my $dg2ps = \fBGames::Go::Sgf2Dg::Dg2Ps\->new\fR (?options?)" 4 .el .IP "my \f(CW$dg2ps\fR = \fBGames::Go::Sgf2Dg::Dg2Ps\->new\fR (?options?)" 4 .IX Item "my $dg2ps = Games::Go::Sgf2Dg::Dg2Ps->new (?options?)" .PP A \fBnew\fR Games::Go::Sgf2Dg::Dg2Ps takes the following options: .IP "\fBboardSizeX\fR => number" 8 .IX Item "boardSizeX => number" .PD 0 .IP "\fBboardSizeY\fR => number" 8 .IX Item "boardSizeY => number" .PD Sets the size of the board. .Sp Default: 19 .IP "\fBdoubleDigits\fR => true | false" 8 .IX Item "doubleDigits => true | false" Numbers on stones are wrapped back to 1 after they reach 100. Numbers associated with comments and diagram titles are not affected. .Sp Default: false .IP "\fBcoords\fR => true | false" 8 .IX Item "coords => true | false" Generates a coordinate grid. .Sp Default: false .IP "\fBtopLine\fR => number (Default: 1)" 8 .IX Item "topLine => number (Default: 1)" .PD 0 .IP "\fBbottomLine\fR => number (Default: 19)" 8 .IX Item "bottomLine => number (Default: 19)" .IP "\fBleftLine\fR => number (Default: 1)" 8 .IX Item "leftLine => number (Default: 1)" .IP "\fBrightLine\fR => number (Default: 19)" 8 .IX Item "rightLine => number (Default: 19)" .PD The edges of the board that should be displayed. Any portion of the board that extends beyond these numbers is not included in the output. .ie n .IP "\fBdiaCoords\fR => sub { # convert $x, $y to Diagram coordinates }" 8 .el .IP "\fBdiaCoords\fR => sub { # convert \f(CW$x\fR, \f(CW$y\fR to Diagram coordinates }" 8 .IX Item "diaCoords => sub { # convert $x, $y to Diagram coordinates }" This callback defines a subroutine to convert coordinates from \f(CW$x\fR, \&\f(CW$y\fR to whatever coordinates are used in the Games::Go::Sgf2Dg::Diagram object. The default \fBdiaCoords\fR converts 1\-based \f(CW$x\fR, \f(CW$y\fR to the same coordinates used in \s-1SGF\s0 format files. You only need to define this if you're using a different coordinate system in the Diagram. .Sp Default: sub { my ($x, \f(CW$y\fR) = \f(CW@_\fR; \f(CW$x\fR = chr($x \- 1 + ord('a')); # convert 1 to 'a', etc \f(CW$y\fR = chr($y \- 1 + ord('a')); return(\*(L"$x$y\*(R"); }, # concatenate two letters .Sp See also the \fBdiaCoords\fR method below. .ie n .IP "\fBprint\fR => sub { my ($dg2tex, @tex) = @_; ... }" 8 .el .IP "\fBprint\fR => sub { my ($dg2tex, \f(CW@tex\fR) = \f(CW@_\fR; ... }" 8 .IX Item "print => sub { my ($dg2tex, @tex) = @_; ... }" A user defined subroutine to replace the default printing method. This callback is called from the \fBprint\fR method (below) with the reference to the \fBDg2TeX\fR object and a list of lines that are part of the TeX diagram source. .PP Dg2Ps\-specific options: .IP "\fBpageSize\fR => 'page size'" 8 .IX Item "pageSize => 'page size'" May be one of: .RS 8 .IP ". 'A0' \- 'A9'" 12 .IX Item ". 'A0' - 'A9'" .PD 0 .IP ". 'B0' \- 'B10'" 12 .IX Item ". 'B0' - 'B10'" .IP ". 'Executive'" 12 .IX Item ". 'Executive'" .IP ". 'Folio'" 12 .IX Item ". 'Folio'" .IP ". 'Half\-Letter'" 12 .IX Item ". 'Half-Letter'" .IP ". 'Letter'" 12 .IX Item ". 'Letter'" .IP ". 'US\-Letter'" 12 .IX Item ". 'US-Letter'" .IP ". 'Legal'" 12 .IX Item ". 'Legal'" .IP ". 'US\-Legal'" 12 .IX Item ". 'US-Legal'" .IP ". 'Tabloid'" 12 .IX Item ". 'Tabloid'" .IP ". 'SuperB'" 12 .IX Item ". 'SuperB'" .IP ". 'Ledger'" 12 .IX Item ". 'Ledger'" .IP ". 'Comm #10 Envelope'" 12 .IX Item ". 'Comm #10 Envelope'" .IP ". 'Envelope\-Monarch'" 12 .IX Item ". 'Envelope-Monarch'" .IP ". 'Envelope\-DL'" 12 .IX Item ". 'Envelope-DL'" .IP ". 'Envelope\-C5'" 12 .IX Item ". 'Envelope-C5'" .IP ". 'EuroPostcard'" 12 .IX Item ". 'EuroPostcard'" .RE .RS 8 .PD .Sp Default: 'Letter' .RE .IP "\fBtopMargin\fR => points" 8 .IX Item "topMargin => points" .PD 0 .IP "\fBbottomMargin\fR => points" 8 .IX Item "bottomMargin => points" .IP "\fBleftMargin\fR => points" 8 .IX Item "leftMargin => points" .IP "\fBrightMargin\fR => points" 8 .IX Item "rightMargin => points" .PD Margins are set in PostScript 'user space units' which are approximately equivilent to points (1/72 of an inch). .Sp Default for all margins: 72 * .70 (7/10s of an inch) .IP "\fBtext_fontName\fR => 'font' Default: 'Times\-Roman'," 8 .IX Item "text_fontName => 'font' Default: 'Times-Roman'," .PD 0 .IP "\fBstone_fontName\fR => 'font' Default: 'Courier\-Bold'" 8 .IX Item "stone_fontName => 'font' Default: 'Courier-Bold'" .PD Text and stone fonts names may be one of these (case sensitive): .RS 8 .IP "Courier" 4 .IX Item "Courier" .PD 0 .IP "Courier-Bold" 4 .IX Item "Courier-Bold" .IP "Courier-BoldOblique" 4 .IX Item "Courier-BoldOblique" .IP "Courier-Oblique" 4 .IX Item "Courier-Oblique" .IP "Helvetica" 4 .IX Item "Helvetica" .IP "Helvetica-Bold" 4 .IX Item "Helvetica-Bold" .IP "Helvetica-BoldOblique" 4 .IX Item "Helvetica-BoldOblique" .IP "Helvetica-Oblique" 4 .IX Item "Helvetica-Oblique" .IP "Times-Roman" 4 .IX Item "Times-Roman" .IP "Times-Bold" 4 .IX Item "Times-Bold" .IP "Times-Italic" 4 .IX Item "Times-Italic" .IP "Times-BoldItalic" 4 .IX Item "Times-BoldItalic" .RE .RS 8 .RE .IP "\fBtext_fontSize\fR => points" 8 .IX Item "text_fontSize => points" .PD The point size for the comment text. Diagram titles use this size plus 4, and the game title uses this size plus 6. .Sp Default: 11 .IP "\fBstone_fontSize\fR => points" 8 .IX Item "stone_fontSize => points" The stone_fontSize determines the size of the stones and diagrams. Stone size is chosen to allow up to three digits on a stone . The default stone_fontSize allows for three diagrams (with \-coords) per \&'letter' page if comments don't take up extra space below diagrams. .Sp If \fBdoubleDigits\fR is specified, the stones and board are slightly smaller (stone 100 may look a bit cramped). .Sp Default: 5 .IP "\fBlineWidth\fR => points" 8 .IX Item "lineWidth => points" .PD 0 .IP "\fBlineHeight\fR => points" 8 .IX Item "lineHeight => points" .PD The \fBlineWidth\fR and \fBlineHeight\fR determine the size of the stones and diagrams. .Sp If \fBlineWidth\fR is not explicitly set, it is calculated from the \&\fBstone_fontSize\fR to allow up to three digits on a stone . The default \fBstone_fontSize\fR allows for three diagrams (with \-coords) per 'letter' page if comments don't take up extra space below diagrams. If \fBdoubleDigits\fR is specified, the stones and board are slightly smaller (stone 100 may look a bit cramped). .Sp If \fBlineHeight\fR is not explicitly set, it will be 1.05 * \&\fBlineWidth\fR, creating a slightly rectangular diagram. .Sp Default: undef \- determined from \fBstone_fontSize\fR .IP "\fBps_debug\fR =# number from 0 to 2" 8 .IX Item "ps_debug =# number from 0 to 2" When non-zero, code and subroutines are added to the PostScript output to help debug the PostScript file. This is very slightly documented in PostScript::File, but you'll probably need to read through the PostScript output to make any use of it. .Sp Default: 0 .SH "METHODS" .IX Header "METHODS" .ie n .IP "$dg2ps\->\fBconfigure\fR (option => value, ?...?)" 4 .el .IP "\f(CW$dg2ps\fR\->\fBconfigure\fR (option => value, ?...?)" 4 .IX Item "$dg2ps->configure (option => value, ?...?)" Change Dg2Ps options from values passed at \fBnew\fR time. .ie n .IP "my $coord = $dg2mp\->\fBdiaCoords\fR ($x, $y)" 4 .el .IP "my \f(CW$coord\fR = \f(CW$dg2mp\fR\->\fBdiaCoords\fR ($x, \f(CW$y\fR)" 4 .IX Item "my $coord = $dg2mp->diaCoords ($x, $y)" Provides access to the \fBdiaCoords\fR option (see above). Returns coordinates in the converter's coordinate system for board coordinates ($x, \&\f(CW$y\fR). For example, to get a specific intersection structure: .Sp .Vb 1 \& my $int = $diagram\->get($dg2mp\->diaCoords(3, 4)); .Ve .ie n .IP "$dg2ps\->\fBprint\fR ($text ? , ... ?)" 4 .el .IP "\f(CW$dg2ps\fR\->\fBprint\fR ($text ? , ... ?)" 4 .IX Item "$dg2ps->print ($text ? , ... ?)" \&\fBprint\fRs raw PostScript code to \fBfile\fR as defined at \fBnew\fR time. .ie n .IP "$dg2ps\->\fBprintComment\fR ($text ? , ... ?)" 4 .el .IP "\f(CW$dg2ps\fR\->\fBprintComment\fR ($text ? , ... ?)" 4 .IX Item "$dg2ps->printComment ($text ? , ... ?)" Adds \f(CW$text\fR to the diagram comments. .ie n .IP "$dg2ps\->\fBcomment\fR ($comment ? , ... ?)" 4 .el .IP "\f(CW$dg2ps\fR\->\fBcomment\fR ($comment ? , ... ?)" 4 .IX Item "$dg2ps->comment ($comment ? , ... ?)" Inserts the PostScript comment character ('%') in front of each line of each comment and \fBprint\fRs it to \fBfile\fR. .Sp Note that this is \fInot\fR the same as the \fBprintComment\fR method. .ie n .IP "my $canvas = $dg2ps\->\fBconvertDiagram\fR ($diagram)" 4 .el .IP "my \f(CW$canvas\fR = \f(CW$dg2ps\fR\->\fBconvertDiagram\fR ($diagram)" 4 .IX Item "my $canvas = $dg2ps->convertDiagram ($diagram)" Converts a Games::Go::Sgf2Dg::Diagram into PostScript. .ie n .IP "my $converted_text = $dg2ps\->\fBconvertText\fR ($text)" 4 .el .IP "my \f(CW$converted_text\fR = \f(CW$dg2ps\fR\->\fBconvertText\fR ($text)" 4 .IX Item "my $converted_text = $dg2ps->convertText ($text)" Converts \f(CW$text\fR into text for display (handles PostScript escape sequences). .Sp Returns the converted text. .ie n .IP "$dg2ps\->\fBclose\fR" 4 .el .IP "\f(CW$dg2ps\fR\->\fBclose\fR" 4 .IX Item "$dg2ps->close" \&\fBprint\fRs final PostScript code to the output file and closes the file. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "sgf2dg(1)" 4 .IX Item "sgf2dg(1)" Script to convert \s-1SGF\s0 format files to Go diagrams .SH "BUGS" .IX Header "BUGS" Bugs? In \fImy\fR code?