长表间距:\LTpre 和 \LTpost 似乎不起作用,粗体会增加额外的空间

长表间距:\LTpre 和 \LTpost 似乎不起作用,粗体会增加额外的空间

我使用 XeTeX 版本 3.14159265-2.6-0.99992 (TeX Live 2015/W32TeX)。我正在排版一本带有大量长表的 sloppypar 的书。我遵循此主题使用\LTpre\LTpost减少长表前后的间距。我仍然面临三个问题:

1) 设置\LTpre为 0pt 会导致长表前的空间小于行距。2) 设置\LTpost为 0pt 会导致长表后的空间大于行距。3) 一些长表需要完全以粗体排版。为此,我将整个长表放在 \textbf{} 中。这会增加表格前的一些额外空间,如果没有粗体,这些空间就不会存在

这是 MWE

\documentclass[12pt]{book}
\usepackage{ragged2e}
\raggedbottom
\usepackage{polyglossia}
\usepackage{longtable}
\usepackage{lipsum}
\setlength{\LTpre}{0pt}
\setlength{\LTpost}{0pt}
\begin{document}
\begin{sloppypar}\hyphenrules{nohyphenation}\lipsum[2]\end{sloppypar}
{\centering
\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}
}
\begin{sloppypar}\hyphenrules{nohyphenation}\lipsum[2]\end{sloppypar}
{\centering\textbf{
\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}
}}
\end{document} 

输出

在此处输入图片描述

编辑 1 于 2015-12-19 0450 IST

@daleif 的解决方案解决了问题 3。但问题 1 和 2 仍然存在。为了更清楚起见,我在页面上添加了一个网格,代码如下:

\documentclass[12pt]{book}
\usepackage{ragged2e}
\raggedbottom
\usepackage[top=0pt,left=0pt,bottom=0pt,right=0pt,width=396pt,height=612pt]{geometry}
\usepackage[step=18pt]{pagegrid}
\pagegridsetup{top-left}
\usepackage{polyglossia}
\usepackage{longtable}
\usepackage{lipsum}
\setlength{\LTpre}{0pt}
\setlength{\LTpost}{0pt}
\begin{document}
\fontsize{12}{18}\selectfont
\vspace*{6.5pt}
\begin{sloppypar}\hyphenrules{nohyphenation}
\lipsum[2]
\end{sloppypar}
\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}
\begin{sloppypar}\hyphenrules{nohyphenation}
\lipsum[2]
\end{sloppypar}
{\bfseries
\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}
}
\begin{sloppypar}\hyphenrules{nohyphenation}
\lipsum[2]
\end{sloppypar}
\end{document}

下面是输出。请注意长表的行是如何稍微上移的,即它们的基线不在单位与行距相同的网格上。

在此处输入图片描述

答案1

如果你不喜欢这个……呃,这个……功能长桌,那么有一个独立的包可用于修补代码以禁用它。

该行为与 XeTeX 或类似程序无关sloppypar。以下是示例版本的输出daleif 的回答使用问题的网格和应用的补丁:

补片间距

\documentclass[12pt]{book}
\usepackage{ragged2e}
\raggedbottom
\usepackage[top=0pt,left=0pt,bottom=0pt,right=0pt,width=396pt,height=612pt]{geometry}
\usepackage[step=18pt]{pagegrid}
\pagegridsetup{top-left}
\usepackage{longtable,ltabptch}
\usepackage{lipsum}
\setlength{\LTpre}{0pt}
\setlength{\LTpost}{0pt}
\begin{document}
\begin{sloppypar}
  \lipsum[2]
\end{sloppypar}
\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}
\begin{sloppypar}
  \lipsum[2]
\end{sloppypar}
{\bfseries\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}}
\begin{sloppypar}
  \lipsum[2]
\end{sloppypar}
\end{document}

答案2

我在这里没有看到任何间距问题(Xelatex,TexLive 2015):

\documentclass[12pt]{book}
\usepackage{ragged2e}
\raggedbottom
\usepackage{polyglossia}
\usepackage{longtable}
\usepackage{lipsum}
\setlength{\LTpre}{0pt}
\setlength{\LTpost}{0pt}
\begin{document}
\begin{sloppypar}
  \lipsum[2]
\end{sloppypar}
\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}
\begin{sloppypar}
  \lipsum[2]
\end{sloppypar}
{\bfseries\begin{longtable}{ll} C11 & C12\\C21 & C22 \end{longtable}}
\begin{sloppypar}
  \lipsum[2]
\end{sloppypar}
\end{document} 

在此处输入图片描述

相关内容