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

다음과 같이 렌더링됩니다.

오류 렌더링 예시

세 번째 이미지가 첫 번째 페이지에 맞지 않기 때문에 세 번째 이미지를 다음 페이지에 밀어넣으면 끝입니다. 그러나 문제는 첫 번째 페이지의 두 번째 이미지 바로 다음에 발생 Placeholder text 3하는 것이 Placeholder text 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

관련 정보