有时 pdfLaTeX 会过早地决定中断第一个,我真的不明白为什么以及如何避免这种情况。不幸的是,按照我们的标准,我不得不禁用分词,这似乎导致 LaTeX 中的某些功能无法正常工作。
以下是示例
\documentclass[14pt, a4paper]{extreport}
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[english, russian]{babel}
\usepackage{pscyr}
\usepackage{amstext, amssymb, amsfonts, amsmath, amsthm, icomma, mathptmx}
\usepackage[left=30mm, right=1cm, vmargin=2cm]{geometry}
\geometry{head=17pt,headsep=3mm}
\frenchspacing
\setlength\parindent{5ex}
\usepackage{indentfirst}
\renewcommand{\rmdefault}{ftm}
\usepackage[onehalfspacing]{setspace}
\newenvironment{singlespread}{\linespread{1}}{\linespread{1.3}}
\usepackage[babel=true]{microtype}
\hyphenpenalty=10000
\pretolerance=10000
\setlength\emergencystretch{3em}
%-----------------------------------CONTENT------------------------------------%
\begin{document}
\begin{enumerate}
\item \textbf{distCoeffs}~--- коэффициенты дисторсии (D).
\end{enumerate}
% BAD
На данном этапе, задача сводится к определению массива \textbf{imagePoints}. Его необходимо получить непосредственно по изображениям с камеры. Для этого применяются фотографии шахматной доски и функция \textbf{findChessboardCorners}. Функция принимает изображение в качестве параметра \textbf{image} и кортэж $(n_x, n_y)$ в качестве параметра \textbf{patternSize}, а возвращает координаты углов шахматной доски, найденной на изображении. Чтобы убедиться, что шахматная доска найдена, применяется функция \textbf{drawChessboardCorners}. Она наносит на изображение \textbf{image} вспомогательную графику, отображающую места, в которых были найдены углы шахматной доски \textbf{corners} (рисунок \ref{fig:chessboard}).
\end{document}
请至少告诉我如何在这里摆脱它,而不会让每个空间都牢不可破
答案1
pscyr
x
不在主要发行版中,但如果我通过附加一些地方来改变一些字长,我可以在不使用它的情况下获得类似的效果
真的
\pretolerance=10000 % Разрешение на подгон
意思是“我不关心糟糕的空白”,所以你得到了你想要的。
最好让 tex 更努力地换行,允许后面的传递,即使连字符被抑制,但随后增加 emergencystretch 以使空白更均匀地分布
更改为
%\pretolerance=10000 % Разрешение на подгон
\emergencystretch=\textwidth
生产
\documentclass[14pt, a4paper]{extreport}
\usepackage{cmap} % для кодировки шрифтов в pdf
\usepackage[utf8]{inputenc} % кодировка исходников
\usepackage[T2A]{fontenc}
\usepackage[english, russian]{babel}
%\usepackage{pscyr}
\usepackage{amstext, amssymb, amsfonts, amsmath, amsthm, icomma, mathptmx} % Формулы
%левое - 30 мм (ГОСТ=25), правое - 10 мм, верхнее и нижнее - 20 мм
\usepackage[left=30mm, right=1cm, vmargin=2cm]{geometry} % Поля страницы
\geometry{head=17pt,headsep=3mm}
%\usepackage{showframe}
\frenchspacing % Одинарный пробел в конце предложений
\setlength\parindent{5ex} % абзацный отступ = 5 знаков
\usepackage{indentfirst} % отделять первую строку раздела абзацным отступом
\renewcommand{\rmdefault}{ftm} % Times New Roman
\usepackage[onehalfspacing]{setspace}% Полуторный интервал
\newenvironment{singlespread}{\linespread{1}}{\linespread{1.3}} % одиночный
\usepackage[babel=true]{microtype} % Точный подгон
\hyphenpenalty=10000 % Зарет переносов
%\pretolerance=10000 % Разрешение на подгон
\emergencystretch=\textwidth
%-----------------------------------CONTENT------------------------------------%
\begin{document}
\begin{enumerate}
\item \textbf{distCoeffs}~--- коэффициенты дисторсии (D).
\end{enumerate}
% BAD
На данном этапе, задача сводится к определению массиваxxxxxx \textbf{imagePointsxxxx}. Его необходимо получитьxxxxx непосредственноxxxxxxxxxxxxxx по изображениям с камеры. Для этого применяются фотографии шахматной доски и функция \textbf{findChessboardCorners}. Функция принимает изображение в качестве параметра \textbf{image} и кортэж $(n_x, n_y)$ в качестве параметра \textbf{patternSize}, а возвращает координаты углов шахматной доски, найденной на изображении. Чтобы убедиться, что шахматная доска найдена, применяется функция \textbf{drawChessboardCorners}. Она наносит на изображение \textbf{image} вспомогательную графику, отображающую места, в которых были найдены углы шахматной доски \textbf{corners} (рисунок \ref{fig:chessboard}).
\end{document}
答案2
将\pretolerance
或设置\tolerance
为 10000 意味着如果通过行中可用拉伸的通常公式计算,TeX 可以生成任意不良度远高于 10000 的行(例如,像您的情况下只有两个单词的行)。
但 TeX 仍会尝试优化整个段落:因此使用上述设置,它可以将全部坏度划分为一行(名义坏度为 10000,尽管实际上按照正常公式计算坏度要高得多),并使所有其他坏度变得正常。
如果您使用小于 10000 的值,那么所有行都会具有真实且可比较的不良程度,结果会更加均匀。但是在这种情况下,TeX 可能根本找不到任何解决方案,然后用“过满”行进行回复。
这就是 的作用\emergencystretch
所在。它避免了过满,但会使所有行都同样糟糕。不过,我会将其设置为比 更小的值\textwidth
。
禁用分词
上面您说,根据您的标准,您必须禁用分词(为了实现这一点,您尝试设置\pretolerance
)。虽然将其设置为 10000 会使 TeX 始终成功获得没有连字符的解决方案,但这并不好,因为它倾向于糟糕的解决方案。
如果这是总体目标,那么更好的方法是确保没有使用连字符模式,这样 TeX 根本无法在该语言中使用连字符(如果需要,可以为unhyphenated-russian
babel 定义自己的连字符模式,其工作方式类似russian
但不加载模式)。