Почему я не получаю те же результаты переносов, что и Typst при использовании babel
в LuaLaTeX? Я пробовал разные методы решения этой проблемы, но они не работают.
В обоих случаях используется бумага формата Letterpaper, пользовательские поля сверху, снизу, слева и справа по 1,5 см, размер шрифта 12 пунктов и шрифт 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 пытается избегать переносов, и с длинными строками и довольно короткими словами ему это часто удается. Если вы хотите быстрый текст о том, как работают переносы, установите небольшую textwidth:
\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
. Конечно, лучшим тестом было бы использование узкой колонки, но я не знал достаточно о типографике, чтобы проверить это. Также было бы лучше использовать некоторые сложные для переноса абзацы, например из Frog King, а также регистрировать все параметры, влияющие на перенос.
В качестве отступления, вот также несколько комментариев о моем опыте работы с typst
.
- Я установил его на Windows из репозитория github без каких-либо проблем (на Windows), и потребовалось меньше 2 минут, чтобы все заработало (10/10).
- Я использую Sublime в качестве редактора, и хотя у меня не было пакета для подсветки кода Typst, он создает чистый и читабельный код (8/10).
- Typst компилируется очень быстро (10/10).
- Я также посетил сервер Discord, и это был очень плохой опыт. Мне просто не очень нравится посещать Discord в целом и получать всплывающие окна с предложением купить нитро. Сообщество пока что кажется воодушевленным и поддерживающим. Есть много запросов на функции, которые в LaTeX считаются само собой разумеющимися. (6/10)
- Я также рассмотрел некоторые пакеты и, по моему скромному мнению, Typst вскоре столкнется с той же проблемой, что и Javascript, с экосистемой, которая приводит к нерешительности, путанице и дублированию. (5/10)
- В целом мне потребовалось менее 15 минут, чтобы научиться пользоваться typst и немного прочитать документацию. Я не смотрел видео, так как предпочитаю читать, а не смотреть видео, это намного быстрее. Я бы предпочел pdf в виде документов LaTeX doc/docstrip. Они привносят единообразие, IMHO, что лучше, чем онлайн-руководства. (8/10)
- IMHO, и для LaTeX, и для Typst будет очень легко разработать пакеты для перевода друг в друга, либо силами сообществ, либо
pandoc
. - На данный момент и Typst, и LaTex являются лучшей альтернативой Word.
В общей обстановке снижения образовательных стандартов, усугубленной политическим руководством, предающимся пустой риторике, приятно видеть разработки, направленные на создание систем, которые могут помочь студентам и другим людям писать более качественные документы, а не твиты.