Level of “boldness” changeable?

In my document which I compile with pdflatex (Ubuntu 11.04 TeX Live package). I use the Sans Serif font. Some keywords should be printed bold. I use the {\bf text} construct for this.

However, the bold printed keyword appear (to my taste) too bold, i.e. too fat. Is it possible to control the boldness of bold printed text?

-
If the font supports it, you can try to set the fontseries to semibold. As \bf is an deprecated command (use \textbfinstead), try something like: \newcommand{\sebo}[1]{{\fontseries{sb}#1}}, but close to none fonts support semibold – Tom Bombadil Sep 8 '11 at 9:55
The solutions to \textbf{text} without increasing the length of the text might also be from interest for you. There a different "boldness" is achieved by scaling. – Martin Scharrer Sep 8 '11 at 10:41
This solution to 'Set the "font-weight: lighter/ bolder" ' may be helpful. – mas Sep 8 '11 at 11:36
@Tom: You need \selectfont after \fontseries. – Andrey Vihrov Sep 8 '11 at 15:35
@Andrey Vihrov: Whoah, of course! What a lapse. Thanks for pointing out. – Tom Bombadil Sep 8 '11 at 18:18

This is font-specific and is produced and fixed at production time. That is, the way to change the "boldness" would be to switch to a different font series.

There is at least one possible alternative by means of the contour package. It duplicates a piece of text a certain number of times at a fixed length away from the origin, thereby creating the illusion of being slightly more bold. The intent of the package is to provide a contour around text of a chosen colour. Including this package with the outline package option, together with \usepackage[T1]{fontenc} yields the desired output. If you choose a black contour, you get the following:

\documentclass{article}
\usepackage[T1]{fontenc}% http://ctan.org/pkg/fontenc
\usepackage[outline]{contour}% http://ctan.org/pkg/contour
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\begin{document}
\renewcommand{\arraystretch}{1.5}
\contourlength{0.1pt}
\contournumber{10}%
\begin{tabular}{lc}
\verb|bold| & bold \\
\verb|\textbf{bold}| & \textbf{bold} \\
\verb|\contourlength{0.1pt}| & \\
\verb|\contournumber{10}| & \\
\verb|\contour{black}{bold}| & \contour{black}{bold}
\end{tabular}
\end{document}


The first bold is typeset in normal font. The second bold is typeset in bfseries (using \textbf{...} rather than {\bf ...}, by the way - see l2tabu). The third bold is typeset using contour with the settings

• \contournumber{10}: reprint text 10 times;
• \contourlength{0.1pt}: offset random reprints by 0.1pt.
-
When using Type 1 fonts (by saying \usepackage[T1]{fontenc} in the preamble), the contour package can even produce high-quality real outlines: Just load it like \usepackage[outline]{contour} – diabonas Sep 8 '11 at 10:38
@diabonas: It was too late for me to pick up on that - thanks. I've updated my answer to reflect this choice. – Werner Sep 8 '11 at 14:12

The common values for font series are (taken from fntguide):

m   Medium
b   Bold
bx  Bold extended
sb  Semi-bold
c   Condensed


m is the default font weight, bx is the default bold series. The c and sb weights do not exist in Computer Modern and Latin Modern. But it is a little known fact that the nonextended bold series, b, is also available for the roman family in these fonts.

You would switch to this series with

\fontseries{b}\selectfont Text…


and make it the default bold series (such that it affects \bfseries and \textbf) with

\renewcommand{\bfdefault}{b}


However, there is no similar font weight defined for the sans serif CM/LM font family.

Fortunately, Latin Modern comes to rescue with its Latin Modern Sans Demi Cond font, available in regular and oblique shapes. This font is somewhat more dense than the normal one, but because of that it also looks heavier. You can access this font through the sbc font weight, which can be used just as b above. If you use XeLaTeX or LuaLaTeX, you can also select this font by name with fontspec.

And to show all the fonts:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{lmodern}

\newcommand{\test}[2]{%
\makebox[2.5cm][l]{#2:} {\fontseries{#1}\selectfont The quick brown fox\dots}\par}

\begin{document}

Roman font family:

\test{m}  {Medium}
\test{b}  {Bold}
\test{bx} {Bold extended}

\null\par

\sffamily
Sans serif font family:

\test{m}  {Medium}
\test{sbc}{Sans Demi Cond}
\test{bx} {Bold extended}

\end{document}


If you use a font other than Computer Modern or Latin Modern, you can check for the font weights mentioned before or examine the list of font files/font documentation.

-