
更新的問題
我要從頭開始。會讓問題變得非常簡單和直接。下面將留下原來的問題。
我只是想看一個\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
...
\noindent
followed by \par
just makes a paragraph consisting of a blank line \parfillskip
glue 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 無法實現它。 (你也應該使用\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}}
如上所述,您不能像這樣使用 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
單元格不會突破一行。
例如,請參閱此答案,以了解考慮儲存格填入和規則寬度來指定列寬度的方法