\documentclass[11pt]{article} \usepackage[textwidth=5.5in,textheight=8.5in]{geometry} \usepackage[T1]{fontenc} \usepackage{libertine} \usepackage{lettrine} \renewcommand{\ttfamily}{\fontencoding{OT1}\fontfamily{cmtt}\selectfont} \PassOptionsToPackage{urlcolor=black,colorlinks}{hyperref} \RequirePackage{hyperref} \usepackage{xcolor} \usepackage{longtable} \usepackage{multicol} \newcommand{\typeone}{type~\liningnums{1}} \begin{document} \title{\LaTeX\ Support for Linux Libertine and Biolinum Fonts} \author{Bob Tennent\\ \small\url{rdt@cs.queensu.ca}} \date{\today} \maketitle \thispagestyle{empty} \begin{small} \tableofcontents \end{small} \sloppy \clearpage \section{Introduction} This package provides support for use of the Linux Libertine and Linux Biolinum families of fonts in \LaTeX. Most features are usable with \LaTeX\ and \verb|dvips|, pdf\LaTeX, xe\LaTeX\ and lua\LaTeX; the features in Section~\ref{OpenType} are only usable with xe\LaTeX\ or lua\LaTeX. This package compatibly replaces several earlier packages (\texttt{libertine-type1}, \texttt{biolinum-type1}, \texttt{libertine}) and should provide partial compatibility with the obsolete \texttt{libertineotf} and \texttt{libertine-legacy} packages. \section{Installation} To install this package on a TDS-compliant \TeX\ system, unzip the file \begin{list}{}{}\item \verb\/install/fonts/libertine.tds.zip\ \end{list} at the root of an appropriate \verb\texmf\ tree, likely a personal or local tree. If necessary, update the file-name database (e.g., \verb\texhash\). Update the font-map files by enabling the Map file \verb\libertine.map\. \section{Basic Usage} For most purposes, simply add \begin{list}{}{}\item \verb|\usepackage{libertine}| \end{list} to the preamble of your document. This will activate Libertine as the main (seriffed) text font and Biolinum as the sans font. To activate LibertineMono as the monospaced font, use the \texttt{mono} (or \texttt{tt}) option. It is recommended that the font encoding be set to \verb\T1\ or \verb\LY1\ but the default \verb\OT1\ encoding is also supported. Available shapes in all series (except \texttt{tt}, which only has \texttt{it}) include: \begin{list}{}{}\item \begin{tabular}{ll} \texttt{it} & italic\\ \texttt{sc} & small caps\\ \texttt{scit} & italic small caps \end{tabular} \end{list} Slanted variants are not supported; the designed italic variants will be automatically substituted. The exceptions are the monospaced font and the bold series of Biolinum, for which designed italics are not currently available. Artificially slanted variants have been generated and treated as if they were italic. To activate Libertine (without Biolinum), use the \texttt{libertine} (or \texttt{rm}) option. Similarly, to activate Biolinum (without Libertine) use the \texttt{biolinum} (or \texttt{sf} or \texttt{ss}) option. To use Biolinum as the main text font (as well as the sans font), use the option \texttt{sfdefault} (which redefines \verb|\familydefault|, not \verb|\rmdefault|). \section{Advanced Usage} Lua\LaTeX\ and xe\LaTeX\ users who might prefer to use type~1 fonts or who wish to avoid \texttt{fontspec} may use the \texttt{type1} (or \texttt{nofontspec}) option; \verb\libertine-type1.sty\ and \verb\biolinum-type1.sty\ wrapper packages are included to provide compatibility with the older packages. For legacy documents that use only basic facilities of \verb\libertineotf\, a similar wrapper package \verb\libertineotf.sty\ is provided. The following features of the original \verb|libertine| or \verb|libertineotf| packages are \emph{not} supported: \begin{itemize} \item font-features such as \texttt{Ligatures} or \texttt{Scale} as option parameters \item the Outline or Shadow fonts \item commands \verb|\Lnnum|, \verb|\Lpnum|, \verb|\Lcnum|, etc. \item environments \texttt{Ltable} and \texttt{libertineenumerate} \end{itemize} If your documents use any of the features listed above, you may have to continue to use the \verb\libertineotf\ package (which is still available from CTAN) or access the opentype fonts directly using \texttt{fontspec}. The following options are available in all styles (except monospaced): \begin{list}{}{}\item \begin{tabular}{ll} \texttt{oldstyle} (\texttt{osf}) & old-style figures\\ \texttt{lining} (\texttt{nf}, \texttt{lf}) & lining figures\\ \texttt{proportional} (\texttt{p})& varying-width figures\\ \texttt{tabular} (\texttt{t}) & fixed-width figures\\ \end{tabular} \end{list} The defaults are \texttt{oldstyle} and \texttt{proportional}. These apply to both Libertine and Biolinum; to change the default figure style of just the Biolinum (sans) fonts, use options \begin{list}{}{}\item \texttt{sflining} (\texttt{sflf}) or \texttt{sfoldstyle} (\texttt{sfosf}, \texttt{osfss}) \item \texttt{sftabular} (\texttt{sft}) or \texttt{sfproportional} (\texttt{sfp}) \end{list} The \texttt{semibold} (\texttt{sb}) option will set \verb|\bfdefault| to \texttt{sb} to allow using the semi-bold series of Libertine; this has no effect on the Biolinum fonts, for which there is no semi-bold variant. The options \verb|scale=|<\emph{number}> (or \verb|scaled=|<\emph{number}>) will scale the Biolinum fonts but have no effect on the Libertine fonts. Similarly, the options \verb|ttscale=|<\emph{number}> (or \verb|ttscaled=|<\emph{number}>) will scale the LibertineMono font. Commands \verb|\oldstylenums{|\ldots\verb|}| and \verb|\oldstylenumsf{|\ldots\verb|}| are defined to allow for local use of old-style figures in Libertine and Biolinum, respectively, if lining figures is the default, and similarly \verb|\liningnums{|\ldots\verb|}| and \verb|\liningnumsf{|\ldots\verb|}|. Similarly, commands \verb|\tabularnums{|\ldots\verb|}| and \verb|\tabularnumsf{|\ldots\verb|}| are defined to allow local use of monospaced figures in Libertine or Biolinum, respectively, if proportional figures is the default, and similarly \verb|\proportionalnums{|\ldots\verb|}| and \verb|\proportionalnumsf{|\ldots\verb|}|. Superior numbers (for footnote markers) are available using \verb|\sufigures| or \verb|\textsu{|\ldots\verb|}|. \clearpage Macros \verb|\libertine|, \verb|\libertineSB|, \verb|\libertineOsF|, \verb|\libertineLF|, \verb|\libertineDisplay| and \verb|\libmono| select the Libertine family, the Libertine family with the semi-bold series as the \verb|bfdefault|, the Libertine family with OldStyle figures, the Libertine family with Lining Figures, the Libertine Display font, and the LibertineMono family, respectively. Macros \verb|\biolinum|, \verb|\biolinumOsF|, and \verb|\biolinumLF| select the Biolinum family, the Biolinum family with OldStyle figures, and the Biolinum family with Lining Figures, respectively. \section{OpenType Fonts} \label{OpenType} The features in this section are only available to xe\LaTeX\ and lua\LaTeX\ users. Macros \verb|\libertineGlyph{|\ldots\verb|}| and \verb|\biolinumGlyph{|\ldots\verb|}| produce the glyph named in the argument in the Libertine or Biolinum font, respectively; for example, in regular-weight and upright-shape, \verb|\libertineGlyph{seven.cap}| and \verb|\libertineGlyph{uniE10F}| both produce a lining~7 that matches the height of capital letters, as in \begin{list}{}{}\item K\libertineGlyph{seven.cap}L~\libertineGlyph{three.cap}N\libertineGlyph{six.cap} \end{list} Similarly, \verb|\biolinumKeyGlyph{|\ldots\verb|}| produces the named glyph in the Biolinum Keyboard font; for example: \verb|\biolinumKeyGlyph{seven}| produces \biolinumKeyGlyph{seven}. A large number of macros of the form \verb|\LKey|\ldots or \verb|\LMouse|\ldots are provided to simplify production of glyphs in the Biolinum Keyboard font; see Appendix~\ref{LKey}. Appendix~\ref{KeyboardGlyphs} has a table of the entire Linux Biolinum Keyboard font, with corresponding glyph name and codepoint. Macro \verb|\libertineInitialGlyph{|\ldots\verb|}| produces a glyph in the Libertine Initial font; Appendix~\ref{InitialGlyphs} has a table of some of the glyphs and an example of how these glyphs may be used. The fonts used for the features described above are in the \verb|/fonts/opentype/public/libertine| directory as follows: \begin{list}{}{}\item\small \begin{tabular}{lll} \multicolumn{1}{c}{\bf File name} & \multicolumn{1}{c}{\bf Internal name} & \multicolumn{1}{c}{\bf Description} \\ \hline \verb|LinBiolinum_RBO.otf| & \verb|LinBiolinumOBO| & sans serif bold italic (oblique) \\ \verb|LinBiolinum_RB.otf| & \verb|LinBiolinumOB| & sans serif bold \\ \verb|LinBiolinum_RI.otf| & \verb|LinBiolinumOI| & sans serif italic \\ \verb|LinBiolinum_R.otf| & \verb|LinBiolinumO| & sans serif regular \\ \verb|LinLibertine_RBI.otf| & \verb|LinLibertineOBI| & bold italic \\ \verb|LinLibertine_RB.otf| & \verb|LinLibertineOB| & bold \\ \verb|LinLibertine_RI.otf| & \verb|LinLibertineOI| & italic \\ \verb|LinLibertine_R.otf| & \verb|LinLibertineO| & regular \\ \verb|LinLibertine_RZI.otf| & \verb|LinLibertineOZI| & semibold italic \\ \verb|LinLibertine_RZ.otf| & \verb|LinLibertineOZ| & semibold \\ \verb|LinLibertine_MBO.otf| & \verb|LinLibertineMOBO| & mono bold italic (oblique) \\ \verb|LinLibertine_MB.otf| & \verb|LinLibertineMOB| & mono bold \\ \verb|LinLibertine_MO.otf| & \verb|LinLibertineMOO| & mono italic (oblique) \\ \verb|LinLibertine_M.otf| & \verb|LinLibertineMO| & mono \\ \verb|LinBiolinum_K.otf| & \verb|LinBiolinumOKb| & keyboard \\ \verb|LinLibertine_I.otf| & \verb|LinLibertineIO| & decorative capitals \\ \verb|LinLibertine_DR.otf| & \verb|LinLibertineDisplayO| & a display (titling) font \\ \end{tabular} \end{list} \section{Concluding Remarks} For compatible mathematics, it is recommended to use the \verb|newtxmath| package with the \verb|libertine| option. The original opentype fonts were created by Philipp H. Poll (\url{gillian@linuxlibertine.org}) and are licensed under the terms of the GNU General Public License (Version~2, with font exception) and under the terms of the Open Font License. For details look into the \verb|doc| directory of the distribution or at \begin{list}{}{}\item \url{http://www.linuxlibertine.org/} \end{list} The Glyph and KeyCap support was adapted from the original \verb\libertine\ package by Michael Niedermair. Three of the Libertine fonts were modified by Michael Sharpe (\url{msharpe@ucsd.edu}) using \texttt{fontforge} to correct minor problems, including adding three missing ligatures (\emph{\bfseries fl, ffl, ffi}) to the bold-italic font. The \typeone\ fonts were created using \verb|cfftot1| or \verb|fontforge|. The internal font-family names of the \typeone\ fonts have been changed to \verb|Linux Libertine T| and \verb|Linux Biolinum T| to avoid interfering with xe\LaTeX\ users who access system fonts. The support files were created using \verb|autoinst|. The support files are licensed under the terms of the LaTeX Project Public License. See Appendix~\ref{impl} for more detailed discussion of the implementation. Thanks to Herbert Voss, Patrick Gundlach, Silke Hofstra, Marc Penninga, Michael Sharpe, Denis Bitouz\'{e}, and Khaled Hosny for their assistance. The maintainer of this package is Bob Tennent (\url{rdt@cs.queensu.ca}) \clearpage \appendix \setlength{\fboxrule}{0.1pt} \section{Biolinum KeyCap Macros}\small\tt \label{LKey} \subsection{Special Keys} \begin{longtable}[l]{lll} Tux & \verb|\LKeyTux| & \LARGE\strut\fbox{\LKeyTux} \\ Win & \verb|\LKeyWin| & \LARGE\strut\fbox{\LKeyWin} \\ Menu & \verb|\LKeyMenu| & \LARGE\strut\fbox{\LKeyMenu} \\ Strg & \verb|\LKeyStrg| & \LARGE\strut\fbox{\LKeyStrg} \\ Ctrl & \verb|\LKeyCtrl| & \LARGE\strut\fbox{\LKeyCtrl} \\ Alt & \verb|\LKeyAlt| & \LARGE\strut\fbox{\LKeyAlt} \\ AltGr & \verb|\LKeyAltGr| & \LARGE\strut\fbox{\LKeyAltGr} \\ Shift & \verb|\LKeyShift| & \LARGE\strut\fbox{\LKeyShift} \\ Enter & \verb|\LKeyEnter| & \LARGE\strut\fbox{\LKeyEnter} \\ Tab & \verb|\LKeyTab| & \LARGE\strut\fbox{\LKeyTab} \\ CapsLock & \verb|\LKeyCapsLock| & \LARGE\strut\fbox{\LKeyCapsLock} \\ Pos & \verb|\LKeyPos| & \LARGE\strut\fbox{\LKeyPos} \\ Entf & \verb|\LKeyEntf| & \LARGE\strut\fbox{\LKeyEntf} \\ Einf & \verb|\LKeyEinf| & \LARGE\strut\fbox{\LKeyEinf} \\ Leer & \verb|\LKeyLeer| & \LARGE\strut\fbox{\LKeyLeer} \\ Esc & \verb|\LKeyEsc| & \LARGE\strut\fbox{\LKeyEsc} \\ Ende & \verb|\LKeyEnde| & \LARGE\strut\fbox{\LKeyEnde} \\ Back & \verb|\LKeyBack| & \LARGE\strut\fbox{\LKeyBack} \\ Up & \verb|\LKeyUp| & \LARGE\strut\fbox{\LKeyUp} \\ Dwon & \verb|\LKeyDown| & \LARGE\strut\fbox{\LKeyDown} \\ Left & \verb|\LKeyLeft| & \LARGE\strut\fbox{\LKeyLeft} \\ Right & \verb|\LKeyRight| & \LARGE\strut\fbox{\LKeyRight} \\ PgUp & \verb|\LKeyPgUp| & \LARGE\strut\fbox{\LKeyPgUp} \\ PgDown & \verb|\LKeyPgDown| & \LARGE\strut\fbox{\LKeyPgDown} \\ At & \verb|\LKeyAt| & \LARGE\strut\fbox{\LKeyAt} \\ Fn & \verb|\LKeyFn| & \LARGE\strut\fbox{\LKeyFn} \\ Home & \verb|\LKeyHome| & \LARGE\strut\fbox{\LKeyHome} \\ Del & \verb|\LKeyDel| & \LARGE\strut\fbox{\LKeyDel} \\ Space & \verb|\LKeySpace| & \LARGE\strut\fbox{\LKeySpace} \\ ScreenUp & \verb|\LKeyScreenUp| & \LARGE\strut\fbox{\LKeyScreenUp} \\ ScreenDown & \verb|\LKeyScreenDown| & \LARGE\strut\fbox{\LKeyScreenDown} \\ Ins & \verb|\LKeyIns| & \LARGE\strut\fbox{\LKeyIns} \\ End & \verb|\LKeyEnd| & \LARGE\strut\fbox{\LKeyEnd} \\ GNU & \verb|\LKeyGNU| & \LARGE\strut\fbox{\LKeyGNU} \\ PageUp & \verb|\LKeyPageUp| & \LARGE\strut\fbox{\LKeyPageUp} \\ PageDown & \verb|\LKeyPageDown| & \LARGE\strut\fbox{\LKeyPageDown} \\ Command & \verb|\LKeyCommand| & \LARGE\strut\fbox{\LKeyCommand} \\ OptionKey & \verb|\LKeyOptionKey| & \LARGE\strut\fbox{\LKeyOptionKey} \\ % F1 & \verb|\LKeyF{1}| & \LARGE\strut\fbox{\LKeyF{1}} \\ F2 & \verb|\LKeyF{2}| & \LARGE\strut\fbox{\LKeyF{2}} \\ F3 & \verb|\LKeyF{3}| & \LARGE\strut\fbox{\LKeyF{3}} \\ F4 & \verb|\LKeyF{4}| & \LARGE\strut\fbox{\LKeyF{4}} \\ F5 & \verb|\LKeyF{5}| & \LARGE\strut\fbox{\LKeyF{5}} \\ F6 & \verb|\LKeyF{6}| & \LARGE\strut\fbox{\LKeyF{6}} \\ F7 & \verb|\LKeyF{7}| & \LARGE\strut\fbox{\LKeyF{7}} \\ F8 & \verb|\LKeyF{8}| & \LARGE\strut\fbox{\LKeyF{8}} \\ F9 & \verb|\LKeyF{9}| & \LARGE\strut\fbox{\LKeyF{9}} \\ F10 & \verb|\LKeyF{10}| & \LARGE\strut\fbox{\LKeyF{10}} \\ F11 & \verb|\LKeyF{11}| & \LARGE\strut\fbox{\LKeyF{11}} \\ F12 & \verb|\LKeyF{12}| & \LARGE\strut\fbox{\LKeyF{12}} \\ F13 & \verb|\LKeyF{13}| & \LARGE\strut\fbox{\LKeyF{13}} \\ F14 & \verb|\LKeyF{14}| & \LARGE\strut\fbox{\LKeyF{14}} \\ F15 & \verb|\LKeyF{15}| & \LARGE\strut\fbox{\LKeyF{15}} \\ F16 & \verb|\LKeyF{16}| & \LARGE\strut\fbox{\LKeyF{16}} \\ % PAD0 & \verb|\LKeyPad{1}| & \LARGE\strut\fbox{\LKeyPad{0}} \\ PAD1 & \verb|\LKeyPad{1}| & \LARGE\strut\fbox{\LKeyPad{1}} \\ PAD2 & \verb|\LKeyPad{2}| & \LARGE\strut\fbox{\LKeyPad{2}} \\ PAD3 & \verb|\LKeyPad{3}| & \LARGE\strut\fbox{\LKeyPad{3}} \\ PAD4 & \verb|\LKeyPad{4}| & \LARGE\strut\fbox{\LKeyPad{4}} \\ PAD5 & \verb|\LKeyPad{5}| & \LARGE\strut\fbox{\LKeyPad{5}} \\ PAD6 & \verb|\LKeyPad{6}| & \LARGE\strut\fbox{\LKeyPad{6}} \\ PAD7 & \verb|\LKeyPad{7}| & \LARGE\strut\fbox{\LKeyPad{7}} \\ PAD8 & \verb|\LKeyPad{8}| & \LARGE\strut\fbox{\LKeyPad{8}} \\ PAD9 & \verb|\LKeyPad{9}| & \LARGE\strut\fbox{\LKeyPad{9}} \\ PAD10 & \verb|\LKeyPad{10}| & \LARGE\strut\fbox{\LKeyPad{10}} \\ PAD11 & \verb|\LKeyPad{11}| & \LARGE\strut\fbox{\LKeyPad{11}} \\ PAD12 & \verb|\LKeyPad{12}| & \LARGE\strut\fbox{\LKeyPad{12}} \\ PAD13 & \verb|\LKeyPad{13}| & \LARGE\strut\fbox{\LKeyPad{13}} \\ PAD14 & \verb|\LKeyPad{14}| & \LARGE\strut\fbox{\LKeyPad{14}} \\ \end{longtable} \clearpage \subsection{General Keyboard} \begin{longtable}[l]{lll} 0 & \verb|\LKey{zero}|,\verb|\LKey{0}| & \LARGE\strut\fbox{\LKey{zero}} \\ 9 & \verb|\LKey{nine}|,\verb|\LKey{9}| & \LARGE\strut\fbox{\LKey{nine}} \\ A & \verb|\LKey{A}| & \LARGE\strut\fbox{\LKey{A}} \\ Z & \verb|\LKey{Z}| & \LARGE\strut\fbox{\LKey{Z}} \\ \end{longtable} \subsection{Keyboard Shortcuts} \begin{longtable}[l]{lll} Strg-A & \verb|\LKeyStrgX{A}| & \LARGE\strut\fbox{\LKeyStrgX{A}} \\ Ctrl-A & \verb|\LKeyCtrlX{A}| & \LARGE\strut\fbox{\LKeyCtrlX{A}} \\ Shift-A & \verb|\LKeyShiftX{A}| & \LARGE\strut\fbox{\LKeyShiftX{A}} \\ Alt-A & \verb|\LKeyAltX{A}| & \LARGE\strut\fbox{\LKeyAltX{A}} \\ AltGr-A & \verb|\LKeyAltGrX{A}| & \LARGE\strut\fbox{\LKeyAltGrX{A}} \\ Shift-Strg-A & \verb|\LKeyShiftStrgX{A}| & \LARGE\strut\fbox{\LKeyShiftStrgX{A}} \\ Shift-Ctrl-A & \verb|\LKeyShiftCtrlX{A}| & \LARGE\strut\fbox{\LKeyShiftCtrlX{A}} \\ Shift-Alt-A & \verb|\LKeyShiftAltX{A}| & \LARGE\strut\fbox{\LKeyShiftAltX{A}} \\ Shift-AltGr-A & \verb|\LKeyShiftAltGrX{A}| & \LARGE\strut\fbox{\LKeyShiftAltGrX{A}} \\ Strg-Alt-A & \verb|\LKeyStrgAltX{A}| & \LARGE\strut\fbox{\LKeyStrgAltX{A}} \\ Strg-Alt-Entf & \verb|\LKeyStrgAltEnt| & \LARGE\strut\fbox{\LKeyStrgAltEnt} \\ Strg-Alt-Entf & \verb|\LKeyReset| & \LARGE\strut\fbox{\LKeyReset} \\ Ctrl-Alt-A & \verb|\LKeyCtrlAltX{A}| & \LARGE\strut\fbox{\LKeyCtrlAltX{A}} \\ Ctrl-Alt-Entf & \verb|\LKeyCtrlAltEnt| & \LARGE\strut\fbox{\LKeyCtrlAltEnt} \\ % Alt-F1 & \verb|\LKeyAltF{1}| & \LARGE\strut\fbox{\LKeyAltF{1}} \\ Alt-F2 & \verb|\LKeyAltF{2}| & \LARGE\strut\fbox{\LKeyAltF{2}} \\ Alt-F3 & \verb|\LKeyAltF{3}| & \LARGE\strut\fbox{\LKeyAltF{3}} \\ Alt-F4 & \verb|\LKeyAltF{4}| & \LARGE\strut\fbox{\LKeyAltF{4}} \\ Alt-F5 & \verb|\LKeyAltF{5}| & \LARGE\strut\fbox{\LKeyAltF{5}} \\ Alt-F6 & \verb|\LKeyAltF{6}| & \LARGE\strut\fbox{\LKeyAltF{6}} \\ Alt-F7 & \verb|\LKeyAltF{7}| & \LARGE\strut\fbox{\LKeyAltF{7}} \\ Alt-F8 & \verb|\LKeyAltF{8}| & \LARGE\strut\fbox{\LKeyAltF{8}} \\ Alt-F9 & \verb|\LKeyAltF{9}| & \LARGE\strut\fbox{\LKeyAltF{9}} \\ Alt-F10 & \verb|\LKeyAltF{10}| & \LARGE\strut\fbox{\LKeyAltF{10}} \\ Alt-F11 & \verb|\LKeyAltF{11}| & \LARGE\strut\fbox{\LKeyAltF{11}} \\ Alt-F12 & \verb|\LKeyAltF{12}| & \LARGE\strut\fbox{\LKeyAltF{12}} \\ Alt-F13 & \verb|\LKeyAltF{13}| & \LARGE\strut\fbox{\LKeyAltF{13}} \\ Alt-F14 & \verb|\LKeyAltF{14}| & \LARGE\strut\fbox{\LKeyAltF{14}} \\ Alt-F15 & \verb|\LKeyAltF{15}| & \LARGE\strut\fbox{\LKeyAltF{15}} \\ Alt-F16 & \verb|\LKeyAltF{16}| & \LARGE\strut\fbox{\LKeyAltF{16}} \\ % Strg-Alt-F1 & \verb|\LKeyStrgAltF{1}| & \LARGE\strut\fbox{\LKeyStrgAltF{1}} \\ Strg-Alt-F2 & \verb|\LKeyStrgAltF{2}| & \LARGE\strut\fbox{\LKeyStrgAltF{2}} \\ Strg-Alt-F3 & \verb|\LKeyStrgAltF{3}| & \LARGE\strut\fbox{\LKeyStrgAltF{3}} \\ Strg-Alt-F4 & \verb|\LKeyStrgAltF{4}| & \LARGE\strut\fbox{\LKeyStrgAltF{4}} \\ Strg-Alt-F5 & \verb|\LKeyStrgAltF{5}| & \LARGE\strut\fbox{\LKeyStrgAltF{5}} \\ Strg-Alt-F6 & \verb|\LKeyStrgAltF{6}| & \LARGE\strut\fbox{\LKeyStrgAltF{6}} \\ Strg-Alt-F7 & \verb|\LKeyStrgAltF{7}| & \LARGE\strut\fbox{\LKeyStrgAltF{7}} \\ Strg-Alt-F8 & \verb|\LKeyStrgAltF{8}| & \LARGE\strut\fbox{\LKeyStrgAltF{8}} \\ Strg-Alt-F9 & \verb|\LKeyStrgAltF{9}| & \LARGE\strut\fbox{\LKeyStrgAltF{9}} \\ Strg-Alt-F10 & \verb|\LKeyStrgAltF{10}| & \LARGE\strut\fbox{\LKeyStrgAltF{10}} \\ Strg-Alt-F11 & \verb|\LKeyStrgAltF{11}| & \LARGE\strut\fbox{\LKeyStrgAltF{11}} \\ Strg-Alt-F12 & \verb|\LKeyStrgAltF{12}| & \LARGE\strut\fbox{\LKeyStrgAltF{12}} \\ Strg-Alt-F13 & \verb|\LKeyStrgAltF{13}| & \LARGE\strut\fbox{\LKeyStrgAltF{13}} \\ Strg-Alt-F14 & \verb|\LKeyStrgAltF{14}| & \LARGE\strut\fbox{\LKeyStrgAltF{14}} \\ Strg-Alt-F15 & \verb|\LKeyStrgAltF{15}| & \LARGE\strut\fbox{\LKeyStrgAltF{15}} \\ Strg-Alt-F16 & \verb|\LKeyStrgAltF{16}| & \LARGE\strut\fbox{\LKeyStrgAltF{16}} \\ Ctrl-Alt-F1 & \verb|\LKeyCtrlAltF{1}| & \LARGE\strut\fbox{\LKeyCtrlAltF{1}} \\ Ctrl-Alt-F2 & \verb|\LKeyCtrlAltF{2}| & \LARGE\strut\fbox{\LKeyCtrlAltF{2}} \\ Ctrl-Alt-F3 & \verb|\LKeyCtrlAltF{3}| & \LARGE\strut\fbox{\LKeyCtrlAltF{3}} \\ Ctrl-Alt-F4 & \verb|\LKeyCtrlAltF{4}| & \LARGE\strut\fbox{\LKeyCtrlAltF{4}} \\ Ctrl-Alt-F5 & \verb|\LKeyCtrlAltF{5}| & \LARGE\strut\fbox{\LKeyCtrlAltF{5}} \\ Ctrl-Alt-F6 & \verb|\LKeyCtrlAltF{6}| & \LARGE\strut\fbox{\LKeyCtrlAltF{6}} \\ Ctrl-Alt-F7 & \verb|\LKeyCtrlAltF{7}| & \LARGE\strut\fbox{\LKeyCtrlAltF{7}} \\ Ctrl-Alt-F8 & \verb|\LKeyCtrlAltF{8}| & \LARGE\strut\fbox{\LKeyCtrlAltF{8}} \\ Ctrl-Alt-F9 & \verb|\LKeyCtrlAltF{9}| & \LARGE\strut\fbox{\LKeyCtrlAltF{9}} \\ Ctrl-Alt-F10 & \verb|\LKeyCtrlAltF{10}| & \LARGE\strut\fbox{\LKeyCtrlAltF{10}} \\ Ctrl-Alt-F11 & \verb|\LKeyCtrlAltF{11}| & \LARGE\strut\fbox{\LKeyCtrlAltF{11}} \\ Ctrl-Alt-F12 & \verb|\LKeyCtrlAltF{12}| & \LARGE\strut\fbox{\LKeyCtrlAltF{12}} \\ Ctrl-Alt-F13 & \verb|\LKeyCtrlAltF{13}| & \LARGE\strut\fbox{\LKeyCtrlAltF{13}} \\ Ctrl-Alt-F14 & \verb|\LKeyCtrlAltF{14}| & \LARGE\strut\fbox{\LKeyCtrlAltF{14}} \\ Ctrl-Alt-F15 & \verb|\LKeyCtrlAltF{15}| & \LARGE\strut\fbox{\LKeyCtrlAltF{15}} \\ Ctrl-Alt-F16 & \verb|\LKeyCtrlAltF{16}| & \LARGE\strut\fbox{\LKeyCtrlAltF{16}} \\ \end{longtable} \clearpage \subsection{Mouse Buttons (Three-Button Mice)} \begin{longtable}[l]{lll} Empty & \verb|\LMouseEmpty| & \LARGE\strut\fbox{\LMouseEmpty} \\ No & \verb|\LMouseN| & \LARGE\strut\fbox{\LMouseN} \\ Left & \verb|\LMouseL| & \LARGE\strut\fbox{\LMouseL} \\ Middle & \verb|\LMouseM| & \LARGE\strut\fbox{\LMouseM} \\ Right & \verb|\LMouseR| & \LARGE\strut\fbox{\LMouseR} \\ LeftRight & \verb|\LMouseLR| & \LARGE\strut\fbox{\LMouseLR} \\ \end{longtable} \subsection{Mouse Buttons (Two-Button Mice)} \begin{longtable}[l]{lll} Empty & \verb|\LMouseIIEmpty| & \LARGE\strut\fbox{\LMouseIIEmpty} \\ No & \verb|\LMouseIIN| & \LARGE\strut\fbox{\LMouseIIN} \\ Left & \verb|\LMouseIIL| & \LARGE\strut\fbox{\LMouseIIL} \\ Right & \verb|\LMouseIIR| & \LARGE\strut\fbox{\LMouseIIR} \\ LeftRight & \verb|\LMouseIILR| & \LARGE\strut\fbox{\LMouseIILR} \\ \end{longtable} \clearpage \section{Linux Biolinum Keyboard Glyphs}\small\tt \label{KeyboardGlyphs} \renewcommand\DeclareTextGlyphY[3]{\makebox[2.5cm]{\LARGE\strut\fbox{\biolinumKeyGlyph{#2}}} #2\\}% \catcode`\_=12% \begin{multicols}{2} \par\noindent \input{LinBiolinum_K} \end{multicols} \clearpage \section{The Linux Libertine Initial Font}\tt \label{InitialGlyphs} \subsection{A Selection of Glyphs} \renewcommand\DeclareTextGlyphY[3]{\makebox[2.0cm]{\LARGE\strut\fbox{\libertineInitialGlyph{#2}}} #2\\}% \catcode`\_=12% \begin{multicols}{4} \par\noindent \DeclareTextGlyphY{LinLibertine_I}{zero}{48} \DeclareTextGlyphY{LinLibertine_I}{one}{49} \DeclareTextGlyphY{LinLibertine_I}{two}{50} \DeclareTextGlyphY{LinLibertine_I}{three}{51} \DeclareTextGlyphY{LinLibertine_I}{four}{52} \DeclareTextGlyphY{LinLibertine_I}{five}{53} \DeclareTextGlyphY{LinLibertine_I}{six}{54} \DeclareTextGlyphY{LinLibertine_I}{seven}{55} \DeclareTextGlyphY{LinLibertine_I}{eight}{56} \DeclareTextGlyphY{LinLibertine_I}{nine}{57} \DeclareTextGlyphY{LinLibertine_I}{A}{65} \DeclareTextGlyphY{LinLibertine_I}{B}{66} \DeclareTextGlyphY{LinLibertine_I}{C}{67} \DeclareTextGlyphY{LinLibertine_I}{D}{68} \DeclareTextGlyphY{LinLibertine_I}{E}{69} \DeclareTextGlyphY{LinLibertine_I}{F}{70} \DeclareTextGlyphY{LinLibertine_I}{G}{71} \DeclareTextGlyphY{LinLibertine_I}{H}{72} \DeclareTextGlyphY{LinLibertine_I}{I}{73} \DeclareTextGlyphY{LinLibertine_I}{J}{74} \DeclareTextGlyphY{LinLibertine_I}{K}{75} \DeclareTextGlyphY{LinLibertine_I}{L}{76} \DeclareTextGlyphY{LinLibertine_I}{M}{77} \DeclareTextGlyphY{LinLibertine_I}{N}{78} \DeclareTextGlyphY{LinLibertine_I}{O}{79} \DeclareTextGlyphY{LinLibertine_I}{P}{80} \DeclareTextGlyphY{LinLibertine_I}{Q}{81} \DeclareTextGlyphY{LinLibertine_I}{R}{82} \DeclareTextGlyphY{LinLibertine_I}{S}{83} \DeclareTextGlyphY{LinLibertine_I}{T}{84} \DeclareTextGlyphY{LinLibertine_I}{U}{85} \DeclareTextGlyphY{LinLibertine_I}{V}{86} \DeclareTextGlyphY{LinLibertine_I}{W}{87} \DeclareTextGlyphY{LinLibertine_I}{X}{88} \DeclareTextGlyphY{LinLibertine_I}{Y}{89} \DeclareTextGlyphY{LinLibertine_I}{Z}{90} \end{multicols} % To generate a table of all the glyphs, uncomment the following lines: % %\begin{multicols}{2} %\par\noindent %\input{LinLibertine_I} %\end{multicols} \subsection{An Example} \rm \lettrine[lines=3,nindent=0pt]{\libertineInitialGlyph{L}}{orem} ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum. \lettrine[lines=3,nindent=0pt]{\libertineInitialGlyph{N}}{am} dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, vitae ornare odio metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. Pellentesque cursus luctus mauris. \clearpage \section{Implementation Notes} \label{impl} \subsection{Aims} Modern opentype and truetype fonts are not directly usable with traditional typesetting engines such as \LaTeX\ or pdf\LaTeX. On the other hand, documents which use traditional font-selection mechanisms cannot be processed by emerging new technologies such as xe\LaTeX\ and lua\LaTeX. One of the primary aims of the \texttt{libertine} package is, as much as possible, to allow documents to use Linux Libertine and Biolinum fonts compatibly with \emph{all} current \LaTeX\ engines. Another aim is maintainability: it should be possible to update the package easily when updated fonts become available. \subsection{The Fonts} Opentype Linux Libertine and Biolinum fonts (with \texttt{otf} extensions) may be downloaded from \url{http://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/}. There are a few problems with the current versions of the fonts (5.3.0). \begin{itemize} \item Currently, there is no bold-italic variant of the Biolinum family; an \emph{ad hoc} solution is to use \texttt{fontforge} to generate an artificially slanted version of the bold variant. \item Slanted (oblique) variants are not available from the upstream site. These could be generated easily but we have decided not to attempt to support slanted variants for the fonts; the italic (or fake-italic) variants will be silently substituted. \item The bold-italic variant of the Libertine family is missing several ligatures; the ligatures would be taken from the regular-weight italic variant, which is unacceptable. Michael Sharpe (\url{msharpe@ucsd.edu}) has generated the missing glyphs (\emph{\bfseries fl, ffl, ffi}) and added them to the \texttt{otf} file. \item Currently, Libertine Monospaced does not have bold, italic or bold-italic variants; \texttt{fontforge} has been used to generate artificially emboldened and/or slanted variants. \item When several of the fonts are opened in \texttt{fontforge}, warning messages are generated about errors in the glyph programs. Some of these are sufficient to cause failures or even crashes when conversion to \typeone\ format is attempted using \texttt{cfftot1}. Michael Sharpe has corrected the most serious of these. In some cases, \texttt{fontforge} has been used to convert the format, as it is less sensitive than \texttt{cfftot1} to faulty glyph programs. \end{itemize} In some \TeX\ distributions, the opentype and \typeone\ fonts are installed as system fonts, and xe\LaTeX\ or lua\LaTeX\ users may attempt to select the opentype fonts directly by their Postscript FontName. If \typeone\ versions with the \emph{same} FontName have been installed, the latter may be selected by the system font-selection mechanism. To avoid this, it is appropriate to modify the FontNames of the \texttt{otf} fonts before converting to \typeone\ format (but not \emph{distribute} these re-named \texttt{otf} fonts). The \typeone\ Libertine and Biolinum fonts distributed in this package have had the \texttt{O} (for Opentype) in their FontNames replaced by \texttt{T} (for Type~\liningnums{1}) using \texttt{fontforge}. This font-renaming must be done \emph{before} generating the \LaTeX-support files, or else \texttt{dvi2ps} will fail. \subsection{Generation of Support Files} The \texttt{otftotfm} tool of the \texttt{lcdftypetools} package and the \texttt{autoinst} script of the \texttt{fontools} package are convenient tools for generating \LaTeX\ support files for opentype families. To generate a \texttt{texmf} tree for the \texttt{libertine} package on a Unix-like system, one puts all the \texttt{otf} files to be supported for \LaTeX\ or pdf\LaTeX\footnote{Currently, all of the opentype fonts except the Initial and Keyboard fonts are supported for \LaTeX\ and pdf\LaTeX.} into a directory, creates a \texttt{texmf} sub-directory and executes \begin{verbatim} autoinst -target=./texmf -encoding=OT1,T1,LY1,TS1 \ -vendor=public -typeface=libertine -noupdmap \ -noswash -notitling -noornaments \ *.otf \end{verbatim} Then move to the \texttt{texmf} directory and do \begin{verbatim} rm -rf fonts/pl fonts/vpl fonts/truetype fonts/type42 mv fonts/enc/dvips/public fonts/enc/dvips/libertine mv fonts/map/dvips/public fonts/map/dvips/libertine \end{verbatim} to delete irrelevant sub-directories and re-name directories as required by TeXLive. A few additional steps are needed. \subsubsection{Renaming of the Encoding Files} \texttt{otftotfm} generates encoding files with filenames of the form \verb|a_xxxxxx|; to avoid filename conflicts with other packages, the files have been re-named to have a distinctive prefix using the command \begin{verbatim} rename_enc libertine lbtn \end{verbatim} executed in the \texttt{texmf} directory, where \verb|rename_enc| is a PERL script in \begin{verbatim} doc/fonts/libertine \end{verbatim} Then in \verb|fonts/map/dvips/libertine|, the map files can be concatenated into a single file \verb|libertine.map| and all instances of \verb|a_| changed to \verb|lbtn_|; the original \verb|map| files have been deleted. \subsubsection{Installation of the Fonts} The \texttt{otf} files after corrections (but before re-naming) are installed into the \texttt{texmf} tree in the following sub-directory: \begin{verbatim} fonts/opentype/public/libertine/ \end{verbatim} The \texttt{autoinst} script will normally use \texttt{cfftot1} to create \verb|pfb| files with appropriate internal names and filenames; but if more than one font family has been processed or if \texttt{cfftot1} runs into trouble, this may not happen. In that case, one must do the conversion font-by-font using either \texttt{cfftot1} or \texttt{fontforge}; the appropriate internal names and filenames are as specified in \verb|libertine.map|. The \texttt{pfb} files are installed into the \texttt{texmf} tree in the following sub-directory: \begin{verbatim} fonts/type1/public/libertine/ \end{verbatim} \subsubsection{The \texttt{fd} Files} The \texttt{autoinst} script generates a large number of files with \verb|.fd| extensions in the \verb|tex/latex/libertine/| directory. Recent versions will generate ``silent substitution'' rules for mapping \texttt{sl} to \texttt{it} and \texttt{bx} to \texttt{b}; if not, these have to be added by hand. \subsubsection{The \texttt{sty} Files} The \texttt{autoinst} script generates files with \verb|.sty| extensions in the \verb|tex/latex/libertine/| directory for each of the font families; but these are useless for xe\LaTeX\ and lua\LaTeX\ users and have been deleted. A \verb|libertine.sty| file has been generated ``by hand'' and is discussed in Section~\ref{sty}. \subsection{\texttt{libertine.sty}} \label{sty} This file implements the support for both \typeone\ and opentype usage; the choice is initially determined by the processing engine, but as some xe\LaTeX\ and lua\LaTeX\ users may prefer to avoid \texttt{fontspec}, a \texttt{type1} (or \texttt{nofontspec}) option is provided to change this. The \verb\...@scale\ commands are invoked in the \verb\fd\ files or when specifying fonts with \texttt{fontspec}; only the scale factors for Biolinum and Libertine Mono are adjustable using option parameters. If the \texttt{sfdefault} option has been used, the \verb|\familydefault| is set to the \emph{current} value of \verb|\sfdefault| (with no change to \verb|\rmdefault|). The use of \verb|\newfontfamily| rather than \verb|\addfontfeatures| avoids problems in the implementation of the latter for some fonts (including, unfortunately, Libertine). For the Mono and Keyboard font families, the Ligature and SmallCap features must be turned off. Commands to switch locally to oldstyle/lining/proportional/tabular numbers are defined; the definitions of \verb|\oldstylenums| must deal with possible pre-existing definitions. To implement the \verb|\...Glyph| commands, it is necessary to, essentially, iterate through all the \emph{defined} glyphs in the relevant opentype font. This is implemented by creating files \verb|LinLibertine_R.tex|, \verb|\LinBiolinum_R.tex|, \verb|LinBiolinum_K.tex| and \verb|LinLibertine_I.tex| which declare the glyph name (when available), unicode code point, and glyph index for every defined glyph. These files are created by using \texttt{fontforge} to generate a ``glyph map'' file (extension \verb|.g2n|) for the relevant font and then the small \texttt{C} program \verb|doc/fonts/libertine/g2ntotex.c| will convert this into the required \verb|.tex| file. The final step in \verb|libertine.sty| is to remove all default font features in \texttt{fontspec} in case other fonts will be activated by the user. \subsection{Additional \texttt{sty} Files} The \verb|tex/latex/libertine/| directory also contains three ``front-end'' files \verb|libertineotf.sty|, \verb|libertine-type1.sty|, and \verb|biolinum-type1.sty|, which provide partial compatibility with obsolete packages, primarily for legacy documents. Explicit options are passed on to \verb|libertine.sty|. \end{document}