본문 바로가기
Programming/Tips

[Jupyter notebook] Table of Contents (TOC) 넣기 (상단/사이드 배치)

by a voyager 2021. 5. 30.
728x90
반응형

Hong Kong Victoria Harbour 

 

[Jupyter notebook] Table of Contents (TOC) 넣기 

 

파이썬 코딩 시 가장 많이 사용되는 편집기가 아마 jupyter notebook일 것이다. cell별로 코딩을 실행할 수 있어 디버깅을 하며 코딩을 완성시키기 좋기 때문이다. 하지만 주피터 노트북은 코딩이 길어지면 많은 cell들 때문에 다소 산만해질 수 있다. 이것을 일목요연하게 정리하기 위해서는 목록, 즉, table of content (TOC)를 넣어주면 코딩이 길어져도 그 흐름을 한눈에 파악할 수 있다. 

 

이 포스팅에서는 TOC를 넣는 두 가지 방법에 대해서 소개하도록 하겠다. 

 

TOC 유형 1 

첫 번째 유형은 주피터 노트북 상단에 TOC를 넣는 것이다. 

 

아래의 첫 번째 박스를 가장 첫 번째 cell에 넣는다. 물론 cell의 유형은 Markdown으로 바꾸어 주어야 한다.

### Table of Contents in this notebook 

* [Chapter 1](#chapter1)
    * [Section 1.1](#section_1_1)
    * [Section 1.2](sSection_1_2)
        * [Section 1.2.1](#section_1_2_1)
        * [Section 1.2.2](#section_1_2_2)
        * [Section 1.2.3](#section_1_2_3)
* [Chapter 2](#chapter2)
    * [Section 2.1](#section_2_1)
    * [Section 2.2](#section_2_2)

 

위와 같이 설정한 후 코딩 시 아래와 같이 추가하면서 위의 설정과 페어링 해주면 된다. 

### Chapter 1 <a class="anchor" id="chapter1"></a>

#### Section 1.1 <a class="anchor" id="section_1_1"></a>

#### Section 1.2 <a class="anchor" id="section_1_2"></a>

##### Section 1.2.1 <a class="anchor" id="section_1_2_1"></a>

##### Section 1.2.2 <a class="anchor" id="section_1_2_2"></a>

##### Section 1.2.3 <a class="anchor" id="section_1_2_3"></a>

### Chapter 2 <a class="anchor" id="chapter2"></a>

#### Section 2.1 <a class="anchor" id="section_2_1"></a>

#### Section 2.2 <a class="anchor" id="section_2_2"></a>

 

아래와 같이 TOC가 설정된다.  

결과 

 

(출처) 상단에 TOC 배치하기 

 

 

TOC 유형 2 (사이드 배치, recommended) 

첫 번째 방법은 별도의 패키지 설치 없이 바로 TOC를 적용할 수 있다는 장점이 있는 반면, 코딩의 목록을 한눈에 조망하려면 어쩔 수 없이 스크롤을 가장 위로 올려야 한다는 단점이 있다. 이것은 여간 불편한 점이 아닐 수 없다. 코딩을 조망하려고 TOC를 넣었는데, 그것을 보려면 다시 코딩의 맨 위로 올라가야 한다니 말이다. 

 

이것을 보완한 것이 이 두 번째 방법이다. 이것은 TOC를 사이드에 배치해 스크롤의 위치와 상관없이 항상 모든 목록을 볼 수 있게 해 준다. 이것은 큰 장점이다. 이 설정을 위해서 몇 가지 패키지를 설치해 주어야 한다. 길지 않아 천천히 따라오면 쉽게 사이드 TOC를 넣어 줄 수 있다. 

 

Step 1  

우선 pip 패키지로 jupyter_nbextensions_configurator를 설치해준다. 

pip install jupyter_nbextensions_configurator

 

or 

 

Conda의 환경에서 작업하고 있다면 아래와 같이 설치할 수 있다 

conda install -c conda-forge jupyter_nbextensions_configurator

 

Step 2

다음으로 설치한 notebook 확장자를 Jupyter 서버에 등록해준다.  

jupyter nbextensions_configurator enable --user

 

아래와 같이 실행된다. 

 

Step 3

다음으로 jupyter_contrib_nbextensions를 설치한다. 이 확장자에는 여러 개발자가 만든 다양한 jupyter notebook 확장 프로그램이 포함되어 있다.  여기에는 Table of Contents(2) 확장자도 있다. 

pip install jupyter_contrib_nbextensions

 

Step 4

설치를 했으면 서버에 등록하여 활성화해 준다. 

jupyter contrib nbextension install --user

 

Step 5

jupyter notebook 서버 재실행하고 Table of Contents(2) 확장자를 활성화한다. 

jupyter notebook

 

Nbextensions탭이 생긴 것을 확인한다. 

 

 

여러 항목 중에 Table of Contents (2)를 체크한다. 

 

 

 

체크를 해주면 관련 parameter 설정 창이 나타난다. 가장 위에 있는 Automatically number notebook's sections를 체크한다. 

 

 

Final Step

이제 다 왔다. 코딩을 열고 Toogle Toolbar 메뉴에서 가장 오른쪽에 있는 목록을 체크해주면 아래와 같이 왼쪽에 TOC가 나타난다. 목록의 항목을 클릭하여 내비게이션도 가능하다. 

 

해피 코딩~!! 

 

 

728x90
반응형

댓글