이 표의 코드는 무엇을 의미하나요?

이 표의 코드는 무엇을 의미하나요?

이전 질문에 대한 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.

\arraybackslashtabularx테이블 행을 끝내도록 재정의 합니다 \\(테이블 형식의 일반 정의이지만 \ragedright등에서 \RaggedRight는 여기서는 원하지 않는 거친 텍스트 줄 끝을 만들기 위해 로컬로 다시 정의합니다).

단락을 시작하는 것은 \hspace{0pt}TeX가 단락의 첫 번째 단어에 하이픈을 넣을 수 있도록 첫 번째 단어 앞에 공백을 두는 오래된 트릭입니다. (TeX의 하이픈 넣기 알고리즘은 첫 번째 단어를 고려하지 않습니다. 이는 실제로 버그일 수 있지만 TeX는 동결되어 해당 동작을 변경하지 않습니다.

답변2

David Carlisle은 이미 귀하의 첫 번째 질문에 답변했습니다. 그래서 나는 다른 문제를 해결하는 데 도움을 주려고 노력할 것입니다. 귀하의 MWE에는 \captionis 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효과가 있었지만 더 좋은 방법이 있는지는 모르겠습니다.

관련 정보