jlreqを使うと行列が汚くなる件

2024/01/18に公開

LaTeXを使用していて、行列の括弧(デリミタ)が異常に長くなって困っていたら、jlreq.clsのせいだった、という話です。jlreq.clsを使っていて行列の表示が何か変だったら、同じ境遇にあるかもしれません。ググってもなかなか出てこなかったのでメモ。

状況

以下が私が出くわした状況です。

\documentclass[dvipdfmx]{jlreq}
\usepackage{mathtools}

\begin{document}
\begin{equation*}
  \det
  \begin{bmatrix}
    a & b \\
    c & d
  \end{bmatrix}
  =
  \begin{vmatrix}
    a & b \\
    c & d
  \end{vmatrix}
  = ad - bc
\end{equation*}
\end{document}

なんか縦に長いですよね!?

\det \begin{bmatrix} a & b \\ c & d \end{bmatrix} = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc

本当はこれくらいの長さのはずです。

解決法

1. \arraystretchを変える

\documentclass[dvipdfmx]{jlreq}
\usepackage{mathtools}

\renewcommand{\arraystretch}{0.7}

\begin{document}
\begin{equation*}
  \det
  \begin{bmatrix}
    a & b \\
    c & d
  \end{bmatrix}
  =
  \begin{vmatrix}
    a & b \\
    c & d
  \end{vmatrix}
  = ad - bc
\end{equation*}
\end{document}

うん、やっぱりこの長さが落ち着く。こちらのサイト[1]を参考にしました。

2. jsarticle.clsを使う

\documentclass[dvipdfmx,uplatex]{jsarticle}
\usepackage{mathtools}

\begin{document}
\begin{equation*}
  \det
  \begin{bmatrix}
    a & b \\
    c & d
  \end{bmatrix}
  =
  \begin{vmatrix}
    a & b \\
    c & d
  \end{vmatrix}
  = ad - bc
\end{equation*}
\end{document}

本末転倒な気がしますが……。まあそこまでガッツリ使わない限り、jsarticle.clsでも不自由はないでしょう。

まとめ

困ったらjsarticle.clsを使ってみる!!

脚注
  1. jlreq.clsではpmatrixやcases環境等の括弧が大きいものとなってしまう」北見けん氏の回答。 ↩︎

Discussion