由于我遇到了换行问题,我应该如何手动换行?, 我用了\usepackage{parskip}
。
这很有效。
但是,当我有一个表格环境时,环境前后有很多垂直间距。
代码:
\documentclass{article}
\usepackage{tabto}
\usepackage{parskip}
\newcommand{\inlinecode}[1]{\texttt{\small\color{blue}{#1}}}
\newcommand{\n}[0]{\\[3mm]}
\begin{document}
This is a line.
This a new paragraph.
\subsubsection{Closing Windows}
\begin{flushright}
\begin{tabular}{p{10mm}p{40mm}p{80mm}}
1 & dskhkdfahsk & khskdahfkhk\n
2 & two & three\n
\end{tabular}
\end{flushright}
Hello1
Hello2
\end{document}
有什么方法可以让我单独禁用它parskip
吗tabular
?
答案1
您的示例的主要问题来自表格的宽度。为了说明,请考虑以下flushright
环境序列:
\documentclass{article}
\begin{document}
\begin{flushright}
\rule{2cm}{0.4pt}
\end{flushright}
\begin{flushright}
\rule{5cm}{0.4pt}
\end{flushright}
\begin{flushright}
\rule{10cm}{0.4pt}
\end{flushright}
\begin{flushright}
\rule{15cm}{0.4pt}
\end{flushright}
\begin{flushright}
\rule{2cm}{0.4pt}
\end{flushright}
\end{document}
生产
您会发现,行前有比文本宽度更宽的额外垂直空间。
在您的示例中,表格的宽度130mm
加上列间距,日志文件告诉您该行超出了60.8858pt
。减小最后一列的尺寸,异常间距就会消失:
\documentclass{article}
\usepackage{tabto}
\usepackage{parskip}
\newcommand{\inlinecode}[1]{\texttt{\small\color{blue}{#1}}}
\newcommand{\n}[0]{\\[3mm]}
\begin{document}
This is a line.
This a new paragraph.
\subsubsection{Closing Windows}
\begin{flushright}
\begin{tabular}{p{10mm}p{40mm}p{30mm}}
1 & dskhkdfahsk & khskdahfkhk\n
2 & two & three\n
\end{tabular}
\end{flushright}
Hello1
Hello2
\end{document}
flushright
添加了一些额外的垂直间距(\topsep
,标准值8pt plus 2pt minus 4t
,但0pt
由parskip
包设置为),但这本身并不像您所看到的那么引人注目,除非内容过宽。
flushright
因为它被定义为
\trivlist \raggedleft\item\relax
这创造了类似于
\hfill\strut\hskip 0pt
在第一行。然后 LaTeX 会在 处找到一个允许的断点\hskip
,并且当行满时,可以选择在那里断点。
答案2
我找到了一个解决方案。
我用的是这个:
\setlength{\parskip}{\dimexpr\baselineskip plus 1pt minus 20pt\relax}
plus
在对和值进行大量实验之后minus
,我让它工作了。