\documentclass[English,Chinese,French,allowbf]{lebhart}

%%================================
%% Import toolkit
%%================================
\usepackage{ProjLib}
\usepackage{longtable}  % breakable tables
\usepackage{hologo}     % more TeX logo
\usetikzlibrary{calc}

\usepackage{blindtext}

\UseLanguage{English}

%%================================
%% For typesetting code
%%================================
\usepackage{listings}
\definecolor{maintheme}{RGB}{70,130,180}
\definecolor{forestgreen}{RGB}{21,122,81}
\definecolor{lightergray}{gray}{0.99}
\lstset{language=[LaTeX]TeX,
    keywordstyle=\color{maintheme},
    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{moretexcs=%
    {part,parttext,chapter,section,subsection,subsubsection,frontmatter,mainmatter,backmatter,tableofcontents,href,
    color,NameTheorem,CreateTheorem,proofideanameEN,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PLdate,ProjLib,qedhere
    }
}
\lstnewenvironment{code}%
{\setstretch{1.07}%
\setkeys{lst}{columns=fullflexible,keepspaces=true}%
}{}
\lstnewenvironment{code*}%
{\setstretch{1.07}%
\setkeys{lst}{numbers=left,columns=fullflexible,keepspaces=true}%
}{}

%%================================
%% tip
%%================================
\usepackage[many]{tcolorbox}
\newenvironment{tip}[1][Tip]{%
    \begin{tcolorbox}[breakable,
        enhanced,
        width = \textwidth,
        colback = paper, colbacktitle = paper,
        colframe = gray!50, boxrule=0.2mm,
        coltitle = black,
        fonttitle = \sffamily,
        attach boxed title to top left = {yshift=-\tcboxedtitleheight/2, xshift=.5cm},
        boxed title style = {boxrule=0pt, colframe=paper},
        before skip = 0.3cm,
        after skip = 0.3cm,
        top = 3mm,
        bottom = 3mm,
        title={\scshape\sffamily #1}]%
}{\end{tcolorbox}}

%%================================
%% Names
%%================================
\providecommand{\colorist}{\textsf{colorist}}
\providecommand{\colorart}{\textsf{colorart}}
\providecommand{\colorbook}{\textsf{colorbook}}
\providecommand{\lebhart}{\textsf{lebhart}}
\providecommand{\beaulivre}{\textsf{beaulivre}}

%%================================
%% Titles
%%================================
\let\LevelOneTitle\section
\let\LevelTwoTitle\subsection
\let\LevelThreeTitle\subsubsection

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

\title{\lebhart{}, write your articles in a colorful way}
\author{Jinwen XU}
\thanks{Corresponding to: \texttt{\lebhart{} 2021/07/30}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
\date{July 2021, Beijing}

\maketitle

\begin{abstract}
    \lebhart{} is a member of the \colorist{} class series. Its name is taken from German word ``lebhaft'' (``vividly''), combined with the first three letters of ``artikel'' (``article''). 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.

    \lebhart{} has multi-language support, including Chinese (simplified and traditional), English, French, German, Italian, Japanese, Portuguese (European and Brazilian), Russian and Spanish. These languages can be switched seamlessly in a single document. Due to the usage of custom fonts, \lebhart{} requires \hologo{XeLaTeX} or \hologo{LuaLaTeX} to compile.

    This documentation is typeset using \lebhart{} (with the option \texttt{allowbf}). You can think of it as a short introduction and demonstration.
\end{abstract}


\setcounter{tocdepth}{2}
\tableofcontents


\medskip
\LevelOneTitle*{Before you start}
\addcontentsline{toc}{section}{Before you start}
In order to use the package or classes described here, you need to:
\begin{itemize}
    \item install TeX Live or MikTeX of the latest possible version, and make sure that \texttt{colorist} and \texttt{projlib} are correctly installed in your \TeX{} system.
    \item be familiar with the basic usage of \LaTeX{}, and knows how to compile your document with \hologo{pdfLaTeX}, \hologo{XeLaTeX} or \hologo{LuaLaTeX}.
\end{itemize}


\LevelOneTitle{Usage and examples}

\LevelTwoTitle{How to load it}

One only needs to put

\begin{code}
  \documentclass{lebhart}
\end{code}
as the first line to use the \lebhart{} class. Please note that you need to use either \hologo{XeLaTeX} or \hologo{LuaLaTeX} engine to compile.

\LevelTwoTitle{Example - A complete document}

Let's first look at a complete document.

\begin{code*}
\documentclass{lebhart}
\usepackage{ProjLib}

\UseLanguage{French}

\begin{document}

\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
\date{\PLdate{2022-04-01}}

\maketitle

\begin{abstract}
    Ceci est un résumé. \dnf<Plus de contenu est nécessaire.>
\end{abstract}
\begin{keyword}
    AAA, BBB, CCC, DDD, EEE
\end{keyword}

\section{Un théorème}

\begin{theorem}\label{thm:abc}
    Ceci est un théorème.
\end{theorem}
Référence du théorème: \cref{thm:abc}

\end{document}
\end{code*}


If you find this example a little complicated, don't worry. Let's now look at this example piece by piece.

\clearpage
\LevelThreeTitle{Initialization}

\medskip
\begin{code}
\documentclass{lebhart}
\usepackage{ProjLib}
\end{code}

Initialization is straightforward. The first line loads the document class \lebhart{}, and the second line loads the \ProjLib{} toolkit to obtain some additional functionalities.

\LevelThreeTitle{Set the language}

\medskip
\begin{code}
\UseLanguage{French}
\end{code}

This line indicates that French will be used in the document (by the way, if only English appears in your article, then there is no need to set the language). You can also switch the language in the same way later in the middle of the text. Supported languages include Simplified Chinese, Traditional Chinese, Japanese, English, French, German, Spanish, Portuguese, Brazilian Portuguese and Russian%
.%

For detailed description of this command and more related commands, please refer to the section on the multi-language support.

\LevelThreeTitle{Title, author information, abstract and keywords}

\medskip
\begin{code}
\title{(*\meta{title}*)}
\author{(*\meta{author}*)}
\date{\PLdate{2022-04-01}}
\maketitle

\begin{abstract}
    (*\meta{abstract}*)
\end{abstract}
\begin{keyword}
    (*\meta{keywords}*)
\end{keyword}
\end{code}

This part begins with the title and author information block. The example shows the basic usage, but in fact, you can also write:

\begin{code}
\author{(*\meta{author 1}*)}
\address{(*\meta{address 1}*)}
\email{(*\meta{email 1}*)}
\author{(*\meta{author 2}*)}
\address{(*\meta{address 2}*)}
\email{(*\meta{email 2}*)}
...
\end{code}

In addition, you may also write in the \AmS{} fashion, i.e.:

\begin{code}
\title{(*\meta{title}*)}
\author{(*\meta{author 1}*)}
\address{(*\meta{address 1}*)}
\email{(*\meta{email 1}*)}
\author{(*\meta{author 2}*)}
\address{(*\meta{address 2}*)}
\email{(*\meta{email 2}*)}
\date{\PLdate{2022-04-01}}
\subjclass{*****}
\keywords{(*\meta{keywords}*)}

\begin{abstract}
    (*\meta{abstract}*)
\end{abstract}

\maketitle
\end{code}

\LevelThreeTitle{Draft marks}

\medskip
\begin{code}
\dnf<(*\meta{some hint}*)>
\end{code}

When you have some places that have not yet been finished yet, you can mark them with this command, which is especially useful during the draft stage.

\LevelThreeTitle{Theorem-like environments}

\medskip
\begin{code}
\begin{theorem}\label{thm:abc}
    Ceci est un théorème.
\end{theorem}
Référence du théorème: \cref{thm:abc}
\end{code}

Commonly used theorem-like environments have been pre-defined. Also, when referencing a theorem-like environment, it is recommended to use \lstinline|\cref{|\meta{label}\texttt{\}} --- in this way, there is no need to explicitly write down the name of the corresponding environment every time.

\begin{tip}
If you wish to switch to the standard class later, just replace the first two lines with:

\begin{code}
\documentclass{article}
\usepackage[a4paper,margin=1in]{geometry}
\usepackage[hidelinks]{hyperref}
\usepackage[palatino,amsfashion]{ProjLib}
\end{code}

or to use the \AmS{} class:

\begin{code}
\documentclass{amsart}
\usepackage[a4paper,margin=1in]{geometry}
\usepackage[hidelinks]{hyperref}
\usepackage[palatino]{ProjLib}
\end{code}

\end{tip}

\begin{tip}
If you like the current document class, but want a more ``plain'' style, then you can use the option \texttt{classical}, like this:

\begin{code}
\documentclass[classical]{lebhart}
\end{code}
\end{tip}


\LevelOneTitle{On the default fonts}
By default, \lebhart{} uses Palatino Linotype as the English font, FounderType's YouSong and YouHei GBK as the Chinese fonts\footnote{For detail, pleaser visit FounderType's website: \url{https://www.foundertype.com}.}, and partially uses Neo Euler as the math font. Among them, Neo Euler can be downloaded at \url{https://github.com/khaledhosny/euler-otf}. The other fonts are not free, you need to purchase and install them on your own.


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

\LevelOneTitle{The options}

\lebhart{} offers the following options:

\begin{itemize}
    \item The language options \texttt{EN} / \texttt{english} / \texttt{English}, \texttt{FR} / \texttt{french} / \texttt{French}, etc.
        \begin{itemize}
            \item For the option names of a specific language, please refer to \meta{language name} in the next section. The first specified language will be used as the default language.
            \item The language options are optional, mainly for increasing the compilation speed. Without them the result would be the same, only slower.
        \end{itemize}
    \item \texttt{draft} or \texttt{fast}
        \begin{itemize}
            \item The option \verb|fast| enables a faster but slightly rougher style, main differences are:
            \begin{itemize}
                \item Use simpler math font configuration;
                \item Do not use \textsf{hyperref};
                \item Enable the fast mode of \ProjLib{} toolkit.
            \end{itemize}
        \end{itemize}
    \begin{tip}
        During the draft stage, it is recommended to use the \verb|fast| option to speed up compilation. When in \verb|fast| mode, there will be a watermark ``DRAFT'' to indicate that you are currently in the draft mode.
    \end{tip}
    \item \texttt{a4paper} or \texttt{b5paper}
        \begin{itemize}
            \item Paper size options. The default paper size is 8.5in $\times$ 11in.
        \end{itemize}
    \item \texttt{palatino}, \texttt{times}, \texttt{garamond}, \texttt{noto}, \texttt{biolinum} ~$|$~ \texttt{useosf}
        \begin{itemize}
            \item Font options. As the name suggest, font with corresponding name will be loaded.
            \item The \texttt{useosf} option is used to enable the old-style figures.
        \end{itemize}
    \item \texttt{allowbf}
        \begin{itemize}
            \item Allow boldface. When this option is enabled, the main title, the titles of all levels and the names of theorem-like environments will be bolded.
        \end{itemize}
    \item \texttt{runin}
        \begin{itemize}
            \item Use the ``runin'' style for \lstinline|\subsubsection|
        \end{itemize}
    \item \texttt{puretext} or \texttt{nothms}
        \begin{itemize}
            \item Pure text mode. Does not load theorem-like environments.
        \end{itemize}
    \item \texttt{nothmnum}, \texttt{thmnum} or \texttt{thmnum=}\meta{counter}
        \begin{itemize}
            \item Theorem-like environments will not be numbered / numbered in order 1, 2, 3... / numbered within \meta{counter}. Here, \meta{counter} should be a built-in counter (such as \texttt{subsection}) or a custom counter defined in the preamble. If no option is used, they will be numbered within \texttt{chapter} (book) or \texttt{section} (article).
        \end{itemize}
    \item \texttt{regionalref}, \texttt{originalref}
        \begin{itemize}
            \item When referencing, whether the name of the theorem-like environment changes with the current language. The default is \texttt{regionalref}, \emph{i.e.}, the name corresponding to the current language is used; for example, when referencing a theorem-like environment in English context, the names "Theorem, Definition..." will be used no matter which language context the original environment is in. If \texttt{originalref} is enabled, then the name will always remain the same as the original place; for example, when referencing a theorem written in the French context, even if one is currently in the English context, it will still be displayed as ``Théorème''.
            \item In \texttt{fast} mode, the option \texttt{originalref} will have no effect.
        \end{itemize}
\end{itemize}


\LevelOneTitle{Instructions by topic}

\LevelTwoTitle{Language configuration}

\lebhart{} has multi-language support, including Chinese (simplified and traditional), English, French, German, Italian, Japanese, Portuguese (European and Brazilian), Russian and Spanish. The language can be selected by the following macros:

\begin{itemize}
    \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| is used to specify the language. The corresponding setting of the language will be applied after it. It can be used either in the preamble or in the main body. When no language is specified, ``English'' is selected by default.
    \item \lstinline|\UseOtherLanguage{|\meta{language name}\lstinline|}{|\meta{content}\lstinline|}|, which uses the specified language settings to typeset \meta{content}. Compared with \lstinline|\UseLanguage|, it will not modify the line spacing, so line spacing would remain stable when CJK and Western texts are mixed.
\end{itemize}

\meta{language name} can be (it is not case sensitive, for example, \texttt{French} and \texttt{french} have the same effect):
\begin{itemize}
    \item Simplified Chinese: \texttt{CN}, \texttt{Chinese}, \texttt{SChinese} or \texttt{SimplifiedChinese}
    \item Traditional Chinese: \texttt{TC}, \texttt{TChinese} or \texttt{TraditionalChinese}
    \item English: \texttt{EN} or \texttt{English}
    \item French: \texttt{FR} or \texttt{French}
    \item German: \texttt{DE}, \texttt{German} or \texttt{ngerman}
    \item Italian: \texttt{IT} or \texttt{Italian}
    \item Portuguese: \texttt{PT} or \texttt{Portuguese}
    \item Portuguese (Brazilian): \texttt{BR} or \texttt{Brazilian}
    \item Spanish: \texttt{ES} or \texttt{Spanish}
    \item Japanese: \texttt{JP} or \texttt{Japanese}
    \item Russian: \texttt{RU} or \texttt{Russian}
\end{itemize}

\medskip
In addition, you can also add new settings to selected language:
\begin{itemize}
    \item \lstinline|\AddLanguageSetting{|\meta{settings}\lstinline|}|
    \begin{itemize}
        \item Add \meta{settings} to all supported languages.
    \end{itemize}
    \item \lstinline|\AddLanguageSetting(|\meta{language name}\lstinline|){|\meta{settings}\lstinline|}|
    \begin{itemize}
        \item Add \meta{settings} to the selected language \meta{language name}.
    \end{itemize}
\end{itemize}
For example, \lstinline|\AddLanguageSetting(German){\color{orange}}| can make all German text displayed in orange (of course, one then need to add \lstinline|\AddLanguageSetting{\color{black}}| in order to correct the color of the text in other languages).

\LevelTwoTitle{Theorems and how to reference them}

Environments such as \texttt{definition} and \texttt{theorem} have been preset and can be used directly.

More specifically, preset environments include:
\texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, and the corresponding unnumbered version with an asterisk \lstinline|*| in the name. The titles will change with the current language. For example, \texttt{theorem} will be displayed as ``Theorem" in English mode and ``Théorème" in French mode.

When referencing a theorem-like environment, it is recommended to use \lstinline|\cref{|\meta{label}\texttt{\}}. In this way, there is no need to explicitly write down the name of the corresponding environment every time.

\begin{tip}[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. There is approximately an one-line space before and after the theorem environment, and there will be a symbol to mark the end of the environment.
\end{definition}

\lstinline|\cref{def: strange}| will be displayed as: \cref{def: strange}.

After using \lstinline|\UseLanguage{French}|, a theorem will be displayed as:

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

By default, when referenced, the name of the theorem matches the current context. For example, the definition above will be displayed in French in the current French context: \cref{def: strange,thm}. If you want the name of the theorem to always match the language of the context in which the theorem is located, you can add \texttt{originalref} to the global options.
\end{tip}

\UseLanguage{English}

\bigskip
The following are the main 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: problem, question, ...
\end{problem}

\medskip
For aesthetics, adjacent definitions will be connected together automatically:
\begin{definition}
    First definition.
\end{definition}

\begin{definition}
    Second definition.
\end{definition}

\LevelTwoTitle{Define a new theorem-like environment}

If you need to define a new theorem-like environment, you must first define the name of the environment in the language to use:
\begin{itemize}
    \item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
\end{itemize}

For \meta{language name}, please refer to the section on language configuration. When \meta{language name} is not specified, the name will be set for all supported languages. In addition, environments with or without asterisk share the same name, therefore, \lstinline|\NameTheorem{envname*}{...}| has the same effect as \lstinline|\NameTheorem{envname}{...}| .

\medskip
And then define this environment in one of following five ways:
\begin{itemize}
    \item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
        \begin{itemize}
            \item Define an unnumbered environment \meta{name of environment}
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}|
        \begin{itemize}
            \item Define a numbered environment \meta{name of environment}, numbered in order 1,2,3,\dots
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}[|\meta{numbered like}\lstinline|]|
        \begin{itemize}
            \item Define a numbered environment \meta{name of environment}, which shares the counter \meta{numbered like}
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}<|\meta{numbered within}\lstinline|>|
        \begin{itemize}
            \item Define a numbered environment \meta{name of environment}, numbered within the counter \meta{numbered within}
        \end{itemize}
    \item \lstinline|\CreateTheorem{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|\\
    \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}(|\meta{existed environment}\lstinline|)|
        \begin{itemize}
            \item Identify \meta{name of environment} with \meta{existed environment} or \meta{existed environment}\lstinline|*|.
            \item This method is usually useful in the following two situations:
                \begin{enumerate}
                    \item To use a more concise name. For example, with \lstinline|\CreateTheorem{thm}(theorem)|, one can then use the name \texttt{thm} to write theorem.
                    \item To remove the numbering of some environments. For example, one can remove the numbering of the \texttt{remark} environment with \lstinline|\CreateTheorem{remark}(remark*)|.
                \end{enumerate}
        \end{itemize}
\end{itemize}

\begin{tip}
    This macro utilizes the feature of \textsf{amsthm} internally, so the traditional \texttt{theoremstyle} is also applicable to it. One only needs declare the style before the relevant definitions.
\end{tip}

\NameTheorem[EN]{proofidea}{Idea}
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>

\bigskip
Here is an example. The following code:

\begin{code}
  \NameTheorem[EN]{proofidea}{Idea}
  \CreateTheorem*{proofidea*}
  \CreateTheorem{proofidea}<subsection>
\end{code}
defines an unnumbered environment \lstinline|proofidea*| and a numbered environment \lstinline|proofidea| (numbered within subsection) respectively. They can be used in English context.
The effect is as follows:

\vspace{-0.3\baselineskip}
\begin{proofidea*}
    The \lstinline|proofidea*| environment.
\end{proofidea*}

\vspace{-\baselineskip}
\begin{proofidea}
    The \lstinline|proofidea| environment.
\end{proofidea}

\LevelTwoTitle{Draft mark}

You can use \lstinline|\dnf| to mark the unfinished part. For example:
\begin{itemize}
    \item \lstinline|\dnf| or \lstinline|\dnf<...>|. The effect is: \dnf~ or \dnf<...>. \\The prompt text changes according to the current language. For example, it will be displayed as \UseOtherLanguage{French}{\dnf} in French mode.
\end{itemize}

Similarly, there is \lstinline|\needgraph| :
\begin{itemize}
    \item \lstinline|\needgraph| or \lstinline|\needgraph<...>|. The effect is: \needgraph or \needgraph<...>The prompt text changes according to the current language. For example, in French mode, it will be displayed as \UseOtherLanguage{French}{\needgraph}
\end{itemize}

\LevelTwoTitle{Title, abstract and keywords}

\lebhart{} has both the features of standard classes and that of the \AmS{} classes.

Therefore, the title part can either be written in the usual way, in accordance with the standard class \textsf{article}:

\begin{code}
  \title{(*\meta{title}*)}
  \author{(*\meta{author}*)\thanks{(*\meta{text}*)}}
  \date{(*\meta{date}*)}
  \maketitle
  \begin{abstract}
      (*\meta{abstract}*)
  \end{abstract}
  \begin{keyword}
      (*\meta{keywords}*)
  \end{keyword}
\end{code}

or written in the way of \AmS{} classes:

\begin{code}
  \title{(*\meta{title}*)}
  \author{(*\meta{author}*)}
  \thanks{(*\meta{text}*)}
  \address{(*\meta{address}*)}
  \email{(*\meta{email}*)}
  \date{(*\meta{date}*)}
  \keywords{(*\meta{keywords}*)}
  \subjclass{(*\meta{subjclass}*)}
  \begin{abstract}
      (*\meta{abstract}*)
  \end{abstract}
  \maketitle
\end{code}

\clearpage
The author information can contain multiple groups, written as:

\begin{code}
  \author{(*\meta{author 1}*)}
  \address{(*\meta{address 1}*)}
  \email{(*\meta{email 1}*)}
  \author{(*\meta{author 2}*)}
  \address{(*\meta{address 2}*)}
  \email{(*\meta{email 2}*)}
  ...
\end{code}

Among them, the mutual order of \lstinline|\address|, \lstinline|\curraddr|, \lstinline|\email| is not important.

\LevelOneTitle{Known issues}

\begin{itemize}[itemsep=.6em]
    \item The font settings are still not perfect.
    \item Since many features are based on the \ProjLib{} toolkit, \colorist{} (and hence \colorart{}, \lebhart{} and \colorbook{}, \beaulivre{}) inherits all its problems. For details, please refer to the ``Known Issues'' section of the \ProjLib{} documentation.
    \item The error handling mechanism is incomplete: there is no corresponding error prompt when some problems occur.
    \item There are still many things that can be optimized in the code.
\end{itemize}


\end{document}
\endinput
%%
%% End of file `lebhart/lebhart-doc-en.tex'.
