summaryrefslogtreecommitdiff
path: root/fonts/variablelm
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/variablelm
Initial commit
Diffstat (limited to 'fonts/variablelm')
-rw-r--r--fonts/variablelm/README.md53
-rw-r--r--fonts/variablelm/doc/control_scaling_lm_fonts.pdfbin0 -> 131707 bytes
-rw-r--r--fonts/variablelm/doc/control_scaling_lm_fonts.tex62
-rw-r--r--fonts/variablelm/tex/omlvlmm.fd34
-rw-r--r--fonts/variablelm/tex/omlvlmr.fd35
-rw-r--r--fonts/variablelm/tex/omsvlmr.fd35
-rw-r--r--fonts/variablelm/tex/omsvlmsy.fd32
-rw-r--r--fonts/variablelm/tex/omxvlmex.fd22
-rw-r--r--fonts/variablelm/tex/ot1vlmr.fd73
-rw-r--r--fonts/variablelm/tex/ot1vlmtt.fd93
-rw-r--r--fonts/variablelm/tex/t1vlmr.fd73
-rw-r--r--fonts/variablelm/tex/t1vlmss.fd58
-rw-r--r--fonts/variablelm/tex/t1vlmssq.fd38
-rw-r--r--fonts/variablelm/tex/t1vlmtt.fd93
-rw-r--r--fonts/variablelm/tex/t1vlmvtt.fd66
-rw-r--r--fonts/variablelm/tex/ts1vlmr.fd73
-rw-r--r--fonts/variablelm/tex/variablelm.sty48
17 files changed, 888 insertions, 0 deletions
diff --git a/fonts/variablelm/README.md b/fonts/variablelm/README.md
new file mode 100644
index 0000000000..ecf1414f21
--- /dev/null
+++ b/fonts/variablelm/README.md
@@ -0,0 +1,53 @@
+# Control the Scaling for the Latin Modern Fonts
+
+## Descriptions
+
+We provide a mechanism for scaling the typeface.
+
+It is directed to Latin Modern fonts.
+It provide the following files: fd and sty.
+This mechanism is useful in mixed text composition.
+For example: Japanese--Latin.
+
+## Version
+
+1.1.2
+
+## Requirements
+
+ * the Latin Modern fonts
+
+## Usage
+
+### Preamble
+
+```
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage[scale=1.09,ttscale=1.12]{variablelm}
+```
+
+Remark: \texttt{amsmath} is for \verb!\big!, \verb!\Big!, \verb!\bigg!, etc.
+
+### Options
+
+ * scale: Roman, italic, bold, bold italic, small caps
+ * ttscale: fixed (\ttfamily)
+ * sfscale: sans-serif (\sffamily)
+ * encoding: font encoding (default: T1)
+ * variablett: same the lmodern.sty
+ * lighttt: same the lmodern.sty
+
+## Author
+
+Yuwsuke KIEDA
+
+## License
+
+the GUST Font License (version 1.0)
+
+## Repository
+
+https://github.com/yuw/texmf-variablelm
diff --git a/fonts/variablelm/doc/control_scaling_lm_fonts.pdf b/fonts/variablelm/doc/control_scaling_lm_fonts.pdf
new file mode 100644
index 0000000000..b84c93deb6
--- /dev/null
+++ b/fonts/variablelm/doc/control_scaling_lm_fonts.pdf
Binary files differ
diff --git a/fonts/variablelm/doc/control_scaling_lm_fonts.tex b/fonts/variablelm/doc/control_scaling_lm_fonts.tex
new file mode 100644
index 0000000000..94b3f168a9
--- /dev/null
+++ b/fonts/variablelm/doc/control_scaling_lm_fonts.tex
@@ -0,0 +1,62 @@
+\documentclass{article}
+
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath}
+
+\title{Control the Scaling for the Latin Modern Fonts}
+\author{Yuwsuke KIEDA}
+\date{2018/02/13 v1.1.2}
+
+\begin{document}
+
+\maketitle
+
+\section{Descriptions}
+
+We provide a mechanism for scaling the typeface.
+
+It is directed to Latin Modern fonts.
+It provide the following files: fd and sty.
+This mechanism is useful in mixed text composition.
+For example: Japanese--Latin.
+
+\section{Requirements}
+
+\begin{itemize}
+ \item the Latin Modern fonts
+\end{itemize}
+
+\section{Usage}
+
+\subsection{Preamble}
+
+\begin{quote}
+\begin{verbatim}
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage[scale=1.09,ttscale=1.12]{variablelm}
+\end{verbatim}
+\end{quote}
+
+Remark: \texttt{amsmath} is for \verb!\big!, \verb!\Big!, \verb!\bigg!, etc.
+
+\subsection{Options}
+
+\begin{itemize}
+ \item [\textendash] \texttt{scale}: Roman, italic, bold, bold italic, small caps
+ \item [\textendash] \texttt{ttscale}: fixed (\verb!\ttfamily!)
+ \item [\textendash] \texttt{sfscale}: sans-serif (\verb!\sffamily!)
+ \item [\textendash] \texttt{encoding}: font encoding (default: T1)
+ \item [\textendash] \texttt{variablett}: same the lmodern.sty
+ \item [\textendash] \texttt{lighttt}: same the lmodern.sty
+\end{itemize}
+
+
+\section{License}
+
+the GUST Font License (version 1.0)
+
+\end{document}
diff --git a/fonts/variablelm/tex/omlvlmm.fd b/fonts/variablelm/tex/omlvlmm.fd
new file mode 100644
index 0000000000..35e35b7f1d
--- /dev/null
+++ b/fonts/variablelm/tex/omlvlmm.fd
@@ -0,0 +1,34 @@
+%
+% This file is an extended version of the file 'omllmm.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{omlvlmm.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OML}{vlmm}{\skewchar\font127 }
+\DeclareFontShape{OML}{vlmm}{m}{it}%
+ {<-5.5> \alphabet@@scale lmmi5
+ <5.5-6.5> \alphabet@@scale lmmi6
+ <6.5-7.5> \alphabet@@scale lmmi7
+ <7.5-8.5> \alphabet@@scale lmmi8
+ <8.5-9.5> \alphabet@@scale lmmi9
+ <9.5-11> \alphabet@@scale lmmi10
+ <11-> \alphabet@@scale lmmi12
+ }{}
+\DeclareFontShape{OML}{vlmm}{b}{it}{%
+ <-6> \alphabet@@scale lmmib5
+ <6-8> \alphabet@@scale lmmib7
+ <8-> \alphabet@@scale lmmib10
+ }{}
+\DeclareFontShape{OML}{vlmm}{bx}{it}%
+ {<-> sub*vlmm/b/it}{}
+\endinput
diff --git a/fonts/variablelm/tex/omlvlmr.fd b/fonts/variablelm/tex/omlvlmr.fd
new file mode 100644
index 0000000000..0f7a952685
--- /dev/null
+++ b/fonts/variablelm/tex/omlvlmr.fd
@@ -0,0 +1,35 @@
+%
+% This file is an extended version of the file 'omllmr.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{omlvlmr.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OML}{vlmr}{\skewchar\font127 }
+\DeclareFontShape{OML}{vlmr}{m}{n}%
+ {<->ssub*vlmm/m/it}{}
+\DeclareFontShape{OML}{vlmr}{m}{it}%
+ {<->ssub*vlmm/m/it}{}
+\DeclareFontShape{OML}{vlmr}{m}{sl}%
+ {<->ssub*vlmm/m/it}{}
+\DeclareFontShape{OML}{vlmr}{m}{sc}%
+ {<->ssub*vlmm/m/it}{}
+\DeclareFontShape{OML}{vlmr}{bx}{n}%
+ {<->ssub*vlmm/b/it}{}
+\DeclareFontShape{OML}{vlmr}{bx}{it}%
+ {<->ssub*vlmm/b/it}{}
+\DeclareFontShape{OML}{vlmr}{bx}{sl}%
+ {<->ssub*vlmm/b/it}{}
+\DeclareFontShape{OML}{vlmr}{bx}{sc}%
+ {<->ssub*vlmm/b/it}{}
+\endinput
diff --git a/fonts/variablelm/tex/omsvlmr.fd b/fonts/variablelm/tex/omsvlmr.fd
new file mode 100644
index 0000000000..626120ccda
--- /dev/null
+++ b/fonts/variablelm/tex/omsvlmr.fd
@@ -0,0 +1,35 @@
+%
+% This file is an extended version of the file 'omslmr.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{omsvlmr.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OMS}{vlmr}{\skewchar\font48 }
+\DeclareFontShape{OMS}{vlmr}{m}{n}%
+ {<->ssub*vlmsy/m/n}{}
+\DeclareFontShape{OMS}{vlmr}{m}{it}%
+ {<->ssub*vlmsy/m/n}{}
+\DeclareFontShape{OMS}{vlmr}{m}{sl}%
+ {<->ssub*vlmsy/m/n}{}
+\DeclareFontShape{OMS}{vlmr}{m}{sc}%
+ {<->ssub*vlmsy/m/n}{}
+\DeclareFontShape{OMS}{vlmr}{bx}{n}%
+ {<->ssub*vlmsy/b/n}{}
+\DeclareFontShape{OMS}{vlmr}{bx}{it}%
+ {<->ssub*vlmsy/b/n}{}
+\DeclareFontShape{OMS}{vlmr}{bx}{sl}%
+ {<->ssub*vlmsy/b/n}{}
+\DeclareFontShape{OMS}{vlmr}{bx}{sc}%
+ {<->ssub*vlmsy/b/n}{}
+\endinput
diff --git a/fonts/variablelm/tex/omsvlmsy.fd b/fonts/variablelm/tex/omsvlmsy.fd
new file mode 100644
index 0000000000..abc76ce17b
--- /dev/null
+++ b/fonts/variablelm/tex/omsvlmsy.fd
@@ -0,0 +1,32 @@
+%
+% This file is an extended version of the file 'omslmsy.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{omsvlmsy.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OMS}{vlmsy}{\skewchar\font48 }
+\DeclareFontShape{OMS}{vlmsy}{m}{n}{%
+ <-5.5> \alphabet@@scale lmsy5
+ <5.5-6.5> \alphabet@@scale lmsy6
+ <6.5-7.5> \alphabet@@scale lmsy7
+ <7.5-8.5> \alphabet@@scale lmsy8
+ <8.5-9.5> \alphabet@@scale lmsy9
+ <9.5-> \alphabet@@scale lmsy10
+ }{}
+\DeclareFontShape{OMS}{vlmsy}{b}{n}{%
+ <-6> \alphabet@@scale lmbsy5
+ <6-8> \alphabet@@scale lmbsy7
+ <8-> \alphabet@@scale lmbsy10
+ }{}
+\endinput
diff --git a/fonts/variablelm/tex/omxvlmex.fd b/fonts/variablelm/tex/omxvlmex.fd
new file mode 100644
index 0000000000..acc59fd204
--- /dev/null
+++ b/fonts/variablelm/tex/omxvlmex.fd
@@ -0,0 +1,22 @@
+%
+% This file is an extended version of the file 'omxlmex.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{omxvlmex.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OMX}{vlmex}{}
+\DeclareFontShape{OMX}{vlmex}{m}{n}{%
+ <-> \alphabet@@scale lmex10%
+ }{}
+\endinput
diff --git a/fonts/variablelm/tex/ot1vlmr.fd b/fonts/variablelm/tex/ot1vlmr.fd
new file mode 100644
index 0000000000..eee3b8e038
--- /dev/null
+++ b/fonts/variablelm/tex/ot1vlmr.fd
@@ -0,0 +1,73 @@
+%
+% This file is an extended version of the file ot1lmr.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{ot1vlmr.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{vlmr}{}
+\DeclareFontShape{OT1}{vlmr}{m}{n}%
+ {<-5.5> \alphabet@@scale rm-lmr5
+ <5.5-6.5> \alphabet@@scale rm-lmr6
+ <6.5-7.5> \alphabet@@scale rm-lmr7
+ <7.5-8.5> \alphabet@@scale rm-lmr8
+ <8.5-9.5> \alphabet@@scale rm-lmr9
+ <9.5-11> \alphabet@@scale rm-lmr10
+ <11-15> \alphabet@@scale rm-lmr12
+ <15-> \alphabet@@scale rm-lmr17
+ }{}
+\DeclareFontShape{OT1}{vlmr}{m}{sl}%
+ {<-8.5> \alphabet@@scale rm-lmro8
+ <8.5-9.5> \alphabet@@scale rm-lmro9
+ <9.5-11> \alphabet@@scale rm-lmro10
+ <11-15> \alphabet@@scale rm-lmro12
+ <15-> \alphabet@@scale rm-lmro17
+ }{}
+\DeclareFontShape{OT1}{vlmr}{m}{it}%
+ {<-7.5> \alphabet@@scale rm-lmri7
+ <7.5-8.5> \alphabet@@scale rm-lmri8
+ <8.5-9.5> \alphabet@@scale rm-lmri9
+ <9.5-11> \alphabet@@scale rm-lmri10
+ <11-> \alphabet@@scale rm-lmri12
+ }{}
+\DeclareFontShape{OT1}{vlmr}{m}{sc}%
+ {<-> \alphabet@@scale rm-lmcsc10}{}
+\DeclareFontShape{OT1}{vlmr}{m}{ui}%
+ {<-> \alphabet@@scale rm-lmu10}{}
+%
+% Is this the right 'shape'?:
+\DeclareFontShape{OT1}{vlmr}{m}{scsl}%
+ {<-> \alphabet@@scale rm-lmcsco10}{}
+%%%%%%% bold series
+\DeclareFontShape{OT1}{vlmr}{b}{n}
+ {<-> \alphabet@@scale rm-lmb10}{}
+\DeclareFontShape{OT1}{vlmr}{b}{sl}
+ {<-> \alphabet@@scale rm-lmbo10}{}
+%%%%%%% bold extended series
+\DeclareFontShape{OT1}{vlmr}{bx}{n}
+ {<-5.5> \alphabet@@scale rm-lmbx5
+ <5.5-6.5> \alphabet@@scale rm-lmbx6
+ <6.5-7.5> \alphabet@@scale rm-lmbx7
+ <7.5-8.5> \alphabet@@scale rm-lmbx8
+ <8.5-9.5> \alphabet@@scale rm-lmbx9
+ <9.5-11> \alphabet@@scale rm-lmbx10
+ <11-> \alphabet@@scale rm-lmbx12
+ }{}
+\DeclareFontShape{OT1}{vlmr}{bx}{it}
+ {<-> \alphabet@@scale rm-lmbxi10}{}
+\DeclareFontShape{OT1}{vlmr}{bx}{sl}
+ {<-> \alphabet@@scale rm-lmbxo10}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{OT1}{vlmr}{b}{it}
+ {<->sub*vlmr/b/sl}{}
+\endinput
diff --git a/fonts/variablelm/tex/ot1vlmtt.fd b/fonts/variablelm/tex/ot1vlmtt.fd
new file mode 100644
index 0000000000..0187717e87
--- /dev/null
+++ b/fonts/variablelm/tex/ot1vlmtt.fd
@@ -0,0 +1,93 @@
+%
+% This file is an extended version of the file ot1lmtt.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{ot1vlmtt.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\ttalphabet@@scale\@empty
+\else
+ \edef\ttalphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{OT1}{vlmtt}{\hyphenchar \font\m@ne}
+
+\ifx\vlmtt@use@light@as@normal\@empty
+% macro defined, so we use the light variant as medium (m), and
+% medium as semi-bold (sb):
+\DeclareFontShape{OT1}{vlmtt}{sb}{n}
+ {<-8.5> \ttalphabet@@scale rm-lmtt8
+ <8.5-9.5> \ttalphabet@@scale rm-lmtt9
+ <9.5-11> \ttalphabet@@scale rm-lmtt10
+ <11-> \ttalphabet@@scale rm-lmtt12
+ }{}
+\DeclareFontShape{OT1}{vlmtt}{sb}{it}
+ {<-> \ttalphabet@@scale rm-lmtti10}{}
+\DeclareFontShape{OT1}{vlmtt}{sb}{sl}
+ {<-> \ttalphabet@@scale rm-lmtto10}{}
+\DeclareFontShape{OT1}{vlmtt}{sb}{sc}
+ {<-> \ttalphabet@@scale rm-lmtcsc10}{}
+\DeclareFontShape{OT1}{vlmtt}{sb}{scsl}
+ {<-> \ttalphabet@@scale rm-lmtcso10}{}
+%%%%%%%% light (l), light condensed (lc), and dark (b) variants:
+\DeclareFontShape{OT1}{vlmtt}{m}{n}
+ {<-> \ttalphabet@@scale rm-lmtl10}{}
+\DeclareFontShape{OT1}{vlmtt}{m}{it}
+ {<->sub*vlmtt/l/sl}{}
+\DeclareFontShape{OT1}{vlmtt}{m}{sl}
+ {<-> \ttalphabet@@scale rm-lmtlo10}{}
+\DeclareFontShape{OT1}{vlmtt}{c}{n}
+ {<-> \ttalphabet@@scale rm-lmtlc10}{}
+\DeclareFontShape{OT1}{vlmtt}{c}{it}
+ {<->sub*vlmtt/lc/sl}{}
+\DeclareFontShape{OT1}{vlmtt}{c}{sl}
+ {<-> \ttalphabet@@scale rm-lmtlco10}{}
+\else
+% usual setup of variants:
+\DeclareFontShape{OT1}{vlmtt}{m}{n}
+ {<-8.5> \ttalphabet@@scale rm-lmtt8
+ <8.5-9.5> \ttalphabet@@scale rm-lmtt9
+ <9.5-11> \ttalphabet@@scale rm-lmtt10
+ <11-> \ttalphabet@@scale rm-lmtt12
+ }{}
+\DeclareFontShape{OT1}{vlmtt}{m}{it}
+ {<-> \ttalphabet@@scale rm-lmtti10}{}
+\DeclareFontShape{OT1}{vlmtt}{m}{sl}
+ {<-> \ttalphabet@@scale rm-lmtto10}{}
+\DeclareFontShape{OT1}{vlmtt}{m}{sc}
+ {<-> \ttalphabet@@scale rm-lmtcsc10}{}
+\DeclareFontShape{OT1}{vlmtt}{m}{scsl}
+ {<-> \ttalphabet@@scale rm-lmtcso10}{}
+%%%%%%%% light (l), light condensed (lc), and dark (b) variants:
+\DeclareFontShape{OT1}{vlmtt}{l}{n}
+ {<-> \ttalphabet@@scale rm-lmtl10}{}
+\DeclareFontShape{OT1}{vlmtt}{l}{it}
+ {<->sub*vlmtt/l/sl}{}
+\DeclareFontShape{OT1}{vlmtt}{l}{sl}
+ {<-> \ttalphabet@@scale rm-lmtlo10}{}
+\DeclareFontShape{OT1}{vlmtt}{lc}{n}
+ {<-> \ttalphabet@@scale rm-lmtlc10}{}
+\DeclareFontShape{OT1}{vlmtt}{lc}{it}
+ {<->sub*vlmtt/lc/sl}{}
+\DeclareFontShape{OT1}{vlmtt}{lc}{sl}
+ {<-> \ttalphabet@@scale rm-lmtlco10}{}
+\fi
+% bold is always bold (b):
+\DeclareFontShape{OT1}{vlmtt}{b}{n}
+ {<-> \ttalphabet@@scale rm-lmtk10}{}
+\DeclareFontShape{OT1}{vlmtt}{b}{it}
+ {<->sub*vlmtt/b/sl}{}
+\DeclareFontShape{OT1}{vlmtt}{b}{sl}
+ {<-> \ttalphabet@@scale rm-lmtko10}{}
+\DeclareFontShape{OT1}{vlmtt}{bx}{it}
+ {<->sub*vlmtt/b/sl}{}
+\DeclareFontShape{OT1}{vlmtt}{bx}{n}
+ {<->ssub*vlmtt/b/n}{}
+\DeclareFontShape{OT1}{vlmtt}{bx}{sl}
+ {<->ssub*vlmtt/b/sl}{}
+\endinput
diff --git a/fonts/variablelm/tex/t1vlmr.fd b/fonts/variablelm/tex/t1vlmr.fd
new file mode 100644
index 0000000000..e23139629f
--- /dev/null
+++ b/fonts/variablelm/tex/t1vlmr.fd
@@ -0,0 +1,73 @@
+%
+% This file is an extended version of the file t1lmr.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{t1vlmr.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{vlmr}{}
+\DeclareFontShape{T1}{vlmr}{m}{n}%
+ {<-5.5> \alphabet@@scale ec-lmr5
+ <5.5-6.5> \alphabet@@scale ec-lmr6
+ <6.5-7.5> \alphabet@@scale ec-lmr7
+ <7.5-8.5> \alphabet@@scale ec-lmr8
+ <8.5-9.5> \alphabet@@scale ec-lmr9
+ <9.5-11> \alphabet@@scale ec-lmr10
+ <11-15> \alphabet@@scale ec-lmr12
+ <15-> \alphabet@@scale ec-lmr17
+ }{}
+\DeclareFontShape{T1}{vlmr}{m}{sl}%
+ {<-8.5> \alphabet@@scale ec-lmro8
+ <8.5-9.5> \alphabet@@scale ec-lmro9
+ <9.5-11> \alphabet@@scale ec-lmro10
+ <11-15> \alphabet@@scale ec-lmro12
+ <15-> \alphabet@@scale ec-lmro17
+ }{}
+\DeclareFontShape{T1}{vlmr}{m}{it}%
+ {<-7.5> \alphabet@@scale ec-lmri7
+ <7.5-8.5> \alphabet@@scale ec-lmri8
+ <8.5-9.5> \alphabet@@scale ec-lmri9
+ <9.5-11> \alphabet@@scale ec-lmri10
+ <11-> \alphabet@@scale ec-lmri12
+ }{}
+\DeclareFontShape{T1}{vlmr}{m}{sc}%
+ {<-> \alphabet@@scale ec-lmcsc10}{}
+\DeclareFontShape{T1}{vlmr}{m}{ui}%
+ {<-> \alphabet@@scale ec-lmu10}{}
+%
+% Is this the right 'shape'?:
+\DeclareFontShape{T1}{vlmr}{m}{scsl}%
+ {<-> \alphabet@@scale ec-lmcsco10}{}
+%%%%%%% bold series
+\DeclareFontShape{T1}{vlmr}{b}{n}
+ {<-> \alphabet@@scale ec-lmb10}{}
+\DeclareFontShape{T1}{vlmr}{b}{sl}
+ {<-> \alphabet@@scale ec-lmbo10}{}
+%%%%%%% bold extended series
+\DeclareFontShape{T1}{vlmr}{bx}{n}
+ {<-5.5> \alphabet@@scale ec-lmbx5
+ <5.5-6.5> \alphabet@@scale ec-lmbx6
+ <6.5-7.5> \alphabet@@scale ec-lmbx7
+ <7.5-8.5> \alphabet@@scale ec-lmbx8
+ <8.5-9.5> \alphabet@@scale ec-lmbx9
+ <9.5-11> \alphabet@@scale ec-lmbx10
+ <11-> \alphabet@@scale ec-lmbx12
+ }{}
+\DeclareFontShape{T1}{vlmr}{bx}{it}
+ {<-> \alphabet@@scale ec-lmbxi10}{}
+\DeclareFontShape{T1}{vlmr}{bx}{sl}
+ {<-> \alphabet@@scale ec-lmbxo10}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{T1}{vlmr}{b}{it}
+ {<->sub*vlmr/b/sl}{}
+\endinput
diff --git a/fonts/variablelm/tex/t1vlmss.fd b/fonts/variablelm/tex/t1vlmss.fd
new file mode 100644
index 0000000000..1fd7f37cc9
--- /dev/null
+++ b/fonts/variablelm/tex/t1vlmss.fd
@@ -0,0 +1,58 @@
+%
+% This file is an extended version of the file t1lmss.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{t1vlmss.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale@sf\endcsname\relax
+ \let\alphabet@@scale@sf\@empty
+\else
+ \edef\alphabet@@scale@sf{s*[\csname alphabet@scale@sf\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{vlmss}{}
+\DeclareFontShape{T1}{vlmss}{m}{n}
+ {<-8.5> \alphabet@@scale@sf ec-lmss8
+ <8.5-9.5> \alphabet@@scale@sf ec-lmss9
+ <9.5-11> \alphabet@@scale@sf ec-lmss10
+ <11-15.5> \alphabet@@scale@sf ec-lmss12
+ <15.5-> \alphabet@@scale@sf ec-lmss17
+ }{}
+\DeclareFontShape{T1}{vlmss}{m}{it}
+ {<->ssub*vlmss/m/sl}{}
+\DeclareFontShape{T1}{vlmss}{m}{sl}
+ {<-8.5> \alphabet@@scale@sf ec-lmsso8
+ <8.5-9.5> \alphabet@@scale@sf ec-lmsso9
+ <9.5-11> \alphabet@@scale@sf ec-lmsso10
+ <11-15.5> \alphabet@@scale@sf ec-lmsso12
+ <15.5-> \alphabet@@scale@sf ec-lmsso17
+ }{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{T1}{vlmss}{m}{sc}
+ {<->sub*lmr/m/sc}{}
+\DeclareFontShape{T1}{vlmss}{b}{n}
+ {<->ssub * lmss/bx/n}{}
+\DeclareFontShape{T1}{vlmss}{b}{sl}
+ {<->ssub * lmss/bx/sl}{}
+\DeclareFontShape{T1}{vlmss}{b}{it}
+ {<->ssub * lmss/bx/it}{}
+%%%%%%%% semibold condensed series
+\DeclareFontShape{T1}{vlmss}{sbc}{n}
+ {<-> \alphabet@@scale@sf ec-lmssdc10}{}
+\DeclareFontShape{T1}{vlmss}{sbc}{sl}
+ {<-> \alphabet@@scale@sf ec-lmssdo10}{}
+\DeclareFontShape{T1}{vlmss}{sbc}{it}
+ {<->ssub*vlmss/sbc/sl}{}
+%%%%%%%%% bold extended series
+\DeclareFontShape{T1}{vlmss}{bx}{n}
+ {<-> \alphabet@@scale@sf ec-lmssbx10}{}
+\DeclareFontShape{T1}{vlmss}{bx}{sl}
+ {<-> \alphabet@@scale@sf ec-lmssbo10}{}
+\DeclareFontShape{T1}{vlmss}{bx}{it}
+ {<->ssub*vlmss/bx/sl}{}
+\endinput
diff --git a/fonts/variablelm/tex/t1vlmssq.fd b/fonts/variablelm/tex/t1vlmssq.fd
new file mode 100644
index 0000000000..1f18cc6269
--- /dev/null
+++ b/fonts/variablelm/tex/t1vlmssq.fd
@@ -0,0 +1,38 @@
+%
+% This file is an extended version of the file t1lmssq.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{t1vlmssq.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale@sf\endcsname\relax
+ \let\alphabet@@scale@sf\@empty
+\else
+ \edef\alphabet@@scale@sf{s*[\csname alphabet@scale@sf\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{vlmssq}{}
+\DeclareFontShape{T1}{vlmssq}{m}{n}
+ {<-> \alphabet@@scale@sf ec-lmssq8}{}
+\DeclareFontShape{T1}{vlmssq}{m}{sl}
+ {<-> \alphabet@@scale@sf ec-lmssqo8}{}
+\DeclareFontShape{T1}{vlmssq}{bx}{n}
+ {<-> \alphabet@@scale@sf ec-lmssqbx8}{}
+\DeclareFontShape{T1}{vlmssq}{bx}{sl}
+ {<-> \alphabet@@scale@sf ec-lmssqbo8}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{T1}{vlmssq}{m}{it}
+ {<->ssub*vlmssq/m/sl}{}
+\DeclareFontShape{T1}{vlmssq}{bx}{it}
+ {<->ssub*vlmssq/bx/sl}{}
+\DeclareFontShape{T1}{vlmssq}{b}{n}
+ {<->ssub*vlmssq/bx/n}{}
+\DeclareFontShape{T1}{vlmssq}{b}{sl}
+ {<->ssub*vlmssq/bx/sl}{}
+\DeclareFontShape{T1}{vlmssq}{b}{it}
+ {<->ssub*vlmssq/bx/it}{}
+\endinput
diff --git a/fonts/variablelm/tex/t1vlmtt.fd b/fonts/variablelm/tex/t1vlmtt.fd
new file mode 100644
index 0000000000..04162af415
--- /dev/null
+++ b/fonts/variablelm/tex/t1vlmtt.fd
@@ -0,0 +1,93 @@
+%
+% This file is an extended version of the file t1lmtt.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{ot1vlmtt.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale@tt\endcsname\relax
+ \let\alphabet@@scale@tt\@empty
+\else
+ \edef\alphabet@@scale@tt{s*[\csname alphabet@scale@tt\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{vlmtt}{\hyphenchar \font\m@ne}
+
+\ifx\vlmtt@use@light@as@normal\@empty
+% macro defined, so we use the light variant as medium (m), and
+% medium as semi-bold (sb):
+\DeclareFontShape{T1}{vlmtt}{sb}{n}
+ {<-8.5> \alphabet@@scale@tt ec-lmtt8
+ <8.5-9.5> \alphabet@@scale@tt ec-lmtt9
+ <9.5-11> \alphabet@@scale@tt ec-lmtt10
+ <11-> \alphabet@@scale@tt ec-lmtt12
+ }{}
+\DeclareFontShape{T1}{vlmtt}{sb}{it}
+ {<-> \alphabet@@scale@tt ec-lmtti10}{}
+\DeclareFontShape{T1}{vlmtt}{sb}{sl}
+ {<-> \alphabet@@scale@tt ec-lmtto10}{}
+\DeclareFontShape{T1}{vlmtt}{sb}{sc}
+ {<-> \alphabet@@scale@tt ec-lmtcsc10}{}
+\DeclareFontShape{T1}{vlmtt}{sb}{scsl}
+ {<-> \alphabet@@scale@tt ec-lmtcso10}{}
+%%%%%%%% light (l), light condensed (lc), and dark (b) variants:
+\DeclareFontShape{T1}{vlmtt}{m}{n}
+ {<-> \alphabet@@scale@tt ec-lmtl10}{}
+\DeclareFontShape{T1}{vlmtt}{m}{it}
+ {<-> \alphabet@@scale@tt sub*vlmtt/l/sl}{}
+\DeclareFontShape{T1}{vlmtt}{m}{sl}
+ {<-> \alphabet@@scale@tt ec-lmtlo10}{}
+\DeclareFontShape{T1}{vlmtt}{c}{n}
+ {<-> \alphabet@@scale@tt ec-lmtlc10}{}
+\DeclareFontShape{T1}{vlmtt}{c}{it}
+ {<-> \alphabet@@scale@tt sub*vlmtt/lc/sl}{}
+\DeclareFontShape{T1}{vlmtt}{c}{sl}
+ {<-> \alphabet@@scale@tt ec-lmtlco10}{}
+\else
+% usual setup of variants:
+\DeclareFontShape{T1}{vlmtt}{m}{n}
+ {<-8.5> \alphabet@@scale@tt ec-lmtt8
+ <8.5-9.5> \alphabet@@scale@tt ec-lmtt9
+ <9.5-11> \alphabet@@scale@tt ec-lmtt10
+ <11-> \alphabet@@scale@tt ec-lmtt12
+ }{}
+\DeclareFontShape{T1}{vlmtt}{m}{it}
+ {<-> \alphabet@@scale@tt ec-lmtti10}{}
+\DeclareFontShape{T1}{vlmtt}{m}{sl}
+ {<-> \alphabet@@scale@tt ec-lmtto10}{}
+\DeclareFontShape{T1}{vlmtt}{m}{sc}
+ {<-> \alphabet@@scale@tt ec-lmtcsc10}{}
+\DeclareFontShape{T1}{vlmtt}{m}{scsl}
+ {<-> \alphabet@@scale@tt ec-lmtcso10}{}
+%%%%%%%% light (l), light condensed (lc), and dark (b) variants:
+\DeclareFontShape{T1}{vlmtt}{l}{n}
+ {<-> \alphabet@@scale@tt ec-lmtl10}{}
+\DeclareFontShape{T1}{vlmtt}{l}{it}
+ {<-> \alphabet@@scale@tt sub*vlmtt/l/sl}{}
+\DeclareFontShape{T1}{vlmtt}{l}{sl}
+ {<-> \alphabet@@scale@tt ec-lmtlo10}{}
+\DeclareFontShape{T1}{vlmtt}{lc}{n}
+ {<-> \alphabet@@scale@tt ec-lmtlc10}{}
+\DeclareFontShape{T1}{vlmtt}{lc}{it}
+ {<-> \alphabet@@scale@tt sub*vlmtt/lc/sl}{}
+\DeclareFontShape{T1}{vlmtt}{lc}{sl}
+ {<-> \alphabet@@scale@tt ec-lmtlco10}{}
+\fi
+% bold is always bold (b):
+\DeclareFontShape{T1}{vlmtt}{b}{n}
+ {<-> \alphabet@@scale@tt ec-lmtk10}{}
+\DeclareFontShape{T1}{vlmtt}{b}{it}
+ {<-> \alphabet@@scale@tt sub*vlmtt/b/sl}{}
+\DeclareFontShape{T1}{vlmtt}{b}{sl}
+ {<-> \alphabet@@scale@tt ec-lmtko10}{}
+\DeclareFontShape{T1}{vlmtt}{bx}{it}
+ {<-> \alphabet@@scale@tt sub*vlmtt/b/sl}{}
+\DeclareFontShape{T1}{vlmtt}{bx}{n}
+ {<-> \alphabet@@scale@tt ssub*vlmtt/b/n}{}
+\DeclareFontShape{T1}{vlmtt}{bx}{sl}
+ {<-> \alphabet@@scale@tt ssub*vlmtt/b/sl}{}
+\endinput
diff --git a/fonts/variablelm/tex/t1vlmvtt.fd b/fonts/variablelm/tex/t1vlmvtt.fd
new file mode 100644
index 0000000000..9bb12f4272
--- /dev/null
+++ b/fonts/variablelm/tex/t1vlmvtt.fd
@@ -0,0 +1,66 @@
+%
+% This file is an extended version of the file t1lmvtt.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{t1vlmvtt.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale@tt\endcsname\relax
+ \let\alphabet@@scale@tt\@empty
+\else
+ \edef\alphabet@@scale@tt{s*[\csname alphabet@scale@tt\endcsname]}%
+\fi
+
+\DeclareFontFamily{T1}{vlmvtt}{}
+
+\ifx\vlmtt@use@light@as@normal\@empty
+% macro defined, so we use the light variant as medium (m), and
+% medium as semi-bold (sb):
+\DeclareFontShape{T1}{vlmvtt}{sb}{n}
+ {<-> \alphabet@@scale@tt ec-lmvtt10}{}
+\DeclareFontShape{T1}{vlmvtt}{sb}{sl}
+ {<-> \alphabet@@scale@tt ec-lmvtto10}{}
+\DeclareFontShape{T1}{vlmvtt}{sb}{it}
+ {<->sub*vlmvtt/m/sl}{}
+%%%%%%%% light (l) and dark (b) variants:
+\DeclareFontShape{T1}{vlmvtt}{m}{n}
+ {<-> \alphabet@@scale@tt ec-lmvtl10}{}
+\DeclareFontShape{T1}{vlmvtt}{m}{sl}
+ {<-> \alphabet@@scale@tt ec-lmvtlo10}{}
+\DeclareFontShape{T1}{vlmvtt}{m}{it}
+ {<->sub*vlmvtt/l/sl}{}
+
+\else
+% usual setup of variants:
+\DeclareFontShape{T1}{vlmvtt}{m}{n}
+ {<-> \alphabet@@scale@tt ec-lmvtt10}{}
+\DeclareFontShape{T1}{vlmvtt}{m}{sl}
+ {<-> \alphabet@@scale@tt ec-lmvtto10}{}
+\DeclareFontShape{T1}{vlmvtt}{m}{it}
+ {<->sub*vlmvtt/m/sl}{}
+%%%%%%%% light (l) and dark (b) variants:
+\DeclareFontShape{T1}{vlmvtt}{l}{n}
+ {<-> \alphabet@@scale@tt ec-lmvtl10}{}
+\DeclareFontShape{T1}{vlmvtt}{l}{sl}
+ {<-> \alphabet@@scale@tt ec-lmvtlo10}{}
+\DeclareFontShape{T1}{vlmvtt}{l}{it}
+ {<->sub*vlmvtt/l/sl}{}
+\fi
+% bold is always bold (b):
+\DeclareFontShape{T1}{vlmvtt}{b}{n}
+ {<-> \alphabet@@scale@tt ec-lmvtk10}{}
+\DeclareFontShape{T1}{vlmvtt}{b}{sl}
+ {<-> \alphabet@@scale@tt ec-lmvtko10}{}
+\DeclareFontShape{T1}{vlmvtt}{b}{it}
+ {<->sub*vlmvtt/b/sl}{}
+\DeclareFontShape{T1}{vlmvtt}{bx}{n}
+ {<->ssub*vlmvtt/b/n}{}
+\DeclareFontShape{T1}{vlmvtt}{bx}{sl}
+ {<->ssub*vlmvtt/b/sl}{}
+\DeclareFontShape{T1}{vlmvtt}{bx}{it}
+ {<->sub*vlmvtt/b/sl}{}
+\endinput
diff --git a/fonts/variablelm/tex/ts1vlmr.fd b/fonts/variablelm/tex/ts1vlmr.fd
new file mode 100644
index 0000000000..494f8ae1aa
--- /dev/null
+++ b/fonts/variablelm/tex/ts1vlmr.fd
@@ -0,0 +1,73 @@
+%
+% This file is an extended version of the file ts1lmr.fd' which
+% belongs to the Latin Modern package. The work is released
+% under the GUST Font License.
+% It provides a mechanism for scaling the typeface.
+%
+% The original font description files are included in modern TeX
+% distributions or are available via http://ctan.org/pkg/lm
+%
+\ProvidesFile{ts1vlmr.fd}[2017/02/10 v1.0 font defs for variable Latin Modern]
+
+\expandafter\ifx\csname alphabet@scale\endcsname\relax
+ \let\alphabet@@scale\@empty
+\else
+ \edef\alphabet@@scale{s*[\csname alphabet@scale\endcsname]}%
+\fi
+
+\DeclareFontFamily{TS1}{vlmr}{}
+\DeclareFontShape{TS1}{vlmr}{m}{n}%
+ {<-5.5> \alphabet@@scale ts1-lmr5
+ <5.5-6.5> \alphabet@@scale ts1-lmr6
+ <6.5-7.5> \alphabet@@scale ts1-lmr7
+ <7.5-8.5> \alphabet@@scale ts1-lmr8
+ <8.5-9.5> \alphabet@@scale ts1-lmr9
+ <9.5-11> \alphabet@@scale ts1-lmr10
+ <11-15> \alphabet@@scale ts1-lmr12
+ <15-> \alphabet@@scale ts1-lmr17
+ }{}
+\DeclareFontShape{TS1}{vlmr}{m}{sl}%
+ {<-8.5> \alphabet@@scale ts1-lmro8
+ <8.5-9.5> \alphabet@@scale ts1-lmro9
+ <9.5-11> \alphabet@@scale ts1-lmro10
+ <11-15> \alphabet@@scale ts1-lmro12
+ <15-> \alphabet@@scale ts1-lmro17
+ }{}
+\DeclareFontShape{TS1}{vlmr}{m}{it}%
+ {<-7.5> \alphabet@@scale ts1-lmri7
+ <7.5-8.5> \alphabet@@scale ts1-lmri8
+ <8.5-9.5> \alphabet@@scale ts1-lmri9
+ <9.5-11> \alphabet@@scale ts1-lmri10
+ <11-> \alphabet@@scale ts1-lmri12
+ }{}
+\DeclareFontShape{TS1}{vlmr}{m}{sc}%
+ {<-> \alphabet@@scale ts1-lmcsc10}{}
+\DeclareFontShape{TS1}{vlmr}{m}{ui}%
+ {<-> \alphabet@@scale ts1-lmu10}{}
+%
+% Is this the right 'shape'?:
+\DeclareFontShape{TS1}{vlmr}{m}{scsl}%
+ {<-> \alphabet@@scale ts1-lmcsco10}{}
+%%%%%%% bold series
+\DeclareFontShape{TS1}{vlmr}{b}{n}
+ {<-> \alphabet@@scale ts1-lmb10}{}
+\DeclareFontShape{TS1}{vlmr}{b}{sl}
+ {<-> \alphabet@@scale ts1-lmbo10}{}
+%%%%%%% bold extended series
+\DeclareFontShape{TS1}{vlmr}{bx}{n}
+ {<-5.5> \alphabet@@scale ts1-lmbx5
+ <5.5-6.5> \alphabet@@scale ts1-lmbx6
+ <6.5-7.5> \alphabet@@scale ts1-lmbx7
+ <7.5-8.5> \alphabet@@scale ts1-lmbx8
+ <8.5-9.5> \alphabet@@scale ts1-lmbx9
+ <9.5-11> \alphabet@@scale ts1-lmbx10
+ <11-> \alphabet@@scale ts1-lmbx12
+ }{}
+\DeclareFontShape{TS1}{vlmr}{bx}{it}
+ {<-> \alphabet@@scale ts1-lmbxi10}{}
+\DeclareFontShape{TS1}{vlmr}{bx}{sl}
+ {<-> \alphabet@@scale ts1-lmbxo10}{}
+%%%%%%% Font/shape undefined, therefore substituted
+\DeclareFontShape{TS1}{vlmr}{b}{it}
+ {<->sub*vlmr/b/sl}{}
+\endinput
diff --git a/fonts/variablelm/tex/variablelm.sty b/fonts/variablelm/tex/variablelm.sty
new file mode 100644
index 0000000000..b792666959
--- /dev/null
+++ b/fonts/variablelm/tex/variablelm.sty
@@ -0,0 +1,48 @@
+\ProvidesPackage{variablelm}[2018/02/13 v1.1.2 to control the scaling for Latin Modern Fonts by Yuwsuke KIEDA]
+
+\RequirePackage{xkeyval}
+\@ifpackageloaded{lmodern}{}{\@latexerr{You must be load "lmodern" package}\@ehb}
+\@ifpackageloaded{amsmath}{}{%
+ \@latex@warning@no@line{\noexpand\usepackage{amsmath} is effective for correct functioning of \noexpand\big, \noexpand\Big, \noexpand\bigg, etc}}
+
+\DeclareOptionX{scale}[1.0]{\def\alphabet@scale{#1}}
+\DeclareOptionX{ttscale}[1.0]{\def\alphabet@scale@tt{#1}}
+\DeclareOptionX{sfscale}[1.0]{\def\alphabet@scale@sf{#1}}
+\DeclareOptionX{encoding}[T1]{\def\alphabet@scale@encoding{#1}}
+
+\@ifundefined{alphabet@scale}{\def\alphabet@scale{1.0}}{}
+\@ifundefined{alphabet@scale@tt}{\def\alphabet@scale@tt{\alphabet@scale}}{}
+\@ifundefined{alphabet@scale@sf}{\def\alphabet@scale@sf{\alphabet@scale}}{}
+\@ifundefined{alphabet@scale@encoding}{\def\alphabet@scale@encoding{T1}}{}
+
+\renewcommand{\rmdefault}{vlmr}
+\renewcommand{\sfdefault}{vlmss}
+\renewcommand{\ttdefault}{vlmtt}
+
+\DeclareOptionX{variablett}{\renewcommand{\ttdefault}{vlmvtt}}
+\DeclareOptionX{lighttt}{\let\vlmtt@use@light@as@normal\@empty}
+
+%\ProcessOptions\relax
+
+\ProcessOptionsX
+
+\@ifpackageloaded{fontenc}{}{\RequirePackage[\alphabet@scale@encoding]{fontenc}}
+
+\SetSymbolFont{operators}{normal}{OT1}{vlmr}{m}{n}
+\SetSymbolFont{letters}{normal}{OML}{vlmm}{m}{it}
+\SetSymbolFont{symbols}{normal}{OMS}{vlmsy}{m}{n}
+\SetSymbolFont{largesymbols}{normal}{OMX}{vlmex}{m}{n}
+\SetSymbolFont{operators}{bold}{OT1}{vlmr}{bx}{n}
+\SetSymbolFont{letters}{bold}{OML}{vlmm}{b}{it}
+\SetSymbolFont{symbols}{bold}{OMS}{vlmsy}{b}{n}
+\SetSymbolFont{largesymbols}{bold}{OMX}{vlmex}{m}{n}
+
+\SetMathAlphabet{\mathbf}{normal}{\alphabet@scale@encoding}{vlmr}{bx}{n}
+\SetMathAlphabet{\mathsf}{normal}{\alphabet@scale@encoding}{vlmss}{m}{n}
+\SetMathAlphabet{\mathit}{normal}{\alphabet@scale@encoding}{vlmr}{m}{it}
+\SetMathAlphabet{\mathtt}{normal}{\alphabet@scale@encoding}{vlmtt}{m}{n}
+\SetMathAlphabet{\mathbf}{bold}{\alphabet@scale@encoding}{vlmr}{bx}{n}
+\SetMathAlphabet{\mathsf}{bold}{\alphabet@scale@encoding}{vlmss}{bx}{n}
+\SetMathAlphabet{\mathit}{bold}{\alphabet@scale@encoding}{vlmr}{bx}{it}
+\SetMathAlphabet{\mathtt}{bold}{\alphabet@scale@encoding}{vlmtt}{m}{n}
+\endinput