summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mathfam256/mathfam256.tex
blob: 396d018138fedd33d3aa875d07d4e732c4583255 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
%# -*- coding: utf-8 -*-
\ifx\epTeXinputencoding\undefined\else % defined in e-pTeX (> TL2016)
  \epTeXinputencoding utf8    % ensure utf-8 encoding for platex
\fi

\documentclass[a4paper]{jsarticle}
\usepackage{doc}
\usepackage{mathfam256}
\GetFileInfo{mathfam256.sty}
\usepackage{array}
\usepackage{url}
\newcommand{\OMEGA}{$\Omega$}
\def\pTeX{p\kern-.15em\TeX}
\def\upTeX{u\pTeX}
\def\eTeX{$\varepsilon$-\TeX}
\def\epTeX{$\varepsilon$-\pTeX}
\def\eupTeX{$\varepsilon$-\upTeX}
\title{Package \textsf{mathfam256} \fileversion}
\author{Hironobu Yamashita}
\date{\filedate}
\begin{document}

\maketitle

\parindent15pt

In classic \TeX\ and \eTeX, the upper limit of math groups (\verb+\fam+)
is limited to 16. However, these days some \TeX\ variants support
math groups up to 256.

In light of this situation, the \LaTeXe\ kernel 2015/01/01 increased
the upper limit of math alphabets to 256 for
Xe\TeX\ and Lua\TeX\ (Unicode \TeX\ variants).
Also, the \pLaTeXe/\upLaTeXe\ kernel 2016/11/29 introduced the similar
change for \epTeX/\eupTeX\ (``FAM256'' patch based on \OMEGA\ is applied).

However, the ``native'' kernel support is limited:
\begin{itemize}
\item The upper limit for math symbol families is still limited to 16.
\item Lamed (\LaTeX\ on Aleph) is not supported at all.
\end{itemize}

The package \textsf{mathfam256} is an attempt to resolve this situation;
increases the upper limit of math symbols from 16 (\LaTeXe\ default)
to 256, using \verb+\omath...+ primitives.

The package is maintained on GitHub:
\begin{quote}
  \url{https://github.com/aminophen/mathfam256}
\end{quote}

\section*{Requirements}

The \verb+\omath...+ primitives are originally introduced in
\OMEGA\ (Omega), and are currently available in the followings.
Without one of these, the package causes an error.
\begin{itemize}
\item \pLaTeX/\upLaTeX, run on \epTeX/\eupTeX\ (Japanese \TeX\ engine)
\item Lamed, run on Aleph (successor of \OMEGA)
\end{itemize}

\section*{Usage}

Load it in the preamble; it is recommended to load it as fast as
possible.
\begin{verbatim}
  \documentclass[a4paper]{article}
  \usepackage{mathfam256}
  \usepackage{...}% other packages
  \begin{document}
  The content
  \end{document}
\end{verbatim}

\bigskip

\parindent1zw

オリジナルの\TeX や“素”の\eTeX では、数式ファミリ(\verb+\fam+)の
上限が16個に制限されていました。しかし、最近の新しい\TeX エンジンの中には、
256個までの数式ファミリをサポートするものが現れています。

この状況を鑑み、\LaTeXe カーネル(2015/01/01以降)では、
Unicode対応のXe\TeX とLua\TeX について、数式ファミリ(正確には
\verb+\DeclareMathAlphebet+で使われる数式アルファベット)の上限を256に
増やしています。同様に、\pLaTeXe/\upLaTeXe カーネル(2016/11/29以降)も、
\OMEGA ベースのいわゆる「FAM256パッチ」が適用された\epTeX/\eupTeX について、
数式ファミリの上限を256に増やしています。これらにより
\begin{verbatim}
  ! LaTeX Error: Too many math alphabets used in version normal.
\end{verbatim}
というエラーが発生しにくくなっています。

しかし、この“ネイティブな”カーネルのサポートには限界があります:
\begin{itemize}
\item 数式シンボルフォントの上限は依然として16のままである(安全のため)。
\item Lamed (\LaTeX\ on Aleph)は全く考慮されていない。
\end{itemize}

この\textsf{mathfam256}パッケージは、この状況を改善する試みです。
すなわち、\OMEGA 由来の\verb+\omath...+プリミティブを用いて、
数式シンボルフォントの上限を256に増やします。

\section*{動作条件}

もともと\OMEGA\ (Omega)に導入された\verb+\omath...+プリミティブが
必要です。これが実装されているのは、以下のフォーマット(エンジン)です。
これ以外でパッケージが使われて場合はエラー終了します。
\begin{itemize}
\item \pLaTeX/\upLaTeX (\epTeX/\eupTeX 上で動作)
\item Lamed(\OMEGA の後継であるAleph上で動作)
\end{itemize}

\section*{使い方}

プリアンブルで読み込みます。なるべく早めに読み込むことをお勧めします。
\begin{verbatim}
  \documentclass[a4paper]{article}
  \usepackage{mathfam256}
  \usepackage{...}% other packages
  \begin{document}
  …本文…
  \end{document}
\end{verbatim}

\section*{謝辞}

本パッケージは\cite{yamamoto}〜\cite{yamamoto3}を元に、
新しい\LaTeX に対応させることで作られました。

\begin{thebibliography}{99}
 \bibitem{yamamoto} 山本 和義,「数式famの制限とluatex」,
  掲示板「\TeX\ Q\ \&\ A」,2009/02/12.\\
  \url{http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/52744.html}
 \bibitem{yamamoto2} 山本 和義,「Re: 数式famの制限とluatex」,
  掲示板「\TeX\ Q\ \&\ A」,2009/02/16.\\
  \url{http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/52767.html}
 \bibitem{yamamoto3} 山本 和義,「数式fam拡張マクロ for e-pTeX等」,
  掲示板「\TeX\ Q\ \&\ A」,2009/02/21.\\
  \url{http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/52799.html}
 \bibitem{eptexdoc} 北川 弘典,「\epTeX について」.\\
  \verb+$TEXMFDIST/doc/ptex/ptex-base/eptexdoc.pdf+
\end{thebibliography}

\end{document}