5

I have my document ready to print, except the title. Regarding purely personal and aesthetic taste, I want it with serif with lmodern font, and a bit bold.

However, for my taste, using \normalfont is not bold enough, while \bfseries is too bold for me.

Question: is there a way to print it semibold?

P.-S.: (This question was originally asked using the "middle-bold" keyword.)


\documentclass[10pt]{scrbook}
    \usepackage{lmodern}
\begin{document}
    \Huge
    Not bold enough 

    {\bfseries Too bold}
\end{document}

MWE

Davislor
  • 44,045
ebosi
  • 11,692

4 Answers4

6

There is no semi-bold font, but there is a demi-bold one. The relevant type1 versions of the fonts are included in the lmodern package. Unfortunately, lmodern.sty provides no straightforward way of accessing these fonts and lmodern does not provide the needed .fd files. Fortunately, cfr-lm does.

\documentclass[10pt]{scrbook}
\usepackage[rm={proportional,lining},sf={proportional,lining},tt={tabular,lining,monowidth}]{cfr-lm}
\begin{document}
\Huge
Not bold enough 

{\bfseries Too bold}

{\sbweight Just right}
\end{document}

Unfortunately, the demi-bold lacks optical sizes, which are supported by the bold-extended. This means that at some sizes, the demi-bold looks at least as bold as the bold, if not more so:

demi-bold

Moreover, the demi-bold is not extended, as the bold is, and there is no true italic - only an oblique shape.

That said, depending on the range of sizes and shapes required, the demi-bold may still be a good option. At normal size (10pt), for example, it is at least somewhat less bold than the bold (though the PNG shows this rather less clearly than the PDF, unfortunately):

demi-bold, 10pt

The effect is still quite subtle. It may be easier to compare the same letter repeated:

2 'I's

[Bold-extended on the left; demi-bold on the right; 10pt.]

Depending on your needs, therefore, the purpose-designed demi-bold may or may not be a better option than trying the faking strategies suggested in the other answers. At the least, it is worth noting that there certainly is such a font.

cfr
  • 198,882
3

This approach only works in pdflatex, where I use a pdf special to semi-embolden the font, here embodied as \textsb[<emboldening level>]{<text>}.

In the MWE, I show emboldment levels ranging from .2 to 1 (default .4). One can then compare to the baseline font, as well as the \textbf version.

\documentclass[10pt]{scrbook}
%%%%%
\input pdf-trans
\newbox\qbox
\def\usecolor#1{\csname\string\color@#1\endcsname\space}
\newcommand\outline[1]{\leavevmode%
  \def\maltext{#1}%
  \setbox\qbox=\hbox{\maltext}%
  \boxgs{Q q 2 Tr \thickness\space w 0 0 0 rg 0 G}{}%
  \copy\qbox%
}
\newcommand\textsb[2][.4]{%
  \def\thickness{#1}%
  \outline{#2}%
}
%%%%%
\begin{document}
    \Huge Not bold enough 

    \textsb[.2]{.2 bold enough?}

    \textsb{.4 bold enough?}

    \textsb[.6]{.6 bold enough?}

    \textsb[.8]{.8 bold enough?}

    \textsb[1]{1.0 bold enough?}

    {\bfseries Too bold}
\end{document}

enter image description here

3

The answer by @cfr works well in PDFLaTeX, but if you’re using a modern toolchain, you will want to use fontspec. Here’s one way to do that. It sets up LaTeX-like \textsb{} and \sbseries commands that work with any fonts containing a sb weight. (You could if you prefer give \sbseries the name \sbweight like in nfss-cfr.)

\documentclass[10pt, varwidth, preview]{standalone}
\usepackage{fontspec}

\setmainfont[
  Scale = 1.0,
  Ligatures = {Common, Discretionary, TeX},
  FontFace={sb}{n}{Font = {lmromandemi10-regular}, Extension = .otf },
  FontFace={sb}{it}{Font = {lmromandemi10-oblique}, Extension = .otf }
]{Latin Modern Roman}

\defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }

% The commands to select semibold weight:
\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
\DeclareTextFontCommand{\textsb}{\sbseries}

\begin{document}
    \Huge
    Not bold enough

    {\bfseries Too} \textbf{bold}

    {\sbseries Just} \textsb{right}
\end{document}

Latin Modern Font Sample

Davislor
  • 44,045
  • I seem to be able to use your \DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont} and \DeclareTextFontCommand{\textsb}{\sbseries} to set up some version of semibold even using the lmodern package and pdflatex. For me that already does the job. Thanks! – Jules Lamers Nov 05 '20 at 01:31
  • (I think what happens is that in my case it substitutes \fontseries{sb} with \fontseries{b}, which at least looks a little less bold than the usual extended \fontseries{bx}) – Jules Lamers Nov 05 '20 at 01:36
2

There is no semibold version but you could scale up a smaller font size (the code I use is okay for a short portion like a title but not suitable for longer text!): \scalebox and resizebox of the graphicx package can be used too. It is up to you to decide if this looks pleasing ...

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
\Huge
\textbf{Bold}

\font\testa=ec-lmr10 at 25pt
{\testa A bit Bold}

\font\testb=ec-lmr5 at 25pt
{\testb A bit Bold}

Not Bold
\end{document}

enter image description here

Ulrike Fischer
  • 327,261