groff:挿入された画像間の段落を正しくレンダリングする方法は?

groff:挿入された画像間の段落を正しくレンダリングする方法は?

私は以下を持っています小さな森使用されたソースマクロ:

.PRINTSTYLE TYPESET
.CAPTION_AFTER_LABEL IMG
.START
.PDF_IMAGE img/uc1.pdf 657p 152p SCALE 70 CAPTION "Figure 1: Activity diagram for UC1"
.PP
Placeholder text 1
.PDF_IMAGE img/uc2.pdf 345p 61p CAPTION "Figure 2: Activity diagram for UC2"
.PP
Placeholder text 2
.PDF_IMAGE img/uc3.pdf 517p 301p SCALE 75 CAPTION "Figure 3: Activity diagram for UC3"
.PP
Placeholder text 3
.PDF_IMAGE img/uc4.pdf 540p 470p SCALE 75 CAPTION "Figure 4: Activity diagram for UC4"
.PP
Placeholder text 4

次のようにレンダリングされます。

エラーレンダリングの例

3番目の画像が最初のページに収まらないため、3番目の画像を次のページにスライドさせて終了します。ただし、問題は最初のページの2番目の画像の直後に発生するのでPlaceholder text 3はなく、Placeholder text 4それぞれ次のページの3番目と4番目の画像の後に発生する必要があります。つまり、groffソースと同じ順序で生成されたPDFで、前の画像の後に段落が表示されるようにします。

引数なしPDF_IMAGEマクロこの問題を解決するようです。

使ってみようALDマクロマクロが垂直位置から離れていると考えてページの垂直位置を移動しますPDF_IMAGEが、これにより段落の前に大きな垂直スペースが生じるだけです。

この問題をどのように解決できますか?

PDFをどのように編集しますか?

pdfmom example.mom > example.pdf

答え1

troffには概念があります浮かぶ要塞。これはマクロによって提供momされます.FLOAT。フロートの始まりと終わりの間のコンテンツは同じページに残りますが、これを達成するために別の出力にスライドさせることができます。このオプションを使用すると、FORCEこのような状況を回避できます。これマクロ テキストの並べ替えを次にリセットパディングなし.JUSTIFYしたがって、この操作を元に戻すには浮動小数点でを使用する必要がありますが、これを含める必要があります.PP。例:

.FLOAT FORCE
.PDF_IMAGE img/uc1.pdf 657p 152p SCALE 70 CAPTION "Figure 1: Activity diagram for UC1"
.PP
Placeholder text 1
.FLOAT OFF

関連情報