summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-07-14 22:58:10 +0000
committerKarl Berry <karl@freefriends.org>2010-07-14 22:58:10 +0000
commit827000f2ceadd8c4bd3fa95705d6f8eb1e5d4a7c (patch)
tree6a9345893893874235fbe876bca72e630f426923 /Master/texmf-dist/source
parentda2b0e2dcdfe8fa263cacd12145f31828f745a3a (diff)
fontspec update (14jul10)
git-svn-id: svn://tug.org/texlive/trunk@19458 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/fontspec/Makefile7
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec.dtx227
2 files changed, 120 insertions, 114 deletions
diff --git a/Master/texmf-dist/source/latex/fontspec/Makefile b/Master/texmf-dist/source/latex/fontspec/Makefile
index 64fc172348a..dc1e0deebb2 100644
--- a/Master/texmf-dist/source/latex/fontspec/Makefile
+++ b/Master/texmf-dist/source/latex/fontspec/Makefile
@@ -43,7 +43,9 @@ GENERATED = $(COMPILED) $(UNPACKED)
TESTS = $(shell ls testsuite/*.cls testsuite/*.tex testsuite/*.ltx)
-CTAN_FILES = $(SOURCE) $(COMPILED) $(EXAMPLES) $(TESTS)
+DOC_EXAMPLES = $(shell ls doc/*.pdf)
+
+CTAN_FILES = $(SOURCE) $(COMPILED) $(EXAMPLES) $(TESTS) $(DOC_EXAMPLES)
# Files grouped by installation location
UNPACKED_DOC = fontspec-luatex.tex fontspec-xetex.tex
@@ -73,7 +75,8 @@ DO_MAKEINDEX = makeindex -s gind.ist $(subst .dtx,,$<) >/dev/null 2>&1
all: $(GENERATED)
doc: $(COMPILED)
unpack: $(UNPACKED)
-ctan: check $(CTAN_ZIP)
+ctan: $(CTAN_ZIP)
+ echo $(DOCFILES)
tds: $(TDS_ZIP)
world: all ctan
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
index bbe70b83cce..791bdd8bc38 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
@@ -63,7 +63,7 @@ This work consists of this file fontspec.dtx
%<fontspec>\ProvidesPackage{fontspec}
%<patches>\ProvidesPackage{fontspec-patches}
%<*fontspec|patches>
- [2010/07/11 v2.0a Advanced font selection for XeLaTeX/LuaLaTeX]
+ [2010/07/14 v2.0b Advanced font selection for XeLaTeX/LuaLaTeX]
%</fontspec|patches>
%
%<*driver>
@@ -85,7 +85,10 @@ This work consists of this file fontspec.dtx
% \errorcontextlines=999 ^^A% Show up all my mistakes
%
% \title{The \textsf{fontspec} package}
-% \author{\textsc{Will Robertson} and \textsc{Khaled Hosny}}
+% \author{
+% \textsc{Will Robertson} and \textsc{Khaled Hosny}\\
+% \texttt{will.robertson@latex-project.org}
+% }
% \date{\filedate \qquad \fileversion}
%
% \maketitle
@@ -939,38 +942,34 @@ This work consists of this file fontspec.dtx
%
% OpenType fonts with optical scaling will exist in
% several discrete sizes, and these will be selected by \XeTeX\
-% \emph{automatically} determined by the current font size. The
+% \emph{automatically} determined by the current font size as in
+% \exref{optsize}, in which we've scaled down some large text in order to be
+% able to compare the difference for equivalent font sizes.
+%
+% The
% \opt{OpticalSize} option may be used to specify a different optical
% size.
-%
-% For the OpenType font Warnock Pro, we have three optically sized
-% variants: caption, subhead, and display. With \opt{OpticalSize} set
+% With \opt{OpticalSize} set
% to zero, no optical size font substitution is performed, as shown in
% \exref{optsize0}.
%
-% \begin{Lexample}{optsize0}{Optical size substitution is suppressed when set to zero.}
-% \fontspec[OpticalSize=0]{Warnock Pro Caption}
-% Warnock Pro optical sizes \\
-% \fontspec[OpticalSize=0]{Warnock Pro}
-% Warnock Pro optical sizes \\
-% \fontspec[OpticalSize=0]{Warnock Pro Subhead}
-% Warnock Pro optical sizes \\
-% \fontspec[OpticalSize=0]{Warnock Pro Display}
-% Warnock Pro optical sizes
-% \end{Lexample}
-%
-% Automatic OpenType optical scaling is in
-% \exref{optsize}, in which we've scaled down some large text in order to be
-% able to compare the difference for equivalent font sizes (this
-% gives the same output as we saw in the previous example for Warnock
-% Pro Display).
-%
-% \begin{Lexample}{optsize}{A demonstration of automatic optical size selection.}
-% \fontspec{Warnock Pro}
+% \begin{Xexample}{optsize}{A demonstration of automatic optical size selection.}
+% \fontspec{Latin Modern Roman}
% Automatic optical size \\
% \scalebox{0.4}{\Huge
% Automatic optical size}
-% \end{Lexample}
+% \end{Xexample}
+%
+% \begin{Xexample}{optsize0}{Optical size substitution is suppressed when set to zero.}
+% \fontspec[OpticalSize=0]{Latin Modern Roman 5 Regular}
+% Latin Modern optical sizes \\
+% \fontspec[OpticalSize=0]{Latin Modern Roman 8 Regular}
+% Latin Modern optical sizes \\
+% \fontspec[OpticalSize=0]{Latin Modern Roman 12 Regular}
+% Latin Modern optical sizes \\
+% \fontspec[OpticalSize=0]{Latin Modern Roman 17 Regular}
+% Latin Modern optical sizes
+% \end{Xexample}
%
% The \feat{SizeFeatures} feature (\vref*{sec:sizefeature}) can be
% used to specify exactly which optical sizes will be used for ranges
@@ -982,7 +981,7 @@ This work consists of this file fontspec.dtx
% {Size= 10-14, OpticalSize=10},
% {Size= 14-18, OpticalSize=14},
% {Size= 18-, OpticalSize=18}}
-% ]{Warnock Pro}
+% ]{Latin Modern Roman}
% \end{verbatim}
%
% \part{OpenType}
@@ -1022,7 +1021,7 @@ This work consists of this file fontspec.dtx
% \otf*{Common}{liga}
% \otf*{Contextual}{clig}
% \otf{Rare/Discretionary}{dlig}
-% \otf{Historical}{hlig}
+% \otf{Historic}{hlig}
% \otf{TeX}{tlig/trep}
% \end{features}
%
@@ -1031,7 +1030,7 @@ This work consists of this file fontspec.dtx
% \def\test#1#2{%
% #2 $\to$ {\addfontfeature{#1} #2}\\}
% \fontspec{Linux Libertine}
-% \test{Ligatures=Historical}{strict}
+% \test{Ligatures=Historic}{strict}
% \test{Ligatures=Rare}{wurtzite}
% \test{Ligatures=NoCommon}{firefly}
% \end{Lexample}
@@ -1223,7 +1222,7 @@ This work consists of this file fontspec.dtx
% \end{Xexample}
%
%
-% \subsection{StylisticSet}
+% \subsection{Stylistic Set variations}
%
% This feature selects a `Stylistic Set' variation,
% which usually corresponds to an alternate glyph style for a range of
@@ -1254,6 +1253,19 @@ This work consists of this file fontspec.dtx
% See \vref{sec:newfeatures} for a way to assign names to stylistic sets,
% which should be done on a per-font basis.
%
+% \subsection{Character Variants}
+%
+% Similar to the `Stylistic Sets' above, `Character Variations' are selected
+% numerically to adjust the output of (usually) a single character for the
+% particular font. These correspond to the OpenType features |cv01| to |cv99|.
+%
+% I don't have a font to demonstrate this with (please suggest one if you
+% know of a free font with this feature!), but the syntax is similar to that
+% above:
+% \begin{verbatim}
+% \fontspec[CharacterVariant={1,3,5}]{...}
+% \end{verbatim}
+%
% \subsection{Alternates}
%
% The \feat{Alternate} feature (for the raw OpenType feature |salt|) is used to access alternate font glyphs when variations exist in the font, such as in \exref{salt}.
@@ -1295,32 +1307,32 @@ This work consists of this file fontspec.dtx
% subtitutions with similar characteristics.
% Note the occasional inconsistency with which font features are labelled; a long-tailed `Q' could turn up anywhere!
%
-% \begin{Lexample}[firstline=2]{style-alt}{Example of the \opt{Alternate} option of the \feat{Style} feature.}
+% \begin{Xexample}[firstline=2]{style-alt}{Example of the \opt{Alternate} option of the \feat{Style} feature.}
% \Large
% \fontspec{Warnock Pro}
% K Q R k v w y \\
% \addfontfeature{Style=Alternate}
% K Q R k v w y
-% \end{Lexample}
+% \end{Xexample}
%
-% \begin{Lexample}[firstline=2]{style-hist}{Example of the \opt{Historic} option of the \feat{Style} feature.}
+% \begin{Xexample}[firstline=2]{style-hist}{Example of the \opt{Historic} option of the \feat{Style} feature.}
% \Large
% \fontspec{Adobe Jenson Pro}
% M Q Z \\
% \addfontfeature{Style=Historic}
% M Q Z
-% \end{Lexample}
+% \end{Xexample}
%
% In other features, larger breadths of changes can be seen, covering
% the style of an entire alphabet. See \exref{style-titl} and \exref{style-itrub}; in the latter, the \opt{Italic} option affects the Latin text and the \opt{Ruby} option the Japanese.
%
-% \begin{Lexample}[firstline=2]{style-titl}{Example of the \opt{TitlingCaps} option of the \feat{Style} feature.}
+% \begin{Xexample}[firstline=2]{style-titl}{Example of the \opt{TitlingCaps} option of the \feat{Style} feature.}
% \Large
% \fontspec{Adobe Garamond Pro}
% TITLING CAPS \\
% \addfontfeature{Style=TitlingCaps}
% TITLING CAPS
-% \end{Lexample}
+% \end{Xexample}
%
% \begin{Xexample}[firstline=2]{style-itrub}{Example of the \opt{Italic} and \opt{Ruby} options of the \feat{Style} feature.}
% \Large \def\kana{ようこそ ワカヨタレソ}
@@ -1364,14 +1376,15 @@ This work consists of this file fontspec.dtx
% \end{features}
%
% As briefly mentioned previously at the end of \vref{sec:letters},
-% the \opt{Uppercase} option will add a small amount of tracking between uppercase letters, seen in \exref{kernup}.
+% the \opt{Uppercase} option will add a small amount of tracking between uppercase letters, seen in \exref{kernup}, which uses the Romande fonts\footnote{\url{http://arkandis.tuxfamily.org/adffonts.html}} (thanks to Clea F. Rees for the suggestion).
%
-% \begin{Lexample}{kernup}{Adding extra kerning for uppercase letters.}
-% \fontspec{Warnock Pro}
-% UPPER-CASE EXAMPLE \\
+% \begin{Xexample}[firstline=2]{kernup}{Adding extra kerning for uppercase letters.}
+% \large
+% \fontspec{Romande ADF Std Bold}
+% UPPERCASE EXAMPLE \\
% \addfontfeature{Kerning=Uppercase}
-% UPPER-CASE EXAMPLE
-% \end{Lexample}
+% UPPERCASE EXAMPLE
+% \end{Xexample}
%
%
% \subsection{Font transformations}
@@ -1523,79 +1536,47 @@ This work consists of this file fontspec.dtx
%
% Because these font features can
% change which features are able to be selected for the font, they are selected
-% by \pkg{fontspec} before all others and will specifically select the \opt{ICU}
+% by \pkg{fontspec} before all others and, if \XeTeX\ is being used, will specifically select the \opt{ICU}
% renderer for this font, as described in \vref{sec:renderer}.
%
%
-% \iffalse
-% \subsubsection{\feat{Script} examples}
+% \subsubsection{\feat{Script} and \feat{Language} examples}
%
-% In the following examples, the same font is used to typeset the
-% verbatim input and the \XeTeX\ output. Because the \opt{Script} is
-% only specified for the output, the text is rendered incorrectly in
-% the verbatim input. Many examples of incorrect diacritic spacing as
+% In the following examples, the Code2000 font\footnote{\url{http://www.code2000.net/}}
+% is used to typeset the input without and without the OpenType Script applied. The text is only rendered correctly in the second case;
+% many examples of incorrect diacritic spacing as
% well as a lack of contextual ligatures and rearrangement can be
% seen. Thanks to \name{Jonathan Kew}, \name{Yves Codet} and
% \name{Gildas Hamel} for their contributions towards these examples.
%
-% \begingroup
-% \setverbwidth{0.5\textwidth}
-% \begin{opentypeexample}
-% \fontspec[Script=Arabic]{Code2000}
-% العربي
-% \end{opentypeexample}
-% \begin{opentypeexample}
-% \fontspec[Script=Devanagari]{Code2000}
-% हिन्दी
-% \end{opentypeexample}
-% \begin{opentypeexample}
-% \fontspec[Script=Bengali]{Code2000}
-% লেখ
-% \end{opentypeexample}
-% \begin{opentypeexample}
-% \fontspec[Script=Gujarati]{Code2000}
-% મર્યાદા-સૂચક નિવેદન
-% \end{opentypeexample}
-% \begin{opentypeexample}
-% \fontspec[Script=Malayalam]{Code2000}
-% നമ്മുടെ പാരബര്യ
-% \end{opentypeexample}
-% \begin{opentypeexample}
-% \fontspec[Script=Gurmukhi]{Code2000}
-% ਆਦਿ ਸਚੁ ਜੁਗਾਦਿ ਸਚੁ
-% \end{opentypeexample}
-% \begin{opentypeexample}
-% \fontspec[Script=Tamil]{Code2000}
-% தமிழ் தேடி
-% \end{opentypeexample}
-% \begin{opentypeexample}
-% \fontspec[Script=Hebrew]{Code2000}
-% רִדְתָּֽהּ
-% \end{opentypeexample}
-% \endgroup
-%
-% \subsubsection{\feat{Language} examples}
+% \begin{Xexample}[firstline=14,lastline=23]{script-lang}{An example of various Scripts and Languages.}
+% \def\testfeature#1#2{%^^A
+% \fontspec{\examplefont}#2 & \fontspec[#1]{\examplefont}#2\\[1ex]}
+% \def \examplefont{Code2000}
+% \def \arabictext{العربي}
+% \def \devanagaritext{हिन्दी}
+% \def \bengalitext{লেখ}
+% \def \gujaratitext{મર્યાદા-સૂચક નિવેદન}
+% \def \malayalamtext{നമ്മുടെ പാരബര്യ}
+% \def \gurmukhitext{ਆਦਿ ਸਚੁ ਜੁਗਾਦਿ ਸਚੁ}
+% \def \tamiltext{தமிழ் தேடி}
+% \def \hebrewtext{רִדְתָּֽהּ}
+% \def \vietnamesetext{cấp số mỗi}
+% \begin{tabular}{r@{\quad}l}
+% \testfeature{Script=Arabic}{\arabictext}
+% \testfeature{Script=Devanagari}{\devanagaritext}
+% \testfeature{Script=Bengali}{\bengalitext}
+% \testfeature{Script=Gujarati}{\gujaratitext}
+% \testfeature{Script=Malayalam}{\malayalamtext}
+% \testfeature{Script=Gurmukhi}{\gurmukhitext}
+% \testfeature{Script=Tamil}{\tamiltext}
+% \testfeature{Script=Hebrew}{\hebrewtext}
+% \def\examplefont{Doulos SIL}
+% \testfeature{Language=Vietnamese}{\vietnamesetext}
+% \end{tabular}
+% \end{Xexample}
%
-% Vietnamese requires careful diacritic placement:
-% \begingroup
-% \setexsize\Large
-% \begin{opentypeexample}
-% \fontspec{Doulos SIL}
-% cấp số mỗi \\
-% \addfontfeature{Language=Vietnamese}
-% cấp số mỗi
-% \end{opentypeexample}
-% \noindent Moldavian, as a typical example from Ralf Stubner's FPL Neu font:
-% \setexsize\Large
-% \begin{opentypeexample}
-% \fontspec{FPL Neu}
-% Ş ş Ţ ţ \\
-% \addfontfeature{Language=Moldavian}
-% Ş ş Ţ ţ
-% \end{opentypeexample}
-% \endgroup
%
-% \fi
%
% \subsubsection{Defining new scripts and languages}
%
@@ -1608,7 +1589,7 @@ This work consists of this file fontspec.dtx
% \newfontlanguage{Turkish}{TUR}
% \end{Verbatim}
% The first argument is the \pkg{fontspec} name, the second the OpenType
-% definition. The advantage to using these commands rather than \cmd\newfontfeature\
+% tag. The advantage to using these commands rather than \cmd\newfontfeature\
% (see \vref{sec:newfeatures}) is the error-checking that is performed when
% the script or language is requested.
%
@@ -2321,7 +2302,7 @@ This work consists of this file fontspec.dtx
% \LaTeX\ defines the macro \cmd\-\ to insert discretionary hyphenation points.
% However, it is hard-coded in \LaTeX\ to use the hyphen |-| character. Since \pkg{fontspec}
% makes it easy to change the hyphenation character on a per font basis, it would
-% be nice if \cmd\-\ adjusted automatically — and now it does.
+% be nice if \cmd\-\ adjusted automatically --- and now it does.
%
% \StopEventually{}
%
@@ -4827,8 +4808,8 @@ This work consists of this file fontspec.dtx
\zf@define@feature@option{Ligatures}{NoDiscretionary}{1}{5}{-dlig}
\zf@define@feature@option{Ligatures}{Contextual} {}{} {+clig}
\zf@define@feature@option{Ligatures}{NoContextual} {}{} {-clig}
-\zf@define@feature@option{Ligatures}{Historical} {}{} {+hlig}
-\zf@define@feature@option{Ligatures}{NoHistorical} {}{} {-hlig}
+\zf@define@feature@option{Ligatures}{Historic} {}{} {+hlig}
+\zf@define@feature@option{Ligatures}{NoHistoric} {}{} {-hlig}
\zf@define@feature@option{Ligatures}{Logos} {1}{6} {}
\zf@define@feature@option{Ligatures}{NoLogos} {1}{7} {}
\zf@define@feature@option{Ligatures}{Rebus} {1}{8} {}
@@ -4977,25 +4958,42 @@ This work consists of this file fontspec.dtx
\setkeys*[zf@feat]{Alternate}{#1}
\unless\ifx\XKV@rm\@empty
\def\XKV@tfam{Alternate}
- \fontspec_make_feature:nnn{17}{#1}{+salt=#1}
+ \fontspec_make_feature:nnx {17}{#1} { \fontspec_salt:n {#1} }
\fi
\clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist
}
% \end{macrocode}
%
% \begin{macrocode}
+\xetex_or_luatex:nnn { \cs_set:Npn \fontspec_salt:n #1 }
+ {+salt=#1} { +salt= \intexpr_eval:n {#1+1} }
+% \end{macrocode}
+%
+% \begin{macrocode}
\define@key[zf]{options}{Variant}{
\clist_set_eq:NN \l_fontspec_tmpa_clist \XKV@rm
\setkeys*[zf@feat]{Variant}{#1}
\unless\ifx\XKV@rm\@empty
\def\XKV@tfam{Variant}
- \fontspec_make_feature:nnx{18}{#1}{+ss\two@digits{#1}}
+ \fontspec_make_feature:nnx {18}{#1} { +ss \two@digits {#1} }
\fi
\clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist
}
\aliasfontfeature{Variant}{StylisticSet}
% \end{macrocode}
%
+% \begin{macrocode}
+\define@key[zf]{options}{CharacterVariant}{
+ \clist_set_eq:NN \l_fontspec_tmpa_clist \XKV@rm
+ \setkeys*[zf@feat]{CharacterVariant}{#1}
+ \unless\ifx\XKV@rm\@empty
+ \def\XKV@tfam{CharacterVariant}
+ \fontspec_make_feature:nnx {}{} { +cv \two@digits {#1} }
+ \fi
+ \clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist
+}
+% \end{macrocode}
+%
% \subsubsection{Style}
% \begin{macrocode}
\zf@define@font@feature{Style}
@@ -5059,12 +5057,17 @@ This work consists of this file fontspec.dtx
\setkeys*[zf@feat]{Annotation}{#1}
\unless\ifx\XKV@rm\@empty
\def\XKV@tfam{Alternate}
- \fontspec_make_feature:nnn{}{}{+nalt=#1}
+ \fontspec_make_feature:nnx {}{} { \fontspec_nalt:n {#1} }
\fi
\clist_set_eq:NN \XKV@rm \l_fontspec_tmpa_clist
}
% \end{macrocode}
%
+% \begin{macrocode}
+\xetex_or_luatex:nnn { \cs_set:Npn \fontspec_nalt:n #1 }
+ {+nalt=#1} { +nalt= \intexpr_eval:n {#1+1} }
+% \end{macrocode}
+%
% \subsubsection{Vertical}
% \begin{macrocode}
\zf@define@font@feature{Vertical}