
私の前回の質問に対する 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}
私には理解しにくいので、誰か説明してくれませんか?
アップデート
コメントと回答を受けて、表にいくつか修正を加えたところ、列が意味をなさないことに気付きました。しかし、表のレイアウトはひどいです。どうすれば修正できますか? 段落ではなくリストが必要な場合、セル内のテキストをリスト化または分離する方法はありますか?
答え1
ll*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
は
ll
2列の1行左揃えのエントリ、次に
*{3}{>{\RaggedRight\arraybackslash\hspace{0pt}}X}
3部>{\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
の後のようなエラーがいくつかあります\begin{tabularx} ...
が、 はありません\end{document}
。そして最も注目すべきは、あなたが (より多くのページに広がる) を望んでいるのか、それとも float 環境での単純なテーブルを望んでいるのかが私にははっきりしないということです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 を使用する上で最も難しい作業の 1 つです)、次のような決定を行う必要があります。
- 表は 1 ページに収まるか、または大きすぎるため複数のページに分割されるか
- 表をテキスト内にフロートできるかどうか
- テーブルは規定の幅を持つべきである
tabularx
上記の質問への回答を考慮して、表を 1 ページに表示したり、より大きなサイズにしたりするために、表形式の環境を選択します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}
私のもう 1 つの問題は、この表のセル内にテキストをリストする方法です。itemize
またはenumerate
nested inside のような環境を使用するのは良い考えではないと思います。つまり、正しくコンパイルされないと思います。 を使用するとテキストを分離するのは簡単です\\
が、表のように行が区別される方法であるため、どちらも機能していないようです。最終的に を使用しようとしましたが、\par
うまくいきましたが、もっと良い方法があるかどうかはわかりません。