I'm not sure this will help much. I will delete it if not. Most of it is copied and pasted from MinionPro.sty
.
It is necessary to adapt the code from MinionPro.sty
, especially to get the integrals working while bringing other symbols over from kpfonts
. To do this, I've declared a new symbol font, intsymbols
, and defined the integrals in terms of that font. This should mean that the initial declaration by kpfonts
of symbols
is operative for all other symbols.
I've removed the commands declaring operators
because that's just overriding the declaration from kpfonts
but you want most of them, at least, from there. To get the accents from MinionPro, I think it is better to treat them as an exception as with the integrals. So I've set up another symbol font, accents
, for this.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{textcomp,parskip}
\usepackage[%
% x opticals,%
smallfamily,%
textosf,%
footnotefigures,%
swash,%
openg,%
fourierbb,%
minionint,%
italicgreek,%
mathlf,%
mathtabular,%
onlytext,%
]{MinionPro}
\usepackage[notext]{kpfonts}
\makeatletter
\DeclareMathVersion{tabular}
\DeclareMathVersion{boldtabular}
\DeclareSymbolFont{letters} {OML}{MinionPro-TOsF} {m} {\Mn@Math@LetterShape}
\SetSymbolFont{letters} {bold}{OML}{MinionPro-TOsF} {eb}{\Mn@Math@LetterShape}
\SetSymbolFont{letters} {tabular} {OML}{MinionPro-TOsF} {m}{\Mn@Math@LetterShape}
\SetSymbolFont{letters} {boldtabular}{OML}{MinionPro-TOsF} {eb}{\Mn@Math@LetterShape}
\DeclareSymbolFont{minoperators} {T1} {\Mn@Math@Family}{m} {n}
\SetSymbolFont{minoperators}{bold}{T1} {\Mn@Math@Family}{eb}{n}
\SetSymbolFont{minoperators}{tabular} {T1} {\Mn@Math@TFamily}{m}{n}
\SetSymbolFont{minoperators}{boldtabular}{T1} {\Mn@Math@TFamily}{eb}{n}
\DeclareMathAlphabet\mathbf {T1} {\Mn@Math@Family}{eb}{n}
\SetMathAlphabet\mathbf {tabular} {T1} {\Mn@Math@TFamily}{eb}{n}
\DeclareMathAlphabet\mathit {T1} {\Mn@Math@Family}{m} {it}
\SetMathAlphabet\mathit {bold}{T1} {\Mn@Math@Family}{eb}{it}
\SetMathAlphabet\mathit {tabular} {T1} {\Mn@Math@TFamily}{m}{it}
\SetMathAlphabet\mathit {boldtabular}{T1} {\Mn@Math@TFamily}{eb}{it}
\DeclareMathAlphabet\mathrm {T1} {\Mn@Math@Family}{m}{n}
\SetMathAlphabet\mathrm {bold}{T1} {\Mn@Math@Family}{eb}{n}
\SetMathAlphabet\mathrm {tabular}{T1} {\Mn@Math@TFamily}{m}{n}
\SetMathAlphabet\mathrm {bold}{T1} {\Mn@Math@TFamily}{eb}{n}
% for figures
\DeclareMathSymbol{0}{\mathalpha}{minoperators}{`0}
\DeclareMathSymbol{1}{\mathalpha}{minoperators}{`1}
\DeclareMathSymbol{2}{\mathalpha}{minoperators}{`2}
\DeclareMathSymbol{3}{\mathalpha}{minoperators}{`3}
\DeclareMathSymbol{4}{\mathalpha}{minoperators}{`4}
\DeclareMathSymbol{5}{\mathalpha}{minoperators}{`5}
\DeclareMathSymbol{6}{\mathalpha}{minoperators}{`6}
\DeclareMathSymbol{7}{\mathalpha}{minoperators}{`7}
\DeclareMathSymbol{8}{\mathalpha}{minoperators}{`8}
\DeclareMathSymbol{9}{\mathalpha}{minoperators}{`9}
% for accents
\DeclareMathAccent{\grave} {\mathalpha}{minoperators}{0}
\DeclareMathAccent{\acute} {\mathalpha}{minoperators}{1}
\DeclareMathAccent{\hat} {\mathalpha}{minoperators}{2}
\DeclareMathAccent{\tilde} {\mathalpha}{minoperators}{3}
\DeclareMathAccent{\ddot} {\mathalpha}{minoperators}{4}
\DeclareMathAccent{\mathring}{\mathalpha}{minoperators}{6}
\DeclareMathAccent{\check} {\mathalpha}{minoperators}{7}
\DeclareMathAccent{\breve} {\mathalpha}{minoperators}{8}
\DeclareMathAccent{\bar} {\mathalpha}{minoperators}{9}
\DeclareMathAccent{\dot} {\mathalpha}{minoperators}{10}
% % for blackboard - I prefer this commented out but I suppose it is a matter of taste
% \Mn@load@bb
% for greek
\newcommand\Mn@greek@list@upper{}
\newcommand\Mn@greek@list@lower{}
\let\Mn@greek@list@upper\@gobble
\let\Mn@greek@list@lower\@gobble
\newcommand\Mn@greek@list{}
\newcommand*\Mn@greek@letter[3]{%
\expandafter\DeclareMathSymbol
\expandafter{\csname it#1\endcsname}{\mathord}{letters}{#2}%
\expandafter\DeclareMathSymbol
\expandafter{\csname up#1\endcsname}{\mathord}{letters}{#3}%
\edef\@tempa{`\@car#1\@nil}%
\edef\Mn@greek@list{\expandafter\noexpand\csname
Mn@greek@list@\ifnum\uccode\@tempa=\@tempa upper\else lower\fi\endcsname}%
\expandafter\edef\Mn@greek@list{\Mn@greek@list,#1}%
}
\Mn@greek@letter{Gamma} {'000}{'200}
\Mn@greek@letter{Delta} {'001}{'201}
\Mn@greek@letter{Theta} {'002}{'202}
\Mn@greek@letter{Lambda} {'003}{'203}
\Mn@greek@letter{Xi} {'004}{'204}
\Mn@greek@letter{Pi} {'005}{'205}
\Mn@greek@letter{Sigma} {'006}{'206}
\Mn@greek@letter{Upsilon} {'007}{'207}
\Mn@greek@letter{Phi} {'010}{'210}
\Mn@greek@letter{Psi} {'011}{'211}
\Mn@greek@letter{Omega} {'012}{'212}
\Mn@greek@letter{alpha} {'013}{'213}
\Mn@greek@letter{beta} {'014}{'214}
\Mn@greek@letter{gamma} {'015}{'215}
\Mn@greek@letter{delta} {'016}{'216}
\Mn@greek@letter{epsilon} {'017}{'217}
\Mn@greek@letter{zeta} {'020}{'220}
\Mn@greek@letter{eta} {'021}{'221}
\Mn@greek@letter{theta} {'022}{'222}
\Mn@greek@letter{iota} {'023}{'223}
\Mn@greek@letter{kappa} {'024}{'224}
\Mn@greek@letter{lambda} {'025}{'225}
\Mn@greek@letter{mu} {'026}{'226}
\Mn@greek@letter{nu} {'027}{'227}
\Mn@greek@letter{xi} {'030}{'230}
\Mn@greek@letter{pi} {'031}{'231}
\Mn@greek@letter{rho} {'032}{'232}
\Mn@greek@letter{sigma} {'033}{'233}
\Mn@greek@letter{tau} {'034}{'234}
\Mn@greek@letter{upsilon} {'035}{'235}
\Mn@greek@letter{phi} {'036}{'236}
\Mn@greek@letter{chi} {'037}{'237}
\Mn@greek@letter{psi} {'040}{'240}
\Mn@greek@letter{omega} {'041}{'241}
\Mn@greek@letter{varepsilon} {'042}{'242}
\Mn@greek@letter{vartheta} {'043}{'243}
\Mn@greek@letter{varpi} {'044}{'244}
\Mn@greek@letter{varrho} {'045}{'245}
\Mn@greek@letter{varsigma} {'046}{'246}
\Mn@greek@letter{varphi} {'047}{'247}
\Mn@greek@letter{varbeta} {'260}{'250}
\Mn@greek@letter{varkappa} {'261}{'251}
\Mn@greek@letter{backepsilon} {'262}{'252}
\Mn@greek@letter{varbackepsilon}{'263}{'253}
\Mn@greek@letter{digamma} {'264}{'254}
\Mn@greek@letter{eth} {'266}{'256}
\newcommand*\Mn@greek@select[2]{%
\expandafter\let\expandafter\Mn@greek@list\csname Mn@greek@list@#2\endcsname
\@for\@tempa:=\Mn@greek@list\do{%
\expandafter\let\csname\@tempa\expandafter\endcsname
\csname#1\@tempa\endcsname
}%
}
\newcommand*\Mn@greek@Upright{%
\Mn@greek@select{up}{upper}%
\Mn@greek@select{up}{lower}%
}
\newcommand*\Mn@greek@Italic{%
\Mn@greek@select{it}{upper}%
\Mn@greek@select{it}{lower}%
}
\newcommand*\Mn@greek@Mixed{%
\Mn@greek@select{up}{upper}%
\Mn@greek@select{it}{lower}%
}
\Mn@load@greek
% for symbols
\let\hbar\undefined
\DeclareMathSymbol{\hbar} {\mathord}{letters}{'265}
\DeclareMathSymbol{\uphbar} {\mathord}{letters}{'255}
\DeclareMathSymbol{\partial} {\mathord}{letters}{'100}
\DeclareMathSymbol{\uppartial} {\mathord}{letters}{'300}
\DeclareMathSymbol{\ell} {\mathord}{letters}{'140}
\DeclareMathSymbol{\upell} {\mathord}{letters}{'340}
\DeclareMathSymbol{\slashedzero} {\mathord}{letters}{'257}
\DeclareMathSymbol{\upimath} {\mathord}{letters}{'373}
\DeclareMathSymbol{\upjmath} {\mathord}{letters}{'374}
\DeclareMathSymbol{\varsmallint} {\mathord}{letters}{'376}
\DeclareMathSymbol{\openg} {\mathalpha}{letters}{'267}
\DeclareRobustCommand\lambdabar {\middlebar\lambda}
\DeclareRobustCommand\lambdaslash {\middleslash\lambda}
% integrals
\newcommand\Mn@Decl@Minion@Ints{%
\DeclareFontFamily{U}{MnSymbolFI}{}
\DeclareFontShape{U}{MnSymbolFI}{m}{it}{
<-6> MnSymbolFI\Mn@minionint@opticals5
<6-7> MnSymbolFI\Mn@minionint@opticals6
<7-8> MnSymbolFI\Mn@minionint@opticals7
<8-9> MnSymbolFI\Mn@minionint@opticals8
<9-10> MnSymbolFI\Mn@minionint@opticals9
<10-12> MnSymbolFI\Mn@minionint@opticals10
<12-> MnSymbolFI\Mn@minionint@opticals12
}{}
\DeclareFontShape{U}{MnSymbolFI}{b}{it}{
<-6> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals5
<6-7> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals6
<7-8> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals7
<8-9> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals8
<9-10> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals9
<10-12> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals10
<12-> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals12
}{}
\DeclareSymbolFont{intsymbols} {U}{MnSymbolFI}{m}{it}
\SetSymbolFont{intsymbols}{bold}{U}{MnSymbolFI}{b}{it}
\let\varint\tint
\let\variint\tiint
\let\variiint\tiiint
\let\variiiint\tiiiint
\let\varidotsint\tidotsint
\let\varlandupint\tlandupint
\let\varlanddownint\tlanddownint
\let\varstrokedint\tstrokedint
\let\varoint\toint
\let\varoiint\toiint
\let\varrcirclerightint\trcirclerightint
\let\varlcirclerightint\tlcirclerightint
\let\varrcircleleftint\trcircleleftint
\let\varlcircleleftint\tlcircleleftint
\let\varsumint\tsumint
\DeclareMathSymbol\tint \mathop{intsymbols}{112}
\DeclareMathSymbol\tiint \mathop{intsymbols}{114}
\DeclareMathSymbol\tiiint \mathop{intsymbols}{116}
\DeclareMathSymbol\tiiiint \mathop{intsymbols}{118}
\DeclareMathSymbol\tidotsint \mathop{intsymbols}{120}
\DeclareMathSymbol\tlandupint \mathop{intsymbols}{122}
\DeclareMathSymbol\tlanddownint \mathop{intsymbols}{124}
\DeclareMathSymbol\tstrokedint \mathop{intsymbols}{126}
\DeclareMathSymbol\toint \mathop{intsymbols}{128}
\DeclareMathSymbol\toiint \mathop{intsymbols}{130}
\DeclareMathSymbol\trcirclerightint\mathop{intsymbols}{132}
\DeclareMathSymbol\tlcirclerightint\mathop{intsymbols}{134}
\DeclareMathSymbol\trcircleleftint \mathop{intsymbols}{136}
\DeclareMathSymbol\tlcircleleftint \mathop{intsymbols}{138}
\DeclareMathSymbol\tsumint \mathop{intsymbols}{140}
\let\intop\tint
\let\ointop\toint
}
\Mn@load@integrals
% % openg
% \Mn@Define@Open@g
% for cal
\Mn@load@cal
\makeatother
\begin{document}
{\fontfamily{jkp}\selectfont
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
\marginpar{\fontfamily{jkp}\selectfont kpfonts}\\
0123456789
\textit{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz\marginpar{\fontfamily{jkp}\itshape\selectfont kpfonts}}}
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
\marginpar{minion}\\
0123456789\marginpar{\small osf: prop, tab}
{\tbfigures 0123456789}\\
{\lnfigures 0123456789\marginpar{\small ln: prop, tab}
\tbfigures 0123456789}
\textit{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz\marginpar{\itshape minion}}
\[
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
\]
\[
0123456789
\]
\[
\int_a^b f(x') \, \mathrm{d}x = 3 + 2 = 5 \subset \mathbb{N}
\]
\[
\alpha \beta \varbeta \Gamma \varGamma \gamma \Delta \varDelta \delta \varepsilon \zeta \eta \Theta \varTheta \theta \vartheta \iota \kappa \Lambda \varLambda \lambda \mu \nu \Xi \varXi \xi \Pi \varPi \pi \varpi \rho \varrho \Sigma \varSigma \sigma \varsigma \tau \Upsilon \varUpsilon \upsilon \Phi \varPhi \phi \varphi \chi \Psi \varPsi \psi \Omega \varOmega \omega
\]
\[
\mathcal{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz}
\]
\[
\mathbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\]
\[
\times \div + - \Re \aleph \wp \eth \imath \Bbbk \partial \nabla \mho
\]
\[
\acute{a}\grave{a}\check{a}\check{a}\hat{a}\tilde{a}\bar{a}\breve{a}\dot{a}\ddot{a}\mathring{a}
\]
\[
\rightarrow\leftarrow\leftrightarrow\mapsto\longleftarrow\longleftrightarrow\longrightarrow\longmapsto\downarrow\updownarrow\uparrow\nwarrow\searrow\nearrow\swarrow\Leftarrow\nleftarrow\nleftrightarrow\nrightarrow\Leftrightarrow\Rightarrow\Longleftarrow\Longleftrightarrow\Longrightarrow\Updownarrow\Uparrow\Downarrow\nLeftarrow\nLeftrightarrow\nRightarrow
\]
\end{document}
will produce:
I'm not sure but I think this should take the following from kpfonts
:
- All relation symbols except for any explicitly defined from MinionPro.
- All the operators except for any explicitly defined from MinionPro, including the integrals.
- All the arrows except for any explicitly defined from MinionPro.
- All the delimiters except for any explicitly defined from MinionPro.
- Blackboard.
The following should, I hope, come from MinionPro:
- All the symbols from the original font (like
\partial
).
- All the Greek letters and
\mathrm
, \mathit
, \mathnormal
, and the numbers.
- Integrals.
It also takes the following from MinionPro:
These are both marked up in the code so you can comment them out to get them from kpfonts
if you prefer. Personally, I prefer the results with the blackboard bit commented but your kilometres may vary.
I currently have no idea how to pick and choose delimiters or how to pull the prime symbol only out. (I guess this is meant to come from MnSymbol but I don't know how to make that work.)
I also have no idea what you can do about the sizes in the absence of a scaling option. Usually, this is built into the font definition files. I think you might be able to adjust MinionPro since you have the opticals. I cannot play with this as I don't but perhaps using the normalsize/nonormalsize
option or similar might be useful.
As PDF export from Inkscape works well, as you say, you should configure Lyx to use Inkscape as a file converter. For doing so go to Tools > Preferences > File Handling > Converters
. Find the Converter SVG -> PDF (graphics)
. In the field Converter
I use the following command on a Linux system
inkscape --file=$$i --export-area-page --without-gui --export-pdf=$$o
Should be the same under OS X, I guess.
Best Answer
Here are some rough step-by-step instructions to generate a font using FontForge and make it available to TeX.
File->Generate Fonts
to generate a (binary) PostScript Type1 font. Only 256 characters are accessible in one PS Type 1 font, so if you have 700 symbols, you actually want to make 3 different fonts (or you can make one font and then let pdftex/dvips re-encode them, but this a bit more complicated.) Alternatively, generate an OpenType font, which you can use directly with LuaTeX or XeTeX.afm2tfm
to generate these from the.afm
files that FontForge generates.Generate a map file
mysymbols.map
that lists your fonts in the following formatThe syntax of map files is described in Chapter 6 of the dvips manual.
.tfm
,.pfb
and.map
) files into a texmf tree:.tfm
files go into a subfolder offonts/tfm/
,.pfb
files into a subfolder offonts/type1
and the.map
file goes into a subfolder offonts/map/dvips
.mktexlsr
.Activate the map file. In TeXLive, you can do this by running
as a super user (Use
updmap
if you don't have admin rights.)Now you should be able to use the fonts in TeX. For instance
should print the first glyph in mysymbols1.
To use the font with the LaTeX font selection macros, you need to declare it using
\DeclareFontFamily
and\DeclareFontShape
in a package or font definition file. For instance, to declare the first family, you could use the following code:After that, you can access the font in LaTeX like this:
See the LaTeX 2e font selection guide for more information.