2024-09-28

Train One フォント

今はフリーあるいはオープンソースのフォントが利用できる時代です。いろいろなフォントを紹介しているサイトはありますが、気に入ったデザインのフォントを自分なりのやり方で紹介しています。

今回紹介するフォントは Train One というフォントです。

フォント名 Train One
収録文字
  • カタカナ、ひらがな、英数字、記号類、JIS第一水準漢字など
  • GF Latin Core
配布ライセンス SIL Open Font License 1.1
配布サイト

Train One フォント (TrainOne-Regular.ttf) の利用例を下記に示しました。

TrainOne-Regular.ttf の利用例

使用したプログラム

スクリーンショット用に使用したプログラムは、本ブログの過去記事 [1] で紹介しています。

参考・関連サイト

  1. bitWalk's: 「ポプらむ☆キウイ」フォント [2024-08-27]
  2. bitWalk's: 「廻想体 ネクスト ユーピー B」フォント [2024-08-29]
  3. bitWalk's: 「源暎ぽっぷる」フォント [2024-09-02]
  4. bitWalk's: 「コーポレート・ロゴ(ラウンド)」フォント [2024-09-08]
  5. bitWalk's: 「ニコ角V2」フォント [2024-09-16]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-09-24

QDesktopServices でブラウザ起動 ~ PySide6

PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。

PySide6 では、Chromium をベースにした QWebEngineView クラスのインスタンスを利用できるので [1]、インターネット・ブラウザを利用したければ、アプリ側で必要な機能を実装したブラウザを用意して利用することができます。

しかしながら、いろいろな事情から OS デフォルト(既定)のインターネット・ブラウザを利用したい場合もあります。そんなときは、QDesktopServices クラスが提供している openUrl というスタティック・メソッド(ファンクション)を利用する方法があります [2]

QDesktopServices クラスの openUrl というスタティック・メソッドを利用したシンプルなサンプルを紹介します。

下記の OS 環境で動作確認をしています。

Fedora Linux Workstation 41 beta x86_64
Python 3.12.6
PySide6 6.7.2

以下がサンプル・プログラムです。

qt_desktop_services.py

サンプルの実行例を示しました。

ツールバーの Qt ボタンをクリックすると、デフォルトのブラウザが起動して、指定した URL が表示されるだけのサンプルです。

qt_desktop_services.py でデフォルトのブラウザを起動して指定 URL を表示した例

openUrl メソッドを利用するには、QDesktopServices クラスのインスタンスを作らずに、次のように直接クラスメソッドを指定します。

    def on_click(self):
        QDesktopServices.openUrl(self.url)

ブラウザで指定した URL が表示されると、ウィンドウのフォーカスがブラウザの方へ移ってしまいます。

参考サイト

  1. QWebEngineView - Qt for Python
  2. QDesktopServices - Qt for Python

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-09-23

【備忘録】Sphinx を使う (1)

Sphinx は、Python で記述されているドキュメンテーションジェネレータで、reStructuredText (reST) を HTMLPDFEPUBTexinfo 及び man ページなどのフォーマットに変換します。reStructuredText には拡張性があり、Sphinx は拡張機能を通して、ソースコードからドキュメントを自動生成したり、数学的な記法を書いたり、あるいはソースコードをハイライトしたりすることができます。

Wikipedia より引用・編集

Sphinx は、Python で作成したアプリのマニュアルを HTML 形式で作成する際に利用しています。ちょっとした数式も綺麗に整形してくれるので大変重宝しています。さらに、LaTeX 形式で出力して PDF 形式に変換することもできます。

従来、メイン PC の OS には Fedora Linux を利用していましたが、ちょっとした不具合があったため、このところは安定動作を重視して RHEL 9 をインストールして利用していました。しかし、残念なことに自分の力では LaTeX をうまく動かせませんでした。😭

Fedora Linux 41 のベータ版がリリースされたので、我慢できずにメイン PC の OS を Fedora Linux に戻してしまいました。Fedora Linux 41 では LaTeX を問題なく利用できたので、この機に Sphinx の使い方をまとめておこうと考えました。

今回は HTML の出力を確認しつつも、LaTeX → PDF に変換して出力できる環境を整備することにも焦点をあてます。

下記の OS 環境で動作確認をしています。

Fedora Linux Workstation 41 beta x86_64
Python 3.13.0rc2
Sphinx 8.0.2

TeX Live パッケージ群のインストール

Sphinx を使い始める前に、Fedora の TeX Live パッケージ群をインストールしておきます。最低限必要なパッケージが何かを抽出できなかったので、乱暴なやり方ですが texlive で始まるパッケージおよび依存しているパッケージをすべてインストールしました。

bitwalk@fedora:~$ sudo dnf install texlive*

TeX Live に依存するパッケージを含め、7000 以上の膨大な数のパッケージ(texlive で始まるパッケージ数は 6763)がインストールされますが、個々のパッケージサイズはそれほど大きくないので、いまどきのストレージ容量であれば問題ないでしょう。

仮想環境 venv に Sphinx をインストール

ここではプロジェクトディレクトリ内に Python の venv 仮想環境を用意して Sphinx を pip コマンドでインストールしています。

bitwalk@fedora:~/MyProjects$ mkdir sphinx_sample
bitwalk@fedora:~/MyProjects$ cd sphinx_sample
bitwalk@fedora:~/MyProjects/sphinx_sample$ python -m venv venv
bitwalk@fedora:~/MyProjects/sphinx_sample$ source venv/bin/activate
(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ pip install sphinx
Collecting sphinx
  Using cached sphinx-8.0.2-py3-none-any.whl.metadata (6.2 kB)
  ...
  ...
(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ 

クイック・スタート

プロジェクトのルート・ディレクトリで、sphinx-quickstart を引数を何も指定せずに実行します。docs のようなサブディレクトリ名を指定するのが一般的ですが、今回は文書作成専用のプロジェクトであるため、何も指定しませんでした。

下記のように質問に答えて、文書作成に必要となる基本的なディレクトリおよびファイルを生成します。

(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ sphinx-quickstart
Sphinx 8.0.2 クイックスタートユーティリティへようこそ。

以下の設定値を入力してください(Enter キーのみ押した場合、
かっこで囲まれた値をデフォルト値として受け入れます)。

選択されたルートパス: .

Sphinx 出力用のビルドディレクトリを配置する方法は2つあります。
ルートパス内にある "_build" ディレクトリを使うか、
ルートパス内に "source" と "build" ディレクトリを分ける方法です。
> ソースディレクトリとビルドディレクトリを分ける(y / n) [n]: Enter

プロジェクト名は、ビルドされたドキュメントのいくつかの場所にあります。
> プロジェクト名: サンプル文書
> 著者名(複数可): すぐりふひと
> プロジェクトのリリース []: 0.0.1

ドキュメントを英語以外の言語で書く場合は、
 言語コードで言語を選択できます。Sphinx は生成したテキストをその言語に翻訳します。

サポートされているコードのリストについては、
https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language を参照してください。
> プロジェクトの言語 [en]: ja

ファイル /home/bitwalk/MyProjects/sphinx_sample/conf.py を作成しています。
ファイル /home/bitwalk/MyProjects/sphinx_sample/index.rst を作成しています。
ファイル /home/bitwalk/MyProjects/sphinx_sample/Makefile を作成しています。
ファイル /home/bitwalk/MyProjects/sphinx_sample/make.bat を作成しています。

終了:初期ディレクトリ構造が作成されました。

マスターファイル /home/bitwalk/MyProjects/sphinx_sample/index.rst を作成して
他のドキュメントソースファイルを作成します。次のように Makefile を使ってドキュメントを作成します。
 make builder
"builder" はサポートされているビルダーの 1 つです。 例: html, latex, または linkcheck。

(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ 

sphinx-quickstart で生成された、Sphinx による文書作成に関係があるディレクトリとファイルば下記になります。

bitwalk@fedora:~/MyProjects/sphinx_sample
┣ Makefile
┣ _build_templates
┣ index.rst
┣ _static
┣ conf.py
┗ make.bat

上記ファイルの内、conf.py ファイルは、Sphinx の入出力の動作をカスタマイズするために必要なほとんどすべての設定をおこなえるそうです。今回 sphinx-quickstart で生成した conf.py ファイルは、次のようになっています。

conf.py
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'サンプル文書'
copyright = '2024, すぐりふひと'
author = 'すぐりふひと'
release = '0.0.1'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration

extensions = []

templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']

language = 'ja'

# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output

html_theme = 'alabaster'
html_static_path = ['_static']

今回は。特にカスタマイズをせずに動作確認をしてみます。

空の文書をビルドしてみる

何も設定やファイルを追加していない状態で文書をビルドしてみます。

まずは HTML 形式で出力してみます。

(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ make html
Sphinx v8.0.2 を実行中
翻訳カタログをロードしています [ls]... 翻訳が用意されていません
出力先ディレクトリを作成しています... 完了
ビルド中 [mo]: 更新された 0 件のpoファイル
出力中...
    ...
    (途中省略)
    ...
オブジェクト インベントリを出力... 完了
ビルド 成功, 17 警告.

HTMLページは_build/htmlにあります。
(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ 

_build/html/ 内に HTML が生成されます。index.html をブラウザで開くと下記のような、タイトルだけのページが表示されます。

~/MyProjects/sphinx_sample/_build/html/index.html (1)

次に、PDF 形式で出力してみます。

(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ make latexpdf
Sphinx v8.0.2 を実行中
翻訳カタログをロードしています [ja]... 完了
出力先ディレクトリを作成しています... 完了
保存された環境データを読み込み中... 完了
ビルド中 [mo]: 更新された 0 件のpoファイル
出力中...
    ...
    (途中省略)
    ...
------------
Run number 1 of rule 'dvipdf'
------------
------------
Running 'dvipdfmx  -o "sphinx.pdf" "sphinx.dvi"'
------------
sphinx.dvi -> sphinx.pdf
[1][2][3][4][5]
14139 bytes written
Latexmk: All targets (sphinx.dvi sphinx.pdf) are up-to-date

make[1]: ディレクトリ '/home/bitwalk/MyProjects/sphinx_sample/_build/latex' から出ます
(venv) bitwalk@fedora:~/MyProjects/sphinx_sample$ 

_build/latex/ 内に LaTeX の出力から PDF に変換された sphinx.pdf が出力されます。これをドキュメントビューアーで開くと HTML の時と同様にタイトルだけのページが表示されます。

~/MyProjects/sphinx_sample/_build/latex/sphinx.pdf (1)

空の文書とは言え、拡張モジュールとか追加しなくともとりあえずビルドできました。

文書を追加する

空の文書とは言え、Sphinx を利用して、HTML と PDF 形式の出力ができることを確認できたので、具体的に長い文書を追加してみます。

サンプル文書

題材とするサンプル文書は、青空文庫で公開されている「杜子春」にしました。

参考サイト [2] から 43015_ruby_17393.zip をダウンロードして解凍した toshishun.txt を開いて、新規ファイルに内容をコピーして、article_01.rst というファイル名でプロジェクトのルート・ディレクトリに保存しました。保存時のエンコードは UTF-8 です。

bitwalk@fedora:~/MyProjects/sphinx_sample
┣ Makefile
┣ _build_templatesarticle_01.rst ← 「杜子春」の内容
┣ index.rst
┣ _static
┣ conf.py
┗ make.bat

.rst の拡張子が付いたファイルの内容は、reStructuredText (reST) の規則に従って記述されます。

今回は、article_01.rst にコピーした「杜子春」の内容に、文書のツリー構造を構成するために必須となる「セクション」を定義して、改行箇所を整えました。

article_01.rst の冒頭
杜子春
=========

芥川龍之介

一
--
或《ある》春の日暮です。
唐《とう》の都|洛陽《らくよう》の西の門の下に、ぼんやり空を仰いでいる、一人の若者がありました。

若者は名を杜子春といって、元は金持の息子でしたが、今は財産を費《つか》い尽して、その日の暮しにも困る位、憐《あわれ》な身分になっているのです。

何しろその頃洛陽といえば、天下に並ぶもののない、繁昌《はんじょう》を極《きわ》めた都ですから、往来にはまだしっきりなく、人や車が通っていました。
門一ぱいに当っている、油のような夕日の光の中に、老人のかぶった紗《しゃ》の帽子や、土耳古《トルコ》の女の金の耳環《みみわ》や、白馬《しろうま》に飾った色糸の手綱《たづな》が、絶えず流れて行く容子《ようす》は、まるで画のような美しさです。

しかし杜子春は相変らず、門の壁に身を凭《もた》せて、ぼんやり空ばかり眺《なが》めていました。
空には、もう細い月が、うらうらと靡《なび》いた霞《かすみ》の中に、まるで爪の痕《あと》かと思う程、かすかに白く浮んでいるのです。

(以下、省略)

セクションは 6 レベルに分けられています。ここではレベル 2 で「杜子春」のタイトル、レベル 3 で章(一、二、三、…、六)を定義しました。詳しくは、参考サイト [3] をご覧になってください。

セクションの == などの文字数は、「杜子春」などのセクションの文字数以上でないと make コマンドでビルドするときに警告が出ます。UTF-8 の漢字1文字は 2 バイト固定ではなく、それ以上の場合もあります。(バイト数が同じでる必要があるような気がするので)多めにセクション文字を入れておいた方が良いでしょう。

reST で改行は空白行で表現するので、原文を改変してしまっていますが、勝手に改行を入れました。また先頭の全角空白の字下げは削除しました。

index.rst の編集

index.rst を編集して、文書のツリーに「杜子春」の article_01.rst を下記のように追加します。拡張子はつけません。インデントは上の :caption: と同じです。また :caption: から一行空けて記載します。

index.rst
.. サンプル文書 documentation master file, created by
   sphinx-quickstart on Mon Sep 23 12:12:52 2024.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

サンプル文書 documentation
==========================

Add your content using ``reStructuredText`` syntax. See the
`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_
documentation for details.


.. toctree::
   :maxdepth: 2
   :caption: Contents:

   article_01

文書のビルド

空の文書をビルドしたときと同じように、HTML、PDF それぞれビルドします。

HTML は次のようになります。

~/MyProjects/sphinx_sample/_build/html/index.html (2)

「杜子春」をクリックすると表示が変わります。

~/MyProjects/sphinx_sample/_build/html/index.html (3)

PDF は次のようになりました。

~/MyProjects/sphinx_sample/_build/latex/sphinx.pdf (2)
~/MyProjects/sphinx_sample/_build/latex/sphinx.pdf (3)

PDF の出力では、空白ページが多かったり、セクション番号がついたりと、HTML 出力とは異なっています。必要に応じてカスタマイズする必要がありそうです。

一方、HTML の出力でも、今回はテーマの選択などのカスタマイズを全然していません。

これらは、十分確認した上で、本ブログでまとめていく予定です。

なお、本稿で使用したソースは下記で公開しています。

参考サイト

  1. Sphinx — Sphinx documentation
  2. 図書カード:杜子春
  3. 4. Sphinxでの文章の書き方(reStructuredText) — study sphinx 1 documentation

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-09-18

Fedora Linux 41 ベータ版リリース

Fedora Linux は Red Hat 社が支援するコミュニティ Fedora Project で開発されている Linux ディストロです。このディストロは、最新の技術を積極的に取り込むことで知られています。Fedora Linux の開発成果は CentOS Stream に取り込まれます。ここでテストを経て最終的に Red Hat Enterprise Linux, RHEL へ反映されます。

Fedora Linux は、おおむね春と秋の年二回の頻度で新しい版がリリースされています。

来月 10 月 22 日にリリースが予定されている [1] 次期 Fedora Linux 41 のベータ版が 9 月 17 日(現地時間)にリリースされました。

Fedora Linux 41 beta のデスクトップ

Fedora Linux 41 beta は下記からダウンロードできます。

参考サイト [2] によると、主要な変更点は下記の通りです。

  • Python 2 の廃止
  • セキュアブートをサポートしているプロプリエタリの Nvidia ドライバ
  • DNF 5 / RPM 4.20

参考サイト

  1. Fedora Linux 41 Schedule: Key
  2. Announcing Fedora Linux 41 Beta - Fedora Magazine [2024-09-17]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-09-16

「ニコ角V2」フォント

今はフリーあるいはオープンソースのフォントが利用できる時代です。いろいろなフォントを紹介しているサイトはありますが、気に入ったデザインのフォントを自分なりのやり方で紹介しています。

今回紹介するフォントは「ニコ角V2」というフォントです。

フォント名 「ニコ角V2」フォント
収録字数 ひらがな・カタカナ・英数字以外は「M+ OUTLINE FONTS」「M PLUS 1」を利用しています。
配布ライセンス SIL Open Font License 1.1
配布サイト 丸文字「ニコ角フォント」(ver.2)のダウンロード|丸文字フォント(ニコ文字)配布所
  • 上記配布サイトのスペックには、フォント名が「ニコモジ+(プラス)」となっています。一方、「ニコモジ+(プラス)V2」というフォントも存在します。「ニコ角フォント」の説明によると、ニコモジ+の角ゴシック版ということなので、「ニコモジ+(プラス)」と区別をするため、本サイトではフォント名を「ニコ角V2」とて紹介しています。

nicokaku_v2.ttf の利用例を下記に示しました。

nicokaku_v2.ttf の利用例

使用したプログラム

スクリーンショット用に使用したプログラムは、本ブログの過去記事 [1] で紹介しています。

参考・関連サイト

  1. bitWalk's: 「ポプらむ☆キウイ」フォント [2024-08-27]
  2. bitWalk's: 「廻想体 ネクスト ユーピー B」フォント [2024-08-29]
  3. bitWalk's: 「源暎ぽっぷる」フォント [2024-09-02]
  4. bitWalk's: 「コーポレート・ロゴ(ラウンド)」フォント [2024-09-08]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2024-09-15

【備忘録】Plotly でローソク足チャート

Plotly はカナダのケベック州モントリオールに本社を置くテクニカル・コンピューティング企業で、オンライン・データ分析および可視化ツールを開発しています。Plotly は、個人や共同作業のためのオンラインのグラフ作成、分析、統計ツール、および Python、R、MATLAB、Perl、Julia、Arduino、JavaScript、REST 用の科学的グラフ作成ライブラリを提供しています。

Wikipedia より引用・翻訳、編集

Plotly を使えばチャートが Web ブラウザ上に表示され、データの情報をインタラクティブに確認できます。ローソク足チャートもプロットできるので、試してみました。

PNG 形式で出力した例

インタラクティブな使用感を得られる HTML で出力したファイルを本記事に埋め込もうとしましたが、うまくいかなかったので下記にアップしました。

コードと動作環境

下記の OS 環境で動作確認をしています。

RHEL 9.4 x86_64
Python 3.12.1
kaleido 0.2.1
plotly 5.24.1
yfinance 0.2.43

参考サイトをベースにして作成したサンプルコードを下記に示しました。

plotly_candlestick_n225.py

使い慣れていないので、最低限のプロットしかできませんが、経験値を上げて使いこなせるようにしたいと思っています。

参考サイト

  1. Candlestick charts in Python
  2. Candlestick traces in Python
  3. ローソク線のチャートを表示する|【Python】plotlyを使ってローソク足チャートを表示する [2023-10-12]

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加