summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xfakebold/latex/xfakebold.sty
blob: 0e0d5d40682df25650768dd5905d8be82b96932b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
% $Id: xfakebold.sty 9 2020-06-22 07:46:03Z herbert $
%%
%% This is file `xfakebold.sty', 
%%
%%   Copyright (C) 2019, 2020  Herbert Voss
%% 
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%    http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%% 
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xfakebold}[2020/06/22 v0.07 using bold characters]
\RequirePackage{xkeyval}

\@ifpackagelater{iftex}{2019/10/24}{% 
  \RequirePackage{ifxetex,ifluatex,ifpdf}
}{%
  \RequirePackage{iftex}
}

\def\fkbld@bold{0.3 }%

\def\fkbld@checkboldness#1{%
  \ifdim#1pt > \z@
    \def\fkbld@bold{#1 }%
  \else 
    \PackageWarning{fakebold}{The value must be greater than 0. Will choose 0.3 instead!}%
    \def\fkbld@bold{0.3 }%
  \fi
}

\DeclareOptionX{bold}{\fkbld@checkboldness{#1}}

\ProcessOptionsX*

\newcommand\setBold[1][]{%
  \begingroup
  \if$#1$\else
    \fkbld@checkboldness{#1}%
  \fi
  \ifxetex
    \special{pdf:literal direct 2 Tr \fkbld@bold w }\relax
  \else
    \ifluatex
      \pdfextension literal direct { 2 Tr \fkbld@bold w }\relax
    \else
      \ifpdftex
        \ifnum\pdfoutput=\@ne
          \pdfliteral direct { 2 Tr \fkbld@bold w }\relax
        \else
          \special{pdf:literal direct 2 Tr \fkbld@bold w }\relax
        \fi
      \else
        \ifpdf
          \PackageWarning{fakebold}{!Unsupported engine! fakebold is disabled.}
        \else
          \special{pdf:literal direct 2 Tr \fkbld@bold w }\relax
        \fi                  
      \fi
    \fi
  \fi
  \endgroup
  \ignorespaces
}
\newcommand\unsetBold{%
  \ifxetex
    \special{pdf:literal direct 0 Tr 0 w }\relax
  \else
    \ifluatex
      \pdfextension literal direct { 0 Tr 0 w }\relax
    \else
      \ifpdftex
        \ifnum\pdfoutput=\@ne
          \pdfliteral direct { 0 Tr 0 w }\relax
        \else
          \special{pdf:literal direct 0 Tr 0 w }\relax
        \fi
      \else
        \ifpdf
        \else
          \special{pdf:literal direct 0 Tr 0 w }\relax
        \fi                  
      \fi
    \fi
  \fi
  \ignorespaces
}

\endinput