我想知道为什么\parskip
表格环境中是零。
我怎样才能使段落垂直间距相等在表格环境内,就像在tabular
?之外一样。
我了解\@parboxrestore
和\@minipagerestore
,但无法找到修复此问题的参考\begin{tabular}
。
\documentclass{文章}
\usepackage{array}
\setlength{\parindent}{0mm}
\setlength{\parskip}{8pt}
\begin{document}
\textbf{par inside tabular}
\begin{tabular}{|>{\raggedright}p{8cm}|}
\hline
Lorem ipsum dolor sit amet.
\par{}
Lorem ipsum dolor sit amet.
\par{}
Lorem ipsum dolor sit amet.
\tabularnewline
\hline
\end{tabular}
\textbf{par outside tabular}
Lorem ipsum dolor sit amet.
\par{}
Lorem ipsum dolor sit amet.
\par{}
Lorem ipsum dolor sit amet.
\end{document}
导致以下结果:
答案1
实际上,minipage
和\parbox
重置\parskip
为 0pt,因此您必须在内部重置它。虽然在这种情况下我们知道\parskip=8pt
,但一般来说情况并非如此。
\documentclass{article}
\usepackage{array}
\setlength{\parindent}{0mm}
\setlength{\parskip}{8pt}
\newlength{\oldparskip}
\begin{document}
\textbf{par inside tabular}
\oldparskip=\parskip
\begin{tabular}{|>{\raggedright\parskip=\oldparskip}p{8cm}|}
\hline
Lorem ipsum dolor sit amet.
\par
Lorem ipsum dolor sit amet.
\par
Lorem ipsum dolor sit amet.
\tabularnewline
\hline
\end{tabular}
\end{document}
答案2
列p
与 本质上相同\parbox
。在这两种情况下,它们都用于\@arrayparboxrestore
规范化几件事。如果您不想将 parskip 和 parindent 规范化,而是保留在主文档中,只需重新定义命令即可不重置它们:
\documentclass{article}
\usepackage{array}
\setlength{\parindent}{0mm}
\setlength{\parskip}{8pt}
\makeatletter
\def\@arrayparboxrestore{%
\let\if@nobreak\iffalse
\let\if@noskipsec\iffalse
\let\par\@@par
\let\-\@dischyph
\let\'\@acci\let\`\@accii\let\=\@acciii
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \parindent\z@ \parskip\z@skip
\everypar{}%
\linewidth\hsize
\@totalleftmargin\z@
\leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
\parfillskip\@flushglue \lineskip\normallineskip
\baselineskip\normalbaselineskip
\sloppy}
\makeatother
\begin{document}
\textbf{par inside tabular}
\begin{tabular}{|>{\raggedright}p{8cm}|}
\hline
Lorem ipsum dolor sit amet.
\par
Lorem ipsum dolor sit amet.
\par
Lorem ipsum dolor sit amet.
\tabularnewline
\hline
\end{tabular}
\textbf{par outside tabular}
Lorem ipsum dolor sit amet.
\par{}
Lorem ipsum dolor sit amet.
\par{}
Lorem ipsum dolor sit amet.
\end{document}