教科書作成関連プログラム

プログラムの入手方法

いずれかの方法でダウンロードできます

tkprog_textbookに含まれる関連プログラム

文字起こしの注意

 以下のプログラムでは、python + OpenAI Whisperを使って文字起こしをしています。
他のオンライン文字起こしサービス ( OpenAI WhisperGoogle Speech-to-Text ) などを利用することもできます
 文字起こししたデータには誤字・誤変換が含まれるので、生成AIに専門家roleを当てて修正します (OpenAIやGoogleのAPI Keyが必要です)
 Local版Whisperの実行速度は、NVIDIA製GPUの有無によって大きくっ変わります。

local版whisperのインストール方法 2025/7/14現在、python 3.10以前が必要です。
> python3.10 -m venv whisper-env
> whisper-env\Scripts\activate
> pip install --upgrade pip
> pip install git+https://github.com/openai/whisper.git
# CUDA対応GPUがある場合
> pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
共通ライブラリ
教科書作成関連プログラム
その他関連プログラム

pandocについて

URL: https://pandoc.org/
Install: https://pandoc.org/installing.html

 pandocは、Windows / macOS / Linux / Chrome OS / BSD Unix で動作し、さまざまなフォーマットのファイルを相互変換するコマンドラインプログラム (CLI: Command Line Interface) です。

 今回は、Markdown ファイルを MS-Word、MS-PowerPointファイルに変換する際、Markdown 中の数式 (LaTeX) を数式エディタに変換してくれることから、変換プログラムとして選択しました。

pandocの注意:

 pandocは、Markdown中に 前後行に空行が無い --- に囲まれたブロックを見つけると、
YAMLとして解釈しようとします。この際、--- に囲まれたブロックがYAML文法に沿っていないと、
エラーで変換が停止します。
 YAMLの解釈を防止するには、pandoc 実行時に
    -f markdown-yaml_metadata_block
オプションを追加してください。make_textbook5.pyには、このオプション --no-yamlがあります。
また、スライドを作成するプロンプトでは、「スライドの区切りとして 空行+ `---`+空行 を使用する」
することでこの問題を回避しています (回避しきれていない場合のみ、--no-yamlオプションを使ってください)。

templateファイル

Markdown => MS-Word/Office 変換について

 pandocを使う以外にもMarkdownのViewerやMS-Wordファイルに変換する方法はありす。
しかし、数式を正常に変換してくれるのは、検証した範囲ではpandocだけでした。


Markdownについて

 Markdownフォーマットは、文書の章タイトル、箇条書き、リンク、画像ファイル挿入、数式表示などを
簡単なテキストファイルで実現するもので、現在のインターネット、プログラミング関連では
標準的なフォーマットになっています。

Markdown 基本機能 Markdown は軽量マークアップ言語で、プレーンテキストで簡単に文書を記述し、HTML や PDF などに変換できます。ここでは、章タイトル、箇条書き、リンク、画像、数式などの基本的な機能について説明します。
------------------------------------------------------------------------

## 1. 章タイトル(見出し)

Markdown では、`#` を使って見出しを作ります。`#` の数が多いほど下位の見出しになります。
``` markdown
# 見出し1
## 見出し2
### 見出し3
```
------------------------------------------------------------------------
## 2. 箇条書き
`-` や `*` を使うと箇条書きができます。番号付きリストは `1.` を使います。
``` markdown
- アイテム1
- アイテム2
- サブアイテム

1. 番号付き
2. リスト
```
------------------------------------------------------------------------
## 3. リンク

`[リンクテキスト](URL)` の形式で書きます。
``` markdown
[Google](https://www.google.com)
```
------------------------------------------------------------------------
## 4. 画像ファイル挿入

リンクと似ていますが、先頭に `!` を付けます。
``` markdown
![サンプル画像](sample.png)
```
------------------------------------------------------------------------
## 5. 数式表示

Markdown では標準では数式に対応していませんが、拡張 (MathJax など) を使うと LaTeX 記法で数式が書けます。
行内数式:`$E = mc^2$` → $E = mc^2$
ブロック数式:
``` markdown
$$
\frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
$$
```