FigureElem

Struct FigureElem 

Source
pub struct FigureElem {
    pub body: Content,
    pub alt: Settable<Self, 1u8>,
    pub placement: Settable<Self, 2u8>,
    pub scope: Settable<Self, 3u8>,
    pub caption: Settable<Self, 4u8>,
    pub kind: Settable<Self, 5u8>,
    pub supplement: Settable<Self, 6u8>,
    pub numbering: Settable<Self, 7u8>,
    pub gap: Settable<Self, 8u8>,
    pub outlined: Settable<Self, 9u8>,
    pub counter: Option<Option<Counter>>,
    pub locale: Option<Locale>,
}
Expand description

A figure with an optional caption.

Automatically detects its kind to select the correct counting track. For example, figures containing images will be numbered separately from figures containing tables.

§Examples

The example below shows a basic figure with an image:

@glacier shows a glacier. Glaciers
are complex systems.

#figure(
  image("glacier.jpg", width: 80%),
  caption: [A curious figure.],
) <glacier>

You can also insert tables into figures to give them a caption. The figure will detect this and automatically use a separate counter.

#figure(
  table(
    columns: 4,
    [t], [1], [2], [3],
    [y], [0.3s], [0.4s], [0.8s],
  ),
  caption: [Timing results],
)

This behaviour can be overridden by explicitly specifying the figure’s kind. All figures of the same kind share a common counter.

§Figure behaviour

By default, figures are placed within the flow of content. To make them float to the top or bottom of the page, you can use the placement argument.

If your figure is too large and its contents are breakable across pages (e.g. if it contains a large table), then you can make the figure itself breakable across pages as well with this show rule:

#show figure: set block(breakable: true)

See the block documentation for more information about breakable and non-breakable blocks.

§Caption customization

You can modify the appearance of the figure’s caption with its associated caption function. In the example below, we emphasize all captions:

#show figure.caption: emph

#figure(
  rect[Hello],
  caption: [I am emphasized!],
)

By using a where selector, we can scope such rules to specific kinds of figures. For example, to position the caption above tables, but keep it below for all other kinds of figures, we could write the following show-set rule:

#show figure.where(
  kind: table
): set figure.caption(position: top)

#figure(
  table(columns: 2)[A][B][C][D],
  caption: [I'm up here],
)

§Accessibility

You can use the alt parameter to provide an alternative description of the figure for screen readers and other Assistive Technology (AT). Refer to its documentation to learn more.

You can use figures to add alternative descriptions to paths, shapes, or visualizations that do not have their own alt parameter. If your graphic is purely decorative and does not have a semantic meaning, consider wrapping it in [pdf.artifact] instead, which will hide it from AT when exporting to PDF.

AT will always read the figure at the point where it appears in the document, regardless of its placement. Put its markup where it would make the most sense in the reading order.

Fields§

§body: Content§alt: Settable<Self, 1u8>§placement: Settable<Self, 2u8>§scope: Settable<Self, 3u8>§caption: Settable<Self, 4u8>§kind: Settable<Self, 5u8>§supplement: Settable<Self, 6u8>§numbering: Settable<Self, 7u8>§gap: Settable<Self, 8u8>§outlined: Settable<Self, 9u8>§counter: Option<Option<Counter>>§locale: Option<Locale>

Implementations§

Source§

impl FigureElem

Source

pub fn new(body: Content) -> Self

Create a new instance of the element.

Source

pub fn with_alt(self, alt: Option<EcoString>) -> Self

Builder-style setter for the alt field.

Source

pub fn with_placement(self, placement: Option<Smart<VAlignment>>) -> Self

Builder-style setter for the placement field.

Source

pub fn with_scope(self, scope: PlacementScope) -> Self

Builder-style setter for the scope field.

Source

pub fn with_caption(self, caption: Option<Packed<FigureCaption>>) -> Self

Builder-style setter for the caption field.

Source

pub fn with_kind(self, kind: Smart<FigureKind>) -> Self

Builder-style setter for the kind field.

Source

pub fn with_supplement(self, supplement: Smart<Option<Supplement>>) -> Self

Builder-style setter for the supplement field.

Source

pub fn with_numbering(self, numbering: Option<Numbering>) -> Self

Builder-style setter for the numbering field.

Source

pub fn with_gap(self, gap: Length) -> Self

Builder-style setter for the gap field.

Source

pub fn with_outlined(self, outlined: bool) -> Self

Builder-style setter for the outlined field.

Source

pub fn with_counter(self, counter: Option<Counter>) -> Self

Builder-style setter for the counter field.

Source

pub fn with_locale(self, locale: Locale) -> Self

Builder-style setter for the locale field.

Source§

impl FigureElem

Source

pub const body: Field<Self, 0u8>

Source

pub const alt: Field<Self, 1u8>

Source

pub const placement: Field<Self, 2u8>

Source

pub const scope: Field<Self, 3u8>

Source

pub const caption: Field<Self, 4u8>

Source

pub const kind: Field<Self, 5u8>

Source

pub const supplement: Field<Self, 6u8>

Source

pub const numbering: Field<Self, 7u8>

Source

pub const gap: Field<Self, 8u8>

Source

pub const outlined: Field<Self, 9u8>

Source

pub const counter: Field<Self, 10u8>

Source

pub const locale: Field<Self, 11u8>

Source§

impl FigureElem

Source

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

Retrieves the locale separator.

Trait Implementations§

Source§

impl Clone for FigureElem

Source§

fn clone(&self) -> FigureElem

Returns a duplicate 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 FigureElem

Source§

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

Construct an element from the arguments. Read more
Source§

impl Debug for FigureElem

Source§

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

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

impl Hash for FigureElem

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 NativeElement for FigureElem

Source§

const ELEM: Element

The associated element.
Source§

fn pack(self) -> Content

Pack the element into type-erased content.
Source§

impl NativeScope for FigureElem

Source§

fn constructor() -> Option<&'static NativeFuncData>

The constructor function for the type, if any.
Source§

fn scope() -> Scope

Get the associated scope for the type.
Source§

impl RequiredField<0> for FigureElem

Source§

impl Set for FigureElem

Source§

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

Parse relevant arguments into style properties for this element.
Source§

impl SettableField<1> for FigureElem

Source§

impl SettableField<2> for FigureElem

Source§

impl SettableField<3> for FigureElem

Source§

impl SettableField<4> for FigureElem

Source§

impl SettableField<5> for FigureElem

Source§

impl SettableField<6> for FigureElem

Source§

impl SettableField<7> for FigureElem

Source§

impl SettableField<8> for FigureElem

Source§

impl SettableField<9> for FigureElem

Source§

impl SynthesizedField<10> for FigureElem

Source§

impl SynthesizedField<11> for FigureElem

Source§

impl RefableProperty<1> for FigureElem

Source§

impl RefableProperty<2> for FigureElem

Source§

impl RefableProperty<3> for FigureElem

Source§

impl RefableProperty<4> for FigureElem

Source§

impl RefableProperty<5> for FigureElem

Source§

impl RefableProperty<6> for FigureElem

Source§

impl RefableProperty<7> for FigureElem

Source§

impl RefableProperty<8> for FigureElem

Source§

impl RefableProperty<9> for FigureElem

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> 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> IntoValue for T
where T: NativeElement,

Source§

fn into_value(self) -> Value

Cast this type into a value.
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, const I: u8> SettableProperty<I> for T
where T: SettableField<I>,

Source§

const FIELD: SettablePropertyData<T, I> = const FIELD: SettablePropertyData<Self, I> = <Self as SettableField::<I>>::FIELD.property;

Source§

type Type = <T as SettableField<I>>::Type

Source§

const FOLD: Option<FoldFn<Self::Type>> = _

Source§

fn default() -> Self::Type

Produces an instance of the property’s default value.
Source§

fn default_ref() -> &'static Self::Type

Produces a static reference to this property’s default 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,