pub struct RawElem {
pub text: RawContent,
pub block: Settable<Self, 1u8>,
pub lang: Settable<Self, 2u8>,
pub align: Settable<Self, 3u8>,
pub syntaxes: Settable<Self, 4u8>,
pub theme: Settable<Self, 5u8>,
pub tab_size: Settable<Self, 6u8>,
pub lines: Option<Vec<Packed<RawLine>>>,
}Expand description
Raw text with optional syntax highlighting.
Displays the text verbatim and in a monospace font. This is typically used to embed computer code into your document.
Note that text given to this element cannot contain arbitrary formatting,
such as [*strong*] or [_emphasis_], as it is displayed verbatim. If
you’d like to display any kind of content with a monospace font, instead of
using [raw], you should change its font to a monospace font using the
text function.
§Example
Adding `rbx` to `rcx` gives
the desired result.
What is ```rust fn main()``` in Rust
would be ```c int main()``` in C.
```rust
fn main() {
println!("Hello World!");
}
```
This has ``` `backticks` ``` in it
(but the spaces are trimmed). And
``` here``` the leading space is
also trimmed.You can also construct a [raw] element programmatically from a string (and
provide the language tag via the optional lang argument).
#raw("fn " + "main() {}", lang: "rust")§Syntax
This function also has dedicated syntax. You can enclose text in 1 or 3+
backticks (`) to make it raw. Two backticks produce empty raw text.
This works both in markup and code.
When you use three or more backticks, you can additionally specify a language tag for syntax highlighting directly after the opening backticks. Within raw blocks, everything (except for the language tag, if applicable) is rendered as is, in particular, there are no escape sequences.
The language tag is an identifier that directly follows the opening backticks only if there are three or more backticks. If your text starts with something that looks like an identifier, but no syntax highlighting is needed, start the text with a single space (which will be trimmed) or use the single backtick syntax. If your text should start or end with a backtick, put a space before or after it (it will be trimmed).
If no syntax highlighting is available by default for your specified
language tag (or if you want to override the built-in definition), you may
provide a custom syntax specification file to the
syntaxes field.
§Styling
By default, the raw element uses the DejaVu Sans Mono font (included
with Typst), with a smaller font size of {0.8em} (that is, 80% of
the global font size). This is because monospace fonts tend to be visually
larger than non-monospace fonts.
You can customize these properties with show-set rules:
// Switch to Cascadia Code for both
// inline and block raw.
#show raw: set text(font: "Cascadia Code")
// Reset raw blocks to the same size as normal text,
// but keep inline raw at the reduced size.
#show raw.where(block: true): set text(1em / 0.8)
Now using the `Cascadia Code` font for raw text.
Here's some Python code. It looks larger now:
```py
def python():
return 5 + 5
```In addition, you can customize the syntax highlighting colors by setting
a custom theme through the theme field.
For complete customization of the appearance of a raw block, a show rule
on raw.line could be helpful, such as to add line numbers.
Note that, in raw text, typesetting features like hyphenation, overhang, CJK-Latin spacing (and justification for raw blocks) will be disabled by default.
Fields§
§text: RawContent§block: Settable<Self, 1u8>§lang: Settable<Self, 2u8>§align: Settable<Self, 3u8>§syntaxes: Settable<Self, 4u8>§theme: Settable<Self, 5u8>§tab_size: Settable<Self, 6u8>§lines: Option<Vec<Packed<RawLine>>>Implementations§
Source§impl RawElem
impl RawElem
Sourcepub fn new(text: RawContent) -> Self
pub fn new(text: RawContent) -> Self
Create a new instance of the element.
Sourcepub fn with_block(self, block: bool) -> Self
pub fn with_block(self, block: bool) -> Self
Builder-style setter for the block field.
Sourcepub fn with_lang(self, lang: Option<EcoString>) -> Self
pub fn with_lang(self, lang: Option<EcoString>) -> Self
Builder-style setter for the lang field.
Sourcepub fn with_align(self, align: HAlignment) -> Self
pub fn with_align(self, align: HAlignment) -> Self
Builder-style setter for the align field.
Sourcepub fn with_syntaxes(
self,
syntaxes: Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>,
) -> Self
pub fn with_syntaxes( self, syntaxes: Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>, ) -> Self
Builder-style setter for the syntaxes field.
Sourcepub fn with_theme(
self,
theme: Smart<Option<Derived<DataSource, RawTheme>>>,
) -> Self
pub fn with_theme( self, theme: Smart<Option<Derived<DataSource, RawTheme>>>, ) -> Self
Builder-style setter for the theme field.
Sourcepub fn with_tab_size(self, tab_size: usize) -> Self
pub fn with_tab_size(self, tab_size: usize) -> Self
Builder-style setter for the tab-size field.
Source§impl RawElem
impl RawElem
pub const text: Field<Self, 0u8>
pub const block: Field<Self, 1u8>
pub const lang: Field<Self, 2u8>
pub const align: Field<Self, 3u8>
pub const syntaxes: Field<Self, 4u8>
pub const theme: Field<Self, 5u8>
pub const tab_size: Field<Self, 6u8>
pub const lines: Field<Self, 7u8>
Trait Implementations§
Source§impl NativeElement for RawElem
impl NativeElement for RawElem
Source§impl NativeScope for RawElem
impl NativeScope for RawElem
Source§fn constructor() -> Option<&'static NativeFuncData>
fn constructor() -> Option<&'static NativeFuncData>
Source§impl RequiredField<0> for RawElem
impl RequiredField<0> for RawElem
const FIELD: RequiredFieldData<Self, 0u8>
type Type = RawContent
Source§impl SettableField<1> for RawElem
impl SettableField<1> for RawElem
Source§impl SettableField<2> for RawElem
impl SettableField<2> for RawElem
Source§impl SettableField<3> for RawElem
impl SettableField<3> for RawElem
const FIELD: SettableFieldData<Self, 3u8>
type Type = HAlignment
Source§impl SettableField<4> for RawElem
impl SettableField<4> for RawElem
const FIELD: SettableFieldData<Self, 4u8>
type Type = Derived<OneOrMultiple<DataSource>, Vec<RawSyntax>>
Source§impl SettableField<5> for RawElem
impl SettableField<5> for RawElem
Source§impl SettableField<6> for RawElem
impl SettableField<6> for RawElem
Source§impl SynthesizedField<7> for RawElem
impl SynthesizedField<7> for RawElem
impl RefableProperty<1> for RawElem
impl RefableProperty<2> for RawElem
impl RefableProperty<3> for RawElem
impl RefableProperty<5> for RawElem
impl RefableProperty<6> for RawElem
Auto Trait Implementations§
impl Freeze for RawElem
impl !RefUnwindSafe for RawElem
impl Send for RawElem
impl Sync for RawElem
impl Unpin for RawElem
impl !UnwindSafe for RawElem
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
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) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoResult for Twhere
T: IntoValue,
impl<T> IntoResult for Twhere
T: IntoValue,
Source§fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
fn into_result(self, _: Span) -> Result<Value, EcoVec<SourceDiagnostic>>
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> IntoValue for Twhere
T: NativeElement,
impl<T> IntoValue for Twhere
T: NativeElement,
Source§fn into_value(self) -> Value
fn into_value(self) -> Value
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T, const I: u8> SettableProperty<I> for Twhere
T: SettableField<I>,
impl<T, const I: u8> SettableProperty<I> for Twhere
T: SettableField<I>,
const FIELD: SettablePropertyData<T, I> = const FIELD: SettablePropertyData<Self, I> = <Self as SettableField::<I>>::FIELD.property;
type Type = <T as SettableField<I>>::Type
const FOLD: Option<FoldFn<Self::Type>> = _
Source§fn default_ref() -> &'static Self::Type
fn default_ref() -> &'static Self::Type
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more