Glaskugel: rotierte tabularx zu schmal

Tabellen und Grafiken erstellen und anordnen


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Glaskugel: rotierte tabularx zu schmal

Beitrag von MoonKid »

Vorsicht, das hier wird ne Glaskugelgeschichte ohne Minimalbeispiel. Ich bekomme es einfach nicht hin, dass in einem MWE zu reproduzieren. Auch die schrittweise Reduktion des Originalcodes ist nicht ausreichend. Das ist noch viel zu viel und voller Daten (~350 Zeilen) - möchte das Forum damit nicht zubomben. Aber vielleicht kommt euch das Problem bekannt vor und da steckt ein "Standard-Fehler" dahinter. ;)

Der Inhalt der untenstehenden Tabelle stammt aus einer OpenDocument Tabelle und wird mit einem Python Script in TexCode umgewandelt. Es sind 7 Datensätze mit viel Text. Bis zum 6. Datensatz sah das auch alles hübsch aus (mehr dazu unten).

Aussehen tut das Problem so:
Bild

Hier mal ein Ausschnitt des Codes:
\documentclass{scrartcl}
\usepackage{mwe}
%% Seitenlayout
\makeatletter
\usepackage{geometry}
\geometry{left=35mm,right=25mm,
          top=25mm,bottom=20mm,
          %showframe
      }
\makeatother

\usepackage{ltablex} % tabularx & longtable
\usepackage{pdflscape} % rotierte Tabelle und Seitenansicht
\usepackage{rotating}
\usepackage{multirow}
\usepackage{booktabs}

%% Document %%
\begin{document}
\begin{tiny}
    \begin{landscape}
    %% Spaltendefinition stammt von https://en.wikibooks.org/wiki/LaTeX/Tables#The_tabularx_package
    %% sum of width coeficent must be the count of columns
    \newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}%
    \newcolumntype{R}[1]{>{\hsize=#1\hsize\raggedleft\arraybackslash}X}%
    \newcolumntype{C}[1]{>{\hsize=#1\hsize\centering\arraybackslash}X}%
    \begin{tabularx}{\linewidth}{C{0.3}L{1.4}L{1.1}L{1.1}L{1.1}}
    \toprule
...
&\multicolumn{2}{L{2.5}}{...}&\multicolumn{2}{L{2.2}}{...}\\
...
&\multicolumn{4}{L{4.7}}{...}\\
Wie gesagt, ging das bis zum 6. Datensatz gut. Beim 7. tauchte das Problem auf. Ok, natürlich hab ich rumprobiert, weil ich dachte am 7. Datensatz sei was verkehrt. Aber ich kann das Problem auch reproduzieren, wenn ich nur Datensatz 2-5 in die Tabelle stecke. Nehme ich nur den 7. tauch das Problem nicht auf. Es liegt also nicht direkt am Inhalt der Datensätze bzw. irgendwelcher Codefehler darin. Werd verrückt. :shock:

Hab auch versuchsweise die Daten selbst manipuliert. Zeilenumbrüche rausgenommen, Text reduziert etc.

Dachte auch es liegt evtl. daran, dass ein mutlicolumn zu hoch wird und beim Seitenumbruch Probleme macht. Konnte aber auch diese Idee nicht simulieren.

Hab sogar schon Herrn Oberdierk (maintainer von [pkg]pdflscape[/pkg]) direkt angeschrieben - was ja sonst nicht meine Art ist.

Ideen? Vorschläge? ;)[/i]
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Ok hab jetzt mal in Minimalbeispiel produziert - mit dem sich das Problem aber nicht reproduzieren lässt.
%% XeTeX
\documentclass{scrartcl}
\usepackage{mwe}
%% Seitenlayout
\makeatletter
\usepackage{geometry}
\geometry{left=35mm,right=25mm,
          top=25mm,bottom=20mm,
          %showframe
      }
\makeatother

\usepackage{ltablex} % tabularx & longtable
\usepackage{pdflscape} % rotierte Tabelle und Seitenansicht
\usepackage{rotating}
\usepackage{multirow}
\usepackage{booktabs}

%% Document %%
\begin{document}
\begin{small}
    \begin{landscape}
    %% Spaltendefinition stammt von https://en.wikibooks.org/wiki/LaTeX/Tables#The_tabularx_package
    %% sum of width coeficent must be the count of columns
    \newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}%
    \newcolumntype{R}[1]{>{\hsize=#1\hsize\raggedleft\arraybackslash}X}%
    \newcolumntype{C}[1]{>{\hsize=#1\hsize\centering\arraybackslash}X}%
    \begin{tabularx}{\linewidth}{C{0.3}L{1.4}L{1.1}L{1.1}L{1.1}}  % Summe 5
    \toprule
    &\bfseries{FZ}&\bfseries{CS}&\bfseries{CT}&\bfseries{MI}\\\toprule\endhead
        key&fz&ChS&ChT&MI\\
        &\multicolumn{2}{L{2.5}}{HE: \blindtext}
        &\multicolumn{2}{L{2.2}}{O: \blindtext}\\
        &\multicolumn{4}{L{4.7}}{T: \blindtext}\\
        \midrule
    \end{tabularx}
    \end{landscape}
\end{small}
\end{document}
Er Oberdierk meinte die Zahlen in der Spaltendefinition der mutlicolumns sind völlig falsch. Hab ein bisschen (planlos) rumprobiert, aber komme im Originalcode zu keinem lesbaren ergebnis.
  • Hab bei den Multicolumns ein X als Definiton gemacht.
  • Hab auch einfach mal p-Spalten mit festen cm für die 5 Originalspalten probiert.
  • Und ich habe die Zahlen in der mutlicolumn Defintiion mal so gewählt, das in der Summe weniger als 5 rauskommt.
Ich verstehe auch, dass die Breite einer Zelle aus mehr als nur einem Wert besteht (z.B. rand an beiden Seiten, Dicke des Begrenzungsstrichs). Aber in dem Fall hier fehlt es mir offensichtlich an der notwendigen Transformation meines (Halb)Wissens in die Praixs.

Ich blick nicht so durch hier. Sorry.
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 689
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Hier scheint das Problem gelöst zu sein.
XeLaTeX, TeX Live, vim-latexsuite

Antworten