Anzeige:
Ergebnis 1 bis 11 von 11

Thema: vertikal zentrierter Tabelleninhalt - letze-Spalte-Bug

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.04.2008
    Beiträge
    6

    vertikal zentrierter Tabelleninhalt - letze-Spalte-Bug

    Mit frischem Account hoffe ich, dass mir geholfen werden kann...

    ich habe eine Tabelle erstellt deren Spalteninhalt vertikalt zentriert sein soll. (array-package; spaltentyp m{})
    Kurios erscheint mir allerdings das die letzte Spalte sich dennoch nicht an den m-Spaltentyp zu halten scheint... Füge ich eine weitere "Pseudospalte" dahinter ein, so ist der Inhalt der nun vorletzen Spalte in der Tat vertikal zentriert...

    hier eine der besagten Tabellen

    Code:
    \begin{table}[htbp]
    \caption{pin assignment of the 8 pin DIN connector}
    \begin{center}
    \begin{tabular}{|>{\centering}m{1.2cm}|m{1.6cm}|m{2.0cm}|m{5.0cm}|}
    \hline
    pin & color  & at encoder & description                     \\[6pt] \hline
    1   & ------ & ---------- & $\langle empty \rangle$         \\[6pt] \hline
    2   & yellow & 8 (gray)   & Encoder channel B               \\[6pt] \hline
    3   & white  & 7 (violet) & Encoder channel $\overline{B}$  \\[6pt] \hline
    4   & blue   & 6 (blue)   & Encoder channel A               \\[6pt] \hline
    5   & green  & 5 (green)  & Encoder channel $\overline{A}$  \\[6pt] \hline
    6   & ------ & ---------- & $\langle empty \rangle$         \\[6pt] \hline
    7   & red    & 2 (red)    & Encoder power supply (+5V)      \\[6pt] \hline
    8   & black  & 3 (orange) & GND                             \\[6pt] \hline
    \end{tabular}
    \end{center}
    \label{encoder pins}
    \end{table}
    Ich zweifel mal nicht am array-package und bin für jeden hinweis dankbar

  2. #2
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Zeilenhöhe anpassen

    Zitat Zitat von kermit_frosch Beitrag anzeigen
    Mit frischem Account hoffe ich, dass mir geholfen werden kann [...]
    Verstehe ich nicht. Vielleicht kannst Du das mal erklären. Eine altes Thema kann auch wieder hervorgekramt werden.
    Zitat Zitat von kermit_frosch Beitrag anzeigen
    [...] Ich zweifel mal nicht am array-package und bin für jeden hinweis dankbar
    Dazu besteht auch kein Grund. Du setzt nur die vorhandenen Möglichkeiten falsch ein. Wenn Du einer Zeile noch zusätzliche Höhe verschaffen willst, gibt es dafür einen passenderen Befehl aus array.
    Code:
    \begin{table}[!ht]
      \centering
      \setlength{\extrarowheight}{3pt}  % Für globale Änderung in den Vorspann einfügen
      \caption{pin assignment of the 8 pin DIN connector}\label{tab:encoder-pins}
      \begin{tabular}{|>{\centering}m{1.2cm}|m{1.6cm}|m{2.0cm}|m{5.0cm}|}\hline
        pin & color  & at encoder & description                     \\ \hline
        1   & ------ & ---------- & $\langle empty \rangle$         \\ \hline
        2   & yellow & 8 (gray)   & Encoder channel B               \\ \hline
        3   & white  & 7 (violet) & Encoder channel $\overline{B}$  \\ \hline
        4   & blue   & 6 (blue)   & Encoder channel A               \\ \hline
        5   & green  & 5 (green)  & Encoder channel $\overline{A}$  \\ \hline
        6   & ------ & ---------- & $\langle empty \rangle$         \\ \hline
        7   & red    & 2 (red)    & Encoder power supply (+5V)      \\ \hline
        8   & black  & 3 (orange) & GND                             \\ \hline
      \end{tabular}
    \end{table}
    Ursache waren die 6pt zusätzlicher Abstand nach unten hinter dem Zeilenumbruch. Der wirkt sich nachträglich nur auf die letzte Spalte aus und schiebt deren Inhalte nach oben. Nützliche Hinweise zum Satz von Tabellen gibt es in tabsatz.


    MfG
    Thorsten¹
    Geändert von localghost (06-04-2008 um 14:06 Uhr) Grund: Ergänzung.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  3. #3
    Registrierter Benutzer
    Registriert seit
    06.04.2008
    Beiträge
    6
    Zitat Zitat von localghost Beitrag anzeigen
    Verstehe ich nicht. Vielleicht kannst Du das mal erklären. Eine altes Thema kann auch wieder hervorgekramt werden.
    huch, hab ich mich dumm ausgegrückt: ich bin neu im forum, deswegen der frische account...

    danke für den hinweis mit \extrarowheight - allerdings fügt der befehl wohl "platz nach oben" hinzu - sodass der inhalt trotz m{} nicht mehr zentriert ist.
    verblüffenderweise ist sogar der inhalt einer b{}-spalte mittiger als der einer m{}-spalte...

    gibts denn nicht 'ne möglichkeit die zellenhöhe explizit festzulegen?

    danke für deine hilfe, kermit

  4. #4
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Nicht nachvollziehbar

    Zitat Zitat von kermit_frosch Beitrag anzeigen
    [...] danke für den hinweis mit \extrarowheight - allerdings fügt der befehl wohl "platz nach oben" hinzu - sodass der inhalt trotz m{} nicht mehr zentriert ist.
    verblüffenderweise ist sogar der inhalt einer b{}-spalte mittiger als der einer m{}-spalte [...]
    Das kann ich so nicht nachvollziehen. Bei mir läuft das fehlerfrei. Der Befehl erhöht die Zeile übrigens nicht nur nach oben. Vielleicht kannst Du das beschriebene Verhalten mal mit einem lauffähigen Minimalbeispiel erläutern.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  5. #5
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von localghost Beitrag anzeigen
    Das kann ich so nicht nachvollziehen. Bei mir läuft das fehlerfrei. Der Befehl erhöht die Zeile übrigens nicht nur nach oben. Vielleicht kannst Du das beschriebene Verhalten mal mit einem lauffähigen Minimalbeispiel erläutern.
    \extrarowheight erhöht nur nach oben

    Herbert

  6. #6
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von kermit_frosch Beitrag anzeigen
    huch, hab ich mich dumm ausgegrückt: ich bin neu im forum, deswegen der frische account...

    danke für den hinweis mit \extrarowheight - allerdings fügt der befehl wohl "platz nach oben" hinzu - sodass der inhalt trotz m{} nicht mehr zentriert ist.
    verblüffenderweise ist sogar der inhalt einer b{}-spalte mittiger als der einer m{}-spalte...

    gibts denn nicht 'ne möglichkeit die zellenhöhe explizit festzulegen?
    kann man mit einer unsichtbaren linie, was du aber hier nicht brauchst:

    Code:
    \documentclass[12pt,a4paper]{article}
    \usepackage[T1]{fontenc}
    
    \usepackage{ragged2e,array}
    
    \begin{document}
    \begin{table}[!ht]
    \centering
    \def\arraystretch{1.3}
    \caption{pin assignment of the 8 pin DIN connector}\label{tab:encoder-pins}
    \medskip  
    \begin{tabular}{@{}>{\centering}m{1.2cm} m{1.6cm} m{2.0cm} >{\RaggedRight}m{5.0cm}@{}}\hline
        \emph{pin} & \emph{color} & \emph{at encoder} & \emph{description}\\ \hline
        1   & ---    & ---        & $\langle empty \rangle$         \\ 
        2   & yellow & 8 (gray)   & Encoder channel B               \\ 
        3   & white  & 7 (violet) & Encoder channel $\overline{B}$  \\ 
        4   & blue   & 6 (blue)   & Encoder channel A               \\ 
        5   & green  & 5 (green)  & Encoder channel $\overline{A}$  \\ 
        6   & ---    & ---        & $\langle empty \rangle$         \\ 
        7   & red    & 2 (red)    & Encoder power supply (+5V)      \\ 
        8   & black  & 3 (orange) & GND                             \\ \hline
    \end{tabular}
    \end{table}
    
    \end{document}
    Ich finde Tabellen mit wenigen Linien besser lesbar.

    Herbert

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.04.2008
    Beiträge
    6
    Zitat Zitat von localghost Beitrag anzeigen
    Das kann ich so nicht nachvollziehen. Bei mir läuft das fehlerfrei. Der Befehl erhöht die Zeile übrigens nicht nur nach oben. Vielleicht kannst Du das beschriebene Verhalten mal mit einem lauffähigen Minimalbeispiel erläutern.
    Code:
    \documentclass[a4paper, 11pt]{report}
    \usepackage{array}
    
    \begin{document}
    \begin{table}[!ht]
      \centering
      \setlength{\extrarowheight}{20pt} 
      \caption{pin assignment of the 8 pin DIN connector}
      \begin{tabular}{|m{2cm}|b{2.6cm}|p{5.0cm}|}		 							 \hline
        m-spalte 	& b-spalte  & p-spalte      		      \\ \hline
        1   	& ------    & $\langle empty \rangle$         \\ \hline
        2  		& yellow    & Encoder channel B               \\ \hline
        3   	& white     & Encoder channel $\overline{B}$  \\ \hline
      \end{tabular}
    \end{table}
    \end{document}
    bei mir ist die m-spalte fast auf der grundlinie, während die inhalte der b- und p-spalte je um 10pt nach oben verschoben sind... bei mir bleibt halt irgendwie der m-spaltentyp unberücksichtigt
    sieht das minimalbeispiel bei dir korrekt aus?

    @voss: danke für das layout - ich hab mich bis jetzt noch nicht so viel mit tabellen beschäfitgen müssen... Dein design gefällt mir.

  8. #8
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Also doch nicht

    Zitat Zitat von voss Beitrag anzeigen
    \extrarowheight erhöht nur nach oben

    Herbert
    Wir wir daraus lernen, hilft dir dieser Befehl nicht weiter. Also mache es so, wie Herbert es vorschlägt.
    Code:
    \documentclass[a4paper, 11pt]{report}
    \usepackage{array}
    
    \begin{document}
    \begin{table}[!ht]
      \centering
      \renewcommand{\arraystretch}{1.3}
      \caption{pin assignment of the 8 pin DIN connector}
      \begin{tabular}{|m{2cm}|b{2.6cm}|p{5.0cm}|}		 							 \hline
        m-spalte 	& b-spalte  & p-spalte      		      \\ \hline
        1   	& ------    & $\langle empty \rangle$         \\ \hline
        2  		& yellow    & Encoder channel B               \\ \hline
        3   	& white     & Encoder channel $\overline{B}$  \\ \hline
      \end{tabular}
    \end{table}
    \end{document}
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  9. #9
    Registrierter Benutzer
    Registriert seit
    06.04.2008
    Beiträge
    6
    mensch, klar... irgendwie ist heut' nicht mein tag...
    schön, wen mal einer mit abstand auf die sache guckt...
    das posten hier hat sich echt gelohnt! danke an euch!

  10. #10
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Wieder nichts

    Und auch das hilft nicht viel. Man kann es mit der Streckung ja mal etwas übertreiben.
    Code:
    \renewcommand{\arraystretch}{2}
    Auch hier wird die erste Spalte von der Formatierung ausgespart. Die anderen Spalten sind schön vertikal zentriert, wie übrigens bei meiner Version auch.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  11. #11
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von localghost Beitrag anzeigen
    Und auch das hilft nicht viel. Man kann es mit der Streckung ja mal etwas übertreiben.
    Code:
    \renewcommand{\arraystretch}{2}
    Auch hier wird die erste Spalte von der Formatierung ausgespart. Die anderen Spalten sind schön vertikal zentriert, wie übrigens bei meiner Version auch.
    \arraystretch bezieht sich auf die Basislinie der Zeile und nicht die Mitte der Zeichen.
    Und m,b und p-Spalten zu mischen ist zudem unglücklich. Aber es gibt andere
    Möglichkeiten.

    Code:
    \documentclass[a4paper, 11pt]{report}
    \usepackage{array}
    
    \begin{document}
    \begin{tabular}{m{2cm}m{2.6cm} m{5.0cm}}	     \hline
     m-spalte 	& m-spalte  & m-spalte      	   \\ \hline
     1 	& ---    & $\langle empty \rangle$         \\ \hline
     2 	& yellow und noch etwas mehr & Encoder channel B  \\ \hline
     3 	& white und noch mehr  & Encoder channel $\overline{B}$  \\ \hline
    \end{tabular}
    
    \bigskip
    \begin{tabular}{>{\rule[-2ex]{0pt}{5ex}}m{2cm}m{2.6cm} m{5.0cm}}	     \hline
     m-spalte 	& m-spalte  & m-spalte      	   \\ \hline
     1 	& ---    & $\langle empty \rangle$         \\ \hline
     2 	& yellow und noch etwas mehr & Encoder channel B  \\ \hline
     3 	& white und noch mehr  & Encoder channel $\overline{B}$  \\ \hline
    \end{tabular}
    
    \end{document}
    Herbert

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •