
Sehen Sie sich anschließend die Lösung von Andrew Swann zu meiner vorherigen Frage an:Wie passt diese Tabelle in eine Seite ein?Ich habe versucht, es in eine andere Tabelle einzupassen:
\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}
Nun, das ist die Tabelle, die ich erstellen muss, aber ich bin mir nicht sicher, wie ich das richtig machen soll. Meine ersten Zweifel betreffen die Spaltenanweisung. Aus meiner vorherigen Frage und anderen Lösungen, die ich gesehen habe, habe ich Folgendes übernommen:
\begin{tabularx}{\linewidth}{ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}}
Da ich 5 Spalten benötige, verstehe ich, dass die Tabelle 3 linksbündige Spalten hat, später eine weitere nicht ausgerichtete (RaggedRight) und eine letzteXSpalte, habe ich recht? Aber ich bin mir nicht sicher. Der Code darin ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
ist für mich schwer zu verstehen, kann mir das jemand erklären?
Aktualisieren
Nach den Kommentaren und der Antwort habe ich einige Korrekturen an der Tabelle vorgenommen. Ich habe gesehen, dass eine Spalte keinen Sinn ergibt. Aber das Layout der Tabelle ist schrecklich. Wie kann ich das beheben? Gibt es eine Möglichkeit, den Text in einer Zelle aufzulisten oder zu trennen, wenn ich eine Liste und keinen Absatz brauche?
Antwort1
ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
Ist
ll
zwei Spalten mit einzeiligen linksbündigen Einträgen, dann
*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
drei Kopien von>{\RaggedRight\arraybackslash\hspace{0pt}}X
Jede davon ist grundsätzlich eine X
Spalte mit p{...}
einer automatisch berechneten Breite.
Die Token in >{...}
werden am Anfang jeder Zelle angewendet. In diesem Fall ist das
\RaggedRight\arraybackslash\hspace{0pt}
\RaggedRight
ist eine verbesserte Version des \raggedright
Pakets ragged2e
.
\arraybackslash
ist darin definiert, tabularx
es wird neu definiert \\
, um die Tabellenzeile zu beenden (was seinen normalen Definitionen in „Tabellen“ entspricht, aber \ragedright
usw. \RaggedRight
definieren es lokal neu, um ein unregelmäßiges Textzeilenende zu erzeugen, was hier nicht erwünscht ist).
Ein alter Trick besteht darin , einen Absatz mit \hspace{0pt}
einem Leerzeichen vor dem ersten Wort zu beginnen, damit TeX das erste Wort im Absatz trennen kann. (Der Silbentrennungsalgorithmus von TeX berücksichtigt das erste Wort ansonsten nicht, was wahrscheinlich wirklich ein Fehler ist, aber TeX ist eingefroren und wird dieses Verhalten nicht ändern.
Antwort2
David Carlisle hat Ihre ersten Fragen bereits beantwortet. Ich werde also versuchen, Ihnen bei der Lösung anderer Probleme zu helfen. Ihr MWE weist einige Fehler auf, wie z. B. „ \caption
is after“ (ist nach) \begin{tabularx} ...
, „es hat nicht“ (ist nicht nach) \end{document}
. Und am auffälligsten ist, dass mir nicht klar ist, ob Sie (über mehrere Seiten verteilt) oder nur eine einfache Tabelle in einer Float-Umgebung haben möchten longtabe
. Ich gehe davon aus, dass Letzteres der Fall ist, und erstelle Ihr MWE wie folgt neu:
\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}
Im Code habe ich einige Kommentare hinzugefügt, mit denen ich versuche zu verdeutlichen, was ich mache und was mir sonst noch nicht klar ist. Wie Sie sehen, wird die Tabelle in eine Tabellenumgebung eingefügt, und ich schlage auch vor, in der Dokumentpräambel einen neuen Spaltentyp zu definieren.
Bearbeiten: Iraultza Bellaustegigoitia, wenn Sie mit dem Entwurf von Tabellen beginnen – dies ist eine der anspruchsvollsten Aufgaben bei der Verwendung von LaTeX – müssen Sie einige Entscheidungen treffen, beispielsweise:
- Passt die Tabelle auf eine Seite oder ist sie so groß, dass sie auf mehrere Seiten aufgeteilt wird?
- Kann die Tabelle im Text schweben oder nicht?
- Sollte die Tabelle die vorgeschriebene Breite haben?
Unter Berücksichtigung der Antworten auf die obige Frage wählen Sie eine tabellarische Umgebung aus, z. B. tabularx
für eine Tabelle auf einer Seite, longtable
für eine größere Tabelle usw. Wenn Sie mit dem ausgewählten Paket nicht vertraut sind, lesen Sie (zumindest kurz) die Dokumentation, die dem Paket beiliegt.
Beachten Sie bei der Gestaltung einer Tabelle einige einfache Regeln:
- Neuere mischen bestimmte Funktionen verschiedener Pakete (verwenden Sie beispielsweise die Kopf-/Fußzeilendefinition von
longtable
intabularx
). Ausnahmen sind die Paketearray
undbooktabs
, die zur Unterstützung anderer tabellarischer Pakete entwickelt wurden. - Es ist keine gute Idee, in Tabellen unterschiedliche Schriftgrößen zu verwenden
Ich habe mein MWE ein wenig überarbeitet, ein Beispiel für die einfache Emulation von Listen in Tabellenzellen hinzugefügt (für anspruchsvollere Layouts empfehle ich die Verwendung einiger Listenpakete enumitem
) und ein neues Bild der damit generierten Tabelle hinzugefügt. Ich hoffe, dass es in etwa dem entspricht, was Sie erreichen möchten, und dass Ihnen diese Ergänzung dabei hilft.
Antwort3
Nun, nachdem ich den ganzen verdammten Tag mit diesem Tisch gekämpft habe, und dank der freundlichen Antworten und Erklärungen von David Carlisle und dem Zarco-Trick, habe ich den Tisch genau so, wie ich wollte.
Ich habe Folgendes getan:
\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}
Mein anderes Problem war, wie ich den Text in einer Zelle dieser Tabelle auflisten sollte. Ich glaube nicht, dass die Verwendung einer Umgebung wie itemize
oder enumerate
verschachtelt darin eine gute Idee war, das heißt, ich glaube nicht, dass es richtig kompiliert. Oft ist es einfach, den Text mithilfe von zu trennen, \\
aber da in den Tabellen die Zeilen so unterschieden werden, schien keines von beiden zu funktionieren. Am Ende habe ich versucht, es zu verwenden, \par
und es hat funktioniert, aber ich weiß nicht, ob es einen besseren Weg gibt.