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 '16, 20:14

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 16 Jan '16, 04: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 '16, 17:05

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 18 Jan '16, 18: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 '16, 19: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 '16, 20:02) saputello

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

(18 Jan '16, 05: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 '16, 07:43) saputello
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×256
×39

gestellte Frage: 15 Jan '16, 20:14

Frage wurde gesehen: 8,347 Mal

zuletzt geändert: 18 Jan '16, 18:19