
pregunta actualizada
Voy a empezar de nuevo. Hará la pregunta muy simple y directa. Dejará la pregunta original a continuación.
Simplemente quiero ver un ejemplo de uso \multicolumn
en una tabla (cualquier entorno de tabla servirá) donde todo el entorno. está escrito en un multicols
.
Aquí hay un MWE
\documentclass[english]{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{multirow}
\usepackage{array}
\usepackage{multicol}
\usepackage{babel}
\usepackage[pangram]{blindtext}
\usepackage{tabularx}
%see similar question asked before
%https://groups.google.com/forum/#!topic/comp.text.tex/66SUHWPeqZY
\begin{document}
\begin{multicols}{2}
\Blindtext[2][3]
\begin{tabularx}{.9\linewidth}{@{}|X|X|@{}}\hline
%\multicolumn{2}{c} \Blindtext[1][3]\\ %% PROBLEM AREA HERE ******
\Blindtext[1][3]&\Blindtext[1][3]\\\hline
\end{tabularx}
\Blindtext[2][3]
\end{multicols}
\end{document}
Si elimino el comentario de \multicolumn
lo anterior, entonces la tabla no se compone correctamente. Necesito usar \multicolumn
en lo anterior. ¿Que necesito hacer?
vieja pregunta
Me gustaría usar \multicols{3}
, donde 3
se puede cambiar otro valor, sin tener que cambiar el código de Latex para configurar la tabla en el código debajo.
Me gustaría usar una tabla (tabular o tabular* o tabularx, lo que funcione). Pero use párrafo para las columnas de la tabla (o X si funciona), ya que quiero poner texto que se ajuste automáticamente, o usar listas de enumeración y demás, por lo que tiene que ser un párrafo, y también quiero usarlo \multicolumn
dentro de la tabla ya que Quiero abarcar una fila en más de una columna.
Descubrí (*) que tabularx no funciona bien con \multicolumn
. También descubrí que si uso \multicolumn{2}
cosas no funcionan, consulte el segundo ejemplo a continuación. Entonces hay algunos conflictos y no puedo encontrar la combinación correcta para usar.
Si uso tabular
, tengo que dar un tamaño explícito para la columna usando p{2in}
o algo así. Pero no quiero codificar el ancho de las columnas.
Nada de lo que intenté funcionó. Aquí están mis intentos.
Ejemplo 1
\documentclass[12pt,a4paper]{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{multirow}
\usepackage{array}
\usepackage{multicol}
\usepackage{lipsum}
\usepackage{tabularx}
\begin{document}
\begin{multicols}{2}
\noindent
\lipsum[1]
%\begin{tabularx}{.8\textwidth}{@{}|X|X|@{}}
%\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
%\begin{tabularx}{\hsize}{|X|X|}
%\begin{tabular*}{\hsize}{|l|p{.8\hsize}}}
%\begin{tabular*}{.8\textwidth}{|l|p{2in}}}
%\begin{tabular}{|p{1in}|p{2in}}
%\begin{tabular*}{.8\linewidth}{|p{.2\linewidth|p{.8\linewidth}}
\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
\multicolumn{2}{c} The “lipsum” package is a more basic package.
It generates a certain “lorem ipsum” text\\
The “lipsum” package is a more basic package. Itlorem ipsum” text&
The “lipsum” package is a more basic package. It generates a
certain number of the standard “lorem ipsum” text
\end{tabularx}
\lipsum[1]
\end{multicols}
\end{document}
Ejemplo 2
eliminar \multicolumn{2}{c}
parece haber ayudado.
\documentclass[12pt,a4paper]{article}
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\usepackage{multirow}
\usepackage{array}
\usepackage{multicol}
\usepackage{lipsum}
\usepackage{tabularx}
\begin{document}
\begin{multicols}{2}
\noindent
\lipsum[1]
%\begin{tabularx}{.8\textwidth}{@{}|X|X|@{}}
%\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
%\begin{tabularx}{\hsize}{|X|X|}
%\begin{tabular*}{\hsize}{|l|p{.8\hsize}}}
%\begin{tabular*}{.8\textwidth}{|l|p{2in}}}
%\begin{tabular}{|p{1in}|p{2in}}
%\begin{tabular*}{.8\linewidth}{|p{.2\linewidth|p{.8\linewidth}}
%\begin{tabularx}{\columnwidth}{@{}|X|X|@{}}
\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
%\multicolumn{2}{c} The “lipsum” package is a more basic package&
It generates a certain “lorem ipsum” text\\
The “lipsum” package is a more basic package. Itlorem ipsum” text&
The “lipsum” package is a more basic package. It generates a
certain number of the standard “lorem ipsum” text
\end{tabularx}
\lipsum[1]
\end{multicols}
\end{document}
(*) referenciahttps://groups.google.com/forum/#!topic/comp.text.tex/WjdABHwT7-g
Respuesta1
Sus problemas no están realmente relacionados con multicol
el hecho de que eso cambia el ancho de la línea.
\noindent
...
\noindent
seguido de \par
simplemente crea un párrafo que consiste en una línea en blanco \parfillskip
pegada y sin texto, por lo que se verá un poco como un espacio vertical falso, excepto que al ser un cuadro de línea no se descartará en un salto de página, no evitará la sangría de lo siguiente. texto.
%\begin{tabularx}{.8\textwidth}{@{}|X|X|@{}}
Esto crearía una tabla de 0,8 de \textwidth que es mucho más ancha que la columna (que es menos de 0,5\textwidth, después de tener en cuenta la separación de columnas).
%\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
Esto haría una tabla con un ancho de columna de 0,8. Tendrá una sangría \parindent
y puede llegar o no al borde derecho de la columna, dependiendo de si \parindent
es mayor o menor que .2\linewidth
%\begin{tabularx}{\hsize}{|X|X|}
esto hace que una tabla tenga el ancho de columna (de manera algo ineficiente, ya que sabe de antemano que desea que ambas columnas tengan el mismo ancho, pero TeX no lo sabe). La línea estará excesivamente llena debido a la sangría del párrafo.
%\begin{tabular*}{\hsize}{|l|p{.8\hsize}}}
Si lo usa, tabular*
debe usarlo \extracolumsep
para agregar algo de estiramiento; de lo contrario, estará especificando un ancho objetivo y no le dará a Tex forma de lograrlo. (También deberías usar \linewidth
not \hsize
.)
%\begin{tabular*}{.8\textwidth}{|l|p{2in}}}
Como lo anterior .8\textwidth
es demasiado ancho y no ha proporcionado ninguna forma de estirar la mesa.
%\begin{tabular}{|p{1in}|p{2in}}
Esto creará una tabla del ancho especificado, con sangría parindent.
%\begin{tabular*}{.8\linewidth}{|p{.2\linewidth|p{.8\linewidth}}
Como arriba, no puedes usar tabular* así.
\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
Como se indicó anteriormente, esto crearía una tabla de .8\linewidth con sangría \parindent
.
%\multicolumn{2}{c} The “lipsum” package is a more basic package&
El texto debe estar en el argumento para\multicol
%\multicolumn{2}{c}{The “lipsum” package is a more basic package}&
y como ha especificado, c
la celda no se dividirá en una línea.
Consulte, por ejemplo, esta respuesta para conocer formas de especificar los anchos de las columnas teniendo en cuenta el relleno de las celdas y los anchos de las reglas.