summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3font.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3font.dtx')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3font.dtx251
1 files changed, 251 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3font.dtx b/Master/texmf-dist/source/latex/expl3/l3font.dtx
new file mode 100644
index 00000000000..0098dab3314
--- /dev/null
+++ b/Master/texmf-dist/source/latex/expl3/l3font.dtx
@@ -0,0 +1,251 @@
+% \iffalse
+%% File: l3font.dtx Copyright (C) 1990-2011 LaTeX3 project
+%%
+%% It may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This file is part of the ``expl3 bundle'' (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%%
+%% The released version of this bundle is available from CTAN.
+%%
+%% -----------------------------------------------------------------------
+%%
+%% The development version of the bundle can be found at
+%%
+%% http://www.latex-project.org/svnroot/experimental/trunk/
+%%
+%% for those people who are interested.
+%%
+%%%%%%%%%%%
+%% NOTE: %%
+%%%%%%%%%%%
+%%
+%% Snapshots taken from the repository represent work in progress and may
+%% not work or may contain conflicting material! We therefore ask
+%% people _not_ to put them into distributions, archives, etc. without
+%% prior consultation with the LaTeX Project Team.
+%%
+%% -----------------------------------------------------------------------
+%
+%<*driver|package>
+\RequirePackage{l3names}
+%</driver|package>
+%\fi
+\GetIdInfo$Id: l3font.dtx 2175 2011-03-03 12:16:46Z will $
+ {L3 Experimental Font Loading}
+%\iffalse
+%<*driver>
+%\fi
+\ProvidesFile{\filename.\filenameext}
+ [\filedate\space v\fileversion\space\filedescription]
+%\iffalse
+\documentclass[full,checktest]{l3doc}
+\begin{document}
+\DocInput{l3font.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+%
+% \title{The \textsf{l3font} package\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.}\\
+% ``Fonts''}
+% \author{\Team}
+% \date{\filedate}
+% \maketitle
+%
+% \begin{documentation}
+%
+% This module covers basic font loading commands.
+% Functions are provided to load font faces and extract various
+% properties from them.
+%
+% Some features within are specific \XeTeX\ and \LuaTeX; such functions
+% will be explicitly noted.
+%
+% This module is currently a work in progress as we incorporate \LaTeXe's
+% font loading into \pkg{expl3}. The successor to the NFSS will provide
+% (backwards compatible) user-level functions for font selection.
+%
+%
+% \section{Functions}
+%
+%
+% \begin{function}{\font_set:Nnn,\font_gset:Nnn,
+% \font_set:cnn,\font_gset:cnn}
+% \begin{syntax}
+% "\font_set:Nnn" <font cs> \Arg{font name} \Arg{font size}
+% \end{syntax}
+% Defines <cs> as a command to select the font defined by <font name>
+% at the <font size>. If the <font size> is empty, the font will be loaded
+% at its design size, which is usually specified by the font designer.
+% For fonts without a typical design size, this will usually be 10\,pt.
+% \end{function}
+%
+% \begin{function}{\font_set_eq:NN,\font_gset_eq:NN}
+% \begin{syntax}
+% "\font_set_eq:NN" <font cs1> <font cs2>
+% \end{syntax}
+% Copies <font cs2> into <font cs1>.
+% \end{function}
+%
+% \begin{function}{\font_set_to_current:N,\font_gset_to_current:N}
+% \begin{syntax}
+% "\font_set_to_current:N" <font cs>
+% \end{syntax}
+% Sets <font cs> to the font that is currently selected.
+% \end{function}
+%
+% \begin{function}{\font_if_null_p:N /(EXP) | \font_if_null:N / (TF)(EXP)}
+% \begin{syntax}
+% "\font_if_null:NTF" <font cs> \Arg{true} \Arg{false}
+% \end{syntax}
+% Conditional to switch whether the control sequence is the `null font'.
+% \end{function}
+%
+% \begin{function}{\font_suppress_not_found_error:,\font_enable_not_found_error:}
+% \begin{syntax}
+% "\font_suppress_not_found_error:"
+% "\font_enable_not_found_error:"
+% \end{syntax}
+% \emph{Not available in pdf\TeX.}
+% In LuaTeX or XeTeX, the error when a font is selected but does not exist
+% can be toggled with these two commands. The non-existance of a font can
+% then be tested with the "\font_if_null_p:N" conditional.
+% \end{function}
+%
+%
+%
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{l3font} implementation}
+%
+% \begin{macrocode}
+%<*package>
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
+\package_check_loaded_expl:
+%</package>
+%<*initex|package>
+% \end{macrocode}
+%
+%
+% \begin{macro}{\font_set:Nnn,\font_gset:Nnn,\font_set:cnn,\font_gset:cnn}
+% \begin{arguments}
+% \item csname \item fontname \item size (dimension)
+% \end{arguments}
+% Note that the fontname needs to be escaped appropriately in "xetex"
+% or "luatex".
+% \testfile{m3font001.lvt}
+% \begin{macrocode}
+\cs_new_protected:Npn \font_set:Nnn #1#2#3 { \tex_font:D #1 = #2 ~at~ #3 \scan_stop: }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \font_gset:Nnn #1#2#3 {
+ \tex_global:D \tex_font:D #1 = #2 ~at~ #3 \scan_stop:
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_generate_variant:Nn \font_set:Nnn {c}
+\cs_generate_variant:Nn \font_gset:Nnn {c}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\font_set_eq:NN}
+% \testfile*
+% \begin{macrocode}
+\cs_set_eq:NN \font_set_eq:NN \tex_let:D
+\cs_set_protected:Npn \font_gset_eq:NN { \tex_global:D \tex_let:D }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\font_set_to_current:N,\font_gset_to_current:N}
+% \testfile*
+% \begin{macrocode}
+\cs_set:Npn \font_set_to_current:N #1 {
+ \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D
+}
+\cs_set:Npn \font_gset_to_current:N #1 {
+ \tex_global:D \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\font_suppress_not_found_error:,\font_enable_not_found_error:}
+% \testfile* ^^A THIS IS A BIG LIE! NOT TESTED, BUT OH WELL
+% \begin{macrocode}
+\luatex_if_engine:TF
+{
+ \cs_new:Npn \font_suppress_not_found_error:
+ {\luatexsuppressfontnotfounderror=\c_one}
+ \cs_new:Npn \font_enable_not_found_error:
+ {\luatexsuppressfontnotfounderror=\c_zero}
+}
+{
+ \xetex_if_engine:TF
+ {
+ \cs_new:Npn \font_suppress_not_found_error:
+ {\suppressfontnotfounderror=\c_one}
+ \cs_new:Npn \font_enable_not_found_error:
+ {\suppressfontnotfounderror=\c_zero}
+ }
+ {
+ \cs_new:Npn \font_suppress_not_found_error:
+ {
+ \msg_kernel_warning:nnx {l3font} {cmd-pdftex-unavail}
+ {\font_suppress_not_found_error:}
+ }
+ }
+}
+\msg_kernel_new:nnn {l3font} {cmd-pdftex-unavail} {
+ The~ command~ `\exp_not:n{#1}'~ is~ not~ available~ for~ the~ pdfTeX~ format.
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\font_if_null_p:N}
+% \testfile*
+% \begin{macro}[TF]{\font_if_null:N}
+% \testfile*
+% \begin{macrocode}
+\prg_new_conditional:Nnn \font_if_null:N {p,TF,T,F} {
+ \if_meaning:w #1 \tex_nullfont:D
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+%</initex|package>
+% \end{macrocode}
+%
+% Show token usage:
+% \begin{macrocode}
+%<*showmemory>
+\showMemUsage
+%</showmemory>
+% \end{macrocode}
+%
+% \end{implementation}
+% \PrintIndex
+%
+% \endinput