├── sample.pdf ├── fonts └── FontAwesome.otf ├── README.md ├── resume.cls ├── l3docstrip.tex ├── l3xdvipdfmx.def ├── resume.tex ├── fontspec-patches.sty ├── fontspec.sty ├── expl3.sty ├── changepage.sty ├── l3unicode-data.def ├── titlesec.sty └── fontawesome.sty /sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonz/resume-template/HEAD/sample.pdf -------------------------------------------------------------------------------- /fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leonz/resume-template/HEAD/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## LaTeX Resume Template 2 | 3 | I haven't been able to find a LaTeX resume template that I liked, so I created my own. It's fairly basic, but in my opinion its readable and straightforward. I've provided a sample.pdf for reference. 4 | 5 | Feel free to use and modify as you wish. If you notice any errors, please help me out and submit a pull request. 6 | 7 | The files that I created are resume.tex and resume.cls. The rest of the files are supporting packages that I needed for a successful compile, and so you should use them. But I didn't write them. 8 | 9 | ## Installation 10 | 11 | Pull the entire directory as is, the supporting files are there for successful compilation. Any packages that are included but don't have an associated file were already on my system. Because the template uses FontAwesome, you should use XeLaTeX (PDFLaTeX won't work). 12 | 13 | The only file that you need to edit is `resume.tex`. The current file provides sample usage. 14 | 15 | When you're done, run this command in terminal (make sure XeLaTeX is installed first!): 16 | 17 | `xelatex resume.tex` 18 | 19 | A file `resume.pdf` will be created in the same directory. That's it! 20 | 21 | ## License 22 | 23 | The code that I created is licensed under the MIT license. The rest are copyright/licensed by their respective authors. 24 | 25 | -------------------------------------------------------------------------------- /resume.cls: -------------------------------------------------------------------------------- 1 | % File: resume.cls 2 | % Author: Leon Zaruvinsky 3 | % License: MIT License 4 | % Created: Fri Sep 05 06:00 PM 2014 E 5 | % Last Change: Tue Oct 28 1:43 AM 2015 E 6 | % 7 | 8 | \NeedsTeXFormat{LaTeX2e} 9 | \ProvidesClass{resume} 10 | 11 | \LoadClass{article} 12 | 13 | \RequirePackage{titlesec} 14 | \RequirePackage[ 15 | top = .3in, 16 | bottom = .3in, 17 | left = .5in, 18 | right = .5in 19 | ]{geometry} 20 | \RequirePackage{changepage} 21 | \RequirePackage[pdfborder={0 0 0}]{hyperref} 22 | \RequirePackage{fontspec} 23 | \RequirePackage{fontawesome} 24 | \RequirePackage{ragged2e} 25 | 26 | 27 | \newcommand{\name}[1]{ 28 | {\huge\raggedright\bfseries #1} 29 | } 30 | \newcommand{\info}[4]{ 31 | \begin{figure}[h!] 32 | \begin{minipage}[b]{.3\linewidth} 33 | \bfseries {\large \faEnvelope} \hspace*{0em} {\large #1} \newline {\Large \faPhoneSquare} \hspace*{0em} {\large #2} 34 | \end{minipage} 35 | \hspace{.3\linewidth} 36 | \begin{minipage}[b]{.3\linewidth} 37 | \bfseries {\Large \faTwitterSquare} \hspace*{0em} {\large #3} \newline {\Large \faGithubSquare} \hspace*{0em} {\large #4} 38 | \end{minipage} 39 | \end{figure} 40 | } 41 | 42 | \newcommand{\infoflat}[4]{ 43 | \noindent \hspace{-1.5em} \begin{tabular}{lr} 44 | {\name{#1}} 45 | & {\begin{tabular}{l l l} 46 | {\large \faEnvelope} {\large #2} & {\large \faPhone} {\large #3} & {\large \faGithub} {\large #4} 47 | \\ 48 | \end{tabular}} 49 | \end{tabular} 50 | } 51 | 52 | \titlespacing*{\subsection} 53 | {0pt}{14pt plus 2pt minus 2pt}{0pt plus 2pt minus 1pt} 54 | 55 | \titleformat{\section} 56 | {\Large\bfseries\raggedright} 57 | {}{0pt} 58 | {\vspace{-.3em}}[] 59 | 60 | \titleformat{\subsection} 61 | {\large\bfseries\raggedright} 62 | {}{20pt} 63 | {} 64 | 65 | 66 | \newcommand{\subsectiond}[2]{ 67 | \subsection[#1]{#1 \hspace*{.5em} \textnormal{#2}} 68 | } 69 | 70 | \newcommand{\subsectionp}[3]{ 71 | \subsection[#1]{#1 \hspace*{.5em} \textnormal{#2 \hfill #3}} 72 | } 73 | 74 | \newcommand{\desc}[1]{ 75 | \begin{adjustwidth}{20pt}{} 76 | \large \raggedright #1 77 | \end{adjustwidth} 78 | } 79 | -------------------------------------------------------------------------------- /l3docstrip.tex: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `l3docstrip.tex', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% l3docstrip.dtx (with options: `program') 8 | %% 9 | %% EXPERIMENTAL CODE 10 | %% 11 | %% Do not distribute this file without also distributing the 12 | %% source files specified above. 13 | %% 14 | %% Do not distribute a modified version of this file. 15 | %% 16 | %% File l3dosctrip.dtx Copyright (C) 2012 The LaTeX3 Project 17 | %% 18 | %% It may be distributed and/or modified under the conditions of the 19 | %% LaTeX Project Public License (LPPL), either version 1.3c of this 20 | %% license or (at your option) any later version. The latest version 21 | %% of this license is in the file 22 | %% 23 | %% http://www.latex-project.org/lppl.txt 24 | %% 25 | %% This file is part of the "l3kernel bundle" (The Work in LPPL) 26 | %% and all files in that bundle must be distributed together. 27 | %% 28 | %% The released version of this bundle is available from CTAN. 29 | %% 30 | %% ----------------------------------------------------------------------- 31 | %% 32 | %% The development version of the bundle can be found at 33 | %% 34 | %% http://www.latex-project.org/svnroot/experimental/trunk/ 35 | %% 36 | %% for those people who are interested. 37 | %% 38 | %%%%%%%%%%% 39 | %% NOTE: %% 40 | %%%%%%%%%%% 41 | %% 42 | %% Snapshots taken from the repository represent work in progress and may 43 | %% not work or may contain conflicting material! We therefore ask 44 | %% people _not_ to put them into distributions, archives, etc. without 45 | %% prior consultation with the LaTeX Project Team. 46 | %% 47 | %% ----------------------------------------------------------------------- 48 | %% 49 | \def\ExplFileDate{2012/06/08} 50 | \def\ExplFileName{l3docstrip} 51 | \def\ExplFileVersion{3787} 52 | \input docstrip % 53 | \def\checkOption<#1{% 54 | \ifcase 55 | \ifx*#10\else \ifx/#11\else 56 | \ifx+#12\else \ifx-#13\else 57 | \ifx<#14\else \ifx @#15\else 6\fi\fi\fi\fi\fi\fi\relax 58 | \expandafter\starOption\or 59 | \expandafter\slashOption\or 60 | \expandafter\plusOption\or 61 | \expandafter\minusOption\or 62 | \expandafter\verbOption\or 63 | \expandafter\moduleOption\or 64 | \expandafter\doOption\fi 65 | #1% 66 | } 67 | \def\moduleOption @@=#1>#2\endLine{% 68 | \maybeMsg{<@@=#1>}% 69 | \prepareActiveModule{#1}% 70 | } 71 | \begingroup 72 | \catcode`\_ = 12 % 73 | \long\gdef\prepareActiveModule#1{% 74 | \ifx\relax#1\relax 75 | \let\replaceModuleInLine\empty 76 | \else 77 | \def\replaceModuleInLine{% 78 | \replaceAllIn\inLine{__@@}{__#1}% 79 | \replaceAllIn\inLine{_@@}{__#1}% 80 | \replaceAllIn\inLine{@@}{__#1}% 81 | }% 82 | \fi 83 | } 84 | \endgroup 85 | \let\replaceModuleInLine\empty 86 | \long\def\replaceAllIn#1#2#3{% 87 | \long\def\tempa##1##2#2{% 88 | ##2\qMark\replaceAllInAuxIII#3##1% 89 | }% 90 | \edef#1{\expandafter\replaceAllInAuxI#1\qMark#2\qStop}% 91 | } 92 | \def\replaceAllInAuxI{% 93 | \expandafter\replaceAllInAuxII\tempa\replaceAllInAuxI\empty 94 | } 95 | \long\def\replaceAllInAuxII#1\qMark#2{#1} 96 | \long\def\replaceAllInAuxIII#1\qStop{} 97 | \def\normalLine#1\endLine{% 98 | \maybeMsg{.}% 99 | \def\inLine{#1}% 100 | \replaceModuleInLine 101 | \let\do\putline@do 102 | \activefiles 103 | } 104 | \def\doOption#1>#2\endLine{% 105 | \maybeMsg{<#1 . >}% 106 | \Evaluate{#1}% 107 | \def\do##1##2##3{% 108 | \if1\Expr{##2}% 109 | \def\inLine{#2}% 110 | \replaceModuleInLine 111 | \StreamPut##1{\inLine}% 112 | \fi 113 | }% 114 | \activefiles 115 | } 116 | %% 117 | %% 118 | %% End of file `l3docstrip.tex'. 119 | -------------------------------------------------------------------------------- /l3xdvipdfmx.def: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `l3xdvipdfmx.def', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% l3drivers.dtx (with options: `package,xdvipdfmx') 8 | %% 9 | %% EXPERIMENTAL CODE 10 | %% 11 | %% Do not distribute this file without also distributing the 12 | %% source files specified above. 13 | %% 14 | %% Do not distribute a modified version of this file. 15 | %% 16 | %% File: l3drivers.dtx Copyright(C) 2011-2014 The LaTeX3 Project 17 | %% 18 | %% It may be distributed and/or modified under the conditions of the 19 | %% LaTeX Project Public License (LPPL), either version 1.3c of this 20 | %% license or (at your option) any later version. The latest version 21 | %% of this license is in the file 22 | %% 23 | %% http://www.latex-project.org/lppl.txt 24 | %% 25 | %% This file is part of the "l3kernel bundle" (The Work in LPPL) 26 | %% and all files in that bundle must be distributed together. 27 | %% 28 | %% The released version of this bundle is available from CTAN. 29 | %% 30 | %% ----------------------------------------------------------------------- 31 | %% 32 | %% The development version of the bundle can be found at 33 | %% 34 | %% http://www.latex-project.org/svnroot/experimental/trunk/ 35 | %% 36 | %% for those people who are interested. 37 | %% 38 | %%%%%%%%%%% 39 | %% NOTE: %% 40 | %%%%%%%%%%% 41 | %% 42 | %% Snapshots taken from the repository represent work in progress and may 43 | %% not work or may contain conflicting material! We therefore ask 44 | %% people _not_ to put them into distributions, archives, etc. without 45 | %% prior consultation with the LaTeX Project Team. 46 | %% 47 | %% ----------------------------------------------------------------------- 48 | %% 49 | \GetIdInfo$Id: l3drivers.dtx 5308 2014-08-20 01:22:39Z bruno $ 50 | {L3 Experimental drivers} 51 | \ProvidesExplFile 52 | {l3xdvidpfmx.def}{\ExplFileDate}{\ExplFileVersion} 53 | {L3 Experimental driver: xdvipdfmx} 54 | \cs_new_protected_nopar:Npn \__driver_state_save: 55 | { \tex_special:D { pdf:literal~q } } 56 | \cs_new_protected_nopar:Npn \__driver_state_restore: 57 | { \tex_special:D { pdf:literal~Q } } 58 | \cs_new_protected:Npn \__driver_literal:n #1 59 | { \tex_special:D { pdf:literal~ #1 } } 60 | \cs_new_protected:Npn \__driver_literal_direct:n #1 61 | { \tex_special:D { pdf:literal~direct~ #1 } } 62 | \cs_new_protected:Npn \__driver_matrix:n #1 63 | { \__driver_literal:n { #1 \c_space_tl 0~0~cm } } 64 | \cs_new_protected:Npn \__driver_box_use_clip:N #1 65 | { 66 | \__driver_state_save: 67 | \__driver_literal:n 68 | { 69 | 0~ 70 | \dim_to_decimal_in_bp:n { - \box_dp:N #1 } ~ 71 | \dim_to_decimal_in_bp:n { \box_wd:N #1 } ~ 72 | \dim_to_decimal_in_bp:n { \box_ht:N #1 + \box_dp:N #1 } ~ 73 | re~W~n 74 | } 75 | \hbox_overlap_right:n { \box_use:N #1 } 76 | \__driver_state_restore: 77 | \skip_horizontal:n { \box_wd:N #1 } 78 | } 79 | \cs_new_protected_nopar:Npn \__driver_box_rotate_begin: 80 | { 81 | \__driver_state_save: 82 | \box_set_wd:Nn \l__box_internal_box \c_zero_dim 83 | \fp_set:Nn \l__box_cos_fp { round ( \l__box_cos_fp , 5 ) } 84 | \fp_compare:nNnT \l__box_cos_fp = \c_zero_fp 85 | { \fp_zero:N \l__box_cos_fp } 86 | \fp_set:Nn \l__box_sin_fp { round ( \l__box_sin_fp , 5 ) } 87 | \__driver_matrix:n 88 | { 89 | \fp_use:N \l__box_cos_fp \c_space_tl 90 | \fp_compare:nNnTF \l__box_sin_fp = \c_zero_fp 91 | { 0~0 } 92 | { 93 | \fp_use:N \l__box_sin_fp 94 | \c_space_tl 95 | \fp_eval:n { -\l__box_sin_fp } 96 | } 97 | \c_space_tl 98 | \fp_use:N \l__box_cos_fp 99 | } 100 | } 101 | \cs_new_eq:NN \__driver_box_rotate_end: \__driver_state_restore: 102 | \cs_new_protected_nopar:Npn \__driver_box_scale_begin: 103 | { 104 | \__driver_state_save: 105 | \fp_set:Nn \l__box_scale_x_fp { round ( \l__box_scale_x_fp , 5 ) } 106 | \fp_set:Nn \l__box_scale_y_fp { round ( \l__box_scale_y_fp , 5 ) } 107 | \__driver_matrix:n 108 | { 109 | \fp_use:N \l__box_scale_x_fp \c_space_tl 110 | 0~0~ 111 | \fp_use:N \l__box_scale_y_fp 112 | } 113 | } 114 | \cs_new_eq:NN \__driver_box_scale_end: \__driver_state_restore: 115 | \tl_new:N \l__driver_current_color_tl 116 | \tl_set:Nn \l__driver_current_color_tl { gray~0 } 117 | \cs_new_protected_nopar:Npn \__driver_color_ensure_current: 118 | { 119 | \tex_special:D { color~push~\l__driver_current_color_tl } 120 | \group_insert_after:N \__driver_color_reset: 121 | } 122 | \cs_new_protected_nopar:Npn \__driver_color_reset: 123 | { \tex_special:D { color~pop } } 124 | %% 125 | %% 126 | %% End of file `l3xdvipdfmx.def'. 127 | -------------------------------------------------------------------------------- /resume.tex: -------------------------------------------------------------------------------- 1 | % File: resume.tex 2 | % Author: Leon Zaruvinsky 3 | % License: MIT License 4 | % Created: Fri Sep 05 06:00 PM 2014 E 5 | % Last Change: Fri Sep 05 12:40 AM 2014 E 6 | % 7 | % 8 | % There are two additionally defined types of subsection headers: 9 | % 10 | % \subsectiond{Arg 1}{Arg 2} 11 | % Arg 1 is left aligned, Arg 2 is tabbed from Arg 1 12 | % 13 | % \subsectionp{Arg 1}{Arg 2}{Arg 3} 14 | % Arg 1 is left aligned, Arg 2 is tabbed from Arg 1, and Arg 3 is right aligned 15 | % 16 | % See the sample PDF for a visual 17 | % 18 | % % % % % % % % % % % 19 | % 20 | % \desc = description, aka paragraph 21 | % 22 | % % % % % % % % % % % 23 | % 24 | % This is my first LaTeX document, so I don't expect it to be pretty or perfect. 25 | % Rather, I haven't been able to find a Resume template I liked so I made my own. 26 | % 27 | % If you find any errors or want to make improvements, feel free to submit a pull request. 28 | % 29 | % 30 | 31 | \documentclass{resume} 32 | \usepackage{tabularx} 33 | \usepackage{hyphenat} 34 | \usepackage{enumitem} 35 | 36 | \begin{document} 37 | \pagenumbering{gobble} 38 | \name{John Harvey} 39 | 40 | \info{\href{mailto:hello@email.com}{hello@email.com}}{800-555-1234}{\href{http://twitter.com/}{@Twitter}}{\href{http://github.com/}{GitHub.com/username}} 41 | 42 | \vspace{-1.5em} 43 | \section{Education} 44 | \subsectionp{University Name, College of Engineering}{City, State}{Expected May 2017} 45 | \desc{B.S. in Computer Science, Business minor, GPA 4.00} 46 | 47 | \subsection{Selected Coursework} 48 | \hspace{12pt} \begin{tabularx}{\linewidth}{r X} 49 | In Progress & Artificial Intelligence, Database Systems \\ 50 | Completed & Operating Systems + Practicum, Analysis of Algorithms, Data Structures \& Functional Programming, Systems Programming, Digital Logic, Discrete Structures, Object Oriented Programming 51 | \end{tabularx} 52 | 53 | \vspace{-1em} 54 | 55 | \section{Work Experience} 56 | 57 | \subsectionp{Software Engineering Intern, Company}{City, State}{Summer 2015} 58 | \desc{\begin{itemize}[leftmargin=*] 59 | \setlength\itemsep{-.1em} 60 | \item This is a standard format for a description. No longer than one line per bullet. 61 | \item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis tincidunt quam, suspendisse. 62 | \item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis tincidunt quam, suspendisse. 63 | \end{itemize}} 64 | 65 | \subsectionp{Teaching Assistant}{}{Jan 2014 - Present} 66 | \desc{This is a slightly different format for a job description.} 67 | \hspace{3em} \begin{tabular}{l l} 68 | CS 4410: Operating Systems & 1 Semester \\ 69 | CS 2110: Object Oriented Programming \& Data Structures \hspace{.5em} & 3 Semesters \\ 70 | \end{tabular} 71 | 72 | 73 | \subsectionp{Software Engineering Intern, Company}{City, State}{Summer 2014} 74 | \desc{\begin{itemize}[leftmargin=*] 75 | \setlength\itemsep{-.1em} 76 | \item This is a standard format for a description. No longer than one line per bullet. 77 | \item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis tincidunt quam, suspendisse. 78 | \item Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis tincidunt quam, suspendisse. 79 | \end{itemize}} 80 | 81 | \section{Languages and Technologies} 82 | 83 | \desc{ 84 | \begin{description} 85 | \item[Most Experienced] Java, Python, C, HTML/CSS 86 | \item[Some Familiarity] OCaml, JavaScript (Node.js), Git, MySQL, MongoDB, Android, \LaTeX 87 | \end{description} 88 | } 89 | 90 | \section{Side Projects} 91 | 92 | \subsectionp{Cool Personal Project}{}{Source: \href{http://github.com/}{github.com/}} 93 | \desc{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis tincidunt quam. Suspendisse neque felis, sagittis eget eros sed, feugiat aliquam nisl. In eu luctus nisl. In hac habitasse.} 94 | 95 | 96 | \subsectionp{A Hackathon Project}{BigRed//Hacks}{Source: \href{http://github.com/}{github.com/}} 97 | \desc{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis tincidunt quam. Suspendisse neque felis, sagittis eget eros sed, feugiat aliquam nisl. In eu luctus nisl. In hac habitasse.} 98 | 99 | \subsectionp{Some Other Thing}{Summer 2014}{Source: \href{http://github.com}{github.com/}} 100 | \desc{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis tincidunt quam. Suspendisse neque felis, sagittis eget eros sed, feugiat aliquam nisl. In eu luctus nisl. In hac habitasse.} 101 | 102 | \section{Extracurricular Activities} 103 | 104 | \subsectionp{A Committee or Club}{}{} 105 | \desc{This is the place to put something that isn't explicitly coding but is still relevant to software! E.g., member of school's CS Undergrad group or Women in Computing.} 106 | 107 | \end{document} 108 | 109 | -------------------------------------------------------------------------------- /fontspec-patches.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `fontspec-patches.sty', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% fontspec.dtx (with options: `patches') 8 | %% 9 | %% _________________________________________ 10 | %% The fontspec package for XeLaTeX/LuaLaTeX 11 | %% (C) 2004--2014 Will Robertson and Khaled Hosny 12 | %% 13 | %% License information appended. 14 | %% 15 | %% 16 | \ProvidesPackage{fontspec-patches} 17 | [2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTeX] 18 | 19 | 20 | \ExplSyntaxOn 21 | \cs_set_protected:Npn \@fnsymbol #1 22 | { 23 | \int_case:nnF {#1} 24 | { 25 | {0} {} 26 | {1} { \mode_if_math:TF *\textasteriskcentered } 27 | {2} { \mode_if_math:TF \dagger\textdagger } 28 | {3} { \mode_if_math:TF \ddagger\textdaggerdbl } 29 | {4} { \mode_if_math:TF \mathsection\textsection } 30 | {5} { \mode_if_math:TF \mathparagraph\textparagraph } 31 | {6} { \mode_if_math:TF \|\textbardbl } 32 | {7} { \mode_if_math:TF {**}{\textasteriskcentered\textasteriskcentered} } 33 | {8} { \mode_if_math:TF {\dagger\dagger}{\textdagger\textdagger} } 34 | {9} { \mode_if_math:TF {\ddagger\ddagger}{\textdaggerdbl\textdaggerdbl} } 35 | } 36 | { \@ctrerr } 37 | } 38 | \DeclareRobustCommand \em 39 | { 40 | \@nomath\em 41 | \str_if_eq_x:nnTF \f@shape \itdefault \eminnershape 42 | { 43 | \str_if_eq_x:nnTF \f@shape \sldefault \eminnershape \emshape 44 | } 45 | } 46 | \DeclareTextFontCommand{\emph}{\em} 47 | \cs_set_eq:NN \emshape \itshape 48 | \cs_set_eq:NN \eminnershape \upshape 49 | \DeclareRobustCommand{\-} 50 | { 51 | \discretionary 52 | { 53 | \char\ifnum\hyphenchar\font<\z@ 54 | \xlx@defaulthyphenchar 55 | \else 56 | \hyphenchar\font 57 | \fi 58 | }{}{} 59 | } 60 | \def\xlx@defaulthyphenchar{`\-} 61 | \cs_new:Nn \fontspec_visible_space: 62 | { 63 | \font_glyph_if_exist:NnTF \font {"2423} 64 | { \char"2423\scan_stop: } 65 | { \fontspec_visible_space_fallback: } 66 | } 67 | \cs_new:Nn \fontspec_visible_space_fallback: 68 | { 69 | { 70 | \usefont{\g_fontspec_encoding_tl}{lmtt}{\f@series}{\f@shape} 71 | \textvisiblespace 72 | } 73 | } 74 | \group_begin: 75 | \char_set_catcode_active:n{"20}% 76 | \cs_gset:Npn\fontspec_print_visible_spaces:{% 77 | \char_set_catcode_active:n{"20}% 78 | \cs_set_eq:NN^^20\fontspec_visible_space:% 79 | }% 80 | \group_end: 81 | \def\verb 82 | { 83 | \relax\ifmmode\hbox\else\leavevmode\null\fi 84 | \bgroup 85 | \verb@eol@error \let\do\@makeother \dospecials 86 | \verbatim@font\@noligs 87 | \@ifstar\__fontspecsverb\@verb 88 | } 89 | \def\__fontspecsverb{\fontspec_print_visible_spaces:\@sverb} 90 | \AtBeginDocument 91 | { 92 | \fontspec_patch_verbatim: 93 | \fontspec_patch_moreverb: 94 | \fontspec_patch_fancyvrb: 95 | \fontspec_patch_listings: 96 | } 97 | \cs_set:Npn \fontspec_patch_verbatim: 98 | { 99 | \@ifpackageloaded{verbatim} 100 | { 101 | \cs_set:cpn {verbatim*} 102 | { 103 | \group_begin: \@verbatim \fontspec_print_visible_spaces: \verbatim@start 104 | } 105 | } 106 | { 107 | \cs_set:cpn {verbatim*} 108 | { 109 | \@verbatim \fontspec_print_visible_spaces: \@sxverbatim 110 | } 111 | } 112 | } 113 | \cs_set:Npn \fontspec_patch_moreverb: 114 | { 115 | \@ifpackageloaded{moreverb}{ 116 | \cs_set:cpn {listingcont*} 117 | { 118 | \cs_set:Npn \verbatim@processline 119 | { 120 | \thelisting@line \global\advance\listing@line\c_one 121 | \the\verbatim@line\par 122 | } 123 | \@verbatim \fontspec_print_visible_spaces: \verbatim@start 124 | } 125 | }{} 126 | } 127 | \cs_set:Npn \fontspec_patch_fancyvrb: 128 | { 129 | \@ifpackageloaded{fancyvrb} 130 | { 131 | \cs_set_eq:NN \FancyVerbSpace \fontspec_visible_space: 132 | }{} 133 | } 134 | \cs_set:Npn \fontspec_patch_listings: 135 | { 136 | \@ifpackageloaded{listings} 137 | { 138 | \cs_set_eq:NN \lst@visiblespace \fontspec_visible_space: 139 | }{} 140 | } 141 | \RenewDocumentCommand \oldstylenums {m} 142 | { 143 | { \addfontfeature{Numbers=OldStyle} #1 } 144 | } 145 | \NewDocumentCommand \liningnums {m} 146 | { 147 | { \addfontfeature{Numbers=Lining} #1 } 148 | } 149 | %% 150 | %% Copyright 2004--2014 Will Robertson 151 | %% Copyright 2009--2013 Khaled Hosny 152 | %% 153 | %% Distributable under the LaTeX Project Public License, 154 | %% version 1.3c or higher (your choice). The latest version of 155 | %% this license is at: http://www.latex-project.org/lppl.txt 156 | %% 157 | %% This work is "maintained" by Will Robertson. 158 | %% 159 | %% This work consists of this file fontspec.dtx 160 | %% and the derived files fontspec.sty, 161 | %% fontspec.lua, 162 | %% fontspec.cfg, 163 | %% fontspec-xetex.sty, 164 | %% fontspec-luatex.sty, 165 | %% fontspec-patches.sty, 166 | %% fontspec-example.tex, 167 | %% and fontspec.pdf. 168 | %% 169 | %% 170 | %% End of file `fontspec-patches.sty'. 171 | -------------------------------------------------------------------------------- /fontspec.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `fontspec.sty', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% fontspec.dtx (with options: `fontspec') 8 | %% 9 | %% _________________________________________ 10 | %% The fontspec package for XeLaTeX/LuaLaTeX 11 | %% (C) 2004--2014 Will Robertson and Khaled Hosny 12 | %% 13 | %% License information appended. 14 | %% 15 | %% 16 | \ProvidesPackage{fontspec} 17 | [2014/06/21 v2.4a Font selection for XeLaTeX and LuaLaTeX] 18 | 19 | 20 | \RequirePackage{expl3}[2011/09/05] 21 | \RequirePackage{xparse} 22 | \ExplSyntaxOn 23 | \cs_if_exist:NF \lua_now_x:n 24 | { \cs_set_eq:NN \lua_now_x:n \directlua } 25 | \msg_new:nnn {fontspec} {cannot-use-pdftex} 26 | { 27 | The~ fontspec~ package~ requires~ either~ XeTeX~ or~ LuaTeX~ to~ function. 28 | \\\\ 29 | You~ must~ change~ your~ typesetting~ engine~ to,~ 30 | e.g.,~ "xelatex"~ or~ "lualatex"\\ 31 | instead~ of~ plain~ "latex"~ or~ "pdflatex". 32 | } 33 | \xetex_if_engine:F 34 | { 35 | \luatex_if_engine:TF 36 | { 37 | \RequirePackage{luaotfload}[2013/05/20] 38 | \RequireLuaModule{fontspec} 39 | } 40 | { 41 | \msg_fatal:nn {fontspec} {cannot-use-pdftex} 42 | } 43 | } 44 | \bool_new:N \l__fontspec_firsttime_bool 45 | \bool_new:N \l__fontspec_nobf_bool 46 | \bool_new:N \l__fontspec_noit_bool 47 | \bool_new:N \l__fontspec_nosc_bool 48 | \bool_new:N \l__fontspec_tfm_bool 49 | \bool_new:N \l__fontspec_atsui_bool 50 | \bool_new:N \l__fontspec_ot_bool 51 | \bool_new:N \l__fontspec_mm_bool 52 | \bool_new:N \l__fontspec_graphite_bool 53 | \bool_new:N \g__fontspec_math_euler_bool 54 | \bool_new:N \g__fontspec_math_lucida_bool 55 | \bool_new:N \g__fontspec_pkg_euler_loaded_bool 56 | \bool_new:N \g__fontspec_cfg_bool 57 | \bool_new:N \g__fontspec_math_bool 58 | \int_new:N \l_fontspec_script_int 59 | \int_new:N \l_fontspec_language_int 60 | \int_new:N \l_fontspec_strnum_int 61 | \fp_new:N \l__fontspec_tmpa_fp 62 | \fp_new:N \l__fontspec_tmpb_fp 63 | \dim_new:N \l__fontspec_tmpa_dim 64 | \dim_new:N \l__fontspec_tmpb_dim 65 | \dim_new:N \l__fontspec_tmpc_dim 66 | \tl_set:Nx \c_colon_str { \tl_to_str:N : } 67 | \cs_set:Npn \use_v:nnnnn #1#2#3#4#5 {#5} 68 | \cs_set:Npn \use_iv:nnnnn #1#2#3#4#5 {#4} 69 | \cs_generate_variant:Nn \str_if_eq:nnTF {nv} 70 | \cs_generate_variant:Nn \int_set:Nn {Nv} 71 | \cs_generate_variant:Nn \tl_gset:Nn {cV} 72 | \cs_generate_variant:Nn \keys_set:nn {nx} 73 | \cs_generate_variant:Nn \keys_set_known:nnN {nx} 74 | \cs_new:Nn \__fontspec_int_mult_truncate:Nn 75 | { 76 | \int_set:Nn #1 { \__dim_eval:w #2 #1 \__dim_eval_end: } 77 | } 78 | \cs_new:Npn \__fontspec_error:n { \msg_error:nn {fontspec} } 79 | \cs_new:Npn \__fontspec_error:nx { \msg_error:nnx {fontspec} } 80 | \cs_new:Npn \__fontspec_warning:n { \msg_warning:nn {fontspec} } 81 | \cs_new:Npn \__fontspec_warning:nx { \msg_warning:nnx {fontspec} } 82 | \cs_new:Npn \__fontspec_warning:nxx { \msg_warning:nnxx {fontspec} } 83 | \cs_new:Npn \__fontspec_info:n { \msg_info:nn {fontspec} } 84 | \cs_new:Npn \__fontspec_info:nx { \msg_info:nnx {fontspec} } 85 | \cs_new:Npn \__fontspec_info:nxx { \msg_info:nnxx {fontspec} } 86 | \cs_new:Npn \__fontspec_trace:n { \msg_trace:nn {fontspec} } 87 | \msg_new:nnn {fontspec} {no-size-info} 88 | { 89 | Size~ information~ must~ be~ supplied.\\ 90 | For~ example,~ SizeFeatures={Size={8-12},...}. 91 | } 92 | \msg_new:nnnn {fontspec} {font-not-found} 93 | { 94 | The~ font~ "#1"~ cannot~ be~ found. 95 | } 96 | { 97 | A~font~might~not~be~found~for~many~reasons.\\ 98 | Check~the~spelling,~where~the~font~is~installed~etc.~etc.\\\\ 99 | When~in~doubt,~ask~someone~for~help! 100 | } 101 | \msg_new:nnnn {fontspec} {rename-feature-not-exist} 102 | { 103 | The~ feature~ #1~ doesn't~ appear~ to~ be~ defined. 104 | } 105 | { 106 | It~ looks~ like~ you're~ trying~ to~ rename~ a~ feature~ that~ doesn't~ exist. 107 | } 108 | \msg_new:nnn {fontspec} {no-glyph} 109 | { 110 | '\l_fontspec_fontname_tl'~ does~ not~ contain~ glyph~ #1. 111 | } 112 | \msg_new:nnnn {fontspec} {euler-too-late} 113 | { 114 | The~ euler~ package~ must~ be~ loaded~ BEFORE~ fontspec. 115 | } 116 | { 117 | fontspec~ only~ overwrites~ euler's~ attempt~ to~ 118 | define~ the~ maths~ text~ fonts~ if~ fontspec~ is~ 119 | loaded~ after~ euler.~ Type~ ~ to~ proceed~ 120 | with~ incorrect~ \string\mathit,~ \string\mathbf,~ etc. 121 | } 122 | \msg_new:nnnn {fontspec} {no-xcolor} 123 | { 124 | Cannot~ load~ named~ colours~ without~ the~ xcolor~ package. 125 | } 126 | { 127 | Sorry,~ I~ can't~ do~ anything~ to~ help.~ Instead~ of~ loading~ 128 | the~ color~ package,~ use~ xcolor~ instead.~ It's~ better. 129 | } 130 | \msg_new:nnnn {fontspec} {unknown-color-model} 131 | { 132 | Error~ loading~ colour~ `#1';~ unknown~ colour~ model. 133 | } 134 | { 135 | Sorry,~ I~ can't~ do~ anything~ to~ help.~ Please~ report~ this~ error~ 136 | to~ my~ developer~ with~ a~ minimal~ example~ that~ causes~ the~ problem. 137 | } 138 | \msg_new:nnn {fontspec} {addfontfeatures-ignored} 139 | { 140 | \string\addfontfeature (s)~ ignored;~ 141 | it~ cannot~ be~ used~ with~ a~ font~ that~ wasn't~ selected~ by~ fontspec. 142 | } 143 | \msg_new:nnn {fontspec} {feature-option-overwrite} 144 | { 145 | Option~ '#2'~ of~ font~ feature~ '#1'~ overwritten. 146 | } 147 | \msg_new:nnn {fontspec} {script-not-exist-latn} 148 | { 149 | Font~ '\l_fontspec_fontname_tl'~ does~ not~ contain~ script~ '#1'.\\ 150 | 'Latin'~ script~ used~ instead. 151 | } 152 | \msg_new:nnn {fontspec} {script-not-exist} 153 | { 154 | Font~ '\l_fontspec_fontname_tl'~ does~ not~ contain~ script~ '#1'. 155 | } 156 | \msg_new:nnn {fontspec} {aat-feature-not-exist} 157 | { 158 | '\l_keys_key_tl=\l_keys_value_tl'~ feature~ not~ supported~ 159 | for~ AAT~ font~ '\l_fontspec_fontname_tl'. 160 | } 161 | \msg_new:nnn {fontspec} {aat-feature-not-exist-in-font} 162 | { 163 | AAT~ feature~ '\l_keys_key_tl=\l_keys_value_tl'~ (#1)~ not~ available~ 164 | in~ font~ '\l_fontspec_fontname_tl'. 165 | } 166 | \msg_new:nnn {fontspec} {icu-feature-not-exist} 167 | { 168 | '\l_keys_key_tl=\l_keys_value_tl'~ feature~ not~ supported~ 169 | for~ OpenType~ font~ '\l_fontspec_fontname_tl' 170 | } 171 | \msg_new:nnn {fontspec} {icu-feature-not-exist-in-font} 172 | { 173 | OpenType~ feature~ '\l_keys_key_tl=\l_keys_value_tl'~ (#1)~ not~ available~ 174 | for~ font~ '\l_fontspec_fontname_tl'~ 175 | with~ script~ '\l__fontspec_script_name_tl'~ and~ language~ '\l__fontspec_lang_name_tl'. 176 | } 177 | \msg_new:nnn {fontspec} {no-opticals} 178 | { 179 | '\l_fontspec_fontname_tl'~ doesn't~ appear~ to~ have~ an~ Optical~ Size~ axis. 180 | } 181 | \msg_new:nnn {fontspec} {language-not-exist} 182 | { 183 | Language~ '#1'~ not~ available~ 184 | for~ font~ '\l_fontspec_fontname_tl'~ 185 | with~ script~ '\l__fontspec_script_name_tl'.\\ 186 | 'Default'~ language~ used~ instead. 187 | } 188 | \msg_new:nnn {fontspec} {only-xetex-feature} 189 | { 190 | Ignored~ XeTeX~ only~ feature:~ '#1'. 191 | } 192 | \msg_new:nnn {fontspec} {only-luatex-feature} 193 | { 194 | Ignored~ LuaTeX~ only~ feature:~ '#1'. 195 | } 196 | \msg_new:nnn {fontspec} {no-mapping} 197 | { 198 | Input~ mapping~ not~ (yet?)~ supported~ in~ LuaTeX. 199 | } 200 | \msg_new:nnn {fontspec} {no-mapping-ligtex} 201 | { 202 | Input~ mapping~ not~ (yet?)~ supported~ in~ LuaTeX.\\ 203 | Use~ "Ligatures=TeX"~ instead~ of~ "Mapping=tex-text". 204 | } 205 | \msg_new:nnn {fontspec} {cm-default-obsolete} 206 | { 207 | The~ "cm-default"~ package~ option~ is~ obsolete. 208 | } 209 | \msg_new:nnn {fontspec} {fakebold-only-xetex} 210 | { 211 | The~ "FakeBold"~ and~ "AutoFakeBold"~ options~ are~ only~ available~ with~ XeLaTeX.\\ 212 | Option~ ignored. 213 | } 214 | \msg_new:nnn {fontspec} {defining-font} 215 | { 216 | Font~ family~'\l_fontspec_family_tl'~ created~ for~ font~ '#2'~ 217 | with~ options~ [\l__fontspec_all_features_clist].\\ 218 | \\ 219 | This~ font~ family~ consists~ of~ the~ following~ shapes: 220 | \l_fontspec_defined_shapes_tl 221 | } 222 | \msg_new:nnn {fontspec} {no-font-shape} 223 | { 224 | Could~ not~ resolve~ font~ #1~ (it~ probably~ doesn't~ exist). 225 | } 226 | \msg_new:nnn {fontspec} {set-scale} 227 | { 228 | \l_fontspec_fontname_tl\space scale ~=~ \l__fontspec_scale_tl. 229 | } 230 | \msg_new:nnn {fontspec} {setup-math} 231 | { 232 | Adjusting~ the~ maths~ setup~ (use~ [no-math]~ to~ avoid~ this). 233 | } 234 | \msg_new:nnn {fontspec} {no-scripts} 235 | { 236 | Font~ \l_fontspec_fontname_tl\space does~ not~ contain~ any~ OpenType~ `Script'~ information. 237 | } 238 | \msg_new:nnn {fontspec} {opa-twice} 239 | { 240 | Opacity~ set~ twice,~ in~ both~ Colour~ and~ Opacity.\\ 241 | Using~ specification~ "Opacity=#1". 242 | } 243 | \msg_new:nnn {fontspec} {opa-twice-col} 244 | { 245 | Opacity~ set~ twice,~ in~ both~ Opacity~ and~ Colour.\\ 246 | Using~ an~ opacity~ specification~ in~ hex~ of~ "#1/FF". 247 | } 248 | \msg_new:nnn {fontspec} {bad-colour} 249 | { 250 | Bad~ colour~ declaration~ "#1".~ 251 | Colour~ must~ be~ one~ of:\\ 252 | *~ a~ named~ xcolor~ colour\\ 253 | *~ a~ six-digit~ hex~ colour~ RRGGBB\\ 254 | *~ an~ eight-digit~ hex~ colour~ RRGGBBTT~ with~ opacity 255 | } 256 | \DeclareOption{cm-default} 257 | { \__fontspec_warning:n {cm-default-obsolete} } 258 | \DeclareOption{math}{\bool_set_true:N \g__fontspec_math_bool} 259 | \DeclareOption{no-math}{\bool_set_false:N \g__fontspec_math_bool} 260 | \DeclareOption{config}{\bool_set_true:N \g__fontspec_cfg_bool} 261 | \DeclareOption{no-config}{\bool_set_false:N \g__fontspec_cfg_bool} 262 | \DeclareOption{quiet} 263 | { 264 | \msg_redirect_module:nnn { fontspec } { warning } { info } 265 | \msg_redirect_module:nnn { fontspec } { info } { none } 266 | } 267 | \DeclareOption{silent} 268 | { 269 | \msg_redirect_module:nnn { fontspec } { warning } { none } 270 | \msg_redirect_module:nnn { fontspec } { info } { none } 271 | } 272 | \ExecuteOptions{config,math} 273 | \ProcessOptions* 274 | \RequirePackage{fontspec-patches} 275 | \luatex_if_engine:T { \RequirePackage{fontspec-luatex} \endinput } 276 | \xetex_if_engine:T { \RequirePackage{fontspec-xetex} \endinput } 277 | %% 278 | %% Copyright 2004--2014 Will Robertson 279 | %% Copyright 2009--2013 Khaled Hosny 280 | %% 281 | %% Distributable under the LaTeX Project Public License, 282 | %% version 1.3c or higher (your choice). The latest version of 283 | %% this license is at: http://www.latex-project.org/lppl.txt 284 | %% 285 | %% This work is "maintained" by Will Robertson. 286 | %% 287 | %% This work consists of this file fontspec.dtx 288 | %% and the derived files fontspec.sty, 289 | %% fontspec.lua, 290 | %% fontspec.cfg, 291 | %% fontspec-xetex.sty, 292 | %% fontspec-luatex.sty, 293 | %% fontspec-patches.sty, 294 | %% fontspec-example.tex, 295 | %% and fontspec.pdf. 296 | %% 297 | %% 298 | %% End of file `fontspec.sty'. 299 | -------------------------------------------------------------------------------- /expl3.sty: -------------------------------------------------------------------------------- 1 | %% 2 | %% This is file `expl3.sty', 3 | %% generated with the docstrip utility. 4 | %% 5 | %% The original source files were: 6 | %% 7 | %% expl3.dtx (with options: `package,loader') 8 | %% 9 | %% EXPERIMENTAL CODE 10 | %% 11 | %% Do not distribute this file without also distributing the 12 | %% source files specified above. 13 | %% 14 | %% Do not distribute a modified version of this file. 15 | %% 16 | %% File: expl3.dtx Copyright (C) 1990-2014 The LaTeX3 Project 17 | %% 18 | %% It may be distributed and/or modified under the conditions of the 19 | %% LaTeX Project Public License (LPPL), either version 1.3c of this 20 | %% license or (at your option) any later version. The latest version 21 | %% of this license is in the file 22 | %% 23 | %% http://www.latex-project.org/lppl.txt 24 | %% 25 | %% This file is part of the "l3kernel bundle" (The Work in LPPL) 26 | %% and all files in that bundle must be distributed together. 27 | %% 28 | %% The released version of this bundle is available from CTAN. 29 | %% 30 | %% ----------------------------------------------------------------------- 31 | %% 32 | %% The development version of the bundle can be found at 33 | %% 34 | %% http://www.latex-project.org/svnroot/experimental/trunk/ 35 | %% 36 | %% for those people who are interested. 37 | %% 38 | %%%%%%%%%%% 39 | %% NOTE: %% 40 | %%%%%%%%%%% 41 | %% 42 | %% Snapshots taken from the repository represent work in progress and may 43 | %% not work or may contain conflicting material! We therefore ask 44 | %% people _not_ to put them into distributions, archives, etc. without 45 | %% prior consultation with the LaTeX3 Project. 46 | %% 47 | %% ----------------------------------------------------------------------- 48 | \def\ExplFileName{expl3} 49 | \def\ExplFileDescription{L3 programming layer} 50 | \def\ExplFileDate{2014/08/25} 51 | \def\ExplFileVersion{5378} 52 | \let\ExplLoaderFileVersion\ExplFileVersion 53 | \ProvidesPackage{\ExplFileName} 54 | [% 55 | \ExplFileDate\space v\ExplFileVersion\space 56 | \ExplFileDescription\space (loader) 57 | ] 58 | \newcommand\expl@create@bool@option[2]% 59 | {% 60 | \DeclareOption{#1}{\chardef #2=1 }% 61 | \DeclareOption{#1=true}{\chardef #2=1 }% 62 | \DeclareOption{#1=false}{\chardef #2=0 }% 63 | \newcommand*#2{}% 64 | \chardef #2=0 % 65 | } 66 | \expl@create@bool@option{check-declarations}\l@expl@check@declarations@bool 67 | \expl@create@bool@option{log-functions}\l@expl@log@functions@bool 68 | \let\expl@create@bool@option\@undefined 69 | \newcommand*\l@expl@options@clist{} 70 | \DeclareOption* 71 | {% 72 | \ifx\l@expl@options@clist\@empty 73 | \let\l@expl@options@clist\CurrentOption 74 | \else 75 | \expandafter\expandafter\expandafter\def 76 | \expandafter\expandafter\expandafter\l@expl@options@clist 77 | \expandafter\expandafter\expandafter 78 | {\expandafter\l@expl@options@clist\expandafter,\CurrentOption} 79 | \fi 80 | } 81 | \ProcessOptions\relax 82 | \protected\def\ProvidesExplPackage#1#2#3#4% 83 | {% 84 | \ProvidesPackage{#1}[#2 v#3 #4]% 85 | \ExplSyntaxOn 86 | } 87 | \protected\def\ProvidesExplClass#1#2#3#4% 88 | {% 89 | \ProvidesClass{#1}[#2 v#3 #4]% 90 | \ExplSyntaxOn 91 | } 92 | \protected\def\ProvidesExplFile#1#2#3#4% 93 | {% 94 | \ProvidesFile{#1}[#2 v#3 #4]% 95 | \ExplSyntaxOn 96 | } 97 | \input{expl3-code.tex} 98 | \protected\def\GetIdInfoLog{} 99 | \AtBeginDocument 100 | { 101 | \cs_if_exist:NF \color 102 | { \DeclareRobustCommand \color [2] [ ] { } } 103 | } 104 | \__msg_kernel_new:nnnn { expl } { wrong-driver } 105 | { Driver~request~inconsistent~with~engine:~using~'#2'~driver. } 106 | { 107 | You~have~requested~driver~'#1',~but~this~is~not~suitable~for~use~with~the~ 108 | active~engine.~LaTeX3~will~use~the~'#2'~driver~instead. 109 | } 110 | \tl_new:N \l__expl_driver_tl 111 | \bool_if:nTF 112 | { 113 | \cs_if_exist_p:N \pdftex_pdfoutput:D 114 | && \int_compare_p:nNn \pdftex_pdfoutput:D > \c_zero 115 | } 116 | { 117 | \cs_new_eq:NN \__expl_if_pdf:T \use:n 118 | \cs_new_eq:NN \__expl_if_pdf:F \use_none:n 119 | \cs_new_eq:NN \__expl_if_pdf:TF \use_i:nn 120 | } 121 | { 122 | \cs_new_eq:NN \__expl_if_pdf:T \use_none:n 123 | \cs_new_eq:NN \__expl_if_pdf:F \use:n 124 | \cs_new_eq:NN \__expl_if_pdf:TF \use_ii:nn 125 | } 126 | \keys_define:nn { expl } 127 | { 128 | driver .choice:, 129 | driver / auto .code:n = 130 | { 131 | \tl_set:Nx \l__expl_driver_tl 132 | { 133 | \xetex_if_engine:TF 134 | { xdvipdfmx } 135 | { 136 | \__expl_if_pdf:TF 137 | { pdfmode } 138 | { dvips } 139 | } 140 | } 141 | }, 142 | driver / dvipdfmx .code:n = 143 | { 144 | \tl_set:Nn \l__expl_driver_tl { dvipdfmx } 145 | \xetex_if_engine:TF 146 | { 147 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 148 | { dvipdfmx } { xdvipdfmx } 149 | \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } 150 | } 151 | { 152 | \__expl_if_pdf:T 153 | { 154 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 155 | { dvipdfmx } { pdfmode } 156 | \tl_set:Nn \l__expl_driver_tl { pdfmode } 157 | } 158 | } 159 | }, 160 | driver / dvips .code:n = 161 | { 162 | \tl_set:Nn \l__expl_driver_tl { dvips } 163 | \xetex_if_engine:TF 164 | { 165 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 166 | { dvips } { xdvipdfmx } 167 | \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } 168 | } 169 | { 170 | \__expl_if_pdf:T 171 | { 172 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 173 | { dvips } { pdfmode } 174 | \tl_set:Nn \l__expl_driver_tl { pdfmode } 175 | } 176 | } 177 | }, 178 | driver / latex2e .code:n = 179 | { \tl_set:Nn \l__expl_driver_tl { latex2e } }, 180 | driver / pdfmode .code:n = 181 | { 182 | \tl_set:Nn \l__expl_driver_tl { pdfmode } 183 | \xetex_if_engine:TF 184 | { 185 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 186 | { pdfmode } { xdvipdfmx } 187 | \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } 188 | } 189 | { 190 | \__expl_if_pdf:F 191 | { 192 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 193 | { pdfmode } { dvips } 194 | \tl_set:Nn \l__expl_driver_tl { dvips } 195 | } 196 | } 197 | }, 198 | driver / xdvipdfmx .code:n = 199 | { 200 | \tl_set:Nn \l__expl_driver_tl { xdvipdfmx } 201 | \xetex_if_engine:F 202 | { 203 | \__expl_if_pdf:TF 204 | { 205 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 206 | { xdvipdfmx } { pdfmode } 207 | \tl_set:Nn \l__expl_driver_tl { pdfmode } 208 | } 209 | { 210 | \__msg_kernel_error:nnnn { expl } { wrong-driver } 211 | { xdvipdfmx } { dvips } 212 | \tl_set:Nn \l__expl_driver_tl { dvips } 213 | } 214 | } 215 | }, 216 | driver .initial:n = { auto } , 217 | native-drivers .choice:, 218 | native-drivers .default:n = { true }, 219 | native-drivers / false .meta:n = { driver = latex2e }, 220 | native-drivers / true .meta:n = { driver = auto } 221 | } 222 | \keys_define:nn { expl } 223 | { 224 | check-declarations .bool_set:N = \l@expl@check@declarations@bool, 225 | log-functions .bool_set:N = \l@expl@log@functions@bool 226 | } 227 | \keys_set:nV { expl } \l@expl@options@clist 228 | \tl_const:Nn \c__expl_def_ext_tl { def } 229 | \group_begin: 230 | \cs_set_protected:Npn \ProvidesExplFile 231 | { 232 | \char_set_catcode_space:n { `\ } 233 | \ProvidesExplFileAux 234 | } 235 | \cs_set_protected:Npn \ProvidesExplFileAux #1#2#3#4 236 | { 237 | \group_end: 238 | \ProvidesFile {#1} [ #2~v#3~#4 ] 239 | } 240 | \@onefilewithoptions { l3unicode-data } [ ] [ ] \c__expl_def_ext_tl 241 | \str_if_eq:VnTF \l__expl_driver_tl { latex2e } 242 | { 243 | \tl_gput_left:Nn \@begindocumenthook { \RequirePackage { graphics } } 244 | \__msg_kernel_new:nnnn { box } { clipping-not-available } 245 | { Box~clipping~not~available. } 246 | { 247 | The~\box_clip:N~function~is~only~available~when~loading~expl3~ 248 | with~the~"native-drivers"~option. 249 | } 250 | \cs_set_protected:Npn \box_clip:N #1 251 | { 252 | \hbox_set:Nn #1 { \box_use:N #1 } 253 | \__msg_kernel_error:nn { box } { clipping-not-available } 254 | } 255 | \cs_set_protected:Npn \box_rotate:Nn #1#2 256 | { \hbox_set:Nn #1 { \rotatebox {#2} { \box_use:N #1 } } } 257 | \cs_set_protected:Npn \box_resize:Nnn #1#2#3 258 | { 259 | \hbox_set:Nn #1 260 | { 261 | \resizebox * 262 | { \__dim_eval:w #2 \__dim_eval_end: } 263 | { \__dim_eval:w #3 \__dim_eval_end: } 264 | { \box_use:N #1 } 265 | } 266 | } 267 | \cs_set_protected:Npn \box_resize_to_ht_plus_dp:Nn #1#2 268 | { 269 | \hbox_set:Nn #1 270 | { 271 | \resizebox * { ! } { \__dim_eval:w #2 \__dim_eval_end: } 272 | { \box_use:N #1 } 273 | } 274 | } 275 | \cs_set_protected:Npn \box_resize_to_wd:Nn #1#2 276 | { 277 | \hbox_set:Nn #1 278 | { 279 | \resizebox * { \__dim_eval:w #2 \__dim_eval_end: } { ! } 280 | { \box_use:N #1 } 281 | } 282 | } 283 | \cs_set_protected:Npn \box_scale:Nnn #1#2#3 284 | { 285 | \hbox_set:Nn #1 286 | { 287 | \exp_last_unbraced:Nx \scalebox 288 | { { \fp_eval:n {#2} } [ \fp_eval:n {#3} ] } 289 | { \box_use:N #1 } 290 | } 291 | } 292 | } 293 | { 294 | \group_begin: 295 | \cs_set_protected:Npn \ProvidesExplFile 296 | { 297 | \char_set_catcode_space:n { `\ } 298 | \ProvidesExplFileAux 299 | } 300 | \cs_set_protected:Npn \ProvidesExplFileAux #1#2#3#4 301 | { 302 | \group_end: 303 | \ProvidesFile {#1} [ #2~v#3~#4 ] 304 | } 305 | \@onefilewithoptions { l3 \l__expl_driver_tl } [ ] [ ] \c__expl_def_ext_tl 306 | } 307 | \tl_put_left:Nn \@pushfilename 308 | { 309 | \tl_put_left:Nx \l__expl_status_stack_tl 310 | { 311 | \bool_if:NTF \l__kernel_expl_bool 312 | { 1 } 313 | { 0 } 314 | } 315 | \ExplSyntaxOff 316 | } 317 | \tl_put_right:Nn \@popfilename 318 | { 319 | \tl_if_empty:NTF \l__expl_status_stack_tl 320 | { \ExplSyntaxOff } 321 | { \exp_after:wN \__expl_status_pop:w \l__expl_status_stack_tl \q_stop } 322 | } 323 | \cs_new_protected:Npn \__expl_status_pop:w #1#2 \q_stop 324 | { 325 | \tl_set:Nn \l__expl_status_stack_tl {#2} 326 | \int_if_odd:nTF {#1} 327 | { \ExplSyntaxOn } 328 | { \ExplSyntaxOff } 329 | } 330 | \tl_new:N \l__expl_status_stack_tl 331 | \tl_set:Nn \l__expl_status_stack_tl { 0 } 332 | %% 333 | %% 334 | %% End of file `expl3.sty'. 335 | -------------------------------------------------------------------------------- /changepage.sty: -------------------------------------------------------------------------------- 1 | % changepage.sty 2 | % 3 | % Provides commands to change the page layout in the middle of a document, 4 | % and to robustly check for typesetting on odd or even pages. 5 | % Instructions for use are at the end of this file. 6 | % 7 | % This package is an extraction of code from the memoir class. It is 8 | % intended to eventually replace the chngpage package. 9 | % 10 | % Author: Peter Wilson (Herries Press) 11 | % (occasionaly at herries dot press (at) earthlink dot net) 12 | % Copyright 2008 Peter R. Wilson 13 | % 14 | % If you have any questions you will probably get better and faster 15 | % answers if you ask them on the comp.text.tex newsgroup as I am away 16 | % more often than I am here. 17 | % 18 | % This work may be distributed and/or modified under the 19 | % conditions of the LaTeX Project Public License, either 20 | % version 1.3 of this license or (at your option) any 21 | % later version. 22 | % The latest version of the license is in 23 | % http://www.latex-project.org/lppl.txt 24 | % and version 1.3 or later is part of all distributions of 25 | % LaTeX version 2003/06/01 or later. 26 | % 27 | % This work has the LPPL maintenance status "author-maintained". 28 | % 29 | % This work consists of this file. 30 | % 31 | % 32 | % 33 | \NeedsTeXFormat{LaTeX2e} 34 | \ProvidesPackage{changepage}[2008/08/15 v1.0a check page and change page layout] 35 | 36 | %%% Don't use this with memoir 37 | \newcommand*{\cp@whoopsusingmemoir}{} 38 | \@ifclassloaded{memoir}{\def\cp@whoopsusingmemoir{\endinput}} 39 | \cp@whoopsusingmemoir 40 | 41 | %% new \if for the strict option 42 | \newif\ifstrictpagecheck 43 | \strictpagecheckfalse 44 | %% user commands for switching strict page checking on/off 45 | \newcommand*{\strictpagecheck}{\strictpagechecktrue} 46 | \newcommand*{\easypagecheck}{\strictpagecheckfalse} 47 | 48 | %% Declare and process options 49 | \DeclareOption{strict}{\strictpagechecktrue} 50 | \ProcessOptions\relax 51 | 52 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 53 | %% new commands for strict checking of odd/even page 54 | %% Works by writing a label and then checking its pageref 55 | %% 56 | 57 | \newif\ifoddpage 58 | \newcounter{cp@cntr} 59 | \newcount\cp@tempcnt % instead of \@memcnta 60 | \newcommand{\cplabel}{^_} 61 | 62 | %%%\gdef\thememc@@page{\the\c@page} 63 | \gdef\thepmemc@@page{\the\c@page} 64 | 65 | \long\def\pmemprotected@write#1#2#3{% modified \protected@write 66 | \begingroup 67 | \let\thepmemc@@page\relax 68 | #2% 69 | \let\protect\@unexpandable@protect 70 | \edef\reserved@a{\write#1{#3}}% 71 | \reserved@a 72 | \endgroup 73 | \if@nobreak\ifvmode\nobreak\fi\fi} 74 | 75 | \newcommand*{\pmemlabel}[1]{\@bsphack 76 | \pmemprotected@write\@auxout{}% 77 | {\string\newpmemlabel{#1}{\thepmemc@@page}}% 78 | \@esphack} 79 | 80 | \newcommand*{\newpmemlabel}[2]{{\global\@namedef{m@#1}{#2}}} 81 | \newcommand*{\pmemlabelref}[1]{% 82 | \expandafter\ifx\csname m@#1\endcsname\relax 83 | 0% % 0 if there is no label yet in the aux file 84 | \else 85 | \csname m@#1\endcsname 86 | \fi} 87 | 88 | \DeclareRobustCommand{\checkoddpage}{% 89 | \oddpagefalse% 90 | \ifstrictpagecheck% 91 | \stepcounter{cp@cntr}\pmemlabel{\cplabel\thecp@cntr}% 92 | \cp@tempcnt=\pmemlabelref{\cplabel\thecp@cntr}\relax 93 | \ifodd\cp@tempcnt\oddpagetrue\fi 94 | \else 95 | \ifodd\c@page\oddpagetrue\fi 96 | \fi} 97 | 98 | %% end newcommands for strict checking of odd/even page 99 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 100 | 101 | %% copy of some of the code from the ifmtarg package to save requiring ifmtarg 102 | \begingroup 103 | \catcode`\Q=3 104 | \long\gdef\@ifmtarg#1{\@xifmtarg#1QQ\@secondoftwo\@firstoftwo\@nil} 105 | \long\gdef\@xifmtarg#1#2Q#3#4#5\@nil{#4} 106 | \endgroup 107 | 108 | %% set the page output parameters 109 | \DeclareRobustCommand{\ch@ngetext}{% 110 | \setlength{\@colht}{\textheight}\setlength{\@colroom}{\textheight}% 111 | \setlength{\vsize}{\textheight}\setlength{\columnwidth}{\textwidth}% 112 | \if@twocolumn% 113 | \advance\columnwidth-\columnsep \divide\columnwidth\tw@% 114 | \@firstcolumntrue% 115 | \fi% 116 | \setlength{\hsize}{\columnwidth}% 117 | \setlength{\linewidth}{\hsize}} 118 | 119 | \DeclareRobustCommand{\changetext}[5]{% 120 | \@ifmtarg{#1}{}{\addtolength{\textheight}{#1}}% 121 | \@ifmtarg{#2}{}{\addtolength{\textwidth}{#2}}% 122 | \@ifmtarg{#3}{}{\addtolength{\evensidemargin}{#3}}% 123 | \@ifmtarg{#4}{}{\addtolength{\oddsidemargin}{#4}}% 124 | \@ifmtarg{#5}{}{\addtolength{\columnsep}{#5}}% 125 | \ch@ngetext} 126 | 127 | \DeclareRobustCommand{\changepage}[9]{% 128 | \@ifmtarg{#1}{}{\addtolength{\textheight}{#1}}% 129 | \@ifmtarg{#2}{}{\addtolength{\textwidth}{#2}}% 130 | \@ifmtarg{#3}{}{\addtolength{\evensidemargin}{#3}}% 131 | \@ifmtarg{#4}{}{\addtolength{\oddsidemargin}{#4}}% 132 | \@ifmtarg{#5}{}{\addtolength{\columnsep}{#5}}% 133 | \ch@ngetext% 134 | \@ifmtarg{#6}{}{\addtolength{\topmargin}{#6}}% 135 | \@ifmtarg{#7}{}{\addtolength{\headheight}{#7}}% 136 | \@ifmtarg{#8}{}{\addtolength{\headsep}{#8}}% 137 | \@ifmtarg{#9}{}{\addtolength{\footskip}{#9}}} 138 | 139 | \newenvironment{adjustwidth}[2]{% 140 | \begin{list}{}{% 141 | \topsep\z@% 142 | \listparindent\parindent% 143 | \parsep\parskip% 144 | \@ifmtarg{#1}{\setlength{\leftmargin}{\z@}}% 145 | {\setlength{\leftmargin}{#1}}% 146 | \@ifmtarg{#2}{\setlength{\rightmargin}{\z@}}% 147 | {\setlength{\rightmargin}{#2}}% 148 | } 149 | \item[]}{\end{list}} 150 | 151 | \newenvironment{adjustwidth*}[2]{% 152 | \begin{list}{}{% 153 | \topsep\z@% 154 | \listparindent\parindent% 155 | \parsep\parskip% 156 | \checkoddpage 157 | \ifoddpage% odd numbered page 158 | \@ifmtarg{#1}{\setlength{\leftmargin}{\z@}}% 159 | {\setlength{\leftmargin}{#1}}% 160 | \@ifmtarg{#2}{\setlength{\rightmargin}{\z@}}% 161 | {\setlength{\rightmargin}{#2}}% 162 | \else% even numbered page 163 | \@ifmtarg{#2}{\setlength{\leftmargin}{\z@}}% 164 | {\setlength{\leftmargin}{#2}}% 165 | \@ifmtarg{#1}{\setlength{\rightmargin}{\z@}}% 166 | {\setlength{\rightmargin}{#1}}% 167 | \fi} 168 | \item[]}{\end{list}} 169 | 170 | \endinput 171 | 172 | % Usage: 173 | % ------ 174 | % 175 | % \usepackage[strict]{changepage} 176 | % 177 | %%%%%%%%%%%%%%% 178 | % \checkoddpage 179 | %%%%%%%%%%%%%%% 180 | % 181 | % The \checkoddpage command can be used anywhere in the body of 182 | % a document to determine if TeX is typesetting on an odd or 183 | % even numbered page. If on an odd page then \ifoddpage is 184 | % set TRUE, otherwise (on an even page) \ifoddpage is set 185 | % FALSE. 186 | % 187 | % Strict page checking works by the \checkoddpage command generating 188 | % a label and then checking the \pageref for the label (actually, a special 189 | % version of \pageref is required and is used internally by \checkoddpage). 190 | % This mechanism requires at least two LaTeX passes to ensure that 191 | % the labels have settled (on the initial pass there will be no labels 192 | % in the *.aux file to be checked). 193 | % 194 | % The label identifier is composed of the command \cplabel 195 | % and an automatically generated number. \cplabel, initially 196 | % defined as `^_', can be changed in the preamble if it will cause 197 | % a clash with any author-defined labels. The default labels will 198 | % be of the form `^_N' where N is a positive integer. 199 | % 200 | % The package option `strict' turns on strict page checking --- the default 201 | % is not to use strict checking. Strict page checking can be turned on or 202 | % off at any time by the commands \strictpagecheck or \easypagecheck. 203 | % The easy page check just tests the page number to see if it is odd or even, 204 | % which does not always give the correct result because of TeX's asynchronous 205 | % output mechanism. 206 | % 207 | %%%%%%%%%%%%% 208 | % adjustwidth 209 | %%%%%%%%%%%%% 210 | % Within an adjustwidth environment the left and right margins can be 211 | % adjusted. The environment takes two required length arguments: 212 | % 213 | % \begin{adjustwidth}{leftmargin}{rightmargin} 214 | % 215 | % A positive length value will increase the relevant margin (shortening 216 | % the text lines) while a negative length value will decrease the margin 217 | % (lengthening text lines). An empty length argument means no change 218 | % to the margin. At the end of the environment the margins revert to 219 | % their original values. 220 | % 221 | % For example, to extend the text into the right margin: 222 | % \begin{adjustwidth}{}{-8em} 223 | % 224 | % The starred version, adjustwidth*, causes the values of the 225 | % margins to switch between odd and even pages. 226 | % 227 | % If the document is being set twosided it might be advantageous 228 | % to have any wider text extending into the outside margin. This 229 | % could be done via the optional argument, as: 230 | % \begin{adjustwidth*}{}{-8em} 231 | % 232 | % To have the adjusted text horizontally centered with respect to 233 | % any surrounding text, the margins should be adjusted equally: 234 | % \begin{adjustwidth}{-4em}{-4em} 235 | % 236 | % For interest, \begin{quotation} is pretty much equivalent 237 | % to \begin{adjustwidth}{2.5em}{2.5em} 238 | % 239 | % The environment may also be used inside a float if the contents are 240 | % a bit too wide for the text block, but can still fit within the physical 241 | % page: 242 | % \begin{figure} 243 | % \begin{adjustwidth}{-2em}{-2em} 244 | % \includegraphics{wide} 245 | % \caption{Wide figure} 246 | % \end{adjustwidth} 247 | % \end{figure} 248 | % 249 | % Sometimes, because of the asynchronous nature of the TeX output 250 | % routine, the margin switching may be incorrect (like \marginpar sometimes) 251 | % near the top of a page. This can be corrected by using the package 252 | % option `strict' (i.e., \usepackage[strict]{chngpage}), which causes 253 | % adjustwidth to use the \checkoddpage command (see below). 254 | % 255 | % A disadvantage of the strict option is that the package generates 256 | % a new label for each adjustwidth environment, and TeX may run out 257 | % of space if there are an excessive number of labels in the document. 258 | % 259 | % Whether or not the strict option is used, `strict adjustwidths' 260 | % can be turned on by putting the command \strictpagecheck before 261 | % the environment, and turned off by using \easypagecheck. 262 | % 263 | % NOTE: In a twocolumn document, the adjustwidth environment 264 | % treats both columns equally. For example, if the width is meant 265 | % to be wider at the outer margin, then on odd pages the extra width 266 | % will be at the right of any column, and on even pages the extra 267 | % will be at the left of any column. You can get interesting effects 268 | % by careful hand tuning on two column pages. 269 | % 270 | %%%%%%%%%%%%% 271 | % \changetext 272 | %%%%%%%%%%%%% 273 | % The \changetext command is for changing the size and horizontal position 274 | % of the text block on a page. The command takes 5 arguments, each of which 275 | % is a length or is empty. i.e., 276 | % 277 | % \changetext{textheight}{textwidth}{evensidemargin}{oddsidemargin}{columnsep} 278 | % 279 | % The given lengths are added to the corresponding current lengths and 280 | % the remainder of the current page is typeset using the changed text block 281 | % layout. The new layout remains in effect until another \change... command 282 | % is issued. 283 | % 284 | %%%%%%%%%%%%% 285 | % \changepage 286 | %%%%%%%%%%%%% 287 | % The \changepage command is for changing the general layout of 288 | % a page. The command takes 9 arguments, each of which is a length or is empty. 289 | % The first 5 arguments are the same as for \changetext and have the same effect. 290 | % The last four arguments are: 291 | % 292 | % \changepage{5 args}{topmargin}{headheight}{headsep}{footskip} 293 | % 294 | % These lengths are added to the corresponding current lengths and 295 | % thus modify the vertical positions of the elements of the page. The 296 | % remainder of the current page is typeset using the changed text block 297 | % and page layout. The new layout remains in effect until another 298 | % \change... command is issued. 299 | % 300 | % NOTE 1: Not supplying a value for a length argument is equivalent 301 | % to giving it a zero length value. 302 | % 303 | % NOTE 2: For any given page, everything is constant except for the textwidth 304 | % and columnsep (for example, what is the meaning of two 305 | % topmargins on a single column page?). 306 | % It is therefore best to change anything else at the 307 | % start of a new page. Further, any changes only apply to whole 308 | % paragraphs. If you want an odd shaped paragraph use either 309 | % the hanging package or the TeX \parshape command. 310 | % 311 | % For example, to change from single column pages to double column 312 | % pages where the text block is both shorter and wider, then to revert 313 | % back to the initial layout: 314 | % ... single column normal page 315 | % \newpage % or \clearpage 316 | % \changetext{-5\baselineskip}{10em}{-5em}{-5em}{} 317 | % \twocolumn 318 | % ... two column pages 319 | % \clearpage 320 | % \changetext{5\baselineskip}{-10em}{5em}{5em}{} 321 | % \onecolumn 322 | % ... normal pages 323 | % 324 | % Note the adjustments to the margins which will keep the vertical centerline 325 | % of the textblock at the same position on the page. 326 | % 327 | % As another example, to increase the width of a single paragraph: 328 | % 329 | % \changetext{0pt}{5em}{}{}{}% 330 | % Start of wider paragraph text ... 331 | % ... end of paragraph. 332 | % 333 | % \changetext{0pt}{-5em}{}{}{} 334 | % Start of a normal paragraph ... 335 | % 336 | % Under some circumstances you can include a \change... command as part of 337 | % the argument to \afterpage (from the afterpage package) and it may work. 338 | % Similarly it may work in a heading style used for \thispagestyle to change 339 | % a single page. 340 | % 341 | % 342 | % Changes in version 1.0a (2008/08/15) 343 | % ---------------------- 344 | % o Fixed typo (a missing `p', courtesy Will Robertson) 345 | % 346 | % Changes in version 1.0 (2008/03/22) 347 | % ---------------------- 348 | % o First public release 349 | % 350 | % Peter W. 351 | % 352 | 353 | 354 | -------------------------------------------------------------------------------- /l3unicode-data.def: -------------------------------------------------------------------------------- 1 | \ProvidesExplFile {l3unicode-data.def} {2014/08/12} {5276} {L3 Unicode data} 2 | \clist_const:Nn \c__tl_after_final_sigma_clist 3 | { 0021 , 0022 , 0029 , 002C , 002E , 003A , 003B , 003F , 005D , 007D } 4 | \clist_const:Nn \c__tl_mixed_skip_clist 5 | { 0028 , 005B , 0060 , 007B } 6 | \pdftex_if_engine:T 7 | { 8 | \group_begin: 9 | \cs_set_protected:Npn \__unicode_tmp:NN #1#2 10 | { 11 | \quark_if_recursion_tail_stop:N #1 12 | \exp_after:wN \__unicode_tmp:NNNNNNN 13 | \tex_number:D \__int_eval:w `#1 \exp_after:wN \__int_eval_end: 14 | \tex_number:D \__int_eval:w 100 + `#2 \__int_eval_end: 15 | #1 #2 16 | \__unicode_tmp:NN 17 | } 18 | \cs_set_protected:Npn \__unicode_tmp:NNNNNNN #1#2#3#4#5#6#7 19 | { 20 | \tl_const:cx { c__str_fold_ #1 _X_ #2 _ tl } 21 | { \tl_to_str:n { #6#7 } } 22 | \tl_const:cn { c__tl_lower_ #1 _X_ #2 _ tl } { #6#7 } 23 | \tl_const:cn { c__tl_upper_ #4 _X_ #5 _ tl } { #7#6 } 24 | } 25 | \__unicode_tmp:NN 26 | AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz 27 | \q_recursion_tail ? \q_recursion_stop 28 | \group_end: 29 | \int_step_inline:nnnn { 0 } { 1 } { 9 } 30 | { 31 | \int_step_inline:nnnn { 0 } { 1 } { 9 } 32 | { 33 | \tl_if_exist:cF { c__str_fold_ #1 _X_ ##1 _ tl } 34 | { 35 | \tl_const:cn { c__str_fold_ #1 _X_ ##1 _ tl } { } 36 | } 37 | \tl_if_exist:cF { c__tl_lower_ #1 _X_ ##1 _ tl } 38 | { 39 | \tl_const:cn { c__tl_lower_ #1 _X_ ##1 _ tl } { } 40 | } 41 | \tl_if_exist:cF { c__tl_upper_ #1 _X_ ##1 _ tl } 42 | { 43 | \tl_const:cn { c__tl_upper_ #1 _X_ ##1 _ tl } { } 44 | } 45 | } 46 | } 47 | \tl_const:Nn \c__tl_mixed_exceptions_tl { } 48 | \tl_const:Nn \c__tl_std_sigma_tl { } 49 | \tl_const:Nn \c__tl_final_sigma_tl { } 50 | \tl_const:Nn \c__tl_accents_lt_tl { } 51 | \tl_const:Nn \c__tl_dot_above_tl { } 52 | \tl_const:Nn \c__tl_dotless_i_tl { I } 53 | \tl_const:Nn \c__tl_dotted_I_tl { i } 54 | \tex_endinput:D 55 | } 56 | \tl_const:cn { c__tl_upper_0_X_0_tl } { dDьЬոՈὀὈᾤ{ὬΙ}ⳬⳫ𐐨𐐀𑣜𑢼 } 57 | \tl_const:cn { c__tl_upper_0_X_1_tl } { eEĭĬǵǴəƏϩϨэЭұҰԕԔչՉḕḔṹṸờỜὁὉᾥ{ὭΙ}ⲉⲈꙩꙨ𐐩𐐁𑣝𑢽 } 58 | \tl_const:cn { c__tl_upper_0_X_2_tl } { fFƒƑюЮպՊὂὊᾦ{ὮΙ}ⳮⳭ𐐪𐐂𑣞𑢾 } 59 | \tl_const:cn { c__tl_upper_0_X_3_tl } { gGįĮɛƐϫϪяЯҳҲԗԖջՋḗḖṻṺởỞὃὋᾧ{ὯΙ}ⲋⲊꙫꙪꜳꜲꞗꞖ𐐫𐐃𑣟𑢿 } 60 | \tl_const:cn { c__tl_upper_0_X_4_tl } { hHɜꞫѐЀռՌὄὌ𐐬𐐄 } 61 | \tl_const:cn { c__tl_upper_0_X_5_tl } { iIıIƕǶǹǸϭϬёЁҵҴԙԘսՍḙḘṽṼỡỠὅὍⲍⲌꙭꙬꜵꜴꞙꞘ𐐭𐐅 } 62 | \tl_const:cn { c__tl_upper_0_X_6_tl } { jJђЂվՎ𐐮𐐆 } 63 | \tl_const:cn { c__tl_upper_0_X_7_tl } { kK{ij}{IJ}ǻǺϯϮѓЃҷҶԛԚտՏḛḚṿṾợỢⲏⲎⳳⳲꜷꜶꞛꞚ𐐯𐐇 } 64 | \tl_const:cn { c__tl_upper_0_X_8_tl } { lLɠƓϰΚєЄրՐ𐐰𐐈 } 65 | \tl_const:cn { c__tl_upper_0_X_9_tl } { mMĵĴƙƘǽǼɡꞬϱΡѕЅҹҸԝԜցՑḝḜẁẀụỤⲑⲐꜹꜸꞝꞜ𐐱𐐉 } 66 | \tl_const:cn { c__tl_upper_1_X_0_tl } { nNƚȽϲϹіІւՒ𐐲𐐊 } 67 | \tl_const:cn { c__tl_upper_1_X_1_tl } { oOķĶǿǾɣƔϳͿїЇһҺԟԞփՓḟḞẃẂủỦⲓⲒꜻꜺꞟꞞ𐐳𐐋 } 68 | \tl_const:cn { c__tl_upper_1_X_2_tl } { pPјЈքՔᾰᾸⰰⰀ𐐴𐐌 } 69 | \tl_const:cn { c__tl_upper_1_X_3_tl } { qQȁȀɥꞍϵΕљЉҽҼԡԠօՕḡḠẅẄứỨᾱᾹⰱⰁⲕⲔꜽꜼꞡꞠ𐐵𐐍 } 70 | \tl_const:cn { c__tl_upper_1_X_4_tl } { rRĺĹƞȠɦꞪњЊֆՖⰲⰂ𐐶𐐎 } 71 | \tl_const:cn { c__tl_upper_1_X_5_tl } { sSȃȂћЋҿҾԣԢḣḢẇẆừỪᾳ{ΑΙ}ⰳⰃⲗⲖꜿꜾꞣꞢ𐐷𐐏 } 72 | \tl_const:cn { c__tl_upper_1_X_6_tl } { tTļĻɨƗϸϷќЌⰴⰄ𐐸𐐐 } 73 | \tl_const:cn { c__tl_upper_1_X_7_tl } { uUơƠȅȄɩƖѝЍԥԤḥḤẉẈửỬὑὙⰵⰅⲙⲘꝁꝀꞥꞤ𐐹𐐑 } 74 | \tl_const:cn { c__tl_upper_1_X_8_tl } { vVľĽўЎӂӁⰶⰆ𐐺𐐒 } 75 | \tl_const:cn { c__tl_upper_1_X_9_tl } { wWƣƢȇȆɫⱢϻϺџЏԧԦḧḦẋẊữỮὓὛⰷⰇⲛⲚꝃꝂꞧꞦ𐐻𐐓 } 76 | \tl_const:cn { c__tl_upper_2_X_0_tl } { xX{ŀ}{Ŀ}ɬꞭӄӃⰸⰈⴀႠ𐐼𐐔 } 77 | \tl_const:cn { c__tl_upper_2_X_1_tl } { yYƥƤȉȈѡѠԩԨḩḨẍẌựỰὕὝⰹⰉⲝⲜⴁႡꝅꝄꞩꞨ𐐽𐐕 } 78 | \tl_const:cn { c__tl_upper_2_X_2_tl } { zZłŁӆӅⰺⰊⴂႢ𐐾𐐖 } 79 | \tl_const:cn { c__tl_upper_2_X_3_tl } { ȋȊɯƜѣѢԫԪḫḪẏẎỳỲὗὟⰻⰋⲟⲞⴃႣꝇꝆ𐐿𐐗 } 80 | \tl_const:cn { c__tl_upper_2_X_4_tl } { àÀńŃƨƧӈӇⓐⒶⰼⰌⴄႤ𐑀𐐘 } 81 | \tl_const:cn { c__tl_upper_2_X_5_tl } { áÁȍȌɱⱮѥѤԭԬḭḬẑẐỵỴⓑⒷⰽⰍⲡⲠⴅႥꚁꚀꝉꝈ𐑁𐐙 } 82 | \tl_const:cn { c__tl_upper_2_X_6_tl } { âÂņŅɲƝӊӉιΙⅎℲⓒⒸⰾⰎⴆႦ𐑂𐐚 } 83 | \tl_const:cn { c__tl_upper_2_X_7_tl } { ãÃȏȎѧѦԯԮḯḮẓẒỷỶⓓⒹⰿⰏⲣⲢⴇႧꚃꚂꝋꝊ𐑃𐐛 } 84 | \tl_const:cn { c__tl_upper_2_X_8_tl } { äÄňŇӌӋⓔⒺⱀⰐⴈႨ𐑄𐐜 } 85 | \tl_const:cn { c__tl_upper_2_X_9_tl } { åÅƭƬȑȐɵƟѩѨḱḰẕẔỹỸⓕⒻⱁⰑⲥⲤⴉႩꚅꚄꝍꝌ𐑅𐐝 } 86 | \tl_const:cn { c__tl_upper_3_X_0_tl } { æÆӎӍⓖⒼⱂⰒⴊႪ𐑆𐐞 } 87 | \tl_const:cn { c__tl_upper_3_X_1_tl } { çÇŋŊȓȒѫѪӏӀḳḲỻỺῃ{ΗΙ}ⓗⒽⱃⰓⲧⲦⴋႫꚇꚆꝏꝎ𐑇𐐟 } 88 | \tl_const:cn { c__tl_upper_3_X_2_tl } { èÈưƯὠὨⓘⒾⱄⰔⴌႬ𐑈𐐠 } 89 | \tl_const:cn { c__tl_upper_3_X_3_tl } { éÉōŌȕȔѭѬӑӐḵḴỽỼὡὩⓙⒿⱅⰕⲩⲨⴍႭꚉꚈꝑꝐ𐑉𐐡 } 90 | \tl_const:cn { c__tl_upper_3_X_4_tl } { êÊὢὪⓚⓀⱆⰖⴎႮ𐑊𐐢 } 91 | \tl_const:cn { c__tl_upper_3_X_5_tl } { ëËŏŎȗȖѯѮӓӒḷḶẛṠỿỾὣὫⓛⓁⱇⰗⲫⲪⴏႯꚋꚊꝓꝒ𐑋𐐣 } 92 | \tl_const:cn { c__tl_upper_3_X_6_tl } { ìÌƴƳἀἈὤὬⓜⓂⱈⰘⴐႰ𐑌𐐤 } 93 | \tl_const:cn { c__tl_upper_3_X_7_tl } { íÍőŐșȘɽⱤͅΙѱѰӕӔḹḸἁἉὥὭⓝⓃⱉⰙⲭⲬⴑႱꚍꚌꝕꝔ𐑍𐐥 } 94 | \tl_const:cn { c__tl_upper_3_X_8_tl } { îÎƶƵἂἊὦὮⓞⓄⱊⰚⴒႲ𐑎𐐦 } 95 | \tl_const:cn { c__tl_upper_3_X_9_tl } { ïÏœŒțȚѳѲӗӖḻḺἃἋὧὯⓟⓅⱋⰛⲯⲮⴓႳꚏꚎꝗꝖ𐑏𐐧 } 96 | \tl_const:cn { c__tl_upper_4_X_0_tl } { ðÐʀƦάΆἄἌⓠⓆⱌⰜⴔႴ } 97 | \tl_const:cn { c__tl_upper_4_X_1_tl } { ñÑŕŔƹƸȝȜέΈѵѴәӘḽḼạẠἅἍⓡⓇⱍⰝⲱⲰⴕႵꚑꚐꝙꝘ } 98 | \tl_const:cn { c__tl_upper_4_X_2_tl } { òÒήΉἆἎⓢⓈⱎⰞⴖႶ } 99 | \tl_const:cn { c__tl_upper_4_X_3_tl } { óÓŗŖȟȞʃƩίΊѷѶӛӚḿḾảẢἇἏⓣⓉⱏⰟⲳⲲⴗႷꚓꚒꝛꝚ } 100 | \tl_const:cn { c__tl_upper_4_X_4_tl } { ôÔῐῘⓤⓊⱐⰠⴘႸ } 101 | \tl_const:cn { c__tl_upper_4_X_5_tl } { õÕřŘƽƼαΑѹѸӝӜᵹꝽṁṀấẤῑῙⓥⓋⱑⰡⲵⲴⴙႹꚕꚔꝝꝜaA } 102 | \tl_const:cn { c__tl_upper_4_X_6_tl } { öÖβΒⓦⓌⱒⰢⴚႺbB } 103 | \tl_const:cn { c__tl_upper_4_X_7_tl } { śŚƿǷȣȢʇꞱγΓѻѺӟӞṃṂầẦⓧⓍⱓⰣⲷⲶⴛႻꚗꚖꝟꝞcC } 104 | \tl_const:cn { c__tl_upper_4_X_8_tl } { øØʈƮδΔὰᾺⓨⓎⱔⰤⴜႼdD } 105 | \tl_const:cn { c__tl_upper_4_X_9_tl } { ùÙŝŜȥȤʉɄεΕѽѼӡӠᵽⱣṅṄẩẨάΆⓩⓏⱕⰥⲹⲸⴝႽꚙꚘꝡꝠeE } 106 | \tl_const:cn { c__tl_upper_5_X_0_tl } { úÚʊƱζΖὲῈⱖⰦⴞႾfF } 107 | \tl_const:cn { c__tl_upper_5_X_1_tl } { ûÛşŞȧȦʋƲηΗѿѾӣӢṇṆẫẪέΈⱗⰧⲻⲺⴟႿꚛꚚꝣꝢgG } 108 | \tl_const:cn { c__tl_upper_5_X_2_tl } { üÜʌɅθΘἐἘὴῊⱘⰨⴠჀhH } 109 | \tl_const:cn { c__tl_upper_5_X_3_tl } { ýÝšŠ{Dž}{DŽ}ȩȨιΙҁҀӥӤṉṈậẬἑἙήΉⱙⰩⲽⲼⴡჁꝥꝤiI } 110 | \tl_const:cn { c__tl_upper_5_X_4_tl } { þÞ{dž}{DŽ}κΚἒἚὶῚⱚⰪⴢჂjJ } 111 | \tl_const:cn { c__tl_upper_5_X_5_tl } { ÿŸţŢȫȪλΛӧӦṋṊắẮἓἛίΊⱛⰫⲿⲾⴣჃꝧꝦkK } 112 | \tl_const:cn { c__tl_upper_5_X_6_tl } { {Lj}{LJ}μΜἔἜὸῸⱜⰬⴤჄlL } 113 | \tl_const:cn { c__tl_upper_5_X_7_tl } { āĀťŤ{lj}{LJ}ȭȬνΝөӨṍṌằẰἕἝόΌⱝⰭⳁⳀⴥჅꝩꝨmM } 114 | \tl_const:cn { c__tl_upper_5_X_8_tl } { ʒƷξΞὺῪⱞⰮnN } 115 | \tl_const:cn { c__tl_upper_5_X_9_tl } { ăĂŧŦ{Nj}{NJ}ȯȮοΟӫӪṏṎẳẲύΎⳃⳂⴧჇꝫꝪoO } 116 | \tl_const:cn { c__tl_upper_6_X_0_tl } { {nj}{NJ}πΠὼῺῠῨⅰⅠpP } 117 | \tl_const:cn { c__tl_upper_6_X_1_tl } { ąĄũŨȱȰρΡӭӬṑṐẵẴώΏῡῩ{ⅱ}{Ⅱ}ⱡⱠⳅⳄꙁꙀꝭꝬqQ } 118 | \tl_const:cn { c__tl_upper_6_X_2_tl } { ǎǍςΣ{ⅲ}{Ⅲ}rR } 119 | \tl_const:cn { c__tl_upper_6_X_3_tl } { ćĆūŪȳȲσΣҋҊӯӮṓṒặẶ{ⅳ}{Ⅳ}ⳇⳆꙃꙂꝯꝮsS } 120 | \tl_const:cn { c__tl_upper_6_X_4_tl } { ǐǏτΤᾀ{ἈΙ}ⅴⅤtT } 121 | \tl_const:cn { c__tl_upper_6_X_5_tl } { ĉĈŭŬυΥҍҌӱӰṕṔẹẸᾁ{ἉΙ}ῥῬ{ⅵ}{Ⅵ}ⱥȺⳉⳈⴭჍꙅꙄuU } 122 | \tl_const:cn { c__tl_upper_6_X_6_tl } { ǒǑφΦᾂ{ἊΙ}{ⅶ}{Ⅶ}ⱦȾvV } 123 | \tl_const:cn { c__tl_upper_6_X_7_tl } { ċĊůŮχΧҏҎӳӲṗṖẻẺᾃ{ἋΙ}{ⅷ}{Ⅷ}ⳋⳊꙇꙆwW } 124 | \tl_const:cn { c__tl_upper_6_X_8_tl } { ǔǓψΨἠἨᾄ{ἌΙ}{ⅸ}{Ⅸ}ⱨⱧxX } 125 | \tl_const:cn { c__tl_upper_6_X_9_tl } { čČűŰωΩґҐӵӴṙṘẽẼἡἩᾅ{ἍΙ}ⅹⅩⳍⳌꙉꙈyY } 126 | \tl_const:cn { c__tl_upper_7_X_0_tl } { ǖǕʞꞰϊΪἢἪᾆ{ἎΙ}{ⅺ}{Ⅺ}ⱪⱩzZ } 127 | \tl_const:cn { c__tl_upper_7_X_1_tl } { ďĎųŲϋΫғҒӷӶṛṚếẾἣἫᾇ{ἏΙ}{ⅻ}{Ⅻ}ⳏⳎꙋꙊ } 128 | \tl_const:cn { c__tl_upper_7_X_2_tl } { ǘǗȼȻόΌаАἤἬⅼⅬⱬⱫ𑣀𑢠 } 129 | \tl_const:cn { c__tl_upper_7_X_3_tl } { đĐŵŴύΎбБҕҔӹӸṝṜềỀἥἭⅽⅭⳑⳐꙍꙌ𑣁𑢡 } 130 | \tl_const:cn { c__tl_upper_7_X_4_tl } { ǚǙώΏвВἦἮⅾⅮꝺꝹ𑣂𑢢 } 131 | \tl_const:cn { c__tl_upper_7_X_5_tl } { ēĒŷŶȿⱾгГҗҖӻӺṟṞểỂἧἯⅿⅯⳓⳒꙏꙎ𑣃𑢣 } 132 | \tl_const:cn { c__tl_upper_7_X_6_tl } { ǜǛɀⱿϐΒдДꝼꝻ𑣄𑢤 } 133 | \tl_const:cn { c__tl_upper_7_X_7_tl } { ĕĔǝƎϑΘеЕҙҘӽӼաԱṡṠễỄⳕⳔꙑꙐ𑣅𑢥 } 134 | \tl_const:cn { c__tl_upper_7_X_8_tl } { źŹɂɁжЖբԲ𑣆𑢦 } 135 | \tl_const:cn { c__tl_upper_7_X_9_tl } { ėĖǟǞзЗқҚӿӾգԳṣṢệỆῳ{ΩΙ}ⱳⱲⳗⳖꙓꙒꝿꝾ𑣇𑢧 } 136 | \tl_const:cn { c__tl_upper_8_X_0_tl } { żŻиИդԴᾐ{ἨΙ}ↄↃ𑣈𑢨 } 137 | \tl_const:cn { c__tl_upper_8_X_1_tl } { µΜęĘǡǠͱͰϕΦйЙҝҜԁԀեԵḁḀṥṤỉỈᾑ{ἩΙ}ⳙⳘꙕꙔꞁꞀ𑣉𑢩 } 138 | \tl_const:cn { c__tl_upper_8_X_2_tl } { žŽϖΠкКզԶᾒ{ἪΙ}ⱶⱵ𑣊𑢪 } 139 | \tl_const:cn { c__tl_upper_8_X_3_tl } { ěĚſSǣǢɇɆͳͲϗϏлЛҟҞԃԂէԷḃḂṧṦịỊᾓ{ἫΙ}ⳛⳚꙗꙖꞃꞂ𑣋𑢫 } 140 | \tl_const:cn { c__tl_upper_8_X_4_tl } { ƀɃмМըԸἰἸᾔ{ἬΙ}𑣌𑢬 } 141 | \tl_const:cn { c__tl_upper_8_X_5_tl } { ĝĜǥǤɉɈϙϘнНҡҠԅԄթԹḅḄṩṨọỌἱἹᾕ{ἭΙ}ⳝⳜꙙꙘꞅꞄ𑣍𑢭 } 142 | \tl_const:cn { c__tl_upper_8_X_6_tl } { оОժԺἲἺᾖ{ἮΙ}𑣎𑢮 } 143 | \tl_const:cn { c__tl_upper_8_X_7_tl } { ğĞƃƂǧǦɋɊͷͶϛϚпПңҢԇԆիԻḇḆṫṪỏỎἳἻᾗ{ἯΙ}ⳟⳞꙛꙚꜣꜢꞇꞆ𑣏𑢯 } 144 | \tl_const:cn { c__tl_upper_8_X_8_tl } { рРլԼἴἼ𑣐𑢰 } 145 | \tl_const:cn { c__tl_upper_8_X_9_tl } { ġĠƅƄǩǨɍɌϝϜсСҥҤԉԈխԽḉḈṭṬốỐἵἽⳡⳠꙝꙜꜥꜤ𑣑𑢱 } 146 | \tl_const:cn { c__tl_upper_9_X_0_tl } { тТծԾἶἾ𑣒𑢲 } 147 | \tl_const:cn { c__tl_upper_9_X_1_tl } { ģĢǫǪɏɎͻϽϟϞуУҧҦԋԊկԿḋḊṯṮồỒἷἿⳣⳢꙟꙞꜧꜦ𑣓𑢳 } 148 | \tl_const:cn { c__tl_upper_9_X_2_tl } { ƈƇɐⱯͼϾфФհՀꞌꞋ𑣔𑢴 } 149 | \tl_const:cn { c__tl_upper_9_X_3_tl } { ĥĤǭǬɑⱭͽϿϡϠхХҩҨԍԌձՁḍḌṱṰổỔⲁⲀꙡꙠꜩꜨ𑣕𑢵 } 150 | \tl_const:cn { c__tl_upper_9_X_4_tl } { ɒⱰцЦղՂ𑣖𑢶 } 151 | \tl_const:cn { c__tl_upper_9_X_5_tl } { ħĦǯǮɓƁϣϢчЧҫҪԏԎճՃḏḎṳṲỗỖⲃⲂꙣꙢꜫꜪ𑣗𑢷 } 152 | \tl_const:cn { c__tl_upper_9_X_6_tl } { ƌƋɔƆшШմՄᾠ{ὨΙ}𑣘𑢸 } 153 | \tl_const:cn { c__tl_upper_9_X_7_tl } { aAĩĨϥϤщЩҭҬԑԐյՅḑḐṵṴộỘᾡ{ὩΙ}ⲅⲄꙥꙤꜭꜬꞑꞐ𑣙𑢹 } 154 | \tl_const:cn { c__tl_upper_9_X_8_tl } { bB{Dz}{DZ}ɖƉъЪնՆᾢ{ὪΙ}𑣚𑢺 } 155 | \tl_const:cn { c__tl_upper_9_X_9_tl } { cCīĪ{dz}{DZ}ɗƊϧϦыЫүҮԓԒշՇḓḒṷṶớỚᾣ{ὫΙ}ⲇⲆꙧꙦꜯꜮꞓꞒ𑣛𑢻 } 156 | \tl_const:cn { c__tl_lower_0_X_0_tl } { ÈèĬĭƐɛǴǵϨϩҰұԔԕḔḕṸṹỜờⒸⓒⰤⱔⲈⲉꙨꙩ } 157 | \tl_const:cn { c__tl_lower_0_X_1_tl } { ÉéƑƒჍⴭⒹⓓⰥⱕⳭⳮ } 158 | \tl_const:cn { c__tl_lower_0_X_2_tl } { ÊêĮįǶƕΆάϪϫҲҳԖԗḖḗṺṻỞởⒺⓔⰦⱖⲊⲋꙪꙫꜲꜳꞖꞗ } 159 | \tl_const:cn { c__tl_lower_0_X_3_tl } { ËëƓɠǷƿⒻⓕⰧⱗ } 160 | \tl_const:cn { c__tl_lower_0_X_4_tl } { Ììİ{i̇}ƔɣǸǹΈέϬϭҴҵԘԙḘḙṼṽỠỡᾨᾠⒼⓖⰨⱘⲌⲍꙬꙭꜴꜵꞘꞙ } 161 | \tl_const:cn { c__tl_lower_0_X_5_tl } { ÍíΉήᾩᾡⒽⓗⰩⱙ } 162 | \tl_const:cn { c__tl_lower_0_X_6_tl } { Îî{IJ}{ij}ƖɩǺǻΊίϮϯҶҷԚԛḚḛṾṿỢợᾪᾢⒾⓘⰪⱚⲎⲏⳲⳳꜶꜷꞚꞛ } 163 | \tl_const:cn { c__tl_lower_0_X_7_tl } { ÏïƗɨᾫᾣⒿⓙⰫⱛ } 164 | \tl_const:cn { c__tl_lower_0_X_8_tl } { ÐðĴĵƘƙǼǽΌόҸҹԜԝḜḝẀẁỤụὈὀᾬᾤⓀⓚⰬⱜⲐⲑꜸꜹꞜꞝ } 165 | \tl_const:cn { c__tl_lower_0_X_9_tl } { ÑñὉὁᾭᾥⓁⓛⰭⱝ } 166 | \tl_const:cn { c__tl_lower_1_X_0_tl } { ÒòĶķǾǿΎύҺһԞԟḞḟẂẃỦủὊὂᾮᾦⓂⓜⰮⱞⲒⲓꜺꜻꞞꞟ } 167 | \tl_const:cn { c__tl_lower_1_X_1_tl } { ÓóΏώὋὃᾯᾧⓃⓝ } 168 | \tl_const:cn { c__tl_lower_1_X_2_tl } { ÔôƜɯȀȁϴθҼҽԠԡḠḡẄẅỨứὌὄⓄⓞⲔⲕꜼꜽꞠꞡ } 169 | \tl_const:cn { c__tl_lower_1_X_3_tl } { ÕõĹĺƝɲΑαὍὅⓅⓟAa } 170 | \tl_const:cn { c__tl_lower_1_X_4_tl } { ÖöȂȃΒβҾҿԢԣḢḣẆẇỪừⓆⓠⲖⲗꜾꜿꞢꞣBb } 171 | \tl_const:cn { c__tl_lower_1_X_5_tl } { ĻļƟɵΓγϷϸⓇⓡCc } 172 | \tl_const:cn { c__tl_lower_1_X_6_tl } { ØøƠơȄȅΔδӀӏԤԥḤḥẈẉỬửⓈⓢⲘⲙꝀꝁꞤꞥDd } 173 | \tl_const:cn { c__tl_lower_1_X_7_tl } { ÙùĽľΕεϹϲӁӂⓉⓣEe } 174 | \tl_const:cn { c__tl_lower_1_X_8_tl } { ÚúƢƣȆȇΖζϺϻԦԧḦḧẊẋỮữⓊⓤⲚⲛꝂꝃꞦꞧFf } 175 | \tl_const:cn { c__tl_lower_1_X_9_tl } { Ûû{Ŀ}{ŀ}ΗηӃӄⓋⓥGg } 176 | \tl_const:cn { c__tl_lower_2_X_0_tl } { ÜüƤƥȈȉΘθѠѡԨԩḨḩẌẍỰựᾸᾰⓌⓦⲜⲝꝄꝅꞨꞩHh } 177 | \tl_const:cn { c__tl_lower_2_X_1_tl } { ÝýŁłΙιϽͻӅӆᾹᾱⓍⓧIi } 178 | \tl_const:cn { c__tl_lower_2_X_2_tl } { ÞþƦʀȊȋΚκϾͼѢѣԪԫḪḫẎẏỲỳᾺὰⓎⓨⲞⲟꝆꝇꞪɦJj } 179 | \tl_const:cn { c__tl_lower_2_X_3_tl } { ŃńƧƨΛλϿͽӇӈΆάⓏⓩꞫɜKk } 180 | \tl_const:cn { c__tl_lower_2_X_4_tl } { ȌȍΜμЀѐѤѥԬԭḬḭẐẑỴỵᾼᾳⲠⲡꚀꚁꝈꝉꞬɡLl } 181 | \tl_const:cn { c__tl_lower_2_X_5_tl } { ŅņƩʃΝνЁёӉӊὙὑꞭɬMm } 182 | \tl_const:cn { c__tl_lower_2_X_6_tl } { ȎȏΞξЂђѦѧԮԯḮḯẒẓỶỷⲢⲣꚂꚃꝊꝋNn } 183 | \tl_const:cn { c__tl_lower_2_X_7_tl } { ŇňΟοЃѓӋӌὛὓOo } 184 | \tl_const:cn { c__tl_lower_2_X_8_tl } { ƬƭȐȑΠπЄєѨѩḰḱẔẕỸỹⲤⲥꚄꚅꝌꝍꞰʞPp } 185 | \tl_const:cn { c__tl_lower_2_X_9_tl } { ΡρЅѕӍӎԱաὝὕꞱʇQq } 186 | \tl_const:cn { c__tl_lower_3_X_0_tl } { ŊŋƮʈȒȓІіѪѫԲբḲḳỺỻⲦⲧꚆꚇꝎꝏRr } 187 | \tl_const:cn { c__tl_lower_3_X_1_tl } { ƯưΣσЇїԳգὟὗSs } 188 | \tl_const:cn { c__tl_lower_3_X_2_tl } { ŌōȔȕΤτЈјѬѭӐӑԴդḴḵỼỽⲨⲩꚈꚉꝐꝑTt } 189 | \tl_const:cn { c__tl_lower_3_X_3_tl } { ƱʊΥυЉљԵեUu } 190 | \tl_const:cn { c__tl_lower_3_X_4_tl } { ŎŏƲʋȖȗΦφЊњѮѯӒӓԶզḶḷỾỿⲪⲫꚊꚋꝒꝓVv } 191 | \tl_const:cn { c__tl_lower_3_X_5_tl } { ƳƴΧχЋћԷէWw } 192 | \tl_const:cn { c__tl_lower_3_X_6_tl } { ŐőȘșΨψЌќѰѱӔӕԸըḸḹῈὲⲬⲭꚌꚍꝔꝕXx } 193 | \tl_const:cn { c__tl_lower_3_X_7_tl } { ƵƶΩωЍѝԹթΈέYy } 194 | \tl_const:cn { c__tl_lower_3_X_8_tl } { ŒœȚțΪϊЎўѲѳӖӗԺժḺḻẞßῊὴⲮⲯꚎꚏꝖꝗZz } 195 | \tl_const:cn { c__tl_lower_3_X_9_tl } { ƷʒΫϋЏџԻիΉή } 196 | \tl_const:cn { c__tl_lower_4_X_0_tl } { ŔŕƸƹȜȝАаѴѵӘәԼլḼḽẠạὨὠῌῃⲰⲱꚐꚑꝘꝙ𑢠𑣀 } 197 | \tl_const:cn { c__tl_lower_4_X_1_tl } { БбԽխὩὡ𑢡𑣁 } 198 | \tl_const:cn { c__tl_lower_4_X_2_tl } { ŖŗȞȟВвѶѷӚӛԾծḾḿẢảὪὢⲲⲳꚒꚓꝚꝛ𑢢𑣂 } 199 | \tl_const:cn { c__tl_lower_4_X_3_tl } { ГгԿկὫὣ𑢣𑣃 } 200 | \tl_const:cn { c__tl_lower_4_X_4_tl } { ŘřƼƽȠƞДдѸѹӜӝՀհṀṁẤấἈἀὬὤⅠⅰⲴⲵꚔꚕꝜꝝ𑢤𑣄 } 201 | \tl_const:cn { c__tl_lower_4_X_5_tl } { ЕеՁձἉἁὭὥ{Ⅱ}{ⅱ}𑢥𑣅 } 202 | \tl_const:cn { c__tl_lower_4_X_6_tl } { ŚśȢȣЖжѺѻӞӟՂղṂṃẦầἊἂὮὦ{Ⅲ}{ⅲ}ⲶⲷꚖꚗꝞꝟ𑢦𑣆 } 203 | \tl_const:cn { c__tl_lower_4_X_7_tl } { ЗзՃճἋἃὯὧ{Ⅳ}{ⅳ}𑢧𑣇 } 204 | \tl_const:cn { c__tl_lower_4_X_8_tl } { ŜŝȤȥИиѼѽӠӡՄմṄṅẨẩἌἄⅤⅴⲸⲹꚘꚙꝠꝡ𑢨𑣈 } 205 | \tl_const:cn { c__tl_lower_4_X_9_tl } { ЙйՅյἍἅ{Ⅵ}{ⅵ}𑢩𑣉 } 206 | \tl_const:cn { c__tl_lower_5_X_0_tl } { ŞşȦȧКкѾѿӢӣՆնṆṇẪẫἎἆ{Ⅶ}{ⅶ}ⲺⲻꚚꚛꝢꝣ𑢪𑣊 } 207 | \tl_const:cn { c__tl_lower_5_X_1_tl } { ЛлՇշἏἇ{Ⅷ}{ⅷ}𑢫𑣋 } 208 | \tl_const:cn { c__tl_lower_5_X_2_tl } { Šš{DŽ}{dž}ȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 } 209 | \tl_const:cn { c__tl_lower_5_X_3_tl } { {Dž}{dž}НнՉչῙῑⅩⅹ𑢭𑣍 } 210 | \tl_const:cn { c__tl_lower_5_X_4_tl } { ŢţȪȫОоӦӧՊպṊṋẮắῚὶ{Ⅺ}{ⅺ}ⲾⲿꝦꝧ𑢮𑣎 } 211 | \tl_const:cn { c__tl_lower_5_X_5_tl } { {LJ}{lj}ПпՋջΊί{Ⅻ}{ⅻ}𑢯𑣏 } 212 | \tl_const:cn { c__tl_lower_5_X_6_tl } { ĀāŤť{Lj}{lj}ȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ𑢰𑣐 } 213 | \tl_const:cn { c__tl_lower_5_X_7_tl } { СсՍսႡⴁⅭⅽ𑢱𑣑 } 214 | \tl_const:cn { c__tl_lower_5_X_8_tl } { ĂăŦŧ{NJ}{nj}ȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ𑢲𑣒 } 215 | \tl_const:cn { c__tl_lower_5_X_9_tl } { {Nj}{nj}УуՏտႣⴃⅯⅿ𑢳𑣓 } 216 | \tl_const:cn { c__tl_lower_6_X_0_tl } { ĄąŨũȰȱФфӬӭՐրႤⴄṐṑẴẵἘἐⱠⱡⳄⳅꙀꙁꝬꝭ𐐀𐐨𑢴𑣔 } 217 | \tl_const:cn { c__tl_lower_6_X_1_tl } { ǍǎХхՑցႥⴅἙἑ𐐁𐐩𑢵𑣕 } 218 | \tl_const:cn { c__tl_lower_6_X_2_tl } { ĆćŪūȲȳЦцҊҋӮӯՒւႦⴆṒṓẶặἚἒⱢɫⳆⳇꙂꙃꝮꝯ𐐂𐐪𑢶𑣖 } 219 | \tl_const:cn { c__tl_lower_6_X_3_tl } { ǏǐЧчՓփႧⴇἛἓⱣᵽ𐐃𐐫𑢷𑣗 } 220 | \tl_const:cn { c__tl_lower_6_X_4_tl } { ĈĉŬŭШшҌҍӰӱՔքႨⴈṔṕẸẹἜἔⰀⰰⱤɽⳈⳉꙄꙅ𐐄𐐬𑢸𑣘 } 221 | \tl_const:cn { c__tl_lower_6_X_5_tl } { AaǑǒЩщՕօႩⴉἝἕⰁⰱ𐐅𐐭𑢹𑣙 } 222 | \tl_const:cn { c__tl_lower_6_X_6_tl } { BbĊċŮůЪъҎҏӲӳՖֆႪⴊṖṗẺẻⰂⰲⳊⳋꙆꙇ𐐆𐐮𑢺𑣚 } 223 | \tl_const:cn { c__tl_lower_6_X_7_tl } { CcǓǔЫыႫⴋⰃⰳⱧⱨ𐐇𐐯𑢻𑣛 } 224 | \tl_const:cn { c__tl_lower_6_X_8_tl } { DdČčŰűЬьҐґӴӵႬⴌṘṙẼẽῨῠⰄⰴⳌⳍꙈꙉ𐐈𐐰𑢼𑣜 } 225 | \tl_const:cn { c__tl_lower_6_X_9_tl } { EeǕǖЭэႭⴍῩῡⰅⰵⱩⱪ𐐉𐐱𑢽𑣝 } 226 | \tl_const:cn { c__tl_lower_7_X_0_tl } { FfĎďŲųȺⱥЮюҒғӶӷႮⴎṚṛẾếῪὺⰆⰶⳎⳏꙊꙋ𐐊𐐲𑢾𑣞 } 227 | \tl_const:cn { c__tl_lower_7_X_1_tl } { GgǗǘȻȼЯяႯⴏΎύⰇⰷⱫⱬ𐐋𐐳𑢿𑣟 } 228 | \tl_const:cn { c__tl_lower_7_X_2_tl } { HhĐđŴŵҔҕӸӹႰⴐṜṝỀềᾈᾀῬῥⰈⰸⳐⳑꙌꙍ𐐌𐐴 } 229 | \tl_const:cn { c__tl_lower_7_X_3_tl } { IiǙǚȽƚႱⴑᾉᾁⰉⰹⱭɑꝹꝺ𐐍𐐵 } 230 | \tl_const:cn { c__tl_lower_7_X_4_tl } { JjĒēŶŷȾⱦҖҗӺӻႲⴒṞṟỂểᾊᾂⰊⰺⱮɱⳒⳓꙎꙏ𐐎𐐶 } 231 | \tl_const:cn { c__tl_lower_7_X_5_tl } { KkǛǜϏϗႳⴓᾋᾃⰋⰻⱯɐꝻꝼ𐐏𐐷 } 232 | \tl_const:cn { c__tl_lower_7_X_6_tl } { LlĔĕŸÿҘҙӼӽႴⴔṠṡỄễἨἠᾌᾄⰌⰼⱰɒⳔⳕꙐꙑ𐐐𐐸 } 233 | \tl_const:cn { c__tl_lower_7_X_7_tl } { MmŹźɁɂႵⴕἩἡᾍᾅⰍⰽꝽᵹ𐐑𐐹 } 234 | \tl_const:cn { c__tl_lower_7_X_8_tl } { NnĖėǞǟҚқӾӿႶⴖṢṣỆệἪἢᾎᾆⰎⰾⱲⱳⳖⳗꙒꙓꝾꝿ𐐒𐐺 } 235 | \tl_const:cn { c__tl_lower_7_X_9_tl } { OoŻżɃƀႷⴗἫἣᾏᾇↃↄⰏⰿ𐐓𐐻 } 236 | \tl_const:cn { c__tl_lower_8_X_0_tl } { PpĘęǠǡɄʉͰͱҜҝԀԁႸⴘḀḁṤṥỈỉἬἤⰐⱀⳘⳙꙔꙕꞀꞁ𐐔𐐼 } 237 | \tl_const:cn { c__tl_lower_8_X_1_tl } { QqŽžɅʌႹⴙἭἥⰑⱁⱵⱶ𐐕𐐽 } 238 | \tl_const:cn { c__tl_lower_8_X_2_tl } { RrĚěǢǣɆɇͲͳҞҟԂԃႺⴚḂḃṦṧỊịἮἦⰒⱂⳚⳛꙖꙗꞂꞃ𐐖𐐾 } 239 | \tl_const:cn { c__tl_lower_8_X_3_tl } { SsႻⴛἯἧⰓⱃ𐐗𐐿 } 240 | \tl_const:cn { c__tl_lower_8_X_4_tl } { TtĜĝǤǥɈɉϘϙҠҡԄԅႼⴜḄḅṨṩỌọῸὸⰔⱄⳜⳝꙘꙙꞄꞅ𐐘𐑀 } 241 | \tl_const:cn { c__tl_lower_8_X_5_tl } { UuƁɓႽⴝΌόⰕⱅ𐐙𐑁 } 242 | \tl_const:cn { c__tl_lower_8_X_6_tl } { VvĞğƂƃǦǧɊɋͶͷϚϛҢңԆԇႾⴞḆḇṪṫỎỏῺὼΩωⰖⱆⳞⳟꙚꙛꜢꜣꞆꞇ𐐚𐑂 } 243 | \tl_const:cn { c__tl_lower_8_X_7_tl } { WwႿⴟΏώⰗⱇ𐐛𐑃 } 244 | \tl_const:cn { c__tl_lower_8_X_8_tl } { XxĠġƄƅǨǩɌɍϜϝҤҥԈԉჀⴠḈḉṬṭỐốᾘᾐῼῳⰘⱈⳠⳡꙜꙝꜤꜥ𐐜𐑄 } 245 | \tl_const:cn { c__tl_lower_8_X_9_tl } { YyჁⴡᾙᾑⰙⱉ𐐝𐑅 } 246 | \tl_const:cn { c__tl_lower_9_X_0_tl } { ZzĢģƆɔǪǫɎɏϞϟҦҧԊԋჂⴢḊḋṮṯỒồᾚᾒKkⰚⱊⱾȿⳢⳣꙞꙟꜦꜧ𐐞𐑆 } 247 | \tl_const:cn { c__tl_lower_9_X_1_tl } { ƇƈჃⴣᾛᾓÅåⰛⱋⱿɀꞋꞌ𐐟𐑇 } 248 | \tl_const:cn { c__tl_lower_9_X_2_tl } { ÀàĤĥǬǭϠϡҨҩԌԍჄⴤḌḍṰṱỔổἸἰᾜᾔⰜⱌⲀⲁꙠꙡꜨꜩ𐐠𐑈 } 249 | \tl_const:cn { c__tl_lower_9_X_3_tl } { ÁáƉɖჅⴥἹἱᾝᾕⰝⱍꞍɥ𐐡𐑉 } 250 | \tl_const:cn { c__tl_lower_9_X_4_tl } { ÂâĦħƊɗǮǯϢϣҪҫԎԏḎḏṲṳỖỗἺἲᾞᾖⰞⱎⲂⲃꙢꙣꜪꜫ𐐢𐑊 } 251 | \tl_const:cn { c__tl_lower_9_X_5_tl } { ÃãƋƌͿϳჇⴧἻἳᾟᾗⰟⱏ𐐣𐑋 } 252 | \tl_const:cn { c__tl_lower_9_X_6_tl } { ÄäĨĩϤϥҬҭԐԑḐḑṴṵỘộἼἴⰠⱐⲄⲅꙤꙥꜬꜭꞐꞑ𐐤𐑌 } 253 | \tl_const:cn { c__tl_lower_9_X_7_tl } { Åå{DZ}{dz}ἽἵⰡⱑ𐐥𐑍 } 254 | \tl_const:cn { c__tl_lower_9_X_8_tl } { ÆæĪīƎǝ{Dz}{dz}ϦϧҮүԒԓḒḓṶṷỚớἾἶℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 } 255 | \tl_const:cn { c__tl_lower_9_X_9_tl } { ÇçƏəἿἷⒷⓑⰣⱓⳫⳬ𐐧𐑏 } 256 | \tl_const:Nn \c__tl_mixed_exceptions_tl { {ß}{Ss}{ff}{Ff}{fi}{Fi}{fl}{Fl}{ffi}{Ffi}{ffl}{Ffl}{ſt}{St}{st}{St}{և}{Եւ}{ﬓ}{Մն}{ﬔ}{Մե}{ﬕ}{Մի}{ﬖ}{Վն}{ﬗ}{Մխ}{ᾲ}{Ὰͅ}{ᾴ}{Άͅ}{ῂ}{Ὴͅ}{ῄ}{Ήͅ}{ῲ}{Ὼͅ}{ῴ}{Ώͅ}{ᾷ}{ᾼ͂}{ῇ}{ῌ͂}{ῷ}{ῼ͂}DžDždžDžLjLjljLjNjNjnjNjDzDzdzDz } 257 | \tl_const:Nn \c__tl_std_sigma_tl {σ} 258 | \tl_const:Nn \c__tl_final_sigma_tl {ς} 259 | \tl_const:Nn \c__tl_dotless_i_tl {ı} 260 | \tl_const:Nn \c__tl_dot_above_tl {̇} 261 | \tl_const:Nn \c__tl_dotted_I_tl {İ} 262 | \tl_const:Nn \c__tl_accents_lt_tl {Ì{i̇̀}Í{i̇́}Ĩ{i̇̃}} 263 | \group_begin: 264 | \cs_set_protected:Npn \__str_tmp:NNn #1#2#3 265 | { 266 | \tl_const:cx { c__str_fold_#1 _X_ #2_tl } 267 | { \__str_tmp:Nw #3 \q_recursion_tail { } \q_recursion_stop } 268 | } 269 | \cs_set:Npn \__str_tmp:Nw #1#2 270 | { 271 | \quark_if_recursion_tail_stop:N #1 272 | \tl_to_str:N #1 273 | \tl_if_blank:oT { \use_none:n #2 } 274 | { \use:n } 275 | { \tl_to_str:n {#2} } 276 | \__str_tmp:Nw 277 | } 278 | \__str_tmp:NNn 0 0 { ÈèĬĭƐɛǴǵϨϩҰұԔԕḔḕṸṹỜờᾤ{ὤι}ⒸⓒⰤⱔⲈⲉꙨꙩ } 279 | \__str_tmp:NNn 0 1 { ÉéƑƒჍⴭᾥ{ὥι}ⒹⓓⰥⱕⳭⳮ } 280 | \__str_tmp:NNn 0 2 { ÊêĮįǶƕΆάϪϫҲҳԖԗḖḗṺṻỞởᾦ{ὦι}ⒺⓔⰦⱖⲊⲋꙪꙫꜲꜳꞖꞗ } 281 | \__str_tmp:NNn 0 3 { ËëƓɠǷƿᾧ{ὧι}ⒻⓕⰧⱗ } 282 | \__str_tmp:NNn 0 4 { Ììİ{i̇}ƔɣǸǹΈέϬϭҴҵԘԙḘḙṼṽỠỡᾨ{ὠι}ⒼⓖⰨⱘⲌⲍꙬꙭꜴꜵꞘꞙ } 283 | \__str_tmp:NNn 0 5 { ÍíΉήᾩ{ὡι}ⒽⓗⰩⱙ } 284 | \__str_tmp:NNn 0 6 { Îî{IJ}{ij}ƖɩǺǻΊίϮϯҶҷԚԛḚḛṾṿỢợᾪ{ὢι}ⒾⓘⰪⱚⲎⲏⳲⳳꜶꜷꞚꞛ } 285 | \__str_tmp:NNn 0 7 { ÏïƗɨᾫ{ὣι}ⒿⓙⰫⱛ } 286 | \__str_tmp:NNn 0 8 { ÐðĴĵƘƙǼǽΌόϰκҸҹԜԝḜḝẀẁỤụὈὀᾬ{ὤι}ⓀⓚⰬⱜⲐⲑꜸꜹꞜꞝ } 287 | \__str_tmp:NNn 0 9 { ÑñϱρὉὁᾭ{ὥι}ⓁⓛⰭⱝ } 288 | \__str_tmp:NNn 1 0 { ÒòĶķǾǿΎύҺһԞԟḞḟẂẃỦủὊὂᾮ{ὦι}ⓂⓜⰮⱞⲒⲓꜺꜻꞞꞟ } 289 | \__str_tmp:NNn 1 1 { ÓóΏώὋὃᾯ{ὧι}Ⓝⓝ } 290 | \__str_tmp:NNn 1 2 { ÔôƜɯȀȁΐ{ΐ}ϴθҼҽԠԡḠḡẄẅỨứὌὄⓄⓞⲔⲕꜼꜽꞠꞡ } 291 | \__str_tmp:NNn 1 3 { ÕõĹĺƝɲΑαϵεὍὅⓅⓟAa } 292 | \__str_tmp:NNn 1 4 { ÖöȂȃΒβҾҿԢԣḢḣẆẇỪừᾲ{ὰι}ⓆⓠⲖⲗꜾꜿꞢꞣBb } 293 | \__str_tmp:NNn 1 5 { ĻļƟɵΓγϷϸ{և}{եւ}ᾳ{αι}ⓇⓡCc } 294 | \__str_tmp:NNn 1 6 { ØøƠơȄȅΔδӀӏԤԥḤḥẈẉỬửὐ{ὐ}ᾴ{άι}ⓈⓢⲘⲙꝀꝁꞤꞥDd } 295 | \__str_tmp:NNn 1 7 { ÙùĽľΕεϹϲӁӂⓉⓣEe } 296 | \__str_tmp:NNn 1 8 { ÚúƢƣȆȇΖζϺϻԦԧḦḧẊẋỮữὒ{ὒ}ᾶ{ᾶ}ⓊⓤⲚⲛꝂꝃꞦꞧFf } 297 | \__str_tmp:NNn 1 9 { Ûû{Ŀ}{ŀ}ΗηӃӄᾷ{ᾶι}ⓋⓥGg } 298 | \__str_tmp:NNn 2 0 { ÜüƤƥȈȉΘθѠѡԨԩḨḩẌẍỰựὔ{ὔ}ᾸᾰⓌⓦⲜⲝꝄꝅꞨꞩHh } 299 | \__str_tmp:NNn 2 1 { ÝýŁłΙιϽͻӅӆᾹᾱⓍⓧIi } 300 | \__str_tmp:NNn 2 2 { ÞþƦʀȊȋΚκϾͼѢѣԪԫḪḫẎẏỲỳὖ{ὖ}ᾺὰⓎⓨⲞⲟꝆꝇꞪɦJj } 301 | \__str_tmp:NNn 2 3 { ß{ss}ŃńƧƨΛλϿͽӇӈΆάⓏⓩꞫɜKk } 302 | \__str_tmp:NNn 2 4 { ȌȍΜμЀѐѤѥԬԭḬḭẐẑỴỵᾼ{αι}ⲠⲡꚀꚁꝈꝉꞬɡLl } 303 | \__str_tmp:NNn 2 5 { ŅņƩʃΝνЁёӉӊὙὑꞭɬMm } 304 | \__str_tmp:NNn 2 6 { ȎȏΞξЂђѦѧԮԯḮḯẒẓỶỷιιⲢⲣꚂꚃꝊꝋNn } 305 | \__str_tmp:NNn 2 7 { ŇňΟοЃѓӋӌὛὓOo } 306 | \__str_tmp:NNn 2 8 { ƬƭȐȑΠπЄєѨѩḰḱẔẕỸỹⲤⲥꚄꚅꝌꝍꞰʞPp } 307 | \__str_tmp:NNn 2 9 { {ʼn}{ʼn}ΡρЅѕӍӎԱաὝὕꞱʇQq } 308 | \__str_tmp:NNn 3 0 { ŊŋƮʈȒȓІіѪѫԲբḲḳẖ{ẖ}Ỻỻῂ{ὴι}ⲦⲧꚆꚇꝎꝏRr } 309 | \__str_tmp:NNn 3 1 { ƯưΣσЇїԳգẗ{ẗ}Ὗὗῃ{ηι}Ss } 310 | \__str_tmp:NNn 3 2 { ŌōȔȕΤτЈјѬѭӐӑԴդḴḵẘ{ẘ}Ỽỽῄ{ήι}ⲨⲩꚈꚉꝐꝑTt } 311 | \__str_tmp:NNn 3 3 { ƱʊΥυЉљԵեẙ{ẙ}Uu } 312 | \__str_tmp:NNn 3 4 { ŎŏƲʋȖȗΦφЊњѮѯӒӓԶզḶḷ{ẚ}{aʾ}Ỿỿῆ{ῆ}ⲪⲫꚊꚋꝒꝓVv } 313 | \__str_tmp:NNn 3 5 { ƳƴΧχЋћԷէẛṡῇ{ῆι}Ww } 314 | \__str_tmp:NNn 3 6 { ŐőȘșΨψЌќѰѱӔӕԸըḸḹῈὲⲬⲭꚌꚍꝔꝕXx } 315 | \__str_tmp:NNn 3 7 { ƵƶͅιΩωЍѝԹթΈέYy } 316 | \__str_tmp:NNn 3 8 { ŒœȚțΪϊЎўѲѳӖӗԺժḺḻẞ{ss}ῊὴⲮⲯꚎꚏꝖꝗZz } 317 | \__str_tmp:NNn 3 9 { ƷʒΫϋЏџԻիΉή } 318 | \__str_tmp:NNn 4 0 { ŔŕƸƹȜȝАаѴѵӘәԼլḼḽẠạὨὠῌ{ηι}ⲰⲱꚐꚑꝘꝙ𑢠𑣀 } 319 | \__str_tmp:NNn 4 1 { БбԽխὩὡ𑢡𑣁 } 320 | \__str_tmp:NNn 4 2 { ŖŗȞȟВвѶѷӚӛԾծḾḿẢảὪὢⲲⲳꚒꚓꝚꝛ𑢢𑣂 } 321 | \__str_tmp:NNn 4 3 { ГгԿկὫὣ𑢣𑣃 } 322 | \__str_tmp:NNn 4 4 { ŘřƼƽȠƞΰ{ΰ}ДдѸѹӜӝՀհṀṁẤấἈἀὬὤⅠⅰⲴⲵꚔꚕꝜꝝ𑢤𑣄 } 323 | \__str_tmp:NNn 4 5 { ЕеՁձἉἁὭὥ{Ⅱ}{ⅱ}𑢥𑣅 } 324 | \__str_tmp:NNn 4 6 { ŚśȢȣЖжѺѻӞӟՂղṂṃẦầἊἂὮὦῒ{ῒ}{Ⅲ}{ⅲ}ⲶⲷꚖꚗꝞꝟ𑢦𑣆 } 325 | \__str_tmp:NNn 4 7 { ЗзՃճἋἃὯὧΐ{ΐ}{Ⅳ}{ⅳ}𑢧𑣇 } 326 | \__str_tmp:NNn 4 8 { ŜŝȤȥИиѼѽӠӡՄմṄṅẨẩἌἄⅤⅴⲸⲹꚘꚙꝠꝡ𑢨𑣈 } 327 | \__str_tmp:NNn 4 9 { ЙйՅյἍἅ{Ⅵ}{ⅵ}𑢩𑣉 } 328 | \__str_tmp:NNn 5 0 { ŞşȦȧКкѾѿӢӣՆնṆṇẪẫἎἆῖ{ῖ}{Ⅶ}{ⅶ}ⲺⲻꚚꚛꝢꝣ𑢪𑣊 } 329 | \__str_tmp:NNn 5 1 { ЛлՇշἏἇῗ{ῗ}{Ⅷ}{ⅷ}𑢫𑣋 } 330 | \__str_tmp:NNn 5 2 { Šš{DŽ}{dž}ȨȩМмҀҁӤӥՈոṈṉẬậῘῐ{Ⅸ}{ⅸ}ⲼⲽꝤꝥ𑢬𑣌 } 331 | \__str_tmp:NNn 5 3 { {Dž}{dž}НнՉչῙῑⅩⅹ𑢭𑣍 } 332 | \__str_tmp:NNn 5 4 { ŢţȪȫОоӦӧՊպṊṋẮắῚὶ{Ⅺ}{ⅺ}ⲾⲿꝦꝧ𑢮𑣎 } 333 | \__str_tmp:NNn 5 5 { {LJ}{lj}ПпՋջΊί{Ⅻ}{ⅻ}𑢯𑣏 } 334 | \__str_tmp:NNn 5 6 { ĀāŤť{Lj}{lj}ȬȭРрӨөՌռႠⴀṌṍẰằⅬⅼⳀⳁꝨꝩ{ff}{ff}𑢰𑣐 } 335 | \__str_tmp:NNn 5 7 { СсՍսႡⴁⅭⅽ{fi}{fi}𑢱𑣑 } 336 | \__str_tmp:NNn 5 8 { ĂăŦŧ{NJ}{nj}ȮȯТтӪӫՎվႢⴂṎṏẲẳⅮⅾⳂⳃꝪꝫ{fl}{fl}𑢲𑣒 } 337 | \__str_tmp:NNn 5 9 { {Nj}{nj}УуՏտႣⴃⅯⅿ{ffi}{ffi}𑢳𑣓 } 338 | \__str_tmp:NNn 6 0 { ĄąŨũȰȱФфӬӭՐրႤⴄṐṑẴẵἘἐⱠⱡⳄⳅꙀꙁꝬꝭ{ffl}{ffl}𐐀𐐨𑢴𑣔 } 339 | \__str_tmp:NNn 6 1 { ǍǎХхՑցႥⴅἙἑ{ſt}{st}𐐁𐐩𑢵𑣕 } 340 | \__str_tmp:NNn 6 2 { ĆćŪūȲȳςσЦцҊҋӮӯՒւႦⴆṒṓẶặἚἒῢ{ῢ}ⱢɫⳆⳇꙂꙃꝮꝯ{st}{st}𐐂𐐪𑢶𑣖 } 341 | \__str_tmp:NNn 6 3 { ǏǐЧчՓփႧⴇἛἓΰ{ΰ}Ᵽᵽ𐐃𐐫𑢷𑣗 } 342 | \__str_tmp:NNn 6 4 { ĈĉŬŭШшҌҍӰӱՔքႨⴈṔṕẸẹἜἔᾀ{ἀι}ῤ{ῤ}ⰀⰰⱤɽⳈⳉꙄꙅ𐐄𐐬𑢸𑣘 } 343 | \__str_tmp:NNn 6 5 { AaǑǒЩщՕօႩⴉἝἕᾁ{ἁι}Ⰱⰱ𐐅𐐭𑢹𑣙 } 344 | \__str_tmp:NNn 6 6 { BbĊċŮůЪъҎҏӲӳՖֆႪⴊṖṗẺẻᾂ{ἂι}ῦ{ῦ}ⰂⰲⳊⳋꙆꙇ𐐆𐐮𑢺𑣚 } 345 | \__str_tmp:NNn 6 7 { CcǓǔЫыႫⴋᾃ{ἃι}ῧ{ῧ}ⰃⰳⱧⱨ𐐇𐐯𑢻𑣛 } 346 | \__str_tmp:NNn 6 8 { DdČčŰűЬьҐґӴӵႬⴌṘṙẼẽᾄ{ἄι}ῨῠⰄⰴⳌⳍꙈꙉ𐐈𐐰𑢼𑣜 } 347 | \__str_tmp:NNn 6 9 { EeǕǖЭэႭⴍᾅ{ἅι}ῩῡⰅⰵⱩⱪ𐐉𐐱𑢽𑣝 } 348 | \__str_tmp:NNn 7 0 { FfĎďŲųȺⱥЮюҒғӶӷႮⴎṚṛẾếᾆ{ἆι}ῪὺⰆⰶⳎⳏꙊꙋ𐐊𐐲𑢾𑣞 } 349 | \__str_tmp:NNn 7 1 { GgǗǘȻȼЯяႯⴏᾇ{ἇι}ΎύⰇⰷⱫⱬ𐐋𐐳𑢿𑣟 } 350 | \__str_tmp:NNn 7 2 { HhĐđŴŵҔҕӸӹႰⴐṜṝỀềᾈ{ἀι}ῬῥⰈⰸⳐⳑꙌꙍ𐐌𐐴 } 351 | \__str_tmp:NNn 7 3 { IiǙǚȽƚႱⴑᾉ{ἁι}ⰉⰹⱭɑꝹꝺ𐐍𐐵 } 352 | \__str_tmp:NNn 7 4 { JjĒēŶŷȾⱦҖҗӺӻႲⴒṞṟỂểᾊ{ἂι}ⰊⰺⱮɱⳒⳓꙎꙏ𐐎𐐶 } 353 | \__str_tmp:NNn 7 5 { KkǛǜϏϗႳⴓᾋ{ἃι}ⰋⰻⱯɐꝻꝼ{ﬓ}{մն}𐐏𐐷 } 354 | \__str_tmp:NNn 7 6 { LlĔĕŸÿϐβҘҙӼӽႴⴔṠṡỄễἨἠᾌ{ἄι}ⰌⰼⱰɒⳔⳕꙐꙑ{ﬔ}{մե}𐐐𐐸 } 355 | \__str_tmp:NNn 7 7 { MmŹźɁɂϑθႵⴕἩἡᾍ{ἅι}ⰍⰽꝽᵹ{ﬕ}{մի}𐐑𐐹 } 356 | \__str_tmp:NNn 7 8 { NnĖėǞǟҚқӾӿႶⴖṢṣỆệἪἢᾎ{ἆι}ῲ{ὼι}ⰎⰾⱲⱳⳖⳗꙒꙓꝾꝿ{ﬖ}{վն}𐐒𐐺 } 357 | \__str_tmp:NNn 7 9 { OoŻżɃƀႷⴗἫἣᾏ{ἇι}ῳ{ωι}ↃↄⰏⰿ{ﬗ}{մխ}𐐓𐐻 } 358 | \__str_tmp:NNn 8 0 { PpĘęǠǡɄʉͰͱҜҝԀԁႸⴘḀḁṤṥỈỉἬἤᾐ{ἠι}ῴ{ώι}ⰐⱀⳘⳙꙔꙕꞀꞁ𐐔𐐼 } 359 | \__str_tmp:NNn 8 1 { QqµμŽžɅʌϕφႹⴙἭἥᾑ{ἡι}ⰑⱁⱵⱶ𐐕𐐽 } 360 | \__str_tmp:NNn 8 2 { RrĚěǢǣɆɇͲͳϖπҞҟԂԃႺⴚḂḃṦṧỊịἮἦᾒ{ἢι}ῶ{ῶ}ⰒⱂⳚⳛꙖꙗꞂꞃ𐐖𐐾 } 361 | \__str_tmp:NNn 8 3 { SsſsႻⴛἯἧᾓ{ἣι}ῷ{ῶι}Ⱃⱃ𐐗𐐿 } 362 | \__str_tmp:NNn 8 4 { TtĜĝǤǥɈɉϘϙҠҡԄԅႼⴜḄḅṨṩỌọᾔ{ἤι}ῸὸⰔⱄⳜⳝꙘꙙꞄꞅ𐐘𐑀 } 363 | \__str_tmp:NNn 8 5 { UuƁɓႽⴝᾕ{ἥι}ΌόⰕⱅ𐐙𐑁 } 364 | \__str_tmp:NNn 8 6 { VvĞğƂƃǦǧɊɋͶͷϚϛҢңԆԇႾⴞḆḇṪṫỎỏᾖ{ἦι}ῺὼΩωⰖⱆⳞⳟꙚꙛꜢꜣꞆꞇ𐐚𐑂 } 365 | \__str_tmp:NNn 8 7 { WwႿⴟᾗ{ἧι}ΏώⰗⱇ𐐛𐑃 } 366 | \__str_tmp:NNn 8 8 { XxĠġƄƅǨǩɌɍϜϝҤҥԈԉჀⴠḈḉṬṭỐốᾘ{ἠι}ῼ{ωι}ⰘⱈⳠⳡꙜꙝꜤꜥ𐐜𐑄 } 367 | \__str_tmp:NNn 8 9 { YyჁⴡᾙ{ἡι}Ⱉⱉ𐐝𐑅 } 368 | \__str_tmp:NNn 9 0 { ZzĢģƆɔǪǫɎɏϞϟҦҧԊԋჂⴢḊḋṮṯỒồᾚ{ἢι}KkⰚⱊⱾȿⳢⳣꙞꙟꜦꜧ𐐞𐑆 } 369 | \__str_tmp:NNn 9 1 { ƇƈჃⴣᾛ{ἣι}ÅåⰛⱋⱿɀꞋꞌ𐐟𐑇 } 370 | \__str_tmp:NNn 9 2 { ÀàĤĥǬǭϠϡҨҩԌԍჄⴤḌḍṰṱỔổἸἰᾜ{ἤι}ⰜⱌⲀⲁꙠꙡꜨꜩ𐐠𐑈 } 371 | \__str_tmp:NNn 9 3 { ÁáƉɖჅⴥἹἱᾝ{ἥι}ⰝⱍꞍɥ𐐡𐑉 } 372 | \__str_tmp:NNn 9 4 { ÂâĦħƊɗǮǯϢϣҪҫԎԏḎḏṲṳỖỗἺἲᾞ{ἦι}ⰞⱎⲂⲃꙢꙣꜪꜫ𐐢𐑊 } 373 | \__str_tmp:NNn 9 5 { ÃãƋƌͿϳჇⴧἻἳᾟ{ἧι}Ⱏⱏ𐐣𐑋 } 374 | \__str_tmp:NNn 9 6 { ÄäĨĩǰ{ǰ}ϤϥҬҭԐԑḐḑṴṵỘộἼἴᾠ{ὠι}ⰠⱐⲄⲅꙤꙥꜬꜭꞐꞑ𐐤𐑌 } 375 | \__str_tmp:NNn 9 7 { Åå{DZ}{dz}Ἵἵᾡ{ὡι}Ⱑⱑ𐐥𐑍 } 376 | \__str_tmp:NNn 9 8 { ÆæĪīƎǝ{Dz}{dz}ϦϧҮүԒԓḒḓṶṷỚớἾἶᾢ{ὢι}ℲⅎⒶⓐⰢⱒⲆⲇꙦꙧꜮꜯꞒꞓ𐐦𐑎 } 377 | \__str_tmp:NNn 9 9 { ÇçƏəἿἷᾣ{ὣι}ⒷⓑⰣⱓⳫⳬ𐐧𐑏 } 378 | \group_end: 379 | -------------------------------------------------------------------------------- /titlesec.sty: -------------------------------------------------------------------------------- 1 | % +--------------------------------------------------+ 2 | % | Typeset titlesec.tex to get the documentation. | 3 | % +--------------------------------------------------+ 4 | % 5 | % Copyright (c) 1998-2011 by Javier Bezos. 6 | % All Rights Reserved. 7 | % 8 | % This file is part of the titlesec distribution release 2.10.0 9 | % ----------------------------------------------------------- 10 | % 11 | % It may be distributed and/or modified under the 12 | % conditions of the LaTeX Project Public License, either version 1.3 13 | % of this license or (at your option) any later version. 14 | % The latest version of this license is in 15 | % http://www.latex-project.org/lppl.txt 16 | % and version 1.3 or later is part of all distributions of LaTeX 17 | % version 2003/12/01 or later. 18 | % 19 | % This work has the LPPL maintenance status "maintained". 20 | % 21 | % The Current Maintainer of this work is Javier Bezos. 22 | % 23 | % Notes 24 | % ~~~~~ 25 | % 26 | % The following tags are used: 27 | % ttl@ : the generic tag used through the style 28 | % ttlh@ : a shape definition 29 | % ttlf@ : a macro containing the title format 30 | % ttls@ : id. the title space 31 | % ttlp@ : page key related macros 32 | % ttll@ : level number 33 | % 34 | % The ttlf@ and ttls@ contains data in the form {..}{..}. 35 | % Perhaps in future releases they should be converted 36 | % to a prop-like list, similar to that proposed by the 37 | % latex team. 38 | % 39 | % Admittedly, the current implementation seems too 40 | % complicated, but that's necessary in order to provide 41 | % certain compatibility with the sections as defined by the 42 | % used class. Other packages opt for providing the sections 43 | % as defined by standard classes ignoring the class; for 44 | % instance sectsty which does a simple task in a simple and 45 | % nice way. However, that was not my goal. 46 | % 47 | % Release 48 | % ~~~~~~~ 49 | 50 | \NeedsTeXFormat{LaTeX2e} 51 | \ProvidesPackage{titlesec}[2011/12/15 v2.10.0 Sectioning titles] 52 | 53 | % Initialization 54 | % ~~~~~~~~~~~~~~ 55 | 56 | \newif\ifttl@ps 57 | \ttl@psfalse 58 | 59 | % The \ttl@label switch is used when printing the label in titles. 60 | % A numberless variant makes it to true. 61 | % There is a \ttl@toclabel as well, which is true iff the 62 | % title is numbered; used in toc entries (except default part 63 | % and chapter) and marks (only in titlesec pagestyles). 64 | 65 | \newif\ifttl@label 66 | \newif\ifttl@toclabel 67 | 68 | \newbox\ttl@box 69 | 70 | % A provision for the report style: 71 | 72 | \@ifundefined{if@mainmatter} 73 | {\let\if@mainmatter\iftrue}{} 74 | 75 | \@ifundefined{if@openright} 76 | {\let\if@openright\iftrue}{} 77 | 78 | % and the ams styles as well 79 | 80 | \@ifundefined{@chapapp} 81 | {\let\@chapapp\chaptername}{} 82 | 83 | \def\ttl@trylist{\ttl@try{}} 84 | 85 | \def\ttl@getkeys#1#2{% 86 | \if\expandafter @\@gobble#1@\@empty 87 | \edef\ttl@b{\expandafter\@gobble\string#1}% 88 | \let\ttl@a\ttl@b 89 | \else 90 | \makeatletter 91 | \edef\ttl@d{% 92 | \noexpand\input{ttlkeys.def}% 93 | \catcode`\noexpand\@=\the\catcode`\@}% 94 | \ttl@d 95 | \ttl@getkeys{#1}{#2}% 96 | \fi} 97 | 98 | % A more meaningful error for \@notdefinable 99 | 100 | \expandafter\AtEndOfPackage\expandafter{\expandafter 101 | \gdef\expandafter\@notdefinable\expandafter{\@notdefinable}} 102 | 103 | \def\@notdefinable{% 104 | \PackageError{titlesec}% 105 | {Incompatible package}% 106 | {Titlesec cannot continue defining its own macros 107 | because\MessageBreak 108 | \@backslashchar\reserved@a\space is already used by other package, 109 | the class\MessageBreak 110 | or the document.}} 111 | 112 | % +-----------------+ 113 | % | C L A S S E S | 114 | % +-----------------+ 115 | 116 | \def\ttl@useclass#1#2{% 117 | \@ifstar 118 | {\ttl@labelfalse#1{#2}[]}% 119 | {\ttl@labeltrue\@dblarg{#1{#2}}}} 120 | 121 | \def\ttl@straightclass{\ttl@useclass\ttl@straight@i} 122 | \def\ttl@partclass{\ttl@useclass\ttl@part@i} 123 | \def\ttl@topclass{\ttl@useclass\ttl@top@i} 124 | \def\ttl@pageclass{\ttl@useclass\ttl@page@i} 125 | 126 | % Here \scantokens is used to make sure the unescaped name 127 | % has `letters' and no `others'. Mainly for hyperref, so there 128 | % should be no problems. 129 | 130 | \newcommand\titleclass[1]{% 131 | \edef\ttl@a{\expandafter\@gobble\string#1}% 132 | \ifx\scantokens\@undefined\else 133 | \scantokens\expandafter{\expandafter 134 | \def\expandafter\ttl@a\expandafter{\ttl@a}}% 135 | \fi 136 | \@ifnextchar[{\@tempswatrue\ttl@class@i{#1}}% 137 | {\@tempswafalse\ttl@class@ii{#1}}} 138 | 139 | \def\ttl@class@i#1[#2]{% 140 | \@namedef{ttll@\ttl@a}{#2}% 141 | \expandafter\providecommand\csname\ttl@a title\endcsname{}%%%% 142 | \@ifundefined{ttl@toplevel}{}% 143 | {\expandafter\let\csname ttlss@\ttl@a\expandafter\endcsname 144 | \csname ttlss@\ttl@toplevel\endcsname}% 145 | \edef\ttl@toplevel{\ttl@a}% 146 | \ttl@class@ii{#1}} 147 | 148 | \def\ttl@class@ii#1#2{% 149 | \@ifundefined{ttl@#2class}% 150 | {\PackageError{titlesec}{Unknown sectioning class}% 151 | {Valid names are top, page and straight}}% 152 | {\expandafter\let\csname ttl@compat\ttl@a\endcsname\relax 153 | \@ifundefined{\ttl@a mark}% 154 | {\@namedef{\ttl@a mark}{\@gobble}}% 155 | {}% 156 | \edef#1{% 157 | \expandafter\noexpand\csname ttl@#2class\endcsname{\ttl@a}}}% 158 | \if@tempswa 159 | \expandafter\@gobble 160 | \else 161 | \expandafter\@firstofone 162 | \fi 163 | {\@ifnextchar[% 164 | {\ttl@class@iii}% 165 | {\@ifundefined{ttll@\ttl@a}% 166 | {\PackageError{titlesec}{Unknown sectioning level}% 167 | {\string\titleclass\space with no optional arguments\MessageBreak 168 | only changes the class of an *existing* level}}}}} 169 | 170 | \def\ttl@class@iii[#1]{% 171 | \edef\ttl@b{\expandafter\@gobble\string#1}% 172 | \expandafter\let\csname ttlss@\ttl@a\expandafter\endcsname 173 | \csname ttlss@\ttl@b\endcsname 174 | \expandafter\edef\csname ttlss@\ttl@b\endcsname{\ttl@a}% 175 | \let\ttl@a\ttl@toplevel 176 | \count@\csname ttll@\ttl@toplevel\endcsname 177 | \ttl@class@iv} 178 | 179 | \def\ttl@class@iv{% 180 | \@ifundefined{ttlss@\ttl@a}{}% 181 | {\advance\count@\@ne 182 | \edef\ttl@a{\csname ttlss@\ttl@a\endcsname}% 183 | \expandafter\edef\csname ttll@\ttl@a\endcsname{\the\count@}% 184 | \ttl@class@iv}} 185 | 186 | % Typesetting Classes: General tools 187 | % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | % The following command handles the *n spacing 189 | % Some tricks are necessary to multiply a 190 | % skip by a non integer number 191 | 192 | \newskip\beforetitleunit 193 | \beforetitleunit=1ex\@plus.3ex\@minus.06ex 194 | \newskip\aftertitleunit 195 | \aftertitleunit=1ex\@plus.1ex 196 | 197 | \newdimen\ttl@plus 198 | \newdimen\ttl@minus 199 | 200 | \def\ttl@assign#1{% 201 | \@ifstar 202 | {\ttl@assign@i{#1}}% 203 | {\ttl@assign@d{#1}}} 204 | 205 | \def\ttl@assign@i#1#2\relax#3{% 206 | \ttl@plus\z@ 207 | \ttl@minus\z@ 208 | \afterassignment\ttl@assign@ii 209 | \dimen@\the#3, % <- space 210 | #1 = #2\dimen@ 211 | plus #2\ttl@plus 212 | minus #2\ttl@minus} 213 | 214 | \def\ttl@assign@ii#1 {% <- space 215 | \if#1,\else\afterassignment\ttl@assign@ii\fi 216 | \csname ttl@\string#1\endcsname} 217 | 218 | \def\ttl@assign@d#1#2\relax#3{\setlength#1{#2}} 219 | 220 | % To be used with \v/vspace to make them calc-savvy 221 | 222 | \def\ttl@calc#1#2{% 223 | {\setlength\@tempskipa{#2}% 224 | #1\@tempskipa}} 225 | 226 | \def\ttl@calcneg#1#2{% 227 | {\setlength\@tempskipa{#2}% 228 | #1{-\@tempskipa}}} 229 | 230 | % Gets from ttls@ and passes the spacing parameters: 231 | 232 | \def\ttl@startargs#1#2{% Get the first arguments, with the spacing 233 | \@ifundefined{ttlp@#2}% 234 | {\let\ttl@key@page\@empty}% 235 | {\ttlp@fetch{#2}}% 236 | \begingroup 237 | \def\ttl@b{ttls@#2}% 238 | \edef\ttl@key@numberless{\ifttl@label//\else/*\fi}% 239 | \def\ttl@a##1{\csname ttl@key@##1\endcsname}% Used as elt in try 240 | \ttl@trylist 241 | \xdef\ttl@b{\ttl@c}% 242 | \endgroup 243 | \ifx\ttl@b\@empty 244 | \PackageError{titlesec}{Format/spacing not found}% 245 | {I was unable to find the format corresponding to #2.\MessageBreak 246 | Maybe you haven't set it with \string\titleformat\space and 247 | \string\titlespacing} 248 | \fi 249 | \expandafter#1\ttl@b{#2}} 250 | 251 | % Used in ttl@select 252 | 253 | \def\ttl@savefn#1[#2]#3{% 254 | \ifcase#1% 255 | \footnotemark[#2]% 256 | \gdef\ttl@fn{\footnotetext[#2]{#3}}% 257 | \else 258 | \footnotemark 259 | \gdef\ttl@fn{\footnotetext{#3}}% 260 | \fi} 261 | 262 | \def\ttl@nest@error{% 263 | \PackageError{titlesec}{Nested titles}{Titles must not be nested}} 264 | 265 | \def\ttl@hmode@error{% 266 | \PackageError{titlesec}{Entered in horizontal mode} 267 | {The argument cannot contain horizontal material\MessageBreak 268 | such as text, \string\noindent, \string\makebox, etc.}} 269 | 270 | % \ttl@select not only selects the right version to be 271 | % used. It also take steps to ensure that a mark 272 | % is not lost inside a box by saving it into \ttl@mk, 273 | % which in turn is used by the sect and chap commands. 274 | 275 | \newif\ifttl@explicit 276 | 277 | \def\ttl@gmk#1{\gdef\ttl@mk{#1}} 278 | 279 | \def\ttl@select#1#2#3#4{% 280 | \ttl@Hy@saveanchor 281 | \global\let\ttl@mk\@empty % global because of rigidchapters 282 | \global\let\ttl@fn\@empty 283 | \begingroup 284 | \everypar{\setbox\z@\lastbox\strut}% or \hskip-\parindent? 285 | \let\ttl@straight@i\ttl@nest@error 286 | \let\ttl@top@i \ttl@nest@error 287 | \let\ttl@part@i \ttl@nest@error 288 | \let\ttl@page@i \ttl@nest@error 289 | \let\ttl@newpage\newpage 290 | \def\newpage{\ttl@savewrite\ttl@newpage}% 291 | \def\markboth##1##2{\protect\ttl@gmk{\protect\markboth{##1}{##2}}}% 292 | \def\markright##1{\protect\ttl@gmk{\protect\markright{##1}}}% 293 | \def\@mkboth##1##2{\protect\ttl@gmk{\protect\@mkboth{##1}{##2}}}% 294 | \def\footnote{\@ifnextchar[% 295 | {\ttl@savefn\z@}{\ttl@savefn\@ne[]}}% 296 | \edef\ttl@key@numberless{\ifttl@label//\else/*\fi}% 297 | \def\ttl@b{ttlf@#1}% 298 | \def\ttl@a##1{\csname ttl@key@##1\endcsname}% Used as elt in try 299 | \ttl@trylist 300 | \ifttl@explicit 301 | \def\ttl@passexplicit{\ttl@case{#4}}% 302 | \ttl@c{#4}{#2}{#3}{}% ttl@c is returned by ttl@try with ttlf@... 303 | \else 304 | \let\ttl@passexplicit\ttl@case 305 | \ttl@c{#2}{#3}{#4}% ttl@c is returned by ttl@try with ttlf@... 306 | \fi 307 | \endgroup} 308 | 309 | \let\ttl@savewrite\@empty 310 | 311 | \def\ttl@finmarks{% 312 | \ttl@savewrite 313 | \ttl@mk % Contains a possible mark, returned by \ttl@select 314 | \ttl@fn} % And a footnote 315 | 316 | \def\ttl@try#1{% 317 | \edef\ttl@c{#1}% #1 is a list in the form \ttl@a{key}\ttl@a{key} 318 | \@ifundefined{\ttl@b\ttl@c}{}{% 319 | \edef\ttl@c{\expandafter\noexpand\csname\ttl@b\ttl@c\endcsname}% 320 | \def\ttl@a##1{\csname ttl@extra@##1\endcsname}% 321 | #1% 322 | \let\ttl@try\@gobble}} % locally modified to `break' testings 323 | 324 | % \ttl@write writes marks and toc. tocdepth is taken 325 | % care of when the toc is typesetted and not here. 326 | % Used always through ttl@savewrite 327 | 328 | \def\ttl@write#1#2{% 329 | \ttl@blinemarks 330 | \csname#1mark\endcsname{#2}% 331 | \def\ttl@a{\protect\numberline{\@nameuse{the#1}}}% 332 | \@nameuse{ttl@toc#1}% eg, \ttl@tocpart modifies \ttl@a 333 | \ttl@addcontentsline{#1}{#2}% Depends on toctitles 334 | \ttl@elinemarks 335 | \global\ttl@toclabelfalse} 336 | 337 | \newif\ifttl@premark % to be used in ttlps.def 338 | \ttl@premarkfalse 339 | 340 | \def\ttl@premark#1#2{% 341 | \protected@xdef\ttl@prevmarks{\ttl@marks}% 342 | \ttl@blinemarks 343 | \csname#1mark\endcsname{#2}% 344 | \ttl@elinemarks 345 | \gdef\ttl@prevmarks{\ttl@marks}} 346 | 347 | % Must be preceded by a default \ttl@savewrite, which is used 348 | % in starred variants--\@empty in top and straight classes. 349 | % In straight class, it is preceded by the setting of 350 | % prev marks to provide a "fixed" top mark. Otherwise, 351 | % the default prev mark (= curr mark) is used (restored 352 | % after ttl@labelling in straight). This is the command 353 | % to be hacked if you want to change the behaviour of 354 | % starred variants. 355 | 356 | \def\ttl@labelling#1#2{% 357 | \let\ttl@Hy@saveanchor\@empty 358 | \ifttl@label % First: if star 359 | \def\ttl@savewrite{\ttl@write{#1}{#2}}% 360 | \@nameuse{ttl@#1label}% eg, sets if mainmatter in chapter. 361 | \ifttl@label % Second, eg, if not main matter 362 | \ifnum\@nameuse{ttll@#1}>\c@secnumdepth\relax 363 | \ttl@labelfalse % Third: if too deep 364 | \else 365 | \ttl@Hy@refstepcounter{#1}% 366 | \@nameuse{ttl@#1out}% 367 | \fi 368 | \fi 369 | \fi 370 | \let\ifttl@toclabel\ifttl@label 371 | \ifx\ttl@savewrite\@empty\else % If marks 372 | \ifttl@ps 373 | \ifttl@premark 374 | \global\ttl@premarkfalse 375 | \else % if no \pretitlemark 376 | \ttl@premark{#1}{#2}% 377 | \fi 378 | \fi 379 | \ifttl@label\else\ttl@Hy@steplink{#1}\fi 380 | \fi} 381 | 382 | % Executed by ttl@labelling if the name of section is chapter: 383 | 384 | \def\ttl@chapterlabel{\if@mainmatter\else\ttl@labelfalse\fi} 385 | 386 | % Executed by ttl@labelling if chapter has a number. Note 387 | % you can define messages for other sectioning levels (eg, 388 | % \ttl@sectionout). 389 | 390 | \def\ttl@chapterout{\typeout{\chaptertitlename\space\thechapter.}} 391 | 392 | % Straight class 393 | % ~~~~~~~~~~~~~ 394 | % Default for nobottomtitles. Changed by nobottomtitles* 395 | 396 | \def\ttl@addstretch{\advance\@tempskipa-\pagestretch} 397 | 398 | % 1:name 2:level 3:indent 4:before 5:after 6:afind [7]:cap 8:title 399 | % The second argument of ttl@sect is the level, which 400 | % is empty if the star version is used. In this case 401 | % neither the toc nor the marks are written. 402 | 403 | \def\ttl@straight@i#1[#2]#3{% 404 | \def\@currentlabelname{#2}% for nameref 405 | \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}% 406 | \let\ttl@savewrite\@empty 407 | \def\ttl@savetitle{#3}% 408 | \gdef\thetitle{\csname the#1\endcsname}% 409 | \if@noskipsec \leavevmode \fi 410 | \par 411 | \ttl@labelling{#1}{#2}% 412 | \ttl@startargs\ttl@straight@ii{#1}{#3}} 413 | 414 | % 1:left 2:right 3:before 4:after 5:afterindent 6:name 7:title 415 | 416 | \def\ttl@straight@ii#1#2#3#4#5#6#7{% 417 | \ttl@assign\@tempskipa#3\relax\beforetitleunit 418 | \@ifundefined{ttl@ps@#6}{}% 419 | {\PackageWarning{titlesec}{Page style in straight class ignored}}% 420 | \if@nobreak 421 | \ttl@titlespace{\@tempskipa}% 422 | \else 423 | \@ifundefined{#6break}% 424 | {\addpenalty{\@secpenalty}}% 425 | {\csname#6break\endcsname}% 426 | \addvspace{\@tempskipa}% 427 | \ifdim\bottomtitlespace<\z@ 428 | \else 429 | \begingroup 430 | \@tempskipb\pagegoal 431 | \@tempskipa\pagegoal 432 | \ttl@addstretch % \relax if nobottomtitle* 433 | \advance\@tempskipa-\bottomtitlespace\relax % not a register 434 | \pagegoal\@tempskipa 435 | \def\@textbottom{\vskip\z@\@plus.0001fil}% 436 | \penalty9999 437 | \pagegoal\@tempskipb 438 | \endgroup 439 | \fi 440 | \fi 441 | \@afterindenttrue 442 | \ifcase#5 \@afterindentfalse\fi 443 | \ttl@assign\@tempskipb#4\relax\aftertitleunit 444 | \ttl@select{#6}{#1}{#2}{#7}% 445 | \ttl@finmarks 446 | \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}% 447 | \if@noskipsec 448 | \global\@nobreakfalse 449 | \everypar{% 450 | \if@noskipsec 451 | \global\@noskipsecfalse 452 | \clubpenalty\@M 453 | \hskip-\parindent 454 | \begingroup 455 | \@svsechd\unskip{\hspace{\@tempskipb}}% 456 | \endgroup 457 | \else 458 | \clubpenalty\@clubpenalty\everypar{}% 459 | \fi}% 460 | \else 461 | \par\nobreak 462 | \vspace{\@tempskipb}% 463 | \@afterheading 464 | \fi 465 | \ignorespaces} 466 | 467 | % Part class 468 | % ~~~~~~~~~~ 469 | 470 | \providecommand\partmark[1]{\markboth{}{}} 471 | 472 | \def\ttl@part@i#1[#2]#3{% 473 | \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}% 474 | \def\ttl@savewrite{\ttl@write{#1}{#3}}% A default value. Not #2! 475 | \def\ttl@savetitle{#3}% 476 | \ttl@labelling{#1}{#2}% 477 | \ttl@startargs\ttl@part@ii{#1}{#3}} 478 | 479 | \def\ttl@part@ii#1#2#3#4#5#6#7{% 480 | \ttl@assign\@tempskipa#3\relax\beforetitleunit 481 | \vspace*{\@tempskipa}% 482 | \@ifundefined{ttl@ps@#6}{}% 483 | {\PackageWarning{titlesec}{Page style in part class ignored}}% 484 | \global\@afterindenttrue 485 | \ifcase#5 \global\@afterindentfalse \fi 486 | \ttl@assign\@tempskipb#4\relax\aftertitleunit 487 | \ttl@select{#6}{#1}{#2}{#7}% 488 | \ttl@finmarks 489 | \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}% 490 | \par\nobreak 491 | \vspace{\@tempskipb}% 492 | \@afterheading} 493 | 494 | % Page class 495 | % ~~~~~~~~~~ 496 | 497 | \def\ttl@page@i#1[#2]#3{% 498 | \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}% 499 | \def\ttl@savewrite{\ttl@write{#1}{#3}}% A default value. Not #2! 500 | \def\ttl@savetitle{#3}% 501 | \ttl@labelling{#1}{#2}% 502 | \ttl@startargs\ttl@page@ii{#1}{#3}} 503 | 504 | \def\ttl@page@ii#1#2#3#4#5#6#7{% 505 | \ttl@assign\@tempskipa#3\relax\beforetitleunit 506 | \if@openright 507 | \cleardoublepage 508 | \else 509 | \clearpage 510 | \fi 511 | \@ifundefined{ttl@ps@#6}% 512 | {\thispagestyle{plain}}% 513 | {\thispagestyle{\@nameuse{ttl@ps@#6}}}% 514 | \if@twocolumn 515 | \onecolumn 516 | \@tempswatrue 517 | \else 518 | \@tempswafalse 519 | \fi 520 | \vspace*{\@tempskipa}% 521 | \@afterindenttrue 522 | \ifcase#5 \@afterindentfalse\fi 523 | \ttl@assign\@tempskipb#4\relax\aftertitleunit 524 | \ttl@select{#6}{#1}{#2}{#7}% 525 | \ttl@finmarks 526 | \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}% 527 | \vspace{\@tempskipb}% 528 | \newpage 529 | \if@twoside 530 | \if@openright 531 | \null 532 | \@ifundefined{ttl@ps@#6}% 533 | {\thispagestyle{empty}}% 534 | {\thispagestyle{\@nameuse{ttl@ps@#6}}}% 535 | \newpage 536 | \fi 537 | \fi 538 | \if@tempswa 539 | \twocolumn 540 | \fi 541 | \ignorespaces} 542 | 543 | % Top class and some makechapterhead stuff 544 | % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 545 | % 546 | % \ttl@mkchap is the new make(s)chapterhead. 547 | 548 | \def\ttl@mkchap#1#2#3#4#5#6#7{% 549 | \gdef\ttl@savemark{\csname#6mark\endcsname{#7}}% 550 | \let\ttl@savewrite\@empty 551 | \let\ttl@Hy@saveanchor\@empty 552 | \@ifundefined{ttl@ps@#6}{}% 553 | {\thispagestyle{\@nameuse{ttl@ps@#6}}}% 554 | \let\ifttl@toclabel\ifttl@label 555 | \ttl@mkchap@i{#1}{#2}{#3}{#4}{#5}{#6}{#7}} 556 | 557 | % But \ttl@mkchap@i is used by both makechapterhead and 558 | % the top class. 559 | 560 | \def\ttl@mkchap@i#1#2#3#4#5#6#7{% 561 | \ttl@assign\@tempskipa#3\relax\beforetitleunit 562 | \vspace*{\@tempskipa}% 563 | \global\@afterindenttrue 564 | \ifcase#5 \global\@afterindentfalse\fi 565 | \ttl@assign\@tempskipb#4\relax\aftertitleunit 566 | \ttl@topmode{\@tempskipb}{% 567 | \ttl@select{#6}{#1}{#2}{#7}}% 568 | \ttl@finmarks % Outside the box! 569 | \@ifundefined{ttlp@#6}{}{\ttlp@write{#6}}} 570 | 571 | \def\ttl@top@i#1[#2]#3{% 572 | \gdef\ttl@savemark{\csname#1mark\endcsname{#3}}% 573 | \let\ttl@savewrite\@empty 574 | \def\ttl@savetitle{#3}% 575 | \ttl@labelling{#1}{#2}% 576 | \ttl@startargs\ttl@top@ii{#1}{#3}} 577 | 578 | \def\ttl@top@ii#1#2#3#4#5#6#7{% 579 | \@ifundefined{#6break}% 580 | {\if@openright 581 | \cleardoublepage 582 | \else 583 | \clearpage 584 | \fi}% 585 | {\csname#6break\endcsname}% 586 | \@ifundefined{ttl@ps@#6}% 587 | {\thispagestyle{plain}}% 588 | {\thispagestyle{\@nameuse{ttl@ps@#6}}}% 589 | \global\@topnum\z@ 590 | \@ifundefined{#6tolists}% 591 | {\addtocontents{lof}{\protect\ttl@tocsep}% 592 | \addtocontents{lot}{\protect\ttl@tocsep}} 593 | {\@nameuse{#6tolists}}% 594 | \if@twocolumn 595 | \@topnewpage[\ttl@mkchap@i{#1}{#2}{#3}{#4}{#5}{#6}{#7}]% 596 | \else 597 | \ttl@mkchap@i{#1}{#2}{#3}{#4}{#5}{#6}{#7}% 598 | \@afterheading 599 | \fi 600 | \ignorespaces} 601 | 602 | 603 | % \def\ttl@noskipsectrue{% 604 | % \if@noskipsec 605 | % \PackageError{titlesec}{Invalid shape for top class}% 606 | % {The selected shape only makes sense when merged into\MessageBreak 607 | % a paragraph. That is impossible in the top class}% 608 | % \else 609 | 610 | \newcommand\chaptertitlename{\@chapapp} 611 | \def\ttl@tocsep{\addvspace{10\p@}} 612 | 613 | % +-----------------+ 614 | % | S H A P E S | 615 | % +-----------------+ 616 | % 617 | % % Reformatting Titles: Interface 618 | % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | 620 | % The surrounding space is stored in a macro 621 | % named \ttls@
whose content is 622 | % {left}{right}{before}{after}{afterindent}. 623 | % But if there is the page key, the name is 624 | % \ttls@
/ 625 | 626 | \newcommand\titlespacing{% 627 | \@ifstar{\ttl@spacing@i{\z@}}{\ttl@spacing@i{\@ne}}} 628 | 629 | \def\ttl@spacing@i#1#2#3#4#5{% 630 | \ttl@getkeys{#2}{titlesec}% 631 | \@ifnextchar[{% 632 | \ttl@spacing@ii{#1}{#3}{#4}{#5}% 633 | }{% 634 | \ttl@spacing@ii{#1}{#3}{#4}{#5}[\z@]}} 635 | 636 | \def\ttl@spacing@ii#1#2#3#4[#5]{% 637 | \expandafter\def\csname ttls@\ttl@a\endcsname 638 | {{#2}{#5}{#3}{#4}{#1}}} 639 | 640 | % The section name is built in \ttl@a. 641 | % The format is stored in a macro named \ttlf@
, 642 | % or \ttlf@
/ if there is the page spec, 643 | % or \ttlf@.../* if numberless is true 644 | % whose content is 645 | % \ttl@{format}{label}{sep}{before}{after} 646 | 647 | \newtoks\ttl@toksa 648 | 649 | \newcommand\titleformat{% 650 | \@ifstar{\ttl@format@s}% 651 | {\ttl@format@i}} 652 | 653 | \def\ttl@format@s#1#2{% 654 | \edef\ttl@a{\expandafter\@gobble\string#1}% 655 | \@ifundefined{ttlf@\ttl@a}% 656 | {\PackageError{titlesec}{Not allowed in `easy' settings} 657 | {The sectiong command you are trying to redefine\MessageBreak 658 | is not handled by the starred variant (eg, \string\part)}}{} 659 | \expandafter\expandafter\expandafter 660 | \ttl@format@si\csname ttlf@\ttl@a \endcsname 661 | {#2}} 662 | 663 | \def\ttl@format@si#1#2#3#4#5#6#7{% 664 | \@namedef{ttlf@\ttl@a}{#1{#7}{#3}{#4}{#5}{#6}}} 665 | 666 | \def\ttl@format@i#1{% 667 | \@ifnextchar[{\ttl@format@ii{#1}}{\ttl@format@ii{#1}[hang]}} 668 | 669 | \def\ttl@format@ii#1[#2]#3#4#5#6{% 670 | \ttl@getkeys{#1}{titlesec}% 671 | \ttl@toksa{{#3}{#4}{#5}{#6}}% Save arguments 672 | \@ifnextchar[{% 673 | \ttl@format@iii{#2}% 674 | }{% 675 | \ttl@format@iii{#2}[]}} 676 | 677 | % First, we get the shape -- if not defined it loads 678 | % the corresponding file. 679 | 680 | \def\ttl@format@iii#1[#2]{% 681 | \@ifundefined{ttlh@#1}{% 682 | \begingroup 683 | \makeatletter 684 | \InputIfFileExists{#1.tss}{}{% 685 | \PackageError{titlesec}{Unknown shape}% 686 | {Shapes are defined in files with extension tss\MessageBreak 687 | Either you have misspelled the shape\MessageBreak 688 | or there is no a #1.tss file}}% 689 | \endgroup}{}% 690 | \@temptokena{#2}% 691 | \ifttl@explicit 692 | \edef\ttl@b{% 693 | \def\expandafter\noexpand\csname ttlf@\ttl@a\endcsname####1% 694 | {\expandafter\noexpand\csname ttlh@#1\endcsname 695 | \the\ttl@toksa{\the\@temptokena}}}% 696 | \else 697 | \edef\ttl@b{% 698 | \def\expandafter\noexpand\csname ttlf@\ttl@a\endcsname 699 | {\expandafter\noexpand\csname ttlh@#1\endcsname 700 | \the\ttl@toksa{\the\@temptokena}}}% 701 | \fi 702 | \ttl@b 703 | \csname ttl@compat\ttl@a\endcsname} 704 | 705 | % Styles 706 | % ~~~~~~ 707 | 708 | % 1:global 2:label 3:sep 4:style 5:after 6:left 7:right 8:title 709 | % \ttl@ and \ttlh@ take the following eight 710 | % arguments: 711 | % {format}{label}{sep}{before}{after}{left}{right}{title} 712 | % where before and after refer to the format. 713 | % With the option explicit, #4 contains the title and #8 is 714 | % empty. 715 | 716 | \def\ttlh@display#1#2#3#4#5#6#7#8{% 717 | \gdef\ttl@makeline##1{\ttl@calc\hspace{#6}##1\ttl@calc\hspace{#7}}% 718 | \setlength\leftskip{#6}% 719 | \setlength\rightskip{#7}% 720 | \interlinepenalty\@M 721 | \ttl@changecentercr 722 | \ttl@beginlongest 723 | #1\ifhmode\ttl@hmode@error\fi 724 | \ttl@glcmds 725 | \parindent\z@ 726 | \ifttl@label 727 | {#2\strut\@@par}\nobreak\ttl@calc\vspace{#3}% 728 | \fi 729 | #4{#8}% 730 | \kern\z@\strut\@@par 731 | \nobreak\ttl@midlongest#5\@@par 732 | \ttl@endlongest} 733 | 734 | \def\ttlh@hang#1#2#3#4#5#6#7#8{% 735 | \gdef\ttl@makeline##1{\ttl@calc\hspace{#6}##1\ttl@calc\hspace{#7}}% 736 | \setlength\leftskip{#6}% 737 | \setlength\rightskip{#7}% 738 | \interlinepenalty\@M 739 | \ttl@changecentercr 740 | \ttl@beginlongest 741 | #1{\ifhmode\ttl@hmode@error\fi 742 | \ttl@glcmds 743 | \parindent\z@ 744 | \leavevmode 745 | \begingroup 746 | \ifttl@label 747 | \sbox\z@{#2\strut\ttl@calc\hspace{#3}}% 748 | \advance\leftskip\wd\z@ 749 | \llap{\box\z@}% 750 | \fi 751 | #4{#8}% 752 | \kern\z@\strut\@@par 753 | \endgroup 754 | \nobreak\ttl@midlongest#5\@@par}% 755 | \ttl@endlongest} 756 | 757 | \def\ttlh@runin#1#2#3#4#5#6#7#8{% 758 | \global\@noskipsectrue 759 | \gdef\ttl@makeline##1{##1}% 760 | \ttl@changecentercr 761 | #1{\ifhmode\ttl@hmode@error\fi 762 | \global\sbox\ttl@box{% 763 | \ttl@calc\hspace{#6}% 764 | \ifttl@label{\strut#2}\ttl@calc\hspace{#3}\fi 765 | #4{#8}#5\unskip}}% 766 | \gdef\@svsechd{\unhbox\ttl@box}} 767 | 768 | % +-----------------+ 769 | % | T O O L S | 770 | % +-----------------+ 771 | % 772 | % calcwidth 773 | % ~~~~~~~~~ 774 | % Implemented after code from soul (but much modified...) 775 | 776 | \newdimen\titlewidth 777 | \newdimen\titlewidthlast 778 | \newdimen\titlewidthfirst 779 | 780 | \let\ttl@glcmds\relax 781 | \let\ttl@beginlongest\@empty 782 | \let\ttl@midlongest\@empty 783 | \let\ttl@endlongest\@empty 784 | \let\iftitlemeasuring\@secondoftwo 785 | 786 | \def\ttl@xbeginlongest#1\ttl@endlongest{% 787 | \titlewidth\z@ 788 | \titlewidthlast\z@ 789 | \let\iftitlemeasuring\@firstoftwo 790 | \setbox\ttl@box\vbox{% 791 | \def\ttl@glcmds{% 792 | \def\\{\@ifstar{\@ifnextchar[{\ttl@bs}{\newline}}% 793 | {\@ifnextchar[{\ttl@bs}{\newline}}}% 794 | \def\ttl@bs[####1]{\newline}% 795 | \let\@centercr\\% 796 | \def\ttl@midlongest####1\@@par{}% Very dirty... 797 | \advance\rightskip 1\leftskip plus 1fil 798 | \leftskip=\z@}% 799 | #1}% 800 | \let\iftitlemeasuring\@secondoftwo 801 | \ttl@boxprocess 802 | #1} 803 | 804 | \def\ttl@boxprocess{% 805 | \setbox\ttl@box=\vbox{% 806 | \unvcopy\ttl@box 807 | \unskip\unpenalty 808 | \global\setbox\@ne=\lastbox}% 809 | \ifvoid\@ne 810 | \else 811 | \setbox\tw@=\hbox{\hskip-\leftskip\unhbox\@ne\hskip-\rightskip}% 812 | \titlewidthfirst\wd\tw@ 813 | \ifdim\titlewidth<\titlewidthfirst 814 | \titlewidth\titlewidthfirst 815 | \fi 816 | \ifdim\titlewidthlast=\z@ 817 | \titlewidthlast\titlewidthfirst 818 | \fi 819 | \expandafter\ttl@boxprocess 820 | \fi} 821 | 822 | % Rules 823 | % ~~~~~ 824 | 825 | \providecommand\titleline{% 826 | \@ifstar{\ttl@line@i{\hb@xt@\titlewidth}}% 827 | {\ttl@line@i{}}} 828 | 829 | \def\ttl@line@i#1{% 830 | \@ifnextchar[{\ttl@line{#1}}{\ttl@line{#1}[s]}} 831 | 832 | \def\ttl@line#1[#2]#3{% 833 | \vskip\topskip 834 | \hrule \@height \z@ 835 | \nobreak 836 | \vskip-\topskip 837 | \begingroup 838 | \parindent\z@ 839 | \everypar{}% 840 | \leftskip\z@ 841 | \rightskip\z@ % #1 is either \hb@xt@\titlewidth or empty: 842 | \@makebox[\hsize][#2]{\ttl@makeline{#1{#3}}}% 843 | \par 844 | \endgroup 845 | \hrule height \z@ 846 | \nobreak} 847 | 848 | \providecommand\titlerule{\@ifstar{\ttl@row}{\ttl@rule}} 849 | 850 | \let\ttl@leaders\xleaders % For titletoc compatibility 851 | 852 | \def\ttl@row{\@ifnextchar[{\ttl@row@i}{\ttl@row@i[\wd\z@]}} 853 | \def\ttl@row@i[#1]#2{% 854 | \ifvmode\expandafter\titleline\fi 855 | {\sbox\z@{#2}% 856 | \ttl@calcneg\hspace{#1}% 857 | \hskip\wd\z@ 858 | \ttl@leaders\hb@xt@#1{\hss\box\z@}% 859 | \hfill\kern\z@}} 860 | 861 | \def\ttl@rule{\@ifnextchar[{\ttl@rule@i}{\ttl@rule@i[.4\p@]}} 862 | \def\ttl@rule@i[#1]{% 863 | \ifvmode\expandafter\titleline\fi 864 | {\leaders\hrule height #1\hfill\kern\z@}} 865 | 866 | % Par shapes and space 867 | % ~~~~~~~~~~~~~~~~~~~~ 868 | 869 | \providecommand\filright{% 870 | \gdef\ttl@filleft##1{\hskip##1}% 871 | \gdef\ttl@filright##1{\hfill}% 872 | \let\\\@centercr 873 | \advance\rightskip\z@ \@plus 1fil\relax} 874 | \providecommand\filleft{% 875 | \gdef\ttl@filleft##1{\hfill}% 876 | \gdef\ttl@filright##1{\hskip##1}% 877 | \let\\\@centercr 878 | \advance\leftskip\z@ \@plus 1fil 879 | \parfillskip\z@} 880 | \providecommand\filcenter{\filleft\filright 881 | \gdef\ttl@filleft##1{\hfill}} 882 | \providecommand\fillast{% 883 | \gdef\ttl@filleft##1{\hfill}% 884 | \gdef\ttl@filright##1{\hfill}% 885 | \let\\\@centercr 886 | \filleft\advance\rightskip\z@ \@plus -1fil 887 | \parfillskip\z@ \@plus 2fil\relax} 888 | \newcommand\filinner{% 889 | \if@twoside 890 | \ifodd\count\z@\filleft\else\filright\fi 891 | \else 892 | \filleft 893 | \fi} 894 | \newcommand\filouter{% 895 | \if@twoside 896 | \ifodd\count\z@\filright\else\filleft\fi 897 | \else 898 | \filright 899 | \fi} 900 | 901 | \newcommand\wordsep{\fontdimen\tw@\font \@plus 902 | \fontdimen\thr@@\font \@minus \fontdimen4\font} 903 | 904 | % +-----------------+ 905 | % | O P T I O N S | 906 | % +-----------------+ 907 | 908 | 909 | \DeclareOption{pagestyles}{\let\sectiontitle\@empty} 910 | \DeclareOption{extramarks}{\let\ttl@fetchmark\@empty} 911 | \DeclareOption{floatps}{% 912 | \ifx\sectiontitle\@empty 913 | \let\ttl@replace\space 914 | \else 915 | \PackageWarning{titlesec}{Ignoring `floatps' without 916 | `pagestyles'. This option is now deprecated.}% 917 | \fi} 918 | \DeclareOption{psfloats}{% 919 | \ifx\sectiontitle\@empty 920 | \let\ttl@replace\@empty 921 | \else 922 | \PackageWarning{titlesec}{Ignoring `psfloats' without 923 | `pagestyles'}% 924 | \fi} 925 | 926 | \DeclareOption{loadonly}{\let\ttl@extract\@empty} 927 | 928 | \DeclareOption{outermarks}{% 929 | \def\ttl@titlemarks{\outertitlemarks}} 930 | \DeclareOption{topmarks}{ 931 | \def\ttl@titlemarks{\toptitlemarks}} 932 | \DeclareOption{botmarks}{% 933 | \def\ttl@titlemarks{\bottitlemarks}} 934 | \DeclareOption{innermarks}{% 935 | \def\ttl@titlemarks{\innertitlemarks}} 936 | 937 | \DeclareOption{footmarks}{} % Backward compat 938 | 939 | \DeclareOption{explicit}{\ttl@explicittrue} 940 | 941 | \DeclareOption{clearempty}{% 942 | \def\cleardoublepage{% 943 | \clearpage{\ps@empty\if@twoside\ifodd\c@page\else 944 | \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}}} 945 | 946 | \DeclareOption{rigidchapters}{% 947 | \def\ttl@topmode#1#2{\vbox to #1{#2\vfil}}% 948 | \def\ttl@chapafter{.26\textheight}} 949 | \DeclareOption{rubberchapters}{% 950 | \def\ttl@topmode#1#2{{#2}\ttl@calc\vspace{#1}}% 951 | \def\ttl@chapafter{40\p@}} 952 | 953 | \DeclareOption{bottomtitles}{% 954 | \def\bottomtitlespace{-1\p@}} 955 | \DeclareOption{nobottomtitles}{% 956 | \def\bottomtitlespace{.2\textheight}} 957 | \DeclareOption{nobottomtitles*}{% 958 | \let\ttl@addstretch\relax 959 | \def\bottomtitlespace{.2\textheight}} 960 | 961 | \DeclareOption{calcwidth}{% 962 | \let\ttl@beginlongest\ttl@xbeginlongest} 963 | 964 | \DeclareOption{aftersep}{% 965 | \let\ttl@titlespace\@gobble} 966 | \DeclareOption{largestsep}{% 967 | \let\ttl@titlespace\addvspace} 968 | 969 | \DeclareOption{oldparttoc}{% 970 | \def\ttl@tocpart{\def\ttl@a{\thepart\hspace{1em}}}} 971 | \DeclareOption{newparttoc}{% 972 | \let\ttl@tocpart\relax} 973 | 974 | \DeclareOption{rm}{% 975 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\rmfamily}} 976 | \DeclareOption{sf}{% 977 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\sffamily}} 978 | \DeclareOption{tt}{% 979 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\ttfamily}} 980 | \DeclareOption{md}{% 981 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\mdseries}} 982 | \DeclareOption{bf}{% 983 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\bfseries}} 984 | \DeclareOption{up}{% 985 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\upshape}} 986 | \DeclareOption{it}{% 987 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\itshape}} 988 | \DeclareOption{sl}{% 989 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\slshape}} 990 | \DeclareOption{sc}{% 991 | \protected@xdef\ttl@fonts{\ttl@fonts\protect\scshape}} 992 | 993 | \DeclareOption{big}{% 994 | \gdef\ttl@sizes#1{\ifcase#1\relax\Huge\or\Large\or\large 995 | \or\normalsize\or\or\or\huge\fi}} 996 | \DeclareOption{medium}{% 997 | \gdef\ttl@sizes#1{\ifcase#1\relax\huge\or\Large\or\large 998 | \or\normalsize\or\or\or\LARGE\fi}} 999 | \DeclareOption{small}{% 1000 | \gdef\ttl@sizes#1{\ifcase#1\relax\LARGE\or\large 1001 | \or\normalsize\or\normalsize\or\or\or\Large\fi}} 1002 | \DeclareOption{tiny}{% 1003 | \gdef\ttl@sizes#1{\ifcase#1\relax\large\or\normalsize\or 1004 | \normalsize\or\normalsize\or\or\or\normalsize\fi}} 1005 | 1006 | \DeclareOption{raggedleft}{% 1007 | \gdef\ttl@fil{\filleft}} 1008 | \DeclareOption{center}{% 1009 | \gdef\ttl@fil{\filcenter}} 1010 | \DeclareOption{raggedright}{% 1011 | \gdef\ttl@fil{\filright}} 1012 | 1013 | \DeclareOption{uppercase}{% 1014 | \gdef\ttl@case{\MakeUppercase}} 1015 | 1016 | \DeclareOption{compact}{% 1017 | \gdef\ttl@space{1}% 1018 | \gdef\ttl@chapafter{30\p@}} 1019 | 1020 | % Deprecated. To be remmoved in a major upgrade (3.0) 1021 | \DeclareOption{indentfirst}{% 1022 | \gdef\@afterindentfalse{\let\if@afterindent\iftrue}% 1023 | \@afterindenttrue 1024 | \def\titlespacing{% 1025 | \@ifstar{\ttl@spacing@i{\@ne}}{\ttl@spacing@i{\@ne}}}} 1026 | \DeclareOption{nonindentfirst}{% 1027 | \def\titlespacing{% 1028 | \@ifstar{\ttl@spacing@i{\z@}}{\ttl@spacing@i{\z@}}}} 1029 | 1030 | % New names 1031 | \DeclareOption{indentafter}{% 1032 | \gdef\@afterindentfalse{\let\if@afterindent\iftrue}% 1033 | \@afterindenttrue 1034 | \def\titlespacing{% 1035 | \@ifstar{\ttl@spacing@i{\@ne}}{\ttl@spacing@i{\@ne}}}} 1036 | \DeclareOption{noindentafter}{% 1037 | \def\titlespacing{% 1038 | \@ifstar{\ttl@spacing@i{\z@}}{\ttl@spacing@i{\z@}}}} 1039 | 1040 | % newlinetospace 1041 | \let\ttl@blinemarks\relax 1042 | \let\ttl@elinemarks\relax 1043 | 1044 | \DeclareRobustCommand\ttl@linetosp{% 1045 | \@ifstar{\ttl@linetosp@i}{\ttl@linetosp@i}}% 1046 | 1047 | \def\ttl@linetosp@i{% 1048 | \ifdim\lastskip>\z@\else\space\fi 1049 | \ignorespaces} 1050 | 1051 | \DeclareOption{newlinetospace}{% 1052 | \def\ttl@blinemarks{% 1053 | \let\ttl@e\\% 1054 | \def\\{\ttl@linetosp}}% 1055 | \def\ttl@elinemarks{\let\\\ttl@e}}% 1056 | 1057 | % toctitles 1058 | \def\ttl@addcontentsline#1#2{% 1059 | \addcontentsline{toc}{#1}{\ifttl@toclabel\ttl@a\fi#2}% 1060 | \nobreak} 1061 | 1062 | \DeclareOption{toctitles}{% 1063 | \def\ttl@addcontentsline#1#2{% 1064 | \addcontentsline{toc}{#1}{\ifttl@toclabel\ttl@a\fi\ttl@savetitle}% 1065 | \nobreak}} 1066 | 1067 | % pageatnewline 1068 | 1069 | \def\ttl@changecentercr{% 1070 | \let\ttl@centercr\@centercr 1071 | \def\@centercr{\@ifstar{\ttl@centercr*}{\ttl@centercr*}}} 1072 | 1073 | \DeclareOption{pageatnewline}{\let\ttl@changecentercr\relax} 1074 | 1075 | \def\ttl@fonts{} 1076 | 1077 | \ExecuteOptions{rubberchapters,bottomtitles,aftersep,oldparttoc,% 1078 | innermarks} 1079 | 1080 | \ProcessOptions 1081 | 1082 | % +-----------------+ 1083 | % | H Y P E R R E F | 1084 | % +-----------------+ 1085 | % 1086 | % These two commands are provided by hyperref. But if they 1087 | % are not defined at \begin{document} hyperref has not been 1088 | % loaded or it is an old version. 1089 | 1090 | \AtBeginDocument{% 1091 | \ifx\ttl@Hy@steplink\@undefined 1092 | \let\ttl@Hy@steplink\@gobble 1093 | \let\ttl@Hy@refstepcounter\refstepcounter 1094 | \fi} 1095 | 1096 | % +-----------------+ 1097 | % | PAGE STYLES | 1098 | % +-----------------+ 1099 | % 1100 | % This is generic: 1101 | 1102 | \newcommand\assignpagestyle[2]{% 1103 | \@namedef{ttl@ps@\expandafter\@gobble\string#1}{#2}} 1104 | 1105 | % Old pagestyles 1106 | % ~~~~~~~~~~~~~~ 1107 | 1108 | \providecommand\newpagestyle{% 1109 | \let\ttl@compatps\@empty % marks the ``old interface'' 1110 | \makeatletter 1111 | \edef\ttl@d{% 1112 | \noexpand\input{ttlps.def}% 1113 | \catcode`\noexpand\@=\the\catcode`\@}% 1114 | \ttl@d 1115 | \newpagestyle} 1116 | 1117 | \providecommand\renewpagestyle{% 1118 | \let\ttl@compatps\@empty % marks the ``old interface'' 1119 | \makeatletter 1120 | \edef\ttl@d{% 1121 | \noexpand\input{ttlps.def}% 1122 | \catcode`\noexpand\@=\the\catcode`\@}% 1123 | \ttl@d 1124 | \renewpagestyle} 1125 | 1126 | \providecommand\widenhead{% 1127 | \let\ttl@compatps\@empty % marks the ``old interface'' 1128 | \makeatletter 1129 | \edef\ttl@d{% 1130 | \noexpand\input{ttlps.def}% 1131 | \catcode`\noexpand\@=\the\catcode`\@}% 1132 | \ttl@d 1133 | \widenhead} 1134 | 1135 | % New pagestyles 1136 | % ~~~~~~~~~~~~~~ 1137 | 1138 | \@ifundefined{sectiontitle}{}{\input{ttlps.def}} 1139 | 1140 | % +-----------------+ 1141 | % | C O M P A T | 1142 | % +-----------------+ 1143 | % Easy setup, i.e., that of package options, is 1144 | % taken care of, if necessary. 1145 | 1146 | \renewcommand\secdef[2]{% 1147 | \@ifstar 1148 | {\ttl@labelfalse 1149 | #2} 1150 | {\ttl@labeltrue 1151 | \ifx#1\@chapter 1152 | \if@mainmatter\else\ttl@labelfalse\fi 1153 | \ifnum\ttll@chapter>\c@secnumdepth\ttl@labelfalse\fi 1154 | \else\ifx#1\@part 1155 | \ifnum\ttll@part>\c@secnumdepth\ttl@labelfalse\fi 1156 | \fi\fi 1157 | \let\ifttl@toclabel\ifttl@label 1158 | \@dblarg{#1}}} 1159 | 1160 | \@ifundefined{ttl@extract}{}{\endinput} 1161 | 1162 | \newcommand\titlelabel[1]{% 1163 | \def\@seccntformat##1{#1}} 1164 | 1165 | \expandafter\ifx\csname chapter\endcsname\relax 1166 | 1167 | \def\ttl@compatpart{\titleclass{\part}{part}\relax} 1168 | 1169 | \else 1170 | 1171 | \def\ttl@compatchapter{% 1172 | \def\@makechapterhead{% 1173 | \ttl@labeltrue 1174 | \if@mainmatter\else\ttl@labelfalse\fi 1175 | \ifnum\ttll@chapter>\c@secnumdepth\ttl@labelfalse\fi 1176 | \ttl@startargs\ttl@mkchap{chapter}}% 1177 | \def\@makeschapterhead{% 1178 | \ttl@labelfalse 1179 | \if@mainmatter\else\ttl@labelfalse\fi 1180 | \ifnum\ttll@chapter>\c@secnumdepth\ttl@labelfalse\fi 1181 | \ttl@startargs\ttl@mkchap{chapter}}} 1182 | 1183 | \def\ttl@compatpart{\titleclass{\part}{page}\relax} 1184 | 1185 | \fi 1186 | 1187 | \def\ttl@@extract#1\@startsection#2#3#4#5#6#7#8{% 1188 | \@tempskipa=#5 1189 | \@tempskipb=#6 1190 | \ifdim\@tempskipa<\z@ 1191 | \toks@{\titlespacing*#8{#4}}% 1192 | \@tempskipa-\@tempskipa 1193 | \else 1194 | \toks@{\titlespacing#8{#4}}% 1195 | \fi 1196 | \@ifundefined{ttl@space}{}{% 1197 | \ttl@assign\@tempskipa*\ttl@space\relax\beforetitleunit}% 1198 | \ifdim\@tempskipb<\z@ 1199 | \if@tempswa 1200 | \titleformat#8[runin]% 1201 | {\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}% 1202 | {\z@}\ttl@passexplicit 1203 | \else 1204 | \titleformat#8[runin]% 1205 | {#7}{\@seccntformat{#2}}% 1206 | {\z@}\ttl@passexplicit 1207 | \fi 1208 | \@tempskipb-\@tempskipb 1209 | \else 1210 | \if@tempswa 1211 | \titleformat#8% 1212 | {\ttl@fil\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}% 1213 | {\z@}\ttl@passexplicit 1214 | \else 1215 | \titleformat#8% 1216 | {#7}{\@seccntformat{#2}}% 1217 | {\z@}\ttl@passexplicit 1218 | \fi 1219 | \@ifundefined{ttl@space}{}{% 1220 | \ttl@assign\@tempskipb*\ttl@space\relax\aftertitleunit}% 1221 | \fi 1222 | \edef\ttl@a{\the\toks@{\the\@tempskipa}{\the\@tempskipb}} 1223 | \ttl@a} 1224 | 1225 | \def\ttl@extract#1{% 1226 | \expandafter\in@\expandafter\@startsection\expandafter{#1}% 1227 | \ifin@ 1228 | \expandafter\ttl@@extract#1#1% 1229 | \else 1230 | \PackageWarningNoLine{titlesec}% 1231 | {Non standard sectioning command detected\MessageBreak 1232 | Using default spacing and no format} 1233 | \titlespacing*#1{\z@}{*3}{*2}% 1234 | \fi} 1235 | 1236 | \@tempswafalse 1237 | 1238 | \ifx\ttl@fonts\@empty 1239 | \def\ttl@fonts{\bfseries} 1240 | \else 1241 | \@tempswatrue 1242 | \fi 1243 | 1244 | \expandafter\ifx\csname ttl@sizes\endcsname\relax 1245 | \gdef\ttl@sizes#1{\ifcase#1\relax\Huge\or\Large\or\large 1246 | \or\normalsize\or\or\or\huge\fi} 1247 | \else 1248 | \@tempswatrue 1249 | \fi 1250 | 1251 | \expandafter\ifx\csname ttl@fil\endcsname\relax 1252 | \let\ttl@fil\@empty 1253 | \else 1254 | \@tempswatrue 1255 | \fi 1256 | 1257 | \expandafter\ifx\csname ttl@case\endcsname\relax 1258 | \let\ttl@case\@firstofone 1259 | \else 1260 | \@tempswatrue 1261 | \fi 1262 | 1263 | \if@tempswa 1264 | 1265 | \expandafter\ifx\csname chapter\endcsname\relax\else 1266 | \titleformat\chapter[display]% 1267 | {\@ifundefined{ttl@fil}{\raggedright}{\ttl@fil}\ttl@fonts\ttl@sizes6} 1268 | {\@chapapp\space\thechapter}{.8\baselineskip}{\ttl@sizes\z@\ttl@passexplicit} 1269 | \fi 1270 | 1271 | \fi 1272 | 1273 | \ttl@extract\section 1274 | \ttl@extract\subsection 1275 | \ttl@extract\subsubsection 1276 | \ttl@extract\paragraph 1277 | \ttl@extract\subparagraph 1278 | 1279 | \let\ttl@extract\@undefined 1280 | \let\ttl@@extract\@undefined 1281 | 1282 | \def\ttl@toplevel{part} 1283 | 1284 | \expandafter\ifx\csname chapter\endcsname\relax 1285 | 1286 | \@namedef{ttll@part}{0} 1287 | \titleclass{\section}{straight}[\part] 1288 | 1289 | \titlespacing*{\part} 1290 | {\z@} 1291 | {4ex} 1292 | {3ex} 1293 | 1294 | \else 1295 | 1296 | \let\ttl@save@mkchap\@makechapterhead 1297 | \let\ttl@save@mkschap\@makeschapterhead 1298 | 1299 | \def\@makechapterhead#1{% 1300 | \gdef\ttl@savemark{\chaptermark{#1}}% 1301 | \ttl@save@mkchap{#1}% 1302 | \@ifundefined{ttl@ps@chapter}{}% 1303 | {\thispagestyle{\@nameuse{ttl@ps@chapter}}}} 1304 | 1305 | \def\@makeschapterhead#1{% 1306 | \gdef\ttl@savemark{\chaptermark{#1}}% 1307 | \ttl@save@mkschap{#1}% 1308 | \@ifundefined{ttl@ps@chapter}{}% 1309 | {\thispagestyle{\@nameuse{ttl@ps@chapter}}}} 1310 | 1311 | \@namedef{ttll@part}{-1} 1312 | \@namedef{ttlss@part}{chapter} 1313 | \@namedef{ttll@chapter}{0} 1314 | \titleclass{\section}{straight}[\chapter] 1315 | 1316 | % The following is unoperant, unless when \chapter / \part 1317 | % format is redefined 1318 | 1319 | \titlespacing*{\part} 1320 | {\z@} 1321 | {\z@\@plus1fil} 1322 | {\z@\@plus1fil} 1323 | 1324 | \titlespacing*\chapter 1325 | {\z@}% 1326 | {50\p@}% 1327 | {\ttl@chapafter}% 1328 | 1329 | \fi 1330 | 1331 | \titleclass{\subsection} {straight}[\section] 1332 | \titleclass{\subsubsection}{straight}[\subsection] 1333 | \titleclass{\paragraph} {straight}[\subsubsection] 1334 | \titleclass{\subparagraph} {straight}[\paragraph] 1335 | 1336 | \endinput 1337 | 1338 | -------------------------------------------------------------------------------- /fontawesome.sty: -------------------------------------------------------------------------------- 1 | % Identify this package. 2 | \NeedsTeXFormat{LaTeX2e} 3 | \ProvidesPackage{fontawesome}[2014/04/24 v4.0.3 font awesome icons] 4 | % Requirements to use. 5 | \usepackage{fontspec} 6 | % Define shortcut to load the Font Awesome font. 7 | \newfontfamily{\FA}{FontAwesome} 8 | % Generic command displaying an icon by its name. 9 | \newcommand*{\faicon}[1]{{ 10 | \FA\csname faicon@#1\endcsname 11 | }} 12 | \expandafter\def\csname faicon@glass\endcsname {\symbol{"F000}} \def\faGlass {{\FA\csname faicon@glass\endcsname}} 13 | \expandafter\def\csname faicon@music\endcsname {\symbol{"F001}} \def\faMusic {{\FA\csname faicon@music\endcsname}} 14 | \expandafter\def\csname faicon@search\endcsname {\symbol{"F002}} \def\faSearch {{\FA\csname faicon@search\endcsname}} 15 | \expandafter\def\csname faicon@envelope-o\endcsname {\symbol{"F003}} \def\faEnvelopeO {{\FA\csname faicon@envelope-o\endcsname}} 16 | \expandafter\def\csname faicon@heart\endcsname {\symbol{"F004}} \def\faHeart {{\FA\csname faicon@heart\endcsname}} 17 | \expandafter\def\csname faicon@star\endcsname {\symbol{"F005}} \def\faStar {{\FA\csname faicon@star\endcsname}} 18 | \expandafter\def\csname faicon@star-o\endcsname {\symbol{"F006}} \def\faStarO {{\FA\csname faicon@star-o\endcsname}} 19 | \expandafter\def\csname faicon@user\endcsname {\symbol{"F007}} \def\faUser {{\FA\csname faicon@user\endcsname}} 20 | \expandafter\def\csname faicon@ilm\endcsname {\symbol{"F008}} \def\faFilm {{\FA\csname faicon@ilm\endcsname}} 21 | \expandafter\def\csname faicon@th-large\endcsname {\symbol{"F009}} \def\faThLarge {{\FA\csname faicon@th-large\endcsname}} 22 | \expandafter\def\csname faicon@th\endcsname {\symbol{"F00A}} \def\faTh {{\FA\csname faicon@th\endcsname}} 23 | \expandafter\def\csname faicon@th-list\endcsname {\symbol{"F00B}} \def\faThList {{\FA\csname faicon@th-list\endcsname}} 24 | \expandafter\def\csname faicon@check\endcsname {\symbol{"F00C}} \def\faCheck {{\FA\csname faicon@check\endcsname}} 25 | \expandafter\def\csname faicon@times\endcsname {\symbol{"F00D}} \def\faTimes {{\FA\csname faicon@times\endcsname}} 26 | \expandafter\def\csname faicon@search-plus\endcsname {\symbol{"F00E}} \def\faSearchPlus {{\FA\csname faicon@search-plus\endcsname}} 27 | \expandafter\def\csname faicon@search-minus\endcsname {\symbol{"F010}} \def\faSearchMinus {{\FA\csname faicon@search-minus\endcsname}} 28 | \expandafter\def\csname faicon@power-off\endcsname {\symbol{"F011}} \def\faPowerOff {{\FA\csname faicon@power-off\endcsname}} 29 | \expandafter\def\csname faicon@signal\endcsname {\symbol{"F012}} \def\faSignal {{\FA\csname faicon@signal\endcsname}} 30 | \expandafter\def\csname faicon@cog\endcsname {\symbol{"F013}} \def\faCog {{\FA\csname faicon@cog\endcsname}} 31 | \expandafter\def\csname faicon@trash-o\endcsname {\symbol{"F014}} \def\faTrashO {{\FA\csname faicon@trash-o\endcsname}} 32 | \expandafter\def\csname faicon@home\endcsname {\symbol{"F015}} \def\faHome {{\FA\csname faicon@home\endcsname}} 33 | \expandafter\def\csname faicon@ile-o\endcsname {\symbol{"F016}} \def\faFileO {{\FA\csname faicon@ile-o\endcsname}} 34 | \expandafter\def\csname faicon@clock-o\endcsname {\symbol{"F017}} \def\faClockO {{\FA\csname faicon@clock-o\endcsname}} 35 | \expandafter\def\csname faicon@road\endcsname {\symbol{"F018}} \def\faRoad {{\FA\csname faicon@road\endcsname}} 36 | \expandafter\def\csname faicon@download\endcsname {\symbol{"F019}} \def\faDownload {{\FA\csname faicon@download\endcsname}} 37 | \expandafter\def\csname faicon@rrow-circle-o-down\endcsname {\symbol{"F01A}} \def\faArrowCircleODown {{\FA\csname faicon@rrow-circle-o-down\endcsname}} 38 | \expandafter\def\csname faicon@rrow-circle-o-up\endcsname {\symbol{"F01B}} \def\faArrowCircleOUp {{\FA\csname faicon@rrow-circle-o-up\endcsname}} 39 | \expandafter\def\csname faicon@inbox\endcsname {\symbol{"F01C}} \def\faInbox {{\FA\csname faicon@inbox\endcsname}} 40 | \expandafter\def\csname faicon@play-circle-o\endcsname {\symbol{"F01D}} \def\faPlayCircleO {{\FA\csname faicon@play-circle-o\endcsname}} 41 | \expandafter\def\csname faicon@repeat\endcsname {\symbol{"F01E}} \def\faRepeat {{\FA\csname faicon@repeat\endcsname}} 42 | \expandafter\def\csname faicon@refresh\endcsname {\symbol{"F021}} \def\faRefresh {{\FA\csname faicon@refresh\endcsname}} 43 | \expandafter\def\csname faicon@list-alt\endcsname {\symbol{"F022}} \def\faListAlt {{\FA\csname faicon@list-alt\endcsname}} 44 | \expandafter\def\csname faicon@lock\endcsname {\symbol{"F023}} \def\faLock {{\FA\csname faicon@lock\endcsname}} 45 | \expandafter\def\csname faicon@lag\endcsname {\symbol{"F024}} \def\faFlag {{\FA\csname faicon@lag\endcsname}} 46 | \expandafter\def\csname faicon@headphones\endcsname {\symbol{"F025}} \def\faHeadphones {{\FA\csname faicon@headphones\endcsname}} 47 | \expandafter\def\csname faicon@volume-off\endcsname {\symbol{"F026}} \def\faVolumeOff {{\FA\csname faicon@volume-off\endcsname}} 48 | \expandafter\def\csname faicon@volume-down\endcsname {\symbol{"F027}} \def\faVolumeDown {{\FA\csname faicon@volume-down\endcsname}} 49 | \expandafter\def\csname faicon@volume-up\endcsname {\symbol{"F028}} \def\faVolumeUp {{\FA\csname faicon@volume-up\endcsname}} 50 | \expandafter\def\csname faicon@qrcode\endcsname {\symbol{"F029}} \def\faQrcode {{\FA\csname faicon@qrcode\endcsname}} 51 | \expandafter\def\csname faicon@barcode\endcsname {\symbol{"F02A}} \def\faBarcode {{\FA\csname faicon@barcode\endcsname}} 52 | \expandafter\def\csname faicon@tag\endcsname {\symbol{"F02B}} \def\faTag {{\FA\csname faicon@tag\endcsname}} 53 | \expandafter\def\csname faicon@tags\endcsname {\symbol{"F02C}} \def\faTags {{\FA\csname faicon@tags\endcsname}} 54 | \expandafter\def\csname faicon@book\endcsname {\symbol{"F02D}} \def\faBook {{\FA\csname faicon@book\endcsname}} 55 | \expandafter\def\csname faicon@bookmark\endcsname {\symbol{"F02E}} \def\faBookmark {{\FA\csname faicon@bookmark\endcsname}} 56 | \expandafter\def\csname faicon@print\endcsname {\symbol{"F02F}} \def\faPrint {{\FA\csname faicon@print\endcsname}} 57 | \expandafter\def\csname faicon@camera\endcsname {\symbol{"F030}} \def\faCamera {{\FA\csname faicon@camera\endcsname}} 58 | \expandafter\def\csname faicon@ont\endcsname {\symbol{"F031}} \def\faFont {{\FA\csname faicon@ont\endcsname}} 59 | \expandafter\def\csname faicon@bold\endcsname {\symbol{"F032}} \def\faBold {{\FA\csname faicon@bold\endcsname}} 60 | \expandafter\def\csname faicon@italic\endcsname {\symbol{"F033}} \def\faItalic {{\FA\csname faicon@italic\endcsname}} 61 | \expandafter\def\csname faicon@text-height\endcsname {\symbol{"F034}} \def\faTextHeight {{\FA\csname faicon@text-height\endcsname}} 62 | \expandafter\def\csname faicon@text-width\endcsname {\symbol{"F035}} \def\faTextWidth {{\FA\csname faicon@text-width\endcsname}} 63 | \expandafter\def\csname faicon@lign-left\endcsname {\symbol{"F036}} \def\faAlignLeft {{\FA\csname faicon@lign-left\endcsname}} 64 | \expandafter\def\csname faicon@lign-center\endcsname {\symbol{"F037}} \def\faAlignCenter {{\FA\csname faicon@lign-center\endcsname}} 65 | \expandafter\def\csname faicon@lign-right\endcsname {\symbol{"F038}} \def\faAlignRight {{\FA\csname faicon@lign-right\endcsname}} 66 | \expandafter\def\csname faicon@lign-justify\endcsname {\symbol{"F039}} \def\faAlignJustify {{\FA\csname faicon@lign-justify\endcsname}} 67 | \expandafter\def\csname faicon@list\endcsname {\symbol{"F03A}} \def\faList {{\FA\csname faicon@list\endcsname}} 68 | \expandafter\def\csname faicon@outdent\endcsname {\symbol{"F03B}} \def\faOutdent {{\FA\csname faicon@outdent\endcsname}} 69 | \expandafter\def\csname faicon@indent\endcsname {\symbol{"F03C}} \def\faIndent {{\FA\csname faicon@indent\endcsname}} 70 | \expandafter\def\csname faicon@video-camera\endcsname {\symbol{"F03D}} \def\faVideoCamera {{\FA\csname faicon@video-camera\endcsname}} 71 | \expandafter\def\csname faicon@picture-o\endcsname {\symbol{"F03E}} \def\faPictureO {{\FA\csname faicon@picture-o\endcsname}} 72 | \expandafter\def\csname faicon@pencil\endcsname {\symbol{"F040}} \def\faPencil {{\FA\csname faicon@pencil\endcsname}} 73 | \expandafter\def\csname faicon@map-marker\endcsname {\symbol{"F041}} \def\faMapMarker {{\FA\csname faicon@map-marker\endcsname}} 74 | \expandafter\def\csname faicon@djust\endcsname {\symbol{"F042}} \def\faAdjust {{\FA\csname faicon@djust\endcsname}} 75 | \expandafter\def\csname faicon@tint\endcsname {\symbol{"F043}} \def\faTint {{\FA\csname faicon@tint\endcsname}} 76 | \expandafter\def\csname faicon@pencil-square-o\endcsname {\symbol{"F044}} \def\faPencilSquareO {{\FA\csname faicon@pencil-square-o\endcsname}} 77 | \expandafter\def\csname faicon@share-square-o\endcsname {\symbol{"F045}} \def\faShareSquareO {{\FA\csname faicon@share-square-o\endcsname}} 78 | \expandafter\def\csname faicon@check-square-o\endcsname {\symbol{"F046}} \def\faCheckSquareO {{\FA\csname faicon@check-square-o\endcsname}} 79 | \expandafter\def\csname faicon@rrows\endcsname {\symbol{"F047}} \def\faArrows {{\FA\csname faicon@rrows\endcsname}} 80 | \expandafter\def\csname faicon@step-backward\endcsname {\symbol{"F048}} \def\faStepBackward {{\FA\csname faicon@step-backward\endcsname}} 81 | \expandafter\def\csname faicon@st-backward\endcsname {\symbol{"F049}} \def\faFastBackward {{\FA\csname faicon@st-backward\endcsname}} 82 | \expandafter\def\csname faicon@backward\endcsname {\symbol{"F04A}} \def\faBackward {{\FA\csname faicon@backward\endcsname}} 83 | \expandafter\def\csname faicon@play\endcsname {\symbol{"F04B}} \def\faPlay {{\FA\csname faicon@play\endcsname}} 84 | \expandafter\def\csname faicon@pause\endcsname {\symbol{"F04C}} \def\faPause {{\FA\csname faicon@pause\endcsname}} 85 | \expandafter\def\csname faicon@stop\endcsname {\symbol{"F04D}} \def\faStop {{\FA\csname faicon@stop\endcsname}} 86 | \expandafter\def\csname faicon@orward\endcsname {\symbol{"F04E}} \def\faForward {{\FA\csname faicon@orward\endcsname}} 87 | \expandafter\def\csname faicon@st-forward\endcsname {\symbol{"F050}} \def\faFastForward {{\FA\csname faicon@st-forward\endcsname}} 88 | \expandafter\def\csname faicon@step-forward\endcsname {\symbol{"F051}} \def\faStepForward {{\FA\csname faicon@step-forward\endcsname}} 89 | \expandafter\def\csname faicon@eject\endcsname {\symbol{"F052}} \def\faEject {{\FA\csname faicon@eject\endcsname}} 90 | \expandafter\def\csname faicon@chevron-left\endcsname {\symbol{"F053}} \def\faChevronLeft {{\FA\csname faicon@chevron-left\endcsname}} 91 | \expandafter\def\csname faicon@chevron-right\endcsname {\symbol{"F054}} \def\faChevronRight {{\FA\csname faicon@chevron-right\endcsname}} 92 | \expandafter\def\csname faicon@plus-circle\endcsname {\symbol{"F055}} \def\faPlusCircle {{\FA\csname faicon@plus-circle\endcsname}} 93 | \expandafter\def\csname faicon@minus-circle\endcsname {\symbol{"F056}} \def\faMinusCircle {{\FA\csname faicon@minus-circle\endcsname}} 94 | \expandafter\def\csname faicon@times-circle\endcsname {\symbol{"F057}} \def\faTimesCircle {{\FA\csname faicon@times-circle\endcsname}} 95 | \expandafter\def\csname faicon@check-circle\endcsname {\symbol{"F058}} \def\faCheckCircle {{\FA\csname faicon@check-circle\endcsname}} 96 | \expandafter\def\csname faicon@question-circle\endcsname {\symbol{"F059}} \def\faQuestionCircle {{\FA\csname faicon@question-circle\endcsname}} 97 | \expandafter\def\csname faicon@info-circle\endcsname {\symbol{"F05A}} \def\faInfoCircle {{\FA\csname faicon@info-circle\endcsname}} 98 | \expandafter\def\csname faicon@crosshairs\endcsname {\symbol{"F05B}} \def\faCrosshairs {{\FA\csname faicon@crosshairs\endcsname}} 99 | \expandafter\def\csname faicon@times-circle-o\endcsname {\symbol{"F05C}} \def\faTimesCircleO {{\FA\csname faicon@times-circle-o\endcsname}} 100 | \expandafter\def\csname faicon@check-circle-o\endcsname {\symbol{"F05D}} \def\faCheckCircleO {{\FA\csname faicon@check-circle-o\endcsname}} 101 | \expandafter\def\csname faicon@ban\endcsname {\symbol{"F05E}} \def\faBan {{\FA\csname faicon@ban\endcsname}} 102 | \expandafter\def\csname faicon@rrow-left\endcsname {\symbol{"F060}} \def\faArrowLeft {{\FA\csname faicon@rrow-left\endcsname}} 103 | \expandafter\def\csname faicon@rrow-right\endcsname {\symbol{"F061}} \def\faArrowRight {{\FA\csname faicon@rrow-right\endcsname}} 104 | \expandafter\def\csname faicon@rrow-up\endcsname {\symbol{"F062}} \def\faArrowUp {{\FA\csname faicon@rrow-up\endcsname}} 105 | \expandafter\def\csname faicon@rrow-down\endcsname {\symbol{"F063}} \def\faArrowDown {{\FA\csname faicon@rrow-down\endcsname}} 106 | \expandafter\def\csname faicon@share\endcsname {\symbol{"F064}} \def\faShare {{\FA\csname faicon@share\endcsname}} 107 | \expandafter\def\csname faicon@expand\endcsname {\symbol{"F065}} \def\faExpand {{\FA\csname faicon@expand\endcsname}} 108 | \expandafter\def\csname faicon@compress\endcsname {\symbol{"F066}} \def\faCompress {{\FA\csname faicon@compress\endcsname}} 109 | \expandafter\def\csname faicon@plus\endcsname {\symbol{"F067}} \def\faPlus {{\FA\csname faicon@plus\endcsname}} 110 | \expandafter\def\csname faicon@minus\endcsname {\symbol{"F068}} \def\faMinus {{\FA\csname faicon@minus\endcsname}} 111 | \expandafter\def\csname faicon@sterisk\endcsname {\symbol{"F069}} \def\faAsterisk {{\FA\csname faicon@sterisk\endcsname}} 112 | \expandafter\def\csname faicon@exclamation-circle\endcsname {\symbol{"F06A}} \def\faExclamationCircle {{\FA\csname faicon@exclamation-circle\endcsname}} 113 | \expandafter\def\csname faicon@gift\endcsname {\symbol{"F06B}} \def\faGift {{\FA\csname faicon@gift\endcsname}} 114 | \expandafter\def\csname faicon@leaf\endcsname {\symbol{"F06C}} \def\faLeaf {{\FA\csname faicon@leaf\endcsname}} 115 | \expandafter\def\csname faicon@ire\endcsname {\symbol{"F06D}} \def\faFire {{\FA\csname faicon@ire\endcsname}} 116 | \expandafter\def\csname faicon@eye\endcsname {\symbol{"F06E}} \def\faEye {{\FA\csname faicon@eye\endcsname}} 117 | \expandafter\def\csname faicon@eye-slash\endcsname {\symbol{"F070}} \def\faEyeSlash {{\FA\csname faicon@eye-slash\endcsname}} 118 | \expandafter\def\csname faicon@exclamation-triangle\endcsname {\symbol{"F071}} \def\faExclamationTriangle {{\FA\csname faicon@exclamation-triangle\endcsname}} 119 | \expandafter\def\csname faicon@plane\endcsname {\symbol{"F072}} \def\faPlane {{\FA\csname faicon@plane\endcsname}} 120 | \expandafter\def\csname faicon@calendar\endcsname {\symbol{"F073}} \def\faCalendar {{\FA\csname faicon@calendar\endcsname}} 121 | \expandafter\def\csname faicon@random\endcsname {\symbol{"F074}} \def\faRandom {{\FA\csname faicon@random\endcsname}} 122 | \expandafter\def\csname faicon@comment\endcsname {\symbol{"F075}} \def\faComment {{\FA\csname faicon@comment\endcsname}} 123 | \expandafter\def\csname faicon@magnet\endcsname {\symbol{"F076}} \def\faMagnet {{\FA\csname faicon@magnet\endcsname}} 124 | \expandafter\def\csname faicon@chevron-up\endcsname {\symbol{"F077}} \def\faChevronUp {{\FA\csname faicon@chevron-up\endcsname}} 125 | \expandafter\def\csname faicon@chevron-down\endcsname {\symbol{"F078}} \def\faChevronDown {{\FA\csname faicon@chevron-down\endcsname}} 126 | \expandafter\def\csname faicon@retweet\endcsname {\symbol{"F079}} \def\faRetweet {{\FA\csname faicon@retweet\endcsname}} 127 | \expandafter\def\csname faicon@shopping-cart\endcsname {\symbol{"F07A}} \def\faShoppingCart {{\FA\csname faicon@shopping-cart\endcsname}} 128 | \expandafter\def\csname faicon@older\endcsname {\symbol{"F07B}} \def\faFolder {{\FA\csname faicon@older\endcsname}} 129 | \expandafter\def\csname faicon@older-open\endcsname {\symbol{"F07C}} \def\faFolderOpen {{\FA\csname faicon@older-open\endcsname}} 130 | \expandafter\def\csname faicon@rrows-v\endcsname {\symbol{"F07D}} \def\faArrowsV {{\FA\csname faicon@rrows-v\endcsname}} 131 | \expandafter\def\csname faicon@rrows-h\endcsname {\symbol{"F07E}} \def\faArrowsH {{\FA\csname faicon@rrows-h\endcsname}} 132 | \expandafter\def\csname faicon@bar-chart-o\endcsname {\symbol{"F080}} \def\faBarChartO {{\FA\csname faicon@bar-chart-o\endcsname}} 133 | \expandafter\def\csname faicon@twitter-square\endcsname {\symbol{"F081}} \def\faTwitterSquare {{\FA\csname faicon@twitter-square\endcsname}} 134 | \expandafter\def\csname faicon@cebook-square\endcsname {\symbol{"F082}} \def\faFacebookSquare {{\FA\csname faicon@cebook-square\endcsname}} 135 | \expandafter\def\csname faicon@camera-retro\endcsname {\symbol{"F083}} \def\faCameraRetro {{\FA\csname faicon@camera-retro\endcsname}} 136 | \expandafter\def\csname faicon@key\endcsname {\symbol{"F084}} \def\faKey {{\FA\csname faicon@key\endcsname}} 137 | \expandafter\def\csname faicon@cogs\endcsname {\symbol{"F085}} \def\faCogs {{\FA\csname faicon@cogs\endcsname}} 138 | \expandafter\def\csname faicon@comments\endcsname {\symbol{"F086}} \def\faComments {{\FA\csname faicon@comments\endcsname}} 139 | \expandafter\def\csname faicon@thumbs-o-up\endcsname {\symbol{"F087}} \def\faThumbsOUp {{\FA\csname faicon@thumbs-o-up\endcsname}} 140 | \expandafter\def\csname faicon@thumbs-o-down\endcsname {\symbol{"F088}} \def\faThumbsODown {{\FA\csname faicon@thumbs-o-down\endcsname}} 141 | \expandafter\def\csname faicon@star-half\endcsname {\symbol{"F089}} \def\faStarHalf {{\FA\csname faicon@star-half\endcsname}} 142 | \expandafter\def\csname faicon@heart-o\endcsname {\symbol{"F08A}} \def\faHeartO {{\FA\csname faicon@heart-o\endcsname}} 143 | \expandafter\def\csname faicon@sign-out\endcsname {\symbol{"F08B}} \def\faSignOut {{\FA\csname faicon@sign-out\endcsname}} 144 | \expandafter\def\csname faicon@linkedin-square\endcsname {\symbol{"F08C}} \def\faLinkedinSquare {{\FA\csname faicon@linkedin-square\endcsname}} 145 | \expandafter\def\csname faicon@thumb-tack\endcsname {\symbol{"F08D}} \def\faThumbTack {{\FA\csname faicon@thumb-tack\endcsname}} 146 | \expandafter\def\csname faicon@external-link\endcsname {\symbol{"F08E}} \def\faExternalLink {{\FA\csname faicon@external-link\endcsname}} 147 | \expandafter\def\csname faicon@sign-in\endcsname {\symbol{"F090}} \def\faSignIn {{\FA\csname faicon@sign-in\endcsname}} 148 | \expandafter\def\csname faicon@trophy\endcsname {\symbol{"F091}} \def\faTrophy {{\FA\csname faicon@trophy\endcsname}} 149 | \expandafter\def\csname faicon@github-square\endcsname {\symbol{"F092}} \def\faGithubSquare {{\FA\csname faicon@github-square\endcsname}} 150 | \expandafter\def\csname faicon@upload\endcsname {\symbol{"F093}} \def\faUpload {{\FA\csname faicon@upload\endcsname}} 151 | \expandafter\def\csname faicon@lemon-o\endcsname {\symbol{"F094}} \def\faLemonO {{\FA\csname faicon@lemon-o\endcsname}} 152 | \expandafter\def\csname faicon@phone\endcsname {\symbol{"F095}} \def\faPhone {{\FA\csname faicon@phone\endcsname}} 153 | \expandafter\def\csname faicon@square-o\endcsname {\symbol{"F096}} \def\faSquareO {{\FA\csname faicon@square-o\endcsname}} 154 | \expandafter\def\csname faicon@bookmark-o\endcsname {\symbol{"F097}} \def\faBookmarkO {{\FA\csname faicon@bookmark-o\endcsname}} 155 | \expandafter\def\csname faicon@phone-square\endcsname {\symbol{"F098}} \def\faPhoneSquare {{\FA\csname faicon@phone-square\endcsname}} 156 | \expandafter\def\csname faicon@twitter\endcsname {\symbol{"F099}} \def\faTwitter {{\FA\csname faicon@twitter\endcsname}} 157 | \expandafter\def\csname faicon@cebook\endcsname {\symbol{"F09A}} \def\faFacebook {{\FA\csname faicon@cebook\endcsname}} 158 | \expandafter\def\csname faicon@github\endcsname {\symbol{"F09B}} \def\faGithub {{\FA\csname faicon@github\endcsname}} 159 | \expandafter\def\csname faicon@unlock\endcsname {\symbol{"F09C}} \def\faUnlock {{\FA\csname faicon@unlock\endcsname}} 160 | \expandafter\def\csname faicon@credit-card\endcsname {\symbol{"F09D}} \def\faCreditCard {{\FA\csname faicon@credit-card\endcsname}} 161 | \expandafter\def\csname faicon@rss\endcsname {\symbol{"F09E}} \def\faRss {{\FA\csname faicon@rss\endcsname}} 162 | \expandafter\def\csname faicon@hdd-o\endcsname {\symbol{"F0A0}} \def\faHddO {{\FA\csname faicon@hdd-o\endcsname}} 163 | \expandafter\def\csname faicon@bullhorn\endcsname {\symbol{"F0A1}} \def\faBullhorn {{\FA\csname faicon@bullhorn\endcsname}} 164 | \expandafter\def\csname faicon@bell\endcsname {\symbol{"F0F3}} \def\faBell {{\FA\csname faicon@bell\endcsname}} 165 | \expandafter\def\csname faicon@certificate\endcsname {\symbol{"F0A3}} \def\faCertificate {{\FA\csname faicon@certificate\endcsname}} 166 | \expandafter\def\csname faicon@hand-o-right\endcsname {\symbol{"F0A4}} \def\faHandORight {{\FA\csname faicon@hand-o-right\endcsname}} 167 | \expandafter\def\csname faicon@hand-o-left\endcsname {\symbol{"F0A5}} \def\faHandOLeft {{\FA\csname faicon@hand-o-left\endcsname}} 168 | \expandafter\def\csname faicon@hand-o-up\endcsname {\symbol{"F0A6}} \def\faHandOUp {{\FA\csname faicon@hand-o-up\endcsname}} 169 | \expandafter\def\csname faicon@hand-o-down\endcsname {\symbol{"F0A7}} \def\faHandODown {{\FA\csname faicon@hand-o-down\endcsname}} 170 | \expandafter\def\csname faicon@rrow-circle-left\endcsname {\symbol{"F0A8}} \def\faArrowCircleLeft {{\FA\csname faicon@rrow-circle-left\endcsname}} 171 | \expandafter\def\csname faicon@rrow-circle-right\endcsname {\symbol{"F0A9}} \def\faArrowCircleRight {{\FA\csname faicon@rrow-circle-right\endcsname}} 172 | \expandafter\def\csname faicon@rrow-circle-up\endcsname {\symbol{"F0AA}} \def\faArrowCircleUp {{\FA\csname faicon@rrow-circle-up\endcsname}} 173 | \expandafter\def\csname faicon@rrow-circle-down\endcsname {\symbol{"F0AB}} \def\faArrowCircleDown {{\FA\csname faicon@rrow-circle-down\endcsname}} 174 | \expandafter\def\csname faicon@globe\endcsname {\symbol{"F0AC}} \def\faGlobe {{\FA\csname faicon@globe\endcsname}} 175 | \expandafter\def\csname faicon@wrench\endcsname {\symbol{"F0AD}} \def\faWrench {{\FA\csname faicon@wrench\endcsname}} 176 | \expandafter\def\csname faicon@tasks\endcsname {\symbol{"F0AE}} \def\faTasks {{\FA\csname faicon@tasks\endcsname}} 177 | \expandafter\def\csname faicon@ilter\endcsname {\symbol{"F0B0}} \def\faFilter {{\FA\csname faicon@ilter\endcsname}} 178 | \expandafter\def\csname faicon@briefcase\endcsname {\symbol{"F0B1}} \def\faBriefcase {{\FA\csname faicon@briefcase\endcsname}} 179 | \expandafter\def\csname faicon@rrows-alt\endcsname {\symbol{"F0B2}} \def\faArrowsAlt {{\FA\csname faicon@rrows-alt\endcsname}} 180 | \expandafter\def\csname faicon@users\endcsname {\symbol{"F0C0}} \def\faUsers {{\FA\csname faicon@users\endcsname}} 181 | \expandafter\def\csname faicon@link\endcsname {\symbol{"F0C1}} \def\faLink {{\FA\csname faicon@link\endcsname}} 182 | \expandafter\def\csname faicon@cloud\endcsname {\symbol{"F0C2}} \def\faCloud {{\FA\csname faicon@cloud\endcsname}} 183 | \expandafter\def\csname faicon@lask\endcsname {\symbol{"F0C3}} \def\faFlask {{\FA\csname faicon@lask\endcsname}} 184 | \expandafter\def\csname faicon@scissors\endcsname {\symbol{"F0C4}} \def\faScissors {{\FA\csname faicon@scissors\endcsname}} 185 | \expandafter\def\csname faicon@iles-o\endcsname {\symbol{"F0C5}} \def\faFilesO {{\FA\csname faicon@iles-o\endcsname}} 186 | \expandafter\def\csname faicon@paperclip\endcsname {\symbol{"F0C6}} \def\faPaperclip {{\FA\csname faicon@paperclip\endcsname}} 187 | \expandafter\def\csname faicon@loppy-o\endcsname {\symbol{"F0C7}} \def\faFloppyO {{\FA\csname faicon@loppy-o\endcsname}} 188 | \expandafter\def\csname faicon@square\endcsname {\symbol{"F0C8}} \def\faSquare {{\FA\csname faicon@square\endcsname}} 189 | \expandafter\def\csname faicon@bars\endcsname {\symbol{"F0C9}} \def\faBars {{\FA\csname faicon@bars\endcsname}} 190 | \expandafter\def\csname faicon@list-ul\endcsname {\symbol{"F0CA}} \def\faListUl {{\FA\csname faicon@list-ul\endcsname}} 191 | \expandafter\def\csname faicon@list-ol\endcsname {\symbol{"F0CB}} \def\faListOl {{\FA\csname faicon@list-ol\endcsname}} 192 | \expandafter\def\csname faicon@strikethrough\endcsname {\symbol{"F0CC}} \def\faStrikethrough {{\FA\csname faicon@strikethrough\endcsname}} 193 | \expandafter\def\csname faicon@underline\endcsname {\symbol{"F0CD}} \def\faUnderline {{\FA\csname faicon@underline\endcsname}} 194 | \expandafter\def\csname faicon@table\endcsname {\symbol{"F0CE}} \def\faTable {{\FA\csname faicon@table\endcsname}} 195 | \expandafter\def\csname faicon@magic\endcsname {\symbol{"F0D0}} \def\faMagic {{\FA\csname faicon@magic\endcsname}} 196 | \expandafter\def\csname faicon@truck\endcsname {\symbol{"F0D1}} \def\faTruck {{\FA\csname faicon@truck\endcsname}} 197 | \expandafter\def\csname faicon@pinterest\endcsname {\symbol{"F0D2}} \def\faPinterest {{\FA\csname faicon@pinterest\endcsname}} 198 | \expandafter\def\csname faicon@pinterest-square\endcsname {\symbol{"F0D3}} \def\faPinterestSquare {{\FA\csname faicon@pinterest-square\endcsname}} 199 | \expandafter\def\csname faicon@google-plus-square\endcsname {\symbol{"F0D4}} \def\faGooglePlusSquare {{\FA\csname faicon@google-plus-square\endcsname}} 200 | \expandafter\def\csname faicon@google-plus\endcsname {\symbol{"F0D5}} \def\faGooglePlus {{\FA\csname faicon@google-plus\endcsname}} 201 | \expandafter\def\csname faicon@money\endcsname {\symbol{"F0D6}} \def\faMoney {{\FA\csname faicon@money\endcsname}} 202 | \expandafter\def\csname faicon@caret-down\endcsname {\symbol{"F0D7}} \def\faCaretDown {{\FA\csname faicon@caret-down\endcsname}} 203 | \expandafter\def\csname faicon@caret-up\endcsname {\symbol{"F0D8}} \def\faCaretUp {{\FA\csname faicon@caret-up\endcsname}} 204 | \expandafter\def\csname faicon@caret-left\endcsname {\symbol{"F0D9}} \def\faCaretLeft {{\FA\csname faicon@caret-left\endcsname}} 205 | \expandafter\def\csname faicon@caret-right\endcsname {\symbol{"F0DA}} \def\faCaretRight {{\FA\csname faicon@caret-right\endcsname}} 206 | \expandafter\def\csname faicon@columns\endcsname {\symbol{"F0DB}} \def\faColumns {{\FA\csname faicon@columns\endcsname}} 207 | \expandafter\def\csname faicon@sort\endcsname {\symbol{"F0DC}} \def\faSort {{\FA\csname faicon@sort\endcsname}} 208 | \expandafter\def\csname faicon@sort-asc\endcsname {\symbol{"F0DD}} \def\faSortAsc {{\FA\csname faicon@sort-asc\endcsname}} 209 | \expandafter\def\csname faicon@sort-desc\endcsname {\symbol{"F0DE}} \def\faSortDesc {{\FA\csname faicon@sort-desc\endcsname}} 210 | \expandafter\def\csname faicon@envelope\endcsname {\symbol{"F0E0}} \def\faEnvelope {{\FA\csname faicon@envelope\endcsname}} 211 | \expandafter\def\csname faicon@linkedin\endcsname {\symbol{"F0E1}} \def\faLinkedin {{\FA\csname faicon@linkedin\endcsname}} 212 | \expandafter\def\csname faicon@undo\endcsname {\symbol{"F0E2}} \def\faUndo {{\FA\csname faicon@undo\endcsname}} 213 | \expandafter\def\csname faicon@gavel\endcsname {\symbol{"F0E3}} \def\faGavel {{\FA\csname faicon@gavel\endcsname}} 214 | \expandafter\def\csname faicon@tachometer\endcsname {\symbol{"F0E4}} \def\faTachometer {{\FA\csname faicon@tachometer\endcsname}} 215 | \expandafter\def\csname faicon@comment-o\endcsname {\symbol{"F0E5}} \def\faCommentO {{\FA\csname faicon@comment-o\endcsname}} 216 | \expandafter\def\csname faicon@comments-o\endcsname {\symbol{"F0E6}} \def\faCommentsO {{\FA\csname faicon@comments-o\endcsname}} 217 | \expandafter\def\csname faicon@bolt\endcsname {\symbol{"F0E7}} \def\faBolt {{\FA\csname faicon@bolt\endcsname}} 218 | \expandafter\def\csname faicon@sitemap\endcsname {\symbol{"F0E8}} \def\faSitemap {{\FA\csname faicon@sitemap\endcsname}} 219 | \expandafter\def\csname faicon@umbrella\endcsname {\symbol{"F0E9}} \def\faUmbrella {{\FA\csname faicon@umbrella\endcsname}} 220 | \expandafter\def\csname faicon@clipboard\endcsname {\symbol{"F0EA}} \def\faClipboard {{\FA\csname faicon@clipboard\endcsname}} 221 | \expandafter\def\csname faicon@lightbulb-o\endcsname {\symbol{"F0EB}} \def\faLightbulbO {{\FA\csname faicon@lightbulb-o\endcsname}} 222 | \expandafter\def\csname faicon@exchange\endcsname {\symbol{"F0EC}} \def\faExchange {{\FA\csname faicon@exchange\endcsname}} 223 | \expandafter\def\csname faicon@cloud-download\endcsname {\symbol{"F0ED}} \def\faCloudDownload {{\FA\csname faicon@cloud-download\endcsname}} 224 | \expandafter\def\csname faicon@cloud-upload\endcsname {\symbol{"F0EE}} \def\faCloudUpload {{\FA\csname faicon@cloud-upload\endcsname}} 225 | \expandafter\def\csname faicon@user-md\endcsname {\symbol{"F0F0}} \def\faUserMd {{\FA\csname faicon@user-md\endcsname}} 226 | \expandafter\def\csname faicon@stethoscope\endcsname {\symbol{"F0F1}} \def\faStethoscope {{\FA\csname faicon@stethoscope\endcsname}} 227 | \expandafter\def\csname faicon@suitcase\endcsname {\symbol{"F0F2}} \def\faSuitcase {{\FA\csname faicon@suitcase\endcsname}} 228 | \expandafter\def\csname faicon@bell-o\endcsname {\symbol{"F0A2}} \def\faBellO {{\FA\csname faicon@bell-o\endcsname}} 229 | \expandafter\def\csname faicon@coffee\endcsname {\symbol{"F0F4}} \def\faCoffee {{\FA\csname faicon@coffee\endcsname}} 230 | \expandafter\def\csname faicon@cutlery\endcsname {\symbol{"F0F5}} \def\faCutlery {{\FA\csname faicon@cutlery\endcsname}} 231 | \expandafter\def\csname faicon@ile-text-o\endcsname {\symbol{"F0F6}} \def\faFileTextO {{\FA\csname faicon@ile-text-o\endcsname}} 232 | \expandafter\def\csname faicon@building-o\endcsname {\symbol{"F0F7}} \def\faBuildingO {{\FA\csname faicon@building-o\endcsname}} 233 | \expandafter\def\csname faicon@hospital-o\endcsname {\symbol{"F0F8}} \def\faHospitalO {{\FA\csname faicon@hospital-o\endcsname}} 234 | \expandafter\def\csname faicon@mbulance\endcsname {\symbol{"F0F9}} \def\faAmbulance {{\FA\csname faicon@mbulance\endcsname}} 235 | \expandafter\def\csname faicon@medkit\endcsname {\symbol{"F0FA}} \def\faMedkit {{\FA\csname faicon@medkit\endcsname}} 236 | \expandafter\def\csname faicon@ighter-jet\endcsname {\symbol{"F0FB}} \def\faFighterJet {{\FA\csname faicon@ighter-jet\endcsname}} 237 | \expandafter\def\csname faicon@beer\endcsname {\symbol{"F0FC}} \def\faBeer {{\FA\csname faicon@beer\endcsname}} 238 | \expandafter\def\csname faicon@h-square\endcsname {\symbol{"F0FD}} \def\faHSquare {{\FA\csname faicon@h-square\endcsname}} 239 | \expandafter\def\csname faicon@plus-square\endcsname {\symbol{"F0FE}} \def\faPlusSquare {{\FA\csname faicon@plus-square\endcsname}} 240 | \expandafter\def\csname faicon@ngle-double-left\endcsname {\symbol{"F100}} \def\faAngleDoubleLeft {{\FA\csname faicon@ngle-double-left\endcsname}} 241 | \expandafter\def\csname faicon@ngle-double-right\endcsname {\symbol{"F101}} \def\faAngleDoubleRight {{\FA\csname faicon@ngle-double-right\endcsname}} 242 | \expandafter\def\csname faicon@ngle-double-up\endcsname {\symbol{"F102}} \def\faAngleDoubleUp {{\FA\csname faicon@ngle-double-up\endcsname}} 243 | \expandafter\def\csname faicon@ngle-double-down\endcsname {\symbol{"F103}} \def\faAngleDoubleDown {{\FA\csname faicon@ngle-double-down\endcsname}} 244 | \expandafter\def\csname faicon@ngle-left\endcsname {\symbol{"F104}} \def\faAngleLeft {{\FA\csname faicon@ngle-left\endcsname}} 245 | \expandafter\def\csname faicon@ngle-right\endcsname {\symbol{"F105}} \def\faAngleRight {{\FA\csname faicon@ngle-right\endcsname}} 246 | \expandafter\def\csname faicon@ngle-up\endcsname {\symbol{"F106}} \def\faAngleUp {{\FA\csname faicon@ngle-up\endcsname}} 247 | \expandafter\def\csname faicon@ngle-down\endcsname {\symbol{"F107}} \def\faAngleDown {{\FA\csname faicon@ngle-down\endcsname}} 248 | \expandafter\def\csname faicon@desktop\endcsname {\symbol{"F108}} \def\faDesktop {{\FA\csname faicon@desktop\endcsname}} 249 | \expandafter\def\csname faicon@laptop\endcsname {\symbol{"F109}} \def\faLaptop {{\FA\csname faicon@laptop\endcsname}} 250 | \expandafter\def\csname faicon@tablet\endcsname {\symbol{"F10A}} \def\faTablet {{\FA\csname faicon@tablet\endcsname}} 251 | \expandafter\def\csname faicon@mobile\endcsname {\symbol{"F10B}} \def\faMobile {{\FA\csname faicon@mobile\endcsname}} 252 | \expandafter\def\csname faicon@circle-o\endcsname {\symbol{"F10C}} \def\faCircleO {{\FA\csname faicon@circle-o\endcsname}} 253 | \expandafter\def\csname faicon@quote-left\endcsname {\symbol{"F10D}} \def\faQuoteLeft {{\FA\csname faicon@quote-left\endcsname}} 254 | \expandafter\def\csname faicon@quote-right\endcsname {\symbol{"F10E}} \def\faQuoteRight {{\FA\csname faicon@quote-right\endcsname}} 255 | \expandafter\def\csname faicon@spinner\endcsname {\symbol{"F110}} \def\faSpinner {{\FA\csname faicon@spinner\endcsname}} 256 | \expandafter\def\csname faicon@circle\endcsname {\symbol{"F111}} \def\faCircle {{\FA\csname faicon@circle\endcsname}} 257 | \expandafter\def\csname faicon@reply\endcsname {\symbol{"F112}} \def\faReply {{\FA\csname faicon@reply\endcsname}} 258 | \expandafter\def\csname faicon@github-alt\endcsname {\symbol{"F113}} \def\faGithubAlt {{\FA\csname faicon@github-alt\endcsname}} 259 | \expandafter\def\csname faicon@older-o\endcsname {\symbol{"F114}} \def\faFolderO {{\FA\csname faicon@older-o\endcsname}} 260 | \expandafter\def\csname faicon@older-open-o\endcsname {\symbol{"F115}} \def\faFolderOpenO {{\FA\csname faicon@older-open-o\endcsname}} 261 | \expandafter\def\csname faicon@smile-o\endcsname {\symbol{"F118}} \def\faSmileO {{\FA\csname faicon@smile-o\endcsname}} 262 | \expandafter\def\csname faicon@rown-o\endcsname {\symbol{"F119}} \def\faFrownO {{\FA\csname faicon@rown-o\endcsname}} 263 | \expandafter\def\csname faicon@meh-o\endcsname {\symbol{"F11A}} \def\faMehO {{\FA\csname faicon@meh-o\endcsname}} 264 | \expandafter\def\csname faicon@gamepad\endcsname {\symbol{"F11B}} \def\faGamepad {{\FA\csname faicon@gamepad\endcsname}} 265 | \expandafter\def\csname faicon@keyboard-o\endcsname {\symbol{"F11C}} \def\faKeyboardO {{\FA\csname faicon@keyboard-o\endcsname}} 266 | \expandafter\def\csname faicon@lag-o\endcsname {\symbol{"F11D}} \def\faFlagO {{\FA\csname faicon@lag-o\endcsname}} 267 | \expandafter\def\csname faicon@lag-checkered\endcsname {\symbol{"F11E}} \def\faFlagCheckered {{\FA\csname faicon@lag-checkered\endcsname}} 268 | \expandafter\def\csname faicon@terminal\endcsname {\symbol{"F120}} \def\faTerminal {{\FA\csname faicon@terminal\endcsname}} 269 | \expandafter\def\csname faicon@code\endcsname {\symbol{"F121}} \def\faCode {{\FA\csname faicon@code\endcsname}} 270 | \expandafter\def\csname faicon@reply-all\endcsname {\symbol{"F122}} \def\faReplyAll {{\FA\csname faicon@reply-all\endcsname}} 271 | \expandafter\def\csname faicon@mail-reply-all\endcsname {\symbol{"F122}} \def\faMailReplyAll {{\FA\csname faicon@mail-reply-all\endcsname}} 272 | \expandafter\def\csname faicon@star-half-o\endcsname {\symbol{"F123}} \def\faStarHalfO {{\FA\csname faicon@star-half-o\endcsname}} 273 | \expandafter\def\csname faicon@location-arrow\endcsname {\symbol{"F124}} \def\faLocationArrow {{\FA\csname faicon@location-arrow\endcsname}} 274 | \expandafter\def\csname faicon@crop\endcsname {\symbol{"F125}} \def\faCrop {{\FA\csname faicon@crop\endcsname}} 275 | \expandafter\def\csname faicon@code-fork\endcsname {\symbol{"F126}} \def\faCodeFork {{\FA\csname faicon@code-fork\endcsname}} 276 | \expandafter\def\csname faicon@chain-broken\endcsname {\symbol{"F127}} \def\faChainBroken {{\FA\csname faicon@chain-broken\endcsname}} 277 | \expandafter\def\csname faicon@question\endcsname {\symbol{"F128}} \def\faQuestion {{\FA\csname faicon@question\endcsname}} 278 | \expandafter\def\csname faicon@info\endcsname {\symbol{"F129}} \def\faInfo {{\FA\csname faicon@info\endcsname}} 279 | \expandafter\def\csname faicon@exclamation\endcsname {\symbol{"F12A}} \def\faExclamation {{\FA\csname faicon@exclamation\endcsname}} 280 | \expandafter\def\csname faicon@superscript\endcsname {\symbol{"F12B}} \def\faSuperscript {{\FA\csname faicon@superscript\endcsname}} 281 | \expandafter\def\csname faicon@subscript\endcsname {\symbol{"F12C}} \def\faSubscript {{\FA\csname faicon@subscript\endcsname}} 282 | \expandafter\def\csname faicon@eraser\endcsname {\symbol{"F12D}} \def\faEraser {{\FA\csname faicon@eraser\endcsname}} 283 | \expandafter\def\csname faicon@puzzle-piece\endcsname {\symbol{"F12E}} \def\faPuzzlePiece {{\FA\csname faicon@puzzle-piece\endcsname}} 284 | \expandafter\def\csname faicon@microphone\endcsname {\symbol{"F130}} \def\faMicrophone {{\FA\csname faicon@microphone\endcsname}} 285 | \expandafter\def\csname faicon@microphone-slash\endcsname {\symbol{"F131}} \def\faMicrophoneSlash {{\FA\csname faicon@microphone-slash\endcsname}} 286 | \expandafter\def\csname faicon@shield\endcsname {\symbol{"F132}} \def\faShield {{\FA\csname faicon@shield\endcsname}} 287 | \expandafter\def\csname faicon@calendar-o\endcsname {\symbol{"F133}} \def\faCalendarO {{\FA\csname faicon@calendar-o\endcsname}} 288 | \expandafter\def\csname faicon@ire-extinguisher\endcsname {\symbol{"F134}} \def\faFireExtinguisher {{\FA\csname faicon@ire-extinguisher\endcsname}} 289 | \expandafter\def\csname faicon@rocket\endcsname {\symbol{"F135}} \def\faRocket {{\FA\csname faicon@rocket\endcsname}} 290 | \expandafter\def\csname faicon@maxcdn\endcsname {\symbol{"F136}} \def\faMaxcdn {{\FA\csname faicon@maxcdn\endcsname}} 291 | \expandafter\def\csname faicon@chevron-circle-left\endcsname {\symbol{"F137}} \def\faChevronCircleLeft {{\FA\csname faicon@chevron-circle-left\endcsname}} 292 | \expandafter\def\csname faicon@chevron-circle-right\endcsname {\symbol{"F138}} \def\faChevronCircleRight {{\FA\csname faicon@chevron-circle-right\endcsname}} 293 | \expandafter\def\csname faicon@chevron-circle-up\endcsname {\symbol{"F139}} \def\faChevronCircleUp {{\FA\csname faicon@chevron-circle-up\endcsname}} 294 | \expandafter\def\csname faicon@chevron-circle-down\endcsname {\symbol{"F13A}} \def\faChevronCircleDown {{\FA\csname faicon@chevron-circle-down\endcsname}} 295 | \expandafter\def\csname faicon@html5\endcsname {\symbol{"F13B}} \def\faHtml5 {{\FA\csname faicon@html5\endcsname}} 296 | \expandafter\def\csname faicon@css3\endcsname {\symbol{"F13C}} \def\faCss3 {{\FA\csname faicon@css3\endcsname}} 297 | \expandafter\def\csname faicon@nchor\endcsname {\symbol{"F13D}} \def\faAnchor {{\FA\csname faicon@nchor\endcsname}} 298 | \expandafter\def\csname faicon@unlock-alt\endcsname {\symbol{"F13E}} \def\faUnlockAlt {{\FA\csname faicon@unlock-alt\endcsname}} 299 | \expandafter\def\csname faicon@bullseye\endcsname {\symbol{"F140}} \def\faBullseye {{\FA\csname faicon@bullseye\endcsname}} 300 | \expandafter\def\csname faicon@ellipsis-h\endcsname {\symbol{"F141}} \def\faEllipsisH {{\FA\csname faicon@ellipsis-h\endcsname}} 301 | \expandafter\def\csname faicon@ellipsis-v\endcsname {\symbol{"F142}} \def\faEllipsisV {{\FA\csname faicon@ellipsis-v\endcsname}} 302 | \expandafter\def\csname faicon@rss-square\endcsname {\symbol{"F143}} \def\faRssSquare {{\FA\csname faicon@rss-square\endcsname}} 303 | \expandafter\def\csname faicon@play-circle\endcsname {\symbol{"F144}} \def\faPlayCircle {{\FA\csname faicon@play-circle\endcsname}} 304 | \expandafter\def\csname faicon@ticket\endcsname {\symbol{"F145}} \def\faTicket {{\FA\csname faicon@ticket\endcsname}} 305 | \expandafter\def\csname faicon@minus-square\endcsname {\symbol{"F146}} \def\faMinusSquare {{\FA\csname faicon@minus-square\endcsname}} 306 | \expandafter\def\csname faicon@minus-square-o\endcsname {\symbol{"F147}} \def\faMinusSquareO {{\FA\csname faicon@minus-square-o\endcsname}} 307 | \expandafter\def\csname faicon@level-up\endcsname {\symbol{"F148}} \def\faLevelUp {{\FA\csname faicon@level-up\endcsname}} 308 | \expandafter\def\csname faicon@level-down\endcsname {\symbol{"F149}} \def\faLevelDown {{\FA\csname faicon@level-down\endcsname}} 309 | \expandafter\def\csname faicon@check-square\endcsname {\symbol{"F14A}} \def\faCheckSquare {{\FA\csname faicon@check-square\endcsname}} 310 | \expandafter\def\csname faicon@pencil-square\endcsname {\symbol{"F14B}} \def\faPencilSquare {{\FA\csname faicon@pencil-square\endcsname}} 311 | \expandafter\def\csname faicon@external-link-square\endcsname {\symbol{"F14C}} \def\faExternalLinkSquare {{\FA\csname faicon@external-link-square\endcsname}} 312 | \expandafter\def\csname faicon@share-square\endcsname {\symbol{"F14D}} \def\faShareSquare {{\FA\csname faicon@share-square\endcsname}} 313 | \expandafter\def\csname faicon@compass\endcsname {\symbol{"F14E}} \def\faCompass {{\FA\csname faicon@compass\endcsname}} 314 | \expandafter\def\csname faicon@caret-square-o-down\endcsname {\symbol{"F150}} \def\faCaretSquareODown {{\FA\csname faicon@caret-square-o-down\endcsname}} 315 | \expandafter\def\csname faicon@caret-square-o-up\endcsname {\symbol{"F151}} \def\faCaretSquareOUp {{\FA\csname faicon@caret-square-o-up\endcsname}} 316 | \expandafter\def\csname faicon@caret-square-o-right\endcsname {\symbol{"F152}} \def\faCaretSquareORight {{\FA\csname faicon@caret-square-o-right\endcsname}} 317 | \expandafter\def\csname faicon@eur\endcsname {\symbol{"F153}} \def\faEur {{\FA\csname faicon@eur\endcsname}} 318 | \expandafter\def\csname faicon@gbp\endcsname {\symbol{"F154}} \def\faGbp {{\FA\csname faicon@gbp\endcsname}} 319 | \expandafter\def\csname faicon@usd\endcsname {\symbol{"F155}} \def\faUsd {{\FA\csname faicon@usd\endcsname}} 320 | \expandafter\def\csname faicon@inr\endcsname {\symbol{"F156}} \def\faInr {{\FA\csname faicon@inr\endcsname}} 321 | \expandafter\def\csname faicon@jpy\endcsname {\symbol{"F157}} \def\faJpy {{\FA\csname faicon@jpy\endcsname}} 322 | \expandafter\def\csname faicon@rub\endcsname {\symbol{"F158}} \def\faRub {{\FA\csname faicon@rub\endcsname}} 323 | \expandafter\def\csname faicon@krw\endcsname {\symbol{"F159}} \def\faKrw {{\FA\csname faicon@krw\endcsname}} 324 | \expandafter\def\csname faicon@btc\endcsname {\symbol{"F15A}} \def\faBtc {{\FA\csname faicon@btc\endcsname}} 325 | \expandafter\def\csname faicon@ile\endcsname {\symbol{"F15B}} \def\faFile {{\FA\csname faicon@ile\endcsname}} 326 | \expandafter\def\csname faicon@ile-text\endcsname {\symbol{"F15C}} \def\faFileText {{\FA\csname faicon@ile-text\endcsname}} 327 | \expandafter\def\csname faicon@sort-alpha-asc\endcsname {\symbol{"F15D}} \def\faSortAlphaAsc {{\FA\csname faicon@sort-alpha-asc\endcsname}} 328 | \expandafter\def\csname faicon@sort-alpha-desc\endcsname {\symbol{"F15E}} \def\faSortAlphaDesc {{\FA\csname faicon@sort-alpha-desc\endcsname}} 329 | \expandafter\def\csname faicon@sort-amount-asc\endcsname {\symbol{"F160}} \def\faSortAmountAsc {{\FA\csname faicon@sort-amount-asc\endcsname}} 330 | \expandafter\def\csname faicon@sort-amount-desc\endcsname {\symbol{"F161}} \def\faSortAmountDesc {{\FA\csname faicon@sort-amount-desc\endcsname}} 331 | \expandafter\def\csname faicon@sort-numeric-asc\endcsname {\symbol{"F162}} \def\faSortNumericAsc {{\FA\csname faicon@sort-numeric-asc\endcsname}} 332 | \expandafter\def\csname faicon@sort-numeric-desc\endcsname {\symbol{"F163}} \def\faSortNumericDesc {{\FA\csname faicon@sort-numeric-desc\endcsname}} 333 | \expandafter\def\csname faicon@thumbs-up\endcsname {\symbol{"F164}} \def\faThumbsUp {{\FA\csname faicon@thumbs-up\endcsname}} 334 | \expandafter\def\csname faicon@thumbs-down\endcsname {\symbol{"F165}} \def\faThumbsDown {{\FA\csname faicon@thumbs-down\endcsname}} 335 | \expandafter\def\csname faicon@youtube-square\endcsname {\symbol{"F166}} \def\faYoutubeSquare {{\FA\csname faicon@youtube-square\endcsname}} 336 | \expandafter\def\csname faicon@youtube\endcsname {\symbol{"F167}} \def\faYoutube {{\FA\csname faicon@youtube\endcsname}} 337 | \expandafter\def\csname faicon@xing\endcsname {\symbol{"F168}} \def\faXing {{\FA\csname faicon@xing\endcsname}} 338 | \expandafter\def\csname faicon@xing-square\endcsname {\symbol{"F169}} \def\faXingSquare {{\FA\csname faicon@xing-square\endcsname}} 339 | \expandafter\def\csname faicon@youtube-play\endcsname {\symbol{"F16A}} \def\faYoutubePlay {{\FA\csname faicon@youtube-play\endcsname}} 340 | \expandafter\def\csname faicon@dropbox\endcsname {\symbol{"F16B}} \def\faDropbox {{\FA\csname faicon@dropbox\endcsname}} 341 | \expandafter\def\csname faicon@stack-overflow\endcsname {\symbol{"F16C}} \def\faStackOverflow {{\FA\csname faicon@stack-overflow\endcsname}} 342 | \expandafter\def\csname faicon@instagram\endcsname {\symbol{"F16D}} \def\faInstagram {{\FA\csname faicon@instagram\endcsname}} 343 | \expandafter\def\csname faicon@lickr\endcsname {\symbol{"F16E}} \def\faFlickr {{\FA\csname faicon@lickr\endcsname}} 344 | \expandafter\def\csname faicon@dn\endcsname {\symbol{"F170}} \def\faAdn {{\FA\csname faicon@dn\endcsname}} 345 | \expandafter\def\csname faicon@bitbucket\endcsname {\symbol{"F171}} \def\faBitbucket {{\FA\csname faicon@bitbucket\endcsname}} 346 | \expandafter\def\csname faicon@bitbucket-square\endcsname {\symbol{"F172}} \def\faBitbucketSquare {{\FA\csname faicon@bitbucket-square\endcsname}} 347 | \expandafter\def\csname faicon@tumblr\endcsname {\symbol{"F173}} \def\faTumblr {{\FA\csname faicon@tumblr\endcsname}} 348 | \expandafter\def\csname faicon@tumblr-square\endcsname {\symbol{"F174}} \def\faTumblrSquare {{\FA\csname faicon@tumblr-square\endcsname}} 349 | \expandafter\def\csname faicon@long-arrow-down\endcsname {\symbol{"F175}} \def\faLongArrowDown {{\FA\csname faicon@long-arrow-down\endcsname}} 350 | \expandafter\def\csname faicon@long-arrow-up\endcsname {\symbol{"F176}} \def\faLongArrowUp {{\FA\csname faicon@long-arrow-up\endcsname}} 351 | \expandafter\def\csname faicon@long-arrow-left\endcsname {\symbol{"F177}} \def\faLongArrowLeft {{\FA\csname faicon@long-arrow-left\endcsname}} 352 | \expandafter\def\csname faicon@long-arrow-right\endcsname {\symbol{"F178}} \def\faLongArrowRight {{\FA\csname faicon@long-arrow-right\endcsname}} 353 | \expandafter\def\csname faicon@pple\endcsname {\symbol{"F179}} \def\faApple {{\FA\csname faicon@pple\endcsname}} 354 | \expandafter\def\csname faicon@windows\endcsname {\symbol{"F17A}} \def\faWindows {{\FA\csname faicon@windows\endcsname}} 355 | \expandafter\def\csname faicon@ndroid\endcsname {\symbol{"F17B}} \def\faAndroid {{\FA\csname faicon@ndroid\endcsname}} 356 | \expandafter\def\csname faicon@linux\endcsname {\symbol{"F17C}} \def\faLinux {{\FA\csname faicon@linux\endcsname}} 357 | \expandafter\def\csname faicon@dribbble\endcsname {\symbol{"F17D}} \def\faDribbble {{\FA\csname faicon@dribbble\endcsname}} 358 | \expandafter\def\csname faicon@skype\endcsname {\symbol{"F17E}} \def\faSkype {{\FA\csname faicon@skype\endcsname}} 359 | \expandafter\def\csname faicon@oursquare\endcsname {\symbol{"F180}} \def\faFoursquare {{\FA\csname faicon@oursquare\endcsname}} 360 | \expandafter\def\csname faicon@trello\endcsname {\symbol{"F181}} \def\faTrello {{\FA\csname faicon@trello\endcsname}} 361 | \expandafter\def\csname faicon@emale\endcsname {\symbol{"F182}} \def\faFemale {{\FA\csname faicon@emale\endcsname}} 362 | \expandafter\def\csname faicon@male\endcsname {\symbol{"F183}} \def\faMale {{\FA\csname faicon@male\endcsname}} 363 | \expandafter\def\csname faicon@gittip\endcsname {\symbol{"F184}} \def\faGittip {{\FA\csname faicon@gittip\endcsname}} 364 | \expandafter\def\csname faicon@sun-o\endcsname {\symbol{"F185}} \def\faSunO {{\FA\csname faicon@sun-o\endcsname}} 365 | \expandafter\def\csname faicon@moon-o\endcsname {\symbol{"F186}} \def\faMoonO {{\FA\csname faicon@moon-o\endcsname}} 366 | \expandafter\def\csname faicon@rchive\endcsname {\symbol{"F187}} \def\faArchive {{\FA\csname faicon@rchive\endcsname}} 367 | \expandafter\def\csname faicon@bug\endcsname {\symbol{"F188}} \def\faBug {{\FA\csname faicon@bug\endcsname}} 368 | \expandafter\def\csname faicon@vk\endcsname {\symbol{"F189}} \def\faVk {{\FA\csname faicon@vk\endcsname}} 369 | \expandafter\def\csname faicon@weibo\endcsname {\symbol{"F18A}} \def\faWeibo {{\FA\csname faicon@weibo\endcsname}} 370 | \expandafter\def\csname faicon@renren\endcsname {\symbol{"F18B}} \def\faRenren {{\FA\csname faicon@renren\endcsname}} 371 | \expandafter\def\csname faicon@pagelines\endcsname {\symbol{"F18C}} \def\faPagelines {{\FA\csname faicon@pagelines\endcsname}} 372 | \expandafter\def\csname faicon@stack-exchange\endcsname {\symbol{"F18D}} \def\faStackExchange {{\FA\csname faicon@stack-exchange\endcsname}} 373 | \expandafter\def\csname faicon@rrow-circle-o-right\endcsname {\symbol{"F18E}} \def\faArrowCircleORight {{\FA\csname faicon@rrow-circle-o-right\endcsname}} 374 | \expandafter\def\csname faicon@rrow-circle-o-left\endcsname {\symbol{"F190}} \def\faArrowCircleOLeft {{\FA\csname faicon@rrow-circle-o-left\endcsname}} 375 | \expandafter\def\csname faicon@caret-square-o-left\endcsname {\symbol{"F191}} \def\faCaretSquareOLeft {{\FA\csname faicon@caret-square-o-left\endcsname}} 376 | \expandafter\def\csname faicon@dot-circle-o\endcsname {\symbol{"F192}} \def\faDotCircleO {{\FA\csname faicon@dot-circle-o\endcsname}} 377 | \expandafter\def\csname faicon@wheelchair\endcsname {\symbol{"F193}} \def\faWheelchair {{\FA\csname faicon@wheelchair\endcsname}} 378 | \expandafter\def\csname faicon@vimeo-square\endcsname {\symbol{"F194}} \def\faVimeoSquare {{\FA\csname faicon@vimeo-square\endcsname}} 379 | \expandafter\def\csname faicon@try\endcsname {\symbol{"F195}} \def\faTry {{\FA\csname faicon@try\endcsname}} 380 | \expandafter\def\csname faicon@plus-square-o\endcsname {\symbol{"F196}} \def\faPlusSquareO {{\FA\csname faicon@plus-square-o\endcsname}} 381 | \endinput 382 | --------------------------------------------------------------------------------