% (The MIT License) % % Copyright (c) 2021 Yegor Bugayenko % % Permission is hereby granted, free of charge, to any person obtaining a copy % of this software and associated documentation files (the 'Software'), to deal % in the Software without restriction, including without limitation the rights % to use, copy, modify, merge, publish, distribute, sublicense, and/or sell % copies of the Software, and to permit persons to whom the Software is % furnished to do so, subject to the following conditions: % % The above copyright notice and this permission notice shall be included in all % copies or substantial portions of the Software. % % THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR % IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, % FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE % AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER % LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE % SOFTWARE. \NeedsTeXFormat{LaTeX2e} \ProvidesClass{huawei}[2021/09/08 0.10.0 Template for Huawei Documents] \newif\ifXL \DeclareOption{XL}{\XLtrue} \newif\ifXXL \DeclareOption{XXL}{\XXLtrue} \newif\ifnosecurity \DeclareOption{nosecurity}{\nosecuritytrue} \newif\ifauthordraft \DeclareOption{authordraft}{\authordrafttrue} \newif\ifnobrand \DeclareOption{nobrand}{\nobrandtrue} \newif\ifnodate \DeclareOption{nodate}{\nodatetrue} \newif\ifnocover \DeclareOption{nocover}{\nocovertrue} \newif\ifnopaging \DeclareOption{nopaging}{\nopagingtrue} \newif\iflandscape \DeclareOption{landscape}{\landscapetrue} \newif\ifanonymous \DeclareOption{anonymous}{\anonymoustrue} \ProcessOptions\relax \LoadClass[12pt]{article} \RequirePackage{geometry} \iflandscape \geometry{paperwidth=16in, paperheight=9in, left=4in, right=2in, top=1.5in, bottom=1.5in} \else \geometry{a4paper, left=1.5in, right=1in, top=1.2in, bottom=1.2in} \fi \RequirePackage[T1]{fontenc} \RequirePackage[utf8]{inputenc} \RequirePackage{CJKutf8} \RequirePackage{tabularx} \RequirePackage{multicol} \RequirePackage{ragged2e} \RequirePackage{multicol} \RequirePackage[mmddyyyy,iso]{datetime} \newtimeformat{daytime}{\twodigit{\THEHOUR}:\twodigit{\THEMINUTE}} \RequirePackage[tt=false,type1=true]{libertine} \RequirePackage{paralist} \RequirePackage{makecell} \RequirePackage[para]{footmisc} \setlength{\footnotemargin}{2pt} \setlength{\footnotesep}{2pt} \RequirePackage{graphicx} \RequirePackage{array} \RequirePackage[hidelinks]{hyperref} % to enable \pageref* command \RequirePackage[abspath]{currfile} \RequirePackage{enumitem} \setlist{nosep} \RequirePackage{microtype} \RequirePackage{wrapfig} \RequirePackage{lastpage} \RequirePackage{setspace} \setstretch{1.08} \RequirePackage[maxnames=1,minnames=1,natbib=true,citestyle=numeric,bibstyle=numeric,doi=false,url=false,isbn=false,isbn=false]{biblatex} \RequirePackage[table]{xcolor} \definecolor{red}{HTML}{CF0A2C} \definecolor{black}{HTML}{232527} \definecolor{gray}{HTML}{878C8F} \definecolor{yellow}{HTML}{F2DC5D} \definecolor{blue}{HTML}{2274A5} \definecolor{green}{HTML}{499167} \RequirePackage{tikz} \RequirePackage{tabularx} \RequirePackage{titling} \RequirePackage{svg} \RequirePackage[absolute]{textpos} \TPGrid{16}{16} % Our custom commands to redefine: \renewcommand\title[1]{\renewcommand\thetitle{#1}} \newcommand\thetitle{Untitled} \newcommand*\thecompany{Huawei Technologies Co., Ltd.} \newcommand\thesubtitle{} \renewcommand\author[1]{\renewcommand\theauthor{#1}} \newcommand\theauthor{Unknown} \newcommand*\thesecurity{Confidential} \newcommand*\theid{} % Custom commands \newcommand\nospell[1]{#1} \newcommand\headers[1]{\setstretch{0.8}{\small\sffamily\color{gray}#1\par}} \newcommand\crumb[2]{\begin{minipage}{\columnwidth}\raggedright\textsc{#1}:\\#2\end{minipage}\vspace{4pt}} \usepackage{titlesec} \ifXL \titleformat*{\section}{\LARGE\bfseries} \titleformat*{\subsection}{\Large\bfseries} \titleformat*{\subsubsection}{\large\bfseries} \titleformat*{\paragraph}{\large\bfseries} \titleformat*{\subparagraph}{\large\bfseries} \fi \ifXXL \titleformat*{\section}{\huge\bfseries} \titleformat*{\subsection}{\LARGE\bfseries} \titleformat*{\subsubsection}{\Large\bfseries} \titleformat*{\paragraph}{\large\bfseries} \titleformat*{\subparagraph}{\large\bfseries} \fi \AtBeginDocument{% \raggedbottom% \setlength\topskip{0mm}% \setlength\parindent{0pt}% \setlength\parskip{6pt}% \setlength\columnsep{32pt}% \def\arraystretch{1.5}% \ifXL\large\fi \ifXXL\Large\fi } \newcommand\LeftHuaweiBar{% \begin{textblock}{1}[0,0](0,0)% \tikz \node[fill=red,minimum width=\TPHorizModule,minimum height=16\TPVertModule] {};% \end{textblock}% } \newcommand\PrintHuaweiLogo{ \begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1, inner sep=0pt, outer sep=0pt] \begin{scope}[even odd rule,line width=0.800pt] \begin{scope}[shift={(0,-0.00024)}] \path[fill=black] (10.9375,30.2240) -- (10.9375,33.6097) .. controls (10.9375,34.5713) and (10.4603,35.0845) .. (9.5932,35.0845) .. controls (8.7212,35.0845) and (8.2411,34.5565) .. (8.2411,33.5686) -- (8.2411,30.2278) -- (7.0415,30.2278) -- (7.0415,33.6097) .. controls (7.0415,35.2737) and (7.9658,36.2272) .. (9.5774,36.2272) .. controls (11.2041,36.2272) and (12.1371,35.2554) .. (12.1371,33.5609) -- (12.1371,30.2240) -- (10.9375,30.2240) -- cycle; \path[fill=black] (15.3511,30.2240) -- (12.7456,36.1351) -- (13.9702,36.1351) -- (14.4731,34.9903) -- (14.5091,34.9045) -- (17.2158,34.9045) -- (17.7467,36.1351) -- (19.0045,36.1351) -- (16.4233,30.2590) -- (16.4001,30.2240) -- cycle; \path[fill=black] (22.4840,30.2240) -- (21.1414,34.2912) -- (19.8344,30.2271) -- (18.5578,30.2271) -- (20.6186,36.1388) -- (21.6120,36.1388) -- (22.9573,32.2553) -- (24.3016,36.1388) -- (25.3034,36.1388) -- (27.3592,30.2271) -- (26.1152,30.2271) -- (24.8055,34.2912) -- (23.4626,30.2240) -- cycle; \path[fill=black] (34.2236,30.2240) -- (34.2236,36.1300) -- (35.4074,36.1300) -- (35.4074,30.2240) -- cycle; \path[fill=black] (0.2686,30.2244) -- (0.2686,36.1384) -- (1.4686,36.1384) -- (1.4686,33.7365) -- (4.1780,33.7365) -- (4.1780,36.1384) -- (5.3783,36.1384) -- (5.3783,30.2244) -- (4.1780,30.2244) -- (4.1780,32.6102) -- (1.4686,32.6102) -- (1.4686,30.2244) -- cycle; \path[fill=black] (28.3267,30.2284) -- (28.3267,36.1344) -- (32.7928,36.1344) -- (32.7928,35.0575) -- (29.5105,35.0575) -- (29.5105,33.5931) -- (31.6931,33.5931) -- (31.6931,32.5160) -- (29.5105,32.5160) -- (29.5105,31.3052) -- (32.6785,31.3052) -- (32.6785,30.2284) -- cycle; \path[fill=white] (15.8594,31.7207) -- (16.7149,33.7008) -- (16.7119,33.7008) -- (16.7701,33.8374) -- (14.9552,33.8374) -- (15.0127,33.7008) -- (15.0117,33.7008) -- cycle; \path[fill=red] (15.2113,0.0001) .. controls (14.7353,0.0422) and (13.4491,0.3349) .. (13.4491,0.3349) -- (13.4486,0.3349) .. controls (10.5495,1.0843) and (9.8643,3.7151) .. (9.8643,3.7151) .. controls (9.7227,4.1575) and (9.6584,4.6109) .. (9.6395,5.0380) -- (9.6395,5.6194) .. controls (9.6780,6.5176) and (9.8777,7.1883) .. (9.8777,7.1883) .. controls (10.8461,11.4823) and (15.6075,18.5379) .. (16.6308,20.0200) .. controls (16.7034,20.0920) and (16.7615,20.0660) .. (16.7615,20.0660) .. controls (16.8720,20.0355) and (16.8633,19.9296) .. (16.8633,19.9296) -- (16.8654,19.9301) .. controls (18.4416,4.1760) and (15.2113,0.0001) .. (15.2113,0.0001) -- (15.2113,0.0001) -- cycle; \path[fill=red] (20.4192,0.0000) .. controls (20.4192,0.0000) and (17.1748,4.1782) .. (18.7521,19.9415) -- (18.7542,19.9415) .. controls (18.7664,20.0416) and (18.8374,20.0624) .. (18.8374,20.0624) .. controls (18.9430,20.1033) and (18.9971,20.0019) .. (18.9971,20.0019) -- (18.9976,20.0029) .. controls (20.0472,18.4829) and (24.7814,11.4657) .. (25.7455,7.1882) .. controls (25.7455,7.1882) and (26.2683,5.1179) .. (25.7636,3.7150) .. controls (25.7636,3.7150) and (25.0470,1.0434) .. (22.1442,0.3375) .. controls (22.1442,0.3375) and (21.3077,0.1251) .. (20.4193,0.0000) -- (20.4192,0.0000) -- cycle; \path[fill=red] (5.4542,4.7294) .. controls (5.4542,4.7294) and (2.6920,7.3513) .. (2.5547,10.1307) -- (2.5558,10.1307) -- (2.5558,10.5519) .. controls (2.5579,10.5836) and (2.5595,10.6157) .. (2.5615,10.6480) .. controls (2.6804,12.8893) and (4.3665,14.2157) .. (4.3665,14.2157) .. controls (7.0831,16.8634) and (13.6611,20.2062) .. (15.1896,20.9647) .. controls (15.2110,20.9727) and (15.2900,20.9985) .. (15.3364,20.9399) .. controls (15.3364,20.9399) and (15.3605,20.9216) .. (15.3715,20.8887) -- (15.3715,20.8189) .. controls (15.3704,20.8149) and (15.3683,20.8109) .. (15.3663,20.8065) -- (15.3669,20.8065) .. controls (11.1809,11.6620) and (5.4543,4.7294) .. (5.4543,4.7294) -- (5.4542,4.7294) -- cycle; \path[fill=red] (30.1695,4.7294) .. controls (30.1695,4.7294) and (24.4602,11.6403) .. (20.2761,20.7662) -- (20.2777,20.7657) .. controls (20.2777,20.7657) and (20.2283,20.8715) .. (20.3082,20.9399) .. controls (20.3082,20.9399) and (20.3320,20.9579) .. (20.3650,20.9652) -- (20.4229,20.9652) .. controls (20.4333,20.9622) and (20.4444,20.9582) .. (20.4554,20.9507) -- (20.4554,20.9517) .. controls (22.0255,20.1724) and (28.5525,16.8516) .. (31.2563,14.2162) .. controls (31.2563,14.2162) and (32.9686,12.8412) .. (33.0583,10.6334) .. controls (33.2560,7.5672) and (30.1696,4.7294) .. (30.1696,4.7294) -- (30.1695,4.7294) -- cycle; \path[fill=red] (35.3082,13.8080) .. controls (35.3082,13.8080) and (26.0003,18.8031) .. (21.1876,22.0494) -- (21.1882,22.0499) -- (21.1893,22.0509) .. controls (21.1893,22.0509) and (21.1019,22.1081) .. (21.1324,22.2106) .. controls (21.1324,22.2106) and (21.1781,22.2933) .. (21.2446,22.2933) -- (21.2446,22.2938) .. controls (22.9684,22.2968) and (29.4914,22.3041) .. (29.6549,22.2736) .. controls (29.6549,22.2736) and (30.4983,22.2399) .. (31.5406,21.8395) .. controls (31.5406,21.8395) and (33.8608,21.1019) .. (35.0659,18.4677) .. controls (35.0659,18.4677) and (35.6166,17.3662) .. (35.6246,15.8187) -- (35.6246,15.7531) .. controls (35.6206,15.1563) and (35.5365,14.4957) .. (35.3083,13.8080) -- (35.3082,13.8080) -- cycle; \path[fill=red] (0.3129,13.8313) .. controls (-0.5339,16.4531) and (0.6062,18.5656) .. (0.6080,18.5690) .. controls (1.7962,21.0795) and (4.0641,21.8401) .. (4.0641,21.8401) .. controls (5.1112,22.2703) and (6.1586,22.3000) .. (6.1586,22.3000) .. controls (6.3221,22.3300) and (12.6713,22.3030) .. (14.3725,22.2950) .. controls (14.4445,22.2945) and (14.4842,22.2221) .. (14.4842,22.2221) .. controls (14.4892,22.2142) and (14.4936,22.2062) .. (14.4955,22.1989) -- (14.4955,22.1333) .. controls (14.4814,22.0893) and (14.4439,22.0584) .. (14.4439,22.0584) -- (14.4450,22.0578) .. controls (9.6347,18.8126) and (0.3130,13.8315) .. (0.3130,13.8315) -- (0.3129,13.8313) -- cycle; \path[fill=red] (14.1782,23.1010) -- (3.2285,23.4850) .. controls (4.4160,25.6018) and (6.4158,27.2469) .. (8.4990,26.7416) .. controls (9.9366,26.3822) and (13.1935,24.1105) .. (14.2687,23.3429) -- (14.2651,23.3399) .. controls (14.3487,23.2648) and (14.3188,23.2045) .. (14.3188,23.2045) .. controls (14.2913,23.1062) and (14.1783,23.1063) .. (14.1783,23.1063) -- (14.1782,23.1010) -- cycle; \path[fill=red] (21.4305,23.1090) -- (21.4294,23.1130) .. controls (21.4294,23.1130) and (21.3333,23.1252) .. (21.3064,23.1972) .. controls (21.3064,23.1972) and (21.2831,23.2956) .. (21.3478,23.3445) -- (21.3467,23.3455) .. controls (22.3950,24.0973) and (25.5729,26.3191) .. (27.1039,26.7505) .. controls (27.1039,26.7505) and (27.3359,26.8294) .. (27.7246,26.8435) -- (27.9581,26.8435) .. controls (28.9839,26.8075) and (30.7708,26.2805) .. (32.3946,23.4907) -- (21.4305,23.1090) -- cycle; \end{scope}% \end{scope}% \end{tikzpicture}% } \RequirePackage{fancyhdr} \pagestyle{fancy} \renewcommand{\headrulewidth}{0pt} \fancyhf{} \fancyfoot[L]{ \LeftHuaweiBar{} \ifauthordraft% \begin{textblock}{14}[0.5,0.5](8,8)% \tikz \node[minimum width=14\TPHorizModule] {% \fontsize{64}{64}\selectfont\sffamily\scshape\color{gray!20}\rotatebox{30}{it is a draft} };% \end{textblock}% \else\fi% \ifnum\value{page}=1\else% \ifnobrand\else% \begin{textblock}{8}[0,0](1.2,0.2)% \PrintHuaweiLogo{}% \end{textblock}% \fi% \fi% \begin{textblock}{8}[1,0](15.8,0.2)% \raggedleft\headers{% \ifnosecurity\else% \thesecurity \fi% }% \end{textblock}% \begin{textblock}{8}[0,1](1.2,15.8)% \ifnum\value{page}=1\else% \headers{% \ifanonymous\else% \theauthor% \ifnosecurity\else% \ifx\theid\empty\else,\theid\fi \fi% \ifnobrand\else% \newline \fi% \fi% \ifnobrand\else% \thecompany{} \fi% }% \fi% \end{textblock}% \begin{textblock}{8}[1,1](15.8,15.8)% \raggedleft\headers{% \ifnum\value{page}=1\else% \ifnopaging\else% Page \#\thepage{} of \pageref*{LastPage}% \ifnodate\else% \\ \fi% \fi% \fi% \ifnodate\else% \today{} \settimeformat{daytime}\currenttime{}% \fi% }% \end{textblock}% } \renewcommand\maketitle{% \vspace*{18pt} {\bfseries{\Huge\thetitle}} \ifx\thesubtitle\empty\else% \\[6pt] {\color{gray!50!black}\large\thesubtitle} \fi \\[18pt] \ifnobrand\else% \ifanonymous\else% \ifx\thecompany\empty\else% \thecompany\newline \fi \fi \fi \ifx\theauthor\empty\else% {\scshape\ifanonymous Anonymous Authors \else% \theauthor \fi}% \fi% \ifanonymous\else% \ifx\theauthor\empty\else \ifnobrand\else% \ifx\theid\empty\else $\;$/ {\theid} \fi \fi \fi \fi \vspace{2em} } \newcommand\PrintThankYouPage{ \newpage \vspace*{\fill} \begin{center} \normalsize {\Huge\color{red}\textbf{Thank you!}} \end{center} \vspace*{\fill} } \newcommand\PrintDisclaimer{% \justify\vspace*{\fill}% \begingroup% \setstretch{0.55}% \sffamily\scriptsize\color{gray!50!black}% \textbf{Disclaimer}: The opinions expressed in this document are in good faith and while every care has been taken in preparing it, \ifnobrand% the author% \else% \thecompany{}% \fi makes no representations and gives no warranties of whatever nature in respect of these documents, including but not limited to the accuracy or completeness of any information, facts and/or opinions contained therein. \ifnobrand% The author% \else% \thecompany{}% \fi, its subsidiaries, the directors, employees and agents cannot be held liable for the use of and reliance of the opinions, estimates, forecasts and findings in these documents. \par \endgroup% } \newcommand\PrintFirstPage[1]{ \iflandscape\else \PackageError{huawei}{It's allowed to use PrintFirstPage only in landscape mode}{Read huawei.pdf for more information} \fi \LeftHuaweiBar{} \def\param{#1}% \ifx\param\empty\else \includegraphics[height=2in]{#1} \newline \fi \vspace*{0.5in} \maketitle \ifnocover\else \begin{textblock}{14}[1,1](14,14) \raggedleft\includegraphics[height=3.6in]{huawei-cover-picture.pdf} \end{textblock} \fi } \newcommand\PrintLastPage{ \iflandscape\else \PackageError{huawei}{It's allowed to use PrintLastPage only in landscape mode}{Read huawei.pdf for more information} \fi \newpage \vspace*{1in} \begin{center} \begin{minipage}{0.6\columnwidth}\raggedright \normalsize \setlength{\parskip}{6pt} {\Huge\color{red}\textbf{Thank you!}} \vspace{0.5in} \begin{CJK}{UTF8}{gbsn} 把数字世界带入每个人、每个家庭、
每个组织、构建万物互联的智能世界。 \end{CJK} Bring digital to every person, home and organization \newline for a fully connected, intelligent world. \textbf{% Copyright \copyright{} \the\year{} \thecompany{} \newline All Rights Reserved.% } The information in this document may contain predictive statements including, without limitation, statements regarding the future financial and operating results, future product portfolio, new technology, etc. There are a number of factors that could cause actual results and developments to differ materially from those expressed or implied in the predictive statements. Therefore, such information is provided for reference purpose only and constitutes neither an offer nor an acceptance. \ifnobrand% The author% \else% \thecompany{}% \fi may change the information at any time without notice. \end{minipage} \end{center}% } \newcommand\PrintBibliography{ \setlength\bibitemsep{3pt} \AtNextBibliography{\small} \newpage \raggedright \iflandscape \begin{multicols}{3}\setstretch{0.95}\printbibliography\end{multicols} \else \begin{multicols}{2}\setstretch{0.95}\printbibliography\end{multicols} \fi } \endinput