표와 그리드 (Tables and grids)

문서에서 표를 사용할 계획이 없다면 표에 대해 반드시 알 필요는 없지만, 그리드(grid)는 _문서 레이아웃_에 매우 유용할 수 있습니다. 나중에 책에서 두 가지 모두를 사용할 것입니다.

공식 문서의 예제를 복사하는 데 시간을 낭비하지 맙시다. 그냥 가볍게 훑어만 보세요, 알겠죠?

기본 스니펫

전개 (Spreading)

전개 연산자(여기 참조)는 특히 표에서 유용할 수 있습니다:

#set text(size: 9pt)

#let yield_cells(n) = {
  for i in range(0, n + 1) {
    for j in range(0, n + 1) {
      let product = if i * j != 0 {
        // 더 예쁜 외관을 위해 수식 사용
        if j <= i { $#{ j * i }$ } 
        else {
          // 표의 윗부분
          text(gray.darken(50%), str(i * j))
        }
      } else {
        if i == j {
          // 오른쪽 상단 모서리 
          $times$
        } else {
          // 둘 중 하나가 0이면 상단/좌측에 위치함
          $#{i + j}$
        }
      }
      // 이것은 배열이며, for 루프는 이들을 
      // 하나의 커다란 셀 배열로 병합합니다.
      (
        table.cell(
          fill: if i == j and j == 0 { orange } // 오른쪽 상단 모서리
          else if i == j { yellow } // 대각선
          else if i * j == 0 { blue.lighten(50%) }, // 곱하는 수
          product,),
      )
    }
  }
}

#let n = 10
#table(
  columns: (0.6cm,) * (n + 1), rows: (0.6cm,) * (n + 1), align: center + horizon, inset: 3pt, ..yield_cells(n),
)
Rendered image

표의 행 강조하기

#table(
  columns: 2,
  fill: (x, y) => if y == 2 { highlight.fill },
  [A], [B],
  [C], [D],
  [E], [F],
  [G], [H],
)
Rendered image

개별 셀의 경우 다음과 같이 사용합니다:

#table(
  columns: 2,
  [A], [B],
  table.cell(fill: yellow)[C], table.cell(fill: yellow)[D],
  [E], [F],
  [G], [H],
)
Rendered image

표 나누기

표는 페이지 사이에서 자동으로 나뉩니다.

#set page(height: 8em)
#(
table(
  columns: 5,
  [Aligner], [publication], [Indexing], [Pairwise alignment], [Max. read length  (bp)],
  [BWA], [2009], [BWT-FM], [Semi-Global], [125],
  [Bowtie], [2009], [BWT-FM], [HD], [76],
  [CloudBurst], [2009], [Hashing], [Landau-Vishkin], [36],
  [GNUMAP], [2009], [Hashing], [NW], [36]
  )
)
Rendered image
Rendered image

하지만 다른 요소 내부에서 표를 나눌 수 있게 하려면, 해당 요소도 나눌 수 있게 만들어야 합니다:

#set page(height: 8em)
// 이것이 없으면 표가 여러 페이지에 걸쳐 나뉘지 못합니다.
#show figure: set block(breakable: true)
#figure(
table(
  columns: 5,
  [Aligner], [publication], [Indexing], [Pairwise alignment], [Max. read length  (bp)],
  [BWA], [2009], [BWT-FM], [Semi-Global], [125],
  [Bowtie], [2009], [BWT-FM], [HD], [76],
  [CloudBurst], [2009], [Hashing], [Landau-Vishkin], [36],
  [GNUMAP], [2009], [Hashing], [NW], [36]
  )
)
Rendered image
Rendered image