Strings
This reference documents formatting Julia values into Typst source text.
Typstry.TypstStrings.TypstString — TypeTypstString <: AbstractString
TypstString(::TypstContext, ::Any)
TypstString(::Any; context...)Format the value as 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.
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/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)- Prints in
@typst_strformat if each character satisfiesisprint. Otherwise, print inTypstStringformat.
- Prints 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 — TypeTypstText{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, :typst_context => ::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> tt = TypstText('a')
TypstText{Char}('a')
julia> show_typst(tt)
aTypstry.Typsts.Typst — TypeTypst{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, :typst_context => ::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> t = Typst(1)
Typst{Int64}(1)
julia> show(stdout, "text/typst", t)
$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 — TypeModeAn 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 — ConstantTypstry.Modes.markup — ConstantmarkupA Typst syntactical Mode at the top-level of source text and enclosed within square brackets.
julia> markup
markup::Mode = 1Typstry.Modes.math — ConstantTypstry.show_typst — Functionshow_typst(::IO, ::TypstContext, ::Any)
show_typst(::IO, ::Any; context...)
show_typst(::TypstContext, ::Any)
show_typst(::Any; context...)Print 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.