summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/xcharter/xcharter-doc.tex
blob: 879ffb6654a7374ee93651f1cbcad2000cce2d0d (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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
% !TEX TS-program = pdflatexmk
\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry} 
\usepackage[parfill]{parskip} 
\pdfmapfile{=XCharter.map}
\usepackage[scaled=1.03,varqu,varl]{inconsolata}
\usepackage[type1]{cabin}
\usepackage[scaled=.98,osfI]{XCharter}
\usepackage[OT2,T2A,T1]{fontenc}
\linespread{1.04}
\usepackage[charter,vvarbb,scaled=1.07]{newtxmath}
\usepackage[cal=boondoxo]{mathalfa}
\font\osfIfnt=XCharter-Roman-tosf-t1 at 11pt
\font\osffnt=XCharter1-Roman-tosf-t1 at 11pt
\usepackage{fonttable}
\usepackage{url}
\newcommand\cyrtext{\fontfamily{XCharter-TLF}\fontencoding{OT2}\selectfont} % declaration
\DeclareTextFontCommand{\textcyr}{\cyrtext}  %macro with argument
%\usepackage[cal=rsfso]{mathalfa}
%\usepackage{bm}% load after all math to give access to bold math
\title{The XCharter Font Package}
\author{Michael Sharpe}
%\date{}
\begin{document}
\maketitle


\section{Package Features}
The \emph{XCharter} fonts are extensions of the Bitstream Charter fonts, adding oldstyle figures (proportionally spaced only), superior figures and small caps in all styles. The original Charter fonts were created by famed font designer Matthew Carter in the late 1980's to enhance legibility of the output from printers of that era (laser, dot matrix, thermal and inkjet) with resolutions that would now be considered low---not far from modern screen resolutions. Their low contrasts, high x-heights and use of piecewise linear outlines where possible may make them interesting again as fonts that will render well on small devices and perhaps projected slides. (It's worth noting that the same designer provided Georgia for Microsoft. It is widely considered to be one of the clearest serifed fonts for viewing on screen, and bears a number of similarities to Charter, though the latter is  heavier.) 

As of version 1.09 (2017-06-25) there is a new collection of Cyrillic glyphs in \emph{XCharter}, copied from Andrey Panov's \emph{Khartiya}, an extension of the free Charter fonts, with small caps included. Some new figure styles were also copied from \emph{Khartiya}---inferiors, numerators and denominators. Along with these additions, there are now slanted versions for those who wish to have both slanted and italic text available to meet distinct semantic purposes. Note that figures and uppercase slanted and italic are almost identical (except for slanted \textsl{Q} and italic \textit{Q}) but lower-case forms are distinct.

Support files are provided for T$1$, TS$1$, LY$1$, T$2$A and OT$2$ encodings, the latter being to support the Cyrillic component of \emph{XCharter}. The package has  a number of options:
\begin{itemize}
\item
{\tt scaled=.98}, for example, scales all text to 98\% of specified size;
\item {\tt lining} (or just {\tt lf}) makes lining figures ($0123456789$) the default for text---this is set automatically and does not need to be entered explicitly;
\item {\tt oldstyle} (or {\tt osf}) sets the figure style in text mode to oldstyle (\textosf{0123456789}) with numeral one like a shortened  $1$, but math mode will always use lining figures;
\item {\tt oldstyleI} (or {\tt osfI}) sets the figure style in text mode to oldstyle (\textosfI{0123456789}) with numeral one like a shortened I, but math mode will always use lining figures;
\item {\tt sups} sets the style for superscript figures (eg, footnote markers) to XCharter's superior figures rather than using the default text inserts in mathematical superscripts.
\item {\tt scosf} makes oldstyle figures the default in small cap text, no matter what the global figure setting may be.
\end{itemize}


\textsc{Special Macros:}
\begin{itemize}
\item
\verb|\useosf| (usable only in the preamble) may be used for changing the text figure style to {\tt osf} though math mode will use lining figures.
\item \verb|\useosfI| (usable only in the preamble) may be used for changing the text figure style to {\tt osfI} though math mode will use lining figures.
\item \verb|\textsu| prints its argument in superior figures, eg \verb|\textsu{12}| results in \textsu{12}. The effect is the same with \verb|{\sustyle 12}|.
\item \verb|\textin| prints its argument in inferior figures, eg \verb|\textin{12}| results in \textin{12}. The effect is the same with \verb|{\instyle 12}|.
\item \verb|\textlf| prints its argument in lining figures, eg \verb|\textlf{12}| results in \textlf{12}. The effect is the same with \verb|{\lfstyle 12}|.
\item \verb|{\osfstyle 23}| prints \textosf{23} using whatever oldstyle option is in force. 
\item \verb|\textosf| prints its argument in oldstyle figures using, in effect, the {\tt osf} option---e.g., \verb|\textosf{12}| results in \textosf{12}. 
\item \verb|\textosfI| prints its argument in oldstyle figures using, in effect, the {\tt osfI} option---e.g., \verb|\textosfI{12}| results in \textosfI{12}. 
\item Numerators and denominators are normally used only for constructing fractions, but may if needed be called using \verb|\textnu| and \verb|\textde|. They are about 7\% smaller than superiors and inferiors. The \verb|\textfrac| macro allows you to write, e.g.,  \verb|\textfrac{31}{32}| to get \textfrac{31}{32}. 

\end{itemize}

Three math packages seem to provide reasonable companions for \textsf{XCharter}. The first example uses Charter italics as math italics, but doesn't provide arbitrary scaling and doesn't sufficiently distinguish math italic v from mathematical Greek \verb|\nu|. Moreover, it is not easy to redefine \verb|\mathcal| to get a better math calligraphic alphabet---eg, the {\tt mathalfa} package fails. The second uses \textsf{libertine} italics and Greek in math mode, which is a good match to Charter in style and weight after scaling up, is arbitrarily scalable, has distinct math italic v and mathematical Greek \verb|\nu|, and is completely compatible with {\tt mathalfa}. The third is a new revision of {\tt newtxmath} with option {\tt charter} (or, equivalently, {\tt xcharter}), which substitutes Charter italics as math italics and uses a back-slanted version of its slanted Greek symbols. This version is scalable and has a math italic v (plus a matching w) distinct from \verb|\nu|.

\textsc{Example 1:}
\begin{verbatim}
\usepackage[charter,expert]{mathdesign}
\usepackage[scaled=.96,osf]{XCharter}% matches the size used in math
\linespread{1.04}
\end{verbatim}

\textsc{Example 2:}
\begin{verbatim}
\usepackage[scaled=.98,sups,osf]{XCharter}% lining figures in math, osf in text
\usepackage[scaled=1.04,varqu,varl]{inconsolata}% inconsolata typewriter
\usepackage[type1]{cabin}% sans serif
\usepackage[libertine,vvarbb,scaled=1.07]{newtxmath}
\usepackage[cal=boondoxo]{mathalfa}
\linespread{1.04}
\end{verbatim}

\textsc{Example 3:}
\begin{verbatim}
\usepackage[scaled=.98,sups,osf]{XCharter}% lining figures in math, osf in text
\usepackage[scaled=1.04,varqu,varl]{inconsolata}% inconsolata typewriter
\usepackage[type1]{cabin}% sans serif
\usepackage[charter,vvarbb,scaled=1.07]{newtxmath}
\usepackage[cal=boondoxo]{mathalfa}
\linespread{1.04}
\end{verbatim}
\textsc{Example 4:}
\begin{verbatim}
\usepackage[<specify babel languages>]{babel}% load before XCharter
\usepackage[scaled=.98,sups,osf]{XCharter}% osf in text, lining figures in math
\usepackage[scaled=1.04,varqu,varl]{inconsolata}% inconsolata typewriter
\usepackage[type1]{cabin}% sans serif
\usepackage[charter,vvarbb,scaled=1.07]{newtxmath}
\usepackage[cal=boondoxo]{mathalfa}
\linespread{1.04}
\end{verbatim}

Here is a short sample based on the preamble of \textsc{Example 3}:\\[4pt]
\def\Pr{\ensuremath{\mathbb{P}}}
\def\rmd{\mathrm{d}}
The typeset math below follows the ISO recommendations that only variables
be set in italic. Note the use of upright shapes for $\rmd$, $\mathrm{e}$
and $\uppi$. (The first two are entered as \verb|\mathrm{d}| and
\verb|\mathrm{e}|, and in fonts derived from {\tt newtxmath} or {\tt mtpro2},
 the latter is entered as \verb|\uppi|.)

\textbf{Simplest form of the \textit{Central Limit Theorem}:} \textit{Let
$X_1$, $X_2,\cdots$ be a sequence of iid random variables with mean $0$ 
and variance $1$ on a probability space $(\Omega,\mathcal{F},\Pr)$. Then}
\[\Pr\left(\frac{X_1+\cdots+X_n}{\sqrt{n}}\le y\right)\to\mathfrak{N}(y)\coloneq
\int_{-\infty}^y \frac{\mathrm{e}^{-v^2/2}}{\sqrt{2\uppi}}\,
\mathrm{d}v\quad\mbox{as $n\to\infty$,}\]
\textit{or, equivalently, letting} $S_n\coloneq\sum_1^n X_k$,
\[\mathbb{E} f\left(S_n/\sqrt{n}\right)\to \int_{-\infty}^\infty f(v)
\frac{\mathrm{e}^{-v^2/2}}{\sqrt{2\uppi}}\,\mathrm{d}v
\quad\mbox{as $n\to\infty$, for every $f\in\mathrm{b}
\mathcal{C}(\mathbb{R})$.}\]

\section{Text effects under \texttt{fontaxes}}
This package loads the {\tt fontaxes} package in order to access italic and slanted small caps. You should pay attention to the fact that {\tt fontaxes} modifies the behavior of some basic \LaTeX\ text macros such as \verb|\textsc| and \verb|\textup|. Under normal \LaTeX, some text effects are combined, so that, for example, \verb|\textbf{\textit{a}}| produces bold italic {\tt a}, while other effects are not, e.g., \verb|\textsc{\textup{a}}| has the same effect as \verb|\textup{a}|, producing the letter {\tt a} in upright, not small cap, style. With {\tt fontaxes}, \verb|\textsc{\textup{a}}| produces instead upright small cap {\tt a}. It offers a macro \verb|\textulc| that undoes small caps, so that, eg, \verb|\textsc{\textulc{a}}| produces {\tt a} in non-small cap mode, with whatever other style choices were in force, such as bold or italics.

\section{Usage with fontspec}
Because the package supplies a file named {\tt XCharter.fontspec} whose contents list the {\tt otf} files that correspond to each of Regular, Bold, Italic, BoldItalic, Slanted and BoldSlanted, you may load XCharter with just
\begin{verbatim}
\usepackage{fontspec}
\setmainfont{XCharter}
\end{verbatim}
With unicode-encoded text, you will, in particular,  have complete access to the newly added Cyrillic glyphs.
\section{Using Cyrillic with pdflatex}
The OT$2$ encoding, now considered as obsolete because it is 7-bit, is nonetheless useful to scholars who wish to write short segments using a Cyrillic script from a Western keyboard. There are two means of doing this, one using control sequences for the characters (e.g., \verb|\CYRA| for Cyrillic A) and the other using ligatures to access the characters. Tables setting out the substitutions available may be consulted at \url{http://herbert.the-little-red-haired-girl.org/dvi/pdf/cyrillic.pdf}.

Note that, while the OT$2$ encoded font is complete, there are many gaps in the T$2$A encoded version, so that only Modern Russian and Ukrainian are fully covered, along with a number of characters from Old Russian and other Slavic languages.

%\fonttable{XCharter-Roman-tfl-ot2.tfm}
%{\usefont{OT2}{XCharter-TLF}{m}{n} \char"41}
\textsc{XCharter-Roman-tlf-ot2.tfm}:\\
\fonttable{XCharter-Roman-tlf-ot2}

\textsc{Example OT$2$ Preamble:}

\begin{verbatim}
\documentclass{article} 
\usepackage[OT2,T1]{fontenc} % loads ot2enc.def
\newcommand\cyrtext{%
\fontfamily{XCharter-TLF}\fontencoding{OT2}\selectfont} % declaration
\DeclareTextFontCommand{\textcyr}{\cyrtext}  %macro with argument
\end{verbatim}
The Russian part of the following sentence is entered as \verb|\textcyr{a e1to --- po-russki}|.

This is text in English, then Russian:
\textcyr{a e1to --- po-russki}.

\textsc{Using T$2$A with T$1$:}

Here's an example of using {\tt XCharter} text and math, set up to allow the use of  Russian with English as the main language.
\begin{verbatim}
\usepackage[OT2,T2A,T1]{fontenc} % spell out all text encodings to be used
\usepackage[utf8]{inputenc} % 
\usepackage{substitutefont} % so we can use fonts other than those specified in babel
\usepackage[russian,english]{babel}
\usepackage{XCharter} % 
\usepackage[charter,vvarbb,scaled=1.07]{newtxmath}
\useosf % use oldstyle figures except in math
\substitutefont{T2A}{\rmdefault}{XCharter} % use XCharter to render Russian 
%\substitutefont{OT2}{\rmdefault}{XCharter} % poor man's version
\end{verbatim}
Any {\tt utf8}-encoded text typed outside of a \verb|\foreignlanguage{}{}| block will be rendered as T$1$-encoded {\tt XCharter}, while that within \verb|\foreignlanguage{russian}{}| will render as T$2$A-encoded Cyrillic. 

\newpage
\textsc{XCharter-Roman-tlf-t2a.tfm}:\\
\fonttable{XCharter-Roman-tlf-t2a.tfm}

\textsc{Note:} Currently, the \LaTeX\ support files for T$2$A encoded \emph{XCharter} cover only the figure styles {\tt lining}, {\tt oldstyle} and {\tt superiors}.

\end{document}