unicode-mathでceo

unicode-mathでceo

- takamasa 23 の投稿
返信数: 6

この度、久々に数式を組むことになりまして、LuaLaTeXでやっていきたいと思っているのですが、今までceo.styにお世話になって使ってきたものでLuaLaTeXの環境下でも数式部分だけでも使いたいと考えています。

LuaLaTeXでは「unicode-math」を使うことで数式書体を随意に変更できるということなのでそちらを用いて実現したいと考えております。現在、こちらを参考にしているのですが、インテグラルやシグマ、+、-といったものまで変更するにはどうしたら良いのでしょうか?

takamasa 23 への返信

Re: unicode-mathでceo

- 和田 勇 の投稿

誰もリプライしないので、私なりの解釈です。誤解していたら指摘していただけると助かります。

数式書体を随意に変更云々 とのことですが、\setmathfont で切り替えることなのではないでしょうか?

[LaTeX] unicode-math --- XeTeXおよびLuaTeXのUnicode数学サポート   ~入門~ を参考に、\setmathfontで様々なフォントを切り替えるコードを以下に示しますのでお好みのフォントを利用すれば良いのかと思います。

なおフォントによってはグリフのないものもありますが  で書くか \int で書くか、Σ\sum の違いもわかるかと思います。

なお、ceo.sty は普段使わないので、以下のソースには含めていません。

%%% ここから --- ✂︎ ------ ✂︎ ------ ✂︎ ---
\documentclass{jlreq}
%\usepackage[mathrm=sym]{unicode-math}
\usepackage{unicode-math}
\begin{document}
\newcommand{\myXXX}[1]{
    \setmathfont{#1}
     \item \framebox[1.5cm]{$ ∮  Σ + -$}%
           ~ %
           \framebox[2cm]{$∮_{b}^{a} f(x) dx$}%
           \framebox[2cm]{$\int_{b}^{a} f(x) dx$}%
           ~ %
           \framebox[2cm]{$Σ_{n=2}^\infty a_n $}%
           \framebox[2cm]{$\sum_{n=2}^\infty a_n $}%
           ~ %
           \fbox{#1}
}
\begin{itemize}
\myXXX{Asana-Math.otf}
\myXXX{Concrete-Math.otf}
\myXXX{Erewhon-Math-Bold.otf}
\myXXX{Erewhon-Math.otf}
\myXXX{Euler-Math.otf}
\myXXX{FiraMath-Regular.otf}
\myXXX{Garamond-Math.otf}
\myXXX{GFSNeohellenicMath.otf}
\myXXX{KpMath-Bold.otf}
\myXXX{KpMath-Light.otf}
\myXXX{KpMath-Regular.otf}
\myXXX{KpMath-Sans.otf}
\myXXX{KpMath-SansBold.otf}
\myXXX{KpMath-Semibold.otf}
\myXXX{latinmodern-math.otf}
\myXXX{LibertinusMath-Regular.otf}
\myXXX{NewCMMath-Book.otf}
\myXXX{NewCMMath-Regular.otf}
\myXXX{STIXMath-Regular.otf}
\myXXX{STIXTwoMath-Regular.otf}
\myXXX{texgyrebonum-math.otf}
\myXXX{texgyredejavu-math.otf}
\myXXX{texgyrepagella-math.otf}
\myXXX{texgyreschola-math.otf}
\myXXX{texgyretermes-math.otf}
\myXXX{XCharter-Math-Bold.otf}
\myXXX{XCharter-Math.otf}
\myXXX{XITSMath-Bold.otf}
\myXXX{XITSMath-Regular.otf}
\end{itemize}
\end{document}
%%% ここまで --- ✂︎ ------ ✂︎ ------ ✂︎ ---
和田 勇 への返信

Re: unicode-mathでceo

- takamasa 23 の投稿
参考にさせていただきます。

できればですが、+は…フォント、インテグラルは〜フォントのようにフォントを局部指定して使いたいと思っているのですが、そういったことは可能でしょうか?
takamasa 23 への返信

Re: unicode-mathでceo

- 和田 勇 の投稿
  • 数式内で一部数学記号を個別に指定したい とのこと

以下のようなマクロで対応できるのですが ... 数式ブロック内でフォントを変更するためだと思いますが、警告メッセージが表示されます。

\newcommand{\myUniINT}{{\setmathfont{Asana-Math.otf}∮}}
\newcommand{\myUniPLUS}{{\setmathfont{KpMath-SansBold.otf}+}}% U+002B
\framebox[5cm]{$\myUniINT_{b}^{a} f(x) dx = ax \myUniPLUS b$}%

\newcommand{\myINT}{{\setmathfont{Asana-Math.otf}\int}}
\newcommand{\myMATHPLUS}{{\setmathfont{KpMath-SansBold.otf}\mathplus}}
\framebox[5cm]{$\myINT_{b}^{a} f(x) dx = ax \myMATHPLUS b$}
和田 勇 への返信

Re: unicode-mathでceo

- takamasa 23 の投稿

回答ありがとうございます。

unicode-mathにはrangeで分野ごとにフォントを私が最初の投稿で貼らせていただいたリンク先のように変えられると思うのですが、 そのようにしてnewcommandでフォントを設定するのではなく数式環境下で「+」と入力するだけで指定したフォントの「+」を表示させることはできないのでしょうか?

質問ばかりで何もこちらからアイディアを出せず、すみません。

takamasa 23 への返信

Re: unicode-mathでceo

- 和田 勇 の投稿

意図されていることの理解不足で申し訳ございません。

可能であれば、お試しのコードやログファイルをあぷうロードしてください。

  • texdoc unicode-math

    range で検索したところ p7 4.1 Using multiple fonts を参考になるようです。

  • サンプルコード

    • インテグラル \int と = + - のフォントを変更したことがわかるようなフォントで試してみました。

      \documentclass[landscape]{jlreq}
      %\usepackage[mathrm=sym]{unicode-math}
      \usepackage{unicode-math}
      
      \begin{document}
      
      \newcommand{\myXXX}{
          \bigskip
          \fbox{$\int_{b}^{a} f(x) dx = ax \mathplus (←mathplus)  + (←演算子+) - (←演算子-)$}
      }
      \Huge
      
      \setmathfont{Libertinus Math}
      \myXXX
      
      \setmathfont{KpMath-SansBold.otf}[range={"002B,"002D,"003D}] % + 002B / - 002D / = 003D
      \setmathfont{Erewhon-Math-Bold.otf}[range={\int}]
      \myXXX
      
      演算子マイナスは、違いがわからないが、インテグラル = + は違いがわかる
      
      \end{document}
      
和田 勇 への返信

Re: unicode-mathでceo

- takamasa 23 の投稿
またまた言葉足らずでした。すみません。

ですが、お示しいただいたものが私が望んだものでした。本当にありがとうございました。