
Tengo un montón de tablas de rebajas como esta a continuación, y se están convirtiendo a PDF usando pandoc
una plantilla PDF de 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 |
Entonces, cuando hay palabras largas o algún tipo de código largo en las celdas de la tabla, el resultado que obtengo es algo parecido a las imágenes a continuación. O se cortan o se desbordan a la siguiente columna.
Lo que necesito es una forma de permitir que las palabras salten de línea a partir de cualquier letra. Tampoco debería haber separación de palabras, así que la estoy usando \usepackage[none]{hyphenat}
para eso.
Entonces al final lo que quiero es algo como esto:
Como dije, el contenido de rebajas se convierte automáticamente en código látex, por lo que no creo que pueda usar algo como \seqsplit{longword}
. No estoy muy seguro de si es posible, pero necesito algo que permita dividir palabras en todo el documento o que se dirija solo a las tablas...
Respuesta1
Probablemente no sea una respuesta definitiva en este momento, pero es demasiado larga para hacer un comentario. Recuerdo y tengo un archivo allhyph.tex con patrones de separación de palabras para los puntos de separación de palabras después de los 256 caracteres de las fuentes TeX del día. No puedo encontrarlo en CTAN ni mediante la búsqueda web, por lo que es posible que incluso lo haya escrito. (El opuesto zerohyph.tex debe cargarse como lenguaje "nohyphenation".)
Pero hay otro truco que encontré que utiliza reglas de separación de palabras en inglés ordinarias (predeterminadas). Los patrones siempre permiten la separación de palabras después de la letra l
(ell). Entonces, a costa de nunca poder usar \lowercase
o \MakeLowercase
, establezca el código en minúsculas para cada carácter en el código para l (108). A continuación se muestra un ejemplo destinado a la codificación de fuente T1. Tratar con codificaciones de fuentes grandes requeriría una lista más larga de puntos de código de caracteres.
El siguiente ingrediente que necesita es establecer el carácter de guión para la fuente (para todas las fuentes) para que sea un carácter en blanco pequeño o de ancho cero. Esa es la marca \textcompoundwordmark.
Dos cosas más son que tienes que decirle a LaTeX que separe las palabras con guiones incluso al final; y debe permitir la separación de palabras en la primera palabra de un párrafo (normalmente 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}
¡Esto no introducirá saltos de línea donde no se permiten ninguno, por supuesto! Pensar en \mbox{ }
. Lo más importante para la pregunta es que la mayoría de los tipos de columnas en formato tabular son similares \mbox
y evitan todos los saltos de línea. Sugiero cambiar los entornos tabulares a tabularx y usar todos los tipos de columnas X, o tipos derivados de eso (en cuanto a centrar), como
\newcolumntype{C}{>{\centering\arraybackslash}X}
Para hacer que algunas columnas sean proporcionalmente más estrechas o anchas que otras columnas X, puede verCentrado en columnas tabularx