
обновленный вопрос
Я начну все сначала. Сделаю вопрос очень простым и прямым. Оставлю исходный вопрос ниже.
Я просто хочу увидеть пример использования \multicolumn
в таблице (подойдет любая таблица окружения), где все окружение набрано в multicols
.
Вот 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}
Если я раскомментирую вышесказанное \multicolumn
, то таблица не будет набрана правильно. Мне нужно использовать \multicolumn
вышесказанное. Что мне нужно сделать?
старый вопрос
Я хотел бы использовать \multicols{3}
, где 3
можно изменить другое значение, не изменяя код Latex для настройки таблицы в коде ниже.
Я хотел бы использовать таблицу (tabular или tabular* или tabularx, что бы ни подошло). Но используйте абзац для столбцов таблицы (или X, если это подойдет), так как я хочу поместить текст, который автоматически переносится, или использовать списки перечисления и тому подобное, так что это должен быть абзац, и я также хочу использовать \multicolumn
внутри таблицы, так как я хочу охватить одну строку более чем одним столбцом.
Я обнаружил(*), что tabularx не работает хорошо с \multicolumn
. Я также обнаружил, что если я использую , \multicolumn{2}
то что-то не работает, см. второй пример ниже. Так что есть некоторые конфликты, и я не могу найти правильную комбинацию для использования.
Если я использую tabular
, мне придется использовать явный размер для столбца с помощью p{2in}
или что-то в этом роде. Но я не хочу жестко кодировать ширину столбцов.
Ничего из того, что я пробовал, не сработало. Вот мои попытки
Пример 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}
Пример 2
удаление, \multicolumn{2}{c}
похоже, помогло.
\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}
(*) ссылкаhttps://groups.google.com/forum/#!topic/comp.text.tex/WjdABHwT7-g
решение1
Ваши проблемы на самом деле не связаны ни с чем, multicol
кроме того факта, что это изменяет ширину линии.
\noindent
...
\noindent
за которым следует \par
просто создает абзац, состоящий из пустой строки- \parfillskip
клея и без текста, поэтому он будет немного похож на ложный вертикальный пробел, за исключением того, что, будучи строкой, он не будет отброшен при разрыве страницы, он не помешает отступу следующего текста.
%\begin{tabularx}{.8\textwidth}{@{}|X|X|@{}}
Это создаст таблицу размером .8 \textwidth, которая намного шире столбца (который меньше .5\textwidth, если учесть разделение столбцов)
%\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
Это сделает таблицу шириной .8 столбца. Она будет отступом \parindent
и может достигать или не достигать правого края столбца, в зависимости от того, \parindent
больше или меньше .2\linewidth
%\begin{tabularx}{\hsize}{|X|X|}
это делает таблицу шириной столбца (несколько неэффективно, поскольку вы заранее знаете, что хотите, чтобы оба столбца были одинаковой ширины, но TeX этого не знает). Строка будет переполнена из-за отступа абзаца.
%\begin{tabular*}{\hsize}{|l|p{.8\hsize}}}
Если вы используете , tabular*
вам нужно использовать , \extracolumsep
чтобы добавить некоторое растяжение, в противном случае вы указываете целевую ширину и не даете Tex возможности ее достичь. (Также вам следует использовать \linewidth
not \hsize
.)
%\begin{tabular*}{.8\textwidth}{|l|p{2in}}}
как указано выше, .8\textwidth
слишком широк, и вы не предусмотрели возможности растянуть таблицу.
%\begin{tabular}{|p{1in}|p{2in}}
Это создаст таблицу указанной ширины с отступом parindent
%\begin{tabular*}{.8\linewidth}{|p{.2\linewidth|p{.8\linewidth}}
как указано выше, вы не можете использовать табличную* таким образом.
\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}
Как и выше, это создаст таблицу .8\linewidth с отступом \parindent
.
%\multicolumn{2}{c} The “lipsum” package is a more basic package&
Текст должен быть в аргументе\multicol
%\multicolumn{2}{c}{The “lipsum” package is a more basic package}&
и как вы указали c
ячейка не будет разрываться за пределы строки.
Например, см. этот ответ, чтобы узнать, как задать ширину столбцов с учетом отступов ячеек и ширины правил.