意外的第一行换行

意外的第一行换行

有时 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

pscyrx不在主要发行版中,但如果我通过附加一些地方来改变一些字长,我可以在不使用它的情况下获得类似的效果

在此处输入图片描述

真的

\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-russianbabel 定义自己的连字符模式,其工作方式类似russian但不加载模式)。

相关内容