From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- .../latex/contrib/fontspec/fontspec-doc-style.sty | 290 +++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 macros/latex/contrib/fontspec/fontspec-doc-style.sty (limited to 'macros/latex/contrib/fontspec/fontspec-doc-style.sty') diff --git a/macros/latex/contrib/fontspec/fontspec-doc-style.sty b/macros/latex/contrib/fontspec/fontspec-doc-style.sty new file mode 100644 index 0000000000..43fbc38442 --- /dev/null +++ b/macros/latex/contrib/fontspec/fontspec-doc-style.sty @@ -0,0 +1,290 @@ + + +\ProvidesPackage{fontspec-doc-style} + +\input{fontspec.dtx} +\ExplSyntaxOff + +\usepackage{fontspec,booktabs,caption,xcolor,flafter,fancyvrb,hologo,graphicx, + url,varioref,varwidth,microtype,tocloft,framed,xparse,docmute} + +%% Various labelling commands: +\newcommand*\name[1]{{#1}} +\newcommand*\opt[1]{\texttt{#1}} +\newcommand*\feat[1]{\texttt{#1}} + +\let\latin\textit +\def\eg{\latin{e.g.}} +\def\ie{\latin{i.e.}} +\def\Eg{\latin{E.g.}} +\def\Ie{\latin{I.e.}} +\def\etc{\@ifnextchar.{\latin{etc}}{\latin{etc.}\@}} + +\newcommand\note[1]{\unskip\footnote{#1}} + +\def\MacOSX{macOS} +\def\AAT{\textsc{aat}} +\def\ATSUI{\textsc{atsui}} + +\newcommand\NFSS{\textsc{nfss}} +\newcommand\XeLaTeX{\hologo{XeLaTeX}} +\newcommand\LuaLaTeX{\hologo{LuaLaTeX}} + +% ToC formatting: +\setlength\cftsubsecnumwidth{1.4\cftsubsecnumwidth} +%\def\@cfttocstart{\small\begin{multicols}{2}} +%\def\@cfttocfinish{\end{multicols}} + +\fvset{gobble=0} + +\captionsetup[table]{position=above} +\captionsetup[figure]{position=above} + + +%% Fonts + +\defaultfontfeatures{Numbers=OldStyle} +\IfFontExistsTF{AldusNovaPro-Book.otf} + { + \setmainfont{aldus-nova} + \setsansfont{palatino-sans-light} + } + { +\setmainfont{texgyrepagella}[ + Extension = .otf, + UprightFont = *-regular , + ItalicFont = *-italic , + BoldFont = *-bold , + BoldItalicFont = *-bolditalic , +] +\setsansfont{texgyreheros}[ + Extension = .otf, + UprightFont = *-regular , + ItalicFont = *-italic , + BoldFont = *-bold , + BoldItalicFont = *-bolditalic , +] + } +\setmonofont{lmmono10-regular.otf}[ + Numbers={Lining,SlashedZero}, + ItalicFont=lmmonoslant10-regular.otf, + BoldFont=lmmonolt10-bold.otf, + BoldItalicFont=lmmonolt10-boldoblique.otf, +] +\newfontfamily\ttcondensed{lmmonoltcond10-regular.otf} + +%% (La)TeX font-related declarations: +\linespread{1.05} % Pagella needs more space between lines +\frenchspacing % Remove ugly extra space after punctuation + +%% ToC +\def\@dotsep{1000} +\setcounter{tocdepth}{2} +\setlength\columnseprule{0.4pt} +\renewcommand\tableofcontents{\relax + \begin{multicols}{2}[\section*{\contentsname}]\relax + \@starttoc{toc}\relax + \end{multicols}} + + +%% Index +\setcounter{IndexColumns}{2} +\renewenvironment{theglossary} + {\small\list{}{} + \item\relax + \glossary@prologue\GlossaryParms + \let\item\@idxitem \ignorespaces + \def\pfill{\hspace*{\fill}}} + {\endlist} + + + +%% varioref definitions: +\labelformat{table}{Table~#1} +\labelformat{section}{Section~#1} +\labelformat{subsection}{Section~#1} + +\definecolor{niceblue}{rgb}{0.1,0.2,0.8} + + + + +%% EXAMPLES + +\newif\ifshowexamples +\showexamplestrue + +\newsavebox\X +\newsavebox\Y + +\newcounter{example} + +\newcommand\exref[1]{Example~\ref{ex:#1}} +\newcommand\Exref[1]{Example~\ref{ex:#1}} + +\newenvironment{Xexample}[3][] + {\VerbatimEnvironment\begin{Fexample}[#1]{#2}{#3}{X}} + {\end{Fexample}} + +\newenvironment{Lexample}[3][] + {\VerbatimEnvironment\begin{Fexample}[#1]{#2}{#3}{L}} + {\end{Fexample}} + +\newenvironment{Fexample}[4][] + {% + \def\options{#1}% + \def\filename{#2}% + \def\captiontext{#3}% + \def\prefix{#4} + \refstepcounter{example}% + \label{ex:\filename}% + \ifshowexamples + \IfFileExists{zzz-\theexample-\prefix-\filename.tex}{}{% + \immediate\write18{rm -f zzz-\theexample-* ;}% + }% + \fi + \VerbatimEnvironment + \begin{VerbatimOut}{zzz-\theexample-\prefix-\filename.tex}} +% text in the environment + {\end{VerbatimOut} + \begin{figure} + \setlength\parindent{0pt}% + \edef\@tempa{[gobble=0,fontsize=\noexpand\small,\options]}% + \savebox\X{% + \expandafter\BVerbatimInput + \@tempa{zzz-\theexample-\prefix-\filename.tex}% + }% + \IfFileExists{zzz-\theexample-\prefix-\filename.pdf}{} + {% + \edef\XXcmd{% + \unexpanded{% + \RequirePackage{luatex85} + \documentclass[margin=0.2mm]{standalone} + \usepackage{booktabs,ifthen,graphicx,xcolor,varwidth} + \usepackage{fontspec} + \defaultfontfeatures{Ligatures=TeX} + \begin{document} + \begin{varwidth}{0.7\linewidth} + \input} zzz-\theexample-\prefix-\filename.tex + \unexpanded{ + \end{varwidth} + \end{document} + }% + }% + \edef\1{% + \csname prog@\prefix\endcsname "\unexpanded\expandafter{\XXcmd}"; + printf '\@percentchar s' '\unexpanded\expandafter{\XXcmd}' > zzz-\theexample-\prefix-\filename-test.tex; + }% + \ifshowexamples + \immediate\write18{\unexpanded\expandafter{\1}}% + \fi + }% + \savebox\Y{% + \IfFileExists{zzz-\theexample-\prefix-\filename.pdf} + {\includegraphics{zzz-\theexample-\prefix-\filename.pdf}} + {\color{red}\itshape ---Example graphic not generated---}% + } + % TYPESETTING + \rule[0.5\baselineskip]{\columnwidth}{1pt}% + \vspace{-1.2ex}% + \def\@tempa{\small\textsf{Example~\theexample:~}}% + \settowidth\@tempdima{\@tempa\captiontext}% + \par + \ifdim\@tempdima>\linewidth + \settowidth\@tempdima{\@tempa}% + \@tempa\parbox[t]{\linewidth-\@tempdima}{\small\captiontext}% + \vspace{0.4\baselineskip}% + \else + \parbox{\linewidth}{\centering\@tempa~\captiontext}% + \fi + \par\rule[0.4\baselineskip]{\columnwidth}{0.4pt}\par + \ifdim\dimexpr\wd\X+\wd\Y>\linewidth\relax + \null\hfill\makebox[0pt][r]{\usebox\Y}\usebox\X + \else + \hfill\usebox\Y\hfill\usebox\X + \fi + \par\rule[0.5\baselineskip]{\columnwidth}{1pt} + \end{figure} +} + +\def\prog@X{xelatex + -jobname=zzz-\theexample-X-\filename\space} + +\def\prog@L{lualatex + -jobname=zzz-\theexample-L-\filename\space} + +%%%%%%%%%%%%%%%%%%%%%% + +\newcommand*\setexsize[1]{\let\examplesize#1} +\newcommand*\setverbwidth[1]{\def\auxwidth{#1}} + + + +\newcounter{argument} +\g@addto@macro\endmacro{\setcounter{argument}{0}} +\newcommand*\darg[1]{% + \stepcounter{argument}% + \noindent{\ttfamily\char`\#\theargument~:~}#1\par} +\newcommand*\doarg[1]{% + \stepcounter{argument}% + \noindent{\ttfamily\makebox[0pt][r]{[}\char`\#\theargument]:~}#1\par} + +\newcommand\unichar[2]{\textsc{\MakeLowercase{u+#1: #2}}} + +\newcommand\cmdbox[1]{% + \smallskip\par\noindent + \fbox{\begin{varwidth}{\linewidth} + #1% + \end{varwidth}}% + \smallskip +} +\def\CMD#1{\texttt{\null#1\unskip}} + + +\NewDocumentCommand \otf {somm} {% + \featname & #3 & \texttt{#4} + \IfBooleanT #1 { & \textdagger } + \\ +} +\newenvironment{features}[1]{% + \def\NOTE{} + \def\thisfeatname{#1}% + \def\featname{\thisfeatname~~\texttt=~~\null\gdef\featname{}}% + \begin{table} + \caption{Options for the OpenType font feature `\thisfeatname'.} + \edef\@tempa{\noexpand\label{feat:\thisfeatname}}\@tempa + \centering + \begin{tabular}{@{}l@{}l@{\hspace{0.5\tabcolsep}}l@{\hspace{0.5\tabcolsep}}l@{}} + \toprule + Feature & Option & Tag & \\ + \midrule +}{ + \bottomrule + \end{tabular} + \par\smallskip + \footnotesize + \textdagger\ These feature options can be disabled with \texttt{..Off} variants, and reset \\ to default state (neither explicitly on nor off) with \texttt{..Reset}. + \NOTE + \end{table} +} + + +%%%%%%%%%%% + +\def \MakePrivateLetters {% + \catcode `\@ = 11 + \catcode `\_ = 11 + \catcode `\: = 11 +} + +%% for LaTeX3 csnames +\catcode `\_= 11 + +\renewcommand\partname{Part} + + +% /© +% +% (COPYRIGHT GOES HERE) +% +% ©/ -- cgit v1.2.3