
이전 질문에 대한 Andrew Swann 솔루션을 확인한 후:이 테이블을 페이지에 맞추는 방법은 무엇입니까?나는 그것을 다른 테이블에 맞추려고 노력했습니다.
\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[spanish,mexico]{babel}
\usepackage[T1]{fontenc}
\usepackage{booktabs,longtable}
\usepackage{array}
\begin{document}
{\small\setlength\tabcolsep{5pt}
\begin{tabularx}{\linewidth}{ll*{2}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}}
\caption{Temario de actividades Secundaria} \\
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\addlinespace[2ex]
\endfirsthead
\multicolumn{4}{c}{\textsc{\tablename~\thetable}\enspace (continuación)}\\
\addlinespace[2ex]
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\endhead
\midrule
\multicolumn{4}{r}{Continúa}
\endfoot
\bottomrule
\endlastfoot
{\normalsize Día 1} & Bienvenida Encuadre Tema:Acuerdos de convivencia Ejercicios psicométricos & 1 & Pelota de esponja \emph{Brincón} Ejercicios psicométricos. Guía Eureka (Ver Anexo)\\
\addlinespace
{\normalsize Día 2} & Ejercicios psicométricos & 0 & Ejercicios psicométricos. Guía Eureka\\
\addlinespace
{\normalsize Día 3} & Ejercicios psicométricos & 0 & Ejercicios psicométricos\\
\addlinespace
{\normalsize Día 4} & Examen simulacro de ejercicios psicométricos en equipo & 0 & Ejercicios psicométricos. Guía verde actualizada 2000 (Ver Anexo).\\
\addlinespace
{\normalsize Día 5} & EXAMEN DE CONOCIMIENTOS GENERALES & & \\
\end{tabularx}
}
\end{document}
글쎄요 그게 제가 해야할 테이블인데 어떻게 잘해야할지 모르겠습니다. 첫 번째 의심은 열 설명에 관한 것입니다. 이전 질문과 제가 본 다른 솔루션에서 다음을 적용했습니다.
\begin{tabularx}{\linewidth}{ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}}
5개의 열이 필요하므로 테이블에 3개의 왼쪽 정렬 열이 있고 나중에 정렬되지 않은 다른 열(RaggedRight)과 최종 열이 있다는 것을 이해합니다.엑스칼럼, 내 말이 맞나요? 그러나 나는 그것에 대해 확신하지 못합니다. 의 코드는 ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
이해하기 어렵습니다. 누군가 설명해 주실 수 있나요?
업데이트
의견과 답변 후에 표에서 약간의 수정을 가한 결과 aa 열이 의미가 없다는 것을 알았습니다. 그런데 테이블 배치가 엉망이네요. 어떻게 해결할 수 있나요? 단락이 아닌 목록이 필요한 경우 셀의 텍스트를 나열하거나 구분하는 방법이 있습니까?
답변1
ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
~이다
ll
한 줄로 된 두 열의 항목을 왼쪽으로 정렬한 다음
*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
세 장의 사본>{\RaggedRight\arraybackslash\hspace{0pt}}X
이들 각각은 기본적으로 자동으로 계산된 너비에 대한 X
열입니다 .p{...}
의 토큰은 >{...}
각 셀의 시작 부분에 적용됩니다. 이 경우에는
\RaggedRight\arraybackslash\hspace{0pt}
\RaggedRight
\raggedright
패키지 의 향상된 버전입니다 ragged2e
.
\arraybackslash
tabularx
테이블 행을 끝내도록 재정의 합니다 \\
(테이블 형식의 일반 정의이지만 \ragedright
등에서 \RaggedRight
는 여기서는 원하지 않는 거친 텍스트 줄 끝을 만들기 위해 로컬로 다시 정의합니다).
단락을 시작하는 것은 \hspace{0pt}
TeX가 단락의 첫 번째 단어에 하이픈을 넣을 수 있도록 첫 번째 단어 앞에 공백을 두는 오래된 트릭입니다. (TeX의 하이픈 넣기 알고리즘은 첫 번째 단어를 고려하지 않습니다. 이는 실제로 버그일 수 있지만 TeX는 동결되어 해당 동작을 변경하지 않습니다.
답변2
David Carlisle은 이미 귀하의 첫 번째 질문에 답변했습니다. 그래서 나는 다른 문제를 해결하는 데 도움을 주려고 노력할 것입니다. 귀하의 MWE에는 \caption
is after 와 같은 오류가 있지만 \begin{tabularx} ...
그렇지 않습니다 \end{document}
. 그리고 가장 주목할만한 점은 longtabe
플로트 환경에서 (더 많은 페이지를 펼치거나) 단순한 테이블을 원하는지 여부가 명확하지 않다는 것입니다 . 나는 마지막 것이 사실이라고 가정하고 다음과 같이 MWE를 다시 만듭니다.
\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
%\usepackage[spanish,mexico]{babel} i haven't it ..
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{booktabs,tabularx}
\usepackage[labelsep=colon,
labelfont={bf},
justification=raggedright,
singlelinecheck=false]{caption}% added for caption custumization
%% just for shoving test result, erase this two line in final text
\usepackage[active,floats,tightpage]{preview}
\setlength\PreviewBorder{1em}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\begin{document}
\begin{table}
\setlength\tabcolsep{3pt}
\small
\caption{Temario de actividades Secundaria}
\begin{tabularx}{\linewidth}{
c% first column, I change "l" to "c" (matter of taste)
>{\setlength\hsize{1.2\hsize}}L% I make it wider
c% third column, I change it from X to c; Is it really necessary since it is empty?,
% does it should has equal width as second and last column?
>{\setlength\hsize{.6\hsize}}C% I make it narrower
>{\setlength\hsize{1.2\hsize}}L% I make it wider
}
\toprule
Horario % I remove \textsc, for better looking of table
& Ejercicio
& Objetivo
& Grado de riesgo
& Material \\
\midrule
Día 1
& Bienvenida Encuadre Tema: Acuerdos de convivencia Ejercicios psicométricos
& & 1
& Pelota de esponja \emph{Brincón} Ejercicios psicométricos.
Guía Eureka (Ver Anexo) \\
\addlinespace
Día 2
& Ejercicios psicométricos
& & 0
& Ejercicios psicométricos. Guía Eureka \\
\addlinespace
Día 3
& Ejercicios psicométricos
& & 0
& Ejercicios psicométricos \\
\addlinespace
Día 4
& Examen simulacro de ejercicios psicométricos en equipo
& & 0
& Ejercicios psicométricos.
Guía verde actualizada 2000 (Ver Anexo). \\
\addlinespace
Día 5
& Examen de conocimientos generales, gute
& & & \textbullet\ emulation of itemize
environment (to show
possible solutions) \newline
\textbullet\ second item \newline \textbullet\ third item \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
코드에서 나는 내가 하고 있는 일과 그 옆에 언급된 내용이 나에게 명확하지 않은 것을 명확히 하기 위해 몇 가지 주석을 추가했습니다. 보시다시피 테이블은 테이블 환경에 배치되어 있으며 문서 프리앰블에서 새로운 열 유형을 정의하는 것도 제안합니다.
편집하다: Iraultza Bellaustegigoitia, 테이블 디자인을 시작할 때(이것은 LaTeX 사용 시 가장 어려운 작업 중 하나입니다) 다음과 같은 결정을 내려야 합니다.
- 테이블이 한 페이지에 들어가거나 너무 커서 더 많은 페이지에서 분리될 수 있습니다.
- 테이블이 텍스트에 떠 있을 수 있는지 여부
- 테이블에 규정된 너비가 있어야 합니까?
위 질문에 대한 답변을 고려하여 테이블 형식 환경(예: tabularx
한 페이지의 테이블)을 longtable
더 큰 환경으로 선택합니다. 등. 선택한 패키지에 익숙하지 않은 경우 패키지와 함께 제공되는 설명서를 (적어도 간략하게) 읽으십시오.
테이블 디자인에서는 몇 가지 간단한 규칙을 고려하십시오.
- 최신에는 다양한 패키지의 특정 기능이 혼합되어 있습니다(예: 의 머리글/바닥글 정의 사용
longtable
)tabularx
. 다른 테이블 형식 패키지를 지원하도록 설계된array
및 패키지 는 예외입니다 .booktabs
- 테이블에서 다른 글꼴 크기를 사용하는 것은 좋지 않습니다
나는 MWE를 약간 재설계하고 테이블 셀의 목록을 간단하게 에뮬레이트하기 위한 예제를 추가했으며(보다 까다로운 레이아웃의 경우 일부 목록 패키지를 로 사용하는 것이 좋습니다 enumitem
) 이를 통해 생성되는 테이블의 새로운 그림을 추가했습니다. 나는 그것이 당신이 달성하고 싶은 것과 비슷하고 나의 추가가 당신에게 도움이 되기를 바랍니다.
답변3
하루종일 이 테이블을 갖고 씨름한 끝에 David Carlisle과 Zarco 트릭의 친절한 답변과 설명 덕분에 제가 원하는 대로 테이블을 갖게 되었습니다.
내가 한 일은 다음과 같습니다.
\documentclass[11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage[spanish,mexico]{babel}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\usepackage{array,caption}
\captionsetup{labelfont=sc,textfont=it}
\usepackage{tikz}
\usepackage{ltablex}
\renewcommand{\tabularxcolumn}[1]{>{\small}m{#1}}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{longtable}
\newcolumntype{C}{>{\centering\arraybackslash\hspace{0pt}}X}
\newcolumntype{L}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
\begin{document}
{\small\setlength\tabcolsep{5pt}
\begin{tabularx}{\linewidth}{cLCL} % {lc*{2}L}
\caption{Temario de actividades Secundaria} \\
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\addlinespace[2ex]
\endfirsthead
\multicolumn{4}{c}{\textsc{\tablename~\thetable}\enspace (continuación)}\\
\addlinespace[2ex]
\toprule
\textsc{Horario} & \textsc{Ejercicio} & \textsc{Grado de riesgo} & \textsc{Material}\\
\addlinespace[0.5ex]
\toprule
\endhead
\midrule
\multicolumn{4}{r}{Continúa}
\endfoot
\bottomrule
\endlastfoot
{\normalsize Día 1} & Bienvenida\par Encuadre\par Tema:\par Acuerdos de convivencia\par Ejercicios psicométricos & 1 & Pelota de esponja\par \emph{Brincón}\par Ejercicios psicométricos\par Guía Eureka (Ver Anexo)\\
\addlinespace
{\normalsize Día 2} & Ejercicios psicométricos & 0 & Ejercicios psicométricos. Guía Eureka\\
\addlinespace
{\normalsize Día 3} & Ejercicios psicométricos & 0 & Ejercicios psicométricos\\
\addlinespace
{\normalsize Día 4} & Examen simulacro de ejercicios psicométricos en equipo & 0 & Ejercicios psicométricos. Guía verde actualizada 2000 (Ver Anexo).\\
\addlinespace
{\normalsize Día 5} & \multicolumn{3}{c}{EXAMEN DE CONOCIMIENTOS GENERALES} \\
\addlinespace
{\normalsize Día 6} & Autoconcepto \par Autoestima \par Elaboración de mi propio regalo & 2 & Papel bond\par Plumones\par Pegamento\par Tijeras\par Crayolas \\
\end{tabularx}
}
\end{document}
내 또 다른 문제는 이 테이블의 셀 내에 텍스트를 등록하는 방법이었습니다. 나는 내부에 중첩된 환경을 사용하는 것이 좋은 생각이 아니라고 생각합니다 itemize
. enumerate
즉, 올바르게 컴파일되지 않는다고 생각합니다. 여러 번 를 사용하여 텍스트를 분리하는 것은 쉽지만 \\
표에서와 같이 선을 구별하는 방식이므로 둘 다 작동하지 않는 것 같습니다. 결국 사용해 보았는데 \par
효과가 있었지만 더 좋은 방법이 있는지는 모르겠습니다.