VSCodeでJupyter Notebookを使ってみた【ゼロからPython勉強してみる】

# はじめに
[前回](https://qiita.com/_starfields_/items/3c07a62ab9cb1df1b5bd)、VSCodeを使用して簡単なプログラムを動かしてみた。
このまま続けて簡単なプログラムを何個か実際に動かしてみて勉強をしてみようと考えましたが、チラチラとノートブックが便利という旨の記事を目にしました。
また、VSCodeでPythonの拡張機能をインストールした時に一緒にインストールされたJupyterという拡張機能がそのノートブックの機能だということだそうです。

便利ならば使わない手はないということで、今回はJupyter Notebookについて勉強した内容を整理し、て実際に使ってみた状況を備忘録として残します。

# ノートブックとはなんだ
まずそもそも、ノートブックとは何なのだろう？
正直なところ便利ということしかわからない。なので以下の記事を参考にどのような機能かを整理します。

https://qiita.com/hinastory/items/e179361ae806e8776c70

https://qiita.com/ss_33_sss/items/7c628f66b69a42ec56ca

詳しいことが知りたい場合は参考資料を参照するとして、ノートブックとは一つのファイル(.ipynb)にソースコードとその出力結果、Markdown形式のメモをまとめて管理できるものらしい。
そして、このファイル自体がノートブックの実体のようです。
ソースコード中でも`#`を使ってメモを記入できますが、長々とメモを書くとソースコードも汚くなりそうですし非常に便利な機能に感じます。

このノートブックを利用できるサービスはクラウド上で使用できるColaboratoryやwebアプリ版のJupyter Notebookなど複数あり、今回はVSCode上でJupyter Notebookの機能を使える拡張機能を使用します。

# さっそく使ってみる
ノートブックが何か大まかに理解できたので早速VSCode上でJupyter Notebookの環境を使ってみます。拡張機能については2022年4月時点ではPythonの拡張機能（Python extension for Visual Studio Code）をインストールした際に標準でインストールされました。

参考

https://atmarkit.itmedia.co.jp/ait/articles/2108/06/news030.html



## パッケージを追加する
VSCode上でJupyter Notebookを利用してコードを実行するには実行環境にJupyterパッケージのインストールが必要らしい。

:::note
><dt>モジュールとは？<dt/>
>例えで言うなら「部品」や「歯車」に当たります。
>もっと具体的に言うなら拡張子が「.py」のファイルは全てPythonモジュールとなります。
><dt> パッケージとは？<dt/>
>モジュールの集まったものがパッケージとなります。
>例えで言うなら、「箱」ですね。
><dt>ライブラリとは？<dt/>
>パッケージをいくつかまとめてインストールできるようにしたものです。
>
>引用:https://qiita.com/_whitecat_22/items/3df18491c5f618c016d1

:::

### 仮想環境を作成する
パッケージを実行環境にインストールする際には、パッケージ等の組み合わせ等によりプログラムが動かなくなることを避けるため、プロジェクトの用途に応じて仮想環境を作成し、仮想環境に必要なパッケージをインストールし開発を行うことが望ましいらしい。

ということで仮想環境を作成してみます。
仮想環境を作る方法はPythonのバージョンを指定したり様々あるようですが、今回はVSCode上でターミナルを開いてvenvというPythonの機能を使って作成します。

参考

https://qiita.com/enya314/items/0e62b68fe70f52a628bf

https://docs.python.org/ja/3.10/library/venv.html

https://www.python.jp/install/windows/venv.html

まず、仮想環境を作成するディレクトリを作成します。
今回は`C:\WorkSpace\Python\venv`というディレクトリを作成し、その中に仮想環境を作成することにしました。

VSCodeで`ファイル`→`フォルダーを開く…`で`C:\WorkSpace\Python\venv`を選択して作業フォルダを設定し、空のソースファイルを作成します。
作成したら`ターミナル`→`新しいターミナル`でターミナルを開きます。
![仮想環境_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/cd86e661-1478-9e23-a103-e7c77188bdf1.png)

:::note
空のソースファイルの作成はVSCodeの言語モードをPythonにして、ステータスバーにインタープリタ等を表示させるためです。別に作らなくても仮想環境は作成できます。
:::

ターミナルに`Python -m venv [仮想環境名]`と入力しエンターキーを押すと、仮想環境が`C:\WorkSpace\Python\venv`内に作成されます。
今回はJupyter Notebookを使ってみる用の仮想環境なので名前を`Jupyter`にします。

作成した仮想環境を適用するかを聞かれますので、ここでyesを押して適用してもよいですが、今回は以下の方法で適用させます。
![仮想環境_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/29343d27-16b2-d070-f729-8fae39da3073.png)


VSCodeの下の方にあるステータスバーに現在選択されているインタープリタが表示されているのでそこをクリックします。
するとインタープリタを選択する画面が出てくるので先ほど作成したJupyterという名前の仮想環境を選択します。

::: note
VSCodeのバージョンによっては現在のインタープリターが表示される位置が異なっている可能性もあります。
メニューバーの`表示`→`コマンドパレット`でコマンドパレットを開き`Python: Select Interpreter`のコマンドからでもインタープリタ選択画面は開けます。
:::

![仮想環境_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/68c83173-5216-6502-9c16-5ad39c38282d.png)

ステータスバーの表示が作成した仮想環境になっているのを確認したら、`ターミナル`→`新しいターミナル`で新たにターミナルを開きます。
プロンプトの先頭に`(Jupyter)`と仮想環境名が表示されているので、仮想環境がアクティブな状態でターミナルが開かれています。
![仮想環境_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/d1d69c67-c994-2f73-18d0-459294f18fcd.png)


### パッケージのインストール
仮想環境の作成に成功したので、作成した仮想環境に早速Jupyterのパッケージをインストールしてみます。
パッケージのインストールや管理を行う際には、pip、condaなどのパッケージのマネージャーを用いるとのことだが、今回はPythonに標準で搭載されているpipを使用します。

参考

https://www.python.jp/install/windows/pip.html

https://prograshi.com/language/python/python-pip/

はじめに、現状でインストールされているパッケージを表示してみます。
仮想環境がアクティブな状態でターミナルに`pip list`というコマンドを入力し実行します。
下の画像のようにパッケージ一覧が表示されますが、「pip」と「setuptools」のみインストールされてることがわかりました。
![仮想環境_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/b7c8dc11-edd0-ffea-34f3-b0aa56574d86.png)


Jupyterのパッケージをインストールします。pipでインストールを行う際のコマンドは`python -m pip install　[パッケージ名]`なので`python -m pip install jupyter`と入力して実行します。

:::note
仮想環境がアクティブな場合、環境変数の先頭に仮想環境のパスが自動追加され、コマンドからPythonを実行する際に仮想環境内のものを優先的に使用するようになるらしいので、上記の`Python -m pip`は`pip`に置き換えれるらしい。
試しに`where.exe hoge`<sup>※</sup>でPythonとpipのexeを探してみると検索結果の一番上に作成した仮想環境のexeのディレクトリが表示されている。
![仮想環境_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/6416426f-b5ad-b96d-4235-25637f36c82a.png)

参考
https://endy-tech.hatenablog.jp/entry/how_venv_works_in_python
https://win2012r2.com/2022/02/17/windows-where/

※powershellを利用しているため`where.exe hoge`だが、コマンドプロンプトでは`where hoge`でよい。powershellで`where hoge`では動かない。
:::

`python -m pip install jupyter`を実行すると大量の文字が表示されますが、しばらくするとパッケージのインストールが終了します。
![仮想環境_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/d468a400-0602-ea48-24a1-19ae8b9541d4.png)

`pip list`で確認してみるとJupyterのパッケージインストールに伴いその他大量のパッケージもインストールされていますが、しっかりJupyterのパッケージがインストールされていることが確認できます。(jupyter-client等もまとめて赤枠で囲んでしまっていますが、jupyter以外はあくまでjupyterってパッケージの機能使うのに必要なパッケージ達です。）

![仮想環境_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/efe04bc3-3fe0-4287-7e66-f5ebf916e092.png)

## ノートブックを作成してコードを記述してみる。
横道にそれまくっていたので長くなりましたが、VSCode上でJupyter Notebookを使う準備が整いました。
今のままだとカレントディレクトリが`C:\WorkSpace\Python\venv`（仮想環境をまとめるようにつくったフォルダ)なので前回作成した`C:\WorkSpace\Python\Practice`に設定しておきました。

### ノートブック作成
ノートブックを作成するには、サイドバーでエクスプローラーの画面を開き、`新しいファイル`からノートブックを作成するか、
![Animation1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/2c02762f-9e58-10c0-87e4-50afbd7f3d0d.gif)
コマンドパレットから`Create: New Jupyter Notebook`を実行します。ただしコマンドパレットから作成された際はタブは追加されますがファイルとして保存されていないため必要に応じて保存します。
![Animation2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/818b0601-1262-13e9-2654-077487c9a0dd.gif)

### カーネルの選択
ノートブックを作成したらカーネルを選択します。
カーネルとはノートブックの内容を実行するためのものでノートブック単位でカーネルを設定できる。

作成したノートブックのタブの右上の方に`カーネルの選択`というボタンがあるのでクリックしてカーネルを選択する。
今回は今回作成した仮想環境を選択する。
![Animation3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/b353f8a2-9624-bc8c-275a-fbf5166814c1.gif)

### コード、マークダウンの記述と実行
カーネルを選択したのでコードを実行できるようになりました。
コードやマークダウン形式でのメモを記入するのは下の画像で大きな赤枠で囲まれた中にあるセルという部分で、下の画像ではコードを記入するセルとマークダウンを記入するセルが表示されている。![仮想環境_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/2d2fe392-08c8-f2e9-69a7-2fea8aba5c13.png)

試しにセルにコードを入力して実行してみる。
入力したいセルを選択し、コードを入力します。今回は`print("hello,jupyter")`と入力、セルの内容ははセル左側に表示される`セルの実行`ボタンで実行できる。
![Animation4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/02630686-5230-7c02-8b2d-01bed7452259.gif)

今度はマークダウン記法でメモを書いてみる。
先ほどと同様にセルに記述し、セル右側にある`セルの編集を停止`ボタンを押すと入力した内容が表示される。
![Animation5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/d69dc4d0-adf8-7b49-2735-db9111fd4da9.gif)



これでVSCode上でJupyter Notebookを動かせることを確認できましたので、今回はここまで。
Jupyter Notebookの他の機能等を使ってみたら追記します。

# 【追記】ノートブックをPDFにエクスポートしてみた

Jupyter NotebookにはノートブックをPythonのスクリプトや、HTML、PDFの形式にエクスポートする機能があるので使ってみたいと思います。
私は色々よく読まずに使おうとして、ちゃんとPDFの出力が出来るまでに少し苦労したので何をやらかしてうまく動かなかったのかも含めて整理しました。

参考

https://nbconvert.readthedocs.io/en/latest/install.html

https://github.com/ipython/ipython/issues/5005

## 使い方
ノートブックを開いているタブの上の方にある「その他の操作…」ボタンから「Export」を選択して変換したい形式を選択します。ダイアログが立ち上がるので保存したい場所を選択してファイル名を入力したら「Export」ボタンを押します。とってもお手軽です。

## 何も考えず使ってみたらちゃんと動かなかった
jupyterの拡張機能とモジュールを入れておけば一応この機能を実行できる。
ただ、詳しくは後述するがこの機能は変換する処理で他のソフトウェアを利用するため、それらがインストールされていないと変換ができない。下の画像はそれらがインストールされていない状況でエクスポート機能を実行した様子です。エラー通知が出てPDFも出力されていません。
私はそんなことを知らずに変換できずに困っていました。

![Animation4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/8dd4ef1d-a367-8822-ed3a-552643265fa7.gif)


Jupyter Notebookのログを見てみると、それなりに長いエラーメッセージがありますが、その中に以下のようなメッセージがあります。
英語は苦手なのでなんか嫌な感じがしますが、要するに「XeLaTeX」と「Pandoc」ってソフトウェアが見つからないからインストールしてねって言ってます。
~~~
nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found.
Please check that pandoc is installed:
https://pandoc.org/installing.html
~~~

~~~
Error 16:56:44: If you have not installed xelatex (TeX) you will need to do so before you can export to PDF, for further instructions go to https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex. 
~~~

## 解決方法

### 必須ソフトウェアのインストール
少し調べてみたらこのノートブックの変換はnbconvertというツールがやってくれているらしく、[nbconvertの公式ページ](https://nbconvert.readthedocs.io/en/latest/install.html)を見たら思いっきり必須ソフトの説明が書いてありました。
先ほどのエラー文で言われたように「pandoc」と「XeLaTeX」が必須のようです。（XeTeX処理系で動くLaTeXはXeLaTeX）
なのでインストールしていきましょう。

#### pandocのインストール
まず、pandocをインストールしていきます。インストールする順番はどっちが先でも問題ありません。
ちなみにノートブック内にマークダウン記法での記載をしたセルがなければインストールしなくても変換はできました。

::: note
ちなみにPythonのパッケージとしてpandocという名前のものもあるが、nbconvertで使用されるpandocとは別物。
`pip install pandoc`で処理系の環境にこのパッケージをインストールしても勿論nbconvertは機能しない。
:::

##### pandocとは
pandocとは色んな形式のドキュメントを違う形式のドキュメントに変換してくれるソフトウェアのようです。
nbconvertはpandocを使ってノートブックを一度.tex形式に変換してそこからPDFに変換しているみたいです。

>Pandocは、あるマークアップ形式から他の形式へ変換する Haskell ライブラリと、そのライブラリを用いたコマンドラインツールです。
>
>Pandoc は、 Markdown 、 HTML 、LaTeX 、 Word docx など、これに限定されない多数のマークアップとワープロ形式の間で変換することができます。入力および出力形式の完全なリストについては、下記 (options below) の --from と --to を参照してください。 Pandoc は PDF 出力を生成することもできます。下記の creating a PDF を参照してください。
>引用:https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html

##### インストール方法

[pandocの公式ページ](https://pandoc.org/)からインストーラーを入手してインストールします。

![2022-04-22_20h29_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/b6d35d55-cb12-dc78-b466-81318615a440.png)
![2022-04-22_20h33_29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/57040f44-4cbb-bf87-7452-bad0582f8311.png)

ダウンロードしたらインストーラーを起動します。
起動したらチェックを入れてライセンスに同意して赤点線の枠で囲んだボタンを押しす。
「Install for all users of this machine」の項目は他のユーザーでもpandocを利用できるようにするかしないかですが、チェック入れるかは使用環境によってでしょうか、私はチェックを入れました。
![2022-04-22_20h37_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/d2eb73ce-614e-b216-be0d-3bb7a82a71b8.png)
この画面が表示されたらインストールは完了です。
赤枠の部分にインストールされたディレクトリが表示されています。
これは後で使うので覚えておきます。
![2022-04-22_20h39_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/f0a4e13f-f667-b101-5f55-abd55dfed37c.png)

#### pandocのPATHを通す
pandocのインストールは完了しましたが、nbconvertでpandocの機能を利用する際にはpandocのPATHを通しておかないと内部的な処理の際にpandocがインストールされていないと認識されてエラーを吐かれたでPATHを通します。
PATHを手動で通す方法は色々ありますので各自慣れた手法ですればよいと思います。
一例として以下の記事をご参照ください。
「パスを通したい実行ファイルが存在するフォルダのパス」は先程覚えていてインストール完了した際に表示されたディレクトリ（私の場合は`C:\Program Files\Pandoc`)です。

https://qiita.com/shuhey/items/7ee0d25f14a997c9e285

コマンドプロンプトを起動して、`where pandoc`と入力後実行してディレクトリが表示されたらPATHが通っています。
![path.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/781be2a3-96ec-7ffb-729f-771b06f8b4b4.png)


#### XeLaTeXのインストール
続けてXeLaTeXのインストールをしていきます。

##### XeLaTeXとは
細かい説明は省きますが、XeLaTeXというのはTeX言語の処理系であるXeTeX上で動くマクロ体系のようです。
細かいことは以下のページ、サイトの解説がわかりやすかったです。

https://blog.wtsnjp.com/2016/12/19/tex-and-latex/

https://texwiki.texjp.org/LaTeX

##### ディストリビューションを使用してインストールする
とにかくXeLaTeXをインストールしないといけないのですが、処理系をインストールしたりその他必須のマクロ体系をインストールしたりと環境を手作業で一つ一つ整えるのは難しいです。
なので処理系やマクロ体系関連プログラムをインストール、管理などをしてくれるディストリビューションを利用します。
PythonでいうAnacondaです。

TeXのディストリビューションは色々あるらしく、[nbconvertの公式ページ](https://nbconvert.readthedocs.io/en/latest/install.html)ではWindows向けに[MiKTeX](https://miktex.org/)を紹介していますが、日本国内では[TeX Live](https://tug.org/texlive/)というものが広く使われているのでこっちを使います。
(詳しくは調べていないがTeX Liveの方が日本語に強そうな印象でググったときに記事の数が多いような印象を受けた。）

:::note
TeX Liveはデフォルトでインストールするファイルが多いので私の環境ではインストールに1時間弱かかりました。
pythoの勉強でメインで使っているPCとは別のサブPCでMiKTeXを使ってみたのですが、こっちはインストールはすぐ終わりました。MiKTeXでも問題はないのでここは好みかと思います。
:::

###### ISOを入手する
TeX Liveのインストールはネットワークインストーラーを使う方法か、配布されているDVD、ISOファイルのローカルインストーラーを使うかがあります。インストールするファイルが多くネットワーク経由だと時間がかかると聞いたのでISOをダウンロードしてインストールします。
(インストールされるファイルが7GB程度でISO自体も4GBあるのでISOをダウンロードする時間考えるとどっちが早いのかどうなのか試してないのでわかりませんが。。。)
詳しくは以下を参照。

https://tug.org/texlive/

https://texwiki.texjp.org/?TeX%20Live

ISOは上にリンクを貼った[ここのサイト](https://tug.org/texlive/)からダウンロードできます。
![Animation1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/e42b3885-45cc-8d53-f625-96529f0d7e79.gif)


###### install-tl-windows.batを起動する
ISOをダウンロードしたら仮想DVDドライブにマウントします。
マウントはWindows7以降なら標準でできるらしい。ISOファイルを開く標準のプログラムがエクスプローラーになっていればファイルをダブルクリックするか、`右クリック`→`マウント`で開けるし、エクスプローラー以外が標準のプログラムになっていても`右クリック`→`プログラムから開く`→`エクスプローラー`でも開けました。
![2022-04-24_15h24_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/190de541-7c4a-7740-a535-78bb57c5eed9.png)
開いたら中にある`insrall-tl-windows.bat`を実行してインストーラーを起動します。

![2022-04-24_15h33_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/9830166c-d257-2ce9-d583-1784a76263e7.png)

インストーラーが起動したら必要に応じてインストール先などをせっていしますが、私はデフォルトのままインストールを実行しました。

![2022-04-24_15h37_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/dbd7e7f3-d652-818f-41de-e25c998a2e89.png)

インストールを開始するとこんな感じのwindowが現れてインストールが進みます。（展開すると7GBくらい容量があるのでそこそこ時間がかかります。）
![2022-04-24_15h39_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/10c8e86c-77cc-2e01-c96f-4ffbc7b01494.png)

無事終了したらこんな画面になるので閉じるを押してインストールは完了です。
![2022-04-24_16h20_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/2b3c65c8-2717-0c1b-6c75-102d14a5e319.png)

一応この段階でPDFの出力はできたのですが、ISOでインストールした際は中身が古い可能性があり諸々をアップデートした方がよいとのことなので作業します。
TeX Liveをインストールすると「TLShell TeX Live Manager(tlshell.exe)」というGUIアプリケーションもインストールされ、これを使えばGUI上でパッケージのインストール、アップグレード等の管理を行えます。
スタートメニュー等から起動すると以下のような画面が出てくるので`ファイル`→`リポジトリを読み込む`を選択します。
![Animation1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/708c912a-8901-3f1e-4f79-f6a9ba78e5c1.gif)

リポジトリが読み込まれるとtlmgr(パッケージ管理ツール、pipのようなもの)のバージョンが最新かどうかと、インストールされているパッケージのアップデート可否などが分かります。
私の画面では最新の状態にアップデートしたばかりなのでグレーアウトしていますが、ISOからインストールした場合は大体tlmgr及び各種パッケージのアップデートが可能だと思いますので、`tlmgrをアップデート`でtlmgrを最新にしてから`すべてをアップデート`でパッケージを最新にします。

なおこの作業はコマンドラインから`tlmgr update --self`と`tlmgr update --self --all`を実行しても可能です。


:::note warn
サブPCでの話
MiKTeXでもうまくPDF出力できることを確認した後、メイン環境に合わせるためMikTeXアンインストールしてTeX Liveをインストールしたところ、アップデートの段階でうまくいかず、nbconvertでのＰＤＦ変換もできなくなった。
アンインストールしてTeX Live 2022のISOからインストールしてそのままの状態でやってみたらうまくPDFに変換しできました。
これについては私がうまくアップデートできなかったのかもよく理解していないので今後どうにかしたい。
:::

参考

https://texwiki.texjp.org/?TeX%20Live%2FWindows#a6223106

https://tug.org/texlive/tlmgr.html

## 変換してみる
要求されているものをインストールしたので変換を再度やってみたところ、日本語が抜けているがそれ以外は問題なくPDFに出力された。

![Animation2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/7e8c39c3-a50e-1061-46e3-66b4cd52ae14.gif)


## 日本語出力に対応させる
サブPC環境では特段設定せずに日本語出力が何故かできてしまったのですが、通常はnbconvertで日本語が含まれたノートブックをPDFにするには設定ファイルを少し編集する必要があるようです。
メイン環境ではもちろん上記のように日本語が出力されていなかったので設定をしてみます。

参考

https://mana.bi/wiki.cgi?page=Jupyter+Lab%A4%AB%A4%E9%C6%FC%CB%DC%B8%ECPDF%A4%F2%BD%D0%CE%CF%A4%B9%A4%EB2021

https://persimoon.hatenablog.com/entry/2021/01/20/180304

まずは編集すべき設定ファイルを探します。
VSCodeで仮想環境フォルダ(私は`C:\WorkSpace\Python\venv\Jupyter`)を開き、`documentclass`と検索すると検索結果がずらずらと出てきます。
![Animation3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/f0e77c3b-5ad9-8faa-ef04-ad6345f10cbf.gif)

編集するのは`index.tex.j2`というファイル名で内容は以下のようになっているはずです。
私は`C:\WorkSpace\Python\venv\Jupyter\share\jupyter\nbconvert\templates\latex\index.tex.j2`にありました。
~~~

((=- Default to the notebook output style -=))
((*- if not cell_style is defined -*))
    ((* set cell_style = 'style_jupyter.tex.j2' *))
((*- endif -*))

((=- Inherit from the specified cell style. -=))
((* extends cell_style *))


%===============================================================================
% Latex Article
%===============================================================================

((*- block docclass -*))
\documentclass[11pt]{article}
((*- endblock docclass -*))
~~~

ファイルを見つけたらファイルをコピーしてリネームしておくなどで念のためバックアップをとってから上記の16行目の記述を以下のように書き換えて保存します。(VSCodeの検索画面で`index.tex.j2`をクリックしたらエディタが開くのでそのまま編集できました。）

~~~
\documentclass[11pt]{article}
↓
\documentclass[a4paper,xelatex,ja=standard]{bxjsarticle}
~~~

ファイルを保存してから再度PDFを出力してみたら今度はしっかりと日本語も表示されています。

![2022-04-26_13h05_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626673/40366330-a11e-1696-be94-3d4d12410003.png)

以上で設定は終了です。先ほどのファイルを編集することで日本語のフォント等も選択できるようですが、私は現状でとりあえず満足なので詳しくは参考先のページを参照してください。