Wie lässt sich der Text in die Zellen dieser Tabelle einpassen?

Wie lässt sich der Text in die Zellen dieser Tabelle einpassen?

Ich versuche, mit Latex eine große Tabelle zu erstellen. Das Ergebnis muss ungefähr so ​​aussehen: Bildbeschreibung hier eingeben

aber ich bekomme ungefähr Folgendes: Bildbeschreibung hier eingeben

\documentclass{article}

\usepackage{tabularx}
\usepackage{adjustbox}
\usepackage{siunitx}
\usepackage{array}
\usepackage{graphicx}

\begin{document}

\begin{center}
    \begin{adjustbox}{width=20cm, center}
    \begin{tabular}{|c|m{0.5cm}|c|c|c|c|c|c|}
        \hline
        \textbf{Barra} & \textbf{Comprimento[$\si{\metre}$]} & \hspace{0pt}\textbf{Área da Seção[$\si{mm^2}$]} & \textbf{Força sobre a barra[$\si{\newton}$]} & \textbf{Tensão Normal[$\si{\mega\pascal}$]} & \hspace{0pt}\textbf{Módulo de Elasticidade[$\si{\mega\pascal}$]} & $\si{\epsilon_{L}}$ & \hspace{0pt}\textbf{Deformação[$\si{\metre}$]}\\
        \hline
        & & & & & & & \\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
    \end{tabular}
    \end{adjustbox}
\end{center}

\end{document}

Mit diesem Code konnte ich den Text nur kleiner machen. Ich kann einzelne Wörter (große wie „Deformação“ und „Comprimento“) in einer Zelle einfach nicht umbrechen und ich habe den \hspace{0pt}Trick bereits ausprobiert, aber er scheint nicht zu funktionieren. Nachdem ich Lösungen mit Paketen wie tabularx ausprobiert habe, kann ich es immer noch nicht richtig zum Laufen bringen. Außerdem konnte ich es nur mit adjustbox zentrieren. \centeringhat nicht funktioniert. Kann mir jemand helfen?

Antwort1

Es geht lediglich darum, die richtigen Pakete zu verwenden.

Verwendentabellarischum automatisch die Breite der Spalten zu ermitteln,babelmit der richtigen Sprache (Portugiesisch war meine beste Vermutung) undragged2emit der Option [overload], die Silbentrennung in den Überschriften zu aktivieren. Sie müssen die Silbentrennung mit \-dembabelverfehlt. Außerdem ist die Tabelle so breit, dass man sie auf reduzieren muss fontsize. footnotesizeTrotzdem muss man entweder den Modus verwenden landscapeoder die linken und rechten Ränder reduzieren. Ich habeGeometrieum alle Margen zu reduzieren.

Der Befehl \noindentvor der Tabelle verhindert, dass die Tabelle nach links wandert und in den rechten Rand hineinragt. Außerdem habe ich cin den ersten beiden Tabellen eine normale Spalte verwendet, weiltabellarischam Ende war die erste Spalte zu schmal (ich hätte das anpassen können tymin).

Sie können die Verwendung vonBuchtabsum einen besseren Abstand zu erhalten, aber dann müssen Sie alle vertikalen Linien entfernen. Ich habe Code eingefügt mitBuchtabsund schlage außerdem vor, dass Sie neben der Entfernung aller vertikalen Linien auch die Anzahl der horizontalen Linien reduzieren.

Wenn Sie mit den Regeln nichts anfangen können oder wollen, verwenden Sie

\renewcommand{\arraystretch}{1.1}  % or 1.5
\setlength{\extrarowheight}{1pt}   % or 2 in case of 1.5 for arraystretch

um den Abstand zu verbessern.

Wenn Sie möchten, dass alle Spalten die gleiche Breite haben, verwenden SietabellarischxYund acht ähnliche Spalten. Es scheint, dass Sie zentrierte Spalten wünschen, also habe ich sie alle zentriert, indem ich mit dem Befehl einen neuen Spaltentyp definiert habe :

\newcolumntype{Y}{>{\Centering\arraybackslash}X}

Centeringist ein Befehl aus demragged2ePaket. Sie können links- oder rechtsbündige Spalten auf die gleiche Weise definieren:

\newcolumntype{W}{>{\RaggedRight\arraybackslash}X}
\newcolumntype{Z}{>{\RaggedLeft\arraybackslash}X}

Da ich die [overload]Option nutze,ragged2ewird aktiviert, auch wenn Sie oder verwenden \centering. \raggedrightIch \raggedlefthabe den Abstand auch erheblich vergrößert, wie Sie in der Frage angegeben haben.

Wenn Sie eine Scorecard erstellen, die von Hand mit Bleistift ausgefüllt werden soll, ist die dritte Tabelle in Ordnung. Wenn Sie eine Tabelle für eine Präsentation oder ein Dokument setzen, sollten Sie (meiner Meinung nach) eine der folgenden Tabellen verwenden:BuchtabsVersionen.

Wenn Sie Angaben dazu machen, was in die Tabelle aufgenommen werden soll, erhalten Sie möglicherweise zusätzliche Empfehlungen.

![Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage[portuguese]{babel}
\usepackage[margin=1.5cm]{geometry}
\usepackage{tabularx,tabulary, booktabs}
\usepackage{siunitx}
\usepackage[overload]{ragged2e}

\setlength{\tabcolsep}{2pt}
\renewcommand{\arraystretch}{1.1}
\setlength{\extrarowheight}{1pt}

\begin{document}

\section*{tabulary}


\footnotesize
{
\noindent\begin{tabulary}{\linewidth}{|c|C|C|C|C|C|C|C|}
\hline
        \textbf{Barra} & \textbf{Compri\-mento[$\si{\metre}$]} & \hspace{0pt}\textbf{Área da Seção[$\si{mm^2}$]} & \textbf{Força sobre a barra[$\si{\newton}$]} & \textbf{Tensão Normal[$\si{\mega\pascal}$]} & \hspace{0pt}\textbf{Módulo de Elasticidade[$\si{\mega\pascal}$]} & $\si{\epsilon_{L}}$ & \hspace{0pt}\textbf{Defor\-mação[$\si{\metre}$]}\\
        \hline
        & & & & & & & \\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
        & & & & & & &\\
        \hline
    \end{tabulary}%
}

\vspace{2cm}
{
\noindent\begin{tabulary}{\linewidth}{@{}c*{7}{C}@{}}
\toprule
        \textbf{Barra} & \textbf{Compri\-mento[$\si{\metre}$]} & \hspace{0pt}\textbf{Área da Seção[$\si{mm^2}$]} & \textbf{Força sobre a barra[$\si{\newton}$]} & \textbf{Tensão Normal[$\si{\mega\pascal}$]} & \hspace{0pt}\textbf{Módulo de Elasticidade[$\si{\mega\pascal}$]} & $\si{\epsilon_{L}}$ & \textbf{Defor\-mação[$\si{\metre}$]}\\
\midrule
        1 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        2 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        3 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        4 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        5 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\midrule
        6 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        7 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        8 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        9 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
        10 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
    \bottomrule
    \end{tabulary}
\pagebreak
\section*{tabularx}
}
{
\renewcommand{\arraystretch}{1.5}
\setlength{\extrarowheight}{2pt}
\setlength{\arrayrulewidth}{0.2pt}
\newcolumntype{Y}{>{\Centering\arraybackslash}X}

\noindent\begin{tabularx}{\linewidth}{*{8}{|Y}|}
\hline
        \textbf{Barra} & \textbf{Compri\-mento[$\si{\metre}$]} & \hspace{0pt}\textbf{Área da Seção[$\si{mm^2}$]} & \textbf{Força sobre a barra[$\si{\newton}$]} & \textbf{Tensão Normal[$\si{\mega\pascal}$]} & \hspace{0pt}\textbf{Módulo de Elasti\-cidade[$\si{\mega\pascal}$]} & $\si{\epsilon_{L}}$ & \textbf{Defor\-mação[$\si{\metre}$]}\\
\hline
        1 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        2 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        3 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        4 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        5 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        6 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        7 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        8 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        9 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\\hline
        10 & 20 & 300 & 400 & 500 & 600 & 7 & 800\\
    \hline
    \end{tabularx}%
}

\vspace{2cm}

{
\newcolumntype{Y}{>{\Centering\arraybackslash}X}

\noindent\begin{tabularx}{\linewidth}{*{8}{Y}}
\toprule
        \textbf{Barra} &
        \textbf{Compri\-mento[$\si{\metre}$]}l &
        \hspace{0pt}\textbf{Área da Seção[$\si{mm^2}$]} &
        \textbf{Força sobre a barra[$\si{\newton}$]} &
        \textbf{Tensão Normal[$\si{\mega\pascal}$]} &
        \textbf{Módulo de Elasti\-cidade[$\si{\mega\pascal}$]} &
        $\si{\epsilon_{L}}$ &
        \textbf{Defor\-mação[$\si{\metre}$]}\\
\midrule
        100 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        200 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        300 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        400 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        500 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\\addlinespace[6pt]
        600 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        700 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        800 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        900 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
        1000 & 20 & 300 & 400 & 500 & 600 & 700 & 800\\
    \hline
    \end{tabularx}%
}
\end{document}

Antwort2

Als Ergänzung/Alternative zum zweiten Beispiel von @Sveinung in seiner Antwort:

  • Ich vermute, dass in der Spalte Zahlen stehen. Leider sind sie unbekannt. Sind sie alle Ganzzahlen? Haben sie alle die gleiche Anzahl an Ziffern? Wie auch immer, ich würde lieber SSpaltentypen verwenden und den Kommentar von @frougon unter der Frage berücksichtigen:
\documentclass{article}
%\usepackage[portuguese]{babel}
\usepackage{geometry}
\usepackage{siunitx}
\usepackage{booktabs, makecell}
\renewcommand\theadfont{\footnotesize\bfseries}
\renewcommand\theadgape{}

%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%

\begin{document}
    \begin{center}
\small
\setlength{\tabcolsep}{4pt}        % Reduce space between columns
\setcellgapes{3pt}
\makegapedcells
\begin{tabular}{*{8}{S}}
    \toprule
{\thead{Barra}}
    &   {\thead{Compri-\\mento [\si{\metre}]}}         
        &   {\thead{Área da\\ Seção [\si{mm^2}]}}
    &   {\thead{Força sobre\\ a barra [\si{\newton}]}}
        & {\thead{Tensão\\ Normal [\si{\mega\pascal}]}}
    &   {\thead{Módulo de\\ Elasticidade [\si{\mega\pascal}]}} 
        &   {\si{\epsilon_{L}}}
    & {\thead{Deformação\\ {[\si{\metre}]}}}  \\
    \midrule
1  & 12.3 & 30 & 40      & 55.7  & 60 & 7 & 8  \\
12 &  4.5 & 33 & 38,2    & 33.44 & 60 & 7 & 6  \\
    \bottomrule
    \end{tabular}
\end{center}
\end{document}
  • Für Sden Spaltentyp habe ich das Zahlenformat nicht festgelegt, S[table-format=2,2]da beispielsweise die Zahlen unbekannt sind. Die Verwendung von Standardwerten scheint jedoch ein recht gutes Ergebnis zu liefern:

Bildbeschreibung hier eingeben

  • Wie Sie sehen, entferne ich alles aus den Spaltenüberschriften \hspace{...}(es ist nicht klar, welche Funktion sie haben) und entferne die mathematische Umgebung für die Einheiten, d. h. stattdessen [$\si{metre}$]wird einfach verwendet [\si{\metre}].

  • In der letzten Spalte werden Einheiten in geschweiften Klammern eingefügt: \thead{Deformação\\ {[\si{\metre}]}}. Dies ist notwendig, da sonst beim Kompilieren ein unerwarteter Fehler auftritt.

verwandte Informationen