Windows11の月額料金制移行反対/OfficeやAcrobatも使わずに数式図表入り日本文をPDFへ変換/【第1回】日本語を含む文章ファイルからPDFへの変換

【投稿者コメント】


【キーワード】

[日本語テキストを]、[コマンドで垂れ流して]、[無償でPDFを生成]


【件名】

「Windows11の月額料金制移行反対/OfficeもやAcrobatも使わずに数式図表入り日本文をPDFへ変換/【第1回】日本語を含む文章ファイルからPDFへの変換」


【投稿本文】


【1】どうやらMicrosoftは、Windows11や12で、月額(年額)料金制のサブスク料金制度を強行するらしい!


 何と、下記の(*-1)の報告に依れば、「Microsoftは、早ければ、Windows11で、遅くとも、来年のWindows12で、使用料金を「買い切り制」から、「月額(年額)料金制」に、強行するらしい!


(*-1)
・「Windows 11の永続ライセンスが消えて“毎月課金”になる予感」
 https://techtarget.itmedia.co.jp/tt/news/2403/21/news12.html

 複雑なライセンス体系がしばしば悩みの種となる「Windows」。永続ライセンスがなくなり、サブスクリプション形式に全面移行するのではないかとの臆測さえ生まれる~

 買い切り型である永続ライセンスを、Microsoftが提供しなくなる日が来るのではないか。Windows11の利用には、いつかはサブスクリプション形式のライセンス契約が必要になるのではないか―。同社製品/サービスのライセンスを巡って、こうしたさまざまな臆測や混乱が生じている。~

 Windows11Proの小売価格はおよそ200ドル(国内の税込み価格は2万8380円)。(現在は、PCを買った時に、PC価格にOS代金は含まれているから、後は、無料で使える。)~

 IT管理者は「Microsoft Intune」をはじめとするWindows11の管理ツールを、Windows11Enterpriseでも利用できる。米国の場合、Microsoft365 E3の料金は、年間契約でエンドユーザー1人当たり月額36ドル(国内の税別料金は4500円)だ。同社はWindows11Enterprise単体の料金を公開していない。

 仮に、生成AIが無料で使えるからと云って、バグてんこ盛りのWindowsOSに、月額4,500円=年額5万4千円を、一生払えるだろうか?

 殆どの方が、「何を! ふざけんな!」だろう。

 昨今のWindows11やWindows10のWindows Updateは、深刻バグの連続で、Windows Updateを適用して、PCを再起動しょうとしたら、PCは二度と起動せずに、壊れた!と云う事象が頻繁に発生して、PCユーザの怒りを買っている!

 こう云う、WindowsOSが使い物にならぬほどの体たらく・破壊的品質劣化を起こしておきながら、WindowsOSを使い続けようとしたら、「893のみかじめ料」の如く、毎月(毎年)、死ぬまで、PCユーザは、Microsoftへ「お布施」を払い続けないといけなくなるから、びっくり仰天だろう!

 「よくも、いけしゃーしゃーとそんな世迷い言を云えたもんだ! ふざけんな!」と多くのPCユーザは怒り心頭するだろう!

 個人用途ユーザはともかく、企業や学校や役所の業務用途ユーザは、IT政策やIT予算措置に大きく影響するから、犯罪用途にしかならぬ「生成AI機能」の凶悪おもちゃ機能を実装したからと云っても、相変わらず、Microsoftに、安全性をないがしろにされて、ランサムウェア被害に依る、ITシステム潰しが頻発し続けたら、業務用途ユーザは、WindowsOSに見切りを付けて、一斉に、LinuxOSとLinuxPCへ移行するだろう!


【2】月額料金の有料ソフトを使わずに、「日本語文章+数式+図表」入のPDFを作ろう!


 そこで、ダニやノミの如く、サブスクで、「人の生き血=月額(年額)」を吸い続ける吸血鬼のMicrosoft社やAbobe社のサブスク・ソフトの「Office(Word、Excel、PowePoint等)」や「Abobe Acrobat」は、一切、使わずに、テキストベースファイルから、「日本語文章+数式+図表」入のPDFファイルを作成する、試み・試行プロジェクトを開始したい!

 これは、そう、たやすい「データ移行・変換」ではなく、一筋縄ではいかない!

 「日本語文章+数式+図表」が混在した文章では、変換のちょっとした調整不足やI/Oエラーや手違いで、文字化けや様式崩れやデータ欠損が起きやすいからだ!

 こう云う変換処理を行う前提条件としては、通常使用の状態になるべく近く、特別なミドルソフトやハードウェア・機器は導入せずに、無償のオープンソフトだけを使って、他の業務・処理・操作に影響を及ぼさない事も大切だ!

 こう云う条件で、早くて、安くて、確実で、手間いらずで、容易な変換処理を行うには、かなり、ハードルが高く、一気に、目標を達成するには、クリアすべき課題が多過ぎるので、以下の3段階で進める事にした。

①「日本語(仮名・漢字)を含む文章ファイルからPDFへの出力」

②「数式のPDF出力」

③「図表のPDF出力」


【3】【第1/3回】日本語(仮名・漢字)を含む文章ファイルからPDFへの出力


 前提条件は次の通り。

(1)使用するツール・パッケージ・ライブラリーは、オープンソフトの無償の物を使う事

(2)途中、難解な、ソフトの調整やチューニングやカスタマイズ・設定作業が不要で、特に、IT専門家でなくても操作に困る事が無いものとする

(3)ファイルを置くフォルダやファイル名等を決めておけば、コマンドシェル(Script)の引数(アーギュメント)をほんの少し、いじるだけで、予め決めた操作手順通りに、容易に実行出来るものとする

(4)データ変換環境やデータ変換操作は、他のPC作業に影響を与えたり、阻害しない事

(5)操作に困ったり、知らない事象に遭遇しても、対処に困らぬ様に、参照資料やWebサイト情報をなるべく多く提供する事


【日本語(仮名・漢字)を含む文章ファイルからPDFへの出力する操作手順】

 尚、①~④が導入・準備作業であり、毎度のデータ変換操作は、⑤~⑦です。

①日本語文章を作成する「Markdownエディタ」の「サクラ・エディッタ」をインストールする

 「Markdownエディタ」と云っても、「メモ帳」の様な「テキストエディッタ」とほぼ同じです。
 ただし、PDFへ変換するには、ファイル拡張子が .md のファイルへ格納する必要があります。

 ここで、「Markdown」とは、「マークダウンは、文書を記述する為の軽量マークアップ言語のひとつです。本来は、プレーンテキスト形式で手軽に書いた文書からHTMLを生成する為に開発されたもの」の事を云います。

 機能的に云うと、Markdown(マークダウン)とは、「# 見出し」「* リスト」など、シンプルな書き方で文書構造を明示出来て、装飾されたHTML文書に変換出来る軽量マークアップ言語です。Markdown記法でよく使う「見出し・テーブル表・リンク・画像・文字色・強調・箇条書き」等の書き方は、第2回以降で記載します。

 今回は、単に、メモ帳で日本語を書いただだけと云うイメージです。

 インストール用ファイルのダウンロード元のURLとか解説のURLは以下の通りです。

・「サクラエディタ/さくら Ver2.4.0/資産」
 https://github.com/sakura-editor/sakura/releases/tag/v2.4.0
 の、 sakura-tag-v2.4.0-build2686-782347a-Win32-Release-Installer.zip をクリックして、デスクトップ等へDownloadして、解凍して、exeファイルをクリックインンストールします。(2024年3月23日現在)

・「オープンソースの老舗テキストエディタサクラエディタ」v2.4.0.0~約2年ぶりのアップデート」
 https://forest.watch.impress.co.jp/docs/news/1248206.html ←【解説・使い方】

 ここで、「サクラエディタ」には、下記に示す様な設定作業が必要です。

・「サクラエディタ向けMarkdownシンタックスハイライト設定」
 https://qiita.com/ryo-sato/items/4cbfe057836c14293def


1.「Markdownもどき2」(*-2)より、 markdown2.rkw と Markdown2.col (*-3)をダウンロードする。
2.サクラエディタより, 設定 - タイプ別設定一覧 をクリックする。
3.追加 ボタンで設定を追加し, 設定変更 ボタンを押下する。
4.[スクリーン] タブ: 設定の名前を Markdown とし, ファイル拡張子は md とする。
5.[カラー] タブ: インポート ボタンを押下し, 先ほどダウンロードした Markdown2.col を開く。
6.[ウィンドウ] タブ: 文字コードUTF-8 とする。
7.[正規表現キーワード] タブ: 正規表現キーワードを使用する にチェックを入れ, インポート ボタンを押下, 先ほどダウンロードした markdown2.rkw を開く。
8.最後に OK ボタンを押下する。
』(添付図1参照)

 尚、上記の(*-3)の markdown2.rkw と Markdown2.col のダウンロード元の「Markdownもどき2」(*-2)は、 http://sakura.qp.land.to/?Customize%2F%C5%EA%B9%C6%2F77 です。

②変換ソフトの「Pandoc」のインストール

 「Pandoc」は、ドキュメントを変換するソフトウェアです。今回の場合Markdown形式で書いた文書をHTMLやPDFに変換するソフトウェアになります。

 参考にしたインストール方法は、以下の通りです。

・「Wordより楽に、本格的な文書作成 Pandoc Markdown
 https://qiita.com/sky_y/items/3c5c46ebd319490907e8
 の「マウスで簡単:Pandoc公式インストーラを使う」

・「jgm/pandoc Public Code/Releases 3.1.12.3[Latest]
 https://github.com/jgm/pandoc/releases/latest
 の「Assets」の
 pandoc-3.1.12.3-windows-x86_64.msi をクリックして、
 デスクトップ等へダウンロードして、クリックインストールする。
 (2024年3月23日時点で)

 但し、Pandoc本体を使う際は、コマンドラインでpandocを使う必要があります。

 Windowsコマンドプロンプト、又は、PowerShell

 インストールが完了していれば、pandoc -vコマンドで、次の様にPandocのバージョンや情報が表示されるはずです。(添付図2)

③PDF出力用のPDFエンジンのインストール/TeX Liveのインストール

 Pandocは直接的にPDFに出力する方法がないので、他のソフトウェアに変換したデータを渡して、そのソフトウェアに更にPDFへの変換を行ってもらいます。

 基本的な方法として、TeX(LuaLaTeX或いはpdfTeX)を使ってTeX経由で出力する方法があります。

 TeXは、論文向けに書かれた組版ソフトウェアです。高品位で美しい文書を整形する事が出来ます。LuaLaTeXは、その実装のひとつで、現状では最もモダンなものです。TeXを使う事で美しく文書を書く事が出来るものの、その扱いはなかなか難しく、Pandocと組み合わせる事で難易度を大幅に下げる事が出来ます。

 TeXを使う場合、Pandocは、TeXソースファイルを出力します。そして、TeX処理系(この場合はLuaLaTeX)が組版し、PDFに(或いはDVIに変換してからPDFに)変換します。

 Pandocの --pdf-engine オプションは、PDF出力時に使用するソフトウェアを選択します。

 LuaLaTeX(Tex Live)のWindowsでのインストール方法は、実は、とても難しいのです。

 公式には、MiKTeXを推奨していますが、MikTeX+LuaTeX-jaで望ましい動作を得るのは、相当に大変ですので、TeX Liveを使う事にします。(MiKTeXだと、PC環境に合わせた調整・カスタマイズ・設定が相当に難解で煩雑)

 TeX Liveのインストール用ファイルのダウンロード元は、次のURLです。

・「インターネット経由で TeX Live をインストールする」
 https://www.tug.org/texlive/acquire-netinstall.html

 の本文1行目の「 install-tl-windows.exe 」をクリックして、デスクトップ等へダウンロードします。

 TeX Liveのインストーラを、右クリックから管理者として実行して、Simple installを選択します。インストール場所はC:\TeXLive以下にインストールされる事になっています。(本来は、C:部分をC:\Program Filesに変更した方が良いが、変更出来なかったが、そのままでも大きな悪影響は無い。)

 ここで、注意すべきは、インストールの完了までに、1時間以上とかなり、時間を要するので、予め、スリープ設定等はOFFにしておく必要があります。

 約1時間後に、添付図3の、インストールの完了通知が表示されたら、右下の[閉じる]ボタンをクリックします。

 ここで、「TeX Liveのインストール」で、参考にしたサイトは、以下の通りです。

・「Pandocの比較的簡単なインストール方法」
 https://mimir.yokohama/useful/0017-pandocmarkdown.html
 の「TeX環境の導入」が、Windowsの場合複雑である等に留意です。

④LuaLaTeX(Tex Live)用の文字ファオトの「IPAフォント」のインストール

 LuaTeX-jaは、IPAフォントを求めます。無くても問題なく表示出来ると云うものの、念の為に、IPA(情報処理推進機構)のサイトからIPAフォントを入手して、インストールします。

・「IPAフォント Ver.003.03」
 https://moji.or.jp/ipafont/ipa00303/
 の「ダウンロード/協議会サイトからダウンロード/TTFファイル」
 の「4書体パック(Ver.003.03)」の IPAfont00303.zip(19.1 MB) をクリックしてデスクトップ等へダウンロードして解凍して、添付図4の、「設定/個人用設定/フォント」の右欄上の「フォントを参照しインストールする」をクリックして、解凍したファイルをクリックすると、右欄の下に、追加されたフォントが表示される。

======[ここまでが1回だけの導入準備作業です!以降毎度のデータ変換操作です]======

⑤①項の「サクラエディッタ」で日本語を書き込んで、左上のメニューの「ファイル/名前を付けて保存」で、添付図5の如く、例えば、ファイル名は、 _■20240322_Markdown.md の如く固定ファイル名称にして、保存の際は、「ファイルの種類:ユーザ指定(*.md;*.*)」、「文字コードセット:UTF-8」とする。この拡張子.mdのファイルを「PDFへの変換元ファイル」とする。
⑥⑤項の「PDFへの変換元ファイル」の _■20240322_Markdown.md を、cmd実行先のフォルダの C:\Windows\System32 へコピーする。

コマンドラインでpandocを使って、拡張子.mdのファイルをPDFへ変換出力する

 まず、「コマンドシェルcmd.exe」(コマンドライン)を管理者権限で起動します。

 以下のコマンドシェルを「コマンドシェルcmd.exe」(コマンドライン)へコピペしてエンターキーを押します。

コマンドラインを「コマンドシェルcmd.exe」(コマンドライン)での実行例(5例)】

[1]bxjsarticle版(フォント指定せず)

pandoc 20240322_Markdown.md -o document.pdf --pdf-engine=lualatex -V documentclass=bxjsarticle -V classoption=pandoc

[2]ltjsarticle版(MSフォント版)

pandoc 20240322_Markdown.md -o document.pdf --pdf-engine=lualatex -V documentclass=ltjsarticle -V luatexjapresetoptions=ms

[3]ltjsarticle版(IPAフォント版)

pandoc 20240322_Markdown.md -o document.pdf --pdf-engine=lualatex -V documentclass=ltjsarticle -V luatexjapresetoptions=ipa

[4]bxjsarticle版(MSフォント版)

pandoc -s -t latex-smart --pdf-engine=lualatex -V documentclass=bxjsarticle -V classoption="pandoc,jafont=ms" 20240322_Markdown.md  -o document.pdf

[5]bxjsarticle版(IPAフォント版)

pandoc -s -t latex-smart --pdf-engine=lualatex -V documentclass=bxjsarticle -V classoption="pandoc,jafont=ipa" 20240322_Markdown.md  -o document.pdf

 添付図6に上記の実行結果を示す。正常終了は、何も、表示されない。

 尚、編先のPDFファイル名称を document.pdf の如く、固定とした場合は、各行の実行で上書きされるので、[1]~[5]の5行の実行の都度、フォルダの C:\Windows\System32 から、PDFファイルをデスクトップ等へコピーして、都度、リネームする。

 作成された5本のPDFファイルの事例を添付図7に示す。

 尚、上記の5行のコマンドラインでの、pandoc実行の文法・規定は、以下を参照頂きたい。

・「Pandoc+LaTeXで気軽に日本語PDFを出力する」
 https://qiita.com/sky_y/items/15bf7737f4b37da50372

・「Pandoc User’s Guide日本語版」
 https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#id140

「目次」の

「説明/pandoc の使い方」
https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#description
     ・
     ・
「PDFの生成」
https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#creating-a-pdf
     ・
     ・
「オプション」
https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#options
     ・
     ・
「Readerのオプション」
https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#reader-options
     ・
     ・
「Defaults files」
https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#defaults-files
     ・
     ・
「Pandoc’s Markdown
https://pandoc-doc-ja.readthedocs.io/ja/latest/users-guide.html#pandocs-markdown
段落
見出し
引用
文字通りのブロック (コードブロック)
ラインブロック
リスト
水平線

メタデータブロック
バックスラッシュを用いたエスケープ
インライン修飾
数式
生のHTML
LaTeX マクロ
リンク
画像
Div と Span
脚注
Citation syntax
Non-default extensions
Markdown方言
     ・
     ・
等が参考になる。

【コマンドシェルを「コマンドシェルcmd.exe」の実行例(5例)】の最初の[1]では、明示的にフォントは指定していないが、ディフィルトのフォントが採用された。
 他の[2]~[5]の明示的に、フォントの、「ipaIPAフォント」や「ms:MS明朝、MSゴシック」を指定したケースより、作成されたPDFは明瞭だった。

 尚、

pandoc sample.md -o sample.pdf --pdf-engine=lualatex -V documentclass=ltjsarticle -V CJKmainfont=HiraMaruProN-W4

の様に、
LuaTeX-jaで、CJKmainfont変数を使う方法で、OS上の任意のフォントを本文用に読み込めて、「ヒラギノ丸ゴ ProN W4」(HiraMaruProN-W4)を読み込む事例の代わりに、フォントの、「ipa」や「ms」を指定しても失敗する!どうも、CJKmainfontパラメータはどれも失敗するようだ。