Book テーマの hint ショートコードブロック内に数式を表示する際の注意

Book テーマの hint ショートコードブロック内に数式を表示する際の注意 #

概要 #

Book テーマ [1] では, \(\KaTeX\) を使うための katex ショートコードが用意されています [2]. また,目立たせたい情報を文書ブロックとして表示できる,hint ショートコードが用意されています [3]

しかし,hint ショートコードブロックの中で katex ショートコードを使う場合,うまく数式が表示できないことがあります. 本ページでは,hint ショートコードブロック内で数式を表示する場合の注意について説明します.

hint ショートコードの使いかた #

公式の説明 [3] をもとに,markdown での記述例と,出力結果を説明します.hint ショートコードは第1引数によって,背景色を変えることができます.

第1引数:なし #

markdown の記述例は以下のとおりです.

{{% hint %}}
ヒント.
{{% /hint %}}

出力結果は以下のとおりです.

ヒント.

第1引数:info #

markdown の記述例は以下のとおりです.

{{% hint info %}}
ヒント.
{{% /hint %}}

出力結果は以下のとおりです.

ヒント.

第1引数:warning #

markdown の記述例は以下のとおりです.

{{% hint warning %}}
ヒント.
{{% /hint %}}

出力結果は以下のとおりです.

ヒント.

第1引数:danger #

markdown の記述例は以下のとおりです.

{{% hint danger %}}
ヒント.
{{% /hint %}}

出力結果は以下のとおりです.

ヒント.

katex ショートコード #

公式の説明 [2] をもとに,markdown での記述例と,出力結果を説明します.katex ショートコードは第1引数によって,インライン数式か別行立て数式かを指定できます.

第1引数:なし #

markdown の記述例は以下のとおりです.

{{< katex >}}\int_{-\infty}^{\infty}e^{-t^2}dt=\pi.{{< /katex >}}

出力例は以下のとおりです: \(\int_{-\infty}^{\infty}e^{-t^2}dt=\pi.\)

第1引数:display #

markdown の記述例は以下のとおりです.

{{< katex display=true >}}
  \int_{-\infty}^{\infty}e^{-t^2}dt=\pi.
{{< /katex >}}

出力例は以下のとおりです.

\[ \int_{-\infty}^{\infty}e^{-t^2}dt=\pi. \]

hint ショートコードブロック内の数式表示 #

設定の変更 #

独自ショートコードの定義 でも述べたとおり,Hugo で現在利用されている markdown パーサは HTML 形式の直接記述をデフォルトでは認めていません.この仕様により,デフォルトのままでは,hint ショートコードブロック内に数式がうまく表示されません.

そこで,独自ショートコードの定義 の 設定の変更 でも述べたとおり,config.toml に以下を追加する必要があります.

[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

別行立て数式 #

別行立て数式は表示できます.例えば,以下のように書くと:

{{% hint info %}}
以下の式が成り立つ.
{{< katex display=true >}}
  \int_{-\infty}^{\infty}e^{-t^2}dt=\pi.
{{< /katex >}}
{{% /hint %}}

以下のように出力されます:

以下の式が成り立つ.

\[ \int_{-\infty}^{\infty}e^{-t^2}dt=\pi. \]

インライン数式 #

インライン数式は表示できないようです.例えば,以下のように書くと:

{{% hint danger %}}
次の式が成り立つ.{{< katex >}}\int_{-\infty}^{\infty}e^{-t^2}dt=\pi.{{< /katex >}}
{{% /hint %}}

以下のように出力されます:

次の式が成り立つ. (\int_{-\infty}^{\infty}e^{-t^2}dt=\pi.)

行内に表示したい場合は,{{< katex >}}...{{< /katex >}} の代わりに \\(...\\) で数式をくくればうまくいきます.例えば,以下のように書くと:

{{% hint info %}}
次の式が成り立つ.\\(\int_{-\infty}^{\infty}e^{-t^2}dt=\pi\\).
{{% /hint %}}

以下のように出力されます:

次の式が成り立つ.\(\int_{-\infty}^{\infty}e^{-t^2}dt=\pi\).

したがって,hint ショートコード内にインライン数式を書く場合は,\\(...\\) を用いて数式をくくればよいです

うまく表示されない場合 #

いくつかうまく表示されない場合があるので,その例と対処法について説明します.

ブレース ({, }) を使う場合 #

例えば,以下のように書くと:

{{% hint info %}}
\\(\mathbb{R}_{\ge0}=\{x\in\mathbb{R}\mid x\ge0\}\\) とする.
{{% /hint %}}

以下のように出力されます:

\(\mathbb{R}_{\ge0}={x\in\mathbb{R}\mid x\ge0}\) とする.

つまり,ブレース ({, }) が表示されません

この場合は,\{ でなく \\{ とすれば表示されます.

{{% hint info %}}
\\(\mathbb{R}_{\ge0}=\\{x\in\mathbb{R}\mid x\ge0\\}\\) とする.
{{% /hint %}}

\(\mathbb{R}_{\ge0}=\{x\in\mathbb{R}\mid x\ge0\}\) とする.

下付き文字を使う場合 #

常にではありませんが,下付き文字を使う場合で,以下のように正しく表示されない場合があります.

{{% hint info %}}
\\(\bm{X}_{11}\\) および \\(\bm{X}_{12}\\) を以下のように定める.
{{% /hint %}}

\(\bm{X}{11}\) および \(\bm{X}{12}\) を以下のように定める.

この場合は,_\_ に置き換えると表示されるようになります.すべて変更しなくてもよいようです.

{{% hint info %}}
\\(\bm{X}_{11}\\) および \\(\bm{X}\_{12}\\) を以下のように定める.
{{% /hint %}}

\(\bm{X}_{11}\) および \(\bm{X}_{12}\) を以下のように定める.

まとめ #

本ページでは,hint ショートコードブロック内で数式を表示する場合の注意について説明しました.

まとめると,以下のとおりです.

hint ショートコードブロック内に数式を表示する際の注意

  1. 別行立て数式の場合: display=true 引数付き katex ショートコードをおけばよいです.
  2. インライン数式の場合: \\(...\\) を用いて 数式をくくればよいです.

参考文献 #

[1] @alex-shpak, “GitHub - alex-shpak/hugo-book: Hugo documentation theme as simple as plain book”, https://github.com/alex-shpak/hugo-book, 2022/8/7 最終アクセス.
[2] Hugo, “Katex | Hugo Book”, https://hugo-pagedjs-book.netlify.app/docs/shortcodes/katex/, 2022/8/20 最終アクセス.
[3] Hugo, “Hints | Hugo Book”, https://hugo-book-demo.netlify.app/docs/shortcodes/hints/, 2022/8/20 最終アクセス.


This work is licensed under CC BY 4.0