Seite 1 von 1

feste Höhe und Breite und vertikal und horizontal zentriert

Verfasst: Fr 10. Mär 2017, 20:26
von zackdvd
Hi,
ich google das jetzt schon was länger und habe fast eine schön kompakte Lösung, aber die letzte Spalte will noch nicht! Ich flip gleich aus...
Quasi benötige ich eine 4x4 Matrix, in der beliebiger Text Mittig angezeigt wird.
Anscheinend keine leichte Aufgabe...


\documentclass[a4paper]{article}

\usepackage[margin=1.0in]{geometry}% http://ctan.org/pkg/margin
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{array}% http://ctan.org/pkg/array
\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.25\linewidth-2\tabcolsep}}

\newcommand{\seth}{\linewidth}


\begin{document}

\begin{table}[ht]
  \centering
  \begin{tabular}{|M|M|M|M|}
%    \toprule
	\hline
	ABC   & B & D & Test \\[\seth]
	\hline
    A & One & Two & Three \\ [\seth]
	\hline
    B & Three & One & Two \\ [\seth]
	\hline
    C & Two & Three & One \\ [\seth]
	\hline
  %  \bottomrule
  \end{tabular}
\end{table}
\end{document}​
Und das mit hinter jeder Zeile die linewidth setzen ist auch von mir, funktioniert aber kurioserweise.

Verfasst: Sa 11. Mär 2017, 02:53
von Bartman
Wie wäre es mit einer zusätzlichen leeren Spalte?
\documentclass[a4paper]{article}

\usepackage[margin=1.0in]{geometry}
\usepackage{booktabs}
\usepackage{array}

\newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr.25\linewidth-2\tabcolsep}}
\newcommand{\seth}{2cm}

\begin{document}
\begin{table}[htbp]
  \centering
  \begin{tabular}{|M|M|M|M|@{}m{0pt}@{}}
%    \toprule
   \hline
   ABC   & B & D & Test & \\[\seth]
   \hline
    A & One & Two & Three & \\ [\seth]
   \hline
    B & Three & One & Two & \\ [\seth]
   \hline
    C & Two & Three & One & \\ [\seth]
   \hline
  %  \bottomrule
  \end{tabular}
\end{table}
\end{document}

Verfasst: Sa 11. Mär 2017, 13:50
von Gast
Man muss nicht immer Tabellen verwenden:
\documentclass{article}

\newcommand*{\arraybox}[1]{%
  \fbox{\parbox[tt][2cm][c]{\dimexpr(\linewidth-2\fboxsep-2\fboxrule)/4}{\centering #1\par}}\hskip0pt % Das \hskip ermöglicht einen Zeilenumbruch
}

\begin{document}
\begingroup
  \lineskip0pt% kein vertikaler Abstand zwischen den Boxen
  \noindent\arraybox{top left}\arraybox{top somehow left}%
  \arraybox{top somehow right}\arraybox{top right}%
  \arraybox{higher left}\arraybox{higher more left}%
  \arraybox{higher more right than left}\arraybox{higher right}%
  \arraybox{lower left}\arraybox{lower more left than right}%
  \arraybox{lower more right}\arraybox{lower right}%
  \arraybox{bottom left}\arraybox{bottom somehow left}%
  \arraybox{bottom somehow right}\arraybox{bottom right}\par
\endgroup

\end{document}
Man könnte das auch mit dem adjustbox-Paket machen.

Verfasst: Sa 11. Mär 2017, 15:20
von u_fischer
Und das mit hinter jeder Zeile die linewidth setzen ist auch von mir, funktioniert aber kurioserweise.
Nun offensichtlich funktioniert es ja nicht ... Du verlässt dich da auf einen Seiteneffekt der Implementierung, der, wie du siehst, in der letzten Spalte nicht das tut, was du erwartest.