summaryrefslogtreecommitdiff
path: root/fonts/chivo/source/Chivo.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/chivo/source/Chivo.dtx')
-rw-r--r--fonts/chivo/source/Chivo.dtx235
1 files changed, 136 insertions, 99 deletions
diff --git a/fonts/chivo/source/Chivo.dtx b/fonts/chivo/source/Chivo.dtx
index 66b459d7e8..a047902872 100644
--- a/fonts/chivo/source/Chivo.dtx
+++ b/fonts/chivo/source/Chivo.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
% File: Chivo.dtx
-% Copyright (C) 2016-2019 Arash Esbati <arash'at'gnu.org>
+% Copyright (C) 2016-2022 Arash Esbati <arash'at'gnu.org>
%
% This work may be distributed and/or modified under the conditions
% of the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -13,9 +13,9 @@
% \fi
%
% \iffalse
-%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\NeedsTeXFormat{LaTeX2e}[2021/06/01]
%<package>\ProvidesPackage{Chivo}
-%<package> [2019/07/19 v2.1 Support for Chivo fonts (AE)]
+%<package> [2022/11/15 v2.2 Support for Chivo fonts (AE)]
%
%<*driver>
\documentclass[a4paper]{ltxdoc}
@@ -23,8 +23,8 @@
\usepackage[utf8]{inputenc}
\usepackage[OT1,LY1,T1]{fontenc}
\usepackage[scaled=1.09]{zlmtt}
-\usepackage{textcomp}
\usepackage{fonttable,lipsum,array,booktabs}
+\usepackage{xcolor}
\usepackage{caption}
\captionsetup[table]{%
format = plain ,
@@ -77,6 +77,10 @@
\hb@xt@ \z@{\hss \hb@xt@ 1.5em{\@thefnmark.\hss}}%
#1%
}
+\def\theCodelineNo{%
+ \reset@font\scriptsize
+ \color{gray}\arabic{CodelineNo}%
+}
\makeatother
\begin{document}
\DocInput{\jobname.dtx}
@@ -84,7 +88,7 @@
%</driver>
% \fi
%
-% \CheckSum{285}
+% \CheckSum{274}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -107,6 +111,10 @@
%
% \MakeShortVerb{\"}
%
+% \changes{v2.2}{2022/11/15}{Rename the macros \cs{textin},
+% \cs{textsu}, \cs{textnu} and \cs{textde}}
+% \changes{v2.2}{2022/11/15}{Update the fonts to v.2.0, adjust the
+% package}
% \changes{v2.1}{2019/07/20}{Fix a bug in handling of alias keys}
% \changes{v2.0}{2019/07/07}{Add the `scaled' key as requested by FMi}
% \changes{v2.0}{2019/07/07}{Use NFSS scheme for fonts mapping}
@@ -127,7 +135,7 @@
% \noindent
% This package provides the necessary files to use the
% \textsf{Chivo} fonts with LaTeX. \textsf{Chivo} is a set of
-% fourteen fonts provided by Héctor Gatti \& Omnibus-Type Team under
+% eighteen fonts provided by Héctor Gatti \& Omnibus-Type Team under
% the Open Font License (OFL).
% \end{abstract}
%
@@ -136,14 +144,14 @@
% \section{Introduction}
% \label{sec:introduction}
%
-% \textsf{Chivo}\footnote{Copyright \textcopyright\ 2011--2019,
-% Omnibus-Type (\url{https://www.omnibus-type.com})} is a set of
-% fourteen fonts created by Héctor Gatti \& Omnibus-Type Team and
-% provided by Omnibus-Type under the SIL Open Font License, Version
-% 1.1. From the web page:
+% \textsf{Chivo}\footnote{Copyright \textcopyright\ 2019, Omnibus-Type
+% (\url{https://www.omnibus-type.com}).} is a set of eighteen fonts
+% created by Héctor Gatti \& Omnibus-Type Team and provided by
+% Omnibus-Type under the SIL Open Font License, Version 1.1. From the
+% readme:
% \begin{quote}
% ``Chivo (`goat' in Spanish) is the first Omnibus-Type
-% neo-grotesque typeface family. It has 7 weight variants, plus
+% neo-grotesque typeface family. It has 9 weight variants, plus
% matching italics. Its solidness and balanced strokes give Chivo
% both elegance and practicality. Chivo Regular works perfectly in
% long-reading texts, while Chivo Black is ideal for headlines,
@@ -151,9 +159,9 @@
% indispensable ally for any designer.''
% \end{quote}
%
-% The fonts were obtained from Omni-Type web
-% page\footnote{\url{https://www.omnibus-type.com/fonts/chivo/}}.
-% (v1.007, 14~fonts, 843~glyphs each).
+% The fonts were obtained from Omnibus-Type GitHub
+% repository\footnote{\url{https://github.com/Omnibus-Type/Chivo}}
+% (v2.002, 18~fonts, 877~glyphs each).
%
% \section{Installation}
% \label{sec:installation}
@@ -167,9 +175,9 @@
% The fonts can be used with traditional (pdf)TeX engine and newer
% XeTeX and LuaTeX engines which can access OTF fonts directly. They
% are described below. In general, this bundle tries not to be smart
-% and loads only \pkg{kvoptions.sty}, \pkg{mweights.sty},
-% \pkg{fontaxes.sty} or \pkg{fontspec.sty}, depending on the used
-% engine. As the result, some work must be done by the user.
+% and loads only \pkg{kvoptions.sty} and \pkg{fontaxes.sty} or
+% \pkg{fontspec.sty}, depending on the used engine. As the result,
+% some work must be done by the user.
%
% \subsection{Engine independent options}
% \label{sec:engine-indep-opti}
@@ -182,18 +190,21 @@
% Loading the package changes the document's sans serif font to
% \textsf{Chivo}. The package offers some options.
%
-% \DescribeMacro{thin\,\textbar\,light}
+% \DescribeMacro{thin\,\textbar\,extralight\,\textbar\,light}
% \DescribeMacro{regular\,\textbar\,medium}
-% The default font series is set with one of "thin", "light",
-% "regular" or "medium"~-- "regular" is the default. It can be
-% changed like this:
+% The default font series is set with one of "thin", "extralight",
+% "light", "regular" or "medium"~-- "regular" is the default. It can
+% be changed like this:
% \begin{quote}
% "\usepackage[medium]{Chivo}"
% \end{quote}
%
+% \DescribeMacro{semibold\,\textbar\,bold}
% \DescribeMacro{bold\,\textbar\,extrabold\textbar\,black}
-% The default bold series is set with one of "bold", "extrabold" or
-% "black"~-- "bold" is the default.
+% The default bold series is set with one of "semibold", "bold",
+% "extrabold" or "black"~-- "bold" is the default.
+%
+% \clearpage
%
% \DescribeMacro{lining\,\textbar\,oldstyle}
% \DescribeMacro{proportional\,\textbar\,tabular}
@@ -232,30 +243,35 @@
% does not load the respective packages, it is up to user to load
% them, e.g.:
% \begin{quote}
-% "\usepackage[T1]{fontenc}" \\
% "\usepackage{Chivo}" \\
-% "\usepackage{textcomp}"
+% "\usepackage[T1]{fontenc}"
% \end{quote}
%
% Chivo fonts provide a rich set of figures (see
% table~\ref{tab:figures}). With traditional engines,
% \pkg{fontaxes.sty} is loaded and the command \cmd{\fontversion} is
% available to switch between "lining", "oldstyle", "tabular" and
-% "proportional" styles and alignments. For other versions the
-% following macros are provided:
+% "proportional" styles and alignments. For other versions the macros
+% below are provided. Note that the names of these macros used to be
+% \cs{textsu}, \cs{textin}\footnote{This macro is defined by the
+% \pkg{hyperref} package.}, \cs{textnu} and \cs{textde}\footnote{These
+% macros have a great potential to clash with \cs{babeltags}
+% definitions.}. The is a backward incompatible change in v2.2 of
+% this package:
% \begin{itemize}
-% \item "\textsu" renders its argument in superior figures.
-% "\textsu{123}" produces \textsu{123}. The corresponding
-% declaration is "\sufigures".
-% \item "\textin" renders its argument in inferior figures.
-% "\textin{123}" produces \textin{123}. The corresponding
-% declaration is "\infigures".
-% \item "\textnu" renders its argument in numerator figures.
-% "\textnu{123}" produces \textnu{123}. The corresponding
-% declaration is "\nufigures".
-% \item "\textde" renders its argument in denominator figures.
-% "\textde{123}" produces \textde{123}. The corresponding
-% declaration is "\defigures".
+% \item "\textsuperior" renders its argument in superior figures. \\
+% "\textsuperior{123}" produces \textsuperior{123}. The
+% corresponding declaration is "\sufigures".
+% \item "\textinferior" renders its argument in inferior figures. \\
+% "\textinferior{123}" produces \textinferior{123}. The
+% corresponding declaration is "\infigures".
+% \item "\textnumerator" renders its argument in numerator figures. \\
+% "\textnumerator{123}" produces \textnumerator{123}. The
+% corresponding declaration is "\nufigures".
+% \item "\textdenominator" renders its argument in denominator
+% figures. \\
+% "\textdenominator{123}" produces \textdenominator{123}. The
+% corresponding declaration is "\defigures".
% \end{itemize}
%
% \subsection{XeLaTeX and LuaLaTeX specific notes}
@@ -348,9 +364,15 @@
% {\itshape\lipsum[1]\lipsum*[2] \quad 1234567890}
%
% \subsection*{Medium}
-% {\fontseries{sb}\selectfont\lipsum[1]\lipsum*[2] \quad 1234567890}
+% {\fontseries{medium}\selectfont\lipsum[1]\lipsum*[2] \quad 1234567890}
%
% \subsection*{Medium Italic}
+% {\fontseries{medium}\selectfont\itshape\lipsum[1]\lipsum*[2] \quad 1234567890}
+%
+% \subsection*{Semi bold}
+% {\fontseries{sb}\selectfont\lipsum[1]\lipsum*[2] \quad 1234567890}
+%
+% \subsection*{Semi bold Italic}
% {\fontseries{sb}\selectfont\itshape\lipsum[1]\lipsum*[2] \quad 1234567890}
%
% \subsection*{Bold}
@@ -440,38 +462,30 @@
%<*package>
% \end{macrocode}
%
-% Require the packages \pkg{ifxetex.sty} and \pkg{ifluatex.sty}:
+% Require the package \pkg{iftex.sty}:
% \begin{macrocode}
-\RequirePackage{ifxetex}
-\RequirePackage{ifluatex}
+\RequirePackage{iftex}
% \end{macrocode}
%
% First, we need a switch to know which engine is used:
% \begin{macrocode}
\newif\ifChivo@otf
-\ifxetex % we are in XeTeX
+\iftutex % we are in XeTeX or LuaTeX
\Chivo@otftrue
\else
- \ifluatex % we are in LuaTeX
- \Chivo@otftrue
- \else
- \Chivo@otffalse
- \fi
+ \Chivo@otffalse
\fi
% \end{macrocode}
%
% Load the packages we rely on:
% \pkg{fontspec.sty}\footnote{\url{https://www.ctan.org/pkg/fontspec}}
% for LuaTeX and XeTeX, or
-% \pkg{mweights.sty}\footnote{\url{https://www.ctan.org/pkg/mweights}}
-% and
% \pkg{fontaxes.sty}\footnote{\url{https://www.ctan.org/pkg/fontaxes}}
% for (pdf)LaTeX:
% \begin{macrocode}
\ifChivo@otf
\RequirePackage{fontspec}
\else
- \RequirePackage{mweights}
\RequirePackage{fontaxes}
\fi
% \end{macrocode}
@@ -494,9 +508,11 @@
% declare them as boolean options.
% \begin{macrocode}
\DeclareBoolOption{thin}
+\DeclareBoolOption{extralight}
\DeclareBoolOption{light}
\DeclareBoolOption{regular}
\DeclareBoolOption{medium}
+\DeclareBoolOption{semibold}
\DeclareBoolOption{bold}
\DeclareBoolOption{extrabold}
\DeclareBoolOption{black}
@@ -559,7 +575,7 @@
%
% Execute the default options and process the rest.
% \begin{macrocode}
-\setkeys{Chivo}{regular,bold,lining,proportional}
+\kvsetkeys{Chivo}{regular,bold,lining,proportional}
\ProcessKeyvalOptions{Chivo}
% \end{macrocode}
%
@@ -574,15 +590,15 @@
\newcommand*\Chivo@otf@bolditalic{}
% \end{macrocode}
%
-% Definition for "thin", "light", "regular" and "medium" keys for all
-% engines:
+% Definition for "thin", "extralight", "light", "regular" and "medium"
+% keys for all engines:
% \begin{macrocode}
\ifChivo@regular
\ifChivo@otf
\def\Chivo@otf@regular{Regular}
\def\Chivo@otf@italic{Italic}
\else
- \def\mdseries@sf{m}
+ \DeclareFontSeriesDefault[sf]{md}{m}
\fi
\fi
\ifChivo@medium
@@ -590,7 +606,7 @@
\def\Chivo@otf@regular{Medium}
\def\Chivo@otf@italic{MediumItalic}
\else
- \def\mdseries@sf{sb}
+ \DeclareFontSeriesDefault[sf]{md}{medium}
\fi
\fi
\ifChivo@light
@@ -598,7 +614,15 @@
\def\Chivo@otf@regular{Light}
\def\Chivo@otf@italic{LightItalic}
\else
- \def\mdseries@sf{l}
+ \DeclareFontSeriesDefault[sf]{md}{l}
+ \fi
+\fi
+\ifChivo@extralight
+ \ifChivo@otf
+ \def\Chivo@otf@regular{ExtraLight}
+ \def\Chivo@otf@italic{ExtraLightItalic}
+ \else
+ \DeclareFontSeriesDefault[sf]{md}{el}
\fi
\fi
\ifChivo@thin
@@ -606,19 +630,28 @@
\def\Chivo@otf@regular{Thin}
\def\Chivo@otf@italic{ThinItalic}
\else
- \def\mdseries@sf{el}
+ \DeclareFontSeriesDefault[sf]{md}{ul}
\fi
\fi
% \end{macrocode}
%
-% Definition for "bold", "extrabold" and "black" keys for all engines:
+% Definition for "semibold", "bold", "extrabold" and "black" keys for
+% all engines:
% \begin{macrocode}
\ifChivo@bold
\ifChivo@otf
\def\Chivo@otf@bold{Bold}
\def\Chivo@otf@bolditalic{BoldItalic}
\else
- \def\bfseries@sf{b}
+ \DeclareFontSeriesDefault[sf]{bf}{b}
+ \fi
+\fi
+\ifChivo@semibold
+ \ifChivo@otf
+ \def\Chivo@otf@bold{SemiBold}
+ \def\Chivo@otf@bolditalic{SemiBoldItalic}
+ \else
+ \DeclareFontSeriesDefault[sf]{bf}{sb}
\fi
\fi
\ifChivo@extrabold
@@ -626,7 +659,7 @@
\def\Chivo@otf@bold{ExtraBold}
\def\Chivo@otf@bolditalic{ExtraBoldItalic}
\else
- \def\bfseries@sf{eb}
+ \DeclareFontSeriesDefault[sf]{bf}{eb}
\fi
\fi
\ifChivo@black
@@ -634,7 +667,7 @@
\def\Chivo@otf@bold{Black}
\def\Chivo@otf@bolditalic{BlackItalic}
\else
- \def\bfseries@sf{ub}
+ \DeclareFontSeriesDefault[sf]{bf}{ub}
\fi
\fi
% \end{macrocode}
@@ -681,29 +714,25 @@
\fa@naming@exception{figures}{{superior}{tabular}}{Sup}
\def\sufigures{\@nomath\sufigures
\fontfigurestyle{superior}\selectfont}
- \DeclareTextFontCommand{\textsu}{\sufigures}
- \let\textsuperior\textsu
+ \DeclareTextFontCommand{\textsuperior}{\sufigures}
\fa@naming@exception{figures}{{inferior}{proportional}}{Inf}
\fa@naming@exception{figures}{{inferior}{tabular}}{Inf}
\def\infigures{\@nomath\infigures
\fontfigurestyle{inferior}\selectfont}
- \DeclareTextFontCommand{\textin}{\infigures}
- \let\textinferior\textin
+ \DeclareTextFontCommand{\textinferior}{\infigures}
\fa@naming@exception{figures}{{numerators}{proportional}}{Numr}
\fa@naming@exception{figures}{{numerators}{tabular}}{Numr}
\def\nufigures{\@nomath\nufigures
\fontfigurestyle{numerators}\selectfont}
- \DeclareTextFontCommand{\textnu}{\nufigures}
- \let\textnumerator\textnu
+ \DeclareTextFontCommand{\textnumerator}{\nufigures}
\fa@naming@exception{figures}{{denominators}{proportional}}{Dnom}
\fa@naming@exception{figures}{{denominators}{tabular}}{Dnom}
\def\defigures{\@nomath\defigures
\fontfigurestyle{denominators}\selectfont}
- \DeclareTextFontCommand{\textde}{\defigures}
- \let\textdenominator\textde
+ \DeclareTextFontCommand{\textdenominator}{\defigures}
\fi
% \end{macrocode}
%
@@ -712,27 +741,31 @@
% \begin{macrocode}
\ifChivo@otf
\defaultfontfeatures[Chivo]{%
- Extension = .otf ,
- Ligatures = {TeX,Common} ,
- Scale = \Chivo@otf@scale ,
- UprightFont = *-\Chivo@otf@regular ,
- ItalicFont = *-\Chivo@otf@italic ,
- BoldFont = *-\Chivo@otf@bold ,
- BoldItalicFont = *-\Chivo@otf@bolditalic ,
- FontFace = {el}{n}{*-Thin} ,
- FontFace = {el}{it}{*-ThinItalic} ,
- FontFace = {l}{n}{*-Light} ,
- FontFace = {l}{it}{*-LightItalic} ,
- FontFace = {m}{n}{*-Regular} ,
- FontFace = {m}{it}{*-Italic} ,
- FontFace = {sb}{n}{*-Medium} ,
- FontFace = {sb}{it}{*-MediumItalic} ,
- FontFace = {b}{n}{*-Bold} ,
- FontFace = {b}{it}{*-BoldItalic} ,
- FontFace = {eb}{n}{*-ExtraBold} ,
- FontFace = {eb}{it}{*-ExtraBoldItalic} ,
- FontFace = {ub}{n}{*-Black} ,
- FontFace = {ub}{it}{*-BlackItalic} ,
+ Extension = .otf ,
+ Ligatures = {TeX,Common} ,
+ Scale = \Chivo@otf@scale ,
+ UprightFont = *-\Chivo@otf@regular ,
+ ItalicFont = *-\Chivo@otf@italic ,
+ BoldFont = *-\Chivo@otf@bold ,
+ BoldItalicFont = *-\Chivo@otf@bolditalic ,
+ FontFace = {ul}{n}{*-Thin} ,
+ FontFace = {ul}{it}{*-ThinItalic} ,
+ FontFace = {el}{n}{*-ExtraLight} ,
+ FontFace = {el}{it}{*-ExtraLightItalic} ,
+ FontFace = {l}{n}{*-Light} ,
+ FontFace = {l}{it}{*-LightItalic} ,
+ FontFace = {m}{n}{*-Regular} ,
+ FontFace = {m}{it}{*-Italic} ,
+ FontFace = {medium}{n}{*-Medium} ,
+ FontFace = {medium}{it}{*-MediumItalic} ,
+ FontFace = {sb}{n}{*-SemiBold} ,
+ FontFace = {sb}{it}{*-SemiBoldItalic} ,
+ FontFace = {b}{n}{*-Bold} ,
+ FontFace = {b}{it}{*-BoldItalic} ,
+ FontFace = {eb}{n}{*-ExtraBold} ,
+ FontFace = {eb}{it}{*-ExtraBoldItalic} ,
+ FontFace = {ub}{n}{*-Black} ,
+ FontFace = {ub}{it}{*-BlackItalic} ,
Numbers = {\Chivo@figurestyle,\Chivo@figurealign}
}
\fi
@@ -762,16 +795,18 @@
}
\else
\renewcommand*\familydefault{\sfdefault}
- \ifChivo@regular \else
- \edef\seriesdefault{\mdseries@sf}
- \fi
- \ifChivo@bold \else
- \edef\bfdefault{\bfseries@sf}
- \fi
\fi
\fi
% \end{macrocode}
%
+% Also set the TS1 subset supported by the fonts. LaTeX kernel sets
+% this as well, but we put it here for the sake of completeness:
+% \begin{macrocode}
+\ifChivo@otf \else
+ \DeclareEncodingSubset{TS1}{Chivo-*}{4}
+\fi
+% \end{macrocode}
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
@@ -783,4 +818,6 @@
% Local Variables:
% mode: doctex
% TeX-master: t
+% ispell-check-comments: exclusive
+% LaTeX-shortvrb-chars: (?\")
% End: