Ausgehend von der Lösung von Henri habe ich die Tabelle erweitert und ein inzwischen recht vielversprechendes Ergebnis erhalten.

Hinweis: Ich habe \setlength\arrayrulewidth{4pt} eingestellt, damit man die Striche gut sieht.

Allerdings habe ich noch ein paar Probleme:

  • Die Lücken kommen durch Verwendung von des Zeilenumbruches bei \cline{2-8} \\ zustande. Wie muss der Befehl richtig angewendet werden?

  • Wie kürze ich die zu langen rules (rot durchgestrichen)

  • Wie erreiche ich, das nur die erste der Fünfen in der ersten Spalte angezeigt wird?

  • In der letzten Zeile fehlt ein Strich

IST ERGEBNIS

alt text

SOLL ERGEBNIS

alt text

CODE

Open in Online-Editor
\documentclass[varwidth, border=10pt]{standalone}
%\documentclass[paper=a5]{scrartcl}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[ngerman]{babel}

\usepackage{pgfplotstable}
\usepackage{amsmath, amssymb, amsfonts}% \binom
\usepackage{colortbl}% \rowcolor, \cellcolor
%\usepackage{multirow}
%\usepackage{hhline}
\usepackage{diagbox}  % \diagbox
\usepackage{booktabs} % individuelle rules in Tabellen
\usepackage{xcolor}

\usepackage{filecontents}

\begin{document}
\setlength\arrayrulewidth{4pt} % Um rules deutlich anzuzeigen

\begin{filecontents}{n5.txt}
0   0.5905  0.3277  0.2373  0.1681  0.0778  0.0313
1   0.9185  0.7373  0.6328  0.5282  0.3370  0.1875
2   0.9914  0.9421  0.8965  0.8369  0.6826  0.5000
3   0.9995  0.9933  0.9844  0.9692  0.9130  0.8125
4   1.0000  0.9997  0.9990  0.9976  0.9898  0.9688
\end{filecontents}

% Erste Zeile ========================
\def\SumBinVertFormel{%
$ \begin{matrix}
\displaystyle P(X\leq k) 
= 
\sum_{v=0}^k \binom{n}{v} p^v (1-p)^{n-v} \\
\tiny{
\text{Nicht aufgeführte Werte sind (gerundet auf $4$ Dezimalstellen) gleich $1.0000$}
}
\end{matrix}$
}%
% --------------------------
\newcommand\ErsteZeile{%
\cline{2-8}\\
 &
\multicolumn{7}{l|}{\cellcolor{pink} \SumBinVertFormel} \\ 
 & \cline{1-7}
\rowcolor{pink}
}%
% ==============================

% Letzte Zeile ========================
\newcommand\LetzteZeile{%
\cline{2-8} \\
\rowcolor{lightgray} 
\cellcolor{white} &  \cellcolor{white} &  $0{,}9$ & $0{,}8$ & $0{,}75$ & $0{,}7$ & $0{,}6$ &  $0{,}5$ & \diagbox{$p$}{$k$}  \\
   \rowcolor{lightgray} 
\cellcolor{white} &  \cellcolor{white} & \multicolumn{7}{l|}{\tiny{Bei grau unterlegtem Eingang, d.h. $p \geq 0{,}5$:   $P(X\leq k) = 1 -\langle\texttt{Ablesewert}\rangle$}} \\ 
 & \cline{2-8} 
}%
% ==============================

% n festlegen =======================
\def\n{5}
% ==============================

% 1sen ausblenden ====================
\pgfplotstableset{
  discard if equal/.style = {
    preproc cell content/.code={
      \ifdim##1pt=#1pt
        \pgfkeyssetvalue{/pgfplots/table/@cell content}{}
      \fi
    }
  },
}
% ==============================

\pgfplotstabletypeset[
fixed zerofill, precision=4,
% --------------------------
% Erste Zeile definieren
every head row/.style = {
before row={\ErsteZeile},  
after row=\hline
},
% --------------------------
% Letzte Zeile definieren
every last row/.style = { 
after row={\LetzteZeile}, 
}, 
% --------------------------
% Erste n-Spalte definieren
create on use/nSpalte/.style={%
  create col/expr={5},
  column type={c},
%  precision=0,
},%
columns/nSpalte/.style={column name={\cellcolor{white}$n$}, precision=0},
% --------------------------
% Zweite k-Spalte definieren
columns/0/.style = {
  column name={\diagbox{$k$}{$p$}},
  precision=0,
  column type={|>{\cellcolor{pink}}c|},
},
% --------------------------
% Letzte kSym-Spalte definieren
create on use/kSym/.style={%
  create col/expr={\n-1-\thisrow{0}},
},%
columns/kSym/.style={%
  column name={\cellcolor{white}}, %$n-1-k$
  column type={|>{\cellcolor{lightgray}}c|},
  precision=0
},%
% --------------------------
% Übrige Spalten benenen
columns/1/.style = {column name={$0.1$},discard if equal={1.0}},
columns/2/.style = {column name={$0.2$},discard if equal={1.0}},
columns/3/.style = {column name={$0.25$},discard if equal={1.0}},
columns/4/.style = {column name={$0.3$},discard if equal={1.0}},
columns/5/.style = {column name={$0.4$},discard if equal={1.0}},
columns/6/.style = {column name={$0.5$},discard if equal={1.0}},
% --------------------------
% Einsen beseitigen
%discard if equal={1.0}, % ToDo: Wie nur auf columns 1-6 anwenden?
% --------------------------
% "Null Komma" in Tabelle beseitigen
% ToDo....
% --------------------------
% Angezeigte Spalten definieren
columns={nSpalte,0,1,2,3,4,5,6,kSym} %IST 
%columns={nSpalte, 0,1,2,3,4,5,6,kSym}, %SOLL
]{n5.txt}
\end{document}

gefragt 15 Jan, 14:14

cis's gravatar image

cis
5.4k860169
Akzeptiert: 68%

bearbeitet 15 Jan, 22:47


Dein Hauptproblem liegt darin, dass Du bereits vor \cline immer wieder Zeilen durch Verwendung eines & beginnst, wo Du gar keine eigene Zeile haben willst, sondern nur die Linie und ggf. eine Farbe deklarieren. Das andere Problem ist dann das schon aus »Wie verhindere ich das colortbl rules übermalt?« bekannte Problem der Überdeckung von Farbe und Linien. Zur Beseitigung vertikaler Linien bietet sich immer eine einspaltige \multicolumn an, bei der man lediglich die Spaltendeklaration, um die Linie erleichtert. Hier daher erneut ein Ansatz mit hhline:

Open in Online-Editor
\documentclass[varwidth, border=10pt]{standalone}
%\documentclass[paper=a5]{scrartcl}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[ngerman]{babel}

\usepackage{pgfplotstable}
\usepackage{amsmath, amssymb, amsfonts}% \binom
\usepackage{colortbl}% \rowcolor, \cellcolor
%\usepackage{multirow}
%\usepackage{hhline}
\usepackage{diagbox}  % \diagbox
\usepackage{hhline}
\usepackage{xcolor}

\usepackage{filecontents}

\begin{document}
\setlength\arrayrulewidth{4pt} % Um rules deutlich anzuzeigen

\begin{filecontents}{n5.txt}
0   0.5905  0.3277  0.2373  0.1681  0.0778  0.0313
1   0.9185  0.7373  0.6328  0.5282  0.3370  0.1875
2   0.9914  0.9421  0.8965  0.8369  0.6826  0.5000
3   0.9995  0.9933  0.9844  0.9692  0.9130  0.8125
4   1.0000  0.9997  0.9990  0.9976  0.9898  0.9688
\end{filecontents}

% Erste Zeile ========================
\def\SumBinVertFormel{%
$ \begin{matrix}
\displaystyle P(X\leq k) 
= 
\sum_{v=0}^k \binom{n}{v} p^v (1-p)^{n-v} \\
{\tiny
\text{Nicht aufgeführte Werte sind (gerundet auf $4$ Dezimalstellen) gleich $1.0000$}
}
\end{matrix}$
}%
% --------------------------
\newcommand\ErsteZeile{%
\hhline{~|-------|}
 &
\multicolumn{7}{l|}{\cellcolor{pink} \SumBinVertFormel} \\ 
\hhline{~|-------|}
\rowcolor{pink}
}%
% ==============================

% Letzte Zeile ========================
\newcommand\LetzteZeile{%
\hhline{~|-------|-|}
\rowcolor{lightgray} 
\multicolumn1c{\cellcolor{white}} &  \cellcolor{white} &  $0{,}9$ & $0{,}8$ & $0{,}75$ & $0{,}7$ & $0{,}6$ &  $0{,}5$ & \diagbox{$p$}{$k$}  \\
   \rowcolor{lightgray} 
\multicolumn1c{\cellcolor{white}} &  \multicolumn1{c|}{\cellcolor{white}} & \multicolumn{6}{l|}{{\tiny Bei grau
    unterlegtem Eingang, d.h. $p \geq 0{,}5$:   $P(X\leq k) = 1
    -\langle\texttt{Ablesewert}\rangle$}} & \\ 
\hhline{~~|-------|}
}%
% ==============================

% n festlegen =======================
\def\n{5}
% ==============================

% 1sen ausblenden ====================
\pgfplotstableset{
  discard if equal/.style = {
    preproc cell content/.code={
      \ifdim##1pt=#1pt
        \pgfkeyssetvalue{/pgfplots/table/@cell content}{}
      \fi
    }
  },
}
% ==============================

\pgfplotstabletypeset[
fixed zerofill, precision=4,
% --------------------------
% Erste Zeile definieren
every head row/.style = {
before row={\ErsteZeile},  
after row=\hline
},
% --------------------------
% Letzte Zeile definieren
every last row/.style = { 
after row={\LetzteZeile}, 
}, 
% --------------------------
% Erste n-Spalte definieren
create on use/nSpalte/.style={%
  create col/expr={5},
  column type={c},
%  precision=0,
},%
columns/nSpalte/.style={column name={\cellcolor{white}$n$}, precision=0},
% --------------------------
% Zweite k-Spalte definieren
columns/0/.style = {
  column name={\diagbox{$k$}{$p$}},
  precision=0,
  column type={|>{\cellcolor{pink}}c|},
},
% --------------------------
% Letzte kSym-Spalte definieren
create on use/kSym/.style={%
  create col/expr={\n-1-\thisrow{0}},
},%
columns/kSym/.style={%
  column name={\multicolumn1c{\cellcolor{white}}}, %$n-1-k$
  column type={|>{\cellcolor{lightgray}}c|},
  precision=0
},%
% --------------------------
% Übrige Spalten benenen
columns/1/.style = {column name={$0.1$},discard if equal={1.0}},
columns/2/.style = {column name={$0.2$},discard if equal={1.0}},
columns/3/.style = {column name={$0.25$},discard if equal={1.0}},
columns/4/.style = {column name={$0.3$},discard if equal={1.0}},
columns/5/.style = {column name={$0.4$},discard if equal={1.0}},
columns/6/.style = {column name={$0.5$},discard if equal={1.0}},
% --------------------------
% Einsen beseitigen
%discard if equal={1.0}, % ToDo: Wie nur auf columns 1-6 anwenden?
% --------------------------
% "Null Komma" in Tabelle beseitigen
% ToDo....
% --------------------------
% Angezeigte Spalten definieren
columns={nSpalte,0,1,2,3,4,5,6,kSym} %IST 
%columns={nSpalte, 0,1,2,3,4,5,6,kSym}, %SOLL
]{n5.txt}
\end{document}

alt text

Übrigens: \tiny ist kein Befehl mit einem Argument!

Permanenter link

beantwortet 16 Jan, 11:05

saputello's gravatar image

saputello
18.4k22352

bearbeitet 18 Jan, 12:19

Wenn man übrigens von der standalone- zur article-Klasse wechselt, sind manche der rules wieder weg (im AdobeReader), beim Ausdruck sind sie wieder da... Mmhh, das ist doch verflixt.

(16 Jan, 13:22) cis
2

@cis: Der AdobeReader ist bekannt dafür, dass er in jeder Version und in jeder Vergrößerungsstufe und bei jeder Bildschirmauflösung etwas anderes anzeigt.

(16 Jan, 14:02) saputello

Kann das sein, dass die | z.B. bei \hhline{~|-------|-|} gar keinen Effekt haben. Wenn ich sie rausnehme, passiert nichts.

(17 Jan, 23:49) cis
1

@cis: Die horizontalen Linien von - sind nur so lang wie die Zelle. Die | zeichnen dann die kleinen Stücke, die auf Höhe der vertikalen Linien benötigt werden. Wenn die fehlen, fällt das manchmal nicht auf den ersten Blick auf. Bei durchgehenden vertikalen Linien spielt es in der Tat auch teilweise keine Rolle. Bei nicht durchgehenden Linien aber schon:

falscher Linienanfang

(18 Jan, 01:43) saputello
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×11

Frage gestellt: 15 Jan, 14:14

Frage wurde angeschaut: 1,033 Mal

Zuletzt aktualisiert: 18 Jan, 12:19