% \iffalse meta-comment % % Copyright (C) 2011 by Raphaël Pinson % --------------------------------------------------------------------------- % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % 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.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is Raphaël Pinson. % % This work consists of the files fontbook.dtx and fontbook.ins % and the derived filebase fontbook.sty. % % \fi % % \iffalse %<*driver> \ProvidesFile{fontbook.dtx} % %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{fontbook} %<*package> [2011/08/17 0.2 Generate a font book] % % %<*driver> \documentclass[a4paper]{ltxdoc} \usepackage{fontbook}[2011/07/05] \usepackage{xltxtra} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{fontbook.dtx} \PrintChanges \PrintIndex \end{document} % % \fi % % \CheckSum{69} % % \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 % Lower-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 % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % % \changes{0.2}{2011/08/17}{Fix some licenses and name} % \changes{0.1}{2011/07/05}{Converted to DTX file} % % \DoNotIndex{\newcommand,\newenvironment} % % \providecommand*{\url}{\texttt} % \GetFileInfo{fontbook.dtx} % \title{The \textsf{fontbook} package} % \author{Raphaël Pinson \\ \url{raphink@gmail.com}} % \date{\fileversion~from \filedate} % % \maketitle % % \section{Introduction} % % \XeTeX{} allows us to make use of pretty much all possible fonts. % With all the possible fonts that can be used and the many features provided % by OpenType fonts, it can be useful to compile a font book of your favorite % fonts, so you can find the one you need more easily. This is what the % \textsf{fontbook} package is about. % % % \section{Usage} % % To use this package, simply include it: % % \begin{verbatim} % \usepackage{fontbook} % \end{verbatim} % % \subsection{Package Options} % % This package provides several options to fine-tune the way its commands react. % % \subsubsection{The \textsf{sizes} option} % % The \textsf{sizes} option lets you define which sizes % are to be printed for each font. % By default, all sizes from \textsf{huge} to \textsf{tiny} downward % are used: % \makeatletter\textsf{\fontbook@allsizes}\makeatother. % This option can take a single value or a list % of comma-separated values: % % \begin{verbatim} % \usepackage[sizes={large,huge}]{fontbook} % \end{verbatim} % % \subsubsection{The \textsf{features} option} % % Similarly to the \textsf{sizes} option, the \textsf{features} option % lets you define which features you wish to print for each font. % By default, the following features are used: % \makeatletter\textsf{\fontbook@allfeatures}\makeatother. % This option can take a single value or a list % of comma-separated values: % % \begin{verbatim} % \usepackage[features=scshape]{fontbook} % \end{verbatim} % % \subsubsection{The \textsf{featuresize} option} % % By default, features are typeset in size % \makeatletter\textsf{\fontbook@defaultfeaturesize}\makeatother. % This can be changed by passing the desired size name % as the \textsf{featuresize} option: % % \begin{verbatim} % \usepackage[featuresize=huge]{fontbook} % \end{verbatim} % % \subsection{Package commands} % % \DescribeMacro{\setsampletext} % % Set the sample text used in the font demo. % % \DescribeMacro{\printfont} % % This is the main command of this package % It takes 2 mandatory arguments and 1 optional argument. % The 2 mandatory arguments are the font name, as passed to % \textsf{fontspec}, and the license. % The optional argument is the fontspec option that allow % to set OpenType features for example: % % \begin{verbatim} % \printfont[Ligatures=Rare]{Linux Libertine O}{Public Domain} % \end{verbatim} % % \StopEventually{} % % \section{Implementation} % % \iffalse %<*package> % \fi % % \begin{macrocode} \ProvidesPackage{fontbook} \RequirePackage{fontspec} \RequirePackage{xunicode} \RequirePackage{kvoptions} \RequirePackage{etoolbox} \SetupKeyvalOptions{ family=fontbook, prefix=fontbook@, } % \end{macrocode} %% Options % % % \begin{macro}{\fontbook@allsizes} % Sizes % \begin{macrocode} \def\fontbook@allsizes{% huge, LARGE, Large, large, normalsize, small, footnotesize, scriptsize, tiny} \expandafter\DeclareStringOption\expandafter[\fontbook@allsizes]{sizes} % \end{macrocode} % \end{macro} % % % \begin{macro}{\fontbook@allfeatures} % Features % \begin{macrocode} \def\fontbook@allfeatures{% scshape, itshape, bfseries} \expandafter\DeclareStringOption\expandafter[\fontbook@allfeatures]{features} \def\fontbook@defaultfeaturesize{large} \expandafter\DeclareStringOption\expandafter[\fontbook@defaultfeaturesize]{featuresize} \ProcessKeyvalOptions* % \end{macrocode} % \end{macro} % % % \begin{macro}{\fontbook@sampletext} % \begin{macrocode} \def\fontbook@sampletext{% Dans l'affliction éphémère qui m'accable, je teste la police d'affichage qui est utilisée sur cette page 1 2 3 4 5. } % \end{macrocode} % \end{macro} % % % \begin{macro}{\sampletext} % \begin{macrocode} \newcommand{\sampletext}[2][]{% {\par\csname#2\endcsname \csname#1\endcsname #2 #1\\ \fontbook@sampletext}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\setsampletext} % \begin{macrocode} \newcommand{\setsampletext}[1]{% \def\fontbook@sampletext{#1}} % \end{macrocode} % \end{macro} % % % \begin{macro}{\samplefeature} % \begin{macrocode} \newcommand{\samplefeature}[1]{% \sampletext[#1]{\fontbook@featuresize}} %% TODO: call font once %%%% print all variants % % \end{macrocode} % \end{macro} % % % \begin{macro}{\printfont} % \begin{macrocode} \newcommand{\printfont}[3][\empty]{% \fontspec[#1]{#2} \section*{#2 #1 --- Licence: #3} \ifx#1\empty \addcontentsline{toc}{section}{#2} \else \addcontentsline{toc}{subsection}{#1} \fi \expandafter\forcsvlist\expandafter\sampletext\expandafter{\fontbook@sizes} \expandafter\forcsvlist\expandafter\samplefeature\expandafter{\fontbook@features} \pagebreak } % \end{macrocode} % \end{macro} % % % \iffalse % % \fi % % \Finale \endinput