Latex를 사용하여 큰 테이블을 만들려고 합니다. 결과는 다음과 같아야 합니다.
\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}
이 코드를 사용하면 텍스트를 더 작게 만들 수만 있습니다. 셀에 단일 단어("Deformação" 및 "Comprimento"와 같은 큰 단어)를 래핑할 수 없으며 이미 트릭을 시도했지만 \hspace{0pt}
작동하지 않는 것 같습니다. tabularx와 같은 패키지로 솔루션을 시도한 후에도 여전히 제대로 작동하도록 할 수 없습니다. 또한 adjustbox를 사용해서만 중앙에 머물게 할 수 있었습니다. \centering
작동하지 않았습니다. 누군가 나를 도와줄 수 있나요?
답변1
올바른 패키지를 사용하는 것은 문제입니다.
사용표로 만든열 너비를 자동으로 얻으려면바벨올바른 언어(내 추측으로는 포르투갈어가 가장 정확함)와비정형2e[overload]
제목에 하이픈 넣기를 활성화하는 옵션이 있습니다 . 하이픈 넣기를 도와야합니다\-
.바벨그리워요. 또한 테이블 형식이 너무 넓어서 을( fontsize
를) 줄여야 합니다 footnotesize
. 그래도 다음 중 하나를 사용해야 합니다.landscape
모드를 사용하거나 좌우 여백을 줄여야 합니다. 나는 사용했다기하학모든 마진을 줄입니다.
표 형식 앞의 명령은 \noindent
표 형식이 왼쪽으로 이동하여 오른쪽 여백으로 돌출되는 것을 방지합니다. 또한 저는 일반c
또한 처음 두 표에서는표로 만든첫 번째 열이 너무 좁아졌습니다(을 조정할 수도 있었습니다 tymin
).
당신은 사용을 고려할 수 있습니다책꽂이더 나은 간격을 얻으려면 모든 수직 규칙을 제거해야 합니다. 나는 다음을 사용하여 코드를 포함시켰습니다.책꽂이또한 수직 규칙을 모두 제거하고 가로 규칙의 수를 줄이는 것이 좋습니다.
규칙에 따라 무언가를 할 의향이 없거나 허용되지 않는 경우 다음을 사용하십시오.
\renewcommand{\arraystretch}{1.1} % or 1.5
\setlength{\extrarowheight}{1pt} % or 2 in case of 1.5 for arraystretch
간격을 개선합니다.
모든 열의 너비를 동일하게 하려면 다음을 사용하십시오.표 형식8개의 유사한 열이 있습니다. 중앙 정렬된 열을 원하는 것 같아서 Y
다음 명령을 사용하여 새 열 유형을 정의하여 모든 열을 중앙 정렬했습니다.
\newcolumntype{Y}{>{\Centering\arraybackslash}X}
Centering
의 명령이다비정형2e패키지. 같은 방법으로 왼쪽 또는 오른쪽 정렬 열을 정의할 수 있습니다.
\newcolumntype{W}{>{\RaggedRight\arraybackslash}X}
\newcolumntype{Z}{>{\RaggedLeft\arraybackslash}X}
[overload]
옵션 을 사용하다보니비정형2e\centering
, \raggedright
또는 을 사용하더라도 시작됩니다 \raggedleft
. 또한 질문에서 지적한 것처럼 간격을 상당히 늘렸습니다.
연필을 사용하여 손으로 작성하는 스코어카드를 제작하는 경우 세 번째 표는 괜찮습니다. 프리젠테이션이나 문서의 표 형식을 조판하는 경우 (제 생각에는) 다음 중 하나를 사용해야 합니다.책꽂이버전.
표에 들어갈 내용에 대한 정보를 제공하면 추가 추천을 받을 수 있습니다.
\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}
답변2
그의 답변에서 @Sveinung 두 번째 예에 대한 보충/대체로:
- 나는 열에 숫자가 있다고 생각합니다. 불행히도 그들은 알려지지 않았습니다. 그것들은 모두 정수인가요? 자릿수가 모두 같나요? 어쨌든, 나는
S
열 유형을 사용하고 질문 아래 @frougon 주석을 고려하고 싶습니다.
\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}
- 열 유형 의 경우
S
숫자 형식을 결정하지 않았습니다. 예를 들어S[table-format=2,2]
숫자를 알 수 없기 때문에 기본값을 사용하면 꽤 좋은 결과를 얻을 수 있는 것 같습니다.
보시다시피, 열 헤더에서 모두 제거하고
\hspace{...}
(기능이 무엇인지 명확하지 않음) 단위에 대한 수학 환경을 제거했습니다. 즉, 대신[$\si{metre}$]
simple 을 사용했습니다[\si{\metre}]
.마지막 열에는 단위가 중괄호 안에 삽입됩니다
\thead{Deformação\\ {[\si{\metre}]}}
. 그렇지 않으면 컴파일 결과 예상치 못한 오류가 발생하므로 이 작업이 필요합니다.