summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xfakebold/doc/xfakebold-doc.tex
blob: d2bd92ef2b8d7447e7c380a4ce8dd9a232a9cd44 (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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
% $Id: xfakebold-doc.tex 1087 2019-09-21 11:53:40Z herbert $
\listfiles
\documentclass[english]{article}
\usepackage{dejavu-otf}
\usepackage{xfakebold}
\usepackage{graphicx}
%\pdfcompresslevel=0
\usepackage{babel}
\usepackage[a4paper,tmargin=1cm,bmargin=1.5cm,includeheadfoot]{geometry}
\usepackage{listings}
\title{\texttt{xfakebold}, v. 0.05\\ using bold characters with \texttt{pdflatex} or \texttt{lualatex}}
\author{Herbert Voß}

\lstset{basicstyle=\ttfamily\small,language={[LaTeX]TeX},frame=lrtb}
\begin{document}

\maketitle

\tableofcontents

\begin{abstract}
The package fakes a vector font with outline characters by the text render of PDF.
It writes directly into the pdf output with \verb|\pdfliteral| (pdflatex ) or \verb|\pdfextension| \verb|literal| 
(lualatex). The package defines two macros which can be used in text and in math mode. However, for the text
mode one should use the bold version of the text font which should be available in most cases. This is different to the
math mode where only some free math fonts provide a bold version.
\end{abstract}

\vfill
\small Thanks to: Will Robertson;
%\meaning\setBold

%\meaning\unsetBold

\newpage

\section{How does it work?}
PDF knows different text render modes for outline fonts.

\def\OFF{\pdfextension literal direct { 0 Tr 0 w }\relax}
\def\Verb|#1|{\texttt{\{#1\}}}

\makebox[3cm][l]{Mode 0 \Verb| 0 Tr 0 w |} \tabular{l}\pdfextension literal direct { 0 Tr 0 w }\scalebox{10}{OTTO} OTTO\OFF\endtabular

\makebox[3cm][l]{Mode 1 \Verb| 1 Tr 0 w |} \tabular{l}\pdfextension literal direct { 1 Tr 0 w }\scalebox{10}{OTTO} OTTO\OFF\endtabular

\makebox[3cm][l]{Mode 1 \Verb| 1 Tr 0.3 w |} \tabular{l}\pdfextension literal direct { 1 Tr 0.3 w }\scalebox{10}{OTTO} OTTO\OFF\endtabular

\makebox[3cm][l]{Mode 2 \Verb| 2 Tr 0 w |} \tabular{l}\pdfextension literal direct { 2 Tr 0 w }\scalebox{10}{OTTO} OTTO\OFF\endtabular

\makebox[3cm][l]{Mode 2 \Verb| 2 Tr 0.3 w |} \tabular{l}\pdfextension literal direct { 2 Tr 0.3 w }\scalebox{10}{OTTO} OTTO\OFF\endtabular


In mode 0 the character is filled but without drawing its outline which can be seen when printing in mode 1, where
the linewidth of the outline is the smallest one which the system allows. Setting the linewidth to 0.3\,bp, which is
nearly the same as 0.3\,pt, the linewidth of the outline increases. In mode 2 the character is printed with filling \emph{and}
drawing the outline, which is mode 0 and 1 together. The reason why the character is bold by default.  Increasing the linewidth 
makes it more bold.


\section{Optional argument}
The only package option is \verb|bold| which is preset by 0.3, which is the linewidth of
the outlines of the characters.

\begin{lstlisting}
\usepackage[bold=0.6]{xfakebold}
\end{lstlisting}

makes the characters more bold.

\section{The example code}

\begin{lstlisting}
\documentclass{article}
\usepackage{xfakebold}
\begin{document}
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$

\setBold\noindent
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$

\unsetBold\noindent
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$
\end{document}
\end{lstlisting}

\section{The output}


An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$

\setBold\noindent
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$

\unsetBold\noindent
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$


\vspace{2cm}\noindent
The same for \verb|\usepackage[bold=1]{xfakebold}|:

\gdef\setBold{\pdfextension literal direct { 2 Tr 1 w }\relax}
\gdef\unsetBold{\pdfextension literal direct { 0 Tr 0 w }\relax}
\noindent
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$

\setBold\noindent
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$

\unsetBold\noindent
An example: 
$\pi^{\pi}=\directlua{tex.print(math.pi^math.pi)}$ and
$\displaystyle\int\limits_1^{\infty}\frac1{x^2}\symup dx=1$


\end{document}