如何在 multicols 環境中使用表格。還有經文 p{} 和 \multicolumn 嗎?

如何在 multicols 環境中使用表格。還有經文 p{} 和 \multicolumn 嗎?

更新的問題

我要從頭開始。會讓問題變得非常簡單和直接。下面將留下原來的問題。

我只是想看一個\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 程式碼。

我想使用表格(表格或表格*或表格x,無論有效)。但是對表格的列使用段落(如果有效,則使用 X ),因為我想放置自動換行的文本,或者使用枚舉列表等,所以它必須是段落,而且我也想\multicolumn在表格內部使用,因為我想將一行跨越多於一列。

我發現(*) tabularx 不能很好地與\multicolumn.我還發現如果我使用的\multicolumn{2}東西不起作用,請參閱下面的第二個範例。所以存在一些衝突,我無法找到正確的組合來使用。

如果我使用tabular,我必須使用 usingp{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 

 ...

\noindentfollowed by \parjust makes a paragraph consisting of a blank line \parfillskipglue and no text so it will look a bit like spurious vertical space, except being a line box it will not be discarded at a page break, it will not prevent the indentation of the following文字.

%\begin{tabularx}{.8\textwidth}{@{}|X|X|@{}}

這將使 \textwidth 的表 .8 比列寬得多(在考慮列分隔後,該表小於 .5\textwidth

%\begin{tabularx}{.8\linewidth}{@{}|X|X|@{}}

這將使表格的列寬為 0.8。它將縮進\parindent,並且可能會也可能不會到達列的右邊緣,這取決於是否\parindent大於或小於 .2\linewidth

%\begin{tabularx}{\hsize}{|X|X|}

這使得表格的列寬(有點低效,因為您事先知道您希望兩列具有相同的寬度,但 TeX 不知道這一點)由於段落縮進,該行將過多。

%\begin{tabular*}{\hsize}{|l|p{.8\hsize}}}

如果您使用,tabular*則需要使用\extracolumsep來添加一些拉伸,否則您將指定目標寬度並且使 Tex 無法實現它。 (你也應該使用\linewidthnot \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}}

如上所述,您不能像這樣使用 tabular* 。

\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單元格不會突破一行。

例如,請參閱此答案,以了解考慮儲存格填入和規則寬度來指定列寬度的方法

https://tex.stackexchange.com/a/150987/1090

相關內容