.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" 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" '' '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 turned on, 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. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Reference::Output::Bibtex 3pm" .TH Reference::Output::Bibtex 3pm "2013-09-10" "perl v5.14.2" "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" Reference::Output::Bibtex \-\- Output references in BibTeX format .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& print bibtex($reference); .Ve .PP Returns a reference formatted in bibtex format. .SH "DESCRIPTION" .IX Header "DESCRIPTION" Knows how to handle the reference\-> bibtex field mapping for many reference types, but overridden types may need to provide their own mapping. .SH "BUGS" .IX Header "BUGS" None known. .SS "bibtex" .IX Subsection "bibtex" .Vb 3 \& print bibtex $reference; \& %bibtex = bibtex $reference; \& print bibtex($reference,mapping=>{...}) .Ve .PP In scalar context, returns a formatted bibtex entry, suitable for printing. In list context, returns a hash of key, value pairs which can be used to print a formatted bibtex entry. .PP You can also pass an optional mapping to be used for making the bibtex entry. See \fBbibtex_mapping\fR for the details. .PP The mappings are obeyed in the following order, the first taking precedence over the last. .IP "Passed mapping" 4 .IX Item "Passed mapping" .PD 0 .IP "Object's bibtex_mapping" 4 .IX Item "Object's bibtex_mapping" .IP "Internal bibtex_mapping (%Reference::Output::Bibtex::bibtex_mapping)" 4 .IX Item "Internal bibtex_mapping (%Reference::Output::Bibtex::bibtex_mapping)" .PD .PP Returns a \s-1SCALAR\s0 bibtex reference in scalar context, a \s-1HASH\s0 bibtex reference in list context .SS "bibtex_mapping" .IX Subsection "bibtex_mapping" .Vb 11 \& $Reference::Output::Bibtex::bibtex_mapping{Article} = \& {mapping => {author => {field => \*(Aqauthor\*(Aq, \& join => \*(Aq and \*(Aq, \& params => [], \& }, \& volume => \*(Aqvolume\*(Aq, \& Articlce => \*(Aqname\*(Aq, \& foo => \*(Aqbar\*(Aq, \& }, \& order => [qw(name author volume foo)], \& }; .Ve .PP This variable holds the mapping to bibtex output. .PP Each type of reference has its own keys. Currently the following types are supported by the Bibtex output method: .IP "article" 4 .IX Item "article" .PD 0 .IP "collection" 4 .IX Item "collection" .IP "book" 4 .IX Item "book" .PD .PP If you wish to add support for your own custom reference type, you merely need to add a bibtex_mapping element to your class's hashref, or add to this variable. [Preferbly the former, as the latter should only be used by the end user.] .PP The mapping key in the reference type hashref is a hashref containing key value pairs according to the following metric: .ie n .IP "If the mapping key value is not a reference, the value is used as the name function to call via ""$reference\-""field>. [In the example above, the volume mapping is built by a call to ""$reference\-""volume>]." 4 .el .IP "If the mapping key value is not a reference, the value is used as the name function to call via \f(CW$reference\-\fRfield>. [In the example above, the volume mapping is built by a call to \f(CW$reference\-\fRvolume>]." 4 .IX Item "If the mapping key value is not a reference, the value is used as the name function to call via $reference-field>. [In the example above, the volume mapping is built by a call to $reference-volume>]." .PD 0 .ie n .IP "If the mapping key value is a hashref, the hashref contains two keys. The ""field"" key contains the name of the function to call. The ""params"" key contains the parameters" 4 .el .IP "If the mapping key value is a hashref, the hashref contains two keys. The \f(CWfield\fR key contains the name of the function to call. The \f(CWparams\fR key contains the parameters" 4 .IX Item "If the mapping key value is a hashref, the hashref contains two keys. The field key contains the name of the function to call. The params key contains the parameters" .PD .PP The order key in the reference type hashref is an arrayref which defines the order in which keys are listed in the BibTeX output. Values in the arrayref should be the keys of the mapping hashref. [The first value listed is the type of reference/reference name pair.] .SS "convert_to_utf8" .IX Subsection "convert_to_utf8" .Vb 1 \& $utf8 = convert_to_utf8("text","charset"); .Ve