babel
為什麼在 LuaLaTeX 中使用時無法獲得與 Typst 相同的連字符結果?我嘗試了各種方法來解決該問題,但它們不起作用。
兩者均使用信紙大小的紙張,使用自訂的頂部、底部、左側和右側 1.5 公分邊距、12 磅字體大小,並使用 STIX 雙文字字體。
- LuaLaTeX代碼:
% {
\documentclass[letterpaper,12pt]{article}
\usepackage[left=1.5cm, right=1.5cm, top=1.5cm, bottom=1.5cm]{geometry}
\usepackage{indentfirst}
\usepackage{fancyhdr}
\usepackage{csquotes}
\usepackage{microtype}
\usepackage{unicode-math} % loads fontspec
\setmainfont{STIX Two Text}[Ligatures=TeX]
\setmathfont{STIX Two Math}
\usepackage[main=english,spanish,russian]{babel}
\makeatletter
\renewcommand{\@maketitle}{%
\newpage
\null
\vspace{-0.125cm} % This corresponds to the top margin set by geometry
\begin{center}
\parskip=0pt
\let\footnote\thanks
{\LARGE \@title \par }%
{\large \lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}%
\par }%
\vspace{.25cm} % Adjust this value to control the space between the author and date
{\large \@date }%
\end{center}\par
\vspace{.25cm} % This corresponds to the bottom margin set by geometry
}
\makeatother
\setlength\parindent{.25cm}
% }
\title{Title}
\author{Author}
\date{\today}
\begin{document}
\noindent
\begin{minipage}{\textwidth}
\maketitle
\end{minipage}
\selectlanguage{russian}
Как лучше всего получить то, что ты хочешь? - спросила она. Он посмотрел в землю, зная, что ей не понравится его ответ. Он колебался, зная, что правда только повредит. Как он собирался сказать ей это? лучший способ получить то, что он хотел, это оставить ее. Завтра я возвращаюсь в Колорадо после того, как на выходных провел там фестиваль в Санта-Барбаре. Там я буду строить планы на октябрь и постараюсь договориться, чтобы, если возможно, вернуться сюда на день рождения. Я сообщу вам, как только узнаю график приема врача и планы полетов. Стул стоял в углу, где простоял более 25 лет. Единственная разница заключалась в том, что в нем действительно кто-то сидел. Сколько времени прошло с тех пор, как кто-то это делал? По его мнению, десять лет или больше. И все же нельзя было отрицать присутствие в кресле сейчас.
\end{document}
這是 Typst 代碼,
- 模板代碼:
// The project function defines how your document looks.
// It takes your content and some metadata and formats it.
// Go ahead and customize it to your liking!
#let project(title: "", authors: (), date: none, body) = {
// Set the document's basic properties.
set document(author: authors, title: title)
set page(
paper: "us-letter",
margin: (left: 15mm, right: 15mm, top: 15mm, bottom: 15mm),
numbering: "1",
number-align: center,
)
set text(font: "STIX Two Text", lang: "en", 12pt)
// Set paragraph spacing.
show par: set block(above: 0.75em, below: 0.75em)
set heading(numbering: "1.1.")
set par(leading: 0.58em)
// Title row.
align(center)[
#block(text(weight: 700, 1.75em, title))
#v(0.8em, weak: true)
#date
]
// Author information.
pad(
top: 0.3em,
bottom: 0.3em,
x: 2em,
grid(
columns: (1fr,) * calc.min(3, authors.len()),
gutter: 1em,
..authors.map(author => align(center, strong(author))),
),
)
// Main body.
set par(justify: true)
body
}
- 文檔代碼:
#import "template.typ": *
// Take a look at the file `template.typ` in the file panel
// to customize this template and discover how it works.
#show: project.with(
title: "Template",
authors: (
"Author",
),
date: "January 6, 2024",
)
#h(.25cm) #set text(lang: "ru"); Как лучше всего получить то, что ты хочешь? - спросила она. Он посмотрел в землю, зная, что ей не понравится его ответ. Он колебался, зная, что правда только повредит. Как он собирался сказать ей это? лучший способ получить то, что он хотел, это оставить ее. Завтра я возвращаюсь в Колорадо после того, как на выходных провел там фестиваль в Санта-Барбаре. Там я буду строить планы на октябрь и постараюсь договориться, чтобы, если возможно, вернуться сюда на день рождения. Я сообщу вам, как только узнаю график приема врача и планы полетов. Стул стоял в углу, где простоял более 25 лет. Единственная разница заключалась в том, что в нем действительно кто-то сидел. Сколько времени прошло с тех пор, как кто-то это делал? По его мнению, десять лет или больше. И все же нельзя было отрицать присутствие в кресле сейчас.
答案1
TeX 試圖避免連字,對於長行和相當短的單詞,它通常會成功。如果您想要快速文字連字的工作原理,請設定一個小的文字寬度:
\documentclass[letterpaper,12pt]{article}
\usepackage{microtype}
\usepackage{unicode-math} % loads fontspec
\setmainfont{STIX Two Text}[Ligatures=TeX]
\usepackage[main=english,spanish,russian]{babel}
\textwidth=5pt
\begin{document}
\selectlanguage{russian}
Как лучше всего получить то, что ты хочешь? - спросила она. Он посмотрел в землю, зная, что ей не понравится его ответ. Он колебался, зная, что правда только повредит. Как он собирался сказать ей это? лучший способ получить то, что он хотел, это оставить ее. Завтра я возвращаюсь в Колорадо после того, как на выходных провел там фестиваль в Санта-Барбаре. Там я буду строить планы на октябрь и постараюсь договориться, чтобы, если возможно, вернуться сюда на день рождения. Я сообщу вам, как только узнаю график приема врача и планы полетов. Стул стоял в углу, где простоял более 25 лет. Единственная разница заключалась в том, что в нем действительно кто-то сидел. Сколько времени прошло с тех пор, как кто-то это делал? По его мнению, десять лет или больше. И все же нельзя было отрицать присутствие в кресле сейчас.
\end{document}
答案2
只是為了擴展我的評論並添加一些圖像。我做了三個測試:
正如預期的那樣,最好的結果是那些使用microtype
.當然,更好的測試是使用窄欄,但我對打字員的了解不夠,無法檢查它。另外,使用一些難以連字的段落(例如《青蛙王》中的段落)會更好,並記錄影響連字的所有參數。
順便說一句,這裡還有一些關於我的經驗的評論typst
。
- 我從 github 儲存庫將其安裝在 Windows 上,沒有任何問題(在 Windows 上),並且只用了不到 2 分鐘就讓一切運行起來 (10/10)。
- 我使用 sublime 作為編輯器,雖然我沒有用於突出顯示 typest 程式碼的套件,但它確實產生了乾淨且可讀的程式碼 (8/10)。
- Typst 編譯速度極快 (10/10)。
- 我還訪問了不和諧伺服器,這是一次非常糟糕的體驗。我只是不太喜歡訪問不和諧並被彈出窗口擊中購買硝基。到目前為止,社區似乎熱情且支持。有很多對 LaTeX 中理所當然的功能的請求。 (6/10)
- 我還查看了一些軟體包,恕我直言,Typst 很快就會遇到像 Javascript 一樣的問題,其生態系統會導致優柔寡斷、混亂和重複。 (5/10)
- 總的來說,我花了不到 15 分鐘就能夠使用打字機並閱讀一些文件。我沒有看視頻,因為我更喜歡閱讀而不是看視頻,速度快得多。我更喜歡像 LaTeX doc/docstrip 文件那樣的 pdf 格式。恕我直言,它們帶來了比線上手冊更好的一致性。 (8/10)
- 恕我直言,對於 LaTeX 和 Typst 來說,開發可以透過社群或
pandoc
. - 到目前為止,Typst 和 LaTex 都是 Word 的更好替代方案。
在沉迷於空洞言論的政治領導層加劇了教育水平下降的整體環境中,很高興看到旨在幫助學生和其他人編寫更好的文檔而不是推文的系統的發展。