Как осуществить перенос первого слова в ячейке longtable?
Столкнулся с проблемой, что первое слово, если оно не соответствует размеру ячейки, находит на другую ячейку. Если слово второе и дальше - такой проблемы не возникает.
Дистрибутив: TeXLive
Компилятор: XeLaTeX
Пример:
\documentclass[fontsize=14pt,a4paper]{scrreprt}
\usepackage[utf8]{inputenc} % Кодировка исходного текста
\usepackage{polyglossia} %для русского языка
\usepackage{xecyr} %кириллические символы
\usepackage{longtable} %длинные таблицы
\usepackage{float} %плавающие объекты
\usepackage{caption} %заголовки плавающих объектов
\usepackage{amsmath} %пакет мат. формул
\usepackage{array} %для таблиц
\setdefaultlanguage{russian} %% устанавливает главный язык документа
\setotherlanguage{english} %% объявляет второй язык документа
\setmainfont{Liberation Serif} %шрифты
\setsansfont{Liberation Sans}
\setmonofont{Liberation Mono}
\begin{document}
\chapter{Название главы}
\section{Подзаголовок}
Какой-то текст.
\begin{longtable}{|>{\centering\arraybackslash}m{0.13\linewidth}|>{\centering\arraybackslash}m{0.1\linewidth}|>{\centering\arraybackslash}m{0.14\linewidth}|>{\centering\arraybackslash}m{0.18\linewidth}|>{\centering\arraybackslash}m{0.13\linewidth}|>{\centering\arraybackslash}m{0.12\linewidth}|>{\centering\arraybackslash}m{0.06\linewidth}|}
\caption{Объекты и их классификация \label{Objects-classification}} \\
\hline
\textbf{Объект} & \textbf{Символ} & \textbf{Описание} & \textbf{Действие} & \textbf{Разовость} & \textbf{Природа} & \textbf{Поле} \\ \hline
\endfirsthead
\multicolumn{7}{r}{Продолжение таблицы \thetable} \\
\hline
\textbf{Объект} & \textbf{Символ} & \textbf{Описание} & \textbf{Действие} & \textbf{Разовость} & \textbf{Природа} & \textbf{Поле} \\ \hline
\endhead
\endfoot
\hline
\endlastfoot
Чёрный рынок & Ч & Не требуется & Текст & Много & Локация & T \\
\hline
Средневековое оружие & О & <<Ничего нет, но можно копать>> & Текст & Много & Локация & D \\
\hline
Полицейский & П & <<Одинокий человек>> & Текст & Много & Живность & T, O \\
\hline
Фарцовщик & Ф & <<Одинокий человек>> & Текст & Много & Живность & T \\
\hline
Экспедиция & $\text{Л}^\text{Э}$ & <<Группа людей>> & Текст & Много & Живность & D, O \\
\hline
Логово разбойников & Р & <<Подозрительное укрытие>> & Текст & Один\footnote{Только при полном наборе возможностей. После получения добычи можно использовать многократно, чтобы переждать Песчаную Бурю.} & Локация & D, O \\
\end{longtable}
\end{document}
Находил решения в стиле "определить команду особой ячейки, в которой разрешён перенос" или "расширить границу столбца", но они меня не устраивают. Также искал подобную опцию в настройках пакета longtable, но почему-то не смог найти.
Ответы (1 шт):
Нашёл решение с англоязычного сервиса:
Суть в том, что TeX никогда не переносит первое слово, поэтому необходимо обмануть его следующим костылём - вставить нулевой горизонтальный промежуток командой \hspace{0pt}. TeX будет считать это первым словом, а далее следующий текст будет переноситься.
Эту команду можно добавить в определение столбца, чтобы не писать в каждой нужной ячейке.
В моём примере исправление кода будет выглядеть так:
\begin{longtable}{|>{\centering\arraybackslash\hspace{0pt}}m{0.13\linewidth}|>{\centering\arraybackslash}m{0.1\linewidth}|>{\centering\arraybackslash\hspace{0pt}}m{0.14\linewidth}|>{\centering\arraybackslash}m{0.18\linewidth}|>{\centering\arraybackslash}m{0.13\linewidth}|>{\centering\arraybackslash}m{0.12\linewidth}|>{\centering\arraybackslash}m{0.06\linewidth}|}
