%! TEX program = xelatex
\PassOptionsToPackage{dvipsnames}{xcolor}
\documentclass{beaulivre}

%%================================
%% TeX logo and URL
%%================================
\usepackage{hologo}
\usepackage{url}

%%================================
%% For typestting code
%%================================
\usepackage{listings}
\definecolor{lightergray}{gray}{0.99}
\lstset{language=[LaTeX]TeX,
    keywordstyle=\color{RoyalBlue},
    basicstyle=\ttfamily,
    commentstyle=\color{ForestGreen}\ttfamily,
    stringstyle=\rmfamily,
    showstringspaces=false,
    breaklines=true,
    frame=lines,
    backgroundcolor=\color{lightergray},
    flexiblecolumns=true,
    escapeinside={(*}{*)},
    % numbers=left,
    numberstyle=\scriptsize, stepnumber=1, numbersep=5pt,
    firstnumber=last,
} 
\providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
\lstset{morekeywords=%
    {CreateTheorem,proofideanameEN,cref,dnf,needgraph,UseLanguage,
    linenumbers,nolinenumbers,subsection,maketitle
    }
}
\lstnewenvironment{code}% 
{\setkeys{lst}{columns=fullflexible,keepspaces=true}}{}

\providecommand{\colorist}{\textsf{colorist}}
\providecommand{\colorart}{\textsf{colorart}}
\providecommand{\colorbook}{\textsf{colorbook}}
\providecommand{\lebhart}{\textsf{lebhart}}
\providecommand{\beaulivre}{\textsf{beaulivre}}

%%================================
%% Main text
%%================================
\begin{document}

\title{\beaulivre{}, write your books in a colorful way\thanks{Corresponding to: \texttt{\beaulivre{} 2021/03/15}}}
\author{Jinwen}
\date{March 2021, Beijing}

\maketitle

\frontmatter
\chapter*{Preface}

\beaulivre{} is a member of the \colorist{} class series. The entire collection includes \colorart{} and \lebhart{} for typesetting articles and \colorbook{} and \beaulivre{} for typesetting books. My original intention in designing this series was to write drafts and notes that look colorful yet not dazzling.

Among them, \lebhart{} and \beaulivre{} support three languages: English, French, and Chinese, and these three languages can be switched seamlessly in a single document. Due to the usage of custom fonts, they need to be compiled with \hologo{XeLaTeX} or \hologo{LuaLaTeX}.

This documentation is typeset using \beaulivre{}. You can think of it as a short introduction and demonstration.

\begin{tcolorbox}[enhanced jigsaw,pad at break*=1mm,breakable,colback=yellow!25!paper,boxrule=0pt,frame hidden]
    Since the main body of \colorist{} is modified from the \textsf{minimalist} series, some elements have not been completely redesigned yet, especially the TOC, part and chapter style. These will be added gradually in the future versions.
\end{tcolorbox}

\tableofcontents

\mainmatter

\chapter{On the naming and options}
\begin{itemize}
    \item \lebhart{} is taken from German word ``lebhaft'' (``vividly''), combined with the first three letters of ``artikel'' (``article'').
    \item \beaulivre{} is taken from French words ``beau'' (for ``beautiful'') and ``livre'' (for ``book'').
\end{itemize}

You can use the option \verb|fast| to enable a fast but slightly rough version. The main differences are:
\begin{itemize}
    \item Use simpler math font configuration; 
    \item Do not use hyperref; 
    \item Use draft mode for all tcolorboxes; 
    \item Use polyglossia instead of babel to support multiple languages. (Using polyglossia will increase the compilation speed slightly, but the current compatibility with Chinese is not perfect. When it becomes more stable, I will consider fully switching to polyglossia)
\end{itemize}

During the writing stage of your document, it is recommended to use the \verb|fast| option to speed up compilation and improve the smoothness of your writing experience. At the end, you can remove the ``fast'' mark to get the final version.

\chapter{Some instructions}

\section{Theorems and how to reference them}

Environments such as definitions and theorems have been pre-defined and can be used directly, for example:
\begin{code}
  \begin{definition}[Strange things] \label{def: strange} ...
\end{code}
will produce
\begin{definition}[Strange things]\label{def: strange}
    This is the definition of some strange objects.
\end{definition}

\begin{definition}[Another definition]
    Different definitions are automatically glued together, and there will be no gaps in between.
\end{definition}

When referencing, you can directly use clever reference \lstinline|\cref{(label name)}|. For example, \lstinline|\cref{def: strange}| will be displayed as: \cref{def: strange}.

\bigskip
The following are several other styles of theorem-like environments:

\begin{theorem}
    Theorem style: theorem, proposition, lemma, corollary
\end{theorem}

\begin{proof}
    Proof style
\end{proof}

\begin{remark}
    Remark style
\end{remark}

\begin{conjecture}
    Conjecture style
\end{conjecture}

\begin{example*}
    Example style: example, fact
\end{example*}

\begin{problem}
    Problem style
\end{problem}

\section{Define a new theorem-like environment}

First define the name of this environment in the language used: \lstinline|\(name of environment)(language name)|. Where \lstinline|(language name)| can be \lstinline|EN|, \lstinline|FR|, \lstinline|CN|, etc., and then define this environment in one of the following four ways:
\begin{itemize}
    \item \lstinline|\CreateTheorem*{(name of environment)}|
    \item \lstinline|\CreateTheorem{(name of environment)}[(numbered like)]|
    \item \lstinline|\CreateTheorem{(name of environment)}<(numbered within)>|
    \item \lstinline|\CreateTheorem{(name of environment)}|
\end{itemize}

\def\proofideanameEN{Idea}
\CreateTheorem*{proofidea}

For example,
\begin{code}
  \def\proofideanameEN{Idea}
  \CreateTheorem*{proofidea}
\end{code}
defines an unnumbered environment \lstinline|proofidea|, which supports using in the English context, and the effect is as follows:

\begin{proofidea}
    ...
\end{proofidea}

\section{Draft mark}

You can use \lstinline|\dnf| to mark the unfinished part. For example:
\begin{itemize}
    \item \lstinline|\dnf|: \quad \dnf
    \item \lstinline|\dnf<Still need ...>|: \quad \dnf<Still need ...>
\end{itemize}

Similarly, there is \lstinline|\needgraph| ：
\begin{itemize}
    \item \lstinline|\needgraph|: \needgraph
    \item \lstinline|\needgraph<About ...>|: \needgraph<About ...>
\end{itemize}

\section{Language configuration}
You can use \lstinline|\UseLanguage{(name of language))}| at any time to change the language, Language names include Chinese, English, French (the case of the first letter is arbitrary, for example, ``chinese'' is also acceptable). With this, the effects of various commands and environments will also change accordingly.

For example, after using \lstinline|\UseLanguage{French}|, the theorem and the draft mark will be displayed as:

\UseLanguage{French}
\begin{theorem}[Inutile]\label{thm}
    Un théorème en français. \dnf
\end{theorem}

When referenced, the name of the theorem always matches the language of the region in which the theorem is located, for example, the definition of the beginning is still displayed in English in the current French mode: \cref{def: strange} and \cref{thm}. 

\UseLanguage{English}

\section{On the fonts}
\lebhart{} and \beaulivre{} use Palatino Linotype as the English font, FounderType's YouSong and YouHei Simplified as the Chinese fonts, and partially use Neo Euler as the mathematical font:
\begin{itemize}
    \item English main font. \textsf{English sans serif font}.
    \item 中文主要字体, \textsf{中文无衬线字体}
    \item Math demonstration: \( \alpha, \beta, \gamma, \delta, 1,2,3,4, a,b,c,d \), \[\mathrm{li}(x)\coloneqq \int_2^{\infty} \frac{1}{\log t}\,\mathrm{d}t \]
\end{itemize}

Among them, Neo Euler can be downloaded at \url{https://github.com/khaledhosny/euler-otf}. Other fonts are not free, you need to purchase and use them on your own. (For the Chinese fonts, visit FounderType's website for detail: \url{https://www.foundertype.com} ).

When the corresponding font is not installed, the font that comes with TeX Live will be used instead, and the experience might be reduced.

\chapter{Document templates}

\singlespacing

\begin{minipage}{0.45\textwidth}
\begin{code}
%! TEX program = xelatex
\documentclass[fast]{lebhart}

\linenumbers
\UseLanguage{French}

\begin{document}

\title{Titre}
\author{Nom}
\date{03 / 2021, Lieu}

\maketitle

%% Texte ici

\end{document}
\end{code}
\end{minipage}
%
\hfill
%
\begin{minipage}{0.45\textwidth}
\begin{code}
%! TEX program = xelatex
\documentclass[fast]{lebhart}

\linenumbers
\UseLanguage{Chinese}

\begin{document}

\title{标题}
\author{姓名}
\date{2021年3月，地点}

\maketitle

%% 正文部分

\end{document}
\end{code}
\end{minipage}
\par

\bigskip
(\lstinline|\UseLanguage| can be placed either in the preamble or in the body part, and can be used repeatedly as needed)

\end{document}
