Как написать таблицу размером немного больше абзацев, с центрированными столбцами и без предупреждений?

Как написать таблицу размером немного больше абзацев, с центрированными столбцами и без предупреждений?

Я пытаюсь сделать стол внушительных размеров, однако есть некоторые трудности, которые я перечислил на рисунке ниже:

введите описание изображения здесь

  1. На 1нашем замечании слово не расставляется автоматически. Другие расставляют, но это потому, что я ставлю переносы \-в тексте, несмотря на то, что я использую \RaggedRightна его строке *3{>{\centering\RaggedRight\arraybackslash}p{0.9cm}|}.

  2. Слово 2должно быть отцентрировано, как и другие, но это не так. Несмотря на то, что я специально поставил код \centering, для 3 средних столбцов. Строка: *3{>{\centering\RaggedRight\arraybackslash}p{0.9cm}|}.

Это код для таблицы, я создал его на основеКак автоматически заставить latex не выравнивать текст, когда это неразумно?'стабильный:

\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}

В настоящее время я разбиваю каждый столбец по строкам, поэтому я могу легко подготовить таблицу, читая Latex. Будет ли это наилучшим читабельным способом создания такой таблицы в виде обычного текста, учитывая при этом, что ее можно будет легко редактировать и расширять?

Также этот текст генерирует следующие предупреждения:

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

Можно ли их исправить, сохранив при этом размер моей таблицы немного больше обычного размера страницы?

решение1

Если у вас возникли проблемы с переносами, проверьте, правильно ли установлен Babel.

При ручной расстановке переносов, как в MWE, я получаю (после исправления определения столбцов) следующий результат:

введите описание изображения здесь

Я внес следующие изменения:

  • добавить пакет changepageи с его макросом adjustwidth*расширить таблицу за пределы внешней текстовой границы
  • уменьшить размер шрифта до \small(это позволит лучше расставлять переносы текста в ячейках)
  • изменить определение >{\centering\RaggedRight\arraybackslash}p{0.9cm}(которое неверно) на>{\Centering\arraybackslash}p{0.9cm}
  • для использования за tabularxстолом
  • изменить ширину столбцов

МВЭ:

\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}

Примечание:переносить текст в таких узких столбцах — не очень хорошая идея. Лучшее решение — использовать краткость и добавить объяснение его значения в заголовок таблицы или в сноску в конце таблицы (например, используя threeparttable).

Приложение:в случае, если вы предпочитаете симметричное расширение ширины таблицы (и, на мой взгляд, не лучше асимметричное относительно внешней границы страницы), как вы можете видеть здесь:

введите описание изображения здесь

то вам нужно изменить только adjustwidth*макрос, например, на:

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

решение2

Я настоятельно рекомендую вамнетВозьмите за привычку делать таблицы шире текстового блока -- за исключением экстремальных обстоятельств, которые, похоже, не применимы к таблице под рукой. Эта рекомендация тем более актуальна для вашего текущего документа, поскольку вы изначально используете довольно узкие поля (2 см).

Вместо этого вам следует (a) использовать tabularxсреду и ее Xтип столбца, чтобы гарантировать, что таблица вписывается в текстовый блок, и (b) (пере)определить все типы столбцов соответствующим образом, по мере необходимости, чтобы получить красивую таблицу. Кроме того, не используйте все вертикальные линии и не используйте пакет booktabsдля генерации хорошо разнесенных горизонтальных линий.

введите описание изображения здесь

\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}

Связанный контент