11

EDIT: The extension to this question, Replicating an Exquisite Font, is a means to the same end with the construction of such a font being the primary goal.

I've recently been wondering: "where on Earth can I find that old-timey LaTeX font with the really nice integrals?" I've seen a paper or two on differential equations using it and plenty of old math text use it. For reference, here is an example image from A Source Book in Mathematics by Smith, David Eugene (1860-1944).

A simply exquisite font.

Another example, higher res.

also from another book, The Evanston colloquium: lectures on mathematics delivered from Aug. 28 to Sept. 9, 1893 before members of the Congress of Mathematics held in connection with the World's Fair in Chicago at Northwestern University, Evanston, Ill.

enter image description here

which is a more compressed albeit exactly similar font.

If someone would tell me the name of this font, I would be greatly indebted to them; either this, or reference a modern version. Essentially, whatever LaTeX platform is consistent with this font is the platform I will use.

IMPORTANT EDIT

I am also happy to see any customized stylizations and creative solutions to mimic the font style(s) in the images.

  • 1
    I believe this integral symbol belongs to wasysym package... – MadyYuvi Apr 02 '21 at 15:19
  • 4
    Since the book you referenced seems to be older than TeX, let alone LaTeX, it probably doesn't use any LaTeX font. If you have more recent papers using the font they might be a better reference. – Marcel Krüger Apr 02 '21 at 16:22
  • @MarcelKrüger I have seen a paper using this font on fractional differential equations. It's a fairly modern paper. However, I just can't seem to find it. – Alexander Conrad Apr 02 '21 at 16:58
  • 1
    You might compare the Pazo fonts by Young Ryu (through their derivatives Asana Math and newpxmath), although this book predates them. Or indeed, computers. – Davislor Apr 02 '21 at 17:43
  • 3
    @AlexanderConrad Nice question. Maybe you can find something here (https://tex.stackexchange.com/questions/59702/suggest-a-nice-font-family-for-my-basic-latex-template-text-and-math/59706) – Excelsior Apr 02 '21 at 20:26

4 Answers4

11

That book was published by Dover Books which was a legendary English metal foundry and publishing house (today only a shadow of itself, so can be said of the US business side).

Sooo... Your chances of finding a digital version of such font are slim to none. The font used is a transitional typeface, with a heavy body to compensate for paper and ink quality. I guess the closest thing you could get available in the TeX Archive would be some of the free baskervilles and their matching math fonts, but they will be spindlier.

palopezv
  • 381
8

I propose two solutions after about two hours I have arrived at this conclusion: one more complicated and one very fast. For my memories the \pi greek character is similar to Mathematical Pi 1 which is not a free font. After there many problems....to build a book that has such symbols it would take a century! :-) You would need to define each character individually and as pointed out by @egreg there are symbolic aesthetic issues. The book is old and those fonts don't exactly exist but there are modern ones that are similar or nearly so.

Personally this output I not like very much but it is a possibility: I have tried after two hours differents combination and I have build this MWE:

enter image description here

I have used partially an old question of @egreg redefining the symbol sum and product. Changing sum and product symbols There is the presence of \usepackage[lite]{mtpro2} that you can download here.

\documentclass[12pt]{article}
\usepackage[lite]{mtpro2}
\usepackage{mathspec} 
\defaultfontfeatures{Mapping=tex-text}
\setmainfont{Old Standard}
\setmathsfont(Latin)[Uppercase=Italic,Lowercase=Italic,Scale=0.95]{Old Standard}
\setmathsfont(Greek)[Uppercase=Regular,Lowercase=Regular,Scale=0.85]{Baskervaldx}
\DeclareSymbolFont{mathptmxlargesymbols}{OMX}{ztmcm}{m}{n}
\DeclareMathSymbol{\upsumop}{\mathop}{mathptmxlargesymbols}{"50}
\DeclareMathSymbol{\upprodop}{\mathop}{mathptmxlargesymbols}{"51}

\begin{document} Old text from an ancient book it is [s=\frac{\sin n\pi}{\pi}\int_{0}^{x}\frac{\phi(a)da}{(x-a)^{1-n}}] [ \upsumop_{i=1}^n f_i(x)\upprodop_{j=1}^n g_j(x), \sqrt{z^2+b^2}] \end{document}

If you found the best character you can substitute the mathspec fonts into the dots.

\setmainfont{.....}
\setmathsfont(Latin)[Uppercase=Italic,Lowercase=Italic,Scale=0.95]{.....}
\setmathsfont(Greek)[Uppercase=Regular,Lowercase=Regular,Scale=0.85]{.....}

The 2nd MWE is this:

\documentclass[12pt]{article}
\usepackage{mathspec}
\defaultfontfeatures{Mapping=tex-text}
\setallmainfonts{Old Standard}
\DeclareSymbolFont{mathptmxlargesymbols}{OMX}{ztmcm}{m}{n}
\DeclareMathSymbol{\upsumop}{\mathop}{mathptmxlargesymbols}{"50}
\DeclareMathSymbol{\upprodop}{\mathop}{mathptmxlargesymbols}{"51}

\begin{document} Old text from an ancient book it is [s=\frac{\sin n\pi}{\pi}\int_{0}^{x}\frac{\phi(a)da}{(x-a)^{1-n}}] [ \upsumop_{i=1}^n f_i(x)\upprodop_{j=1}^n g_j(x), \sqrt{z^2+b^2}] \end{document}

that is more simple but you have not the same characters of the book.

enter image description here

I aesthetically prefer the last solution. Both the MWEs are compilable with the engine XeLaTeX.

Addendum: On the suggest of the user @palopezv I add a MWE with Times where it is possible to compile with the pdfLaTeX or XeLaTeX.

\documentclass[12pt]{article}
\usepackage{newtxtext}
\usepackage[lite]{mtpro2}
\usepackage{nicefrac}
\usepackage{parskip}
\DeclareSymbolFont{mathptmxlargesymbols}{OMX}{ztmcm}{m}{n}
\DeclareMathSymbol{\upsumop}{\mathop}{mathptmxlargesymbols}{"50}
\DeclareMathSymbol{\upprodop}{\mathop}{mathptmxlargesymbols}{"51}

\begin{document} An introduction for an ancient textbook using the font Times from newtxtext: [s=\frac{\sin n\pi}{\pi}\int_{0}^{x}\frac{\phi(a)da}{(x-a)^{1-n}}] [ \upsumop_{i=1}^n f_i(x)\upprodop_{j=1}^n g_j(x), \sqrt{z^2+b^2}] After we can have using the nicefrac command: [s=\frac{\upsumop_{i=1}^n a_i}{\upprodop_{j=1}^n b_j}\left[\frac{\Gamma(\mu+1)}{\Gamma(\nicefrac{1}{2})}\right]] \end{document}

enter image description here

Sebastiano
  • 54,118
  • 2
    +1: "I propose two solutions after about two hours" that is a lot of effort! – Dr. Manuel Kuehner Apr 04 '21 at 22:14
  • 1
    @Dr.ManuelKuehner I didn't want the vote for the two hours that I have dedicated ahahahhh ahahahahahahahah: I have written the truth. You are fantastic ahahahaahhaahahahahahahahahahahahaahahah. I've done a lot of combinations but I think each symbol should be created by hand...basically it's like creating a .sty file.... – Sebastiano Apr 04 '21 at 22:15
  • Wow! This is definitely closer than what I’ve already seen. I’m amazed. I’ll definitely be considering this, thank you! – Alexander Conrad Apr 04 '21 at 23:30
  • 1
    @AlexanderConrad Hi, I ask a favour...give the green check mark to the user palopezv and the bounty. I am happy....if this happens. :-) – Sebastiano Apr 04 '21 at 23:34
  • @Sebastiano, unfortunately I am looking for a complete answer, and while he is informed and was helpful, I am patiently waiting for someone to either provide a complete custom font or a name to the original (which I did see used in a recent research paper, indicating that it is not a dead font). This makes both you and him close in for a tie if I were to call it a complete question. – Alexander Conrad Apr 04 '21 at 23:49
  • 1
    @Sebastiano I am overwhelmingly grateful for your answer and am already playing around with it. Excellent answer. – Alexander Conrad Apr 05 '21 at 00:03
  • 1
    Hmm. @Sebastiano, I think I'd go for Times Ten. Times being a newspaper copy font is rather small and lacks that stoutness in the original book print. – palopezv Apr 05 '21 at 14:13
  • 1
    @Sebastiano other alternatives that come to mind,not transitional per se, are Plantin and Sabon. – palopezv Apr 05 '21 at 15:01
  • @palopezv Very kind palopezv I have accepted your suggestion....and I often use Times :-)....Here in this web site http://luc.devroye.org/venice.html I have seen differents fonts used also in Mathematical old textbooks. – Sebastiano Apr 05 '21 at 16:11
  • @Sebastiano I've been working on a custom integral via the code \DeclareMathOperator{\uint}{\scalerel{\rotatebox{-2}{$!\scriptstyle\int!$}}{\int}}. I've not found a way to incorporate your work yet, but so far I have an issue with this symbol intersecting large brackets. Do you think you can help? – Alexander Conrad Apr 05 '21 at 19:06
  • 1
    @AlexanderConrad I would suggest that you ask another question by referring to the link in your current question. Because I could help you but there are so many great users who can build you an integral almost similar to your preferred one. – Sebastiano Apr 05 '21 at 19:14
  • 1
    @Sebastiano agreed. – Alexander Conrad Apr 05 '21 at 19:20
  • 1
    @Sebastiano a new link to the question is available if you so choose to look into it. – Alexander Conrad Apr 05 '21 at 19:37
  • 1
    @AlexanderConrad No, Why do have given the bounty to me? :-((( I have written to give it to the user palopezv. :-(....:-((((((((((((((((((( – Sebastiano Apr 10 '21 at 20:36
  • 1
    @Sebastiano I am impartial to your politics. You gave the most explicit help, which is what matters. – Alexander Conrad Apr 10 '21 at 21:20
4

Here is a possible approach without the need of creating your own font:

  1. Draw this integral symbol with Inkscape or Adobe Illustrator, extract its path in SVG format
  2. In LaTeX, use the TikZ package to draw the same path

In the following example, The \MyIntTop command corresponds to the top half of the integral drawn with Inkscape. I applied rotation and translation to get the bottom half of the integral sign based on symmetry. Of course, you can draw the entire integral sign as SVG.

Then, the important command is \my_customize_math_operator:cnnnnnn, which declares a custom math operator with parameters to fine-tune horizontal and vertical positioning of subscript and superscript. You can play with the magnification scale and superscript/subscript placements to find your desirable settings.

A major problem of this approach is that it does not support style selection via \mathchoice. If you are using LuaTeX, then this problem can be bypassed by using \mathstyle. If you have to use other TeX compilers, then I think there is no other approach than manually specifying different inline/display style operators.

enter image description here

The following example only works with LuaLaTeX

\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{tikz}
\usepackage{adjustbox}
\usepackage{expl3}

\setmainfont{TeX Gyre Schola} \setmathfont{TeX Gyre Schola Math}

\usetikzlibrary{svg.path}

% top half of the symbol drawn with Inkscape \newcommand{\MyIntTop}{% \begin{tikzpicture}[yscale=-1] \filldraw[fill=black] svg "m 25.357197,131.54532 c 0,0 0.100226,-7.95149 0.868626,-9.87696 0.7684,-1.92547 2.405424,-4.27882 4.510172,-4.1362 2.104749,0.14263 2.271791,1.8185 2.004523,2.49598 -0.267269,0.67749 -2.238384,-0.004 -1.937705,-0.71313 0.200452,-1.00994 -0.935444,-1.06522 -1.570208,-0.53037 -0.634765,0.53486 -1.102486,0.85128 -1.503391,2.52715 -0.400904,1.67587 -0.501131,10.29135 -0.501131,10.29135 z"; \end{tikzpicture}% }

% build the entire symbol based on symmetry \newcommand{\MyIntCombined}{% \adjustbox{rotate=180, lap=0.8mm, raise=0.1mm}{\MyIntTop}\MyIntTop% }

\newcommand{\MyIntAdj}[1]{ \adjustbox{#1}{\MyIntCombined} }

\ExplSyntaxOn

% customize superscript and subscript positioning % #1: math symbol new command name % #2: math symbol base command % #3: superscript vshift % #4: superscript hshift % #5: subscript vshift % #6: subscript hshift % #7: subscript/superscript style \cs_set:Npn \my_customize_math_operator:cnnnnnn #1#2#3#4#5#6#7 {

\tl_new:c {l_#1_sub_tl}
\tl_new:c {l_#1_super_tl}
\tl_new:c {l_#1_math_style_tl}
\bool_new:c {l_#1_finish_bool}

% declare the command
\cs_set_protected:cpn {#1} {
    \tl_clear:c {l_#1_sub_tl}
    \tl_clear:c {l_#1_super_tl}

    % check subscript
    \peek_catcode:NTF \c_math_subscript_token {
        \use:c {#1_sub:Nn}
    } {
        \peek_catcode:NTF \c_math_superscript_token {
            \use:c {#1_super:Nn}
        } {
            \use:c {#1_make_op:}
        }
    }
}


\cs_set_protected:cpn {#1_sub:Nn} ##1##2 {
    \tl_set:cn {l_#1_sub_tl} {##2}
    %\tl_show:c {l_#1_sub_tl}
    % check for superscript afterwards
    \peek_catcode:NTF \c_math_superscript_token {
        \use:c {#1_sub_super:Nn}
    } {
        \use:c {#1_make_op:}
    }
}

% superscript after subscript
\cs_set:cpn {#1_sub_super:Nn} ##1##2 {
    \tl_set:cn {l_#1_super_tl} {##2}
    %\tl_show:c {l_#1_super_tl}
    \use:c {#1_make_op:}
}

\cs_set_protected:cpn {#1_super:Nn} ##1##2 {
    \tl_set:cn {l_#1_super_tl} {##2}
    %\tl_show:c {l_#1_super_tl}
    % check for subscript afterwards
    \peek_catcode:NTF \c_math_subscript_token {
        \use:c {#1_super_sub:Nn}
    } {
        \use:c {#1_make_op:}
    }
}

% subscript after superscript
\cs_set_protected:cpn {#1_super_sub:Nn} ##1##2 {
    \tl_set:cn {l_#1_sub_tl} {##2}
    %\tl_show:c {l_#1_sub_tl}
    \use:c {#1_make_op:}
}

% retreive current math style
% only works in LuaTeX

% \cs_set:Npn \my_save_math_style: { % \iow_term:x {math~style~is~\mathstyle} % \int_case:nn {\mathstyle} { % {0} {\tl_set:cn {l_#1_math_style_tl} {\displaystyle}} % {1} {\tl_set:cn {l_#1_math_style_tl} {\crampeddisplaystyle}} % {2} {\tl_set:cn {l_#1_math_style_tl} {\textstyle}} % {3} {\tl_set:cn {l_#1_math_style_tl} {\crampedtextstyle}} % {4} {\tl_set:cn {l_#1_math_style_tl} {\scriptstyle}} % {5} {\tl_set:cn {l_#1_math_style_tl} {\crampedscriptstyle}} % {6} {\tl_set:cn {l_#1_math_style_tl} {\scriptscriptstyle}} % {7} {\tl_set:cn {l_#1_math_style_tl} {\crampedscriptscriptstyle}} % } % \tl_show:c {l_#1_math_style_tl} % }

% make the operator
\cs_set_protected:cpn {#1_make_op:} {
    #2
    \tl_if_empty:cF {l_#1_sub_tl} {
        \c_math_subscript_token {
            \mkern#6\relax
            \adjustbox{raise=#5}{$#7 \tl_use:c {l_#1_sub_tl}$}
        }
    }
    \tl_if_empty:cF {l_#1_super_tl} {
        \c_math_superscript_token {
            \mkern#4\relax
            \adjustbox{raise=#3}{$#7 \tl_use:c {l_#1_super_tl}$}
        }
    }
}

}

% declare script style \my_customize_math_operator:cnnnnnn {myintscript} {\MyIntAdj{scale={0.4}{0.4},raise=1mm}} {-1pt} {0mu} {0.5pt} {-2mu} {\scriptstyle}

% declare display style \my_customize_math_operator:cnnnnnn {myintdisplay} {\MyIntAdj{scale={0.7}{0.7},raise=1mm}} {-3.5pt} {1.5mu} {1pt} {-10mu} {\scriptstyle}

\int_new:N \l_myint_style_int

% finally, declare our operator \newcommand{\myint}{ \int_case:nnF {\mathstyle} { {0} {\myintdisplay} } {\myintscript} }

\ExplSyntaxOff

\begin{document}

$\int_a^b \myint_{abc}^{bef} \myint^{abc}_{def} \myint \myint_a \myint^b$

[\int_a^b \myint_{abc}^{bef} \myint^{abc}_{def} \myint \myint_a \myint^b]

This equation gives [ \myint^x_0 \frac{ds}{\sqrt{a-x}} ]

\end{document}

Alan Xiang
  • 5,227
4

Disclaimer: This is probably a terrible idea.

enter image description here

Define a new command \exint (exquisite integral), which is just the ordinary integral, but sheared left 30% and thickened 50% using transition matrix [[1.5 -.3] [0 1]]. Spacing is then adjusted (sort of) with a phantom integral. An invisible rule sets the height for limits of integration (if any).

To get the limits of integration closer to the example, the upper limit should have a thin space (\,) and the lower limit should have a negative thin space (\!).

Here is the code:

\documentclass{article}

\usepackage{mathtools} % for \mathrlap

\newcommand{\exint}{\pdfliteral{ q 1.5 0 -.3 1 0 0 cm}\mathrlap{\int}\pdfliteral{ Q}\phantom{\int}\rule[-1.85ex]{0pt}{4.65ex}}

\begin{document}

[ s=\frac{\sin n\pi}{\pi}\exint_{!0}^{,x}\frac{\phi(a)da}{(x-a)^{1-n}}\ ]

\end{document}

The idea for the shearing matrix comes from this answer by David Carlisle

Sandy G
  • 42,558