为什么我在 LuaLaTeX 中使用时无法获得与 Typst 相同的连字结果babel
?我尝试了各种方法来解决这个问题,但都没有用。
两者均使用 Letterpaper 大小的纸张,使用自定义的顶部、底部、左侧和右侧 1.5 厘米边距,12pt 字体大小,并使用 STIX Two Text 字体。
- 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 方面的了解不够,无法检查它。此外,使用一些难以连字的段落(例如 Frog King 中的段落)以及记录影响连字的所有参数会更好。
顺便说一下,这里也有一些关于我的经验的评论typst
。
- 我从 github 存储库将它安装在 Windows 上,没有任何问题(在 Windows 上),并且只需不到 2 分钟即可完成所有操作(10/10)。
- 我使用 sublime 作为编辑器,虽然我没有用于突出显示 typst 代码的包,但它确实生成了干净且可读的代码(8/10)。
- Typst 编译速度极快 (10/10)。
- 我还访问了 discord 服务器,体验非常糟糕。我不喜欢访问 discord 时弹出购买 nitros 的弹窗。到目前为止,社区似乎很热情,也很支持。有很多功能请求,这些功能在 LaTeX 中是理所当然的。(6/10)
- 我也查看了一些软件包,我认为 Typst 很快就会遇到与 Javascript 相同的问题,其生态系统会导致犹豫不决、混乱和重复。(5/10)
- 总的来说,我花了不到 15 分钟就学会了使用 typst 并阅读了一些文档。我没有看视频,因为我更喜欢阅读而不是看视频,这样要快得多。我更喜欢类似 LaTeX doc/docstrip 文档的 pdf。在我看来,它们带来了统一性,比在线手册更好。(8/10)
- 我认为,LaTeX 和 Typst 开发互相翻译的软件包非常容易,无论是通过社区还是
pandoc
。 - 到目前为止,Typst 和 LaTex 都是 Word 的更好替代品。
在由于政治领导层沉迷于空洞言论而导致教育标准下降的总体环境下,很高兴看到旨在使学生和其他人能够撰写更好的文档而不是推文的系统的发展。