
Ich habe eine Reihe von Markdown-Tabellen wie die folgende und sie werden mithilfe pandoc
einer LaTeX-PDF-Vorlage in PDF konvertiert.
| 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 |
Wenn also lange Wörter oder lange Codes in Tabellenzellen vorkommen, ist die Ausgabe, die ich erhalte, ungefähr wie in den Bildern unten. Sie werden entweder ausgeschnitten oder in die nächste Spalte verschoben.
Was ich brauche, ist eine Möglichkeit, Wörter bei jedem Buchstaben umzubrechen. Es sollte auch keine Silbentrennung geben, also verwende ich \usepackage[none]{hyphenat}
dafür.
Am Ende möchte ich also so etwas wie das hier:
Wie gesagt wird der Markdown-Inhalt automatisch in Latex-Code umgewandelt, daher glaube ich nicht, dass ich so etwas verwenden kann \seqsplit{longword}
. Ich bin nicht ganz sicher, ob es möglich ist, aber ich brauche etwas, das die Worttrennung für das gesamte Dokument ermöglicht oder nur auf die Tabellen abzielt ...
Antwort1
Wahrscheinlich noch keine endgültige Antwort, aber zu lang für einen Kommentar. Ich erinnere mich an eine Datei allhyph.tex mit Trennmustern für Trennpunkte nach allen 256 Zeichen in den damaligen Schriftarten für TeX und habe sie auch. Ich kann sie weder auf CTAN noch per Websuche finden, also habe ich sie vielleicht sogar selbst geschrieben. (Die gegenüberliegende Datei zerohyph.tex sollte als Sprache „nohyphenation“ geladen werden.)
Aber ich habe noch einen anderen Trick gefunden, der normale (Standard-) englische Silbentrennungsregeln verwendet. Die Muster erlauben immer eine Silbentrennung nach dem Buchstaben (ell). Setzen Sie also den Kleinbuchstabencode für jedes Zeichen auf den Code für l (108), auch wenn Sie nie oder l
verwenden können . Das Folgende ist ein Beispiel für die T1-Schriftkodierung. Für die Verarbeitung großer Schriftkodierungen wäre eine längere Liste von Zeichencodepunkten erforderlich.\lowercase
\MakeLowercase
Als nächstes müssen Sie das Bindestrichzeichen für die Schriftart (für alle Schriftarten) auf ein kleines oder leeres Zeichen mit der Breite Null setzen. Das ist das \textcompoundwordmark.
Außerdem müssen Sie LaTeX anweisen, Wörter auch am Ende zu trennen. Außerdem müssen Sie die Silbentrennung im ersten Wort eines Absatzes zulassen (normalerweise verhindert).
\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}
Dies führt natürlich keine Zeilenumbrüche ein, wo keine erlaubt sind! Denken Sie an \mbox{ }
. Wichtiger für die Frage ist, dass die meisten Spaltentypen in tabular wie sind \mbox
und alle Zeilenumbrüche verhindern. Ich schlage vor, die tabular-Umgebungen auf tabularx umzustellen und alle X-Spaltentypen oder davon abgeleitete Typen (wie für die Zentrierung) zu verwenden, wie
\newcolumntype{C}{>{\centering\arraybackslash}X}
Um einige Spalten proportional schmaler oder breiter als andere X-Spalten zu machen, können Sie sehenZentrieren in Tabularx-Spalten