일기:2024년 10월 1일

Posted on October 1, 2024

10월

벌써 10월이 되었다. 시간 참 빠르다. 바람이 많이 분다. 내일은 갑자기 날씨가 추워진다고 한다.

Hakyll과 증명 나무

Hakyll로 만든 정적 사이트에 증명 나무를 표시하려면 아래와 같이 해야 한다.

MathJax

templates/default.html에 아래와 같은 코드를 넣어야 한다.1

<script id="MathJax-script" async
        src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
</script>

이때 MathJax 버전 2는 안 되고 3을 써야 한다.

Pandoc

myblog.cabalpandoc 의존성을 추가한다.

build-depends: hakyll,
               pandoc

site.hs 상단에 아래 모듈을 임포트한다.

Text.Pandoc.Options

site.hs 파일 중간에 포스트를 처리하는 부분의 코드를 아래와 같이 변경한다.23

let readerOptions = defaultHakyllReaderOptions
    writerOptions = defaultHakyllWriterOptions
                    { writerHTMLMathMethod = MathJax "" }
compile $ pandocCompilerWith readerOptions writerOptions

각주 연습

이 문단에서는 마크다운 각주를 연습한다.4

각주 다음에 문장이 있을 때 각주는 어디에 표시될까?

정의 1.1.1 (탑다운)

자연수 \(n\)은 아래 조건을 만족할 때 집합 \(S\)에 속한다.

  1. \(n = 0\) 또는
  2. \(n - 3 \in S\)

정의 1.1.2 (바텀업)

\(S\)는 집합 \(N\)에 포함되고 아래 두 속성을 만족하는 가장 작은 집합이다.

  1. \(0 \in S\)
  2. 만약 \(n \in S\)라면 \(n + 3 \in S\)

정의 (추론 규칙)

\[ \begin{prooftree} \AxiomC{} \UnaryInfC{$0 \in S$} \end{prooftree} \]

\[ \begin{prooftree} \AxiomC{$n \in S$} \UnaryInfC{$(n+3) \in S$} \end{prooftree} \]

정의 1.1.3 (탑다운)

스킴 리스트는 아래 조건을 만족할 때 정수의 리스트이다.

  1. 빈 리스트이거나
  2. car가 정수이고 cdr이 정수 리스트인 짝이다.

정의 1.1.4 (바텀업)

정수 리스트 집합은 아래 두 속성을 만족하는 가장 작은 스킴 집합이다.

  1. \(() \in 정수리스트\)
  2. 만약 \(n \in 정수\)이고 \(l \in 정수리스트\)이면 \((n . l) \in 정수리스트\)이다.

정의 1.1.5 (추론 규칙)

\[ () \in 정수리스트 \]

\[ \begin{prooftree} \AXC{$n \in 정수$} \AXC{$l \in 정수리스트$} \BIC{$(n.l) \in 정수리스트$} \end{prooftree} \]

연습 문제 1.1.1

\[ \{3n + 2 | n \in N\} \]


  1. https://www.mathjax.org/#gettingstarted↩︎

  2. https://wizzup.github.io/posts/hakyll-mathjax/↩︎

  3. https://jaspervdj.be/hakyll/tutorials/03-rules-routes-compilers.html↩︎

  4. 이것은 각주입니다.↩︎