Rev 88556 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/tools/man/bibstyle.Rd% Part of the R package, https://www.R-project.org% Copyright 2010-2013 R Core Team% Distributed under GPL 2 or later\name{bibstyle}\alias{bibstyle}\alias{getBibstyle}\title{Select or Define a Bibliography Style}\description{This function defines and registers styles for rendering\code{\link{bibentry}} objects into \file{Rd} format, for laterconversion to text, HTML, etc.}\usage{bibstyle(style, envir, ..., .init = FALSE, .default = TRUE)getBibstyle(all = FALSE)}\arguments{\item{style}{A character string naming the style.}\item{envir}{(optional) An environment holding the functions to implement the style.}\item{\dots}{Named arguments to add to the environment.}\item{.init}{Whether to initialize the environment from the default style \code{"JSS"}.}\item{.default}{Whether to set the specified style as the default style.}\item{all}{Whether to return the names of all registered styles.}}\details{Rendering of \code{\link{bibentry}} objects may be done using routinesmodelled after those used by BibTeX. This function allows environmentsto be created and manipulated to contain those routines.There are two ways to create a new style environment. The easiestis to set \code{.init = TRUE}, in which case the environment will beinitialized with a copy of the default \code{"JSS"} environment. (This styleis modelled after the \file{jss.bst} style used by the \emph{Journalof Statistical Software}.) Alternatively, the \code{envir} argumentcan be used to specify a completely new style environment.To find the name of the default style, use \code{getBibstyle()}. Toretrieve an existing style without setting it as the default, use\code{bibstyle(style, .default = FALSE)}. To modify an existing style,specify \code{style} and some named entries via \code{...}.(Modifying the default \code{"JSS"} style is discouraged.) Setting\code{style} to \code{NULL} or leaving it missing will retrieve thedefault style, but modifications will not be allowed.At a minimum, the environment should contain routines to render eachof the 12 types of bibliographic entry supported by\code{\link{bibentry}} as well as several other routinesdescribed below.The former must be named \code{formatArticle},\code{formatBook}, \code{formatInbook}, \code{formatIncollection},\code{formatInProceedings}, \code{formatManual},\code{formatMastersthesis}, \code{formatMisc}, \code{formatPhdthesis},\code{formatProceedings}, \code{formatTechreport} and\code{formatUnpublished}. Each of these takes one argument, a single\code{\link{unclass}}'ed entry from the \code{\link{bibentry}} vectorpassed to the renderer, and should produce a single element charactervector (possibly containing newlines).The other routines are as follows. \code{sortKeys}, a function toproduce a sort key to sort the entries, is passed the original\code{\link{bibentry}} vector and should produce a sortable vector ofthe same length to define the sort order. Finally,the optional function \code{cite} should have the same argument listas \code{utils::\link{cite}}, and should produce a citation to be usedin text.The \code{\link{format}} method for \code{"bibentry"} objects adds afield named \code{".index"} to each entry after sorting and beforeformatting. This is a 1-based index within the complete object thatcan be used in styles that require numbering. Although the\code{"JSS"} style doesn't use numbers, it includes a\code{fmtPrefix()} stub function that may be used to display them.See the example below.}\value{\code{bibstyle} returns the environment which has been selected or created.\code{getBibstyle} returns the name of the default style, or allstyle names.}\author{Duncan Murdoch}\seealso{\code{\link{bibentry}}}\examples{refs <-c(bibentry(bibtype = "manual",title = "R: A Language and Environment for Statistical Computing",author = person("R Core Team"),organization = "R Foundation for Statistical Computing",address = "Vienna, Austria",year = 2013,url = "https://www.R-project.org"),bibentry(bibtype = "article",author = c(person(c("George", "Edward", "Pelham"), "Box"),person(c("David", "Roxbee"), "Cox")),year = 1964,title = "An Analysis of Transformations",journal = "Journal of the Royal Statistical Society, Series B",volume = 26, number = 2, pages = "211--243",doi = "10.1111/j.2517-6161.1964.tb00553.x"))bibstyle("unsorted", sortKeys = function(refs) seq_along(refs),fmtPrefix = function(paper) paste0("[", paper$.index, "]"),.init = TRUE)print(refs, .bibstyle = "unsorted")}\keyword{ utilities }\keyword{ documentation }