Typst¶
Table of Contents
- Basic Equation
- Function arguments
- Integration Example
- Using Color in Equations
- More symbols
- Accessing SVG
- Code Block Rendering
Link to extension: https://extensions.blender.org/add-ons/typst-importer/
In [143]:
Copied!
# Import helper functions just for the docs
import runpy
module = runpy.run_path("/Users/jan-hendrik/projects/bpy-gallery/docs/render_utils.py")
globals().update(module) # adds fresh_scene(), render_result(), load_paper_background()
load_paper_background()
# Import helper functions just for the docs
import runpy
module = runpy.run_path("/Users/jan-hendrik/projects/bpy-gallery/docs/render_utils.py")
globals().update(module) # adds fresh_scene(), render_result(), load_paper_background()
load_paper_background()
In [144]:
Copied!
from typst_importer.typst_to_svg import typst_express
fresh_scene()
c = typst_express(
"$ a = b/c$",
)
render_result(collection=c)
from typst_importer.typst_to_svg import typst_express
fresh_scene()
c = typst_express(
"$ a = b/c$",
)
render_result(collection=c)
In [145]:
Copied!
fresh_scene()
c = typst_express(
"$ e = m c^2$",
scale_factor=300,
join_curves=True,
origin_to_char=False,
name="Einstein's Equation"
)
render_result(collection=c)
fresh_scene()
c = typst_express(
"$ e = m c^2$",
scale_factor=300,
join_curves=True,
origin_to_char=False,
name="Einstein's Equation"
)
render_result(collection=c)
In [146]:
Copied!
fresh_scene()
content = "$ limits(integral)_a^b f(x) dif x $"
c = typst_express(content, join_curves=True, name="Integral")
render_result(collection=c)
fresh_scene()
content = "$ limits(integral)_a^b f(x) dif x $"
c = typst_express(content, join_curves=True, name="Integral")
render_result(collection=c)
In [147]:
Copied!
fresh_scene()
c = typst_express("""
#let korange() = text(fill: orange)[$k$]
#let nblue() = text(fill: blue)[$n$]
$ sum_(#korange() = 1)^#nblue() #korange() = (nblue()(nblue()+1)) / 2 $
""")
render_result(collection=c, width="600pt")
fresh_scene()
c = typst_express("""
#let korange() = text(fill: orange)[$k$]
#let nblue() = text(fill: blue)[$n$]
$ sum_(#korange() = 1)^#nblue() #korange() = (nblue()(nblue()+1)) / 2 $
""")
render_result(collection=c, width="600pt")
In [148]:
Copied!
fresh_scene()
content = """
#set math.lr(size: 80%)
$ integral.triple _V (nabla dot accent(F, arrow)) dif V = integral.surf_(partial V) (accent(F, arrow) dot accent(n, arrow)) dif A $
"""
c = typst_express(content)
render_result(collection=c , padding_factor=-0.4, width="1200pt")
fresh_scene()
content = """
#set math.lr(size: 80%)
$ integral.triple _V (nabla dot accent(F, arrow)) dif V = integral.surf_(partial V) (accent(F, arrow) dot accent(n, arrow)) dif A $
"""
c = typst_express(content)
render_result(collection=c , padding_factor=-0.4, width="1200pt")
In [149]:
Copied!
from typst_importer.notebook_utils import display_svg
print(f"...{c.processed_svg[490:550]}...")
display_svg(c.processed_svg, width="400pt")
from typst_importer.notebook_utils import display_svg
print(f"...{c.processed_svg[490:550]}...")
display_svg(c.processed_svg, width="400pt")
...="#000000" fill-rule="nonzero"><path d="M 83.55 68.05 C 81.2...
In [150]:
Copied!
fresh_scene()
c = typst_express("""
#set page(width: 500pt, height: auto, margin: 0cm, fill: none)
#import "@preview/codelst:2.0.1": sourcecode
#import "@preview/tablex:0.0.8": tablex
#let sourcecode = sourcecode.with(frame: (code) => block(
radius: 5pt,
stroke: 2pt + luma(0),
inset: 30pt,
text(size: 30pt, code)
))
#sourcecode[```python
for i in range(0,10):
print(i)
```]
""")
render_result(collection=c, padding_factor=-0.4, width="900pt")
fresh_scene()
c = typst_express("""
#set page(width: 500pt, height: auto, margin: 0cm, fill: none)
#import "@preview/codelst:2.0.1": sourcecode
#import "@preview/tablex:0.0.8": tablex
#let sourcecode = sourcecode.with(frame: (code) => block(
radius: 5pt,
stroke: 2pt + luma(0),
inset: 30pt,
text(size: 30pt, code)
))
#sourcecode[```python
for i in range(0,10):
print(i)
```]
""")
render_result(collection=c, padding_factor=-0.4, width="900pt")
In [151]:
Copied!
fresh_scene()
content = """
#set page(width: 800pt, height: auto, margin: 0cm, fill: none)
#import "@preview/codelst:2.0.1": sourcecode
#import "@preview/tablex:0.0.8": tablex
#let sourcecode = sourcecode.with(frame: (code) => block(
radius: 5pt,
stroke: 5pt + luma(0),
inset: 30pt,
text(size: 30pt, code)
))
#sourcecode[```python
class HelloWorld:
def __init__(self):
self.message = "Hello, world!"
def greet(self):
print(self.message)
if __name__ == "__main__":
hello = HelloWorld()
hello.greet()
```]
"""
c = typst_express(content)
render_result(collection=c , padding_factor=-0.4, width="900pt")
fresh_scene()
content = """
#set page(width: 800pt, height: auto, margin: 0cm, fill: none)
#import "@preview/codelst:2.0.1": sourcecode
#import "@preview/tablex:0.0.8": tablex
#let sourcecode = sourcecode.with(frame: (code) => block(
radius: 5pt,
stroke: 5pt + luma(0),
inset: 30pt,
text(size: 30pt, code)
))
#sourcecode[```python
class HelloWorld:
def __init__(self):
self.message = "Hello, world!"
def greet(self):
print(self.message)
if __name__ == "__main__":
hello = HelloWorld()
hello.greet()
```]
"""
c = typst_express(content)
render_result(collection=c , padding_factor=-0.4, width="900pt")
In [152]:
Copied!
fresh_scene()
content = """
#set math.lr(size: 80%)
$ mat(1, 2; 3, 4) $"""
c = typst_express(content)
render_result(collection=c , padding_factor=-0.4, width="200pt")
fresh_scene()
content = """
#set math.lr(size: 80%)
$ mat(1, 2; 3, 4) $"""
c = typst_express(content)
render_result(collection=c , padding_factor=-0.4, width="200pt")