Разрыв слов в любой точке слова во всем документе или только в таблицах

Разрыв слов в любой точке слова во всем документе или только в таблицах

У меня есть несколько таблиц Markdown, таких как эта, и они конвертируются в PDF с помощью pandocшаблона LaTeX PDF.

| Column1                                                                                                                           | Column2        | Column3 | Column4 | Column5             | Column6                                                                                                     | Column7          | Column8                                                                                | Column9                                         | Column10                                                                                                                |
|-----------------------------------------------------------------------------------------------------------------------------------|----------------|---------|---------|---------------------|-------------------------------------------------------------------------------------------------------------|------------------|----------------------------------------------------------------------------------------|-------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| Lorem Ipsum verylongwordwithnospacehere simply dummy text of the printing and typesetting indust                                  | Lor            | Lor     | L       | Lor                 | Lorem Ipsum is simply dumm                                                                                  | Lorem Ipsum i    | Lorem Ipsum is simply 9834JKEMKWJ4334DWEE44 the printing and typesetting industry. Lo  | Lorem Ipsum is simply dummy text of the printin | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard |
| Lorem Ipsum is simply dummy text of the printing anotherverylongwordwithoutspace                                                  | Lor            | Lor     | L       | Lor                 | Lorem Ipsum is simply dummy                                                                                 | Lorem Ipsum i    | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsu  | Lorem Ipsum is simply dummy text of the printin | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard |
| Lorem Ipsum is simply dummy Q034DJSKJ32492139DK                                                                                   | Lor            | Lor     | L       | Lor                 | Lorem Ipsum is simply dummy t                                                                               | Lorem Ipsum i    | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsu  | Lorem Ipsum is simply dummy text of the printin | Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard |

Так что когда в ячейках таблицы есть длинные слова или какие-то длинные коды, вывод, который я получаю, похож на картинки ниже. Они либо вырезаются, либо перетекают в следующий столбец.

img1

введите описание изображения здесь

Мне нужен способ, позволяющий переносить слова с любой буквы. Также не должно быть переносов, поэтому я использую \usepackage[none]{hyphenat}для этого.
В итоге я хочу что-то вроде этого:

введите описание изображения здесь

Как я уже сказал, содержимое markdown автоматически преобразуется в код latex, поэтому я не думаю, что смогу использовать что-то вроде \seqsplit{longword}. Я не совсем уверен, возможно ли это, но мне нужно что-то, что позволит разбивать текст на слова для всего документа или только для таблиц...

решение1

Вероятно, это не окончательный ответ на данном этапе, но слишком длинный для комментария. Я помню и имею файл allhyph.tex с шаблонами переносов для точек переноса после всех 256 символов в шрифтах для TeX того времени. Я не могу найти его на CTAN или с помощью веб-поиска, так что, возможно, я даже написал его. (Противоположный zerohyph.tex должен быть загружен как язык "nohyphenation".)

Но есть еще один трюк, который я нашел, который использует обычные (по умолчанию) правила переноса английского языка. Шаблоны всегда разрешают перенос после буквы l(ell). Поэтому, ценой невозможности использовать \lowercaseили \MakeLowercase, установите нижний регистр-код для каждого символа на код для l (108). Ниже приведен пример, предназначенный для кодировки шрифта T1. Работа с большими кодировками шрифтов потребует более длинного списка кодовых точек символов.

Следующий ингредиент, который вам нужен, это установить символ дефиса для шрифта (для всех шрифтов) как маленький или нулевой ширины пробельный символ. Это \textcompoundwordmark.

Еще две вещи: вам нужно указать LaTeX переносить слова даже в конце; и вам нужно разрешить переносы в первом слове абзаца (обычно это запрещено).

\documentclass{article}
\usepackage[T1]{fontenc} % require \textcompwordmark
\usepackage[english]{babel}

\makeatletter
\newcount\lccodepoint
\def\setAllBreak{\lccodepoint=33 \@whilenum{\lccodepoint<256}\do
       {\lccode\lccodepoint=`\l\advance\lccodepoint\@ne}%
    \lefthyphenmin\@ne \righthyphenmin\@ne
    \hyphenchar\font=\csname\f@encoding\string\textcompwordmark\endcsname
}
\g@addto@macro\selectfont{\setAllBreak}
\AtBeginDocument{\setAllBreak}

% That finishes the setup, except for \everypar below.

\setlength\textwidth{2pt}% ultra-narrow for testing
\setlength\parskip{8pt}

\begin{document}

% This allows hyphenation of the first word in the paragraph
% but can't be in preamble
\everypar{\nolinebreak\hspace{0pt}}

abracadabra

\noindent abracadabra \emph{wowzers}

\end{document}

Это не приведет к появлению переносов строк, где они, конечно, не допускаются! Подумайте о \mbox{ }. Что еще важнее для вопроса, большинство типов столбцов в табличном формате похожи \mboxи предотвращают все переносы строк. Я предлагаю переключить табличную среду на tabularx и использовать все типы столбцов X или производные от них типы (для центрирования), например

\newcolumntype{C}{>{\centering\arraybackslash}X}

Чтобы сделать некоторые столбцы пропорционально уже или шире других столбцов X, вы можете увидетьЦентрирование в столбцах tabularx

Связанный контент