Wie schreibt man eine Tabelle, die etwas größer als die Absätze ist, mit zentrierten Spalten und ohne Warnungen?

Wie schreibt man eine Tabelle, die etwas größer als die Absätze ist, mit zentrierten Spalten und ohne Warnungen?

Ich versuche, einen Tisch mit einer möglichst guten Größe zu erstellen, es gibt jedoch einige Schwierigkeiten, die ich auf dem Bild unten aufgelistet habe:

Bildbeschreibung hier eingeben

  1. Mir 1ist aufgefallen, dass das Wort nicht automatisch getrennt wird. Bei den anderen schon, aber das liegt daran, dass ich Trennzeichen in den Text eingefügt habe , obwohl ich in der Zeile \-verwende .\RaggedRight*3{>{\centering\RaggedRight\arraybackslash}p{0.9cm}|}

  2. Das 2Wort sollte wie die anderen zentriert sein, ist es aber nicht. Obwohl ich den Code speziell \centeringfür die drei mittleren Spalten eingefügt habe. Zeile: *3{>{\centering\RaggedRight\arraybackslash}p{0.9cm}|}.

Dies ist der Code für die Tabelle, ich habe ihn erstellt basierend auf demWie kann man Latex automatisch dazu zwingen, den Text nicht im Blocksatz auszurichten, wenn dies nicht sinnvoll ist?'s Tabelle:

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}

\usepackage{mathptmx}
\usepackage{hyperref}
\usepackage{xspace}
\usepackage{microtype}
\usepackage{indentfirst}
\usepackage{lettrine}
\usepackage{graphicx}
\usepackage{float}
\usepackage{array,ragged2e}

\usepackage{tabularx}
\usepackage{multirow}

\begin{document}

\section{Riscos}

    % \slash
    \noindent\makebox[\textwidth]{%
    \resizebox{1.1\linewidth}{!}{%
    \begin{tabular}{|
                     *1{>{\raggedright\arraybackslash}p{4.0cm}|} % Riscos
                     *3{>{\centering\RaggedRight\arraybackslash}p{0.9cm}|} % Probabilidade, Impacto, Prioridade
                     *2{>{\raggedright\arraybackslash}p{4.0cm}|} % Resposta, Prevenção
                    }
    \hline Riscos  & Pro\-ba\-bi\-li\-da\-de & Im\-pac\-to & Prioridade & Es\-tra\-té\-gia de res\-pos\-ta & Ações de pre\-ven\-ção \\ \hline

    % Row 1
    % Riscos
    \hline Problemas com perda de dados &

    % Probabilidade
    Baixa &

    % Impacto
    Alto &

    % Prioridade
    Alta &

    % Estratégia de resposta
    Uso do backup &

    % Ações de prevenção
    Backup periódicos \\ \hline


    % Row 2
    % Riscos
    \hline Alteração do cronograma ou descontinuidade do projeto na empresa/laboratório onde recebo uma bolsa &

    % Probabilidade
    Média &

    % Impacto
    Alto &

    % Prioridade
    Alta &

    % Estratégia de resposta
    Redefinição da data de entrega do trabalho &

    % Ações de prevenção
    Monitoramento contínuo das informações obtidas com superiores imediatos \\ \hline

    \hline \end{tabular}
    }%
    }%

\end{document}

Momentan teile ich jede Spalte zeilenweise auf, damit ich die Tabelle problemlos lesen kann, während ich das Latex lese. Wäre dies dann die beste lesbare Möglichkeit, eine solche Tabelle im Klartext zu erstellen, wobei ich im Hinterkopf behalten muss, dass sie leicht bearbeitet und erweitert werden kann?

Außerdem erzeugt dieser Text folgende Warnungen:

D:\main2.tex:73: Overfull \hbox (23.38434pt too wide) in paragraph at lines 73--73
D:\main2.tex:73: Overfull \hbox (1.82845pt too wide) in paragraph at lines 73--73
D:\main2.tex:73: Overfull \hbox (4.43913pt too wide) in paragraph at lines 73--73

Können sie behoben werden, während meine Tabelle etwas größer als die übliche Seitengröße bleibt?

Antwort1

Wenn Sie Probleme mit der Silbentrennung haben, prüfen Sie, ob Sie Babel richtig installiert haben.

Bei manueller Silbentrennung wie bei Dir in MWE erhalte ich (nach Korrektur der Spaltendefinition) folgendes Ergebnis:

Bildbeschreibung hier eingeben

Ich habe folgende Änderungen vorgenommen:

  • Paket hinzufügen changepageund mit seinem Makro adjustwidth*die Tabelle aus dem äußeren Textrand erweitern
  • Schriftgröße reduzieren auf \small(dies ermöglicht eine bessere Silbentrennung in Zellen)
  • ändern Sie die Definition >{\centering\RaggedRight\arraybackslash}p{0.9cm}(die falsch ist) in>{\Centering\arraybackslash}p{0.9cm}
  • für die Verwendung auf tabularxTischen
  • Spaltenbreiten ändern

MWE:

\documentclass[12pt]{article}
\usepackage[a4paper, margin=2cm, showframe]{geometry}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}

\usepackage{mathptmx}
\usepackage{xspace}
\usepackage{microtype}
\usepackage{indentfirst}
\usepackage{lettrine}
\usepackage{graphicx}
\usepackage{float}

\usepackage{ragged2e}
\usepackage{array, multirow, tabularx}
\usepackage[strict]{changepage}% <-- added

\usepackage{hyperref}

\begin{document}

\section{Riscos}

\begin{adjustwidth*}{}{-\marginparwidth}
    \small
    \begin{tabularx}{\linewidth}{|
                 *1{>{\RaggedRight\arraybackslash\hsize=1.1\hsize}X|} 
                 *3{>{\Centering\arraybackslash}p{1.1cm}|} % <-- corrected
                 *2{>{\RaggedRight\arraybackslash\hsize=0.95\hsize}X|} 
                    }
    \hline 
Riscos  & Pro\-ba\-bi\-li\-da\-de  & Impa\-cto & Prio\-ridade & Es\-tra\-té\-gia de res\-pos\-ta & Ações de pre\-ven\-ção \\ \hline
    % Row 1
    % Riscos
Problemas com perda de dados &
    % Probabilidade
    Baixa &

    % Impacto
    Alto &

    % Prioridade
    Alta &

    % Estratégia de resposta
    Uso do backup &

    % Ações de prevenção
    Backup periódicos \\ \hline

    % Row 2
    % Riscos
    \hline Alteração do cronograma ou descontinuidade do projeto na empresa/laboratório onde recebo uma bolsa &

    % Probabilidade
    Média &

    % Impacto
    Alto &

    % Prioridade
    Alta &

    % Estratégia de resposta
    Redefinição da data de entrega do trabalho &

    % Ações de prevenção
    Monitoramento contínuo das informações obtidas com superiores imediatos \\ 
        \hline\hline 
    \end{tabularx}
\end{adjustwidth*}%

\end{document}

Notiz:Text in so schmalen Spalten mit Bindestrichen zu trennen ist keine gute Idee. Besser ist es, etwas Kürzeres zu verwenden und eine Erklärung seiner Bedeutung in der Tabellenüberschrift oder in der Fußnote am Ende der Tabelle hinzuzufügen (zum Beispiel durch die Verwendung von threeparttable).

Nachtrag:für den Fall, dass Sie eine symmetrische Ausdehnung der Tabellenbreite bevorzugen (und meiner Meinung nach nicht besser eine asymmetrische Ausdehnung zum äußeren Seitenrand), wie Sie hier sehen können:

Bildbeschreibung hier eingeben

dann müssen Sie nur das Makro ändern, adjustwidth*zum Beispiel in:

\begin{adjustwidth}{-0.5\marginparwidth}{-0.5\marginparwidth}
...
\end{adjustwidth}

Antwort2

Ich empfehle Ihnen dringend,nichtmachen Sie es sich zur Gewohnheit, Tabellen breiter als den Textblock zu machen – außer in extremen Fällen, die auf die vorliegende Tabelle nicht zuzutreffen scheinen. Diese Empfehlung ist für Ihr aktuelles Dokument umso dringender, da Sie ohnehin recht schmale Ränder (2 cm) verwenden.

Stattdessen sollten Sie (a) die tabularxUmgebung und ihren XSpaltentyp verwenden, um sicherzustellen, dass die Tabelle in den Textblock passt, und (b) alle Spaltentypen nach Bedarf (neu) definieren, um eine gut aussehende Tabelle zu erhalten. Lassen Sie außerdem alle vertikalen Linien weg und verwenden Sie das booktabsPaket, um horizontale Linien mit ausreichend Abstand zu erzeugen.

Bildbeschreibung hier eingeben

\documentclass[12pt]{article}
% I've tried to reduce the preamble to a bare minimum.
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage{newtxtext,newtxmath} % more up-to-date than 'mathptmx'
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage{microtype,ragged2e,tabularx,booktabs}

\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X}
\newcolumntype{P}[1]{>{\RaggedRight\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\Centering\arraybackslash\hspace{0pt}}p{#1}}
    % the '\hspace{0pt}' directive enables hyphenation of first word of cell
\newlength\medlength
\settowidth{\medlength}{Média} % width of word "Média"

\begin{document}
\section{Riscos}

\noindent
\begin{tabularx}{\textwidth}{@{}
    *1{>{\hangafter1\hangindent1em}P{4cm}}
    *3{C{\medlength}} % or: C{1.4cm} C{0.9cm} C{1.1cm}
    *2{Y}
    @{}}
\toprule 
    Riscos & Probabilidade & Impacto & Prioridade & 
    Estratégia de resposta & Ações de prevenção \\ 
\midrule

    % Row 1
    % Riscos 
    Problemas com perda de dados &
    % Probabilidade
    Baixa &
    % Impacto
    Alto &
    % Prioridade
    Alta &
    % Estratégia de resposta
    Uso do backup &
    % Ações de prevenção
    Backup periódicos \\

\addlinespace

    % Row 2
    % Riscos
    Alteração do cronograma ou descontinuidade do projeto 
    na empresa\slash laboratório onde recebo uma bolsa &
    % Probabilidade
    Média &
    % Impacto
    Alto &
    % Prioridade
    Alta &
    % Estratégia de resposta
    Redefinição da data de entrega do trabalho &
    % Ações de prevenção
    Monitoramento contínuo das informações obtidas 
    com superiores imediatos \\ 
\bottomrule
\end{tabularx}

\end{document}

verwandte Informationen