Quebra de palavras de qualquer ponto da palavra para todo o documento ou especificamente para tabelas

Quebra de palavras de qualquer ponto da palavra para todo o documento ou especificamente para tabelas

Eu tenho um monte de tabelas de markdown como esta abaixo, e elas estão sendo convertidas em PDF usando pandocum modelo de PDF LaTeX.

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

Portanto, quando há palavras longas ou algum tipo de código longo nas células da tabela, a saída que estou obtendo é algo como as imagens abaixo. Eles estão sendo cortados ou transbordando para a próxima coluna.

img1

insira a descrição da imagem aqui

O que eu preciso é de uma maneira de permitir que as palavras separem qualquer letra. Também não deve haver hifenização, então estou usando \usepackage[none]{hyphenat}para isso.
Então, no final, o que eu quero é algo assim:

insira a descrição da imagem aqui

Como eu disse, o conteúdo do markdown está sendo convertido em código látex automaticamente, então não acho que possa usar algo como \seqsplit{longword}. Não tenho certeza se é possível, mas preciso de algo que permita a quebra de palavras para todo o documento ou direcione apenas as tabelas...

Responder1

Provavelmente não é uma resposta final, nesta fase, mas é muito longa para um comentário. Lembro-me e tenho um arquivo allhyph.tex com padrões de hifenização para pontos de hifenização após todos os 256 caracteres nas fontes do TeX do dia. Não consigo encontrá-lo no CTAN ou na pesquisa na web, então posso até tê-lo escrito. (O oposto zerohyph.tex deve ser carregado como linguagem "nohifenização".)

Mas descobri outro truque que usa regras comuns (padrão) de hifenização em inglês. Os padrões sempre permitem a hifenização após a letra l(ell). Portanto, às custas de nunca poder usar \lowercaseou \MakeLowercase, defina o código minúsculo de cada caractere para o código de l (108). A seguir está um exemplo destinado à codificação da fonte T1. Lidar com codificações de fontes grandes exigiria uma lista mais longa de pontos de código de caracteres.

O próximo ingrediente que você precisa é definir o caractere hífen da fonte (para todas as fontes) como um caractere em branco com largura pequena ou zero. Esse é o \textcompoundwordmark.

Mais duas coisas: você precisa dizer ao LaTeX para hifenizar as palavras mesmo no final; e você precisa permitir a hifenização na primeira palavra de um parágrafo (geralmente evitada).

\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}

Isso não introduzirá quebras de linha onde nenhuma é permitida, é claro! Imagine \mbox{ }. Mais importante para a questão, a maioria dos tipos de colunas tabulares são semelhantes \mboxe evitam todas as quebras de linha. Sugiro mudar os ambientes tabulares para tabularx e usar todos os tipos de coluna X, ou tipos derivados disso (como para centralização), como

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

Para tornar algumas colunas proporcionalmente mais estreitas ou mais largas que outras colunas X, você pode verCentralizando em colunas tabularx

informação relacionada