Strings
This reference documents formatting Julia values into Typst source text.
Typstry.TypstFunctions.TypstFunction — Type
TypstFunction{P <: Tuple}(
typst_context::TypstContext,
callable::Symbol,
parameters::P...;
keyword_parameters...
)A wrapper representing a Typst function.
This uses the depth::Int, mode::Mode, and tab_size::Int keys from the TypstContext.
See also Mode.
Interface
repr(::MIME"text/typst ::TypstFunction; context = nothing)show_typst(::IO, ::TypstContext, ::TypstFunction)show(::IO, ::MIME"text/typst", ::TypstFunction)- Accepts
IOContext(::IO, ::TypstContext)
- Accepts
show(::IO, ::Union{MIME"application/pdf", MIME"image/png", MIME"image/svg+xml"}, ::TypstFunction)- Accepts
IOContext(::IO, ::TypstContext) - Uses the
preambleincontext - Supports the
julia_monotypeface
- Accepts
Examples
julia> show_typst(TypstFunction(context, typst"arguments", 1, 2; a = 3, b = 4))
#arguments(
1,
2,
a: 3,
b: 4
)Typstry.TypstStrings.TypstString — Type
TypstString <: AbstractString
TypstString(::TypstContext, ::Any)
TypstString(::Any; context...)A Typst formatted string.
The TypstContext is combined with additional context and passed to show_typst.
Interface
This type implements the String interface. However, the interface is undocumented, which may result in unexpected behavior.
*(::TypstString, ::TypstString)IOBuffer(::TypstString)codeunit(::TypstString, ::Integer)codeunit(::TypstString)isvalid(::TypstString, ::Integer)iterate(::TypstString, ::Integer)iterate(::TypstString)ncodeunits(::TypstString)pointer(::TypstString)repr(::MIME"text/typst ::TypstString; context = nothing)repr(::MIME, ::TypstString; context = nothing)- This method patches incorrect output from the assumption in
reprthat the parameter is already in the requestedMIMEtype when theMIMEtype satisfiesistextmimeand the parameter is anAbstractString.
- This method patches incorrect output from the assumption in
show_typst(::IO, ::TypstContext, ::TypstString)show(::IO, ::MIME"text/plain", ::TypstString)- Print in
typst""format if each character satisfiesisprint. Otherwise, print withshow(::IO, ::TypstString).
- Print in
show(::IO, ::MIME"text/typst", ::TypstString)- Accepts a
IOContext(::IO, ::TypstContext).
- Accepts a
show(::IO, ::Union{MIME"application/pdf", MIME"image/png", MIME"image/svg+xml"}, ::TypstString)- Accepts a
IOContext(::IO, ::TypstContext). - Supports the
julia_monotypeface. - The generated Typst source text contains the context's
preambleand the formatted value.
- Accepts a
show(::IO, ::TypstString)- Print in
TypstString(TypstText(::String))format.
- Print in
Examples
julia> TypstString(1)
typst"$1$"
julia> TypstString(TypstContext(; mode = math), π)
typst"π"
julia> TypstString(1 + 2im; mode = math)
typst"(1 + 2i)"Typstry.TypstTexts.TypstText — Type
TypstText{T}
TypstText(::Any)A wrapper whose show_typst method uses print on the wrapped value.
Interface
repr(::MIME"text/typst ::TypstText; context = nothing)show_typst(::IO, ::TypstContext, ::TypstText)show(::IO, ::MIME"text/typst", ::TypstText)- Accepts
IOContext(::IO, ::TypstContext)
- Accepts
show(::IO, ::Union{MIME"application/pdf", MIME"image/png", MIME"image/svg+xml"}, ::TypstText)- Accepts
IOContext(::IO, ::TypstContext) - Uses the
preambleincontext - Supports the
julia_monotypeface
- Accepts
Examples
julia> show_typst(TypstText('a'))
aTypstry.Typsts.Typst — Type
Typst{T}(::T)
Typst(::T)A wrapper used to pass values to show, whose show_typst method formats the wrapped value.
Interface
repr(::MIME"text/typst ::Typst; context = nothing)show_typst(::IO, ::TypstContext, ::Typst)show(::IO, ::MIME"text/typst", ::Typst)- Accepts
IOContext(::IO, ::TypstContext)
- Accepts
show(::IO, ::Union{MIME"application/pdf", MIME"image/png", MIME"image/svg+xml"}, ::Typst)- Accepts
IOContext(::IO, ::TypstContext) - Uses the
preambleincontext - Supports the
julia_monotypeface
- Accepts
Examples
julia> show_typst(Typst(1))
$1$Typstry.TypstStrings.@typst_str — Macro
@typst_str("")
typst""Construct a TypstString.
Control characters are escaped, except double quotation marks and backslashes in the same manner as @raw_str. Values may be interpolated by calling the TypstString constructor, except using a backslash instead of the type name. Interpolation syntax may be escaped in the same manner as quotation marks.
Print directly to an IO using show_typst.
See also the performance tip to Avoid string interpolation for I/O.
Examples
julia> x = 1;
julia> typst"$ \(x; mode = math) / \(x + 1; mode = math) $"
typst"$ 1 / 2 $"
julia> typst"\(x//2)"
typst"$1 / 2$"
julia> typst"\(x // 2; mode = math)"
typst"(1 / 2)"
julia> typst"\\(x)"
typst"\\(x)"Typstry.Modes.Mode — Type
ModeAn Enumerated type used to specify that the current Typst syntactical context is code, markup, or math.
Examples
julia> Mode
Enum Mode:
code = 0
markup = 1
math = 2Typstry.Modes.code — Constant
Typstry.Modes.markup — Constant
markupA Typst syntactical Mode at the top-level of source text and enclosed within square brackets [].
julia> markup
markup::Mode = 1Typstry.Modes.math — Constant
Typstry.show_typst — Function
show_typst(::IO, ::TypstContext, ::Any)::Nothing
show_typst(::IO, ::Any; context...)::Nothing
show_typst(::TypstContext, ::Any)::Nothing
show_typst(::Any; context...)::NothingPrint in Typst format with Julia settings and Typst parameters provided by the TypstContext.
Implement the three-parameter form of this function for a custom type to specify its Typst formatting. A setting is a value used in Julia, whose type varies across settings. A parameter is passed directly to a Typst function and must be a TypstString with the same name as in Typst, except that dashes are replaced with underscores. Some settings, such as block, correspond with a parameter but may also be used in Julia.
See also the Typst Formatting Examples.