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
repr
that the parameter is already in the requestedMIME
type when theMIME
type satisfiesistextmime
and 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_mono
typeface. - The generated Typst source text contains the context's
preamble
and the formatted value.
- Accepts a
show(::IO, ::TypstString)
- Prints in
@typst_str
format if each character satisfiesisprint
. Otherwise, print inTypstString
format.
- 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
preamble
incontext
- Supports the
julia_mono
typeface
- Accepts
Examples
julia> tt = TypstText('a')
TypstText{Char}('a')
julia> show_typst(tt)
a
Typstry.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
preamble
incontext
- Supports the
julia_mono
typeface
- 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
— TypeMode
An Enum
erated 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 = 2
Typstry.Modes.code
— ConstantTypstry.Modes.markup
— Constantmarkup
A Typst syntactical Mode
at the top-level of source text and enclosed within square brackets.
julia> markup
markup::Mode = 1
Typstry.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.