行の先頭が行頭禁則文字の場合、行頭に配置しないようにする処理です。
行頭禁則文字は帳票定義体のプロパティまたはプリンタ情報ファイルのHYPHTOP(行頭禁則文字指定)で指定します。ただし、プリンタ情報ファイルのLFCODE(出力矩形項目の英数字文字改行コード指定)で指定した文字を指定しても禁則の対象とはなりません。また空白文字も禁則対象とはなりません。
行頭禁則処理には禁則文字を現在の行の末尾に移動する追い込みと、直前の文字と合わせて次行に移動する追い出しの2種類の処理があります。
追い込みが可能ならば追い込みによる禁則処理を行います。追い込みが不可能な場合、追い出し可能なら追い出しによる禁則処理を行います。追い出しが不可能なら、行頭禁則処理は行いません。
文字ピッチの縮小による追い込み
項目に文字ピッチが指定されている場合、文字ピッチを縮小して追い込みを行います。
追い込み行の文字ピッチを全体的に95%まで縮め行頭禁則文字を出力します。その他の行の文字ピッチは変わりません。
文字ピッチを詰めても矩形項目の横幅を超える場合には、追い込みは行いません。
文字幅の縮小による追い込み
行頭禁則の文字を前の行の末尾に移動します。その際矩形項目の横幅を超えないように、行頭禁則文字を配置しようとする行の文字ピッチまたはカッコなどの特定文字と行頭禁則の文字の文字幅を縮小し、矩形項目の幅を超えないようにします。
追い込み時の縮小対象となる特定文字は以下の文字です。
(すべて全角:ASCIIや半角形は含みません。)
括弧、引用符
〝〟‘’“”〔〕()《》[]〈〉「」『』{}【】
句読点
、。,.
記号
!:;?
行頭禁則文字を配置しようとする行に含まれる上記の文字および行頭禁則文字が上記のいずれかの場合に横幅の縮小を行います。縮小率は66%までを下限として縮小します。対象となる文字をすべて66%に縮小しても矩形項目の横幅を超える場合には追い込みは行いません。
注意
OS、出力先またはフォントのバージョンにより同じ帳票でも縮小後の文字幅が異なることがあります。そのため禁則結果が変わることがあります。(一方では追い込み、もう一方では追い出しなど)
行頭禁則文字を前の行に追い込むことができない場合、禁則対象の文字を直前の文字と合わせて次行に移動します。禁則対象文字の直前に行頭禁則文字が連続している場合、それらの文字の前にある最も近い行頭禁則文字以外の文字を探し、その文字が次行の先頭になるように配置します。
注意
追い出しにより出力行数が増える場合があるため、禁則処理の結果、一部の文字が出力されなくなる場合があります。
以下の条件の場合、追い出しは行いません。
追い出しを行った結果、前の行に1文字も配置できない場合。
行全体が行頭禁則文字の場合。
行末禁則を行うと指定されている場合、追い出しを行った結果、前の行が空白と行末禁則文字だけになる場合。