summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/inconsolata/inconsolata-doc.tex
blob: 255004ecd5593098b57665bc3eee6c200d394a73 (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
% !TEX TS-program = pdflatexmk
\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry} 
\usepackage[parfill]{parskip}% Begin paragraphs with an empty line rather than an indent
\usepackage{graphicx}
\usepackage{booktabs}
\pdfmapfile{=zi4.map}
%SetFonts
% libertine text and newtxmath
%\usepackage{lmodern}
\usepackage[osf,sups]{baskervillef}
\usepackage[T1]{fontenc}
%\usepackage[scaled=.83]{beramono}
\usepackage[varqu]{zi4}
%\usepackage{amsmath,amsthm}
\usepackage[baskerville]{newtxmath}
\usepackage{textcomp}
%\renewcommand\rmdefault{LinuxLibertineT-OsF}
%\usepackage[supstfm=libertinesups,%
%  supscaled=1.2,%
%  raised=-.13em]{superiors}
%SetFonts
%\UndeclareTextCommand{\textquotesingle}{LY1}
%\DeclareTextSymbol{\textquotesingle}{TS1}{39}
%\usepackage{upquote}
\title{The Inconsolata  Package}
\author{Michael Sharpe}
\date{\today}  % Activate to display a given date or no date

\begin{document}
%\show\textquotesingle
\maketitle
The package provides updated PostScript and Opentype versions of Raph Levien's fine sans serif typewriter font
\texttt{Inconsolata} in regular and bold weights, adding some glyphs which may optionally replace existing \texttt{quotedbl} and \texttt{quotesingle} and lower-case~L, along with new slashed zero, \texttt{arrowright} and \texttt{arrowleft} glyphs. As of version 1.11,  narrower renditions are also provided, with widths reduced from 500 units to 450 units. \LaTeX\ support files are also provided for both. 

\section*{\LaTeX\ usage}
To use {\texttt{Inconsolata} as your typewriter font, add \verb|\usepackage{inconsolata}| (or \verb|\usepackage{zi4}|) to your preamble after any other packages that might load another typewriter font. This
will change the typewriter font family to \texttt{zi4}, the family name used
by this package, which replaces the old \textsf{inconsolata}, where the family name was \texttt{fi4}.  (The original {\tt inconsolata} is now obsolete and is no longer distributed as part of \TeX Live.) 

As with Karl Berry's original \texttt{inconsolata} package, the new package offers four basic encodings---\texttt{T1}, \texttt{LY1}, \texttt{OT1} and \texttt{QX}---, plus a \texttt{TS1} text comanion encoding. It provides the following options which some may find improve its utility for displaying verbatim text such as code fragments. 
\begin{itemize}
\item The option \texttt{scaled=x} (or \texttt{scale=x}) allows you to scale all typewriter text and verbatim text by the factor \texttt{x}.
\item
The default zero in \texttt{zi4} is now slashed. The unslashed zero may be specified with the option \texttt{var0}.
\item For those who find the default lower-case L(\texttt{l}) a bit too close to the numeral~\texttt{1}, there is an option \texttt{varl} which substitutes a more distinctive shape for all glyphs related to lower-case L.
\item The \texttt{zi4} package loads the \texttt{textcomp} package, which points to a TS$1$-encoded font that has been modified to have uncurved left and right quotes, especially important in code fragments, by use of \texttt{textcomp} glyphs \verb|\textasciigrave| and \verb|\textquotesingle|. The \texttt{varqu} option provides further upright quote forms for glyphs that are not part of the \texttt{textcomp} package, such as 
the default double quote glyph \texttt{quotedbl} and \texttt{quotesingle}, which by default have a small slant. (Note that the latter is not part of all encodings---it is present in \texttt{OT1}, \texttt{LY1} and \texttt{QX}, but not in \texttt{T1}.)
\item The package loads \texttt{upquote} by default, but provides an option \texttt{noupquote} to override it.
\item (new in v.1.11) The option \texttt{narrow} causes the narrow versions to be used, having widths reduced by 10\%.
\item (new in v.1.11) The default behavior of {\tt inconsolata} is to prevent all automatic hyphenation, to permit spacing to stretch and shrink, and to place some extra space after a line ending period. This version offers the following options to change the default behavior.  
\begin{itemize}
\item
Option {\tt hyphenate} allows automatic hyphenation to occur, which may be useful if your usage is simply to have blocks of text is quasi-typewritten form, though with variable word-spacing.
\item option {\tt mono} forces the behavior to mimic that of the Computer Modern Typewriter font---all spaces have the same width as the glyphs, and a full extra space is inserted after a line-ending period.
\item You may modify individual {\tt fontdimen} values that govern this behavior by means of the options {\tt spacing}, {\tt stretch}, {\tt shrink} and {\tt extrasp}. These will override any values changed by the option {\tt mono}, for example, giving you a way to get monospacing but prevent extra space after a period, with
\begin{verbatim}
\usepackage[mono,extrasp=0em]{inconsolata}
\end{verbatim}
\end{itemize}
\end{itemize}
When used in ordinary typewriter mode (ie, with \verb|\texttt{}| or the deprecated form \verb|{\tt }|), left and right quotes are rendered as in ordinary text. For example, 
\begin{verbatim}
\texttt{`xy' " \textasciigrave \textquotesingle}
\end{verbatim}
renders (with option \texttt{varqu}) as \texttt{`xy' " \textasciigrave \textquotesingle}. With the \texttt{upquote} package, verbatim text, eg:
\begin{verbatim}
\verb|`xy' "|
\end{verbatim}
 renders as you would expect it in code samples:
\verb|`xy' "|

\textbf{Note on the QX encoding:} The encoding files used as part of this package, derived from the \texttt{inconsolata} package, seem to have some inconsistencies with \texttt{qxenc.def} made necessary as a compromise to get text and verbatim modes functioning for a wide class of common characters.

In the following examples, the claim that all encodings render the same applies only to the very limited selection of quote glyphs tested. In practice, QX encoding behaves worse than the others for \texttt{zi4}.


\section*{Effects of the options varqu, noupquote}
\textbf{With \texttt{varqu}:} \texttt{upquote} loaded by default---all encodings render the same.

\begin{center}
  \begin{tabular}{@{} ccc @{}}
    \toprule
    Input & Text mode & Verbatim mode \\ 
    \midrule
    \verb|\textasciigrave| & \texttt{\textasciigrave} &   \\ 
    \verb|\textquotesingle| & \texttt{\textquotesingle}  &   \\ 
    \texttt{"} & \texttt{"}  & \verb|"|  \\ 
    \verb|'| & \texttt{'}  & \verb|'| \\ 
    \verb|`| & \texttt{`}  & \verb|`| \\ 
    \bottomrule
  \end{tabular}
\end{center}
\textbf{Without \texttt{varqu}:} \texttt{upquote} loaded by default---all encodings render the same.
\begin{center}
\includegraphics{novarqu-crop}
\end{center}
\textbf{Without \texttt{varqu}, \texttt{noupquote}:} \texttt{upquote} NOT loaded---all encodings render the same.
\begin{center}
\includegraphics{novarqu-noupq-crop}
\end{center}
\textbf{With \texttt{varqu}, \texttt{noupquote}:} \texttt{upquote} NOT loaded---all encodings render the same.
\begin{center}
\includegraphics{novarqu-noupq-crop}
\end{center}


\textbf{Conclusion:} To me, it is overwhelmingly clear that the best results come from
specifying the option \texttt{varqu}, not specifying \texttt{noupquote}, and avoiding the QX encoding wherever  possible.

\textbf{A technical note concerning LY1 or QX encodings:} These encodings make their own definitions of \verb|\textquotesingle| as glyphs in the main text font. Using the TS1 glyph with upright shape so that \texttt{upquote} works correctly with these encodings requires the incantation:
\begin{verbatim}
\UndeclareTextCommand{\textquotesingle}{LY1} % or QX
\DeclareTextSymbol{\textquotesingle}{TS1}{39}
\usepackage{upquote}
\end{verbatim}
which is built-in to the \texttt{zi4.sty} code and need not be repeated.
\section*{Opentype issues} The package includes four Opentype fonts named \textsf{Inconsolatazi4-Regular}, \textsf{Inconsolatazi4-Bold}, \textsf{InconsolataN-Regular} and \textsf{InconsolataN-Bold}, the last two being for the narrow variant. The narrow and the normal width versions may be loaded using \texttt{fontspec}:
\begin{verbatim}
\fontspec{inconsolata} % normal width, slashed zero, curly quotes, default l
\fontspec{inconsolatan} % nnarrow width, slashed zero, curly quotes, default l
\end{verbatim}
The fonts contain three Stylistic Set variants that may be used to control the shape of lower case l (\texttt{ss01}), the form of zero (\texttt{ss02}) and the shape of quotes (\texttt{ss03}). One or more of these may be specified using one of the following example lines:
\begin{verbatim}
\setmonofont[StylisticSet=1]{Inconsolatazi4} % shapely l
\setmonofont[StylisticSet=2]{Inconsolatazi4} % unslashed zero
\setmonofont[StylisticSet=3]{Inconsolatazi4} % straight quotes
\setmonofont[StylisticSet={1,3}]{Inconsolatazi4} % shapely l, upright quotes
\end{verbatim}
To prevent automatic hyphenation, add the option {\tt HyphenChar=None} to the call. (Specifying {\tt inconsolata} as the font name tells {\tt fontspec} to look for the file {\tt inconsolata.fontspec} which spells out the names of the associated {\tt.otf} files.) 

Note that one cannot expect exactly the same rendition from \LaTeX\ typewriter modes and the \textsf{fontspec} typewriter modes. For one thing, in \LaTeX, the typewriter left quote symbol is \texttt{quoteleft}, while under \textsf{fontspec}, it is the \texttt{grave} symbol.
\end{document}