typst::model

Struct BibliographyElem

source
pub struct BibliographyElem {
    pub path: BibliographyPaths,
    pub bibliography: Bibliography,
    /* private fields */
}
Expand description

A bibliography / reference listing.

You can create a new bibliography by calling this function with a path to a bibliography file in either one of two formats:

  • A Hayagriva .yml file. Hayagriva is a new bibliography file format designed for use with Typst. Visit its documentation for more details.
  • A BibLaTeX .bib file.

As soon as you add a bibliography somewhere in your document, you can start citing things with reference syntax ([@key]) or explicit calls to the citation function ([#cite(<key>)]). The bibliography will only show entries for works that were referenced in the document.

§Styles

Typst offers a wide selection of built-in citation and bibliography styles. Beyond those, you can add and use custom CSL (Citation Style Language) files. Wondering which style to use? Here are some good defaults based on what discipline you’re working in:

FieldsTypical Styles
Engineering, IT{"ieee"}
Psychology, Life Sciences{"apa"}
Social sciences{"chicago-author-date"}
Humanities{"mla"}, {"chicago-notes"}, {"harvard-cite-them-right"}
Economics{"harvard-cite-them-right"}
Physics{"american-physics-society"}

§Example

This was already noted by
pirates long ago. @arrgh

Multiple sources say ...
@arrgh @netwok.

#bibliography("works.bib")

Fields§

§path: BibliographyPaths§bibliography: Bibliography

Implementations§

source§

impl BibliographyElem

source

pub fn new(path: BibliographyPaths, bibliography: Bibliography) -> Self

Create a new instance of the element.

source

pub fn with_path(self, path: BibliographyPaths) -> Self

Builder-style setter for the path field.

source

pub fn with_title(self, title: Smart<Option<Content>>) -> Self

Builder-style setter for the title field.

source

pub fn with_full(self, full: bool) -> Self

Builder-style setter for the full field.

source

pub fn with_style(self, style: CslStyle) -> Self

Builder-style setter for the style field.

source

pub fn with_bibliography(self, bibliography: Bibliography) -> Self

Builder-style setter for the bibliography field.

source

pub fn with_lang(self, lang: Lang) -> Self

Builder-style setter for the lang field.

source

pub fn with_region(self, region: Option<Region>) -> Self

Builder-style setter for the region field.

source

pub fn push_path(&mut self, path: BibliographyPaths)

Setter for the path field.

source

pub fn push_title(&mut self, title: Smart<Option<Content>>)

Setter for the title field.

source

pub fn push_full(&mut self, full: bool)

Setter for the full field.

source

pub fn push_style(&mut self, style: CslStyle)

Setter for the style field.

source

pub fn push_bibliography(&mut self, bibliography: Bibliography)

Setter for the bibliography field.

source

pub fn push_lang(&mut self, lang: Lang)

Setter for the lang field.

source

pub fn push_region(&mut self, region: Option<Region>)

Setter for the region field.

source

pub fn path(&self) -> &BibliographyPaths

Path(s) to Hayagriva .yml and/or BibLaTeX .bib files.

source

pub fn title(&self, styles: StyleChain<'_>) -> Smart<Option<Content>>

The title of the bibliography.

  • When set to {auto}, an appropriate title for the text language will be used. This is the default.
  • When set to {none}, the bibliography will not have a title.
  • A custom title can be set by passing content.

The bibliography’s heading will not be numbered by default, but you can force it to be with a show-set rule: {show bibliography: set heading(numbering: "1.")}

source

pub fn full(&self, styles: StyleChain<'_>) -> bool

Whether to include all works from the given bibliography files, even those that weren’t cited in the document.

To selectively add individual cited works without showing them, you can also use the cite function with form set to {none}.

source

pub fn style(&self, styles: StyleChain<'_>) -> CslStyle

The bibliography style.

Should be either one of the built-in styles (see below) or a path to a CSL file. Some of the styles listed below appear twice, once with their full name and once with a short alias.

source

pub fn bibliography(&self) -> &Bibliography

The loaded bibliography.

source

pub fn lang(&self) -> Option<&Lang>

The language setting where the bibliography is.

source

pub fn region(&self) -> Option<&Option<Region>>

The region setting where the bibliography is.

source

pub fn title_in(styles: StyleChain<'_>) -> Smart<Option<Content>>

Access the title field in the given style chain.

source

pub fn full_in(styles: StyleChain<'_>) -> bool

Access the full field in the given style chain.

source

pub fn style_in(styles: StyleChain<'_>) -> CslStyle

Access the style field in the given style chain.

source

pub fn set_title(title: Smart<Option<Content>>) -> Property

Create a style property for the title field.

source

pub fn set_full(full: bool) -> Property

Create a style property for the full field.

source

pub fn set_style(style: CslStyle) -> Property

Create a style property for the style field.

source§

impl BibliographyElem

source

pub fn find(introspector: Tracked<'_, Introspector>) -> StrResult<Packed<Self>>

Find the document’s bibliography.

source

pub fn has(engine: &Engine<'_>, key: impl Into<PicoStr>) -> bool

Whether the bibliography contains the given key.

source

pub fn keys( introspector: Tracked<'_, Introspector>, ) -> Vec<(EcoString, Option<EcoString>)>

Find all bibliography keys.

Trait Implementations§

source§

impl Capable for BibliographyElem

source§

fn vtable(capability: TypeId) -> Option<NonNull<()>>

Get the pointer to the vtable for the given capability / trait.
source§

impl Clone for BibliographyElem

source§

fn clone(&self) -> BibliographyElem

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Construct for BibliographyElem

source§

fn construct(engine: &mut Engine<'_>, args: &mut Args) -> SourceResult<Content>

Construct an element from the arguments. Read more
source§

impl Debug for BibliographyElem

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Fields for BibliographyElem

source§

type Enum = Fields

An enum with the fields of the element.
source§

fn has(&self, id: u8) -> bool

Whether the element has the given field set.
source§

fn field(&self, id: u8) -> Result<Value, FieldAccessError>

Get the field with the given field ID.
source§

fn field_with_styles( &self, id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID in the presence of styles.
source§

fn field_from_styles( id: u8, styles: StyleChain<'_>, ) -> Result<Value, FieldAccessError>

Get the field with the given ID from the styles.
source§

fn materialize(&mut self, styles: StyleChain<'_>)

Resolve all fields with the styles and save them in-place.
source§

fn fields(&self) -> Dict

Get the fields of the element.
source§

impl Hash for BibliographyElem

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl IntoValue for BibliographyElem

source§

fn into_value(self) -> Value

Cast this type into a value.
source§

impl NativeElement for BibliographyElem

source§

fn data() -> &'static NativeElementData

Get the element data for the native Rust element.
source§

fn elem() -> Element
where Self: Sized,

Get the element for the native Rust element.
source§

fn pack(self) -> Content
where Self: Sized,

Pack the element into type-erased content.
source§

impl PartialEq for BibliographyElem

source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Repr for BibliographyElem

source§

fn repr(&self) -> EcoString

Return the debug representation of the value.
source§

impl Set for BibliographyElem

source§

fn set(engine: &mut Engine<'_>, args: &mut Args) -> SourceResult<Styles>

Parse relevant arguments into style properties for this element.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

Convert the source color to the destination color using the specified method.
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default.
source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> Filterable for T

source§

fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>

Creates a filterable data provider with the given name for debugging. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromAngle<T> for T

source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> IntoAngle<U> for T
where U: FromAngle<T>,

source§

fn into_angle(self) -> U

Performs a conversion into T.
source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> IntoResult for T
where T: IntoValue,

source§

fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>

Cast this type into a value.
source§

impl<T> IntoStimulus<T> for T

source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T
where T: Send + Sync,