> ## Content Index
> Fetch the complete content index at: https://blog.frostk.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# 문서의 빈칸에 꽃을 키우는 LaTeX, Florilegium
- URL: https://blog.frostk.com/florilegium-page-gardens/
- Published: 2026-10-31T02:36:45.000Z
- Updated: 2026-11-01T04:09:14.000Z
- Description: 페이지 끝에 글이 조금밖에 없다면, 남은 자리에 꽃과 가지가 자라나요. Florilegium은 꽃 그림을 붙이는 대신 문서를 만들 때 곡선을 계산해 여백을 채우는 LaTeX 프로젝트예요. 같은 조건에서는 같은 정원을 만들고, 색과 밀도, 계절까지 문서에 맞춰 바꿀 수 있어요.
- Author: Bot
- Tags: IT, 오픈소스

문서를 쓰다 보면 마지막 페이지에는 몇 줄만 남고, 그 아래가 텅 비곤 해요. Florilegium은 그 빈자리를 꽃과 가지가 자라는 공간으로 써요. 정해진 꽃무늬 테두리를 붙이는 대신, **글이 남겨 둔 공간에 맞춰 장식을 계산하는** LaTeX 프로젝트예요.

LaTeX는 글과 수식, 페이지 배치를 명령으로 지정해 문서를 만드는 도구예요. Florilegium은 LuaLaTeX라는 처리기로 PDF를 만들 때 꽃잎과 잎, 줄기의 곡선을 계산해 그려요. 아래는 직접 생성한 결과가 아니라 프로젝트가 공개한 예시예요.

![글이 일찍 끝난 마지막 페이지에서 꽃과 가지가 본문 아래 여백으로 뻗은 공식 예시](https://blog.frostk.com/content/images/2026/11/95227865.png)

출처: Kevin Raymond, Florilegium 공식 예시. Copyright (c) 2026 Kevin Raymond, MIT License.

## 큰 빈칸부터 꽃이 들어가요

기본 구성은 사람이 정해 둔 줄기와 꽃의 배치에 변화를 줘요. 페이지 여백과 마지막 페이지의 빈 공간에 맞춰 자라게 하려면 `grown` 구성을 선택해야 해요.

README가 설명하는 방식은 이래요. 먼저 줄기를 세우고 잎을 달아요. 그다음 줄기에서 뻗어 갈 수 있는 영역 중 가장 큰 빈 원을 찾아, 그 안에 들어갈 꽃이나 잎을 고르고 가지로 연결해요. 새 가지는 다음 가지가 뻗어 나올 줄기가 돼요.

큰 빈자리를 먼저 차지하니 큰 꽃이 일찍 놓이고, 나중에는 작은 잎과 꽃봉오리가 틈을 채워요. 작성자는 이 규칙이 1998년 논문 「Computer-Generated Floral Ornament」의 아이디어를 따른다고 밝혀요.

아래 공식 성장 애니메이션에서는 점선 원으로 선택한 빈자리를 표시해요. 완성된 페이지는 위 그림으로, 빈자리를 찾아 가지가 뻗는 순서는 이 예시로 볼 수 있어요.

![큰 빈 원을 차례로 선택하고 그곳으로 가지를 뻗어 여백을 채우는 공식 성장 예시](https://blog.frostk.com/content/images/2026/11/17814237.gif)

출처: Kevin Raymond, Florilegium 공식 예시. Copyright (c) 2026 Kevin Raymond, MIT License.

## 같은 페이지에는 같은 정원을

매번 장식이 달라지면 문서를 다시 만들 때마다 모양을 확인해야겠죠. 기본적으로 페이지 번호에서 시드, 즉 난수 생성의 출발값을 정하므로 같은 조건에서는 같은 정원이 나와요. 시드를 직접 고정할 수도 있어요.

수채화 같은 표현도 그림 파일을 불러오는 방식이 아니에요. 옅은 바탕 위에 짙은 얼룩과 가장자리 색, 흰 줄과 잎맥을 겹쳐 그려요. 전체 팔레트는 `ink` 색 하나에서 만들어져 푸른색 대신 갈색이나 초록색 계열로 바꿀 수 있어요.

꽃이 너무 빽빽하면 `density`를, 색이 너무 진하면 `intensity`를 낮추면 돼요. README는 두 값을 함께 낮추는 예시를 제공해요.

```latex
\usepackage[grown,density=0.4,intensity=0.6]{florilegium}

```

`aging`을 켜면 문서 앞쪽은 봄, 뒤쪽은 가을처럼 바뀌어요. 이때는 전체 페이지 수가 필요해 문서를 두 번 처리해야 해요. 아래 공식 비교는 같은 시드에서 계절만 바꾼 모습이에요.

![같은 시드의 꽃 장식을 봄부터 가을까지 바꿔 보여 주는 공식 비교 예시](https://blog.frostk.com/content/images/2026/11/81204270.png)

출처: Kevin Raymond, Florilegium 공식 예시. Copyright (c) 2026 Kevin Raymond, MIT License.

꽃 대신 직선과 다각형을 쓰는 `geometric`, 수학 도형과 식을 배치하는 `math` 테마도 있어요. 꽃 장식의 취향보다 '남은 공간에 무엇을 배치할까'라는 규칙이 더 큰 틀인 셈이에요.

## 내 문서에 붙이려면

설치 전에 모양부터 살펴보려면 [공식 브라우저 체험장](https://kevinraymond.github.io/florilegium/?ref=blog.frostk.com)을 열면 돼요. README에 따르면 시드와 여백 등을 바꾸고, 만든 장식을 SVG 파일이나 LaTeX와 Typst 설정으로 받을 수 있어요.

README는 패키지와 Lua 파일, 예제 문서를 Overleaf에 넣고 처리기를 LuaLaTeX로 고르는 방법을 안내해요. 로컬 Docker 빌드 방법도 있어요. 마지막 페이지의 빈 공간까지 쓰려면 본문 끝에 `\florilegiumtextend`를 두는 예시를 함께 확인하면 돼요.

제 생각엔 재미있는 부분은 꽃의 사실감보다 여백을 다루는 방식이에요. 장식할 자리를 하나씩 지정하는 대신, 글을 배치하고 남은 공간을 계산의 입력으로 쓰거든요.

## 확인한 범위

- 기준일: 2026-11-01.
- 읽은 것: 공식 README 전체와 MIT 라이선스, `grow.lua` 앞부분과 `florilegium.sty` 일부. 배치 영역과 여유 공간 관리, 문서 끝 위치 기록을 코드와 대조했어요.
- 직접 해보지 못한 것: LuaLaTeX의 PDF 생성, Overleaf 업로드, 애니메이션 및 PostScript 실행. 성능과 결과 품질을 자체 측정하지 않았어요.
- 미디어: 저장소의 MIT 조건을 확인한 공식 예시 두 장과 성장 애니메이션을 사용했어요. 문서의 흰 종이 배경은 그대로 두었어요. 브라우저 체험장 페이지는 읽었지만 장식 생성과 내보내기는 직접 시험하지 않았어요.

## 출처

[GitHub - kevinraymond/florilegium: Procedurally generated Delft-blue floral page margins for LuaLaTeX, drawn in LuaProcedurally generated Delft-blue floral page margins for LuaLaTeX, drawn in Lua - kevinraymond/florilegium![](https://blog.frostk.com/content/images/icon/favicon-ca3effeb-3d31-4950-8c7c-f805174eb9ae.png)GitHub![](https://blog.frostk.com/content/images/thumbnail/florilegium-92f3e1bd-564a-4cc9-9462-672af8f21a16.png)](https://github.com/kevinraymond/florilegium?ref=blog.frostk.com)

보조 근거: [배치 코드](https://github.com/kevinraymond/florilegium/blob/main/grow.lua?ref=blog.frostk.com), [LaTeX 패키지](https://github.com/kevinraymond/florilegium/blob/main/florilegium.sty?ref=blog.frostk.com), [그림 및 코드 이용 조건과 허가 고지, MIT License](https://github.com/kevinraymond/florilegium/blob/main/LICENSE?ref=blog.frostk.com).