Typst เป็นระบบเรียงพิมพ์ที่ใช้มาร์กอัปใหม่ ซึ่งได้รับการออกแบบมาเพื่อให้มีประสิทธิภาพเทียบเท่ากับ LaTeX ในขณะที่เรียนรู้และใช้งานได้ง่ายขึ้นมาก Typst มี:
พื้นที่เก็บข้อมูลนี้มีคอมไพเลอร์ Typst และ CLI ซึ่งเป็นทุกสิ่งที่คุณต้องการในการรวบรวมเอกสาร Typst ในเครื่อง เพื่อประสบการณ์การเขียนที่ดีที่สุด ลองสมัครใช้งานโปรแกรมแก้ไขออนไลน์ที่ทำงานร่วมกันของเราได้ฟรี
มีคำแนะนำเบื้องต้นเกี่ยวกับ Typst อยู่ในเอกสารของเรา อย่างไรก็ตาม หากคุณต้องการเห็นพลังของ Typst ที่รวมอยู่ในภาพเดียว นี่คือ:
เรามาแยกแยะว่าเกิดอะไรขึ้น:
เราใช้ กฎที่ตั้งไว้ เพื่อกำหนดค่าคุณสมบัติขององค์ประกอบ เช่น ขนาดของหน้าหรือการกำหนดหมายเลขของส่วนหัว ด้วยการตั้งค่าความสูงของหน้าเป็น auto
จะปรับขนาดให้พอดีกับเนื้อหา ตั้งกฎรองรับการกำหนดค่าทั่วไปส่วนใหญ่ หากคุณต้องการการควบคุมเต็มรูปแบบ คุณยังสามารถใช้กฎการแสดงเพื่อกำหนดลักษณะที่ปรากฏขององค์ประกอบใหม่ทั้งหมดได้
เราแทรกส่วนหัวด้วยไวยากรณ์ = Heading
เครื่องหมายเท่ากับหนึ่งจะสร้างส่วนหัวระดับบนสุด สองเครื่องหมายสร้างส่วนหัวย่อยและอื่นๆ Typst มีมาร์กอัปที่มีน้ำหนักเบากว่านี้ ดูการอ้างอิงไวยากรณ์สำหรับรายการทั้งหมด
สมการทางคณิตศาสตร์อยู่ในเครื่องหมายดอลลาร์ การเพิ่มช่องว่างรอบเนื้อหาของสมการทำให้เราสามารถแยกมันออกเป็นบล็อกที่แยกจากกัน ตัวระบุหลายตัวอักษรจะถูกตีความว่าเป็นคำจำกัดความและฟังก์ชันของ Typst เว้นแต่จะใส่เครื่องหมายคำพูด ด้วยวิธีนี้ เราไม่จำเป็นต้องแบ็กสแลชสำหรับสิ่งต่าง ๆ เช่น floor
และ sqrt
และ phi.alt
จะใช้ตัวแก้ไข alt
กับ phi
เพื่อเลือกตัวเลือกสัญลักษณ์เฉพาะ
ตอนนี้เรามาถึงการเขียนสคริปต์แล้ว ในการป้อนโค้ดลงในเอกสาร Typst เราสามารถเขียนแฮชตามด้วยนิพจน์ได้ เรากำหนดตัวแปรสองตัวและฟังก์ชันแบบเรียกซ้ำเพื่อคำนวณหมายเลขฟีโบนัชชีลำดับที่ n จากนั้นเราจะแสดงผลลัพธ์ในตารางที่จัดกึ่งกลาง ฟังก์ชันตารางจะดึงเซลล์ต่างๆ ทีละแถว ดังนั้นเราจึงส่งสูตร $F_1$
ไปยัง $F_8$
ก่อน จากนั้นจึงส่งหมายเลขฟีโบนัชชีที่คำนวณได้ เราใช้ตัวดำเนินการสเปรด ( ..
) กับทั้งคู่เนื่องจากเป็นอาร์เรย์ และเราต้องการส่งรายการของอาร์เรย์เป็นอาร์กิวเมนต์แต่ละรายการ
#set page ( width : 10cm , height : auto )
#set heading ( numbering : " 1. " )
= Fibonacci sequence
The Fibonacci sequence is defined through the
recurrence relation $ F_n = F_(n-1) + F_(n-2) $ .
It can also be expressed in _closed form:_
$ F_n = round(1 / sqrt(5) phi.alt^n), quad
phi.alt = (1 + sqrt(5)) / 2 $
#let count = 8
#let nums = range ( 1 , count + 1 )
#let fib ( n ) = (
if n <= 2 { 1 }
else { fib ( n - 1 ) + fib ( n - 2 ) }
)
The first #count numbers of the sequence are:
#align (center, table(
columns: count,
..nums.map(n => $ F_#n $ ),
..nums.map(n => str(fib(n))),
))
CLI ของ Typst มีให้บริการจากแหล่งต่างๆ:
คุณสามารถรับแหล่งที่มาและไบนารีที่สร้างไว้ล่วงหน้าสำหรับ Typst รุ่นล่าสุดได้จากหน้าเผยแพร่ ดาวน์โหลดไฟล์เก็บถาวรสำหรับแพลตฟอร์มของคุณและวางลงในไดเร็กทอรีที่อยู่ใน PATH
ของคุณ หากต้องการติดตามข่าวสารล่าสุดเกี่ยวกับการเปิดตัวในอนาคต คุณสามารถเรียกใช้ typst update
ได้
คุณสามารถติดตั้ง Typst ผ่านตัวจัดการแพ็คเกจต่างๆ โปรดทราบว่าเวอร์ชันในตัวจัดการแพ็คเกจอาจล้าหลังรุ่นล่าสุด
brew install typst
winget install --id Typst.Typst
หากคุณติดตั้ง Rust toolchain ไว้ คุณก็สามารถติดตั้งได้
cargo install --locked typst-cli
cargo install --git https://github.com/typst/typst --locked typst-cli
ผู้ใช้ Nix สามารถทำได้
typst
กับ nix-shell -p typst
nix run github:typst/typst -- --version
ผู้ใช้ Docker สามารถเรียกใช้อิมเมจที่สร้างไว้ล่วงหน้าด้วย docker run ghcr.io/typst/typst:latest --help
เมื่อคุณติดตั้ง Typst แล้ว คุณสามารถใช้งานได้ดังนี้:
# Creates `file.pdf` in working directory.
typst compile file.typ
# Creates PDF file at the desired path.
typst compile path/to/source.typ path/to/output.pdf
คุณยังสามารถดูไฟล์ต้นฉบับและคอมไพล์ใหม่เมื่อมีการเปลี่ยนแปลงโดยอัตโนมัติ ซึ่งเร็วกว่าการคอมไพล์ตั้งแต่เริ่มต้นในแต่ละครั้ง เนื่องจาก Typst มีการคอมไพล์แบบเพิ่มหน่วย
# Watches source files and recompiles on changes.
typst watch file.typ
Typst ยังช่วยให้คุณเพิ่มเส้นทางแบบอักษรที่กำหนดเองสำหรับโครงการของคุณและแสดงรายการแบบอักษรทั้งหมดที่ค้นพบ:
# Adds additional directories to search for fonts.
typst compile --font-path path/to/fonts file.typ
# Lists all of the discovered fonts in the system and the given directory.
typst fonts --font-path path/to/fonts
# Or via environment variable (Linux syntax).
TYPST_FONT_PATHS=path/to/fonts typst fonts
สำหรับคำสั่งย่อยและตัวเลือก CLI อื่นๆ ดูด้านล่าง:
# Prints available subcommands and options.
typst help
# Prints detailed usage of a subcommand.
typst help watch
หากคุณต้องการประสบการณ์แบบ IDE ที่ผสานรวมกับการเติมข้อความอัตโนมัติและการแสดงตัวอย่างทันที คุณสามารถตรวจสอบเว็บแอปฟรีของ Typst ได้
สถานที่หลักที่ชุมชนมารวมตัวกันคือเซิร์ฟเวอร์ Discord ของเรา อย่าลังเลที่จะเข้าร่วมเพื่อถามคำถาม ช่วยเหลือผู้อื่น แบ่งปันสิ่งดีๆ ที่คุณสร้างขึ้นด้วย Typst หรือเพียงเพื่อแชท
นอกเหนือจากนั้น ยังมีสถานที่บางแห่งที่คุณสามารถค้นหาสิ่งต่าง ๆ ที่สร้างโดยชุมชน:
หากคุณมีประสบการณ์ที่ไม่ดีในชุมชนของเรา โปรดติดต่อเรา
เราอยากจะเห็นการมีส่วนร่วมจากชุมชน หากคุณพบข้อบกพร่อง อย่าลังเลที่จะเปิดปัญหา หากคุณต้องการใช้ฟีเจอร์ใหม่หรือแก้ไขข้อบกพร่อง โปรดทำตามขั้นตอนที่ระบุไว้ในคู่มือการสนับสนุน
หากต้องการสร้าง Typst ด้วยตัวเอง ก่อนอื่นต้องแน่ใจว่าคุณได้ติดตั้ง Rust ที่เสถียรล่าสุดแล้ว จากนั้น โคลนที่เก็บนี้และสร้าง CLI ด้วยคำสั่งต่อไปนี้:
git clone https://github.com/typst/typst
cd typst
cargo build --release
ไบนารีที่ปรับให้เหมาะสมจะถูกเก็บไว้ใน target/release/
อีกวิธีที่ดีในการมีส่วนร่วมคือการแบ่งปันแพ็คเกจกับชุมชน
สัทอักษรสากล: /taəpst/. "Ty" เหมือนใน ภาษา Ty Pesetting และ "pst" เหมือนในภาษา Hi pst er เมื่อเขียนเกี่ยวกับ Typst ให้เปลี่ยนชื่อเป็นคำนามเฉพาะด้วยตัวพิมพ์ใหญ่ "T"
Typst ทั้งหมดได้รับการออกแบบโดยคำนึงถึงสามเป้าหมายหลัก: พลัง ความเรียบง่าย และประสิทธิภาพ เราคิดว่าถึงเวลาแล้วสำหรับระบบที่ตรงกับประสิทธิภาพของ LaTeX ซึ่งง่ายต่อการเรียนรู้และใช้งาน ขณะเดียวกันก็เร็วพอที่จะแสดงตัวอย่างได้ทันที เพื่อให้บรรลุเป้าหมายเหล่านี้ เราปฏิบัติตามหลักการออกแบบหลักสามประการ:
ความเรียบง่ายผ่านความสม่ำเสมอ: หากคุณรู้วิธีการทำสิ่งหนึ่งสิ่งใดใน Typst คุณควรจะสามารถถ่ายทอดความรู้นั้นไปยังสิ่งอื่นได้ หากมีหลายวิธีในการทำสิ่งเดียวกัน วิธีหนึ่งควรมีระดับของนามธรรมที่แตกต่างจากวิธีอื่นๆ เช่น ไม่เป็นไรที่ = Introduction
และ #heading[Introduction]
ทำสิ่งเดียวกัน เพราะอันแรกเป็นเพียงไวยากรณ์สำหรับอันหลัง
เพิ่มประสิทธิภาพด้วยความสามารถในการจัดองค์ประกอบภาพ: มีสองวิธีในการสร้างสิ่งที่ยืดหยุ่น: มีปุ่มหมุนสำหรับทุกสิ่ง หรือมีปุ่มหมุนสองสามปุ่มที่คุณสามารถรวมเข้าด้วยกันได้หลายวิธี Typst ได้รับการออกแบบโดยคำนึงถึงวิธีที่สอง เราจัดเตรียมระบบที่คุณสามารถเขียนได้ในแบบที่เราไม่เคยนึกถึงมาก่อน TeX ก็อยู่ในประเภทที่สองเช่นกัน แต่เป็นระดับต่ำเล็กน้อย ผู้คนจึงใช้ LaTeX แทน แต่ตรงนั้น เราไม่สามารถประกอบองค์ประกอบได้มากนัก แต่มีแพ็คเกจสำหรับทุกสิ่ง ( usepackage{knob}
)
ประสิทธิภาพผ่านส่วนเพิ่ม: คุณสมบัติภาษา Typst ทั้งหมดต้องรองรับสำหรับการรวบรวมส่วนเพิ่ม โชคดีที่เรามี comemo
ซึ่งเป็นระบบสำหรับการรวบรวมแบบเพิ่มหน่วยซึ่งทำงานหนักส่วนใหญ่ในเบื้องหลัง