来自 \hskip 的神秘空白行?

来自 \hskip 的神秘空白行?

我使用了一个非常复杂的.sty文件。它的主要目的.sty是启用一个特殊的内联框,其中的文本可以以非常特殊的方式排版。框内没有问题。它.sty提供了两个宏,可以由用户(比如我)自定义,分别放在框的前面和后面。我将这两个宏定义为两个\hskip。除了当内联框从段落内的一行开头开始时,所有功能都运行良好,此时存在一个额外的空白行。

梅威瑟:

\documentclass[twoside,10pt]{article}

\makeatletter
\usepackage{CJKutf8,CJKvert}
\usepackage[papersize={294pt,363pt},total={229.9pt,299pt},centering]{geometry}
\parindent=0pt
\parskip=12pt

\usepackage{pdflscape}\PLS@Rotate{90}
\usepackage{gezhu}%https://code.google.com/p/gezhu/
\let\gezhu@debugbox\gezhu@fbox
\everygezhu={\linespread{0.83}\footnotesize\renewcommand\CJKglue{\hskip 3pt}}
\beforegezhu={\hskip 2.5pt plus 0pt minus 0pt}
\aftergezhu={\hskip 2.5pt plus 2pt minus 0pt}

\def\CJKglue{\hskip 1pt plus 0pt minus 0pt}

% Note:
% 230pt = 10pt*21 (characters) + 1pt* 20 (CJKglues)
% In order to make all characters 'fit the grid', 
% text inside the box is 8pt per character, 3pt per CJKglue
% total space around a box is 4pt so as to make characters 'fit the grid',
% but (for some unknown reason) additional 0.5pt is needed on each end.
% ccccccccccgccccccccccgccccccccccgcccccccccc
% ccccccccccggccccccccgggccccccccggcccccccccc
\makeatother

\begin{document}
\begin{CJK*}{UTF8}{bsmi}
\begin{withgezhu}
\leavevmode
進行文字測試七八九十一二三四五六七八九十一二三|{朝朝朝朝朝朝朝朝朝落}進行文字測試進行文字測試進行文字測試進行文字測試\par
進行文字測試七八九十一二三四五六七八九十|{朝朝朝朝朝朝朝朝朝落}一二三進行文字測試進行文字測試進行文字測試進行文字測試\par
進行文字測試七八九十一二三四五六七八九十一二三|{朝朝朝朝朝朝朝朝朝落}進行文字測試\par
進行文字測試七八九十一二三四五六七八九十一|{朝朝朝朝朝朝朝朝朝落}二三進行文字測試\par

\clearpage
\beforegezhu={}
\aftergezhu={}
進行文字測試七八九十一二三四五六七八九十一二三|{朝朝朝朝朝朝朝朝朝落}進行文字測試進行文字測試進行文字測試進行文字測試\par
進行文字測試七八九十一二三四五六七八九十|{朝朝朝朝朝朝朝朝朝落}一二三進行文字測試進行文字測試進行文字測試進行文字測試\par
進行文字測試七八九十一二三四五六七八九十一二三|{朝朝朝朝朝朝朝朝朝落}進行文字測試\par
進行文字測試七八九十一二三四五六七八九十一|{朝朝朝朝朝朝朝朝朝落}二三進行文字測試\par

\end{withgezhu}
\end{CJK*}
\end{document}

此 MWE 中每页有四个段落。在第 1 页中,前三个段落很好(因为字符“适合网格”),但最后一个段落很糟糕,因为 (1) 方框后面的字符“不适合网格”,更重要的是 (2) 方框前面突然出现了一个神秘的空白行。

有人可以帮忙修复(1)和(2)吗?

答案1

我看不懂脚本,但额外的 hspace 增加了一个额外的换行位置,这会使装箱代码混乱并强制两次换行。您可以使用和附加来阻止这种情况,\nobreak我认为这可以解决问题,但如果您想允许将此空间放在换行符处,则可能需要进行调整

\beforegezhu={\leavevmode\nobreak\hskip 2.5pt plus 0pt minus 0pt}
              %%%%%%%%%%%%%%%%%%%

在此处输入图片描述

相关内容