我正在尝试制作一张尺寸很棒的表格,但是我在下图中列出了一些困难:
我
1
发现,单词不会自动连字符。其他单词会,但那是因为我\-
在文本上放置了断字符,尽管我\RaggedRight
在文本行中使用了断字符*3{>{\centering\RaggedRight\arraybackslash}p{0.9cm}|}
。单词应该像其他单词一样居中,但事实并非如此。尽管我专门为中间 3 列
2
添加了代码。行: 。\centering
*3{>{\centering\RaggedRight\arraybackslash}p{0.9cm}|}
这是表格的代码,我根据以下代码创建了它当不明智的时候,如何自动强制乳胶不对齐文本?'稳定的:
\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}
目前我按行拆分每一列,因此我可以在阅读乳胶时轻松准备好表格,那么这是否是以纯文本构建此类表格的最佳可读方式,同时牢记允许它易于编辑和扩展?
此文本还会产生以下警告:
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}