Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Spaltenbreite in Tabellen (mal wieder)

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.05.2016
    Beiträge
    10

    Spaltenbreite in Tabellen (mal wieder)

    Guten Tag!

    Ich weiß, ich weiß, das Thema wurde auch hier schon zig mal beackert, aber mein spezifisches Problem konnte ich bisher nirgends finden. Sorry, falls es doch schon angesprochen worden sein sollte. Anyway: Ich möchte eine Tabelle mit fest definierter Spaltenbreite erstellen und das Problem, das sich mir ergibt ist: Das funktioniert nur, wenn in der betreffenden Tabelle mindestens eine leere Zeile sich befindet. Das sieht dann leider unschön aus, weil unnötig Platz gebraucht wird. Denn anders als im Minimalbeispiel werden mehrere Tabellen untereinander da sein.

    Code:
    % !TeX spellcheck = en_US
    \documentclass[scrartcl,12pt]{article}
    \usepackage[onehalfspacing]{setspace}
    \usepackage[a4paper, portrait, margin=2.5cm]{geometry}
    \usepackage{mathptmx}
    \usepackage{amsmath}
    \usepackage{graphicx} 
    \usepackage[backend=biber,style=authoryear,sorting=nyt]{biblatex}
    \addbibresource{LitEssayEE.bib}
    \usepackage{tabularx}
    \setlength\extrarowheight{5.5pt}
    
    \begin{document}
    	\begin{figure}[h]
    		\caption{Money creation by commercial bank via loan granting. Highly stylized balance sheets.} \label{credit_creation}
    		\centering
    		\begin{scriptsize}
    			\begin{tabular}{p{2cm} p{1cm} p{2cm} p{1cm}}
    				\multicolumn{4}{c}{\textbf{Commercial Bank}} \\
    				\hline
    				%
    				\multicolumn{1}{l}{Assets} & 
    				\multicolumn{2}{c}{} & 
    				\multicolumn{1}{r}{Liabilities} \\
    				\hline
    				% 
    				\multicolumn{1}{l}{$\Delta$ Loan} & 
    				\multicolumn{1}{r|}{+1,000} &
    				\multicolumn{1}{l}{$\Delta$ Deposits} & 
    				\multicolumn{1}{r}{+1,000}  \\
    				\hline \hline
    				%	& & & 
    			\end{tabular}
    			\begin{tabular}{p{2cm} p{1cm} p{2cm} p{1cm}}
    				\multicolumn{4}{c}{\textbf{Customer}} \\
    				\hline
    				%
    				\multicolumn{1}{l}{Assets} & 
    				\multicolumn{2}{c}{} & 
    				\multicolumn{1}{r}{Liabilities} \\
    				\hline
    				% 
    				\multicolumn{1}{l}{$\Delta$ Deposits} & 
    				\multicolumn{1}{r|}{+1,000} &
    				\multicolumn{1}{l}{$\Delta$ Loan} & 
    				\multicolumn{1}{r}{+1,000}  \\
    				\hline \hline
    				%	& & &
    			\end{tabular}
    		\end{scriptsize}
    	\end{figure}
    \end{document}
    fig1.pdf im Anhang zeigt das Ergebnis, wie es im Minimalbeispiel angezeigt wird. Bei fig2.pdf habe ich in der ersten Tabelle die Leerzeile aktiviert und wie man sieht, wird die Spaltenbreite wie gewünscht dargestellt und nicht auf die Textbreite minimiert, wie es sonst der Fall zu sein scheint. Das ganze aus der figure-Umgebung herauszubefördern ändert am Ergebnis nichts. Auch tabularx zu benutzen, ändert nichts. Die Spaltenbreite wird nur wie gewünscht angezeigt, wenn sich eine leere Zeile in der Tabelle befindet.

    Wo liegt mein Fehler?
    Angehängte Dateien Angehängte Dateien

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Was sollen denn all die \multicolumn?

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Wenn Du in einer Spalte bei jeder Zelle ein \mulitcolumn stehen hast, dann hast Du für die Spalte den falschen Typ gewählt. Wenn das Paket array geladen ist, bekommst Du zum Beispiel mit

    Code:
    >{\raggedleft\arraybackslash}p{1.2cm}
    eine Spalte mit einer Breite von 1.2cm für den Inhalt, der dann rechts ausgerichtet wird. Man kann man sich aber auch neue Spaltentypen definieren.

    Code:
    \documentclass[12pt]{article}
    \usepackage[onehalfspacing]{setspace}
    \usepackage[a4paper, portrait, margin=2.5cm]{geometry}
    \usepackage{mathptmx}
    \usepackage{tabularx}% lädt auch array
    \setlength\extrarowheight{5.5pt}
    
    \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
    \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
    
    \begin{document}
    	\begin{figure}[h]
    		\caption{Money creation by commercial bank via loan granting. Highly stylized balance sheets.} \label{credit_creation}
    		\centering
    		\begin{scriptsize}
    			\begin{tabular}{@{}L{2cm} R{1.2cm} | L{2cm} R{1.2cm}@{}}
    				\multicolumn{4}{c}{\textbf{Commercial Bank}} \\
    				\hline
    				%
    				Assets & 
    				\multicolumn{2}{c}{} & 
    				Liabilities \\
    				\hline
    				% 
    				$\Delta$ Loan & 
    				+1,000 &
    				$\Delta$ Deposits & 
    				+1,000  \\
    				\hline \hline
    				%	& & & 
    			\end{tabular}%
          \hfill
    			\begin{tabular}{@{}L{2cm} R{1.2cm} | L{2cm} R{1.2cm}@{}}
    				\multicolumn{4}{c}{\textbf{Customer}} \\
    				\hline
    				%
    				Assets & 
    				\multicolumn{2}{c}{} & 
    				Liabilities \\
    				\hline
    				% 
    				$\Delta$ Deposits & 
    				+1,000 &
    				$\Delta$ Loan & 
    				+1,000  \\
    				\hline \hline
    				%	& & &
    			\end{tabular}
    		\end{scriptsize}
    	\end{figure}
    \end{document}
    Übrigens ist scrartcl keine Option von article sondern selbst eine Dokumentenklasse.

  4. #4
    Registrierter Benutzer
    Registriert seit
    30.05.2016
    Beiträge
    10
    Zitat Zitat von u_fischer Beitrag anzeigen
    Was sollen denn all die \multicolumn?
    Das hatte ich jetzt gar nicht mehr auf dem Schirm, dass ich ja überall multicolumn benutzt habe. :-D Das diente wohl der rechts- bzw. linksbündigen Ausrichtung.

    Mit der Lösung von esdd klappt es nun. Herzlichen Dank.

    Ach ja: Was bewirken die @{} gleich nochmal?
    Geändert von Katzenscheucher (02-06-2016 um 10:51 Uhr)

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Satz von Tabellen, Seite 4

    Allgemein kann man mit @{…} beliebigen Inhalt vor der ersten Spalte, zwischen den Spalten bzw. nach der letzten Spalte an Stelle des voreingestellten Spaltenabstandes einfügen.
    Geändert von klops (02-06-2016 um 11:47 Uhr)

Lesezeichen

Berechtigungen

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