
Estoy intentando hacer una tabla que contenga detalles de todos mis trabajos de curso. Escribí el siguiente código. Hay algunos problemas con esto:
- ¿Por qué aparece una primera página en blanco al compilar (con la tabla en la segunda página)?
- La tabla parece dejar mucho espacio en el margen izquierdo de la página, que podría usarse para tener una cuarta columna más ancha, pero parece que no puedo usar ese espacio.
- La tabla repasa el número de página en la parte inferior de la segunda página y no se muestra nada después de lo que se muestra en la página 2. Tengo varios otros cursos y me gustaría que esta tabla abarque aproximadamente 3 páginas. ¿Cómo puedo hacerlo?
Nota: He creado la segunda columna como una columna p ya que los nombres reales de algunos instructores requieren dos líneas.
Aquí está el código:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{p{2.5cm}p{2cm}lp{6cm}}
\toprule[2pt]
Name of Course & Instructor & Book(s) Referred & Brief List of Topics Covered \\
\hline
\\[\defaultaddspace]
Algebra I & ABC & Herstein; M. Artin &
\parbox{6cm}{Basic Set Theory; Group Theory\\(upto Sylow theorems);\\ Introduction to Ring Theory} \\
\\[\defaultaddspace]
Algebra II & DEF & Hoffman and Kunze &
\parbox{6cm}{Linear Algebra \\(upto Spectral theorems)} \\
\\[\defaultaddspace]
Algebra III & GHI & S. Lang &
\parbox{6cm}{Ring and Module Theory\\(covering Hilbert basis theorem and structure theorem for finitely generated abelian groups)}\\
\\[\defaultaddspace]
Algebra IV & JKL & S. Lang &
\parbox{6cm}{Introduction to Field \\ and Galois Theory}\\
\\[\defaultaddspace]
Analysis I & MNO & T. Apostol &
\parbox{6cm}{Real numbers; Sequences and series;\\ Calculus of a single variable \\ (upto Taylor's Theorem)
} \\
\\[\defaultaddspace]
Analysis II & PQR & T. Apostol &
\parbox{6cm}{Riemann integral; Introduction to \\ Calculus of several variables; \\ Metric spaces and elementary \\ topological notions on it} \\
\\[\defaultaddspace]
Analysis III & \parbox{2cm}{STU} & S. Dineen &
\parbox{6cm}{\textbf{Vector Calculus}: multiple integrals, \\ Jacobian formula, line and surface \\ integrals, Green's, Stokes' and Gauss' (Divergence) theorems; \\ Sequences of functions; Weierstrass \\ approximation theorem} \\
\\[\defaultaddspace]
Analysis IV & VWX & Rudin &
\parbox{6cm}{\textbf{Introduction to Function Spaces}:\\ compact metric spaces,\\ C([a,b]) as a complete metric space, \\ Banach's contraction principle, \\ Stone-Weierstrass and Arzela-Ascoli theorems, Fourier series } \\
\\[\defaultaddspace]
Probability Theory I & YZ & Chung; Feller &
\parbox{6cm}{Combinatorial probability and urn models; Conditional probability; \\ Random variables; Expectation; \\ Moment generating functions;\\ Standard distributions(Binomial etc.); \\ Joint and conditional distributions; \\ Weak law of large numbers} \\
\\[\defaultaddspace]
Probability Theory II & YZ & Feller &
\parbox{6cm}{Joint distributions; \\Transformation of variables\\(assuming Jacobian formula);\\ Distributions for sums, maxima/minima, order statistics, etc.; Standard multivariate and sampling distributions; Conditional expectation; Convergence of random variables} \\
\\[\defaultaddspace]
\bottomrule[2pt]
\end{tabular}
\end{document}
Respuesta1
El verdadero problema es que no hay suficiente espacio para la tabla en la página.
Esto es lo que sugiero:
Úselo
longtable
desde el mismo paquete en lugar detabular
si desea que la tabla se divida en páginas.En este caso la tabla puede permanecer en una página. Puedes usar el
geometry
paquete y reducir los márgenes de la página solo para la página donde está la tabla con el comando\newgeometry{margin=2cm}
y restaurar el diseño normal más tarde emitiendo
\restoregeometry
Reducir la longitud de
\defaultaddspace
a1pt
\setlength{\defaultaddspace}{1pt}
No es necesario utilizar
\parbox
es para centrar el contenido de las celdas. Puede cargar elarray
paquete y utilizarlom
en lugar dep
. También puedes declarar un nuevo tipo de columna.M
\newcolumntype{M}[1]{>{\raggedright\arraybackslash}m{#1}}
También puede utilizar
\newline
para emitir saltos de línea dentro de las celdas.
Ejemplo completo:
\documentclass[a4paper,10pt]{article}
\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm,array}
\usepackage{booktabs}
\usepackage{array,longtable}
\usepackage{lipsum} %only for the example
\newcolumntype{M}[1]{>{\raggedright\arraybackslash}m{#1}}
\setlength{\defaultaddspace}{1pt}
\begin{document}
\lipsum[1-5]
\newpage
\newgeometry{margin=2cm}
\begin{longtable}{p{2.5cm}p{2cm}lM{6cm}}
\toprule[2pt]
Name of Course & Instructor & Book(s) Referred & Brief List of Topics Covered \\
\hline
\\[\defaultaddspace]
Algebra I & ABC & Herstein; M. Artin &
Basic Set Theory; Group Theory\newline(upto Sylow theorems);\newline Introduction to Ring Theory \\
\\[\defaultaddspace]
Algebra II & DEF & Hoffman and Kunze &
Linear Algebra \newline(upto Spectral theorems) \\
\\[\defaultaddspace]
Algebra III & GHI & S. Lang &
Ring and Module Theory\newline(covering Hilbert basis theorem and structure theorem for finitely generated abelian groups) \\
\\[\defaultaddspace]
Algebra IV & JKL & S. Lang &
Introduction to Field \newline and Galois Theory\\
\\[\defaultaddspace]
Analysis I & MNO & T. Apostol &
Real numbers; Sequences and series;\newline Calculus of a single variable \newline (upto Taylor's Theorem) \\
\\[\defaultaddspace]
Analysis II & PQR & T. Apostol &
Riemann integral; Introduction to \newline Calculus of several variables; \newline Metric spaces and elementary \newline topological notions on it \\
\\[\defaultaddspace]
Analysis III & \parbox{2cm}{STU} & S. Dineen &
\textbf{Vector Calculus}: multiple integrals, \newline Jacobian formula, line and surface \newline integrals, Green's, Stokes' and Gauss' (Divergence) theorems; \newline Sequences of functions; Weierstrass \newline approximation theorem \\
\\[\defaultaddspace]
Analysis IV & VWX & Rudin &
\textbf{Introduction to Function Spaces}:\newline compact metric spaces,\newline C([a,b]) as a complete metric space, \newline Banach's contraction principle, \newline Stone-Weierstrass and Arzela-Ascoli theorems, Fourier series \\
\\[\defaultaddspace]
Probability Theory I & YZ & Chung; Feller &
Combinatorial probability and urn models; Conditional probability; \newline Random variables; Expectation; \newline Moment generating functions;\newline Standard distributions(Binomial etc.); \newline Joint and conditional distributions; \newline Weak law of large numbers \\
\\[\defaultaddspace]
Probability Theory II & YZ & Feller &
Joint distributions; \newline Transformation of variables\newline(assuming Jacobian formula);\newline Distributions for sums, maxima/minima, order statistics, etc.; Standard multivariate and sampling distributions; Conditional expectation; Convergence of random variables \\
\\[\defaultaddspace]
\bottomrule[2pt]
\end{longtable}
\newpage
\restoregeometry
\lipsum[1-5]
\end{document}
Producción:
EDITAR
Como señala egreg en su comentario, probablemente la tabla se vea mejor si usa una p
columna normal sin necesidad de columnas adicionales \\
antes \\[\defaultaddspace]
.
Esta es otra posibilidad (elige la que más te guste):
\documentclass[a4paper,10pt]{article}
\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm,array}
\usepackage{booktabs}
\usepackage{array,longtable}
\usepackage{lipsum} %only for the example
\begin{document}
\lipsum[1-5]
\newpage
\newgeometry{margin=3cm}
\begin{longtable}{p{2.5cm}p{2cm}lp{6cm}}
\toprule[2pt]
Name of Course & Instructor & Book(s) Referred & Brief List of Topics Covered \\[\defaultaddspace]
\hline
\\
Algebra I & ABC & Herstein; M. Artin &
Basic Set Theory; Group Theory\newline(upto Sylow theorems);\newline Introduction to Ring Theory \\[\defaultaddspace]
Algebra II & DEF & Hoffman and Kunze &
Linear Algebra \newline(upto Spectral theorems) \\[\defaultaddspace]
Algebra III & GHI & S. Lang &
Ring and Module Theory\newline(covering Hilbert basis theorem and structure theorem for finitely generated abelian groups) \\[\defaultaddspace]
Algebra IV & JKL & S. Lang &
Introduction to Field \newline and Galois Theory \\[\defaultaddspace]
Analysis I & MNO & T. Apostol &
Real numbers; Sequences and series;\newline Calculus of a single variable \newline (upto Taylor's Theorem) \\[\defaultaddspace]
Analysis II & PQR & T. Apostol &
Riemann integral; Introduction to \newline Calculus of several variables; \newline Metric spaces and elementary \newline topological notions on it \\[\defaultaddspace]
Analysis III & \parbox{2cm}{STU} & S. Dineen &
\textbf{Vector Calculus}: multiple integrals, \newline Jacobian formula, line and surface \newline integrals, Green's, Stokes' and Gauss' (Divergence) theorems; \newline Sequences of functions; Weierstrass \newline approximation theorem \\[\defaultaddspace]
Analysis IV & VWX & Rudin &
\textbf{Introduction to Function Spaces}:\newline compact metric spaces,\newline C([a,b]) as a complete metric space, \newline Banach's contraction principle, \newline Stone-Weierstrass and Arzela-Ascoli theorems, Fourier series \\[\defaultaddspace]
Probability Theory I & YZ & Chung; Feller &
Combinatorial probability and urn models; Conditional probability; \newline Random variables; Expectation; \newline Moment generating functions;\newline Standard distributions(Binomial etc.); \newline Joint and conditional distributions; \newline Weak law of large numbers \\[\defaultaddspace]
Probability Theory II & YZ & Feller &
Joint distributions; \newline Transformation of variables\newline(assuming Jacobian formula);\newline Distributions for sums, maxima/minima, order statistics, etc.; Standard multivariate and sampling distributions; Conditional expectation; Convergence of random variables \\[\defaultaddspace]
\bottomrule[2pt]
\end{longtable}
\newpage
\restoregeometry
\lipsum[1-5]
\end{document}
Respuesta2
Te sugiero que hagas lo siguiente con la tabla, suponiendo que quepa en una página:
Utilice un
tabularx
entorno en lugar de untabular
entorno, establezca su ancho en\textwidth
y utilice elX
tipo de columna para la columna final. Esto establecerá el ancho de la columna final en (\textwidth
menos los anchos de las otras tres columnas).Utilice tipografía irregular en lugar de justificación completa en la última columna; cargue el
ragged2e
paquete para permitir la separación de palabras en palabras escritas en modo raggedright.Deshágase de los distintos
\parbox
envoltorios y utilice\newline
declaraciones para inducir saltos de línea en la columna 4. (¡Gracias, @egreg!)Reemplace las numerosas
\\ \\[\defaultaddspace]
instrucciones con\\[\defaultaddspace]
. Si realmente necesita más espacios en blanco verticales que los proporcionados por\defaultaddspace
, simplemente aumente el valor de ese parámetro de manera adecuada. En el siguiente ejemplo, utilizo2.5\defaultaddspace
para proporcionar más espacio vertical después de los grupos de cursos de álgebra y análisis.
Suponiendo márgenes de 1in
todos lados, obtendría el siguiente aspecto:
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath,amsthm,booktabs}
\usepackage{tabularx,ragged2e}
\newcolumntype{Y}{>{\RaggedRight\arraybackslash}X}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{@{} l p{1.75cm} l Y @{}}
\toprule[2pt]
Name of Course & Instructor & Book(s) Referred & Brief List of Topics Covered \\
\midrule
Algebra I & ABC & Herstein; M. Artin &
Basic Set Theory; Group Theory\newline
(upto Sylow theorems);\newline
Introduction to Ring Theory \\[\defaultaddspace]
Algebra II & DEF & Hoffman and Kunze &
Linear Algebra \newline
(upto Spectral theorems) \\[\defaultaddspace]
Algebra III & GHI & S. Lang &
Ring and Module Theory \newline
(covering Hilbert basis theorem and structure theorem for finitely generated
abelian groups)\\[\defaultaddspace]
Algebra IV & JKL & S. Lang &
Introduction to Field and Galois Theory \\[2.5\defaultaddspace]
Analysis I & MNO & T. Apostol &
Real numbers; Sequences and series;\newline
Calculus of a single variable \newline
(upto Taylor's Theorem) \\[\defaultaddspace]
Analysis II & PQR & T. Apostol &
Riemann integral; Introduction to Calculus of several variables; \newline
Metric spaces and elementary topological notions on it \\[\defaultaddspace]
Analysis III & STU & S. Dineen &
\textbf{Vector Calculus}: multiple integrals, Jacobian formula, line and
surface integrals, Green's, Stokes' and Gauss' (Divergence) theorems; \newline
Sequences of functions; \newline
Weierstrass approximation theorem \\[\defaultaddspace]
Analysis IV & VWX & Rudin &
\textbf{Introduction to Function Spaces}:\newline
compact metric spaces, $C([a,b])$ as a complete metric space, Banach's contraction principle,
Stone-Weierstrass and Arzela-Ascoli theorems, Fourier series \\[2.5\defaultaddspace]
Prob.\ Theory I & YZ & Chung; Feller &
Combinatorial probability and urn models; Conditional probability; \newline
Random variables; Expectation; \newline
Moment generating functions;\newline
Standard distributions (Binomial etc.); \newline
Joint and conditional distributions; \newline
Weak law of large numbers \\[\defaultaddspace]
Prob.\ Theory II & YZ & Feller &
Joint distributions; \newline
Transformation of variables (assuming Jacobian formula);\newline
Distributions for sums, maxima\slash minima, order statistics, etc.;\newline
Standard multivariate and sampling distributions;\newline
Conditional expectation; \newline
Convergence of random variables \\
\bottomrule[2pt]
\end{tabularx}
\end{document}
Apéndice: Es sencillo ampliar esta configuración para que la tabla pueda abarcar varias páginas. Es necesario (i) cargar elmesa largaymesa ltxpaquetes (además del tabularx
paquete) en el preámbulo y (ii) realizar algunos cambios en la estructura del encabezado/pie de página de la tabla para que se ajuste a la longtable
sintaxis:
Comience colocando todo el contenido de la tabla actual (de
\begin{tabularx}{\textwidth}{...}
a\end{tabularx}
) en unarchivo separado. Llame a este archivo, digamos,mybiglongtable.tex
. (Estoy seguro de que se te ocurrirá un nombre más adecuado...)En el "archivo del controlador", inserte la instrucción
\LTXtable{\textwidth}{mybiglongtable.tex} % note explicit width indication
justo donde quieres que comience la mesa. (A
longtable
no es un "objeto flotante" en el sentido de la palabra LaTeX). El archivo del controlador del ejemplo anterior de tabla de una sola página se vería así:\documentclass[a4paper,10pt]{article} \usepackage[utf8]{inputenc} \usepackage[margin=1in]{geometry} \usepackage{amsmath,amsthm,booktabs} \usepackage{tabularx,longtable,ltxtable,ragged2e} \newcolumntype{Y}{>{\RaggedRight\arraybackslash}X} \begin{document} \LTXtable{\textwidth}{mybiglongtable.tex} \end{document}
En el archivo
mybiglongtable.tex
, realice los siguientes cambios:Cambiar
\begin{tabularx}{\textwidth}{@{} l p{1.75cm} l Y @{}}
a
\begin{longtable}{@{} l p{1.75cm} l Y @{}} % no explicit width indication
y cambie
\end{tabularx}
(al final del archivo) a\end{longtable}
.Utilizando
longtable
la sintaxis, proporcione la información requerida de encabezado y pie de página inmediatamente después de\begin{longtable}{...}
, diga lo siguiente:\toprule[2pt] Name of Course & Instructor & Book(s) Referred & Brief List of Topics Covered \\ \midrule \endfirsthead \multicolumn{4}{@{}l}{\emph{Continued from previous page}}\\ \midrule[\heavyrulewidth] \endhead \midrule[\heavyrulewidth] \multicolumn{4}{r@{}}{\emph{Continued on following page}} \endfoot \bottomrule[2pt] \endlastfoot
Tenga en cuenta que todos los comandos de dibujo de reglas para las partes superior e inferior de la tabla se asignan a uno de los comandos
\endfirsthead
,\endhead
,\endfoot
y\endlastfoot
.El resto del archivo (hasta
\end{longtable}
) debe contener el "cuerpo" de la tabla, es decir, la información relacionada con los cursos. Puede utilizar\\[\defaultaddspace]
y\\[2.5\defaultaddspace]
como en el MWE anterior para proporcionar una agrupación visual de los contenidos.